00001
00011
00012
00013 #if (_MSC_VER > 1000) || defined(SGI_COMPILER)
00014 #pragma once
00015 #endif
00016
00017 #ifndef __XSIICEATTRIBUTE_H__
00018 #define __XSIICEATTRIBUTE_H__
00019
00020 #include <xsi_siobject.h>
00021
00022 namespace XSI {
00023
00024 class CBaseICEAttributeDataArray;
00025
00026
00081
00082
00083 class SICPPSDKDECL ICEAttribute : public SIObject
00084 {
00085 public:
00086 friend class CBaseICEAttributeDataArray;
00087
00089 ICEAttribute();
00090
00092 ~ICEAttribute();
00093
00097 ICEAttribute(const CRef& in_ref);
00098
00102 ICEAttribute(const ICEAttribute& in_obj);
00103
00108 bool IsA( siClassID in_ClassID) const;
00109
00113 siClassID GetClassID() const;
00114
00120 ICEAttribute& operator=(const ICEAttribute& in_obj);
00121
00127 ICEAttribute& operator=(const CRef& in_ref);
00128
00133 bool IsDefined( ) const;
00134
00138 bool IsConstant( ) const;
00139
00143 bool IsReadonly( ) const;
00144
00148 XSI::siICENodeDataType GetDataType( ) const;
00149
00154 XSI::siICENodeStructureType GetStructureType( ) const;
00155
00161 XSI::siICENodeContextType GetContextType( ) const;
00162
00166 XSI::siICEAttributeCategory GetAttributeCategory( ) const;
00167
00172 ULONG GetElementCount( ) const;
00173
00266 CStatus GetDataArray( CBaseICEAttributeDataArray& io_dataArray ) const;
00267
00391 CStatus GetDataArrayChunk( ULONG in_nOffset, ULONG in_nSize, CBaseICEAttributeDataArray& io_dataArray ) const;
00392
00571 CStatus GetDataArray2D( CBaseICEAttributeDataArray& io_dataArray ) const;
00572
00782 CStatus GetDataArray2DChunk( ULONG in_nOffset, ULONG in_nSize, CBaseICEAttributeDataArray& io_dataArray ) const;
00783
00784 private:
00785 CStatus ReleaseDataArray( CBaseICEAttributeDataArray& in_dataArray );
00786 CStatus GetSubDataArray( const CBaseICEAttributeDataArray& in_dataArray2D, ULONG in_index, CBaseICEAttributeDataArray& io_dataArray ) const;
00787
00788 ICEAttribute * operator&() const;
00789 ICEAttribute * operator&();
00790 };
00791
00792 };
00793
00794 #endif // __XSIICEATTRIBUTE_H__