OpendTect  6.3
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 ________________________________________________________________________
10 
11 -*/
12 
13 #include "uiseismod.h"
14 #include "uidialog.h"
15 #include "uifunctiondisplay.h"
16 #include "uiwindowfunctionsel.h"
17 #include "uibutton.h"
18 #include "survinfo.h"
19 #include "arrayndalgo.h"
20 #include "uistring.h"
21 
22 class uiGenInput;
23 class uiFuncTaperDisp;
24 class uiSliceSelDlg;
25 class uiSlider;
26 class uiFreqTaperGrp;
27 class TrcKeyZSampling;
28 
29 
30 mStruct(uiSeis) FreqTaperSetup
31 {
32  FreqTaperSetup()
33  : hasmin_(false)
34  , hasmax_(true)
35  , allfreqssetable_(false)
36  {}
37 
38  DBKey dbkey_;
39  bool hasmin_;
40  bool hasmax_;
41  Interval<float> minfreqrg_;
42  Interval<float> maxfreqrg_;
43  bool allfreqssetable_;
44 };
45 
46 
47 mStruct(uiSeis) TaperData
48 {
49  TaperData()
50  : window_(0)
51  , paramval_(1)
52  {}
53 
54  Interval<float> rg_;
55  Interval<float> refrg_;
56 
57  ArrayNDWindow* window_;
58  int winsz_;
59  float paramval_;
60  float slope_;
61 };
62 
63 
66 public:
67 
69  {
71  : is2sided_(false)
72  , datasz_((int)(0.5/SI().zStep()))
73  , logscale_(false)
74  {
75  xaxcaption_ = uiStrings::phrJoinStrings(
76  uiStrings::sFrequency(), tr("(Hz)"));
77  yaxcaption_ = tr("Gain Factor (dB)");
78  noxgridline_ = true;
79  noygridline_ = true;
80  ywidth_ = 2;
81  ycol_.set(200,0,0);
82  y2col_.set(0,0,220);
83  }
84 
85  mDefSetupMemb(int,datasz);
86  mDefSetupMemb(uiString,xaxcaption);
87  mDefSetupMemb(uiString,yaxcaption);
90  mDefSetupMemb(bool,is2sided);
91  mDefSetupMemb(bool,logscale);
92  };
93 
95  ~uiFuncTaperDisp();
96 
97  void setWindows(float,float rightvar=0);
98  void setFunction(Array1DImpl<float>&,Interval<float>);
99 
100  ArrayNDWindow* window() const { return window_; }
101 
102  float* getWinValues() const
103  { return window_ ? window_->getValues() : 0; }
104  float* getFuncValues() const
105  { return funcvals_ ? funcvals_->getData() : 0; }
106 
107  void adaptFreqRangesToDataSize(bool,bool);
108  void taperChged(CallBacker*);
109 
110  TaperData& leftTaperData() { return leftd_; }
111  TaperData& rightTaperData() { return rightd_; }
112 
114 
115 protected:
116 
117  TaperData leftd_;
118  TaperData rightd_;
119 
121 
125 
126  bool is2sided_;
127  bool logscale_;
128  int datasz_;
130 };
131 
132 
133 
136 
137 public:
139  const FreqTaperSetup&,
140  uiFuncTaperDisp*);
142 
143 
144  void setFreqRange(Interval<float>);
145  Interval<float> getFreqRange() const;
146  void taperChged(CallBacker*);
147 
148 protected :
149 
150  TaperData td1_;
151  TaperData td2_;
152 
159 
160  bool hasmin_;
161  bool hasmax_;
163  int datasz_;
165 
166  void setSlopeFromFreq();
167  void setPercentsFromFreq();
168  void setFreqFromSlope(float);
169 
170  void freqChoiceChged(CallBacker*);
171  void freqChanged(CallBacker*);
172  void putToScreen(CallBacker*);
173  void sliderChanged(CallBacker*);
174  void slopeChanged(CallBacker*);
175 };
176 
177 
178 
181 public:
182 
183  uiFreqTaperDlg(uiParent*,const FreqTaperSetup&);
184  ~uiFreqTaperDlg();
185 
187  { return tapergrp_->getFreqRange(); }
188 
189 protected:
190 
194 
199 
200  void previewPushed(CallBacker*);
201 };
202 
203 
204 
207 public:
208  uiFreqTaperSel(uiParent*,const Setup&,
209  const FreqTaperSetup&);
210 
211  Interval<float> freqValues() const;
212 
213  void setDBKey( const DBKey& dbkey )
214  { freqsetup_.dbkey_ = dbkey; }
215  void setIsMinMaxFreq(bool,bool);
216  void setInputFreqValue(float,int);
217  void setRefFreqs(Interval<float>);
218 
219 protected :
220 
222  FreqTaperSetup freqsetup_;
223 
224  void winfuncseldlgCB(CallBacker*);
225  void windowClosed(CallBacker*);
226  void setSelFreqs(CallBacker*);
227 };
Definition: uigroup.h:53
#define mExpClass(module)
Definition: commondefs.h:157
Definition: uifreqtaper.h:205
bool logscale_
Definition: uifreqtaper.h:127
uiSlider * sliderfld_
Definition: uifreqtaper.h:157
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
Array1DImpl< float > * funcvals_
Definition: uifreqtaper.h:122
Definition: uifreqtaper.h:64
TaperData rightd_
Definition: uifreqtaper.h:118
FixedString Setup()
Definition: keystrs.h:113
Array1DImpl< float > * orgfuncvals_
Definition: uifreqtaper.h:123
Definition: uislider.h:40
is the base class for all buttons.
Definition: uibutton.h:80
#define mStruct(module)
Definition: commondefs.h:162
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
int datasz_
Definition: uifreqtaper.h:128
Tapers the N-dimentional ArrayND with a windowFunction.
Definition: arrayndalgo.h:870
ArrayNDWindow * window() const
Definition: uifreqtaper.h:100
TaperData td2_
Definition: uifreqtaper.h:151
Interval< float > funcdisprg_
Definition: uifreqtaper.h:124
TaperData td1_
Definition: uifreqtaper.h:150
Definition: uislicesel.h:91
Definition: uistring.h:88
Definition: uiparent.h:24
uiFreqTaperDlg * freqtaperdlg_
Definition: uifreqtaper.h:221
Definition: uifreqtaper.h:68
bool hasmax_
Definition: uifreqtaper.h:161
DBKey dbkey_
Definition: uifreqtaper.h:195
Definition: uidialog.h:40
Definition: uifreqtaper.h:134
uiSliceSelDlg * posdlg_
Definition: uifreqtaper.h:197
Notifier< uiFuncTaperDisp > taperChanged
Definition: uifreqtaper.h:113
uiGenInput * varinpfld_
Definition: uifreqtaper.h:153
void setDBKey(const DBKey &dbkey)
Definition: uifreqtaper.h:213
uiFuncTaperDisp * drawer_
Definition: uifreqtaper.h:192
uiFuncTaperDisp * drawer_
Definition: uifreqtaper.h:158
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:32
uiPushButton * previewfld_
Definition: uifreqtaper.h:196
General Input Element.
Definition: uigeninput.h:56
TaperData leftd_
Definition: uifreqtaper.h:117
displays a function of (X,Y) pairs on a canvas - optionally a Y2.
Definition: uifunctiondisplay.h:37
uiFreqTaperGrp * tapergrp_
Definition: uifreqtaper.h:191
#define mDefSetupMemb(typ, memb)
Definition: commondefs.h:129
~uiFreqTaperGrp()
Definition: uifreqtaper.h:141
FreqTaperSetup freqsetup_
Definition: uifreqtaper.h:222
uiGenInput * inffreqfld_
Definition: uifreqtaper.h:155
bool is2sided_
Definition: uifreqtaper.h:126
TaperData & rightTaperData()
Definition: uifreqtaper.h:111
Setup()
Definition: uifreqtaper.h:70
const SurveyInfo & SI()
bool hasmin_
Definition: uifreqtaper.h:160
int datasz_
Definition: uifreqtaper.h:163
int orgdatasz_
Definition: uifreqtaper.h:129
Array1DImpl< float > * funcvals_
Definition: uifreqtaper.h:193
Definition: uiwindowfunctionsel.h:26
TrcKeyZSampling * tkzs_
Definition: uifreqtaper.h:198
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
Interval< float > getFreqRange() const
Definition: uifreqtaper.h:186
bool isminactive_
Definition: uifreqtaper.h:162
static uiString phrJoinStrings(const uiString &a, const uiString &b)
"
uiGenInput * supfreqfld_
Definition: uifreqtaper.h:156
uiGenInput * freqinpfld_
Definition: uifreqtaper.h:154
bool allfreqssetable_
Definition: uifreqtaper.h:164
ArrayNDWindow * window_
Definition: uifreqtaper.h:120
TaperData & leftTaperData()
Definition: uifreqtaper.h:110
float * getFuncValues() const
Definition: uifreqtaper.h:104
static uiString sFrequency(int num=1)
float * getWinValues() const
Definition: uifreqtaper.h:102
Definition: uifreqtaper.h:179

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