Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Dual od Delaunay Edge 3D

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Dual od Delaunay Edge 3D


Chronological Thread 
  • From: "Angelo Tardugno" <>
  • To:
  • Subject: Re: [cgal-discuss] Dual od Delaunay Edge 3D
  • Date: Tue, 11 Mar 2008 16:15:14 +0000
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; b=o1m0LaOty+qPFjVqss7Pc/Pirr52zchBTzWWyz3q/bK9BnUrHvy0qJYSKLfs+whsE3VBI23Qt3jAZb8Pi/ICyKWmzI/GFPLOjY+lTsImIiqPaD5kQbqedKKNKBANlUlxQXmfjaUSo/4OuprUVE2Joz2eZEIpFyU2T6lLyX4xP3E=

Hi all,

it seems like the circulator is not actually circulating, I've done a simple test:

Edge e(*ci, v_ind1, ((v_ind1+i)%4) );
                    cc=T.incident_cells(e);
                    cc_end=T.incident_cells(Edge(*ci,v_ind1,((v_ind1+i)%4)));
                   
                    cout << "------------------" << endl;
                    cout << (cc==cc_end) << endl;
                    cc++;
                    cout << (cc==cc_end) << endl;
                    cc++;
                    cout << (cc==cc_end) << endl;
                    cc++;
                    cout << (cc==cc_end) << endl;
                    cc++;
                    cout << (cc==cc_end) << endl;
                    cc++;
                    cout << (cc==cc_end) << endl;
                    cc++;
                    cout << (cc==cc_end) << endl;
                    cc++;
                    cout << (cc==cc_end) << endl;
                    cc++;
                    cout << (cc==cc_end) << endl;
                    cc++;
                    cout << (cc==cc_end) << endl;
                    cc++;
                    cout << (cc==cc_end) << endl;
                    cc++;
                    cout << " ------------------------" << endl;

and the output gives me something like this....

-------------------------------
1
0
0

and then the program crashes. It seems like the circulator is not doing its job properly....

Any idea?

Thanks

Angelo



On Tue, Mar 11, 2008 at 12:03 PM, Angelo Tardugno <> wrote:
I've just tried the solution now, but I'm having problems with the circulator...here's a piece of my code:

T.incident_cells(vi,std::back_inserter(i_cells));

        Cell_circulator cc;
        Cell_circulator cc_end;
        Point pt;

        for (std::list<Cell_handle>::iterator ci = i_cells.begin(); ci!=i_cells.end();ci++)
        {
            //cout << T.is_infinite(*ci) << endl;
           
            v_ind1=(*ci)->index(vi);

           

            //cout << v_ind1 << endl;

            for (int i=0; i<4;i++)
            {
                if (!(vert_set.count((*ci)->vertex((v_ind1+i)%4))))
                {
                    vert_set.insert((*ci)->vertex((v_ind1+i)%4));
                    Edge e(*ci, v_ind1, ((v_ind1+i)%4) );
                    cc=T.incident_cells(Edge(*ci,v_ind1,((v_ind1+i)%4)));
                    cc_end=cc;
                   

                    int n_cp=0;                                // I have to count the number of cells incident to write it on a file.....
                    do {
                        n_cp++;
                        cout << n_cp << endl;
                    } while (++cc!=cc_end);

                    medial << n_cp << endl;

                    cc=T.incident_cells(Edge(*ci,v_ind1,((v_ind1+i)%4)));
                    cc_end=cc;

                                       
                    do
                    {    if (!T.is_infinite(cc))
                        {
                       
                        pt=T.dual(cc);
                        cout << pt << endl;
                       
                        medial << pt << endl;
                        }
                    else {cout << "Infinite Cell " << endl;}
                       
                    } while (++cc!=cc_end);
                }
            }
       
        }

        medial.close();

Now I've got 2 problems....
The program compiles fine, but when I run it it crushes. This problem doesn't occur if I use cc++ instead of ++cc, but obviously the do-while just executes once and that's not what I want to do. The other problem is that if I direct a point not to the standard output but to a fstream I don't get any point on the file (but I think that probably point doesn't allow me to write the coordinates on a file...)

Thanks for your help and time

Angelo



On Tue, Mar 11, 2008 at 11:25 AM, <> wrote:
Hi

you got answers yesterday, didn't this help?

       Monique Teillaud

wrote:
> Hello,
>
> I was wondering if it's possible to compute the dual of a Delaunay Edge in 3d. I've looked through the documentation but couldn't find anything. If this is not possible, how should I solve the problem?
>
> Thanks
>
> Angelo

--
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