mirror of https://github.com/CGAL/cgal
added new osqp support + fixed multiple warnings
This commit is contained in:
parent
42ad711540
commit
8aa49a2561
|
|
@ -15,7 +15,8 @@ if(CGAL_FOUND)
|
||||||
|
|
||||||
# Find OSQP library and headers.
|
# Find OSQP library and headers.
|
||||||
find_package(OSQP QUIET)
|
find_package(OSQP QUIET)
|
||||||
if(OSQP_FOUND)
|
include(CGAL_OSQP_support)
|
||||||
|
if(TARGET CGAL::OSQP_support)
|
||||||
message(STATUS "Found OSQP")
|
message(STATUS "Found OSQP")
|
||||||
|
|
||||||
set(osqp_targets
|
set(osqp_targets
|
||||||
|
|
@ -25,11 +26,9 @@ if(CGAL_FOUND)
|
||||||
foreach(osqp_target ${osqp_targets})
|
foreach(osqp_target ${osqp_targets})
|
||||||
create_single_source_cgal_program("${osqp_target}.cpp")
|
create_single_source_cgal_program("${osqp_target}.cpp")
|
||||||
if(TARGET ${osqp_target})
|
if(TARGET ${osqp_target})
|
||||||
target_link_libraries(${osqp_target} PUBLIC ${OSQP_LIBRARIES})
|
target_link_libraries(${osqp_target} PUBLIC CGAL::OSQP_support)
|
||||||
target_compile_definitions(${osqp_target} PUBLIC -DCGAL_USE_OSQP)
|
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
else()
|
else()
|
||||||
message(STATUS "NOTICE: OSQP was not found. OSQP benchmarks won't be available.")
|
message(STATUS "NOTICE: OSQP was not found. OSQP benchmarks won't be available.")
|
||||||
endif()
|
endif()
|
||||||
|
|
|
||||||
|
|
@ -124,7 +124,7 @@ void benchmark_contours(
|
||||||
timer.start();
|
timer.start();
|
||||||
CD closed_directions(contour, true);
|
CD closed_directions(contour, true);
|
||||||
timer.stop();
|
timer.stop();
|
||||||
const double longest_closed = timer.time();
|
// const double longest_closed = timer.time();
|
||||||
timer.reset();
|
timer.reset();
|
||||||
|
|
||||||
double closed_time = 0.0;
|
double closed_time = 0.0;
|
||||||
|
|
@ -144,7 +144,7 @@ void benchmark_contours(
|
||||||
timer.start();
|
timer.start();
|
||||||
CD open_directions(contour, false);
|
CD open_directions(contour, false);
|
||||||
timer.stop();
|
timer.stop();
|
||||||
const double longest_open = timer.time();
|
// const double longest_open = timer.time();
|
||||||
timer.reset();
|
timer.reset();
|
||||||
|
|
||||||
double open_time = 0.0;
|
double open_time = 0.0;
|
||||||
|
|
@ -168,7 +168,7 @@ void benchmark_contours(
|
||||||
"closed/open): " << closed_time << "/" << open_time << " seconds" << std::endl;
|
"closed/open): " << closed_time << "/" << open_time << " seconds" << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
int main() {
|
||||||
|
|
||||||
const std::size_t num_iters = 1;
|
const std::size_t num_iters = 1;
|
||||||
const std::vector<std::size_t> ns = {
|
const std::vector<std::size_t> ns = {
|
||||||
|
|
|
||||||
|
|
@ -145,7 +145,7 @@ void benchmark_qp_segments(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
timer.stop();
|
timer.stop();
|
||||||
const double delaunay_time = timer.time();
|
// const double delaunay_time = timer.time();
|
||||||
timer.reset();
|
timer.reset();
|
||||||
|
|
||||||
const FT max_angle_2 = FT(10);
|
const FT max_angle_2 = FT(10);
|
||||||
|
|
@ -164,7 +164,7 @@ void benchmark_qp_segments(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
timer.stop();
|
timer.stop();
|
||||||
const double setup_angle_time = timer.time();
|
// const double setup_angle_time = timer.time();
|
||||||
timer.reset();
|
timer.reset();
|
||||||
|
|
||||||
double angle_time = 0.0;
|
double angle_time = 0.0;
|
||||||
|
|
@ -184,7 +184,7 @@ void benchmark_qp_segments(
|
||||||
OR offset_regularization(
|
OR offset_regularization(
|
||||||
segments, CGAL::parameters::max_offset(max_offset_2));
|
segments, CGAL::parameters::max_offset(max_offset_2));
|
||||||
timer.stop();
|
timer.stop();
|
||||||
const double setup_offset_time = timer.time();
|
// const double setup_offset_time = timer.time();
|
||||||
timer.reset();
|
timer.reset();
|
||||||
|
|
||||||
timer.start();
|
timer.start();
|
||||||
|
|
@ -192,7 +192,7 @@ void benchmark_qp_segments(
|
||||||
angle_regularization.parallel_groups(
|
angle_regularization.parallel_groups(
|
||||||
std::back_inserter(pgroups));
|
std::back_inserter(pgroups));
|
||||||
timer.stop();
|
timer.stop();
|
||||||
const double init_group_time = timer.time();
|
// const double init_group_time = timer.time();
|
||||||
timer.reset();
|
timer.reset();
|
||||||
|
|
||||||
timer.start();
|
timer.start();
|
||||||
|
|
@ -202,7 +202,7 @@ void benchmark_qp_segments(
|
||||||
offset_regularization.add_group(pgroup);
|
offset_regularization.add_group(pgroup);
|
||||||
}
|
}
|
||||||
timer.stop();
|
timer.stop();
|
||||||
const double add_group_time = timer.time();
|
// const double add_group_time = timer.time();
|
||||||
timer.reset();
|
timer.reset();
|
||||||
|
|
||||||
double offset_time = 0.0;
|
double offset_time = 0.0;
|
||||||
|
|
@ -239,7 +239,7 @@ void benchmark_qp_segments(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
int main() {
|
||||||
|
|
||||||
const std::size_t num_iters = 1;
|
const std::size_t num_iters = 1;
|
||||||
const std::vector<std::size_t> ns = {
|
const std::vector<std::size_t> ns = {
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,8 @@ if(CGAL_FOUND)
|
||||||
|
|
||||||
# Find OSQP library and headers.
|
# Find OSQP library and headers.
|
||||||
find_package(OSQP QUIET)
|
find_package(OSQP QUIET)
|
||||||
if(OSQP_FOUND)
|
include(CGAL_OSQP_support)
|
||||||
|
if(TARGET CGAL::OSQP_support)
|
||||||
message(STATUS "Found OSQP")
|
message(STATUS "Found OSQP")
|
||||||
|
|
||||||
set(osqp_targets
|
set(osqp_targets
|
||||||
|
|
@ -27,8 +28,7 @@ if(CGAL_FOUND)
|
||||||
foreach(osqp_target ${osqp_targets})
|
foreach(osqp_target ${osqp_targets})
|
||||||
create_single_source_cgal_program("${osqp_target}.cpp")
|
create_single_source_cgal_program("${osqp_target}.cpp")
|
||||||
if(TARGET ${osqp_target})
|
if(TARGET ${osqp_target})
|
||||||
target_link_libraries(${osqp_target} PUBLIC ${OSQP_LIBRARIES})
|
target_link_libraries(${osqp_target} PUBLIC CGAL::OSQP_support)
|
||||||
target_compile_definitions(${osqp_target} PUBLIC -DCGAL_USE_OSQP)
|
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
|
@ -38,9 +38,7 @@ if(CGAL_FOUND)
|
||||||
if(TARGET CGAL::Eigen3_support)
|
if(TARGET CGAL::Eigen3_support)
|
||||||
message(STATUS "Found Eigen")
|
message(STATUS "Found Eigen")
|
||||||
create_single_source_cgal_program("regularize_real_data_2.cpp")
|
create_single_source_cgal_program("regularize_real_data_2.cpp")
|
||||||
target_link_libraries(regularize_real_data_2 PUBLIC CGAL::Eigen3_support ${OSQP_LIBRARIES})
|
target_link_libraries(regularize_real_data_2 PUBLIC CGAL::Eigen3_support CGAL::OSQP_support)
|
||||||
target_compile_definitions(regularize_real_data_2 PUBLIC -DCGAL_USE_OSQP)
|
|
||||||
|
|
||||||
else()
|
else()
|
||||||
message(STATUS "NOTICE: Eigen was not found. Eigen examples won't be available.")
|
message(STATUS "NOTICE: Eigen was not found. Eigen examples won't be available.")
|
||||||
endif()
|
endif()
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ int main(int argc, char** argv) {
|
||||||
file.precision(20);
|
file.precision(20);
|
||||||
|
|
||||||
if (!file ||
|
if (!file ||
|
||||||
!CGAL::read_xyz_points(
|
!CGAL::IO::read_XYZ(
|
||||||
file,
|
file,
|
||||||
std::back_inserter(points),
|
std::back_inserter(points),
|
||||||
CGAL::parameters::point_map(Point_map()).
|
CGAL::parameters::point_map(Point_map()).
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,8 @@ if(CGAL_FOUND)
|
||||||
|
|
||||||
# Find OSQP library and headers.
|
# Find OSQP library and headers.
|
||||||
find_package(OSQP QUIET)
|
find_package(OSQP QUIET)
|
||||||
if(OSQP_FOUND)
|
include(CGAL_OSQP_support)
|
||||||
|
if(TARGET CGAL::OSQP_support)
|
||||||
message(STATUS "Found OSQP")
|
message(STATUS "Found OSQP")
|
||||||
|
|
||||||
set(osqp_targets
|
set(osqp_targets
|
||||||
|
|
@ -32,11 +33,9 @@ if(CGAL_FOUND)
|
||||||
foreach(osqp_target ${osqp_targets})
|
foreach(osqp_target ${osqp_targets})
|
||||||
create_single_source_cgal_program("${osqp_target}.cpp")
|
create_single_source_cgal_program("${osqp_target}.cpp")
|
||||||
if(TARGET ${osqp_target})
|
if(TARGET ${osqp_target})
|
||||||
target_link_libraries(${osqp_target} PUBLIC ${OSQP_LIBRARIES})
|
target_link_libraries(${osqp_target} PUBLIC CGAL::OSQP_support)
|
||||||
target_compile_definitions(${osqp_target} PUBLIC -DCGAL_USE_OSQP)
|
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
else()
|
else()
|
||||||
message(STATUS "NOTICE: OSQP was not found. OSQP tests won't be available.")
|
message(STATUS "NOTICE: OSQP was not found. OSQP tests won't be available.")
|
||||||
endif()
|
endif()
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,6 @@ template<class Traits>
|
||||||
void test_0_segments() {
|
void test_0_segments() {
|
||||||
|
|
||||||
using FT = typename Traits::FT;
|
using FT = typename Traits::FT;
|
||||||
using Point_2 = typename Traits::Point_2;
|
|
||||||
using Segment_2 = typename Traits::Segment_2;
|
using Segment_2 = typename Traits::Segment_2;
|
||||||
using Segments = std::vector<Segment_2>;
|
using Segments = std::vector<Segment_2>;
|
||||||
using Indices = std::vector<std::size_t>;
|
using Indices = std::vector<std::size_t>;
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,6 @@ namespace SR = CGAL::Shape_regularization;
|
||||||
template<class Traits>
|
template<class Traits>
|
||||||
void test_closed_contour_10_edges() {
|
void test_closed_contour_10_edges() {
|
||||||
|
|
||||||
using FT = typename Traits::FT;
|
|
||||||
using Point_2 = typename Traits::Point_2;
|
using Point_2 = typename Traits::Point_2;
|
||||||
using Contour = std::vector<Point_2>;
|
using Contour = std::vector<Point_2>;
|
||||||
using Saver = SR::Tests::Saver<Traits>;
|
using Saver = SR::Tests::Saver<Traits>;
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,6 @@ namespace SR = CGAL::Shape_regularization;
|
||||||
template<class Traits>
|
template<class Traits>
|
||||||
void test_closed_contour_3_edges() {
|
void test_closed_contour_3_edges() {
|
||||||
|
|
||||||
using FT = typename Traits::FT;
|
|
||||||
using Point_2 = typename Traits::Point_2;
|
using Point_2 = typename Traits::Point_2;
|
||||||
using Contour = std::vector<Point_2>;
|
using Contour = std::vector<Point_2>;
|
||||||
using Saver = SR::Tests::Saver<Traits>;
|
using Saver = SR::Tests::Saver<Traits>;
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,6 @@ namespace SR = CGAL::Shape_regularization;
|
||||||
template<class Traits>
|
template<class Traits>
|
||||||
void test_closed_contour_4_edges() {
|
void test_closed_contour_4_edges() {
|
||||||
|
|
||||||
using FT = typename Traits::FT;
|
|
||||||
using Point_2 = typename Traits::Point_2;
|
using Point_2 = typename Traits::Point_2;
|
||||||
using Contour = std::vector<Point_2>;
|
using Contour = std::vector<Point_2>;
|
||||||
using Saver = SR::Tests::Saver<Traits>;
|
using Saver = SR::Tests::Saver<Traits>;
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,6 @@ namespace SR = CGAL::Shape_regularization;
|
||||||
template<class Traits>
|
template<class Traits>
|
||||||
void test_directions_longest() {
|
void test_directions_longest() {
|
||||||
|
|
||||||
using FT = typename Traits::FT;
|
|
||||||
using Point_2 = typename Traits::Point_2;
|
using Point_2 = typename Traits::Point_2;
|
||||||
using Direction_2 = typename Traits::Direction_2;
|
using Direction_2 = typename Traits::Direction_2;
|
||||||
using Contour = std::vector<Point_2>;
|
using Contour = std::vector<Point_2>;
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,6 @@ namespace SR = CGAL::Shape_regularization;
|
||||||
template<class Traits>
|
template<class Traits>
|
||||||
void test_directions_multiple_3() {
|
void test_directions_multiple_3() {
|
||||||
|
|
||||||
using FT = typename Traits::FT;
|
|
||||||
using Point_2 = typename Traits::Point_2;
|
using Point_2 = typename Traits::Point_2;
|
||||||
using Contour = std::vector<Point_2>;
|
using Contour = std::vector<Point_2>;
|
||||||
using Saver = SR::Tests::Saver<Traits>;
|
using Saver = SR::Tests::Saver<Traits>;
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,6 @@ namespace SR = CGAL::Shape_regularization;
|
||||||
template<class Traits>
|
template<class Traits>
|
||||||
void test_neighbor_query() {
|
void test_neighbor_query() {
|
||||||
|
|
||||||
using FT = typename Traits::FT;
|
|
||||||
using Point_2 = typename Traits::Point_2;
|
using Point_2 = typename Traits::Point_2;
|
||||||
using Segment_2 = typename Traits::Segment_2;
|
using Segment_2 = typename Traits::Segment_2;
|
||||||
using Segments = std::vector<Segment_2>;
|
using Segments = std::vector<Segment_2>;
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,6 @@ namespace SR = CGAL::Shape_regularization;
|
||||||
template<class Traits>
|
template<class Traits>
|
||||||
void test_open_contour_1_edge() {
|
void test_open_contour_1_edge() {
|
||||||
|
|
||||||
using FT = typename Traits::FT;
|
|
||||||
using Point_2 = typename Traits::Point_2;
|
using Point_2 = typename Traits::Point_2;
|
||||||
using Contour = std::vector<Point_2>;
|
using Contour = std::vector<Point_2>;
|
||||||
using Saver = SR::Tests::Saver<Traits>;
|
using Saver = SR::Tests::Saver<Traits>;
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,6 @@ namespace SR = CGAL::Shape_regularization;
|
||||||
template<class Traits>
|
template<class Traits>
|
||||||
void test_open_contour_9_edges() {
|
void test_open_contour_9_edges() {
|
||||||
|
|
||||||
using FT = typename Traits::FT;
|
|
||||||
using Point_2 = typename Traits::Point_2;
|
using Point_2 = typename Traits::Point_2;
|
||||||
using Contour = std::vector<Point_2>;
|
using Contour = std::vector<Point_2>;
|
||||||
using Saver = SR::Tests::Saver<Traits>;
|
using Saver = SR::Tests::Saver<Traits>;
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,6 @@ bool has_no_difference(
|
||||||
template<class Traits>
|
template<class Traits>
|
||||||
void test_segments() {
|
void test_segments() {
|
||||||
|
|
||||||
using FT = typename Traits::FT;
|
|
||||||
using Point_2 = typename Traits::Point_2;
|
using Point_2 = typename Traits::Point_2;
|
||||||
using Segment_2 = typename Traits::Segment_2;
|
using Segment_2 = typename Traits::Segment_2;
|
||||||
using Segments = std::vector<Segment_2>;
|
using Segments = std::vector<Segment_2>;
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,6 @@ void test_unique_segments() {
|
||||||
using Point_2 = typename Traits::Point_2;
|
using Point_2 = typename Traits::Point_2;
|
||||||
using Segment_2 = typename Traits::Segment_2;
|
using Segment_2 = typename Traits::Segment_2;
|
||||||
using Segments = std::vector<Segment_2>;
|
using Segments = std::vector<Segment_2>;
|
||||||
using Indices = std::vector<std::size_t>;
|
|
||||||
using Saver = SR::Tests::Saver<Traits>;
|
using Saver = SR::Tests::Saver<Traits>;
|
||||||
|
|
||||||
Saver saver;
|
Saver saver;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
* Comment the code.
|
* Comment the code.
|
||||||
* Spell check all files.
|
* Spell check all files.
|
||||||
* Check memory leaking.
|
* Check memory leaking.
|
||||||
* Check authors.
|
|
||||||
|
|
||||||
* Install OSQP on all testing platforms.
|
* Install OSQP on all testing platforms.
|
||||||
* Add a 3D version of the QP regularization algorithm.
|
* Add a 3D version of the QP regularization algorithm.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue