XSINurbsTrimList.h

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