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