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.