IImportWithTRJ.hpp
1 #ifndef DM_IO_IMPORT_WITH_TRJ_HPP_INCLUDED
2 #define DM_IO_IMPORT_WITH_TRJ_HPP_INCLUDED
3 
4 #ifdef _MSC_VER
5  #pragma once
6 #endif
7 
8 //DM
9 #include "DM/config.hpp"
10 #include "DM/AutoLink.hpp" //enable autolink
11 
12 #include "DM/ColumnTypes.hpp"
13 #include "DM/IO/IImport.hpp"
14 
15 
16 class OGRSpatialReference;
17 
18 DM_NAMESPACE_BEGIN
19 
20 class DM_API IImportWithTRJ : public virtual IImport
21 {
22 public:
24  eBeamVector = 1, ///< store beam vector in world coordinate system (default option)
25  eBeamVectorSCS = 2, ///< store beam vector in scaner's coordinate system
26  eRange = 4, ///< store range
27  eScanAngle = 8, ///< store scan angle
28 
29  eDefault = eBeamVector
30  };
31 
32  static IImportWithTRJ* New( ImportHandle importPts, ImportHandle importTrj, int storageOptions = eDefault, OGRSpatialReference *refsys = 0, double timeOffest = 0.,
33  FilterHandle filter = FilterHandle(),
35  bool b_collectHdrContents = false, unsigned maxBulkPoints = 1000 );
36 
37  static AddInfoLayoutHandle createLayout(int beamInfoOptions);
38 
39 protected:
40  virtual ~IImportWithTRJ() {}
41 
42 public:
43  /// explicitly set the points import object (useful for multiple imports with the same trajectory file)
44  virtual void setPointsImport(ImportHandle importPts) = 0;
45 };
46 
47 typedef Handle<IImportWithTRJ> ImportWithTRJHandle;
48 
49 DM_NAMESPACE_END
50 
51 #endif //DM_IO_IMPORT_WITH_TRJ_HPP_INCLUDED