/usr/include/boost/geometry/algorithms/detail
NameSizeModeActions
buffer/-0755rm
centroid/-0755rm
closest_feature/-0755rm
comparable_distance/-0755rm
covered_by/-0755rm
disjoint/-0755rm
distance/-0755rm
envelope/-0755rm
equals/-0755rm
expand/-0755rm
intersection/-0755rm
intersects/-0755rm
is_simple/-0755rm
is_valid/-0755rm
make/-0755rm
overlaps/-0755rm
overlay/-0755rm
relate/-0755rm
relation/-0755rm
sections/-0755rm
touches/-0755rm
turns/-0755rm
within/-0755rm
assign_box_corners.hpp33380644editdlrm
assign_indexed_point.hpp26560644editdlrm
assign_values.hpp89570644editdlrm
as_range.hpp26880644editdlrm
azimuth.hpp48020644editdlrm
calculate_null.hpp11440644editdlrm
calculate_point_order.hpp111450644editdlrm
calculate_sum.hpp20470644editdlrm
check_iterator_range.hpp20120644editdlrm
convert_indexed_to_indexed.hpp22960644editdlrm
convert_point_to_point.hpp22590644editdlrm
counting.hpp27460644editdlrm
course.hpp11800644editdlrm
direction_code.hpp92050644editdlrm
expand_by_epsilon.hpp38800644editdlrm
extreme_points.hpp197670644editdlrm
for_each_range.hpp49620644editdlrm
get_max_size.hpp20540644editdlrm
has_self_intersections.hpp53890644editdlrm
interior_iterator.hpp17680644editdlrm
max_interval_gap.hpp84300644editdlrm
multi_modify.hpp18830644editdlrm
multi_modify_with_predicate.hpp14420644editdlrm
multi_sum.hpp14900644editdlrm
normalize.hpp12960644editdlrm
not.hpp20320644editdlrm
num_distinct_consecutive_points.hpp24490644editdlrm
partition.hpp298240644editdlrm
point_is_spike_or_equal.hpp54550644editdlrm
point_on_border.hpp52540644editdlrm
recalculate.hpp69050644editdlrm
ring_identifier.hpp22850644editdlrm
signed_size_type.hpp7700644editdlrm
single_geometry.hpp28400644editdlrm
sub_range.hpp40970644editdlrm
sweep.hpp20860644editdlrm
throw_on_empty_input.hpp20730644editdlrm
tupled_output.hpp192350644editdlrm
Edit: /usr/include/boost/geometry/algorithms/detail/point_on_border.hpp (5254B)
// Boost.Geometry (aka GGL, Generic Geometry Library) // Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands. // Copyright (c) 2008-2012 Bruno Lalande, Paris, France. // Copyright (c) 2009-2012 Mateusz Loskot, London, UK. // This file was modified by Oracle on 2017, 2018. // Modifications copyright (c) 2017-2018 Oracle and/or its affiliates. // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library // (geolib/GGL), copyright (c) 1995-2010 Geodan, 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_POINT_ON_BORDER_HPP #define BOOST_GEOMETRY_ALGORITHMS_DETAIL_POINT_ON_BORDER_HPP #include #include #include #include #include #include #include #include #include #include #include namespace boost { namespace geometry { #ifndef DOXYGEN_NO_DETAIL namespace detail { namespace point_on_border { struct get_point { template static inline bool apply(Point& destination, Point const& source) { destination = source; return true; } }; struct point_on_range { // Version with iterator template static inline bool apply(Point& point, Iterator begin, Iterator end) { if (begin == end) { return false; } geometry::detail::conversion::convert_point_to_point(*begin, point); return true; } // Version with range template static inline bool apply(Point& point, Range const& range) { return apply(point, boost::begin(range), boost::end(range)); } }; struct point_on_polygon { template static inline bool apply(Point& point, Polygon const& polygon) { return point_on_range::apply(point, exterior_ring(polygon)); } }; struct point_on_box { template static inline bool apply(Point& point, Box const& box) { detail::assign::assign_box_2d_corner(box, point); return true; } }; template struct point_on_multi { template static inline bool apply(Point& point, MultiGeometry const& multi) { // Take a point on the first multi-geometry // (i.e. the first that is not empty) for (typename boost::range_iterator < MultiGeometry const >::type it = boost::begin(multi); it != boost::end(multi); ++it) { if (Policy::apply(point, *it)) { return true; } } return false; } }; }} // namespace detail::point_on_border #endif // DOXYGEN_NO_DETAIL #ifndef DOXYGEN_NO_DISPATCH namespace dispatch { template struct point_on_border {}; template <> struct point_on_border : detail::point_on_border::get_point {}; template <> struct point_on_border : detail::point_on_border::point_on_range {}; template <> struct point_on_border : detail::point_on_border::point_on_range {}; template <> struct point_on_border : detail::point_on_border::point_on_polygon {}; template <> struct point_on_border : detail::point_on_border::point_on_box {}; template <> struct point_on_border : detail::point_on_border::point_on_multi < detail::point_on_border::point_on_polygon > {}; template <> struct point_on_border : detail::point_on_border::point_on_multi < detail::point_on_border::point_on_range > {}; } // namespace dispatch #endif // DOXYGEN_NO_DISPATCH /*! \brief Take point on a border \ingroup overlay \tparam Geometry geometry type. This also defines the type of the output point \param point to assign \param geometry geometry to take point from \return TRUE if successful, else false. It is only false if polygon/line have no points \note for a polygon, it is always a point on the exterior ring */ template inline bool point_on_border(Point& point, Geometry const& geometry) { concepts::check(); concepts::check(); return dispatch::point_on_border < typename tag::type >::apply(point, geometry); } }} // namespace boost::geometry #endif // BOOST_GEOMETRY_ALGORITHMS_DETAIL_POINT_ON_BORDER_HPP