DGtal 2.0.0
|
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 |
Public Member Functions inherited from DGtal::ConvexHullCommonKernel< dim, DGtal::int64_t, 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) |
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 Public Attributes inherited from DGtal::ConvexHullCommonKernel< dim, DGtal::int64_t, DGtal::int64_t > | |
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.
typedef ConvexHullCommonKernel< dim, TCoordinateInteger, TInternalInteger > DGtal::ConvexHullIntegralKernel< dim, TCoordinateInteger, TInternalInteger >::Base |
Definition at line 378 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 |
|
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 |
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.
|
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.