ICUStrategy.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 #include "DM/Processor/IKernelBase.hpp"
13 
14 DM_NAMESPACE_BEGIN
15 
16 enum struct CUStrategyOrder {
17  auto_,
18  horizontal,
19  vertical
20 };
21 
22 
23 /// \brief kernel for handling point object
24 class DM_PS_API ICUStrategy : public ObjectBase
25 {
26 public:
27  static ICUStrategy* New( const IWindow &processLimit, double rasterSizeX, double rasterSizeY,
28  unsigned tileSizeX, unsigned tileSizeY,
29  bool pixelIsPoint, CUStrategyOrder order = CUStrategyOrder::auto_);
30 
31 protected:
32  virtual ~ICUStrategy() {}
33 
34 public:
35  virtual unsigned count() const = 0;
36 
37  virtual double rasterSizeX() const = 0;
38  virtual double rasterSizeY() const = 0;
39 
40  virtual unsigned tileSizeX() const = 0;
41  virtual unsigned tileSizeY() const = 0;
42 
43  //convert raster index to coordinates
44  virtual void index2Coord(unsigned rasterIndexX, unsigned rasterIndexY, double &coordX, double &coordY) const = 0;
45 
46  virtual WindowHandle get(unsigned idx, unsigned &cuIndexX, unsigned &cuIndexY,
47  unsigned &rasterIndexX, unsigned &rasterIndexY,
48  unsigned &cuSizeX, unsigned &cuSizeY) const = 0;
49 
50 };
52 
53 
54 DM_NAMESPACE_END
2d window object
Definition: IWindow.hpp:11
kernel for handling point object
Definition: ICUStrategy.hpp:24
@ count
always last element
@ auto_
automatic model selection
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