mirror of https://github.com/CGAL/cgal
Merge branch 'releases/CGAL-4.14-branch' into releases/CGAL-5.0-branch
This commit is contained in:
commit
2e8a59d570
|
|
@ -171,9 +171,11 @@ class AABB_tree;
|
||||||
/// \sa `AABBPrimitiveWithSharedData`
|
/// \sa `AABBPrimitiveWithSharedData`
|
||||||
|
|
||||||
template<typename GeomTraits, typename AABBPrimitive, typename BboxMap = Default>
|
template<typename GeomTraits, typename AABBPrimitive, typename BboxMap = Default>
|
||||||
class AABB_traits:
|
class AABB_traits
|
||||||
public internal::AABB_tree::AABB_traits_base<AABBPrimitive>,
|
#ifndef DOXYGEN_RUNNING
|
||||||
|
: public internal::AABB_tree::AABB_traits_base<AABBPrimitive>,
|
||||||
public internal::AABB_tree::AABB_traits_base_2<GeomTraits>
|
public internal::AABB_tree::AABB_traits_base_2<GeomTraits>
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
typedef typename CGAL::Object Object;
|
typedef typename CGAL::Object Object;
|
||||||
public:
|
public:
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,9 @@ if(NOT POLICY CMP0064)
|
||||||
# Add a fake function to avoid CMake errors
|
# Add a fake function to avoid CMake errors
|
||||||
function(cgal_add_compilation_test)
|
function(cgal_add_compilation_test)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
# Add a fake function to avoid CMake errors
|
||||||
|
function(cgal_setup_test_properties)
|
||||||
|
endfunction()
|
||||||
|
|
||||||
# Then return, to exit the file
|
# Then return, to exit the file
|
||||||
return()
|
return()
|
||||||
|
|
@ -213,7 +216,7 @@ function(cgal_setup_test_properties test_name)
|
||||||
PROPERTY
|
PROPERTY
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/__exec_test_dir)
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/__exec_test_dir)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set_property(TEST "${test_name}"
|
set_property(TEST "${test_name}"
|
||||||
APPEND PROPERTY FIXTURES_REQUIRED "${PROJECT_NAME}")
|
APPEND PROPERTY FIXTURES_REQUIRED "${PROJECT_NAME}")
|
||||||
if(exe_name)
|
if(exe_name)
|
||||||
|
|
|
||||||
|
|
@ -551,7 +551,7 @@ using std::max;
|
||||||
#define CGAL_NORETURN [[noreturn]]
|
#define CGAL_NORETURN [[noreturn]]
|
||||||
|
|
||||||
// Macro to specify [[no_unique_address]] if supported
|
// Macro to specify [[no_unique_address]] if supported
|
||||||
#if __has_cpp_attribute(no_unique_address)
|
#if CGAL_CXX11 && __has_cpp_attribute(no_unique_address)
|
||||||
# define CGAL_NO_UNIQUE_ADDRESS [[no_unique_address]]
|
# define CGAL_NO_UNIQUE_ADDRESS [[no_unique_address]]
|
||||||
#else
|
#else
|
||||||
# define CGAL_NO_UNIQUE_ADDRESS
|
# define CGAL_NO_UNIQUE_ADDRESS
|
||||||
|
|
|
||||||
|
|
@ -79,6 +79,15 @@ public:
|
||||||
: p1(pp1), p2(pp2), cmp(c)
|
: p1(pp1), p2(pp2), cmp(c)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
template <typename F>
|
||||||
|
struct result;
|
||||||
|
|
||||||
|
template <typename F, typename A1>
|
||||||
|
struct result<F(A1)> {
|
||||||
|
typedef typename Pairify<typename CGAL::cpp11::result_of<P1(const A1&)>::type,
|
||||||
|
typename CGAL::cpp11::result_of<P2(const A1&)>::type>::result_type type;
|
||||||
|
};
|
||||||
|
|
||||||
template <class A1>
|
template <class A1>
|
||||||
typename Pairify<typename CGAL::cpp11::result_of<P1(const A1&)>::type,
|
typename Pairify<typename CGAL::cpp11::result_of<P1(const A1&)>::type,
|
||||||
typename CGAL::cpp11::result_of<P2(const A1&)>::type>::result_type
|
typename CGAL::cpp11::result_of<P2(const A1&)>::type>::result_type
|
||||||
|
|
@ -104,6 +113,12 @@ public:
|
||||||
return Pairify<result_type_1, result_type_2>()(res1, res2);
|
return Pairify<result_type_1, result_type_2>()(res1, res2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename F, typename A1, typename A2>
|
||||||
|
struct result<F(A1, A2)> {
|
||||||
|
typedef typename Pairify<typename CGAL::cpp11::result_of<P1(const A1&, const A2&)>::type,
|
||||||
|
typename CGAL::cpp11::result_of<P2(const A1&, const A2&)>::type>::result_type type;
|
||||||
|
};
|
||||||
|
|
||||||
template <class A1, class A2>
|
template <class A1, class A2>
|
||||||
typename Pairify<typename CGAL::cpp11::result_of<P1(const A1&, const A2&)>::type,
|
typename Pairify<typename CGAL::cpp11::result_of<P1(const A1&, const A2&)>::type,
|
||||||
typename CGAL::cpp11::result_of<P2(const A1&, const A2&)>::type>::result_type
|
typename CGAL::cpp11::result_of<P2(const A1&, const A2&)>::type>::result_type
|
||||||
|
|
@ -131,6 +146,12 @@ public:
|
||||||
return Pairify<result_type_1, result_type_2>()(res1, res2);
|
return Pairify<result_type_1, result_type_2>()(res1, res2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename F, typename A1, typename A2, typename A3>
|
||||||
|
struct result<F(A1, A2, A3)> {
|
||||||
|
typedef typename Pairify<typename CGAL::cpp11::result_of<P1(const A1&, const A2&, const A3&)>::type,
|
||||||
|
typename CGAL::cpp11::result_of<P2(const A1&, const A2&, const A3&)>::type>::result_type type;
|
||||||
|
};
|
||||||
|
|
||||||
template <class A1, class A2, class A3>
|
template <class A1, class A2, class A3>
|
||||||
typename Pairify<typename CGAL::cpp11::result_of<P1(
|
typename Pairify<typename CGAL::cpp11::result_of<P1(
|
||||||
const A1&, const A2&, const A3&)>::type,
|
const A1&, const A2&, const A3&)>::type,
|
||||||
|
|
@ -162,6 +183,16 @@ public:
|
||||||
return Pairify<result_type_1, result_type_2>()(res1, res2);
|
return Pairify<result_type_1, result_type_2>()(res1, res2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename F, typename A1, typename A2, typename A3, typename A4>
|
||||||
|
struct result<F(A1, A2, A3, A4)> {
|
||||||
|
typedef
|
||||||
|
typename Pairify<typename CGAL::cpp11::result_of<P1(
|
||||||
|
const A1&, const A2&, const A3&, const A4&)>::type,
|
||||||
|
typename CGAL::cpp11::result_of<P2(
|
||||||
|
const A1&, const A2&, const A3&, const A4&)>::type>::result_type
|
||||||
|
type;
|
||||||
|
};
|
||||||
|
|
||||||
template <class A1, class A2, class A3, class A4>
|
template <class A1, class A2, class A3, class A4>
|
||||||
typename Pairify<typename CGAL::cpp11::result_of<P1(
|
typename Pairify<typename CGAL::cpp11::result_of<P1(
|
||||||
const A1&, const A2&, const A3&, const A4&)>::type,
|
const A1&, const A2&, const A3&, const A4&)>::type,
|
||||||
|
|
@ -198,6 +229,16 @@ public:
|
||||||
return Pairify<result_type_1, result_type_2>()(res1, res2);
|
return Pairify<result_type_1, result_type_2>()(res1, res2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename F, typename A1, typename A2, typename A3, typename A4, typename A5>
|
||||||
|
struct result<F(A1, A2, A3, A4, A5)> {
|
||||||
|
typedef
|
||||||
|
typename Pairify<typename CGAL::cpp11::result_of<P1(
|
||||||
|
const A1&, const A2&, const A3&, const A4&, const A5&)>::type,
|
||||||
|
typename CGAL::cpp11::result_of<P2(
|
||||||
|
const A1&, const A2&, const A3&, const A4&, const A5&)>::type>::result_type
|
||||||
|
type;
|
||||||
|
};
|
||||||
|
|
||||||
template <class A1, class A2, class A3, class A4, class A5>
|
template <class A1, class A2, class A3, class A4, class A5>
|
||||||
typename Pairify<typename CGAL::cpp11::result_of<P1(
|
typename Pairify<typename CGAL::cpp11::result_of<P1(
|
||||||
const A1&, const A2&, const A3&, const A4&, const A5&)>::type,
|
const A1&, const A2&, const A3&, const A4&, const A5&)>::type,
|
||||||
|
|
|
||||||
|
|
@ -113,6 +113,7 @@ template <class Circulator>
|
||||||
class Construct_circulator_2
|
class Construct_circulator_2
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
typedef Circulator result_type;
|
||||||
Circulator operator()(Circulator p1) const { return p1; }
|
Circulator operator()(Circulator p1) const { return p1; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,14 @@ public:
|
||||||
|
|
||||||
using Base::operator();
|
using Base::operator();
|
||||||
|
|
||||||
|
template<typename F>
|
||||||
|
struct result : Base::template result<F> {};
|
||||||
|
|
||||||
|
template<typename F>
|
||||||
|
struct result<F(Point_3)> {
|
||||||
|
typedef const Point_3& type;
|
||||||
|
};
|
||||||
|
|
||||||
const Point_3& operator()(const Point_3& p) const { return p; }
|
const Point_3& operator()(const Point_3& p) const { return p; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,14 @@ public:
|
||||||
|
|
||||||
using Base::operator(); // for K::Weighted_point_3 to Point_3
|
using Base::operator(); // for K::Weighted_point_3 to Point_3
|
||||||
|
|
||||||
|
template<typename F>
|
||||||
|
struct result : Base::template result<F> {};
|
||||||
|
|
||||||
|
template<typename F>
|
||||||
|
struct result<F(Weighted_point_3)> {
|
||||||
|
typedef Point_3 type;
|
||||||
|
};
|
||||||
|
|
||||||
Point_3 operator()(const Weighted_point_3& wp) const {
|
Point_3 operator()(const Weighted_point_3& wp) const {
|
||||||
return std::make_pair(operator()(wp.first), wp.second /* offset */);
|
return std::make_pair(operator()(wp.first), wp.second /* offset */);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -567,7 +567,7 @@ protected:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
template<typename P> // Point or Point_3
|
template<typename P> // Point or Point_3
|
||||||
typename boost::result_of<const Construct_point_3(const P&)>::type
|
typename boost::result_of<Construct_point_3(P)>::type
|
||||||
construct_point(const P& p) const
|
construct_point(const P& p) const
|
||||||
{
|
{
|
||||||
return geom_traits().construct_point_3_object()(p);
|
return geom_traits().construct_point_3_object()(p);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue