IFillGaps.hpp
1 #pragma once
2 
3 #include <opals/IModuleBase.hpp>
4 #include <opals/Path.hpp>
5 #include <opals/Vector.hpp>
6 #include <opals/GridLimit.hpp>
7 #include <opals/FillMethod.hpp>
8 #include <opals/GapInfo.hpp>
9 #include <DM/StatFeature.hpp>
10 
11 #if defined(_MSC_VER) && !defined(OPALS_NO_AUTOLINK)
12  #if defined _DEBUG && !defined OPALS_NO_DEBUG
13  #pragma comment(lib, "opalsFillGaps_d.lib")
14  #else
15  #pragma comment(lib, "opalsFillGaps.lib")
16  #endif
17 #endif
18 
19 namespace opals {
20 
21  namespace opts
22  {
23  /// Options of \ref ModuleFillGaps
24  namespace FillGaps
25  {
26  /// Options of \ref ModuleFillGaps
27  using Options =
28  IGroup< Names::_, false,
34  IGroup< Names::adaptive, false,
38  >,
43  >;
44  }
45  }
46 
47  /// Detects gaps (i.e. void pixels) in raster models and provides several interpolation methods to close them.
48  /** The generation of Digital Terrain Models (DTM) usually leads to void pixels where buildings and vegetation were removed. Module FillGaps aims to close these gaps with qualified approximation of void pixel using the neighbouring pixel of a gap. */
49  /// \see \ref ModuleFillGaps
50  class OPALS_API IFillGaps : virtual public IModuleBase
51  {
52 
53  public:
54  static IFillGaps* New();
55  static IFillGaps* New( IControlObject &controlObject );
56  static IFillGaps* New( const IModuleBase &parent );
57  static IFillGaps* New( const IModuleBase &parent, IControlObject &controlObject );
58 
59  virtual ~IFillGaps() {}
60 
61  /// \name Access to module-specific options.
62  ///@{
64  virtual Options& opts() = 0;
65  virtual const Options& opts() const = 0;
66  ///@}
67 
68  };
69 
70 };
Leaf that holds a read-only value.
Definition: IOption.hpp:63
Contains the public interface of OPALS.
Definition: AbsValueOrQuantile.hpp:8
IGroup< Names::_, false, ILeaf< Names::inFile, false, Path >, ILeaf< Names::outFile, false, Path >, ILeaf< Names::oFormat, false, String >, ILeaf< Names::method, false, FillMethod >, ILeaf< Names::feature, false, DM::StatFeature >, IGroup< Names::adaptive, false, ILeaf< Names::weightFunc, false, String >, ILeaf< Names::maxPixelRigorous, false, double >, ILeaf< Names::gridSize, false, unsigned > >, ILeaf< Names::boundaryRatio, false, float >, ILeaf< Names::fillMask, false, Path >, ILeaf< Names::maxArea, false, double >, ILeaf< Names::gapInfo, false, Vector< GapInfo > > > Options
Options of Module FillGaps.
Definition: IFillGaps.hpp:43
Abstract base class of all opals modules.
Definition: IModuleBase.hpp:13
@ adaptive
group name for opalsFillGaps fill method 'adaptive'
Interface for retrieving status and progress information from a module run.
Definition: c++_api/inc/opals/IControlObject.hpp:30
A group of options.
Definition: IOption.hpp:108
Detects gaps (i.e. void pixels) in raster models and provides several interpolation methods to close ...
Definition: IFillGaps.hpp:50