OpendTect  6.3
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 ________________________________________________________________________
10 
11 
12 -*/
13 
14 #include "velocitymod.h"
15 #include "enums.h"
16 #include "factory.h"
17 #include "dbkey.h"
18 #include "position.h"
19 #include "ranges.h"
20 #include "refcount.h"
21 #include "samplingdata.h"
22 #include "threadlock.h"
23 #include "veldesc.h"
24 
25 namespace Attrib { class DataHolder; }
26 
27 class BinIDValueSet;
28 
29 
30 namespace Vel
31 {
32 
33 class FunctionSource;
34 
39 mExpClass(Velocity) Function : public RefCount::Referenced
40 {
41 public:
43  const FunctionSource& getSource() const { return source_; }
44 
45  virtual const VelocityDesc& getDesc() const;
46 
47  float getVelocity(float z) const;
48  const BinID& getBinID() const;
49  virtual bool moveTo(const BinID&);
50 
51  virtual void removeCache();
52 
53  virtual StepInterval<float> getAvailableZ() const = 0;
54  void setDesiredZRange(const StepInterval<float>&);
55  const StepInterval<float>& getDesiredZ() const;
56 
57 protected:
58  virtual ~Function();
59 
60  virtual bool computeVelocity(float z0, float dz, int nr,
61  float* res ) const = 0;
62 
66 
67 private:
68  friend class FunctionSource;
69 
73 };
74 
75 
79 mExpClass(Velocity) FunctionSource : public RefCount::Referenced
80  , public CallBacker
81 {
82 public:
84  FunctionSource,const DBKey&,factory)
85 
86  virtual BufferString userName() const;
87  virtual const VelocityDesc& getDesc() const = 0;
88  virtual void getSurroundingPositions(const BinID&,
89  BinIDValueSet&) const;
90  virtual void getAvailablePositions(BinIDValueSet&) const {}
91 
92  ConstRefMan<Function> getFunction(const BinID&);
93  virtual Function* createFunction(const BinID&) = 0;
94 
95  const DBKey& dbKey() const { return mid_; }
96 
97  virtual NotifierAccess* changeNotifier() { return 0; }
98  virtual BinID changeBinID() const { return BinID(-1,-1); }
99 
100  virtual void fillPar(IOPar&) const {}
101  virtual bool usePar(const IOPar&) { return true; }
102 
103  const uiString errMsg() const;
104 
105 protected:
106 
107  friend class Function;
108  void removeFunction(const Function*);
109 
110  int findFunction(const BinID&) const;
112 
113 
116 
119 };
120 
121 } // namespace Vel
BinID bid_
Definition: velocityfunction.h:64
#define mExpClass(module)
Definition: commondefs.h:157
Velocity.
Definition: velocityfunction.h:30
virtual void getAvailablePositions(BinIDValueSet &) const
Definition: velocityfunction.h:90
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
virtual NotifierAccess * changeNotifier()
Definition: velocityfunction.h:97
Definition: velocityfunction.h:79
A lock of a type that (hopefully) suits your needs. To use it, you need the Locker class...
Definition: threadlock.h:51
Interface class for Notifier. See comments there.
Definition: notify.h:20
Definition: veldesc.h:36
virtual BinID changeBinID() const
Definition: velocityfunction.h:98
StepInterval< float > desiredrg_
Definition: velocityfunction.h:65
FunctionSource & source_
Definition: velocityfunction.h:63
Definition: uistring.h:88
const DBKey & dbKey() const
Definition: velocityfunction.h:95
#define mDefineFactory1ParamInClass(T, P, funcname)
Definition: factory.h:445
Set of pointers to objects.
Definition: commontypes.h:28
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
virtual bool usePar(const IOPar &)
Definition: velocityfunction.h:101
Threads::Lock cachelock_
Definition: velocityfunction.h:70
SamplingData< double > cachesd_
Definition: velocityfunction.h:72
uiString errmsg_
Definition: velocityfunction.h:115
virtual void fillPar(IOPar &) const
Definition: velocityfunction.h:100
ObjectSet< Function > functions_
Definition: velocityfunction.h:117
Threads::Lock lock_
Definition: velocityfunction.h:118
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:28
A Pos::IdxPairValueSet with BinIDs.
Definition: binidvalset.h:21
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
const char * errMsg() const
Definition: horizontracker.h:59
const FunctionSource & getSource() const
Definition: velocityfunction.h:43
DBKey mid_
Definition: velocityfunction.h:114
Definition: ptrman.h:227
Semblance Attribute.
Definition: attribdataholder.h:21
Definition: velocityfunction.h:39
TypeSet< float > * cache_
Definition: velocityfunction.h:71

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