OpendTect-6_4  6.4
empolygonbody.h
Go to the documentation of this file.
1 #ifndef empolygonbody_h
2 #define empolygonbody_h
3 
4 /*+
5 ________________________________________________________________________
6 
7  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
8  Author: Yuancheng Liu
9  Date: July 2008
10  RCS: $Id$
11 ________________________________________________________________________
12 
13 
14 -*/
15 
16 
17 #include "earthmodelmod.h"
18 #include "embody.h"
19 #include "emsurface.h"
20 #include "emsurfacegeometry.h"
21 #include "polygonsurface.h"
22 #include "tableascio.h"
23 
24 namespace Table { class FormatDesc; }
25 template <class T> class SortedList;
26 
27 namespace EM
28 {
29 class PolygonBody;
30 
37 public:
40 
41  int nrPolygons(const SectionID&) const;
42  int nrKnots(const SectionID&,int polygonnr) const;
43  bool insertPolygon(const SectionID&,int polygonnr,
44  int firstknot,const Coord3& pos,
45  const Coord3& editnormal,
46  bool addtohistory);
47  bool removePolygon(const SectionID&,int polygonnr,
48  bool addtohistory);
49  bool insertKnot(const SectionID&,const SubID&,
50  const Coord3& pos,bool addtohistory);
51  bool removeKnot(const SectionID&,const SubID&,
52  bool addtohistory);
53  const Coord3& getPolygonNormal(const SectionID&,int polygon) const;
54 
56  sectionGeometry(const SectionID&);
58  sectionGeometry(const SectionID&) const;
59 
60  EMObjectIterator* createIterator(const SectionID&,
61  const TrcKeyZSampling* =0) const;
62 
63  Executor* loader(const SurfaceIODataSelection* s=0);
64  Executor* saver(const SurfaceIODataSelection* s=0,
65  const MultiID* key=0);
66 
67  void fillPar(IOPar&) const;
68  bool usePar(const IOPar&);
69 
70 protected:
71  Geometry::PolygonSurface* createSectionGeometry() const;
72 };
73 
74 
79 mExpClass(EarthModel) PolygonBody : public Surface, public Body
81 public:
82  PolygonBodyGeometry& geometry();
83  const PolygonBodyGeometry& geometry() const;
84 
85  const char* type() const { return typeStr(); }
86  virtual Executor* loader();
87  virtual Executor* saver();
88  virtual Executor* saver(IOObj*);
89 
90  ImplicitBody* createImplicitBody(TaskRunner*,bool) const;
91  bool getBodyRange(TrcKeyZSampling&);
92 
93  MultiID storageID() const;
94  BufferString storageName() const;
95 
96  void refBody();
97  void unRefBody();
98 
99  bool useBodyPar(const IOPar&);
100  void fillBodyPar(IOPar&) const;
101 
103  { return tr("Polygon Body"); }
104 
105 protected:
106  const IOObjContext& getIOObjContext() const;
107 
108 
109  friend class EMManager;
110  friend class EMObject;
112 };
113 
114 } // namespace EM
115 
116 #endif
od_int16 SectionID
Definition: emposid.h:25
#define mExpClass(module)
Definition: commondefs.h:160
Definition: ioobj.h:58
#define mODTextTranslationClass(clss)
Definition: uistring.h:38
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:188
Definition: uistring.h:89
const char * type() const
Definition: empolygonbody.h:85
od_int64 SubID
Definition: emposid.h:26
PolygonBodyGeometry geometry_
Definition: empolygonbody.h:111
Iterator that iterates a number of positions (normally all) on an EMObject. The object is created by ...
Definition: emobject.h:122
#define mDefineEMObjFuncs(clss)
Definition: emobject.h:373
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:47
Definition: geom2dascio.h:21
uiString getUserTypeStr() const
Definition: empolygonbody.h:102
Class that can execute a task.
Definition: task.h:169
A Surface polygon Body.
Definition: empolygonbody.h:79
Manages the loaded/half loaded EM objects in OpendTect.
Definition: emmanager.h:46
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:35
Surface geometry.
Definition: emsurfacegeometry.h:41
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:175
A cartesian coordinate in 3D space.
Definition: coord.h:72
A body that can deliver an implicit body.
Definition: embody.h:50
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:40
Base class for all EarthModel objects.
Definition: emobject.h:158
A SortedList is a list where all objects are stored in ascending order. The objects should be capable...
Definition: sortedlist.h:29
Base class for surfaces like horizons and faults. A surface is made up of one or more segments or pat...
Definition: emsurface.h:33
Earth Model objects like horizons, faults, fault-sticks and bodies.
Definition: embody.h:25
Implicit representation of a body.
Definition: embody.h:32
Definition: polygonsurface.h:26
Surface I/O data selection.
Definition: emsurfaceiodata.h:62
IOObjContext * getIOObjContext(Seis::GeomType, bool forread)
PolygonBody SurfaceGeometry.
Definition: empolygonbody.h:35
Compound key consisting of ints.
Definition: multiid.h:25
Specification to enable chunkwise execution of a process.
Definition: executor.h:39
Holds the context for selecting and/or creating IOObjs.
Definition: ctxtioobj.h:62

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