OpendTect  6.3
survgeom3d.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: Kris/Bert
8  Date: 2013
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "basicmod.h"
14 #include "survgeom.h"
15 #include "trckeyzsampling.h"
16 #include "posidxpair2coord.h"
17 #include "zdomain.h"
18 
19 
20 namespace Survey
21 {
22 
23 
27 {
28 public:
29 
30  Geometry3D(const char* nm,const ZDomain::Def& zd );
31 
32  virtual bool is2D() const { return false; }
33  virtual const char* getName() const { return name_.buf(); }
34 
35  float zScale() const { return zscale_; }
36 
37  StepInterval<int> inlRange() const;
38  StepInterval<int> crlRange() const;
39  StepInterval<float> zRange() const;
40  int inlStep() const;
41  int crlStep() const;
42 
43  inline int idx4Inl(int) const;
44  inline int idx4Crl(int) const;
45  inline int idx4Z(float) const;
46  inline int inl4Idx(int) const;
47  inline int crl4Idx(int) const;
48  inline float z4Idx(int) const;
49 
50  float zStep() const;
51 
52  virtual Coord toCoord(int line,int tracenr) const;
53  virtual TrcKey nearestTrace(const Coord&,float* distance) const;
54  virtual bool includes(int line,int tracenr) const;
55 
56  Coord transform(const BinID&) const;
57  BinID transform(const Coord&) const;
58  const Pos::IdxPair2Coord& binID2Coord() const { return b2c_; }
59 
60  float inlDistance() const;
61  float crlDistance() const;
62 
63  bool isRightHandSystem() const;
66  mDeprecated bool isClockWise() const { return isRightHandSystem(); }
67 
68  const ZDomain::Def& zDomain() const { return zdomain_; }
69 
70  Coord3 oneStepTranslation(const Coord3& planenormal) const;
71  void setGeomData(const Pos::IdxPair2Coord&,
72  const TrcKeyZSampling&,float zscl);
73  float averageTrcDist() const;
74  RelationType compare(const Geometry&,bool usezrg) const;
75 
76  Geometry3D* as3D() { return this; }
77 
78  void snap(BinID&,const BinID& dir=BinID(0,0)) const;
80  void snapStep(BinID&,const BinID& dir=BinID(0,0))const;
82  void snapZ(float&,int direction=0) const;
84 protected:
85 
89 
90  float zscale_;
91 };
92 
93 
94 inline int Survey::Geometry3D::idx4Inl( int inl ) const
95 { return sampling_.hsamp_.lineIdx( inl ); }
96 inline int Survey::Geometry3D::idx4Crl( int crl ) const
97 { return sampling_.hsamp_.trcIdx( crl ); }
98 inline int Survey::Geometry3D::idx4Z( float z ) const
99 { return sampling_.zsamp_.nearestIndex( z ); }
100 inline int Survey::Geometry3D::inl4Idx( int idx ) const
101 { return sampling_.hsamp_.lineID( idx ); }
102 inline int Survey::Geometry3D::crl4Idx( int idx ) const
103 { return sampling_.hsamp_.traceID( idx ); }
104 inline float Survey::Geometry3D::z4Idx( int idx ) const
105 { return sampling_.zsamp_.atIndex( idx ); }
106 
107 
108 } // namespace Survey
#define mExpClass(module)
Definition: commondefs.h:157
int inl4Idx(int) const
Definition: survgeom3d.h:100
virtual const char * getName() const
Definition: survgeom3d.h:33
bool isClockWise() const
Definition: survgeom3d.h:66
const ZDomain::Def zdomain_
Definition: survgeom3d.h:87
3D point or vector
Definition: commontypes.h:57
const Pos::IdxPair2Coord & binID2Coord() const
Definition: survgeom3d.h:58
RelationType
Definition: survgeom.h:50
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:32
virtual bool is2D() const
Definition: survgeom3d.h:32
const ZDomain::Def & zDomain() const
Definition: survgeom3d.h:68
float zscale_
Definition: survgeom3d.h:90
float zScale() const
Definition: survgeom3d.h:35
int crl4Idx(int) const
Definition: survgeom3d.h:102
BufferString name_
Definition: survgeom3d.h:86
Geometry3D * as3D()
Definition: survgeom3d.h:76
int idx4Inl(int) const
Definition: survgeom3d.h:94
#define mDeprecated
Definition: plfdefs.h:213
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
int idx4Z(float) const
Definition: survgeom3d.h:98
Pos::IdxPair2Coord b2c_
Definition: survgeom3d.h:88
Scaled down survey geometry for an inl/crl geometry.
Definition: survgeom3d.h:26
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:28
float z4Idx(int) const
Definition: survgeom3d.h:104
Definition: survgeom.h:28
TrcKeyZSampling::Dir direction(TrcKeyZSampling::Dir slctype, int dimnr)
Definition: trckeyzsampling.h:129
Represents a unique trace position in one of the surveys that OpendTect is managing.
Definition: trckey.h:26
2D point or vector class.
Definition: commontypes.h:58
Definition of z-domain.
Definition: zdomain.h:39
Definition: arraytesselator.h:19
Encapsulates linear transform from (i,j) index to (x,y) coordinates.
Definition: posidxpair2coord.h:24
int idx4Crl(int) const
Definition: survgeom3d.h:96

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