00001 //*************************************************************************************** 00002 // File supervisor: Crosswalk team 00012 //*************************************************************************************** 00013 00014 #ifndef _XSITRIANGLESTRIPLIST_H 00015 #define _XSITRIANGLESTRIPLIST_H 00016 00017 #include "XSISubComponentList.h" 00018 #include "Material.h" 00019 00034 class XSIEXPORT CSLXSITriangleStripList 00035 : public CSLXSISubComponentList 00036 { 00037 public: 00040 typedef CSLArrayProxy<SI_Int, SI_Int, 1> CSLIntArray; 00041 00048 CSLXSITriangleStripList(CSLScene *in_pScene, CSLModel *in_pModel, CdotXSITemplate *in_pTemplate); 00049 00052 virtual ~CSLXSITriangleStripList(); 00053 00057 virtual ETemplateType Type() { return XSI_TRIANGLE_STRIP_LIST; } 00058 00062 CSLBaseMaterial* GetMaterial() { return m_pMaterial; } 00063 00067 CSIBCString GetMaterialName(); 00068 00072 SI_Void SetMaterial(CSLBaseMaterial *in_pNewMaterial); 00073 00077 SI_Void SetMaterialName(const CSIBCString& in_szNewMaterialName); 00078 00082 SI_Int GetTriangleStripCount(); 00083 00087 CSLXSITriangleStripList::CSLIntArray* GetTriangleStripNodeCountArray(); 00088 00092 CSLIntArray* GetVertexIndices(); 00093 00097 virtual SI_Error SetCount(SI_Int); 00098 00102 SI_Error Synchronize(); 00103 00104 private: 00105 CSLIntArray m_TriangleStripNodeCountArray; 00106 00107 CSLIntArray m_VertexIndices; 00108 00109 CSLBaseMaterial* m_pMaterial; 00110 00111 CSIBCString m_szMaterialName; 00112 00113 void *m_pReserved; // reserved for future extension 00114 }; 00115 00116 #endif