14 #include "earthmodelmod.h" 25 namespace EM {
class RowColIterator;
class Region3D;
class Surface; }
42 const char* type()
const;
47 virtual bool toNextPos();
48 virtual bool toNextZ();
50 virtual float curZ()
const;
51 virtual bool hasZAdjustment()
const;
52 virtual float adjustedZ(
const Coord&,
float)
const;
60 virtual int estNrZPerPos()
const;
62 int nrSurfaces()
const;
64 {
return idx ? id2_ : id1_; }
66 {
return idx ? surf2_ : surf1_; }
68 {
return idx ? surf2_ : surf1_; }
69 float zStep()
const {
return zstep_; }
74 static const char* id1Key();
75 static const char* id2Key();
76 static const char* zstepKey();
77 static const char* extraZKey();
103 #define mEMSurfaceProviderDefFnsBase \ 104 virtual bool isProvider() const { return true; } \ 105 virtual float estRatio( const Provider& p ) const \ 106 { return Provider::estRatio(p); } \ 107 virtual bool toNextPos() \ 108 { return EMSurfaceProvider::toNextPos(); } \ 109 virtual bool toNextZ() \ 110 { return EMSurfaceProvider::toNextZ(); } \ 111 virtual float curZ() const \ 112 { return EMSurfaceProvider::curZ(); } \ 113 virtual int estNrZPerPos() const \ 114 { return EMSurfaceProvider::estNrZPerPos(); } \ 115 virtual od_int64 estNrPos() const { return estnrpos_; } \ 128 : EMSurfaceProvider() { *
this = p; }
131 { copyFrom(p);
return *
this; }
135 virtual BinID curBinID()
const;
136 virtual bool includes(
const BinID&,
float)
const;
138 {
return Provider3D::includes(c,z); }
142 {
return Provider3D::getTrcKeyZSampling(cs); }
144 {
return EMSurfaceProvider::getZRange(rg); }
165 : EMSurfaceProvider() { *
this = p; }
167 { copyFrom(p);
return *
this; }
172 virtual const char* curLine()
const;
173 virtual int curNr()
const;
174 virtual TrcKey curTrcKey()
const;
175 virtual Coord curCoord()
const;
176 virtual bool includes(
const Coord&,
float)
const;
177 virtual bool includes(
int,
float,
int)
const;
180 {
return EMSurfaceProvider::getZRange(rg); }
182 {
return EMSurfaceProvider::getZRange(rg); }
212 virtual BinID curBinID()
const;
213 virtual bool includes(
const BinID&,
float)
const;
215 {
return Provider3D::includes(c,z); }
218 {
return EMSurfaceProvider::getZRange(rg); }
220 {
return Provider3D::curCoord(); }
223 {
return nr1 ? dpssurf1_ : dpssurf2_; }
260 virtual void reset() { initialize(); }
263 virtual float curZ()
const {
return curz_; }
265 virtual bool toNextPos();
266 virtual bool toNextZ();
267 virtual int estNrZPerPos()
const;
271 virtual bool includes(
const Coord& c,
float z)
const;
272 virtual bool includes(
const BinID&,
float)
const;
323 const char*
type()
const {
return "Region3D"; }
327 virtual void reset() { initialize(); }
330 virtual float curZ()
const {
return curz_; }
332 virtual bool toNextPos();
333 virtual bool toNextZ();
334 virtual int estNrZPerPos()
const;
338 virtual bool includes(
const Coord& c,
float z)
const;
339 virtual bool includes(
const BinID&,
float)
const;
#define mExpClass(module)
Definition: commondefs.h:157
RowCol iterator.
Definition: emrowcoliterator.h:27
int nrLines() const
Definition: emsurfaceposprov.h:183
const char * type() const
Definition: emsurfaceposprov.h:323
static Provider3D * create()
Definition: emsurfaceposprov.h:251
EM implicit body provider for 3D positioning.
Definition: emsurfaceposprov.h:241
static Provider2D * create()
Definition: emsurfaceposprov.h:186
BinID curbid_
Definition: emsurfaceposprov.h:356
void setExtraZ(Interval< float > i)
Definition: emsurfaceposprov.h:72
void setZStep(float s)
Definition: emsurfaceposprov.h:70
Provides a series of positions; can also be used for subselection.
Definition: posprovider.h:31
virtual BinID curBinID() const
Definition: emsurfaceposprov.h:262
float zstep_
Definition: emsurfaceposprov.h:88
Set of data points with group selection.
Definition: datapointset.h:47
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
virtual void getZRange(Interval< float > &rg) const
Definition: emsurfaceposprov.h:181
Is an identifier for each position in the earthmodel.
Definition: emposid.h:35
virtual void reset()
Definition: emsurfaceposprov.h:260
virtual BinID curBinID() const
Definition: emsurfaceposprov.h:329
const char * factoryKeyword() const
Definition: emsurfaceposprov.h:129
Interval< float > extraZ() const
Definition: emsurfaceposprov.h:71
BinID curbid_
Definition: emsurfaceposprov.h:299
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
#define od_int64
Definition: plftypes.h:34
EMSurfaceProvider2D()
Definition: emsurfaceposprov.h:163
DataPointSet & dpssurf1_
Definition: emsurfaceposprov.h:229
EM::Region3D & region_
Definition: emsurfaceposprov.h:355
virtual void getZRange(Interval< float > &rg, int lidx) const
Definition: emsurfaceposprov.h:179
virtual float curZ() const
Definition: emsurfaceposprov.h:263
Interval< float > curzrg_
Definition: emsurfaceposprov.h:97
bool useinside_
Definition: emsurfaceposprov.h:295
Provides a subselection for 3D surveys.
Definition: posprovider.h:58
static const char * sKeyUseInside()
Definition: emsurfaceposprov.h:283
Array3D< float > * imparr_
Definition: emsurfaceposprov.h:293
Interval< float > zrg2_
Definition: emsurfaceposprov.h:92
const EM::Surface * surface(int idx) const
Definition: emsurfaceposprov.h:67
Provider * clone() const
Definition: emsurfaceposprov.h:169
TrcKeySampling hs_
Definition: emsurfaceposprov.h:90
EM Region provider for 3D positioning.
Definition: emsurfaceposprov.h:309
Interval< float > extraz_
Definition: emsurfaceposprov.h:89
DBKey id1_
Definition: emsurfaceposprov.h:84
float curz_
Definition: emsurfaceposprov.h:98
Decides whether a given position should be included.
Definition: posfilter.h:43
DBKey surfaceID(int idx) const
Definition: emsurfaceposprov.h:63
virtual Coord curCoord() const
Definition: emsurfaceposprov.h:140
const TrcKeyZSampling & getImpBodyRange() const
Definition: emsurfaceposprov.h:279
static Provider3D * create()
Definition: emsurfaceposprov.h:147
virtual bool includes(const Coord &c, float z) const
Definition: emsurfaceposprov.h:137
static const char * sKeyBBZrg()
Definition: emsurfaceposprov.h:286
virtual void getZRange(Interval< float > &rg) const
Definition: emsurfaceposprov.h:143
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
Interval< float > zrg1_
Definition: emsurfaceposprov.h:91
Class that can execute a task.
Definition: task.h:193
TrcKeyZSampling bbox_
Definition: emsurfaceposprov.h:296
Array3D< float > * getImpBodyData() const
Definition: emsurfaceposprov.h:280
Horizontal sampling (inline and crossline range and steps).
Definition: trckeysampling.h:25
Provider * clone() const
Definition: emsurfaceposprov.h:209
EM::Surface * surf1_
Definition: emsurfaceposprov.h:86
EM::Body * embody_
Definition: emsurfaceposprov.h:298
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:32
virtual Coord curCoord() const
Definition: emsurfaceposprov.h:219
TrcKeyZSampling tkzs_
Definition: emsurfaceposprov.h:292
float curz_
Definition: emsurfaceposprov.h:300
const DataPointSet & dataPointSet(bool nr1) const
Definition: emsurfaceposprov.h:222
EMSurfaceProvider for 3D positioning.
Definition: emsurfaceposprov.h:121
float curz_
Definition: emsurfaceposprov.h:357
Position.
Definition: commontypes.h:38
EM::Surface * surf2_
Definition: emsurfaceposprov.h:87
EM::RowColIterator * iterator_
Definition: emsurfaceposprov.h:95
virtual float curZ() const
Definition: emsurfaceposprov.h:330
virtual void getZRange(Interval< float > &rg) const
Definition: emsurfaceposprov.h:217
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
static Provider3D * create()
Definition: emsurfaceposprov.h:318
const EM::Region3D & region() const
Definition: emsurfaceposprov.h:348
EMSurfaceProvider for 3D positions with 2D Horizon.
Definition: emsurfaceposprov.h:197
EMImplicitBodyProvider * clone() const
Definition: emsurfaceposprov.h:252
EM::PosID curpos_
Definition: emsurfaceposprov.h:96
A body that can deliver an implicit body.
Definition: embody.h:48
FixedString Body()
Definition: keystrs.h:41
Provider based on surface(s)
Definition: emsurfaceposprov.h:37
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
virtual od_int64 estNrPos() const
Definition: emsurfaceposprov.h:59
const char * type() const
Definition: emsurfaceposprov.h:256
Provides a subselection for 2D surveys - requires the line name(s).
Definition: posprovider.h:93
FixedString Surface()
Definition: keystrs.h:124
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:28
virtual void reset()
Definition: emsurfaceposprov.h:327
bool initializedbody_
Definition: emsurfaceposprov.h:301
const char * factoryKeyword() const
Definition: emsurfaceposprov.h:257
bool useinside_
Definition: emsurfaceposprov.h:358
Base class for surfaces like horizons and faults. A surface is made up of one or more segments or pat...
Definition: emsurface.h:31
Earth Model objects like horizons, faults, fault-sticks and bodies.
Definition: embody.h:23
DBKey id2_
Definition: emsurfaceposprov.h:85
virtual void getTrcKeyZSampling(TrcKeyZSampling &cs) const
Definition: emsurfaceposprov.h:141
float getThreshold() const
Definition: emsurfaceposprov.h:281
EM::Region3D & region()
Definition: emsurfaceposprov.h:347
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
EMSurfaceProvider3D()
Definition: emsurfaceposprov.h:126
#define mEMSurfaceProviderDefFnsBase
Definition: emsurfaceposprov.h:103
od_int64 estnrpos_
Definition: emsurfaceposprov.h:93
Represents a unique trace position in one of the surveys that OpendTect is managing.
Definition: trckey.h:26
DataPointSet & dpssurf2_
Definition: emsurfaceposprov.h:230
2D point or vector class.
Definition: commontypes.h:58
EMRegion3DProvider * clone() const
Definition: emsurfaceposprov.h:319
float zStep() const
Definition: emsurfaceposprov.h:69
static const char * sKeyBBCrlrg()
Definition: emsurfaceposprov.h:285
Definition: emregion.h:204
EM::Surface * surface(int idx)
Definition: emsurfaceposprov.h:65
EMSurfaceProvider3D(const EMSurfaceProvider3D &p)
Definition: emsurfaceposprov.h:127
const char * factoryKeyword() const
Definition: emsurfaceposprov.h:324
const char * factoryKeyword() const
Definition: emsurfaceposprov.h:205
EMSurfaceProvider2D(const EMSurfaceProvider2D &p)
Definition: emsurfaceposprov.h:164
const char * factoryKeyword() const
Definition: emsurfaceposprov.h:168
float threshold_
Definition: emsurfaceposprov.h:294
TrcKeyZSampling bbox_
Definition: emsurfaceposprov.h:353
static const char * sKeyBBInlrg()
Definition: emsurfaceposprov.h:284
EMSurfaceProvider for 2D positioning.
Definition: emsurfaceposprov.h:158
virtual bool includes(const Coord &c, float z) const
Definition: emsurfaceposprov.h:214
Provider * clone() const
Definition: emsurfaceposprov.h:132