mirror of https://github.com/CGAL/cgal
Add tests for point sets
This commit is contained in:
parent
c9bf1e1d12
commit
9565974fed
|
|
@ -55,6 +55,7 @@ if ( CGAL_FOUND )
|
||||||
create_single_source_cgal_program( "wlop_simplify_and_regularize_test.cpp" )
|
create_single_source_cgal_program( "wlop_simplify_and_regularize_test.cpp" )
|
||||||
create_single_source_cgal_program( "bilateral_smoothing_test.cpp" )
|
create_single_source_cgal_program( "bilateral_smoothing_test.cpp" )
|
||||||
create_single_source_cgal_program( "edge_aware_upsample_test.cpp" )
|
create_single_source_cgal_program( "edge_aware_upsample_test.cpp" )
|
||||||
|
create_single_source_cgal_program( "point_set_test.cpp" )
|
||||||
|
|
||||||
# Use Eigen or BLAS and LAPACK (optional)
|
# Use Eigen or BLAS and LAPACK (optional)
|
||||||
find_package(Eigen3 3.1.0) #(requires 3.1.0 or greater)
|
find_package(Eigen3 3.1.0) #(requires 3.1.0 or greater)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,67 @@
|
||||||
|
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
||||||
|
#include <CGAL/Point_set_3.h>
|
||||||
|
#include <CGAL/IO/read_xyz_points.h>
|
||||||
|
#include <CGAL/IO/write_xyz_points.h>
|
||||||
|
#include <CGAL/grid_simplify_point_set.h>
|
||||||
|
|
||||||
|
#include <fstream>
|
||||||
|
#include <limits>
|
||||||
|
|
||||||
|
typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel;
|
||||||
|
typedef Kernel::FT FT;
|
||||||
|
typedef Kernel::Point_3 Point;
|
||||||
|
typedef Kernel::Vector_3 Vector;
|
||||||
|
|
||||||
|
typedef CGAL::Point_set_3<Kernel> Point_set;
|
||||||
|
typedef CGAL::cpp11::array<unsigned char, 3> Color;
|
||||||
|
|
||||||
|
|
||||||
|
int main (int, char**)
|
||||||
|
{
|
||||||
|
Point_set point_set;
|
||||||
|
|
||||||
|
assert (!(point_set.has_normals()));
|
||||||
|
point_set.add_normal_property();
|
||||||
|
assert (point_set.has_normals());
|
||||||
|
|
||||||
|
std::vector<Point_set::Item> indices;
|
||||||
|
std::ifstream f ("data/oni.pwn");
|
||||||
|
CGAL::read_xyz_points_and_normals(f,
|
||||||
|
point_set.index_back_inserter(),
|
||||||
|
point_set.point_push_pmap(),
|
||||||
|
point_set.normal_push_pmap(),
|
||||||
|
Kernel());
|
||||||
|
f.close ();
|
||||||
|
|
||||||
|
Point_set::iterator
|
||||||
|
first_selected = CGAL::grid_simplify_point_set (point_set.begin (), point_set.end (),
|
||||||
|
&(point_set[0]),
|
||||||
|
0.1);
|
||||||
|
|
||||||
|
assert (!(point_set.are_indices_up_to_date()));
|
||||||
|
point_set.erase (first_selected, point_set.end());
|
||||||
|
assert (point_set.are_indices_up_to_date());
|
||||||
|
|
||||||
|
assert (!(point_set.has_property<Color> ("color")));
|
||||||
|
point_set.add_property<Color> ("color");
|
||||||
|
assert (point_set.has_property<Color> ("color"));
|
||||||
|
|
||||||
|
|
||||||
|
for (std::size_t i = 0; i < point_set.size(); ++ i)
|
||||||
|
{
|
||||||
|
Color c = {{ static_cast<unsigned char>(rand() % 255),
|
||||||
|
static_cast<unsigned char>(rand() % 255),
|
||||||
|
static_cast<unsigned char>(rand() % 255) }};
|
||||||
|
point_set.property<Color> ("color", i) = c;
|
||||||
|
assert (point_set.property<Color> ("color", i) == c);
|
||||||
|
}
|
||||||
|
|
||||||
|
point_set.remove_normal_property ();
|
||||||
|
assert (!(point_set.has_normals()));
|
||||||
|
|
||||||
|
assert (point_set.has_property<Color> ("color"));
|
||||||
|
point_set.remove_property<Color> ("color");
|
||||||
|
assert (!(point_set.has_property<Color> ("color")));
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue