OpendTect  6.6
volprocbodyfiller.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: Yuancheng Liu
8  Date: November 2007
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 
13 -*/
14 
15 #include "volumeprocessingmod.h"
16 #include "volprocstep.h"
17 
18 #include "arrayndimpl.h"
19 #include "coord.h"
20 #include "multiid.h"
21 #include "trckeyzsampling.h"
22 
23 namespace EM { class EMObject; class Body; class ImplicitBody; }
24 template <class T> class ODPolygon;
25 
26 namespace VolProc
27 {
28 
31 mExpClass(VolumeProcessing) BodyFiller : public Step
33 public:
36  tr("Body shape painter") );
37 
40 
41  bool needsInput() const { return false;}
42  bool isInputPrevStep() const { return true; }
43  bool areSamplesIndependent() const { return true; }
44 
45  void fillPar(IOPar&) const;
46  bool usePar(const IOPar&);
47 
48  void releaseData();
49  bool canInputAndOutputBeSame() const { return true; }
50  bool needsFullVolume() const { return false;}
51 
52  enum ValueType { Constant, PrevStep, Undefined };
53 
58 
59  void setInsideValue(float);
60  float getInsideValue() const;
61  void setOutsideValue(float);
62  float getOutsideValue() const;
63 
64  bool setSurface(const MultiID&);
65  MultiID getSurfaceID() { return mid_; }
67 
68  static const char* sKeyOldType();
69 
70  /* mDeprecated (this function will be protected virtual after 6.0) */
72  const StepInterval<int>&) const;
73 
74 protected:
75 
76  bool prefersBinIDWise() const { return true; }
77  bool prepareComp(int nrthreads) { return true; }
78  bool computeBinID(const BinID&,int);
79  bool getFlatPlgZRange(const BinID&,
80  Interval<double>& result);
81 
86 
89  float insideval_;
90  float outsideval_;
91 
92  //For flat body_ only, no implicitbody_.
96  char plgdir_;
97  /* inline=0; crosline=1; z=2; other=3 */
98  double epsilon_;
100 
101  static const char* sKeyOldMultiID();
102  static const char* sKeyOldInsideOutsideValue();
103 
104  static const char* sKeyMultiID();
105  static const char* sKeyInsideType();
106  static const char* sKeyOutsideType();
107  static const char* sKeyInsideValue();
108  static const char* sKeyOutsideValue();
109 
110 };
111 
112 } // namespace VolProc
113 
VolProc::BodyFiller::needsInput
bool needsInput() const
Definition: volprocbodyfiller.h:41
VolProc::BodyFiller::sKeyInsideValue
static const char * sKeyInsideValue()
TrcKeySampling
Horizontal sampling (inline and crossline range and steps).
Definition: trckeysampling.h:35
VolProc::BodyFiller::mid_
MultiID mid_
Definition: volprocbodyfiller.h:85
VolProc::BodyFiller::sKeyOldInsideOutsideValue
static const char * sKeyOldInsideOutsideValue()
ODPolygon
(Closed) sequence of connected 2-D coordinates.
Definition: polygon.h:27
VolProc
Adapter for a VolProc chain to external attribute calculation.
Definition: seisdatapackwriter.h:24
VolProc::BodyFiller::plgknots_
TypeSet< Coord3 > plgknots_
Definition: volprocbodyfiller.h:94
VolProc::BodyFiller::releaseData
void releaseData()
VolProc::BodyFiller::needsFullVolume
bool needsFullVolume() const
Definition: volprocbodyfiller.h:50
VolProc::BodyFiller::getInsideValue
float getInsideValue() const
VolProc::BodyFiller::body_
EM::Body * body_
Definition: volprocbodyfiller.h:82
VolProc::BodyFiller::usePar
bool usePar(const IOPar &)
VolProc::BodyFiller::setInsideValueType
void setInsideValueType(ValueType)
od_int64
#define od_int64
Definition: plftypes.h:35
VolProc::BodyFiller::mODTextTranslationClass
mODTextTranslationClass(BodyFiller)
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
VolProc::BodyFiller::setOutsideValueType
void setOutsideValueType(ValueType)
VolProc::BodyFiller::sKeyInsideType
static const char * sKeyInsideType()
VolProc::BodyFiller::~BodyFiller
~BodyFiller()
VolProc::BodyFiller::sKeyOutsideType
static const char * sKeyOutsideType()
VolProc::BodyFiller::sKeyOldType
static const char * sKeyOldType()
VolProc::BodyFiller::computeBinID
bool computeBinID(const BinID &, int)
VolProc::BodyFiller::getInsideValueType
ValueType getInsideValueType() const
EM
Earth Model objects like horizons, faults, fault-sticks and bodies.
Definition: bulk2dhorizonscanner.h:26
VolProc::BodyFiller::areSamplesIndependent
bool areSamplesIndependent() const
Definition: volprocbodyfiller.h:43
arrayndimpl.h
EM::Body
A body that can deliver an implicit body.
Definition: embody.h:50
VolProc::BodyFiller::sKeyOutsideValue
static const char * sKeyOutsideValue()
TrcKeyZSampling
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:35
VolProc::BodyFiller::implicitbody_
EM::ImplicitBody * implicitbody_
Definition: volprocbodyfiller.h:84
VolProc::BodyFiller::prefersBinIDWise
bool prefersBinIDWise() const
Definition: volprocbodyfiller.h:76
VolProc::BodyFiller::canInputAndOutputBeSame
bool canInputAndOutputBeSame() const
Definition: volprocbodyfiller.h:49
multiid.h
BinID
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:31
StepInterval< int >
VolProc::BodyFiller::plgbids_
TypeSet< Coord3 > plgbids_
Definition: volprocbodyfiller.h:95
VolProc::BodyFiller::getFlatPlgZRange
bool getFlatPlgZRange(const BinID &, Interval< double > &result)
VolProc::BodyFiller::emobj_
EM::EMObject * emobj_
Definition: volprocbodyfiller.h:83
Task
Generalization of something (e.g. a computation) that needs to be done in multiple steps.
Definition: task.h:28
trckeyzsampling.h
VolProc::BodyFiller::ValueType
ValueType
Definition: volprocbodyfiller.h:52
VolProc::BodyFiller::sKeyMultiID
static const char * sKeyMultiID()
EM::ImplicitBody
Implicit representation of a body.
Definition: embody.h:32
VolProc::BodyFiller
Body filler.
Definition: volprocbodyfiller.h:32
VolProc::BodyFiller::BodyFiller
BodyFiller()
VolProc::BodyFiller::getOutsideValueType
ValueType getOutsideValueType() const
VolProc::Step
An algorithm/calculation/transformation that takes one scalar volume as input, processes it,...
Definition: volprocstep.h:42
VolProc::BodyFiller::getOutsideValue
float getOutsideValue() const
MultiID
Compound key consisting of ints.
Definition: multiid.h:24
VolProc::BodyFiller::prepareComp
bool prepareComp(int nrthreads)
Definition: volprocbodyfiller.h:77
VolProc::BodyFiller::outsidevaltype_
ValueType outsidevaltype_
Definition: volprocbodyfiller.h:88
VolProc::BodyFiller::fillPar
void fillPar(IOPar &) const
VolProc::BodyFiller::epsilon_
double epsilon_
Definition: volprocbodyfiller.h:98
VolProc::BodyFiller::outsideval_
float outsideval_
Definition: volprocbodyfiller.h:90
VolProc::BodyFiller::insideval_
float insideval_
Definition: volprocbodyfiller.h:89
VolProc::BodyFiller::setOutsideValue
void setOutsideValue(float)
volprocstep.h
VolProc::BodyFiller::setSurface
bool setSurface(const MultiID &)
VolProc::BodyFiller::setInsideValue
void setInsideValue(float)
VolProc::BodyFiller::insidevaltype_
ValueType insidevaltype_
Definition: volprocbodyfiller.h:87
VolProc::BodyFiller::sKeyOldMultiID
static const char * sKeyOldMultiID()
EM::EMObject
Base class for all EarthModel objects.
Definition: emobject.h:159
VolProc::Step::OutputSlotID
int OutputSlotID
Definition: volprocstep.h:46
Interval< double >
VolProc::BodyFiller::flatpolygon_
TrcKeyZSampling flatpolygon_
Definition: volprocbodyfiller.h:93
VolProc::BodyFiller::isInputPrevStep
bool isInputPrevStep() const
Definition: volprocbodyfiller.h:42
sKey::Body
FixedString Body()
Definition: keystrs.h:42
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
VolProc::BodyFiller::mDefaultFactoryInstanciationBase
mDefaultFactoryInstanciationBase("BodyFiller", tr("Body shape painter"))
VolProc::BodyFiller::plgdir_
char plgdir_
Definition: volprocbodyfiller.h:96
VolProc::BodyFiller::mDefaultFactoryCreatorImpl
mDefaultFactoryCreatorImpl(VolProc::Step, BodyFiller)
VolProc::BodyFiller::getSurfaceID
MultiID getSurfaceID()
Definition: volprocbodyfiller.h:65
TypeSet< Coord3 >
VolProc::BodyFiller::extraMemoryUsage
od_int64 extraMemoryUsage(OutputSlotID, const TrcKeySampling &, const StepInterval< int > &) const
VolProc::BodyFiller::polygon_
ODPolygon< double > * polygon_
Definition: volprocbodyfiller.h:99
coord.h
VolProc::BodyFiller::createTask
Task * createTask()

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