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 #ifndef _CUSTOMPSET_H 00025 #define _CUSTOMPSET_H 00026 00027 #include "Template.h" 00028 00029 // Forward declaration 00030 class CSLVariantParameter; 00031 class CSLXSICustomParamInfo; 00032 00034 class XSIEXPORT CSLCustomPSet 00035 : public CSLTemplate 00036 { 00037 public: 00044 CSLCustomPSet(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate); 00045 00047 virtual ~CSLCustomPSet(); 00048 00052 virtual SI_Error Synchronize(); 00053 00057 virtual ETemplateType Type() { return SI_CUSTOM_PSET; } 00058 00060 enum EPropagationType 00061 { 00062 SI_BRANCH, 00063 SI_NODE, 00064 SI_INHERITED 00065 }; 00066 00068 00071 EPropagationType GetPropagationType(); 00072 00074 00078 SI_Void SetPropagationType( EPropagationType in_PropagationType ); 00079 00081 // Parameters Functionality /////////////////////////////////////////////// 00083 00087 CSLVariantParameter* AddParameter(); 00088 00093 SI_Error RemoveParameter( SI_Int in_nIndex ); 00094 00099 SI_Error RemoveParameter( CSLVariantParameter* in_pToRemove ); 00100 00104 SI_Error ClearParameters(); 00105 00110 CSLVariantParameter* ConnectParameter( CSLVariantParameter* in_pToConnect ); 00111 00115 CSLVariantParameter** GetParameterList(); 00116 00120 SI_Int GetParameterCount(); 00121 00126 virtual CSLAnimatableType* ParameterFromName(SI_Char *in_szName); 00127 00133 virtual CSLAnimatableType* ParameterFromType(EFCurveType in_Type, SI_Char *in_szParameterName); 00134 00136 // Custom parameter information 00138 00144 CSLXSICustomParamInfo* CreateCustomParamInfo( SI_Int in_nIndex ); 00145 00152 CSLXSICustomParamInfo* CreateCustomParamInfo( CSLVariantParameter * in_pParam ); 00153 00159 CSLXSICustomParamInfo* ConnectCustomParamInfo( CSLXSICustomParamInfo *in_pToConnect ); 00160 00165 char *GetType(); 00166 00172 void SetType(char *in_pType); 00173 00174 private: 00175 CSLStrEnumProxy<EPropagationType, SI_INHERITED> m_PropagationType; 00176 CSIBCArray<CSLVariantParameter*> m_Parameters; 00177 00178 SI_Void *m_pReserved; // Reserved for future use 00179 }; 00180 00181 #endif