IDirectGeoref.hpp
1 #ifndef OPALS_IDIRECTGEOREF_HPP_INCLUDED
2 #define OPALS_IDIRECTGEOREF_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, "opalsDirectGeoref_d.lib")
9  #else
10  #pragma comment(lib, "opalsDirectGeoref.lib")
11  #endif
12 #endif
13 
14 #include <opals/String.hpp>
15 #include <opals/Path.hpp>
16 #include <opals/Vector.hpp>
17 #include <opals/MountingPars.hpp>
18 
19 namespace opals {
20 
21  namespace opts
22  {
23  namespace DirectGeoref
24  {
25  /// Options of \ref ModuleDirectGeoref
26  typedef IGroup< Names::_, false, Cons<
27  ILeaf< Names::inFile, false, opals::Vector<opals::Path> >, Cons<
28  ILeaf< Names::iFormat, false, opals::Vector<opals::String> >, Cons<
29  ILeaf< Names::mounting, false, opals::MountingPars >, Cons<
30  ILeaf< Names::trjFile, false, opals::Vector<opals::Path> >, Cons<
31  ILeaf< Names::tFormat, false, opals::Vector<opals::String> >, Cons<
32  ILeaf< Names::outFile, false, opals::Vector<opals::Path> >, Cons<
33  ILeaf< Names::oFormat, false, opals::String >
34  > > > > > > > > Options;
35  }
36  }
37 
38  /// Transforms points from scanner coordinates into geo-referenced coordinates by applying the sensor model (flight trajectory, mounting parameters).
39  /** TODO:
40  More details on opalsDirectGeoref with much more words,
41  possibly on several lines. */
42  /// \see \ref ModuleDirectGeoref
43  class OPALS_API IDirectGeoref : virtual public IModuleBase
44  {
45 
46  public:
47  static IDirectGeoref* New();
48  static IDirectGeoref* New( IControlObject &controlObject );
49  static IDirectGeoref* New( const IModuleBase &parent );
50  static IDirectGeoref* New( const IModuleBase &parent, IControlObject &controlObject );
51 
52  virtual ~IDirectGeoref() {}
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