IIndexStats.hpp
1 #pragma once
2 
3 #include "DM/config.hpp"
4 #include "DM/Handle.hpp"
5 #include "DM/ObjectBase.hpp"
6 
7 DM_NAMESPACE_BEGIN
8 
9 enum struct IndexType
10 {
11  tiling, ///< flat tiling structure
12  quadtree, ///< quad- or octree structure (depending on index dimension)
13  kdtree, ///< kd-tree structure
14  rtree, ///< r-tree structure
15  count
16 };
17 
18 /// \brief Object representing statistical information an spatial index
19 class DM_API IIndexStats : public ObjectBase
20 {
21 public:
22  virtual ~IIndexStats() {}
23 
24  /// get an object copy
25  virtual IIndexStats* clone() const = 0;
26 
27  virtual int dimension() const = 0; ///< get index dimension
28  virtual IndexType type() const = 0; ///< get index type
29  virtual int depth() const = 0; ///< get index depth
30  virtual int sizeNode() const = 0; ///< get number of nodes
31  virtual int sizeLeaf() const = 0; ///< get number of leafs (nodes that contain geometry objects)
32  virtual double tileSize() const = 0; ///< get tile size (only relevant if type == IndexType::tiling)
33  virtual long long objectsInLeafMin() const = 0;
34  virtual long long objectsInLeafMax() const = 0;
35  virtual double objectsInLeafMean() const = 0;
36  virtual double objectsInLeafStddev() const = 0;
37 };
38 
40 
41 
42 
43 DM_NAMESPACE_END
@ tiling
flat tiling structure
Object representing statistical information an spatial index.
Definition: IIndexStats.hpp:19
@ count
always last element
Smart pointer class using reference counting with support for DM objects (see ObjectBase)
Definition: Handle.hpp:75
Definition: M/c++_api/inc/DM/ObjectBase.hpp:8
IndexType
Definition: IIndexStats.hpp:9