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