# 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