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 //***************************************************************************** 00183 //***************************************************************************** 00184 template<class T> 00185 class CICEAttributeDataArray2D : public CBaseICEAttributeDataArray 00186 { 00187 public: 00189 CICEAttributeDataArray2D( ) : CBaseICEAttributeDataArray( GetDefaultType( ), XSI::siICENodeStructureArray ) {} 00190 00192 ~CICEAttributeDataArray2D( ) {} 00193 00201 CStatus GetSubArray( ULONG in_index, CICEAttributeDataArray<T>& out_dataArray ) const 00202 { 00203 return GetSubDataArray( in_index, (CBaseICEAttributeDataArray&)out_dataArray ); 00204 } 00205 00209 ULONG GetCount() const 00210 { 00211 return m_nCount; 00212 } 00213 00214 private: 00215 static SICPPSDK_INLINE XSI::siICENodeDataType GetDefaultType( ); 00216 }; 00217 00295 typedef XSI::CICEAttributeDataArray2D< float > CICEAttributeDataArray2DFloat; 00296 typedef XSI::CICEAttributeDataArray2D< LONG > CICEAttributeDataArray2DLong; 00297 typedef XSI::CICEAttributeDataArray2D< bool > CICEAttributeDataArray2DBool; 00298 typedef XSI::CICEAttributeDataArray2D< XSI::MATH::CVector2f > CICEAttributeDataArray2DVector2f; 00299 typedef XSI::CICEAttributeDataArray2D< XSI::MATH::CVector3f > CICEAttributeDataArray2DVector3f; 00300 typedef XSI::CICEAttributeDataArray2D< XSI::MATH::CVector4f > CICEAttributeDataArray2DVector4f; 00301 typedef XSI::CICEAttributeDataArray2D< XSI::MATH::CQuaternionf > CICEAttributeDataArray2DQuaternionf; 00302 typedef XSI::CICEAttributeDataArray2D< XSI::MATH::CRotationf > CICEAttributeDataArray2DRotationf; 00303 typedef XSI::CICEAttributeDataArray2D< XSI::MATH::CMatrix3f > CICEAttributeDataArray2DMatrix3f; 00304 typedef XSI::CICEAttributeDataArray2D< XSI::MATH::CMatrix4f > CICEAttributeDataArray2DMatrix4f; 00305 typedef XSI::CICEAttributeDataArray2D< XSI::MATH::CColor4f > CICEAttributeDataArray2DColor4f; 00306 typedef XSI::CICEAttributeDataArray2D< XSI::MATH::CShape > CICEAttributeDataArray2DShape; 00307 00308 template<> SICPPSDK_INLINE XSI::siICENodeDataType CICEAttributeDataArray2DBool::GetDefaultType( ){return siICENodeDataBool;} 00309 template<> SICPPSDK_INLINE XSI::siICENodeDataType CICEAttributeDataArray2DFloat::GetDefaultType( ){return siICENodeDataFloat;} 00310 template<> SICPPSDK_INLINE XSI::siICENodeDataType CICEAttributeDataArray2DLong::GetDefaultType( ){return siICENodeDataLong;} 00311 template<> SICPPSDK_INLINE XSI::siICENodeDataType CICEAttributeDataArray2DVector2f::GetDefaultType( ){return siICENodeDataVector2;} 00312 template<> SICPPSDK_INLINE XSI::siICENodeDataType CICEAttributeDataArray2DVector3f::GetDefaultType( ){return siICENodeDataVector3;} 00313 template<> SICPPSDK_INLINE XSI::siICENodeDataType CICEAttributeDataArray2DVector4f::GetDefaultType( ){return siICENodeDataVector4;} 00314 template<> SICPPSDK_INLINE XSI::siICENodeDataType CICEAttributeDataArray2DQuaternionf::GetDefaultType( ){return siICENodeDataQuaternion;} 00315 template<> SICPPSDK_INLINE XSI::siICENodeDataType CICEAttributeDataArray2DMatrix3f::GetDefaultType( ){return siICENodeDataMatrix33;} 00316 template<> SICPPSDK_INLINE XSI::siICENodeDataType CICEAttributeDataArray2DMatrix4f::GetDefaultType( ){return siICENodeDataMatrix44;} 00317 template<> SICPPSDK_INLINE XSI::siICENodeDataType CICEAttributeDataArray2DColor4f::GetDefaultType( ){return siICENodeDataColor4;} 00318 template<> SICPPSDK_INLINE XSI::siICENodeDataType CICEAttributeDataArray2DRotationf::GetDefaultType( ){return siICENodeDataRotation;} 00319 template<> SICPPSDK_INLINE XSI::siICENodeDataType CICEAttributeDataArray2DShape::GetDefaultType( ){return siICENodeDataShape;} 00320 00321 }; 00322 00323 #endif // __XSIICEATTRIBUTEDATAARRAY2D_H__