SL_Float.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 _FLOAT_H
00013 #define _FLOAT_H
00014 
00015 #include <SIBCMath.h>           // SI_EPSILON
00016 #include "AnimatableType.h"     // CSLAnimatableType
00017 class CCOLLADATemplate;
00018 class CSLCOLLADAScene;
00019 
00021 class XSIEXPORT CSLFloatProxy : public CSLAnimatableType
00022 {
00023 public:
00031     CSLFloatProxy(CdotXSITemplate *in_pTemplate, SI_Int in_nIndex, SI_Float in_fThreshold = SI_EPSILON);
00032 
00037     CSLFloatProxy& operator =(const CSLFloatProxy &in_Value);
00038 
00043     CSLFloatProxy& operator =(const SI_Float &in_Value);
00044 
00055     SI_Bool operator ==(const CSLFloatProxy &in_ToCompare);
00056 
00065     SI_Bool operator ==(const SI_Float &in_ToCompare);
00066 
00068     operator SI_Float();
00069 
00074     SI_Float Threshold();
00075 
00100     void SetThreshold( SI_Float in_fThreshold );
00101 
00105     virtual EElementType Type();
00106 
00110     virtual SI_Float GetFloatValue();
00111 
00115     virtual SI_Void SetFloatValue(SI_Float in_fValue);
00116 
00122     virtual SI_Error Connect (CdotXSITemplate *in_pTemplate, SI_Int in_nIndex );
00123 
00124 private:
00125     // no copy constructor
00126     CSLFloatProxy( CSLFloatProxy &in_pBasicType ){}
00127     
00128     SI_Bool Equal( SI_Float in_Float1, SI_Float in_Float2 );
00129 
00130     SI_Float m_fThreshold;
00131     SI_Float* m_pValue;
00132 };
00133 
00134 #endif