OpendTect  6.6
uifreqtaper.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: Bruno
8  Date: Nov 2009
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "uiseismod.h"
15 #include "uiseismod.h"
16 #include "uidialog.h"
17 #include "uifunctiondisplay.h"
18 #include "uiwindowfunctionsel.h"
19 #include "uibutton.h"
20 #include "survinfo.h"
21 #include "arrayndalgo.h"
22 #include <arrayndimpl.h>
23 #include "uistring.h"
24 
25 class uiGenInput;
26 class uiFuncTaperDisp;
27 class uiSliceSelDlg;
28 class uiSlider;
29 class uiFreqTaperGrp;
30 
31 class ArrayNDWindow;
32 class TrcKeyZSampling;
33 
34 
35 mStruct(uiSeis) FreqTaperSetup
36 {
37  FreqTaperSetup();
38  FreqTaperSetup(const FreqTaperSetup&);
39  ~FreqTaperSetup();
40 
41  const char* seisnm_;
42  const char* attrnm_; //2D
43  bool hasmin_;
44  bool hasmax_;
45  Interval<float> minfreqrg_;
46  Interval<float> maxfreqrg_;
47  bool allfreqssetable_;
48  MultiID multiid_;
49 };
50 
51 
52 mStruct(uiSeis) TaperData
53 {
54  TaperData()
55  : window_(0)
56  , paramval_(1)
57  {}
58 
59  Interval<float> rg_;
60  Interval<float> refrg_;
61 
62  ArrayNDWindow* window_;
63  int winsz_;
64  float paramval_;
65  float slope_;
66 };
67 
68 
71 public:
72 
74  {
76  : is2sided_(false)
77  , datasz_((int)(0.5/SI().zStep() *
78  (SI().zDomain().isTime() ? 1.0f : 1000.0f)))
79  , logscale_(false)
80  {
81  xaxcaption_ = uiStrings::phrJoinStrings(
82  SI().zDomain().isTime() ?
85  SI().zDomain().isTime() ?
86  tr("(Hz)") :
87  SI().depthsInFeet() ?
88  tr("(/kft)") :
89  tr("(/km)") );
90  yaxcaption_ = tr("Amplitude");
91  noxgridline_ = true;
92  noygridline_ = true;
93  ywidth_ = 2;
94  ycol_.set(200,0,0);
95  y2col_.set(0,0,220);
96  }
97 
98  mDefSetupMemb(int,datasz);
99  mDefSetupMemb(uiString,xaxcaption);
100  mDefSetupMemb(uiString,yaxcaption);
103  mDefSetupMemb(bool,is2sided);
104  mDefSetupMemb(bool,logscale);
105  };
106 
109 
110  void setWindows(float,float rightvar=0);
111  void setFunction(Array1DImpl<float>&,Interval<float>);
112 
113  ArrayNDWindow* window() const { return window_; }
114 
115  float* getWinValues() const
116  { return window_ ? window_->getValues() : 0; }
117  float* getFuncValues() const
118  { return funcvals_ ? funcvals_->getData() : 0; }
119 
120  void adaptFreqRangesToDataSize(bool,bool);
122 
123  TaperData& leftTaperData() { return leftd_; }
124  TaperData& rightTaperData() { return rightd_; }
125 
126  int dataSize() const { return datasz_; }
127 
129 
130 protected:
131 
132  TaperData leftd_;
133  TaperData rightd_;
134 
136 
140 
141  bool is2sided_;
142  bool logscale_;
143  int datasz_;
145 };
146 
147 
148 
151 
152 public:
154  const FreqTaperSetup&,
155  uiFuncTaperDisp*);
157 
158 
162 
163 protected :
164 
165  TaperData td1_;
166  TaperData td2_;
167 
174 
175  bool hasmin_;
176  bool hasmax_;
178  int datasz_;
180 
183  void setFreqFromSlope(float);
184 
190 };
191 
192 
193 
196 public:
197 
198  uiFreqTaperDlg(uiParent*,const FreqTaperSetup&);
200 
202  { return tapergrp_->getFreqRange(); }
203 
204 protected:
205 
209 
210  const char* seisnm_;
211  const char* attrnm_;
216 
218 };
219 
220 
221 
224 public:
226  const FreqTaperSetup&);
227 
229 
230  void setMultiID( const MultiID& multiid )
231  { freqsetup_.multiid_ = multiid; }
232  void setIsMinMaxFreq(bool,bool);
233  void setInputFreqValue(float,int);
235 
236 protected :
237 
239  FreqTaperSetup freqsetup_;
240 
244 };
245 
arrayndalgo.h
uiFreqTaperGrp::allfreqssetable_
bool allfreqssetable_
Definition: uifreqtaper.h:179
uiFreqTaperGrp::putToScreen
void putToScreen(CallBacker *)
uiFuncTaperDisp::orgdatasz_
int orgdatasz_
Definition: uifreqtaper.h:144
uiFreqTaperDlg::seisnm_
const char * seisnm_
Definition: uifreqtaper.h:210
uiFuncTaperDisp::Setup::mDefSetupMemb
mDefSetupMemb(uiString, xaxcaption)
uiFuncTaperDisp::Setup
Definition: uifreqtaper.h:74
uiFuncTaperDisp::is2sided_
bool is2sided_
Definition: uifreqtaper.h:141
uiFreqTaperSel::freqtaperdlg_
uiFreqTaperDlg * freqtaperdlg_
Definition: uifreqtaper.h:238
uiFuncTaperDisp
Definition: uifreqtaper.h:70
uistring.h
uiFreqTaperSel::uiFreqTaperSel
uiFreqTaperSel(uiParent *, const Setup &, const FreqTaperSetup &)
uiFreqTaperGrp::drawer_
uiFuncTaperDisp * drawer_
Definition: uifreqtaper.h:173
uiFuncTaperDisp::funcvals_
Array1DImpl< float > * funcvals_
Definition: uifreqtaper.h:137
Array1DImpl
Implementation of Array1D.
Definition: arrayndimpl.h:52
uiFreqTaperSel::setMultiID
void setMultiID(const MultiID &multiid)
Definition: uifreqtaper.h:230
uiFreqTaperGrp::setFreqRange
void setFreqRange(Interval< float >)
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
uiFreqTaperDlg::posdlg_
uiSliceSelDlg * posdlg_
Definition: uifreqtaper.h:213
uiFreqTaperGrp::td1_
TaperData td1_
Definition: uifreqtaper.h:165
uiFuncTaperDisp::Setup::mDefSetupMemb
mDefSetupMemb(uiString, yaxcaption)
Setup::mDefSetupMemb
mDefSetupMemb(int, method)
uiFuncTaperDisp::Setup::mDefSetupMemb
mDefSetupMemb(Interval< float >, leftrg) mDefSetupMemb(Interval< float >
uiFuncTaperDisp::getWinValues
float * getWinValues() const
Definition: uifreqtaper.h:115
uiFreqTaperGrp::td2_
TaperData td2_
Definition: uifreqtaper.h:166
uiFreqTaperGrp::supfreqfld_
uiGenInput * supfreqfld_
Definition: uifreqtaper.h:171
CallBacker
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:185
sKey::Setup
FixedString Setup()
Definition: keystrs.h:139
uiFuncTaperDisp::taperChanged
Notifier< uiFuncTaperDisp > taperChanged
Definition: uifreqtaper.h:128
uiFreqTaperSel::freqValues
Interval< float > freqValues() const
arrayndimpl.h
uiFreqTaperSel::setInputFreqValue
void setInputFreqValue(float, int)
uifunctiondisplay.h
TrcKeyZSampling
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:35
uiGenInput
General Input Element.
Definition: uigeninput.h:59
uiFreqTaperGrp::hasmax_
bool hasmax_
Definition: uifreqtaper.h:176
uiFreqTaperDlg::getFreqRange
Interval< float > getFreqRange() const
Definition: uifreqtaper.h:201
uibutton.h
uiFuncTaperDisp::Setup::mDefSetupMemb
mDefSetupMemb(int, datasz)
uiFreqTaperDlg::drawer_
uiFuncTaperDisp * drawer_
Definition: uifreqtaper.h:207
uiFreqTaperDlg::attrnm_
const char * attrnm_
Definition: uifreqtaper.h:211
uiFreqTaperSel::setIsMinMaxFreq
void setIsMinMaxFreq(bool, bool)
uiFreqTaperDlg
Definition: uifreqtaper.h:195
uiStrings::sWaveNumber
static uiString sWaveNumber(int num=1)
uiFreqTaperGrp::slopeChanged
void slopeChanged(CallBacker *)
ArrayNDWindow
Tapers the N-dimentional ArrayND with a windowFunction.
Definition: arrayndalgo.h:349
uiFuncTaperDisp::logscale_
bool logscale_
Definition: uifreqtaper.h:142
uiFreqTaperDlg::tapergrp_
uiFreqTaperGrp * tapergrp_
Definition: uifreqtaper.h:206
uiwindowfunctionsel.h
uiFuncTaperDisp::dataSize
int dataSize() const
Definition: uifreqtaper.h:126
uiGroup
Definition: uigroup.h:54
uiFuncTaperDisp::rightd_
TaperData rightd_
Definition: uifreqtaper.h:133
uiFuncTaperDisp::adaptFreqRangesToDataSize
void adaptFreqRangesToDataSize(bool, bool)
mStruct
#define mStruct(module)
Definition: commondefs.h:182
SI
const SurveyInfo & SI()
uiFuncTaperDisp::taperChged
void taperChged(CallBacker *)
uiFreqTaperGrp::setSlopeFromFreq
void setSlopeFromFreq()
Setup
Definition: ceemdalgo.h:161
uiStrings::phrJoinStrings
static uiString phrJoinStrings(const uiString &a, const uiString &b)
"
uiSlider
Definition: uislider.h:42
uiFreqTaperGrp::setPercentsFromFreq
void setPercentsFromFreq()
uiFreqTaperSel
Definition: uifreqtaper.h:223
Notifier< uiFuncTaperDisp >
uiFreqTaperSel::windowClosed
void windowClosed(CallBacker *)
uiFreqTaperGrp::sliderfld_
uiSlider * sliderfld_
Definition: uifreqtaper.h:172
uidialog.h
uiFreqTaperGrp::varinpfld_
uiGenInput * varinpfld_
Definition: uifreqtaper.h:168
uiFreqTaperGrp::mODTextTranslationClass
mODTextTranslationClass(uiFreqTaperGrp)
uiFreqTaperSel::mODTextTranslationClass
mODTextTranslationClass(uiFreqTaperSel)
uiFuncTaperDisp::getFuncValues
float * getFuncValues() const
Definition: uifreqtaper.h:117
uiFreqTaperGrp::inffreqfld_
uiGenInput * inffreqfld_
Definition: uifreqtaper.h:170
uiFreqTaperGrp::freqChanged
void freqChanged(CallBacker *)
uiFreqTaperDlg::seisid_
MultiID seisid_
Definition: uifreqtaper.h:215
uiFreqTaperSel::setRefFreqs
void setRefFreqs(Interval< float >)
uiFreqTaperDlg::previewfld_
uiPushButton * previewfld_
Definition: uifreqtaper.h:212
uiFreqTaperSel::freqsetup_
FreqTaperSetup freqsetup_
Definition: uifreqtaper.h:239
uiFreqTaperGrp::datasz_
int datasz_
Definition: uifreqtaper.h:178
ZDomain::isTime
bool isTime(const IOPar &)
MultiID
Compound key consisting of ints.
Definition: multiid.h:24
uiFreqTaperGrp::taperChged
void taperChged(CallBacker *)
uiFreqTaperDlg::tkzs_
TrcKeyZSampling * tkzs_
Definition: uifreqtaper.h:214
survinfo.h
uiFuncTaperDisp::datasz_
int datasz_
Definition: uifreqtaper.h:143
uiFuncTaperDisp::window_
ArrayNDWindow * window_
Definition: uifreqtaper.h:135
uiFreqTaperDlg::~uiFreqTaperDlg
~uiFreqTaperDlg()
uiFuncTaperDisp::leftTaperData
TaperData & leftTaperData()
Definition: uifreqtaper.h:123
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
uiFuncTaperDisp::rightTaperData
TaperData & rightTaperData()
Definition: uifreqtaper.h:124
uiFreqTaperGrp::setFreqFromSlope
void setFreqFromSlope(float)
uiFreqTaperGrp::sliderChanged
void sliderChanged(CallBacker *)
uiFuncTaperDisp::Setup::Setup
Setup()
Definition: uifreqtaper.h:75
uiFreqTaperSel::setSelFreqs
void setSelFreqs(CallBacker *)
uiSliceSelDlg
Definition: uislicesel.h:93
uiFreqTaperGrp::~uiFreqTaperGrp
~uiFreqTaperGrp()
Definition: uifreqtaper.h:156
uiFreqTaperGrp::isminactive_
bool isminactive_
Definition: uifreqtaper.h:177
uiStrings::sFrequency
static uiString sFrequency(int num=1)
uiFreqTaperDlg::funcvals_
Array1DImpl< float > * funcvals_
Definition: uifreqtaper.h:208
uiFreqTaperGrp::getFreqRange
Interval< float > getFreqRange() const
uiFreqTaperGrp::hasmin_
bool hasmin_
Definition: uifreqtaper.h:175
uiWindowFunctionSel
Definition: uiwindowfunctionsel.h:28
uiFreqTaperGrp::freqinpfld_
uiGenInput * freqinpfld_
Definition: uifreqtaper.h:169
uiFuncTaperDisp::leftd_
TaperData leftd_
Definition: uifreqtaper.h:132
uiFunctionDisplay
displays a function of (X,Y) pairs on a canvas - optionally a Y2.
Definition: uifunctiondisplay.h:38
uiParent
Definition: uiparent.h:26
uiFreqTaperGrp::uiFreqTaperGrp
uiFreqTaperGrp(uiParent *, const FreqTaperSetup &, uiFuncTaperDisp *)
uiFreqTaperGrp::freqChoiceChged
void freqChoiceChged(CallBacker *)
Interval< float >
uiDialog
Definition: uidialog.h:42
uiFuncTaperDisp::funcdisprg_
Interval< float > funcdisprg_
Definition: uifreqtaper.h:139
uiFreqTaperDlg::mODTextTranslationClass
mODTextTranslationClass(uiFreqTaperDlg)
uiFreqTaperDlg::uiFreqTaperDlg
uiFreqTaperDlg(uiParent *, const FreqTaperSetup &)
uiFuncTaperDisp::orgfuncvals_
Array1DImpl< float > * orgfuncvals_
Definition: uifreqtaper.h:138
uiFreqTaperGrp
Definition: uifreqtaper.h:150
uiFreqTaperSel::winfuncseldlgCB
void winfuncseldlgCB(CallBacker *)
uiFreqTaperDlg::previewPushed
void previewPushed(CallBacker *)
uiFuncTaperDisp::mODTextTranslationClass
mODTextTranslationClass(uiFuncTaperDisp)
uiPushButton
is the base class for all buttons.
Definition: uibutton.h:88

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