OpendTect  6.6
mpeengine.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: A.H. Bril
8  Date: 23-10-1996
9  RCS: $Id: mpeengine.h 38753 2015-04-11 21:19:18Z nanne.hemstra@dgbes.com $
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "mpeenginemod.h"
15 
16 #include "attribsel.h"
17 #include "callback.h"
18 #include "datapack.h"
19 #include "emposid.h"
20 #include "survgeom.h"
21 
22 class BufferStringSet;
23 class Executor;
24 
25 namespace EM { class EMObject; }
26 namespace Geometry { class Element; }
27 template <class T> class Selector;
28 
29 namespace MPE
30 {
31 
32 class EMTracker;
33 class HorizonTrackerMgr;
34 class ObjectEditor;
35 
37 {
38 public:
40  virtual bool checkInVolumeTrackMode() const = 0;
41  virtual bool checkActiveTracker() const = 0;
42  virtual bool checkStoredData(Attrib::SelSpec&,MultiID&) const = 0;
43  virtual bool checkPreloadedData(const MultiID&) const = 0;
44 };
45 
46 
51 mExpClass(MPEEngine) Engine : public CallBacker
53  mGlobal(MPEEngine) friend Engine& engine();
54 
55 public:
56  Engine();
57  virtual ~Engine();
58 
59  void init();
60 
61  const TrcKeyZSampling& activeVolume() const;
64 
67 
70 
72 
73  enum TrackState { Started, Paused, Stopped };
74  TrackState getState() const { return state_; }
78  void stopTracking();
79  bool trackingInProgress() const;
80  void undo(uiString& errmsg);
81  void redo(uiString& errmsg);
82  bool canUnDo();
83  bool canReDo();
84  void enableTracking(bool yn);
87 
89  const Selector<Coord3>&,
90  TaskRunner*);
92 
93  int nrTrackersAlive() const;
94  int highestTrackerID() const;
95  const EMTracker* getTracker(int idx) const;
96  EMTracker* getTracker(int idx);
97  int getTrackerByObject(const EM::ObjectID&) const;
98  int getTrackerByObject(const char*) const;
100  void removeTracker(int idx);
105 
106  /*Attribute stuff */
110  TypeSet<Attrib::SelSpec>&) const;
115  int getCacheIndexOf(const Attrib::SelSpec&) const;
117  bool hasAttribCache(const Attrib::SelSpec&) const;
119  DataPack::ID);
121  const TrcKeyZSampling&);
123 
125  const Attrib::SelSpec& newss,
126  uiString& error) const;
127  bool isSelSpecSame(const Attrib::SelSpec& setupss,
128  const Attrib::SelSpec& clickedss) const;
129 
131  int idx,bool);
135  int nrtrcs,
136  const StepInterval<float>& zrg) const;
137 
138  /*Editors */
141 
143  const char* errMsg() const;
144 
146 
147  void fillPar(IOPar&) const;
148  bool usePar(const IOPar&);
149  const TrcKeyPath* activePath() const;
150  void setActivePath(const TrcKeyPath*);
151  int activeRandomLineID() const;
154  void unRefTracker(EM::ObjectID,bool nodel=false);
156 
158 
159 protected:
160 
163 
165 
170 
176  int rdlid_;
178 
185 
186 
187  struct CacheSpecs
188  {
190  Pos::GeomID geomid=
192  : attrsel_(as),geomid_(geomid)
193  {}
194 
197  };
198 
203 
204  mStruct(MPEEngine) FlatCubeInfo
205  {
206  FlatCubeInfo()
207  :nrseeds_(1)
208  {
209  flatcs_.setEmpty();
210  }
211  TrcKeyZSampling flatcs_;
212  int nrseeds_;
213  };
214 
216 
217  static const char* sKeyNrTrackers(){ return "Nr Trackers"; }
218  static const char* sKeyObjectID() { return "ObjectID"; }
219  static const char* sKeyEnabled() { return "Is enabled"; }
220  static const char* sKeyTrackPlane(){ return "Track Plane"; }
221  static const char* sKeySeedConMode(){ return "Seed Connect Mode"; }
222 
224 };
225 
226 
227 mGlobal(MPEEngine) Engine& engine();
228 
229 } // namespace MPE
230 
MPE::Engine::attribcachespecs_
ObjectSet< CacheSpecs > attribcachespecs_
Definition: mpeengine.h:200
MPE::Engine::init
void init()
MPE::Engine::getCurrentEMObject
EM::EMObject * getCurrentEMObject() const
Selector
Interface for classes that select on basis of a key.
Definition: selector.h:25
emposid.h
MPE::Engine::getSeedPosDataPack
DataPack::ID getSeedPosDataPack(const TrcKey &, float z, int nrtrcs, const StepInterval< float > &zrg) const
MPE::Engine::setActiveVolume
void setActiveVolume(const TrcKeyZSampling &)
MPE::Engine::swapCacheAndItsBackup
void swapCacheAndItsBackup()
MPE::Engine::sKeyNrTrackers
static const char * sKeyNrTrackers()
Definition: mpeengine.h:217
MPE::Engine::sKeyObjectID
static const char * sKeyObjectID()
Definition: mpeengine.h:218
MPE::TrackSettingsValidator::checkInVolumeTrackMode
virtual bool checkInVolumeTrackMode() const =0
MPE::Engine::getCacheIndexOf
int getCacheIndexOf(const Attrib::SelSpec &) const
mGlobal
#define mGlobal(module)
Definition: commondefs.h:180
MPE::Engine::getAttribCacheID
DataPack::ID getAttribCacheID(const Attrib::SelSpec &) const
ObjectSet< TrcKeyZSampling >
MPE::Engine::trackermgrs_
ObjectSet< HorizonTrackerMgr > trackermgrs_
Definition: mpeengine.h:167
BufferStringSet
Set of BufferString objects.
Definition: bufstringset.h:26
MPE::Engine::canReDo
bool canReDo()
MPE::Engine::applClosingCB
void applClosingCB(CallBacker *)
MPE::Engine::errmsg_
BufferString errmsg_
Definition: mpeengine.h:161
MPE::Engine::getTracker
const EMTracker * getTracker(int idx) const
Geometry
Definition: arraytesselator.h:21
MPE::Engine::startFromEdges
bool startFromEdges(uiString &)
MPE::Engine::attribbkpcachedatapackids_
TypeSet< DataPack::ID > attribbkpcachedatapackids_
Definition: mpeengine.h:201
MPE::Engine::oneactivetracker_
const EMTracker * oneactivetracker_
Definition: mpeengine.h:171
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
MPE::Engine::setActive2DLine
void setActive2DLine(Pos::GeomID)
MPE::Engine::sKeyTrackPlane
static const char * sKeyTrackPlane()
Definition: mpeengine.h:220
MPE::TrackSettingsValidator::~TrackSettingsValidator
virtual ~TrackSettingsValidator()
Definition: mpeengine.h:39
MPE::Engine::attribcachedatapackids_
TypeSet< DataPack::ID > attribcachedatapackids_
Definition: mpeengine.h:199
MPE::Engine::hasAttribCache
bool hasAttribCache(const Attrib::SelSpec &) const
MPE::Engine::pickingOnSameData
bool pickingOnSameData(const Attrib::SelSpec &oldss, const Attrib::SelSpec &newss, uiString &error) const
MPE::Engine::activeGeomID
Pos::GeomID activeGeomID() const
MPE::Engine::startRetrack
bool startRetrack(uiString &)
MPE::Engine::actionFinished
Notifier< Engine > actionFinished
Definition: mpeengine.h:86
MPE::Engine::fillPar
void fillPar(IOPar &) const
MPE::Engine::unsetOneActiveTracker
void unsetOneActiveTracker()
MPE::Engine::setActivePath
void setActivePath(const TrcKeyPath *)
MPE::Engine::prepareForRetrack
bool prepareForRetrack()
MPE::Engine::TrackState
TrackState
Definition: mpeengine.h:73
MPE::Engine::activetracker_
EMTracker * activetracker_
Definition: mpeengine.h:172
MPE::Engine::stopTracking
void stopTracking()
MPE::Engine::removeTracker
void removeTracker(int idx)
callback.h
CallBacker
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:185
MPE::Engine::setupFileName
BufferString setupFileName(const MultiID &) const
MPE::Engine::getTrackerByObject
int getTrackerByObject(const EM::ObjectID &) const
MPE::Engine::startTracking
bool startTracking(uiString &)
MPE::Engine::setActiveTracker
void setActiveTracker(EMTracker *)
MPE::Engine::trackInVolume
bool trackInVolume()
MPE::Engine::CacheSpecs::geomid_
Pos::GeomID geomid_
Definition: mpeengine.h:196
MPE::Engine::~Engine
virtual ~Engine()
EM
Earth Model objects like horizons, faults, fault-sticks and bodies.
Definition: bulk2dhorizonscanner.h:26
MPE::TrackSettingsValidator::checkStoredData
virtual bool checkStoredData(Attrib::SelSpec &, MultiID &) const =0
MPE::Engine::getNeededAttribs
void getNeededAttribs(TypeSet< Attrib::SelSpec > &) const
TrcKeyZSampling
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:35
MPE::Engine::activeVolume
const TrcKeyZSampling & activeVolume() const
MPE::Engine::setValidator
void setValidator(TrackSettingsValidator *)
MPE::Engine::usePar
bool usePar(const IOPar &)
MPE::Engine::cacheIncludes
bool cacheIncludes(const Attrib::SelSpec &, const TrcKeyZSampling &)
MPE::Engine::nrTrackersAlive
int nrTrackersAlive() const
MPE::Engine::errMsg
const char * errMsg() const
MPE::Engine::getTrackerByObject
int getTrackerByObject(const char *) const
MPE
MPE stands for Model, Predict, Edit. Contains tracking and editing functions.
Definition: autotracker.h:32
MPE::Engine::activegeomid_
Pos::GeomID activegeomid_
Definition: mpeengine.h:164
MPE::Engine::activevolume_
TrcKeyZSampling activevolume_
Definition: mpeengine.h:162
MPE::Engine::validator_
TrackSettingsValidator * validator_
Definition: mpeengine.h:177
MPE::Engine::rdmlinetkpath_
const TrcKeyPath * rdmlinetkpath_
Definition: mpeengine.h:175
MPE::Engine::trackingFinishedCB
void trackingFinishedCB(CallBacker *)
StepInterval< float >
MPE::Engine::activePath
const TrcKeyPath * activePath() const
MPE::Engine::activevolumechange
Notifier< Engine > activevolumechange
Definition: mpeengine.h:63
MPE::Engine::midtoload
MultiID midtoload
Definition: mpeengine.h:69
MPE::Engine::CacheSpecs::attrsel_
Attrib::SelSpec attrsel_
Definition: mpeengine.h:195
MPE::Engine::mODTextTranslationClass
mODTextTranslationClass(Engine) friend Engine &engine()
mStruct
#define mStruct(module)
Definition: commondefs.h:182
MPE::Engine::flatcubescontainer_
ObjectSet< ObjectSet< FlatCubeInfo > > flatcubescontainer_
Definition: mpeengine.h:213
Executor
Specification to enable chunkwise execution of a process.
Definition: executor.h:39
MPE::Engine::rdlid_
int rdlid_
Definition: mpeengine.h:176
TaskRunner
Class that can execute a task.
Definition: task.h:170
MPE::Engine::enableTracking
void enableTracking(bool yn)
Notifier
Class to help setup a callback handling.
Definition: notify.h:126
MPE::Engine::getActiveTracker
EMTracker * getActiveTracker()
MPE::TrackSettingsValidator::checkActiveTracker
virtual bool checkActiveTracker() const =0
MPE::ObjectEditor
Abstraction of EM Object editing. It gives lists of which nodes that may be moved,...
Definition: emeditor.h:47
MPE::Engine::removeSelectionInPolygon
void removeSelectionInPolygon(const Selector< Coord3 > &, TaskRunner *)
MPE::Engine::attribbackupcachespecs_
ObjectSet< CacheSpecs > attribbackupcachespecs_
Definition: mpeengine.h:202
MPE::Engine::setActiveTracker
void setActiveTracker(const EM::ObjectID &)
MPE::Engine::setActiveRandomLineID
void setActiveRandomLineID(int)
MPE::Engine::getTrackedFlatCubes
ObjectSet< TrcKeyZSampling > * getTrackedFlatCubes(const int idx) const
MPE::Engine::getAvailableTrackerTypes
void getAvailableTrackerTypes(BufferStringSet &) const
MPE::Engine::canUnDo
bool canUnDo()
datapack.h
MPE::EMTracker
Tracks EM objects.
Definition: emtracker.h:40
MPE::Engine
Main engine for tracking EM objects like horizons, faults etc.,.
Definition: mpeengine.h:52
MPE::Engine::activeRandomLineID
int activeRandomLineID() const
MPE::Engine::unRefTracker
void unRefTracker(EM::ObjectID, bool nodel=false)
MultiID
Compound key consisting of ints.
Definition: multiid.h:24
MPE::engine
Engine & engine()
MPE::Engine::updateSeedOnlyPropagation
void updateSeedOnlyPropagation(bool)
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
MPE::Engine::undo
void undo(uiString &errmsg)
MPE::Engine::trackeraddremove
Notifier< Engine > trackeraddremove
Definition: mpeengine.h:101
TrcKey
Represents a unique trace position in one of the surveys that OpendTect is managing.
Definition: trckey.h:28
MPE::Engine::actionCalled
Notifier< Engine > actionCalled
Definition: mpeengine.h:85
DataPackMgr
Manages DataPacks.
Definition: datapack.h:134
DataPack::ID
int ID
Definition: datapack.h:37
MPE::Engine::refTracker
void refTracker(EM::ObjectID)
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
EM::ObjectID
od_int32 ObjectID
Definition: emposid.h:23
MPE::Engine::undoeventid_
int undoeventid_
Definition: mpeengine.h:173
MPE::Engine::removeEditor
void removeEditor(const EM::ObjectID &)
Survey::GeometryManager::cUndefGeomID
static Pos::GeomID cUndefGeomID()
Definition: survgeom.h:142
MPE::Engine::trackers_
ObjectSet< EMTracker > trackers_
Definition: mpeengine.h:168
MPE::Engine::Engine
Engine()
MPE::Engine::getTracker
EMTracker * getTracker(int idx)
MPE::Engine::redo
void redo(uiString &errmsg)
MPE::TrackSettingsValidator::checkPreloadedData
virtual bool checkPreloadedData(const MultiID &) const =0
MPE::Engine::loadEMObject
Notifier< Engine > loadEMObject
Definition: mpeengine.h:68
MPE::TrackSettingsValidator
Definition: mpeengine.h:37
MPE::Engine::prepareForTrackInVolume
bool prepareForTrackInVolume(uiString &)
MPE::Engine::CacheSpecs
Definition: mpeengine.h:188
MPE::Engine::state_
TrackState state_
Definition: mpeengine.h:166
MPE::Engine::trackingInProgress
bool trackingInProgress() const
create
static uiHor3DInterpol * create(uiParent *)
EM::EMObject
Base class for all EarthModel objects.
Definition: emobject.h:159
MPE::Engine::setOneActiveTracker
void setOneActiveTracker(const EMTracker *)
MPE::Engine::getEditor
ObjectEditor * getEditor(const EM::ObjectID &, bool create)
MPE::Engine::getAttribCube
TrcKeyZSampling getAttribCube(const Attrib::SelSpec &) const
MPE::Engine::dpm_
DataPackMgr & dpm_
Definition: mpeengine.h:174
survgeom.h
MPE::Engine::hasTracker
bool hasTracker(EM::ObjectID) const
MPE::Engine::editors_
ObjectSet< ObjectEditor > editors_
Definition: mpeengine.h:169
MPE::Engine::sKeyEnabled
static const char * sKeyEnabled()
Definition: mpeengine.h:219
MPE::Engine::trackFromEdges
bool trackFromEdges()
Attrib::SelSpec
Specifies an attribute selection (ID or output number of NN).
Definition: attribsel.h:45
MPE::Engine::isSelSpecSame
bool isSelSpecSame(const Attrib::SelSpec &setupss, const Attrib::SelSpec &clickedss) const
MPE::Engine::settingsChanged
Notifier< Engine > settingsChanged
Definition: mpeengine.h:157
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
MPE::Engine::addTracker
int addTracker(EM::EMObject *)
MPE::Engine::sKeySeedConMode
static const char * sKeySeedConMode()
Definition: mpeengine.h:221
MPE::Engine::getState
TrackState getState() const
Definition: mpeengine.h:74
attribsel.h
Pos::GeomID
Index_Type GeomID
Definition: commontypes.h:87
MPE::Engine::CacheSpecs::CacheSpecs
CacheSpecs(const Attrib::SelSpec &as, Pos::GeomID geomid=Survey::GeometryManager::cUndefGeomID())
Definition: mpeengine.h:189
TypeSet< Attrib::SelSpec >
MPE::Engine::setAttribData
bool setAttribData(const Attrib::SelSpec &, DataPack::ID)
MPE::Engine::updateFlatCubesContainer
void updateFlatCubesContainer(const TrcKeyZSampling &, int idx, bool)
MPE::Engine::highestTrackerID
int highestTrackerID() const

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