26 #include "../system/Iterator.h"
46 namespace ViewVertexInternal {
66 edge_pointers_container::iterator
_tbegin;
67 edge_pointers_container::iterator
_tend;
72 edges_container::iterator
_end;
108 edge_pointers_container::iterator end,
109 edge_pointers_container::iterator iter)
118 edges_container::iterator end,
119 edges_container::iterator iter)
185 return !(*
this != b);
220 if (tmp2.first == tmp.first) {
231 #ifdef WITH_CXX_GUARDEDALLOC
232 MEM_CXX_CLASS_ALLOC_FUNCS(
"Freestyle:orientedViewEdgeIterator")
246 namespace ViewEdgeInternal {
259 _previous_edge =
NULL;
266 _vertex = vi._vertex;
268 _previous_edge = vi._previous_edge;
269 _next_edge = vi._next_edge;
277 _previous_edge = prev;
284 _vertex = vi._vertex;
286 _previous_edge = vi._previous_edge;
287 _next_edge = vi._next_edge;
298 return "SVertexIterator";
344 _vertex = _next_edge->
vertexB();
345 _previous_edge = _next_edge;
346 _next_edge = _next_edge->
nextEdge();
352 if (!_previous_edge) {
356 if ((!_next_edge) && (!_vertex)) {
357 _vertex = _previous_edge->
vertexB();
361 _vertex = _previous_edge->
vertexA();
362 _next_edge = _previous_edge;
369 return _vertex == _begin;
374 return (!_vertex) || (_vertex == _begin && _previous_edge);
377 virtual float t()
const
382 virtual float u()
const
393 return (_vertex == it_exact->_vertex);
404 FEdge *_previous_edge;
408 #ifdef WITH_CXX_GUARDEDALLOC
409 MEM_CXX_CLASS_ALLOC_FUNCS(
"Freestyle:SVertexIterator")
455 return "ViewEdgeIterator";
529 cerr <<
"Warning: method increment() not implemented" << endl;
551 cerr <<
"Warning: method decrement() not implemented" << endl;
576 return !(*
this == it);
584 #ifdef WITH_CXX_GUARDEDALLOC
585 MEM_CXX_CLASS_ALLOC_FUNCS(
"Freestyle:ViewEdgeIterator")
typedef float(TangentPoint)[2]
Classes to define a View Map (ViewVertex, ViewEdge, etc.)
ATTR_WARN_UNUSED_RESULT const BMVert * v
ViewEdge * viewedge() const
virtual real getLength2D() const
vector< directedViewEdge > edges_container
vector< directedViewEdge * > edge_pointers_container
virtual ~SVertexIterator()
virtual SVertexIterator & operator--()
virtual string getExactTypeName() const
virtual SVertexIterator & operator++()
virtual bool isBegin() const
virtual bool isEnd() const
virtual bool operator==(const Interface0DIteratorNested &it) const
virtual SVertexIterator operator--(int)
virtual SVertexIterator operator++(int)
virtual SVertexIterator * copy() const
SVertexIterator(const SVertexIterator &vi)
SVertexIterator & operator=(const SVertexIterator &vi)
virtual SVertex * operator->()
SVertexIterator(SVertex *v, SVertex *begin, FEdge *prev, FEdge *next, float t)
virtual SVertex & operator*()
virtual ~ViewEdgeIterator()
virtual bool isBegin() const
bool getOrientation() const
void setOrientation(bool orientation)
ViewEdgeIterator(ViewEdge *begin=NULL, bool orientation=true)
virtual ViewEdgeIterator operator++(int)
void setBegin(ViewEdge *begin)
virtual bool operator!=(ViewEdgeIterator &it) const
virtual ViewEdge * operator->()
virtual bool isEnd() const
ViewEdgeIterator(const ViewEdgeIterator &it)
void setCurrentEdge(ViewEdge *edge)
virtual ViewEdgeIterator & operator++()
virtual string getExactTypeName() const
virtual ViewEdgeIterator & operator--()
virtual ViewEdge * operator*()
virtual bool operator==(ViewEdgeIterator &it) const
ViewEdge * getCurrentEdge()
virtual ViewEdgeIterator operator--(int)
virtual orientedViewEdgeIterator operator++(int)
edge_pointers_container::iterator _tend
edge_pointers_container::iterator _tvertex_iter
virtual bool isBegin() const
edge_pointers_container::iterator _tbegin
virtual ViewVertex::directedViewEdge & operator*() const
edges_container::iterator _end
virtual bool operator!=(const orientedViewEdgeIterator &b) const
orientedViewEdgeIterator(Nature::VertexNature iNature)
TVertex::edge_pointers_container edge_pointers_container
edges_container::iterator _begin
NonTVertex::edges_container edges_container
edges_container::iterator _nontvertex_iter
orientedViewEdgeIterator()
orientedViewEdgeIterator(edges_container::iterator begin, edges_container::iterator end, edges_container::iterator iter)
orientedViewEdgeIterator(const orientedViewEdgeIterator &iBrother)
orientedViewEdgeIterator(edge_pointers_container::iterator begin, edge_pointers_container::iterator end, edge_pointers_container::iterator iter)
virtual bool isEnd() const
virtual ~orientedViewEdgeIterator()
Nature::VertexNature _Nature
virtual orientedViewEdgeIterator & operator++()
virtual ViewVertex::directedViewEdge * operator->() const
virtual bool operator==(const orientedViewEdgeIterator &b) const
pair< ViewEdge *, bool > directedViewEdge
unsigned short VertexNature
static const VertexNature T_VERTEX
static const VertexNature NON_T_VERTEX