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