OpendTect  6.3
elasticprop.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: July 2011
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "generalmod.h"
14 #include "enums.h"
15 #include "bufstringset.h"
16 #include "repos.h"
17 #include "propertyref.h"
18 
24 {
25 public:
26 
27  enum Type { Den, PVel, SVel };
29 
30  ElasticFormula(const char* nm,const char* expr,Type tp)
31  : NamedObject( nm )
32  , expression_(expr ? expr : "")
33  , type_(tp) {}
34 
36  { *this = fm; }
37 
38  ElasticFormula& operator =(const ElasticFormula&);
39  inline bool operator ==( const ElasticFormula& pr ) const
40  { return name() == pr.name(); }
41  inline bool operator !=( const ElasticFormula& pr ) const
42  { return name() != pr.name(); }
43 
44  void setExpression( const char* expr) { expression_ = expr; }
45  const char* expression() const { return expression_.str();}
46 
47  inline Type type() const { return type_; }
48  inline bool hasType( Type t ) const { return type_ == t;}
49 
50  BufferStringSet& variables() { return variables_; }
51  const BufferStringSet& variables() const { return variables_; }
52  BufferStringSet& units() { return units_; }
53  const BufferStringSet& units() const { return units_; }
54  const char* parseVariable(int idx,float&) const;
55 
56  void fillPar(IOPar&) const;
57  void usePar(const IOPar&);
58 
59 protected:
60 
64 
66 };
67 
68 
74 {
75 public:
76 
77  void addFormula(const ElasticFormula&);
78  void addFormula(const char* nm, const char* expr,
80  const BufferStringSet& vars);
81 
82  void getByType(ElasticFormula::Type,
84 
85  void clear() { formulas_.erase(); }
86 
87  bool write(Repos::Source) const;
88 
89 protected:
90 
92 
93  void addRockPhysicsFormulas();
94  void addPreDefinedFormulas();
95 
96  mGlobal(General) friend ElasticFormulaRepository& ElFR();
97 };
98 
99 mGlobal(General) ElasticFormulaRepository& ElFR();
100 
101 
107 {
108 public:
109  ElasticPropertyRef(const char* nm,
110  const ElasticFormula& f)
111  : PropertyRef(nm)
112  , formula_(f)
113  { stdtype_ = elasticToStdType(formula_.type()); }
114 
115 
116  static PropertyRef::StdType elasticToStdType(ElasticFormula::Type);
117 
118  ElasticFormula& formula() { return formula_; }
119  const ElasticFormula& formula() const { return formula_; }
120 
121  ElasticFormula::Type elasticType() { return formula_.type(); }
122  ElasticFormula::Type elasticType() const { return formula_.type(); }
123 
124 protected:
125 
127 
128 };
#define mExpClass(module)
Definition: commondefs.h:157
BufferStringSet & variables()
Definition: elasticprop.h:50
ElasticFormula repository.
Definition: elasticprop.h:73
void setExpression(const char *expr)
Definition: elasticprop.h:44
ElasticPropertyRef(const char *nm, const ElasticFormula &f)
Definition: elasticprop.h:109
bool operator==(const ArrayNDInfo &a1, const ArrayNDInfo &a2)
Definition: arrayndinfo.h:51
Elastic formula def to generate elastic layers.
Definition: elasticprop.h:23
#define mGlobal(module)
Definition: commondefs.h:160
Type type_
Definition: elasticprop.h:65
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
const BufferStringSet & units() const
Definition: elasticprop.h:53
Type
Definition: elasticprop.h:27
Ref Data for a (usually petrophysical) property.
Definition: propertyref.h:40
ElasticFormula & formula()
Definition: elasticprop.h:118
const BufferStringSet & variables() const
Definition: elasticprop.h:51
ElasticFormulaRepository & ElFR()
ElasticFormula formula_
Definition: elasticprop.h:126
Set of BufferString objects.
Definition: bufstringset.h:25
Type type() const
Definition: elasticprop.h:47
#define mDeclareEnumUtils(enm)
Some utilities surrounding the often needed enum <-> string table.
Definition: enums.h:188
BufferStringSet & units()
Definition: elasticprop.h:52
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
BufferString expression_
Definition: elasticprop.h:61
Source
Definition: repos.h:23
TypeSet< ElasticFormula > formulas_
Definition: elasticprop.h:91
bool operator!=(const ArrayNDInfo &a1, const ArrayNDInfo &a2)
Definition: arrayndinfo.h:60
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
void clear()
Definition: elasticprop.h:85
object with a name.
Definition: namedobj.h:20
ElasticFormula::Type elasticType() const
Definition: elasticprop.h:122
const ElasticFormula & formula() const
Definition: elasticprop.h:119
StdType
Definition: propertyref.h:44
BufferStringSet variables_
Definition: elasticprop.h:62
ElasticFormula::Type elasticType()
Definition: elasticprop.h:121
BufferStringSet units_
Definition: elasticprop.h:63
Elastic property reference data.
Definition: elasticprop.h:106
virtual const OD::String & name() const
Definition: namedobj.h:33
const char * expression() const
Definition: elasticprop.h:45
bool hasType(Type t) const
Definition: elasticprop.h:48
ElasticFormula(const ElasticFormula &fm)
Definition: elasticprop.h:35

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