IClassificationMatrix.hpp
1 #pragma once
2 
3 
4 #include "DM/config.hpp"
5 #include "DM/Handle.hpp"
6 #include "DM/ObjectBase.hpp"
7 #include "DM/Iterator.hpp"
8 #include "DM/IFilter.hpp"
9 #include "DM/IAddInfoLayout.hpp"
10 #include "DM/IControlObject.hpp"
11 
12 DM_NAMESPACE_BEGIN
13 
14 class IDatamanager;
15 class IPointIndex;
16 class IPointIndexLeaf;
17 
18 /// \brief Element of a cross classification matrix
19 class DM_API IClassificationElement : public ObjectBase
20 {
21 protected:
22  virtual ~IClassificationElement() {}
23 
24 public:
25  virtual int trueId() const = 0; ///< true class id
26  virtual int estimatedId() const = 0; ///< estimated class id
27  virtual int64_t counter() const = 0; ///< number of elements in this element
28 };
29 
31 
32 /// \brief Object for storing a cross classification matrix
33 class DM_API IClassificationMatrix : public ObjectBase
34 {
35 public:
36  static IClassificationMatrix* New(); //create a new object
37 
39 
40 protected:
41  virtual ~IClassificationMatrix() {}
42 
43 public:
44  virtual int64_t sizeId() const = 0;
45  virtual bool exist(int trueId, int estimatedId) const = 0;
46  virtual const IClassificationElement& get(int trueId, int estimatedId) const = 0;
47  virtual void increase(int trueId, int estimatedId, int64_t inc = 1) = 0;
48 
49  virtual const_iterator beginIds() const = 0;
50  virtual const_iterator endIds() const = 0;
51 
52  virtual int64_t fill(const IDatamanager &odm, const AddInfoLayoutHandle &layout, FilterHandle filter = FilterHandle(), ControlObjectHandle control = ControlObjectHandle()) = 0;
53  virtual int64_t fill(const IPointIndex &pi, const AddInfoLayoutHandle &layout, FilterHandle filter = FilterHandle(), ControlObjectHandle control = ControlObjectHandle()) = 0;
54  virtual int64_t fill(const IPointIndexLeaf &pl, const AddInfoLayoutHandle &layout, FilterHandle filter = FilterHandle(), ControlObjectHandle control = ControlObjectHandle()) = 0;
55 };
56 
58 
59 
60 DM_NAMESPACE_END
Definition: Iterator.hpp:96
Object for storing a cross classification matrix.
Definition: IClassificationMatrix.hpp:33
Definition: Handle.hpp:427
object representing a spatial leaf within a point index
Definition: IPointIndexLeaf.hpp:30
Interface to a point index object managing the point objects within the datamanager.
Definition: IPointIndex.hpp:15
Interface to an Datamanager (ODM) object.
Definition: IDatamanager.hpp:57
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
Element of a cross classification matrix.
Definition: IClassificationMatrix.hpp:19