ILineModeler.hpp
1 #pragma once
2 
3 #include <opals/IModuleBase.hpp>
4 #include <opals/Path.hpp>
5 #include <opals/Vector.hpp>
6 
7 #if defined(_MSC_VER) && !defined(OPALS_NO_AUTOLINK)
8  #if defined _DEBUG && !defined OPALS_NO_DEBUG
9  #pragma comment(lib, "opalsLineModeler_d.lib")
10  #else
11  #pragma comment(lib, "opalsLineModeler.lib")
12  #endif
13 #endif
14 
15 namespace opals
16 {
17 
18  namespace opts
19  {
20  /// Options of \ref ModuleLineModeler
21  namespace LineModeler
22  {
23  /// Options of \ref ModuleLineModeler
24  using Options =
25  IGroup< Names::_, false,
43  >;
44  }
45  }
46 
47  /// Models 3D structure lines based on a point cloud (ODM) and 2D line approximations.
48  /** TODO:
49  More details on opalsLineModeler with much more words,
50  possibly on several lines. */
51  /// \see \ref ModuleLineModeler
52  class OPALS_API ILineModeler : virtual public IModuleBase
53  {
54 
55  public:
56  static ILineModeler* New();
57  static ILineModeler* New( IControlObject &controlObject );
58  static ILineModeler* New( const IModuleBase &parent );
59  static ILineModeler* New( const IModuleBase &parent, IControlObject &controlObject );
60 
61  virtual ~ILineModeler() {}
62 
63  /// \name Access to module-specific options.
64  ///@{
66  virtual Options& opts() = 0;
67  virtual const Options& opts() const = 0;
68  ///@}
69 
70  };
71 
72 }
Models 3D structure lines based on a point cloud (ODM) and 2D line approximations.
Definition: ILineModeler.hpp:52
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::approxFile, false, Path >, ILeaf< Names::outFile, false, Path >, ILeaf< Names::oFormat, false, String >, ILeaf< Names::filter, false, String >, ILeaf< Names::processId, false, Vector< String > >, ILeaf< Names::ignoreId, false, Vector< String > >, ILeaf< Names::patchLength, false, Vector< double > >, ILeaf< Names::patchWidth, false, Vector< double > >, ILeaf< Names::overlap, false, Vector< double > >, ILeaf< Names::minAngle, false, double >, ILeaf< Names::minLength, false, double >, ILeaf< Names::samplingDist, false, double >, ILeaf< Names::pointCount, false, Vector< unsigned > >, ILeaf< Names::sigmaApriori, false, Vector< double > >, ILeaf< Names::spikeRemoval, false, bool >, ILeaf< Names::debugOutFile, false, Path > > Options
Options of Module LineModeler.
Definition: ILineModeler.hpp:43
A group of options.
Definition: IOption.hpp:108