c++_api/inc/opals/IImport.hpp
1 #pragma once
2 
3 #include <opals/IModuleBase.hpp>
4 #include <opals/BeamInfo.hpp>
5 #include <opals/Filter.hpp>
6 #include <opals/MergePolygonMode.hpp>
7 #include <opals/MountingPars.hpp>
8 #include <opals/Path.hpp>
9 #include <opals/String.hpp>
10 #include <opals/TrafPars3dAffine.hpp>
11 #include <opals/VectorOrRasterFile.hpp>
12 #include <opals/Vector.hpp>
13 
14 #if defined(_MSC_VER) && !defined(OPALS_NO_AUTOLINK)
15  #if defined _DEBUG && !defined OPALS_NO_DEBUG
16  #pragma comment(lib, "opalsImport_d.lib")
17  #else
18  #pragma comment(lib, "opalsImport.lib")
19  #endif
20 #endif
21 
22 namespace opals {
23 
24  namespace opts
25  {
26  /// Options of \ref ModuleImport
27  namespace Import
28  {
29  /// Options of \ref ModuleImport
30  using Options =
31  IGroup< Names::_, false,
45  >;
46  }
47  }
48 
49  /// Loads vector and raster data into an ODM for subsequent use in modules dealing with point cloud and line related data.
50  /** Module Import tries to preserve the full information of imported file formats.
51  Therefore, the ODM contains an additional administration level, storing header and layer information for each file.
52  Hence, it is possible to reproduce the original files from an ODM file (even in case of a multiple file import).
53  Currently, Module Import supports 6 different vector file formats. Additionally, any of the supported raster formats may be imported. However, please notice that this is a rather rare use case: raster data imported into an ODM will be treated like any other data in an ODM i.e. the topological information defined implicitly by rasters is lost. */
54  /// \see \ref ModuleImport
55  class OPALS_API IImport : virtual public IModuleBase
56  {
57 
58  public:
59  static IImport* New();
60  static IImport* New( IControlObject &controlObject );
61  static IImport* New( const IModuleBase &parent );
62  static IImport* New( const IModuleBase &parent, IControlObject &controlObject );
63 
64  virtual ~IImport() {}
65 
66  /// \name Access to module-specific options.
67  ///@{
69  virtual Options& opts() = 0;
70  virtual const Options& opts() const = 0;
71  ///@}
72 
73  };
74 
75 };
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
Loads vector and raster data into an ODM for subsequent use in modules dealing with point cloud and l...
Definition: c++_api/inc/opals/IImport.hpp:55
A group of options.
Definition: IOption.hpp:108
IGroup< Names::_, false, ILeaf< Names::inFile, false, Vector< VectorOrRasterFile > >, ILeaf< Names::iFormat, false, Vector< String > >, ILeaf< Names::trjFile, false, Vector< Path > >, ILeaf< Names::tFormat, false, Vector< String > >, ILeaf< Names::outFile, false, Path >, ILeaf< Names::filter, false, FilterWithPlaceHolders< DM::IFilter::ReadAccess::coordinatesAttributes, DM::IFilter::WriteAccess::full > >, ILeaf< Names::trafo, false, TrafPars3dAffine >, ILeaf< Names::storeOrder, false, bool >, ILeaf< Names::tilePointCount, false, int >, ILeaf< Names::tileSize, false, double >, ILeaf< Names::storeBeamInfo, false, Vector< BeamInfo > >, ILeaf< Names::mounting, false, MountingPars >, ILeaf< Names::mergePolygon, false, MergePolygonMode > > Options
Options of Module Import.
Definition: c++_api/inc/opals/IImport.hpp:45