fixed projection traits test

This commit is contained in:
Dmitry Anisimov 2021-05-21 11:14:21 +02:00
parent 1b45d06239
commit 3d6ffba3cd
4 changed files with 15 additions and 19 deletions

View File

@ -17,11 +17,7 @@ if(CGAL_FOUND)
create_single_source_cgal_program("wachspress_coordinates.cpp") create_single_source_cgal_program("wachspress_coordinates.cpp")
create_single_source_cgal_program("mean_value_coordinates.cpp") create_single_source_cgal_program("mean_value_coordinates.cpp")
create_single_source_cgal_program("discrete_harmonic_coordinates.cpp") create_single_source_cgal_program("discrete_harmonic_coordinates.cpp")
create_single_source_cgal_program("terrain_height_modeling.cpp")
# missing:
# construct_centroid_2
# in projection traits
# create_single_source_cgal_program("terrain_height_modeling.cpp")
# this code is deprecated: # this code is deprecated:
# create_single_source_cgal_program("deprecated_coordinates.cpp") # create_single_source_cgal_program("deprecated_coordinates.cpp")

View File

@ -21,4 +21,3 @@ Interval_support
Mesher_level Mesher_level
Modular_arithmetic Modular_arithmetic
Spatial_sorting Spatial_sorting
Barycentric_coordinates_2

View File

@ -50,7 +50,7 @@ if(CGAL_FOUND)
target_link_libraries(test_hm_const_linear_precision PUBLIC CGAL::Eigen3_support) target_link_libraries(test_hm_const_linear_precision PUBLIC CGAL::Eigen3_support)
create_single_source_cgal_program("test_hm_triangle.cpp") create_single_source_cgal_program("test_hm_triangle.cpp")
target_link_libraries(test_hm_triangle PUBLIC CGAL::Eigen3_support) target_link_libraries(test_hm_triangle PUBLIC CGAL::Eigen3_support)
create_single_source_cgal_program("test_projection_traits.cpp") # TODO: fails, fix it! create_single_source_cgal_program("test_projection_traits.cpp")
target_link_libraries(test_projection_traits PUBLIC CGAL::Eigen3_support) target_link_libraries(test_projection_traits PUBLIC CGAL::Eigen3_support)
create_single_source_cgal_program("test_all_coordinates.cpp") create_single_source_cgal_program("test_all_coordinates.cpp")
target_link_libraries(test_all_coordinates PUBLIC CGAL::Eigen3_support) target_link_libraries(test_all_coordinates PUBLIC CGAL::Eigen3_support)

View File

@ -17,11 +17,10 @@ using Point_map = CGAL::Identity_property_map<Point_3>;
void check_result( void check_result(
const std::vector<FT>& weights, const std::vector<FT>& weights,
const std::vector<FT>& coordinates) { const std::vector<FT>& coordinates,
const FT epsilon = FT(1) / FT(100000000000000)) {
const FT quater = FT(1) / FT(4); const FT quater = FT(1) / FT(4);
const FT epsilon = FT(1) / FT(100000000000000);
assert(coordinates.size() == 4); assert(coordinates.size() == 4);
assert( assert(
CGAL::abs(coordinates[0] - quater) < epsilon && CGAL::abs(coordinates[0] - quater) < epsilon &&
@ -46,12 +45,6 @@ void test_projection_traits(
const Point_3& query, const Point_3& query,
const Projection_traits& projection_traits) { const Projection_traits& projection_traits) {
using Domain = CGAL::Barycentric_coordinates::
Delaunay_domain_2<Vertices, Projection_traits, Point_map>;
using HMC2 = CGAL::Barycentric_coordinates::
Harmonic_coordinates_2<Vertices, Domain, Projection_traits, Point_map>;
Point_map point_map;
std::vector<FT> weights; std::vector<FT> weights;
std::vector<FT> coordinates; std::vector<FT> coordinates;
@ -76,7 +69,14 @@ void test_projection_traits(
vertices, query, std::back_inserter(coordinates), projection_traits); vertices, query, std::back_inserter(coordinates), projection_traits);
check_result(weights, coordinates); check_result(weights, coordinates);
using Domain = CGAL::Barycentric_coordinates::
Delaunay_domain_2<Vertices, Projection_traits, Point_map>;
using HMC2 = CGAL::Barycentric_coordinates::
Harmonic_coordinates_2<Vertices, Domain, Projection_traits, Point_map>;
coordinates.clear(); coordinates.clear();
Point_map point_map;
CGAL::Barycentric_coordinates::boundary_coordinates_2( CGAL::Barycentric_coordinates::boundary_coordinates_2(
vertices, vertices[0], std::back_inserter(coordinates), projection_traits, point_map); vertices, vertices[0], std::back_inserter(coordinates), projection_traits, point_map);
assert( assert(
@ -85,8 +85,7 @@ void test_projection_traits(
const FT max_edge_length = FT(1) / FT(10); const FT max_edge_length = FT(1) / FT(10);
const std::vector<Point_3> seeds = { query }; const std::vector<Point_3> seeds = { query };
Domain domain( Domain domain(vertices, projection_traits, point_map);
vertices, projection_traits, point_map);
domain.create(max_edge_length, seeds); domain.create(max_edge_length, seeds);
HMC2 harmonic_coordinates_2( HMC2 harmonic_coordinates_2(
@ -95,10 +94,12 @@ void test_projection_traits(
coordinates.clear(); coordinates.clear();
for (std::size_t k = 0; k < domain.number_of_vertices(); ++k) for (std::size_t k = 0; k < domain.number_of_vertices(); ++k)
harmonic_coordinates_2(k, std::back_inserter(coordinates)); harmonic_coordinates_2(k, std::back_inserter(coordinates));
assert(coordinates.size() ==
domain.number_of_vertices() * vertices.size());
weights.clear(); coordinates.clear(); weights.clear(); coordinates.clear();
harmonic_coordinates_2(query, std::back_inserter(coordinates)); harmonic_coordinates_2(query, std::back_inserter(coordinates));
check_result(weights, coordinates); check_result(weights, coordinates, max_edge_length);
} }
int main() { int main() {