Subject: CGAL users discussion list
List archive
- From: Louis <>
- To:
- Subject: Re: [cgal-discuss] Triangulation 2 data structure problem
- Date: Tue, 25 Mar 2008 14:12:39 -0700
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=U/cKu82VeF0uzV0IHXBAJHXI48YTmFT4BHXoMkLRJr7/7RqNmYUCLuTtrHa2Xznwxs3yagSI+oYIncgkp7KAhE0Uem4YmH9hbbLsPWUSU118zxjVDugJArtvotNkOlzfbOHxAyf+X8IADbZpnsj4by9dvNPCgaCtjYRlx+9+nFA=
Thanks for the information Pedro. Initially I didn't set the
neighborhood information because I don't know what are done
automatically in by the data structure itself or what the user has to
specify. When I insert a vertex or face, calling vertex.is_valid() or
face.is_valid() all returned true. But the triangulation data
structure remained invalid. Now after I set the neighborhood
information, the triangulation still says it's invalid. I'm also not
sure about boundary faces where 1 or 2 neighbor faces are not defined,
do I need to do anything special in this case?
What's frustrating is the lack of information in the documentation on
what are the necessary steps to build a valid triangulation using this
data structure. There are many weird behaviors in this data structure
that need answers. Why does the class initialize with 0 vertices, 1
face, 1 edge? Calling tds.clear() made sure they became 0, but when
you add the first vertex, somehow it's not counted
(number_of_vertices() returns 0).
I wonder if anyone has a concrete example or maybe skeleton code that
shows how to build a triangulation data structure from vertices and
faces.
Thanks,
Louis
On Tue, Mar 25, 2008 at 7:27 AM, Pedro Machado Manhães de Castro
<>
wrote:
> I meant stuffs like:
>
> fHandle->set_neighbor(0, some_face_handle_1);
> fHandle->set_neighbor(1, some_face_handle_2);
> fHandle->set_neighbor(2, some_face_handle_3);
> sry (to not confuse even more),
> Pedro
>
>
>
> On Tue, Mar 25, 2008 at 3:25 PM, Pedro Machado Manhães de Castro
> <>
> wrote:
> > Hello,
> >
> > Do you define the neighborhood of your face inside your 2nd for iteration?
> >
> > Stuffs like:
> > fHandle->set_neighbor(0, some_face_handle_1);
> > fHandle->set_neighbor(0, some_face_handle_2);
> > fHandle->set_neighbor(0, some_face_handle_3);
> > inside
> >
> > ?
> >
> > This constructor here is easier to use:
> > create_face(Face_handle f1, int i1,
> > Face_handle f2, int i2,
> > Face_handle f3, int i3)
> >
> > You define a face by its 3 neighbors, i1, i2, i3 are any sequence defined
> by the indices 0, 1, 2.
> >
> > Hope it could help,
> > Best Regard,
> > Pedro Machado
> >
> >
> >
> >
> >
> > On Tue, Mar 25, 2008 at 11:43 AM, Louis Feng
> > <>
> wrote:
> >
> > > Hello,
> > >
> > > I'm trying to construct a 2D triangle mesh from a list of vertices and
> > > faces. I didn't want to use Polyhedron because I needed some properties
> from
> > > the 2D triangulation class. I'm using Triangulation_2 and
> > > Triangulation_data_structure_2. Basically I use T.tds() to get a
> reference
> > > to the internal data structure. Then I add vertices and faces to it. But
> > > this has become very confusing and I couldn't find examples on this.
> > >
> > > An outline of my code:
> > >
> > > triDS.set_dimension(2);
> > > for(...) {
> > > VertexHandle vHandle = triDS.create_vertex();
> > > vHandle->set_point(Point2(...));
> > > }
> > > for(...) {
> > > FaceHandle fHandle = triDS.create_face(vHandle1, vHandle2, vHandle3); }
> > >
> > > When I check triDS.is_valid() at the end, it returns false. More
> > > interestingly, before I add anything to triDS, when I check the
> vertices,
> > > edge, etc. I get this
> > >
> > > Triangulation vertices: 0
> > > Triangulation faces: 1
> > > Triangulation full faces: 1
> > > Triangulation edges: 1
> > >
> > > So am I suppose to clear this before I add something to it? Looking at
> the
> > > template file for the data structure, it check this:
> > >
> > > case 2:
> > > result = result && edge_count == 3*face_count/2 ;
> > > CGAL_triangulation_assertion(edge_count == 3*face_count/2);
> > > break;
> > >
> > > I'm not sure what the expected behavior is. Could someone tell me what
> I'm
> > > doing wrong and how this class suppose to be used? Thanks!
> > >
> > > Louis
> > >
> > > --
> > > You are currently subscribed to cgal-discuss.
> > > To unsubscribe or access the archives, go to
> > > https://lists-sop.inria.fr/wws/info/cgal-discuss
> > >
> >
> >
>
>
- Triangulation 2 data structure problem, Louis Feng, 03/25/2008
- Re: [cgal-discuss] Triangulation 2 data structure problem, Pedro Machado Manhães de Castro, 03/25/2008
- Re: [cgal-discuss] Triangulation 2 data structure problem, Pedro Machado Manhães de Castro, 03/25/2008
- Re: [cgal-discuss] Triangulation 2 data structure problem, Louis, 03/25/2008
- Re: [cgal-discuss] Triangulation 2 data structure problem, Monique . Teillaud, 03/26/2008
- Re: [cgal-discuss] Triangulation 2 data structure problem, Pedro Machado Manhães de Castro, 03/26/2008
- RE: [cgal-discuss] Triangulation 2 data structure problem, Louis Feng, 03/30/2008
- Re: [cgal-discuss] Triangulation 2 data structure problem, Pedro Machado Manhães de Castro, 03/26/2008
- Re: [cgal-discuss] Triangulation 2 data structure problem, Monique . Teillaud, 03/26/2008
- Re: [cgal-discuss] Triangulation 2 data structure problem, Louis, 03/25/2008
- Re: [cgal-discuss] Triangulation 2 data structure problem, Pedro Machado Manhães de Castro, 03/25/2008
- Re: [cgal-discuss] Triangulation 2 data structure problem, Pedro Machado Manhães de Castro, 03/25/2008
Archive powered by MHonArc 2.6.16.