OpendTect  6.3
velocityfunctiongrid.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 
16 #include "arrayndalgo.h"
17 #include "binidvalset.h"
18 #include "samplingdata.h"
19 #include "thread.h"
20 #include "notify.h"
21 #include "velocityfunction.h"
22 
23 class BinIDValueSet;
24 class Gridder2D;
26 
27 namespace Vel
28 {
29 
30 class GriddedSource;
31 
36 {
37 public:
39 
40  StepInterval<float> getAvailableZ() const;
41  bool moveTo(const BinID&);
42  bool fetchSources();
43 
44  bool isInfluencedBy(const BinID&) const;
45 
46  Gridder2D* getGridder() { return gridder_; }
47  void setGridder(const Gridder2D&);
48  void setTrendOrder(PolyTrend::Order);
49  void setLayerModel(const InterpolationLayerModel*);
50 
51 protected:
52  ~GriddedFunction();
53  friend class GriddedSource;
54 
55  bool computeVelocity(float z0, float dz, int nr,
56  float* res ) const;
57  ConstRefMan<Function> getInputFunction(const BinID& bid,int& source);
58  void fetchPerfectFit(const BinID&);
59 
62  const Function* directsource_;
63 
67 
69 };
70 
71 
73 {
74 public:
75  GriddedSource();
76  const VelocityDesc& getDesc() const;
77  const char* factoryKeyword() const { return sType(); }
78  static const char* sType() { return "GridVelocity"; }
79 
80  const Gridder2D* getGridder() const;
81  void setGridder(Gridder2D*);
82  void setTrendOrder(PolyTrend::Order);
83 
84  void setSource(ObjectSet<FunctionSource>&);
85  void setSource(const DBKeySet&);
86  void getSources(DBKeySet&) const;
87 
88  void setLayerModel(const InterpolationLayerModel*);
89 
91 
92  NotifierAccess* changeNotifier() { return &notifier_; }
93  BinID changeBinID() const { return changebid_; }
94 
95  GriddedFunction* createFunction();
96 
97  void fillPar(IOPar&) const;
98  bool usePar(const IOPar&);
99 
100 protected:
101  friend class GriddedFunction;
102  GriddedFunction* createFunction(const BinID&);
103  ~GriddedSource();
104  bool initGridder();
105 
106  void sourceChangeCB(CallBacker*);
107 
109 
116 
117  BinIDValueSet sourcepos_; //All sources
118 
121 };
122 
123 } // namespace Vel
#define mExpClass(module)
Definition: commondefs.h:157
Velocity.
Definition: velocityfunction.h:30
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
PolyTrend::Order trendorder_
Definition: velocityfunctiongrid.h:65
Definition: velocityfunction.h:79
TypeSet< int > sources_
Definition: velocityfunctiongrid.h:61
TypeSet< float > gridvalues_
Definition: velocityfunctiongrid.h:68
const InterpolationLayerModel * layermodel_
Definition: velocityfunctiongrid.h:66
Interface class for Notifier. See comments there.
Definition: notify.h:20
Definition: veldesc.h:36
PolyTrend::Order trendorder_
Definition: velocityfunctiongrid.h:113
Generic interface for 2D gridding.
Definition: gridder2d.h:30
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
ObjectSet< FunctionSource > datasources_
Definition: velocityfunctiongrid.h:108
const Function * directsource_
Definition: velocityfunctiongrid.h:62
bool gridderinited_
Definition: velocityfunctiongrid.h:114
TypeSet< BinID > gridsourcebids_
Definition: velocityfunctiongrid.h:119
Definition: dbkey.h:98
const char * factoryKeyword() const
Definition: velocityfunctiongrid.h:77
Definition: velocityfunctiongrid.h:72
Notifier< GriddedSource > notifier_
Definition: velocityfunctiongrid.h:110
Gridder2D * gridder_
Definition: velocityfunctiongrid.h:112
BinIDValueSet sourcepos_
Definition: velocityfunctiongrid.h:117
Class to help setup a callback handling.
Definition: notify.h:121
Set of pointers to objects.
Definition: commontypes.h:28
void getSources(const EM::PosID &, TypeSet< EM::PosID > &) const
Definition: interpollayermodel.h:21
Definition: velocityfunctiongrid.h:35
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
ObjectSet< const Function > velocityfunctions_
Definition: velocityfunctiongrid.h:60
static const char * sType()
Definition: velocityfunctiongrid.h:78
BinID changeBinID() const
Definition: velocityfunctiongrid.h:93
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
Gridder2D * getGridder()
Definition: velocityfunctiongrid.h:46
Gridder2D * gridder_
Definition: velocityfunctiongrid.h:64
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:28
TypeSet< Coord > gridsourcecoords_
Definition: velocityfunctiongrid.h:120
const InterpolationLayerModel * layermodel_
Definition: velocityfunctiongrid.h:115
A Pos::IdxPairValueSet with BinIDs.
Definition: binidvalset.h:21
NotifierAccess * changeNotifier()
Definition: velocityfunctiongrid.h:92
BinID changebid_
Definition: velocityfunctiongrid.h:111
Order
Definition: arrayndalgo.h:1620
Definition: ptrman.h:227
Definition: velocityfunction.h:39

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