From b1e99b3c7133fb2f5cf23f980689cf974e6fb806 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20M=C3=B6ller?= Date: Fri, 23 Oct 2015 12:30:20 +0200 Subject: [PATCH] Add is_ray_intersection_geomtraits This meta-function can be used to make a somewhat accurate guess if the argument is a model of the yet to be written AABBRayIntersectionGeomTraits. --- .../Is_ray_intersection_geomtraits.h | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 AABB_tree/include/CGAL/internal/AABB_tree/Is_ray_intersection_geomtraits.h diff --git a/AABB_tree/include/CGAL/internal/AABB_tree/Is_ray_intersection_geomtraits.h b/AABB_tree/include/CGAL/internal/AABB_tree/Is_ray_intersection_geomtraits.h new file mode 100644 index 00000000000..f2f6a5d05ea --- /dev/null +++ b/AABB_tree/include/CGAL/internal/AABB_tree/Is_ray_intersection_geomtraits.h @@ -0,0 +1,52 @@ +// Copyright (c) 2015 INRIA Sophia-Antipolis (France). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// You can redistribute it and/or modify it under the terms of the GNU +// General Public License as published by the Free Software Foundation, +// either version 3 of the License, or (at your option) any later version. +// +// Licensees holding a valid commercial license may use this file in +// accordance with the commercial license agreement provided with the software. +// +// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +// +// $URL$ +// $Id$ +// +// +// Author(s) : Philipp Moeller +// + +#ifndef CGAL_IS_RAY_INTERSECTION_GEOMTRAITS_H +#define CGAL_IS_RAY_INTERSECTION_GEOMTRAITS_H + +#include +#include + +namespace CGAL { +namespace internal { +namespace AABB_tree { + +BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(Has_ray_3,Ray_3,false) +BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(Has_construct_source_3,Construct_source_3,false) +BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(Has_vector_3,Construct_vector_3,false) +BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(Has_construct_cartesian_const_iterator_3,Construct_cartesian_const_iterator_3,false) +BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(Has_cartesian_const_iterator_3,Cartesian_const_iterator_3,false) + +template +struct Is_ray_intersection_geomtraits +: boost::mpl::and_< Has_ray_3, + Has_construct_source_3, + Has_vector_3, + Has_construct_cartesian_const_iterator_3, + Has_cartesian_const_iterator_3 >::type +{}; + + +} // AABB_tree +} // internal +} // CGAL + +#endif /* CGAL_IS_RAY_INTERSECTION_GEOMTRAITS_H */