Coverage Report

Created: 2026-02-26 07:13

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/geos/include/geos/index/strtree/TemplateSTRtree.h
Line
Count
Source
1
/**********************************************************************
2
 *
3
 * GEOS - Geometry Engine Open Source
4
 * http://geos.osgeo.org
5
 *
6
 * Copyright (C) 2020-2021 Daniel Baston
7
 *
8
 * This is free software; you can redistribute and/or modify it under
9
 * the terms of the GNU Lesser General Public Licence as published
10
 * by the Free Software Foundation.
11
 * See the COPYING file for more information.
12
 *
13
 **********************************************************************/
14
15
#pragma once
16
17
#include <geos/geom/Geometry.h>
18
#include <geos/index/SpatialIndex.h> // for inheritance
19
#include <geos/index/chain/MonotoneChain.h>
20
#include <geos/index/ItemVisitor.h>
21
#include <geos/util.h>
22
23
#include <geos/index/strtree/TemplateSTRNode.h>
24
#include <geos/index/strtree/TemplateSTRNodePair.h>
25
#include <geos/index/strtree/TemplateSTRtreeDistance.h>
26
#include <geos/index/strtree/Interval.h>
27
28
#include <vector>
29
#include <queue>
30
#include <mutex>
31
32
namespace geos {
33
namespace index {
34
namespace strtree {
35
36
/**
37
 * \brief
38
 * A query-only R-tree created using the Sort-Tile-Recursive (STR) algorithm.
39
 * For one- or two-dimensional spatial data.
40
 *
41
 * The STR packed R-tree is simple to implement and maximizes space
42
 * utilization; that is, as many leaves as possible are filled to capacity.
43
 * Overlap between nodes is far less than in a basic R-tree. However, once the
44
 * tree has been built (explicitly or on the first call to `query`), items may
45
 * not be added or removed.
46
 *
47
 * A user will instantiate `TemplateSTRtree` instead of `TemplateSTRtreeImpl`;
48
 * this structure is used so that `TemplateSTRtree` can implement the
49
 * requirements of the `SpatialIndex` interface, which is only possible when
50
 * `ItemType` is a pointer.
51
 *
52
 * Described in: P. Rigaux, Michel Scholl and Agnes Voisard. Spatial
53
 * Databases With Application To GIS. Morgan Kaufmann, San Francisco, 2002.
54
 *
55
 */
56
template<typename ItemType, typename BoundsTraits>
57
class TemplateSTRtreeImpl {
58
public:
59
    using Node = TemplateSTRNode<ItemType, BoundsTraits>;
60
    using NodeList = std::vector<Node>;
61
    using NodeListIterator = typename NodeList::iterator;
62
    using BoundsType = typename BoundsTraits::BoundsType;
63
64
    class Iterator {
65
    public:
66
        using iterator_category = std::forward_iterator_tag;
67
        using value_type = ItemType;
68
        using difference_type = typename NodeList::const_iterator::difference_type;
69
        using pointer = ItemType*;
70
        using reference = ItemType&;
71
72
        Iterator(typename NodeList::const_iterator&& iter,
73
10.8k
                 typename NodeList::const_iterator&& end) : m_iter(iter), m_end(end) {
74
10.8k
            skipDeleted();
75
10.8k
        }
76
77
4.85M
        const ItemType& operator*() const {
78
4.85M
            return m_iter->getItem();
79
4.85M
        }
80
81
9.71M
        Iterator& operator++() {
82
9.71M
            m_iter++;
83
9.71M
            skipDeleted();
84
9.71M
            return *this;
85
9.71M
        }
86
87
        friend bool operator==(const Iterator& a, const Iterator& b) {
88
            return a.m_iter == b.m_iter;
89
        }
90
91
9.72M
        friend bool operator!=(const Iterator& a, const Iterator& b) {
92
9.72M
            return a.m_iter != b.m_iter;
93
9.72M
        }
94
95
    private:
96
9.72M
        void skipDeleted() {
97
9.72M
            while(m_iter != m_end && m_iter->isDeleted()) {
98
0
                m_iter++;
99
0
            }
100
9.72M
        }
101
102
        typename NodeList::const_iterator m_iter;
103
        typename NodeList::const_iterator m_end;
104
    };
105
106
    class Items {
107
    public:
108
10.8k
        explicit Items(TemplateSTRtreeImpl& tree) : m_tree(tree) {}
109
110
5.40k
        Iterator begin() {
111
5.40k
            return Iterator(m_tree.nodes.cbegin(),
112
5.40k
                            std::next(m_tree.nodes.cbegin(), static_cast<long>(m_tree.numItems)));
113
5.40k
        }
114
115
5.40k
        Iterator end() {
116
5.40k
            return Iterator(std::next(m_tree.nodes.cbegin(), static_cast<long>(m_tree.numItems)),
117
5.40k
                            std::next(m_tree.nodes.cbegin(), static_cast<long>(m_tree.numItems)));
118
5.40k
        }
119
    private:
120
        TemplateSTRtreeImpl& m_tree;
121
    };
122
123
    /// \defgroup construct Constructors
124
    /// @{
125
126
    /**
127
     * Constructs a tree with the given maximum number of child nodes that
128
     * a node may have.
129
     */
130
    explicit TemplateSTRtreeImpl(size_t p_nodeCapacity = 10) :
131
699k
        root(nullptr),
132
699k
        nodeCapacity(p_nodeCapacity),
133
699k
        numItems(0)
134
699k
    {
135
699k
        validateConstruction();
136
699k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<void*, geos::index::strtree::EnvelopeTraits>::TemplateSTRtreeImpl(unsigned long)
geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits>::TemplateSTRtreeImpl(unsigned long)
Line
Count
Source
131
23.0k
        root(nullptr),
132
23.0k
        nodeCapacity(p_nodeCapacity),
133
23.0k
        numItems(0)
134
23.0k
    {
135
23.0k
        validateConstruction();
136
23.0k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<unsigned long, geos::index::strtree::EnvelopeTraits>::TemplateSTRtreeImpl(unsigned long)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::TemplateSTRtreeImpl(unsigned long)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::TemplateSTRtreeImpl(unsigned long)
geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::TemplateSTRtreeImpl(unsigned long)
Line
Count
Source
131
456k
        root(nullptr),
132
456k
        nodeCapacity(p_nodeCapacity),
133
456k
        numItems(0)
134
456k
    {
135
456k
        validateConstruction();
136
456k
    }
geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::TemplateSTRtreeImpl(unsigned long)
Line
Count
Source
131
220k
        root(nullptr),
132
220k
        nodeCapacity(p_nodeCapacity),
133
220k
        numItems(0)
134
220k
    {
135
220k
        validateConstruction();
136
220k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::TemplateSTRtreeImpl(unsigned long)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::TemplateSTRtreeImpl(unsigned long)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::TemplateSTRtreeImpl(unsigned long)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::TemplateSTRtreeImpl(unsigned long)
137
138
    /**
139
     * Constructs a tree with the given maximum number of child nodes that
140
     * a node may have, with the expected total number of items in the tree used
141
     * to pre-allocate storage.
142
     */
143
    TemplateSTRtreeImpl(size_t p_nodeCapacity, size_t itemCapacity) :
144
28.4k
        root(nullptr),
145
28.4k
        nodeCapacity(p_nodeCapacity),
146
28.4k
        numItems(0)
147
28.4k
    {
148
28.4k
        auto finalSize = treeSize(itemCapacity);
149
28.4k
        nodes.reserve(finalSize);
150
28.4k
        validateConstruction();
151
28.4k
    }
geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits>::TemplateSTRtreeImpl(unsigned long, unsigned long)
Line
Count
Source
144
23.0k
        root(nullptr),
145
23.0k
        nodeCapacity(p_nodeCapacity),
146
23.0k
        numItems(0)
147
23.0k
    {
148
23.0k
        auto finalSize = treeSize(itemCapacity);
149
23.0k
        nodes.reserve(finalSize);
150
23.0k
        validateConstruction();
151
23.0k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::TemplateSTRtreeImpl(unsigned long, unsigned long)
geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::TemplateSTRtreeImpl(unsigned long, unsigned long)
Line
Count
Source
144
5.40k
        root(nullptr),
145
5.40k
        nodeCapacity(p_nodeCapacity),
146
5.40k
        numItems(0)
147
5.40k
    {
148
5.40k
        auto finalSize = treeSize(itemCapacity);
149
5.40k
        nodes.reserve(finalSize);
150
5.40k
        validateConstruction();
151
5.40k
    }
152
153
    /**
154
     * Copy constructor, needed because mutex is not copyable
155
     */
156
    TemplateSTRtreeImpl(const TemplateSTRtreeImpl& other) :
157
23.0k
        root(other.root),
158
23.0k
        nodeCapacity(other.nodeCapacity),
159
23.0k
        numItems(other.numItems) {
160
23.0k
        nodes = other.nodes;
161
23.0k
    }
162
163
    TemplateSTRtreeImpl& operator=(TemplateSTRtreeImpl other)
164
23.0k
    {
165
23.0k
        root = other.root;
166
23.0k
        nodeCapacity = other.nodeCapacity;
167
23.0k
        numItems = other.numItems;
168
23.0k
        nodes = other.nodes;
169
23.0k
        return *this;
170
23.0k
    }
171
172
    /// @}
173
    /// \defgroup insert Insertion
174
    /// @{
175
176
    /** Move the given item into the tree */
177
4.85M
    void insert(ItemType&& item) {
178
4.85M
        insert(BoundsTraits::fromItem(item), std::forward<ItemType>(item));
179
4.85M
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::insert(geos::coverage::TPVWSimplifier::Edge const*&&)
geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::insert(geos::geom::Geometry const*&&)
Line
Count
Source
177
4.85M
    void insert(ItemType&& item) {
178
4.85M
        insert(BoundsTraits::fromItem(item), std::forward<ItemType>(item));
179
4.85M
    }
180
181
    /** Insert a copy of the given item into the tree */
182
0
    void insert(const ItemType& item) {
183
0
        insert(BoundsTraits::fromItem(item), item);
184
0
    }
185
186
    /** Move the given item into the tree */
187
44.5M
    void insert(const BoundsType& itemEnv, ItemType&& item) {
188
44.5M
        if (!BoundsTraits::isNull(itemEnv)) {
189
41.8M
            createLeafNode(std::forward<ItemType>(item), itemEnv);
190
41.8M
        }
191
44.5M
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<void*, geos::index::strtree::EnvelopeTraits>::insert(geos::geom::Envelope const&, void*&&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::insert(geos::geom::Envelope const&, geos::operation::distance::FacetSequence const*&&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::insert(geos::geom::Envelope const&, geos::algorithm::locate::IndexedPointInAreaLocator*&&)
geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::insert(geos::geom::Envelope const&, geos::index::chain::MonotoneChain const*&&)
Line
Count
Source
187
39.7M
    void insert(const BoundsType& itemEnv, ItemType&& item) {
188
39.7M
        if (!BoundsTraits::isNull(itemEnv)) {
189
36.9M
            createLeafNode(std::forward<ItemType>(item), itemEnv);
190
36.9M
        }
191
39.7M
    }
geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::insert(geos::geom::Envelope const&, geos::geom::Geometry const*&&)
Line
Count
Source
187
4.85M
    void insert(const BoundsType& itemEnv, ItemType&& item) {
188
4.85M
        if (!BoundsTraits::isNull(itemEnv)) {
189
4.85M
            createLeafNode(std::forward<ItemType>(item), itemEnv);
190
4.85M
        }
191
4.85M
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::insert(geos::geom::Envelope const&, geos::coverage::TPVWSimplifier::Edge const*&&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::insert(geos::geom::Envelope const&, geos::operation::overlayng::OverlayEdgeRing*&&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::insert(geos::geom::Envelope const&, geos::operation::polygonize::EdgeRing*&&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::insert(geos::geom::Envelope const&, geos::geom::LinearRing const*&&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::insert(geos::geom::Envelope const&, geos::geom::Polygon const*&&)
192
193
    /** Insert a copy of the given item into the tree */
194
7.48M
    void insert(const BoundsType& itemEnv, const ItemType& item) {
195
7.48M
        if (!BoundsTraits::isNull(itemEnv)) {
196
7.48M
            createLeafNode(item, itemEnv);
197
7.48M
        }
198
7.48M
    }
geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits>::insert(geos::index::strtree::Interval const&, geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView const&)
Line
Count
Source
194
7.36M
    void insert(const BoundsType& itemEnv, const ItemType& item) {
195
7.36M
        if (!BoundsTraits::isNull(itemEnv)) {
196
7.36M
            createLeafNode(item, itemEnv);
197
7.36M
        }
198
7.36M
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<unsigned long, geos::index::strtree::EnvelopeTraits>::insert(geos::geom::Envelope const&, unsigned long const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::insert(geos::geom::Envelope const&, geos::geom::Geometry const* const&)
geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::insert(geos::geom::Envelope const&, geos::operation::overlayng::OverlayEdgeRing* const&)
Line
Count
Source
194
122k
    void insert(const BoundsType& itemEnv, const ItemType& item) {
195
122k
        if (!BoundsTraits::isNull(itemEnv)) {
196
122k
            createLeafNode(item, itemEnv);
197
122k
        }
198
122k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::insert(geos::geom::Envelope const&, geos::index::chain::MonotoneChain const* const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::insert(geos::geom::Envelope const&, geos::geom::LinearRing const* const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::insert(geos::geom::Envelope const&, geos::geom::Polygon const* const&)
199
200
    /// @}
201
    /// \defgroup NN Nearest-neighbor
202
    /// @{
203
204
    /** Determine the two closest items in the tree using distance metric `distance`. */
205
    template<typename ItemDistance>
206
0
    std::pair<ItemType, ItemType> nearestNeighbour(ItemDistance& distance) {
207
0
        return nearestNeighbour(*this, distance);
208
0
    }
209
210
    /** Determine the two closest items in the tree using distance metric `ItemDistance`. */
211
    template<typename ItemDistance>
212
    std::pair<ItemType, ItemType> nearestNeighbour() {
213
        return nearestNeighbour(*this);
214
    }
215
216
    /** Determine the two closest items this tree and `other` tree using distance metric `distance`. */
217
    template<typename ItemDistance>
218
    std::pair<ItemType, ItemType> nearestNeighbour(TemplateSTRtreeImpl<ItemType, BoundsTraits> & other,
219
0
                                                   ItemDistance & distance) {
220
0
        if (!getRoot() || !other.getRoot()) {
221
0
            return { nullptr, nullptr };
222
0
        }
223
224
0
        TemplateSTRtreeDistance<ItemType, BoundsTraits, ItemDistance> td(distance);
225
0
        return td.nearestNeighbour(*root, *other.root);
226
0
    }
Unexecuted instantiation: std::__1::pair<geos::operation::distance::FacetSequence const*, geos::operation::distance::FacetSequence const*> geos::index::strtree::TemplateSTRtreeImpl<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::nearestNeighbour<geos::operation::distance::IndexedFacetDistance::FacetDistance>(geos::index::strtree::TemplateSTRtreeImpl<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>&, geos::operation::distance::IndexedFacetDistance::FacetDistance&)
Unexecuted instantiation: MinimumClearance.cpp:std::__1::pair<geos::operation::distance::FacetSequence const*, geos::operation::distance::FacetSequence const*> geos::index::strtree::TemplateSTRtreeImpl<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::nearestNeighbour<geos::precision::MinimumClearance::compute()::MinClearanceDistance>(geos::index::strtree::TemplateSTRtreeImpl<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>&, geos::precision::MinimumClearance::compute()::MinClearanceDistance&)
227
228
    /** Determine the two closest items this tree and `other` tree using distance metric `ItemDistance`. */
229
    template<typename ItemDistance>
230
0
    std::pair<ItemType, ItemType> nearestNeighbour(TemplateSTRtreeImpl<ItemType, BoundsTraits>& other) {
231
0
        ItemDistance id;
232
0
        return nearestNeighbour(other, id);
233
0
    }
234
235
    template<typename ItemDistance>
236
0
    ItemType nearestNeighbour(const BoundsType& env, const ItemType& item, ItemDistance& itemDist) {
237
0
        build();
238
239
0
        if (getRoot() == nullptr) {
240
0
            return nullptr;
241
0
        }
242
243
0
        TemplateSTRNode<ItemType, BoundsTraits> bnd(item, env);
244
0
        TemplateSTRNodePair<ItemType, BoundsTraits, ItemDistance> pair(*getRoot(), bnd, itemDist);
245
246
0
        TemplateSTRtreeDistance<ItemType, BoundsTraits, ItemDistance> td(itemDist);
247
0
        return td.nearestNeighbour(pair).first;
248
0
    }
Unexecuted instantiation: geos_ts_c.cpp:void* geos::index::strtree::TemplateSTRtreeImpl<void*, geos::index::strtree::EnvelopeTraits>::nearestNeighbour<GEOSSTRtree_nearest_generic_r::CustomItemDistance>(geos::geom::Envelope const&, void* const&, GEOSSTRtree_nearest_generic_r::CustomItemDistance&)
Unexecuted instantiation: geos_ts_c.cpp:void* geos::index::strtree::TemplateSTRtreeImpl<void*, geos::index::strtree::EnvelopeTraits>::nearestNeighbour<GEOSSTRtree_nearest_generic_r::GeometryDistance>(geos::geom::Envelope const&, void* const&, GEOSSTRtree_nearest_generic_r::GeometryDistance&)
249
250
    template<typename ItemDistance>
251
0
    ItemType nearestNeighbour(const BoundsType& env, const ItemType& item) {
252
0
        ItemDistance id;
253
0
        return nearestNeighbour(env, item, id);
254
0
    }
255
256
    template<typename ItemDistance>
257
0
    bool isWithinDistance(TemplateSTRtreeImpl<ItemType, BoundsTraits>& other, double maxDistance) {
258
0
        ItemDistance itemDist;
259
260
0
        if (!getRoot() || !other.getRoot()) {
261
0
            return false;
262
0
        }
263
264
0
        TemplateSTRtreeDistance<ItemType, BoundsTraits, ItemDistance> td(itemDist);
265
0
        return td.isWithinDistance(*root, *other.root, maxDistance);
266
0
    }
267
268
    /// @}
269
    /// \defgroup query Query
270
    /// @{
271
272
    // Query the tree using the specified visitor. The visitor must be callable
273
    // either with a single argument of `const ItemType&` or with the
274
    // arguments `(const BoundsType&, const ItemType&).
275
    // The visitor need not return a value, but if it does return a value,
276
    // false values will be taken as a signal to stop the query.
277
    template<typename Visitor>
278
341k
    void query(const BoundsType& queryEnv, Visitor &&visitor) {
279
341k
        if (!built()) {
280
225k
            build();
281
225k
        }
282
283
341k
        if (root && root->boundsIntersect(queryEnv)) {
284
86.9k
            if (root->isLeaf()) {
285
4.44k
                visitLeaf(visitor, *root);
286
82.5k
            } else {
287
82.5k
                query(queryEnv, *root, visitor);
288
82.5k
            }
289
86.9k
        }
290
341k
    }
Unexecuted instantiation: void geos::index::strtree::TemplateSTRtreeImpl<void*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<void*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(void const*)#1}>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRtree<void*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(void const*)#1}&&)
Unexecuted instantiation: void geos::index::strtree::TemplateSTRtreeImpl<void*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<void*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(void const*)#1}>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRtree<void*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(void const*)#1}&&)
Unexecuted instantiation: void geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::algorithm::locate::IndexedPointInAreaLocator const*)#1}>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRtree<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::algorithm::locate::IndexedPointInAreaLocator const*)#1}&&)
Unexecuted instantiation: void geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::algorithm::locate::IndexedPointInAreaLocator const*)#1}>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRtree<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::algorithm::locate::IndexedPointInAreaLocator const*)#1}&&)
Unexecuted instantiation: void geos::index::strtree::TemplateSTRtreeImpl<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::operation::distance::FacetSequence const*)#1}>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRtree<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::operation::distance::FacetSequence const*)#1}&&)
Unexecuted instantiation: void geos::index::strtree::TemplateSTRtreeImpl<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::operation::distance::FacetSequence const*)#1}>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRtree<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::operation::distance::FacetSequence const*)#1}&&)
Unexecuted instantiation: void geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::index::chain::MonotoneChain const*)#1}>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRtree<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::index::chain::MonotoneChain const*)#1}&&)
Unexecuted instantiation: void geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::index::chain::MonotoneChain const*)#1}>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRtree<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::index::chain::MonotoneChain const*)#1}&&)
IndexedPointInAreaLocator.cpp:void geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits>::query<geos::algorithm::locate::IndexedPointInAreaLocator::locate(geos::geom::CoordinateXY const*)::$_0&>(geos::index::strtree::Interval const&, geos::algorithm::locate::IndexedPointInAreaLocator::locate(geos::geom::CoordinateXY const*)::$_0&)
Line
Count
Source
278
305k
    void query(const BoundsType& queryEnv, Visitor &&visitor) {
279
305k
        if (!built()) {
280
190k
            build();
281
190k
        }
282
283
305k
        if (root && root->boundsIntersect(queryEnv)) {
284
80.6k
            if (root->isLeaf()) {
285
401
                visitLeaf(visitor, *root);
286
80.2k
            } else {
287
80.2k
                query(queryEnv, *root, visitor);
288
80.2k
            }
289
80.6k
        }
290
305k
    }
Unexecuted instantiation: void geos::index::strtree::TemplateSTRtreeImpl<unsigned long, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtreeImpl<unsigned long, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<unsigned long, std::__1::allocator<unsigned long> >&)::{lambda(unsigned long const&)#1}>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRtreeImpl<unsigned long, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<unsigned long, std::__1::allocator<unsigned long> >&)::{lambda(unsigned long const&)#1}&&)
Unexecuted instantiation: void geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::geom::Geometry const*)#1}>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRtree<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::geom::Geometry const*)#1}&&)
Unexecuted instantiation: void geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::geom::Geometry const*)#1}>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRtree<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::geom::Geometry const*)#1}&&)
Unexecuted instantiation: CoverageValidator.cpp:void geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::query<geos::coverage::CoverageValidator::validate(geos::geom::Geometry const*, geos::index::strtree::TemplateSTRtree<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>&)::$_0&>(geos::geom::Envelope const&, geos::coverage::CoverageValidator::validate(geos::geom::Geometry const*, geos::index::strtree::TemplateSTRtree<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>&)::$_0&)
Unexecuted instantiation: void geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::coverage::TPVWSimplifier::Edge const*)#1}>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRtree<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::coverage::TPVWSimplifier::Edge const*)#1}&&)
Unexecuted instantiation: void geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::coverage::TPVWSimplifier::Edge const*)#1}>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRtree<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::coverage::TPVWSimplifier::Edge const*)#1}&&)
Unexecuted instantiation: void geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::coverage::TPVWSimplifier::Edge const*, std::__1::allocator<geos::coverage::TPVWSimplifier::Edge const*> >&)::{lambda(geos::coverage::TPVWSimplifier::Edge const* const&)#1}>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::coverage::TPVWSimplifier::Edge const*, std::__1::allocator<geos::coverage::TPVWSimplifier::Edge const*> >&)::{lambda(geos::coverage::TPVWSimplifier::Edge const* const&)#1}&&)
Unexecuted instantiation: MCIndexSegmentSetMutualIntersector.cpp:void geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::query<geos::noding::MCIndexSegmentSetMutualIntersector::intersectChains()::$_0>(geos::geom::Envelope const&, geos::noding::MCIndexSegmentSetMutualIntersector::intersectChains()::$_0&&)
Unexecuted instantiation: SegmentMCIndex.cpp:void geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::query<geos::operation::buffer::SegmentMCIndex::query(geos::geom::Envelope const*, geos::index::chain::MonotoneChainSelectAction&)::$_0>(geos::geom::Envelope const&, geos::operation::buffer::SegmentMCIndex::query(geos::geom::Envelope const*, geos::index::chain::MonotoneChainSelectAction&)::$_0&&)
Unexecuted instantiation: DBSCANClusterFinder.cpp:void geos::index::strtree::TemplateSTRtreeImpl<unsigned long, geos::index::strtree::EnvelopeTraits>::query<geos::operation::cluster::DBSCANClusterFinder::process(std::__1::vector<geos::geom::Geometry const*, std::__1::allocator<geos::geom::Geometry const*> > const&, geos::index::strtree::TemplateSTRtree<unsigned long, geos::index::strtree::EnvelopeTraits>&, geos::operation::cluster::UnionFind&)::$_0>(geos::geom::Envelope const&, geos::operation::cluster::DBSCANClusterFinder::process(std::__1::vector<geos::geom::Geometry const*, std::__1::allocator<geos::geom::Geometry const*> > const&, geos::index::strtree::TemplateSTRtree<unsigned long, geos::index::strtree::EnvelopeTraits>&, geos::operation::cluster::UnionFind&)::$_0&&)
Unexecuted instantiation: void geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::operation::overlayng::OverlayEdgeRing const*)#1}>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRtree<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::operation::overlayng::OverlayEdgeRing const*)#1}&&)
Unexecuted instantiation: void geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::operation::overlayng::OverlayEdgeRing const*)#1}>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRtree<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::operation::overlayng::OverlayEdgeRing const*)#1}&&)
void geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::operation::overlayng::OverlayEdgeRing*, std::__1::allocator<geos::operation::overlayng::OverlayEdgeRing*> >&)::{lambda(geos::operation::overlayng::OverlayEdgeRing* const&)#1}>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::operation::overlayng::OverlayEdgeRing*, std::__1::allocator<geos::operation::overlayng::OverlayEdgeRing*> >&)::{lambda(geos::operation::overlayng::OverlayEdgeRing* const&)#1}&&)
Line
Count
Source
278
36.1k
    void query(const BoundsType& queryEnv, Visitor &&visitor) {
279
36.1k
        if (!built()) {
280
35.1k
            build();
281
35.1k
        }
282
283
36.1k
        if (root && root->boundsIntersect(queryEnv)) {
284
6.36k
            if (root->isLeaf()) {
285
4.04k
                visitLeaf(visitor, *root);
286
4.04k
            } else {
287
2.31k
                query(queryEnv, *root, visitor);
288
2.31k
            }
289
6.36k
        }
290
36.1k
    }
Unexecuted instantiation: void geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::operation::polygonize::EdgeRing const*)#1}>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRtree<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::operation::polygonize::EdgeRing const*)#1}&&)
Unexecuted instantiation: void geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::operation::polygonize::EdgeRing const*)#1}>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRtree<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::operation::polygonize::EdgeRing const*)#1}&&)
Unexecuted instantiation: void geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::geom::LinearRing const*)#1}>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRtree<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::geom::LinearRing const*)#1}&&)
Unexecuted instantiation: void geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::geom::LinearRing const*)#1}>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRtree<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::geom::LinearRing const*)#1}&&)
Unexecuted instantiation: void geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::geom::Polygon const*)#1}>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRtree<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::geom::Polygon const*)#1}&&)
Unexecuted instantiation: void geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::geom::Polygon const*)#1}>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRtree<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::geom::Polygon const*)#1}&&)
Unexecuted instantiation: void geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::algorithm::locate::IndexedPointInAreaLocator*, std::__1::allocator<geos::algorithm::locate::IndexedPointInAreaLocator*> >&)::{lambda(geos::algorithm::locate::IndexedPointInAreaLocator* const&)#1}>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::algorithm::locate::IndexedPointInAreaLocator*, std::__1::allocator<geos::algorithm::locate::IndexedPointInAreaLocator*> >&)::{lambda(geos::algorithm::locate::IndexedPointInAreaLocator* const&)#1}&&)
Unexecuted instantiation: void geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::operation::polygonize::EdgeRing*, std::__1::allocator<geos::operation::polygonize::EdgeRing*> >&)::{lambda(geos::operation::polygonize::EdgeRing* const&)#1}>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::operation::polygonize::EdgeRing*, std::__1::allocator<geos::operation::polygonize::EdgeRing*> >&)::{lambda(geos::operation::polygonize::EdgeRing* const&)#1}&&)
Unexecuted instantiation: void geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::geom::LinearRing const*, std::__1::allocator<geos::geom::LinearRing const*> >&)::{lambda(geos::geom::LinearRing const* const&)#1}>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::geom::LinearRing const*, std::__1::allocator<geos::geom::LinearRing const*> >&)::{lambda(geos::geom::LinearRing const* const&)#1}&&)
Unexecuted instantiation: void geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::geom::Polygon const*, std::__1::allocator<geos::geom::Polygon const*> >&)::{lambda(geos::geom::Polygon const* const&)#1}>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::geom::Polygon const*, std::__1::allocator<geos::geom::Polygon const*> >&)::{lambda(geos::geom::Polygon const* const&)#1}&&)
291
292
    // Query the tree for all pairs whose bounds intersect. The visitor must
293
    // be callable with arguments (const ItemType&, const ItemType&).
294
    // The visitor will be called for each pair once, with first-inserted
295
    // item used for the first argument.
296
    // The visitor need not return a value, but if it does return a value,
297
    // false values will be taken as a signal to stop the query.
298
    template<typename Visitor>
299
456k
    void queryPairs(Visitor&& visitor) {
300
456k
        if (!built()) {
301
456k
            build();
302
456k
        }
303
304
456k
        if (numItems < 2) {
305
23.0k
            return;
306
23.0k
        }
307
308
32.1M
        for (std::size_t i = 0; i < numItems; i++) {
309
31.7M
            queryPairs(nodes[i], *root, visitor);
310
31.7M
        }
311
433k
    }
MCIndexNoder.cpp:void geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::queryPairs<geos::noding::MCIndexNoder::intersectChains()::$_0>(geos::noding::MCIndexNoder::intersectChains()::$_0&&)
Line
Count
Source
299
456k
    void queryPairs(Visitor&& visitor) {
300
456k
        if (!built()) {
301
456k
            build();
302
456k
        }
303
304
456k
        if (numItems < 2) {
305
23.0k
            return;
306
23.0k
        }
307
308
32.1M
        for (std::size_t i = 0; i < numItems; i++) {
309
31.7M
            queryPairs(nodes[i], *root, visitor);
310
31.7M
        }
311
433k
    }
Unexecuted instantiation: EdgeSetIntersector.cpp:void geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::queryPairs<geos::operation::relateng::EdgeSetIntersector::process(geos::operation::relateng::EdgeSegmentIntersector&)::$_0>(geos::operation::relateng::EdgeSetIntersector::process(geos::operation::relateng::EdgeSegmentIntersector&)::$_0&&)
312
313
    // Query the tree and collect items in the provided vector.
314
36.1k
    void query(const BoundsType& queryEnv, std::vector<ItemType>& results) {
315
36.1k
        query(queryEnv, [&results](const ItemType& x) {
316
7.54k
            results.push_back(x);
317
7.54k
        });
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<unsigned long, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<unsigned long, std::__1::allocator<unsigned long> >&)::{lambda(unsigned long const&)#1}::operator()(unsigned long const&) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::coverage::TPVWSimplifier::Edge const*, std::__1::allocator<geos::coverage::TPVWSimplifier::Edge const*> >&)::{lambda(geos::coverage::TPVWSimplifier::Edge const* const&)#1}::operator()(geos::coverage::TPVWSimplifier::Edge const* const&) const
geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::operation::overlayng::OverlayEdgeRing*, std::__1::allocator<geos::operation::overlayng::OverlayEdgeRing*> >&)::{lambda(geos::operation::overlayng::OverlayEdgeRing* const&)#1}::operator()(geos::operation::overlayng::OverlayEdgeRing* const&) const
Line
Count
Source
315
7.54k
        query(queryEnv, [&results](const ItemType& x) {
316
7.54k
            results.push_back(x);
317
7.54k
        });
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::algorithm::locate::IndexedPointInAreaLocator*, std::__1::allocator<geos::algorithm::locate::IndexedPointInAreaLocator*> >&)::{lambda(geos::algorithm::locate::IndexedPointInAreaLocator* const&)#1}::operator()(geos::algorithm::locate::IndexedPointInAreaLocator* const&) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::operation::polygonize::EdgeRing*, std::__1::allocator<geos::operation::polygonize::EdgeRing*> >&)::{lambda(geos::operation::polygonize::EdgeRing* const&)#1}::operator()(geos::operation::polygonize::EdgeRing* const&) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::geom::LinearRing const*, std::__1::allocator<geos::geom::LinearRing const*> >&)::{lambda(geos::geom::LinearRing const* const&)#1}::operator()(geos::geom::LinearRing const* const&) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::geom::Polygon const*, std::__1::allocator<geos::geom::Polygon const*> >&)::{lambda(geos::geom::Polygon const* const&)#1}::operator()(geos::geom::Polygon const* const&) const
318
36.1k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<unsigned long, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<unsigned long, std::__1::allocator<unsigned long> >&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::coverage::TPVWSimplifier::Edge const*, std::__1::allocator<geos::coverage::TPVWSimplifier::Edge const*> >&)
geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::operation::overlayng::OverlayEdgeRing*, std::__1::allocator<geos::operation::overlayng::OverlayEdgeRing*> >&)
Line
Count
Source
314
36.1k
    void query(const BoundsType& queryEnv, std::vector<ItemType>& results) {
315
36.1k
        query(queryEnv, [&results](const ItemType& x) {
316
36.1k
            results.push_back(x);
317
36.1k
        });
318
36.1k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::algorithm::locate::IndexedPointInAreaLocator*, std::__1::allocator<geos::algorithm::locate::IndexedPointInAreaLocator*> >&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::operation::polygonize::EdgeRing*, std::__1::allocator<geos::operation::polygonize::EdgeRing*> >&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::geom::LinearRing const*, std::__1::allocator<geos::geom::LinearRing const*> >&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::geom::Polygon const*, std::__1::allocator<geos::geom::Polygon const*> >&)
319
320
    /**
321
     * Returns a depth-first iterator over all items in the tree.
322
     */
323
10.8k
    Items items() {
324
10.8k
        build();
325
10.8k
        return Items(*this);
326
10.8k
    }
327
328
    /**
329
     * Iterate over all items added thus far.  Explicitly does not build
330
     * the tree.
331
     */
332
    template<typename F>
333
0
    void iterate(F&& func) {
334
0
        auto n = built() ? numItems : nodes.size();
335
0
        for (size_t i = 0; i < n; i++) {
336
0
            if (!nodes[i].isDeleted()) {
337
0
                func(nodes[i].getItem());
338
0
            }
339
0
        }
340
0
    }
341
342
    /// @}
343
    /// \defgroup remove Item removal
344
    /// @{
345
346
0
    bool remove(const BoundsType& itemEnv, const ItemType& item) {
347
0
        build();
348
349
0
        if (root == nullptr) {
350
0
            return false;
351
0
        }
352
353
0
        if (root->isLeaf()) {
354
0
            if (!root->isDeleted() && root->getItem() == item) {
355
0
                root->removeItem();
356
0
                return true;
357
0
            }
358
0
            return false;
359
0
        }
360
361
0
        return remove(itemEnv, *root, item);
362
0
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<void*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const&, void* const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const&, geos::algorithm::locate::IndexedPointInAreaLocator* const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const&, geos::operation::distance::FacetSequence const* const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const&, geos::index::chain::MonotoneChain const* const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const&, geos::geom::Geometry const* const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const&, geos::coverage::TPVWSimplifier::Edge const* const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const&, geos::operation::overlayng::OverlayEdgeRing* const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const&, geos::operation::polygonize::EdgeRing* const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const&, geos::geom::LinearRing const* const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const&, geos::geom::Polygon const* const&)
363
364
    /// @}
365
    /// \defgroup introspect Introspection
366
    /// @{
367
368
    /** Determine whether the tree has been built, and no more items may be added. */
369
1.49M
    bool built() const {
370
1.49M
        return root != nullptr;
371
1.49M
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<void*, geos::index::strtree::EnvelopeTraits>::built() const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::built() const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::built() const
geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::built() const
Line
Count
Source
369
912k
    bool built() const {
370
912k
        return root != nullptr;
371
912k
    }
geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits>::built() const
Line
Count
Source
369
495k
    bool built() const {
370
495k
        return root != nullptr;
371
495k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<unsigned long, geos::index::strtree::EnvelopeTraits>::built() const
geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::built() const
Line
Count
Source
369
10.8k
    bool built() const {
370
10.8k
        return root != nullptr;
371
10.8k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::built() const
geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::built() const
Line
Count
Source
369
71.2k
    bool built() const {
370
71.2k
        return root != nullptr;
371
71.2k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::built() const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::built() const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::built() const
372
373
    /** Determine whether the tree has been built, and no more items may be added. */
374
0
    const Node* getRoot() {
375
0
        build();
376
0
        return root;
377
0
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<void*, geos::index::strtree::EnvelopeTraits>::getRoot()
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::getRoot()
378
379
    /// @}
380
381
    /** Build the tree if it has not already been built. */
382
693k
    void build() {
383
693k
        std::lock_guard<std::mutex> lock(lock_);
384
385
693k
        if (built()) {
386
5.40k
            return;
387
5.40k
        }
388
389
687k
        if (nodes.empty()) {
390
200k
            return;
391
200k
        }
392
393
487k
        numItems = nodes.size();
394
395
        // compute final size of tree and set it aside in a single
396
        // block of memory
397
487k
        auto finalSize = treeSize(numItems);
398
487k
        nodes.reserve(finalSize);
399
400
        // begin and end define a range of nodes needing parents
401
487k
        auto begin = nodes.begin();
402
487k
        auto number = static_cast<size_t>(std::distance(begin, nodes.end()));
403
404
1.13M
        while (number > 1) {
405
646k
            createParentNodes(begin, number);
406
646k
            std::advance(begin, static_cast<long>(number)); // parents just added become children in the next round
407
646k
            number = static_cast<size_t>(std::distance(begin, nodes.end()));
408
646k
        }
409
410
487k
        assert(finalSize == nodes.size());
411
412
487k
        root = &nodes.back();
413
487k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<void*, geos::index::strtree::EnvelopeTraits>::build()
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::build()
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::build()
geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::build()
Line
Count
Source
382
456k
    void build() {
383
456k
        std::lock_guard<std::mutex> lock(lock_);
384
385
456k
        if (built()) {
386
0
            return;
387
0
        }
388
389
456k
        if (nodes.empty()) {
390
2.99k
            return;
391
2.99k
        }
392
393
453k
        numItems = nodes.size();
394
395
        // compute final size of tree and set it aside in a single
396
        // block of memory
397
453k
        auto finalSize = treeSize(numItems);
398
453k
        nodes.reserve(finalSize);
399
400
        // begin and end define a range of nodes needing parents
401
453k
        auto begin = nodes.begin();
402
453k
        auto number = static_cast<size_t>(std::distance(begin, nodes.end()));
403
404
1.05M
        while (number > 1) {
405
600k
            createParentNodes(begin, number);
406
600k
            std::advance(begin, static_cast<long>(number)); // parents just added become children in the next round
407
600k
            number = static_cast<size_t>(std::distance(begin, nodes.end()));
408
600k
        }
409
410
453k
        assert(finalSize == nodes.size());
411
412
453k
        root = &nodes.back();
413
453k
    }
geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits>::build()
Line
Count
Source
382
190k
    void build() {
383
190k
        std::lock_guard<std::mutex> lock(lock_);
384
385
190k
        if (built()) {
386
0
            return;
387
0
        }
388
389
190k
        if (nodes.empty()) {
390
167k
            return;
391
167k
        }
392
393
22.8k
        numItems = nodes.size();
394
395
        // compute final size of tree and set it aside in a single
396
        // block of memory
397
22.8k
        auto finalSize = treeSize(numItems);
398
22.8k
        nodes.reserve(finalSize);
399
400
        // begin and end define a range of nodes needing parents
401
22.8k
        auto begin = nodes.begin();
402
22.8k
        auto number = static_cast<size_t>(std::distance(begin, nodes.end()));
403
404
60.5k
        while (number > 1) {
405
37.7k
            createParentNodes(begin, number);
406
37.7k
            std::advance(begin, static_cast<long>(number)); // parents just added become children in the next round
407
37.7k
            number = static_cast<size_t>(std::distance(begin, nodes.end()));
408
37.7k
        }
409
410
22.8k
        assert(finalSize == nodes.size());
411
412
22.8k
        root = &nodes.back();
413
22.8k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<unsigned long, geos::index::strtree::EnvelopeTraits>::build()
geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::build()
Line
Count
Source
382
10.8k
    void build() {
383
10.8k
        std::lock_guard<std::mutex> lock(lock_);
384
385
10.8k
        if (built()) {
386
5.40k
            return;
387
5.40k
        }
388
389
5.40k
        if (nodes.empty()) {
390
0
            return;
391
0
        }
392
393
5.40k
        numItems = nodes.size();
394
395
        // compute final size of tree and set it aside in a single
396
        // block of memory
397
5.40k
        auto finalSize = treeSize(numItems);
398
5.40k
        nodes.reserve(finalSize);
399
400
        // begin and end define a range of nodes needing parents
401
5.40k
        auto begin = nodes.begin();
402
5.40k
        auto number = static_cast<size_t>(std::distance(begin, nodes.end()));
403
404
11.6k
        while (number > 1) {
405
6.28k
            createParentNodes(begin, number);
406
6.28k
            std::advance(begin, static_cast<long>(number)); // parents just added become children in the next round
407
6.28k
            number = static_cast<size_t>(std::distance(begin, nodes.end()));
408
6.28k
        }
409
410
5.40k
        assert(finalSize == nodes.size());
411
412
5.40k
        root = &nodes.back();
413
5.40k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::build()
geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::build()
Line
Count
Source
382
35.1k
    void build() {
383
35.1k
        std::lock_guard<std::mutex> lock(lock_);
384
385
35.1k
        if (built()) {
386
0
            return;
387
0
        }
388
389
35.1k
        if (nodes.empty()) {
390
29.2k
            return;
391
29.2k
        }
392
393
5.90k
        numItems = nodes.size();
394
395
        // compute final size of tree and set it aside in a single
396
        // block of memory
397
5.90k
        auto finalSize = treeSize(numItems);
398
5.90k
        nodes.reserve(finalSize);
399
400
        // begin and end define a range of nodes needing parents
401
5.90k
        auto begin = nodes.begin();
402
5.90k
        auto number = static_cast<size_t>(std::distance(begin, nodes.end()));
403
404
8.13k
        while (number > 1) {
405
2.23k
            createParentNodes(begin, number);
406
2.23k
            std::advance(begin, static_cast<long>(number)); // parents just added become children in the next round
407
2.23k
            number = static_cast<size_t>(std::distance(begin, nodes.end()));
408
2.23k
        }
409
410
5.90k
        assert(finalSize == nodes.size());
411
412
5.90k
        root = &nodes.back();
413
5.90k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::build()
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::build()
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::build()
414
415
protected:
416
    std::mutex lock_;
417
    NodeList nodes;      //**< a list of all leaf and branch nodes in the tree. */
418
    Node* root;          //**< a pointer to the root node, if the tree has been built. */
419
    size_t nodeCapacity; //*< maximum number of children of each node */
420
    size_t numItems;     //*< total number of items in the tree, if it has been built. */
421
422
    // Prevent instantiation of base class.
423
    // ~TemplateSTRtreeImpl() = default;
424
425
41.8M
    void createLeafNode(ItemType&& item, const BoundsType& env) {
426
41.8M
        nodes.emplace_back(std::forward<ItemType>(item), env);
427
41.8M
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<void*, geos::index::strtree::EnvelopeTraits>::createLeafNode(void*&&, geos::geom::Envelope const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::createLeafNode(geos::operation::distance::FacetSequence const*&&, geos::geom::Envelope const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::createLeafNode(geos::algorithm::locate::IndexedPointInAreaLocator*&&, geos::geom::Envelope const&)
geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::createLeafNode(geos::index::chain::MonotoneChain const*&&, geos::geom::Envelope const&)
Line
Count
Source
425
36.9M
    void createLeafNode(ItemType&& item, const BoundsType& env) {
426
36.9M
        nodes.emplace_back(std::forward<ItemType>(item), env);
427
36.9M
    }
geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::createLeafNode(geos::geom::Geometry const*&&, geos::geom::Envelope const&)
Line
Count
Source
425
4.85M
    void createLeafNode(ItemType&& item, const BoundsType& env) {
426
4.85M
        nodes.emplace_back(std::forward<ItemType>(item), env);
427
4.85M
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::createLeafNode(geos::coverage::TPVWSimplifier::Edge const*&&, geos::geom::Envelope const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::createLeafNode(geos::operation::overlayng::OverlayEdgeRing*&&, geos::geom::Envelope const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::createLeafNode(geos::operation::polygonize::EdgeRing*&&, geos::geom::Envelope const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::createLeafNode(geos::geom::LinearRing const*&&, geos::geom::Envelope const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::createLeafNode(geos::geom::Polygon const*&&, geos::geom::Envelope const&)
428
429
7.48M
    void createLeafNode(const ItemType& item, const BoundsType& env) {
430
7.48M
        nodes.emplace_back(item, env);
431
7.48M
    }
geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits>::createLeafNode(geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView const&, geos::index::strtree::Interval const&)
Line
Count
Source
429
7.36M
    void createLeafNode(const ItemType& item, const BoundsType& env) {
430
7.36M
        nodes.emplace_back(item, env);
431
7.36M
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<unsigned long, geos::index::strtree::EnvelopeTraits>::createLeafNode(unsigned long const&, geos::geom::Envelope const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::createLeafNode(geos::geom::Geometry const* const&, geos::geom::Envelope const&)
geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::createLeafNode(geos::operation::overlayng::OverlayEdgeRing* const&, geos::geom::Envelope const&)
Line
Count
Source
429
122k
    void createLeafNode(const ItemType& item, const BoundsType& env) {
430
122k
        nodes.emplace_back(item, env);
431
122k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::createLeafNode(geos::index::chain::MonotoneChain const* const&, geos::geom::Envelope const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::createLeafNode(geos::geom::LinearRing const* const&, geos::geom::Envelope const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::createLeafNode(geos::geom::Polygon const* const&, geos::geom::Envelope const&)
432
433
5.94M
    void createBranchNode(const Node *begin, const Node *end) {
434
5.94M
        assert(nodes.size() < nodes.capacity());
435
5.94M
        nodes.emplace_back(begin, end);
436
5.94M
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<void*, geos::index::strtree::EnvelopeTraits>::createBranchNode(geos::index::strtree::TemplateSTRNode<void*, geos::index::strtree::EnvelopeTraits> const*, geos::index::strtree::TemplateSTRNode<void*, geos::index::strtree::EnvelopeTraits> const*)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::createBranchNode(geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits> const*, geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits> const*)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::createBranchNode(geos::index::strtree::TemplateSTRNode<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits> const*, geos::index::strtree::TemplateSTRNode<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits> const*)
geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::createBranchNode(geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits> const*, geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits> const*)
Line
Count
Source
433
4.52M
    void createBranchNode(const Node *begin, const Node *end) {
434
        assert(nodes.size() < nodes.capacity());
435
4.52M
        nodes.emplace_back(begin, end);
436
4.52M
    }
geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits>::createBranchNode(geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits> const*, geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits> const*)
Line
Count
Source
433
864k
    void createBranchNode(const Node *begin, const Node *end) {
434
        assert(nodes.size() < nodes.capacity());
435
864k
        nodes.emplace_back(begin, end);
436
864k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<unsigned long, geos::index::strtree::EnvelopeTraits>::createBranchNode(geos::index::strtree::TemplateSTRNode<unsigned long, geos::index::strtree::EnvelopeTraits> const*, geos::index::strtree::TemplateSTRNode<unsigned long, geos::index::strtree::EnvelopeTraits> const*)
geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::createBranchNode(geos::index::strtree::TemplateSTRNode<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits> const*, geos::index::strtree::TemplateSTRNode<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits> const*)
Line
Count
Source
433
555k
    void createBranchNode(const Node *begin, const Node *end) {
434
        assert(nodes.size() < nodes.capacity());
435
555k
        nodes.emplace_back(begin, end);
436
555k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::createBranchNode(geos::index::strtree::TemplateSTRNode<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits> const*, geos::index::strtree::TemplateSTRNode<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits> const*)
geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::createBranchNode(geos::index::strtree::TemplateSTRNode<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits> const*, geos::index::strtree::TemplateSTRNode<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits> const*)
Line
Count
Source
433
2.23k
    void createBranchNode(const Node *begin, const Node *end) {
434
        assert(nodes.size() < nodes.capacity());
435
2.23k
        nodes.emplace_back(begin, end);
436
2.23k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::createBranchNode(geos::index::strtree::TemplateSTRNode<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits> const*, geos::index::strtree::TemplateSTRNode<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits> const*)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::createBranchNode(geos::index::strtree::TemplateSTRNode<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits> const*, geos::index::strtree::TemplateSTRNode<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits> const*)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::createBranchNode(geos::index::strtree::TemplateSTRNode<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits> const*, geos::index::strtree::TemplateSTRNode<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits> const*)
437
438
    // calculate what the tree size will be when it is build. This is simply
439
    // a version of createParentNodes that doesn't actually create anything.
440
515k
    size_t treeSize(size_t numLeafNodes) {
441
515k
        size_t nodesInTree = numLeafNodes;
442
443
515k
        size_t nodesWithoutParents = numLeafNodes;
444
1.20M
        while (nodesWithoutParents > 1) {
445
690k
            auto numSlices = sliceCount(nodesWithoutParents);
446
690k
            auto nodesPerSlice = sliceCapacity(nodesWithoutParents, numSlices);
447
448
690k
            size_t parentNodesAdded = 0;
449
1.89M
            for (size_t j = 0; j < numSlices; j++) {
450
1.20M
                auto nodesInSlice = std::min(nodesWithoutParents, nodesPerSlice);
451
1.20M
                nodesWithoutParents -= nodesInSlice;
452
453
1.20M
                parentNodesAdded += static_cast<size_t>(std::ceil(
454
1.20M
                        static_cast<double>(nodesInSlice) / static_cast<double>(nodeCapacity)));
455
1.20M
            }
456
457
690k
            nodesInTree += parentNodesAdded;
458
690k
            nodesWithoutParents = parentNodesAdded;
459
690k
        }
460
461
515k
        return nodesInTree;
462
515k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<void*, geos::index::strtree::EnvelopeTraits>::treeSize(unsigned long)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::treeSize(unsigned long)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::treeSize(unsigned long)
geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::treeSize(unsigned long)
Line
Count
Source
440
453k
    size_t treeSize(size_t numLeafNodes) {
441
453k
        size_t nodesInTree = numLeafNodes;
442
443
453k
        size_t nodesWithoutParents = numLeafNodes;
444
1.05M
        while (nodesWithoutParents > 1) {
445
600k
            auto numSlices = sliceCount(nodesWithoutParents);
446
600k
            auto nodesPerSlice = sliceCapacity(nodesWithoutParents, numSlices);
447
448
600k
            size_t parentNodesAdded = 0;
449
1.55M
            for (size_t j = 0; j < numSlices; j++) {
450
952k
                auto nodesInSlice = std::min(nodesWithoutParents, nodesPerSlice);
451
952k
                nodesWithoutParents -= nodesInSlice;
452
453
952k
                parentNodesAdded += static_cast<size_t>(std::ceil(
454
952k
                        static_cast<double>(nodesInSlice) / static_cast<double>(nodeCapacity)));
455
952k
            }
456
457
600k
            nodesInTree += parentNodesAdded;
458
600k
            nodesWithoutParents = parentNodesAdded;
459
600k
        }
460
461
453k
        return nodesInTree;
462
453k
    }
geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits>::treeSize(unsigned long)
Line
Count
Source
440
45.8k
    size_t treeSize(size_t numLeafNodes) {
441
45.8k
        size_t nodesInTree = numLeafNodes;
442
443
45.8k
        size_t nodesWithoutParents = numLeafNodes;
444
121k
        while (nodesWithoutParents > 1) {
445
75.4k
            auto numSlices = sliceCount(nodesWithoutParents);
446
75.4k
            auto nodesPerSlice = sliceCapacity(nodesWithoutParents, numSlices);
447
448
75.4k
            size_t parentNodesAdded = 0;
449
261k
            for (size_t j = 0; j < numSlices; j++) {
450
186k
                auto nodesInSlice = std::min(nodesWithoutParents, nodesPerSlice);
451
186k
                nodesWithoutParents -= nodesInSlice;
452
453
186k
                parentNodesAdded += static_cast<size_t>(std::ceil(
454
186k
                        static_cast<double>(nodesInSlice) / static_cast<double>(nodeCapacity)));
455
186k
            }
456
457
75.4k
            nodesInTree += parentNodesAdded;
458
75.4k
            nodesWithoutParents = parentNodesAdded;
459
75.4k
        }
460
461
45.8k
        return nodesInTree;
462
45.8k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<unsigned long, geos::index::strtree::EnvelopeTraits>::treeSize(unsigned long)
geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::treeSize(unsigned long)
Line
Count
Source
440
10.8k
    size_t treeSize(size_t numLeafNodes) {
441
10.8k
        size_t nodesInTree = numLeafNodes;
442
443
10.8k
        size_t nodesWithoutParents = numLeafNodes;
444
23.3k
        while (nodesWithoutParents > 1) {
445
12.5k
            auto numSlices = sliceCount(nodesWithoutParents);
446
12.5k
            auto nodesPerSlice = sliceCapacity(nodesWithoutParents, numSlices);
447
448
12.5k
            size_t parentNodesAdded = 0;
449
80.0k
            for (size_t j = 0; j < numSlices; j++) {
450
67.4k
                auto nodesInSlice = std::min(nodesWithoutParents, nodesPerSlice);
451
67.4k
                nodesWithoutParents -= nodesInSlice;
452
453
67.4k
                parentNodesAdded += static_cast<size_t>(std::ceil(
454
67.4k
                        static_cast<double>(nodesInSlice) / static_cast<double>(nodeCapacity)));
455
67.4k
            }
456
457
12.5k
            nodesInTree += parentNodesAdded;
458
12.5k
            nodesWithoutParents = parentNodesAdded;
459
12.5k
        }
460
461
10.8k
        return nodesInTree;
462
10.8k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::treeSize(unsigned long)
geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::treeSize(unsigned long)
Line
Count
Source
440
5.90k
    size_t treeSize(size_t numLeafNodes) {
441
5.90k
        size_t nodesInTree = numLeafNodes;
442
443
5.90k
        size_t nodesWithoutParents = numLeafNodes;
444
8.13k
        while (nodesWithoutParents > 1) {
445
2.23k
            auto numSlices = sliceCount(nodesWithoutParents);
446
2.23k
            auto nodesPerSlice = sliceCapacity(nodesWithoutParents, numSlices);
447
448
2.23k
            size_t parentNodesAdded = 0;
449
4.46k
            for (size_t j = 0; j < numSlices; j++) {
450
2.23k
                auto nodesInSlice = std::min(nodesWithoutParents, nodesPerSlice);
451
2.23k
                nodesWithoutParents -= nodesInSlice;
452
453
2.23k
                parentNodesAdded += static_cast<size_t>(std::ceil(
454
2.23k
                        static_cast<double>(nodesInSlice) / static_cast<double>(nodeCapacity)));
455
2.23k
            }
456
457
2.23k
            nodesInTree += parentNodesAdded;
458
2.23k
            nodesWithoutParents = parentNodesAdded;
459
2.23k
        }
460
461
5.90k
        return nodesInTree;
462
5.90k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::treeSize(unsigned long)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::treeSize(unsigned long)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::treeSize(unsigned long)
463
464
646k
    void createParentNodes(const NodeListIterator& begin, size_t number) {
465
        // Arrange child nodes in two dimensions.
466
        // First, divide them into vertical slices of a given size (left-to-right)
467
        // Then create nodes within those slices (bottom-to-top)
468
646k
        auto numSlices = sliceCount(number);
469
646k
        std::size_t nodesPerSlice = sliceCapacity(number, numSlices);
470
471
        // We could sort all of the nodes here, but we don't actually need them to be
472
        // completely sorted. They need to be sorted enough for each node to end up
473
        // in the right vertical slice, but their relative position within the slice
474
        // doesn't matter. So we do a partial sort for each slice below instead.
475
646k
        auto end = begin + static_cast<long>(number);
476
646k
        sortNodesX(begin, end);
477
478
646k
        auto startOfSlice = begin;
479
1.72M
        for (decltype(numSlices) j = 0; j < numSlices; j++) {
480
            // end iterator is being invalidated at each iteration
481
1.08M
            end = begin + static_cast<long>(number);
482
1.08M
            auto nodesRemaining = static_cast<size_t>(std::distance(startOfSlice, end));
483
1.08M
            auto nodesInSlice = std::min(nodesRemaining, nodesPerSlice);
484
1.08M
            auto endOfSlice = std::next(startOfSlice, static_cast<long>(nodesInSlice));
485
486
            // Make sure that every node that should be in this slice ends up somewhere
487
            // between startOfSlice and endOfSlice. We don't require any ordering among
488
            // nodes between startOfSlice and endOfSlice.
489
            //partialSortNodes(startOfSlice, endOfSlice, end);
490
491
1.08M
            addParentNodesFromVerticalSlice(startOfSlice, endOfSlice);
492
493
1.08M
            startOfSlice = endOfSlice;
494
1.08M
        }
495
646k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<void*, geos::index::strtree::EnvelopeTraits>::createParentNodes(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<void*, geos::index::strtree::EnvelopeTraits>*> const&, unsigned long)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::createParentNodes(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>*> const&, unsigned long)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::createParentNodes(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>*> const&, unsigned long)
geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::createParentNodes(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>*> const&, unsigned long)
Line
Count
Source
464
600k
    void createParentNodes(const NodeListIterator& begin, size_t number) {
465
        // Arrange child nodes in two dimensions.
466
        // First, divide them into vertical slices of a given size (left-to-right)
467
        // Then create nodes within those slices (bottom-to-top)
468
600k
        auto numSlices = sliceCount(number);
469
600k
        std::size_t nodesPerSlice = sliceCapacity(number, numSlices);
470
471
        // We could sort all of the nodes here, but we don't actually need them to be
472
        // completely sorted. They need to be sorted enough for each node to end up
473
        // in the right vertical slice, but their relative position within the slice
474
        // doesn't matter. So we do a partial sort for each slice below instead.
475
600k
        auto end = begin + static_cast<long>(number);
476
600k
        sortNodesX(begin, end);
477
478
600k
        auto startOfSlice = begin;
479
1.55M
        for (decltype(numSlices) j = 0; j < numSlices; j++) {
480
            // end iterator is being invalidated at each iteration
481
952k
            end = begin + static_cast<long>(number);
482
952k
            auto nodesRemaining = static_cast<size_t>(std::distance(startOfSlice, end));
483
952k
            auto nodesInSlice = std::min(nodesRemaining, nodesPerSlice);
484
952k
            auto endOfSlice = std::next(startOfSlice, static_cast<long>(nodesInSlice));
485
486
            // Make sure that every node that should be in this slice ends up somewhere
487
            // between startOfSlice and endOfSlice. We don't require any ordering among
488
            // nodes between startOfSlice and endOfSlice.
489
            //partialSortNodes(startOfSlice, endOfSlice, end);
490
491
952k
            addParentNodesFromVerticalSlice(startOfSlice, endOfSlice);
492
493
952k
            startOfSlice = endOfSlice;
494
952k
        }
495
600k
    }
geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits>::createParentNodes(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits>*> const&, unsigned long)
Line
Count
Source
464
37.7k
    void createParentNodes(const NodeListIterator& begin, size_t number) {
465
        // Arrange child nodes in two dimensions.
466
        // First, divide them into vertical slices of a given size (left-to-right)
467
        // Then create nodes within those slices (bottom-to-top)
468
37.7k
        auto numSlices = sliceCount(number);
469
37.7k
        std::size_t nodesPerSlice = sliceCapacity(number, numSlices);
470
471
        // We could sort all of the nodes here, but we don't actually need them to be
472
        // completely sorted. They need to be sorted enough for each node to end up
473
        // in the right vertical slice, but their relative position within the slice
474
        // doesn't matter. So we do a partial sort for each slice below instead.
475
37.7k
        auto end = begin + static_cast<long>(number);
476
37.7k
        sortNodesX(begin, end);
477
478
37.7k
        auto startOfSlice = begin;
479
130k
        for (decltype(numSlices) j = 0; j < numSlices; j++) {
480
            // end iterator is being invalidated at each iteration
481
93.0k
            end = begin + static_cast<long>(number);
482
93.0k
            auto nodesRemaining = static_cast<size_t>(std::distance(startOfSlice, end));
483
93.0k
            auto nodesInSlice = std::min(nodesRemaining, nodesPerSlice);
484
93.0k
            auto endOfSlice = std::next(startOfSlice, static_cast<long>(nodesInSlice));
485
486
            // Make sure that every node that should be in this slice ends up somewhere
487
            // between startOfSlice and endOfSlice. We don't require any ordering among
488
            // nodes between startOfSlice and endOfSlice.
489
            //partialSortNodes(startOfSlice, endOfSlice, end);
490
491
93.0k
            addParentNodesFromVerticalSlice(startOfSlice, endOfSlice);
492
493
93.0k
            startOfSlice = endOfSlice;
494
93.0k
        }
495
37.7k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<unsigned long, geos::index::strtree::EnvelopeTraits>::createParentNodes(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<unsigned long, geos::index::strtree::EnvelopeTraits>*> const&, unsigned long)
geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::createParentNodes(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>*> const&, unsigned long)
Line
Count
Source
464
6.28k
    void createParentNodes(const NodeListIterator& begin, size_t number) {
465
        // Arrange child nodes in two dimensions.
466
        // First, divide them into vertical slices of a given size (left-to-right)
467
        // Then create nodes within those slices (bottom-to-top)
468
6.28k
        auto numSlices = sliceCount(number);
469
6.28k
        std::size_t nodesPerSlice = sliceCapacity(number, numSlices);
470
471
        // We could sort all of the nodes here, but we don't actually need them to be
472
        // completely sorted. They need to be sorted enough for each node to end up
473
        // in the right vertical slice, but their relative position within the slice
474
        // doesn't matter. So we do a partial sort for each slice below instead.
475
6.28k
        auto end = begin + static_cast<long>(number);
476
6.28k
        sortNodesX(begin, end);
477
478
6.28k
        auto startOfSlice = begin;
479
40.0k
        for (decltype(numSlices) j = 0; j < numSlices; j++) {
480
            // end iterator is being invalidated at each iteration
481
33.7k
            end = begin + static_cast<long>(number);
482
33.7k
            auto nodesRemaining = static_cast<size_t>(std::distance(startOfSlice, end));
483
33.7k
            auto nodesInSlice = std::min(nodesRemaining, nodesPerSlice);
484
33.7k
            auto endOfSlice = std::next(startOfSlice, static_cast<long>(nodesInSlice));
485
486
            // Make sure that every node that should be in this slice ends up somewhere
487
            // between startOfSlice and endOfSlice. We don't require any ordering among
488
            // nodes between startOfSlice and endOfSlice.
489
            //partialSortNodes(startOfSlice, endOfSlice, end);
490
491
33.7k
            addParentNodesFromVerticalSlice(startOfSlice, endOfSlice);
492
493
33.7k
            startOfSlice = endOfSlice;
494
33.7k
        }
495
6.28k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::createParentNodes(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>*> const&, unsigned long)
geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::createParentNodes(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>*> const&, unsigned long)
Line
Count
Source
464
2.23k
    void createParentNodes(const NodeListIterator& begin, size_t number) {
465
        // Arrange child nodes in two dimensions.
466
        // First, divide them into vertical slices of a given size (left-to-right)
467
        // Then create nodes within those slices (bottom-to-top)
468
2.23k
        auto numSlices = sliceCount(number);
469
2.23k
        std::size_t nodesPerSlice = sliceCapacity(number, numSlices);
470
471
        // We could sort all of the nodes here, but we don't actually need them to be
472
        // completely sorted. They need to be sorted enough for each node to end up
473
        // in the right vertical slice, but their relative position within the slice
474
        // doesn't matter. So we do a partial sort for each slice below instead.
475
2.23k
        auto end = begin + static_cast<long>(number);
476
2.23k
        sortNodesX(begin, end);
477
478
2.23k
        auto startOfSlice = begin;
479
4.46k
        for (decltype(numSlices) j = 0; j < numSlices; j++) {
480
            // end iterator is being invalidated at each iteration
481
2.23k
            end = begin + static_cast<long>(number);
482
2.23k
            auto nodesRemaining = static_cast<size_t>(std::distance(startOfSlice, end));
483
2.23k
            auto nodesInSlice = std::min(nodesRemaining, nodesPerSlice);
484
2.23k
            auto endOfSlice = std::next(startOfSlice, static_cast<long>(nodesInSlice));
485
486
            // Make sure that every node that should be in this slice ends up somewhere
487
            // between startOfSlice and endOfSlice. We don't require any ordering among
488
            // nodes between startOfSlice and endOfSlice.
489
            //partialSortNodes(startOfSlice, endOfSlice, end);
490
491
2.23k
            addParentNodesFromVerticalSlice(startOfSlice, endOfSlice);
492
493
2.23k
            startOfSlice = endOfSlice;
494
2.23k
        }
495
2.23k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::createParentNodes(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>*> const&, unsigned long)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::createParentNodes(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>*> const&, unsigned long)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::createParentNodes(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>*> const&, unsigned long)
496
497
1.08M
    void addParentNodesFromVerticalSlice(const NodeListIterator& begin, const NodeListIterator& end) {
498
1.08M
        if (BoundsTraits::TwoDimensional::value) {
499
988k
            sortNodesY(begin, end);
500
988k
        }
501
502
        // Arrange the nodes vertically and full up parent nodes sequentially until they're full.
503
        // A possible improvement would be to rework this such so that if we have 81 nodes we
504
        // put 9 into each parent instead of 10 or 1.
505
1.08M
        auto firstChild = begin;
506
7.03M
        while (firstChild != end) {
507
5.94M
            auto childrenRemaining = static_cast<size_t>(std::distance(firstChild, end));
508
5.94M
            auto childrenForNode = std::min(nodeCapacity, childrenRemaining);
509
5.94M
            auto lastChild = std::next(firstChild, static_cast<long>(childrenForNode));
510
511
            //partialSortNodes(firstChild, lastChild, end);
512
513
            // Ideally we would be able to store firstChild and lastChild instead of
514
            // having to convert them to pointers, but I wasn't sure how to access
515
            // the NodeListIterator type from within Node without creating some weird
516
            // circular dependency.
517
5.94M
            const Node *ptr_first = &*firstChild;
518
5.94M
            const Node *ptr_end = ptr_first + childrenForNode;
519
520
5.94M
            createBranchNode(ptr_first, ptr_end);
521
5.94M
            firstChild = lastChild;
522
5.94M
        }
523
1.08M
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<void*, geos::index::strtree::EnvelopeTraits>::addParentNodesFromVerticalSlice(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<void*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<void*, geos::index::strtree::EnvelopeTraits>*> const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::addParentNodesFromVerticalSlice(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>*> const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::addParentNodesFromVerticalSlice(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>*> const&)
geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::addParentNodesFromVerticalSlice(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>*> const&)
Line
Count
Source
497
952k
    void addParentNodesFromVerticalSlice(const NodeListIterator& begin, const NodeListIterator& end) {
498
952k
        if (BoundsTraits::TwoDimensional::value) {
499
952k
            sortNodesY(begin, end);
500
952k
        }
501
502
        // Arrange the nodes vertically and full up parent nodes sequentially until they're full.
503
        // A possible improvement would be to rework this such so that if we have 81 nodes we
504
        // put 9 into each parent instead of 10 or 1.
505
952k
        auto firstChild = begin;
506
5.47M
        while (firstChild != end) {
507
4.52M
            auto childrenRemaining = static_cast<size_t>(std::distance(firstChild, end));
508
4.52M
            auto childrenForNode = std::min(nodeCapacity, childrenRemaining);
509
4.52M
            auto lastChild = std::next(firstChild, static_cast<long>(childrenForNode));
510
511
            //partialSortNodes(firstChild, lastChild, end);
512
513
            // Ideally we would be able to store firstChild and lastChild instead of
514
            // having to convert them to pointers, but I wasn't sure how to access
515
            // the NodeListIterator type from within Node without creating some weird
516
            // circular dependency.
517
4.52M
            const Node *ptr_first = &*firstChild;
518
4.52M
            const Node *ptr_end = ptr_first + childrenForNode;
519
520
4.52M
            createBranchNode(ptr_first, ptr_end);
521
4.52M
            firstChild = lastChild;
522
4.52M
        }
523
952k
    }
geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits>::addParentNodesFromVerticalSlice(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits>*> const&)
Line
Count
Source
497
93.0k
    void addParentNodesFromVerticalSlice(const NodeListIterator& begin, const NodeListIterator& end) {
498
93.0k
        if (BoundsTraits::TwoDimensional::value) {
499
0
            sortNodesY(begin, end);
500
0
        }
501
502
        // Arrange the nodes vertically and full up parent nodes sequentially until they're full.
503
        // A possible improvement would be to rework this such so that if we have 81 nodes we
504
        // put 9 into each parent instead of 10 or 1.
505
93.0k
        auto firstChild = begin;
506
957k
        while (firstChild != end) {
507
864k
            auto childrenRemaining = static_cast<size_t>(std::distance(firstChild, end));
508
864k
            auto childrenForNode = std::min(nodeCapacity, childrenRemaining);
509
864k
            auto lastChild = std::next(firstChild, static_cast<long>(childrenForNode));
510
511
            //partialSortNodes(firstChild, lastChild, end);
512
513
            // Ideally we would be able to store firstChild and lastChild instead of
514
            // having to convert them to pointers, but I wasn't sure how to access
515
            // the NodeListIterator type from within Node without creating some weird
516
            // circular dependency.
517
864k
            const Node *ptr_first = &*firstChild;
518
864k
            const Node *ptr_end = ptr_first + childrenForNode;
519
520
864k
            createBranchNode(ptr_first, ptr_end);
521
864k
            firstChild = lastChild;
522
864k
        }
523
93.0k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<unsigned long, geos::index::strtree::EnvelopeTraits>::addParentNodesFromVerticalSlice(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<unsigned long, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<unsigned long, geos::index::strtree::EnvelopeTraits>*> const&)
geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::addParentNodesFromVerticalSlice(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>*> const&)
Line
Count
Source
497
33.7k
    void addParentNodesFromVerticalSlice(const NodeListIterator& begin, const NodeListIterator& end) {
498
33.7k
        if (BoundsTraits::TwoDimensional::value) {
499
33.7k
            sortNodesY(begin, end);
500
33.7k
        }
501
502
        // Arrange the nodes vertically and full up parent nodes sequentially until they're full.
503
        // A possible improvement would be to rework this such so that if we have 81 nodes we
504
        // put 9 into each parent instead of 10 or 1.
505
33.7k
        auto firstChild = begin;
506
589k
        while (firstChild != end) {
507
555k
            auto childrenRemaining = static_cast<size_t>(std::distance(firstChild, end));
508
555k
            auto childrenForNode = std::min(nodeCapacity, childrenRemaining);
509
555k
            auto lastChild = std::next(firstChild, static_cast<long>(childrenForNode));
510
511
            //partialSortNodes(firstChild, lastChild, end);
512
513
            // Ideally we would be able to store firstChild and lastChild instead of
514
            // having to convert them to pointers, but I wasn't sure how to access
515
            // the NodeListIterator type from within Node without creating some weird
516
            // circular dependency.
517
555k
            const Node *ptr_first = &*firstChild;
518
555k
            const Node *ptr_end = ptr_first + childrenForNode;
519
520
555k
            createBranchNode(ptr_first, ptr_end);
521
555k
            firstChild = lastChild;
522
555k
        }
523
33.7k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::addParentNodesFromVerticalSlice(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>*> const&)
geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::addParentNodesFromVerticalSlice(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>*> const&)
Line
Count
Source
497
2.23k
    void addParentNodesFromVerticalSlice(const NodeListIterator& begin, const NodeListIterator& end) {
498
2.23k
        if (BoundsTraits::TwoDimensional::value) {
499
2.23k
            sortNodesY(begin, end);
500
2.23k
        }
501
502
        // Arrange the nodes vertically and full up parent nodes sequentially until they're full.
503
        // A possible improvement would be to rework this such so that if we have 81 nodes we
504
        // put 9 into each parent instead of 10 or 1.
505
2.23k
        auto firstChild = begin;
506
4.46k
        while (firstChild != end) {
507
2.23k
            auto childrenRemaining = static_cast<size_t>(std::distance(firstChild, end));
508
2.23k
            auto childrenForNode = std::min(nodeCapacity, childrenRemaining);
509
2.23k
            auto lastChild = std::next(firstChild, static_cast<long>(childrenForNode));
510
511
            //partialSortNodes(firstChild, lastChild, end);
512
513
            // Ideally we would be able to store firstChild and lastChild instead of
514
            // having to convert them to pointers, but I wasn't sure how to access
515
            // the NodeListIterator type from within Node without creating some weird
516
            // circular dependency.
517
2.23k
            const Node *ptr_first = &*firstChild;
518
2.23k
            const Node *ptr_end = ptr_first + childrenForNode;
519
520
2.23k
            createBranchNode(ptr_first, ptr_end);
521
2.23k
            firstChild = lastChild;
522
2.23k
        }
523
2.23k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::addParentNodesFromVerticalSlice(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>*> const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::addParentNodesFromVerticalSlice(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>*> const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::addParentNodesFromVerticalSlice(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>*> const&)
524
525
646k
    void sortNodesX(const NodeListIterator& begin, const NodeListIterator& end) {
526
508M
        std::sort(begin, end, [](const Node &a, const Node &b) {
527
508M
            return BoundsTraits::getX(a.getBounds()) < BoundsTraits::getX(b.getBounds());
528
508M
        });
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<void*, geos::index::strtree::EnvelopeTraits>::sortNodesX(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<void*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<void*, geos::index::strtree::EnvelopeTraits>*> const&)::{lambda(geos::index::strtree::TemplateSTRNode<void*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<void*, geos::index::strtree::EnvelopeTraits> const&)#1}::operator()(geos::index::strtree::TemplateSTRNode<void*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<void*, geos::index::strtree::EnvelopeTraits> const&) const
geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits>::sortNodesX(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits>*> const&)::{lambda(geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits> const&, geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits> const&)#1}::operator()(geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits> const&, geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits> const&) const
Line
Count
Source
526
53.2M
        std::sort(begin, end, [](const Node &a, const Node &b) {
527
53.2M
            return BoundsTraits::getX(a.getBounds()) < BoundsTraits::getX(b.getBounds());
528
53.2M
        });
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<unsigned long, geos::index::strtree::EnvelopeTraits>::sortNodesX(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<unsigned long, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<unsigned long, geos::index::strtree::EnvelopeTraits>*> const&)::{lambda(geos::index::strtree::TemplateSTRNode<unsigned long, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<unsigned long, geos::index::strtree::EnvelopeTraits> const&)#1}::operator()(geos::index::strtree::TemplateSTRNode<unsigned long, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<unsigned long, geos::index::strtree::EnvelopeTraits> const&) const
geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::sortNodesX(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>*> const&)::{lambda(geos::index::strtree::TemplateSTRNode<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits> const&)#1}::operator()(geos::index::strtree::TemplateSTRNode<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits> const&) const
Line
Count
Source
526
27.7M
        std::sort(begin, end, [](const Node &a, const Node &b) {
527
27.7M
            return BoundsTraits::getX(a.getBounds()) < BoundsTraits::getX(b.getBounds());
528
27.7M
        });
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::sortNodesX(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>*> const&)::{lambda(geos::index::strtree::TemplateSTRNode<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits> const&)#1}::operator()(geos::index::strtree::TemplateSTRNode<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits> const&) const
geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::sortNodesX(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>*> const&)::{lambda(geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits> const&)#1}::operator()(geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits> const&) const
Line
Count
Source
526
427M
        std::sort(begin, end, [](const Node &a, const Node &b) {
527
427M
            return BoundsTraits::getX(a.getBounds()) < BoundsTraits::getX(b.getBounds());
528
427M
        });
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::sortNodesX(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>*> const&)::{lambda(geos::index::strtree::TemplateSTRNode<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits> const&)#1}::operator()(geos::index::strtree::TemplateSTRNode<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits> const&) const
geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::sortNodesX(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>*> const&)::{lambda(geos::index::strtree::TemplateSTRNode<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits> const&)#1}::operator()(geos::index::strtree::TemplateSTRNode<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits> const&) const
Line
Count
Source
526
7.42k
        std::sort(begin, end, [](const Node &a, const Node &b) {
527
7.42k
            return BoundsTraits::getX(a.getBounds()) < BoundsTraits::getX(b.getBounds());
528
7.42k
        });
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::sortNodesX(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>*> const&)::{lambda(geos::index::strtree::TemplateSTRNode<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits> const&)#1}::operator()(geos::index::strtree::TemplateSTRNode<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits> const&) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::sortNodesX(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>*> const&)::{lambda(geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits> const&)#1}::operator()(geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits> const&) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::sortNodesX(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>*> const&)::{lambda(geos::index::strtree::TemplateSTRNode<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits> const&)#1}::operator()(geos::index::strtree::TemplateSTRNode<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits> const&) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::sortNodesX(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>*> const&)::{lambda(geos::index::strtree::TemplateSTRNode<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits> const&)#1}::operator()(geos::index::strtree::TemplateSTRNode<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits> const&) const
529
646k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<void*, geos::index::strtree::EnvelopeTraits>::sortNodesX(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<void*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<void*, geos::index::strtree::EnvelopeTraits>*> const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::sortNodesX(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>*> const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::sortNodesX(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>*> const&)
geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::sortNodesX(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>*> const&)
Line
Count
Source
525
600k
    void sortNodesX(const NodeListIterator& begin, const NodeListIterator& end) {
526
600k
        std::sort(begin, end, [](const Node &a, const Node &b) {
527
600k
            return BoundsTraits::getX(a.getBounds()) < BoundsTraits::getX(b.getBounds());
528
600k
        });
529
600k
    }
geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits>::sortNodesX(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits>*> const&)
Line
Count
Source
525
37.7k
    void sortNodesX(const NodeListIterator& begin, const NodeListIterator& end) {
526
37.7k
        std::sort(begin, end, [](const Node &a, const Node &b) {
527
37.7k
            return BoundsTraits::getX(a.getBounds()) < BoundsTraits::getX(b.getBounds());
528
37.7k
        });
529
37.7k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<unsigned long, geos::index::strtree::EnvelopeTraits>::sortNodesX(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<unsigned long, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<unsigned long, geos::index::strtree::EnvelopeTraits>*> const&)
geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::sortNodesX(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>*> const&)
Line
Count
Source
525
6.28k
    void sortNodesX(const NodeListIterator& begin, const NodeListIterator& end) {
526
6.28k
        std::sort(begin, end, [](const Node &a, const Node &b) {
527
6.28k
            return BoundsTraits::getX(a.getBounds()) < BoundsTraits::getX(b.getBounds());
528
6.28k
        });
529
6.28k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::sortNodesX(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>*> const&)
geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::sortNodesX(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>*> const&)
Line
Count
Source
525
2.23k
    void sortNodesX(const NodeListIterator& begin, const NodeListIterator& end) {
526
2.23k
        std::sort(begin, end, [](const Node &a, const Node &b) {
527
2.23k
            return BoundsTraits::getX(a.getBounds()) < BoundsTraits::getX(b.getBounds());
528
2.23k
        });
529
2.23k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::sortNodesX(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>*> const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::sortNodesX(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>*> const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::sortNodesX(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>*> const&)
530
531
988k
    void sortNodesY(const NodeListIterator& begin, const NodeListIterator& end) {
532
331M
        std::sort(begin, end, [](const Node &a, const Node &b) {
533
331M
            return BoundsTraits::getY(a.getBounds()) < BoundsTraits::getY(b.getBounds());
534
331M
        });
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<void*, geos::index::strtree::EnvelopeTraits>::sortNodesY(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<void*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<void*, geos::index::strtree::EnvelopeTraits>*> const&)::{lambda(geos::index::strtree::TemplateSTRNode<void*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<void*, geos::index::strtree::EnvelopeTraits> const&)#1}::operator()(geos::index::strtree::TemplateSTRNode<void*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<void*, geos::index::strtree::EnvelopeTraits> const&) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<unsigned long, geos::index::strtree::EnvelopeTraits>::sortNodesY(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<unsigned long, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<unsigned long, geos::index::strtree::EnvelopeTraits>*> const&)::{lambda(geos::index::strtree::TemplateSTRNode<unsigned long, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<unsigned long, geos::index::strtree::EnvelopeTraits> const&)#1}::operator()(geos::index::strtree::TemplateSTRNode<unsigned long, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<unsigned long, geos::index::strtree::EnvelopeTraits> const&) const
geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::sortNodesY(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>*> const&)::{lambda(geos::index::strtree::TemplateSTRNode<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits> const&)#1}::operator()(geos::index::strtree::TemplateSTRNode<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits> const&) const
Line
Count
Source
532
39.6M
        std::sort(begin, end, [](const Node &a, const Node &b) {
533
39.6M
            return BoundsTraits::getY(a.getBounds()) < BoundsTraits::getY(b.getBounds());
534
39.6M
        });
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::sortNodesY(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>*> const&)::{lambda(geos::index::strtree::TemplateSTRNode<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits> const&)#1}::operator()(geos::index::strtree::TemplateSTRNode<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits> const&) const
geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::sortNodesY(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>*> const&)::{lambda(geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits> const&)#1}::operator()(geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits> const&) const
Line
Count
Source
532
291M
        std::sort(begin, end, [](const Node &a, const Node &b) {
533
291M
            return BoundsTraits::getY(a.getBounds()) < BoundsTraits::getY(b.getBounds());
534
291M
        });
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::sortNodesY(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>*> const&)::{lambda(geos::index::strtree::TemplateSTRNode<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits> const&)#1}::operator()(geos::index::strtree::TemplateSTRNode<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits> const&) const
geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::sortNodesY(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>*> const&)::{lambda(geos::index::strtree::TemplateSTRNode<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits> const&)#1}::operator()(geos::index::strtree::TemplateSTRNode<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits> const&) const
Line
Count
Source
532
7.11k
        std::sort(begin, end, [](const Node &a, const Node &b) {
533
7.11k
            return BoundsTraits::getY(a.getBounds()) < BoundsTraits::getY(b.getBounds());
534
7.11k
        });
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::sortNodesY(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>*> const&)::{lambda(geos::index::strtree::TemplateSTRNode<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits> const&)#1}::operator()(geos::index::strtree::TemplateSTRNode<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits> const&) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::sortNodesY(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>*> const&)::{lambda(geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits> const&)#1}::operator()(geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits> const&) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::sortNodesY(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>*> const&)::{lambda(geos::index::strtree::TemplateSTRNode<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits> const&)#1}::operator()(geos::index::strtree::TemplateSTRNode<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits> const&) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::sortNodesY(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>*> const&)::{lambda(geos::index::strtree::TemplateSTRNode<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits> const&)#1}::operator()(geos::index::strtree::TemplateSTRNode<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits> const&) const
535
988k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<void*, geos::index::strtree::EnvelopeTraits>::sortNodesY(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<void*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<void*, geos::index::strtree::EnvelopeTraits>*> const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::sortNodesY(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>*> const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::sortNodesY(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>*> const&)
geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::sortNodesY(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>*> const&)
Line
Count
Source
531
952k
    void sortNodesY(const NodeListIterator& begin, const NodeListIterator& end) {
532
952k
        std::sort(begin, end, [](const Node &a, const Node &b) {
533
952k
            return BoundsTraits::getY(a.getBounds()) < BoundsTraits::getY(b.getBounds());
534
952k
        });
535
952k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits>::sortNodesY(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits>*> const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<unsigned long, geos::index::strtree::EnvelopeTraits>::sortNodesY(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<unsigned long, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<unsigned long, geos::index::strtree::EnvelopeTraits>*> const&)
geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::sortNodesY(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>*> const&)
Line
Count
Source
531
33.7k
    void sortNodesY(const NodeListIterator& begin, const NodeListIterator& end) {
532
33.7k
        std::sort(begin, end, [](const Node &a, const Node &b) {
533
33.7k
            return BoundsTraits::getY(a.getBounds()) < BoundsTraits::getY(b.getBounds());
534
33.7k
        });
535
33.7k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::sortNodesY(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>*> const&)
geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::sortNodesY(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>*> const&)
Line
Count
Source
531
2.23k
    void sortNodesY(const NodeListIterator& begin, const NodeListIterator& end) {
532
2.23k
        std::sort(begin, end, [](const Node &a, const Node &b) {
533
2.23k
            return BoundsTraits::getY(a.getBounds()) < BoundsTraits::getY(b.getBounds());
534
2.23k
        });
535
2.23k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::sortNodesY(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>*> const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::sortNodesY(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>*> const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::sortNodesY(std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>*> const&, std::__1::__wrap_iter<geos::index::strtree::TemplateSTRNode<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>*> const&)
536
537
    // Helper function to visit an item using a visitor that has no return value.
538
    // In this case, we will always return true, indicating that querying should
539
    // continue.
540
    template<typename Visitor,
541
            typename std::enable_if<std::is_void<decltype(std::declval<Visitor>()(std::declval<ItemType>()))>::value, std::nullptr_t>::type = nullptr >
542
    bool visitLeaf(Visitor&& visitor, const Node& node)
543
4.57M
    {
544
4.57M
        visitor(node.getItem());
545
4.57M
        return true;
546
4.57M
    }
Unexecuted instantiation: _ZN4geos5index7strtree19TemplateSTRtreeImplIPvNS1_14EnvelopeTraitsEE9visitLeafIRZNS1_15TemplateSTRtreeIS3_S4_E5queryEPKNS_4geom8EnvelopeERNSt3__16vectorIS3_NSD_9allocatorIS3_EEEEEUlPKvE_TnNSD_9enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSD_7declvalB8ne220000IS3_EEDTclsr3stdE9__declvalISO_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSO_RKNS1_15TemplateSTRNodeIS3_S4_EE
Unexecuted instantiation: _ZN4geos5index7strtree19TemplateSTRtreeImplIPvNS1_14EnvelopeTraitsEE9visitLeafIRZNS1_15TemplateSTRtreeIS3_S4_E5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorEEUlPKvE_TnNSt3__19enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSJ_7declvalB8ne220000IS3_EEDTclsr3stdE9__declvalISL_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSL_RKNS1_15TemplateSTRNodeIS3_S4_EE
Unexecuted instantiation: _ZN4geos5index7strtree19TemplateSTRtreeImplIPNS_9algorithm6locate25IndexedPointInAreaLocatorENS1_14EnvelopeTraitsEE9visitLeafIRZNS1_15TemplateSTRtreeIS6_S7_E5queryEPKNS_4geom8EnvelopeERNSt3__16vectorIPvNSG_9allocatorISI_EEEEEUlPKS5_E_TnNSG_9enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSG_7declvalB8ne220000IS6_EEDTclsr3stdE9__declvalISS_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSS_RKNS1_15TemplateSTRNodeIS6_S7_EE
Unexecuted instantiation: _ZN4geos5index7strtree19TemplateSTRtreeImplIPNS_9algorithm6locate25IndexedPointInAreaLocatorENS1_14EnvelopeTraitsEE9visitLeafIRZNS1_15TemplateSTRtreeIS6_S7_E5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorEEUlPKS5_E_TnNSt3__19enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSM_7declvalB8ne220000IS6_EEDTclsr3stdE9__declvalISO_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSO_RKNS1_15TemplateSTRNodeIS6_S7_EE
Unexecuted instantiation: _ZN4geos5index7strtree19TemplateSTRtreeImplIPKNS_9operation8distance13FacetSequenceENS1_14EnvelopeTraitsEE9visitLeafIRZNS1_15TemplateSTRtreeIS7_S8_E5queryEPKNS_4geom8EnvelopeERNSt3__16vectorIPvNSH_9allocatorISJ_EEEEEUlS7_E_TnNSH_9enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSH_7declvalB8ne220000IS7_EEDTclsr3stdE9__declvalISR_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSR_RKNS1_15TemplateSTRNodeIS7_S8_EE
Unexecuted instantiation: _ZN4geos5index7strtree19TemplateSTRtreeImplIPKNS_9operation8distance13FacetSequenceENS1_14EnvelopeTraitsEE9visitLeafIRZNS1_15TemplateSTRtreeIS7_S8_E5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorEEUlS7_E_TnNSt3__19enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSL_7declvalB8ne220000IS7_EEDTclsr3stdE9__declvalISN_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSN_RKNS1_15TemplateSTRNodeIS7_S8_EE
Unexecuted instantiation: _ZN4geos5index7strtree19TemplateSTRtreeImplIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE9visitLeafIRZNS1_15TemplateSTRtreeIS6_S7_E5queryEPKNS_4geom8EnvelopeERNSt3__16vectorIPvNSG_9allocatorISI_EEEEEUlS6_E_TnNSG_9enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSG_7declvalB8ne220000IS6_EEDTclsr3stdE9__declvalISQ_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSQ_RKNS1_15TemplateSTRNodeIS6_S7_EE
Unexecuted instantiation: _ZN4geos5index7strtree19TemplateSTRtreeImplIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE9visitLeafIRZNS1_15TemplateSTRtreeIS6_S7_E5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorEEUlS6_E_TnNSt3__19enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSK_7declvalB8ne220000IS6_EEDTclsr3stdE9__declvalISM_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSM_RKNS1_15TemplateSTRNodeIS6_S7_EE
IndexedPointInAreaLocator.cpp:_ZN4geos5index7strtree19TemplateSTRtreeImplINS_9algorithm6locate25IndexedPointInAreaLocator11SegmentViewENS1_14IntervalTraitsEE9visitLeafIRZNS5_6locateEPKNS_4geom12CoordinateXYEE3$_0TnNSt3__19enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSG_7declvalB8ne220000IS6_EEDTclsr3stdE9__declvalISI_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSI_RKNS1_15TemplateSTRNodeIS6_S7_EE
Line
Count
Source
543
4.56M
    {
544
4.56M
        visitor(node.getItem());
545
4.56M
        return true;
546
4.56M
    }
Unexecuted instantiation: _ZN4geos5index7strtree19TemplateSTRtreeImplImNS1_14EnvelopeTraitsEE9visitLeafIRZNS4_5queryERKNS_4geom8EnvelopeERNSt3__16vectorImNSA_9allocatorImEEEEEUlRKmE_TnNSA_9enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSA_7declvalB8ne220000ImEEDTclsr3stdE9__declvalISL_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSL_RKNS1_15TemplateSTRNodeImS3_EE
Unexecuted instantiation: _ZN4geos5index7strtree19TemplateSTRtreeImplIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEE9visitLeafIRZNS1_15TemplateSTRtreeIS6_S7_E5queryEPKNS3_8EnvelopeERNSt3__16vectorIPvNSF_9allocatorISH_EEEEEUlS6_E_TnNSF_9enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSF_7declvalB8ne220000IS6_EEDTclsr3stdE9__declvalISP_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSP_RKNS1_15TemplateSTRNodeIS6_S7_EE
Unexecuted instantiation: _ZN4geos5index7strtree19TemplateSTRtreeImplIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEE9visitLeafIRZNS1_15TemplateSTRtreeIS6_S7_E5queryEPKNS3_8EnvelopeERNS0_11ItemVisitorEEUlS6_E_TnNSt3__19enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSJ_7declvalB8ne220000IS6_EEDTclsr3stdE9__declvalISL_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSL_RKNS1_15TemplateSTRNodeIS6_S7_EE
Unexecuted instantiation: CoverageValidator.cpp:_ZN4geos5index7strtree19TemplateSTRtreeImplIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEE9visitLeafIRZNS_8coverage17CoverageValidator8validateES6_RNS1_15TemplateSTRtreeIS6_S7_EEE3$_0TnNSt3__19enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSH_7declvalB8ne220000IS6_EEDTclsr3stdE9__declvalISJ_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSJ_RKNS1_15TemplateSTRNodeIS6_S7_EE
Unexecuted instantiation: _ZN4geos5index7strtree19TemplateSTRtreeImplIPKNS_8coverage14TPVWSimplifier4EdgeENS1_14EnvelopeTraitsEE9visitLeafIRZNS1_15TemplateSTRtreeIS7_S8_E5queryEPKNS_4geom8EnvelopeERNSt3__16vectorIPvNSH_9allocatorISJ_EEEEEUlS7_E_TnNSH_9enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSH_7declvalB8ne220000IS7_EEDTclsr3stdE9__declvalISR_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSR_RKNS1_15TemplateSTRNodeIS7_S8_EE
Unexecuted instantiation: _ZN4geos5index7strtree19TemplateSTRtreeImplIPKNS_8coverage14TPVWSimplifier4EdgeENS1_14EnvelopeTraitsEE9visitLeafIRZNS1_15TemplateSTRtreeIS7_S8_E5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorEEUlS7_E_TnNSt3__19enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSL_7declvalB8ne220000IS7_EEDTclsr3stdE9__declvalISN_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSN_RKNS1_15TemplateSTRNodeIS7_S8_EE
Unexecuted instantiation: _ZN4geos5index7strtree19TemplateSTRtreeImplIPKNS_8coverage14TPVWSimplifier4EdgeENS1_14EnvelopeTraitsEE9visitLeafIRZNS9_5queryERKNS_4geom8EnvelopeERNSt3__16vectorIS7_NSF_9allocatorIS7_EEEEEUlRKS7_E_TnNSF_9enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSF_7declvalB8ne220000IS7_EEDTclsr3stdE9__declvalISQ_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSQ_RKNS1_15TemplateSTRNodeIS7_S8_EE
Unexecuted instantiation: DBSCANClusterFinder.cpp:_ZN4geos5index7strtree19TemplateSTRtreeImplImNS1_14EnvelopeTraitsEE9visitLeafIRZNS_9operation7cluster19DBSCANClusterFinder7processERKNSt3__16vectorIPKNS_4geom8GeometryENS9_9allocatorISE_EEEERNS1_15TemplateSTRtreeImS3_EERNS7_9UnionFindEE3$_0TnNS9_9enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNS9_7declvalB8ne220000ImEEDTclsr3stdE9__declvalISS_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSS_RKNS1_15TemplateSTRNodeImS3_EE
Unexecuted instantiation: _ZN4geos5index7strtree19TemplateSTRtreeImplIPNS_9operation9overlayng15OverlayEdgeRingENS1_14EnvelopeTraitsEE9visitLeafIRZNS1_15TemplateSTRtreeIS6_S7_E5queryEPKNS_4geom8EnvelopeERNSt3__16vectorIPvNSG_9allocatorISI_EEEEEUlPKS5_E_TnNSG_9enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSG_7declvalB8ne220000IS6_EEDTclsr3stdE9__declvalISS_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSS_RKNS1_15TemplateSTRNodeIS6_S7_EE
Unexecuted instantiation: _ZN4geos5index7strtree19TemplateSTRtreeImplIPNS_9operation9overlayng15OverlayEdgeRingENS1_14EnvelopeTraitsEE9visitLeafIRZNS1_15TemplateSTRtreeIS6_S7_E5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorEEUlPKS5_E_TnNSt3__19enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSM_7declvalB8ne220000IS6_EEDTclsr3stdE9__declvalISO_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSO_RKNS1_15TemplateSTRNodeIS6_S7_EE
_ZN4geos5index7strtree19TemplateSTRtreeImplIPNS_9operation9overlayng15OverlayEdgeRingENS1_14EnvelopeTraitsEE9visitLeafIRZNS8_5queryERKNS_4geom8EnvelopeERNSt3__16vectorIS6_NSE_9allocatorIS6_EEEEEUlRKS6_E_TnNSE_9enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSE_7declvalB8ne220000IS6_EEDTclsr3stdE9__declvalISP_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSP_RKNS1_15TemplateSTRNodeIS6_S7_EE
Line
Count
Source
543
7.54k
    {
544
7.54k
        visitor(node.getItem());
545
7.54k
        return true;
546
7.54k
    }
Unexecuted instantiation: _ZN4geos5index7strtree19TemplateSTRtreeImplIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEE9visitLeafIRZNS1_15TemplateSTRtreeIS6_S7_E5queryEPKNS_4geom8EnvelopeERNSt3__16vectorIPvNSG_9allocatorISI_EEEEEUlPKS5_E_TnNSG_9enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSG_7declvalB8ne220000IS6_EEDTclsr3stdE9__declvalISS_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSS_RKNS1_15TemplateSTRNodeIS6_S7_EE
Unexecuted instantiation: _ZN4geos5index7strtree19TemplateSTRtreeImplIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEE9visitLeafIRZNS1_15TemplateSTRtreeIS6_S7_E5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorEEUlPKS5_E_TnNSt3__19enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSM_7declvalB8ne220000IS6_EEDTclsr3stdE9__declvalISO_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSO_RKNS1_15TemplateSTRNodeIS6_S7_EE
Unexecuted instantiation: _ZN4geos5index7strtree19TemplateSTRtreeImplIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEE9visitLeafIRZNS1_15TemplateSTRtreeIS6_S7_E5queryEPKNS3_8EnvelopeERNSt3__16vectorIPvNSF_9allocatorISH_EEEEEUlS6_E_TnNSF_9enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSF_7declvalB8ne220000IS6_EEDTclsr3stdE9__declvalISP_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSP_RKNS1_15TemplateSTRNodeIS6_S7_EE
Unexecuted instantiation: _ZN4geos5index7strtree19TemplateSTRtreeImplIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEE9visitLeafIRZNS1_15TemplateSTRtreeIS6_S7_E5queryEPKNS3_8EnvelopeERNS0_11ItemVisitorEEUlS6_E_TnNSt3__19enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSJ_7declvalB8ne220000IS6_EEDTclsr3stdE9__declvalISL_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSL_RKNS1_15TemplateSTRNodeIS6_S7_EE
Unexecuted instantiation: _ZN4geos5index7strtree19TemplateSTRtreeImplIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEE9visitLeafIRZNS1_15TemplateSTRtreeIS6_S7_E5queryEPKNS3_8EnvelopeERNSt3__16vectorIPvNSF_9allocatorISH_EEEEEUlS6_E_TnNSF_9enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSF_7declvalB8ne220000IS6_EEDTclsr3stdE9__declvalISP_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSP_RKNS1_15TemplateSTRNodeIS6_S7_EE
Unexecuted instantiation: _ZN4geos5index7strtree19TemplateSTRtreeImplIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEE9visitLeafIRZNS1_15TemplateSTRtreeIS6_S7_E5queryEPKNS3_8EnvelopeERNS0_11ItemVisitorEEUlS6_E_TnNSt3__19enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSJ_7declvalB8ne220000IS6_EEDTclsr3stdE9__declvalISL_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSL_RKNS1_15TemplateSTRNodeIS6_S7_EE
Unexecuted instantiation: _ZN4geos5index7strtree19TemplateSTRtreeImplIPNS_9algorithm6locate25IndexedPointInAreaLocatorENS1_14EnvelopeTraitsEE9visitLeafIRZNS8_5queryERKNS_4geom8EnvelopeERNSt3__16vectorIS6_NSE_9allocatorIS6_EEEEEUlRKS6_E_TnNSE_9enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSE_7declvalB8ne220000IS6_EEDTclsr3stdE9__declvalISP_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSP_RKNS1_15TemplateSTRNodeIS6_S7_EE
Unexecuted instantiation: _ZN4geos5index7strtree19TemplateSTRtreeImplIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEE9visitLeafIRZNS8_5queryERKNS_4geom8EnvelopeERNSt3__16vectorIS6_NSE_9allocatorIS6_EEEEEUlRKS6_E_TnNSE_9enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSE_7declvalB8ne220000IS6_EEDTclsr3stdE9__declvalISP_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSP_RKNS1_15TemplateSTRNodeIS6_S7_EE
Unexecuted instantiation: _ZN4geos5index7strtree19TemplateSTRtreeImplIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEE9visitLeafIRZNS8_5queryERKNS3_8EnvelopeERNSt3__16vectorIS6_NSD_9allocatorIS6_EEEEEUlRKS6_E_TnNSD_9enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSD_7declvalB8ne220000IS6_EEDTclsr3stdE9__declvalISO_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSO_RKNS1_15TemplateSTRNodeIS6_S7_EE
Unexecuted instantiation: _ZN4geos5index7strtree19TemplateSTRtreeImplIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEE9visitLeafIRZNS8_5queryERKNS3_8EnvelopeERNSt3__16vectorIS6_NSD_9allocatorIS6_EEEEEUlRKS6_E_TnNSD_9enable_ifIXsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSD_7declvalB8ne220000IS6_EEDTclsr3stdE9__declvalISO_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSO_RKNS1_15TemplateSTRNodeIS6_S7_EE
547
548
    template<typename Visitor,
549
            typename std::enable_if<std::is_void<decltype(std::declval<Visitor>()(std::declval<ItemType>(), std::declval<ItemType>()))>::value, std::nullptr_t>::type = nullptr >
550
    bool visitLeaves(Visitor&& visitor, const Node& node1, const Node& node2)
551
    {
552
        visitor(node1.getItem(), node2.getItem());
553
        return true;
554
    }
555
556
    // MSVC 2015 does not implement C++11 expression SFINAE and considers this a
557
    // redefinition of a previous method
558
#if !defined(_MSC_VER) || _MSC_VER >= 1910
559
    template<typename Visitor,
560
             typename std::enable_if<std::is_void<decltype(std::declval<Visitor>()(std::declval<BoundsType>(), std::declval<ItemType>()))>::value, std::nullptr_t>::type = nullptr >
561
    bool visitLeaf(Visitor&& visitor, const Node& node)
562
    {
563
        visitor(node.getBounds(), node.getItem());
564
        return true;
565
    }
566
#endif
567
568
    // If the visitor function does return a value, we will use this to indicate
569
    // that querying should continue.
570
    template<typename Visitor,
571
             typename std::enable_if<!std::is_void<decltype(std::declval<Visitor>()(std::declval<ItemType>()))>::value, std::nullptr_t>::type = nullptr>
572
    bool visitLeaf(Visitor&& visitor, const Node& node)
573
0
    {
574
0
        return visitor(node.getItem());
575
0
    }
Unexecuted instantiation: MCIndexSegmentSetMutualIntersector.cpp:_ZN4geos5index7strtree19TemplateSTRtreeImplIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE9visitLeafIRZNS_6noding34MCIndexSegmentSetMutualIntersector15intersectChainsEvE3$_0TnNSt3__19enable_ifIXntsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSE_7declvalB8ne220000IS6_EEDTclsr3stdE9__declvalISG_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSG_RKNS1_15TemplateSTRNodeIS6_S7_EE
Unexecuted instantiation: SegmentMCIndex.cpp:_ZN4geos5index7strtree19TemplateSTRtreeImplIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE9visitLeafIRZNS_9operation6buffer14SegmentMCIndex5queryEPKNS_4geom8EnvelopeERNS3_25MonotoneChainSelectActionEE3$_0TnNSt3__19enable_ifIXntsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSL_7declvalB8ne220000IS6_EEDTclsr3stdE9__declvalISN_ELi0EEEvEEEEEE5valueEDnE4typeELDn0EEEbOSN_RKNS1_15TemplateSTRNodeIS6_S7_EE
576
577
    template<typename Visitor,
578
            typename std::enable_if<!std::is_void<decltype(std::declval<Visitor>()(std::declval<ItemType>(), std::declval<ItemType>()))>::value, std::nullptr_t>::type = nullptr >
579
    bool visitLeaves(Visitor&& visitor, const Node& node1, const Node& node2)
580
299M
    {
581
299M
        return visitor(node1.getItem(), node2.getItem());
582
299M
    }
MCIndexNoder.cpp:_ZN4geos5index7strtree19TemplateSTRtreeImplIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE11visitLeavesIRZNS_6noding12MCIndexNoder15intersectChainsEvE3$_0TnNSt3__19enable_ifIXntsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSE_7declvalB8ne220000IS6_EEDTclsr3stdE9__declvalISG_ELi0EEEvEEclL_ZNSH_IS6_EESI_vEEEEEE5valueEDnE4typeELDn0EEEbOSG_RKNS1_15TemplateSTRNodeIS6_S7_EESQ_
Line
Count
Source
580
299M
    {
581
299M
        return visitor(node1.getItem(), node2.getItem());
582
299M
    }
Unexecuted instantiation: EdgeSetIntersector.cpp:_ZN4geos5index7strtree19TemplateSTRtreeImplIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE11visitLeavesIRZNS_9operation8relateng18EdgeSetIntersector7processERNSB_22EdgeSegmentIntersectorEE3$_0TnNSt3__19enable_ifIXntsr3std7is_voidIDTclclsr3stdE7declvalIT_EEclL_ZNSH_7declvalB8ne220000IS6_EEDTclsr3stdE9__declvalISJ_ELi0EEEvEEclL_ZNSK_IS6_EESL_vEEEEEE5valueEDnE4typeELDn0EEEbOSJ_RKNS1_15TemplateSTRNodeIS6_S7_EEST_
583
584
    // MSVC 2015 does not implement C++11 expression SFINAE and considers this a
585
    // redefinition of a previous method
586
#if !defined(_MSC_VER) || _MSC_VER >= 1910
587
    template<typename Visitor,
588
             typename std::enable_if<!std::is_void<decltype(std::declval<Visitor>()(std::declval<BoundsType>(), std::declval<ItemType>()))>::value, std::nullptr_t>::type = nullptr>
589
    bool visitLeaf(Visitor&& visitor, const Node& node)
590
    {
591
        return visitor(node.getBounds(), node.getItem());
592
    }
593
#endif
594
595
    template<typename Visitor>
596
    bool query(const BoundsType& queryEnv,
597
               const Node& node,
598
687k
               Visitor&& visitor) {
599
600
687k
        assert(!node.isLeaf());
601
602
6.87M
        for (auto *child = node.beginChildren(); child < node.endChildren(); ++child) {
603
6.18M
            if (child->boundsIntersect(queryEnv)) {
604
5.17M
                if (child->isLeaf()) {
605
4.56M
                    if (!child->isDeleted()) {
606
4.56M
                        if (!visitLeaf(visitor, *child)) {
607
0
                            return false; // abort query
608
0
                        }
609
4.56M
                    }
610
4.56M
                } else {
611
605k
                    if (!query(queryEnv, *child, visitor)) {
612
0
                        return false; // abort query
613
0
                    }
614
605k
                }
615
5.17M
            }
616
6.18M
        }
617
687k
        return true; // continue searching
618
687k
    }
Unexecuted instantiation: bool geos::index::strtree::TemplateSTRtreeImpl<void*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<void*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(void const*)#1}&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<void*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRtree<void*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(void const*)#1}&)
Unexecuted instantiation: bool geos::index::strtree::TemplateSTRtreeImpl<void*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<void*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(void const*)#1}&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<void*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRtree<void*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(void const*)#1}&)
Unexecuted instantiation: bool geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::algorithm::locate::IndexedPointInAreaLocator const*)#1}&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRtree<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::algorithm::locate::IndexedPointInAreaLocator const*)#1}&)
Unexecuted instantiation: bool geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::algorithm::locate::IndexedPointInAreaLocator const*)#1}&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRtree<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::algorithm::locate::IndexedPointInAreaLocator const*)#1}&)
Unexecuted instantiation: bool geos::index::strtree::TemplateSTRtreeImpl<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::operation::distance::FacetSequence const*)#1}&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRtree<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::operation::distance::FacetSequence const*)#1}&)
Unexecuted instantiation: bool geos::index::strtree::TemplateSTRtreeImpl<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::operation::distance::FacetSequence const*)#1}&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRtree<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::operation::distance::FacetSequence const*)#1}&)
Unexecuted instantiation: bool geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::index::chain::MonotoneChain const*)#1}&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRtree<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::index::chain::MonotoneChain const*)#1}&)
Unexecuted instantiation: bool geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::index::chain::MonotoneChain const*)#1}&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRtree<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::index::chain::MonotoneChain const*)#1}&)
IndexedPointInAreaLocator.cpp:bool geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits>::query<geos::algorithm::locate::IndexedPointInAreaLocator::locate(geos::geom::CoordinateXY const*)::$_0&>(geos::index::strtree::Interval const&, geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits> const&, geos::algorithm::locate::IndexedPointInAreaLocator::locate(geos::geom::CoordinateXY const*)::$_0&)
Line
Count
Source
598
685k
               Visitor&& visitor) {
599
600
685k
        assert(!node.isLeaf());
601
602
6.86M
        for (auto *child = node.beginChildren(); child < node.endChildren(); ++child) {
603
6.17M
            if (child->boundsIntersect(queryEnv)) {
604
5.16M
                if (child->isLeaf()) {
605
4.56M
                    if (!child->isDeleted()) {
606
4.56M
                        if (!visitLeaf(visitor, *child)) {
607
0
                            return false; // abort query
608
0
                        }
609
4.56M
                    }
610
4.56M
                } else {
611
605k
                    if (!query(queryEnv, *child, visitor)) {
612
0
                        return false; // abort query
613
0
                    }
614
605k
                }
615
5.16M
            }
616
6.17M
        }
617
685k
        return true; // continue searching
618
685k
    }
Unexecuted instantiation: bool geos::index::strtree::TemplateSTRtreeImpl<unsigned long, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtreeImpl<unsigned long, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<unsigned long, std::__1::allocator<unsigned long> >&)::{lambda(unsigned long const&)#1}&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<unsigned long, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRtreeImpl<unsigned long, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<unsigned long, std::__1::allocator<unsigned long> >&)::{lambda(unsigned long const&)#1}&)
Unexecuted instantiation: bool geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::geom::Geometry const*)#1}&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRtree<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::geom::Geometry const*)#1}&)
Unexecuted instantiation: bool geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::geom::Geometry const*)#1}&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRtree<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::geom::Geometry const*)#1}&)
Unexecuted instantiation: CoverageValidator.cpp:bool geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::query<geos::coverage::CoverageValidator::validate(geos::geom::Geometry const*, geos::index::strtree::TemplateSTRtree<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>&)::$_0&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits> const&, geos::coverage::CoverageValidator::validate(geos::geom::Geometry const*, geos::index::strtree::TemplateSTRtree<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>&)::$_0&)
Unexecuted instantiation: bool geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::coverage::TPVWSimplifier::Edge const*)#1}&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRtree<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::coverage::TPVWSimplifier::Edge const*)#1}&)
Unexecuted instantiation: bool geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::coverage::TPVWSimplifier::Edge const*)#1}&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRtree<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::coverage::TPVWSimplifier::Edge const*)#1}&)
Unexecuted instantiation: bool geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::coverage::TPVWSimplifier::Edge const*, std::__1::allocator<geos::coverage::TPVWSimplifier::Edge const*> >&)::{lambda(geos::coverage::TPVWSimplifier::Edge const* const&)#1}&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::coverage::TPVWSimplifier::Edge const*, std::__1::allocator<geos::coverage::TPVWSimplifier::Edge const*> >&)::{lambda(geos::coverage::TPVWSimplifier::Edge const* const&)#1}&)
Unexecuted instantiation: MCIndexSegmentSetMutualIntersector.cpp:bool geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::query<geos::noding::MCIndexSegmentSetMutualIntersector::intersectChains()::$_0&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits> const&, geos::noding::MCIndexSegmentSetMutualIntersector::intersectChains()::$_0&)
Unexecuted instantiation: SegmentMCIndex.cpp:bool geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::query<geos::operation::buffer::SegmentMCIndex::query(geos::geom::Envelope const*, geos::index::chain::MonotoneChainSelectAction&)::$_0&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits> const&, geos::operation::buffer::SegmentMCIndex::query(geos::geom::Envelope const*, geos::index::chain::MonotoneChainSelectAction&)::$_0&)
Unexecuted instantiation: DBSCANClusterFinder.cpp:bool geos::index::strtree::TemplateSTRtreeImpl<unsigned long, geos::index::strtree::EnvelopeTraits>::query<geos::operation::cluster::DBSCANClusterFinder::process(std::__1::vector<geos::geom::Geometry const*, std::__1::allocator<geos::geom::Geometry const*> > const&, geos::index::strtree::TemplateSTRtree<unsigned long, geos::index::strtree::EnvelopeTraits>&, geos::operation::cluster::UnionFind&)::$_0&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<unsigned long, geos::index::strtree::EnvelopeTraits> const&, geos::operation::cluster::DBSCANClusterFinder::process(std::__1::vector<geos::geom::Geometry const*, std::__1::allocator<geos::geom::Geometry const*> > const&, geos::index::strtree::TemplateSTRtree<unsigned long, geos::index::strtree::EnvelopeTraits>&, geos::operation::cluster::UnionFind&)::$_0&)
Unexecuted instantiation: bool geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::operation::overlayng::OverlayEdgeRing const*)#1}&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRtree<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::operation::overlayng::OverlayEdgeRing const*)#1}&)
Unexecuted instantiation: bool geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::operation::overlayng::OverlayEdgeRing const*)#1}&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRtree<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::operation::overlayng::OverlayEdgeRing const*)#1}&)
bool geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::operation::overlayng::OverlayEdgeRing*, std::__1::allocator<geos::operation::overlayng::OverlayEdgeRing*> >&)::{lambda(geos::operation::overlayng::OverlayEdgeRing* const&)#1}&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::operation::overlayng::OverlayEdgeRing*, std::__1::allocator<geos::operation::overlayng::OverlayEdgeRing*> >&)::{lambda(geos::operation::overlayng::OverlayEdgeRing* const&)#1}&)
Line
Count
Source
598
2.31k
               Visitor&& visitor) {
599
600
2.31k
        assert(!node.isLeaf());
601
602
9.22k
        for (auto *child = node.beginChildren(); child < node.endChildren(); ++child) {
603
6.91k
            if (child->boundsIntersect(queryEnv)) {
604
3.49k
                if (child->isLeaf()) {
605
3.49k
                    if (!child->isDeleted()) {
606
3.49k
                        if (!visitLeaf(visitor, *child)) {
607
0
                            return false; // abort query
608
0
                        }
609
3.49k
                    }
610
3.49k
                } else {
611
0
                    if (!query(queryEnv, *child, visitor)) {
612
0
                        return false; // abort query
613
0
                    }
614
0
                }
615
3.49k
            }
616
6.91k
        }
617
2.31k
        return true; // continue searching
618
2.31k
    }
Unexecuted instantiation: bool geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::operation::polygonize::EdgeRing const*)#1}&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRtree<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::operation::polygonize::EdgeRing const*)#1}&)
Unexecuted instantiation: bool geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::operation::polygonize::EdgeRing const*)#1}&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRtree<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::operation::polygonize::EdgeRing const*)#1}&)
Unexecuted instantiation: bool geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::geom::LinearRing const*)#1}&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRtree<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::geom::LinearRing const*)#1}&)
Unexecuted instantiation: bool geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::geom::LinearRing const*)#1}&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRtree<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::geom::LinearRing const*)#1}&)
Unexecuted instantiation: bool geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::geom::Polygon const*)#1}&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRtree<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::geom::Polygon const*)#1}&)
Unexecuted instantiation: bool geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtree<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::geom::Polygon const*)#1}&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRtree<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::geom::Polygon const*)#1}&)
Unexecuted instantiation: bool geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::algorithm::locate::IndexedPointInAreaLocator*, std::__1::allocator<geos::algorithm::locate::IndexedPointInAreaLocator*> >&)::{lambda(geos::algorithm::locate::IndexedPointInAreaLocator* const&)#1}&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::algorithm::locate::IndexedPointInAreaLocator*, std::__1::allocator<geos::algorithm::locate::IndexedPointInAreaLocator*> >&)::{lambda(geos::algorithm::locate::IndexedPointInAreaLocator* const&)#1}&)
Unexecuted instantiation: bool geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::operation::polygonize::EdgeRing*, std::__1::allocator<geos::operation::polygonize::EdgeRing*> >&)::{lambda(geos::operation::polygonize::EdgeRing* const&)#1}&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::operation::polygonize::EdgeRing*, std::__1::allocator<geos::operation::polygonize::EdgeRing*> >&)::{lambda(geos::operation::polygonize::EdgeRing* const&)#1}&)
Unexecuted instantiation: bool geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::geom::LinearRing const*, std::__1::allocator<geos::geom::LinearRing const*> >&)::{lambda(geos::geom::LinearRing const* const&)#1}&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::geom::LinearRing const*, std::__1::allocator<geos::geom::LinearRing const*> >&)::{lambda(geos::geom::LinearRing const* const&)#1}&)
Unexecuted instantiation: bool geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::query<geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::geom::Polygon const*, std::__1::allocator<geos::geom::Polygon const*> >&)::{lambda(geos::geom::Polygon const* const&)#1}&>(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const&, std::__1::vector<geos::geom::Polygon const*, std::__1::allocator<geos::geom::Polygon const*> >&)::{lambda(geos::geom::Polygon const* const&)#1}&)
619
620
    template<typename Visitor>
621
    bool queryPairs(const Node& queryNode,
622
                    const Node& searchNode,
623
400M
                    Visitor&& visitor) {
624
625
400M
        assert(!searchNode.isLeaf());
626
627
3.58G
        for (auto* child = searchNode.beginChildren(); child < searchNode.endChildren(); ++child) {
628
3.25G
            if (child->isLeaf()) {
629
                // Only visit leaf nodes if they have a higher address than the query node,
630
                // to avoid processing the same pairs twice.
631
2.08G
                if (child > &queryNode && !child->isDeleted() && child->boundsIntersect(queryNode.getBounds())) {
632
299M
                    if (!visitLeaves(visitor, queryNode, *child)) {
633
14.2M
                        return false; // abort query
634
14.2M
                    }
635
299M
                }
636
2.08G
            } else {
637
1.17G
                if (child->boundsIntersect(queryNode.getBounds())) {
638
368M
                    if (!queryPairs(queryNode, *child, visitor)) {
639
59.3M
                        return false; // abort query
640
59.3M
                    }
641
368M
                }
642
1.17G
            }
643
3.25G
        }
644
645
326M
        return true; // continue searching
646
400M
    }
MCIndexNoder.cpp:bool geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::queryPairs<geos::noding::MCIndexNoder::intersectChains()::$_0&>(geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits> const&, geos::noding::MCIndexNoder::intersectChains()::$_0&)
Line
Count
Source
623
400M
                    Visitor&& visitor) {
624
625
400M
        assert(!searchNode.isLeaf());
626
627
3.58G
        for (auto* child = searchNode.beginChildren(); child < searchNode.endChildren(); ++child) {
628
3.25G
            if (child->isLeaf()) {
629
                // Only visit leaf nodes if they have a higher address than the query node,
630
                // to avoid processing the same pairs twice.
631
2.08G
                if (child > &queryNode && !child->isDeleted() && child->boundsIntersect(queryNode.getBounds())) {
632
299M
                    if (!visitLeaves(visitor, queryNode, *child)) {
633
14.2M
                        return false; // abort query
634
14.2M
                    }
635
299M
                }
636
2.08G
            } else {
637
1.17G
                if (child->boundsIntersect(queryNode.getBounds())) {
638
368M
                    if (!queryPairs(queryNode, *child, visitor)) {
639
59.3M
                        return false; // abort query
640
59.3M
                    }
641
368M
                }
642
1.17G
            }
643
3.25G
        }
644
645
326M
        return true; // continue searching
646
400M
    }
Unexecuted instantiation: EdgeSetIntersector.cpp:bool geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::queryPairs<geos::operation::relateng::EdgeSetIntersector::process(geos::operation::relateng::EdgeSegmentIntersector&)::$_0&>(geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits> const&, geos::operation::relateng::EdgeSetIntersector::process(geos::operation::relateng::EdgeSegmentIntersector&)::$_0&)
647
648
    bool remove(const BoundsType& queryEnv,
649
                const Node& node,
650
0
                const ItemType& item) {
651
652
0
        assert(!node.isLeaf());
653
654
0
        for (auto *child = node.beginChildren(); child < node.endChildren(); ++child) {
655
0
            if (child->boundsIntersect(queryEnv)) {
656
0
                if (child->isLeaf()) {
657
0
                    if (!child->isDeleted() && child->getItem() == item) {
658
                        // const cast is ugly, but alternative seems to be to remove all
659
                        // const qualifiers in Node and open up mutability everywhere?
660
0
                        auto mutableChild = const_cast<Node*>(child);
661
0
                        mutableChild->removeItem();
662
0
                        return true;
663
0
                    }
664
0
                } else {
665
0
                    bool removed = remove(queryEnv, *child, item);
666
0
                    if (removed) {
667
0
                        return true;
668
0
                    }
669
0
                }
670
0
            }
671
0
        }
672
673
0
        return false;
674
0
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<void*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<void*, geos::index::strtree::EnvelopeTraits> const&, void* const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits> const&, geos::algorithm::locate::IndexedPointInAreaLocator* const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits> const&, geos::operation::distance::FacetSequence const* const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits> const&, geos::index::chain::MonotoneChain const* const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits> const&, geos::geom::Geometry const* const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits> const&, geos::coverage::TPVWSimplifier::Edge const* const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits> const&, geos::operation::overlayng::OverlayEdgeRing* const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits> const&, geos::operation::polygonize::EdgeRing* const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits> const&, geos::geom::LinearRing const* const&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const&, geos::index::strtree::TemplateSTRNode<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits> const&, geos::geom::Polygon const* const&)
675
676
1.33M
    size_t sliceCount(size_t numNodes) const {
677
1.33M
        double minLeafCount = std::ceil(static_cast<double>(numNodes) / static_cast<double>(nodeCapacity));
678
679
1.33M
        return static_cast<size_t>(std::ceil(std::sqrt(minLeafCount)));
680
1.33M
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<void*, geos::index::strtree::EnvelopeTraits>::sliceCount(unsigned long) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::sliceCount(unsigned long) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::sliceCount(unsigned long) const
geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::sliceCount(unsigned long) const
Line
Count
Source
676
1.20M
    size_t sliceCount(size_t numNodes) const {
677
1.20M
        double minLeafCount = std::ceil(static_cast<double>(numNodes) / static_cast<double>(nodeCapacity));
678
679
1.20M
        return static_cast<size_t>(std::ceil(std::sqrt(minLeafCount)));
680
1.20M
    }
geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits>::sliceCount(unsigned long) const
Line
Count
Source
676
113k
    size_t sliceCount(size_t numNodes) const {
677
113k
        double minLeafCount = std::ceil(static_cast<double>(numNodes) / static_cast<double>(nodeCapacity));
678
679
113k
        return static_cast<size_t>(std::ceil(std::sqrt(minLeafCount)));
680
113k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<unsigned long, geos::index::strtree::EnvelopeTraits>::sliceCount(unsigned long) const
geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::sliceCount(unsigned long) const
Line
Count
Source
676
18.8k
    size_t sliceCount(size_t numNodes) const {
677
18.8k
        double minLeafCount = std::ceil(static_cast<double>(numNodes) / static_cast<double>(nodeCapacity));
678
679
18.8k
        return static_cast<size_t>(std::ceil(std::sqrt(minLeafCount)));
680
18.8k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::sliceCount(unsigned long) const
geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::sliceCount(unsigned long) const
Line
Count
Source
676
4.46k
    size_t sliceCount(size_t numNodes) const {
677
4.46k
        double minLeafCount = std::ceil(static_cast<double>(numNodes) / static_cast<double>(nodeCapacity));
678
679
4.46k
        return static_cast<size_t>(std::ceil(std::sqrt(minLeafCount)));
680
4.46k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::sliceCount(unsigned long) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::sliceCount(unsigned long) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::sliceCount(unsigned long) const
681
682
1.33M
    static size_t sliceCapacity(size_t numNodes, size_t numSlices) {
683
1.33M
        return static_cast<size_t>(std::ceil(static_cast<double>(numNodes) / static_cast<double>(numSlices)));
684
1.33M
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<void*, geos::index::strtree::EnvelopeTraits>::sliceCapacity(unsigned long, unsigned long)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::sliceCapacity(unsigned long, unsigned long)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::sliceCapacity(unsigned long, unsigned long)
geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::sliceCapacity(unsigned long, unsigned long)
Line
Count
Source
682
1.20M
    static size_t sliceCapacity(size_t numNodes, size_t numSlices) {
683
1.20M
        return static_cast<size_t>(std::ceil(static_cast<double>(numNodes) / static_cast<double>(numSlices)));
684
1.20M
    }
geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits>::sliceCapacity(unsigned long, unsigned long)
Line
Count
Source
682
113k
    static size_t sliceCapacity(size_t numNodes, size_t numSlices) {
683
113k
        return static_cast<size_t>(std::ceil(static_cast<double>(numNodes) / static_cast<double>(numSlices)));
684
113k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<unsigned long, geos::index::strtree::EnvelopeTraits>::sliceCapacity(unsigned long, unsigned long)
geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::sliceCapacity(unsigned long, unsigned long)
Line
Count
Source
682
18.8k
    static size_t sliceCapacity(size_t numNodes, size_t numSlices) {
683
18.8k
        return static_cast<size_t>(std::ceil(static_cast<double>(numNodes) / static_cast<double>(numSlices)));
684
18.8k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::sliceCapacity(unsigned long, unsigned long)
geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::sliceCapacity(unsigned long, unsigned long)
Line
Count
Source
682
4.46k
    static size_t sliceCapacity(size_t numNodes, size_t numSlices) {
683
4.46k
        return static_cast<size_t>(std::ceil(static_cast<double>(numNodes) / static_cast<double>(numSlices)));
684
4.46k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::sliceCapacity(unsigned long, unsigned long)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::sliceCapacity(unsigned long, unsigned long)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::sliceCapacity(unsigned long, unsigned long)
685
686
728k
    void validateConstruction() const {
687
728k
        if (nodeCapacity < 2) {
688
0
            throw util::IllegalArgumentException("STRTree node capacity must be >= 2");
689
0
        }
690
728k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<void*, geos::index::strtree::EnvelopeTraits>::validateConstruction() const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::validateConstruction() const
geos::index::strtree::TemplateSTRtreeImpl<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::validateConstruction() const
Line
Count
Source
686
456k
    void validateConstruction() const {
687
456k
        if (nodeCapacity < 2) {
688
0
            throw util::IllegalArgumentException("STRTree node capacity must be >= 2");
689
0
        }
690
456k
    }
geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator::SegmentView, geos::index::strtree::IntervalTraits>::validateConstruction() const
Line
Count
Source
686
46.0k
    void validateConstruction() const {
687
46.0k
        if (nodeCapacity < 2) {
688
0
            throw util::IllegalArgumentException("STRTree node capacity must be >= 2");
689
0
        }
690
46.0k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<unsigned long, geos::index::strtree::EnvelopeTraits>::validateConstruction() const
geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::validateConstruction() const
Line
Count
Source
686
5.40k
    void validateConstruction() const {
687
5.40k
        if (nodeCapacity < 2) {
688
0
            throw util::IllegalArgumentException("STRTree node capacity must be >= 2");
689
0
        }
690
5.40k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::validateConstruction() const
geos::index::strtree::TemplateSTRtreeImpl<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::validateConstruction() const
Line
Count
Source
686
220k
    void validateConstruction() const {
687
220k
        if (nodeCapacity < 2) {
688
0
            throw util::IllegalArgumentException("STRTree node capacity must be >= 2");
689
0
        }
690
220k
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::validateConstruction() const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::validateConstruction() const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::validateConstruction() const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtreeImpl<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::validateConstruction() const
691
};
692
693
struct EnvelopeTraits {
694
    using BoundsType = geom::Envelope;
695
    using TwoDimensional = std::true_type;
696
697
1.76G
    static bool intersects(const BoundsType& a, const BoundsType& b) {
698
1.76G
        return a.intersects(b);
699
1.76G
    }
700
701
0
    static double size(const BoundsType& a) {
702
0
        return a.getArea();
703
0
    }
704
705
0
    static double distance(const BoundsType& a, const BoundsType& b) {
706
0
        return a.distance(b);
707
0
    }
708
709
0
    static double maxDistance(const BoundsType& a, const BoundsType& b) {
710
0
        return a.maxDistance(b);
711
0
    }
712
713
0
    static BoundsType empty() {
714
0
        return {};
715
0
    }
716
717
    template<typename ItemType>
718
0
    static const BoundsType& fromItem(const ItemType& i) {
719
0
        return *(i->getEnvelopeInternal());
720
0
    }
721
722
    template<typename ItemType>
723
4.85M
    static const BoundsType& fromItem(ItemType&& i) {
724
4.85M
        return *(i->getEnvelopeInternal());
725
4.85M
    }
Unexecuted instantiation: geos::geom::Envelope const& geos::index::strtree::EnvelopeTraits::fromItem<geos::coverage::TPVWSimplifier::Edge const*&>(geos::coverage::TPVWSimplifier::Edge const*&)
geos::geom::Envelope const& geos::index::strtree::EnvelopeTraits::fromItem<geos::geom::Geometry const*&>(geos::geom::Geometry const*&)
Line
Count
Source
723
4.85M
    static const BoundsType& fromItem(ItemType&& i) {
724
4.85M
        return *(i->getEnvelopeInternal());
725
4.85M
    }
726
727
911M
    static double getX(const BoundsType& a) {
728
911M
        return a.getMinX() + a.getMaxX();
729
911M
    }
730
731
663M
    static double getY(const BoundsType& a) {
732
663M
        return a.getMinY() + a.getMaxY();
733
663M
    }
734
735
41.3M
    static void expandToInclude(BoundsType& a, const BoundsType& b) {
736
41.3M
        a.expandToInclude(b);
737
41.3M
    }
738
739
44.7M
    static bool isNull(const BoundsType& a) {
740
44.7M
        return a.isNull();
741
44.7M
    }
742
};
743
744
struct IntervalTraits {
745
    using BoundsType = Interval;
746
    using TwoDimensional = std::false_type;
747
748
6.31M
    static bool intersects(const BoundsType& a, const BoundsType& b) {
749
6.31M
        return a.intersects(&b);
750
6.31M
    }
751
752
0
    static double size(const BoundsType& a) {
753
0
        return a.getWidth();
754
0
    }
755
756
106M
    static double getX(const BoundsType& a) {
757
106M
        return a.getMin() + a.getMax();
758
106M
    }
759
760
0
    static double getY(const BoundsType& a) {
761
0
        return a.getMin() + a.getMax();
762
0
    }
763
764
7.34M
    static void expandToInclude(BoundsType& a, const BoundsType& b) {
765
7.34M
        a.expandToInclude(&b);
766
7.34M
    }
767
768
7.36M
    static bool isNull(const BoundsType& a) {
769
7.36M
        (void) a;
770
7.36M
        return false;
771
7.36M
    }
772
};
773
774
775
template<typename ItemType, typename BoundsTraits = EnvelopeTraits>
776
class TemplateSTRtree : public TemplateSTRtreeImpl<ItemType, BoundsTraits> {
777
public:
778
    using TemplateSTRtreeImpl<ItemType, BoundsTraits>::TemplateSTRtreeImpl;
779
};
780
781
// When ItemType is a pointer and our bounds are geom::Envelope, adopt
782
// the SpatialIndex interface which requires queries via an envelope
783
// and items to be representable as void*.
784
template<typename ItemType>
785
class TemplateSTRtree<ItemType*, EnvelopeTraits> : public TemplateSTRtreeImpl<ItemType*, EnvelopeTraits>, public SpatialIndex {
786
public:
787
    using TemplateSTRtreeImpl<ItemType*, EnvelopeTraits>::TemplateSTRtreeImpl;
788
    using TemplateSTRtreeImpl<ItemType*, EnvelopeTraits>::insert;
789
    using TemplateSTRtreeImpl<ItemType*, EnvelopeTraits>::query;
790
    using TemplateSTRtreeImpl<ItemType*, EnvelopeTraits>::remove;
791
792
    // The SpatialIndex methods only work when we are storing a pointer type.
793
0
    void query(const geom::Envelope* queryEnv, std::vector<void*>& results) override {
794
0
        query(*queryEnv, [&results](const ItemType* x) {
795
0
            results.push_back(const_cast<void*>(static_cast<const void*>(x)));
796
0
        });
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<void*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(void const*)#1}::operator()(void const*) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::geom::Geometry const*)#1}::operator()(geos::geom::Geometry const*) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::coverage::TPVWSimplifier::Edge const*)#1}::operator()(geos::coverage::TPVWSimplifier::Edge const*) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::index::chain::MonotoneChain const*)#1}::operator()(geos::index::chain::MonotoneChain const*) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::operation::distance::FacetSequence const*)#1}::operator()(geos::operation::distance::FacetSequence const*) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::operation::overlayng::OverlayEdgeRing const*)#1}::operator()(geos::operation::overlayng::OverlayEdgeRing const*) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::geom::LinearRing const*)#1}::operator()(geos::geom::LinearRing const*) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::algorithm::locate::IndexedPointInAreaLocator const*)#1}::operator()(geos::algorithm::locate::IndexedPointInAreaLocator const*) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::operation::polygonize::EdgeRing const*)#1}::operator()(geos::operation::polygonize::EdgeRing const*) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)::{lambda(geos::geom::Polygon const*)#1}::operator()(geos::geom::Polygon const*) const
797
0
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<void*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, std::__1::vector<void*, std::__1::allocator<void*> >&)
798
799
0
    void query(const geom::Envelope* queryEnv, ItemVisitor& visitor) override {
800
0
        query(*queryEnv, [&visitor](const ItemType* x) {
801
0
            visitor.visitItem(const_cast<void*>(static_cast<const void*>(x)));
802
0
        });
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<void*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(void const*)#1}::operator()(void const*) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::geom::Geometry const*)#1}::operator()(geos::geom::Geometry const*) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::coverage::TPVWSimplifier::Edge const*)#1}::operator()(geos::coverage::TPVWSimplifier::Edge const*) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::index::chain::MonotoneChain const*)#1}::operator()(geos::index::chain::MonotoneChain const*) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::operation::distance::FacetSequence const*)#1}::operator()(geos::operation::distance::FacetSequence const*) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::operation::overlayng::OverlayEdgeRing const*)#1}::operator()(geos::operation::overlayng::OverlayEdgeRing const*) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::geom::LinearRing const*)#1}::operator()(geos::geom::LinearRing const*) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::algorithm::locate::IndexedPointInAreaLocator const*)#1}::operator()(geos::algorithm::locate::IndexedPointInAreaLocator const*) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::operation::polygonize::EdgeRing const*)#1}::operator()(geos::operation::polygonize::EdgeRing const*) const
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)::{lambda(geos::geom::Polygon const*)#1}::operator()(geos::geom::Polygon const*) const
803
0
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<void*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::query(geos::geom::Envelope const*, geos::index::ItemVisitor&)
804
805
0
    bool remove(const geom::Envelope* itemEnv, void* item) override {
806
0
        return remove(*itemEnv, static_cast<ItemType*>(item));
807
0
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<void*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const*, void*)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const*, void*)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const*, void*)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const*, void*)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const*, void*)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const*, void*)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const*, void*)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const*, void*)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const*, void*)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::remove(geos::geom::Envelope const*, void*)
808
809
0
    void insert(const geom::Envelope* itemEnv, void* item) override {
810
0
        insert(*itemEnv, std::move(static_cast<ItemType*>(item)));
811
0
    }
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<void*, geos::index::strtree::EnvelopeTraits>::insert(geos::geom::Envelope const*, void*)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits>::insert(geos::geom::Envelope const*, void*)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::algorithm::locate::IndexedPointInAreaLocator*, geos::index::strtree::EnvelopeTraits>::insert(geos::geom::Envelope const*, void*)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::index::chain::MonotoneChain const*, geos::index::strtree::EnvelopeTraits>::insert(geos::geom::Envelope const*, void*)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::geom::Geometry const*, geos::index::strtree::EnvelopeTraits>::insert(geos::geom::Envelope const*, void*)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::coverage::TPVWSimplifier::Edge const*, geos::index::strtree::EnvelopeTraits>::insert(geos::geom::Envelope const*, void*)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::operation::overlayng::OverlayEdgeRing*, geos::index::strtree::EnvelopeTraits>::insert(geos::geom::Envelope const*, void*)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::operation::polygonize::EdgeRing*, geos::index::strtree::EnvelopeTraits>::insert(geos::geom::Envelope const*, void*)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::geom::LinearRing const*, geos::index::strtree::EnvelopeTraits>::insert(geos::geom::Envelope const*, void*)
Unexecuted instantiation: geos::index::strtree::TemplateSTRtree<geos::geom::Polygon const*, geos::index::strtree::EnvelopeTraits>::insert(geos::geom::Envelope const*, void*)
812
};
813
814
815
}
816
}
817
}