00001 //*************************************************************************************** 00002 // 00003 // File supervisor: Crosswalk team 00004 // 00005 // Copyright 2008 Autodesk, Inc. All rights reserved. 00006 // Use of this software is subject to the terms of the Autodesk license agreement 00007 // provided at the time of installation or download, or which otherwise accompanies 00008 // this software in either electronic or hard copy form. 00009 // 00010 //*************************************************************************************** 00011 00012 #ifndef _DOUBLE_H 00013 #define _DOUBLE_H 00014 00015 #include <SIBCMath.h> // SI_EPSILON 00016 #include "AnimatableType.h" // CSLAnimatableType 00017 class CCOLLADATemplate; 00018 class CSLCOLLADAScene; 00019 00021 class XSIEXPORT CSLDoubleProxy : public CSLAnimatableType 00022 { 00023 public: 00031 CSLDoubleProxy(CdotXSITemplate *in_pTemplate, SI_Int in_nIndex, SI_Double in_dThreshold = SI_EPSILON); 00032 00037 CSLDoubleProxy& operator =(const CSLDoubleProxy &in_Value); 00038 00043 CSLDoubleProxy& operator =(const SI_Double &in_Value); 00044 00053 SI_Bool operator ==(const CSLDoubleProxy &in_ToCompare); 00054 00063 SI_Bool operator ==(const SI_Double &in_ToCompare); 00064 00066 operator SI_Double(); 00067 00072 SI_Double Threshold(); 00073 00098 void SetThreshold( SI_Double in_dThreshold ); 00099 00103 virtual EElementType Type(); 00104 00108 virtual SI_Float GetFloatValue(); 00109 00113 virtual SI_Void SetFloatValue(SI_Float in_fValue); 00114 00120 virtual SI_Error Connect (CdotXSITemplate *in_pTemplate, SI_Int in_nIndex ); 00121 00122 private: 00123 CSLDoubleProxy( CSLDoubleProxy &in_pBasicType ){} 00124 SI_Bool Equal( SI_Double in_Double1, SI_Double in_Double2 ); 00125 00126 SI_Double m_dThreshold; 00127 SI_Double* m_pValue; 00128 }; 00129 00130 #endif