IRasterize.hpp
1 #ifndef OPALS_IRASTERIZE_HPP_INCLUDED
2 #define OPALS_IRASTERIZE_HPP_INCLUDED
3 
4 #include <opals/IModuleBase.hpp>
5 #include <opals/GridLimit.hpp>
6 
7 #if !defined(OPALS_EXPORTS) && !defined(OPALS_MODULE_EXPORTS)
8  #if defined _DEBUG && !defined OPALS_NO_DEBUG
9  #pragma comment(lib, "opalsRasterize_d.lib")
10  #else
11  #pragma comment(lib, "opalsRasterize.lib")
12  #endif
13 #endif
14 
15 #include <opals/Path.hpp>
16 #include <opals/Vector.hpp>
17 
18 namespace opals {
19 
20  namespace opts
21  {
22  namespace Rasterize
23  {
24  /// Options of \ref ModuleRasterize
25  typedef IGroup< Names::_, false, Cons<
26  ILeaf< Names::inFile, false, opals::Path >, Cons<
27  ILeaf< Names::outFile, false, opals::Path >, Cons<
28  ILeaf< Names::oFormat, false, opals::String >, Cons<
29  ILeaf< Names::cellSize, false, opals::Vector<double> >, Cons<
30  ILeaf< Names::limit, false, opals::GridLimit >, Cons<
31  ILeaf< Names::attribute, false, opals::String >, Cons<
32  ILeaf< Names::filter, false, opals::String >, Cons<
33  ILeaf< Names::noData, false, double >, Cons<
34  ILeaf< Names::initValue, false, double >
35  > > > > > > > > > > Options;
36  }
37  }
38 
39  /// Performs vector-to-raster conversion for all types of simple feature geometries (points, lines, polygons).
40  /** */
41  /// \see \ref ModuleRasterize
42  class OPALS_API IRasterize : virtual public IModuleBase
43  {
44 
45  public:
46  static IRasterize* New();
47  static IRasterize* New( IControlObject &controlObject );
48  static IRasterize* New( const IModuleBase &parent );
49  static IRasterize* New( const IModuleBase &parent, IControlObject &controlObject );
50 
51  virtual ~IRasterize() {}
52 
53  /// \name Access to module-specific options.
54  ///@{
56  virtual Options& opts() = 0;
57  virtual const Options& opts() const = 0;
58  ///}@
59 
60  };
61 
62 };
63 
64 #endif