/usr/include/boost/geometry/algorithms/detail/buffer
NameSizeModeActions
buffered_piece_collection.hpp438810644editdlrm
buffered_ring.hpp65740644editdlrm
buffer_box.hpp20050644editdlrm
buffer_inserter.hpp357750644editdlrm
buffer_policies.hpp82860644editdlrm
get_piece_turns.hpp121560644editdlrm
line_line_intersection.hpp17690644editdlrm
piece_border.hpp183480644editdlrm
turn_in_original_visitor.hpp85100644editdlrm
turn_in_piece_visitor.hpp69630644editdlrm
Edit: /usr/include/boost/geometry/algorithms/detail/buffer/line_line_intersection.hpp (1769B)
// Boost.Geometry (aka GGL, Generic Geometry Library) // Copyright (c) 2012-2020 Barend Gehrels, Amsterdam, the Netherlands. // Use, modification and distribution is subject to the Boost Software License, // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) #ifndef BOOST_GEOMETRY_ALGORITHMS_DETAIL_BUFFER_LINE_LINE_INTERSECTION_HPP #define BOOST_GEOMETRY_ALGORITHMS_DETAIL_BUFFER_LINE_LINE_INTERSECTION_HPP #include #include #include #include namespace boost { namespace geometry { #ifndef DOXYGEN_NO_DETAIL namespace detail { namespace buffer { // TODO: it might once be changed this to proper strategy struct line_line_intersection { template static inline Point apply(Point const& pi, Point const& pj, Point const& qi, Point const& qj) { typedef typename coordinate_type::type ct; typedef model::infinite_line line_type; line_type const p = detail::make::make_infinite_line(pi, pj); line_type const q = detail::make::make_infinite_line(qi, qj); // The input lines are not parallel, they intersect, because // their join type is checked before. Point ip; bool const intersecting = arithmetic::intersection_point(p, q, ip); BOOST_GEOMETRY_ASSERT(intersecting); boost::ignore_unused(intersecting); return ip; } }; }} // namespace detail::buffer #endif // DOXYGEN_NO_DETAIL }} // namespace boost::geometry #endif // BOOST_GEOMETRY_ALGORITHMS_DETAIL_BUFFER_LINE_LINE_INTERSECTION_HPP