Mesh.h

Go to the documentation of this file.
00001 //***************************************************************************************
00002 // File supervisor: Crosswalk team
00012 //***************************************************************************************
00013 
00014 #ifndef _MESH_H
00015 #define _MESH_H
00016 
00017 #include "Geometry.h"
00018 
00019 class CSLPolygonList;
00020 class CSLTriangleList;
00021 class CSLTriangleStripList;
00022 class CSLBaseShape;
00023 
00024 
00029 class XSIEXPORT CSLMesh
00030     : public CSLGeometry
00031 {
00032 public:
00033     CSLMesh(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00034     virtual ~CSLMesh();
00035 
00039     SI_Error                        ClearPolygonLists();
00040 
00044     SI_Error                        ClearTriangleLists();
00045 
00049     SI_Error                        ClearTriangleStripLists();
00050 
00054     SI_Int                          GetPolygonListCount();
00055 
00059     SI_Int                          GetTriangleListCount();
00060 
00064     SI_Int                          GetTriangleStripListCount();
00065 
00069     CSLPolygonList**                PolygonLists();
00070 
00074     CSLTriangleList**               TriangleLists();
00075 
00079     CSLTriangleStripList**          TriangleStripLists();
00080 
00084     CSLPolygonList*                 AddPolygonList();
00085 
00089     CSLTriangleList*                AddTriangleList();
00090 
00094     CSLTriangleStripList*           AddTriangleStripList();
00095 
00100     SI_Error                        RemovePolygonList(SI_Int l_nIndex);
00101 
00106     SI_Error                        RemoveTriangleList(SI_Int l_nIndex);
00107 
00112     SI_Error                        RemoveTriangleStripList(SI_Int l_nIndex);
00113 
00118     SI_Error                        RemovePolygonList(CSLPolygonList* in_pObject);
00119 
00124     SI_Error                        RemoveTriangleList(CSLTriangleList* in_pObject);
00125 
00130     SI_Error                        RemoveTriangleStripList(CSLTriangleStripList* in_pObject);
00131 
00135     CSLBaseShape*                   Shape() { return m_pShape; };
00136 
00137     // Connection functions
00138     CSLBaseShape*                   ConnectShape(CSLBaseShape*);
00139     CSLPolygonList*                 ConnectPolygonList(CSLPolygonList*);
00140     CSLTriangleList*                ConnectTriangleList(CSLTriangleList*);
00141     CSLTriangleStripList*           ConnectTriangleStripList(CSLTriangleStripList*);
00142 
00143     virtual SI_Error                Synchronize();
00144     virtual SI_Error                Fix();
00145 
00149     virtual ETemplateType           Type() { return SI_MESH; };
00150     virtual CSLAnimatableType*      ParameterFromName(SI_Char *in_szName);
00151 
00152 private:
00153     CSLBaseShape* m_pShape;
00154     CSIBCArray<CSLPolygonList *> m_PolygonLists;
00155     CSIBCArray<CSLTriangleList *> m_TriangleLists;
00156     CSIBCArray<CSLTriangleStripList *> m_TriangleStripLists;
00157 
00158     void *m_pReserved;  // reserved for future extension
00159 };
00160 
00161 #endif