Subject: CGAL users discussion list
List archive
- From: Stefan Schirra <>
- To:
- Subject: Re: [cgal-discuss] Bug with do_intersect?
- Date: Wed, 14 Nov 2012 08:28:28 +0100
On 14.11.2012 04:11, Graviton wrote:
I think that there is a bug with the method do_intersect.
Test this sample:
/*! \file do_intersect.cpp
* Determining whether two triangles intersect.
*/
#include <CGAL/Exact_predicates_exact_constructions_kernel.h>
#include <CGAL/Boolean_set_operations_2.h>
typedef CGAL::Exact_predicates_exact_constructions_kernel Kernel;
typedef Kernel::Point_2 Point_2;
typedef CGAL::Polygon_2<Kernel> Polygon_2;
#include "print_utils.h"
int main ()
{
Polygon_2 P;
//P.push_back (Point_2 (-1,1));
//P.push_back (Point_2 (0,-1));
//P.push_back (Point_2 (1,1));
P.push_back (Point_2 (13371696.6813195, -23135667.773556));
P.push_back (Point_2 (13368240.604, -23133412.8));
P.push_back (Point_2 (13364140.624, -23133192.28));
P.push_back (Point_2 (13368823.9405681, -23134726.6078103));
std::cout << "P = "; print_polygon (P);
Polygon_2 Q;
//Q.push_back(Point_2 (-1,-1));
//Q.push_back(Point_2 (1,-1));
//Q.push_back(Point_2 (0,1));
Q.push_back(Point_2 (13375139.672, -23136795.756));
Q.push_back(Point_2 (13371696.6813195, -23135667.773556));
Q.push_back(Point_2 (13371696.682, -23135667.774));
Q.push_back(Point_2 (13368823.9405681, -23134726.6078103));
Q.push_back(Point_2 (13298835.453, -23111797.193));
Q.push_back(Point_2 (13374018.867, -23140216.837));
std::cout << "Q = "; print_polygon (Q);
if ((CGAL::do_intersect (P, Q)))
std::cout << "The two polygons intersect in their interior." <<
std::endl;
else
std::cout << "The two polygons do not intersect." << std::endl;
return 0;
}
If you notice carefully, the P and Q are not intersecting each other ( two
points of P and Q are the same, and the other two points of P are located on
the RHS of Q).
But from the above program, the CGAL:do_intersect returns a true. It should
return a false.
A quote from the manual:
"do_intersect(obj1, obj2) checks whether obj1 and obj2 intersect. Two objects obj1 and obj2 intersect if there is a point p that is part of both obj1 and obj2..."
So if P and Q have two common points, as you say, true is the correct answer.
best regards
Stefan
- [cgal-discuss] Bug with do_intersect?, Graviton, 11/14/2012
- Re: [cgal-discuss] Bug with do_intersect?, Ophir Setter, 11/14/2012
- [cgal-discuss] Re: Bug with do_intersect?, goshhukha, 11/14/2012
- Re: [cgal-discuss] Bug with do_intersect?, Stefan Schirra, 11/14/2012
- [cgal-discuss] Re: Bug with do_intersect?, goshhukha, 11/14/2012
- Re: [cgal-discuss] Bug with do_intersect?, Ophir Setter, 11/14/2012
- Re: [cgal-discuss] Bug with do_intersect?, Stefan Schirra, 11/14/2012
- Re: [cgal-discuss] Bug with do_intersect?, Efi Fogel, 11/15/2012
- Re: [cgal-discuss] Bug with do_intersect?, Stefan Schirra, 11/14/2012
- [cgal-discuss] Re: Bug with do_intersect?, goshhukha, 11/14/2012
- Re: [cgal-discuss] Bug with do_intersect?, Ophir Setter, 11/14/2012
Archive powered by MHonArc 2.6.18.