TriangleStripList.h

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