mirror of https://github.com/CGAL/cgal
Add an overload to build() for shared data
This commit is contained in:
parent
0af5004048
commit
7990fd4f27
|
|
@ -156,7 +156,31 @@ namespace CGAL {
|
||||||
/// `build()` explicitly to ensure that the next call to
|
/// `build()` explicitly to ensure that the next call to
|
||||||
/// query functions will not trigger the reconstruction of the
|
/// query functions will not trigger the reconstruction of the
|
||||||
/// data structure.
|
/// data structure.
|
||||||
|
/// The parameter pack `T` is of any types
|
||||||
|
/// such that `Primitive` has a constructor with the following signature:
|
||||||
|
/// `Primitive(%InputIterator, T...)`. A call to `AABBTraits::set_shared_data(t...)`
|
||||||
|
/// is made using the internally stored traits.
|
||||||
|
/// For compilers that do not support variadic templates,
|
||||||
|
/// overloads up to 5 template arguments are provided.
|
||||||
|
|
||||||
|
#if !defined(CGAL_CFG_NO_CPP0X_VARIADIC_TEMPLATES) && !defined(CGAL_CFG_NO_CPP0X_RVALUE_REFERENCE)
|
||||||
|
template<typename ... T>
|
||||||
|
void build(T&& ...);
|
||||||
void build();
|
void build();
|
||||||
|
#else
|
||||||
|
void build();
|
||||||
|
template
|
||||||
|
template<typename T1>
|
||||||
|
void build(T1& t1);
|
||||||
|
template<typename T1, typename T2>
|
||||||
|
void build(T1& t1, T2& t2);
|
||||||
|
template<typename T1, typename T2,typename T3>
|
||||||
|
void build(T1& t1, T2& t2, T3& t3);
|
||||||
|
template<typename T1, typename T2,typename T3,typename T4>
|
||||||
|
void build(T1& t1, T2& t2, T3& t3, T4& t4);
|
||||||
|
template<typename T1, typename T2,typename T3,typename T4,typename T5>
|
||||||
|
void build(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5);
|
||||||
|
#endif
|
||||||
///@}
|
///@}
|
||||||
|
|
||||||
/// \name Operations
|
/// \name Operations
|
||||||
|
|
@ -752,6 +776,14 @@ public:
|
||||||
|
|
||||||
build();
|
build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename Tr>
|
||||||
|
template<typename ... T>
|
||||||
|
void AABB_tree<Tr>::build(T&& ... t)
|
||||||
|
{
|
||||||
|
set_shared_data(std::forward<T>(t)...);
|
||||||
|
build();
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
//=============constructor======================
|
//=============constructor======================
|
||||||
template<typename Tr>
|
template<typename Tr>
|
||||||
|
|
@ -1033,6 +1065,42 @@ public:
|
||||||
|
|
||||||
build();
|
build();
|
||||||
}
|
}
|
||||||
|
//overloads calling set_shared_data()
|
||||||
|
template<typename Tr>
|
||||||
|
template<typename T1>
|
||||||
|
void AABB_tree<Tr>::build(T1& t1)
|
||||||
|
{
|
||||||
|
set_shared_data(t1);
|
||||||
|
build();
|
||||||
|
}
|
||||||
|
template<typename Tr>
|
||||||
|
template<typename T1, typename T2>
|
||||||
|
void AABB_tree<Tr>::build(T1& t1, T2& t2)
|
||||||
|
{
|
||||||
|
set_shared_data(t1, t2);
|
||||||
|
build();
|
||||||
|
}
|
||||||
|
template<typename Tr>
|
||||||
|
template<typename T1, typename T2, typename T3>
|
||||||
|
void AABB_tree<Tr>::build(T1& t1, T2& t2, T3& t3)
|
||||||
|
{
|
||||||
|
set_shared_data(t1, t2, t3);
|
||||||
|
build();
|
||||||
|
}
|
||||||
|
template<typename Tr>
|
||||||
|
template<typename T1, typename T2, typename T3, typename T4>
|
||||||
|
void AABB_tree<Tr>::build(T1& t1, T2& t2, T3& t3, T4& t4)
|
||||||
|
{
|
||||||
|
set_shared_data(t1, t2, t3, t4);
|
||||||
|
build();
|
||||||
|
}
|
||||||
|
template<typename Tr>
|
||||||
|
template<typename T1, typename T2, typename T3, typename T4, typename T5>
|
||||||
|
void AABB_tree<Tr>::build(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5)
|
||||||
|
{
|
||||||
|
set_shared_data(t1, t2, t3, t4, t5);
|
||||||
|
build();
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
template<typename Tr>
|
template<typename Tr>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue