OpendTect  6.6
velocityfunction.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: K. Tingdahl
8  Date: April 2005
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 
13 -*/
14 
15 #include "velocitymod.h"
16 #include "enums.h"
17 #include "factory.h"
18 #include "multiid.h"
19 #include "position.h"
20 #include "ranges.h"
21 #include "refcount.h"
22 #include "samplingdata.h"
23 #include "threadlock.h"
24 #include "veldesc.h"
25 
26 namespace Attrib { class DataHolder; };
27 
28 class BinIDValueSet;
29 
30 
31 namespace Vel
32 {
33 
34 class FunctionSource;
35 
41 {
42 public:
43  void ref() const;
44  void unRef() const;
45  void unRefNoDelete() const;
46 
48  const FunctionSource& getSource() const { return source_; }
49 
50  virtual const VelocityDesc& getDesc() const;
51 
52  float getVelocity(float z) const;
53  const BinID& getBinID() const;
54  virtual bool moveTo(const BinID&);
55 
56  virtual void removeCache();
57 
58  virtual StepInterval<float> getAvailableZ() const = 0;
61 
62 protected:
63  virtual ~Function();
64 
65  virtual bool computeVelocity(float z0, float dz, int nr,
66  float* res ) const = 0;
67 
71 
72 private:
73  friend class FunctionSource;
74 
78 };
79 
80 
85 { mRefCountImplNoDestructor(FunctionSource)
86 public:
88  FunctionSource,const MultiID&,factory)
89 
90  virtual BufferString userName() const;
91  virtual const VelocityDesc& getDesc() const = 0;
92  virtual void getSurroundingPositions(const BinID&,
93  BinIDValueSet&) const;
94  virtual void getAvailablePositions(BinIDValueSet&) const {}
95 
97  virtual Function* createFunction(const BinID&) = 0;
98 
99  const MultiID& multiID() const { return mid_; }
100 
101  virtual NotifierAccess* changeNotifier() { return 0; }
102  virtual BinID changeBinID() const { return BinID(-1,-1); }
103 
104  virtual void fillPar(IOPar&) const {}
105  virtual bool usePar(const IOPar&) { return true; }
106 
107  const char* errMsg() const;
108 
109 protected:
110 
111  friend class Function;
112  void refFunction(const Function* v);
113  bool unRefFunction(const Function* v);
114 
115  int findFunction(const BinID&) const;
117 
118 
121 
125 };
126 
127 } // namespace Vel
128 
ConstRefMan
Definition: ptrman.h:233
Vel::FunctionSource::changeNotifier
virtual NotifierAccess * changeNotifier()
Definition: velocityfunction.h:101
Vel::Function::ref
void ref() const
Vel::Function::setDesiredZRange
void setDesiredZRange(const StepInterval< float > &)
Vel::Function::removeCache
virtual void removeCache()
Vel
Velocity.
Definition: velocityfunction.h:32
Vel::Function::cachelock_
Threads::Lock cachelock_
Definition: velocityfunction.h:75
Vel::Function
Definition: velocityfunction.h:41
Vel::FunctionSource::errmsg_
BufferString errmsg_
Definition: velocityfunction.h:120
factory.h
ObjectSet
Set of pointers to objects.
Definition: commontypes.h:31
Vel::Function::Function
Function(FunctionSource &)
BinIDValueSet
A Pos::IdxPairValueSet with BinIDs.
Definition: binidvalset.h:23
Vel::Function::computeVelocity
virtual bool computeVelocity(float z0, float dz, int nr, float *res) const =0
Vel::Function::getAvailableZ
virtual StepInterval< float > getAvailableZ() const =0
Vel::FunctionSource::getDesc
virtual mRefCountImplNoDestructor(FunctionSource) public const VelocityDesc & getDesc() const =0
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
samplingdata.h
veldesc.h
Vel::FunctionSource::unRefFunction
bool unRefFunction(const Function *v)
CallBacker
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:185
Vel::Function::moveTo
virtual bool moveTo(const BinID &)
Vel::Function::~Function
virtual ~Function()
Vel::Function::getDesc
virtual const VelocityDesc & getDesc() const
multiid.h
BinID
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:31
StepInterval< float >
mDefineFactory1ParamInClass
#define mDefineFactory1ParamInClass(T, P, funcname)
Definition: factory.h:446
VelocityDesc
Definition: veldesc.h:38
Vel::FunctionSource::functions_
ObjectSet< Function > functions_
Definition: velocityfunction.h:122
Vel::FunctionSource::getSurroundingPositions
virtual void getSurroundingPositions(const BinID &, BinIDValueSet &) const
Vel::FunctionSource::changeBinID
virtual BinID changeBinID() const
Definition: velocityfunction.h:102
NotifierAccess
Interface class for Notifier. See comments there.
Definition: notify.h:22
Vel::Function::getDesiredZ
const StepInterval< float > & getDesiredZ() const
Vel::FunctionSource::mid_
MultiID mid_
Definition: velocityfunction.h:119
Vel::Function::unRefNoDelete
void unRefNoDelete() const
Vel::FunctionSource::errMsg
const char * errMsg() const
SamplingData< double >
Vel::FunctionSource::fillPar
virtual void fillPar(IOPar &) const
Definition: velocityfunction.h:104
Vel::FunctionSource::refFunction
void refFunction(const Function *v)
Vel::Function::desiredrg_
StepInterval< float > desiredrg_
Definition: velocityfunction.h:70
Vel::Function::bid_
BinID bid_
Definition: velocityfunction.h:69
Vel::FunctionSource::getFunction
ConstRefMan< Function > getFunction(const BinID &)
Vel::FunctionSource::refcounts_
TypeSet< int > refcounts_
Definition: velocityfunction.h:123
position.h
Vel::FunctionSource::findFunction
int findFunction(const BinID &) const
Caller must readlock before calling.
MultiID
Compound key consisting of ints.
Definition: multiid.h:24
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
enums.h
Vel::FunctionSource::getAvailablePositions
virtual void getAvailablePositions(BinIDValueSet &) const
Definition: velocityfunction.h:94
Vel::Function::getVelocity
float getVelocity(float z) const
threadlock.h
Vel::FunctionSource::usePar
virtual bool usePar(const IOPar &)
Definition: velocityfunction.h:105
Vel::Function::getSource
const FunctionSource & getSource() const
Definition: velocityfunction.h:48
Vel::Function::unRef
void unRef() const
Vel::FunctionSource::lock_
Threads::Lock lock_
Definition: velocityfunction.h:124
Vel::Function::getBinID
const BinID & getBinID() const
Vel::Function::source_
FunctionSource & source_
Definition: velocityfunction.h:68
refcount.h
Vel::FunctionSource::multiID
const MultiID & multiID() const
Definition: velocityfunction.h:99
ranges.h
Attrib
Semblance Attribute.
Definition: attribdataholder.h:25
Vel::FunctionSource::createFunction
virtual Function * createFunction(const BinID &)=0
Threads::Lock
A lock of a type that (hopefully) suits your needs. To use it, you need the Locker class.
Definition: threadlock.h:53
Vel::Function::cache_
TypeSet< float > * cache_
Definition: velocityfunction.h:76
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
Vel::Function::cachesd_
SamplingData< double > cachesd_
Definition: velocityfunction.h:77
Vel::FunctionSource
Definition: velocityfunction.h:85
TypeSet< float >

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