xsi_clusterproperty.h Source File
 
 
 
xsi_clusterproperty.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 __XSICLUSTERPROPERTY_H__
00018 #define __XSICLUSTERPROPERTY_H__
00019 
00020 #include <xsi_property.h>
00021 #include <xsi_status.h>
00022 #include <xsi_doublearray.h>
00023 #include <xsi_longarray.h>
00024 #include <xsi_bitarray.h>
00025 #include <xsi_floatarray.h>
00026 
00027 namespace XSI {
00028 
00029 class CClusterPropertyElementArray;
00030 
00031 
00032 //*****************************************************************************
00233 //*****************************************************************************
00234 
00235 class SICPPSDKDECL ClusterProperty : public Property
00236 {
00237 public:
00239         ClusterProperty();
00240 
00242         ~ClusterProperty();
00243 
00247         ClusterProperty(const CRef& in_ref);
00248 
00252         ClusterProperty(const ClusterProperty& in_obj);
00253 
00258         bool IsA( siClassID in_ClassID) const;
00259 
00263         siClassID GetClassID() const;
00264 
00270         ClusterProperty& operator=(const ClusterProperty& in_obj);
00271 
00277         ClusterProperty& operator=(const CRef& in_ref);
00278 
00282         CClusterPropertyElementArray GetElements() const;
00283 
00289         LONG GetValueSize() const;
00290 
00295         siClusterPropertyType GetPropertyType() const;
00296 
00305         CValue::DataType GetInternalType() const;
00306 
00318         CStatus GetValues( CFloatArray& out_data ) const;
00319 
00335         CStatus GetValues( CFloatArray& out_data, CBitArray& out_elemIdx ) const;
00336 
00362         CStatus SetValues(
00363                 const float*    in_pValues,
00364                 LONG                    in_nValues,
00365                 LONG                    in_nOffset=0);
00366 
00385         CStatus SetValues(
00386                 const LONG*             in_pElements,
00387                 const float*    in_pValues,
00388                 LONG                    in_nElements);
00389 
00390         private:
00391         ClusterProperty * operator&() const;
00392         ClusterProperty * operator&();
00393 };
00394 
00395 //*****************************************************************************
00482 //*****************************************************************************
00483 
00484 class SICPPSDKDECL CClusterPropertyElementArray
00485 {
00486         public:
00488         CClusterPropertyElementArray();
00489 
00493         CClusterPropertyElementArray(const CClusterPropertyElementArray& in_array);
00494 
00496         virtual ~CClusterPropertyElementArray();
00497 
00502         CClusterPropertyElementArray& operator=(
00503                 const CClusterPropertyElementArray& in_array);
00504 
00510         CDoubleArray GetArray() const;
00511 
00517         CStatus PutArray(const CDoubleArray& in_values);
00518 
00522         LONG GetCount() const;
00523 
00529         CDoubleArray GetItem( LONG in_index ) const;
00530 
00538         CStatus PutItem( LONG in_index, const CDoubleArray& in_values );
00539 
00545         CDoubleArray GetItemsByIndex( const CLongArray& in_indices ) const;
00546 
00554         CStatus PutItemsByIndex( const CLongArray& in_indices,
00555                 const CDoubleArray& in_values );
00556 
00561         LONG GetValueSize() const;
00562 
00563         private:
00564         void*   m_ptr;
00565         bool    m_bFlag;
00566 };
00567 
00568 };
00569 
00570 #endif // __XSICLUSTERPROPERTY_H__