Modifying a polyhedron facet (incremental builder, make_hole, erase_facet)

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Modifying a polyhedron facet (incremental builder, make_hole, erase_facet)

Zohar
This post was updated on .
I'd like to modify a facet of a polyhedron, for example, triangulate it
(with/out inner vertices).
The incremental builder has an ABSOLUTE_INDEXING indexing mode, which allows
me to add elements to an existing polyhedron.

First, deleting the face.
poly::erase_facet seems to do the trick unless the face is an "ear" (on the
border), and then it would delete isolated vertices and border edges. But
the builder seems to work fine afterwards.
poly::make_hole supposes only to delete the face. But when I add a new face
to these vertices with the incremental builder, it has a problem with
looking up the border half edge:

Polyhedron_incremental_builder_3.h
CGAL_assertion( ! e->next()->opposite()->is_border());

How do you go about this?



--
Sent from: http://cgal-discuss.949826.n4.nabble.com/

--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://sympa.inria.fr/sympa/info/cgal-discuss


Reply | Threaded
Open this post in threaded view
|

Re: Modifying a polyhedron facet (incremental builder, make_hole, erase_facet)

Zohar
Maybe you'll seize this opportunity to clarify the doc about the difference
between make_hole and erase_facet. The doc describes the difference vaguely
as specialized and generalized. But what is it exactly; there are edges,
halfedges, is_border, is_border_edge; what does each operation do?



--
Sent from: http://cgal-discuss.949826.n4.nabble.com/

--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://sympa.inria.fr/sympa/info/cgal-discuss


Reply | Threaded
Open this post in threaded view
|

Re: Modifying a polyhedron facet (incremental builder, make_hole, erase_facet)

Zohar
On the subject. The incremental builder with absolute indexing is the natural
option here. Unfortunately, it is implemented index-based instead of
handle-based in the way the vertices are referenced when creating a new
facet. This means that a map of the vertices needs to be built, and the cost
is linear in the number of vertices. This is a high price which prohibits,
for example, triangulating all the faces of a large mesh (e.g. independently
in a loop).
This design doesn't make much sense since the polyhedron is list-based, and
Vertex_handles are returned when adding vertices with the builder.



--
Sent from: http://cgal-discuss.949826.n4.nabble.com/

--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://sympa.inria.fr/sympa/info/cgal-discuss