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 _TRIANGLESTRIPLIST_H 00013 #define _TRIANGLESTRIPLIST_H 00014 00015 #include "Template.h" 00016 00017 class CSLTriangleStrip; 00018 class CSLBaseMaterial; 00019 00020 00027 class XSIEXPORT CSLTriangleStripList 00028 : public CSLTemplate 00029 { 00030 public: 00031 CSLTriangleStripList(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate); 00032 virtual ~CSLTriangleStripList(); 00033 00037 CSLTriangleStrip* AddTriangleStrip(); 00038 00042 SI_Int GetTriangleStripCount(); 00043 00047 CSLTriangleStrip** TriangleStrips(); 00048 00053 SI_Error RemoveTriangleStrip(SI_Int in_nIndex); 00054 00059 SI_Error RemoveTriangleStrip(CSLTriangleStrip *in_pTriangleStrip); 00060 00064 SI_Error ClearTriangleStrips(); 00065 00069 CSLBaseMaterial* GetMaterial() { return m_pMaterial; } 00070 00075 SI_Void SetMaterial(CSLBaseMaterial *in_pNewMaterial) { m_pMaterial = in_pNewMaterial; } 00076 00077 // Connection functions 00078 CSLTriangleStrip* ConnectTriangleStrip(CSLTriangleStrip* in_pNewTriStrip); 00079 00080 virtual ETemplateType Type() { return SI_TRIANGLE_STRIP_LIST; } 00081 virtual SI_Error Synchronize(); 00082 virtual CSLAnimatableType* ParameterFromName(SI_Char *in_szName); 00083 00084 private: 00085 CSIBCArray<CSLTriangleStrip* > m_TriangleStrips; 00086 CSLBaseMaterial* m_pMaterial; 00087 00088 void *m_pReserved; // reserved for future extension 00089 }; 00090 00091 #endif