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

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