CustomPSet.h

Go to the documentation of this file.
00001 //***************************************************************************************
00002 // File supervisor: Crosswalk team
00012 //***************************************************************************************
00013 
00014 #ifndef _CUSTOMPSET_H
00015 #define _CUSTOMPSET_H
00016 
00017 #include "Template.h"
00018 
00019 // Forward declaration
00020 class CSLVariantParameter;
00021 class CSLXSICustomParamInfo;
00022 
00028 class XSIEXPORT CSLCustomPSet
00029     : public CSLTemplate
00030 {
00031 public:
00038     CSLCustomPSet(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00039 
00041     virtual ~CSLCustomPSet();
00042 
00046     virtual SI_Error Synchronize();
00047 
00051     virtual ETemplateType Type() { return SI_CUSTOM_PSET; }
00052 
00054     enum EPropagationType
00055     {
00056         SI_BRANCH,      
00057         SI_NODE,        
00058         SI_INHERITED    
00059     };
00060 
00064     EPropagationType GetPropagationType();
00065 
00069     SI_Void SetPropagationType( EPropagationType in_PropagationType );
00070 
00072     // Parameters Functionality ///////////////////////////////////////////////
00074 
00078     CSLVariantParameter* AddParameter();
00079 
00084     SI_Error RemoveParameter( SI_Int in_nIndex );
00085 
00090     SI_Error RemoveParameter( CSLVariantParameter* in_pToRemove );
00091 
00095     SI_Error ClearParameters();
00096 
00101     CSLVariantParameter* ConnectParameter( CSLVariantParameter* in_pToConnect );
00102 
00106     CSLVariantParameter** GetParameterList();
00107 
00111     SI_Int GetParameterCount();
00112 
00117     virtual CSLAnimatableType* ParameterFromName(SI_Char *in_szName);
00118 
00124     virtual CSLAnimatableType* ParameterFromType(EFCurveType in_Type, SI_Char *in_szParameterName);
00125 
00127     // Custom parameter information
00129 
00135     CSLXSICustomParamInfo* CreateCustomParamInfo( SI_Int in_nIndex );
00136 
00144     CSLXSICustomParamInfo* CreateCustomParamInfo( CSLVariantParameter * in_pParam );
00145 
00151     CSLXSICustomParamInfo* ConnectCustomParamInfo( CSLXSICustomParamInfo *in_pToConnect );
00152 
00157     char *GetType();
00158 
00164     void SetType(char *in_pType);
00165 
00166 private:
00167     CSLStrEnumProxy<EPropagationType, SI_INHERITED>  m_PropagationType;
00168     CSIBCArray<CSLVariantParameter*> m_Parameters;
00169 
00170     SI_Void *m_pReserved;   // Reserved for future use
00171 };
00172 
00173 #endif