|
DGtal 1.4.0
|
Aim: Useful to compute quickly the lattice points within a polytope, i.e. a convex polyhedron. More...
#include <DGtal/geometry/volumes/BoundedLatticePolytopeCounter.h>
Public Types | |
| typedef BoundedLatticePolytopeCounter< TSpace > | Self |
| typedef TSpace | Space |
| typedef BoundedLatticePolytope< TSpace > | Polytope |
| using | Integer = typename Polytope::Integer |
| using | Point = typename Polytope::Point |
| using | Vector = typename Polytope::Vector |
| using | InequalityMatrix = typename Polytope::InequalityMatrix |
| using | InequalityVector = typename Polytope::InequalityVector |
| using | Domain = typename Polytope::Domain |
| using | HalfSpace = typename Polytope::HalfSpace |
| using | BigInteger = typename Polytope::BigInteger |
| using | Intervals = IntegralIntervals< Integer > |
| using | Interval = typename Intervals::Interval |
| using | PointRange = std::vector< Point > |
| using | LatticeSetByInterval = std::map< Point, Interval > |
| Internal type used to represent a convex lattice point set. | |
| using | LatticeSetByIntervals = std::map< Point, Intervals > |
| Internal type used to represent any lattice point set. | |
Public Member Functions | |
| BoundedLatticePolytopeCounter ()=default | |
| Default constructor. | |
| BoundedLatticePolytopeCounter (const Polytope &P) | |
| void | init (const Polytope *ptrP) |
| Interval | intersectionIntervalAlongAxis (Point p, Dimension a) const |
| Interval | interiorIntersectionIntervalAlongAxis (Point p, Dimension a) const |
| Integer | countAlongAxis (Dimension a) const |
| Integer | countInteriorAlongAxis (Dimension a) const |
| void | getPointsAlongAxis (PointRange &pts, Dimension a) const |
| void | getInteriorPointsAlongAxis (PointRange &pts, Dimension a) const |
| LatticeSetByInterval | getLatticeSet (Dimension a) const |
| LatticeSetByInterval | getLatticeCells (Dimension a) const |
| Dimension | longestAxis () const |
| Point | lowerBound () const |
| Point | upperBound () const |
Data Fields | |
| const Polytope * | myPolytope |
| The associated polytope. | |
| Point | myLower |
| The lower point of the tight bounding box to the associated polytope. | |
| Point | myUpper |
| The upper point of the tight bounding box to the associated polytope. | |
Static Public Attributes | |
| static const Dimension | dimension = Space::dimension |
Private Member Functions | |
| BOOST_CONCEPT_ASSERT ((concepts::CSpace< TSpace >)) | |
Aim: Useful to compute quickly the lattice points within a polytope, i.e. a convex polyhedron.
Description of template class 'BoundedLatticePolytopeCounter'
It is a model of boost::CopyConstructible, boost::DefaultConstructible, boost::Assignable.
| TSpace | an arbitrary model of CSpace. |
Definition at line 66 of file BoundedLatticePolytopeCounter.h.
| using DGtal::BoundedLatticePolytopeCounter< TSpace >::BigInteger = typename Polytope::BigInteger |
Definition at line 80 of file BoundedLatticePolytopeCounter.h.
| using DGtal::BoundedLatticePolytopeCounter< TSpace >::Domain = typename Polytope::Domain |
Definition at line 78 of file BoundedLatticePolytopeCounter.h.
| using DGtal::BoundedLatticePolytopeCounter< TSpace >::HalfSpace = typename Polytope::HalfSpace |
Definition at line 79 of file BoundedLatticePolytopeCounter.h.
| using DGtal::BoundedLatticePolytopeCounter< TSpace >::InequalityMatrix = typename Polytope::InequalityMatrix |
Definition at line 76 of file BoundedLatticePolytopeCounter.h.
| using DGtal::BoundedLatticePolytopeCounter< TSpace >::InequalityVector = typename Polytope::InequalityVector |
Definition at line 77 of file BoundedLatticePolytopeCounter.h.
| using DGtal::BoundedLatticePolytopeCounter< TSpace >::Integer = typename Polytope::Integer |
Definition at line 73 of file BoundedLatticePolytopeCounter.h.
| using DGtal::BoundedLatticePolytopeCounter< TSpace >::Interval = typename Intervals::Interval |
Definition at line 82 of file BoundedLatticePolytopeCounter.h.
| using DGtal::BoundedLatticePolytopeCounter< TSpace >::Intervals = IntegralIntervals< Integer > |
Definition at line 81 of file BoundedLatticePolytopeCounter.h.
| using DGtal::BoundedLatticePolytopeCounter< TSpace >::LatticeSetByInterval = std::map< Point, Interval > |
Internal type used to represent a convex lattice point set.
Definition at line 87 of file BoundedLatticePolytopeCounter.h.
| using DGtal::BoundedLatticePolytopeCounter< TSpace >::LatticeSetByIntervals = std::map< Point, Intervals > |
Internal type used to represent any lattice point set.
Definition at line 90 of file BoundedLatticePolytopeCounter.h.
| using DGtal::BoundedLatticePolytopeCounter< TSpace >::Point = typename Polytope::Point |
Definition at line 74 of file BoundedLatticePolytopeCounter.h.
| using DGtal::BoundedLatticePolytopeCounter< TSpace >::PointRange = std::vector< Point > |
Definition at line 83 of file BoundedLatticePolytopeCounter.h.
| typedef BoundedLatticePolytope<TSpace> DGtal::BoundedLatticePolytopeCounter< TSpace >::Polytope |
Definition at line 72 of file BoundedLatticePolytopeCounter.h.
| typedef BoundedLatticePolytopeCounter<TSpace> DGtal::BoundedLatticePolytopeCounter< TSpace >::Self |
Definition at line 70 of file BoundedLatticePolytopeCounter.h.
| typedef TSpace DGtal::BoundedLatticePolytopeCounter< TSpace >::Space |
Definition at line 71 of file BoundedLatticePolytopeCounter.h.
| using DGtal::BoundedLatticePolytopeCounter< TSpace >::Vector = typename Polytope::Vector |
Definition at line 75 of file BoundedLatticePolytopeCounter.h.
|
default |
Default constructor.
| DGtal::BoundedLatticePolytopeCounter< TSpace >::BoundedLatticePolytopeCounter | ( | const Polytope & | P | ) |
Constructor from valid polytope
| P | any polytope |
|
private |
| Integer DGtal::BoundedLatticePolytopeCounter< TSpace >::countAlongAxis | ( | Dimension | a | ) | const |
| a | any axis with 0 <= a < d, where d is the dimension of the space. |
| Integer DGtal::BoundedLatticePolytopeCounter< TSpace >::countInteriorAlongAxis | ( | Dimension | a | ) | const |
| a | any axis with 0 <= a < d, where d is the dimension of the space. |
| void DGtal::BoundedLatticePolytopeCounter< TSpace >::getInteriorPointsAlongAxis | ( | PointRange & | pts, |
| Dimension | a ) const |
| [out] | pts | the range of lattice points that are interior to this polytope. |
| a | any axis with 0 <= a < d, where d is the dimension of the space. |
| LatticeSetByInterval DGtal::BoundedLatticePolytopeCounter< TSpace >::getLatticeCells | ( | Dimension | a | ) | const |
| a | any axis with 0 <= a < d, where d is the dimension of the space. |
| LatticeSetByInterval DGtal::BoundedLatticePolytopeCounter< TSpace >::getLatticeSet | ( | Dimension | a | ) | const |
| a | any axis with 0 <= a < d, where d is the dimension of the space. |
| void DGtal::BoundedLatticePolytopeCounter< TSpace >::getPointsAlongAxis | ( | PointRange & | pts, |
| Dimension | a ) const |
| [out] | pts | the range of lattice points that are inside this polytope. |
| a | any axis with 0 <= a < d, where d is the dimension of the space. |
| void DGtal::BoundedLatticePolytopeCounter< TSpace >::init | ( | const Polytope * | ptrP | ) |
Initialization from polytope pointer (nullptr if you want to create an invalid polytope).
| ptrP | any pointer on a polytope or nullptr. |
| Interval DGtal::BoundedLatticePolytopeCounter< TSpace >::interiorIntersectionIntervalAlongAxis | ( | Point | p, |
| Dimension | a ) const |
Computes the intersection of the lattice points of the infinite line going through point p along axis a and the interior of the current polytope, returned as an interval [b,e), where bis the a-th coordinate of the first lattice point in common, while e is the a-th coordinate after the last lattice point in common.
| p | any point with the current domain |
| a | any axis between 0 (included) and dimension (excluded). |
[b,e) of intersection, which is such that b==e when there is no intersection. | Interval DGtal::BoundedLatticePolytopeCounter< TSpace >::intersectionIntervalAlongAxis | ( | Point | p, |
| Dimension | a ) const |
Computes the intersection of the lattice points of the infinite line going through point p along axis a and the current polytope, returned as an interval [b,e), where bis the a-th coordinate of the first lattice point in common, while e is the a-th coordinate after the last lattice point in common.
| p | any point with the current domain |
| a | any axis between 0 (included) and dimension (excluded). |
[b,e) of intersection, which is such that b==e when there is no intersection. | Dimension DGtal::BoundedLatticePolytopeCounter< TSpace >::longestAxis | ( | ) | const |
|
inline |
Definition at line 197 of file BoundedLatticePolytopeCounter.h.
References DGtal::BoundedLatticePolytopeCounter< TSpace >::myLower.
|
inline |
Definition at line 199 of file BoundedLatticePolytopeCounter.h.
References DGtal::BoundedLatticePolytopeCounter< TSpace >::myUpper.
|
static |
Definition at line 84 of file BoundedLatticePolytopeCounter.h.
| Point DGtal::BoundedLatticePolytopeCounter< TSpace >::myLower |
The lower point of the tight bounding box to the associated polytope.
Definition at line 206 of file BoundedLatticePolytopeCounter.h.
Referenced by DGtal::BoundedLatticePolytopeCounter< TSpace >::lowerBound().
| const Polytope* DGtal::BoundedLatticePolytopeCounter< TSpace >::myPolytope |
The associated polytope.
Definition at line 204 of file BoundedLatticePolytopeCounter.h.
| Point DGtal::BoundedLatticePolytopeCounter< TSpace >::myUpper |
The upper point of the tight bounding box to the associated polytope.
Definition at line 208 of file BoundedLatticePolytopeCounter.h.
Referenced by DGtal::BoundedLatticePolytopeCounter< TSpace >::upperBound().