EnvelopeList.h

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 #ifndef _ENVELOPELIST_H
00013 #define _ENVELOPELIST_H
00014 
00015 #include "Template.h"
00016 
00017 // Forward declaration
00018 class CSLEnvelope;
00019 
00023 class XSIEXPORT CSLEnvelopeList
00024     : public CSLTemplate
00025 {
00026 public:
00033     CSLEnvelopeList(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00034 
00037     virtual ~CSLEnvelopeList();
00038 
00042     virtual CSLEnvelope* AddEnvelope();
00043 
00047     SI_Int GetEnvelopeCount();
00048 
00052     CSLEnvelope** Envelopes();
00053 
00058     SI_Error RemoveEnvelope(SI_Int in_nIndex);
00059 
00064     SI_Error RemoveEnvelope(CSLEnvelope* in_pEnvelope);
00065 
00069     SI_Error ClearEnvelopes();
00070 
00071     // Connection functions
00076     CSLEnvelope* ConnectEnvelope(CSLEnvelope* in_pNewEnvelope);
00077 
00082     virtual SI_Error Synchronize();
00083 
00087     virtual ETemplateType Type() { return SI_ENVELOPE_LIST; }
00088 
00089 private:
00090     CSIBCArray<CSLEnvelope *> m_Envelopes;
00091 
00092     void *m_pReserved;  // reserved for future extension
00093 };
00094 
00095 #endif