]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/geometry/include/boost/geometry/strategies/intersection_result.hpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / geometry / include / boost / geometry / strategies / intersection_result.hpp
CommitLineData
7c673cae
FG
1// Boost.Geometry (aka GGL, Generic Geometry Library)
2
3// Copyright (c) 2007-2015 Barend Gehrels, Amsterdam, the Netherlands.
4
5// This file was modified by Oracle on 2015, 2016.
6// Modifications copyright (c) 2015-2016 Oracle and/or its affiliates.
7// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
8
9// Use, modification and distribution is subject to the Boost Software License,
10// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
11// http://www.boost.org/LICENSE_1_0.txt)
12
13#ifndef BOOST_GEOMETRY_STRATEGIES_INTERSECTION_RESULT_HPP
14#define BOOST_GEOMETRY_STRATEGIES_INTERSECTION_RESULT_HPP
15
16#if defined(HAVE_MATRIX_AS_STRING)
17#include <string>
18#endif
19
20#include <cstddef>
21
22
23
24namespace boost { namespace geometry
25{
26
27template <typename SegmentRatio>
28struct fraction_type
29{
30 SegmentRatio robust_ra; // TODO this can be renamed now to "ra"
31 SegmentRatio robust_rb;
32
33 bool initialized;
34 inline fraction_type()
35 : initialized(false)
36 {}
37
38 template <typename Info>
39 inline void assign(Info const& info)
40 {
41 initialized = true;
42 robust_ra = info.robust_ra;
43 robust_rb = info.robust_rb;
44 }
45
46 inline void assign(SegmentRatio const& a, SegmentRatio const& b)
47 {
48 initialized = true;
49 robust_ra = a;
50 robust_rb = b;
51 }
52
53};
54
55//
56/*!
57\brief return-type for segment-intersection
58\note Set in intersection_points.hpp, from segment_intersection_info
59*/
60template <typename Point, typename SegmentRatio>
61struct segment_intersection_points
62{
63 std::size_t count; // The number of intersection points
64
65 // TODO: combine intersections and fractions in one struct
66 Point intersections[2];
67 fraction_type<SegmentRatio> fractions[2];
68 typedef Point point_type;
69
70 segment_intersection_points()
71 : count(0)
72 {}
73};
74
75}} // namespace boost::geometry
76
77
78#endif // BOOST_GEOMETRY_STRATEGIES_INTERSECTION_RESULT_HPP