OpendTect  6.6
bendpointfinder.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: Kristofer Tingdahl
8  Date: Aug 2009
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 */
13 
14 #include "algomod.h"
15 #include "paralleltask.h"
16 
17 #include "coord.h"
18 #include "ranges.h"
19 #include "thread.h"
20 #include "posinfo2d.h"
21 
22 
30 public:
31 
32  const TypeSet<int>& bendPoints() const { return bendpts_; }
33  uiString uiNrDoneText() const { return tr("Positions done"); }
34 
35 protected:
36  BendPointFinderBase( int sz, float eps );
37  od_int64 nrIterations() const { return sz_; }
38  bool doWork( od_int64, od_int64, int );
39  virtual float getMaxSqDistToLine(int& idx, int start,
40  int stop ) const = 0;
44  void findInSegment( int, int );
45  bool doPrepare(int);
46  bool doFinish(bool);
47 
51  bool finished_; /* Obsolete, will be removed. */
52  int nrwaiting_; /* Obsolete, will be removed. */
53  int nrthreads_; /* Obsolete, will be removed,
54  but now used as nrworking_
55  variable to preserve ABI. */
56  int sz_;
57  const float epssq_;
58 };
59 
60 
66 {
67 public:
68 protected:
69  BendPointFinder2DBase(int size,float eps);
70 
71  virtual const Coord& coord(int idx) const = 0;
72 
73  float getMaxSqDistToLine(int& idx,int start,int stop) const;
74 };
75 
76 
82 {
83 public:
84  BendPointFinder2D(const TypeSet<Coord>&,float eps);
85  BendPointFinder2D(const Coord*,int size,float eps);
86 
87 protected:
88 
89  const Coord& coord(int idx) const;
90  const Coord* coords_;
91 };
92 
93 
99 {
100 public:
102 
103 protected:
104 
105  const Coord& coord(int idx) const;
108 };
109 
110 
116 {
117 public:
119  float eps);
120 protected:
121 
122  const Coord& coord(int idx) const;
124 };
125 
126 
132 {
133 public:
135  const Coord3& scale,float eps);
136 protected:
137  float getMaxSqDistToLine(int& idx,int start,int stop) const;
138 
139  const Coord3* coords_;
140  const Coord3 scale_;
141 };
142 
Coord3
A cartesian coordinate in 3D space.
Definition: coord.h:72
BendPointFinderBase::bendpts_
TypeSet< int > bendpts_
Definition: bendpointfinder.h:48
BendPointFinderBase::lock_
Threads::ConditionVar lock_
Definition: bendpointfinder.h:50
BendPointFinderTrcKey::tks_
const TypeSet< TrcKey > & tks_
Definition: bendpointfinder.h:106
BendPointFinder2DBase
Used to find bendpoints in two dimensional datasets.
Definition: bendpointfinder.h:66
BendPointFinderBase::BendPointFinderBase
BendPointFinderBase(int sz, float eps)
BendPointFinderBase::bendPoints
const TypeSet< int > & bendPoints() const
Definition: bendpointfinder.h:32
BendPointFinder2D
Used to find bendpoints in set of XY Coordinates.
Definition: bendpointfinder.h:82
BendPointFinder2DGeom::BendPointFinder2DGeom
BendPointFinder2DGeom(const TypeSet< PosInfo::Line2DPos > &, float eps)
BendPointFinderBase::queue_
TypeSet< Interval< int > > queue_
Definition: bendpointfinder.h:49
BendPointFinder2DBase::BendPointFinder2DBase
BendPointFinder2DBase(int size, float eps)
BendPointFinderTrcKey::coord
const Coord & coord(int idx) const
BendPointFinderBase::nrthreads_
int nrthreads_
Definition: bendpointfinder.h:53
od_int64
#define od_int64
Definition: plftypes.h:35
BendPointFinder3D::BendPointFinder3D
BendPointFinder3D(const TypeSet< Coord3 > &, const Coord3 &scale, float eps)
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
BendPointFinder2DBase::getMaxSqDistToLine
float getMaxSqDistToLine(int &idx, int start, int stop) const
BendPointFinderBase::doWork
bool doWork(od_int64, od_int64, int)
BendPointFinder2D::BendPointFinder2D
BendPointFinder2D(const Coord *, int size, float eps)
BendPointFinder2D::BendPointFinder2D
BendPointFinder2D(const TypeSet< Coord > &, float eps)
BendPointFinderTrcKey::coords_
TypeSet< Coord > coords_
Definition: bendpointfinder.h:107
BendPointFinder3D::coords_
const Coord3 * coords_
Definition: bendpointfinder.h:139
BendPointFinder2DGeom::positions_
const TypeSet< PosInfo::Line2DPos > & positions_
Definition: bendpointfinder.h:123
BendPointFinderBase::mODTextTranslationClass
mODTextTranslationClass(BendPointFinderBase)
BendPointFinderBase::doPrepare
bool doPrepare(int)
BendPointFinderBase::findInSegment
void findInSegment(int, int)
Coord
A cartesian coordinate in 2D space.
Definition: coord.h:25
posinfo2d.h
BendPointFinderBase
Base class that does the majority of the work finding bendpoints. Adaptions to different data-types a...
Definition: bendpointfinder.h:29
BendPointFinderTrcKey
Used to find bendpoints in set of TrcKeys.
Definition: bendpointfinder.h:99
BendPointFinderBase::uiNrDoneText
uiString uiNrDoneText() const
will be nrDoneText() in 7.x
Definition: bendpointfinder.h:33
Threads::ConditionVar
Is an object that faciliates many threads to wait for something to happen.
Definition: thread.h:110
BendPointFinder3D
Used to find bendpoints in three dimensional datasets.
Definition: bendpointfinder.h:132
BendPointFinder2DGeom::coord
const Coord & coord(int idx) const
BendPointFinderBase::epssq_
const float epssq_
Definition: bendpointfinder.h:57
BendPointFinder2D::coord
const Coord & coord(int idx) const
BendPointFinder2DGeom
Used to find bendpoints in Line 2D Geometry.
Definition: bendpointfinder.h:116
BendPointFinderBase::finished_
bool finished_
Definition: bendpointfinder.h:51
BendPointFinder3D::scale_
const Coord3 scale_
Definition: bendpointfinder.h:140
BendPointFinder3D::getMaxSqDistToLine
float getMaxSqDistToLine(int &idx, int start, int stop) const
ParallelTask
Generalization of a task that can be run in parallel.
Definition: paralleltask.h:66
BendPointFinderTrcKey::BendPointFinderTrcKey
BendPointFinderTrcKey(const TypeSet< TrcKey > &, float eps)
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
BendPointFinderBase::doFinish
bool doFinish(bool)
BendPointFinderBase::nrwaiting_
int nrwaiting_
Definition: bendpointfinder.h:52
BendPointFinder2D::coords_
const Coord * coords_
Definition: bendpointfinder.h:90
BendPointFinder2DBase::coord
virtual const Coord & coord(int idx) const =0
ranges.h
BendPointFinderBase::getMaxSqDistToLine
virtual float getMaxSqDistToLine(int &idx, int start, int stop) const =0
thread.h
paralleltask.h
BendPointFinderBase::nrIterations
od_int64 nrIterations() const
Definition: bendpointfinder.h:37
TypeSet< int >
BendPointFinderBase::sz_
int sz_
Definition: bendpointfinder.h:56
coord.h

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