OpendTect  6.3
emhorizon2d.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: Kristofer Tingdahl
8  Date: 4-11-2002
9 ________________________________________________________________________
10 
11 
12 -*/
13 
14 #include "earthmodelmod.h"
15 #include "emhorizon.h"
16 #include "bufstringset.h"
17 #include "horizon2dline.h"
18 #include "posinfo2dsurv.h"
19 
20 class ZAxisTransform;
21 namespace Geometry { class Horizon2DLine; }
22 namespace Table { class FormatDesc; }
23 template <class T> class Array1D;
24 
25 namespace EM
26 {
27 class EMManager;
28 
34 {
35 public:
37  Geometry::Horizon2DLine* sectionGeometry(const SectionID&);
38  const Geometry::Horizon2DLine* sectionGeometry(const SectionID&) const;
39 
40  int nrLines() const;
41 
42  int lineIndex(Pos::GeomID geomid) const;
43 
44  int lineIndex(const char* linenm) const;
45  const char* lineName(int id) const;
46  const char* lineSet(int id) const;
47  Pos::GeomID geomID(int idx) const;
48 
49  PosID getPosID(const TrcKey&) const;
50  TrcKey getTrcKey(const PosID&) const;
51 
52  bool includeLine(Pos::GeomID geomid,int step=1);
53 
54  bool addLine(Pos::GeomID geomid,int step=1);
55 
56  bool addLine(Pos::GeomID geomid,
57  const StepInterval<int>& trcrg);
58 
59  void removeLine(Pos::GeomID geomid);
60 
61  bool isAtEdge(const PosID&) const;
62  PosID getNeighbor(const PosID&,bool nextcol,
63  bool retundef=false) const;
70  static const char* sKeyLineIDs() { return "Line IDs"; }
71  static const char* sKeyLineNames() { return "Line names"; }
72  static const char* sKeyLineSets() { return "Set ID of line "; }
73  static const char* sKeyID() { return "ID"; }
74  static const char* sKeyTraceRange()
75  { return "Trace Range of line "; }
76  static const char* sKeyTrcRg() { return "Trace range"; }
77  static const char* sKeyNrLines() { return "Nr of Lines"; }
78 
79  int getConnectedPos(const PosID& posid,
80  TypeSet<PosID>* res) const;
81  StepInterval<int> colRange(const SectionID&,
82  Pos::GeomID geomid) const;
83 
84  StepInterval<int> colRange(Pos::GeomID geomid) const;
85 
86 protected:
87  Geometry::Horizon2DLine* createSectionGeometry() const;
88 
89  bool doAddLine(Pos::GeomID geomid,
90  const StepInterval<int>& trcrg,
91  bool mergewithdouble);
92 
93  void fillPar(IOPar&) const;
94  bool usePar(const IOPar&);
95 
97 };
98 
99 
106 mExpClass(EarthModel) Horizon2D : public Horizon
109 public:
110 
111  virtual float getZ(const TrcKey&) const;
112  virtual bool setZ(const TrcKey&,float z,bool addtohist,
113  NodeSourceType type=Auto);
114  virtual bool hasZ(const TrcKey&) const;
115  virtual Coord3 getCoord(const TrcKey&) const;
116  virtual void setAttrib(const TrcKey&,int attr,bool yn,
117  bool addtohist);
118  virtual bool isAttrib(const TrcKey&,int attr) const;
119 
120  virtual float getZValue(const Coord&,bool allow_udf=true,
121  int nr=0) const;
124 
125  bool unSetPos(const EM::PosID&,bool addtohist);
126  bool unSetPos(const EM::SectionID&,const EM::SubID&,
127  bool addtohist);
128  Coord3 getPos(const EM::PosID&) const;
129  Coord3 getPos(const EM::SectionID&,
130  const EM::SubID&) const;
131  TypeSet<Coord3> getPositions(int lineidx,int trcnr) const;
132  Coord3 getPosition(EM::SectionID,int lidx,
133  int trcnr) const;
134 
135  Coord3 getPos(EM::SectionID,Pos::GeomID,int trc) const;
136 
137  virtual void setNodeSourceType(const TrcKey&,
139  virtual bool isNodeSourceType(const PosID&,
140  NodeSourceType)const;
141  virtual bool isNodeSourceType(const TrcKey&,
142  NodeSourceType)const;
143 
144  bool setZPos(EM::SectionID,Pos::GeomID geomid,
145  int trcnr,float z,bool addtohist,
146  NodeSourceType type=Auto);
147 
148  Horizon2DGeometry& geometry() { return geometry_; }
149  const Horizon2DGeometry& geometry() const { return geometry_; }
150 
151  virtual void removeAll();
152  void removeSelected(const Selector<Coord3>& selector,
153  TaskRunner* tskr );
154 
155  bool setArray1D(const Array1D<float>&,
156  const StepInterval<int>& trcrg,
157  SectionID sid,Pos::GeomID geomid,
158  bool onlyfillundefs);
159  bool setArray1D(const Array1D<float>&,SectionID sid,
160  Pos::GeomID geomid,
161  bool onlyfillundefs );
162 
163  Array1D<float>* createArray1D(SectionID,
164  Pos::GeomID geomid,
165  const ZAxisTransform* =0) const;
166 
167  TrcKey::SurvID getSurveyID() const;
168  uiString getUserTypeStr() const { return userTypeStr(); }
169  static uiString userTypeStr() { return tr("2D Horizon"); }
170  void setSelectionColor(const Color&);
171  const Color& getSelectionColor() const;
172 
173 protected:
174 
175  const IOObjContext& getIOObjContext() const;
176  void initNodeSourceArray(const TrcKey&);
177 
185 };
186 
187 
188 } // namespace EM
Array1D ( Subclass of ArrayND ) is a one dimensional array.
Definition: arraynd.h:97
od_int16 SectionID
Definition: emposid.h:23
#define mExpClass(module)
Definition: commondefs.h:157
static const char * sKeyNrLines()
Definition: emhorizon2d.h:77
Horizon2DGeometry & geometry()
Definition: emhorizon2d.h:148
static const char * sKeyID()
Definition: emhorizon2d.h:73
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
Is an identifier for each position in the earthmodel.
Definition: emposid.h:35
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
Array1D< char > * nodesource_
Definition: emhorizon2d.h:180
Pos::SurvID SurvID
Definition: trckey.h:30
Definition: horizon2dline.h:28
Color selectioncolor_
Definition: emhorizon2d.h:179
Definition: uistring.h:88
static const char * sKeyTraceRange()
Definition: emhorizon2d.h:74
static const char * sKeyLineIDs()
Definition: emhorizon2d.h:70
static const char * sKeyTrcRg()
Definition: emhorizon2d.h:76
od_int64 SubID
Definition: emposid.h:24
Horizon RowColSurfaceGeometry.
Definition: emhorizon.h:31
TypeSet< Pos::GeomID > geomids_
Definition: emhorizon2d.h:96
2D Horizon. The Horizon is only present along 2d lines, set by addLine. Each position&#39;s subid is form...
Definition: emhorizon2d.h:106
#define mDefineEMObjFuncs(clss)
Definition: emobject.h:344
static const char * sKeyLineNames()
Definition: emhorizon2d.h:71
3D point or vector
Definition: commontypes.h:57
void removeAll()
Set of (small) copyable elements.
Definition: commontypes.h:26
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
Definition: geom2dascio.h:18
Class that can execute a task.
Definition: task.h:193
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
static uiString userTypeStr()
Definition: emhorizon2d.h:169
Index_Type GeomID
Definition: commontypes.h:48
Base class for surfaces like horizons and faults. A surface is made up of one or more segments or pat...
Definition: emsurface.h:31
uiString getUserTypeStr() const
Definition: emhorizon2d.h:168
Earth Model objects like horizons, faults, fault-sticks and bodies.
Definition: embody.h:23
NodeSourceType
Definition: emobject.h:122
Color is an RGB color object, with a transparancy. The storage is in a 4-byte integer, similar to Qt.
Definition: color.h:24
2D HorizonGeometry
Definition: emhorizon2d.h:33
const Horizon2DGeometry & geometry() const
Definition: emhorizon2d.h:149
Represents a unique trace position in one of the surveys that OpendTect is managing.
Definition: trckey.h:26
static const char * sKeyLineSets()
Definition: emhorizon2d.h:72
2D point or vector class.
Definition: commontypes.h:58
Base class for z-axis transforms.
Definition: zaxistransform.h:35
Definition: arraytesselator.h:19
IOObjContext * getIOObjContext(Seis::GeomType, bool forread)
Horizon Surface.
Definition: emhorizon.h:46
Holds the context for selecting and/or creating IOObjs.
Definition: ioobjctxt.h:59
Horizon2DGeometry geometry_
Definition: emhorizon2d.h:178

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