Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Looping through vertices of a face

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Looping through vertices of a face


Chronological Thread 
  • From: Matthew Denno <>
  • To:
  • Subject: Re: [cgal-discuss] Looping through vertices of a face
  • Date: Sun, 14 Jun 2009 21:51:34 -0400
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=Qi4iGr//VDhHZllZe3TU49q+NYRykkNgjZMP5n3xlcSjqvfuoxnrEN00zQObPZ25QI p8vGn9VFPPyKus205A9192FWKr7sjBl3MYkQ/gQCYn1tAi8azr5axS39JKt9EOixCpqd FmIRo8b/2VYNWZjy20VwTEdSFJbgR4QMfVLJU=

Hi Andreas,

Thank you for the explanation.

Matt

On Fri, Jun 12, 2009 at 11:49 AM, Andreas
Fabri<>
wrote:
> Hi Matthew,
>
> It's -> and not .  because f is a Face_handle and not a Face, and
> a handle is something like a pointer.
> http://www.cgal.org/Manual/3.4/doc_html/cgal_manual/Circulator_ref/Concept_Handle.html
>
> Note that all iterators are also model of the concept Handle
>
> andreas
>
> Matthew Denno wrote:
>>
>> Thanks so much to both of you for your help.  I really appreciate you
>> taking time to answer my novice questions as I learn.
>>
>> I think I am starting to learn my way around the documentation so that
>> I can hopefully figure it out on my own in the future.
>>
>> One point of confusion for me still, which is probably more of a C++
>> question than a specific CGAL question is why, for example, in the
>> documentation it is shown as f.vertex() , but in code that was
>> provided (and works) it is f -> vertex().  I suspect that in the
>> documentation it is shown as f.vertex() to indicate that vertex() is a
>> member of f but why is it accessed using f->vertex()?
>>
>> On Fri, Jun 12, 2009 at 8:14 AM, Andreas
>> Fabri<>
>> wrote:
>>>
>>> Hi Matthew,
>>>
>>> The triangulation is parameterized with a triangulation datastructure
>>> which is parameterized with a vertex and face class.
>>>
>>>
>>> ______________________________________________
>>> Parameters
>>> The class Triangulation_2<Traits,Tds> has two template parameters. The
>>> first
>>> one Traits is the geometric traits, it is to be instantiated by a model
>>> of
>>> the concept TriangulationTraits_2.
>>>
>>> The second parameter is the triangulation data structure, it has to be
>>> instantiated by a model of the concept TriangulationDataStructure_2. By
>>> default, the triangulation data structure is instantiated by
>>> CGAL::Triangulation_data_structure_2 <
>>> CGAL::Triangulation_vertex_base_2<Gt>,
>>> CGAL::Triangulation_face_base_2<Gt> >
>>>>
>>>> .
>>>
>>> Source:
>>>
>>> http://www.cgal.org/Manual/3.4/doc_html/cgal_manual/Triangulation_2_ref/Class_Triangulation_2.html#Cross_link_anchor_1166
>>> ______________________________________________
>>>
>>>
>>> Whe you click on    CGAL::Triangulation_face_base_2<Gt>   you find
>>>
>>> ______________________________________________
>>>
>>> Is Model for the Concepts
>>> TriangulationFaceBase_2
>>>
>>>
>>> http://www.cgal.org/Manual/3.4/doc_html/cgal_manual/Triangulation_2_ref/Class_Triangulation_face_base_2.html
>>> ______________________________________________
>>>
>>>
>>> "Model of a concept" means    implementations of a specification,
>>> so when you click on   TriangulationFaceBase_2 and there on
>>> TriangulationDSFaceBase_2
>>>
>>> you are one click away from what you search
>>>
>>>
>>> http://www.cgal.org/Manual/3.4/doc_html/cgal_manual/TDS_2_ref/Concept_TriangulationDSFaceBase_2.html#Cross_link_anchor_1178
>>>
>>>
>>> The whole thing is rather decomposed, but it makes little sense to repeat
>>> the documentation
>>> of the concept for each model.
>>>
>>>
>>> andreas
>>>
>>>
>>>
>>>
>>> Matthew Denno wrote:
>>>>
>>>> Hi,
>>>>
>>>> I am hoping that someone can point me in the right direction to a
>>>> solution for my problem.  I am new to both CGAL and C++ so I apologize
>>>> if my questions should be obvious.
>>>>
>>>> I started out with one of the example problems.  After I have added
>>>> the points to the Triangulation, I use a Face_iterator to iterate
>>>> through the faces (I think through this part is ok).  The problem is I
>>>> can't figure out how to access the verticies of each face as I iterate
>>>> over them.
>>>>
>>>> If someone could point me in the right direction I would really
>>>> appreciate it.  Maybe just a hint of what I should look for in the
>>>> manual.
>>>>
>>>> The code I have been testing with is below.
>>>>
>>>> Thanks so much.
>>>>
>>>> Matt
>>>>
>>>> #include <fstream>
>>>> #include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
>>>> #include <CGAL/Triangulation_2.h>
>>>>
>>>> struct K : CGAL::Exact_predicates_inexact_constructions_kernel {};
>>>>
>>>> typedef CGAL::Triangulation_2<K>         Triangulation;
>>>> typedef Triangulation::Vertex_circulator Vertex_circulator;
>>>> typedef Triangulation::Point             Point;
>>>> typedef Triangulation::Face_iterator     Face_iterator;
>>>> typedef Triangulation::Vertex_handle     Vertex_handle;
>>>> typedef Triangulation::Vertex_iterator   Vertex_iterator;
>>>>
>>>> int main() {
>>>>  std::ifstream in("data/triangulation_prog1.cin");
>>>>  std::istream_iterator<Point> begin(in);
>>>>  std::istream_iterator<Point> end;
>>>>
>>>>  Triangulation t;
>>>>  t.insert(begin, end);
>>>>
>>>>  for (Face_iterator fit = t.faces_begin();
>>>>        fit != t.faces_end();
>>>>        ++fit){
>>>>
>>>>       //This is where the problem is.
>>>>       //print out the x and y coordinates of all three verticies of each
>>>> face
>>>>
>>>>  }
>>>>  return 0;
>>>> }
>>>
>>> --
>>> 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