00001 //*************************************************************************************** 00002 // File supervisor: Crosswalk team 00012 //*************************************************************************************** 00013 00014 #ifndef _DOUBLE_H 00015 #define _DOUBLE_H 00016 00017 #include <SIBCMath.h> // SI_EPSILON 00018 #include "AnimatableType.h" // CSLAnimatableType 00019 class CCOLLADATemplate; 00020 class CSLCOLLADAScene; 00021 00024 class XSIEXPORT CSLDoubleProxy : public CSLAnimatableType 00025 { 00026 public: 00034 CSLDoubleProxy(CdotXSITemplate *in_pTemplate, SI_Int in_nIndex, SI_Double in_dThreshold = SI_EPSILON); 00035 00040 CSLDoubleProxy& operator =(const CSLDoubleProxy &in_Value); 00041 00046 CSLDoubleProxy& operator =(const SI_Double &in_Value); 00047 00056 SI_Bool operator ==(const CSLDoubleProxy &in_ToCompare); 00057 00066 SI_Bool operator ==(const SI_Double &in_ToCompare); 00067 00069 operator SI_Double(); 00070 00075 SI_Double Threshold(); 00076 00101 void SetThreshold( SI_Double in_dThreshold ); 00102 00106 virtual EElementType Type(); 00107 00111 virtual SI_Float GetFloatValue(); 00112 00116 virtual SI_Void SetFloatValue(SI_Float in_fValue); 00117 00123 virtual SI_Error Connect (CdotXSITemplate *in_pTemplate, SI_Int in_nIndex ); 00124 00125 private: 00126 CSLDoubleProxy( CSLDoubleProxy &in_pBasicType ){} 00127 SI_Bool Equal( SI_Double in_Double1, SI_Double in_Double2 ); 00128 00129 SI_Double m_dThreshold; 00130 SI_Double* m_pValue; 00131 }; 00132 00133 #endif