mirror of https://github.com/CGAL/cgal
minor addons in the code, not in the API
This commit is contained in:
parent
ec61d7cdc0
commit
d62a535fd7
|
|
@ -1160,7 +1160,7 @@ namespace CGAL {
|
|||
}
|
||||
|
||||
/// validate the map
|
||||
void validate_scene()
|
||||
void validate_attributes()
|
||||
{
|
||||
std::vector<int> marks(dimension+1);
|
||||
for ( int i=0; i<=dimension; ++i)
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ namespace CGAL
|
|||
/** Insert a vertex in a given edge.
|
||||
* @param amap the used combinatorial map.
|
||||
* @param adart a dart of the edge (!=NULL && !=null_dart_handle).
|
||||
* @param update_attributes a boolean to update the enabled attributes
|
||||
* @return a dart of the new vertex.
|
||||
*/
|
||||
template<class CMap>
|
||||
|
|
@ -116,6 +117,7 @@ insert_cell_0_in_cell_1( CMap& amap, typename CMap::Dart_handle adart,
|
|||
* once for each inital edge of the facet.
|
||||
* @param amap the used combinatorial map.
|
||||
* @param adart a dart of the facet to triangulate.
|
||||
* @param update_attributes a boolean to update the enabled attributes
|
||||
* @return A dart incident to the new vertex.
|
||||
*/
|
||||
template < class CMap >
|
||||
|
|
@ -259,9 +261,12 @@ insert_cell_0_in_cell_2( CMap& amap, typename CMap::Dart_handle adart,
|
|||
amap.unmark(amap.beta(*itd, dim), treated);
|
||||
}
|
||||
if ( *itd!=adart )
|
||||
if (update_attributes)
|
||||
{
|
||||
CGAL::internal::Degroup_attribute_functor_run<CMap, 2>::
|
||||
run(&amap, adart, *itd);
|
||||
}
|
||||
}
|
||||
|
||||
CGAL_assertion(amap.is_whole_map_unmarked(treated));
|
||||
amap.free_mark(treated);
|
||||
|
|
@ -275,6 +280,7 @@ insert_cell_0_in_cell_2( CMap& amap, typename CMap::Dart_handle adart,
|
|||
/** Insert a dangling edge in a 2-cell between given by a dart.
|
||||
* @param amap the used combinatorial map.
|
||||
* @param adart1 a first dart of the facet (!=NULL && !=null_dart_handle).
|
||||
* @param update_attributes a boolean to update the enabled attributes
|
||||
* @return a dart of the new edge, not incident to the vertex of adart1.
|
||||
*/
|
||||
template<class CMap>
|
||||
|
|
@ -398,6 +404,7 @@ bool is_insertable_cell_1_in_cell_2(const CMap& amap,
|
|||
* @param amap the used combinatorial map.
|
||||
* @param adart1 a first dart of the facet (!=NULL && !=null_dart_handle).
|
||||
* @param adart2 a second dart of the facet. If NULL insert a dangling edge.
|
||||
* @param update_attributes a boolean to update the enabled attributes
|
||||
* @return a dart of the new edge, and not incident to the
|
||||
* same vertex than adart1.
|
||||
*/
|
||||
|
|
@ -487,6 +494,7 @@ insert_cell_1_in_cell_2(CMap& amap,
|
|||
{
|
||||
CGAL::internal::Degroup_attribute_functor_run<CMap, 2>::run(&amap, d1, d2);
|
||||
}
|
||||
|
||||
amap.negate_mark(m1);
|
||||
amap.negate_mark(m2);
|
||||
it1.rewind(); it2.rewind();
|
||||
|
|
@ -571,6 +579,7 @@ bool is_insertable_cell_2_in_cell_3(const CMap& amap,
|
|||
* @param amap the used combinatorial map.
|
||||
* @param afirst iterator on the begining of the path.
|
||||
* @param alast iterator on the end of the path.
|
||||
* @param update_attributes a boolean to update the enabled attributes
|
||||
* @return a dart of the new 2-cell.
|
||||
*/
|
||||
template<class CMap, class InputIterator>
|
||||
|
|
|
|||
|
|
@ -331,6 +331,7 @@ namespace CGAL
|
|||
/** Remove a vertex, and merge eventually both incident edges.
|
||||
* @param amap the used combinatorial map.
|
||||
* @param adart a dart of the vertex to remove.
|
||||
* @param update_attributes a boolean to update the enabled attributes
|
||||
* @return the number of deleted darts.
|
||||
*/
|
||||
template<class CMap,unsigned int nmi>
|
||||
|
|
@ -449,6 +450,7 @@ namespace CGAL
|
|||
/** Remove an i-cell, 0<=i<=dimension.
|
||||
* @param amap the used combinatorial map.
|
||||
* @param adart a dart of the i-cell to remove.
|
||||
* @param update_attributes a boolean to update the enabled attributes
|
||||
* @return the number of deleted darts.
|
||||
*/
|
||||
template < class CMap, unsigned int i >
|
||||
|
|
|
|||
|
|
@ -1279,7 +1279,7 @@ void MainWindow::onMengerInc()
|
|||
}
|
||||
|
||||
std::cout << "validate scene..." << std::endl;
|
||||
scene.lcc->validate_scene();
|
||||
scene.lcc->validate_attributes();
|
||||
}
|
||||
|
||||
#ifdef CGAL_PROFILE_LCC_DEMO
|
||||
|
|
@ -1701,7 +1701,7 @@ void MainWindow::onMengerDec()
|
|||
|
||||
if (!mengerUpdateAttributes)
|
||||
{
|
||||
scene.lcc->validate_scene();
|
||||
scene.lcc->validate_attributes();
|
||||
}
|
||||
|
||||
#ifdef CGAL_PROFILE_LCC_DEMO
|
||||
|
|
@ -1976,7 +1976,7 @@ void MainWindow::onSierpinskiCarpetInc()
|
|||
std::cout << "BOOST_NO_VARIADIC_TEMPLATES" << " not defined" << std::endl;
|
||||
#endif
|
||||
|
||||
scene.lcc->validate_scene();
|
||||
scene.lcc->validate_attributes();
|
||||
|
||||
// maintenant que la scène est valide, on offre la possibilité de calculer une géométrie qui correspond à un tapis de Sierpinski
|
||||
if (isComputableGeometry)
|
||||
|
|
@ -2747,7 +2747,7 @@ void MainWindow::onSierpinskiCarpetDec()
|
|||
|
||||
if (!duringConstructionUpdateAttributes)
|
||||
{
|
||||
scene.lcc->validate_scene();
|
||||
scene.lcc->validate_attributes();
|
||||
}
|
||||
|
||||
#ifdef CGAL_PROFILE_LCC_DEMO
|
||||
|
|
@ -2931,7 +2931,7 @@ void MainWindow::onSierpinskiTriangleInc()
|
|||
update_volume_list_add(scene.lcc->attribute<3>(sierpinskiTriangleSurfaces[i]));
|
||||
}
|
||||
|
||||
scene.lcc->validate_scene();
|
||||
scene.lcc->validate_attributes();
|
||||
}
|
||||
|
||||
// std::cout << removedTriangles.size() << std::endl;
|
||||
|
|
@ -3153,7 +3153,7 @@ void MainWindow::onSierpinskiTriangleDec()
|
|||
|
||||
if (!sierpinskiTriangleUpdateAttributes)
|
||||
{
|
||||
scene.lcc->validate_scene();
|
||||
scene.lcc->validate_attributes();
|
||||
}
|
||||
|
||||
#ifdef CGAL_PROFILE_LCC_DEMO
|
||||
|
|
|
|||
|
|
@ -350,17 +350,17 @@ namespace CGAL {
|
|||
|
||||
/** validate the lcc
|
||||
*/
|
||||
void validate_scene()
|
||||
void validate_attributes()
|
||||
{
|
||||
Base::validate_scene();
|
||||
Base::validate_attributes();
|
||||
|
||||
// On vérifie que chaque brin a un 0-plongement
|
||||
// Each dart needs to have a 0-embedding
|
||||
for (typename Dart_range::iterator it(this->darts().begin()),
|
||||
itend(this->darts().end()); it != itend; ++it)
|
||||
{
|
||||
if ( vertex_attribute(it)==null_handle )
|
||||
{
|
||||
// sinon on crée un point à l'origine
|
||||
// If a dart don't have a 0-attribute, we create a Point at the origin
|
||||
set_vertex_attribute(it, create_vertex_attribute(CGAL::ORIGIN));
|
||||
}
|
||||
}
|
||||
|
|
@ -702,25 +702,27 @@ namespace CGAL {
|
|||
/** Insert a point in a given 1-cell.
|
||||
* @param dh a dart handle to the 1-cell
|
||||
* @param p the point to insert
|
||||
* @param update_attributes a boolean to update the enabled attributes
|
||||
* @return a dart handle to the new vertex containing p.
|
||||
*/
|
||||
Dart_handle insert_point_in_cell_1(Dart_handle dh, const Point& p, bool update_attribute)
|
||||
Dart_handle insert_point_in_cell_1(Dart_handle dh, const Point& p, bool update_attributes)
|
||||
{
|
||||
return CGAL::insert_cell_0_in_cell_1(*this, dh,
|
||||
create_vertex_attribute(p),
|
||||
update_attribute);
|
||||
update_attributes);
|
||||
}
|
||||
|
||||
/** Insert a point in a given 2-cell.
|
||||
* @param dh a dart handle to the 2-cell
|
||||
* @param p the point to insert
|
||||
* @param update_attributes a boolean to update the enabled attributes
|
||||
* @return a dart handle to the new vertex containing p.
|
||||
*/
|
||||
Dart_handle insert_point_in_cell_2(Dart_handle dh, const Point& p, bool update_attribute)
|
||||
Dart_handle insert_point_in_cell_2(Dart_handle dh, const Point& p, bool update_attributes)
|
||||
{
|
||||
Vertex_attribute_handle v = create_vertex_attribute(p);
|
||||
|
||||
Dart_handle first = CGAL::insert_cell_0_in_cell_2(*this, dh, v, update_attribute);
|
||||
Dart_handle first = CGAL::insert_cell_0_in_cell_2(*this, dh, v, update_attributes);
|
||||
|
||||
if ( first==null_handle ) // If the triangulated facet was made of one dart
|
||||
erase_vertex_attribute(v);
|
||||
|
|
@ -735,6 +737,7 @@ namespace CGAL {
|
|||
/** Insert a point in a given i-cell.
|
||||
* @param dh a dart handle to the i-cell
|
||||
* @param p the point to insert
|
||||
* @param update_attributes a boolean to update the enabled attributes
|
||||
* @return a dart handle to the new vertex containing p.
|
||||
*/
|
||||
template <unsigned int i>
|
||||
|
|
@ -748,23 +751,26 @@ namespace CGAL {
|
|||
/** Insert a dangling edge in a given facet.
|
||||
* @param dh a dart of the facet (!=NULL).
|
||||
* @param p the coordinates of the new vertex.
|
||||
* @param update_attributes a boolean to update the enabled attributes
|
||||
* @return a dart of the new edge, incident to the new vertex.
|
||||
*/
|
||||
Dart_handle insert_dangling_cell_1_in_cell_2(Dart_handle dh,
|
||||
const Point& p)
|
||||
const Point& p,
|
||||
bool update_attributes = true)
|
||||
{
|
||||
return CGAL::insert_dangling_cell_1_in_cell_2
|
||||
(*this, dh, create_vertex_attribute(p));
|
||||
(*this, dh, create_vertex_attribute(p), update_attributes);
|
||||
}
|
||||
|
||||
/** Insert a point in a given i-cell.
|
||||
* @param dh a dart handle to the i-cell
|
||||
* @param p the point to insert
|
||||
* @param update_attributes a boolean to update the enabled attributes
|
||||
* @return a dart handle to the new vertex containing p.
|
||||
*/
|
||||
template <unsigned int i>
|
||||
Dart_handle insert_barycenter_in_cell(Dart_handle dh)
|
||||
{ return insert_point_in_cell<i>(dh, barycenter<i>(dh)); }
|
||||
Dart_handle insert_barycenter_in_cell(Dart_handle dh, bool update_attributes = true)
|
||||
{ return insert_point_in_cell<i>(dh, barycenter<i>(dh), update_attributes); }
|
||||
|
||||
/** Compute the dual of a Linear_cell_complex.
|
||||
* @param alcc the lcc in which we build the dual of this lcc.
|
||||
|
|
|
|||
Loading…
Reference in New Issue