// Copyright (c) 2018 INRIA Sophia-Antipolis (France). // All rights reserved. // // This file is part of CGAL (www.cgal.org) // // $URL: https://github.com/CGAL/cgal/blob/v5.3/Intersections_3/include/CGAL/Intersections_3/Point_3_Tetrahedron_3.h $ // $Id: Point_3_Tetrahedron_3.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // // Author(s) : Maxime Gimeno #ifndef CGAL_INTERSECTIONS_3_POINT_3_TETRAHEDRON_3_H #define CGAL_INTERSECTIONS_3_POINT_3_TETRAHEDRON_3_H #include #include #include namespace CGAL { namespace Intersections { namespace internal { template inline bool do_intersect(const typename K::Point_3 &pt, const typename K::Tetrahedron_3 &tetrahedron, const K&) { return ! tetrahedron.has_on_unbounded_side(pt); } template inline bool do_intersect(const typename K::Tetrahedron_3 &tetrahedron, const typename K::Point_3 &pt, const K&) { return ! tetrahedron.has_on_unbounded_side(pt); } template typename CGAL::Intersection_traits ::result_type intersection(const typename K::Point_3 &pt, const typename K::Tetrahedron_3 &tetrahedron, const K& k) { if (do_intersect(pt,tetrahedron, k)) return intersection_return(pt); return intersection_return(); } template typename CGAL::Intersection_traits ::result_type intersection(const typename K::Tetrahedron_3 &tetrahedron, const typename K::Point_3 &pt, const K& k) { return internal::intersection(pt, tetrahedron, k); } } // namespace internal } // namespace Intersections CGAL_INTERSECTION_FUNCTION(Point_3, Tetrahedron_3, 3) CGAL_DO_INTERSECT_FUNCTION(Point_3, Tetrahedron_3, 3) } //namespace CGAL #endif // CGAL_INTERSECTIONS_3_POINT_3_TETRAHEDRON_3_H