added incident_cells starting from a given cell

This commit is contained in:
Monique Teillaud 1998-11-30 10:29:45 +00:00
parent e22af6cf31
commit c498039247
3 changed files with 30 additions and 1 deletions

View File

@ -60,7 +60,14 @@ public:
CGAL_Triangulation_cell_circulator_3(Triangulation_3 * tr, Edge e)
: _cb( &(tr->_tds), CGAL_make_triple( (Ctds *) &(*(e.first)), e.second, e.third ) ), _tr(tr)
{}
CGAL_Triangulation_cell_circulator_3(Triangulation_3 * tr, Edge e, Cell_handle c)
: _cb( &(tr->_tds),
CGAL_make_triple( (Ctds *) &(*(e.first)), e.second, e.third ),
(Ctds *) &(*c) ),
_tr(tr)
{}
CGAL_Triangulation_cell_circulator_3(const Cell_circulator & ccir)
: _cb(ccir._cb), _tr(ccir._tr)
{}

View File

@ -902,6 +902,13 @@ public:
return Cell_circulator(ncthis,e);
}
Cell_circulator incident_cells(Edge e, Cell* c) const
{
CGAL_triangulation_precondition( dimension() == 3 );
Tds* ncthis = (Tds *)this;
return Cell_circulator(ncthis,e,c);
}
// CHECKING
bool is_valid(bool verbose = false, int level = 0) const
{ // is_valid()

View File

@ -72,6 +72,21 @@ public:
// prev = e.first->neighbor(k);
// }
}
CGAL_Triangulation_ds_cell_circulator_3(Tds * tds, Edge e, Cell* c)
: _tds(tds), _e(e)
{
CGAL_triangulation_precondition( e.first != NULL &&
(e.second==0 || e.second==1 ||
e.second==2 || e.second==3 ) &&
(e.third==0 || e.third==1 ||
e.third==2 || e.third==3 ) );
int i, j;
CGAL_triangulation_precondition
( c->has_vertex( e.first->vertex(e.second), i ) &&
c->has_vertex( e.first->vertex(e.third), j ) );
pos = c;
}
CGAL_Triangulation_ds_cell_circulator_3(const Cell_circulator & ccir)
: _tds(ccir._tds), _e(ccir._e), pos(ccir.pos)//, prev(ccir.prev)