OpendTect  6.6
polyposprovider.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: Bert
8  Date: Feb 2008
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 
13 -*/
14 
15 #include "geometrymod.h"
16 #include "posprovider.h"
17 #include "multiid.h"
18 class TrcKeySampling;
19 template <class T> class ODPolygon;
20 
21 namespace Pos
22 {
23 
27 {
28 public:
29 
33  PolyProvider3D& operator =(const PolyProvider3D&);
34  const char* type() const;
35  const char* factoryKeyword() const { return type(); }
36  Provider* clone() const { return new PolyProvider3D(*this); }
37 
38  virtual bool initialize(TaskRunner* tr=0);
39  virtual void reset() { initialize(); }
40 
41  virtual bool toNextPos();
42  virtual bool toNextZ();
43 
44  virtual BinID curBinID() const { return curbid_; }
45  virtual float curZ() const { return curz_; }
46  virtual bool includes(const BinID&,float) const;
47  virtual void usePar(const IOPar&);
48  virtual void fillPar(IOPar&) const;
49  virtual void getSummary(BufferString&) const;
50 
51  virtual void getExtent(BinID&,BinID&) const;
52  virtual void getZRange(Interval<float>&) const;
53  virtual od_int64 estNrPos() const;
54  virtual int estNrZPerPos() const { return zrg_.nrSteps()+1; }
55 
56  const MultiID& getMultiID() const { return mid_; }
57  void setMultiID(const MultiID& mid) { mid_ = mid; }
58 
59  ODPolygon<float>& polygon() { return poly_; }
60  const ODPolygon<float>& polygon() const { return poly_; }
61  StepInterval<float>& zRange() { return zrg_; }
62  const StepInterval<float>& zRange() const { return zrg_; }
63  TrcKeySampling& horSampling() { return hs_; }
64  const TrcKeySampling& horSampling() const { return hs_; }
65 
66  static ODPolygon<float>* polyFromPar(const IOPar&,int nr=0);
67  static ODPolygon<float>* polyFromPar(const IOPar&,int nr,BufferString* nm);
68 
69  virtual bool includes( const Coord& c, float z ) const
70  { return Provider3D::includes(c,z); }
71 
72  void setUseAreaInside( bool yn ) { useinside_ = yn; }
73  bool usesAreaInside() const { return useinside_; }
74 
75  static const char* sInside() { return "Inside"; }
76  static const char* sBoundingBox() { return "Bounding Box"; }
77 
78 protected:
79 
84  bool useinside_ = true;
85 
87  float curz_;
88 
89 public:
90 
91  static void initClass();
92  static Provider3D* create() { return new PolyProvider3D; }
93 
94 };
95 
96 
97 } // namespace
98 
Pos::PolyProvider3D::zRange
const StepInterval< float > & zRange() const
Definition: polyposprovider.h:62
Pos::PolyProvider3D::mid_
MultiID mid_
Definition: polyposprovider.h:83
Pos::PolyProvider3D::polygon
ODPolygon< float > & polygon()
Definition: polyposprovider.h:59
TrcKeySampling
Horizontal sampling (inline and crossline range and steps).
Definition: trckeysampling.h:35
Pos::PolyProvider3D::sInside
static const char * sInside()
Definition: polyposprovider.h:75
ODPolygon
(Closed) sequence of connected 2-D coordinates.
Definition: polygon.h:27
Pos::PolyProvider3D::~PolyProvider3D
~PolyProvider3D()
Pos::PolyProvider3D::reset
virtual void reset()
Definition: polyposprovider.h:39
Pos
Position.
Definition: commontypes.h:78
Pos::PolyProvider3D::factoryKeyword
const char * factoryKeyword() const
Definition: polyposprovider.h:35
Pos::PolyProvider3D::estNrPos
virtual od_int64 estNrPos() const
Pos::Provider3D
Provides a subselection for 3D surveys.
Definition: posprovider.h:61
Geometry
Definition: arraytesselator.h:21
posprovider.h
Pos::PolyProvider3D::getZRange
virtual void getZRange(Interval< float > &) const
Pos::PolyProvider3D::polygon
const ODPolygon< float > & polygon() const
Definition: polyposprovider.h:60
od_int64
#define od_int64
Definition: plftypes.h:35
Pos::PolyProvider3D::curz_
float curz_
Definition: polyposprovider.h:87
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
Pos::PolyProvider3D::polyFromPar
static ODPolygon< float > * polyFromPar(const IOPar &, int nr, BufferString *nm)
Pos::PolyProvider3D::initClass
static void initClass()
Pos::PolyProvider3D::curBinID
virtual BinID curBinID() const
Definition: polyposprovider.h:44
Pos::PolyProvider3D::horSampling
const TrcKeySampling & horSampling() const
Definition: polyposprovider.h:64
Pos::PolyProvider3D::initialize
virtual bool initialize(TaskRunner *tr=0)
Pos::PolyProvider3D::curbid_
BinID curbid_
Definition: polyposprovider.h:86
Pos::PolyProvider3D::poly_
ODPolygon< float > & poly_
Definition: polyposprovider.h:80
Pos::PolyProvider3D::zRange
StepInterval< float > & zRange()
Definition: polyposprovider.h:61
multiid.h
BinID
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:31
StepInterval< float >
Coord
A cartesian coordinate in 2D space.
Definition: coord.h:25
Pos::PolyProvider3D::PolyProvider3D
PolyProvider3D(const PolyProvider3D &)
Pos::PolyProvider3D::type
const char * type() const
sKey::Polygon()
Pos::PolyProvider3D::setUseAreaInside
void setUseAreaInside(bool yn)
Definition: polyposprovider.h:72
Pos::PolyProvider3D::toNextZ
virtual bool toNextZ()
Pos::PolyProvider3D::clone
Provider * clone() const
Definition: polyposprovider.h:36
Pos::PolyProvider3D::PolyProvider3D
PolyProvider3D()
Pos::PolyProvider3D::polyFromPar
static ODPolygon< float > * polyFromPar(const IOPar &, int nr=0)
Pos::PolyProvider3D::getExtent
virtual void getExtent(BinID &, BinID &) const
TaskRunner
Class that can execute a task.
Definition: task.h:170
Pos::PolyProvider3D::fillPar
virtual void fillPar(IOPar &) const
Pos::PolyProvider3D
Volume/Area provider based on Polygon.
Definition: polyposprovider.h:27
Pos::PolyProvider3D::horSampling
TrcKeySampling & horSampling()
Definition: polyposprovider.h:63
Pos::PolyProvider3D::zrg_
StepInterval< float > zrg_
Definition: polyposprovider.h:81
Pos::Provider3D::includes
virtual bool includes(const BinID &, float z=mUdf(float)) const =0
MultiID
Compound key consisting of ints.
Definition: multiid.h:24
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
Pos::PolyProvider3D::toNextPos
virtual bool toNextPos()
Pos::PolyProvider3D::usesAreaInside
bool usesAreaInside() const
Definition: polyposprovider.h:73
Pos::PolyProvider3D::getMultiID
const MultiID & getMultiID() const
Definition: polyposprovider.h:56
Pos::PolyProvider3D::includes
virtual bool includes(const Coord &c, float z) const
Definition: polyposprovider.h:69
Pos::PolyProvider3D::estNrZPerPos
virtual int estNrZPerPos() const
Definition: polyposprovider.h:54
Pos::PolyProvider3D::curZ
virtual float curZ() const
Definition: polyposprovider.h:45
Pos::PolyProvider3D::setMultiID
void setMultiID(const MultiID &mid)
Definition: polyposprovider.h:57
Pos::PolyProvider3D::sBoundingBox
static const char * sBoundingBox()
Definition: polyposprovider.h:76
Pos::PolyProvider3D::hs_
TrcKeySampling & hs_
Definition: polyposprovider.h:82
Pos::PolyProvider3D::getSummary
virtual void getSummary(BufferString &) const
Pos::PolyProvider3D::includes
virtual bool includes(const BinID &, float) const
Interval< float >
Pos::PolyProvider3D::usePar
virtual void usePar(const IOPar &)
Pos::Provider
Provides a series of positions; can also be used for subselection.
Definition: posprovider.h:33
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
Pos::PolyProvider3D::create
static Provider3D * create()
Definition: polyposprovider.h:92

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