Subject: CGAL users discussion list
List archive
- From: "Sebastien Loriot (GeometryFactory)" <>
- To:
- Subject: Re: [cgal-discuss] Editing a Polyhedron_3 object
- Date: Mon, 05 Mar 2012 08:54:41 +0100
If you want to remove all geometric checks, you need to go down to the
combinatorial part and use the Halfedge_data_structure
http://www.cgal.org/Manual/latest/doc_html/cgal_manual/HalfedgeDS/Chapter_main.html
but you will use all utility functions.
Maybe using the combinatorial map is better in that case:
http://www.cgal.org/Manual/latest/doc_html/cgal_manual/Combinatorial_map/Chapter_main.html
For your flip problem I would naively say that a non border edge is
flippable if the other possible edge intersects it (do_intersect which
works correctly with an inexact construction kernel).
Sebastien.
On 03/02/2012 04:26 PM, Zohar wrote:
Hi,
I need some tips concerning the polyhedron.
1. I convert my mesh to the polyhedron structure using the incremental
builder. Specifically I'm deriving from Modifier_base, add vertices and then
facets. There are meshes where the incremental process fails, and it
complains about stuff. Is there a way to construct a polyhedron and bypass
these tests? I mean tell it to construct the DCEL based on the supplied
connectivity (facets), with no relation to the geometry.
2. My predicate that tests if an edge is flippable, by checking for
intersecting triangles, small dihedral angles, and slivers
http://cgal-discuss.949826.n4.nabble.com/Intersecting-with-Cartesian-kerenl-td4425392.html
is still buggy. For example it fails when I use iostream to convert the
resulting polyhedron to another type of polyhedron (based on another
kernel). The failure is the one mentioned in my previous question. Is there
a more robust way to test is an edge is flippable? Maybe there's a way to
exploit the inner mechanism of the mesh simplification that tests if an edge
is contractible?
3. I wrote a basic scheme that collapses edges in a poly that is purely
triangular (I'm aware of the simplification package):
If the vertex to be merged has a valence of 3, then I simply
erase_center_vertex.
Else I delete the two neighboring edges using join_facet, and then I
contract the edge using join_vertex (that must have at least quad facets).
It works fine, until at some point it complains and crashes. I didn't debug
it, but my only explanation is that it contracted edges that led to
intersection. And again I'm asking, how do I tell the DCEL to perform
connectivity operations regardless of the geometry?
Thanks
--
View this message in context:
http://cgal-discuss.949826.n4.nabble.com/Editing-a-Polyhedron-3-object-tp4438763p4438763.html
Sent from the cgal-discuss mailing list archive at Nabble.com.
- [cgal-discuss] Editing a Polyhedron_3 object, Zohar, 03/02/2012
- Re: [cgal-discuss] Editing a Polyhedron_3 object, Sebastien Loriot (GeometryFactory), 03/05/2012
- [cgal-discuss] Re: Editing a Polyhedron_3 object, Zohar, 03/08/2012
- Re: [cgal-discuss] Editing a Polyhedron_3 object, Sebastien Loriot (GeometryFactory), 03/05/2012
Archive powered by MHonArc 2.6.16.