00001 //*************************************************************************************** 00002 // File supervisor: Crosswalk team 00012 //*************************************************************************************** 00013 00014 #ifndef _LIMIT_H 00015 #define _LIMIT_H 00016 00017 #include "Template.h" 00018 00019 00020 00028 class XSIEXPORT CSLXSILimit 00029 : public CSLTemplate 00030 { 00031 public: 00037 CSLXSILimit 00038 ( 00039 CSLScene* in_pScene, 00040 CSLModel *in_pModel, 00041 CdotXSITemplate* in_pTemplate 00042 ); 00044 virtual ~CSLXSILimit(); 00045 00049 ETemplateType Type(){ return XSI_LIMIT; } 00050 00054 CSLAnimatableType* GetParameter(); 00055 00061 CSLAnimatableType* ConnectParameter(CSLAnimatableType* in_pNewParameter); 00062 00066 virtual SI_Float GetMinimum(); 00067 00071 virtual SI_Void SetMinimum(SI_Float in_fMin); 00072 00076 virtual SI_Float GetMaximum(); 00077 00081 virtual SI_Void SetMaximum(SI_Float in_fMax); 00082 00086 virtual SI_Bool GetMinimumActive(); 00087 00091 virtual SI_Void SetMinimumActive(SI_Bool in_bActive); 00092 00096 virtual SI_Bool GetMaximumActive(); 00097 00101 virtual SI_Void SetMaximumActive(SI_Bool in_bActive); 00102 00106 SI_Char* GetParameterName(); 00107 00111 SI_Void SetParameterName(SI_Char *in_szParameterName); 00112 00117 virtual const SI_Char* GetParameterName(CSLAnimatableType* in_pParameter); 00118 00123 virtual CSLAnimatableType *ParameterFromName(SI_Char *in_szName); 00124 00130 virtual CSLAnimatableType *ParameterFromType(EFCurveType in_Type, SI_Char *in_szParameterName); 00131 00136 virtual SI_Error Evaluate(); 00137 00138 00139 private: 00140 00141 CSLAnimatableType* m_pParameter; 00142 CSLStringProxy m_szParameterName; 00143 CSLFloatProxy m_fMin; 00144 CSLFloatProxy m_fMax; 00145 CSLBoolProxy m_bMinActive; 00146 CSLBoolProxy m_bMaxActive; 00147 00148 void *m_pReserved; // reserved for future extension 00149 }; 00150 00151 #endif