ILSM.hpp
1 #pragma once
2 
3 #include <opals/IModuleBase.hpp>
4 #include <opals/Vector.hpp>
5 #include <opals/Array.hpp>
6 #include <opals/Path.hpp>
7 #include <opals/LSMProcMode.hpp>
8 #include <opals/LSMTrafoType.hpp>
9 #include <opals/TrafPars3dAffine.hpp>
10 
11 #if defined(_MSC_VER) && !defined(OPALS_NO_AUTOLINK)
12  #if defined _DEBUG && !defined OPALS_NO_DEBUG
13  #pragma comment(lib, "opalsLSM_d.lib")
14  #else
15  #pragma comment(lib, "opalsLSM.lib")
16  #endif
17 #endif
18 
19 namespace opals {
20 
21  namespace opts
22  {
23  /// Options of \ref ModuleLSM
24  namespace LSM
25  {
26  /// Options of \ref ModuleLSM
27  using Options =
28  IGroup< Names::_, false,
40  >;
41  }
42  }
43 
44  /// Estimates an affine 3D transformation to align overlapping ALS strip DEMs using Least Squares Matching.
45  /** TODO:
46  More details on opalsLSM */
47  /// \see \ref ModuleLSM
48  class OPALS_API ILSM : virtual public IModuleBase
49  {
50 
51  public:
52  static ILSM* New();
53  static ILSM* New( IControlObject &controlObject );
54  static ILSM* New( const IModuleBase &parent );
55  static ILSM* New( const IModuleBase &parent, IControlObject &controlObject );
56 
57  virtual ~ILSM() {}
58 
59  /// \name Access to module-specific options.
60  ///@{
62  virtual Options& opts() = 0;
63  virtual const Options& opts() const = 0;
64  ///@}
65 
66  };
67 
68 };
Estimates an affine 3D transformation to align overlapping ALS strip DEMs using Least Squares Matchin...
Definition: ILSM.hpp:48
Leaf that holds a read-only value.
Definition: IOption.hpp:63
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
A group of options.
Definition: IOption.hpp:108
IGroup< Names::_, false, ILeaf< Names::inFile, false, Array< Path, 2 > >, ILeaf< Names::gridMask, false, Array< Path, 2 > >, ILeaf< Names::spotData, false, Path >, ILeaf< Names::outTrafPars, true, Vector< TrafPars3dAffine > >, ILeaf< Names::lsmTrafo, false, LSMTrafoType >, ILeaf< Names::lsmMode, false, LSMProcMode >, ILeaf< Names::robFactor, false, float >, ILeaf< Names::patchSize, false, Vector< double > >, ILeaf< Names::direction, false, Vector< double > >, ILeaf< Names::maxMemory, false, int >, ILeaf< Names::maxIter, false, int > > Options
Options of Module LSM.
Definition: ILSM.hpp:40