OpendTect  6.3
emobjectposselector.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: Umesh Sinha
8  Date: May 2009
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "earthmodelmod.h"
14 #include "emposid.h"
15 #include "selector.h"
16 #include "paralleltask.h"
17 #include "thread.h"
18 
19 template <class T> class Selector;
20 
21 namespace EM
22 {
23 
24 class EMObject;
25 
31 {
32 public:
33  EMObjectPosSelector(const EMObject& emobj,
34  const SectionID& secid,
35  const ObjectSet<const Selector<Coord3> >&);
37 
38  const TypeSet<EM::SubID>& getSelected() const { return poslist_; }
39 
40 protected:
41 
42  od_int64 nrIterations() const { return nrcols_*nrrows_; }
43  bool doWork( od_int64, od_int64, int );
44  bool doPrepare(int);
45 
46  void processBlock(const RowCol&,const RowCol&);
47  void makeListGrow(const RowCol&,const RowCol&,int selresult);
48 
49  void getBoundingCoords(const RowCol&,const RowCol&,
50  Coord3& up,Coord3& down);
51 
52 
54 
55  const EMObject& emobj_;
57  int startrow_;
58  int nrrows_;
59  int startcol_;
60  int nrcols_;
61  const float* zvals_;
62 
66  bool finished_;
69 
71 };
72 
73 } // namespace EM
od_int16 SectionID
Definition: emposid.h:23
#define mExpClass(module)
Definition: commondefs.h:157
TypeSet< RowCol > stops_
Definition: emobjectposselector.h:64
Is an object that faciliates many threads to wait for something to happen.
Definition: thread.h:108
int nrthreads_
Definition: emobjectposselector.h:68
TypeSet< EM::SubID > poslist_
Definition: emobjectposselector.h:70
Threads::ConditionVar lock_
Definition: emobjectposselector.h:65
#define od_int64
Definition: plftypes.h:34
const EMObject & emobj_
Definition: emobjectposselector.h:55
TypeSet< RowCol > starts_
Definition: emobjectposselector.h:63
Generalization of a task that can be run in parallel.
Definition: paralleltask.h:64
int nrwaiting_
Definition: emobjectposselector.h:67
Set of pointers to objects.
Definition: commontypes.h:28
3D point or vector
Definition: commontypes.h:57
bool finished_
Definition: emobjectposselector.h:66
int startrow_
Definition: emobjectposselector.h:57
Interface for classes that select on basis of a key.
Definition: selector.h:23
EMObject position selector.
Definition: emobjectposselector.h:30
int nrrows_
Definition: emobjectposselector.h:58
od_int64 nrIterations() const
Definition: emobjectposselector.h:42
IdxPair used for its row() and col().
Definition: rowcol.h:23
const SectionID & sectionid_
Definition: emobjectposselector.h:56
Base class for all EarthModel objects.
Definition: emobject.h:117
Earth Model objects like horizons, faults, fault-sticks and bodies.
Definition: embody.h:23
int startcol_
Definition: emobjectposselector.h:59
const ObjectSet< const Selector< Coord3 > > & selectors_
Definition: emobjectposselector.h:53
const float * zvals_
Definition: emobjectposselector.h:61
const TypeSet< EM::SubID > & getSelected() const
Definition: emobjectposselector.h:38
int nrcols_
Definition: emobjectposselector.h:60

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