ILineTopology.hpp
1 #pragma once
2 
3 #include <opals/IModuleBase.hpp>
4 #include <opals/Path.hpp>
5 #include <opals/Vector.hpp>
6 #include <opals/TopologyProcessingMethod.hpp>
7 
8 #if defined(_MSC_VER) && !defined(OPALS_NO_AUTOLINK)
9  #if defined _DEBUG && !defined OPALS_NO_DEBUG
10  #pragma comment(lib, "opalsLineTopology_d.lib")
11  #else
12  #pragma comment(lib, "opalsLineTopology.lib")
13  #endif
14 #endif
15 
16 namespace opals
17 {
18 
19  namespace opts
20  {
21  /// Options of \ref ModuleLineTopology
22  namespace LineTopology
23  {
24  /// Options of \ref ModuleLineTopology
25  using Options =
26  IGroup< Names::_,
45  >,
52  >,
55  >
56  >;
57  }
58  }
59 
60  /// Provides different line merging and topology correction tools for cleaning line networks derived via automatic edge detection.
61  /** TODO:
62  More details on opalsLineTopology with much more words,
63  possibly on several lines. */
64  /// \see \ref ModuleLineTopology
65  class OPALS_API ILineTopology : virtual public IModuleBase
66  {
67 
68  public:
69  static ILineTopology* New();
70  static ILineTopology* New( IControlObject &controlObject );
71  static ILineTopology* New( const IModuleBase &parent );
72  static ILineTopology* New( const IModuleBase &parent, IControlObject &controlObject );
73 
74  virtual ~ILineTopology() {}
75 
76  /// \name Access to module-specific options.
77  ///@{
79  Options& opts() override = 0;
80  const Options& opts() const override = 0;
81  ///@}
82 
83  };
84 
85 }
A leaf that holds a value.
Definition: IOption.hpp:62
Provides different line merging and topology correction tools for cleaning line networks derived via ...
Definition: ILineTopology.hpp:65
@ wf
Parameter group 'wf' containing weight factor options (opalsLineTopology)
@ clean
Parameter group 'clean' (opalsLineTopology)
Contains the public interface of OPALS.
Definition: AbsValueOrQuantile.hpp:8
IGroup< Names::_, IValue< Names::inFile, false, Path >, IValue< Names::outFile, false, Path >, IValue< Names::method, false, TopologyProcessingMethod >, IValue< Names::minLength, false, double >, IValue< Names::maxTol, false, double >, IValue< Names::lineVertexDist, false, double >, IValue< Names::snapRadius, false, double >, IValue< Names::maxAngleDev, false, Vector< float > >, IValue< Names::avgDist, false, double >, IValue< Names::debugOutFile, false, Path >, IGroup< Names::merge, IValue< Names::minWeight, false, double >, IValue< Names::relWeightLead, false, double >, IValue< Names::maxIter, false, unsigned >, IValue< Names::revertDist, false, double >, IValue< Names::revertInterval, false, double >, IValue< Names::searchGeneration, false, unsigned >, IValue< Names::preventIntersection, false, bool > >, IGroup< Names::wf, IValue< Names::dist, false, double >, IValue< Names::angle, false, Vector< float > >, IValue< Names::revertDist, false, double >, IValue< Names::straightness, false, double >, IValue< Names::perpDist, false, double > >, IGroup< Names::clean, IValue< Names::intersectSnapDist, false, double > > > Options
Options of Module LineTopology.
Definition: ILineTopology.hpp:56
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
@ merge
Parameter group 'merge' (opalsLineTopology)
A group of options.
Definition: IOption.hpp:136