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

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