/
usr
/
include
/
boost
/
geometry
/
strategies
/
geographic
/
/usr/include/boost/geometry/strategies/geographic
mkdir
upload
Name
Size
Mode
Actions
area.hpp
6933
0644
edit
dl
rm
azimuth.hpp
4021
0644
edit
dl
rm
buffer_point_circle.hpp
4189
0644
edit
dl
rm
densify.hpp
4004
0644
edit
dl
rm
disjoint_segment_box.hpp
4043
0644
edit
dl
rm
distance.hpp
6294
0644
edit
dl
rm
distance_andoyer.hpp
3829
0644
edit
dl
rm
distance_cross_track.hpp
34524
0644
edit
dl
rm
distance_cross_track_box_box.hpp
7147
0644
edit
dl
rm
distance_cross_track_point_box.hpp
6780
0644
edit
dl
rm
distance_karney.hpp
2985
0644
edit
dl
rm
distance_segment_box.hpp
10100
0644
edit
dl
rm
distance_thomas.hpp
3354
0644
edit
dl
rm
distance_vincenty.hpp
3547
0644
edit
dl
rm
envelope.hpp
3348
0644
edit
dl
rm
envelope_segment.hpp
3795
0644
edit
dl
rm
expand_segment.hpp
2915
0644
edit
dl
rm
index.hpp
7450
0644
edit
dl
rm
intersection.hpp
37874
0644
edit
dl
rm
intersection_elliptic.hpp
6899
0644
edit
dl
rm
io.hpp
2285
0644
edit
dl
rm
line_interpolate.hpp
3710
0644
edit
dl
rm
mapping_ssf.hpp
5625
0644
edit
dl
rm
parameters.hpp
5467
0644
edit
dl
rm
point_in_poly_winding.hpp
2122
0644
edit
dl
rm
point_order.hpp
3107
0644
edit
dl
rm
side.hpp
4609
0644
edit
dl
rm
side_andoyer.hpp
1501
0644
edit
dl
rm
side_thomas.hpp
1493
0644
edit
dl
rm
side_vincenty.hpp
1509
0644
edit
dl
rm
Edit:
/usr/include/boost/geometry/strategies/geographic/point_order.hpp
(3107B)
// Boost.Geometry // Copyright (c) 2019, Oracle and/or its affiliates. // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle // Licensed under the Boost Software License version 1.0. // http://www.boost.org/users/license.html #ifndef BOOST_GEOMETRY_STRATEGIES_GEOGRAPHIC_POINT_ORDER_HPP #define BOOST_GEOMETRY_STRATEGIES_GEOGRAPHIC_POINT_ORDER_HPP #include <boost/geometry/core/tags.hpp> #include <boost/geometry/srs/spheroid.hpp> #include <boost/geometry/strategies/geographic/parameters.hpp> #include <boost/geometry/strategies/point_order.hpp> #include <boost/geometry/strategies/spherical/point_in_point.hpp> #include <boost/geometry/util/math.hpp> #include <boost/geometry/util/select_calculation_type.hpp> namespace boost { namespace geometry { namespace strategy { namespace point_order { template < typename FormulaPolicy = strategy::andoyer, typename Spheroid = srs::spheroid<double>, typename CalculationType = void > struct geographic { typedef azimuth_tag version_tag; template <typename Geometry> struct result_type { typedef typename geometry::select_calculation_type_alt < CalculationType, Geometry >::type type; }; geographic() {} explicit geographic(Spheroid const& spheroid) : m_spheroid(spheroid) {} template <typename Point> inline bool apply(Point const& p1, Point const& p2, typename result_type<Point>::type & azi, typename result_type<Point>::type & razi) const { typedef typename result_type<Point>::type calc_t; if (equals_point_point(p1, p2)) { return false; } formula::result_inverse<calc_t> res = FormulaPolicy::template inverse < calc_t, false, true, true, false, false >::apply(geometry::get_as_radian<0>(p1), geometry::get_as_radian<1>(p1), geometry::get_as_radian<0>(p2), geometry::get_as_radian<1>(p2), m_spheroid); azi = res.azimuth; razi = res.reverse_azimuth; return true; } template <typename Point> inline typename result_type<Point>::type apply(Point const& /*p0*/, Point const& /*p1*/, Point const& /*p2*/, typename result_type<Point>::type const& azi1, typename result_type<Point>::type const& azi2) const { // TODO: support poles return math::longitude_distance_signed<radian>(azi1, azi2); } private: template <typename Point> static bool equals_point_point(Point const& p0, Point const& p1) { return strategy::within::spherical_point_point::apply(p0, p1); } Spheroid m_spheroid; }; namespace services { template <> struct default_strategy<geographic_tag> { typedef geographic<> type; }; } // namespace services }} // namespace strategy::point_order }} // namespace boost::geometry #endif // BOOST_GEOMETRY_STRATEGIES_GEOGRAPHIC_POINT_ORDER_HPP
Save
cmd:
run