IKernelVector.hpp
1 #pragma once
2 
3 #include "DM/config.hpp"
4 #include "DM/IPoint.hpp"
5 #include "DM/IPolyline.hpp"
6 #include "DM/IBox.hpp"
7 #include "DM/IPointIndexLeaf.hpp"
8 #include "DM/IFilter.hpp"
9 #include "DM/ObjectBase.hpp"
10 
11 #include "DM/Processor/AutoLink.hpp"
12 #include "DM/Processor/IKernelBase.hpp"
13 
14 DM_NAMESPACE_BEGIN
15 
16 /// \brief kernel for handling point object
17 class DM_PS_API IKernelPoint : public IKernelBase
18 {
19 public:
20  virtual ~IKernelPoint() {}
21 
22  ///function is called, when the spatial index leaf changes
23  virtual void leafChanged(const IPointIndexLeaf &leaf) = 0;
24 
25  /// Speed-up: inspect the bounding box and attribute statistics of each tile before it is loaded and processed.
26  /// Skip tiles for which surely none of their points pass this filter.
27  /// The returned filter is usually the same as the filter used internally by the kernel to decide if a point shall be processed.
28  /// If all tiles shall be processed, return an empty handle.
29  virtual FilterHandle tileFilter() = 0;
30 
31  virtual bool process(const IPoint &source, IPoint &target) = 0;
32 };
34 
35 
36 /// \brief kernel for handling polyline object
37 class DM_PS_API IKernelPolyline : public IKernelBase
38 {
39 public:
40  virtual ~IKernelPolyline() {}
41 
42  virtual bool process(const IPolyline &source, IPolyline &target) = 0;
43 };
45 
46 
47 class DM_PS_API IKernelGeometry : public IKernelBase
48 {
49 public:
50  virtual ~IKernelGeometry() {}
51 
52  virtual bool process(const IGeometry &source, IGeometry &target) = 0;
53 };
55 
56 
57 DM_NAMESPACE_END
The kernel processor concept is used for manipulating geometry objects within an ODM in an efficient ...
Definition: IKernelBase.hpp:16
kernel for handling polyline object
Definition: IKernelVector.hpp:37
Definition: IKernelVector.hpp:47
kernel for handling point object
Definition: IKernelVector.hpp:17
object representing a spatial leaf within a point index
Definition: IPointIndexLeaf.hpp:30
Definition: IPolyline.hpp:14
Base class of all geometry objects.
Definition: IGeometry.hpp:26
3d point object
Definition: IPoint.hpp:14