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__