OpendTect  6.3
emmarchingcubessurface.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 "emobject.h"
16 #include "embody.h"
17 #include "samplingdata.h"
18 
20 
21 namespace EM
22 {
23 
24 class BodyOperator;
25 
30 mExpClass(EarthModel) MarchingCubesSurface : public Body, public EMObject
33 public:
34 
35  const char* type() const { return typeStr(); }
36  virtual int nrSections() const { return 1; }
37  virtual SectionID sectionID(int) const { return 0; }
38  virtual bool canSetSectionName() const { return false;}
39 
42  { return 0; }
43  virtual Executor* loader();
44  virtual Executor* saver();
45  virtual Executor* saver(IOObj*);
46  virtual bool isEmpty() const;
47 
48  const IOObjContext& getIOObjContext() const;
49 
50  ::MarchingCubesSurface& surface() { return *mcsurface_; }
51  const ::MarchingCubesSurface& surface() const { return *mcsurface_; }
52  bool setSurface(::MarchingCubesSurface*);
53 
54  const SamplingData<int>& inlSampling() const { return inlsampling_; }
55  const SamplingData<int>& crlSampling() const { return crlsampling_; }
56  const SamplingData<float>& zSampling() const { return zsampling_; }
57  void setInlSampling(const SamplingData<int>&);
58  void setCrlSampling(const SamplingData<int>&);
59  void setZSampling(const SamplingData<float>&);
60 
61  ImplicitBody* createImplicitBody(TaskRunner*,bool) const;
62  bool getBodyRange(TrcKeyZSampling& cs);
63 
64  void refBody();
65  void unRefBody();
66  DBKey storageID() const;
67  BufferString storageName() const;
68 
69  EM::BodyOperator* getBodyOperator() const { return operator_; }
70  void createBodyOperator();
71  void setBodyOperator(EM::BodyOperator*);
72  /*<Set operator only, to use it, call
73  regenerateMCBody() to update the surface.*/
74  bool regenerateMCBody(TaskRunner* tskr=0);
75 
76  bool useBodyPar(const IOPar&);
77  void fillBodyPar(IOPar&) const;
78 
80  { return tr("Marching Cubes Body"); }
81 
82 protected:
83 
89 };
90 
91 } // namespace EM
od_int16 SectionID
Definition: emposid.h:23
#define mExpClass(module)
Definition: commondefs.h:157
Definition: ioobj.h:57
const SamplingData< int > & inlSampling() const
Definition: emmarchingcubessurface.h:54
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
const SamplingData< float > & zSampling() const
Definition: emmarchingcubessurface.h:56
const SamplingData< int > & crlSampling() const
Definition: emmarchingcubessurface.h:55
uiString getUserTypeStr() const
Definition: emmarchingcubessurface.h:79
EM::BodyOperator * getBodyOperator() const
Definition: emmarchingcubessurface.h:69
Definition: uistring.h:88
Geometry::Element * sectionGeometry(const SectionID &)
Definition: emmarchingcubessurface.h:40
Marching cubes surface.
Definition: emmarchingcubessurface.h:30
::MarchingCubesSurface & surface()
Definition: emmarchingcubessurface.h:50
const Geometry::Element * sectionGeometry(const SectionID &) const
Definition: emmarchingcubessurface.h:41
Operators for implicit body. Each BodyOperator has two children, either a Body or a BodyOperator...
Definition: embodyoperator.h:39
virtual bool canSetSectionName() const
Definition: emmarchingcubessurface.h:38
Definition: marchingcubes.h:80
#define mDefineEMObjFuncs(clss)
Definition: emobject.h:344
const char * type() const
Definition: emmarchingcubessurface.h:35
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
Class that can execute a task.
Definition: task.h:193
SamplingData< int > inlsampling_
Definition: emmarchingcubessurface.h:84
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:32
SamplingData< float > zsampling_
Definition: emmarchingcubessurface.h:86
EM::BodyOperator * operator_
Definition: emmarchingcubessurface.h:88
virtual int nrSections() const
Definition: emmarchingcubessurface.h:36
virtual SectionID sectionID(int) const
Definition: emmarchingcubessurface.h:37
Definition: geomelement.h:35
A body that can deliver an implicit body.
Definition: embody.h:48
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
bool isEmpty(const char *)
const ::MarchingCubesSurface & surface() const
Definition: emmarchingcubessurface.h:51
Base class for all EarthModel objects.
Definition: emobject.h:117
::MarchingCubesSurface * mcsurface_
Definition: emmarchingcubessurface.h:87
SamplingData< int > crlsampling_
Definition: emmarchingcubessurface.h:85
Earth Model objects like horizons, faults, fault-sticks and bodies.
Definition: embody.h:23
Implicit representation of a body.
Definition: embody.h:30
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
IOObjContext * getIOObjContext(Seis::GeomType, bool forread)
Specification to enable chunkwise execution of a process.
Definition: executor.h:38
Holds the context for selecting and/or creating IOObjs.
Definition: ioobjctxt.h:59

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