xsi_iceattribute.h

Go to the documentation of this file.
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__