mirror of https://github.com/CGAL/cgal
boost::integral_constant ---> std::integral_constant
This commit is contained in:
parent
769fca3597
commit
c1294a0eaa
|
|
@ -65,7 +65,7 @@ namespace internal {
|
||||||
|
|
||||||
template<typename Comparable,bool has_template_typedefs>
|
template<typename Comparable,bool has_template_typedefs>
|
||||||
struct Is_derived_from_Handle_with_policy {
|
struct Is_derived_from_Handle_with_policy {
|
||||||
typedef boost::false_type Tag;
|
typedef std::false_type Tag;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename Comparable>
|
template<typename Comparable>
|
||||||
|
|
@ -89,7 +89,7 @@ template<typename Comparable,typename Tag> struct Compare_for_vert_line_map_
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename Comparable>
|
template<typename Comparable>
|
||||||
struct Compare_for_vert_line_map_<Comparable,boost::true_type> {
|
struct Compare_for_vert_line_map_<Comparable,std::true_type> {
|
||||||
|
|
||||||
bool operator() (const Comparable& a, const Comparable& b) const {
|
bool operator() (const Comparable& a, const Comparable& b) const {
|
||||||
return CGAL::Handle_id_less_than< Comparable >()(a,b);
|
return CGAL::Handle_id_less_than< Comparable >()(a,b);
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,7 @@ public:
|
||||||
typedef Tag_true Has_left_category;
|
typedef Tag_true Has_left_category;
|
||||||
typedef Tag_true Has_merge_category;
|
typedef Tag_true Has_merge_category;
|
||||||
typedef Tag_false Has_do_intersect_category;
|
typedef Tag_false Has_do_intersect_category;
|
||||||
//typedef boost::true_type Has_line_segment_constructor;
|
//typedef std::true_type Has_line_segment_constructor;
|
||||||
|
|
||||||
typedef Arr_oblivious_side_tag Left_side_category;
|
typedef Arr_oblivious_side_tag Left_side_category;
|
||||||
typedef Arr_oblivious_side_tag Bottom_side_category;
|
typedef Arr_oblivious_side_tag Bottom_side_category;
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ public:
|
||||||
typedef Arr_contracted_side_tag Top_side_category;
|
typedef Arr_contracted_side_tag Top_side_category;
|
||||||
typedef Arr_identified_side_tag Right_side_category;
|
typedef Arr_identified_side_tag Right_side_category;
|
||||||
|
|
||||||
typedef boost::integral_constant<bool, atan_y==0> Zero_atan_y;
|
typedef std::integral_constant<bool, atan_y==0> Zero_atan_y;
|
||||||
|
|
||||||
// Traits objects
|
// Traits objects
|
||||||
typedef Arr_extended_direction_3<Kernel> Point_2;
|
typedef Arr_extended_direction_3<Kernel> Point_2;
|
||||||
|
|
@ -357,7 +357,7 @@ public:
|
||||||
*/
|
*/
|
||||||
void intersection_with_identification(const X_monotone_curve_2& xcv,
|
void intersection_with_identification(const X_monotone_curve_2& xcv,
|
||||||
Direction_3& dp,
|
Direction_3& dp,
|
||||||
boost::true_type) const
|
std::true_type) const
|
||||||
{
|
{
|
||||||
const Direction_3& normal = xcv.normal();
|
const Direction_3& normal = xcv.normal();
|
||||||
dp = (CGAL::sign(normal.dz()) == POSITIVE) ?
|
dp = (CGAL::sign(normal.dz()) == POSITIVE) ?
|
||||||
|
|
@ -370,7 +370,7 @@ public:
|
||||||
*/
|
*/
|
||||||
void intersection_with_identification(const X_monotone_curve_2& xcv,
|
void intersection_with_identification(const X_monotone_curve_2& xcv,
|
||||||
Direction_3& dp,
|
Direction_3& dp,
|
||||||
boost::false_type) const
|
std::false_type) const
|
||||||
{
|
{
|
||||||
const Direction_3& normal = xcv.normal();
|
const Direction_3& normal = xcv.normal();
|
||||||
FT z((atan_x * normal.dx() + atan_y * normal.dy()) /
|
FT z((atan_x * normal.dx() + atan_y * normal.dy()) /
|
||||||
|
|
@ -382,7 +382,7 @@ public:
|
||||||
* \param[in] cv the curve
|
* \param[in] cv the curve
|
||||||
*/
|
*/
|
||||||
bool overlap_with_identification(const X_monotone_curve_2& xcv,
|
bool overlap_with_identification(const X_monotone_curve_2& xcv,
|
||||||
boost::true_type) const
|
std::true_type) const
|
||||||
{
|
{
|
||||||
const Direction_3& normal = xcv.normal();
|
const Direction_3& normal = xcv.normal();
|
||||||
return ((x_sign(normal) == ZERO) &&
|
return ((x_sign(normal) == ZERO) &&
|
||||||
|
|
@ -394,7 +394,7 @@ public:
|
||||||
* \param[in] cv the curve
|
* \param[in] cv the curve
|
||||||
*/
|
*/
|
||||||
bool overlap_with_identification(const X_monotone_curve_2& xcv,
|
bool overlap_with_identification(const X_monotone_curve_2& xcv,
|
||||||
boost::false_type) const
|
std::false_type) const
|
||||||
{
|
{
|
||||||
const Direction_3& normal = xcv.normal();
|
const Direction_3& normal = xcv.normal();
|
||||||
const Direction_3& iden_normal = identification_normal();
|
const Direction_3& iden_normal = identification_normal();
|
||||||
|
|
@ -440,7 +440,7 @@ public:
|
||||||
Point_2 p;
|
Point_2 p;
|
||||||
Direction_3& d(p);
|
Direction_3& d(p);
|
||||||
d = Direction_3(x, y, z);
|
d = Direction_3(x, y, z);
|
||||||
init(p, boost::integral_constant<bool, atan_y==0>());
|
init(p, std::integral_constant<bool, atan_y==0>());
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -453,14 +453,14 @@ public:
|
||||||
Point_2 p;
|
Point_2 p;
|
||||||
Direction_3& d(p);
|
Direction_3& d(p);
|
||||||
d = Direction_3(other);
|
d = Direction_3(other);
|
||||||
init(p, boost::integral_constant<bool, atan_y==0>());
|
init(p, std::integral_constant<bool, atan_y==0>());
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*! Initialize a point on the sphere,
|
/*! Initialize a point on the sphere,
|
||||||
* \param[in] p the point to initialize.
|
* \param[in] p the point to initialize.
|
||||||
*/
|
*/
|
||||||
void init(Point_2& p, boost::true_type) const
|
void init(Point_2& p, std::true_type) const
|
||||||
{
|
{
|
||||||
const Direction_3& dir = p;
|
const Direction_3& dir = p;
|
||||||
if (y_sign(dir) != ZERO) {
|
if (y_sign(dir) != ZERO) {
|
||||||
|
|
@ -479,7 +479,7 @@ public:
|
||||||
/*! Initialize a point on the sphere,
|
/*! Initialize a point on the sphere,
|
||||||
* \param[in] p the point to initialize.
|
* \param[in] p the point to initialize.
|
||||||
*/
|
*/
|
||||||
void init(Point_2& p, boost::false_type) const
|
void init(Point_2& p, std::false_type) const
|
||||||
{
|
{
|
||||||
const Direction_3& dir = p;
|
const Direction_3& dir = p;
|
||||||
if ((x_sign(dir) == ZERO) && (y_sign(dir) == ZERO)) {
|
if ((x_sign(dir) == ZERO) && (y_sign(dir) == ZERO)) {
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,7 @@ namespace Ss2 = Surface_sweep_2;
|
||||||
// The last parameter is used to resolve ambiguity between this function and
|
// The last parameter is used to resolve ambiguity between this function and
|
||||||
// do_intersect of X_monotone_curve_2 in case that X_monotone_curve_2 and
|
// do_intersect of X_monotone_curve_2 in case that X_monotone_curve_2 and
|
||||||
// Curve_2 are the same class.
|
// Curve_2 are the same class.
|
||||||
// The last parameter should be boost::false_type but we used a
|
// The last parameter should be std::false_type but we used a
|
||||||
// workaround since it didn't compile in FC3_g++-3.4.4 with the error of:
|
// workaround since it didn't compile in FC3_g++-3.4.4 with the error of:
|
||||||
//
|
//
|
||||||
// error: no matching function for call to `do_intersect(Arrangement_2<>&,
|
// error: no matching function for call to `do_intersect(Arrangement_2<>&,
|
||||||
|
|
@ -132,7 +132,7 @@ void insert(Arrangement_on_surface_2<GeometryTraits_2, TopologyTraits>& arr,
|
||||||
//
|
//
|
||||||
// The last parameter is used to resolve ambiguity between this function and
|
// The last parameter is used to resolve ambiguity between this function and
|
||||||
// do_intersect of Curve_2 in case that X_monotone_curve_2 and Curve_2 are the
|
// do_intersect of Curve_2 in case that X_monotone_curve_2 and Curve_2 are the
|
||||||
// same class. The last parameter should be boost::true_type but we used a
|
// same class. The last parameter should be std::true_type but we used a
|
||||||
// workaround since it didn't compile in FC3_g++-3.4.4 with the error of:
|
// workaround since it didn't compile in FC3_g++-3.4.4 with the error of:
|
||||||
//
|
//
|
||||||
// error: no matching function for call to `do_intersect(Arrangement_2<>&,
|
// error: no matching function for call to `do_intersect(Arrangement_2<>&,
|
||||||
|
|
@ -406,7 +406,7 @@ void insert_non_empty(Arrangement_on_surface_2<GeometryTraits_2,
|
||||||
// The last parameter is used to resolve ambiguity between this function and
|
// The last parameter is used to resolve ambiguity between this function and
|
||||||
// do_intersect of X_monotone_curve_2 in case that X_monotone_curve_2 and
|
// do_intersect of X_monotone_curve_2 in case that X_monotone_curve_2 and
|
||||||
// Curve_2 are the same class.
|
// Curve_2 are the same class.
|
||||||
// The last parameter should be boost::false_type but we used a
|
// The last parameter should be std::false_type but we used a
|
||||||
// workaround since it didn't compile in FC3_g++-3.4.4 with the error of:
|
// workaround since it didn't compile in FC3_g++-3.4.4 with the error of:
|
||||||
//
|
//
|
||||||
// error: no matching function for call to `do_intersect(Arrangement_2<>&,
|
// error: no matching function for call to `do_intersect(Arrangement_2<>&,
|
||||||
|
|
@ -460,7 +460,7 @@ void insert(Arrangement_on_surface_2<GeometryTraits_2, TopologyTraits>& arr,
|
||||||
//
|
//
|
||||||
// The last parameter is used to resolve ambiguity between this function and
|
// The last parameter is used to resolve ambiguity between this function and
|
||||||
// insert of Curve_2 in case that X_monotone_curve_2 and Curve_2 are the
|
// insert of Curve_2 in case that X_monotone_curve_2 and Curve_2 are the
|
||||||
// same class. The last parameter should be boost::true_type but we used a
|
// same class. The last parameter should be std::true_type but we used a
|
||||||
// workaround since it didn't compile in FC3_g++-3.4.4 with the error of:
|
// workaround since it didn't compile in FC3_g++-3.4.4 with the error of:
|
||||||
//
|
//
|
||||||
// error: no matching function for call to `do_intersect(Arrangement_2<>&,
|
// error: no matching function for call to `do_intersect(Arrangement_2<>&,
|
||||||
|
|
@ -1522,7 +1522,7 @@ zone(Arrangement_on_surface_2<GeometryTraits_2, TopologyTraits>& arr,
|
||||||
// Checks whether the given x-monotone curve intersects the existing arrangement.
|
// Checks whether the given x-monotone curve intersects the existing arrangement.
|
||||||
// The last parameter is used to resolve ambiguity between this function and
|
// The last parameter is used to resolve ambiguity between this function and
|
||||||
// do_intersect of Curve_2 in case that X_monotone_curve_2 and Curve_2 are the
|
// do_intersect of Curve_2 in case that X_monotone_curve_2 and Curve_2 are the
|
||||||
// same class. The last parameter should be boost::true_type but we used a
|
// same class. The last parameter should be std::true_type but we used a
|
||||||
// workaround since it didn't compile in FC3_g++-3.4.4 with the error of:
|
// workaround since it didn't compile in FC3_g++-3.4.4 with the error of:
|
||||||
//
|
//
|
||||||
// error: no matching function for call to `do_intersect(Arrangement_on_surface_2<>&,
|
// error: no matching function for call to `do_intersect(Arrangement_on_surface_2<>&,
|
||||||
|
|
@ -1559,7 +1559,7 @@ do_intersect(Arrangement_on_surface_2<GeometryTraits_2, TopologyTraits>& arr,
|
||||||
// The last parameter is used to resolve ambiguity between this function and
|
// The last parameter is used to resolve ambiguity between this function and
|
||||||
// do_intersect of X_monotone_curve_2 in case that X_monotone_curve_2 and
|
// do_intersect of X_monotone_curve_2 in case that X_monotone_curve_2 and
|
||||||
// Curve_2 are the same class.
|
// Curve_2 are the same class.
|
||||||
// The last parameter should be boost::false_type but we used a
|
// The last parameter should be std::false_type but we used a
|
||||||
// workaround since it didn't compile in FC3_g++-3.4.4 with the error of:
|
// workaround since it didn't compile in FC3_g++-3.4.4 with the error of:
|
||||||
//
|
//
|
||||||
// error: no matching function for call to
|
// error: no matching function for call to
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@
|
||||||
#include <CGAL/license/Arrangement_on_surface_2.h>
|
#include <CGAL/license/Arrangement_on_surface_2.h>
|
||||||
|
|
||||||
|
|
||||||
#include <boost/type_traits/integral_constant.hpp>
|
#include <type_traits>
|
||||||
|
|
||||||
namespace CGAL
|
namespace CGAL
|
||||||
{
|
{
|
||||||
|
|
@ -62,7 +62,7 @@ namespace CGAL
|
||||||
|
|
||||||
// In the meanwhile we use a default implementation.
|
// In the meanwhile we use a default implementation.
|
||||||
template <class T>
|
template <class T>
|
||||||
class is_arrangement_2 : public boost::false_type
|
class is_arrangement_2 : public std::false_type
|
||||||
{};
|
{};
|
||||||
|
|
||||||
//-------------------------------- Arrangement_2
|
//-------------------------------- Arrangement_2
|
||||||
|
|
@ -74,7 +74,7 @@ class Arrangement_2;
|
||||||
template <class GeomTraits_, class DCEL_>
|
template <class GeomTraits_, class DCEL_>
|
||||||
class is_arrangement_2<
|
class is_arrangement_2<
|
||||||
Arrangement_2<GeomTraits_, DCEL_>
|
Arrangement_2<GeomTraits_, DCEL_>
|
||||||
> : public boost::false_type
|
> : public std::false_type
|
||||||
{};
|
{};
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -87,7 +87,7 @@ class Arrangement_on_surface_2;
|
||||||
template <class GeomTraits_, class TopTraits_>
|
template <class GeomTraits_, class TopTraits_>
|
||||||
class is_arrangement_2<
|
class is_arrangement_2<
|
||||||
Arrangement_on_surface_2<GeomTraits_, TopTraits_>
|
Arrangement_on_surface_2<GeomTraits_, TopTraits_>
|
||||||
> : public boost::true_type
|
> : public std::true_type
|
||||||
{};
|
{};
|
||||||
|
|
||||||
} // namespace CGAL
|
} // namespace CGAL
|
||||||
|
|
|
||||||
|
|
@ -267,7 +267,7 @@ private:
|
||||||
|
|
||||||
try{
|
try{
|
||||||
this->start();
|
this->start();
|
||||||
insert(_pm,ac.begin(),ac.end(),boost::false_type());
|
insert(_pm,ac.begin(),ac.end(),std::false_type());
|
||||||
this->stop();
|
this->stop();
|
||||||
}
|
}
|
||||||
catch (...) {
|
catch (...) {
|
||||||
|
|
|
||||||
|
|
@ -214,7 +214,7 @@ class Bench
|
||||||
try{
|
try{
|
||||||
this->start();
|
this->start();
|
||||||
|
|
||||||
insert(_pm,ac.begin(),ac.end(),boost::false_type());
|
insert(_pm,ac.begin(),ac.end(),std::false_type());
|
||||||
|
|
||||||
this->stop();
|
this->stop();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -219,7 +219,7 @@ private:
|
||||||
Point_location _pl(_pm);
|
Point_location _pl(_pm);
|
||||||
try{
|
try{
|
||||||
this->start();
|
this->start();
|
||||||
insert(_pm,ac.begin(),ac.end(),boost::false_type());
|
insert(_pm,ac.begin(),ac.end(),std::false_type());
|
||||||
this->stop();
|
this->stop();
|
||||||
} catch (std::exception &e) {
|
} catch (std::exception &e) {
|
||||||
this->fail();
|
this->fail();
|
||||||
|
|
|
||||||
|
|
@ -87,7 +87,7 @@ void do_main(const char *s) {
|
||||||
struct rusage before, after;
|
struct rusage before, after;
|
||||||
struct timeval utime, stime;
|
struct timeval utime, stime;
|
||||||
getrusage(RUSAGE_SELF,&before);
|
getrusage(RUSAGE_SELF,&before);
|
||||||
insert(_pm,ac.begin(),ac.end(),boost::false_type());
|
insert(_pm,ac.begin(),ac.end(),std::false_type());
|
||||||
getrusage(RUSAGE_SELF,&after);
|
getrusage(RUSAGE_SELF,&after);
|
||||||
timersub(&(after.ru_utime),&(before.ru_utime),&utime);
|
timersub(&(after.ru_utime),&(before.ru_utime),&utime);
|
||||||
timersub(&(after.ru_stime),&(before.ru_stime),&stime);
|
timersub(&(after.ru_stime),&(before.ru_stime),&stime);
|
||||||
|
|
@ -177,7 +177,7 @@ void do_main(int k) {
|
||||||
struct rusage before, after;
|
struct rusage before, after;
|
||||||
struct timeval utime, stime;
|
struct timeval utime, stime;
|
||||||
getrusage(RUSAGE_SELF,&before);
|
getrusage(RUSAGE_SELF,&before);
|
||||||
insert(_pm,ac.begin(),ac.end(),boost::false_type());
|
insert(_pm,ac.begin(),ac.end(),std::false_type());
|
||||||
getrusage(RUSAGE_SELF,&after);
|
getrusage(RUSAGE_SELF,&after);
|
||||||
timersub(&(after.ru_utime),&(before.ru_utime),&utime);
|
timersub(&(after.ru_utime),&(before.ru_utime),&utime);
|
||||||
timersub(&(after.ru_stime),&(before.ru_stime),&stime);
|
timersub(&(after.ru_stime),&(before.ru_stime),&stime);
|
||||||
|
|
|
||||||
|
|
@ -217,7 +217,7 @@ class Bench
|
||||||
this->start();
|
this->start();
|
||||||
for (typename ArcContainer::const_iterator it=ac.begin();
|
for (typename ArcContainer::const_iterator it=ac.begin();
|
||||||
it != ac.end(); ++it) {
|
it != ac.end(); ++it) {
|
||||||
insert(_pm,*it,_pl,boost::false_type());
|
insert(_pm,*it,_pl,std::false_type());
|
||||||
};
|
};
|
||||||
this->stop();
|
this->stop();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -155,7 +155,7 @@ struct Default_traits_for_Chull_3{
|
||||||
|
|
||||||
//FT is a floating point type and Kernel is a filtered kernel
|
//FT is a floating point type and Kernel is a filtered kernel
|
||||||
template <class Point_3, class PolygonMesh>
|
template <class Point_3, class PolygonMesh>
|
||||||
struct Default_traits_for_Chull_3<Point_3, PolygonMesh, boost::true_type,Tag_true>{
|
struct Default_traits_for_Chull_3<Point_3, PolygonMesh, std::true_type,Tag_true>{
|
||||||
typedef Convex_hull_traits_3< typename Kernel_traits<Point_3>::Kernel, PolygonMesh, Tag_true > type;
|
typedef Convex_hull_traits_3< typename Kernel_traits<Point_3>::Kernel, PolygonMesh, Tag_true > type;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -172,7 +172,7 @@ struct Default_polyhedron_for_Chull_3<Convex_hull_traits_3<K, P, Tag> >{
|
||||||
template <class T>
|
template <class T>
|
||||||
struct Is_cartesian_kernel
|
struct Is_cartesian_kernel
|
||||||
{
|
{
|
||||||
typedef boost::false_type type;
|
typedef std::false_type type;
|
||||||
};
|
};
|
||||||
|
|
||||||
template <class Kernel, class PolygonMesh>
|
template <class Kernel, class PolygonMesh>
|
||||||
|
|
@ -233,7 +233,7 @@ public:
|
||||||
//interval arithmetic (the protector must be created before using this predicate)
|
//interval arithmetic (the protector must be created before using this predicate)
|
||||||
//and in case of failure, exact arithmetic is used.
|
//and in case of failure, exact arithmetic is used.
|
||||||
template <class Kernel, class P>
|
template <class Kernel, class P>
|
||||||
class Is_on_positive_side_of_plane_3<Convex_hull_traits_3<Kernel, P, Tag_true>, boost::true_type >{
|
class Is_on_positive_side_of_plane_3<Convex_hull_traits_3<Kernel, P, Tag_true>, std::true_type >{
|
||||||
typedef Simple_cartesian<CGAL::internal::Exact_field_selector<double>::Type> Exact_K;
|
typedef Simple_cartesian<CGAL::internal::Exact_field_selector<double>::Type> Exact_K;
|
||||||
typedef Simple_cartesian<Interval_nt_advanced > Approx_K;
|
typedef Simple_cartesian<Interval_nt_advanced > Approx_K;
|
||||||
typedef Convex_hull_traits_3<Kernel, P, Tag_true> Traits;
|
typedef Convex_hull_traits_3<Kernel, P, Tag_true> Traits;
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,6 @@ int main()
|
||||||
CGAL_static_assertion( (std::is_same<SCR,Default_traits_for_Chull_3<SCR::Point_3>::type>::value) );
|
CGAL_static_assertion( (std::is_same<SCR,Default_traits_for_Chull_3<SCR::Point_3>::type>::value) );
|
||||||
CGAL_static_assertion( (std::is_same<EPEC,Default_traits_for_Chull_3<EPEC::Point_3>::type>::value) );
|
CGAL_static_assertion( (std::is_same<EPEC,Default_traits_for_Chull_3<EPEC::Point_3>::type>::value) );
|
||||||
CGAL_static_assertion( (std::is_same<CGAL::Convex_hull_traits_3<EPIC, CGAL::Default, CGAL::Tag_true>,Default_traits_for_Chull_3<EPIC::Point_3>::type>::value) );
|
CGAL_static_assertion( (std::is_same<CGAL::Convex_hull_traits_3<EPIC, CGAL::Default, CGAL::Tag_true>,Default_traits_for_Chull_3<EPIC::Point_3>::type>::value) );
|
||||||
CGAL_static_assertion( (std::is_same<Is_on_positive_side_of_plane_3<CGAL::Convex_hull_traits_3<EPIC, CGAL::Default, CGAL::Tag_true>, boost::true_type >::Protector,CGAL::Protect_FPU_rounding<true> >::value) );
|
CGAL_static_assertion( (std::is_same<Is_on_positive_side_of_plane_3<CGAL::Convex_hull_traits_3<EPIC, CGAL::Default, CGAL::Tag_true>, std::true_type >::Protector,CGAL::Protect_FPU_rounding<true> >::value) );
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -129,14 +129,14 @@ public:
|
||||||
template <class GeomTraits_, class TopTraits_>
|
template <class GeomTraits_, class TopTraits_>
|
||||||
class is_arrangement_2<
|
class is_arrangement_2<
|
||||||
Envelope_diagram_on_surface_2<GeomTraits_, TopTraits_>
|
Envelope_diagram_on_surface_2<GeomTraits_, TopTraits_>
|
||||||
> : public boost::true_type
|
> : public std::true_type
|
||||||
{};
|
{};
|
||||||
|
|
||||||
// specialization
|
// specialization
|
||||||
template <class GeomTraits_, class DCEL_>
|
template <class GeomTraits_, class DCEL_>
|
||||||
class is_arrangement_2<
|
class is_arrangement_2<
|
||||||
Envelope_diagram_2<GeomTraits_, DCEL_>
|
Envelope_diagram_2<GeomTraits_, DCEL_>
|
||||||
> : public boost::true_type
|
> : public std::true_type
|
||||||
{};
|
{};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,7 @@ public:
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
struct Has_result_type
|
struct Has_result_type
|
||||||
: boost::integral_constant< bool,
|
: std::integral_constant< bool,
|
||||||
Has_result_type_helper< std::remove_cv_t<T>>::value>
|
Has_result_type_helper< std::remove_cv_t<T>>::value>
|
||||||
{};
|
{};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
#define CGAL_KERNEL_D_CARTESIAN_LA_BASE_H
|
#define CGAL_KERNEL_D_CARTESIAN_LA_BASE_H
|
||||||
#include <CGAL/basic.h>
|
#include <CGAL/basic.h>
|
||||||
#include <CGAL/Origin.h>
|
#include <CGAL/Origin.h>
|
||||||
#include <boost/type_traits/integral_constant.hpp>
|
#include <type_traits>
|
||||||
#include <CGAL/representation_tags.h>
|
#include <CGAL/representation_tags.h>
|
||||||
#include <CGAL/NewKernel_d/functor_tags.h>
|
#include <CGAL/NewKernel_d/functor_tags.h>
|
||||||
#include <CGAL/Uncertain.h>
|
#include <CGAL/Uncertain.h>
|
||||||
|
|
@ -89,7 +89,7 @@ struct Cartesian_LA_base_d : public Dimension_base<Dim_>
|
||||||
::add<Vector_cartesian_const_iterator_tag>::type
|
::add<Vector_cartesian_const_iterator_tag>::type
|
||||||
Iterator_list;
|
Iterator_list;
|
||||||
|
|
||||||
template<class, class=void, class=boost::integral_constant<int,0> > struct Functor {
|
template<class, class=void, class=std::integral_constant<int,0> > struct Functor {
|
||||||
typedef Null_functor type;
|
typedef Null_functor type;
|
||||||
};
|
};
|
||||||
template<class D> struct Functor<Construct_ttag<Vector_tag>,D> {
|
template<class D> struct Functor<Construct_ttag<Vector_tag>,D> {
|
||||||
|
|
@ -105,19 +105,19 @@ struct Cartesian_LA_base_d : public Dimension_base<Dim_>
|
||||||
typedef CartesianDVectorBase::Construct_cartesian_const_iterator<Self> type;
|
typedef CartesianDVectorBase::Construct_cartesian_const_iterator<Self> type;
|
||||||
};
|
};
|
||||||
template<class D> struct Functor<Sum_of_vectors_tag,D,
|
template<class D> struct Functor<Sum_of_vectors_tag,D,
|
||||||
boost::integral_constant<int,!LA_vector::template Property<Has_vector_plus_minus_tag>::value> > {
|
std::integral_constant<int,!LA_vector::template Property<Has_vector_plus_minus_tag>::value> > {
|
||||||
typedef CartesianDVectorBase::Sum_of_vectors<Self> type;
|
typedef CartesianDVectorBase::Sum_of_vectors<Self> type;
|
||||||
};
|
};
|
||||||
template<class D> struct Functor<Difference_of_vectors_tag,D,
|
template<class D> struct Functor<Difference_of_vectors_tag,D,
|
||||||
boost::integral_constant<int,!LA_vector::template Property<Has_vector_plus_minus_tag>::value> > {
|
std::integral_constant<int,!LA_vector::template Property<Has_vector_plus_minus_tag>::value> > {
|
||||||
typedef CartesianDVectorBase::Difference_of_vectors<Self> type;
|
typedef CartesianDVectorBase::Difference_of_vectors<Self> type;
|
||||||
};
|
};
|
||||||
template<class D> struct Functor<Opposite_vector_tag,D,
|
template<class D> struct Functor<Opposite_vector_tag,D,
|
||||||
boost::integral_constant<int,!LA_vector::template Property<Has_vector_plus_minus_tag>::value> > {
|
std::integral_constant<int,!LA_vector::template Property<Has_vector_plus_minus_tag>::value> > {
|
||||||
typedef CartesianDVectorBase::Opposite_vector<Self> type;
|
typedef CartesianDVectorBase::Opposite_vector<Self> type;
|
||||||
};
|
};
|
||||||
template<class D> struct Functor<Midpoint_tag,D,
|
template<class D> struct Functor<Midpoint_tag,D,
|
||||||
boost::integral_constant<int,
|
std::integral_constant<int,
|
||||||
!LA_vector::template Property<Has_vector_plus_minus_tag>::value
|
!LA_vector::template Property<Has_vector_plus_minus_tag>::value
|
||||||
|| !LA_vector::template Property<Has_vector_scalar_ops_tag>::value> > {
|
|| !LA_vector::template Property<Has_vector_scalar_ops_tag>::value> > {
|
||||||
typedef CartesianDVectorBase::Midpoint<Self> type;
|
typedef CartesianDVectorBase::Midpoint<Self> type;
|
||||||
|
|
@ -135,24 +135,24 @@ struct Cartesian_LA_base_d : public Dimension_base<Dim_>
|
||||||
typedef CartesianDVectorBase::PV_dimension<Self> type;
|
typedef CartesianDVectorBase::PV_dimension<Self> type;
|
||||||
};
|
};
|
||||||
template<class D> struct Functor<Orientation_of_vectors_tag,D,
|
template<class D> struct Functor<Orientation_of_vectors_tag,D,
|
||||||
boost::integral_constant<int,!LA_vector::template Property<Has_determinant_of_iterator_to_vectors_tag>::value> > {
|
std::integral_constant<int,!LA_vector::template Property<Has_determinant_of_iterator_to_vectors_tag>::value> > {
|
||||||
typedef CartesianDVectorBase::Orientation_of_vectors<Self> type;
|
typedef CartesianDVectorBase::Orientation_of_vectors<Self> type;
|
||||||
};
|
};
|
||||||
template<class D> struct Functor<Orientation_of_points_tag,D,
|
template<class D> struct Functor<Orientation_of_points_tag,D,
|
||||||
boost::integral_constant<int,!LA_vector::template Property<Has_determinant_of_iterator_to_points_tag>::value> > {
|
std::integral_constant<int,!LA_vector::template Property<Has_determinant_of_iterator_to_points_tag>::value> > {
|
||||||
typedef CartesianDVectorBase::Orientation_of_points<Self> type;
|
typedef CartesianDVectorBase::Orientation_of_points<Self> type;
|
||||||
};
|
};
|
||||||
template<class D> struct Functor<Scalar_product_tag,D,
|
template<class D> struct Functor<Scalar_product_tag,D,
|
||||||
boost::integral_constant<int,!LA_vector::template Property<Has_dot_product_tag>::value> > {
|
std::integral_constant<int,!LA_vector::template Property<Has_dot_product_tag>::value> > {
|
||||||
typedef CartesianDVectorBase::Scalar_product<Self> type;
|
typedef CartesianDVectorBase::Scalar_product<Self> type;
|
||||||
};
|
};
|
||||||
template<class D> struct Functor<Squared_distance_to_origin_tag,D,
|
template<class D> struct Functor<Squared_distance_to_origin_tag,D,
|
||||||
boost::integral_constant<int,!LA_vector::template Property<Stores_squared_norm_tag>::value> > {
|
std::integral_constant<int,!LA_vector::template Property<Stores_squared_norm_tag>::value> > {
|
||||||
typedef CartesianDVectorBase::Squared_distance_to_origin_stored<Self> type;
|
typedef CartesianDVectorBase::Squared_distance_to_origin_stored<Self> type;
|
||||||
};
|
};
|
||||||
// Use integral_constant<int,2> in case of failure, to distinguish from the previous one.
|
// Use integral_constant<int,2> in case of failure, to distinguish from the previous one.
|
||||||
template<class D> struct Functor<Squared_distance_to_origin_tag,D,
|
template<class D> struct Functor<Squared_distance_to_origin_tag,D,
|
||||||
boost::integral_constant<int,
|
std::integral_constant<int,
|
||||||
(LA_vector::template Property<Stores_squared_norm_tag>::value
|
(LA_vector::template Property<Stores_squared_norm_tag>::value
|
||||||
|| !LA_vector::template Property<Has_dot_product_tag>::value)*2> > {
|
|| !LA_vector::template Property<Has_dot_product_tag>::value)*2> > {
|
||||||
typedef CartesianDVectorBase::Squared_distance_to_origin_via_dotprod<Self> type;
|
typedef CartesianDVectorBase::Squared_distance_to_origin_via_dotprod<Self> type;
|
||||||
|
|
|
||||||
|
|
@ -38,10 +38,10 @@ template<class NT_,class Dim_,class Max_dim_=Dim_> struct LA_eigen {
|
||||||
struct Rebind_dimension {
|
struct Rebind_dimension {
|
||||||
typedef LA_eigen< NT, D2, D3 > Other;
|
typedef LA_eigen< NT, D2, D3 > Other;
|
||||||
};
|
};
|
||||||
template<class,class=void> struct Property : boost::false_type {};
|
template<class,class=void> struct Property : std::false_type {};
|
||||||
template<class D> struct Property<Has_vector_plus_minus_tag,D> : boost::true_type {};
|
template<class D> struct Property<Has_vector_plus_minus_tag,D> : std::true_type {};
|
||||||
template<class D> struct Property<Has_vector_scalar_ops_tag,D> : boost::true_type {};
|
template<class D> struct Property<Has_vector_scalar_ops_tag,D> : std::true_type {};
|
||||||
template<class D> struct Property<Has_dot_product_tag,D> : boost::true_type {};
|
template<class D> struct Property<Has_dot_product_tag,D> : std::true_type {};
|
||||||
|
|
||||||
typedef Eigen::Matrix<NT,Eigen_dimension<Dim_>::value,1,Eigen::ColMajor|Eigen::AutoAlign,Eigen_dimension<Max_dim_>::value,1> Vector;
|
typedef Eigen::Matrix<NT,Eigen_dimension<Dim_>::value,1,Eigen::ColMajor|Eigen::AutoAlign,Eigen_dimension<Max_dim_>::value,1> Vector;
|
||||||
typedef Eigen::Matrix<NT,Eigen::Dynamic,1> Dynamic_vector;
|
typedef Eigen::Matrix<NT,Eigen::Dynamic,1> Dynamic_vector;
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ template<class NT_,class Dim_,class Max_dim_=Dim_> struct Array_vector {
|
||||||
struct Rebind_dimension {
|
struct Rebind_dimension {
|
||||||
typedef Array_vector< NT, D2, D3 > Other;
|
typedef Array_vector< NT, D2, D3 > Other;
|
||||||
};
|
};
|
||||||
template<class> struct Property : boost::false_type {};
|
template<class> struct Property : std::false_type {};
|
||||||
|
|
||||||
static const unsigned d_=Max_dim_::value;
|
static const unsigned d_=Max_dim_::value;
|
||||||
CGAL_static_assertion(d_ != (unsigned)UNKNOWN_DIMENSION);
|
CGAL_static_assertion(d_ != (unsigned)UNKNOWN_DIMENSION);
|
||||||
|
|
|
||||||
|
|
@ -31,19 +31,19 @@ namespace CGAL {
|
||||||
typedef Dimension_tag<4> Dimension;
|
typedef Dimension_tag<4> Dimension;
|
||||||
typedef Dimension_tag<4> Max_dimension;
|
typedef Dimension_tag<4> Max_dimension;
|
||||||
// No Rebind_dimension, this is a building block
|
// No Rebind_dimension, this is a building block
|
||||||
template<class,bool=true> struct Property : boost::false_type {};
|
template<class,bool=true> struct Property : std::false_type {};
|
||||||
template<bool b> struct Property<Has_vector_plus_minus_tag,b>
|
template<bool b> struct Property<Has_vector_plus_minus_tag,b>
|
||||||
: boost::true_type {};
|
: std::true_type {};
|
||||||
/* MAYBE?
|
/* MAYBE?
|
||||||
template<bool b> struct Property<Has_vector_scalar_ops_tag,b>
|
template<bool b> struct Property<Has_vector_scalar_ops_tag,b>
|
||||||
: boost::true_type {};
|
: std::true_type {};
|
||||||
*/
|
*/
|
||||||
template<bool b> struct Property<Has_determinant_of_vectors_tag,b>
|
template<bool b> struct Property<Has_determinant_of_vectors_tag,b>
|
||||||
: boost::true_type {};
|
: std::true_type {};
|
||||||
template<bool b> struct Property<Has_dot_product_tag,b>
|
template<bool b> struct Property<Has_dot_product_tag,b>
|
||||||
: boost::true_type {};
|
: std::true_type {};
|
||||||
template<bool b> struct Property<Has_determinant_of_vectors_omit_last_tag,b>
|
template<bool b> struct Property<Has_determinant_of_vectors_omit_last_tag,b>
|
||||||
: boost::true_type {};
|
: std::true_type {};
|
||||||
|
|
||||||
typedef __m256d Vector;
|
typedef __m256d Vector;
|
||||||
struct Construct_vector {
|
struct Construct_vector {
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ struct Add_determinant_of_iterator_to_points_from_iterator_to_vectors
|
||||||
};
|
};
|
||||||
template<class P,class=void> struct Property : LA::template Property<P> {};
|
template<class P,class=void> struct Property : LA::template Property<P> {};
|
||||||
template<class D> struct Property<Has_determinant_of_iterator_to_points_tag, D> :
|
template<class D> struct Property<Has_determinant_of_iterator_to_points_tag, D> :
|
||||||
boost::true_type {};
|
std::true_type {};
|
||||||
|
|
||||||
// TODO: use std::minus, boost::bind, etc
|
// TODO: use std::minus, boost::bind, etc
|
||||||
template<class T> struct Minus_fixed {
|
template<class T> struct Minus_fixed {
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ struct Add_determinant_of_iterator_to_points_from_points
|
||||||
};
|
};
|
||||||
template<class P,class=void> struct Property : LA::template Property<P> {};
|
template<class P,class=void> struct Property : LA::template Property<P> {};
|
||||||
template<class D> struct Property<Has_determinant_of_iterator_to_points_tag, D> :
|
template<class D> struct Property<Has_determinant_of_iterator_to_points_tag, D> :
|
||||||
boost::true_type {};
|
std::true_type {};
|
||||||
|
|
||||||
template<class Iter>
|
template<class Iter>
|
||||||
static NT determinant_of_iterator_to_points(Iter const&first, Iter const&end){
|
static NT determinant_of_iterator_to_points(Iter const&first, Iter const&end){
|
||||||
|
|
@ -74,7 +74,7 @@ struct Add_determinant_of_iterator_to_points_from_points
|
||||||
};
|
};
|
||||||
template<class P,class=void> struct Property : LA::template Property<P> {};
|
template<class P,class=void> struct Property : LA::template Property<P> {};
|
||||||
template<class D> struct Property<Has_determinant_of_iterator_to_points_tag, D> :
|
template<class D> struct Property<Has_determinant_of_iterator_to_points_tag, D> :
|
||||||
boost::true_type {};
|
std::true_type {};
|
||||||
|
|
||||||
template<class Iter>
|
template<class Iter>
|
||||||
static NT determinant_of_iterator_to_points(Iter const&first, Iter const&end){
|
static NT determinant_of_iterator_to_points(Iter const&first, Iter const&end){
|
||||||
|
|
@ -108,7 +108,7 @@ struct Add_determinant_of_iterator_to_points_from_points
|
||||||
};
|
};
|
||||||
template<class P,class=void> struct Property : LA::template Property<P> {};
|
template<class P,class=void> struct Property : LA::template Property<P> {};
|
||||||
template<class D> struct Property<Has_determinant_of_iterator_to_points_tag, D> :
|
template<class D> struct Property<Has_determinant_of_iterator_to_points_tag, D> :
|
||||||
boost::true_type {};
|
std::true_type {};
|
||||||
|
|
||||||
template<class Iter>
|
template<class Iter>
|
||||||
static NT determinant_of_iterator_to_points(Iter const&first, Iter const&end){
|
static NT determinant_of_iterator_to_points(Iter const&first, Iter const&end){
|
||||||
|
|
@ -144,7 +144,7 @@ struct Add_determinant_of_iterator_to_points_from_points
|
||||||
};
|
};
|
||||||
template<class P,class=void> struct Property : LA::template Property<P> {};
|
template<class P,class=void> struct Property : LA::template Property<P> {};
|
||||||
template<class D> struct Property<Has_determinant_of_iterator_to_points_tag, D> :
|
template<class D> struct Property<Has_determinant_of_iterator_to_points_tag, D> :
|
||||||
boost::true_type {};
|
std::true_type {};
|
||||||
|
|
||||||
template<class Iter>
|
template<class Iter>
|
||||||
static NT determinant_of_iterator_to_points(Iter const&first, Iter const&end){
|
static NT determinant_of_iterator_to_points(Iter const&first, Iter const&end){
|
||||||
|
|
@ -182,7 +182,7 @@ struct Add_determinant_of_iterator_to_points_from_points
|
||||||
};
|
};
|
||||||
template<class P,class=void> struct Property : LA::template Property<P> {};
|
template<class P,class=void> struct Property : LA::template Property<P> {};
|
||||||
template<class D> struct Property<Has_determinant_of_iterator_to_points_tag, D> :
|
template<class D> struct Property<Has_determinant_of_iterator_to_points_tag, D> :
|
||||||
boost::true_type {};
|
std::true_type {};
|
||||||
|
|
||||||
template<class Iter>
|
template<class Iter>
|
||||||
static NT determinant_of_iterator_to_points(Iter const&first, Iter const&end){
|
static NT determinant_of_iterator_to_points(Iter const&first, Iter const&end){
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ struct Add_determinant_of_iterator_to_vectors_from_vectors
|
||||||
};
|
};
|
||||||
template<class P,class=void> struct Property : LA::template Property<P> {};
|
template<class P,class=void> struct Property : LA::template Property<P> {};
|
||||||
template<class D> struct Property<Has_determinant_of_iterator_to_vectors_tag, D> :
|
template<class D> struct Property<Has_determinant_of_iterator_to_vectors_tag, D> :
|
||||||
boost::true_type {};
|
std::true_type {};
|
||||||
|
|
||||||
template<class Iter>
|
template<class Iter>
|
||||||
static NT determinant_of_iterator_to_vectors(Iter const&first, Iter const&end){
|
static NT determinant_of_iterator_to_vectors(Iter const&first, Iter const&end){
|
||||||
|
|
@ -72,7 +72,7 @@ struct Add_determinant_of_iterator_to_vectors_from_vectors
|
||||||
};
|
};
|
||||||
template<class P,class=void> struct Property : LA::template Property<P> {};
|
template<class P,class=void> struct Property : LA::template Property<P> {};
|
||||||
template<class D> struct Property<Has_determinant_of_iterator_to_vectors_tag, D> :
|
template<class D> struct Property<Has_determinant_of_iterator_to_vectors_tag, D> :
|
||||||
boost::true_type {};
|
std::true_type {};
|
||||||
|
|
||||||
template<class Iter>
|
template<class Iter>
|
||||||
static NT determinant_of_iterator_to_vectors(Iter const&first, Iter const&end){
|
static NT determinant_of_iterator_to_vectors(Iter const&first, Iter const&end){
|
||||||
|
|
@ -104,7 +104,7 @@ struct Add_determinant_of_iterator_to_vectors_from_vectors
|
||||||
};
|
};
|
||||||
template<class P,class=void> struct Property : LA::template Property<P> {};
|
template<class P,class=void> struct Property : LA::template Property<P> {};
|
||||||
template<class D> struct Property<Has_determinant_of_iterator_to_vectors_tag, D> :
|
template<class D> struct Property<Has_determinant_of_iterator_to_vectors_tag, D> :
|
||||||
boost::true_type {};
|
std::true_type {};
|
||||||
|
|
||||||
template<class Iter>
|
template<class Iter>
|
||||||
static NT determinant_of_iterator_to_vectors(Iter const&first, Iter const&end){
|
static NT determinant_of_iterator_to_vectors(Iter const&first, Iter const&end){
|
||||||
|
|
@ -138,7 +138,7 @@ struct Add_determinant_of_iterator_to_vectors_from_vectors
|
||||||
};
|
};
|
||||||
template<class P,class=void> struct Property : LA::template Property<P> {};
|
template<class P,class=void> struct Property : LA::template Property<P> {};
|
||||||
template<class D> struct Property<Has_determinant_of_iterator_to_vectors_tag, D> :
|
template<class D> struct Property<Has_determinant_of_iterator_to_vectors_tag, D> :
|
||||||
boost::true_type {};
|
std::true_type {};
|
||||||
|
|
||||||
template<class Iter>
|
template<class Iter>
|
||||||
static NT determinant_of_iterator_to_vectors(Iter const&first, Iter const&end){
|
static NT determinant_of_iterator_to_vectors(Iter const&first, Iter const&end){
|
||||||
|
|
@ -174,7 +174,7 @@ struct Add_determinant_of_iterator_to_vectors_from_vectors
|
||||||
};
|
};
|
||||||
template<class P,class=void> struct Property : LA::template Property<P> {};
|
template<class P,class=void> struct Property : LA::template Property<P> {};
|
||||||
template<class D> struct Property<Has_determinant_of_iterator_to_vectors_tag, D> :
|
template<class D> struct Property<Has_determinant_of_iterator_to_vectors_tag, D> :
|
||||||
boost::true_type {};
|
std::true_type {};
|
||||||
|
|
||||||
template<class Iter>
|
template<class Iter>
|
||||||
static NT determinant_of_iterator_to_vectors(Iter const&first, Iter const&end){
|
static NT determinant_of_iterator_to_vectors(Iter const&first, Iter const&end){
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ struct Add_determinant_of_points_from_vectors_and_minus
|
||||||
};
|
};
|
||||||
template<class P,class=void> struct Property : LA::template Property<P> {};
|
template<class P,class=void> struct Property : LA::template Property<P> {};
|
||||||
template<class D> struct Property<Has_determinant_of_points_tag, D> :
|
template<class D> struct Property<Has_determinant_of_points_tag, D> :
|
||||||
boost::true_type {};
|
std::true_type {};
|
||||||
|
|
||||||
static NT determinant_of_points(Vector const&a, Vector const&b,
|
static NT determinant_of_points(Vector const&a, Vector const&b,
|
||||||
Vector const&c){
|
Vector const&c){
|
||||||
|
|
@ -66,7 +66,7 @@ struct Add_determinant_of_points_from_vectors_and_minus
|
||||||
};
|
};
|
||||||
template<class P,class=void> struct Property : LA::template Property<P> {};
|
template<class P,class=void> struct Property : LA::template Property<P> {};
|
||||||
template<class D> struct Property<Has_determinant_of_points_tag, D> :
|
template<class D> struct Property<Has_determinant_of_points_tag, D> :
|
||||||
boost::true_type {};
|
std::true_type {};
|
||||||
|
|
||||||
static NT determinant_of_points(Vector const&a, Vector const&b,
|
static NT determinant_of_points(Vector const&a, Vector const&b,
|
||||||
Vector const&c, Vector const&d){
|
Vector const&c, Vector const&d){
|
||||||
|
|
@ -90,7 +90,7 @@ struct Add_determinant_of_points_from_vectors_and_minus
|
||||||
};
|
};
|
||||||
template<class P,class=void> struct Property : LA::template Property<P> {};
|
template<class P,class=void> struct Property : LA::template Property<P> {};
|
||||||
template<class D> struct Property<Has_determinant_of_points_tag, D> :
|
template<class D> struct Property<Has_determinant_of_points_tag, D> :
|
||||||
boost::true_type {};
|
std::true_type {};
|
||||||
|
|
||||||
static NT determinant_of_points(Vector const&a, Vector const&b,
|
static NT determinant_of_points(Vector const&a, Vector const&b,
|
||||||
Vector const&c, Vector const&d, Vector const&e){
|
Vector const&c, Vector const&d, Vector const&e){
|
||||||
|
|
@ -114,7 +114,7 @@ struct Add_determinant_of_points_from_vectors_and_minus
|
||||||
};
|
};
|
||||||
template<class P,class=void> struct Property : LA::template Property<P> {};
|
template<class P,class=void> struct Property : LA::template Property<P> {};
|
||||||
template<class D> struct Property<Has_determinant_of_points_tag, D> :
|
template<class D> struct Property<Has_determinant_of_points_tag, D> :
|
||||||
boost::true_type {};
|
std::true_type {};
|
||||||
|
|
||||||
static NT determinant_of_points(Vector const&a, Vector const&b,
|
static NT determinant_of_points(Vector const&a, Vector const&b,
|
||||||
Vector const&c, Vector const&d, Vector const&e, Vector const&f){
|
Vector const&c, Vector const&d, Vector const&e, Vector const&f){
|
||||||
|
|
@ -138,7 +138,7 @@ struct Add_determinant_of_points_from_vectors_and_minus
|
||||||
};
|
};
|
||||||
template<class P,class=void> struct Property : LA::template Property<P> {};
|
template<class P,class=void> struct Property : LA::template Property<P> {};
|
||||||
template<class D> struct Property<Has_determinant_of_points_tag, D> :
|
template<class D> struct Property<Has_determinant_of_points_tag, D> :
|
||||||
boost::true_type {};
|
std::true_type {};
|
||||||
|
|
||||||
static NT determinant_of_points(Vector const&a, Vector const&b,
|
static NT determinant_of_points(Vector const&a, Vector const&b,
|
||||||
Vector const&c, Vector const&d, Vector const&e, Vector const&f,
|
Vector const&c, Vector const&d, Vector const&e, Vector const&f,
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ struct CGAL_CLASS
|
||||||
};
|
};
|
||||||
template<class P,class=void> struct Property : LA::template Property<P> {};
|
template<class P,class=void> struct Property : LA::template Property<P> {};
|
||||||
template<class D> struct Property<CGAL_TAG, D> :
|
template<class D> struct Property<CGAL_TAG, D> :
|
||||||
boost::true_type {};
|
std::true_type {};
|
||||||
|
|
||||||
static NT CGAL_FUNC(Vector const&a, Vector const&b){
|
static NT CGAL_FUNC(Vector const&a, Vector const&b){
|
||||||
return CGAL::determinant_of_vectors<NT>(a,b);
|
return CGAL::determinant_of_vectors<NT>(a,b);
|
||||||
|
|
@ -69,7 +69,7 @@ struct CGAL_CLASS
|
||||||
};
|
};
|
||||||
template<class P,class=void> struct Property : LA::template Property<P> {};
|
template<class P,class=void> struct Property : LA::template Property<P> {};
|
||||||
template<class D> struct Property<CGAL_TAG, D> :
|
template<class D> struct Property<CGAL_TAG, D> :
|
||||||
boost::true_type {};
|
std::true_type {};
|
||||||
|
|
||||||
static NT CGAL_FUNC(Vector const&a, Vector const&b,
|
static NT CGAL_FUNC(Vector const&a, Vector const&b,
|
||||||
Vector const&c){
|
Vector const&c){
|
||||||
|
|
@ -93,7 +93,7 @@ struct CGAL_CLASS
|
||||||
};
|
};
|
||||||
template<class P,class=void> struct Property : LA::template Property<P> {};
|
template<class P,class=void> struct Property : LA::template Property<P> {};
|
||||||
template<class D> struct Property<CGAL_TAG, D> :
|
template<class D> struct Property<CGAL_TAG, D> :
|
||||||
boost::true_type {};
|
std::true_type {};
|
||||||
|
|
||||||
static NT CGAL_FUNC(Vector const&a, Vector const&b,
|
static NT CGAL_FUNC(Vector const&a, Vector const&b,
|
||||||
Vector const&c, Vector const&d){
|
Vector const&c, Vector const&d){
|
||||||
|
|
@ -117,7 +117,7 @@ struct CGAL_CLASS
|
||||||
};
|
};
|
||||||
template<class P,class=void> struct Property : LA::template Property<P> {};
|
template<class P,class=void> struct Property : LA::template Property<P> {};
|
||||||
template<class D> struct Property<CGAL_TAG, D> :
|
template<class D> struct Property<CGAL_TAG, D> :
|
||||||
boost::true_type {};
|
std::true_type {};
|
||||||
|
|
||||||
static NT CGAL_FUNC(Vector const&a, Vector const&b,
|
static NT CGAL_FUNC(Vector const&a, Vector const&b,
|
||||||
Vector const&c, Vector const&d, Vector const&e){
|
Vector const&c, Vector const&d, Vector const&e){
|
||||||
|
|
@ -141,7 +141,7 @@ struct CGAL_CLASS
|
||||||
};
|
};
|
||||||
template<class P,class=void> struct Property : LA::template Property<P> {};
|
template<class P,class=void> struct Property : LA::template Property<P> {};
|
||||||
template<class D> struct Property<CGAL_TAG, D> :
|
template<class D> struct Property<CGAL_TAG, D> :
|
||||||
boost::true_type {};
|
std::true_type {};
|
||||||
|
|
||||||
static NT CGAL_FUNC(Vector const&a, Vector const&b,
|
static NT CGAL_FUNC(Vector const&a, Vector const&b,
|
||||||
Vector const&c, Vector const&d, Vector const&e, Vector const&f){
|
Vector const&c, Vector const&d, Vector const&e, Vector const&f){
|
||||||
|
|
|
||||||
|
|
@ -32,17 +32,17 @@ namespace CGAL {
|
||||||
typedef Dimension_tag<2> Dimension;
|
typedef Dimension_tag<2> Dimension;
|
||||||
typedef Dimension_tag<2> Max_dimension;
|
typedef Dimension_tag<2> Max_dimension;
|
||||||
// No Rebind_dimension, this is a building block
|
// No Rebind_dimension, this is a building block
|
||||||
template<class,bool=true> struct Property : boost::false_type {};
|
template<class,bool=true> struct Property : std::false_type {};
|
||||||
template<bool b> struct Property<Has_vector_plus_minus_tag,b>
|
template<bool b> struct Property<Has_vector_plus_minus_tag,b>
|
||||||
: boost::true_type {};
|
: std::true_type {};
|
||||||
/* MAYBE?
|
/* MAYBE?
|
||||||
template<bool b> struct Property<Has_vector_scalar_ops_tag,b>
|
template<bool b> struct Property<Has_vector_scalar_ops_tag,b>
|
||||||
: boost::true_type {};
|
: std::true_type {};
|
||||||
*/
|
*/
|
||||||
template<bool b> struct Property<Has_determinant_of_vectors_tag,b>
|
template<bool b> struct Property<Has_determinant_of_vectors_tag,b>
|
||||||
: boost::true_type {};
|
: std::true_type {};
|
||||||
template<bool b> struct Property<Has_dot_product_tag,b>
|
template<bool b> struct Property<Has_dot_product_tag,b>
|
||||||
: boost::true_type {};
|
: std::true_type {};
|
||||||
|
|
||||||
typedef __m128d Vector;
|
typedef __m128d Vector;
|
||||||
struct Construct_vector {
|
struct Construct_vector {
|
||||||
|
|
|
||||||
|
|
@ -70,13 +70,13 @@ namespace CGAL {
|
||||||
typedef Dimension_tag<2> Dimension;
|
typedef Dimension_tag<2> Dimension;
|
||||||
typedef Dimension_tag<2> Max_dimension;
|
typedef Dimension_tag<2> Max_dimension;
|
||||||
// No Rebind_dimension, this is a building block
|
// No Rebind_dimension, this is a building block
|
||||||
template<class,bool=true> struct Property : boost::false_type {};
|
template<class,bool=true> struct Property : std::false_type {};
|
||||||
//template<bool b> struct Property<Has_vector_plus_minus_tag,b>
|
//template<bool b> struct Property<Has_vector_plus_minus_tag,b>
|
||||||
// : boost::true_type {};
|
// : std::true_type {};
|
||||||
template<bool b> struct Property<Has_determinant_of_vectors_tag,b>
|
template<bool b> struct Property<Has_determinant_of_vectors_tag,b>
|
||||||
: boost::true_type {};
|
: std::true_type {};
|
||||||
//template<bool b> struct Property<Has_determinant_of_points_tag,b>
|
//template<bool b> struct Property<Has_determinant_of_points_tag,b>
|
||||||
// : boost::true_type {};
|
// : std::true_type {};
|
||||||
// Advertise somehow that the sign_of_determinant* are exact?
|
// Advertise somehow that the sign_of_determinant* are exact?
|
||||||
|
|
||||||
typedef std::array<NT1,2> Vector;
|
typedef std::array<NT1,2> Vector;
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ template<class NT_,class Dim_,class Max_dim_=Dim_> struct Vector_vector {
|
||||||
struct Rebind_dimension {
|
struct Rebind_dimension {
|
||||||
typedef Vector_vector< NT, D2, D3 > Other;
|
typedef Vector_vector< NT, D2, D3 > Other;
|
||||||
};
|
};
|
||||||
template<class> struct Property : boost::false_type {};
|
template<class> struct Property : std::false_type {};
|
||||||
|
|
||||||
struct Construct_vector {
|
struct Construct_vector {
|
||||||
struct Dimension {
|
struct Dimension {
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ namespace CGAL {
|
||||||
BOOST_MPL_HAS_XXX_TRAIT_DEF(Is_pretty) \
|
BOOST_MPL_HAS_XXX_TRAIT_DEF(Is_pretty) \
|
||||||
} \
|
} \
|
||||||
template<class T,bool=internal::has_##Is_pretty<T>::value> \
|
template<class T,bool=internal::has_##Is_pretty<T>::value> \
|
||||||
struct Is_pretty : boost::false_type {}; \
|
struct Is_pretty : std::false_type {}; \
|
||||||
template<class T> \
|
template<class T> \
|
||||||
struct Is_pretty<T,true> : T::Is_pretty {}
|
struct Is_pretty<T,true> : T::Is_pretty {}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -69,19 +69,19 @@ namespace CGAL {
|
||||||
Provides_functor<K, typename boost::mpl::front<List>::type>,
|
Provides_functor<K, typename boost::mpl::front<List>::type>,
|
||||||
Provides_functors<K, typename boost::mpl::pop_front<List>::type> > {};
|
Provides_functors<K, typename boost::mpl::pop_front<List>::type> > {};
|
||||||
template<class K, class List>
|
template<class K, class List>
|
||||||
struct Provides_functors<K, List, true> : boost::true_type {};
|
struct Provides_functors<K, List, true> : std::true_type {};
|
||||||
|
|
||||||
template<class K, class List, bool=boost::mpl::empty<List>::type::value>
|
template<class K, class List, bool=boost::mpl::empty<List>::type::value>
|
||||||
struct Provides_types : boost::mpl::and_ <
|
struct Provides_types : boost::mpl::and_ <
|
||||||
Provides_type<K, typename boost::mpl::front<List>::type>,
|
Provides_type<K, typename boost::mpl::front<List>::type>,
|
||||||
Provides_types<K, typename boost::mpl::pop_front<List>::type> > {};
|
Provides_types<K, typename boost::mpl::pop_front<List>::type> > {};
|
||||||
template<class K, class List>
|
template<class K, class List>
|
||||||
struct Provides_types<K, List, true> : boost::true_type {};
|
struct Provides_types<K, List, true> : std::true_type {};
|
||||||
|
|
||||||
namespace internal { BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_Type,template Type<Null_tag>,false) }
|
namespace internal { BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_Type,template Type<Null_tag>,false) }
|
||||||
template<class Kernel, class Tg,
|
template<class Kernel, class Tg,
|
||||||
bool = internal::has_Type<Kernel>::value /* false */>
|
bool = internal::has_Type<Kernel>::value /* false */>
|
||||||
struct Provides_type_i : boost::false_type {};
|
struct Provides_type_i : std::false_type {};
|
||||||
template<class Kernel, class Tg>
|
template<class Kernel, class Tg>
|
||||||
struct Provides_type_i <Kernel, Tg, true>
|
struct Provides_type_i <Kernel, Tg, true>
|
||||||
: Has_type_different_from<typename Kernel::template Type<Tg>, Null_type> {};
|
: Has_type_different_from<typename Kernel::template Type<Tg>, Null_type> {};
|
||||||
|
|
@ -93,7 +93,7 @@ namespace CGAL {
|
||||||
|
|
||||||
template<class Kernel, class Tg, class O=void,
|
template<class Kernel, class Tg, class O=void,
|
||||||
bool = internal::has_Functor<Kernel>::value /* false */>
|
bool = internal::has_Functor<Kernel>::value /* false */>
|
||||||
struct Provides_functor_i : boost::false_type {};
|
struct Provides_functor_i : std::false_type {};
|
||||||
template<class Kernel, class Tg, class O>
|
template<class Kernel, class Tg, class O>
|
||||||
struct Provides_functor_i <Kernel, Tg, O, true>
|
struct Provides_functor_i <Kernel, Tg, O, true>
|
||||||
: Has_type_different_from<typename Kernel::template Functor<Tg, O>, Null_functor> {};
|
: Has_type_different_from<typename Kernel::template Functor<Tg, O>, Null_functor> {};
|
||||||
|
|
@ -332,19 +332,19 @@ namespace CGAL {
|
||||||
struct Stores_squared_norm_tag {};
|
struct Stores_squared_norm_tag {};
|
||||||
|
|
||||||
template<class> struct Preserved_by_non_linear_extra_coordinate
|
template<class> struct Preserved_by_non_linear_extra_coordinate
|
||||||
: boost::false_type {};
|
: std::false_type {};
|
||||||
template<> struct Preserved_by_non_linear_extra_coordinate
|
template<> struct Preserved_by_non_linear_extra_coordinate
|
||||||
<Has_extra_dimension_tag> : boost::true_type {};
|
<Has_extra_dimension_tag> : std::true_type {};
|
||||||
template<> struct Preserved_by_non_linear_extra_coordinate
|
template<> struct Preserved_by_non_linear_extra_coordinate
|
||||||
<Has_determinant_of_vectors_tag> : boost::true_type {};
|
<Has_determinant_of_vectors_tag> : std::true_type {};
|
||||||
template<> struct Preserved_by_non_linear_extra_coordinate
|
template<> struct Preserved_by_non_linear_extra_coordinate
|
||||||
<Has_determinant_of_points_tag> : boost::true_type {};
|
<Has_determinant_of_points_tag> : std::true_type {};
|
||||||
template<> struct Preserved_by_non_linear_extra_coordinate
|
template<> struct Preserved_by_non_linear_extra_coordinate
|
||||||
<Has_determinant_of_iterator_to_vectors_tag> : boost::true_type {};
|
<Has_determinant_of_iterator_to_vectors_tag> : std::true_type {};
|
||||||
template<> struct Preserved_by_non_linear_extra_coordinate
|
template<> struct Preserved_by_non_linear_extra_coordinate
|
||||||
<Has_determinant_of_iterator_to_points_tag> : boost::true_type {};
|
<Has_determinant_of_iterator_to_points_tag> : std::true_type {};
|
||||||
template<> struct Preserved_by_non_linear_extra_coordinate
|
template<> struct Preserved_by_non_linear_extra_coordinate
|
||||||
<Has_determinant_of_vectors_omit_last_tag> : boost::true_type {};
|
<Has_determinant_of_vectors_omit_last_tag> : std::true_type {};
|
||||||
|
|
||||||
// Kernel properties
|
// Kernel properties
|
||||||
struct Point_stores_squared_distance_to_origin_tag {};
|
struct Point_stores_squared_distance_to_origin_tag {};
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ namespace internal {
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class T, class No, bool=internal::has_type<T>::value /*false*/>
|
template <class T, class No, bool=internal::has_type<T>::value /*false*/>
|
||||||
struct Has_type_different_from : boost::false_type {};
|
struct Has_type_different_from : std::false_type {};
|
||||||
template <class T, class No>
|
template <class T, class No>
|
||||||
struct Has_type_different_from <T, No, true>
|
struct Has_type_different_from <T, No, true>
|
||||||
: boost::mpl::not_<std::is_same<typename T::type, No> > {};
|
: boost::mpl::not_<std::is_same<typename T::type, No> > {};
|
||||||
|
|
|
||||||
|
|
@ -1184,9 +1184,9 @@ public:
|
||||||
// number type (like a multiprecision), the coordinates of the points
|
// number type (like a multiprecision), the coordinates of the points
|
||||||
// will increase a lot due to the relocation step. These functions
|
// will increase a lot due to the relocation step. These functions
|
||||||
// simply turn a relocated point to a rounded to double version.
|
// simply turn a relocated point to a rounded to double version.
|
||||||
void relocate_on_the_double_grid(Point&, boost::true_type) const
|
void relocate_on_the_double_grid(Point&, std::true_type) const
|
||||||
{}
|
{}
|
||||||
void relocate_on_the_double_grid(Point& p, boost::false_type) const
|
void relocate_on_the_double_grid(Point& p, std::false_type) const
|
||||||
{
|
{
|
||||||
double x=to_double(m_traits.compute_x_2_object()(p));
|
double x=to_double(m_traits.compute_x_2_object()(p));
|
||||||
double y=to_double(m_traits.compute_y_2_object()(p));
|
double y=to_double(m_traits.compute_y_2_object()(p));
|
||||||
|
|
|
||||||
|
|
@ -1147,7 +1147,7 @@ bool do_intersect(const PolylineRange& polylines1,
|
||||||
typename boost::mpl::eval_if<
|
typename boost::mpl::eval_if<
|
||||||
boost::has_range_iterator<PolylineRange>,
|
boost::has_range_iterator<PolylineRange>,
|
||||||
boost::range_value<PolylineRange>,
|
boost::range_value<PolylineRange>,
|
||||||
boost::false_type >::type
|
std::false_type >::type
|
||||||
>::value
|
>::value
|
||||||
>* = 0//end enable_if
|
>* = 0//end enable_if
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -1194,7 +1194,7 @@ bool do_intersect(const Polyline& polyline1,
|
||||||
typename boost::mpl::eval_if<
|
typename boost::mpl::eval_if<
|
||||||
boost::has_range_iterator<Polyline>,
|
boost::has_range_iterator<Polyline>,
|
||||||
boost::range_value<Polyline>,
|
boost::range_value<Polyline>,
|
||||||
boost::false_type
|
std::false_type
|
||||||
>::type
|
>::type
|
||||||
>::value
|
>::value
|
||||||
>* = 0//end enable_if
|
>* = 0//end enable_if
|
||||||
|
|
@ -1365,7 +1365,7 @@ bool do_intersect(const TriangleMesh& tm,
|
||||||
typename boost::mpl::eval_if<
|
typename boost::mpl::eval_if<
|
||||||
boost::has_range_iterator<PolylineRange>,
|
boost::has_range_iterator<PolylineRange>,
|
||||||
boost::range_value<PolylineRange>,
|
boost::range_value<PolylineRange>,
|
||||||
boost::false_type
|
std::false_type
|
||||||
>::type
|
>::type
|
||||||
>::value
|
>::value
|
||||||
>* = 0//end enable_if
|
>* = 0//end enable_if
|
||||||
|
|
@ -1435,7 +1435,7 @@ bool do_intersect(const TriangleMesh& tm,
|
||||||
typename boost::mpl::eval_if<
|
typename boost::mpl::eval_if<
|
||||||
boost::has_range_iterator<Polyline>,
|
boost::has_range_iterator<Polyline>,
|
||||||
boost::range_value<Polyline>,
|
boost::range_value<Polyline>,
|
||||||
boost::false_type
|
std::false_type
|
||||||
>::type
|
>::type
|
||||||
>::type // not a range of a range
|
>::type // not a range of a range
|
||||||
>::value
|
>::value
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
#ifndef CGAL_IS_CONVERTIBLE_H
|
#ifndef CGAL_IS_CONVERTIBLE_H
|
||||||
#define CGAL_IS_CONVERTIBLE_H
|
#define CGAL_IS_CONVERTIBLE_H
|
||||||
|
|
||||||
#include <boost/type_traits/integral_constant.hpp>
|
#include <type_traits>
|
||||||
#ifdef CGAL_USE_GMPXX
|
#ifdef CGAL_USE_GMPXX
|
||||||
#include <gmpxx.h>
|
#include <gmpxx.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -30,7 +30,7 @@ template<class From,class To>struct is_implicit_convertible
|
||||||
#ifdef CGAL_USE_GMPXX
|
#ifdef CGAL_USE_GMPXX
|
||||||
// Work around a gmpxx misfeature
|
// Work around a gmpxx misfeature
|
||||||
template<class T>struct is_implicit_convertible<__gmp_expr<mpq_t,T>,mpz_class>
|
template<class T>struct is_implicit_convertible<__gmp_expr<mpq_t,T>,mpz_class>
|
||||||
: boost::false_type {};
|
: std::false_type {};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// TODO: add is_explicit_convertible (using boost::is_constructible?)
|
// TODO: add is_explicit_convertible (using boost::is_constructible?)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue