31 #if defined(ConvexityHelper_RECURSES)
32 #error Recursive header files inclusion detected in ConvexityHelper.h
33 #else // defined(ConvexityHelper_RECURSES)
35 #define ConvexityHelper_RECURSES
37 #if !defined ConvexityHelper_h
39 #define ConvexityHelper_h
46 #include "DGtal/base/Common.h"
47 #include "DGtal/kernel/CInteger.h"
48 #include "DGtal/kernel/SpaceND.h"
49 #include "DGtal/geometry/tools/QuickHull.h"
50 #include "DGtal/geometry/volumes/BoundedLatticePolytope.h"
51 #include "DGtal/geometry/volumes/BoundedRationalPolytope.h"
52 #include "DGtal/geometry/volumes/ConvexCellComplex.h"
53 #include "DGtal/shapes/PolygonalSurface.h"
69 template <
typename TIntegerCoordinate,
bool safe >
71 typedef TIntegerCoordinate
Type;
81 #ifdef WITH_BIGINTEGER
105 #ifdef WITH_BIGINTEGER
122 #ifdef WITH_BIGINTEGER
123 template <
bool safe >
219 bool remove_duplicates =
true,
220 bool make_minkowski_summable =
false );
245 template <
typename TSurfaceMesh >
249 const std::vector< Point >& input_points,
250 bool remove_duplicates =
true );
272 const std::vector< Point >& input_points,
273 bool remove_duplicates =
true );
293 const std::vector< Point >& input_points,
294 bool remove_duplicates =
true );
319 bool remove_duplicates =
true );
371 const std::vector< Point >& input_points,
372 bool remove_duplicates =
true );
406 bool remove_duplicates =
true,
407 bool make_minkowski_summable =
false );
435 template <
typename TSurfaceMesh >
439 const std::vector< RealPoint >& input_points,
440 double precision = 1024.0,
441 bool remove_duplicates =
true );
466 const std::vector< RealPoint >& input_points,
467 double precision = 1024.0,
468 bool remove_duplicates =
true );
493 const std::vector< RealPoint >& input_points,
494 double precision = 1024.0,
495 bool remove_duplicates =
true );
529 const std::vector< RealPoint >& input_points,
530 double precision = 1024.0,
531 bool remove_duplicates =
true );
555 template <
typename QHull >
559 std::vector< IndexRange >& cell_vertices,
560 std::map< typename QHull::Ridge, Index >& r2f,
561 std::vector< IndexRange >& face_vertices );
572 #include "ConvexityHelper.ih"
577 #endif // !defined ConvexityHelper_h
579 #undef ConvexityHelper_RECURSES
580 #endif // else defined(ConvexityHelper_RECURSES)
mpz_class BigInteger
Multi-precision integer with GMP implementation.
Aim: a geometric kernel to compute the Delaunay triangulation of digital points with integer-only ari...
static bool computeConvexHullCellComplex(ConvexCellComplex< Point > &cell_complex, const std::vector< Point > &input_points, bool remove_duplicates=true)
static const Dimension dimension
static LatticePolytope computeDegeneratedLatticePolytope(std::vector< Point > &input_points)
Aim: a geometric kernel to compute the convex hull of digital points with integer-only arithmetic.
Aim: Concept checking for Integer Numbers. More precisely, this concept is a refinement of both CEucl...
boost::int32_t int32_t
signed 32-bit integer.
ConvexHullIntegralKernel< dim, Integer, InternalInteger > LatticeConvexHullKernel
Aim: a geometric kernel to compute the Delaunay triangulation of a range of floating points with inte...
DGtal::uint32_t Dimension
unsigned int dim(const Vector &z)
Aim: represents a d-dimensional complex in a d-dimensional space with the following properties and re...
std::vector< Index > IndexRange
BOOST_STATIC_ASSERT(dim > 1)
SpaceND< dim, Integer > Space
static void computeFacetAndRidgeVertices(const QHull &hull, std::vector< IndexRange > &cell_vertices, std::map< typename QHull::Ridge, Index > &r2f, std::vector< IndexRange > &face_vertices)
static bool computeDelaunayCellComplex(ConvexCellComplex< Point > &cell_complex, const std::vector< Point > &input_points, bool remove_duplicates=true)
Aim: a geometric kernel to compute the convex hull of floating points with integer-only arithmetic....
DGtal is the top-level namespace which contains all DGtal functions and types.
ConvexHullRationalKernel< dim, Integer, InternalInteger > RealConvexHullKernel
BoundedRationalPolytope< Space > RationalPolytope
DelaunayRationalKernel< dim, Integer, InternalInteger > RealDelaunayKernel
BoundedLatticePolytope< Space > LatticePolytope
static LatticePolytope computeLatticePolytope(const std::vector< Point > &input_points, bool remove_duplicates=true, bool make_minkowski_summable=false)
static bool computeConvexHullBoundary(TSurfaceMesh &mesh, const std::vector< Point > &input_points, bool remove_duplicates=true)
static LatticePolytope computeSimplex(const std::vector< Point > &input_points, bool remove_duplicates=true)
DelaunayIntegralKernel< dim, Integer, InternalInteger > LatticeDelaunayKernel
Aim: Represents an nD rational polytope, i.e. a convex polyhedron bounded by vertices with rational c...
TInternalInteger InternalInteger
Aim: Represents an nD lattice polytope, i.e. a convex polyhedron bounded with vertices with integer c...
boost::int64_t int64_t
signed 94-bit integer.
Aim: Provides a set of functions to facilitate the computation of convex hulls and polytopes,...
static RationalPolytope computeRationalPolytope(const std::vector< RealPoint > &input_points, Integer denominator, bool remove_duplicates=true, bool make_minkowski_summable=false)
Space::RealVector RealVector
Aim: Represents a polygon mesh, i.e. a 2-dimensional combinatorial surface whose faces are (topologic...
Space::RealPoint RealPoint
BOOST_CONCEPT_ASSERT((concepts::CInteger< TInteger >))