00001 //*************************************************************************************** 00002 // File supervisor: Crosswalk team 00012 //*************************************************************************************** 00013 00014 #ifndef _TRIANGLESTRIPLIST_H 00015 #define _TRIANGLESTRIPLIST_H 00016 00017 #include "Template.h" 00018 00019 class CSLTriangleStrip; 00020 class CSLBaseMaterial; 00021 00022 00031 class XSIEXPORT CSLTriangleStripList 00032 : public CSLTemplate 00033 { 00034 public: 00035 CSLTriangleStripList(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate); 00036 virtual ~CSLTriangleStripList(); 00037 00041 CSLTriangleStrip* AddTriangleStrip(); 00042 00046 SI_Int GetTriangleStripCount(); 00047 00051 CSLTriangleStrip** TriangleStrips(); 00052 00057 SI_Error RemoveTriangleStrip(SI_Int in_nIndex); 00058 00063 SI_Error RemoveTriangleStrip(CSLTriangleStrip *in_pTriangleStrip); 00064 00068 SI_Error ClearTriangleStrips(); 00069 00073 CSLBaseMaterial* GetMaterial() { return m_pMaterial; } 00074 00078 SI_Void SetMaterial(CSLBaseMaterial *in_pNewMaterial) { m_pMaterial = in_pNewMaterial; } 00079 00080 // Connection functions 00081 CSLTriangleStrip* ConnectTriangleStrip(CSLTriangleStrip* in_pNewTriStrip); 00082 00086 virtual ETemplateType Type() { return SI_TRIANGLE_STRIP_LIST; } 00087 virtual SI_Error Synchronize(); 00088 virtual CSLAnimatableType* ParameterFromName(SI_Char *in_szName); 00089 00090 private: 00091 CSIBCArray<CSLTriangleStrip* > m_TriangleStrips; 00092 CSLBaseMaterial* m_pMaterial; 00093 00094 void *m_pReserved; // reserved for future extension 00095 }; 00096 00097 #endif