|
DGtal 1.4.0
|
Aim: This class is a wrapper around ArithmeticalDSS that is devoted to the dynamic recognition of digital straight segments (DSS) along any sequence of 3D surfels. More...
#include <DGtal/geometry/surfaces/ArithmeticalDSSComputerOnSurfels.h>
Public Types | |
| typedef TKSpace | KSpace |
| typedef KSpace::SCell | SCell |
| typedef KSpace::Cell | Cell |
| typedef TIterator | ConstIterator |
| typedef KSpace::Space::Point | Point3 |
| typedef PointVector< 2, TInteger > | Point |
| typedef Point::Coordinate | Coordinate |
| typedef TInteger | Integer |
| typedef ArithmeticalDSS< Coordinate, Integer, adjacency > | DSS |
| typedef DSS | Primitive |
| typedef Point | Vector |
| typedef ArithmeticalDSSComputerOnSurfels< KSpace, ConstIterator, TInteger, adjacency > | Self |
| typedef ArithmeticalDSSComputerOnSurfels< KSpace, ReverseIterator< ConstIterator >, TInteger, adjacency > | Reverse |
Private Member Functions | |
| BOOST_CONCEPT_ASSERT ((concepts::CCellularGridSpaceND< TKSpace >)) | |
| BOOST_STATIC_ASSERT ((TKSpace::dimension==3)) | |
| bool | commonLinel (Cell const &aSurfel1, Cell const &aSurfel2, Cell &aLinel) |
| Point | projectInPlane (Point3 const &aPoint) const |
| bool | getOtherPointFromSurfel (ConstIterator const &it, Point &aPoint, bool aIsFront, bool aUpdatePrevious) |
Aim: This class is a wrapper around ArithmeticalDSS that is devoted to the dynamic recognition of digital straight segments (DSS) along any sequence of 3D surfels.
| TKSpace | type of Khalimsky space |
| TIterator | type of iterator on 3d surfels, at least readable and forward. |
| TInteger | type of integers used for the computation of remainders, which is a model of concepts::CInteger. |
| adjacency | an unsigned integer equal to 4 for standard (simply 4-connected) DSS or 8 for naive (simply 8-connected) DSS (default). |
This class is a model of concepts::CDynamicBidirectionalSegmentComputer. It is also default constructible, copy constructible, assignable and equality comparable.
Definition at line 82 of file ArithmeticalDSSComputerOnSurfels.h.
| typedef KSpace::Cell DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::Cell |
Type of unsigned cell
Definition at line 103 of file ArithmeticalDSSComputerOnSurfels.h.
| typedef TIterator DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::ConstIterator |
Type of iterator, at least readable and forward
Definition at line 108 of file ArithmeticalDSSComputerOnSurfels.h.
| typedef Point::Coordinate DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::Coordinate |
Type of coordinate
Definition at line 126 of file ArithmeticalDSSComputerOnSurfels.h.
| typedef ArithmeticalDSS<Coordinate, Integer, adjacency> DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::DSS |
Type of objects that represents DSSs
Definition at line 138 of file ArithmeticalDSSComputerOnSurfels.h.
| typedef TInteger DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::Integer |
Type of integer, devoted to remainders (and intercepts)
Definition at line 132 of file ArithmeticalDSSComputerOnSurfels.h.
| typedef TKSpace DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::KSpace |
Type of Khalimsky space
Definition at line 93 of file ArithmeticalDSSComputerOnSurfels.h.
| typedef PointVector<2, TInteger> DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::Point |
Type of 2d digital point
Definition at line 121 of file ArithmeticalDSSComputerOnSurfels.h.
| typedef KSpace::Space::Point DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::Point3 |
Type of 3d digital point
Definition at line 116 of file ArithmeticalDSSComputerOnSurfels.h.
| typedef DSS DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::Primitive |
Type of primitive representation, defined as an alias of DSS
Definition at line 145 of file ArithmeticalDSSComputerOnSurfels.h.
| typedef ArithmeticalDSSComputerOnSurfels<KSpace,ReverseIterator<ConstIterator>,TInteger,adjacency> DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::Reverse |
Definition at line 153 of file ArithmeticalDSSComputerOnSurfels.h.
| typedef KSpace::SCell DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::SCell |
Type of signed cell
Definition at line 98 of file ArithmeticalDSSComputerOnSurfels.h.
| typedef ArithmeticalDSSComputerOnSurfels<KSpace,ConstIterator,TInteger,adjacency> DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::Self |
Definition at line 152 of file ArithmeticalDSSComputerOnSurfels.h.
| typedef Point DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::Vector |
Type of vector, defined as an alias of point
Definition at line 150 of file ArithmeticalDSSComputerOnSurfels.h.
| DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::ArithmeticalDSSComputerOnSurfels | ( | ) |
Default constructor. not valid
| DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::ArithmeticalDSSComputerOnSurfels | ( | const KSpace & | aKSpace, |
| Dimension | aDim1, | ||
| Dimension | aDim2 ) |
Constructor.
| aKSpace | a Khalimsky space |
| aDim1 | the first direction to project |
| aDim2 | the second direction to project |
| DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::ArithmeticalDSSComputerOnSurfels | ( | const ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency > & | other | ) |
Copy constructor.
| other | the object to clone. |
|
inline |
| Integer DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::a | ( | ) | const |
| Integer DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::b | ( | ) | const |
| Point DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::back | ( | ) | const |
| ConstIterator DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::begin | ( | ) | const |
| DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::BOOST_CONCEPT_ASSERT | ( | (boost_concepts::ForwardTraversalConcept< ConstIterator >) | ) |
| DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::BOOST_CONCEPT_ASSERT | ( | (boost_concepts::ReadableIteratorConcept< ConstIterator >) | ) |
|
private |
| DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::BOOST_CONCEPT_ASSERT | ( | (concepts::CInteger< Coordinate >) | ) |
| DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::BOOST_CONCEPT_ASSERT | ( | (concepts::CInteger< Integer >) | ) |
| DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::BOOST_STATIC_ASSERT | ( | (concepts::ConceptUtils::SameType< Point, typename DSS::Point >::value) | ) |
| DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::BOOST_STATIC_ASSERT | ( | (concepts::ConceptUtils::SameType< SCell, typename IteratorCirculatorTraits< ConstIterator >::Value >::value) | ) |
|
private |
|
private |
| aSurfel1 | the first unsigned surfel. |
| aSurfel2 | the second unsigned surfel. |
| aLinel | the common unsigned linel if it exists. |
| ConstIterator DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::end | ( | ) | const |
| bool DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::extendBack | ( | ) |
Tests whether the current DSS can be extended at the back. Computes the parameters of the extended DSS if yes.
| bool DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::extendFront | ( | ) |
Tests whether the current DSS can be extended at the front. Computes the parameters of the extended DSS if yes.
| Point DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::front | ( | ) | const |
|
private |
| it | an iterator on a surfel. |
| aPoint | the new 2D point of 'it' that is not common to the previous surfel (if the update is possible). |
| aUpdatePrevious | a boolean that indicates whether to update myPreviousSurfel or not. |
| aIsFront | a boolean indicating we want to update in the front or in the back direction. |
| Reverse DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::getReverse | ( | ) | const |
| Self DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::getSelf | ( | ) | const |
| void DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::init | ( | const ConstIterator & | it | ) |
Initialisation.
| it | an iterator on 3D surfels |
| bool DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::isExtendableBack | ( | ) |
Tests whether the current DSS can be extended at the back.
| bool DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::isExtendableFront | ( | ) |
Tests whether the current DSS can be extended at the front.
| bool DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::isValid | ( | ) | const |
Checks the validity/consistency of the object.
| Point DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::Lf | ( | ) | const |
| Point DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::Ll | ( | ) | const |
| Integer DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::mu | ( | ) | const |
| Integer DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::omega | ( | ) | const |
| bool DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::operator!= | ( | const ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency > & | other | ) | const |
Difference operator.
| other | the object to compare with. |
| ArithmeticalDSSComputerOnSurfels & DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::operator= | ( | const ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency > & | other | ) |
Assignment.
| other | the object to copy. |
| bool DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::operator== | ( | const ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency > & | other | ) | const |
Equality operator.
| other | the object to compare with. |
| const Primitive & DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::primitive | ( | ) | const |
|
private |
| aPoint | a digital 3D point. |
| std::pair< Point, Point > DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::projectSurfel | ( | SCell const & | aSCell | ) | const |
| aSCell | a surfel. |
Referenced by extractPoints().
| bool DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::retractBack | ( | ) |
Removes the back point of the DSS if it has more than two points
| bool DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::retractFront | ( | ) |
Removes the front point of the DSS if it has more than two points
| void DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::selfDisplay | ( | std::ostream & | out | ) | const |
Writes/Displays the object on an output stream.
| out | the output stream where the object is written. |
| Point DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::Uf | ( | ) | const |
| Point DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger, adjacency >::Ul | ( | ) | const |
|
protected |
begin iterator
Definition at line 415 of file ArithmeticalDSSComputerOnSurfels.h.
|
protected |
The first projection dimension.
Definition at line 374 of file ArithmeticalDSSComputerOnSurfels.h.
|
protected |
The second projection dimension.
Definition at line 379 of file ArithmeticalDSSComputerOnSurfels.h.
|
protected |
DSS representation
Definition at line 411 of file ArithmeticalDSSComputerOnSurfels.h.
|
protected |
end iterator
Definition at line 419 of file ArithmeticalDSSComputerOnSurfels.h.
|
protected |
Khalimsky space
Definition at line 369 of file ArithmeticalDSSComputerOnSurfels.h.
|
protected |
We store the previous surfel in the 'back' direction to compute the common linel. Used in getOtherPointFromSurfel.
Definition at line 406 of file ArithmeticalDSSComputerOnSurfels.h.
|
protected |
We store the previous surfel in the 'front' direction to compute the common linel. Used in getOtherPointFromSurfel.
Definition at line 400 of file ArithmeticalDSSComputerOnSurfels.h.
|
protected |
The first projection direction.
Definition at line 384 of file ArithmeticalDSSComputerOnSurfels.h.
|
protected |
The second projection direction.
Definition at line 389 of file ArithmeticalDSSComputerOnSurfels.h.
|
protected |
The direction that is orthogonal to the two projection directions.
Definition at line 394 of file ArithmeticalDSSComputerOnSurfels.h.