TriangleStripList.h

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