XSITriangleList.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 _XSITRIANGLELIST_H
00013 #define _XSITRIANGLELIST_H
00014 
00015 #include "XSISubComponentList.h"
00016 #include "Material.h"
00017 
00018 
00028 class XSIEXPORT CSLXSITriangleList
00029     : public CSLXSISubComponentList
00030 {
00031 public:
00038     CSLXSITriangleList(CSLScene *in_pScene, CSLModel *in_pModel, CdotXSITemplate *in_pTemplate);
00039 
00042     virtual ~CSLXSITriangleList();
00043 
00047     virtual ETemplateType           Type() { return XSI_TRIANGLE_LIST; }
00048 
00052     CSLBaseMaterial*                GetMaterial() { return m_pMaterial; }
00053 
00057     CSIBCString                     GetMaterialName();
00058 
00063     SI_Void                         SetMaterial(CSLBaseMaterial *in_pNewMaterial);
00064 
00069     SI_Void                         SetMaterialName(const CSIBCString& in_szNewMaterialName);
00070 
00074     CSLIntArray*                    GetVertexIndices();
00075 
00079     SI_Int                          GetTriangleCount();
00080 
00084     virtual SI_Error                SetCount(SI_Int);
00085 
00089     virtual SI_Error Synchronize();
00090 
00091 private:
00092     CSLIntArray                     m_VertexIndices;
00093 
00094     CSLBaseMaterial*                m_pMaterial;
00095 
00096     CSIBCString                     m_szMaterialName;
00097 
00098     void *m_pReserved;  // reserved for future extension
00099 };
00100 
00101 #endif