OpendTect  6.6
volprocchain.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: October 2006
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 
13 -*/
14 
15 #include "volumeprocessingmod.h"
16 #include "volprocstep.h"
17 #include "multiid.h"
18 #include "refcount.h"
19 #include "threadlock.h"
20 
21 class Scaler;
22 
23 namespace VolProc
24 {
25 
28 mExpClass(VolumeProcessing) Chain
30 public:
31  Chain();
32 
33  mExpClass(VolumeProcessing) Connection
34  {
35  public:
38  Step::ID inpstep=Step::cUndefID(),
40 
41  bool isUdf() const;
42  bool operator==(const Connection&) const;
43  bool operator!=(const Connection&) const;
44 
45  void fillPar(IOPar&,const char* key) const;
46  bool usePar(const IOPar&,const char* key);
47 
51 
55  };
56 
57  mExpClass(VolumeProcessing) Web
58  {
59  public:
60  bool addConnection(const Connection&);
62  void getConnections(Step::ID,bool input,
63  TypeSet<Connection>&) const;
68  { return connections_; }
70  { return connections_; }
71  private:
73  };
74 
75  bool addConnection(const Connection&);
78  const Web& getWeb() const { return web_; }
79 
80  void setZStep( float z, bool zist )
81  { zstep_=z; zist_ = zist; }
82  float getZStep() const { return zstep_; }
83  bool zIsT() const { return zist_; }
84 
85  int nrSteps() const;
86  Step* getStep(int);
87  Step* getStepFromName(const char*);
88  const Step* getStepFromName(const char*) const;
90  const Step* getStepFromID(Step::ID) const;
91  int indexOf(const Step*) const;
92  void addStep(Step*);
93  void insertStep(int,Step*);
94  void swapSteps(int,int);
95  void removeStep(int);
96  const ObjectSet<Step>& getSteps() const { return steps_; }
98 
102 
103  const VelocityDesc* getVelDesc() const;
104 
105  void fillPar(IOPar&) const;
106  bool usePar(const IOPar&);
107 
108  void setStorageID(const MultiID& mid);
109  const MultiID& storageID() const { return storageid_; }
110  uiString name() const;
111 
112  bool areSamplesIndependent() const;
113  bool needsFullVolume() const;
114  uiString errMsg() const;
115 
116  Step::ID getNewStepID() { return freeid_++; }
117 
118 private:
119 
120  friend class ChainExecutor;
121 
122  bool validConnection(const Connection&) const;
123 
124  static const char* sKeyNrSteps() { return "Nr Steps"; }
125  static const char* sKeyStepType() { return "Type"; }
126  static const char* sKeyNrConnections() { return "Nr Connections"; }
127  static const char* sKeyConnection(int idx,BufferString&);
128 
131 
135 
136  float zstep_;
137  bool zist_;
138 
142 
143 };
144 
145 } // namespace VolProc
146 
147 #include "volprocchainexec.h" // this include will go after 6.0
148 
VolProc::Step::cUndefID
static ID cUndefID()
Definition: volprocstep.h:47
VolProc::Chain::needsFullVolume
bool needsFullVolume() const
VolProc
Adapter for a VolProc chain to external attribute calculation.
Definition: seisdatapackwriter.h:24
VolProc::Chain::removeStep
void removeStep(int)
VolProc::Chain::steps_
ObjectSet< Step > steps_
Definition: volprocchain.h:133
VolProc::Chain::getSteps
const ObjectSet< Step > & getSteps() const
Definition: volprocchain.h:96
ObjectSet
Set of pointers to objects.
Definition: commontypes.h:31
VolProc::Chain::sKeyNrSteps
static const char * sKeyNrSteps()
Definition: volprocchain.h:124
VolProc::Step::ID
int ID
Definition: volprocstep.h:44
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
VolProc::Chain::Web::removeConnection
void removeConnection(const Connection &)
VolProc::Chain::validConnection
bool validConnection(const Connection &) const
VolProc::Chain::storageID
const MultiID & storageID() const
Definition: volprocchain.h:109
VolProc::Chain
A chain of Steps that can be applied to a volume of scalars.
Definition: volprocchain.h:29
VolProc::Step::InputSlotID
int InputSlotID
Definition: volprocstep.h:45
VolProc::Chain::getZStep
float getZStep() const
Definition: volprocchain.h:82
VolProc::Chain::mRefCountImpl
mRefCountImpl(Chain)
VolProc::Chain::getStepFromName
Step * getStepFromName(const char *)
VolProc::Chain::nrSteps
int nrSteps() const
VolProc::Chain::Connection::operator!=
bool operator!=(const Connection &) const
VolProc::Chain::zIsT
bool zIsT() const
Definition: volprocchain.h:83
VolProc::Chain::Connection::outputslotid_
Step::OutputSlotID outputslotid_
Definition: volprocchain.h:54
VolProc::Chain::zist_
bool zist_
Definition: volprocchain.h:137
mODTextTranslationClass
#define mODTextTranslationClass(clss)
Definition: uistring.h:40
VolProc::Chain::removeConnection
void removeConnection(const Connection &)
VolProc::Chain::fillPar
void fillPar(IOPar &) const
VolProc::Chain::usePar
bool usePar(const IOPar &)
VolProc::Chain::areSamplesIndependent
bool areSamplesIndependent() const
VolProc::Chain::zstep_
float zstep_
Definition: volprocchain.h:136
VolProc::Chain::setStorageID
void setStorageID(const MultiID &mid)
multiid.h
VolProc::Chain::storageid_
MultiID storageid_
Definition: volprocchain.h:132
VolProc::Chain::outputstepid_
Step::ID outputstepid_
Definition: volprocchain.h:129
VelocityDesc
Definition: veldesc.h:38
VolProc::Chain::errmsg_
uiString errmsg_
Definition: volprocchain.h:139
VolProc::Chain::Connection::fillPar
void fillPar(IOPar &, const char *key) const
Scaler
Scaling of floating point numbers.
Definition: scaler.h:33
VolProc::Chain::Connection::usePar
bool usePar(const IOPar &, const char *key)
VolProc::Chain::Connection::operator==
bool operator==(const Connection &) const
VolProc::Chain::Web::getConnections
TypeSet< Connection > & getConnections()
Definition: volprocchain.h:67
VolProc::Chain::Web::connections_
TypeSet< Connection > connections_
Definition: volprocchain.h:72
VolProc::Chain::Connection
Definition: volprocchain.h:34
VolProc::Chain::getNrUsers
int getNrUsers(Step::ID, Step::InputSlotID) const
VolProc::Chain::getNewStepID
Step::ID getNewStepID()
Definition: volprocchain.h:116
VolProc::Chain::addStep
void addStep(Step *)
VolProc::Chain::Connection::inputstepid_
Step::ID inputstepid_
Step that is receiving data.
Definition: volprocchain.h:49
VolProc::Chain::setZStep
void setZStep(float z, bool zist)
Definition: volprocchain.h:80
VolProc::Chain::swapSteps
void swapSteps(int, int)
VolProc::Chain::name
uiString name() const
volprocchainexec.h
VolProc::Chain::setOutputScalers
void setOutputScalers(const ObjectSet< Scaler > &)
VolProc::Chain::Web::getConnections
const TypeSet< Connection > & getConnections() const
Definition: volprocchain.h:69
VolProc::Chain::Connection::inputslotid_
Step::InputSlotID inputslotid_
Definition: volprocchain.h:50
VolProc::Chain::addConnection
bool addConnection(const Connection &)
VolProc::Chain::Web::addConnection
bool addConnection(const Connection &)
VolProc::Chain::getWeb
const Web & getWeb() const
Definition: volprocchain.h:78
VolProc::ChainExecutor
executes the work for a single VolProc::Chain.
Definition: volprocchainexec.h:27
VolProc::Step
An algorithm/calculation/transformation that takes one scalar volume as input, processes it,...
Definition: volprocstep.h:42
VolProc::Chain::outcompscalers_
ObjectSet< Scaler > outcompscalers_
Definition: volprocchain.h:141
VolProc::Chain::Web
Definition: volprocchain.h:58
VolProc::Chain::errMsg
uiString errMsg() const
VolProc::Chain::outputslotid_
Step::OutputSlotID outputslotid_
Definition: volprocchain.h:130
MultiID
Compound key consisting of ints.
Definition: multiid.h:24
VolProc::Chain::Connection::Connection
Connection(Step::ID outpstep=Step::cUndefID(), Step::OutputSlotID outpslot=Step::cUndefSlotID(), Step::ID inpstep=Step::cUndefID(), Step::InputSlotID inpslot=Step::cUndefSlotID())
VolProc::Chain::getStep
Step * getStep(int)
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
VolProc::Chain::Connection::outputstepid_
Step::ID outputstepid_
Step that is sending data.
Definition: volprocchain.h:53
VolProc::Chain::getOutputScalers
const ObjectSet< Scaler > & getOutputScalers() const
VolProc::Chain::web_
Web web_
Definition: volprocchain.h:134
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
VolProc::Chain::Web::getConnections
void getConnections(Step::ID, bool input, TypeSet< Connection > &) const
VolProc::Chain::getStepFromID
const Step * getStepFromID(Step::ID) const
VolProc::Chain::sKeyNrConnections
static const char * sKeyNrConnections()
Definition: volprocchain.h:126
VolProc::Chain::sKeyConnection
static const char * sKeyConnection(int idx, BufferString &)
threadlock.h
VolProc::Chain::sKeyStepType
static const char * sKeyStepType()
Definition: volprocchain.h:125
VolProc::Chain::getStepFromID
Step * getStepFromID(Step::ID)
volprocstep.h
VolProc::Chain::indexOf
int indexOf(const Step *) const
VolProc::Chain::getVelDesc
const VelocityDesc * getVelDesc() const
refcount.h
VolProc::Chain::updateConnections
void updateConnections()
VolProc::Chain::getStepFromName
const Step * getStepFromName(const char *) const
VolProc::Step::OutputSlotID
int OutputSlotID
Definition: volprocstep.h:46
VolProc::Chain::freeid_
Threads::Atomic< int > freeid_
Definition: volprocchain.h:140
VolProc::Chain::Connection::isUdf
bool isUdf() const
VolProc::Step::cUndefSlotID
static int cUndefSlotID()
Definition: volprocstep.h:48
Threads::Atomic< int >
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
VolProc::Chain::insertStep
void insertStep(int, Step *)
TypeSet
Sets of (small) copyable elements.
Definition: commontypes.h:29
VolProc::Chain::setOutputSlot
bool setOutputSlot(Step::ID, Step::OutputSlotID)
VolProc::Chain::Chain
Chain()

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