FXNode.h

Go to the documentation of this file.
00001 //***************************************************************************************
00002 // File supervisor: Crosswalk team
00012 //***************************************************************************************
00013 
00014 #ifndef _FXNODE_H
00015 #define _FXNODE_H
00016 
00017 #include "Template.h"
00018 
00019 class CSLVariantParameter;
00020 class CSLFXOperatorConnection;
00021 
00027 class XSIEXPORT CSLFXOperator
00028     : public CSLTemplate
00029 {
00030 public:
00031 
00033     enum EOutputType
00034     {
00035         SI_DEFAULT = 0, 
00036     };
00037 
00044     CSLFXOperator(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00045 
00047     virtual ~CSLFXOperator();
00048 
00052     ETemplateType Type(){ return XSI_FXOPERATOR; }
00053 
00057     SI_Error Synchronize();
00058 
00059 
00063     EOutputType GetOutputType();
00064 
00068     SI_Void SetOutputType( EOutputType in_OutputType );
00069 
00073     SI_Char* GetEffectID();
00074 
00078     SI_Void SetEffectID( SI_Char* in_szProgID );
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     // Connection points functionality ////////////////////////////////////////
00138 
00142     CSLFXOperatorConnection* AddConnectionPoint();
00143 
00148     SI_Error RemoveConnectionPoint( SI_Int in_nIndex );
00149 
00154     SI_Error RemoveConnectionPoint( CSLFXOperatorConnection* in_pToRemove );
00155 
00159     SI_Error ClearConnectionPoints();
00160 
00165     CSLFXOperatorConnection* ConnectConnectionPoint( CSLFXOperatorConnection* in_pToConnect );
00166 
00170     CSLFXOperatorConnection** GetConnectionPointList();
00171 
00175     SI_Int GetConnectionPointCount();
00176 
00177 private:
00178     CSLStringProxy m_ProgID;
00179     CSLEnumProxy<EOutputType, SI_DEFAULT> m_OutputType;
00180     CSIBCArray<CSLFXOperatorConnection*> m_ConnectionPoints;
00181     CSIBCArray<CSLVariantParameter*> m_Parameters;
00182 
00183     SI_Void *m_pReserved;
00184 };
00185 
00186 #endif