DGtal 1.4.0
|
Aim: A class that locally estimates a normal on a digital set using only a predicate "does a point x belong to the digital set or not?". More...
#include <DGtal/geometry/surfaces/estimation/PlaneProbingTetrahedronEstimator.h>
Public Types | |
using | Self = PlaneProbingTetrahedronEstimator<TPredicate, mode> |
using | Predicate = TPredicate |
using | Point = typename Predicate::Point |
using | Vector = Point |
using | Neighborhood = PlaneProbingNeighborhood<TPredicate> |
using | Triangle = typename Neighborhood::Triangle |
using | Integer = typename Point::Coordinate |
using | PointOnProbingRay = typename Neighborhood::PointOnProbingRay |
using | Permutation = typename PointOnProbingRay::Permutation |
using | Quantity = Vector |
using | HexagonState = typename Neighborhood::HexagonState |
using | UpdateOperation = typename Neighborhood::UpdateOperation |
Private Member Functions | |
BOOST_CONCEPT_ASSERT ((concepts::CPointPredicate< TPredicate >)) | |
void | update (UpdateOperation const &aOp) |
Private Attributes | |
Triangle | myM |
Predicate const & | myPredicate |
Point | myS |
Point | myQ |
Neighborhood * | myNeighborhood = nullptr |
std::vector< UpdateOperation > | myOperations |
Aim: A class that locally estimates a normal on a digital set using only a predicate "does a point x belong to the digital set or not?".
Description of template class 'PlaneProbingTetrahedronEstimator'
TPredicate | the probing predicate, a model of concepts::CPointPredicate. |
mode | the probing mode, see DGtal::ProbingMode. |
Definition at line 106 of file PlaneProbingTetrahedronEstimator.h.
using DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::HexagonState = typename Neighborhood::HexagonState |
Definition at line 122 of file PlaneProbingTetrahedronEstimator.h.
using DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::Integer = typename Point::Coordinate |
Definition at line 118 of file PlaneProbingTetrahedronEstimator.h.
using DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::Neighborhood = PlaneProbingNeighborhood<TPredicate> |
Definition at line 116 of file PlaneProbingTetrahedronEstimator.h.
using DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::Permutation = typename PointOnProbingRay::Permutation |
Definition at line 120 of file PlaneProbingTetrahedronEstimator.h.
using DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::Point = typename Predicate::Point |
Definition at line 114 of file PlaneProbingTetrahedronEstimator.h.
using DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::PointOnProbingRay = typename Neighborhood::PointOnProbingRay |
Definition at line 119 of file PlaneProbingTetrahedronEstimator.h.
using DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::Predicate = TPredicate |
Definition at line 113 of file PlaneProbingTetrahedronEstimator.h.
using DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::Quantity = Vector |
Definition at line 121 of file PlaneProbingTetrahedronEstimator.h.
using DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::Self = PlaneProbingTetrahedronEstimator<TPredicate, mode> |
Definition at line 112 of file PlaneProbingTetrahedronEstimator.h.
using DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::Triangle = typename Neighborhood::Triangle |
Definition at line 117 of file PlaneProbingTetrahedronEstimator.h.
using DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::UpdateOperation = typename Neighborhood::UpdateOperation |
Definition at line 123 of file PlaneProbingTetrahedronEstimator.h.
using DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::Vector = Point |
Definition at line 115 of file PlaneProbingTetrahedronEstimator.h.
|
delete |
Default constructor.
DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::PlaneProbingTetrahedronEstimator | ( | Point const & | aPoint, |
Triangle const & | aM, | ||
Predicate const & | aPredicate ) |
Constructs a plane probing tetrahedron estimator from an initial frame and a probing predicate.
aPoint | the base point of the initial frame. |
aM | the three vectors of the initial frame. |
aPredicate | the probing predicate. |
DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::~PlaneProbingTetrahedronEstimator | ( | ) |
Destructor.
|
delete |
Copy constructor.
other | the object to clone. |
|
delete |
Move constructor.
other | the object to move. |
std::pair< bool, UpdateOperation > DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::advance | ( | ) |
Do one step of the estimation.
std::pair< bool, UpdateOperation > DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::advance | ( | std::vector< PointOnProbingRay > const & | aNeighbors | ) |
Do one step of the estimation, but considering only a subset of candidate rays. Particularly useful on digital surfaces when some directions must be discarded because of 'flat' zones.
aNeighbors | the list of candidates ray to consider. |
void DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::applyOperation | ( | UpdateOperation const & | aOp | ) |
Applies an operation.
aOp | the operation to apply. |
|
private |
Quantity DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::compute | ( | ) |
Estimate the normal using a plane-probing approach, calls advance repeatedly.
Quantity DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::compute | ( | std::vector< PointOnProbingRay > const & | aNeighbors | ) |
Estimate the normal using a plane-probing approach, calls advance repeatedly.
aNeighbors | the list of candidates ray to consider. |
Referenced by TEST_CASE().
std::pair< Vector, Vector > DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::getBasis | ( | ) | const |
Vector DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::getNormal | ( | ) | const |
Point DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::getOrigin | ( | ) | const |
HexagonState DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::hexagonState | ( | ) | const |
bool DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::isInside | ( | ) | const |
Checks whether the predicate is true for all vertices of the base triangle or not.
bool DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::isProjectedInside | ( | ) | const |
Tests whether the fixed point 'q' projects into the base, along the current estimated normal.
bool DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::isProjectedInside | ( | Triangle const & | aTriangle | ) | const |
Tests whether the fixed point 'q' projects the given triangle, along the current estimated normal.
aTriangle | the 3 points of the triangle. |
bool DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::isReduced | ( | ) | const |
Referenced by TEST_CASE().
bool DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::isUnimodular | ( | ) | const |
Checks whether the three vectors stored in 'myM' are the columns of a unimodular matrix or not.
bool DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::isValid | ( | ) | const |
Checks the validity/consistency of the object.
Vector const & DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::m | ( | int | aIndex | ) | const |
aIndex | the index of the vector (between 0 and 2). |
|
delete |
Copy assignment operator.
other | the object to copy. |
|
delete |
Move assignment operator.
other | the object to move. |
Point const & DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::q | ( | ) | const |
void DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::selfDisplay | ( | std::ostream & | out | ) | const |
Writes/Displays the object on an output stream.
out | the output stream where the object is written. |
void DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::translateQ | ( | ) |
Translates the fixed point \( q \), this is used by the parallelepiped version of the estimator, see PlaneProbingParallelepipedEstimator.
void DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::translateQ | ( | Vector const & | aTranslation | ) |
Translates the fixed point \( q \) by a given vector.
aTranslation | a translation vector. |
|
private |
Updates one height vector.
aOp | operation describing the update step. |
Triangle DGtal::PlaneProbingTetrahedronEstimator< TPredicate, mode >::vertices | ( | ) | const |
|
private |
The three height vectors, representing the current frame.
Definition at line 309 of file PlaneProbingTetrahedronEstimator.h.
|
private |
Describes what kind of probing method is used.
Definition at line 313 of file PlaneProbingTetrahedronEstimator.h.
|
private |
The list of all operations.
Definition at line 314 of file PlaneProbingTetrahedronEstimator.h.
|
private |
The probing predicate.
Definition at line 310 of file PlaneProbingTetrahedronEstimator.h.
|
private |
The fixed point 'q'.
Definition at line 312 of file PlaneProbingTetrahedronEstimator.h.
|
private |
The shift vector.
Definition at line 311 of file PlaneProbingTetrahedronEstimator.h.