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 
9 #if defined(_MSC_VER) && !defined(OPALS_NO_AUTOLINK)
10  #if defined _DEBUG && !defined OPALS_NO_DEBUG
11  #pragma comment(lib, "opalsBounds_d.lib")
12  #else
13  #pragma comment(lib, "opalsBounds.lib")
14  #endif
15 #endif
16 
17 namespace opals {
18 
19  namespace opts
20  {
21  /// Options of \ref ModuleBounds
22  namespace Bounds
23  {
24  /// Options of \ref ModuleBounds
25  using Options =
26  IGroup< Names::_, false,
34  >;
35  }
36  }
37 
38  /// 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.
39  /** Module Bounds derives the 2D boundary polygon either as a bounding window, minimum bounding rectangle, convex hull or
40  alpha shape. In the latter case, more than one polygon may be extracted if the dataset is divided into specific regions.
41  Please note, that only outer boundaries are derived but no holes. */
42  /// \see \ref ModuleBounds
43  /// \author wk
44  /// \date 14.01.2009
45  class OPALS_API IBounds : virtual public IModuleBase
46  {
47 
48  public:
49  static IBounds* New();
50  static IBounds* New( IControlObject &controlObject );
51  static IBounds* New( const IModuleBase &parent );
52  static IBounds* New( const IModuleBase &parent, IControlObject &controlObject );
53 
54  virtual ~IBounds() {}
55 
56  /// \name Access to module-specific options.
57  ///@{
59  virtual Options& opts() = 0;
60  virtual const Options& opts() const = 0;
61  ///@}
62 
63  };
64 
65 };
Leaf that holds a read-only value.
Definition: IOption.hpp:63
Derives and stores the 2D boundary polygon of a region covered by the point data of an ODM or the val...
Definition: IBounds.hpp:45
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::_, false, ILeaf< Names::inFile, false, Path >, ILeaf< Names::outFile, false, Path >, ILeaf< Names::oFormat, false, String >, ILeaf< Names::boundsType, false, BoundaryType >, ILeaf< Names::alphaRadius, false, double >, ILeaf< Names::hollowingThresh, false, unsigned >, ILeaf< Names::rasterType, false, RasterType > > Options
Options of Module Bounds.
Definition: IBounds.hpp:34
A group of options.
Definition: IOption.hpp:108