00001 //*************************************************************************************** 00002 // File supervisor: Crosswalk team 00012 //*************************************************************************************** 00013 00014 #ifndef _FLOAT_H 00015 #define _FLOAT_H 00016 00017 #include <SIBCMath.h> // SI_EPSILON 00018 #include "AnimatableType.h" // CSLAnimatableType 00019 class CCOLLADATemplate; 00020 class CSLCOLLADAScene; 00021 00024 class XSIEXPORT CSLFloatProxy : public CSLAnimatableType 00025 { 00026 public: 00034 CSLFloatProxy(CdotXSITemplate *in_pTemplate, SI_Int in_nIndex, SI_Float in_fThreshold = SI_EPSILON); 00035 00040 CSLFloatProxy& operator =(const CSLFloatProxy &in_Value); 00041 00046 CSLFloatProxy& operator =(const SI_Float &in_Value); 00047 00057 SI_Bool operator ==(const CSLFloatProxy &in_ToCompare); 00058 00067 SI_Bool operator ==(const SI_Float &in_ToCompare); 00068 00070 operator SI_Float(); 00071 00076 SI_Float Threshold(); 00077 00102 void SetThreshold( SI_Float in_fThreshold ); 00103 00107 virtual EElementType Type(); 00108 00112 virtual SI_Float GetFloatValue(); 00113 00117 virtual SI_Void SetFloatValue(SI_Float in_fValue); 00118 00124 virtual SI_Error Connect (CdotXSITemplate *in_pTemplate, SI_Int in_nIndex ); 00125 00126 private: 00127 // no copy constructor 00128 CSLFloatProxy( CSLFloatProxy &in_pBasicType ){} 00129 00130 SI_Bool Equal( SI_Float in_Float1, SI_Float in_Float2 ); 00131 00132 SI_Float m_fThreshold; 00133 SI_Float* m_pValue; 00134 }; 00135 00136 #endif