XSILimit.h

00001 //***************************************************************************************
00002 //
00003 // File supervisor: Softimage 3D Games & 3D Bridge team
00004 //
00005 // (c) Copyright 2001-2002 Avid Technology, Inc. . All rights reserved.
00006 //
00007 //***************************************************************************************
00008 
00009 /****************************************************************************************
00010 THIS CODE IS PUBLISHED AS A SAMPLE ONLY AND IS PROVIDED "AS IS".
00011 IN NO EVENT SHALL SOFTIMAGE, AVID TECHNOLOGY, INC. AND/OR THEIR RESPECTIVE
00012 SUPPLIERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
00013 DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
00014 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
00015 CONNECTION WITH THE USE OR PERFORMANCE OF THIS CODE .
00016 
00017 COPYRIGHT NOTICE. Copyright © 1999-2002 Avid Technology Inc. . All rights reserved. 
00018 
00019 SOFTIMAGE is a registered trademark of Avid Technology Inc. or its subsidiaries 
00020 or divisions. Windows NT is a registered trademark of Microsoft Corp. All other
00021 trademarks contained herein are the property of their respective owners. 
00022 ****************************************************************************************/
00023 
00024 
00025 #ifndef _LIMIT_H
00026 #define _LIMIT_H
00027 
00028 #include "Template.h"
00029 
00030 
00031 
00033 
00037 class XSIEXPORT CSLXSILimit
00038     : public CSLTemplate
00039 {
00040 public:
00046     CSLXSILimit
00047     (
00048         CSLScene* in_pScene,
00049         CSLModel *in_pModel,
00050         CdotXSITemplate* in_pTemplate
00051     );
00053     virtual ~CSLXSILimit();
00054 
00055     ETemplateType Type(){ return XSI_LIMIT; }
00056 
00060     CSLAnimatableType* GetParameter();
00061 
00067     CSLAnimatableType* ConnectParameter(CSLAnimatableType* in_pNewParameter);
00068 
00072     virtual SI_Float    GetMinimum();
00073 
00077     virtual SI_Void     SetMinimum(SI_Float in_fMin);
00078 
00082     virtual SI_Float    GetMaximum();
00083 
00087     virtual SI_Void     SetMaximum(SI_Float in_fMax);
00088 
00092     virtual SI_Bool GetMinimumActive();
00093 
00097     virtual SI_Void     SetMinimumActive(SI_Bool in_bActive);
00098 
00102     virtual SI_Bool GetMaximumActive();
00103 
00107     virtual SI_Void     SetMaximumActive(SI_Bool in_bActive);
00108 
00112     SI_Char* GetParameterName();
00113 
00117     SI_Void SetParameterName(SI_Char *in_szParameterName);
00118 
00123     virtual const SI_Char* GetParameterName(CSLAnimatableType* in_pParameter);
00124 
00129     virtual CSLAnimatableType *ParameterFromName(SI_Char *in_szName);
00130 
00136     virtual CSLAnimatableType *ParameterFromType(EFCurveType in_Type, SI_Char *in_szParameterName);
00137 
00141     virtual SI_Error    Evaluate();
00142 
00143 
00144 private:
00145     
00146     CSLAnimatableType*  m_pParameter;
00147     CSLStringProxy      m_szParameterName;
00148     CSLFloatProxy       m_fMin;
00149     CSLFloatProxy       m_fMax;
00150     CSLBoolProxy        m_bMinActive;
00151     CSLBoolProxy        m_bMaxActive;
00152 
00153     void *m_pReserved;  // reserved for future extension
00154 };
00155 
00156 #endif