XSISubComponentAttributeList.h

Go to the documentation of this file.
00001 //***************************************************************************************
00002 // File supervisor: Crosswalk team
00012 //***************************************************************************************
00013 
00014 #ifndef _XSISUBCOMPONENTATTRIBUTELIST_H
00015 #define _XSISUBCOMPONENTATTRIBUTELIST_H
00016 
00017 #include "Template.h"
00018 
00019 
00028 class XSIEXPORT CSLXSISubComponentAttributeList
00029     : public CSLTemplate
00030 {
00031 public:
00034     typedef CSLArrayProxy<SI_Float, SI_Float, 1> CSLFloatArray;
00035 
00036     enum EAttributeType
00037     {
00038         FLOAT = 1,
00039         FLOAT2 = 2,
00040         FLOAT3 = 3,
00041         FLOAT4 = 4,
00042         FLOAT5 = 5,
00043     };
00044 
00051     CSLXSISubComponentAttributeList(CSLScene *in_pScene, CSLModel *in_pModel, CdotXSITemplate *in_pTemplate);
00052 
00055     virtual ~CSLXSISubComponentAttributeList();
00056 
00060     SI_Int                          GetCount();
00061 
00065     virtual SI_Char*                        GetSemantic() { return m_Semantic; }
00066 
00070     virtual SI_Void                         SetSemantic(SI_Char* in_Semantic) { m_Semantic = in_Semantic; }
00071 
00075     EAttributeType                  GetAttributeType() { return m_AttributeType; }
00076 
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