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