Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Bug with do_intersect?

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Bug with do_intersect?


Chronological Thread 
  • From: Ophir Setter <>
  • To:
  • Subject: Re: [cgal-discuss] Bug with do_intersect?
  • Date: Wed, 14 Nov 2012 09:26:35 +0200

Hi,

Can you use the CGAL::intersection function and see what is the result of the intersection?

Regards,
Ophir


On Wed, Nov 14, 2012 at 5:11 AM, 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.



--
View this message in context: http://cgal-discuss.949826.n4.nabble.com/Bug-with-do-intersect-tp4656236.html
Sent from the cgal-discuss mailing list archive at Nabble.com.

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