OpendTect  6.6
mnemonics.h
Go to the documentation of this file.
1 #pragma once
2 /*+
3 ________________________________________________________________________
4 
5  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
6  Author: Khushnood Qadir
7  Date: Aug 2020
8  RCS: $Id$
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "generalmod.h"
14 #include "enums.h"
15 #include "bufstringset.h"
16 #include "namedobj.h"
17 #include "objectset.h"
18 #include "propertyref.h"
19 #include "ranges.h"
20 #include "uistring.h"
21 #include "unitofmeasure.h"
22 
23 class MathProperty;
24 
25 mExpClass(General) Mnemonic : public NamedObject
27 public:
28 
29  enum Scale { Linear, Logarithmic };
31 
32  Mnemonic( const char* nm=nullptr )
33  : NamedObject(nm)
34  , mathdef_(nullptr) {}
35  Mnemonic( const Mnemonic& mnc )
36  : NamedObject(mnc.name())
37  , mathdef_(nullptr) { *this = mnc; }
38  virtual ~Mnemonic();
39 
40  Mnemonic& operator =(const Mnemonic&);
41  bool operator ==( const Mnemonic& mnc ) const;
42  bool operator !=( const Mnemonic& mnc ) const;
43  bool isKnownAs(const char*) const;
44  bool hasFixedDef() const { return mathdef_; }
45 
46 
47  mExpStruct(General) DispDefs
48  {
49  DispDefs()
50  : range_(mUdf(float),mUdf(float))
51  , typicalrange_(mUdf(float),mUdf(float)) {}
52 
53  Color color_;
54  Interval<float> range_;
55  Interval<float> typicalrange_;
56  BufferString unit_;
57  Mnemonic::Scale scale_;
58  };
59 
60  DispDefs disp_;
61 
62  inline BufferStringSet& aliases() { return aliases_; }
63  inline const BufferStringSet& aliases() const { return aliases_; }
64  inline PropertyRef::StdType stdType() const { return stdtype_; }
65  const MathProperty& fixedDef() const{ return *mathdef_; }
66 
68  { stdtype_ = t; }
69  inline bool hasType( PropertyRef::StdType t ) const
70  { return stdtype_ == t; }
71  inline bool isCompatibleWith( const PropertyRef& pr ) const
72  { return hasType(pr.stdType()); }
73  void setFixedDef(const MathProperty*);
74 
75 protected:
76 
81 
82  friend class MnemonicSet;
83  void usePar(const IOPar&);
84  void fillPar(IOPar&) const;
85 };
86 
87 
89 {
90 public:
92  MnemonicSet( const MnemonicSet& mns )
93  : ObjectSet<Mnemonic>(){ *this = mns; }
95 
97  inline Mnemonic* find(const char* nm) { return fnd(nm); }
98  inline const Mnemonic* find(const char* nm) const { return fnd(nm); }
101  //first match only
103  //first match only
104  const Mnemonic* getGuessed(const UnitOfMeasure*) const;
105  //first match only
107  //first match only
108  void getNames(BufferStringSet&) const;
109 
110  int add(Mnemonic*);
111  int indexOf(const char*) const;
112  bool save() const;
114  bool writeTo(ascostream&) const;
115  int indexOf( const Mnemonic* mn ) const
116  { return ObjectSet<Mnemonic>::indexOf(mn); }
117  inline bool isPresent( const Mnemonic* mn ) const
118  { return ObjectSet<Mnemonic>::isPresent(mn); }
119  inline bool isPresent( const char* nm ) const
120  { return indexOf(nm) >= 0; }
121 
122 protected:
123 
124  Mnemonic* fnd(const char*) const;
125  virtual MnemonicSet& doAdd( Mnemonic* mn )
126  { add(mn); return *this; }
127 };
128 
129 
130 mGlobal( General ) const MnemonicSet& MNC();
131 inline MnemonicSet& eMNC() { return const_cast<MnemonicSet&>(MNC()); }
132 
133 
135 {
136 public:
137 
139  bool operator ==(const MnemonicSelection&) const;
140 
141  int indexOf(const char*) const;
142  int find(const char*) const;
143 
144  inline bool isPresent( const char* mnnm ) const
145  { return indexOf( mnnm ) >= 0; }
146  inline int indexOf( const Mnemonic* mn ) const
147  { return ObjectSet<const Mnemonic>::indexOf(mn); }
148  inline bool isPresent( const Mnemonic* mn ) const
150 
151  inline const Mnemonic* getSingle( const char* nm ) const
152  { const int idx = indexOf(nm);
153  return idx < 0 ? 0 : (*this)[idx]; }
154 
155  static MnemonicSelection getAll(const Mnemonic* exclude=nullptr);
156 };
MnemonicSelection::isPresent
bool isPresent(const char *mnnm) const
Definition: mnemonics.h:144
NamedObject
object with a name.
Definition: namedobj.h:42
Mnemonic::disp_
DispDefs disp_
Definition: mnemonics.h:58
Mnemonic::Scale
Scale
Definition: mnemonics.h:29
Mnemonic::mathdef_
MathProperty * mathdef_
Definition: mnemonics.h:80
uistring.h
Mnemonic::aliases
const BufferStringSet & aliases() const
Definition: mnemonics.h:63
mGlobal
#define mGlobal(module)
Definition: commondefs.h:180
ObjectSet< Mnemonic >
Mnemonic::hasType
bool hasType(PropertyRef::StdType t) const
Definition: mnemonics.h:69
BufferStringSet
Set of BufferString objects.
Definition: bufstringset.h:26
unitofmeasure.h
MnemonicSet::save
bool save() const
MnemonicSelection::getSingle
const Mnemonic * getSingle(const char *nm) const
Definition: mnemonics.h:151
MnemonicSet::indexOf
int indexOf(const Mnemonic *mn) const
Definition: mnemonics.h:115
MNC
const MnemonicSet & MNC()
Mnemonic::stdtype_
PropertyRef::StdType stdtype_
Definition: mnemonics.h:79
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
namedobj.h
eMNC
MnemonicSet & eMNC()
Definition: mnemonics.h:131
MnemonicSet::~MnemonicSet
~MnemonicSet()
PropertyRef::stdType
StdType stdType() const
Definition: propertyref.h:73
MnemonicSet::MnemonicSet
MnemonicSet(const MnemonicSet &mns)
Definition: mnemonics.h:92
MnemonicSet::MnemonicSet
MnemonicSet()
Definition: mnemonics.h:91
MnemonicSet::indexOf
int indexOf(const char *) const
Mnemonic::fillPar
void fillPar(IOPar &) const
Mnemonic::setFixedDef
void setFixedDef(const MathProperty *)
MnemonicSet::add
int add(Mnemonic *)
Mnemonic
Definition: mnemonics.h:26
operator==
bool operator==(const ArrayNDInfo &a1, const ArrayNDInfo &a2)
Definition: arrayndinfo.h:81
MnemonicSelection::getAll
static MnemonicSelection getAll(const Mnemonic *exclude=nullptr)
MnemonicSelection::isPresent
bool isPresent(const Mnemonic *mn) const
Definition: mnemonics.h:148
Mnemonic::fixedDef
const MathProperty & fixedDef() const
Definition: mnemonics.h:65
MnemonicSelection::indexOf
int indexOf(const char *) const
ascostream
OpendTect standard ascii format file writing.
Definition: ascstream.h:32
MnemonicSet
Definition: mnemonics.h:89
MnemonicSet::getGuessed
const Mnemonic * getGuessed(PropertyRef::StdType) const
ObjectSet::isPresent
virtual bool isPresent(const T *) const
Definition: objectset.h:426
Mnemonic::aliases_
BufferStringSet aliases_
Definition: mnemonics.h:77
MnemonicSet::writeTo
bool writeTo(ascostream &) const
Mnemonic::aliases
BufferStringSet & aliases()
Definition: mnemonics.h:62
MnemonicSet::fnd
Mnemonic * fnd(const char *) const
indexOf
BufferStringSet::idx_type indexOf(const BufferStringSet &, const char *)
MnemonicSet::getGuessed
Mnemonic * getGuessed(const UnitOfMeasure *)
operator!=
bool operator!=(const ArrayNDInfo &a1, const ArrayNDInfo &a2)
Definition: arrayndinfo.h:90
MnemonicSet::operator=
MnemonicSet & operator=(const MnemonicSet &)
Taper::Linear
@ Linear
Definition: simpnumer.h:189
Mnemonic::mDeclareEnumUtils
mDeclareEnumUtils(Scale) Mnemonic(const char *nm
MnemonicSet::isPresent
bool isPresent(const Mnemonic *mn) const
Definition: mnemonics.h:117
MnemonicSet::getSet
MnemonicSet * getSet(const PropertyRef *)
Mnemonic::mExpStruct
mExpStruct(General) DispDefs
Definition: mnemonics.h:47
MnemonicSelection::find
int find(const char *) const
Property::name
const char * name() const
Mnemonic::hasFixedDef
bool hasFixedDef() const
Definition: mnemonics.h:44
Mnemonic::mODTextTranslationClass
mODTextTranslationClass(Mnemonic)
MnemonicSet::getNames
void getNames(BufferStringSet &) const
MnemonicSelection::indexOf
int indexOf(const Mnemonic *mn) const
Definition: mnemonics.h:146
propertyref.h
Mnemonic::setStdType
void setStdType(PropertyRef::StdType t)
Definition: mnemonics.h:67
Mnemonic::usePar
void usePar(const IOPar &)
MnemonicSelection::MnemonicSelection
MnemonicSelection()
Definition: mnemonics.h:138
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
PropertyRef
Ref Data for a (usually petrophysical) property.
Definition: propertyref.h:43
UnitOfMeasure
Unit of Measure.
Definition: unitofmeasure.h:35
bufstringset.h
ObjectSet::indexOf
virtual idx_type indexOf(const T *) const
Definition: objectset.h:420
Mnemonic::isKnownAs
bool isKnownAs(const char *) const
MathProperty
Calculated property.
Definition: mathproperty.h:32
enums.h
PropertyRef::StdType
StdType
Definition: propertyref.h:46
mUdf
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:274
MnemonicSet::readFrom
void readFrom(ascistream &)
ascistream
OpendTect standard ascii format file reading.
Definition: ascstream.h:83
Mnemonic::stdType
PropertyRef::StdType stdType() const
Definition: mnemonics.h:64
Mnemonic::isCompatibleWith
bool isCompatibleWith(const PropertyRef &pr) const
Definition: mnemonics.h:71
MnemonicSet::isPresent
bool isPresent(const char *nm) const
Definition: mnemonics.h:119
MnemonicSet::getGuessed
const Mnemonic * getGuessed(const UnitOfMeasure *) const
MnemonicSet::getGuessed
Mnemonic * getGuessed(PropertyRef::StdType)
ranges.h
MnemonicSet::find
const Mnemonic * find(const char *nm) const
Definition: mnemonics.h:98
Interval< float >
MnemonicSet::find
Mnemonic * find(const char *nm)
Definition: mnemonics.h:97
Color
Color is an RGB color object, with a transparancy. The storage is in a 4-byte integer,...
Definition: color.h:26
objectset.h
MnemonicSet::doAdd
virtual MnemonicSet & doAdd(Mnemonic *mn)
Definition: mnemonics.h:125
MnemonicSelection
Definition: mnemonics.h:135
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
Mnemonic::logtypename_
BufferString logtypename_
Definition: mnemonics.h:78

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