31#if defined(PlaneProbingTetrahedronEstimator_RECURSES)
32#error Recursive header files inclusion detected in PlaneProbingTetrahedronEstimator.h
35#define PlaneProbingTetrahedronEstimator_RECURSES
37#if !defined PlaneProbingTetrahedronEstimator_h
39#define PlaneProbingTetrahedronEstimator_h
45#include "DGtal/base/Common.h"
46#include "DGtal/geometry/helpers/PlaneProbingEstimatorHelper.h"
47#include "DGtal/geometry/surfaces/estimation/PlaneProbingNeighborhood.h"
48#include "DGtal/kernel/CPointPredicate.h"
105 template <
typename TPredicate, ProbingMode mode = ProbingMode::H>
114 using Point =
typename Predicate::Point;
219 std::pair<bool, UpdateOperation>
advance (std::vector<PointOnProbingRay>
const& aNeighbors);
337 template <
typename TPredicate, ProbingMode mode>
345#include "DGtal/geometry/surfaces/estimation/PlaneProbingTetrahedronEstimator.ih"
352#undef PlaneProbingTetrahedronEstimator_RECURSES
Aim: A base virtual class that represents a way to probe a neighborhood, used in the plane probing ba...
std::array< Vector, 3 > Triangle
detail::PointOnProbingRay< Integer > PointOnProbingRay
Aim: A class that locally estimates a normal on a digital set using only a predicate "does a point x ...
void applyOperation(UpdateOperation const &aOp)
std::pair< bool, UpdateOperation > advance(std::vector< PointOnProbingRay > const &aNeighbors)
void translateQ(Vector const &aTranslation)
void update(UpdateOperation const &aOp)
bool isUnimodular() const
bool isProjectedInside() const
HexagonState hexagonState() const
bool isProjectedInside(Triangle const &aTriangle) const
BOOST_CONCEPT_ASSERT((concepts::CPointPredicate< TPredicate >))
typename PointOnProbingRay::Permutation Permutation
std::vector< UpdateOperation > myOperations
typename Neighborhood::Triangle Triangle
Neighborhood * myNeighborhood
PlaneProbingTetrahedronEstimator & operator=(const PlaneProbingTetrahedronEstimator &other)=delete
PlaneProbingTetrahedronEstimator(const PlaneProbingTetrahedronEstimator &other)=delete
PlaneProbingTetrahedronEstimator(PlaneProbingTetrahedronEstimator &&other)=delete
~PlaneProbingTetrahedronEstimator()
typename Predicate::Point Point
typename Neighborhood::HexagonState HexagonState
std::pair< bool, UpdateOperation > advance()
std::pair< Vector, Vector > getBasis() const
typename Point::Coordinate Integer
typename Neighborhood::UpdateOperation UpdateOperation
Predicate const & myPredicate
Vector const & m(int aIndex) const
void selfDisplay(std::ostream &out) const
Triangle vertices() const
PlaneProbingTetrahedronEstimator()=delete
PlaneProbingTetrahedronEstimator(Point const &aPoint, Triangle const &aM, Predicate const &aPredicate)
Quantity compute(std::vector< PointOnProbingRay > const &aNeighbors)
typename Neighborhood::PointOnProbingRay PointOnProbingRay
DGtal is the top-level namespace which contains all DGtal functions and types.
std::ostream & operator<<(std::ostream &out, const ClosedIntegerHalfPlane< TSpace > &object)
Aim: Defines a predicate on a point.