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 * File: TriangleStripList.h 00018 * Creation date: January 15, 2002 00019 * Purpose: Declaration of class 'CSLTriangleStripList' 00020 * 00021 \******************************************************************************/ 00022 #ifndef _TRIANGLESTRIPLIST_H 00023 #define _TRIANGLESTRIPLIST_H 00024 00025 #include "Template.h" 00026 00027 class CSLTriangleStrip; 00028 class CSLBaseMaterial; 00029 00030 00040 class XSIEXPORT CSLTriangleStripList 00041 : public CSLTemplate 00042 { 00043 public: 00044 CSLTriangleStripList(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate); 00045 virtual ~CSLTriangleStripList(); 00046 00050 CSLTriangleStrip* AddTriangleStrip(); 00051 00055 SI_Int GetTriangleStripCount(); 00056 00060 CSLTriangleStrip** TriangleStrips(); 00061 00066 SI_Error RemoveTriangleStrip(SI_Int in_nIndex); 00067 00072 SI_Error RemoveTriangleStrip(CSLTriangleStrip *in_pTriangleStrip); 00073 00077 SI_Error ClearTriangleStrips(); 00078 00082 CSLBaseMaterial* GetMaterial() { return m_pMaterial; } 00083 00088 SI_Void SetMaterial(CSLBaseMaterial *in_pNewMaterial) { m_pMaterial = in_pNewMaterial; } 00089 00090 // Connection functions 00091 CSLTriangleStrip* ConnectTriangleStrip(CSLTriangleStrip* in_pNewTriStrip); 00092 00093 virtual ETemplateType Type() { return SI_TRIANGLE_STRIP_LIST; } 00094 virtual SI_Error Synchronize(); 00095 virtual CSLAnimatableType* ParameterFromName(SI_Char *in_szName); 00096 00097 private: 00098 CSIBCArray<CSLTriangleStrip* > m_TriangleStrips; 00099 CSLBaseMaterial* m_pMaterial; 00100 00101 void *m_pReserved; // reserved for future extension 00102 }; 00103 00104 #endif