Aim: a geometric kernel to compute the convex hull of digital points with integer-only arithmetic. More...
#include <DGtal/geometry/tools/QuickHullKernels.h>
Public Member Functions | |
ConvexHullIntegralKernel ()=default | |
Default constructor. | |
bool | hasInfiniteFacets () const |
bool | isHalfSpaceFacetInfinite (const HalfSpace &hs) const |
template<typename InputPoint > | |
void | makeInput (std::vector< CoordinatePoint > &processed_points, IndexRange &input2comp, IndexRange &comp2input, const std::vector< InputPoint > &input_points, bool remove_duplicates) |
template<typename OutputPoint > | |
void | convertPointTo (const CoordinatePoint &p, OutputPoint &out_p) const |
HalfSpace | compute (const std::vector< CoordinatePoint > &vpoints, const CombinatorialPlaneSimplex &simplex, Index idx_below) |
HalfSpace | compute (const std::vector< CoordinatePoint > &vpoints, const CombinatorialPlaneSimplex &simplex) |
CoordinateVector | normal (const HalfSpace &H) const |
CoordinateScalar | intercept (const HalfSpace &H) const |
InternalScalar | dot (const HalfSpace &H1, const HalfSpace &H2) const |
bool | equal (const HalfSpace &H1, const HalfSpace &H2) const |
InternalScalar | height (const HalfSpace &H, const CoordinatePoint &p) const |
InternalScalar | volume (const HalfSpace &H, const CoordinatePoint &p) const |
bool | above (const HalfSpace &H, const CoordinatePoint &p) const |
bool | aboveOrOn (const HalfSpace &H, const CoordinatePoint &p) const |
bool | on (const HalfSpace &H, const CoordinatePoint &p) const |
![]() | |
BOOST_CONCEPT_ASSERT ((concepts::CInteger< DGtal::int64_t >)) | |
BOOST_CONCEPT_ASSERT ((concepts::CInteger< DGtal::int64_t >)) | |
ConvexHullCommonKernel ()=default | |
Default constructor. | |
HalfSpace | compute (const std::vector< CoordinatePoint > &vpoints, const CombinatorialPlaneSimplex &simplex, Index idx_below) |
HalfSpace | compute (const std::vector< CoordinatePoint > &vpoints, const CombinatorialPlaneSimplex &simplex) |
CoordinateVector | normal (const HalfSpace &H) const |
CoordinateScalar | intercept (const HalfSpace &H) const |
InternalScalar | dot (const HalfSpace &H1, const HalfSpace &H2) const |
bool | equal (const HalfSpace &H1, const HalfSpace &H2) const |
InternalScalar | height (const HalfSpace &H, const CoordinatePoint &p) const |
InternalScalar | volume (const HalfSpace &H, const CoordinatePoint &p) const |
bool | above (const HalfSpace &H, const CoordinatePoint &p) const |
bool | aboveOrOn (const HalfSpace &H, const CoordinatePoint &p) const |
bool | on (const HalfSpace &H, const CoordinatePoint &p) const |
Static Public Attributes | |
static const Dimension | dimension |
![]() | |
static const Dimension | dimension |
Aim: a geometric kernel to compute the convex hull of digital points with integer-only arithmetic.
Description of template class 'ConvexHullIntegralKernel'
dim | the dimension of the space of processed points. |
TCoordinateInteger | the integer type that represents coordinates of lattice points, a model of concepts::CInteger. |
TInternalInteger | the integer type that is used for internal computations of above/below plane tests, a model of concepts::CInteger. Must be at least as precise as TCoordinateInteger. |
Definition at line 375 of file QuickHullKernels.h.
ConvexHullCommonKernel< dim, TCoordinateInteger, TInternalInteger > DGtal::ConvexHullIntegralKernel< dim, TCoordinateInteger, TInternalInteger >::Base |
Definition at line 378 of file QuickHullKernels.h.
std::array< Index, dim > DGtal::ConvexHullCommonKernel< dim, TCoordinateInteger, TInternalInteger >::CombinatorialPlaneSimplex |
Definition at line 195 of file QuickHullKernels.h.
DGtal::PointVector< dim, CoordinateInteger > DGtal::ConvexHullCommonKernel< dim, TCoordinateInteger, TInternalInteger >::CoordinatePoint |
Definition at line 188 of file QuickHullKernels.h.
CoordinateInteger DGtal::ConvexHullCommonKernel< dim, TCoordinateInteger, TInternalInteger >::CoordinateScalar |
Definition at line 184 of file QuickHullKernels.h.
DGtal::PointVector< dim, CoordinateInteger > DGtal::ConvexHullCommonKernel< dim, TCoordinateInteger, TInternalInteger >::CoordinateVector |
Definition at line 189 of file QuickHullKernels.h.
Size DGtal::ConvexHullCommonKernel< dim, TCoordinateInteger, TInternalInteger >::Index |
Definition at line 193 of file QuickHullKernels.h.
std::vector< Index > DGtal::ConvexHullCommonKernel< dim, TCoordinateInteger, TInternalInteger >::IndexRange |
Definition at line 194 of file QuickHullKernels.h.
DGtal::PointVector< dim, InternalInteger > DGtal::ConvexHullCommonKernel< dim, TCoordinateInteger, TInternalInteger >::InternalPoint |
Definition at line 190 of file QuickHullKernels.h.
InternalInteger DGtal::ConvexHullCommonKernel< dim, TCoordinateInteger, TInternalInteger >::InternalScalar |
Definition at line 185 of file QuickHullKernels.h.
DGtal::PointVector< dim, InternalInteger > DGtal::ConvexHullCommonKernel< dim, TCoordinateInteger, TInternalInteger >::InternalVector |
Definition at line 191 of file QuickHullKernels.h.
std::size_t DGtal::ConvexHullCommonKernel< dim, TCoordinateInteger, TInternalInteger >::Size |
Definition at line 192 of file QuickHullKernels.h.
|
default |
Default constructor.
|
inline |
H | the half-space |
p | any point |
Definition at line 333 of file QuickHullKernels.h.
|
inline |
H | the half-space |
p | any point |
Definition at line 339 of file QuickHullKernels.h.
|
inline |
Computes an halfspace from dimension points specified by simplex with vertices in a range vpoints of Point. Orientation is induced by the order of the points. If the simplex is degenrated, the half-space is invalid and has null normal.
[in] | vpoints | a range of points over which the simplex is defined. |
[in] | simplex | a range of dimension indices of points defining an hyperplane. |
Definition at line 257 of file QuickHullKernels.h.
|
inline |
Computes an halfspace from dimension points specified by simplex with vertices in a range vpoints of Point. It is oriented such that the point of index idx_below is included in the half-space (i.e. below).
[in] | vpoints | a range of points over which the simplex is defined. |
[in] | simplex | a range of dimension indices of points defining an hyperplane. |
[in] | idx_below | the index of a p-oint that is below the hyperplane. |
Definition at line 230 of file QuickHullKernels.h.
|
inline |
OutputPoint | a model of point such that processing type Point is convertible to it. |
Definition at line 473 of file QuickHullKernels.h.
References DGtal::ConvexHullIntegralKernel< dim, TCoordinateInteger, TInternalInteger >::dimension.
|
inline |
Equivalent of the dot product of the normals of the half-spaces.
H1 | an half-space |
H2 | an half-space |
Definition at line 297 of file QuickHullKernels.h.
|
inline |
H1 | an half-space |
H2 | an half-space |
H1={{1,0},3}
and H1={{2,0},6}
. Definition at line 310 of file QuickHullKernels.h.
|
inline |
Definition at line 414 of file QuickHullKernels.h.
|
inline |
H | the half-space |
p | any point |
Definition at line 318 of file QuickHullKernels.h.
|
inline |
H | the half-space |
Definition at line 284 of file QuickHullKernels.h.
|
inline |
[in] | hs | an half-space corresponding to a facet. |
Definition at line 421 of file QuickHullKernels.h.
|
inline |
Transforms a range input_points of input points to a range processed_points of points adapted to a processing by QuickHull convex hull algorithm. Keep the mapping information between input and processed points.
InputPoint | any model of point whose components are convertible to Scalar. |
[out] | processed_points | the range of points prepared for a process by QuickHull. |
[out] | input2comp | the surjective mapping between the input_points range and the processed_points range used for computation. |
[out] | comp2input | the injective mapping between the processed_points range used for computation and the input_points range. |
[in] | input_points | the range of input points. |
[in] | remove_duplicates | when 'true', this method removes possible duplicates in input_points and processed_points may thus be of smaller size, otherwise, when 'false', it means that there are no duplicates in input_points. |
Definition at line 453 of file QuickHullKernels.h.
References DGtal::ConvexHullIntegralKernel< dim, TCoordinateInteger, TInternalInteger >::dimension, and DGtal::detail::transform().
|
inline |
H | the half-space |
Definition at line 277 of file QuickHullKernels.h.
|
inline |
H | the half-space |
p | any point |
Definition at line 345 of file QuickHullKernels.h.
|
inline |
H | the half-space |
p | any point |
Definition at line 324 of file QuickHullKernels.h.
|
static |
Definition at line 196 of file QuickHullKernels.h.
Referenced by DGtal::ConvexHullIntegralKernel< dim, TCoordinateInteger, TInternalInteger >::convertPointTo(), and DGtal::ConvexHullIntegralKernel< dim, TCoordinateInteger, TInternalInteger >::makeInput().