diff --git a/Documentation/doc/Documentation/Third_party.txt b/Documentation/doc/Documentation/Third_party.txt index e012763b266..0a47a9f2dd6 100644 --- a/Documentation/doc/Documentation/Third_party.txt +++ b/Documentation/doc/Documentation/Third_party.txt @@ -248,9 +248,8 @@ imported target `CGAL::LASLIB_support` provided in \laslib information can be obtained from https://lastools.github.io/ and https://rapidlasso.de/product-overview/. -\laslib is usually distributed along with LAStools: for simplicity, \cgal -provides a fork with a -CMake based install procedure. +\laslib is usually distributed along with LAStools. Current versions of \laslib provide CMake support. +BUILD_SHARED_LIBS needs to be set to true on windows to create a dynamic linked library. \subsection thirdpartyOpenCV OpenCV diff --git a/Point_set_processing_3/examples/Point_set_processing_3/read_las_example.cpp b/Point_set_processing_3/examples/Point_set_processing_3/read_las_example.cpp index 11d266a2d5b..b15265bcb5f 100644 --- a/Point_set_processing_3/examples/Point_set_processing_3/read_las_example.cpp +++ b/Point_set_processing_3/examples/Point_set_processing_3/read_las_example.cpp @@ -21,7 +21,7 @@ int main(int argc, char*argv[]) // Reads a .las point set file with normal vectors and colors std::ifstream in(fname, std::ios_base::binary); std::vector points; // store points - if(!CGAL::IO::read_LAS_with_properties(in, std::back_inserter (points), + if (!CGAL::IO::read_LAS_with_properties(in, std::back_inserter(points), CGAL::IO::make_las_point_reader(CGAL::First_of_pair_property_map()), std::make_tuple(CGAL::Second_of_pair_property_map(), CGAL::Construct_array(), diff --git a/Point_set_processing_3/include/CGAL/IO/write_las_points.h b/Point_set_processing_3/include/CGAL/IO/write_las_points.h index 3c1425fb41f..f3a96c919fd 100644 --- a/Point_set_processing_3/include/CGAL/IO/write_las_points.h +++ b/Point_set_processing_3/include/CGAL/IO/write_las_points.h @@ -134,57 +134,51 @@ namespace LAS { output_value (point, get(current.first, *it), current.second); } - template - void output_tuple(LASpoint& point, const Value& v, const Tuple& t, std::index_sequence) { - output_value(point, std::get(v), std::get(t)); - } - - template - void output_tuple(LASpoint& point, const Value& v, const Tuple& t, std::index_sequence) { - output_value(point, std::get(v), std::get(t)); - output_tuple(point, v, t, std::index_sequence()); + template + void output_tuple(LASpoint& point, const Value& v, const Tuple& t, std::index_sequence) { + (output_value(point, std::get(v), std::get(t)), ...); } template + typename PropertyMap, + typename ... T> void output_properties(LASpoint& point, - ForwardIterator it, - std::tuple&& current) + ForwardIterator it, + std::tuple&& current) { output_tuple(point, get(std::get<0>(current), *it), std::tuple(), std::index_sequence_for{}); } template + typename PropertyMap, + typename T, + typename NextPropertyHandler, + typename ... PropertyHandler> void output_properties(LASpoint& point, - ForwardIterator it, - std::pair&& current, - NextPropertyHandler&& next, - PropertyHandler&& ... properties) + ForwardIterator it, + std::pair&& current, + NextPropertyHandler&& next, + PropertyHandler&& ... properties) { - output_value(point, get(current.first, *it), current.second); - output_properties(point, it, std::forward(next), - std::forward(properties)...); + output_value (point, get(current.first, *it), current.second); + output_properties (point, it, std::forward(next), + std::forward(properties)...); } template + typename PropertyMap, + typename ... T, + typename NextPropertyHandler, + typename ... PropertyHandler> void output_properties(LASpoint& point, - ForwardIterator it, - std::tuple&& current, - NextPropertyHandler&& next, - PropertyHandler&& ... properties) + ForwardIterator it, + std::tuple&& current, + NextPropertyHandler&& next, + PropertyHandler&& ... properties) { output_tuple(point, get(std::get<0>(current), *it), std::tuple(), std::index_sequence_for{}); output_properties(point, it, std::forward(next), - std::forward(properties)...); + std::forward(properties)...); } } // namespace LAS