Start incremental builder

This commit is contained in:
Guillaume Damiand 2016-10-21 18:10:07 -04:00
parent 1a357d5519
commit 7618192d21
4 changed files with 33 additions and 16 deletions

View File

@ -834,13 +834,10 @@ namespace CGAL {
Dart_const_handle opposite(Dart_const_handle ADart) const Dart_const_handle opposite(Dart_const_handle ADart) const
{ return this->template beta<dim>(ADart); } { return this->template beta<dim>(ADart); }
template<unsigned int dim> Dart_handle other_orientation(Dart_handle ADart)
void sew_opposite(Dart_handle dh1, Dart_handle dh2, { return ADart; }
bool update_attributes=true) Dart_const_handle other_orientation(Dart_const_handle ADart) const
{ { return ADart; }
assert(dim>0);
sew<dim>(dh1, dh2, update_attributes);
}
/** Count the number of used marks. /** Count the number of used marks.
* @return the number of used marks. * @return the number of used marks.
@ -3808,6 +3805,12 @@ namespace CGAL {
this->automatic_attributes_management = newval; this->automatic_attributes_management = newval;
} }
/** Create an half-edge.
* @return a dart of the new half-edge.
*/
Dart_handle make_half_edge()
{ return create_dart(); }
/** Create an edge. /** Create an edge.
* if closed==true, the edge has no 2-free dart. * if closed==true, the edge has no 2-free dart.
* (note that for CMap there is no differente between true and false, but * (note that for CMap there is no differente between true and false, but

View File

@ -780,13 +780,16 @@ namespace CGAL {
template<unsigned int dim> template<unsigned int dim>
Dart_const_handle opposite(Dart_const_handle ADart) const Dart_const_handle opposite(Dart_const_handle ADart) const
{ return this->template alpha<0, dim>(ADart); } { return this->template alpha<0, dim>(ADart); }
template<unsigned int dim> Dart_handle other_orientation(Dart_handle ADart)
void sew_opposite(Dart_handle dh1, Dart_handle dh2,
bool update_attributes=true)
{ {
assert(dim>0); CGAL_assertion(!this->template is_free<0>(ADart));
sew<dim>(dh1, this->template alpha<0>(dh2), update_attributes); return this->alpha<0>(ADart);
}
Dart_const_handle other_orientation(Dart_const_handle ADart) const
{
CGAL_assertion(!this->template is_free<0>(ADart));
return this->alpha<0>(ADart);
} }
/** Count the number of used marks. /** Count the number of used marks.
@ -2957,6 +2960,16 @@ namespace CGAL {
this->automatic_attributes_management = newval; this->automatic_attributes_management = newval;
} }
/** Create an half-edge.
* @return a dart of the new half-edge.
*/
Dart_handle make_half_edge()
{
Dart_handle d1=create_dart();
basic_link_alpha<0>(d1, create_dart());
return d1;
}
/** Create an edge. /** Create an edge.
* if closed==true, the edge has no 2-free dart. * if closed==true, the edge has no 2-free dart.
* @return a dart of the new edge. * @return a dart of the new edge.

View File

@ -546,7 +546,8 @@ namespace CGAL {
(*it1, this->previous(*it2))) (*it1, this->previous(*it2)))
{ {
++res; ++res;
this->template sew_opposite<3>(*it1, this->previous(*it2)); this->template sew<3>(*it1,
this->other_orientation(previous(*it2)));
} }
} }
} }

View File

@ -38,7 +38,7 @@ namespace CGAL {
lcc(alcc) lcc(alcc)
{} {}
Vertex_attribute_handle add_vertex (const Point_3& p) Vertex_attribute_handle add_vertex(const Point_3& p)
{ {
Vertex_attribute_handle res = lcc.create_vertex_attribute(p); Vertex_attribute_handle res = lcc.create_vertex_attribute(p);
vertex_map.push_back(res); vertex_map.push_back(res);
@ -58,7 +58,7 @@ namespace CGAL {
{ {
CGAL_assertion( i<new_vertices ); CGAL_assertion( i<new_vertices );
// std::cout<<i<<" "<<std::flush; // std::cout<<i<<" "<<std::flush;
Dart_handle cur = lcc.create_dart(vertex_map[i]); Dart_handle cur = lcc.make_half_edge(vertex_map[i]);
if ( prev_dart!=lcc.null_handle ) if ( prev_dart!=lcc.null_handle )
{ {