XSIMesh.h

Go to the documentation of this file.
00001 //***************************************************************************************
00002 // File supervisor: Crosswalk team
00012 //***************************************************************************************
00013 
00014 /******************************************************************************\
00015 *
00016 * File:          XSIMesh.h
00017 * Creation date: January 17, 2005
00018 * Purpose:       Declaration of class 'CSLXSIMesh'
00019 *
00020 \******************************************************************************/
00021 #ifndef _XSIMESH_H
00022 #define _XSIMESH_H
00023 
00024 #include "XSIGeometry.h"
00025 
00026 class CSLXSIVertexList;
00027 class CSLXSIPolygonList;
00028 class CSLXSITriangleList;
00029 class CSLXSITriangleStripList;
00030 class CSLXSIShape;
00031 
00032 
00038 class XSIEXPORT CSLXSIMesh
00039     : public CSLXSIGeometry
00040 {
00041 public:
00042     CSLXSIMesh(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00043     virtual ~CSLXSIMesh();
00044 
00048     SI_Error                        ClearXSIPolygonLists();
00049 
00053     SI_Error                        ClearXSITriangleLists();
00054 
00058     SI_Error                        ClearXSITriangleStripLists();
00059 
00063     SI_Int                          GetXSIPolygonListCount();
00064 
00068     SI_Int                          GetXSITriangleListCount();
00069 
00073     SI_Int                          GetXSITriangleStripListCount();
00074 
00078     CSLXSIPolygonList**             XSIPolygonLists();
00079 
00083     CSLXSITriangleList**            XSITriangleLists();
00084 
00088     CSLXSITriangleStripList**       XSITriangleStripLists();
00089 
00093     virtual CSLXSIPolygonList*              AddXSIPolygonList();
00094 
00098     virtual CSLXSITriangleList*             AddXSITriangleList();
00099 
00103     CSLXSITriangleStripList*        AddXSITriangleStripList();
00104 
00109     SI_Error                        RemoveXSIPolygonList(SI_Int l_nIndex);
00110 
00115     SI_Error                        RemoveXSITriangleList(SI_Int l_nIndex);
00116 
00121     SI_Error                        RemoveXSITriangleStripList(SI_Int l_nIndex);
00122 
00127     SI_Error                        RemoveXSIPolygonList(CSLXSIPolygonList* in_pObject);
00128 
00133     SI_Error                        RemoveXSITriangleList(CSLXSITriangleList* in_pObject);
00134 
00139     SI_Error                        RemoveXSITriangleStripList(CSLXSITriangleStripList* in_pObject);
00140 
00144     CSLXSIShape*                    XSIShape() { return m_pXSIShape; };
00145 
00149     CSLXSIVertexList*               XSIVertexList() { return m_pXSIVertexList; };
00150 
00154     CSLXSIShape*                    ConnectXSIShape(CSLXSIShape* );
00155 
00159     CSLXSIVertexList*               ConnectXSIVertexList(CSLXSIVertexList* );
00160 
00164     CSLXSIPolygonList*              ConnectXSIPolygonList(CSLXSIPolygonList* );
00165 
00169     CSLXSITriangleList*             ConnectXSITriangleList(CSLXSITriangleList* );
00170 
00174     CSLXSITriangleStripList*        ConnectXSITriangleStripList(CSLXSITriangleStripList* );
00175 
00179     virtual SI_Error                Synchronize();
00180 
00184     virtual ETemplateType           Type() { return XSI_MESH; };
00185 
00186     virtual SI_Error                Fix();
00187     virtual CSLAnimatableType*      ParameterFromName(SI_Char *in_szName);
00188 
00189 protected:
00190     CSLXSIShape* m_pXSIShape;
00191     CSLXSIVertexList *m_pXSIVertexList;
00192     CSIBCArray<CSLXSIPolygonList *> m_XSIPolygonLists;
00193     CSIBCArray<CSLXSITriangleList *> m_XSITriangleLists;
00194     CSIBCArray<CSLXSITriangleStripList *> m_XSITriangleStripLists;
00195 
00196     void *m_pReserved;  // reserved for future extension
00197 };
00198 
00199 #endif