00001 /**************************************************************************************** 00002 THIS CODE IS PUBLISHED AS A SAMPLE ONLY AND IS PROVIDED "AS IS". 00003 IN NO EVENT SHALL SOFTIMAGE, AVID TECHNOLOGY, INC. AND/OR THEIR RESPECTIVE 00004 SUPPLIERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY 00005 DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 00006 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 00007 CONNECTION WITH THE USE OR PERFORMANCE OF THIS CODE . 00008 00009 COPYRIGHT NOTICE. Copyright © 1999-2002 Avid Technology Inc. . All rights reserved. 00010 00011 SOFTIMAGE is a registered trademark of Avid Technology Inc. or its subsidiaries 00012 or divisions. Windows NT is a registered trademark of Microsoft Corp. All other 00013 trademarks contained herein are the property of their respective owners. 00014 ****************************************************************************************/ 00015 00016 /******************************************************************************\ 00017 * 00018 * File: XSIMesh.h 00019 * Creation date: January 17, 2005 00020 * Purpose: Declaration of class 'CSLXSIMesh' 00021 * 00022 \******************************************************************************/ 00023 #ifndef _XSIMESH_H 00024 #define _XSIMESH_H 00025 00026 #include "XSIGeometry.h" 00027 00028 class CSLXSIVertexList; 00029 class CSLXSIPolygonList; 00030 class CSLXSITriangleList; 00031 class CSLXSITriangleStripList; 00032 class CSLXSIShape; 00033 00034 00042 class XSIEXPORT CSLXSIMesh 00043 : public CSLXSIGeometry 00044 { 00045 public: 00046 CSLXSIMesh(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate); 00047 virtual ~CSLXSIMesh(); 00048 00052 SI_Error ClearXSIPolygonLists(); 00053 00057 SI_Error ClearXSITriangleLists(); 00058 00062 SI_Error ClearXSITriangleStripLists(); 00063 00067 SI_Int GetXSIPolygonListCount(); 00068 00072 SI_Int GetXSITriangleListCount(); 00073 00077 SI_Int GetXSITriangleStripListCount(); 00078 00082 CSLXSIPolygonList** XSIPolygonLists(); 00083 00087 CSLXSITriangleList** XSITriangleLists(); 00088 00092 CSLXSITriangleStripList** XSITriangleStripLists(); 00093 00097 virtual CSLXSIPolygonList* AddXSIPolygonList(); 00098 00102 virtual CSLXSITriangleList* AddXSITriangleList(); 00103 00107 CSLXSITriangleStripList* AddXSITriangleStripList(); 00108 00113 SI_Error RemoveXSIPolygonList(SI_Int l_nIndex); 00114 00119 SI_Error RemoveXSITriangleList(SI_Int l_nIndex); 00120 00125 SI_Error RemoveXSITriangleStripList(SI_Int l_nIndex); 00126 00131 SI_Error RemoveXSIPolygonList(CSLXSIPolygonList* in_pObject); 00132 00137 SI_Error RemoveXSITriangleList(CSLXSITriangleList* in_pObject); 00138 00143 SI_Error RemoveXSITriangleStripList(CSLXSITriangleStripList* in_pObject); 00144 00148 CSLXSIShape* XSIShape() { return m_pXSIShape; }; 00149 00153 CSLXSIVertexList* XSIVertexList() { return m_pXSIVertexList; }; 00154 00159 CSLXSIShape* ConnectXSIShape(CSLXSIShape*); 00160 00165 CSLXSIVertexList* ConnectXSIVertexList(CSLXSIVertexList*); 00166 00171 CSLXSIPolygonList* ConnectXSIPolygonList(CSLXSIPolygonList*); 00172 00177 CSLXSITriangleList* ConnectXSITriangleList(CSLXSITriangleList*); 00178 00183 CSLXSITriangleStripList* ConnectXSITriangleStripList(CSLXSITriangleStripList*); 00184 00188 virtual SI_Error Synchronize(); 00189 00193 virtual ETemplateType Type() { return XSI_MESH; }; 00194 00195 virtual SI_Error Fix(); 00196 virtual CSLAnimatableType* ParameterFromName(SI_Char *in_szName); 00197 00198 protected: 00199 CSLXSIShape* m_pXSIShape; 00200 CSLXSIVertexList *m_pXSIVertexList; 00201 CSIBCArray<CSLXSIPolygonList *> m_XSIPolygonLists; 00202 CSIBCArray<CSLXSITriangleList *> m_XSITriangleLists; 00203 CSIBCArray<CSLXSITriangleStripList *> m_XSITriangleStripLists; 00204 00205 void *m_pReserved; // reserved for future extension 00206 }; 00207 00208 #endif