Subject: CGAL users discussion list
List archive
[cgal-discuss] compile error in CGAL4.6 for a code that successfully compiles in CGAL4.2
Chronological Thread
- From: phygeeks <>
- To:
- Subject: [cgal-discuss] compile error in CGAL4.6 for a code that successfully compiles in CGAL4.2
- Date: Thu, 18 Jun 2015 12:59:50 -0700 (PDT)
Hi, I posted a question at StackOverflow, which I will reproduce here. I
would be really grateful for any help in this matter.
====
I have the following code that is successfully compiled and executed with
CGAL4.2.
cgal_intersection.h
----
typedef struct {double x; double y;} coordinate;
int cgal();
extern "C" int find_intersections_of_curves(
coordinate *curve_1, long curve_1_size,
coordinate *curve_2, long curve_2_size,
coordinate *intersections, int max_num_of_intersections);
----
cgal_intersection.cpp
----
#include <CGAL/Cartesian.h>
#include <CGAL/Arr_segment_traits_2.h>
#include <CGAL/Arr_polyline_traits_2.h>
#include <CGAL/Sweep_line_2_algorithms.h>
#include <vector>
#include <list>
#include "cgal_intersection.h"
typedef CGAL::Cartesian<double> Kernel;
typedef CGAL::Arr_segment_traits_2<Kernel> Segment_traits;
typedef CGAL::Arr_polyline_traits_2<Segment_traits> Traits;
typedef Traits::Point_2 Point;
typedef Traits::Curve_2 Polyline;
extern "C" int find_intersections_of_curves(
coordinate *curve_1, long curve_1_size,
coordinate *curve_2, long curve_2_size,
coordinate *intersections, int max_num_of_intersections)
{
std::vector<Point> points_1(curve_1_size);
for (long i_1 = 0; i_1 < curve_1_size; i_1++)
points_1[i_1] = Point(curve_1[i_1].x, curve_1[i_1].y);
Polyline polyline_1(points_1.begin(), points_1.end());
std::vector<Point> points_2(curve_2_size);
for (long i_2 = 0; i_2 < curve_2_size; i_2++)
points_2[i_2] = Point(curve_2[i_2].x, curve_2[i_2].y);
Polyline polyline_2(points_2.begin(), points_2.end());
Polyline polylines[] = {polyline_1, polyline_2};
std::list<Point> intersection_points;
CGAL::compute_intersection_points(polylines, polylines + 2,
std::back_inserter(intersection_points));
int num_of_intersections = intersection_points.size();
Point intersection_point;
for (int j = 0; j < num_of_intersections; j++){
if (j == max_num_of_intersections)
break;
intersection_point = intersection_points.front();
intersections[j].x = intersection_point.x();
intersections[j].y = intersection_point.y();
intersection_points.pop_front();
}
return num_of_intersections;
}
----
But when using CGAL4.6, I get a compile error like the following:
----
Scanning dependencies of target cgal_intersection
[100%] Building CXX object
CMakeFiles/cgal_intersection.dir/cgal_intersection.cpp.o
In file included from
/home/chan/mose/mose/cgal_intersection/cgal_intersection.cpp:5:0:
/usr/include/CGAL/Sweep_line_2_algorithms.h: In instantiation of
‘OutputIterator CGAL::compute_intersection_points(CurveInputIterator,
CurveInputIterator, OutputIterator, bool) [with CurveInputIterator =
CGAL::polyline::Polyline_2<CGAL::Arr_segment_2<CGAL::Cartesian<double>
>, CGAL::Point_2<CGAL::Cartesian<double> > >*; OutputIterator =
std::back_insert_iterator<std::list<CGAL::Point_2<CGAL::Cartesian<double>
> > >]’:
/home/chan/mose/mose/cgal_intersection/cgal_intersection.cpp:36:78:
required from here
/usr/include/CGAL/Sweep_line_2_algorithms.h:134:48: error: no type named
‘Traits’ in ‘struct
CGAL::Default_arr_traits<CGAL::polyline::Polyline_2<CGAL::Arr_segment_2<CGAL::Cartesian<double>
>, CGAL::Point_2<CGAL::Cartesian<double> > > >’
typename Default_arr_traits<Curve>::Traits traits;
^
/usr/include/CGAL/Sweep_line_2_algorithms.h:134:48: error: no type named
‘Traits’ in ‘struct
CGAL::Default_arr_traits<CGAL::polyline::Polyline_2<CGAL::Arr_segment_2<CGAL::Cartesian<double>
>, CGAL::Point_2<CGAL::Cartesian<double> > > >’
make[2]: *** [CMakeFiles/cgal_intersection.dir/cgal_intersection.cpp.o]
Error 1
make[1]: *** [CMakeFiles/cgal_intersection.dir/all] Error 2
make: *** [all] Error 2
----
I looked into the header files but I don't see why it works in CGAL4.2 but
fails in CGAL4.6. I would be grateful for any help.
--
View this message in context:
http://cgal-discuss.949826.n4.nabble.com/compile-error-in-CGAL4-6-for-a-code-that-successfully-compiles-in-CGAL4-2-tp4660927.html
Sent from the cgal-discuss mailing list archive at Nabble.com.
- [cgal-discuss] compile error in CGAL4.6 for a code that successfully compiles in CGAL4.2, phygeeks, 06/18/2015
Archive powered by MHonArc 2.6.18.