OpendTect  6.6
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  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "generalmod.h"
15 #include "enums.h"
16 #include "bufstringset.h"
17 #include "repos.h"
18 #include "propertyref.h"
19 
25 {
26 public:
27 
28  enum Type { Den, PVel, SVel };
30 
31  ElasticFormula(const char* nm,const char* expr,Type tp)
32  : NamedObject( nm )
33  , expression_(expr ? expr : "")
34  , type_(tp) {}
35 
37  { *this = fm; }
38 
39  ElasticFormula& operator =(const ElasticFormula&);
40  inline bool operator ==( const ElasticFormula& pr ) const
41  { return name() == pr.name(); }
42  inline bool operator !=( const ElasticFormula& pr ) const
43  { return name() != pr.name(); }
44 
45  void setExpression( const char* expr) { expression_ = expr; }
46  const char* expression() const { return expression_.str();}
47 
48  inline Type type() const { return type_; }
49  inline bool hasType( Type t ) const { return type_ == t;}
50 
51  BufferStringSet& variables() { return variables_; }
52  const BufferStringSet& variables() const { return variables_; }
53  BufferStringSet& units() { return units_; }
54  const BufferStringSet& units() const { return units_; }
55  const char* parseVariable(int idx,float&) const;
56 
57  void fillPar(IOPar&) const;
58  void usePar(const IOPar&);
59 
60 protected:
61 
65 
67 };
68 
69 
75 {
76 public:
77 
78  void addFormula(const ElasticFormula&);
79  void addFormula(const char* nm, const char* expr,
81  const BufferStringSet& vars);
82 
85 
86  void clear() { formulas_.erase(); }
87 
88  bool write(Repos::Source) const;
89 
90 protected:
91 
93 
96 
98 };
99 
101 
102 
108 {
109 public:
110  ElasticPropertyRef(const char* nm,
111  const ElasticFormula& f)
112  : PropertyRef(nm)
113  , formula_(f)
114  { stdtype_ = elasticToStdType(formula_.type()); }
115 
116 
118 
119  ElasticFormula& formula() { return formula_; }
120  const ElasticFormula& formula() const { return formula_; }
121 
122  ElasticFormula::Type elasticType() { return formula_.type(); }
123  ElasticFormula::Type elasticType() const { return formula_.type(); }
124 
125 protected:
126 
128 
129 };
130 
131 
Repos::Source
Source
Definition: repos.h:24
NamedObject
object with a name.
Definition: namedobj.h:42
ElasticFormula::fillPar
void fillPar(IOPar &) const
ElasticFormulaRepository::addFormula
void addFormula(const ElasticFormula &)
mGlobal
#define mGlobal(module)
Definition: commondefs.h:180
ElasticFormula::variables
BufferStringSet & variables()
Definition: elasticprop.h:51
ElasticPropertyRef::formula
const ElasticFormula & formula() const
Definition: elasticprop.h:120
BufferStringSet
Set of BufferString objects.
Definition: bufstringset.h:26
ElasticPropertyRef::elasticType
ElasticFormula::Type elasticType()
Definition: elasticprop.h:122
ElasticFormulaRepository
ElasticFormula repository.
Definition: elasticprop.h:75
ElasticPropertyRef::ElasticPropertyRef
ElasticPropertyRef(const char *nm, const ElasticFormula &f)
Definition: elasticprop.h:110
ElasticPropertyRef::elasticToStdType
static PropertyRef::StdType elasticToStdType(ElasticFormula::Type)
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
ElasticFormula::units
BufferStringSet & units()
Definition: elasticprop.h:53
ElasticFormula::variables
const BufferStringSet & variables() const
Definition: elasticprop.h:52
ElasticFormula::type_
Type type_
Definition: elasticprop.h:66
ElasticFormula::units_
BufferStringSet units_
Definition: elasticprop.h:64
operator==
bool operator==(const ArrayNDInfo &a1, const ArrayNDInfo &a2)
Definition: arrayndinfo.h:81
ElasticFormulaRepository::formulas_
TypeSet< ElasticFormula > formulas_
Definition: elasticprop.h:92
NamedObject::name
virtual const name_type & name() const
Definition: namedobj.h:54
ElasticFormulaRepository::write
bool write(Repos::Source) const
ElasticFormula::type
Type type() const
Definition: elasticprop.h:48
ElasticFormulaRepository::addRockPhysicsFormulas
void addRockPhysicsFormulas()
ElasticFormulaRepository::ElFR
friend ElasticFormulaRepository & ElFR()
ElasticFormula::Type
Type
Definition: elasticprop.h:28
ElasticFormula
Elastic formula def to generate elastic layers.
Definition: elasticprop.h:25
ElasticFormula::mDeclareEnumUtils
mDeclareEnumUtils(Type) ElasticFormula(const char *nm
operator!=
bool operator!=(const ArrayNDInfo &a1, const ArrayNDInfo &a2)
Definition: arrayndinfo.h:90
ElasticFormulaRepository::addFormula
void addFormula(const char *nm, const char *expr, ElasticFormula::Type, const BufferStringSet &vars)
ElasticFormula::expression
const char * expression() const
Definition: elasticprop.h:46
ElasticFormulaRepository::clear
void clear()
Definition: elasticprop.h:86
ElFR
ElasticFormulaRepository & ElFR()
ElasticFormula::variables_
BufferStringSet variables_
Definition: elasticprop.h:63
ElasticFormula::units
const BufferStringSet & units() const
Definition: elasticprop.h:54
ElasticPropertyRef
Elastic property reference data.
Definition: elasticprop.h:108
ElasticFormulaRepository::addPreDefinedFormulas
void addPreDefinedFormulas()
propertyref.h
ElasticPropertyRef::elasticType
ElasticFormula::Type elasticType() const
Definition: elasticprop.h:123
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
bufstringset.h
enums.h
PropertyRef::StdType
StdType
Definition: propertyref.h:46
repos.h
ElasticFormula::setExpression
void setExpression(const char *expr)
Definition: elasticprop.h:45
ElasticFormula::parseVariable
const char * parseVariable(int idx, float &) const
ElasticPropertyRef::formula_
ElasticFormula formula_
Definition: elasticprop.h:127
ElasticFormulaRepository::getByType
void getByType(ElasticFormula::Type, TypeSet< ElasticFormula > &) const
ElasticFormula::usePar
void usePar(const IOPar &)
ElasticFormula::ElasticFormula
ElasticFormula(const ElasticFormula &fm)
Definition: elasticprop.h:36
ElasticFormula::hasType
bool hasType(Type t) const
Definition: elasticprop.h:49
ElasticPropertyRef::formula
ElasticFormula & formula()
Definition: elasticprop.h:119
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
ElasticFormula::expression_
BufferString expression_
Definition: elasticprop.h:62
TypeSet< ElasticFormula >

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