DGtal
2.2.0
Toggle main menu visibility
Loading...
Searching...
No Matches
BoundedLatticePolytopeCounter.h
1
16
17
#pragma once
18
30
31
#if defined(BoundedLatticePolytopeCounter_RECURSES)
32
#error Recursive header files inclusion detected in BoundedLatticePolytopeCounter.h
33
#else
// defined(BoundedLatticePolytopeCounter_RECURSES)
35
#define BoundedLatticePolytopeCounter_RECURSES
36
37
38
#if !defined BoundedLatticePolytopeCounter_h
40
#define BoundedLatticePolytopeCounter_h
41
43
// Inclusions
44
#include <iostream>
45
#include <map>
46
#include "DGtal/kernel/IntegralIntervals.h"
47
#include "DGtal/geometry/volumes/BoundedLatticePolytope.h"
49
50
namespace
DGtal
51
{
52
54
// template class BoundedLatticePolytopeCounter
65
template
<
typename
TSpace >
66
class
BoundedLatticePolytopeCounter
67
{
68
BOOST_CONCEPT_ASSERT
((
concepts::CSpace< TSpace >
));
69
public
:
70
typedef
BoundedLatticePolytopeCounter<TSpace>
Self
;
71
typedef
TSpace
Space
;
72
typedef
BoundedLatticePolytope<TSpace>
Polytope
;
73
using
Integer
=
typename
Polytope::Integer
;
74
using
Point
=
typename
Polytope::Point
;
75
using
Vector
=
typename
Polytope::Vector
;
76
using
InequalityMatrix
=
typename
Polytope::InequalityMatrix
;
77
using
InequalityVector
=
typename
Polytope::InequalityVector
;
78
using
Domain
=
typename
Polytope::Domain
;
79
using
HalfSpace
=
typename
Polytope::HalfSpace
;
80
using
BigInteger
=
typename
Polytope::BigInteger
;
81
using
Intervals
=
IntegralIntervals< Integer >
;
82
using
Interval
=
typename
Intervals::Interval
;
83
using
PointRange
= std::vector< Point >;
84
static
const
Dimension
dimension
=
Space::dimension
;
85
87
using
LatticeSetByInterval
= std::map< Point, Interval >;
88
90
using
LatticeSetByIntervals
= std::map< Point, Intervals >;
91
93
BoundedLatticePolytopeCounter
() =
default
;
94
97
BoundedLatticePolytopeCounter
(
const
Polytope
& P );
98
102
void
init
(
const
Polytope
* ptrP );
103
116
Interval
intersectionIntervalAlongAxis
(
Point
p,
Dimension
a )
const
;
117
130
Interval
interiorIntersectionIntervalAlongAxis
(
Point
p,
Dimension
a )
const
;
131
140
Integer
countAlongAxis
(
Dimension
a )
const
;
141
150
Integer
countInteriorAlongAxis
(
Dimension
a )
const
;
151
160
void
getPointsAlongAxis
(
PointRange
& pts,
Dimension
a )
const
;
161
173
void
getInteriorPointsAlongAxis
(
PointRange
& pts,
Dimension
a )
const
;
174
180
LatticeSetByInterval
getLatticeSet
(
Dimension
a )
const
;
181
192
LatticeSetByInterval
getLatticeCells
(
Dimension
a )
const
;
193
196
Dimension
longestAxis
()
const
;
197
199
Point
lowerBound
()
const
{
return
myLower
; }
201
Point
upperBound
()
const
{
return
myUpper
; }
202
203
204
// --------------------------- protected data -----------------------------------
206
const
Polytope
*
myPolytope
;
208
Point
myLower
;
210
Point
myUpper
;
211
};
212
213
}
// namespace DGtal
214
215
217
// Includes inline functions.
218
#include "BoundedLatticePolytopeCounter.ih"
219
220
// //
222
223
#endif
// !defined BoundedLatticePolytopeCounter_h
224
225
#undef BoundedLatticePolytopeCounter_RECURSES
226
#endif
// else defined(BoundedLatticePolytopeCounter_RECURSES)
DGtal::BoundedLatticePolytopeCounter::getLatticeCells
LatticeSetByInterval getLatticeCells(Dimension a) const
DGtal::BoundedLatticePolytopeCounter::Domain
typename Polytope::Domain Domain
Definition
BoundedLatticePolytopeCounter.h:78
DGtal::BoundedLatticePolytopeCounter::getLatticeSet
LatticeSetByInterval getLatticeSet(Dimension a) const
DGtal::BoundedLatticePolytopeCounter::InequalityVector
typename Polytope::InequalityVector InequalityVector
Definition
BoundedLatticePolytopeCounter.h:77
DGtal::BoundedLatticePolytopeCounter::Point
typename Polytope::Point Point
Definition
BoundedLatticePolytopeCounter.h:74
DGtal::BoundedLatticePolytopeCounter::InequalityMatrix
typename Polytope::InequalityMatrix InequalityMatrix
Definition
BoundedLatticePolytopeCounter.h:76
DGtal::BoundedLatticePolytopeCounter::HalfSpace
typename Polytope::HalfSpace HalfSpace
Definition
BoundedLatticePolytopeCounter.h:79
DGtal::BoundedLatticePolytopeCounter::Space
TSpace Space
Definition
BoundedLatticePolytopeCounter.h:71
DGtal::BoundedLatticePolytopeCounter::interiorIntersectionIntervalAlongAxis
Interval interiorIntersectionIntervalAlongAxis(Point p, Dimension a) const
DGtal::BoundedLatticePolytopeCounter::LatticeSetByInterval
std::map< Point, Interval > LatticeSetByInterval
Internal type used to represent a convex lattice point set.
Definition
BoundedLatticePolytopeCounter.h:87
DGtal::BoundedLatticePolytopeCounter< Space >::myPolytope
const Polytope * myPolytope
Definition
BoundedLatticePolytopeCounter.h:206
DGtal::BoundedLatticePolytopeCounter::BoundedLatticePolytopeCounter
BoundedLatticePolytopeCounter(const Polytope &P)
DGtal::BoundedLatticePolytopeCounter::getInteriorPointsAlongAxis
void getInteriorPointsAlongAxis(PointRange &pts, Dimension a) const
DGtal::BoundedLatticePolytopeCounter::Self
BoundedLatticePolytopeCounter< TSpace > Self
Definition
BoundedLatticePolytopeCounter.h:70
DGtal::BoundedLatticePolytopeCounter::Polytope
BoundedLatticePolytope< TSpace > Polytope
Definition
BoundedLatticePolytopeCounter.h:72
DGtal::BoundedLatticePolytopeCounter< Space >::myUpper
Point myUpper
Definition
BoundedLatticePolytopeCounter.h:210
DGtal::BoundedLatticePolytopeCounter::lowerBound
Point lowerBound() const
Definition
BoundedLatticePolytopeCounter.h:199
DGtal::BoundedLatticePolytopeCounter::BigInteger
typename Polytope::BigInteger BigInteger
Definition
BoundedLatticePolytopeCounter.h:80
DGtal::BoundedLatticePolytopeCounter< Space >::myLower
Point myLower
Definition
BoundedLatticePolytopeCounter.h:208
DGtal::BoundedLatticePolytopeCounter::Intervals
IntegralIntervals< Integer > Intervals
Definition
BoundedLatticePolytopeCounter.h:81
DGtal::BoundedLatticePolytopeCounter::intersectionIntervalAlongAxis
Interval intersectionIntervalAlongAxis(Point p, Dimension a) const
DGtal::BoundedLatticePolytopeCounter::Vector
typename Polytope::Vector Vector
Definition
BoundedLatticePolytopeCounter.h:75
DGtal::BoundedLatticePolytopeCounter::init
void init(const Polytope *ptrP)
DGtal::BoundedLatticePolytopeCounter::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CSpace< TSpace >))
DGtal::BoundedLatticePolytopeCounter::countAlongAxis
Integer countAlongAxis(Dimension a) const
DGtal::BoundedLatticePolytopeCounter::getPointsAlongAxis
void getPointsAlongAxis(PointRange &pts, Dimension a) const
DGtal::BoundedLatticePolytopeCounter::longestAxis
Dimension longestAxis() const
DGtal::BoundedLatticePolytopeCounter::Interval
typename Intervals::Interval Interval
Definition
BoundedLatticePolytopeCounter.h:82
DGtal::BoundedLatticePolytopeCounter::countInteriorAlongAxis
Integer countInteriorAlongAxis(Dimension a) const
DGtal::BoundedLatticePolytopeCounter::LatticeSetByIntervals
std::map< Point, Intervals > LatticeSetByIntervals
Internal type used to represent any lattice point set.
Definition
BoundedLatticePolytopeCounter.h:90
DGtal::BoundedLatticePolytopeCounter::Integer
typename Polytope::Integer Integer
Definition
BoundedLatticePolytopeCounter.h:73
DGtal::BoundedLatticePolytopeCounter::BoundedLatticePolytopeCounter
BoundedLatticePolytopeCounter()=default
Default constructor.
DGtal::BoundedLatticePolytopeCounter::upperBound
Point upperBound() const
Definition
BoundedLatticePolytopeCounter.h:201
DGtal::BoundedLatticePolytopeCounter::PointRange
std::vector< Point > PointRange
Definition
BoundedLatticePolytopeCounter.h:83
DGtal::BoundedLatticePolytopeCounter< Space >::dimension
static const Dimension dimension
Definition
BoundedLatticePolytopeCounter.h:84
DGtal::BoundedLatticePolytope
Aim: Represents an nD lattice polytope, i.e. a convex polyhedron bounded with vertices with integer c...
Definition
BoundedLatticePolytope.h:74
DGtal::BoundedLatticePolytope::HalfSpace
ClosedIntegerHalfPlane< Space > HalfSpace
Definition
BoundedLatticePolytope.h:86
DGtal::BoundedLatticePolytope::Point
Space::Point Point
Definition
BoundedLatticePolytope.h:81
DGtal::BoundedLatticePolytope::InequalityMatrix
std::vector< Vector > InequalityMatrix
Definition
BoundedLatticePolytope.h:83
DGtal::BoundedLatticePolytope::InequalityVector
std::vector< Integer > InequalityVector
Definition
BoundedLatticePolytope.h:84
DGtal::BoundedLatticePolytope::BigInteger
DGtal::BigInteger BigInteger
Definition
BoundedLatticePolytope.h:87
DGtal::BoundedLatticePolytope::Domain
HyperRectDomain< Space > Domain
Definition
BoundedLatticePolytope.h:85
DGtal::BoundedLatticePolytope::Vector
Space::Vector Vector
Definition
BoundedLatticePolytope.h:82
DGtal::BoundedLatticePolytope::Integer
Space::Integer Integer
Definition
BoundedLatticePolytope.h:80
DGtal::IntegralIntervals< Integer >
DGtal::IntegralIntervals< Integer >::Interval
std::pair< Integer, Integer > Interval
Definition
IntegralIntervals.h:69
DGtal::SpaceND< 3, Integer >::dimension
static const Dimension dimension
Definition
SpaceND.h:132
DGtal
DGtal is the top-level namespace which contains all DGtal functions and types.
Definition
ClosedIntegerHalfPlane.h:49
DGtal::Dimension
DGtal::uint32_t Dimension
Definition
Common.h:119
DGtal::concepts::CSpace
Aim: Defines the concept describing a digital space, ie a cartesian product of integer lines.
Definition
CSpace.h:106
src
DGtal
geometry
volumes
BoundedLatticePolytopeCounter.h
Generated on
for DGtal by
1.18.0