36 #if defined(PlaneProbingEstimatorHelper_RECURSES)
37 #error Recursive header files inclusion detected in PlaneProbingEstimatorHelper.h
40 #define PlaneProbingEstimatorHelper_RECURSES
42 #if !defined PlaneProbingEstimatorHelper_h
44 #define PlaneProbingEstimatorHelper_h
50 #include "DGtal/math/linalg/SimpleMatrix.h"
51 #include "DGtal/base/Common.h"
52 #include "DGtal/kernel/CInteger.h"
65 template <
typename Po
int >
74 template <
int N,
typename T >
83 template <
typename Po
int >
85 typename Point::Coordinate
distToSphere (std::array<Point, 5>
const& aPoints);
94 template <
typename Po
int >
111 template <
typename Integer =
int,
typename Index = std::
size_t >
162 template <
typename Po
int >
217 template <
typename Integer,
typename Index >
237 template <
typename Integer =
int,
typename Index = std::
size_t >
296 template <
typename Vector >
308 template <
typename Po
int >
331 return !(*
this == other);
352 std::pair<Integer,Integer> d = std::make_pair(
myDir.first+other.
myDir.first,
364 std::pair<Integer,Integer> d = std::make_pair(
myDir.first*aValue,
365 myDir.second*aValue);
377 if ( (
myDir.first != 0) || (
myDir.second != 0) ) {
378 return ( (
myDir.first >= 0) && (
myDir.second >= 0)
379 && (
myK >= 0) && (
myK <= 2)
400 template <
typename Integer,
typename Index >
402 aOs <<
"GridPoint[k=" << aGridPoint.
k()
403 <<
", a=" << aGridPoint.
direction().first
404 <<
", b=" << aGridPoint.
direction().second
422 template <
typename Integer =
int,
typename Index = std::
size_t >
441 const std::pair<Integer,Integer>& aDirection,
466 return !(*
this == other);
514 template <
typename Po
int >
532 #include "DGtal/geometry/helpers/PlaneProbingEstimatorHelper.ih"
539 #undef PlaneProbingEstimatorHelper_RECURSES
Aim: Represents a grid point along a discrete ray defined on a grid.
GridPointOnProbingRay()=default
GridPoint< Integer, Index > myOrigin
GridPointOnProbingRay next(const Integer &aInc) const
bool operator==(GridPointOnProbingRay const &other) const
GridPointOnProbingRay previous(const Integer &aDec) const
GridPoint< Integer, Index > gridPoint() const
BOOST_CONCEPT_ASSERT((concepts::CInteger< Integer >))
GridPointOnProbingRay(const GridPoint< Integer, Index > &aGridPoint, const std::pair< Integer, Integer > &aDirection, const Integer &aIdx=0)
bool operator!=(GridPointOnProbingRay const &other) const
Point relativePoint(std::array< Point, 3 > const &aM) const
std::pair< Integer, Integer > myDirection
A grid point consists of a couple of nonnegative coordinates and an integer index that determines a...
Vector directionVector(std::array< Vector, 3 > const &aM) const
GridPoint(std::pair< Integer, Integer > const &aDir, Index const &aK)
GridPoint(Integer const &aX, Integer const &aY, Index const &aK)
bool operator==(GridPoint const &other) const
std::pair< Integer, Integer > direction() const
bool operator!=(GridPoint const &other) const
Point relativePoint(std::array< Point, 3 > const &aM) const
GridPoint operator+(const GridPoint &other) const
std::pair< Integer, Integer > myDir
GridPoint operator*(Integer aValue) const
GridPoint getOnSameGrid(const std::pair< Integer, Integer > &aDir) const
BOOST_CONCEPT_ASSERT((concepts::CInteger< Integer >))
A ray consists of a permutation and an integer index (position on the ray). For a triplet of vector...
PointOnProbingRay next(Integer const &aInc) const
std::array< Index, 3 > Permutation
PointOnProbingRay getBase() const
Integer const & position() const
Permutation const & sigma() const
Point relativePoint(std::array< Point, 3 > const &aM) const
Index sigma(Index const &aIndex) const
BOOST_CONCEPT_ASSERT((concepts::CInteger< Integer >))
PointOnProbingRay previous(Integer const &aDec) const
PointOnProbingRay()=default
bool operator!=(PointOnProbingRay const &aRay) const
bool operator==(PointOnProbingRay const &aRay) const
bool operator<=(PointOnProbingRay const &aRay) const
PointOnProbingRay(Permutation const &aSigma, Integer const &aInt=Integer(0))
DigitalPlane::Point Vector
Point::Coordinate Integer
std::ostream & operator<<(std::ostream &aOs, PointOnProbingRay< Integer, Index > const &aRay)
T determinant(const T aMatrix[N][N])
Point::Coordinate squaredNorm(Point const &aPoint)
bool isBasisReduced(Point const &aU, Point const &aV)
Point::Coordinate distToSphere(std::array< Point, 5 > const &aPoints)
DGtal is the top-level namespace which contains all DGtal functions and types.
Aim: Concept checking for Integer Numbers. More precisely, this concept is a refinement of both CEucl...