OpendTect  6.6
expextremedip.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: 07-10-1999
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 ModGradientDip
13 
14 
15 Outputs:
16 0 Inl dip
17 1 crl dip
18 
19 @$*/
20 
21 #include <attribcalc.h>
22 #include <task.h>
23 #include <position.h>
24 #include <limits.h>
25 #include <seistrc.h>
26 #include <arrayndimpl.h>
27 #include <attribparamimpl.h>
28 
29 
30 mClass(AttribExp) ExtremeDipAttrib : public AttribCalc
31 {
32 public:
34  , "ExtremeDip"
35  , FloatAttribParameter
36  , maxdip
37  , FloatAttribParameter("maxdip"
39  , mUndefValue
40  , Interval<float>(0,mUndefValue)
41  )
42  , mAttribParamFormHasNoUpdate );
43 
44  ExtremeDipAttrib( Parameters* );
46 
47  bool init();
48 
49  int nrAttribs() const { return 2; }
50  const char* attribName(int val) const
51  {
52  if ( !val ) return "In-line dip";
53  if ( val == 1 ) return "Cross-line dip";
54 
55  return 0;
56  }
57 
58  const BinID* reqStepout( int inp, int ) const { return &stepout; }
59  const Interval<int>* reqExtraSamples(int, int) const { return &sg;}
60 
61  const Interval<float>* inlDipMargin(int,int) const { return 0; }
62  const Interval<float>* crlDipMargin(int,int) const { return 0; }
63 
64 
66  { return Seis::Dip; }
67 
68  const char* definitionStr() const { return desc; }
69  void setCommonInfo( const AttribProcessCommonInfo& ni )
70  { common = &ni; }
71 
72 protected:
73 
76  const BinID stepout;
77  const float maxdip;
78 
79  float inldist;
80  float crldist;
81 
82  const AttribProcessCommonInfo* common;
83 
84  mClass(AttribExp) Task : public AttribCalc::Task
85  {
86  public:
87  mClass(AttribExp) Input : public AttribCalc::Task::Input
88  {
89  public:
90  Input( const ExtremeDipAttrib& calculator_ )
91  : calculator ( calculator_ )
92  , trcs( 0 ) {}
93 
94  bool set( const BinID&,
96  const TypeSet<int>&,
97  const TypeSet<float*>& );
98 
100  { return new ExtremeDipAttrib::Task::Input(*this); }
101 
104 
106  };
107 
108  Task( const ExtremeDipAttrib& calculator_ )
109  : inldips( 0 )
110  , crldips( 0 )
111  , calculator( calculator_ ) {}
112 
113  void set( float , int , float ,
114  const AttribCalc::Task::Input* ,
115  const TypeSet<float*>& );
116 
117  AttribCalc::Task* clone() const;
118 
119  float getMaxPos( float val1, float val2,
120  float val3 ) const;
121  float getRealMaxPos(SeisTrc*,float,float,bool);
122  float findDip(TypeSet<float>&,float,float);
124 
125  int nextStep();
126 
129 
130  protected:
131  float* inldips;
132  float* crldips;
133 
135  };
136 
139 };
140 
ExtremeDipAttrib::Task::Input
Definition: expextremedip.h:88
Seis::Dip
@ Dip
Definition: seistype.h:53
ExtremeDipAttrib::Task::getMaxPos
float getMaxPos(float val1, float val2, float val3) const
sKey::Input
FixedString Input()
Definition: keystrs.h:81
ExtremeDipAttrib::reqExtraSamples
const Interval< int > * reqExtraSamples(int, int) const
Definition: expextremedip.h:59
ExtremeDipAttrib::ExtremeDipAttrib
ExtremeDipAttrib(Parameters *)
task.h
ExtremeDipAttrib::attribName
const char * attribName(int val) const
Definition: expextremedip.h:50
ArrayMath::val1
const T val1
Definition: arrayndalgo.h:1706
ObjectSet
Set of pointers to objects.
Definition: commontypes.h:31
ExtremeDipAttrib::mAttrib1Param
mAttrib1Param(ExtremeDipAttrib, "ExtremeDip", FloatAttribParameter, maxdip, FloatAttribParameter("maxdip", AttribParameter::Default, mUndefValue, Interval< float >(0, mUndefValue)), mAttribParamFormHasNoUpdate)
ExtremeDipAttrib::Task::Input::attribute
int attribute
Definition: expextremedip.h:103
Seis::DataType
DataType
Definition: seistype.h:53
DiscFilterAttrib::stepout
BinID stepout
Definition: expdiscfilter.h:145
ExtremeDipAttrib::dataType
Seis::DataType dataType(int, const TypeSet< Seis::DataType > &) const
Definition: expextremedip.h:65
ExtremeDipAttrib::Task
Definition: expextremedip.h:85
ExtremeDipAttrib::Task::crldips
float * crldips
Definition: expextremedip.h:132
ExtremeDipAttrib::inlDipMargin
const Interval< float > * inlDipMargin(int, int) const
Definition: expextremedip.h:61
ExtremeDipAttrib
Definition: expextremedip.h:31
DiscFilterAttrib::Task::Task
Task(const DiscFilterAttrib &calculator_)
Definition: expdiscfilter.h:190
SeisTrc
Seismic trace.
Definition: seistrc.h:34
ExtremeDipAttrib::Task::Input::trcs
Array2DImpl< SeisTrc * > * trcs
Definition: expextremedip.h:102
ExtremeDipAttrib::Task::findDip
float findDip(TypeSet< float > &, float, float)
ExtremeDipAttrib::crlDipMargin
const Interval< float > * crlDipMargin(int, int) const
Definition: expextremedip.h:62
ExtremeDipAttrib::Task::inldips
float * inldips
Definition: expextremedip.h:131
arrayndimpl.h
DiscFilterAttrib::Task::Input::calculator
const DiscFilterAttrib & calculator
Definition: expdiscfilter.h:187
ExtremeDipAttrib::Task::calculator
const ExtremeDipAttrib & calculator
Definition: expextremedip.h:134
ExtremeDipAttrib::nrAttribs
int nrAttribs() const
Definition: expextremedip.h:49
ExtremeDipAttrib::Task::Input::clone
AttribCalc::Task::Input * clone() const
Definition: expextremedip.h:99
ExtremeDipAttrib::maxdip
const float maxdip
Definition: expextremedip.h:77
ExtremeDipAttrib::Task::Task
Task(const ExtremeDipAttrib &calculator_)
Definition: expextremedip.h:108
BinID
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:31
DiscFilterAttrib::sg
Interval< int > sg
Definition: expdiscfilter.h:144
ExtremeDipAttrib::Task::set
void set(float, int, float, const AttribCalc::Task::Input *, const TypeSet< float * > &)
ExtremeDipAttrib::init
bool init()
ExtremeDipAttrib::common
const AttribProcessCommonInfo * common
Definition: expextremedip.h:82
ExtremeDipAttrib::Task::nextStep
int nextStep()
ExtremeDipAttrib::reqStepout
const BinID * reqStepout(int inp, int) const
Definition: expextremedip.h:58
ExtremeDipAttrib::sg
const Interval< int > sg
Definition: expextremedip.h:75
ExtremeDipAttrib::Task::clone
AttribCalc::Task * clone() const
ExtremeDipAttrib::Task::Input::Input
Input(const ExtremeDipAttrib &calculator_)
Definition: expextremedip.h:90
mClass
#define mClass(module)
Definition: commondefs.h:181
ExtremeDipAttrib::desc
BufferString desc
Definition: expextremedip.h:74
ExtremeDipAttrib::setCommonInfo
void setCommonInfo(const AttribProcessCommonInfo &ni)
Definition: expextremedip.h:69
DiscFilterAttrib::desc
BufferString desc
Definition: expdiscfilter.h:143
ExtremeDipAttrib::Task::Input::calculator
const ExtremeDipAttrib & calculator
Definition: expextremedip.h:105
ExtremeDipAttrib::Task::Input::set
bool set(const BinID &, const ObjectSet< AttribProvider > &, const TypeSet< int > &, const TypeSet< float * > &)
ExtremeDipAttrib::crldist
float crldist
Definition: expextremedip.h:80
position.h
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
Array2DImpl< SeisTrc * >
seistrc.h
ExtremeDipAttrib::Task::getRealMaxPos
float getRealMaxPos(SeisTrc *, float, float, bool)
ExtremeDipAttrib::~ExtremeDipAttrib
~ExtremeDipAttrib()
ExtremeDipAttrib::stepout
const BinID stepout
Definition: expextremedip.h:76
DiscFilterAttrib::Task::Input::trcs
Array2DImpl< const SeisTrc * > * trcs
Definition: expdiscfilter.h:177
ArrayMath::val2
const T val2
Definition: arrayndalgo.h:1706
ExtremeDipAttrib::definitionStr
const char * definitionStr() const
Definition: expextremedip.h:68
Interval< float >
sKey::Default
FixedString Default()
Definition: keystrs.h:59
ExtremeDipAttrib::Task::getInput
AttribCalc::Task::Input * getInput() const
Definition: expextremedip.h:127
DiscFilterAttrib::common
const AttribProcessCommonInfo * common
Definition: expdiscfilter.h:154
TypeSet< Seis::DataType >
ExtremeDipAttrib::Task::findX
float findX(TypeSet< float > &)
ExtremeDipAttrib::inldist
float inldist
Definition: expextremedip.h:79

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