IGeorefApprox.hpp
1 #ifndef OPALS_IGEOREFAPPROX_HPP_INCLUDED
2 #define OPALS_IGEOREFAPPROX_HPP_INCLUDED
3 
4 #include <opals/IModuleBase.hpp>
5 
6 #if !defined(OPALS_EXPORTS) && !defined(OPALS_MODULE_EXPORTS)
7  #if defined _DEBUG && !defined OPALS_NO_DEBUG
8  #pragma comment(lib, "opalsGeorefApprox_d.lib")
9  #else
10  #pragma comment(lib, "opalsGeorefApprox.lib")
11  #endif
12 #endif
13 
14 #include <opals/Path.hpp>
15 #include <opals/Vector.hpp>
16 #include <opals/TrafPars3dAffine.hpp>
17 
18 namespace opals {
19 
20  namespace opts
21  {
22  namespace GeorefApprox
23  {
24  /// Options of \ref ModuleGeorefApprox
25  typedef IGroup< Names::_, false, Cons<
26  ILeaf< Names::obsTrafPars, false, opals::Vector<opals::TrafPars3dAffine> >, Cons<
27  ILeaf< Names::outTrafPars, true, opals::Vector<opals::TrafPars3dAffine> >, Cons<
28  ILeaf< Names::stripList, false, opals::Vector<opals::Path> >, Cons<
29  ILeaf< Names::fixedStrip, false, opals::Path >, Cons<
30  ILeaf< Names::sigmaShift, false, double >, Cons<
31  ILeaf< Names::maxIter, false, int >, Cons<
32  ILeaf< Names::convThreshold, false, double >, Cons<
33  ILeaf< Names::minWeight, false, double >
34  > > > > > > > > > Options;
35  }
36  }
37 
38  /// Improves the geo-referencing of an ALS flight block based on pairwise affine strip transformations (cf. Module LSM).
39  /** opalsGeorefApprox performs a strip adjustment based on relative pairwise affine
40  transformations as input. Each transformation is estimated by least-squares-matching
41  (opalsLSM). */
42  /// \see \ref ModuleGeorefApprox
43  class OPALS_API IGeorefApprox : virtual public IModuleBase
44  {
45 
46  public:
47  static IGeorefApprox* New();
48  static IGeorefApprox* New( IControlObject &controlObject );
49  static IGeorefApprox* New( const IModuleBase &parent );
50  static IGeorefApprox* New( const IModuleBase &parent, IControlObject &controlObject );
51 
52  virtual ~IGeorefApprox() {}
53 
54  /// \name Access to module-specific options.
55  ///@{
57  virtual Options& opts() = 0;
58  virtual const Options& opts() const = 0;
59  ///}@
60 
61  };
62 
63 };
64 
65 #endif