OpendTect  6.3
uiattrdesced.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: N. Hemstra
8  Date: May 2005
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "uiattributesmod.h"
14 #include "uigroup.h"
15 #include "uiattribfactory.h"
16 #include "changetracker.h"
17 #include "paramsetget.h"
18 #include "datapack.h"
19 #include "helpview.h"
20 
21 namespace Attrib { class Desc; class DescSet; class DescSetMan; }
22 namespace ZDomain { class Info; }
23 
24 class uiAttrDescEd;
25 class uiAttrSel;
26 class uiAttrSelData;
27 class uiImagAttrSel;
28 class uiSteeringSel;
29 class uiSteerAttrSel;
30 
31 
36 mExpClass(uiAttributes) EvalParam
37 {
38 public:
39  EvalParam( const char* lbl, const char* par1=0,
40  const char* par2=0, int idx=mUdf(int) )
41  : label_(lbl), par1_(par1), par2_(par2), pgidx_(idx)
42  , evaloutput_(false) {}
43 
44  bool operator==(const EvalParam& ep) const
45  {
46  return label_==ep.label_ && par1_==ep.par1_ &&
47  par2_==ep.par2_ && pgidx_==ep.pgidx_;
48  }
49 
53  int pgidx_;
55 
56 };
57 
58 
64 {
65 public:
66  virtual ~uiAttrDescEdCreater() {}
67  virtual uiAttrDescEd* create(uiParent*) const = 0;
68 
69 };
70 
71 
80 mExpClass(uiAttributes) uiAttrDescEd : public uiGroup
82 public:
83 
84  virtual ~uiAttrDescEd();
85  HelpKey helpKey() { return helpkey_; }
87  void setDescSet( Attrib::DescSet* ds ) { ads_ = ds; }
88  Attrib::Desc* curDesc() { return desc_; }
89  const Attrib::Desc* curDesc() const { return desc_; }
90 
91  void setZDomainInfo(const ZDomain::Info*);
92  const ZDomain::Info* getZDomainInfo() const;
93 
94  uiString errMsgStr(Attrib::Desc* desc);
95  virtual uiString commit(Attrib::Desc* desc=0);
99 
100  virtual int getOutputIdx(float val) const { return (int)val; }
101  virtual float getOutputValue(int idx) const { return (float)idx; }
102  virtual void setOutputStep(float step) {}
103 
104  virtual void getEvalParams(TypeSet<EvalParam>&) const {}
105 
106  virtual const char* attribName() const = 0;
107  const char* displayName() const { return dispname_; }
108  void setDisplayName(const char* nm ) { dispname_ = nm; }
109 
110  enum DomainType { Both, Time, Depth };
111  DomainType domainType() const { return domtyp_; }
112  void setDomainType( DomainType t ) { domtyp_ = t; }
113 
114  enum DimensionType { AnyDim, Only3D, Only2D };
115  DimensionType dimensionType() const { return dimtyp_; }
116  void setDimensionType( DimensionType t ) { dimtyp_ = t; }
117 
118  bool is2D() const { return is2d_; }
119 
120  void setNeedInputUpdate() { needinpupd_ = true; }
121 
122  virtual void setDataPackInp(const TypeSet<DataPack::FullID>&);
123 
124  static const char* getInputAttribName(uiAttrSel*,const Attrib::Desc&);
125 
126  static const char* timegatestr();
127  static const char* frequencystr();
128  static const char* stepoutstr();
129  static const char* filterszstr();
130 
131 protected:
132 
133  uiAttrDescEd(uiParent*,bool is2d,const HelpKey&);
134 
135  virtual bool setParameters(const Attrib::Desc&) { return true; }
136  virtual bool getParameters(Attrib::Desc&) { return true; }
137  virtual bool setInput(const Attrib::Desc&) { return true; }
138  virtual bool getInput(Attrib::Desc&) { return true; }
139  virtual bool setOutput(const Attrib::Desc&) { return true; }
140  virtual bool getOutput(Attrib::Desc&);
141 
142  virtual bool areUIParsOK() { return true; }
143 
144  void fillOutput(Attrib::Desc&,int selout);
145  void fillInp(uiAttrSel*,Attrib::Desc&,int);
146  void fillInp(uiSteeringSel*,Attrib::Desc&,int);
147  void fillInp(uiSteerAttrSel*,Attrib::Desc&,int);
148 
149  void putInp(uiAttrSel*,const Attrib::Desc&,int inpnr);
150  void putInp(uiSteerAttrSel*,const Attrib::Desc&,int inpnr);
151  void putInp(uiSteeringSel*,const Attrib::Desc&,int inpnr);
152 
153  bool needInputUpdate() const { return needinpupd_; }
154 
155  uiString zDepLabel(const uiString& pre,
156  const uiString& post) const;
158  { return zDepLabel( uiString::emptyString(),
159  tr("gate")); }
161  { return zDepLabel( uiString::emptyString(),
162  tr("shift"));}
163  bool zIsTime() const;
164 
166  uiAttrSel* createInpFld(bool is2d,const char* txt=0);
167  uiAttrSel* createInpFld(const uiAttrSelData&,const char* txt=0);
168  uiImagAttrSel* createImagInpFld(bool is2d);
169  bool getInputDPID(uiAttrSel*,DataPack::FullID&) const;
170  Attrib::Desc* getInputDescFromDP(uiAttrSel*) const;
171 
178  bool is2d_;
181 
183 
184  static const char* sKeyOtherGrp();
185  static const char* sKeyBasicGrp();
186  static const char* sKeyFilterGrp();
187  static const char* sKeyFreqGrp();
188  static const char* sKeyPatternGrp();
189  static const char* sKeyStatsGrp();
190  static const char* sKeyPositionGrp();
191  static const char* sKeyDipGrp();
192 
193  static uiString sInputTypeError(int input);
194 
195 
196 
197 private:
198 
202 };
203 
204 
205 #define mDeclReqAttribUIFns \
206 protected: \
207  static uiAttrDescEd* createInstance(uiParent*,bool); \
208  static int factoryid_; \
209 public: \
210  static void initClass(); \
211  virtual const char* attribName() const; \
212  static int factoryID() { return factoryid_; }
213 
214 
215 #define mInitAttribUIPars(clss,attr,displaynm,grp,domtyp,dimtyp,supportsynth) \
216 \
217 int clss::factoryid_ = -1; \
218 \
219 void clss::initClass() \
220 { \
221  if ( factoryid_ < 0 ) \
222  factoryid_ = uiAF().add( displaynm, attr::attribName(), grp, \
223  clss::createInstance, (int)domtyp, (int)dimtyp, \
224  (bool)supportsynth ); \
225 } \
226 \
227 uiAttrDescEd* clss::createInstance( uiParent* p, bool is2d ) \
228 { \
229  uiAttrDescEd* de = new clss( p, is2d ); \
230  de->setDisplayName( displaynm ); \
231  de->setDomainType( domtyp ); \
232  de->setDimensionType( dimtyp ); \
233  return de; \
234 } \
235 \
236 const char* clss::attribName() const \
237 { \
238  return attr::attribName(); \
239 }
240 
241 #define mInitAttribUI( clss, attr, displaynm, grp ) \
242  mInitAttribUIPars(clss,attr,displaynm,grp,uiAttrDescEd::Both, \
243  uiAttrDescEd::AnyDim,true)
Definition: uigroup.h:53
BufferString attrnm_
Definition: uiattrdesced.h:173
#define mExpClass(module)
Definition: commondefs.h:157
virtual void getEvalParams(TypeSet< EvalParam > &) const
Definition: uiattrdesced.h:104
bool needinpupd_
Definition: uiattrdesced.h:179
bool is2D() const
Definition: uiattrdesced.h:118
DomainType domtyp_
Definition: uiattrdesced.h:174
HelpKey helpKey()
Definition: uiattrdesced.h:85
Attrib::Desc * curDesc()
Definition: uiattrdesced.h:88
bool is2d_
Definition: uiattrdesced.h:178
virtual bool getInput(Attrib::Desc &)
Definition: uiattrdesced.h:138
virtual void setOutputStep(float step)
Definition: uiattrdesced.h:102
Definition: datapack.h:43
DomainType
Definition: uiattrdesced.h:110
uiString gateLabel() const
Definition: uiattrdesced.h:157
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
User interface element for getting attribute with both real and imaginary part.
Definition: uiattrsel.h:249
Manages attribute description set.
Definition: attribdescsetman.h:26
const Attrib::Desc * curDesc() const
Definition: uiattrdesced.h:89
Attribute description editor.
Definition: uiattrdesced.h:80
uiString errmsg_
Definition: uiattrdesced.h:176
Set of attribute descriptions.
Definition: attribdescset.h:29
uiString shiftLabel() const
Definition: uiattrdesced.h:160
void setDescSet(Attrib::DescSet *ds)
Definition: uiattrdesced.h:87
Attrib::Desc * desc_
Definition: uiattrdesced.h:200
Definition: uiattrdesced.h:110
virtual bool setOutput(const Attrib::Desc &)
Definition: uiattrdesced.h:139
virtual bool areUIParsOK()
Definition: uiattrdesced.h:142
void setDimensionType(DimensionType t)
Definition: uiattrdesced.h:116
static const uiString & emptyString()
Definition: uistring.h:107
DimensionType dimensionType() const
Definition: uiattrdesced.h:115
int pgidx_
Definition: uiattrdesced.h:53
Definition: uistring.h:88
Definition: uiparent.h:24
ChangeTracker chtr_
Definition: uiattrdesced.h:165
Definition: helpview.h:47
HelpKey helpkey_
Definition: uiioobjsel.h:103
virtual float getOutputValue(int idx) const
Definition: uiattrdesced.h:101
Attribute description editor creator.
Definition: uiattrdesced.h:63
bool needInputUpdate() const
Definition: uiattrdesced.h:153
void setNeedInputUpdate()
Definition: uiattrdesced.h:120
const char * displayName() const
Definition: uiattrdesced.h:107
virtual bool setInput(const Attrib::Desc &)
Definition: uiattrdesced.h:137
BufferString dispname_
Definition: uiattrdesced.h:199
FixedString Desc()
Definition: keystrs.h:60
bool operator==(const EvalParam &ep) const
Definition: uiattrdesced.h:44
Set of (small) copyable elements.
Definition: commontypes.h:26
bool evaloutput_
Definition: uiattrdesced.h:54
Description of an attribute in an Attrib::DescSet. Each attribute has a name (e.g. "Similarity"), a user reference (e.g. "My similarity"), and at least one output. In addition, it may have parameters and inputs. If it has multiple outputs, only one of the outputs are selected.
Definition: attribdesc.h:87
BufferString label_
Definition: uiattrdesced.h:50
virtual bool getParameters(Attrib::Desc &)
Definition: uiattrdesced.h:136
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:270
const ZDomain::Info * zdomaininfo_
Definition: uiattrdesced.h:180
Attrib::DescSet * ads_
Definition: uiattrdesced.h:177
EvalParam(const char *lbl, const char *par1=0, const char *par2=0, int idx=mUdf(int))
Definition: uiattrdesced.h:39
HelpKey helpkey_
Definition: uiattrdesced.h:172
DimensionType dimtyp_
Definition: uiattrdesced.h:175
Definition: uisteeringsel.h:22
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
Updates a variable when changes occur.
Definition: changetracker.h:23
TypeSet< DataPack::FullID > dpfids_
Definition: uiattrdesced.h:182
virtual bool setParameters(const Attrib::Desc &)
Definition: uiattrdesced.h:135
static uiHor3DInterpol * create(uiParent *)
virtual int getOutputIdx(float val) const
Definition: uiattrdesced.h:100
void setDesc(const Attrib::Desc *)
BufferString par1_
Definition: uiattrdesced.h:51
User interface for attribute selection data.
Definition: uiattrsel.h:36
Attrib::DescSetMan * adsman_
Definition: uiattrdesced.h:201
DomainType domainType() const
Definition: uiattrdesced.h:111
User interface element for storing attribute desc selection.
Definition: uiattrsel.h:181
Definition: commontypes.h:35
void setDisplayName(const char *nm)
Definition: uiattrdesced.h:108
void setDomainType(DomainType t)
Definition: uiattrdesced.h:112
DimensionType
Definition: uiattrdesced.h:114
BufferString par2_
Definition: uiattrdesced.h:52
Definition: uiattrdesced.h:114
Attribute Steering ui element: data + selection of type.
Definition: uisteeringsel.h:54
virtual ~uiAttrDescEdCreater()
Definition: uiattrdesced.h:66
Information of z-domain.
Definition: zdomain.h:96
Semblance Attribute.
Definition: attribdataholder.h:21
FixedString Depth()
Definition: keystrs.h:58
Definition: zdomain.h:18
Description of attribute parameters to evaluate.
Definition: uiattrdesced.h:36

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