/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/num_distinct_consecutive_points.hpp (2449B)
// Boost.Geometry (aka GGL, Generic Geometry Library) // Copyright (c) 2014, Oracle and/or its affiliates. // Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle // Licensed under the Boost Software License version 1.0. // http://www.boost.org/users/license.html #ifndef BOOST_GEOMETRY_ALGORITHMS_DETAIL_NUM_DISTINCT_CONSECUTIVE_POINTS_HPP #define BOOST_GEOMETRY_ALGORITHMS_DETAIL_NUM_DISTINCT_CONSECUTIVE_POINTS_HPP #include #include #include namespace boost { namespace geometry { #ifndef DOXYGEN_NO_DETAIL namespace detail { // returns the number of distinct values in the range; // return values are 0u through MaximumNumber, where MaximumNumber // corresponds to MaximumNumber or more distinct values // // FUTURE: take into account topologically closed ranges; // add appropriate template parameter(s) to control whether // the closing point for topologically closed ranges is to be // accounted for separately or not template < typename Range, std::size_t MaximumNumber, bool AllowDuplicates /* true */, typename NotEqualTo > struct num_distinct_consecutive_points { static inline std::size_t apply(Range const& range) { typedef typename boost::range_iterator::type iterator; std::size_t const size = boost::size(range); if ( size < 2u ) { return (size < MaximumNumber) ? size : MaximumNumber; } iterator current = boost::begin(range); std::size_t counter(0); do { ++counter; iterator next = std::find_if(current, boost::end(range), NotEqualTo(*current)); current = next; } while ( current != boost::end(range) && counter <= MaximumNumber ); return counter; } }; template struct num_distinct_consecutive_points { static inline std::size_t apply(Range const& range) { std::size_t const size = boost::size(range); return (size < MaximumNumber) ? size : MaximumNumber; } }; } // namespace detail #endif // DOXYGEN_NO_DETAIL }} // namespace boost::geometry #endif // BOOST_GEOMETRY_ALGORITHMS_DETAIL_NUM_DISTINCT_CONSECUTIVE_POINTS_HPP