Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Access violation in CGAL::intersection

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Access violation in CGAL::intersection


Chronological Thread 
  • From: たまちゃん <>
  • To:
  • Subject: Re: [cgal-discuss] Access violation in CGAL::intersection
  • Date: Fri, 23 Jun 2017 01:10:38 +0900
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-phdr: 9a23:74D3vx2enqLApAUAsmDT+DRfVm0co7zxezQtwd8Zse0fL/ad9pjvdHbS+e9qxAeQG96KtLQc06L/iOPJYSQ4+5GPsXQPItRndiQuroEopTEmG9OPEkbhLfTnPGQQFcVGU0J5rTngaRAGUMnxaEfPrXKs8DUcBgvwNRZvJuTyB4Xek9m72/q89pDXYQhEniaxba9vJxiqsAvdsdUbj5F/Iagr0BvJpXVIe+VSxWx2IF+Yggjx6MSt8pN96ipco/0u+dJOXqX8ZKQ4UKdXDC86PGAv5c3krgfMQA2S7XYBSGoWkx5IAw/Y7BHmW5r6ryX3uvZh1CScIMb7S60/Vza/4KdxUBLniikHOT43/m/Ul8J+kr5UrQm7qBBj2YPZep2ZOOZ8c67bYNgURXBBXsFUVyFZBIG+aY0NDewHP+1FqITyukUBrQW/BQmoHu/v1iVHhnrs0qIm0+QuCwfG0RcvH9ILqnvUrdH1OL0OXuCyyanF1DPOZO5Y1zf67YjHaBEhofeUULJxd8rR00gvGBnfglWes4zoOS6e2OcVs2WD8eZsSeaih3QkpgxxuDSj28YhhpTTio4IyV3I6CN0y5svK9KiUk50e9ukHYNQty6EM4t2RdsvQ2RytyY7zr0KoJ66fSYWxJg+yR7Tdv+Kf5WS7hLsU+aRJjh4hHZ7d76lmxmy9k2gxvX9VsmyzllKsjJInsfQun0JzRDe6ciKRuFg8kqgxDqDzR3f5+JZLUwskKrUMZ8hwro+lpoJtkTDGzf7l1jog6+Id0Uk/vKk6/j9bbXjvJCTK490hRv4Mqk1lcy/BP43MgkKX2SB5eu807jj8VXjQLpWlv02jrXZsJfCKMsHqa62GQtV3p8+5Ba+FDepzMkYnWIcLF9eYxKGj43pO0nUL/ziDPe/hU6skDZxyPzcML3hGMaFE37Yjb20faph81UOj00o3NVH7tRVDKsAKbT9QAjqpdnAB1g4NQKzhO3oAdE42oIFUn+UGfylN/bZvlaMo+4uOOKRf5Q9uTDnKvFj6eS9o2U+nArlhVFRJdNDZH2mH/AgP0ycaHHsi9EpHmIDvw54R+vv3g7RGQVPbmq/CvpvrgowD5irWN/O

Thanks a lot Sebastien! I added two checks.

if(P.area()>0.0 && Q.area()>0.0)CGAL::intersection (P, Q, std::back_inserter(intR));

Regards,
tamachan

2017-06-22 23:12 GMT+09:00 Sebastien Loriot (GeometryFactory) <>:
If you compile with assertions ON, you'll get some clear errors:

File       : /home/sloriot/CGAL/git/integration/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_polygon_validation.h
Line       : 262
Explanation: The polygon boundary self overlaps.

Your polygons have 0 area are not valid input.

Sebastien.



On 06/22/2017 03:39 PM, たまちゃん wrote:
Hello Everyone,

I am getting an error in CGAL::intersection sometimes. I wrote sample
code below. How do I fix this error?

Thanks in advance!

Regards,
tamachan

Sample code (alwaysdie.cpp):

#include <CGAL/Exact_predicates_exact_constructions_kernel.h>
//#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Boolean_set_operations_2.h>
#include <list>

typedef CGAL::Exact_predicates_exact_constructions_kernel Kernel;
//typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel;
typedef Kernel::Point_2                                   Point_2;
typedef CGAL::Polygon_2<Kernel>                           Polygon_2;
typedef CGAL::Polygon_with_holes_2<Kernel>
 Polygon_with_holes_2;
typedef std::list<Polygon_with_holes_2>                   Pwh_list_2;

#define SWITCH_Q     2

int main ()
{
  Polygon_2 P;
  P.push_back (Point_2 (0.0, 0.0));
  P.push_back (Point_2 (3.0, 3.0));
  P.push_back (Point_2 (2.0, 2.0));

  Polygon_2 Q;
#if SWITCH_Q==0
  Q.push_back (Point_2 (1.0, 1.0));
  Q.push_back (Point_2 (3.0, 1.0));
  Q.push_back (Point_2 (2.0, 1.0));
#elif SWITCH_Q==1
  Q.push_back (Point_2 (-1.0,2.0));
  Q.push_back (Point_2 (5.0, 2.0));
  Q.push_back (Point_2 (4.0, 2.0));
#else
  Q.push_back (Point_2 (0.0, 0.0));
  Q.push_back (Point_2 (2.0, 2.0));
  Q.push_back (Point_2 (1.0, 1.0));
#endif

  Pwh_list_2                  intR;
  Pwh_list_2::const_iterator  it;

  CGAL::intersection (P, Q, std::back_inserter(intR)); // !!!!!!! <<<
Access Violation here !!!!!!!!!
  return 0;
}


--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://sympa.inria.fr/sympa/info/cgal-discuss






Archive powered by MHonArc 2.6.18.

Top of Page