OpendTect  6.3
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 "dbkey.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;
39  const TrcKeyZSampling& getBoundingBox() 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:
47  Region(Pos::GeomID =-1);
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:
135  RegionHor3DBoundary(const DBKey&);
137 
138  const char* type() const;
139  void setKey(const DBKey&);
140  DBKey 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:
150 
153 
154 };
155 
156 
159 public:
160  RegionFaultBoundary(const DBKey&);
162 
163  const char* type() const;
164  void setKey(const DBKey&);
165  DBKey key() const { return key_; }
166  bool hasName() const { return true; }
167  bool init(TaskRunner*);
168  void getSideStrs(uiStringSet&) const;
169  bool onRightSide(const TrcKey&,float z) const;
170 
171  void fillPar(IOPar&) const;
172  bool usePar(const IOPar&);
173 
174 protected:
175 
177  const EM::Fault* flt_;
179 
180 };
181 
182 
185 public:
188 
189  const char* type() const;
190  void setKey(const DBKey&);
191  DBKey key() const { return key_; }
192  bool hasName() const { return true; }
193  void getSideStrs(uiStringSet&) const;
194  bool onRightSide(const TrcKey&,float z) const;
195 
196  void fillPar(IOPar&) const;
197  bool usePar(const IOPar&);
198 
201 };
202 
203 
204 mExpClass(EarthModel) Region3D : public Region
205 {
206 public:
207  Region3D();
208  ~Region3D();
209 
210  void addBoundary(RegionBoundary*); // becomes mine
211  RegionBoundary* getBoundary(int idx);
212  void removeBoundary(int idx);
213  void removeBoundary(RegionBoundary&);
214  bool hasBoundary(const DBKey&) const;
215  int size() const;
216  bool isEmpty() const;
217  void setEmpty();
218 
219  bool init(TaskRunner*);
220  bool isInside(const TrcKey&,float z,bool inclborder) const;
221 
222  void fillPar(IOPar&) const;
223  bool usePar(const IOPar&);
224 
225 protected:
227 };
228 
229 } // namespace EM
#define mExpClass(module)
Definition: commondefs.h:157
Fault Surface base class.
Definition: emfault.h:82
Pos::GeomID geomid_
Definition: emregion.h:51
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
bool init()
mODTextTranslationClass(RegionZBoundary) public
Definition: emregion.h:116
const ODPolygon< float > * polygon_
Definition: emregion.h:200
Definition: emregion.h:97
int getSide() const
Definition: emregion.h:66
Definition: emregion.h:33
bool hasName() const
Definition: emregion.h:141
mODTextTranslationClass(RegionInlBoundary) public
Definition: emregion.h:80
ObjectSet< RegionBoundary > boundaries_
Definition: emregion.h:226
const EM::Fault * flt_
Definition: emregion.h:177
Set of pointers to objects.
Definition: commontypes.h:28
float z_
Definition: emregion.h:128
DBKey key_
Definition: emregion.h:199
bool hasName() const
Definition: emregion.h:192
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
Class that can execute a task.
Definition: task.h:193
DBKey key_
Definition: emregion.h:176
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:270
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:32
DBKey key() const
Definition: emregion.h:165
virtual bool hasName() const
Definition: emregion.h:61
int side_
Definition: emregion.h:75
RegionBoundary()
Definition: emregion.h:72
Definition: emregion.h:56
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
Definition: emregion.h:157
Index_Type GeomID
Definition: commontypes.h:48
FixedString Fault()
Definition: keystrs.h:64
int inl_
Definition: emregion.h:93
virtual void setSide(int sd)
Definition: emregion.h:65
DBKey key() const
Definition: emregion.h:140
int id_
Definition: emregion.h:50
bool isEmpty(const char *)
Definition: emregion.h:79
object with a name.
Definition: namedobj.h:20
TrcKeyZSampling tkzs_
Definition: emregion.h:49
EM::Horizon3D * hor_
Definition: emregion.h:152
FaultTrcDataProvider & prov_
Definition: emregion.h:178
FaultTrace data provider.
Definition: faulttrace.h:221
Earth Model objects like horizons, faults, fault-sticks and bodies.
Definition: embody.h:23
int crl_
Definition: emregion.h:111
virtual bool init(TaskRunner *)
Definition: emregion.h:60
DBKey key() const
Definition: emregion.h:191
Definition: uistring.h:235
mODTextTranslationClass(RegionCrlBoundary) public
Definition: emregion.h:98
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
Represents a unique trace position in one of the surveys that OpendTect is managing.
Definition: trckey.h:26
3D Horizon. A Horizon is made up of one or more grids (so they can overlap at faults). The grids are defined by knot-points in a matrix and fillstyle in between the knots.
Definition: emhorizon3d.h:94
Definition: emregion.h:204
Definition: emregion.h:115
Definition: emregion.h:183
Definition: emregion.h:132
DBKey key_
Definition: emregion.h:151
bool hasName() const
Definition: emregion.h:166

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