Auxiliary class for convex hull determination in X-Y plane.
More...
#include <JGeometry2DToolkit.hh>
|
template<class T , class JCompare_t > |
static T | getConvexHull2D (T __begin, T __end, JCompare_t compare) |
| Partition half Hull.
|
|
Auxiliary class for convex hull determination in X-Y plane.
Definition at line 119 of file JGeometry2DToolkit.hh.
◆ JConvexHull2D()
JGEOMETRY2D::JConvexHull2D::JConvexHull2D |
( |
| ) |
|
|
inline |
◆ getConvexHull2D()
template<class T , class JCompare_t >
static T JGEOMETRY2D::JConvexHull2D::getConvexHull2D |
( |
T | __begin, |
|
|
T | __end, |
|
|
JCompare_t | compare ) |
|
inlinestaticprotected |
Partition half Hull.
- Parameters
-
__begin | begin of data |
__end | end of data |
compare | comparator |
- Returns
- end of data
Definition at line 130 of file JGeometry2DToolkit.hh.
133 {
135
136 if (__begin != __end) {
137
138 sort(__begin, __end, compare);
139
140 T l = __begin;
141
142 if (++l != __end) {
143
144 T i = __begin;
145
146 ++(++i);
147
148 for (T j, k; i != __end; ++i) {
149
150 for (j = k = l;
j != __begin &&
getCCW(*i, *j, *--k); --
j) {}
151
153 ++l;
154
155 iter_swap(l,i);
156 }
157 }
158
159 return l;
160
161 } else {
162
163 return __begin;
164 }
165 }
bool getCCW(const T &a, const T &b, const T &c)
Check sequence of three points in X-Y plane.
◆ operator()()
template<class T >
std::pair< T, T > JGEOMETRY2D::JConvexHull2D::operator() |
( |
T | __begin, |
|
|
T | __end ) const |
|
inline |
Get convex Hull.
- Parameters
-
__begin | begin of data |
__end | end of data |
- Returns
- end of lower and upper Hull data
Definition at line 232 of file JGeometry2DToolkit.hh.
233 {
235
237
238 if (__p == __begin || __p == __end) {
239 return make_pair(__p, __p);
240 }
241
242
243
244 reverse(__begin, __p);
245
247
248 ++__q;
249
250
251
252 reverse(__p, __q);
253 reverse(__begin, __q);
254
256
257 __p = __begin;
258
260
261 return make_pair(__p, __q);
262 }
static const JUpperHull sortUpperHull
Function object for sorting elements.
static const JLowerHull sortLowerHull
Function object for sorting elements.
static const JConvexHull2D getConvexHull2D
Function object for convex hull determination.
counter_type advance(counter_type &counter, const counter_type value, const counter_type limit=std::numeric_limits< counter_type >::max())
Advance counter.
◆ sortLowerHull
const JLowerHull JGEOMETRY2D::JConvexHull2D::sortLowerHull |
|
static |
◆ sortUpperHull
const JUpperHull JGEOMETRY2D::JConvexHull2D::sortUpperHull |
|
static |
The documentation for this class was generated from the following file: