XSIUserDataList.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 _XSIUSERDATALIST_H
00013 #define _XSIUSERDATALIST_H
00014 
00015 #include "Template.h"
00016 
00017 class CSLUserData;
00018 class CSLCluster;
00019 
00027 class XSIEXPORT CSLUserDataList
00028     : public CSLTemplate
00029 {
00030 public:
00031 
00037     CSLUserDataList(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00038 
00040     virtual ~CSLUserDataList();
00041 
00045     ETemplateType Type(){ return XSI_USER_DATA_LIST; }
00046 
00050     SI_Error Synchronize();
00051 
00053     // User data functionality ///////////////////////////////////////////////
00055 
00059     CSLUserData* AddUserData();
00060 
00065     SI_Error RemoveUserData( SI_Int in_nIndex );
00066 
00071     SI_Error RemoveUserData( CSLUserData* in_pToRemove );
00072 
00076     SI_Error ClearUserDatas();
00077 
00082     CSLUserData* ConnectUserData( CSLUserData* in_pToConnect );
00083 
00087     CSLUserData** GetUserDataList();
00088 
00092     SI_Int GetUserDataCount();
00093 
00098     CSLUserData* FindUserData( SI_Char* in_szUserDataName );
00099 
00100 private:
00101     CSIBCArray<CSLUserData*> m_UserDatas;
00102 
00103     SI_Void *m_pReserved;
00104 };
00105 
00106 #endif