OpendTect-6_4  6.4
survgeom3d.h
Go to the documentation of this file.
1 #ifndef survgeom3d_h
2 #define survgeom3d_h
3 
4 /*+
5 ________________________________________________________________________
6 
7  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
8  Author: Kris/Bert
9  Date: 2013
10  RCS: $Id$
11 ________________________________________________________________________
12 
13 -*/
14 
15 #include "basicmod.h"
16 #include "survgeom.h"
17 #include "trckeyzsampling.h"
18 #include "posidxpair2coord.h"
19 #include "zdomain.h"
20 
21 
22 namespace Survey
23 {
24 
25 
29 {
30 public:
31 
32  Geometry3D(const char* nm,const ZDomain::Def& zd );
33 
34  virtual bool is2D() const { return false; }
35  virtual const char* getName() const { return name_; }
36  virtual void setName( const char* nm ) { name_ = nm; }
37 
38  float zScale() const { return zscale_; }
39 
40  StepInterval<int> inlRange() const;
41  StepInterval<int> crlRange() const;
42  StepInterval<float> zRange() const;
43  int inlStep() const;
44  int crlStep() const;
45 
46  float zStep() const;
47 
48  virtual Coord toCoord(int line,int tracenr) const;
49  virtual TrcKey nearestTrace(const Coord&,float* distance) const;
50  virtual bool includes(int line,int tracenr) const;
51 
52  Coord transform(const BinID&) const;
53  BinID transform(const Coord&) const;
54  const Pos::IdxPair2Coord& binID2Coord() const { return b2c_; }
55 
56  float inlDistance() const;
57  float crlDistance() const;
58 
59  bool isRightHandSystem() const;
62  bool isClockWise() const { return isRightHandSystem(); }
65  const ZDomain::Def& zDomain() const { return zdomain_; }
66  void setZDomain( const ZDomain::Def& def )
67  { zdomain_ = def; }
68 
69  Coord3 oneStepTranslation(const Coord3& planenormal) const;
70  void setGeomData(const Pos::IdxPair2Coord&,
71  const TrcKeyZSampling&,float zscl);
72  float averageTrcDist() const;
73  RelationType compare(const Geometry&,bool usezrg) const;
74 
75  Geometry3D* as3D() { return this; }
76 
77  void snap(BinID&,const BinID& dir=BinID(0,0)) const;
79  void snapStep(BinID&,const BinID& dir=BinID(0,0))const;
81  void snapZ(float&,int direction=0) const;
83 protected:
84 
88 
89  float zscale_;
90 };
91 
92 } // namespace Survey
93 
94 
95 #endif
#define mExpClass(module)
Definition: commondefs.h:160
ZDomain::Def zdomain_
Definition: survgeom3d.h:86
virtual const char * getName() const
Definition: survgeom3d.h:35
A cartesian coordinate in 2D space.
Definition: coord.h:25
virtual void setName(const char *nm)
Definition: survgeom3d.h:36
bool isClockWise() const
Definition: survgeom3d.h:62
const Pos::IdxPair2Coord & binID2Coord() const
Definition: survgeom3d.h:54
RelationType
Definition: survgeom.h:45
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:35
virtual bool is2D() const
Definition: survgeom3d.h:34
const ZDomain::Def & zDomain() const
Definition: survgeom3d.h:65
float zscale_
Definition: survgeom3d.h:89
float zScale() const
Definition: survgeom3d.h:38
BufferString name_
Definition: survgeom3d.h:85
A cartesian coordinate in 3D space.
Definition: coord.h:72
Geometry3D * as3D()
Definition: survgeom3d.h:75
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:40
Pos::IdxPair2Coord b2c_
Definition: survgeom3d.h:87
Scaled down survey geometry for an inl/crl geometry.
Definition: survgeom3d.h:28
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:30
Definition: survgeom.h:25
TrcKeyZSampling::Dir direction(TrcKeyZSampling::Dir slctype, int dimnr)
Definition: trckeyzsampling.h:139
Represents a unique trace position in one of the surveys that OpendTect is managing.
Definition: trckey.h:28
Definition of z-domain.
Definition: zdomain.h:41
Definition: arraytesselator.h:21
void setZDomain(const ZDomain::Def &def)
Definition: survgeom3d.h:66
Encapsulates linear transform from (i,j) index to (x,y) coordinates.
Definition: posidxpair2coord.h:26

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