31 #if defined(BoundedLatticePolytopeCounter_RECURSES)
32 #error Recursive header files inclusion detected in BoundedLatticePolytopeCounter.h
35 #define BoundedLatticePolytopeCounter_RECURSES
38 #if !defined BoundedLatticePolytopeCounter_h
40 #define BoundedLatticePolytopeCounter_h
46 #include "DGtal/kernel/IntegralIntervals.h"
47 #include "DGtal/geometry/volumes/BoundedLatticePolytope.h"
65 template <
typename TSpace >
216 #include "BoundedLatticePolytopeCounter.ih"
223 #undef BoundedLatticePolytopeCounter_RECURSES
Aim: Useful to compute quickly the lattice points within a polytope, i.e. a convex polyhedron.
LatticeSetByInterval getLatticeCells(Dimension a) const
typename Polytope::Domain Domain
LatticeSetByInterval getLatticeSet(Dimension a) const
typename Polytope::InequalityVector InequalityVector
typename Polytope::Point Point
typename Polytope::InequalityMatrix InequalityMatrix
typename Polytope::HalfSpace HalfSpace
Interval interiorIntersectionIntervalAlongAxis(Point p, Dimension a) const
std::map< Point, Interval > LatticeSetByInterval
Internal type used to represent a convex lattice point set.
const Polytope * myPolytope
The associated polytope.
BoundedLatticePolytopeCounter(const Polytope &P)
void getInteriorPointsAlongAxis(PointRange &pts, Dimension a) const
BoundedLatticePolytopeCounter< TSpace > Self
BoundedLatticePolytope< TSpace > Polytope
Point myUpper
The upper point of the tight bounding box to the associated polytope.
typename Polytope::BigInteger BigInteger
Point myLower
The lower point of the tight bounding box to the associated polytope.
Interval intersectionIntervalAlongAxis(Point p, Dimension a) const
typename Polytope::Vector Vector
void init(const Polytope *ptrP)
BOOST_CONCEPT_ASSERT((concepts::CSpace< TSpace >))
Integer countAlongAxis(Dimension a) const
void getPointsAlongAxis(PointRange &pts, Dimension a) const
Dimension longestAxis() const
typename Intervals::Interval Interval
Integer countInteriorAlongAxis(Dimension a) const
std::map< Point, Intervals > LatticeSetByIntervals
Internal type used to represent any lattice point set.
typename Polytope::Integer Integer
BoundedLatticePolytopeCounter()=default
Default constructor.
std::vector< Point > PointRange
static const Dimension dimension
Aim: Represents an nD lattice polytope, i.e. a convex polyhedron bounded with vertices with integer c...
ClosedIntegerHalfPlane< Space > HalfSpace
std::vector< Vector > InequalityMatrix
std::vector< Integer > InequalityVector
DGtal::BigInteger BigInteger
HyperRectDomain< Space > Domain
std::pair< Integer, Integer > Interval
DGtal is the top-level namespace which contains all DGtal functions and types.
DGtal::uint32_t Dimension
Aim: Defines the concept describing a digital space, ie a cartesian product of integer lines.