Project revived from Feb2017
[EroSomnia.git] / deps / boost_1_63_0 / boost / geometry / algorithms / detail / overlay / enrichment_info.hpp
blob2643415343daa6ad574e9657ad69d1907e3f96ff
1 // Boost.Geometry (aka GGL, Generic Geometry Library)
3 // Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
5 // Use, modification and distribution is subject to the Boost Software License,
6 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
7 // http://www.boost.org/LICENSE_1_0.txt)
9 #ifndef BOOST_GEOMETRY_ALGORITHMS_DETAIL_OVERLAY_ENRICHMENT_INFO_HPP
10 #define BOOST_GEOMETRY_ALGORITHMS_DETAIL_OVERLAY_ENRICHMENT_INFO_HPP
12 #include <boost/geometry/algorithms/detail/signed_size_type.hpp>
15 namespace boost { namespace geometry
19 #ifndef DOXYGEN_NO_DETAIL
20 namespace detail { namespace overlay
24 /*!
25 \brief Keeps info to enrich intersection info (per source)
26 \details Class to keep information necessary for traversal phase (a phase
27 of the overlay process). The information is gathered during the
28 enrichment phase
30 template<typename Point>
31 struct enrichment_info
33 inline enrichment_info()
34 : travels_to_vertex_index(-1)
35 , travels_to_ip_index(-1)
36 , next_ip_index(-1)
37 , startable(true)
38 , count_left(0)
39 , count_right(0)
40 , zone(-1)
41 , only_turn_on_ring(false)
44 // vertex to which is free travel after this IP,
45 // so from "segment_index+1" to "travels_to_vertex_index", without IP-s,
46 // can be -1
47 signed_size_type travels_to_vertex_index;
49 // same but now IP index, so "next IP index" but not on THIS segment
50 signed_size_type travels_to_ip_index;
52 // index of next IP on this segment, -1 if there is no one
53 signed_size_type next_ip_index;
55 bool startable; // Can be used to start in traverse
57 // Counts if polygons left/right of this operation
58 std::size_t count_left;
59 std::size_t count_right;
60 signed_size_type zone; // open zone, in cluster
61 bool only_turn_on_ring; // True if it is the only turn on a ring (for clusters)
65 }} // namespace detail::overlay
66 #endif //DOXYGEN_NO_DETAIL
70 }} // namespace boost::geometry
73 #endif // BOOST_GEOMETRY_ALGORITHMS_DETAIL_OVERLAY_ENRICHMENT_INFO_HPP