DGtal
1.5.beta
|
Aim: This class is a wrapper around ArithmeticalDSS that is devoted to the dynamic recognition of digital straight segments (DSS) along a sequence of surfels lying on a slice of the digital surface (i.e., the orthogonal direction of all surfels belong to a same plane, most pairs of consecutive surfels share a common linel). More...
#include <DGtal/geometry/surfaces/ArithmeticalDSSComputerOnSurfels.h>
Data Structures | |
struct | DirectPairExtractor |
struct | IndirectPairExtractor |
Public Types | |
typedef TKSpace | KSpace |
typedef KSpace::SCell | SCell |
typedef TIterator | ConstIterator |
typedef KSpace::Space::Point | Point3 |
typedef PointVector< 2, TInteger > | Point |
typedef functors::Projector< SpaceND< 2, TInteger > > | Projector |
typedef Point::Coordinate | Coordinate |
typedef TInteger | Integer |
typedef ArithmeticalDSS< Coordinate, Integer, 4 > | DSS |
typedef DSS | Primitive |
typedef Point | Vector |
typedef ArithmeticalDSSComputerOnSurfels< KSpace, ConstIterator, TInteger > | Self |
typedef std::shared_ptr< DirectPairExtractor > | PairExtractor |
typedef ArithmeticalDSSComputerOnSurfels< KSpace, ReverseIterator< ConstIterator >, TInteger > | Reverse |
Protected Attributes | |
const KSpace * | myKSpace |
Dimension | mySliceAxis1 |
Dimension | mySliceAxis2 |
Dimension | myProjectionAxis |
Projector | my2DProjector |
PairExtractor | myExtractor |
DSS | myDSS |
ConstIterator | myBegin |
ConstIterator | myEnd |
Private Member Functions | |
BOOST_CONCEPT_ASSERT ((concepts::CCellularGridSpaceND< TKSpace >)) | |
BOOST_STATIC_ASSERT ((TKSpace::dimension==3)) | |
std::pair< Point, Point > | getProjectedPointsFromLinel (SCell const &aLinel) const |
Dimension | dimNotIn (Dimension const &aDim1, Dimension const &aDim2) const |
Aim: This class is a wrapper around ArithmeticalDSS that is devoted to the dynamic recognition of digital straight segments (DSS) along a sequence of surfels lying on a slice of the digital surface (i.e., the orthogonal direction of all surfels belong to a same plane, most pairs of consecutive surfels share a common linel).
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 85 of file ArithmeticalDSSComputerOnSurfels.h.
typedef TIterator DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::ConstIterator |
Type of iterator, at least readable and forward
Definition at line 106 of file ArithmeticalDSSComputerOnSurfels.h.
typedef Point::Coordinate DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::Coordinate |
Type of coordinate
Definition at line 129 of file ArithmeticalDSSComputerOnSurfels.h.
typedef ArithmeticalDSS<Coordinate, Integer, 4> DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::DSS |
Type of objects that represents DSSs
Definition at line 141 of file ArithmeticalDSSComputerOnSurfels.h.
typedef TInteger DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::Integer |
Type of integer, devoted to remainders (and intercepts)
Definition at line 135 of file ArithmeticalDSSComputerOnSurfels.h.
typedef TKSpace DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::KSpace |
Type of Khalimsky space
Definition at line 96 of file ArithmeticalDSSComputerOnSurfels.h.
typedef std::shared_ptr<DirectPairExtractor> DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::PairExtractor |
Definition at line 175 of file ArithmeticalDSSComputerOnSurfels.h.
typedef PointVector<2, TInteger> DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::Point |
Type of 2d digital point
Definition at line 119 of file ArithmeticalDSSComputerOnSurfels.h.
typedef KSpace::Space::Point DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::Point3 |
Type of 3d digital point
Definition at line 114 of file ArithmeticalDSSComputerOnSurfels.h.
typedef DSS DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::Primitive |
Type of primitive representation, defined as an alias of DSS
Definition at line 148 of file ArithmeticalDSSComputerOnSurfels.h.
typedef functors::Projector<SpaceND<2,TInteger> > DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::Projector |
Type of 3d to 2d projector
Definition at line 124 of file ArithmeticalDSSComputerOnSurfels.h.
typedef ArithmeticalDSSComputerOnSurfels<KSpace,ReverseIterator<ConstIterator>,TInteger> DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::Reverse |
Reversed version of this class (using reverse iterators)
Definition at line 180 of file ArithmeticalDSSComputerOnSurfels.h.
typedef KSpace::SCell DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::SCell |
Type of signed cell
Definition at line 101 of file ArithmeticalDSSComputerOnSurfels.h.
typedef ArithmeticalDSSComputerOnSurfels<KSpace,ConstIterator,TInteger> DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::Self |
Alias of this class
Definition at line 158 of file ArithmeticalDSSComputerOnSurfels.h.
typedef Point DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::Vector |
Type of vector, defined as an alias of point
Definition at line 153 of file ArithmeticalDSSComputerOnSurfels.h.
DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::ArithmeticalDSSComputerOnSurfels | ( | ) |
Default constructor. not valid
DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::ArithmeticalDSSComputerOnSurfels | ( | const KSpace & | aKSpace, |
Dimension | aDim1, | ||
Dimension | aDim2, | ||
bool | aFlagToReverse = false |
||
) |
Constructor.
aKSpace | a Khalimsky space |
aDim1 | a first direction that describes the projection plane |
aDim2 | a second direction that describes the projection plane |
aFlagToReverse | a boolean telling whether one has to reverse the orientation of the points associated to a surfel or not ('false' by default) |
DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::ArithmeticalDSSComputerOnSurfels | ( | const ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger > & | other | ) |
Copy constructor.
other | the object to clone. |
|
inline |
Integer DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::a | ( | ) | const |
Integer DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::b | ( | ) | const |
Point DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::back | ( | ) | const |
ConstIterator DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::begin | ( | ) | const |
DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::BOOST_CONCEPT_ASSERT | ( | (boost_concepts::ForwardTraversalConcept< ConstIterator >) | ) |
DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::BOOST_CONCEPT_ASSERT | ( | (boost_concepts::ReadableIteratorConcept< ConstIterator >) | ) |
|
private |
DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::BOOST_CONCEPT_ASSERT | ( | (concepts::CInteger< Coordinate >) | ) |
DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::BOOST_CONCEPT_ASSERT | ( | (concepts::CInteger< Integer >) | ) |
DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::BOOST_STATIC_ASSERT | ( | (concepts::ConceptUtils::SameType< Point, typename DSS::Point >::value) | ) |
DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::BOOST_STATIC_ASSERT | ( | (concepts::ConceptUtils::SameType< SCell, typename IteratorCirculatorTraits< ConstIterator >::Value >::value) | ) |
|
private |
|
private |
Returns the unique dimension in {0,1,2} \ {aDim1, aDim2}.
aDim1 | a dimension |
aDim2 | a dimension |
ConstIterator DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::end | ( | ) | const |
bool DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::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 >::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 >::front | ( | ) | const |
Point DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::getNextProjectedPoint | ( | SCell const & | aSurfel | ) | const |
Front end of the projection of a given surfel.
aSurfel | any signed surfel. |
Referenced by extractPoints().
Point DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::getPreviousProjectedPoint | ( | SCell const & | aSurfel | ) | const |
Back end of the projection of a given surfel.
aSurfel | any signed surfel. |
|
private |
Returns the ends of a unit segment corresponding to the projection of a given signed linel.
aLinel | any signed linel. |
std::pair<Point,Point> DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::getProjectedPointsFromSurfel | ( | SCell const & | aSurfel | ) | const |
Returns the ends of a unit segment corresponding to the projection of a given signed surfel.
aSurfel | any signed surfel. |
Referenced by extractPoints().
Reverse DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::getReverse | ( | ) | const |
Self DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::getSelf | ( | ) | const |
void DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::init | ( | const ConstIterator & | it | ) |
Initialisation.
it | an iterator on 3D surfels |
bool DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::isExtendableBack | ( | ) |
Tests whether the current DSS can be extended at the back.
bool DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::isExtendableFront | ( | ) |
Tests whether the current DSS can be extended at the front.
bool DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::isValid | ( | ) | const |
Checks the validity/consistency of the object.
Point DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::Lf | ( | ) | const |
Point DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::Ll | ( | ) | const |
Integer DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::mu | ( | ) | const |
Integer DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::omega | ( | ) | const |
bool DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::operator!= | ( | const ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger > & | other | ) | const |
Difference operator.
other | the object to compare with. |
ArithmeticalDSSComputerOnSurfels& DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::operator= | ( | const ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger > & | other | ) |
Assignment.
other | the object to copy. |
bool DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::operator== | ( | const ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger > & | other | ) | const |
Equality operator.
other | the object to compare with. |
const Primitive& DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::primitive | ( | ) | const |
bool DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::retractBack | ( | ) |
Removes the back point of the DSS if it has more than two points
bool DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::retractFront | ( | ) |
Removes the front point of the DSS if it has more than two points
void DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::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 >::Uf | ( | ) | const |
Point DGtal::ArithmeticalDSSComputerOnSurfels< TKSpace, TIterator, TInteger >::Ul | ( | ) | const |
|
protected |
Functor that projects a 3D point to a 2D point along myProjectionAxis
Definition at line 443 of file ArithmeticalDSSComputerOnSurfels.h.
|
protected |
begin iterator
Definition at line 459 of file ArithmeticalDSSComputerOnSurfels.h.
|
protected |
DSS representation
Definition at line 454 of file ArithmeticalDSSComputerOnSurfels.h.
|
protected |
end iterator
Definition at line 467 of file ArithmeticalDSSComputerOnSurfels.h.
|
protected |
Smart pointer on an object used to extract relevant points from a pair of points
Definition at line 449 of file ArithmeticalDSSComputerOnSurfels.h.
|
protected |
(Pointer to) Khalimsky space
Definition at line 422 of file ArithmeticalDSSComputerOnSurfels.h.
|
protected |
A direction along which the points are projected (and orthogonal to the projection plane)
Definition at line 438 of file ArithmeticalDSSComputerOnSurfels.h.
|
protected |
A first direction that describes the projection plane
Definition at line 427 of file ArithmeticalDSSComputerOnSurfels.h.
|
protected |
A second direction that describes the projection plane
Definition at line 432 of file ArithmeticalDSSComputerOnSurfels.h.