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 __XSICLUSTER_H__
00018 #define __XSICLUSTER_H__
00019
00020 #include <xsi_sceneitem.h>
00021 #include <xsi_status.h>
00022 #include <xsi_longarray.h>
00023
00024 namespace XSI {
00025
00026 class X3DObject;
00027 class SubComponent;
00028 class CClusterElementArray;
00029 class CBitArray;
00030
00031
00085
00086 class SICPPSDKDECL Cluster : public SceneItem
00087 {
00088 public:
00090 Cluster();
00091
00093 ~Cluster();
00094
00098 Cluster(const CRef& in_ref);
00099
00103 Cluster(const Cluster& in_obj);
00104
00109 bool IsA( siClassID in_ClassID) const;
00110
00114 siClassID GetClassID() const;
00115
00121 Cluster& operator=(const Cluster& in_obj);
00122
00128 Cluster& operator=(const CRef& in_ref);
00129
00133 CClusterElementArray GetElements() const;
00134
00138 X3DObject GetCenterReference() const;
00139
00145 CStatus PutCenterReference(const X3DObject& in_centerObj);
00146
00150 bool HasStaticKinematicState() const;
00151
00155 CRefArray GetStaticKinematicStates() const;
00156
00160 SubComponent CreateSubComponent();
00161
00169 CStatus FindIndex
00170 (
00171 LONG in_geometryIndex,
00172 LONG& out_clusterIndex
00173 ) const;
00174
00217 CStatus FindIndices
00218 (
00219 const CLongArray& in_geometryIndices,
00220 CLongArray& out_clusterIndices
00221 ) const;
00222
00228 bool IsAlwaysComplete() const;
00229
00311 CStatus GetGeometryElementFlags( CBitArray& out_flags ) const;
00312
00313 private:
00314 Cluster * operator&() const;
00315 Cluster * operator&();
00316
00317 };
00318
00319
00364
00365 class SICPPSDKDECL CClusterElementArray
00366 {
00367 public:
00369 CClusterElementArray();
00370
00374 CClusterElementArray(const CClusterElementArray& in_array);
00375
00377 virtual ~CClusterElementArray();
00378
00383 CClusterElementArray& operator=(const CClusterElementArray& in_array);
00384
00388 CLongArray GetArray() const;
00389
00393 LONG GetCount() const;
00394
00399 LONG GetItem( LONG in_index ) const;
00400
00405 CLongArray GetItemsByIndex( const CLongArray& in_indices ) const;
00406
00411 LONG FindIndex( LONG in_element ) const;
00412
00413 private:
00414 void* m_ptr;
00415 };
00416
00417 };
00418
00419 #endif // __XSICLUSTER_H__