OpendTect  6.6
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  RCS: $Id$
10 ________________________________________________________________________
11 
12 
13 -*/
14 
15 #include "earthmodelmod.h"
16 #include "emhorizon.h"
17 #include "bufstringset.h"
18 #include "horizon2dline.h"
19 #include "posinfo2dsurv.h"
20 
21 class ZAxisTransform;
22 namespace Geometry { class Horizon2DLine; }
23 namespace Table { class FormatDesc; }
24 template <class T> class Array1D;
25 
26 namespace EM
27 {
28 class EMManager;
29 
35 {
36 public:
40 
41  int nrLines() const;
42 
43  int lineIndex(Pos::GeomID geomid) const;
44 
45  int lineIndex(const char* linenm) const;
46  const char* lineName(int id) const;
47  const char* lineSet(int id) const;
48  Pos::GeomID geomID(int idx) const;
50 
51  PosID getPosID(const TrcKey&) const;
52  TrcKey getTrcKey(const PosID&) const;
53 
54  bool includeLine(Pos::GeomID geomid,int step=1);
55 
56  bool addLine(Pos::GeomID geomid,int step=1);
57 
58  bool addLine(Pos::GeomID geomid,
59  const StepInterval<int>& trcrg);
60 
61  void removeLine(Pos::GeomID geomid);
62 
63  bool isAtEdge(const PosID&) const;
64  PosID getNeighbor(const PosID&,bool nextcol,
65  bool retundef=false) const;
72  static const char* sKeyLineIDs() { return "Line IDs"; }
73  static const char* sKeyLineNames() { return "Line names"; }
74  static const char* sKeyLineSets() { return "Set ID of line "; }
75  static const char* sKeyID() { return "ID"; }
76  static const char* sKeyTraceRange()
77  { return "Trace Range of line "; }
78  static const char* sKeyTrcRg() { return "Trace range"; }
79  static const char* sKeyNrLines() { return "Nr of Lines"; }
80 
81  int getConnectedPos(const PosID& posid,
82  TypeSet<PosID>* res) const;
84  Pos::GeomID geomid) const;
85 
87 
88 protected:
90 
91  bool doAddLine(Pos::GeomID geomid,
92  const StepInterval<int>& trcrg,
93  bool mergewithdouble);
94 
95  void fillPar(IOPar&) const;
96  bool usePar(const IOPar&);
97 
98 };
99 
100 
107 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  virtual bool setZAndNodeSourceType(const TrcKey&,float z,
114  bool addtohist, NodeSourceType type=Auto);
115  virtual bool hasZ(const TrcKey&) const;
116  virtual Coord3 getCoord(const TrcKey&) const;
117  virtual void setAttrib(const TrcKey&,int attr,int yn,
118  bool addtohist);
119  virtual bool isAttrib(const TrcKey&,int attr) const;
120 
121  virtual float getZValue(const Coord&,bool allow_udf=true,
122  int nr=0) const;
125 
126  bool unSetPos(const EM::PosID&,bool addtohist);
127  bool unSetPos(const EM::SectionID&,const EM::SubID&,
128  bool addtohist);
129  Coord3 getPos(const EM::PosID&) const;
131  const EM::SubID&) const;
132  TypeSet<Coord3> getPositions(int lineidx,int trcnr) const;
134  int trcnr) const;
135 
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 
145  int trcnr,float z,bool addtohist);
146 
147  bool setPos(const EM::PosID&,const Coord3&,
148  bool addtohist);
149  bool setPos(const EM::SectionID&,const EM::SubID&,
150  const Coord3&,bool addtohist);
151 
152  Horizon2DGeometry& geometry() { return geometry_; }
153  const Horizon2DGeometry& geometry() const { return geometry_; }
154 
155  virtual void removeAll();
156  void removeSelected(const Selector<Coord3>& selector,
157  TaskRunner* tr );
158 
160  const StepInterval<int>& trcrg,
161  SectionID sid,Pos::GeomID geomid,
162  bool onlyfillundefs);
164  Pos::GeomID geomid,
165  bool onlyfillundefs );
166 
168  Pos::GeomID geomid,
169  const ZAxisTransform* =0) const;
170 
172  uiString getUserTypeStr() const { return userTypeStr(); }
173  static uiString userTypeStr() { return tr("2D Horizon"); }
174 
175 protected:
176 
179 
188 };
189 
190 } // namespace EM
191 
EM::Horizon2D::geometry
const Horizon2DGeometry & geometry() const
Definition: emhorizon2d.h:153
EM::Horizon2DGeometry::Horizon2DGeometry
Horizon2DGeometry(Surface &)
Coord3
A cartesian coordinate in 3D space.
Definition: coord.h:72
EM::Horizon2DGeometry::fillPar
void fillPar(IOPar &) const
Selector< Coord3 >
EM::Horizon2DGeometry::usePar
bool usePar(const IOPar &)
EM::Horizon2D::setArray1D
bool setArray1D(const Array1D< float > &, SectionID sid, Pos::GeomID geomid, bool onlyfillundefs)
EM::Horizon2D::getIOObjContext
const IOObjContext & getIOObjContext() const
EM::HorizonGeometry
Horizon RowColSurfaceGeometry.
Definition: emhorizon.h:32
EM::Horizon2DGeometry::getTrcKey
TrcKey getTrcKey(const PosID &) const
EM::Horizon2DGeometry::createSectionGeometry
Geometry::Horizon2DLine * createSectionGeometry() const
EM::Horizon2D::isAttrib
virtual bool isAttrib(const TrcKey &, int attr) const
EM::Horizon2D::getZ
virtual float getZ(const TrcKey &) const
EM::Horizon2DGeometry::lineSet
const char * lineSet(int id) const
EM::SubID
od_int64 SubID
Definition: emposid.h:25
EM::Horizon2D::getPos
Coord3 getPos(const EM::PosID &) const
EM::Horizon2D::setZAndNodeSourceType
virtual bool setZAndNodeSourceType(const TrcKey &, float z, bool addtohist, NodeSourceType type=Auto)
emhorizon.h
Geometry
Definition: arraytesselator.h:21
EM::Horizon2DGeometry::doAddLine
bool doAddLine(Pos::GeomID geomid, const StepInterval< int > &trcrg, bool mergewithdouble)
EM::Horizon2D::isNodeSourceType
virtual bool isNodeSourceType(const PosID &, NodeSourceType) const
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
EM::Horizon2D::setNodeSourceType
virtual void setNodeSourceType(const TrcKey &, NodeSourceType)
EM::Horizon2D::isNodeSourceType
virtual bool isNodeSourceType(const TrcKey &, NodeSourceType) const
EM::Horizon2DGeometry::getConnectedPos
int getConnectedPos(const PosID &posid, TypeSet< PosID > *res) const
EM::Horizon2DGeometry::addLine
bool addLine(Pos::GeomID geomid, const StepInterval< int > &trcrg)
EM::Horizon2DGeometry::sKeyID
static const char * sKeyID()
Definition: emhorizon2d.h:75
EM::Horizon2DGeometry::isAtEdge
bool isAtEdge(const PosID &) const
EM::Horizon2DGeometry::colRange
StepInterval< int > colRange(Pos::GeomID geomid) const
Table
Definition: geom2dascio.h:20
EM::Horizon2D::getCoord
virtual Coord3 getCoord(const TrcKey &) const
EM::Horizon2D::removeAll
virtual void removeAll()
Array1D
Array1D ( Subclass of ArrayND ) is a one dimensional array.
Definition: arraynd.h:111
EM::Horizon2DGeometry::getPosID
PosID getPosID(const TrcKey &) const
EM
Earth Model objects like horizons, faults, fault-sticks and bodies.
Definition: bulk2dhorizonscanner.h:26
EM::Horizon2D::setZ
virtual bool setZ(const TrcKey &, float z, bool addtohist)
EM::Horizon2D::trackingsampling_
StepInterval< int > trackingsampling_
Definition: emhorizon2d.h:187
EM::Horizon2D::geometry_
Horizon2DGeometry geometry_
Definition: emhorizon2d.h:180
EM::Horizon2D::setArray1D
bool setArray1D(const Array1D< float > &, const StepInterval< int > &trcrg, SectionID sid, Pos::GeomID geomid, bool onlyfillundefs)
EM::Horizon2D::getPosition
Coord3 getPosition(EM::SectionID, int lidx, int trcnr) const
EM::Surface
Base class for surfaces like horizons and faults. A surface is made up of one or more segments or pat...
Definition: emsurface.h:33
EM::Horizon2DGeometry::sKeyLineIDs
static const char * sKeyLineIDs()
Definition: emhorizon2d.h:72
EM::Horizon2DGeometry::sKeyTraceRange
static const char * sKeyTraceRange()
Definition: emhorizon2d.h:76
EM::Horizon2D::getPos
Coord3 getPos(EM::SectionID, Pos::GeomID, int trc) const
EM::Horizon2D::setPos
bool setPos(EM::SectionID, Pos::GeomID geomid, int trcnr, float z, bool addtohist)
StepInterval< int >
Coord
A cartesian coordinate in 2D space.
Definition: coord.h:25
ZAxisTransform
Base class for z-axis transforms.
Definition: zaxistransform.h:37
EM::EMObject::NodeSourceType
NodeSourceType
Definition: emobject.h:161
EM::Horizon2D::setPos
bool setPos(const EM::PosID &, const Coord3 &, bool addtohist)
EM::Horizon2DGeometry::includeLine
bool includeLine(Pos::GeomID geomid, int step=1)
EM::Horizon2D::setAttrib
virtual void setAttrib(const TrcKey &, int attr, int yn, bool addtohist)
EM::Horizon2D::removeSelected
void removeSelected(const Selector< Coord3 > &selector, TaskRunner *tr)
EM::Horizon2DGeometry::geomID
Pos::GeomID geomID(int idx) const
EM::Horizon2DGeometry::sKeyLineNames
static const char * sKeyLineNames()
Definition: emhorizon2d.h:73
EM::Horizon2DGeometry::sectionGeometry
Geometry::Horizon2DLine * sectionGeometry(const SectionID &)
EM::Horizon2DGeometry::colRange
StepInterval< int > colRange(const SectionID &, Pos::GeomID geomid) const
EM::Horizon2DGeometry::sKeyTrcRg
static const char * sKeyTrcRg()
Definition: emhorizon2d.h:78
EM::Horizon2D::userTypeStr
static uiString userTypeStr()
Definition: emhorizon2d.h:173
EM::Horizon
Horizon Surface.
Definition: emhorizon.h:47
EM::Horizon2D
2D Horizon. The Horizon is only present along 2d lines, set by addLine. Each position's subid is form...
Definition: emhorizon2d.h:108
EM::Horizon2D::getSurveyID
TrcKey::SurvID getSurveyID() const
IOObjContext
Holds the context for selecting and/or creating IOObjs.
Definition: ctxtioobj.h:62
horizon2dline.h
sKey::Horizon2D
FixedString Horizon2D()
Definition: keystrs.h:78
EM::Horizon2DGeometry::getGeomIDs
void getGeomIDs(TypeSet< Pos::GeomID > &) const
mDefineEMObjFuncs
#define mDefineEMObjFuncs(clss)
Definition: emobject.h:374
TaskRunner
Class that can execute a task.
Definition: task.h:170
EM::Horizon2D::getPositions
TypeSet< Coord3 > getPositions(int lineidx, int trcnr) const
EM::Horizon2D::getUserTypeStr
uiString getUserTypeStr() const
Definition: emhorizon2d.h:172
EM::Horizon2D::unSetPos
bool unSetPos(const EM::PosID &, bool addtohist)
EM::Horizon2D::setPos
bool setPos(const EM::SectionID &, const EM::SubID &, const Coord3 &, bool addtohist)
EM::Horizon2D::createArray1D
Array1D< float > * createArray1D(SectionID, Pos::GeomID geomid, const ZAxisTransform *=0) const
EM::Horizon2D::hasZ
virtual bool hasZ(const TrcKey &) const
TrcKey
Represents a unique trace position in one of the surveys that OpendTect is managing.
Definition: trckey.h:28
EM::SectionID
od_int16 SectionID
Definition: emposid.h:24
bufstringset.h
EM::Horizon2D::nodesource_
Array1D< char > * nodesource_
Definition: emhorizon2d.h:181
EM::Horizon2DGeometry::nrLines
int nrLines() const
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
TrcKey::SurvID
Pos::SurvID SurvID
Definition: trckey.h:31
EM::Horizon2DGeometry::getNeighbor
PosID getNeighbor(const PosID &, bool nextcol, bool retundef=false) const
Geometry::Horizon2DLine
Definition: horizon2dline.h:30
EM::Horizon2DGeometry::addLine
bool addLine(Pos::GeomID geomid, int step=1)
EM::Horizon2DGeometry::removeLine
void removeLine(Pos::GeomID geomid)
EM::Horizon2D::initNodeSourceArray
void initNodeSourceArray(const TrcKey &)
EM::Horizon2DGeometry::sKeyLineSets
static const char * sKeyLineSets()
Definition: emhorizon2d.h:74
EM::Horizon2D::geometry
Horizon2DGeometry & geometry()
Definition: emhorizon2d.h:152
EM::Horizon2D::unSetPos
bool unSetPos(const EM::SectionID &, const EM::SubID &, bool addtohist)
EM::Horizon2DGeometry::lineIndex
int lineIndex(Pos::GeomID geomid) const
EM::Horizon2DGeometry
2D HorizonGeometry
Definition: emhorizon2d.h:35
EM::Horizon2D::getZValue
virtual float getZValue(const Coord &, bool allow_udf=true, int nr=0) const
EM::Horizon2DGeometry::sectionGeometry
const Geometry::Horizon2DLine * sectionGeometry(const SectionID &) const
posinfo2dsurv.h
EM::Horizon2DGeometry::lineIndex
int lineIndex(const char *linenm) const
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
EM::Horizon2DGeometry::lineName
const char * lineName(int id) const
EM::Horizon2DGeometry::sKeyNrLines
static const char * sKeyNrLines()
Definition: emhorizon2d.h:79
EM::PosID
Is an identifier for each position in the earthmodel.
Definition: emposid.h:37
Pos::GeomID
Index_Type GeomID
Definition: commontypes.h:87
TypeSet< Pos::GeomID >
EM::Horizon2D::getPos
Coord3 getPos(const EM::SectionID &, const EM::SubID &) const

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