OpendTect  6.6
emregion.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: Nanne Hemstra
8  Date: October 2014
9  RCS: $Id: emregion.h 38690 2015-03-30 18:00:30Z nanne.hemstra@dgbes.com $
10 ________________________________________________________________________
11 
12 -*/
13 
14 
15 
16 #include "earthmodelmod.h"
17 #include "namedobj.h"
18 
19 #include "multiid.h"
20 #include "polygon.h"
21 #include "position.h"
22 #include "trckeyzsampling.h"
23 
25 class TaskRunner;
26 
27 namespace EM
28 {
29 
30 class Fault;
31 class Horizon3D;
32 
33 mExpClass(EarthModel) Region
34 {
35 public:
36  virtual ~Region();
37 
38  int id() const;
40  virtual bool isInside(const TrcKey&,float z,
41  bool includeborder=true) const;
42 
43  virtual void fillPar(IOPar&) const;
44  virtual bool usePar(const IOPar&);
45 
46 protected:
48 
50  int id_;
52 
53 };
54 
55 
56 mExpClass(EarthModel) RegionBoundary : public NamedObject
57 {
58 public:
59  virtual const char* type() const = 0;
60  virtual bool init(TaskRunner*) { return true; }
61  virtual bool hasName() const { return false;}
62 
63  virtual bool onRightSide(const TrcKey&,float z) const = 0;
64  virtual void getSideStrs(uiStringSet&) const = 0;
65  virtual void setSide( int sd ) { side_ = sd; }
66  int getSide() const { return side_;}
67 
68  virtual void fillPar(IOPar&) const = 0;
69  virtual bool usePar(const IOPar&) = 0;
70 
71 protected:
73  : side_(-1) {}
74 
75  int side_;
76 };
77 
78 
81 public:
82  RegionInlBoundary( int inl=mUdf(int) )
83  : inl_(inl)
84  {}
85 
86  const char* type() const;
87  void getSideStrs(uiStringSet&) const;
88  bool onRightSide(const TrcKey&,float z) const;
89 
90  void fillPar(IOPar&) const;
91  bool usePar(const IOPar&);
92 
93  int inl_;
94 };
95 
96 
99 public:
100  RegionCrlBoundary( int crl=mUdf(int) )
101  : crl_(crl)
102  {}
103 
104  const char* type() const;
105  void getSideStrs(uiStringSet&) const;
106  bool onRightSide(const TrcKey&,float z) const;
107 
108  void fillPar(IOPar&) const;
109  bool usePar(const IOPar&);
110 
111  int crl_;
112 };
113 
114 
117 public:
118  RegionZBoundary( float z=mUdf(float) )
119  : z_(z) {}
120 
121  const char* type() const;
122  void getSideStrs(uiStringSet&) const;
123  bool onRightSide(const TrcKey&,float z) const;
124 
125  void fillPar(IOPar&) const;
126  bool usePar(const IOPar&);
127 
128  float z_;
129 };
130 
131 
134 public:
137 
138  const char* type() const;
139  void setKey(const MultiID&);
140  const MultiID& key() const { return key_; }
141  bool hasName() const { return true; }
142  bool init(TaskRunner*);
143  void getSideStrs(uiStringSet&) const;
144  bool onRightSide(const TrcKey&,float z) const;
145 
146  void fillPar(IOPar&) const;
147  bool usePar(const IOPar&);
148 
149 protected:
152 };
153 
154 
157 public:
160 
161  const char* type() const;
162  void setKey(const MultiID&);
163  const MultiID& key() const { return key_; }
164  bool hasName() const { return true; }
165  bool init(TaskRunner*);
166  void getSideStrs(uiStringSet&) const;
167  bool onRightSide(const TrcKey&,float z) const;
168 
169  void fillPar(IOPar&) const;
170  bool usePar(const IOPar&);
171 
172 protected:
174  const EM::Fault* flt_;
176 
177 };
178 
179 
182 public:
185 
186  const char* type() const;
187  void setKey(const MultiID&);
188  const MultiID& key() const { return key_; }
189  bool hasName() const { return true; }
190  void getSideStrs(uiStringSet&) const;
191  bool onRightSide(const TrcKey&,float z) const;
192 
193  void fillPar(IOPar&) const;
194  bool usePar(const IOPar&);
195 
198 };
199 
200 
201 mExpClass(EarthModel) Region3D : public Region
202 {
203 public:
206 
207  void addBoundary(RegionBoundary*); // becomes mine
209  void removeBoundary(int idx);
211  bool hasBoundary(const MultiID&) const;
212  int size() const;
213  bool isEmpty() const;
214  void setEmpty();
215 
216  bool init(TaskRunner*);
217  bool isInside(const TrcKey&,float z,bool inclborder) const;
218 
219  void fillPar(IOPar&) const;
220  bool usePar(const IOPar&);
221 
222 protected:
224 };
225 
226 } // namespace EM
227 
EM::RegionZBoundary::usePar
bool usePar(const IOPar &)
EM::RegionInlBoundary::getSideStrs
void getSideStrs(uiStringSet &) const
EM::RegionFaultBoundary::prov_
FaultTrcDataProvider & prov_
Definition: emregion.h:175
EM::Region3D::~Region3D
~Region3D()
NamedObject
object with a name.
Definition: namedobj.h:42
EM::Region::id_
int id_
Definition: emregion.h:50
ODPolygon< float >
EM::RegionPolygonBoundary::key
const MultiID & key() const
Definition: emregion.h:188
EM::RegionHor3DBoundary::key_
MultiID key_
Definition: emregion.h:150
EM::RegionPolygonBoundary::getSideStrs
void getSideStrs(uiStringSet &) const
EM::RegionPolygonBoundary::usePar
bool usePar(const IOPar &)
EM::RegionHor3DBoundary::onRightSide
bool onRightSide(const TrcKey &, float z) const
EM::RegionCrlBoundary::getSideStrs
void getSideStrs(uiStringSet &) const
EM::Region3D::removeBoundary
void removeBoundary(int idx)
EM::Region::geomid_
Pos::GeomID geomid_
Definition: emregion.h:51
EM::Region3D::hasBoundary
bool hasBoundary(const MultiID &) const
EM::RegionBoundary::onRightSide
virtual bool onRightSide(const TrcKey &, float z) const =0
uiStringSet
Definition: uistringset.h:23
ObjectSet
Set of pointers to objects.
Definition: commontypes.h:31
EM::Region3D::isEmpty
bool isEmpty() const
EM::RegionHor3DBoundary::type
const char * type() const
EM::RegionHor3DBoundary
Definition: emregion.h:133
EM::RegionBoundary
Definition: emregion.h:57
EM::RegionBoundary::getSide
int getSide() const
Definition: emregion.h:66
EM::RegionHor3DBoundary::key
const MultiID & key() const
Definition: emregion.h:140
EM::RegionZBoundary::fillPar
void fillPar(IOPar &) const
EM::Region3D::init
bool init(TaskRunner *)
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
EM::RegionFaultBoundary::fillPar
void fillPar(IOPar &) const
EM::RegionBoundary::type
virtual const char * type() const =0
FaultTrcDataProvider
FaultTrace data provider.
Definition: faulttrace.h:225
EM::Region
Definition: emregion.h:34
namedobj.h
polygon.h
EM::Region3D::setEmpty
void setEmpty()
EM::RegionPolygonBoundary::setKey
void setKey(const MultiID &)
EM::RegionInlBoundary::fillPar
void fillPar(IOPar &) const
EM::RegionPolygonBoundary::polygon_
const ODPolygon< float > * polygon_
Definition: emregion.h:197
EM::Region3D::isInside
bool isInside(const TrcKey &, float z, bool inclborder) const
sKey::Fault
FixedString Fault()
Definition: keystrs.h:66
EM::RegionInlBoundary::mODTextTranslationClass
mODTextTranslationClass(RegionInlBoundary) public
Definition: emregion.h:80
EM
Earth Model objects like horizons, faults, fault-sticks and bodies.
Definition: bulk2dhorizonscanner.h:26
EM::RegionBoundary::setSide
virtual void setSide(int sd)
Definition: emregion.h:65
mODTextTranslationClass
#define mODTextTranslationClass(clss)
Definition: uistring.h:40
EM::Region3D::size
int size() const
EM::Region::isInside
virtual bool isInside(const TrcKey &, float z, bool includeborder=true) const
EM::RegionPolygonBoundary::key_
MultiID key_
Definition: emregion.h:196
EM::Region::~Region
virtual ~Region()
TrcKeyZSampling
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:35
EM::RegionInlBoundary::usePar
bool usePar(const IOPar &)
EM::RegionBoundary::RegionBoundary
RegionBoundary()
Definition: emregion.h:72
EM::RegionHor3DBoundary::getSideStrs
void getSideStrs(uiStringSet &) const
EM::RegionBoundary::usePar
virtual bool usePar(const IOPar &)=0
EM::RegionCrlBoundary
Definition: emregion.h:98
multiid.h
EM::RegionCrlBoundary::type
const char * type() const
EM::RegionFaultBoundary::hasName
bool hasName() const
Definition: emregion.h:164
EM::RegionZBoundary::getSideStrs
void getSideStrs(uiStringSet &) const
EM::RegionFaultBoundary::init
bool init(TaskRunner *)
EM::Region3D::removeBoundary
void removeBoundary(RegionBoundary &)
EM::RegionBoundary::hasName
virtual bool hasName() const
Definition: emregion.h:61
EM::RegionHor3DBoundary::fillPar
void fillPar(IOPar &) const
EM::RegionHor3DBoundary::init
bool init(TaskRunner *)
EM::RegionInlBoundary::inl_
int inl_
Definition: emregion.h:93
EM::RegionBoundary::fillPar
virtual void fillPar(IOPar &) const =0
trckeyzsampling.h
EM::Region3D::Region3D
Region3D()
EM::Region3D::usePar
bool usePar(const IOPar &)
EM::RegionHor3DBoundary::setKey
void setKey(const MultiID &)
EM::RegionFaultBoundary::getSideStrs
void getSideStrs(uiStringSet &) const
TaskRunner
Class that can execute a task.
Definition: task.h:170
EM::RegionBoundary::init
virtual bool init(TaskRunner *)
Definition: emregion.h:60
EM::RegionPolygonBoundary::fillPar
void fillPar(IOPar &) const
EM::RegionCrlBoundary::usePar
bool usePar(const IOPar &)
EM::RegionBoundary::getSideStrs
virtual void getSideStrs(uiStringSet &) const =0
EM::Region::usePar
virtual bool usePar(const IOPar &)
position.h
EM::RegionInlBoundary
Definition: emregion.h:80
MultiID
Compound key consisting of ints.
Definition: multiid.h:24
EM::RegionInlBoundary::type
const char * type() const
EM::RegionHor3DBoundary::hor_
EM::Horizon3D * hor_
Definition: emregion.h:151
EM::RegionZBoundary
Definition: emregion.h:116
EM::Region3D
Definition: emregion.h:202
TrcKey
Represents a unique trace position in one of the surveys that OpendTect is managing.
Definition: trckey.h:28
EM::RegionCrlBoundary::crl_
int crl_
Definition: emregion.h:111
EM::Region3D::fillPar
void fillPar(IOPar &) const
EM::RegionFaultBoundary::flt_
const EM::Fault * flt_
Definition: emregion.h:174
EM::RegionPolygonBoundary::type
const char * type() const
EM::RegionHor3DBoundary::hasName
bool hasName() const
Definition: emregion.h:141
EM::Region::Region
Region(Pos::GeomID=-1)
EM::RegionPolygonBoundary
Definition: emregion.h:181
EM::RegionPolygonBoundary::hasName
bool hasName() const
Definition: emregion.h:189
EM::RegionPolygonBoundary::onRightSide
bool onRightSide(const TrcKey &, float z) const
EM::Region3D::getBoundary
RegionBoundary * getBoundary(int idx)
EM::RegionFaultBoundary::~RegionFaultBoundary
mODTextTranslationClass(RegionFaultBoundary) public ~RegionFaultBoundary()
EM::RegionInlBoundary::onRightSide
bool onRightSide(const TrcKey &, float z) const
EM::RegionZBoundary::z_
float z_
Definition: emregion.h:128
EM::RegionFaultBoundary::onRightSide
bool onRightSide(const TrcKey &, float z) const
mUdf
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:274
EM::RegionFaultBoundary::key_
MultiID key_
Definition: emregion.h:173
EM::RegionHor3DBoundary::usePar
bool usePar(const IOPar &)
EM::RegionHor3DBoundary::~RegionHor3DBoundary
mODTextTranslationClass(RegionHor3DBoundary) public ~RegionHor3DBoundary()
EM::RegionFaultBoundary
Definition: emregion.h:156
EM::RegionZBoundary::onRightSide
bool onRightSide(const TrcKey &, float z) const
EM::RegionFaultBoundary::key
const MultiID & key() const
Definition: emregion.h:163
EM::Region::fillPar
virtual void fillPar(IOPar &) const
EM::RegionBoundary::side_
int side_
Definition: emregion.h:75
EM::RegionZBoundary::type
const char * type() const
EM::Region::id
int id() const
EM::RegionFaultBoundary::usePar
bool usePar(const IOPar &)
EM::RegionPolygonBoundary::~RegionPolygonBoundary
mODTextTranslationClass(RegionPolygonBoundary) public ~RegionPolygonBoundary()
EM::Region::tkzs_
TrcKeyZSampling tkzs_
Definition: emregion.h:49
EM::RegionCrlBoundary::onRightSide
bool onRightSide(const TrcKey &, float z) const
EM::Region3D::boundaries_
ObjectSet< RegionBoundary > boundaries_
Definition: emregion.h:223
EM::Region::getBoundingBox
const TrcKeyZSampling & getBoundingBox() const
EM::Fault
Fault Surface base class.
Definition: emfault.h:84
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
EM::Horizon3D
3D Horizon. A Horizon is made up of one or more grids (so they can overlap at faults)....
Definition: emhorizon3d.h:96
EM::RegionZBoundary::mODTextTranslationClass
mODTextTranslationClass(RegionZBoundary) public
Definition: emregion.h:116
EM::RegionFaultBoundary::setKey
void setKey(const MultiID &)
EM::RegionFaultBoundary::type
const char * type() const
Pos::GeomID
Index_Type GeomID
Definition: commontypes.h:87
EM::Region3D::addBoundary
void addBoundary(RegionBoundary *)
EM::RegionCrlBoundary::mODTextTranslationClass
mODTextTranslationClass(RegionCrlBoundary) public
Definition: emregion.h:98
EM::RegionCrlBoundary::fillPar
void fillPar(IOPar &) const

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