OpendTect-6_4  6.4
emobjectposselector.h
Go to the documentation of this file.
1 #ifndef emobjectposselector_h
2 #define emobjectposselector_h
3 
4 /*+
5 ________________________________________________________________________
6 
7  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
8  Author: Umesh Sinha
9  Date: May 2009
10  RCS: $Id$
11 ________________________________________________________________________
12 
13 -*/
14 
15 #include "earthmodelmod.h"
16 #include "emposid.h"
17 #include "selector.h"
18 #include "paralleltask.h"
19 #include "thread.h"
20 
21 template <class T> class Selector;
22 
23 namespace EM
24 {
25 
26 class EMObject;
27 
33 {
34 public:
35  EMObjectPosSelector(const EMObject& emobj,
36  const SectionID& secid,
37  const ObjectSet<const Selector<Coord3> >&);
39 
40  const TypeSet<EM::SubID>& getSelected() const { return poslist_; }
41 
42 protected:
43 
44  od_int64 nrIterations() const { return nrcols_*nrrows_; }
45  bool doWork( od_int64, od_int64, int );
46  bool doPrepare(int);
47 
48  void processBlock(const RowCol&,const RowCol&);
49  void makeListGrow(const RowCol&,const RowCol&,int selresult);
50 
51  void getBoundingCoords(const RowCol&,const RowCol&,
52  Coord3& up,Coord3& down);
53 
54 
56 
57  const EMObject& emobj_;
59  int startrow_;
60  int nrrows_;
61  int startcol_;
62  int nrcols_;
63  const float* zvals_;
64 
68  bool finished_;
71 
73 };
74 
75 } // namespace EM
76 
77 #endif
od_int16 SectionID
Definition: emposid.h:25
#define mExpClass(module)
Definition: commondefs.h:160
TypeSet< RowCol > stops_
Definition: emobjectposselector.h:66
Is an object that faciliates many threads to wait for something to happen.
Definition: thread.h:108
int nrthreads_
Definition: emobjectposselector.h:70
TypeSet< EM::SubID > poslist_
Definition: emobjectposselector.h:72
Threads::ConditionVar lock_
Definition: emobjectposselector.h:67
#define od_int64
Definition: plftypes.h:36
const EMObject & emobj_
Definition: emobjectposselector.h:57
TypeSet< RowCol > starts_
Definition: emobjectposselector.h:65
Generalization of a task that can be run in parallel.
Definition: paralleltask.h:66
int nrwaiting_
Definition: emobjectposselector.h:69
Set of pointers to objects.
Definition: commontypes.h:32
bool finished_
Definition: emobjectposselector.h:68
int startrow_
Definition: emobjectposselector.h:59
Interface for classes that select on basis of a key.
Definition: selector.h:25
EMObject position selector.
Definition: emobjectposselector.h:32
int nrrows_
Definition: emobjectposselector.h:60
A cartesian coordinate in 3D space.
Definition: coord.h:72
od_int64 nrIterations() const
Definition: emobjectposselector.h:44
IdxPair used for its row() and col().
Definition: rowcol.h:25
const SectionID & sectionid_
Definition: emobjectposselector.h:58
Base class for all EarthModel objects.
Definition: emobject.h:158
Earth Model objects like horizons, faults, fault-sticks and bodies.
Definition: embody.h:25
int startcol_
Definition: emobjectposselector.h:61
const ObjectSet< const Selector< Coord3 > > & selectors_
Definition: emobjectposselector.h:55
const float * zvals_
Definition: emobjectposselector.h:63
const TypeSet< EM::SubID > & getSelected() const
Definition: emobjectposselector.h:40
int nrcols_
Definition: emobjectposselector.h:62

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