IEchoRatio.hpp
1 #ifndef OPALS_IECHORATIO_HPP_INCLUDED
2 #define OPALS_IECHORATIO_HPP_INCLUDED
3 
4 #include <opals/IModuleBase.hpp>
5 #include <opals/String.hpp>
6 #include <opals/Path.hpp>
7 #include <opals/EchoRatioMode.hpp>
8 
9 #if !defined(OPALS_EXPORTS) && !defined(OPALS_MODULE_EXPORTS)
10  #if defined _DEBUG && !defined OPALS_NO_DEBUG
11  #pragma comment(lib, "opalsEchoRatio_d.lib")
12  #else
13  #pragma comment(lib, "opalsEchoRatio.lib")
14  #endif
15 #endif
16 
17 namespace opals {
18 
19  namespace opts
20  {
21  namespace EchoRatio
22  {
23  /// Options of \ref ModuleEchoRatio
24  typedef IGroup< Names::_, false, Cons<
25  ILeaf< Names::inFile, false, opals::Path >, Cons<
26  ILeaf< Names::searchRadius, false, float >, Cons<
27  ILeaf< Names::ratioMode, false, opals::EchoRatioMode::Type >, Cons<
28  ILeaf< Names::filter, false, opals::Vector<opals::String> >, Cons<
29  ILeaf< Names::maxSigma, false, float >
30  > > > > > > Options;
31  }
32  }
33 
34  /// Derives and stores the echo ratio (ER) attribute for points of an OPALS data manager.
35  /** TODO:
36  More details on opalsEchoRatio */
37  /// \see \ref ModuleEchoRatio
38  class OPALS_API IEchoRatio : virtual public IModuleBase
39  {
40 
41  public:
42  static IEchoRatio* New();
43  static IEchoRatio* New( IControlObject &controlObject );
44  static IEchoRatio* New( const IModuleBase &parent );
45  static IEchoRatio* New( const IModuleBase &parent, IControlObject &controlObject );
46 
47  virtual ~IEchoRatio() {}
48 
49  /// \name Access to module-specific options.
50  ///@{
52  virtual Options& opts() = 0;
53  virtual const Options& opts() const = 0;
54  ///}@
55 
56  };
57 
58 };
59 
60 #endif