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