# XSITriangleStripList.h

    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 _XSITRIANGLESTRIPLIST_H
    00013 #define _XSITRIANGLESTRIPLIST_H
    00014
    00015 #include "XSISubComponentList.h"
    00016 #include "Material.h"
    00017
    00030 class XSIEXPORT CSLXSITriangleStripList
    00031     : public CSLXSISubComponentList
    00032 {
    00033 public:
    00037     typedef CSLArrayProxy<SI_Int, SI_Int, 1> CSLIntArray;
    00038
    00045     CSLXSITriangleStripList(CSLScene *in_pScene, CSLModel *in_pModel, CdotXSITemplate *in_pTemplate);
    00046
    00049     virtual ~CSLXSITriangleStripList();
    00050
    00054     virtual ETemplateType           Type() { return XSI_TRIANGLE_STRIP_LIST; }
    00055
    00059     CSLBaseMaterial*                GetMaterial() { return m_pMaterial; }
    00060
    00064     CSIBCString                     GetMaterialName();
    00065
    00070     SI_Void                         SetMaterial(CSLBaseMaterial *in_pNewMaterial);
    00071
    00076     SI_Void                         SetMaterialName(const CSIBCString& in_szNewMaterialName);
    00077
    00081     SI_Int                          GetTriangleStripCount();
    00082
    00086     CSLXSITriangleStripList::CSLIntArray*   GetTriangleStripNodeCountArray();
    00087
    00091     CSLIntArray*                    GetVertexIndices();
    00092
    00096     virtual SI_Error                SetCount(SI_Int);
    00097
    00101     SI_Error Synchronize();
    00102
    00103 private:
    00104     CSLIntArray                     m_TriangleStripNodeCountArray;
    00105
    00106     CSLIntArray                     m_VertexIndices;
    00107
    00108     CSLBaseMaterial*                m_pMaterial;
    00109
    00110     CSIBCString                     m_szMaterialName;
    00111
    00112     void *m_pReserved;  // reserved for future extension
    00113 };
    00114
    00115 #endif