Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Editing a Polyhedron_3 object

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Editing a Polyhedron_3 object


Chronological Thread 
  • 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.





Archive powered by MHonArc 2.6.16.

Top of Page