OpendTect  6.6
volprocsurfacelimitedfiller.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: Y.C. Liu
8  Date: April 2010
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "volumeprocessingmod.h"
15 #include "volprocstep.h"
16 #include "multiid.h"
17 
18 namespace Geometry { class FaultStickSurface; }
19 namespace EM { class Fault; class Horizon; class Horizon3D; }
20 
21 namespace VolProc
22 {
23 
33 mExpClass(VolumeProcessing) SurfaceLimitedFiller : public Step
35 public:
37  mDefaultFactoryInstanciationBase( "SurfaceLimitedFiller",
38  tr("Horizon-based painter - Advanced") );
39 
42 
43  bool isOK() const;
44 
45  bool needsInput() const { return false; }
46  bool isInputPrevStep() const { return true; }
47 
49  const TypeSet<char>& fillside);
50  /*Assume going down increases z.
51  For horizons, side = 1 if go below, -1 if go above.*/
52 
53  int nrOfSurfaces() const {return side_.size();}
54  char getSurfaceFillSide(int idx) const{ return side_[idx]; }
55  const MultiID* getSurfaceID(int idx) const;
56 
57  //Start value/grid stuff
58  bool usesStartValue() const { return usestartval_; }
59  void useStartValue(bool yn) { usestartval_ = yn; }
60 
61  float getStartValue() const { return fixedstartval_; }
62  void setStartValue(float vel) { fixedstartval_ = vel; }
63 
66  int getStartAuxdataIdx() const {return startauxdataselidx_;}
67  void setStartAuxdataIdx(int i) { startauxdataselidx_ = i; }
68 
69  //Gradient value/grid stuff
70  bool usesGradientValue() const { return usegradient_; }
71  void useGradientValue(bool yn) { usegradient_ = yn; }
72 
73  bool isGradientVertical() const { return gradvertical_; }
74  void setGradientVertical(bool yn){ gradvertical_ = yn; }
75 
76  float getGradient() const { return fixedgradient_; }
77  void setGradient(float grd) { fixedgradient_ = grd; }
78 
80  const MultiID* getGradientHorizonID() const;
81  int getGradAuxdataIdx() { return gradauxdataselidx_; }
82  void setGradAuxdataIdx(int i){ gradauxdataselidx_ = i; }
83 
84  //Reference horizon/z stuff
85  bool usesRefZValue() const { return userefz_; }
86  void useRefZValue(bool yn) { userefz_ = yn; }
87 
88  void setRefZValue(float zv) { refz_ = zv; }
89  float getRefZValue() const { return refz_; }
90 
91  bool setRefHorizon(const MultiID*);
92  const MultiID* getRefHorizonID() const;
93 
94  void fillPar(IOPar&) const;
95  bool usePar(const IOPar&);
97  virtual uiString errMsg() const { return errmsg_; }
98 
99  void releaseData();
100  bool canInputAndOutputBeSame() const { return true; }
101  bool needsFullVolume() const { return false; }
102  bool canHandle2D() const { return false; }
103 
104  /* mDeprecated (this function will be protected virtual after 6.0) */
106  const StepInterval<int>&) const;
107 
108  virtual bool areSamplesIndependent() const { return true; }
109 
110 protected:
111 
112  bool prepareComp(int);
113  bool computeBinID(const BinID&, int);
117  int auxdataidx) const;
118  bool prefersBinIDWise() const { return true; }
119 
120  static const char* sKeySurfaceID() { return "Surface MID"; }
121  static const char* sKeySurfaceFillSide() { return "Surface fill side"; }
122  static const char* sKeyNrSurfaces() { return "Nr of surfaces"; }
123 
124  static const char* sKeyUseStartValue() { return "Use start value"; }
125  static const char* sKeyStartValue() { return "Start value"; }
126  static const char* sKeyStartValHorID() { return "Start value horizon"; }
127  static const char* sKeyStartAuxDataID(){ return "Start auxdata id"; }
128 
129  static const char* sKeyUseGradValue() { return "Use gradient value"; }
130  static const char* sKeyGradValue() { return "Gradient value"; }
131  static const char* sKeyGradHorID() { return "Gradient horizon"; }
132  static const char* sKeyGradAuxDataID() { return "Gradient auxdata id"; }
133  static const char* sKeyGradType() { return "Gradient type"; }
134 
135  static const char* sKeyRefHorID() { return "Reference horizon"; }
136  static const char* sKeyRefZ() { return "Reference z"; }
137  static const char* sKeyUseRefZ() { return "Use reference z"; }
138 
146 
153 
156  float refz_;
157  bool userefz_;
158 
159  /*The following four have the same size, for any idx,
160  faults_[idx] or hors_[idx] is 0. */
165 
167  double valrange_;
168 };
169 
170 } // namespace VolProc
171 
VolProc::SurfaceLimitedFiller::mDefaultFactoryCreatorImpl
mDefaultFactoryCreatorImpl(Step, SurfaceLimitedFiller)
VolProc::SurfaceLimitedFiller::sKeyGradValue
static const char * sKeyGradValue()
Definition: volprocsurfacelimitedfiller.h:130
TrcKeySampling
Horizontal sampling (inline and crossline range and steps).
Definition: trckeysampling.h:35
VolProc::SurfaceLimitedFiller::needsInput
bool needsInput() const
Definition: volprocsurfacelimitedfiller.h:45
VolProc
Adapter for a VolProc chain to external attribute calculation.
Definition: seisdatapackwriter.h:24
VolProc::SurfaceLimitedFiller::setStartAuxdataIdx
void setStartAuxdataIdx(int i)
Definition: volprocsurfacelimitedfiller.h:67
VolProc::SurfaceLimitedFiller::setGradientHorizon
bool setGradientHorizon(const MultiID *)
VolProc::SurfaceLimitedFiller::starthormid_
MultiID starthormid_
Definition: volprocsurfacelimitedfiller.h:147
VolProc::SurfaceLimitedFiller::isOK
bool isOK() const
VolProc::SurfaceLimitedFiller::userefz_
bool userefz_
Definition: volprocsurfacelimitedfiller.h:157
VolProc::SurfaceLimitedFiller::sKeyUseRefZ
static const char * sKeyUseRefZ()
Definition: volprocsurfacelimitedfiller.h:137
VolProc::SurfaceLimitedFiller::sKeyRefZ
static const char * sKeyRefZ()
Definition: volprocsurfacelimitedfiller.h:136
ObjectSet< EM::Horizon >
VolProc::SurfaceLimitedFiller::canInputAndOutputBeSame
bool canInputAndOutputBeSame() const
Definition: volprocsurfacelimitedfiller.h:100
VolProc::SurfaceLimitedFiller::getSurfaceID
const MultiID * getSurfaceID(int idx) const
VolProc::SurfaceLimitedFiller::useStartValue
void useStartValue(bool yn)
Definition: volprocsurfacelimitedfiller.h:59
VolProc::SurfaceLimitedFiller::starthorizon_
EM::Horizon3D * starthorizon_
Definition: volprocsurfacelimitedfiller.h:148
VolProc::SurfaceLimitedFiller::gradhormid_
MultiID gradhormid_
Definition: volprocsurfacelimitedfiller.h:139
Geometry
Definition: arraytesselator.h:21
VolProc::SurfaceLimitedFiller::prepareComp
bool prepareComp(int)
od_int64
#define od_int64
Definition: plftypes.h:35
VolProc::SurfaceLimitedFiller::getSurfaceFillSide
char getSurfaceFillSide(int idx) const
Definition: volprocsurfacelimitedfiller.h:54
VolProc::SurfaceLimitedFiller::setStartValue
void setStartValue(float vel)
Definition: volprocsurfacelimitedfiller.h:62
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
VolProc::SurfaceLimitedFiller::canHandle2D
bool canHandle2D() const
Definition: volprocsurfacelimitedfiller.h:102
VolProc::SurfaceLimitedFiller::gradhorizon_
EM::Horizon3D * gradhorizon_
Definition: volprocsurfacelimitedfiller.h:140
VolProc::SurfaceLimitedFiller::setGradientVertical
void setGradientVertical(bool yn)
Definition: volprocsurfacelimitedfiller.h:74
VolProc::SurfaceLimitedFiller::setGradAuxdataIdx
void setGradAuxdataIdx(int i)
Definition: volprocsurfacelimitedfiller.h:82
VolProc::SurfaceLimitedFiller::refz_
float refz_
Definition: volprocsurfacelimitedfiller.h:156
VolProc::SurfaceLimitedFiller::isGradientVertical
bool isGradientVertical() const
Definition: volprocsurfacelimitedfiller.h:73
VolProc::SurfaceLimitedFiller::sKeyUseGradValue
static const char * sKeyUseGradValue()
Definition: volprocsurfacelimitedfiller.h:129
VolProc::SurfaceLimitedFiller::sKeySurfaceID
static const char * sKeySurfaceID()
Definition: volprocsurfacelimitedfiller.h:120
VolProc::SurfaceLimitedFiller::errMsg
virtual uiString errMsg() const
Definition: volprocsurfacelimitedfiller.h:97
VolProc::SurfaceLimitedFiller::sKeyStartAuxDataID
static const char * sKeyStartAuxDataID()
Definition: volprocsurfacelimitedfiller.h:127
VolProc::SurfaceLimitedFiller::gradvertical_
bool gradvertical_
Definition: volprocsurfacelimitedfiller.h:145
sKey::Fault
FixedString Fault()
Definition: keystrs.h:66
sKey::Horizon
FixedString Horizon()
Definition: keystrs.h:77
VolProc::SurfaceLimitedFiller::prefersBinIDWise
bool prefersBinIDWise() const
Definition: volprocsurfacelimitedfiller.h:118
VolProc::SurfaceLimitedFiller::extraMemoryUsage
od_int64 extraMemoryUsage(OutputSlotID, const TrcKeySampling &, const StepInterval< int > &) const
EM
Earth Model objects like horizons, faults, fault-sticks and bodies.
Definition: bulk2dhorizonscanner.h:26
VolProc::SurfaceLimitedFiller::fixedgradient_
float fixedgradient_
Definition: volprocsurfacelimitedfiller.h:143
VolProc::SurfaceLimitedFiller::setDataHorizon
int setDataHorizon(const MultiID &, EM::Horizon3D *&, int auxdataidx) const
VolProc::SurfaceLimitedFiller::sKeyGradHorID
static const char * sKeyGradHorID()
Definition: volprocsurfacelimitedfiller.h:131
VolProc::SurfaceLimitedFiller::loadHorizon
EM::Horizon * loadHorizon(const MultiID &) const
VolProc::SurfaceLimitedFiller::side_
TypeSet< char > side_
Definition: volprocsurfacelimitedfiller.h:161
VolProc::SurfaceLimitedFiller::setStartValueHorizon
bool setStartValueHorizon(const MultiID *)
VolProc::SurfaceLimitedFiller::getRefHorizonID
const MultiID * getRefHorizonID() const
multiid.h
BinID
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:31
StepInterval< int >
VolProc::SurfaceLimitedFiller::releaseData
void releaseData()
VolProc::SurfaceLimitedFiller::mODTextTranslationClass
mODTextTranslationClass(SurfaceLimitedFiller)
VolProc::SurfaceLimitedFiller::fixedstartval_
float fixedstartval_
Definition: volprocsurfacelimitedfiller.h:151
VolProc::SurfaceLimitedFiller::sKeyStartValue
static const char * sKeyStartValue()
Definition: volprocsurfacelimitedfiller.h:125
VolProc::SurfaceLimitedFiller::setGradient
void setGradient(float grd)
Definition: volprocsurfacelimitedfiller.h:77
EM::Horizon
Horizon Surface.
Definition: emhorizon.h:47
VolProc::SurfaceLimitedFiller::nrOfSurfaces
int nrOfSurfaces() const
Definition: volprocsurfacelimitedfiller.h:53
VolProc::SurfaceLimitedFiller::refhorizon_
EM::Horizon * refhorizon_
Definition: volprocsurfacelimitedfiller.h:155
VolProc::SurfaceLimitedFiller::setRefHorizon
bool setRefHorizon(const MultiID *)
VolProc::SurfaceLimitedFiller::fillPar
void fillPar(IOPar &) const
VolProc::SurfaceLimitedFiller::~SurfaceLimitedFiller
~SurfaceLimitedFiller()
VolProc::SurfaceLimitedFiller::setRefZValue
void setRefZValue(float zv)
Definition: volprocsurfacelimitedfiller.h:88
VolProc::SurfaceLimitedFiller::hors_
ObjectSet< EM::Horizon > hors_
Definition: volprocsurfacelimitedfiller.h:163
VolProc::SurfaceLimitedFiller::gradauxdataselidx_
int gradauxdataselidx_
Definition: volprocsurfacelimitedfiller.h:141
VolProc::SurfaceLimitedFiller::sKeyGradType
static const char * sKeyGradType()
Definition: volprocsurfacelimitedfiller.h:133
VolProc::SurfaceLimitedFiller::isInputPrevStep
bool isInputPrevStep() const
Definition: volprocsurfacelimitedfiller.h:46
VolProc::SurfaceLimitedFiller::getStartValueHorizonID
const MultiID * getStartValueHorizonID() const
VolProc::SurfaceLimitedFiller::startauxidx_
int startauxidx_
Definition: volprocsurfacelimitedfiller.h:150
VolProc::SurfaceLimitedFiller::usesGradientValue
bool usesGradientValue() const
Definition: volprocsurfacelimitedfiller.h:70
VolProc::SurfaceLimitedFiller::useRefZValue
void useRefZValue(bool yn)
Definition: volprocsurfacelimitedfiller.h:86
VolProc::Step
An algorithm/calculation/transformation that takes one scalar volume as input, processes it,...
Definition: volprocstep.h:42
VolProc::SurfaceLimitedFiller::sKeyGradAuxDataID
static const char * sKeyGradAuxDataID()
Definition: volprocsurfacelimitedfiller.h:132
VolProc::SurfaceLimitedFiller::needsFullVolume
bool needsFullVolume() const
Definition: volprocsurfacelimitedfiller.h:101
MultiID
Compound key consisting of ints.
Definition: multiid.h:24
VolProc::SurfaceLimitedFiller::sKeySurfaceFillSide
static const char * sKeySurfaceFillSide()
Definition: volprocsurfacelimitedfiller.h:121
VolProc::SurfaceLimitedFiller::usesRefZValue
bool usesRefZValue() const
Definition: volprocsurfacelimitedfiller.h:85
VolProc::SurfaceLimitedFiller::usePar
bool usePar(const IOPar &)
VolProc::SurfaceLimitedFiller::valrange_
double valrange_
Definition: volprocsurfacelimitedfiller.h:167
VolProc::SurfaceLimitedFiller::sKeyUseStartValue
static const char * sKeyUseStartValue()
Definition: volprocsurfacelimitedfiller.h:124
VolProc::SurfaceLimitedFiller::sKeyNrSurfaces
static const char * sKeyNrSurfaces()
Definition: volprocsurfacelimitedfiller.h:122
VolProc::SurfaceLimitedFiller::areSamplesIndependent
virtual bool areSamplesIndependent() const
Definition: volprocsurfacelimitedfiller.h:108
VolProc::SurfaceLimitedFiller::getStartAuxdataIdx
int getStartAuxdataIdx() const
Definition: volprocsurfacelimitedfiller.h:66
VolProc::SurfaceLimitedFiller::useGradientValue
void useGradientValue(bool yn)
Definition: volprocsurfacelimitedfiller.h:71
VolProc::SurfaceLimitedFiller::sKeyRefHorID
static const char * sKeyRefHorID()
Definition: volprocsurfacelimitedfiller.h:135
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
VolProc::SurfaceLimitedFiller::startauxdataselidx_
int startauxdataselidx_
Definition: volprocsurfacelimitedfiller.h:149
VolProc::SurfaceLimitedFiller::SurfaceLimitedFiller
SurfaceLimitedFiller()
MPE::errmsg_
BufferString errmsg_
Definition: horizontracker.h:118
VolProc::SurfaceLimitedFiller::getStartValue
float getStartValue() const
Definition: volprocsurfacelimitedfiller.h:61
VolProc::SurfaceLimitedFiller::usesStartValue
bool usesStartValue() const
Definition: volprocsurfacelimitedfiller.h:58
VolProc::SurfaceLimitedFiller::computeBinID
bool computeBinID(const BinID &, int)
VolProc::SurfaceLimitedFiller::surfacelist_
TypeSet< MultiID > surfacelist_
Definition: volprocsurfacelimitedfiller.h:162
VolProc::SurfaceLimitedFiller::getGradientHorizonID
const MultiID * getGradientHorizonID() const
volprocstep.h
VolProc::SurfaceLimitedFiller::sKeyStartValHorID
static const char * sKeyStartValHorID()
Definition: volprocsurfacelimitedfiller.h:126
VolProc::SurfaceLimitedFiller::usestartval_
bool usestartval_
Definition: volprocsurfacelimitedfiller.h:152
VolProc::SurfaceLimitedFiller::getGradAuxdataIdx
int getGradAuxdataIdx()
Definition: volprocsurfacelimitedfiller.h:81
VolProc::SurfaceLimitedFiller::getGradient
float getGradient() const
Definition: volprocsurfacelimitedfiller.h:76
VolProc::SurfaceLimitedFiller::useHorInterFillerPar
bool useHorInterFillerPar(const IOPar &)
VolProc::Step::OutputSlotID
int OutputSlotID
Definition: volprocstep.h:46
VolProc::SurfaceLimitedFiller::gradauxidx_
int gradauxidx_
Definition: volprocsurfacelimitedfiller.h:142
VolProc::SurfaceLimitedFiller::usebottomval_
bool usebottomval_
Definition: volprocsurfacelimitedfiller.h:166
VolProc::SurfaceLimitedFiller::getRefZValue
float getRefZValue() const
Definition: volprocsurfacelimitedfiller.h:89
VolProc::SurfaceLimitedFiller::mDefaultFactoryInstanciationBase
mDefaultFactoryInstanciationBase("SurfaceLimitedFiller", tr("Horizon-based painter - Advanced"))
VolProc::SurfaceLimitedFiller::faults_
ObjectSet< Geometry::FaultStickSurface > faults_
Definition: volprocsurfacelimitedfiller.h:164
VolProc::SurfaceLimitedFiller::setSurfaces
bool setSurfaces(const TypeSet< MultiID > &, const TypeSet< char > &fillside)
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
EM::Horizon3D
3D Horizon. A Horizon is made up of one or more grids (so they can overlap at faults)....
Definition: emhorizon3d.h:96
VolProc::SurfaceLimitedFiller::usegradient_
bool usegradient_
Definition: volprocsurfacelimitedfiller.h:144
VolProc::SurfaceLimitedFiller::refhormid_
MultiID refhormid_
Definition: volprocsurfacelimitedfiller.h:154
VolProc::SurfaceLimitedFiller
Definition: volprocsurfacelimitedfiller.h:34
TypeSet< MultiID >

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