XSISubComponentList.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 _XSISUBCOMPONENTLIST_H
00013 #define _XSISUBCOMPONENTLIST_H
00014 
00015 #include "Template.h"
00016 
00027 class XSIEXPORT CSLXSISubComponentList
00028     : public CSLTemplate
00029 {
00030 public:
00034     typedef CSLArrayProxy<SI_Int, SI_Int, 1> CSLIntArray;
00035 
00039     typedef CSLArrayProxy<SI_Char*, SI_Char*, 1> CSLStringArray;
00040 
00047     CSLXSISubComponentList(CSLScene *in_pScene, CSLModel *in_pModel, CdotXSITemplate *in_pTemplate);
00048 
00051     virtual ~CSLXSISubComponentList();
00052 
00056     SI_Int                              GetCount();
00057 
00061     virtual SI_Error                    SetCount(SI_Int);
00062 
00066     SI_Int                              GetAttributeCount();
00067 
00071     SI_Int                              AddAttribute(SI_Char*);
00072 
00076     SI_Error                            RemoveAttribute();
00077 
00081     SI_Error                            ClearAttribute();
00082 
00086     CSLIntArray*                        GetAttributeIndices(SI_Int in_iIndex);
00087 
00091     CSIBCArray<CSLIntArray*>*           GetAttributeIndicesArray();
00092 
00096     CSLStringArray*                     GetAttributeNameArray();
00097 
00101     CSLArrayProxy<SI_Int, SI_Int, 1>*   GetAttributeByName(SI_Char* in_pName);
00102 
00106     CSIBCString&                        GetSemantic(int in_iIndx);
00107 
00110     SI_Void                             SetSemantic( int in_iIndx, CSIBCString in_szSemantic);
00111 
00115     CSIBCString&                        GetSource(int in_iIndx);
00116 
00119     SI_Void                             SetSource( int in_iIndx, CSIBCString in_szSource);
00120 
00121 protected:
00122     SI_Int  m_iCount; // number of node
00123 
00124     CSIBCArray<CSLIntArray*>    m_AttributeIndicesArray;
00125     CSLStringArray          m_AttributeNameArray;
00126 
00127     CSIBCArray<CSIBCString>     m_szSemantic;
00128     CSIBCArray<CSIBCString>     m_szSource;
00129 
00130     void *m_pReserved;  // reserved for future extension
00131 };
00132 
00133 #endif