XSITriangleStripList.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 _XSITRIANGLESTRIPLIST_H
00013 #define _XSITRIANGLESTRIPLIST_H
00014 
00015 #include "XSISubComponentList.h"
00016 #include "Material.h"
00017 
00030 class XSIEXPORT CSLXSITriangleStripList
00031     : public CSLXSISubComponentList
00032 {
00033 public:
00037     typedef CSLArrayProxy<SI_Int, SI_Int, 1> CSLIntArray;
00038 
00045     CSLXSITriangleStripList(CSLScene *in_pScene, CSLModel *in_pModel, CdotXSITemplate *in_pTemplate);
00046 
00049     virtual ~CSLXSITriangleStripList();
00050 
00054     virtual ETemplateType           Type() { return XSI_TRIANGLE_STRIP_LIST; }
00055 
00059     CSLBaseMaterial*                GetMaterial() { return m_pMaterial; }
00060 
00064     CSIBCString                     GetMaterialName();
00065 
00070     SI_Void                         SetMaterial(CSLBaseMaterial *in_pNewMaterial);
00071 
00076     SI_Void                         SetMaterialName(const CSIBCString& in_szNewMaterialName);
00077 
00081     SI_Int                          GetTriangleStripCount();
00082 
00086     CSLXSITriangleStripList::CSLIntArray*   GetTriangleStripNodeCountArray();
00087 
00091     CSLIntArray*                    GetVertexIndices();
00092 
00096     virtual SI_Error                SetCount(SI_Int);
00097 
00101     SI_Error Synchronize();
00102 
00103 private:
00104     CSLIntArray                     m_TriangleStripNodeCountArray;
00105 
00106     CSLIntArray                     m_VertexIndices;
00107 
00108     CSLBaseMaterial*                m_pMaterial;
00109 
00110     CSIBCString                     m_szMaterialName;
00111 
00112     void *m_pReserved;  // reserved for future extension
00113 };
00114 
00115 #endif