IKernelEx.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/ObjectBase.hpp"
9 #include "DM/IPointSet.hpp"
10 
11 #include "DM/Processor/AutoLink.hpp"
12 
13 DM_NAMESPACE_BEGIN
14 
15 /// \brief The kernel processor concept is used for manipulating geometry objects within an ODM in an efficient and easy manner
16 class DM_PS_API IKernelExBase : public ObjectBase
17 {
18 public:
19  virtual ~IKernelExBase() {}
20 
21  ///gets a copy of the object (required for multi-threaded execution)
22  virtual IKernelExBase* threadClone() const = 0;
23 
24  ///function is called, when the spatial index leaf changes
25  virtual void leafChanged(const IPointIndexLeaf &leaf, PointIndexLeafHandle &localTree) = 0;
26 };
28 
29 
30 
31 /// \brief kernel for handling point object
32 class DM_PS_API IPointKernelEx : public IKernelExBase
33 {
34 public:
35  virtual ~IPointKernelEx() {}
36 
37  virtual bool process(const IPoint &source, IPoint &target, const IPointSet &neighbors) = 0;
38 };
40 
41 
42 DM_NAMESPACE_END
The kernel processor concept is used for manipulating geometry objects within an ODM in an efficient ...
Definition: IKernelEx.hpp:16
kernel for handling point object
Definition: IKernelEx.hpp:32
object representing a spatial leaf within a point index
Definition: IPointIndexLeaf.hpp:30
Smart pointer class using reference counting with support for DM objects (see ObjectBase)
Definition: Handle.hpp:98
Definition: M/c++_api/inc/DM/ObjectBase.hpp:8
a set of 3d point object
Definition: IPointSet.hpp:16
3d point object
Definition: IPoint.hpp:14