XSITriangleStripList.h

Go to the documentation of this file.
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