XSIPolygonList.h

Go to the documentation of this file.
00001 //***************************************************************************************
00002 // File supervisor: Crosswalk team
00012 //***************************************************************************************
00013 
00014 #ifndef _XSIPOLYGONLIST_H
00015 #define _XSIPOLYGONLIST_H
00016 
00017 #include "XSISubComponentList.h"
00018 #include "Material.h"
00019 #include "Scene.h"
00020 #include "Model.h"
00021 #include "XSIIndexList.h"
00022 
00035 class XSIEXPORT CSLXSIPolygonList
00036     : public CSLXSISubComponentList
00037 {
00038 public:
00041     typedef CSLArrayProxy<SI_Int, SI_Int, 1> CSLIntArray;
00042 
00049     CSLXSIPolygonList(CSLScene *in_pScene, CSLModel *in_pModel, CdotXSITemplate *in_pTemplate);
00050 
00053     virtual ~CSLXSIPolygonList();
00054 
00058     virtual ETemplateType           Type() { return XSI_POLYGON_LIST; }
00059 
00063     CSLBaseMaterial*                GetMaterial() { return m_pMaterial; }
00064 
00068     CSIBCString                     GetMaterialName();
00069 
00073     SI_Void                         SetMaterial(CSLBaseMaterial *in_pNewMaterial);
00074 
00078     SI_Void                         SetMaterialName(const CSIBCString& in_szNewMaterialName);
00079 
00083     SI_Int                          GetPolygonCount();
00084 
00088     CSLIntArray*                    GetPolygonNodeCountArray();
00089 
00093     CSLIntArray*                    GetVertexIndices();
00094 
00098     SI_Error Synchronize();
00099 
00103     virtual SI_Error                    SetCount(SI_Int);
00104 
00105     //**********************************************************************************
00106     // Index position helper (always only one index position list)
00107     //**********************************************************************************
00108 
00113     CSLXSIIndexList*    ConnectIndexList( CSLXSIIndexList* in_pNewXSIIndexList );
00114 
00118     virtual CSLXSIIndexList*    AddIndexList();
00119 
00123     CSLXSIIndexList*    GetIndexList();
00124 
00128     SI_Error                            RemoveIndexList();
00129 
00130 private:
00131     CSLIntArray                     m_PolygonNodeCountArray;
00132 
00133     CSLIntArray                     m_VertexIndices;
00134 
00135     CSLBaseMaterial*                m_pMaterial;
00136 
00137     CSIBCString                     m_szMaterialName;
00138 
00139     CSLXSIIndexList *               m_IndexList;
00140 
00141     void *m_pReserved;  // reserved for future extension
00142 };
00143 
00144 #endif