Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:35:28

0001 // Boost.Geometry
0002 
0003 // Copyright (c) 2018-2019 Barend Gehrels, Amsterdam, the Netherlands.
0004 
0005 // Use, modification and distribution is subject to the Boost Software License,
0006 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
0007 // http://www.boost.org/LICENSE_1_0.txt)
0008 
0009 #ifndef BOOST_GEOMETRY_GEOMETRIES_INFINITE_LINE_HPP
0010 #define BOOST_GEOMETRY_GEOMETRIES_INFINITE_LINE_HPP
0011 
0012 
0013 namespace boost { namespace geometry
0014 {
0015 
0016 namespace model
0017 {
0018 
0019 //--------------------------------------------------------------------------
0020 // Structure containing an infinite line.
0021 // It is written using "General Form", a*x + b*y + c == 0
0022 // Might be conceptized later. Therefore operations are implemented outside
0023 // the structure itself.
0024 template <typename Type = double>
0025 struct infinite_line
0026 {
0027     using type = Type;
0028 
0029     infinite_line()
0030         : a(0)
0031         , b(0)
0032         , c(0)
0033         , normalized(false)
0034     {}
0035 
0036     // Horizontal: a == 0, for example y-3=0, y==3
0037     // Vertical: b == 0, for example x-2=0, x==2
0038     // Through origin: c == 0
0039     Type a;
0040     Type b;
0041     Type c;
0042     bool normalized;
0043 };
0044 
0045 
0046 } // namespace model
0047 
0048 
0049 }} // namespace boost::geometry
0050 
0051 
0052 #endif // BOOST_GEOMETRY_GEOMETRIES_INFINITE_LINE_HPP