IOverlap.hpp
1 #pragma once
2 
3 #include <opals/IModuleBase.hpp>
4 #include <utility>
5 #include <opals/Path.hpp>
6 #include <opals/Array.hpp>
7 #include <opals/Vector.hpp>
8 #include <opals/OverlapDef.hpp>
9 
10 #if defined(_MSC_VER) && !defined(OPALS_NO_AUTOLINK)
11  #if defined _DEBUG && !defined OPALS_NO_DEBUG
12  #pragma comment(lib, "opalsOverlap_d.lib")
13  #else
14  #pragma comment(lib, "opalsOverlap.lib")
15  #endif
16 #endif
17 
18 namespace opals {
19 
20  namespace opts
21  {
22  /// Options of \ref ModuleOverlap
23  namespace Overlap
24  {
25  /// Options of \ref ModuleOverlap
26  using Options =
27  IGroup< Names::_, false,
34  >;
35  }
36  }
37 
38  /// Analyses a set of strip boundaries and determines all overlapping strip pairs.
39  /** TODO:
40  More details on opalsOverlap */
41  /// \see \ref ModuleOverlap
42  class OPALS_API IOverlap : virtual public IModuleBase
43  {
44 
45  public:
46  static IOverlap* New();
47  static IOverlap* New( IControlObject &controlObject );
48  static IOverlap* New( const IModuleBase &parent );
49  static IOverlap* New( const IModuleBase &parent, IControlObject &controlObject );
50 
51  virtual ~IOverlap() {}
52 
53  /// \name Access to module-specific options.
54  ///@{
56  virtual Options& opts() = 0;
57  virtual const Options& opts() const = 0;
58  ///@}
59 
60  };
61 
62 };
Analyses a set of strip boundaries and determines all overlapping strip pairs.
Definition: IOverlap.hpp:42
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
IGroup< Names::_, false, ILeaf< Names::inFile, false, Vector< Path > >, ILeaf< Names::outFile, false, Path >, ILeaf< Names::minArea, false, OverlapDef >, ILeaf< Names::borderFile, false, Path >, ILeaf< Names::overlapFile, false, Path >, ILeaf< Names::pairList, true, Vector< Array< Path, 2 > > > > Options
Options of Module Overlap.
Definition: IOverlap.hpp:34
A group of options.
Definition: IOption.hpp:108