Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss]To understand half edge data structure

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss]To understand half edge data structure


Chronological Thread 
  • From:
  • To:
  • Subject: Re: [cgal-discuss]To understand half edge data structure
  • Date: Wed, 07 May 2008 15:25:58 +0200

samuel kim wrote:
Hi Mathieu,

I tried both as you said, but the same error comes out.
Sam
-----Original Message-----
From:


[mailto:]
On Behalf Of Mathieu
Bredif
Sent: Wednesday, May 07, 2008 3:13 PM
To:

Subject: Re: [cgal-discuss]To understand half edge data structure

you cannot assign an handle to a circulator, either construct a new
circulator or affect the handle to an handle :

the same explanation is still valid, but:

Halfedge_around_facet_circulator
pHalfedge_new(pHalfedge->prev()->opposite());

there is a copy-paste mistake here, the explanation above allows to easily fix it... :
Halfedge_handle
pHalfedge_new(pHalfedge->prev()->opposite());

or
Halfedge_handle pHalfedge_new = pHalfedge->prev()->opposite();

this should work

Monique Teillaud

Mathieu



On Wed, May 7, 2008 at 2:57 PM, samuel kim
<>
wrote:
> Hi Mathieu and Janssens,
>
> Thank you very much for your reply, I think you are right. So I tried

it but

> an error coming out.
> When I run as the below,
>
> Halfedge_around_facet_circulator pHalfedge = pFacet->facet_begin();
> pHalfedge = pHalfedge->prev()->opposite();
>
> error C2679: binary '=' : no operator found which takes a right-hand

operand

> of type 'CGAL::CGALi::In_place_list_iterator<T,Alloc>' (or there is no
> acceptable conversion)
>
> Would you mind if I ask you one more time How can I solve this?
>
> Samuel
>
> -----Original Message-----
> From:


[mailto:]
On Behalf Of

Mathieu

> Bredif
> Sent: Wednesday, May 07, 2008 2:34 PM
> To:

> Subject: Re: [cgal-discuss]To understand half edge data structure

(VERY

> IMPORTANT)
>
> Hi,
> the facet_begin() halfedge is arbitrary, your mistake is to assume
> that facet2->facet_begin() is a particular halfedge handle.
> My advice is to stay with halfedges without using the intermediate

face

> handles:
>
> A C = AB->prev()->opposite()
> A'C = AC->next_on_vertex() // or more verbosely AB->next()->opposite()
>
> Mathieu
>
> On Wed, May 7, 2008 at 1:58 PM, samuel kim
<>

wrote:

> > Hi all,
> >
> > I am struggling in an implementation with the half edge data

structure.

> What I want to do is to travel the triangles from triangle# 1 to

triangle# 3

> as shown at attached picture. For this, I read CGAL document and

implemented

> based on what I understood. But result is not going to triangle# 3 but

going

> back to triangle# 1 from triangle#2. The below is the source code I

tried.

> >
> > Facet_handle hf_new;
> > Facet_iterator pFacet = facets_begin();
> > Halfedge_around_facet_circulator pHalfedge = pFacet->facet_begin();

//

> expecting to get the handle of half_edge1 on triangle#1
> >
> > hf_new = pHalfedge->prev()->opposite()->facet(); // expecting to

get the

> handle of facet of triangle#2
> > pHalfedge = hf_new->facet_begin(); // expecting to get the handle

of

> half_edge2 in the triangle#2
> >
> > hf_new = pHalfedge->next()->opposite()->facet(); // expecting to

get the

> handle of facet of triangle#3
> > pHalfedge = hf_new->facet_begin(); // expecting to get the handle

of

> half_edge2 on the triangle#3
> >
> >
> > If I did as the above, the handle of facet was that of triangle#1.

So I

> want to ask you a question, when I do this,
> > hf_new = pHalfedge->prev()->opposite()->facet(); //

expecting to

> get the handle of facet of triangle#2
> > pHalfedge = hf_new->facet_begin(); // expecting to get the

handle

> of half_edge2 in the triangle#2
> > Which edge handle should be returned in triangle#2?
> > And what is the base rule to get to know the exact pointer of the

handle

> of half_edge data structure whenever travel triangles? Because I have

tried

> many times, and found that the pointer of handle of half_edge data

structure

> was varying at each triangle which was not expectable.
> >
> > Thank you for your help.
> >
> > Samuel
> >
> >
> > --
> > You are currently subscribed to cgal-discuss.
> > To unsubscribe or access the archives, go to
> > https://lists-sop.inria.fr/wws/info/cgal-discuss
> >
> --
> You are currently subscribed to cgal-discuss.
> To unsubscribe or access the archives, go to
> https://lists-sop.inria.fr/wws/info/cgal-discuss
>
> --
> You are currently subscribed to cgal-discuss.
> To unsubscribe or access the archives, go to
> https://lists-sop.inria.fr/wws/info/cgal-discuss
>





Archive powered by MHonArc 2.6.16.

Top of Page