xsi_iceattributedataarray2D.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 __XSIICEATTRIBUTEDATAARRAY2D_H__
00018 #define __XSIICEATTRIBUTEDATAARRAY2D_H__
00019 
00020 #include <sicppsdk.h>
00021 #include <xsi_iceattributedataarray.h>
00022 #include <xsi_vector2f.h>
00023 #include <xsi_vector3f.h>
00024 #include <xsi_vector4f.h>
00025 #include <xsi_quaternionf.h>
00026 #include <xsi_rotationf.h>
00027 #include <xsi_matrix3f.h>
00028 #include <xsi_matrix4f.h>
00029 #include <xsi_color4f.h>
00030 
00031 namespace XSI {
00032 
00033 class ICEAttribute;
00034 
00035 //*****************************************************************************
00182 //*****************************************************************************
00183 template<class T>
00184 class CICEAttributeDataArray2D : public CBaseICEAttributeDataArray
00185 {
00186 public:
00188     CICEAttributeDataArray2D( ) : CBaseICEAttributeDataArray( GetDefaultType( ), XSI::siICENodeStructureArray ) {}
00189 
00191     ~CICEAttributeDataArray2D( ) {}
00192 
00200     CStatus GetSubArray( ULONG in_index, CICEAttributeDataArray<T>& out_dataArray ) const
00201     {
00202         return GetSubDataArray( in_index, (CBaseICEAttributeDataArray&)out_dataArray );
00203     }
00204 
00205 private:
00206     static SICPPSDK_INLINE XSI::siICENodeDataType GetDefaultType( )
00207     {
00208         return siICENodeDataCustomType;
00209     }
00210 };
00211 
00212 //*****************************************************************************
00253 //*****************************************************************************
00254 
00255 class CICEAttributeDataArray2DCustomType : public CBaseICEAttributeDataArray
00256 {
00257 public:
00259     CICEAttributeDataArray2DCustomType( ) : CBaseICEAttributeDataArray( GetDefaultType( ), XSI::siICENodeStructureArray ) {}
00260 
00262     ~CICEAttributeDataArray2DCustomType( )
00263     {
00264         SetParent( NULL );
00265     }
00266 
00274     CStatus GetSubArray( ULONG in_index, CBaseICEAttributeDataArray& out_dataArray ) const
00275     {
00276         return GetSubDataArray( in_index, out_dataArray );
00277     }
00278 
00279 private:
00280     static SICPPSDK_INLINE XSI::siICENodeDataType GetDefaultType( )
00281     {
00282         return XSI::siICENodeDataCustomType;
00283     }
00284 };
00285 
00286 //*****************************************************************************
00328 //*****************************************************************************
00329 
00330 class CICEAttributeDataArray2DString : public CBaseICEAttributeDataArray
00331 {
00332 public:
00334     CICEAttributeDataArray2DString( ) : CBaseICEAttributeDataArray( GetDefaultType( ), XSI::siICENodeStructureArray ) {}
00335 
00337     ~CICEAttributeDataArray2DString( )
00338     {
00339         SetParent( NULL );
00340     }
00341 
00349     CStatus GetSubArray( ULONG in_index, CBaseICEAttributeDataArray& out_dataArray ) const
00350     {
00351         return GetSubDataArray( in_index, out_dataArray );
00352     }
00353 
00354 private:
00355     static SICPPSDK_INLINE XSI::siICENodeDataType GetDefaultType( )
00356     {
00357         return XSI::siICENodeDataString;
00358     }
00359 };
00360 
00438 typedef XSI::CICEAttributeDataArray2D< float > CICEAttributeDataArray2DFloat;
00439 typedef XSI::CICEAttributeDataArray2D< LONG > CICEAttributeDataArray2DLong;
00440 typedef XSI::CICEAttributeDataArray2D< bool > CICEAttributeDataArray2DBool;
00441 typedef XSI::CICEAttributeDataArray2D< XSI::MATH::CVector2f > CICEAttributeDataArray2DVector2f;
00442 typedef XSI::CICEAttributeDataArray2D< XSI::MATH::CVector3f > CICEAttributeDataArray2DVector3f;
00443 typedef XSI::CICEAttributeDataArray2D< XSI::MATH::CVector4f > CICEAttributeDataArray2DVector4f;
00444 typedef XSI::CICEAttributeDataArray2D< XSI::MATH::CQuaternionf > CICEAttributeDataArray2DQuaternionf;
00445 typedef XSI::CICEAttributeDataArray2D< XSI::MATH::CRotationf > CICEAttributeDataArray2DRotationf;
00446 typedef XSI::CICEAttributeDataArray2D< XSI::MATH::CMatrix3f > CICEAttributeDataArray2DMatrix3f;
00447 typedef XSI::CICEAttributeDataArray2D< XSI::MATH::CMatrix4f > CICEAttributeDataArray2DMatrix4f;
00448 typedef XSI::CICEAttributeDataArray2D< XSI::MATH::CColor4f > CICEAttributeDataArray2DColor4f;
00449 typedef XSI::CICEAttributeDataArray2D< XSI::MATH::CShape > CICEAttributeDataArray2DShape;
00450 
00451 template<> SICPPSDK_INLINE XSI::siICENodeDataType CICEAttributeDataArray2DBool::GetDefaultType( ){return siICENodeDataBool;}
00452 template<> SICPPSDK_INLINE XSI::siICENodeDataType CICEAttributeDataArray2DFloat::GetDefaultType( ){return siICENodeDataFloat;}
00453 template<> SICPPSDK_INLINE XSI::siICENodeDataType CICEAttributeDataArray2DLong::GetDefaultType( ){return siICENodeDataLong;}
00454 template<> SICPPSDK_INLINE XSI::siICENodeDataType CICEAttributeDataArray2DVector2f::GetDefaultType( ){return siICENodeDataVector2;}
00455 template<> SICPPSDK_INLINE XSI::siICENodeDataType CICEAttributeDataArray2DVector3f::GetDefaultType( ){return siICENodeDataVector3;}
00456 template<> SICPPSDK_INLINE XSI::siICENodeDataType CICEAttributeDataArray2DVector4f::GetDefaultType( ){return siICENodeDataVector4;}
00457 template<> SICPPSDK_INLINE XSI::siICENodeDataType CICEAttributeDataArray2DQuaternionf::GetDefaultType( ){return siICENodeDataQuaternion;}
00458 template<> SICPPSDK_INLINE XSI::siICENodeDataType CICEAttributeDataArray2DMatrix3f::GetDefaultType( ){return siICENodeDataMatrix33;}
00459 template<> SICPPSDK_INLINE XSI::siICENodeDataType CICEAttributeDataArray2DMatrix4f::GetDefaultType( ){return siICENodeDataMatrix44;}
00460 template<> SICPPSDK_INLINE XSI::siICENodeDataType CICEAttributeDataArray2DColor4f::GetDefaultType( ){return siICENodeDataColor4;}
00461 template<> SICPPSDK_INLINE XSI::siICENodeDataType CICEAttributeDataArray2DRotationf::GetDefaultType( ){return siICENodeDataRotation;}
00462 template<> SICPPSDK_INLINE XSI::siICENodeDataType CICEAttributeDataArray2DShape::GetDefaultType( ){return siICENodeDataShape;}
00463 
00464 };
00465 
00466 #endif // __XSIICEATTRIBUTEDATAARRAY2D_H__