OpendTect  6.3
coordsystem.h
Go to the documentation of this file.
1 #pragma once
2 
3 /*+
4 ________________________________________________________________________
5 
6  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
7  Author: K. Tingdahl
8  Date: August 2016
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "factory.h"
14 
15 #include "bufstring.h"
16 #include "coord.h"
17 #include "latlong.h"
18 #include "refcount.h"
19 
20 class NotifierAccess;
21 
22 namespace Coords
23 {
24 
25 
26 
31 mExpClass(Basic) PositionSystem : public RefCount::Referenced
32 {
33 public:
34 
35  bool operator==(const PositionSystem&) const;
36 
37  static void initRepository(NotifierAccess* = 0);
43 
44  static void getSystemNames(bool onlyorthogonal,uiStringSet&,
50  static RefMan<PositionSystem> createSystem(const IOPar&);
52  virtual uiString description() const = 0;
53 
54  virtual bool isOK() const = 0;
55 
56  virtual bool geographicTransformOK() const = 0;
57  virtual LatLong toGeographicWGS84(const Coord&) const = 0;
58  virtual Coord fromGeographicWGS84(const LatLong&) const = 0;
59 
60  static Coord convert(const Coord&,const PositionSystem& from,
61  const PositionSystem& to);
62  Coord convertFrom(const Coord&,
63  const PositionSystem& from) const;
64 
65  virtual uiString toUiString(const Coord&) const;
66  virtual BufferString toString(const Coord&,
67  bool withsystem=false) const;
71  virtual Coord fromString(const char*) const;
72 
73  virtual bool isOrthogonal() const = 0;
74  virtual bool isFeet() const { return false; }
75  virtual bool isMeter() const { return false; }
76 
77  virtual bool usePar(const IOPar&);
78  virtual void fillPar(IOPar&) const;
79 
80  static const char* sKeyFactoryName() { return "System name";}
81  static const char* sKeyUiName() { return "UI Name"; }
82 };
83 
84 
87 public:
88  mDefaultFactoryInstantiation( PositionSystem,UnlocatedXY,"Unlocated XY",
89  tr("Unlocated XY") );
90 
91  UnlocatedXY();
92  UnlocatedXY(const Coord&,const LatLong&);
93  virtual uiString description() const
94  { return
95  tr("Coordinate system in an undefined projection.");}
96 
97  void setIsFeet( bool isfeet ) { isfeet_ = isfeet; }
98  bool geographicTransformOK() const;
99  void setLatLongEstimate(const LatLong&,const Coord&);
100 
101  virtual LatLong toGeographicWGS84(const Coord&) const;
103  virtual Coord fromGeographicWGS84(const LatLong&) const;
104 
105  virtual bool isOK() const { return true; }
106  virtual bool isOrthogonal() const { return true; }
107  virtual bool isFeet() const { return isfeet_; }
108  virtual bool isMeter() const { return !isfeet_; }
109 
110  virtual bool usePar(const IOPar&);
111  virtual void fillPar(IOPar&) const;
112 
113  const Coord& refCoord() const { return refcoord_; }
114  const LatLong& refLatLong() const { return reflatlng_; }
115 
116 private:
117 
118  bool isfeet_;
121 
122  double lngdist_;
123 };
124 
125 
126 }; //namespace
#define mExpClass(module)
Definition: commondefs.h:157
bool isfeet_
Definition: coordsystem.h:118
T to(const F &fr)
Definition: convert.h:31
LatLong reflatlng_
Definition: coordsystem.h:120
bool operator==(const ArrayNDInfo &a1, const ArrayNDInfo &a2)
Definition: arrayndinfo.h:51
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
Interface class for Notifier. See comments there.
Definition: notify.h:20
const LatLong & refLatLong() const
Definition: coordsystem.h:114
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
Definition: coordsystem.h:31
void setIsFeet(bool isfeet)
Definition: coordsystem.h:97
#define mDefaultFactoryInstantiation(baseclss, clss, keywrd, usernm)
Definition: factory.h:287
Definition: uistring.h:88
Geographical coordinates, decimal but with conv to deg, min, sec.
Definition: latlong.h:22
virtual bool isOK() const
Definition: coordsystem.h:105
static const char * sKeyFactoryName()
Definition: coordsystem.h:80
virtual bool isOrthogonal() const
Definition: coordsystem.h:106
Definition: coordsystem.h:22
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
virtual bool isMeter() const
Definition: coordsystem.h:75
static const char * sKeyUiName()
Definition: coordsystem.h:81
uiString toUiString(const DBKey &ky)
Definition: dbkey.h:117
BufferString toString(const DBKey &ky)
Definition: dbkey.h:115
#define mDefineFactoryInClass(T, funcname)
Definition: factory.h:424
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
virtual bool isFeet() const
Definition: coordsystem.h:107
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
T convert(Type inptyp, T val, Type outtyp)
Definition: angles.h:74
Coord refcoord_
Definition: coordsystem.h:119
virtual bool isFeet() const
Definition: coordsystem.h:74
Definition: coordsystem.h:85
virtual bool isMeter() const
Definition: coordsystem.h:108
const Coord & refCoord() const
Definition: coordsystem.h:113
Definition: uistring.h:235
2D point or vector class.
Definition: commontypes.h:58
double lngdist_
Definition: coordsystem.h:122
virtual uiString description() const
Definition: coordsystem.h:93
Definition: ptrman.h:200

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B. V. 2017