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