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__