XSILimit.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 _LIMIT_H
00013 #define _LIMIT_H
00014 
00015 #include "Template.h"
00016 
00017 
00018 
00024 class XSIEXPORT CSLXSILimit
00025     : public CSLTemplate
00026 {
00027 public:
00033     CSLXSILimit
00034     (
00035         CSLScene* in_pScene,
00036         CSLModel *in_pModel,
00037         CdotXSITemplate* in_pTemplate
00038     );
00040     virtual ~CSLXSILimit();
00041 
00042     ETemplateType Type(){ return XSI_LIMIT; }
00043 
00047     CSLAnimatableType* GetParameter();
00048 
00054     CSLAnimatableType* ConnectParameter(CSLAnimatableType* in_pNewParameter);
00055 
00059     virtual SI_Float    GetMinimum();
00060 
00064     virtual SI_Void     SetMinimum(SI_Float in_fMin);
00065 
00069     virtual SI_Float    GetMaximum();
00070 
00074     virtual SI_Void     SetMaximum(SI_Float in_fMax);
00075 
00079     virtual SI_Bool GetMinimumActive();
00080 
00084     virtual SI_Void     SetMinimumActive(SI_Bool in_bActive);
00085 
00089     virtual SI_Bool GetMaximumActive();
00090 
00094     virtual SI_Void     SetMaximumActive(SI_Bool in_bActive);
00095 
00099     SI_Char* GetParameterName();
00100 
00104     SI_Void SetParameterName(SI_Char *in_szParameterName);
00105 
00110     virtual const SI_Char* GetParameterName(CSLAnimatableType* in_pParameter);
00111 
00116     virtual CSLAnimatableType *ParameterFromName(SI_Char *in_szName);
00117 
00123     virtual CSLAnimatableType *ParameterFromType(EFCurveType in_Type, SI_Char *in_szParameterName);
00124 
00128     virtual SI_Error    Evaluate();
00129 
00130 
00131 private:
00132 
00133     CSLAnimatableType*  m_pParameter;
00134     CSLStringProxy      m_szParameterName;
00135     CSLFloatProxy       m_fMin;
00136     CSLFloatProxy       m_fMax;
00137     CSLBoolProxy        m_bMinActive;
00138     CSLBoolProxy        m_bMaxActive;
00139 
00140     void *m_pReserved;  // reserved for future extension
00141 };
00142 
00143 #endif