00001 //*************************************************************************************** 00002 // File supervisor: Crosswalk team 00012 //*************************************************************************************** 00013 00014 #ifndef _XSINURBSTRIMLIST_H 00015 #define _XSINURBSTRIMLIST_H 00016 00017 #include "Template.h" 00018 00019 class CSLCurveList; 00020 00027 class XSIEXPORT CSLNurbsTrim 00028 : public CSLTemplate 00029 { 00030 public: 00032 enum EProjectionType 00033 { 00034 SI_UV, 00035 SI_WORLD 00036 }; 00037 00041 SI_Error Synchronize(); 00042 00048 CSLNurbsTrim(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate); 00049 00051 virtual ~CSLNurbsTrim(); 00052 00056 ETemplateType Type(){ return XSI_NURBS_TRIM; } 00057 00061 SI_Bool GetBoundaryFlag(); 00062 00066 SI_Void SetBoundaryFlag( SI_Bool in_Flag ); 00067 00071 EProjectionType GetProjectionType(); 00072 00076 SI_Void SetProjectionType( EProjectionType in_Type ); 00077 00078 00080 // Trim Functionality ///////////////////////////////////////////////// 00082 00086 CSLCurveList* CurveList() { return m_pTrimCurveList; }; 00087 00088 // Connection functions 00089 CSLCurveList* ConnectCurveList(CSLCurveList*); 00090 virtual SI_Error Fix(); 00091 00092 private: 00093 CSLCurveList* m_pTrimCurveList; 00094 CSLBoolProxy m_Boundary; 00095 CSLEnumProxy<EProjectionType, SI_WORLD> m_Projection; 00096 00097 SI_Void *m_pReserved; 00098 }; 00099 00100 #endif