# XSIMesh.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 /******************************************************************************\
    00013 *
    00014 * File:          XSIMesh.h
    00015 * Creation date: January 17, 2005
    00016 * Purpose:       Declaration of class 'CSLXSIMesh'
    00017 *
    00018 \******************************************************************************/
    00019 #ifndef _XSIMESH_H
    00020 #define _XSIMESH_H
    00021
    00022 #include "XSIGeometry.h"
    00023
    00024 class CSLXSIVertexList;
    00025 class CSLXSIPolygonList;
    00026 class CSLXSITriangleList;
    00027 class CSLXSITriangleStripList;
    00028 class CSLXSIShape;
    00029
    00030
    00034 class XSIEXPORT CSLXSIMesh
    00035     : public CSLXSIGeometry
    00036 {
    00037 public:
    00038     CSLXSIMesh(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
    00039     virtual ~CSLXSIMesh();
    00040
    00044     SI_Error                        ClearXSIPolygonLists();
    00045
    00049     SI_Error                        ClearXSITriangleLists();
    00050
    00054     SI_Error                        ClearXSITriangleStripLists();
    00055
    00059     SI_Int                          GetXSIPolygonListCount();
    00060
    00064     SI_Int                          GetXSITriangleListCount();
    00065
    00069     SI_Int                          GetXSITriangleStripListCount();
    00070
    00074     CSLXSIPolygonList**             XSIPolygonLists();
    00075
    00079     CSLXSITriangleList**            XSITriangleLists();
    00080
    00084     CSLXSITriangleStripList**       XSITriangleStripLists();
    00085
    00089     virtual CSLXSIPolygonList*              AddXSIPolygonList();
    00090
    00094     virtual CSLXSITriangleList*             AddXSITriangleList();
    00095
    00099     CSLXSITriangleStripList*        AddXSITriangleStripList();
    00100
    00105     SI_Error                        RemoveXSIPolygonList(SI_Int l_nIndex);
    00106
    00111     SI_Error                        RemoveXSITriangleList(SI_Int l_nIndex);
    00112
    00117     SI_Error                        RemoveXSITriangleStripList(SI_Int l_nIndex);
    00118
    00123     SI_Error                        RemoveXSIPolygonList(CSLXSIPolygonList* in_pObject);
    00124
    00129     SI_Error                        RemoveXSITriangleList(CSLXSITriangleList* in_pObject);
    00130
    00135     SI_Error                        RemoveXSITriangleStripList(CSLXSITriangleStripList* in_pObject);
    00136
    00140     CSLXSIShape*                    XSIShape() { return m_pXSIShape; };
    00141
    00145     CSLXSIVertexList*               XSIVertexList() { return m_pXSIVertexList; };
    00146
    00151     CSLXSIShape*                    ConnectXSIShape(CSLXSIShape*);
    00152
    00157     CSLXSIVertexList*               ConnectXSIVertexList(CSLXSIVertexList*);
    00158
    00163     CSLXSIPolygonList*              ConnectXSIPolygonList(CSLXSIPolygonList*);
    00164
    00169     CSLXSITriangleList*             ConnectXSITriangleList(CSLXSITriangleList*);
    00170
    00175     CSLXSITriangleStripList*        ConnectXSITriangleStripList(CSLXSITriangleStripList*);
    00176
    00180     virtual SI_Error                Synchronize();
    00181
    00185     virtual ETemplateType           Type() { return XSI_MESH; };
    00186
    00187     virtual SI_Error                Fix();
    00188     virtual CSLAnimatableType*      ParameterFromName(SI_Char *in_szName);
    00189
    00190 protected:
    00191     CSLXSIShape* m_pXSIShape;
    00192     CSLXSIVertexList *m_pXSIVertexList;
    00193     CSIBCArray<CSLXSIPolygonList *> m_XSIPolygonLists;
    00194     CSIBCArray<CSLXSITriangleList *> m_XSITriangleLists;
    00195     CSIBCArray<CSLXSITriangleStripList *> m_XSITriangleStripLists;
    00196
    00197     void *m_pReserved;  // reserved for future extension
    00198 };
    00199
    00200 #endif