00001 //*************************************************************************************** 00002 // 00003 // File supervisor: Crosswalk team 00004 // 00005 // Copyright 2008 Autodesk, Inc. All rights reserved. 00006 // Use of this software is subject to the terms of the Autodesk license agreement 00007 // provided at the time of installation or download, or which otherwise accompanies 00008 // this software in either electronic or hard copy form. 00009 // 00010 //*************************************************************************************** 00011 00012 #ifndef _XSINURBSTRIMLIST_H 00013 #define _XSINURBSTRIMLIST_H 00014 00015 #include "Template.h" 00016 00017 class CSLCurveList; 00018 00023 class XSIEXPORT CSLNurbsTrim 00024 : public CSLTemplate 00025 { 00026 public: 00028 enum EProjectionType 00029 { 00030 SI_UV, 00031 SI_WORLD 00032 }; 00033 00037 SI_Error Synchronize(); 00038 00044 CSLNurbsTrim(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate); 00045 00047 virtual ~CSLNurbsTrim(); 00048 00052 ETemplateType Type(){ return XSI_NURBS_TRIM; } 00053 00057 SI_Bool GetBoundaryFlag(); 00058 00062 SI_Void SetBoundaryFlag( SI_Bool in_Flag ); 00063 00067 EProjectionType GetProjectionType(); 00068 00072 SI_Void SetProjectionType( EProjectionType in_Type ); 00073 00074 00076 // Trim Functionality ///////////////////////////////////////////////// 00078 00082 CSLCurveList* CurveList() { return m_pTrimCurveList; }; 00083 00084 // Connection functions 00085 CSLCurveList* ConnectCurveList(CSLCurveList*); 00086 virtual SI_Error Fix(); 00087 00088 private: 00089 CSLCurveList* m_pTrimCurveList; 00090 CSLBoolProxy m_Boundary; 00091 CSLEnumProxy<EProjectionType, SI_WORLD> m_Projection; 00092 00093 SI_Void *m_pReserved; 00094 }; 00095 00096 #endif