# XSISubComponentAttributeList.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 _XSISUBCOMPONENTATTRIBUTELIST_H
    00013 #define _XSISUBCOMPONENTATTRIBUTELIST_H
    00014
    00015 #include "Template.h"
    00016
    00017
    00024 class XSIEXPORT CSLXSISubComponentAttributeList
    00025     : public CSLTemplate
    00026 {
    00027 public:
    00031     typedef CSLArrayProxy<SI_Float, SI_Float, 1> CSLFloatArray;
    00032
    00033     enum EAttributeType
    00034     {
    00035         FLOAT = 1,
    00036         FLOAT2 = 2,
    00037         FLOAT3 = 3,
    00038         FLOAT4 = 4,
    00039         FLOAT5 = 5,
    00040     };
    00041
    00049     CSLXSISubComponentAttributeList(CSLScene *in_pScene, CSLModel *in_pModel, CdotXSITemplate *in_pTemplate);
    00050
    00053     virtual ~CSLXSISubComponentAttributeList();
    00054
    00058     SI_Int                          GetCount();
    00059
    00063     virtual SI_Char*                        GetSemantic() { return m_Semantic; }
    00064
    00069     virtual SI_Void                         SetSemantic(SI_Char* in_Semantic) { m_Semantic = in_Semantic; }
    00070
    00074     EAttributeType                  GetAttributeType() { return m_AttributeType; }
    00075
    00080     virtual SI_Void                         SetAttributeType(EAttributeType in_AttributeType);
    00081
    00085     CSLFloatArray*                  GetAttributeArray() { return &m_AttributeArray; }
    00086
    00090     virtual ETemplateType           Type() { return XSI_SUB_COMPONENT_ATTRIBUTE_LIST; }
    00091
    00095     virtual SI_Error Synchronize();
    00096
    00097 private:
    00098     CSLFloatArray                   m_AttributeArray;
    00099     CSLStringProxy                  m_Semantic;
    00100     EAttributeType                  m_AttributeType;
    00101
    00102     void *m_pReserved;  // reserved for future extension
    00103 };
    00104
    00105 #endif