OpendTect  6.3
autotracker.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 ________________________________________________________________________
10 
11 -*/
12 
13 #include "mpeenginemod.h"
14 #include "emposid.h"
15 #include "executor.h"
16 #include "sets.h"
17 #include "sortedtable.h"
18 #include "thread.h"
19 #include "trckeyzsampling.h"
20 
21 namespace EM { class EMObject; }
22 namespace Geometry { class Element; }
23 namespace Threads { class WorkManager; }
24 template <class T> class Array2D;
25 class TrcKeyValue;
26 
30 namespace MPE
31 {
32 
33 class SectionTracker;
34 class SectionAdjuster;
35 class SectionExtender;
36 class EMTracker;
37 
44 {
45 friend class TrackerTask;
46 public:
49 
50  void setSeeds(const TypeSet<TrcKey>&);
51  void startFromSeeds();
52  void stop();
53  bool hasTasks() const;
54 
55  SectionTracker* getFreeSectionTracker();
56  void freeSectionTracker(const SectionTracker*);
57 
59 
60 protected:
61  void addTask(const TrcKeyValue&,const TrcKeyValue&,
62  const int seedid);
63  void taskFinished(CallBacker*);
64  void updateCB(CallBacker*);
65  int queueid_;
66 
72  void addUndoEvent();
73 
76 
80 
83 };
84 
85 } // namespace MPE
#define mExpClass(module)
Definition: commondefs.h:157
Definition: trckeyvalue.h:25
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
SequentialTask to adjust the section of an EM object with ID EM::SectionID.
Definition: sectionadjuster.h:33
Threads::Lock getfreestlock_
Definition: autotracker.h:82
A lock of a type that (hopefully) suits your needs. To use it, you need the Locker class...
Definition: threadlock.h:51
ObjectSet< SectionTracker > sectiontrackers_
Definition: autotracker.h:68
SequentialTask to extend the section of an EM object with ID EM::SectionID.
Definition: sectionextender.h:37
MPE stands for Model, Predict, Edit. Contains tracking and editing functions.
Definition: autotracker.h:30
TypeSet< TrcKey > seeds_
Definition: autotracker.h:74
int queueid_
Definition: autotracker.h:65
Tracks EM objects.
Definition: emtracker.h:38
BoolTypeSet trackerinuse_
Definition: autotracker.h:69
Tracks sections of EM::EMObject with ID EM::SectionID.
Definition: sectiontracker.h:36
Takes work and puts it on a queue for execution either in parallel, singlethread or manual...
Definition: threadwork.h:37
Class to help setup a callback handling.
Definition: notify.h:121
Set of pointers to objects.
Definition: commontypes.h:28
interface to threads that should be portable.
Definition: atomic.h:24
EMTracker & tracker_
Definition: autotracker.h:67
Array2D ( Subclass of ArrayND ) is a two dimensional array.
Definition: arraynd.h:127
Notifier< HorizonTrackerMgr > finished
Definition: autotracker.h:58
Threads::Atomic< int > tasknr_
Definition: autotracker.h:79
IdxPair used for its row() and col().
Definition: rowcol.h:23
Threads::WorkManager & twm_
Definition: autotracker.h:75
Threads::Atomic< int > nrtodo_
Definition: autotracker.h:78
Array2D< float > * horizon3dundoinfo_
Definition: autotracker.h:70
Earth Model objects like horizons, faults, fault-sticks and bodies.
Definition: embody.h:23
RowCol horizon3dundoorigin_
Definition: autotracker.h:71
Threads::Atomic< int > nrdone_
Definition: autotracker.h:77
Definition: arraytesselator.h:19
Threads::Lock tasklock_
Definition: autotracker.h:81
Executor to auto track.
Definition: autotracker.h:43

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