13 #include "generalmod.h" 33 enum Rep { intTp, int64Tp, floatTp, doubleTp, boolTp, stringTp };
37 : rep_( tp ), form_(frm) {}
39 inline Rep
rep()
const {
return rep_; }
43 {
return (rep_==oth.
rep_) && (form_==oth.
form_); }
45 {
return ! (oth == *
this); }
70 inline Rep
rep__(
int i )
const {
return intTp; }
72 inline Rep
rep__(
float f )
const {
return floatTp; }
73 inline Rep
rep__(
double d )
const {
return doubleTp; }
74 inline Rep
rep__(
bool b )
const {
return boolTp; }
75 inline Rep
rep__(
const char* s )
const {
return stringTp; }
94 DataInpSpec(
const DataInpSpec&);
99 virtual DataInpSpec* clone()
const =0;
102 virtual bool isUndef(
int idx=0 )
const =0;
105 virtual bool isInsideLimits(
int idx=0)
const;
107 virtual const char* text(
int idx=0 )
const =0;
108 virtual bool setText(
const char*,
int idx=0) =0;
115 virtual int getIntValue(
int idx=0)
const;
116 virtual od_int64 getInt64Value(
int idx=0)
const;
117 virtual double getDValue(
int idx=0)
const;
118 virtual float getFValue(
int idx=0)
const;
119 virtual bool getBoolValue(
int idx=0)
const;
121 virtual void setValue(
int i,
int idx=0);
122 virtual void setValue(
od_int64 i,
int idx=0);
123 virtual void setValue(
double d,
int idx=0);
124 virtual void setValue(
float f,
int idx=0);
125 virtual void setValue(
bool b,
int idx=0);
127 virtual int getDefaultIntValue(
int idx=0)
const;
128 virtual double getDefaultDValue(
int idx=0)
const;
129 virtual float getDefaultFValue(
int idx=0)
const;
130 virtual bool getDefaultBoolValue(
int idx=0)
const;
131 virtual const char* getDefaultStringValue(
int idx=0)
const;
139 virtual const char*
name(
int idx=0)
const;
140 virtual DataInpSpec&
setName(
const char*,
int idx=0);
161 #define mDefDISSetValBaseClassImpl(typ) \ 162 virtual void setValue( typ val, int idx=0 ) \ 163 { DataInpSpec::setValue(val,idx); } 164 #define mDefDISSetDefValBaseClassImpl(typ) \ 165 virtual void setDefaultValue( typ val, int idx=0 ) \ 166 { DataInpSpec::setDefaultValue(val,idx); } 205 {
return mIsUdf(value_); }
207 virtual bool setText(
const char* s,
int idx=0 )
213 virtual double getDValue(
int idx=0)
const {
return value(); }
214 virtual float getFValue(
int idx=0)
const {
return (
float)value(); }
217 {
return (
int)defaultValue(); }
219 {
return (
double)defaultValue(); }
221 {
return (
float)defaultValue(); }
224 { defaultvalue_ = (T)val; }
226 { defaultvalue_ = (T)val; }
228 { defaultvalue_ = (T)val; }
240 return defaultvalue_;
243 virtual const char*
text(
int idx=0 )
const 245 if ( isUndef() )
return "";
252 if ( !limits_ )
return true;
254 return limits_->includes( value(),
true );;
256 const bool startudf =
mIsUdf(limits_->start);
257 const bool stopudf =
mIsUdf(limits_->stop);
258 if ( startudf && stopudf )
return true;
260 return value() < limits_->stop;
262 return value() > limits_->start;
289 , limits_( nis.limits_ ? new
StepInterval<T>(*nis.limits_) : 0 )
290 , value_( nis.value_ )
291 , defaultvalue_( nis.defaultvalue_ )
316 , startlimits_(0), stoplimits_(0), steplimits_(0)
337 , startlimits_(0), stoplimits_(0), steplimits_(0)
340 , interval_( interval.
clone() )
352 , startlimits_(0), stoplimits_(0), steplimits_(0)
353 , symm_(o.isSymmetric())
354 , wsymm_(o.withSymmetric())
355 , interval_( o.interval_ ? o.interval_->
clone() : 0)
356 , defaultinterval_( o.defaultinterval_ ?
357 o.defaultinterval_->
clone() : 0)
367 delete defaultinterval_;
376 virtual int nElems()
const {
return hasStep() ? 3 : 2; }
377 inline bool hasStep()
const {
return stpi(); }
381 if ( !interval_ )
return true;
387 if ( interval_ )
delete interval_;
388 interval_ = intval.
clone();
398 if ( defaultinterval_ )
delete defaultinterval_;
399 defaultinterval_ = defaultintval.clone();
407 virtual
bool setText( const
char* s,
int idx=0 )
409 if ( pt_value_(idx) )
428 if ( !defaultinterval_ )
return mUdf(T);
439 virtual const char*
text(
int idx=0 )
const 446 {
return startlimits_||stoplimits_||steplimits_; }
450 if ( !lims )
return true;
456 if ( startudf && stopudf )
return true;
476 case 0 :
return startlimits_;
477 case 1 :
return stoplimits_;
478 case 2 :
return steplimits_;
494 if ( idx<0 || idx==0 )
499 if ( idx<0 || idx==1 )
504 if ( idx==-2 || idx==2 )
519 { symm_ = yn; wsymm_ =
true; }
538 if ( pt_value_(idx) )
return *pt_value_(idx);
544 if ( pt_value_(idx,
true) )
545 return *pt_value_(idx,
true);
554 if ( !defaultinterval_)
return 0;
555 if ( idx == 0 )
return &defaultinterval_->
start;
556 if ( idx == 1 )
return &defaultinterval_->
stop;
557 if ( hasStep() )
return &stpi(defval)->step;
561 if ( !interval_)
return 0;
562 if ( idx == 0 )
return &interval_->
start;
563 if ( idx == 1 )
return &interval_->
stop;
564 if ( hasStep() )
return &stpi()->step;
572 defval ? defaultinterval_ : interval_)
588 virtual bool isUndef(
int idx=0)
const;
590 virtual DataInpSpec*
clone()
const;
591 const char*
text()
const;
593 virtual bool setText(
const char*,
int idx=0) ;
594 virtual const char*
text(
int)
const;
618 virtual DataInpSpec*
clone()
const;
643 virtual bool isUndef(
int idx=0)
const;
645 virtual DataInpSpec*
clone()
const;
646 uiString trueFalseTxt(
bool tf=
true)
const;
647 void setTrueFalseTxt(
bool,
const uiString&);
649 bool checked()
const;
650 void setChecked(
bool yesno);
651 virtual const char*
text(
int idx=0)
const;
653 virtual bool setText(
const char* s,
int idx=0);
655 virtual void setValue(
bool,
int idx=0);
661 virtual
void setDefaultValue(
bool,
int idx=0);
667 bool isSet()
const {
return isset_; }
668 void setSet(
bool yesno=
true ) { isset_ = yesno; }
699 virtual bool isUndef(
int idx=0)
const;
701 virtual DataInpSpec*
clone()
const;
706 void setEnumDef(
const EnumDef&);
709 void addString(
const uiString& txt);
710 virtual const char*
text(
int idx=0)
const;
711 void setItemText(
int idx,
const uiString&);
712 virtual bool setText(
const char* s,
int nr);
716 virtual double getDValue(
int idx=0)
const;
717 virtual float getFValue(
int idx=0)
const;
719 virtual void setValue(
int i,
int idx=0);
721 virtual void setValue(
double d,
int idx=0);
722 virtual void setValue(
float f,
int idx=0);
725 virtual
void setDefaultValue(
int i,
int idx=0);
732 bool isSet()
const {
return isset_; }
733 void setSet(
bool yn=
true ) { isset_ = yn; }
753 Setup(
bool wc=
false,
bool d2=
false,
bool ps=
false )
757 , isrel_(false) {
clear(); }
769 coord_.x_ = coord_.y_ =
mUdf(
double);
770 binid_.inl() = binid_.crl() =
mUdf(
int);
782 virtual int nElems()
const;
785 {
return getVal(setup_,idx); }
787 { setVal( setup_, idx, f ); }
792 virtual
bool isUndef(
int idx=0) const;
793 virtual const
char* text(
int idx=0) const;
794 virtual
bool setText(const
char* s,
int idx=0);
797 {
return getVal(defsetup_,idx); }
799 { setVal( defsetup_, idx, f ); }
806 {
return def ? defsetup_ : setup_; }
808 {
return def ? defsetup_ : setup_; }
810 Coord getCoord(
double udfval=
mUdf(
double))
const;
811 BinID getBinID(
int udfval=
mUdf(
int))
const;
812 int getTrcNr(
int udfval=
mUdf(
int))
const;
813 float getOffset(
float udfval=
mUdf(
float))
const;
820 float getVal(
const Setup&,
int)
const;
821 void setVal(
Setup&,
int,
float);
#define mExpClass(module)
Definition: commondefs.h:157
virtual void setValue(int i, int idx=0)
mODTextTranslationClass(NumInpIntervalSpec) public
Definition: datainpspec.h:312
virtual void setName(const char *nm)
Definition: namedobj.h:35
#define mIsUdf(val)
Use mIsUdf to check for undefinedness of simple types.
Definition: undefval.h:285
bool getFromString(int &, const char *, int udfval)
Rep rep() const
Definition: datainpspec.h:39
T defaultValue() const
Definition: datainpspec.h:237
StepInterval< T > * steplimits_
Definition: datainpspec.h:531
DataType(Rep tp, Form frm=normal)
Definition: datainpspec.h:36
NumInpSpec< od_int64 > Int64InpSpec
Definition: datainpspec.h:296
NumInpSpec(T val)
Definition: datainpspec.h:183
virtual void setDefaultValue(float f, int idx=0)
Definition: datainpspec.h:135
bool isset_
Definition: datainpspec.h:676
NumInpIntervalSpec(const NumInpIntervalSpec< T > &o)
Definition: datainpspec.h:350
bool hasStep() const
Definition: datainpspec.h:377
void setDefaultValue(float f, int idx=0)
Definition: datainpspec.h:798
const EnumDef * enumdef_
Definition: datainpspec.h:741
::DataType tp_
Definition: datainpspec.h:145
Form form_
Definition: datainpspec.h:51
virtual float getDefaultFValue(int idx=0) const
Definition: datainpspec.h:436
virtual bool getDefaultBoolValue(int idx=0) const
NumInpSpec< double > DoubleInpSpec
Definition: datainpspec.h:298
mDeprecated float getfValue(int idx=0) const
Definition: datainpspec.h:157
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
#define mSetUdf(val)
Use this macro to set simple types to undefined.
Definition: undefval.h:272
const StepInterval< T > * limits(int idx=0) const
gets limits for interval components.
Definition: datainpspec.h:471
mODTextTranslationClass(DataInpSpec) public DataInpSpec(const DataInpSpec &)
NumInpIntervalSpec< float > FloatInpIntervalSpec
Definition: datainpspec.h:579
bool yn_
Definition: datainpspec.h:674
Form form() const
Definition: datainpspec.h:40
virtual int nElems() const
Definition: datainpspec.h:376
BufferStringSet names_
Definition: datainpspec.h:149
virtual void setDefaultValue(int val, int idx=0)
Definition: datainpspec.h:223
StepInterval< T > * stoplimits_
Definition: datainpspec.h:530
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
#define od_int64
Definition: plftypes.h:34
virtual double getDValue(int idx=0) const
Definition: datainpspec.h:423
Definition: datainpspec.h:34
DataType implementation.
Definition: datainpspec.h:61
StepInterval< T > * startlimits_
Definition: datainpspec.h:529
void setWithSymmetric(bool yn)
Definition: datainpspec.h:521
virtual void setDefaultValue(double d, int idx=0)
Definition: datainpspec.h:134
uiString falsetext_
Definition: datainpspec.h:673
const StepInterval< T > * limits() const
Definition: datainpspec.h:266
Setup defsetup_
Definition: datainpspec.h:818
mODTextTranslationClass(DataTypeImpl) public
Definition: datainpspec.h:62
NumInpIntervalSpec & setLimits(const StepInterval< T > &r, int idx=-1)
sets limits for interval components.
Definition: datainpspec.h:492
virtual double getDValue(int idx=0) const
Definition: datainpspec.h:213
virtual float getFValue(int idx=0) const
Definition: datainpspec.h:424
Definition: uistring.h:88
NumInpSpec< T > & setLimits(const Interval< T > &intv)
Definition: datainpspec.h:267
virtual bool getBoolValue(int idx=0) const
bool operator!=(const DataType &oth) const
Definition: datainpspec.h:44
bool operator==(const DataType &oth) const
Definition: datainpspec.h:42
Set of BufferString objects.
Definition: bufstringset.h:25
virtual od_int64 getInt64Value(int idx=0) const
Definition: datainpspec.h:421
virtual DataInpSpec * clone() const
Definition: datainpspec.h:781
TypeSet< int > nameidxs_
Definition: datainpspec.h:148
Data type.
Definition: datainpspec.h:29
Rep rep_
Definition: datainpspec.h:50
T value(int idx=0) const
Definition: datainpspec.h:414
Interval of values.
Definition: commontypes.h:27
NumInpSpec(T val, const StepInterval< T > &intv)
Definition: datainpspec.h:193
float value(int idx=0) const
Definition: datainpspec.h:784
virtual int getDefaultIntValue(int idx=0) const
Definition: datainpspec.h:216
Specifications for character string inputs.
Definition: datainpspec.h:584
virtual bool isInsideLimits(int idx=0) const
Definition: datainpspec.h:447
bool symm_
Definition: datainpspec.h:533
NumInpIntervalSpec(const Interval< T > &interval)
Definition: datainpspec.h:335
uiStringSet strings_
Definition: datainpspec.h:737
NumInpIntervalSpec< int > IntInpIntervalSpec
Definition: datainpspec.h:578
bool prefempty_
Definition: datainpspec.h:146
virtual NumInpSpec< T > * clone() const
Definition: datainpspec.h:201
Setup setup_
Definition: datainpspec.h:817
virtual bool hasLimits() const
Definition: datainpspec.h:445
static uiString sNo()
Definition: uistrings.h:392
virtual ~DataInpSpec()
Definition: datainpspec.h:95
Rep rep__(float f) const
Definition: datainpspec.h:72
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
int defaultval_
Definition: datainpspec.h:739
Specification of input characteristics.
Definition: datainpspec.h:88
virtual od_int64 getInt64Value(int idx=0) const
Definition: datainpspec.h:211
virtual bool isUndef(int idx=0) const
Definition: datainpspec.h:379
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:270
virtual NumInpIntervalSpec< T > * clone() const
Definition: datainpspec.h:373
uiString truetext_
Definition: datainpspec.h:672
virtual int getIntValue(int idx=0) const
Definition: datainpspec.h:420
const uiStringSet & strings() const
Definition: enums.h:57
Interval with step.
Definition: commontypes.h:29
Setup(bool wc=false, bool d2=false, bool ps=false)
Definition: datainpspec.h:753
Interval< T > * defaultinterval_
Definition: datainpspec.h:527
virtual bool hasLimits() const
Definition: datainpspec.h:104
bool defaultyn_
Definition: datainpspec.h:675
T defaultvalue_
Definition: datainpspec.h:280
virtual void setDefaultValue(double val, int idx=0)
Definition: datainpspec.h:225
virtual void setDefaultValue(float val, int idx=0)
Definition: datainpspec.h:227
void setSet(bool yn=true)
Definition: datainpspec.h:733
static uiString sYes()
Definition: uistrings.h:544
#define mDefSetupMemb(typ, memb)
Definition: commondefs.h:129
T defaultValue(int idx=0) const
Definition: datainpspec.h:426
virtual double getDefaultDValue(int idx=0) const
Definition: datainpspec.h:218
Specifications for numerical inputs that may or may not have limits.
Definition: datainpspec.h:176
BufferString toString(const DBKey &ky)
Definition: dbkey.h:115
Form
Definition: datainpspec.h:34
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
#define mDynamicCastGet(typ, out, in)
Definition: commondefs.h:123
Rep rep__(int i) const
Definition: datainpspec.h:70
~NumInpSpec()
Definition: datainpspec.h:199
bool wsymm_
Definition: datainpspec.h:534
virtual int nElems() const
Definition: datainpspec.h:100
virtual void setDefaultValue(bool b, int idx=0)
Definition: datainpspec.h:136
T value() const
Definition: datainpspec.h:231
Specifications for BinID/Coordinate/TrcNrs and offsets.
Definition: datainpspec.h:747
NumInpSpec< int > IntInpSpec
Definition: datainpspec.h:295
Rep rep__(od_int64 i) const
Definition: datainpspec.h:71
bool isset_
Definition: datainpspec.h:740
Rep rep__(bool b) const
Definition: datainpspec.h:74
virtual const char * text(int idx=0) const
Definition: datainpspec.h:243
NumInpSpec(T val, T start, T stop=mUdf(T), T step=1)
Definition: datainpspec.h:188
T stop
Definition: ranges.h:91
#define mDeprecated
Definition: plfdefs.h:213
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
StepInterval< T > * limits_
Definition: datainpspec.h:282
virtual const char * text(int idx=0) const
Definition: datainpspec.h:439
bool isSymmetric() const
Definition: datainpspec.h:520
void setSet(bool yesno=true)
Definition: datainpspec.h:668
NumInpSpec< T > & setLimits(const StepInterval< T > &r)
Definition: datainpspec.h:270
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:28
Definition: datainpspec.h:751
mDeprecated double getdValue(int idx=0) const
Definition: datainpspec.h:156
virtual int getIntValue(int idx=0) const
Definition: datainpspec.h:210
#define mDefDISSetDefValBaseClassImpl(typ)
Definition: datainpspec.h:164
StepInterval< T > * stpi(bool defval=false) const
Definition: datainpspec.h:569
T value_(int idx=0) const
Definition: datainpspec.h:536
mODTextTranslationClass(NumInpSpec) public
Definition: datainpspec.h:177
bool includes(const X &, bool allowrev) const
Definition: ranges.h:481
virtual bool isInsideLimits(int idx=0) const
Definition: datainpspec.h:250
virtual void setValue(const Interval< T > &intval)
Definition: datainpspec.h:385
Definition: datainpspec.h:34
const EnumDef * enumDef() const
Definition: datainpspec.h:705
~NumInpIntervalSpec()
Definition: datainpspec.h:364
NumInpIntervalSpec & setLimits(const Interval< T > &r, int idx=-1)
Definition: datainpspec.h:512
virtual const char * getDefaultStringValue(int idx=0) const
virtual void setDefaultValue(int i, int idx=0)
Definition: datainpspec.h:133
T start
Definition: ranges.h:90
Specifications for numerical intervals.
Definition: datainpspec.h:311
Definition: uistring.h:235
NumInpSpec< float > FloatInpSpec
Definition: datainpspec.h:297
DataType
Definition: seistype.h:52
virtual float getDefaultFValue(int idx=0) const
Definition: datainpspec.h:220
Rep rep__(double d) const
Definition: datainpspec.h:73
T * pt_value_(int idx=0, bool defval=false) const
Definition: datainpspec.h:550
int cur_
Definition: datainpspec.h:738
NumInpIntervalSpec< double > DoubleInpIntervalSpec
Definition: datainpspec.h:580
#define mDefDISSetValBaseClassImpl(typ)
Definition: datainpspec.h:161
void setValue(float f, int idx=0)
Definition: datainpspec.h:786
Interval< T > * interval_
Definition: datainpspec.h:526
#define mClass(module)
Definition: commondefs.h:161
2D point or vector class.
Definition: commontypes.h:58
void setSymmetric(bool yn)
Definition: datainpspec.h:518
bool withSymmetric() const
Definition: datainpspec.h:522
virtual bool setText(const char *s, int idx=0)
Definition: datainpspec.h:207
virtual bool hasLimits() const
Definition: datainpspec.h:249
Specifications for file-name inputs.
Definition: datainpspec.h:614
virtual const OD::String & name() const
Definition: namedobj.h:33
virtual void setDefaultValue(const char *s, int idx=0)
Definition: datainpspec.h:137
virtual bool isUndef(int idx=0) const
Definition: datainpspec.h:204
static const char * valuestr
Definition: datainpspec.h:153
Holds data pertinent to a certain enum. It does not know the enum values themselves, but treat them as integers.
Definition: enums.h:44
T defaultvalue_(int idx=0) const
Definition: datainpspec.h:542
virtual double getDefaultDValue(int idx=0) const
Definition: datainpspec.h:434
Rep rep__(const char *s) const
Definition: datainpspec.h:75
virtual int getDefaultIntValue(int idx=0) const
Definition: datainpspec.h:432
T value_
Definition: datainpspec.h:279
Specifications for boolean inputs.
Definition: datainpspec.h:634
Specifications for list of character string inputs.
Definition: datainpspec.h:685
virtual float getFValue(int idx=0) const
Definition: datainpspec.h:214
const Setup & setup(bool def=false) const
Definition: datainpspec.h:807
virtual Interval< T > * clone() const
Definition: ranges.h:406