Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:36:51

0001 // Boost.Geometry (aka GGL, Generic Geometry Library)
0002 
0003 // Copyright (c) 2007-2015 Barend Gehrels, Amsterdam, the Netherlands.
0004 // Copyright (c) 2008-2015 Bruno Lalande, Paris, France.
0005 // Copyright (c) 2009-2015 Mateusz Loskot, London, UK.
0006 
0007 // This file was modified by Oracle on 2015-2020.
0008 // Modifications copyright (c) 2015-2020, Oracle and/or its affiliates.
0009 
0010 // Contributed and/or modified by Vissarion Fysikopoulos, on behalf of Oracle
0011 // Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
0012 // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
0013 
0014 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
0015 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
0016 
0017 // Distributed under the Boost Software License, Version 1.0.
0018 // (See accompanying file LICENSE_1_0.txt or copy at
0019 // http://www.boost.org/LICENSE_1_0.txt)
0020 
0021 #ifndef BOOST_GEOMETRY_STRATEGY_GEOGRAPHIC_ENVELOPE_HPP
0022 #define BOOST_GEOMETRY_STRATEGY_GEOGRAPHIC_ENVELOPE_HPP
0023 
0024 #include <boost/geometry/srs/spheroid.hpp>
0025 
0026 #include <boost/geometry/strategy/geographic/envelope_segment.hpp>
0027 #include <boost/geometry/strategy/geographic/expand_segment.hpp>
0028 #include <boost/geometry/strategies/geographic/parameters.hpp>
0029 #include <boost/geometry/strategy/spherical/envelope.hpp>
0030 
0031 namespace boost { namespace geometry
0032 {
0033 
0034 namespace strategy { namespace envelope
0035 {
0036 
0037 
0038 template
0039 <
0040     typename FormulaPolicy = strategy::andoyer,
0041     typename Spheroid = geometry::srs::spheroid<double>,
0042     typename CalculationType = void
0043 >
0044 class geographic
0045     : public spherical<CalculationType>
0046 {
0047 public:
0048     typedef geographic_tag cs_tag;
0049 
0050     typedef Spheroid model_type;
0051 
0052     inline geographic()
0053         : m_spheroid()
0054     {}
0055 
0056     explicit inline geographic(Spheroid const& spheroid)
0057         : m_spheroid(spheroid)
0058     {}
0059 
0060     Spheroid model() const
0061     {
0062         return m_spheroid;
0063     }
0064 
0065 private:
0066     Spheroid m_spheroid;
0067 };
0068 
0069 #ifndef DOXYGEN_NO_STRATEGY_SPECIALIZATIONS
0070 
0071 namespace services
0072 {
0073 
0074 template <typename Tag, typename CalculationType>
0075 struct default_strategy<Tag, geographic_tag, CalculationType>
0076 {
0077     typedef strategy::envelope::geographic
0078         <
0079             strategy::andoyer,
0080             geometry::srs::spheroid<double>,
0081             CalculationType
0082         > type;
0083 };
0084 
0085 }
0086 
0087 #endif // DOXYGEN_NO_STRATEGY_SPECIALIZATIONS
0088 
0089 
0090 }} // namespace strategy::envelope
0091 
0092 }} //namepsace boost::geometry
0093 
0094 #endif // BOOST_GEOMETRY_STRATEGY_GEOGRAPHIC_ENVELOPE_HPP