OpendTect  6.6
emsurfacegeometry.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 "bufstringset.h"
17 #include "emposid.h"
18 #include "emobject.h"
19 #include "mathfunc.h"
20 #include "rowcolsurface.h"
21 
22 template <class T, class AT> class TopList;
23 
24 
25 class RowCol;
26 
27 
28 namespace Geometry { class RowColSurface; }
29 
30 
31 namespace EM
32 {
33 class Surface;
34 class SurfaceIODataSelection;
35 
40 mExpClass(EarthModel) SurfaceGeometry : public CallBacker
42 public:
44  virtual ~SurfaceGeometry();
45  virtual void removeAll();
46 
47  virtual bool enableChecks(bool yn);
48  virtual bool isChecksEnabled() const;
49  virtual bool isNodeOK(const PosID&) const;
50 
51  int nrSections() const;
52  SectionID sectionID(int idx) const;
53  SectionID sectionID(const char*) const;
54  bool hasSection(const SectionID&) const;
55  int sectionIndex(const SectionID&) const;
56  const char* sectionName(const SectionID&) const;
57  bool setSectionName( const SectionID&, const char*,
58  bool addtohistory );
59  SectionID addSection(const char* nm,bool addtohistory);
60  SectionID addSection(const char* nm,const SectionID&,
61  bool addtohistory);
63  virtual bool removeSection(const SectionID&,bool addtohistory);
64  virtual SectionID cloneSection(const SectionID&);
65 
66  virtual const Geometry::Element* sectionGeometry(const SectionID&) const;
68  virtual int getConnectedPos(const PosID& posid,
69  TypeSet<PosID>* res) const;
71  virtual void getLinkedPos(const PosID& posid,TypeSet<PosID>&) const;
72  virtual bool isAtEdge(const PosID&) const;
73 
74  bool isChanged(int) const { return changed_; }
75  void resetChangedFlag() { changed_=false; }
76 
77  virtual bool isLoaded() const;
78  virtual bool isFullResolution() const;
79  virtual Executor* loader(const SurfaceIODataSelection* s=0);
80  virtual Executor* saver(const SurfaceIODataSelection* s=0,
81  const MultiID* key=0);
82 
83  virtual int findPos(const SectionID&,const Interval<float>& x,
84  const Interval<float>& y,
85  const Interval<float>& z,
86  TypeSet<PosID>* res) const;
87  virtual int findPos(const Interval<float>& x,
88  const Interval<float>& y,
89  const Interval<float>& z,TypeSet<PosID>*) const;
90  virtual int findPos(const TrcKeyZSampling&,TypeSet<PosID>*) const;
91 
93  const TrcKeyZSampling* =0) const;
94 
95 
96  virtual bool usePar(const IOPar&);
97  virtual void fillPar(IOPar&) const;
98 
99 protected:
100 
102  const char* nm,const SectionID&,
103  bool addtohistory);
104 
105 
108 
113 
114  bool changed_;
115 
116 };
117 
118 
125 public:
128 
129 
132 
135  StepInterval<int> colRange(const SectionID&,int row) const;
137  StepInterval<int> colRange(int row) const;
138 
140  const TrcKeyZSampling* =0) const;
141 
142 };
143 
144 } // namespace EM
145 
EM::SurfaceGeometry::addSectionInternal
SectionID addSectionInternal(Geometry::Element *, const char *nm, const SectionID &, bool addtohistory)
EM::SurfaceGeometry::createSectionGeometry
virtual Geometry::Element * createSectionGeometry() const =0
emobject.h
EM::RowColSurfaceGeometry::colRange
StepInterval< int > colRange(int row) const
EM::RowColSurfaceGeometry::mODTextTranslationClass
mODTextTranslationClass(RowColSurfaceGeometry)
emposid.h
EM::SurfaceGeometry::isChecksEnabled
virtual bool isChecksEnabled() const
EM::SurfaceGeometry::geomChangeCB
void geomChangeCB(CallBacker *)
EM::SurfaceGeometry::addSection
SectionID addSection(const char *nm, const SectionID &, bool addtohistory)
EM::SurfaceGeometry::isLoaded
virtual bool isLoaded() const
EM::RowColSurfaceGeometry::sectionGeometry
Geometry::RowColSurface * sectionGeometry(const SectionID &)
sKey::Surface
FixedString Surface()
Definition: keystrs.h:154
rowcolsurface.h
EM::SurfaceGeometry::sids_
TypeSet< SectionID > sids_
Definition: emsurfacegeometry.h:111
EM::SurfaceGeometry::sectionName
const char * sectionName(const SectionID &) const
ObjectSet< Geometry::Element >
BufferStringSet
Set of BufferString objects.
Definition: bufstringset.h:26
Geometry
Definition: arraytesselator.h:21
EM::SurfaceGeometry::sectionID
SectionID sectionID(int idx) const
EM::RowColSurfaceGeometry::~RowColSurfaceGeometry
virtual ~RowColSurfaceGeometry()
EM::SurfaceGeometry::findPos
virtual int findPos(const Interval< float > &x, const Interval< float > &y, const Interval< float > &z, TypeSet< PosID > *) const
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
Geometry::Element
Definition: geomelement.h:37
EM::RowColSurfaceGeometry::rowRange
StepInterval< int > rowRange(const SectionID &) const
EM::SurfaceGeometry::changed_
bool changed_
Definition: emsurfacegeometry.h:114
EM::SurfaceGeometry::createIterator
virtual EMObjectIterator * createIterator(const EM::SectionID &, const TrcKeyZSampling *=0) const
EM::SurfaceGeometry::loader
virtual Executor * loader(const SurfaceIODataSelection *s=0)
EM::SurfaceGeometry::findPos
virtual int findPos(const SectionID &, const Interval< float > &x, const Interval< float > &y, const Interval< float > &z, TypeSet< PosID > *res) const
CallBacker
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:185
EM::SurfaceGeometry::SurfaceGeometry
SurfaceGeometry(Surface &)
EM::SurfaceGeometry::fillPar
virtual void fillPar(IOPar &) const
EM
Earth Model objects like horizons, faults, fault-sticks and bodies.
Definition: bulk2dhorizonscanner.h:26
EM::SurfaceGeometry::sectionGeometry
virtual const Geometry::Element * sectionGeometry(const SectionID &) const
Geometry::RowColSurface
Definition: rowcolsurface.h:26
EM::SurfaceGeometry::surface_
Surface & surface_
Definition: emsurfacegeometry.h:109
EM::SurfaceGeometry::addSection
SectionID addSection(const char *nm, bool addtohistory)
TrcKeyZSampling
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:35
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::SurfaceGeometry::getConnectedPos
virtual int getConnectedPos(const PosID &posid, TypeSet< PosID > *res) const
EM::SurfaceGeometry::isAtEdge
virtual bool isAtEdge(const PosID &) const
EM::SurfaceGeometry::sectionGeometry
virtual Geometry::Element * sectionGeometry(const SectionID &)
StepInterval< int >
EM::SurfaceGeometry::isFullResolution
virtual bool isFullResolution() const
EM::SurfaceGeometry::isChanged
bool isChanged(int) const
Definition: emsurfacegeometry.h:74
EM::RowColSurfaceGeometry::createIterator
virtual EMObjectIterator * createIterator(const EM::SectionID &, const TrcKeyZSampling *=0) const
EM::SurfaceGeometry::enableChecks
virtual bool enableChecks(bool yn)
EM::SurfaceGeometry::sectionID
SectionID sectionID(const char *) const
EM::SurfaceIODataSelection
Surface I/O data selection.
Definition: emsurfaceiodata.h:62
EM::SurfaceGeometry::isNodeOK
virtual bool isNodeOK(const PosID &) const
Executor
Specification to enable chunkwise execution of a process.
Definition: executor.h:39
EM::SurfaceGeometry::mODTextTranslationClass
mODTextTranslationClass(SurfaceGeometry)
EM::SurfaceGeometry::nrSections
int nrSections() const
EM::SurfaceGeometry::sectionnames_
BufferStringSet sectionnames_
Definition: emsurfacegeometry.h:112
EM::SurfaceGeometry::findPos
virtual int findPos(const TrcKeyZSampling &, TypeSet< PosID > *) const
EM::RowColSurfaceGeometry::colRange
StepInterval< int > colRange(const SectionID &, int row) const
EM::EMObjectIterator
Iterator that iterates a number of positions (normally all) on an EMObject. The object is created by ...
Definition: emobject.h:122
EM::SurfaceGeometry::sectionIndex
int sectionIndex(const SectionID &) const
EM::SurfaceGeometry::cloneSection
virtual SectionID cloneSection(const SectionID &)
EM::SurfaceGeometry::usePar
virtual bool usePar(const IOPar &)
mathfunc.h
EM::RowColSurfaceGeometry::sectionGeometry
const Geometry::RowColSurface * sectionGeometry(const SectionID &) const
MultiID
Compound key consisting of ints.
Definition: multiid.h:24
EM::SurfaceGeometry::setSectionName
bool setSectionName(const SectionID &, const char *, bool addtohistory)
EM::RowColSurfaceGeometry::rowRange
StepInterval< int > rowRange() const
EM::SectionID
od_int16 SectionID
Definition: emposid.h:24
EM::RowColSurfaceGeometry::colRange
StepInterval< int > colRange() const
bufstringset.h
EM::SurfaceGeometry
Surface geometry.
Definition: emsurfacegeometry.h:41
TopList
Is a class that holds a "top N" list with the N highest (or lowest) values that is added....
Definition: houghtransform.h:22
EM::SurfaceGeometry::hasSection
bool hasSection(const SectionID &) const
EM::SurfaceGeometry::sections_
ObjectSet< Geometry::Element > sections_
Definition: emsurfacegeometry.h:110
EM::SurfaceGeometry::resetChangedFlag
void resetChangedFlag()
Definition: emsurfacegeometry.h:75
EM::RowColSurfaceGeometry::RowColSurfaceGeometry
RowColSurfaceGeometry(Surface &)
EM::SurfaceGeometry::~SurfaceGeometry
virtual ~SurfaceGeometry()
RowCol
IdxPair used for its row() and col().
Definition: rowcol.h:25
Interval< float >
EM::RowColSurfaceGeometry
RowCol SurfaceGeometry.
Definition: emsurfacegeometry.h:124
EM::SurfaceGeometry::removeSection
virtual bool removeSection(const SectionID &, bool addtohistory)
EM::SurfaceGeometry::removeAll
virtual void removeAll()
EM::SurfaceGeometry::saver
virtual Executor * saver(const SurfaceIODataSelection *s=0, const MultiID *key=0)
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
EM::PosID
Is an identifier for each position in the earthmodel.
Definition: emposid.h:37
EM::SurfaceGeometry::getLinkedPos
virtual void getLinkedPos(const PosID &posid, TypeSet< PosID > &) const
TypeSet
Sets of (small) copyable elements.
Definition: commontypes.h:29

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