Subject: CGAL users discussion list
List archive
Re: [cgal-discuss] h->opposite()->facet() always invalid using Polyhedron_incremental_builder_3
Chronological Thread
- From: Evan Behar <>
- To:
- Subject: Re: [cgal-discuss] h->opposite()->facet() always invalid using Polyhedron_incremental_builder_3
- Date: Wed, 6 Mar 2013 00:44:09 -0500
As a side note, the conditional at the end was part of my attempt to see if the connectivity was ever being established during construction--the second cout statement is never executed.
On Wed, Mar 6, 2013 at 12:43 AM, Evan Behar <> wrote:
I am loading the model from an OBJ file--first I read in the vertices and facets from the OBJ file and then I am constructing the polyhedron using those values. I add the vertices all at once and then construct the facets using the vertex indices, so I am almost certainly reusing the vertices. The modifier code is below:class Build_polyhedron : public CGAL::Modifier_base<Polyhedron::HalfedgeDS> {public:Build_polyhedron() {}void operator()(Polyhedron::HalfedgeDS& hds) {CGAL::Polyhedron_incremental_builder_3<Polyhedron::HalfedgeDS> builder(hds,true);const std::vector<Point>& vertices = OBJReader::vertices;const std::vector<std::vector<int> >& facets = OBJReader::facets;builder.begin_surface(vertices.size(),facets.size());// add verticesfor (int i=0;i<vertices.size();i++) {builder.add_vertex(vertices[i]);}// add facetsfor (int i=0;i<facets.size();i++) {builder.begin_facet();for (int j=0;j<facets[i].size();j++) {builder.add_vertex_to_facet(facets[i][j]);}Halfedge_handle h = builder.end_facet();std::cout << "Validating...\n";if (h->opposite()->facet() != Facet_handle()) {std::cout << "Opposite halfedge's facet not invalid!\n";}}
builder.end_surface();}};On Wed, Mar 6, 2013 at 12:37 AM, Sebastien Loriot (GeometryFactory) <> wrote:
Can you give more information like the modifier you wrote for example?
A common mistake is not reusing the vertices. If you add two vertices
with the same coordinates, they will be consider as different.
Sebastien.
On 03/06/2013 05:51 AM, Evan Behar wrote:
I have constructed a Polyhedron_3, /P/, using theAfter construction, retrieving a Halfedge_handle /h/ from /P /and
Polyhedron_incremental_builder_3, and I am running into the problem that
none of the halfedges in the structure are being associated with any
opposite halfedges that have been previously constructed.
calling /h->opposite()->facet()/ always results in an invalid Facet_handle.
Is this expected behavior from Polyhedron_incremental_builder_3? Do I
have to stitch the facets together manually?
--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://sympa.inria.fr/sympa/info/cgal-discuss
- [cgal-discuss] h->opposite()->facet() always invalid using Polyhedron_incremental_builder_3, Evan Behar, 03/06/2013
- Re: [cgal-discuss] h->opposite()->facet() always invalid using Polyhedron_incremental_builder_3, Sebastien Loriot (GeometryFactory), 03/06/2013
- Re: [cgal-discuss] h->opposite()->facet() always invalid using Polyhedron_incremental_builder_3, Evan Behar, 03/06/2013
- Re: [cgal-discuss] h->opposite()->facet() always invalid using Polyhedron_incremental_builder_3, Evan Behar, 03/06/2013
- Re: [cgal-discuss] h->opposite()->facet() always invalid using Polyhedron_incremental_builder_3, Sebastien Loriot (GeometryFactory), 03/06/2013
- Re: [cgal-discuss] h->opposite()->facet() always invalid using Polyhedron_incremental_builder_3, Evan Behar, 03/06/2013
- Re: [cgal-discuss] h->opposite()->facet() always invalid using Polyhedron_incremental_builder_3, Evan Behar, 03/06/2013
- Re: [cgal-discuss] h->opposite()->facet() always invalid using Polyhedron_incremental_builder_3, Sebastien Loriot (GeometryFactory), 03/06/2013
Archive powered by MHonArc 2.6.18.