1 #ifndef emsurfaceposprov_h 2 #define emsurfaceposprov_h 16 #include "earthmodelmod.h" 27 namespace EM {
class RowColIterator;
class Region3D;
class Surface; }
44 const char* type()
const;
49 virtual bool toNextPos();
50 virtual bool toNextZ();
52 virtual float curZ()
const;
53 virtual bool hasZAdjustment()
const;
54 virtual float adjustedZ(
const Coord&,
float)
const;
63 virtual int estNrZPerPos()
const;
65 int nrSurfaces()
const;
67 {
return idx ? id2_ : id1_; }
69 {
return idx ? surf2_ : surf1_; }
71 {
return idx ? surf2_ : surf1_; }
72 float zStep()
const {
return zstep_; }
77 static const char* id1Key();
78 static const char* id2Key();
79 static const char* zstepKey();
80 static const char* extraZKey();
106 #define mEMSurfaceProviderDefFnsBase \ 107 virtual bool isProvider() const { return true; } \ 108 virtual float estRatio( const Provider& p ) const \ 109 { return Provider::estRatio(p); } \ 110 virtual bool toNextPos() \ 111 { return EMSurfaceProvider::toNextPos(); } \ 112 virtual bool toNextZ() \ 113 { return EMSurfaceProvider::toNextZ(); } \ 114 virtual float curZ() const \ 115 { return EMSurfaceProvider::curZ(); } \ 116 virtual int estNrZPerPos() const \ 117 { return EMSurfaceProvider::estNrZPerPos(); } \ 118 virtual od_int64 estNrPos() const { return estnrpos_; } \ 131 : EMSurfaceProvider() { *
this = p; }
134 { copyFrom(p);
return *
this; }
138 virtual BinID curBinID()
const;
139 virtual bool includes(
const BinID&,
float)
const;
141 {
return Provider3D::includes(c,z); }
145 {
return Provider3D::getTrcKeyZSampling(cs); }
147 {
return EMSurfaceProvider::getZRange(rg); }
168 : EMSurfaceProvider() { *
this = p; }
170 { copyFrom(p);
return *
this; }
175 virtual const char* curLine()
const;
176 virtual int curNr()
const;
177 virtual TrcKey curTrcKey()
const;
178 virtual Coord curCoord()
const;
179 virtual bool includes(
const Coord&,
float)
const;
180 virtual bool includes(
int,
float,
int)
const;
183 {
return EMSurfaceProvider::getZRange(rg); }
185 {
return EMSurfaceProvider::getZRange(rg); }
215 virtual BinID curBinID()
const;
216 virtual bool includes(
const BinID&,
float)
const;
218 {
return Provider3D::includes(c,z); }
221 {
return EMSurfaceProvider::getZRange(rg); }
223 {
return Provider3D::curCoord(); }
226 {
return nr1 ? dpssurf1_ : dpssurf2_; }
263 virtual void reset() { initialize(); }
266 virtual float curZ()
const {
return curz_; }
268 virtual bool toNextPos();
269 virtual bool toNextZ();
270 virtual int estNrZPerPos()
const;
274 virtual bool includes(
const Coord& c,
float z)
const;
275 virtual bool includes(
const BinID&,
float)
const;
326 const char*
type()
const {
return "Region3D"; }
330 virtual void reset() { initialize(); }
333 virtual float curZ()
const {
return curz_; }
335 virtual bool toNextPos();
336 virtual bool toNextZ();
337 virtual int estNrZPerPos()
const;
341 virtual bool includes(
const Coord& c,
float z)
const;
342 virtual bool includes(
const BinID&,
float)
const;
#define mExpClass(module)
Definition: commondefs.h:160
RowCol iterator.
Definition: emrowcoliterator.h:29
int nrLines() const
Definition: emsurfaceposprov.h:186
const char * type() const
Definition: emsurfaceposprov.h:326
static Provider3D * create()
Definition: emsurfaceposprov.h:254
EM implicit body provider for 3D positioning.
Definition: emsurfaceposprov.h:244
static Provider2D * create()
Definition: emsurfaceposprov.h:189
BinID curbid_
Definition: emsurfaceposprov.h:359
void setExtraZ(Interval< float > i)
Definition: emsurfaceposprov.h:75
void setZStep(float s)
Definition: emsurfaceposprov.h:73
Provides a series of positions; can also be used for subselection.
Definition: posprovider.h:33
virtual BinID curBinID() const
Definition: emsurfaceposprov.h:265
float zstep_
Definition: emsurfaceposprov.h:91
Set of data points with group selection.
Definition: datapointset.h:48
#define mODTextTranslationClass(clss)
Definition: uistring.h:38
virtual void getZRange(Interval< float > &rg) const
Definition: emsurfaceposprov.h:184
Is an identifier for each position in the earthmodel.
Definition: emposid.h:37
virtual void reset()
Definition: emsurfaceposprov.h:263
virtual BinID curBinID() const
Definition: emsurfaceposprov.h:332
const char * factoryKeyword() const
Definition: emsurfaceposprov.h:132
Interval< float > extraZ() const
Definition: emsurfaceposprov.h:74
BinID curbid_
Definition: emsurfaceposprov.h:302
MultiID id2_
Definition: emsurfaceposprov.h:88
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:188
#define od_int64
Definition: plftypes.h:36
EMSurfaceProvider2D()
Definition: emsurfaceposprov.h:166
DataPointSet & dpssurf1_
Definition: emsurfaceposprov.h:232
EM::Region3D & region_
Definition: emsurfaceposprov.h:358
virtual void getZRange(Interval< float > &rg, int lidx) const
Definition: emsurfaceposprov.h:182
virtual float curZ() const
Definition: emsurfaceposprov.h:266
Interval< float > curzrg_
Definition: emsurfaceposprov.h:100
bool useinside_
Definition: emsurfaceposprov.h:298
Provides a subselection for 3D surveys.
Definition: posprovider.h:60
static const char * sKeyUseInside()
Definition: emsurfaceposprov.h:286
Array3D< float > * imparr_
Definition: emsurfaceposprov.h:296
Interval< float > zrg2_
Definition: emsurfaceposprov.h:95
const EM::Surface * surface(int idx) const
Definition: emsurfaceposprov.h:70
Provider * clone() const
Definition: emsurfaceposprov.h:172
A cartesian coordinate in 2D space.
Definition: coord.h:25
TrcKeySampling hs_
Definition: emsurfaceposprov.h:93
EM Region provider for 3D positioning.
Definition: emsurfaceposprov.h:312
Interval< float > extraz_
Definition: emsurfaceposprov.h:92
float curz_
Definition: emsurfaceposprov.h:101
MultiID surfaceID(int idx) const
Definition: emsurfaceposprov.h:66
Decides whether a given position should be included.
Definition: posfilter.h:45
virtual Coord curCoord() const
Definition: emsurfaceposprov.h:143
const TrcKeyZSampling & getImpBodyRange() const
Definition: emsurfaceposprov.h:282
static Provider3D * create()
Definition: emsurfaceposprov.h:150
virtual bool includes(const Coord &c, float z) const
Definition: emsurfaceposprov.h:140
static const char * sKeyBBZrg()
Definition: emsurfaceposprov.h:289
virtual void getZRange(Interval< float > &rg) const
Definition: emsurfaceposprov.h:146
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:47
Interval< float > zrg1_
Definition: emsurfaceposprov.h:94
Class that can execute a task.
Definition: task.h:169
TrcKeyZSampling bbox_
Definition: emsurfaceposprov.h:299
Array3D< float > * getImpBodyData() const
Definition: emsurfaceposprov.h:283
Horizontal sampling (inline and crossline range and steps).
Definition: trckeysampling.h:27
Provider * clone() const
Definition: emsurfaceposprov.h:212
EM::Surface * surf1_
Definition: emsurfaceposprov.h:89
EM::Body * embody_
Definition: emsurfaceposprov.h:301
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:35
virtual Coord curCoord() const
Definition: emsurfaceposprov.h:222
TrcKeyZSampling tkzs_
Definition: emsurfaceposprov.h:295
float curz_
Definition: emsurfaceposprov.h:303
const DataPointSet & dataPointSet(bool nr1) const
Definition: emsurfaceposprov.h:225
EMSurfaceProvider for 3D positioning.
Definition: emsurfaceposprov.h:124
float curz_
Definition: emsurfaceposprov.h:360
Position.
Definition: commontypes.h:42
EM::Surface * surf2_
Definition: emsurfaceposprov.h:90
EM::RowColIterator * iterator_
Definition: emsurfaceposprov.h:98
virtual float curZ() const
Definition: emsurfaceposprov.h:333
virtual void getZRange(Interval< float > &rg) const
Definition: emsurfaceposprov.h:220
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:175
static Provider3D * create()
Definition: emsurfaceposprov.h:321
const EM::Region3D & region() const
Definition: emsurfaceposprov.h:351
EMSurfaceProvider for 3D positions with 2D Horizon.
Definition: emsurfaceposprov.h:200
EMImplicitBodyProvider * clone() const
Definition: emsurfaceposprov.h:255
EM::PosID curpos_
Definition: emsurfaceposprov.h:99
A body that can deliver an implicit body.
Definition: embody.h:50
FixedString Body()
Definition: keystrs.h:43
Provider based on surface(s)
Definition: emsurfaceposprov.h:39
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:40
virtual od_int64 estNrPos() const
Definition: emsurfaceposprov.h:62
const char * type() const
Definition: emsurfaceposprov.h:259
Provides a subselection for 2D surveys - requires the line name(s).
Definition: posprovider.h:95
FixedString Surface()
Definition: keystrs.h:126
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:30
virtual void reset()
Definition: emsurfaceposprov.h:330
bool initializedbody_
Definition: emsurfaceposprov.h:304
const char * factoryKeyword() const
Definition: emsurfaceposprov.h:260
bool useinside_
Definition: emsurfaceposprov.h:361
Base class for surfaces like horizons and faults. A surface is made up of one or more segments or pat...
Definition: emsurface.h:33
MultiID id1_
Definition: emsurfaceposprov.h:87
Earth Model objects like horizons, faults, fault-sticks and bodies.
Definition: embody.h:25
virtual void getTrcKeyZSampling(TrcKeyZSampling &cs) const
Definition: emsurfaceposprov.h:144
float getThreshold() const
Definition: emsurfaceposprov.h:284
EM::Region3D & region()
Definition: emsurfaceposprov.h:350
EMSurfaceProvider3D()
Definition: emsurfaceposprov.h:129
#define mEMSurfaceProviderDefFnsBase
Definition: emsurfaceposprov.h:106
od_int64 estnrpos_
Definition: emsurfaceposprov.h:96
Represents a unique trace position in one of the surveys that OpendTect is managing.
Definition: trckey.h:28
DataPointSet & dpssurf2_
Definition: emsurfaceposprov.h:233
EMRegion3DProvider * clone() const
Definition: emsurfaceposprov.h:322
float zStep() const
Definition: emsurfaceposprov.h:72
static const char * sKeyBBCrlrg()
Definition: emsurfaceposprov.h:288
Definition: emregion.h:202
EM::Surface * surface(int idx)
Definition: emsurfaceposprov.h:68
EMSurfaceProvider3D(const EMSurfaceProvider3D &p)
Definition: emsurfaceposprov.h:130
const char * factoryKeyword() const
Definition: emsurfaceposprov.h:327
const char * factoryKeyword() const
Definition: emsurfaceposprov.h:208
EMSurfaceProvider2D(const EMSurfaceProvider2D &p)
Definition: emsurfaceposprov.h:167
const char * factoryKeyword() const
Definition: emsurfaceposprov.h:171
float threshold_
Definition: emsurfaceposprov.h:297
TrcKeyZSampling bbox_
Definition: emsurfaceposprov.h:356
Compound key consisting of ints.
Definition: multiid.h:25
static const char * sKeyBBInlrg()
Definition: emsurfaceposprov.h:287
EMSurfaceProvider for 2D positioning.
Definition: emsurfaceposprov.h:161
virtual bool includes(const Coord &c, float z) const
Definition: emsurfaceposprov.h:217
Provider * clone() const
Definition: emsurfaceposprov.h:135