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 _FXNODE_H 00025 #define _FXNODE_H 00026 00027 #include "Template.h" 00028 00029 class CSLVariantParameter; 00030 class CSLFXOperatorConnection; 00031 00033 class XSIEXPORT CSLFXOperator 00034 : public CSLTemplate 00035 { 00036 public: 00037 00039 enum EOutputType 00040 { 00041 SI_DEFAULT = 0, 00042 }; 00049 CSLFXOperator(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate); 00050 00052 virtual ~CSLFXOperator(); 00053 00057 ETemplateType Type(){ return XSI_FXOPERATOR; } 00058 00062 SI_Error Synchronize(); 00063 00064 00068 EOutputType GetOutputType(); 00069 00073 SI_Void SetOutputType( EOutputType in_OutputType ); 00074 00078 SI_Char* GetEffectID(); 00079 00083 SI_Void SetEffectID( SI_Char* in_szProgID ); 00084 00086 // Parameters Functionality /////////////////////////////////////////////// 00088 00092 CSLVariantParameter* AddParameter(); 00093 00098 SI_Error RemoveParameter( SI_Int in_nIndex ); 00099 00104 SI_Error RemoveParameter( CSLVariantParameter* in_pToRemove ); 00105 00109 SI_Error ClearParameters(); 00110 00115 CSLVariantParameter* ConnectParameter( CSLVariantParameter* in_pToConnect ); 00116 00120 CSLVariantParameter** GetParameterList(); 00121 00125 SI_Int GetParameterCount(); 00126 00131 virtual CSLAnimatableType* ParameterFromName(SI_Char *in_szName); 00132 00138 virtual CSLAnimatableType* ParameterFromType(EFCurveType in_Type, SI_Char *in_szParameterName); 00139 00141 // Connection points functionality //////////////////////////////////////// 00143 00147 CSLFXOperatorConnection* AddConnectionPoint(); 00148 00153 SI_Error RemoveConnectionPoint( SI_Int in_nIndex ); 00154 00159 SI_Error RemoveConnectionPoint( CSLFXOperatorConnection* in_pToRemove ); 00160 00164 SI_Error ClearConnectionPoints(); 00165 00170 CSLFXOperatorConnection* ConnectConnectionPoint( CSLFXOperatorConnection* in_pToConnect ); 00171 00175 CSLFXOperatorConnection** GetConnectionPointList(); 00176 00180 SI_Int GetConnectionPointCount(); 00181 00182 private: 00183 CSLStringProxy m_ProgID; 00184 CSLEnumProxy<EOutputType, SI_DEFAULT> m_OutputType; 00185 CSIBCArray<CSLFXOperatorConnection*> m_ConnectionPoints; 00186 CSIBCArray<CSLVariantParameter*> m_Parameters; 00187 00188 SI_Void *m_pReserved; 00189 }; 00190 00191 #endif