SL_Double.h

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