Loading [MathJax]/extensions/tex2jax.js
IBounds.hpp
1 #pragma once
2 
3 #include <opals/String.hpp>
4 #include <opals/Path.hpp>
5 #include <opals/IModuleBase.hpp>
6 #include <opals/BoundaryType.hpp>
7 #include <opals/RasterType.hpp>
8 #include <opals/SearchMode.hpp>
9 
10 #if defined(_MSC_VER) && !defined(OPALS_NO_AUTOLINK)
11  #if defined _DEBUG && !defined OPALS_NO_DEBUG
12  #pragma comment(lib, "opalsBounds_d.lib")
13  #else
14  #pragma comment(lib, "opalsBounds.lib")
15  #endif
16 #endif
17 
18 namespace opals {
19 
20  namespace opts
21  {
22  /// Options of \ref ModuleBounds
23  namespace Bounds
24  {
25  /// Options of \ref ModuleBounds
26  using Options =
27  IGroup< Names::_,
37  >;
38  }
39  }
40 
41  /// Derives and stores the 2D boundary polygon of a region covered by the point data of an ODM or the valid pixels of a raster.
42  /** Module Bounds derives the 2D boundary polygon either as a bounding window, minimum bounding rectangle, convex hull or
43  alpha shape. In the latter case, more than one polygon may be extracted if the dataset is divided into specific regions.
44  Please note, that only outer boundaries are derived but no holes. */
45  /// \see \ref ModuleBounds
46  /// \author wk
47  /// \date 14.01.2009
48  class OPALS_API IBounds : virtual public IModuleBase
49  {
50 
51  public:
52  static IBounds* New();
53  static IBounds* New( IControlObject &controlObject );
54  static IBounds* New( const IModuleBase &parent );
55  static IBounds* New( const IModuleBase &parent, IControlObject &controlObject );
56 
57  virtual ~IBounds() {}
58 
59  /// \name Access to module-specific options.
60  ///@{
62  Options& opts() override = 0;
63  const Options& opts() const override = 0;
64  ///@}
65 
66  };
67 
68 };
A leaf that holds a value.
Definition: IOption.hpp:62
Derives and stores the 2D boundary polygon of a region covered by the point data of an ODM or the val...
Definition: IBounds.hpp:48
Contains the public interface of OPALS.
Definition: AbsValueOrQuantile.hpp:8
Abstract base class of all opals modules.
Definition: IModuleBase.hpp:13
Interface for retrieving status and progress information from a module run.
Definition: c++_api/inc/opals/IControlObject.hpp:30
IGroup< Names::_, IValue< Names::inFile, false, Path >, IValue< Names::outFile, false, Path >, IValue< Names::oFormat, false, String >, IValue< Names::boundsType, false, BoundaryType >, IValue< Names::alphaRadius, false, double >, IValue< Names::hollowingThresh, false, unsigned >, IValue< Names::rasterType, false, RasterType >, IValue< Names::calculationMode, false, SearchMode >, IValue< Names::approximative, false, bool > > Options
Options of Module Bounds.
Definition: IBounds.hpp:37
A group of options.
Definition: IOption.hpp:136