IIndexHelperSet.hpp
1 #pragma once
2 
3 
4 #include "DM/config.hpp"
5 #include "DM/Iterator.hpp"
6 
7 DM_NAMESPACE_BEGIN
8 
9 /// \brief Helper class for traversing a IndexMap object in multiple stages
10 class DM_API IIndexHelper : public ObjectBase
11 {
12 protected:
13  virtual ~IIndexHelper() {}
14 
15 public:
16  virtual IIndexHelper* clone() const = 0;
17 
18  virtual int id() const = 0; ///< corresponding class id
19  virtual int64_t counter() const = 0; ///< number of points/object that have been traversed in this class
20  virtual int64_t index() const = 0; ///< next index for the corresponding IndexMap object that has to be considered
21 };
22 
24 
25 
26 
27 /// \brief Helper class for traversing a IndexMapSet object in multiple stages
28 class DM_API IIndexHelperSet : public ObjectBase
29 {
30 public:
31  // Iterator typedefs ============================================================================
33 
34  static IIndexHelperSet* New(); ///< create an empty index helper set
35 
36  // General member functions ====================================================================
37  virtual IIndexHelperSet* clone() const = 0; ///< clone object
38 
39  virtual int64_t size() const = 0; ///< size of index map set
40 
41  virtual IIndexHelper& operator[](const int id) = 0; ///< access index helper by class id
42  virtual const IIndexHelper& operator[](const int id) const = 0; ///< const access index helper by class id
43 
44  virtual const_iterator beginIndexHelper() const = 0;
45  virtual const_iterator endIndexHelper() const = 0;
46 };
47 
49 
50 DM_NAMESPACE_END
Helper class for traversing a IndexMap object in multiple stages.
Definition: IIndexHelperSet.hpp:10
Definition: Iterator.hpp:96
Helper class for traversing a IndexMapSet object in multiple stages.
Definition: IIndexHelperSet.hpp:28
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