DGtal 1.4.0
|
Aim: Represents a digital surface with the topology of its dual surface. Its aim is to mimick the standard DigitalSurface, but to optimize its traversal and topology services. The idea is simply to number all its vertices (ie surfels), arcs, and faces and to store its topology with an half-edge data structure. It is essentially a PolygonalSurface but with services specific to DigitalSurface, like a tracker, a DigitalSurfaceContainer, etc. In theory, it can replace a DigitalSurface in many algorithms, and is more efficient if you need to do a lot of traversal on it (like many k-ring operations). More...
#include <DGtal/topology/IndexedDigitalSurface.h>
Data Structures | |
struct | IndexedPropertyMap |
struct | VertexMap |
Public Member Functions | |
BOOST_CONCEPT_ASSERT ((concepts::CDigitalSurfaceContainer< DigitalSurfaceContainer >)) | |
BOOST_STATIC_CONSTANT (Face, INVALID_FACE=HALF_EDGE_INVALID_INDEX) | |
~IndexedDigitalSurface () | |
IndexedDigitalSurface () | |
IndexedDigitalSurface (ConstAlias< DigitalSurfaceContainer > surfContainer) | |
void | clear () |
Clears everything. | |
bool | build (ConstAlias< DigitalSurfaceContainer > surfContainer) |
const DigitalSurfaceContainer & | container () const |
const KSpace & | space () const |
const HalfEdgeDataStructure & | heds () const |
Size | nbArcs () const |
Size | nbVertices () const |
Size | nbEdges () const |
Size | nbFaces () const |
long | Euler () const |
PositionsMap | positions () |
IndexedPropertyMap< SCell > | surfels () |
IndexedPropertyMap< SCell > | linels () |
IndexedPropertyMap< SCell > | pointels () |
template<typename AnyData > | |
IndexedPropertyMap< AnyData > | makeVertexMap () const |
template<typename AnyData > | |
IndexedPropertyMap< AnyData > | makeVertexMap (AnyData value) const |
template<typename AnyData > | |
IndexedPropertyMap< AnyData > | makeEdgeMap () const |
template<typename AnyData > | |
IndexedPropertyMap< AnyData > | makeEdgeMap (AnyData value) const |
template<typename AnyData > | |
IndexedPropertyMap< AnyData > | makeFaceMap () const |
template<typename AnyData > | |
IndexedPropertyMap< AnyData > | makeFaceMap (AnyData value) const |
RealPoint & | position (Vertex v) |
const RealPoint & | position (Vertex v) const |
const SCell & | surfel (Vertex v) const |
const SCell & | linel (Arc a) const |
const SCell & | pointel (Face f) const |
Vertex | getVertex (const SCell &aSurfel) const |
Arc | getArc (const SCell &aLinel) const |
Face | getFace (const SCell &aPointel) const |
Size | size () const |
Size | bestCapacity () const |
Size | degree (const Vertex &v) const |
template<typename OutputIterator > | |
void | writeNeighbors (OutputIterator &it, const Vertex &v) const |
template<typename OutputIterator , typename VertexPredicate > | |
void | writeNeighbors (OutputIterator &it, const Vertex &v, const VertexPredicate &pred) const |
ConstIterator | begin () const |
ConstIterator | end () const |
ArcRange | outArcs (const Vertex &v) const |
ArcRange | inArcs (const Vertex &v) const |
FaceRange | facesAroundVertex (const Vertex &v) const |
Vertex | head (const Arc &a) const |
Vertex | tail (const Arc &a) const |
Arc | opposite (const Arc &a) const |
Arc | next (const Arc &a) const |
Arc | arc (const Vertex &t, const Vertex &h) const |
Face | faceAroundArc (const Arc &a) const |
FaceRange | facesAroundArc (const Arc &a) const |
VertexRange | verticesAroundFace (const Face &f) const |
bool | isVertexBoundary (const Vertex &v) const |
bool | isArcBoundary (const Arc &v) const |
FaceRange | allFaces () const |
ArcRange | allArcs () const |
VertexRange | allVertices () const |
ArcRange | allBoundaryArcs () const |
VertexRange | allBoundaryVertices () const |
void | selfDisplay (std::ostream &out) const |
bool | isValid () const |
Protected Types | |
typedef HalfEdgeDataStructure::HalfEdge | HalfEdge |
Protected Attributes | |
bool | isHEDSValid |
Indicates if the half-edge structure has been created/updated. | |
HalfEdgeDataStructure | myHEDS |
The half-edge data structure that stores the topology of the mesh. | |
CountedConstPtrOrConstPtr< DigitalSurfaceContainer > | myContainer |
The (secured or not) pointer to the associated digital surface container. | |
PositionsStorage | myPositions |
Stores the information for each Vertex. | |
PolygonalFacesStorage | myPolygonalFaces |
Stores the polygonal faces. | |
std::map< SCell, VertexIndex > | mySurfel2VertexIndex |
Mapping Surfel -> VertexIndex. | |
std::map< SCell, Arc > | myLinel2Arc |
Mapping Linel -> Arc. | |
std::map< SCell, FaceIndex > | myPointel2FaceIndex |
Mapping Pointel -> FaceIndex. | |
SCellStorage | myVertexIndex2Surfel |
Mapping VertexIndex -> Surfel. | |
SCellStorage | myArc2Linel |
Mapping Arc -> Linel. | |
SCellStorage | myFaceIndex2Pointel |
Mapping FaceIndex -> Pointel. | |
Aim: Represents a digital surface with the topology of its dual surface. Its aim is to mimick the standard DigitalSurface, but to optimize its traversal and topology services. The idea is simply to number all its vertices (ie surfels), arcs, and faces and to store its topology with an half-edge data structure. It is essentially a PolygonalSurface but with services specific to DigitalSurface, like a tracker, a DigitalSurfaceContainer, etc. In theory, it can replace a DigitalSurface in many algorithms, and is more efficient if you need to do a lot of traversal on it (like many k-ring operations).
Description of template class 'IndexedDigitalSurface'
This object stores the positions of vertices in space. If you need further data attached to the surface, you may use property maps (see IndexedDigitalSurface::makeVertexMap
).
The user instantiates the object with a model of concepts::CDigitalSurfaceContainer or a DigitalSurface.
Model of concepts::CUndirectedSimpleGraph: the vertices and edges of the digital surface form indeed a graph structure.
TDigitalSurfaceContainer | the type of container from which the object is built (a model of concepts::CDigitalSurfaceContainer), e.g. SetOfSurfels, ImplicitDigitalSurface, ExplicitDigitalSurface, DigitalSetBoundary, etc. |
See Models of digital surface containers and HalfEdgeDataStructure.
Definition at line 96 of file IndexedDigitalSurface.h.
typedef HalfEdgeDataStructure::HalfEdgeIndex DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::Arc |
Definition at line 132 of file IndexedDigitalSurface.h.
typedef std::vector<Arc> DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::ArcRange |
Definition at line 134 of file IndexedDigitalSurface.h.
typedef KSpace::Cell DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::Cell |
Definition at line 107 of file IndexedDigitalSurface.h.
typedef IntegerSequenceIterator<VertexIndex> DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::ConstIterator |
Definition at line 129 of file IndexedDigitalSurface.h.
typedef TDigitalSurfaceContainer DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::DigitalSurfaceContainer |
Definition at line 100 of file IndexedDigitalSurface.h.
typedef EdgeIndex DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::Edge |
Definition at line 128 of file IndexedDigitalSurface.h.
typedef HalfEdgeDataStructure::EdgeIndex DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::EdgeIndex |
Definition at line 112 of file IndexedDigitalSurface.h.
typedef HalfEdgeDataStructure::FaceIndex DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::Face |
Definition at line 133 of file IndexedDigitalSurface.h.
typedef HalfEdgeDataStructure::FaceIndex DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::FaceIndex |
Definition at line 113 of file IndexedDigitalSurface.h.
typedef std::vector<Face> DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::FaceRange |
Definition at line 135 of file IndexedDigitalSurface.h.
|
protected |
Definition at line 235 of file IndexedDigitalSurface.h.
typedef HalfEdgeDataStructure::Index DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::Index |
Definition at line 110 of file IndexedDigitalSurface.h.
typedef DigitalSurfaceContainer::KSpace DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::KSpace |
Definition at line 103 of file IndexedDigitalSurface.h.
typedef HalfEdgeDataStructure::PolygonalFace DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::PolygonalFace |
Definition at line 115 of file IndexedDigitalSurface.h.
typedef std::vector<PolygonalFace> DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::PolygonalFacesStorage |
Definition at line 117 of file IndexedDigitalSurface.h.
typedef IndexedPropertyMap< RealPoint > DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::PositionsMap |
Definition at line 232 of file IndexedDigitalSurface.h.
typedef std::vector<RealPoint> DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::PositionsStorage |
Definition at line 116 of file IndexedDigitalSurface.h.
typedef Space::RealPoint DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::RealPoint |
Definition at line 108 of file IndexedDigitalSurface.h.
typedef KSpace::SCell DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::SCell |
Definition at line 106 of file IndexedDigitalSurface.h.
typedef std::vector<SCell> DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::SCellStorage |
Definition at line 118 of file IndexedDigitalSurface.h.
typedef IndexedDigitalSurface<TDigitalSurfaceContainer> DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::Self |
Definition at line 99 of file IndexedDigitalSurface.h.
typedef HalfEdgeDataStructure::Size DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::Size |
Definition at line 109 of file IndexedDigitalSurface.h.
typedef KSpace::Space DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::Space |
Definition at line 104 of file IndexedDigitalSurface.h.
typedef KSpace::Surfel DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::Surfel |
Definition at line 105 of file IndexedDigitalSurface.h.
typedef HalfEdgeDataStructure::Triangle DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::Triangle |
Definition at line 114 of file IndexedDigitalSurface.h.
typedef VertexIndex DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::Vertex |
Definition at line 121 of file IndexedDigitalSurface.h.
typedef HalfEdgeDataStructure::VertexIndex DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::VertexIndex |
Definition at line 111 of file IndexedDigitalSurface.h.
typedef std::vector<Vertex> DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::VertexRange |
Definition at line 136 of file IndexedDigitalSurface.h.
typedef std::set<Vertex> DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::VertexSet |
Definition at line 122 of file IndexedDigitalSurface.h.
|
inline |
|
inline |
Constructor.
Definition at line 248 of file IndexedDigitalSurface.h.
|
inline |
Constructor from digital surface container.
surfContainer | any instance of digital surface container. Pass a CountedPtr or any variant if you wish to secure its aliasing. |
Definition at line 254 of file IndexedDigitalSurface.h.
References DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::build().
ArcRange DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::allArcs | ( | ) | const |
ArcRange DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::allBoundaryArcs | ( | ) | const |
This set of arcs is sufficient for displaying the boundary of the surface.
VertexRange DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::allBoundaryVertices | ( | ) | const |
This set of arcs is sufficient for displaying the boundary of the surface.
FaceRange DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::allFaces | ( | ) | const |
VertexRange DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::allVertices | ( | ) | const |
Arc DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::arc | ( | const Vertex & | t, |
const Vertex & | h ) const |
[t] and [h] should be adjacent vertices.
t | the vertex at the tail of the arc. |
h | the vertex at the head of the arc. |
|
inline |
Definition at line 505 of file IndexedDigitalSurface.h.
Size DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::bestCapacity | ( | ) | const |
DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::BOOST_CONCEPT_ASSERT | ( | (concepts::CDigitalSurfaceContainer< DigitalSurfaceContainer >) | ) |
DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::BOOST_STATIC_CONSTANT | ( | Face | , |
INVALID_FACE | = HALF_EDGE_INVALID_INDEX ) |
bool DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::build | ( | ConstAlias< DigitalSurfaceContainer > | surfContainer | ) |
Builds the half-edge data structure from the given digital surface container. After that, the surface is valid.
surfContainer | any instance of digital surface container. Pass a CountedPtr or any variant if you wish to secure its aliasing. |
Referenced by DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::IndexedDigitalSurface().
void DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::clear | ( | ) |
Clears everything.
|
inline |
Definition at line 278 of file IndexedDigitalSurface.h.
References DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::myContainer.
Size DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::degree | ( | const Vertex & | v | ) | const |
v | any vertex |
|
inline |
Definition at line 509 of file IndexedDigitalSurface.h.
References DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::nbVertices().
|
inline |
Definition at line 306 of file IndexedDigitalSurface.h.
References DGtal::HalfEdgeDataStructure::Euler(), and DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::myHEDS.
Face DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::faceAroundArc | ( | const Arc & | a | ) | const |
Convenience method for computing the face incident to a given arc. There is at most one face that borders an arc for indexed digital surface since it is a combinatorial 2-manifold.
a | any arc on the surface. |
FaceRange DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::facesAroundArc | ( | const Arc & | a | ) | const |
Computes the faces incident to a given arc. There is only one for indexed digital surface since it is a combinatorial 2-manifold.
a | any arc on the surface. |
FaceRange DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::facesAroundVertex | ( | const Vertex & | v | ) | const |
v | any vertex of the surface. |
|
inline |
[in] | aLinel | any linel that is a separator on the surface (orientation is important). |
Definition at line 428 of file IndexedDigitalSurface.h.
References DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::myLinel2Arc.
|
inline |
[in] | aPointel | any pointel that is a pivot on the surface (orientation is positive). |
Definition at line 438 of file IndexedDigitalSurface.h.
References DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::myPointel2FaceIndex.
|
inline |
[in] | aSurfel | any surfel of the surface |
Definition at line 418 of file IndexedDigitalSurface.h.
References DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::mySurfel2VertexIndex.
Vertex DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::head | ( | const Arc & | a | ) | const |
a | any arc (s,t) |
|
inline |
Definition at line 286 of file IndexedDigitalSurface.h.
References DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::myHEDS.
ArcRange DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::inArcs | ( | const Vertex & | v | ) | const |
v | any vertex of the surface. |
bool DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::isArcBoundary | ( | const Arc & | v | ) | const |
v | any arc. |
bool DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::isValid | ( | ) | const |
Checks the validity/consistency of the object.
bool DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::isVertexBoundary | ( | const Vertex & | v | ) | const |
v | any vertex. |
|
inline |
[in] | a | any arc (index). |
Definition at line 400 of file IndexedDigitalSurface.h.
References DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::myArc2Linel, and DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::nbArcs().
|
inline |
Definition at line 324 of file IndexedDigitalSurface.h.
References DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::myArc2Linel.
|
inline |
Definition at line 353 of file IndexedDigitalSurface.h.
References DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::nbEdges().
|
inline |
value | the value that is given to all edges at initialization. |
Definition at line 361 of file IndexedDigitalSurface.h.
References DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::nbEdges().
|
inline |
Definition at line 368 of file IndexedDigitalSurface.h.
References DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::nbFaces().
|
inline |
value | the value that is given to all faces at initialization. |
Definition at line 376 of file IndexedDigitalSurface.h.
References DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::nbFaces().
|
inline |
Definition at line 338 of file IndexedDigitalSurface.h.
References DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::nbVertices().
|
inline |
value | the value that is given to all vertices at initialization. |
Definition at line 346 of file IndexedDigitalSurface.h.
References DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::nbVertices().
|
inline |
Definition at line 292 of file IndexedDigitalSurface.h.
References DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::myHEDS, and DGtal::HalfEdgeDataStructure::nbHalfEdges().
Referenced by DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::linel().
|
inline |
Definition at line 298 of file IndexedDigitalSurface.h.
References DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::myHEDS, and DGtal::HalfEdgeDataStructure::nbEdges().
Referenced by DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::makeEdgeMap(), and DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::makeEdgeMap().
|
inline |
Definition at line 301 of file IndexedDigitalSurface.h.
References DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::myHEDS, and DGtal::HalfEdgeDataStructure::nbFaces().
Referenced by DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::makeFaceMap(), DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::makeFaceMap(), and DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::pointel().
|
inline |
Definition at line 295 of file IndexedDigitalSurface.h.
References DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::myHEDS, and DGtal::HalfEdgeDataStructure::nbVertices().
Referenced by DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::end(), DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::makeVertexMap(), DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::makeVertexMap(), and DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::surfel().
Arc DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::next | ( | const Arc & | a | ) | const |
Constant-time access to the next arc along the face.
a | any arc (s,t) |
Arc DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::opposite | ( | const Arc & | a | ) | const |
a | any arc (s,t) |
ArcRange DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::outArcs | ( | const Vertex & | v | ) | const |
v | any vertex of the surface. |
|
inline |
[in] | f | any face index. |
Definition at line 408 of file IndexedDigitalSurface.h.
References DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::myFaceIndex2Pointel, and DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::nbFaces().
|
inline |
Definition at line 331 of file IndexedDigitalSurface.h.
References DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::myFaceIndex2Pointel.
RealPoint & DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::position | ( | Vertex | v | ) |
Mutable accessor to vertex data.
v | any vertex. |
const RealPoint & DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::position | ( | Vertex | v | ) | const |
Const accessor to vertex data.
v | any vertex. |
|
inline |
Definition at line 310 of file IndexedDigitalSurface.h.
References DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::myPositions.
void DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::selfDisplay | ( | std::ostream & | out | ) | const |
Writes/Displays the object on an output stream.
out | the output stream where the object is written. |
Size DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::size | ( | ) | const |
|
inline |
Definition at line 282 of file IndexedDigitalSurface.h.
References DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::myContainer.
|
inline |
[in] | v | any vertex index. |
Definition at line 392 of file IndexedDigitalSurface.h.
References DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::myVertexIndex2Surfel, and DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::nbVertices().
|
inline |
Definition at line 317 of file IndexedDigitalSurface.h.
References DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::myVertexIndex2Surfel.
Vertex DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::tail | ( | const Arc & | a | ) | const |
a | any arc (s,t) |
VertexRange DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::verticesAroundFace | ( | const Face & | f | ) | const |
If f is incident to the arcs (s,t) and (t,u) (say), then (s,t,u) is a subsequence of the returned sequence.
f | any valid face on the surface (open or closed ). |
void DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::writeNeighbors | ( | OutputIterator & | it, |
const Vertex & | v ) const |
Writes the neighbors of a vertex using an output iterator
OutputIterator | the type of an output iterator writing in a container of vertices. |
it | the output iterator |
v | the vertex whose neighbors will be writen |
void DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::writeNeighbors | ( | OutputIterator & | it, |
const Vertex & | v, | ||
const VertexPredicate & | pred ) const |
Writes the neighbors of a vertex which satisfy a predicate using an output iterator
OutputIterator | the type of an output iterator writing in a container of vertices. |
VertexPredicate | the type of the predicate |
it | the output iterator |
v | the vertex whose neighbors will be written |
pred | the predicate that must be satisfied |
|
protected |
Indicates if the half-edge structure has been created/updated.
Definition at line 669 of file IndexedDigitalSurface.h.
|
protected |
Mapping Arc -> Linel.
Definition at line 688 of file IndexedDigitalSurface.h.
Referenced by DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::linel(), and DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::linels().
|
protected |
The (secured or not) pointer to the associated digital surface container.
Definition at line 673 of file IndexedDigitalSurface.h.
Referenced by DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::container(), and DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::space().
|
protected |
Mapping FaceIndex -> Pointel.
Definition at line 690 of file IndexedDigitalSurface.h.
Referenced by DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::pointel(), and DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::pointels().
|
protected |
The half-edge data structure that stores the topology of the mesh.
Definition at line 671 of file IndexedDigitalSurface.h.
Referenced by DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::Euler(), DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::heds(), DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::nbArcs(), DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::nbEdges(), DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::nbFaces(), and DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::nbVertices().
|
protected |
Mapping Linel -> Arc.
Definition at line 682 of file IndexedDigitalSurface.h.
Referenced by DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::getArc().
|
protected |
Mapping Pointel -> FaceIndex.
Definition at line 684 of file IndexedDigitalSurface.h.
Referenced by DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::getFace().
|
protected |
Stores the polygonal faces.
Definition at line 678 of file IndexedDigitalSurface.h.
|
protected |
Stores the information for each Vertex.
Definition at line 676 of file IndexedDigitalSurface.h.
Referenced by DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::positions().
|
protected |
Mapping Surfel -> VertexIndex.
Definition at line 680 of file IndexedDigitalSurface.h.
Referenced by DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::getVertex().
|
protected |
Mapping VertexIndex -> Surfel.
Definition at line 686 of file IndexedDigitalSurface.h.
Referenced by DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::surfel(), and DGtal::IndexedDigitalSurface< TDigitalSurfaceContainer >::surfels().