Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] is_at_open_boundary() problem

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] is_at_open_boundary() problem


Chronological Thread 
  • From: Marco Aurelio Sterpa <>
  • To:
  • Subject: Re: [cgal-discuss] is_at_open_boundary() problem
  • Date: Sat, 26 Sep 2009 11:50:58 +0200
  • 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; b=WMbe1RDhh745vInNkgZ1JV61oJZ3TRpIXOXHH4XnjLQday8MaYHt4HDvixk891+WnX RkO45vVBk2CxKdfurXv6fe9e4gZPijcm9ZBYRSYitA3WvQH/Vg2Q6GkDIHDPH3iKejL/ RVd/EA0+4zBuOu3+LOhAu3YvdezKjHSa1Y7Nw=

I'm sorry to get wrong with that, the right statement is if(!e.target()....); with this said, I get a static error at compile time. I've also tried with e.curve() but I got the same problem, it seems to be just like I'm using a wrong type (Vertex). Thanks in advance.

Best regards.

2009/9/26 Eric Berberich <>
Sterpa wrote:
I'm trying to compile this line:

if(e.target().is_at_infinity()) x = e.target().point().x()-1;

and get this error:

CGAL::I_Filtered_iterator<CGAL::CGALi::In_place_list_iterator<CGAL::Arr_vertex<CGAL::Arr_vertex_base<CGAL::Point_2<CGAL::Simple_cartesian<double>
,
CGAL::Arr_halfedge_base<CGAL::Arr_linear_object_2<CGAL::Simple_cartesian<double>
, CGAL::Arr_face_base>,
std::allocator<CGAL::Arr_vertex<CGAL::Arr_vertex_base<CGAL::Point_2<CGAL::Simple_cartesian<double>
,
CGAL::Arr_halfedge_base<CGAL::Arr_linear_object_2<CGAL::Simple_cartesian<double>
, CGAL::Arr_face_base> > >,
CGAL::Arrangement_on_surface_2<CGAL::Arr_linear_traits_2<CGAL::Simple_cartesian<double>
,
CGAL::Arr_unb_planar_topology_traits_2<CGAL::Arr_linear_traits_2<CGAL::Simple_cartesian<double>
,
CGAL::Arr_default_dcel<CGAL::Arr_linear_traits_2<CGAL::Simple_cartesian<double>
::_Is_concrete_vertex,
CGAL::Arrangement_on_surface_2<CGAL::Arr_linear_traits_2<CGAL::Simple_cartesian<double>
,
CGAL::Arr_unb_planar_topology_traits_2<CGAL::Arr_linear_traits_2<CGAL::Simple_cartesian<double>
,
CGAL::Arr_default_dcel<CGAL::Arr_linear_traits_2<CGAL::Simple_cartesian<double>
::Vertex, int, std::bidirectional_iterator_tag>’ has no member named
‘is_at_infinity’

I read that this method has been replaced by is_at_open_boundary(), but I've
not found a way to write the equivalent statement without get some kind of
error. How can I solve it?

Thanks in advance. Best regards.--

Hi,

you mean a runtime error?

The point is:

 if (e.target().is_at_open_boundary())

should do the job, but

 x = e.target().point().x() - 1;

if e.target() is at an open boundary, it's not possible to access a point there (as there is none). In case open boundary is infinity in x-direction, I also doubt what "oo - 1" is. In case you consider a vertical asymptote check whether you can access that x-information from e.curve().

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