XSINurbsProjectionList.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 _XSINURBSPROJECTIONLIST_H
00013 #define _XSINURBSPROJECTIONLIST_H
00014 
00015 #include "Template.h"
00016 
00017 class CSLCurveList;
00018 
00023 class XSIEXPORT CSLNurbsProjection
00024     : public CSLTemplate
00025 {
00026 public:
00028     enum EProjectionType
00029     {
00030         SI_UV,      
00031         SI_WORLD    
00032     };
00033 
00037     SI_Error Synchronize();
00038 
00039     SI_Error Fix();
00040 
00046     CSLNurbsProjection(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00047 
00049     virtual ~CSLNurbsProjection();
00050 
00054     ETemplateType Type(){ return XSI_NURBS_PROJECTION; }
00055 
00059     EProjectionType GetProjectionType();
00060 
00064     SI_Void SetProjectionType( EProjectionType in_Type );
00065 
00067     // Projection Functionality /////////////////////////////////////////////////
00069 
00073     CSLCurveList* CurveList();
00074 
00075     CSLCurveList* ConnectCurveList( CSLCurveList* in_pNewCurveList );
00076 
00077 private:
00078     CSLCurveList* m_pProjCurveList;
00079     CSLEnumProxy<EProjectionType, SI_WORLD> m_Projection;
00080 
00081     SI_Void *m_pReserved;
00082 };
00083 
00084 #endif