Coverage Report

Created: 2025-03-15 06:58

/src/geos/include/geos/index/strtree/TemplateSTRNodePair.h
Line
Count
Source (jump to first uncovered line)
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/index/strtree/TemplateSTRNode.h>
18
#include <utility>
19
20
namespace geos {
21
namespace index {
22
namespace strtree {
23
24
template<typename ItemType, typename BoundsTraits, typename ItemDistance>
25
class TemplateSTRNodePair {
26
public:
27
    using Node = TemplateSTRNode<ItemType, BoundsTraits>;
28
29
    TemplateSTRNodePair(const Node &node1, const Node &node2, ItemDistance& id)
30
0
            : m_node1(&node1), m_node2(&node2), m_distance(distance(id)) {}
Unexecuted instantiation: geos_ts_c.cpp:geos::index::strtree::TemplateSTRNodePair<void*, geos::index::strtree::EnvelopeTraits, GEOSSTRtree_nearest_generic_r::CustomItemDistance>::TemplateSTRNodePair(geos::index::strtree::TemplateSTRNode<void*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<void*, geos::index::strtree::EnvelopeTraits> const&, GEOSSTRtree_nearest_generic_r::CustomItemDistance&)
Unexecuted instantiation: geos_ts_c.cpp:geos::index::strtree::TemplateSTRNodePair<void*, geos::index::strtree::EnvelopeTraits, GEOSSTRtree_nearest_generic_r::GeometryDistance>::TemplateSTRNodePair(geos::index::strtree::TemplateSTRNode<void*, geos::index::strtree::EnvelopeTraits> const&, geos::index::strtree::TemplateSTRNode<void*, geos::index::strtree::EnvelopeTraits> const&, GEOSSTRtree_nearest_generic_r::GeometryDistance&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRNodePair<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits, geos::operation::distance::IndexedFacetDistance::FacetDistance>::TemplateSTRNodePair(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::operation::distance::IndexedFacetDistance::FacetDistance&)
Unexecuted instantiation: MinimumClearance.cpp:geos::index::strtree::TemplateSTRNodePair<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits, geos::precision::MinimumClearance::compute()::MinClearanceDistance>::TemplateSTRNodePair(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::precision::MinimumClearance::compute()::MinClearanceDistance&)
31
32
0
    bool isLeaves() const {
33
0
        return getFirst().isLeaf() && getSecond().isLeaf();
34
0
    }
Unexecuted instantiation: geos_ts_c.cpp:geos::index::strtree::TemplateSTRNodePair<void*, geos::index::strtree::EnvelopeTraits, GEOSSTRtree_nearest_generic_r::CustomItemDistance>::isLeaves() const
Unexecuted instantiation: geos_ts_c.cpp:geos::index::strtree::TemplateSTRNodePair<void*, geos::index::strtree::EnvelopeTraits, GEOSSTRtree_nearest_generic_r::GeometryDistance>::isLeaves() const
Unexecuted instantiation: geos::index::strtree::TemplateSTRNodePair<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits, geos::operation::distance::IndexedFacetDistance::FacetDistance>::isLeaves() const
Unexecuted instantiation: MinimumClearance.cpp:geos::index::strtree::TemplateSTRNodePair<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits, geos::precision::MinimumClearance::compute()::MinClearanceDistance>::isLeaves() const
35
36
0
    double getDistance() const {
37
0
        return m_distance;
38
0
    }
Unexecuted instantiation: geos_ts_c.cpp:geos::index::strtree::TemplateSTRNodePair<void*, geos::index::strtree::EnvelopeTraits, GEOSSTRtree_nearest_generic_r::CustomItemDistance>::getDistance() const
Unexecuted instantiation: geos_ts_c.cpp:geos::index::strtree::TemplateSTRNodePair<void*, geos::index::strtree::EnvelopeTraits, GEOSSTRtree_nearest_generic_r::GeometryDistance>::getDistance() const
Unexecuted instantiation: geos::index::strtree::TemplateSTRNodePair<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits, geos::operation::distance::IndexedFacetDistance::FacetDistance>::getDistance() const
Unexecuted instantiation: MinimumClearance.cpp:geos::index::strtree::TemplateSTRNodePair<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits, geos::precision::MinimumClearance::compute()::MinClearanceDistance>::getDistance() const
39
40
0
    std::pair<ItemType, ItemType> getItems() const {
41
0
        assert(isLeaves());
42
0
        return std::make_pair(getFirst().getItem(), getSecond().getItem());
43
0
    }
Unexecuted instantiation: geos_ts_c.cpp:geos::index::strtree::TemplateSTRNodePair<void*, geos::index::strtree::EnvelopeTraits, GEOSSTRtree_nearest_generic_r::CustomItemDistance>::getItems() const
Unexecuted instantiation: geos_ts_c.cpp:geos::index::strtree::TemplateSTRNodePair<void*, geos::index::strtree::EnvelopeTraits, GEOSSTRtree_nearest_generic_r::GeometryDistance>::getItems() const
Unexecuted instantiation: geos::index::strtree::TemplateSTRNodePair<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits, geos::operation::distance::IndexedFacetDistance::FacetDistance>::getItems() const
Unexecuted instantiation: MinimumClearance.cpp:geos::index::strtree::TemplateSTRNodePair<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits, geos::precision::MinimumClearance::compute()::MinClearanceDistance>::getItems() const
44
45
0
    const Node &getFirst() const {
46
0
        return *m_node1;
47
0
    }
Unexecuted instantiation: geos_ts_c.cpp:geos::index::strtree::TemplateSTRNodePair<void*, geos::index::strtree::EnvelopeTraits, GEOSSTRtree_nearest_generic_r::CustomItemDistance>::getFirst() const
Unexecuted instantiation: geos_ts_c.cpp:geos::index::strtree::TemplateSTRNodePair<void*, geos::index::strtree::EnvelopeTraits, GEOSSTRtree_nearest_generic_r::GeometryDistance>::getFirst() const
Unexecuted instantiation: geos::index::strtree::TemplateSTRNodePair<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits, geos::operation::distance::IndexedFacetDistance::FacetDistance>::getFirst() const
Unexecuted instantiation: MinimumClearance.cpp:geos::index::strtree::TemplateSTRNodePair<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits, geos::precision::MinimumClearance::compute()::MinClearanceDistance>::getFirst() const
48
49
0
    const Node &getSecond() const {
50
0
        return *m_node2;
51
0
    }
Unexecuted instantiation: geos_ts_c.cpp:geos::index::strtree::TemplateSTRNodePair<void*, geos::index::strtree::EnvelopeTraits, GEOSSTRtree_nearest_generic_r::CustomItemDistance>::getSecond() const
Unexecuted instantiation: geos_ts_c.cpp:geos::index::strtree::TemplateSTRNodePair<void*, geos::index::strtree::EnvelopeTraits, GEOSSTRtree_nearest_generic_r::GeometryDistance>::getSecond() const
Unexecuted instantiation: geos::index::strtree::TemplateSTRNodePair<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits, geos::operation::distance::IndexedFacetDistance::FacetDistance>::getSecond() const
Unexecuted instantiation: MinimumClearance.cpp:geos::index::strtree::TemplateSTRNodePair<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits, geos::precision::MinimumClearance::compute()::MinClearanceDistance>::getSecond() const
52
53
0
    double distance(ItemDistance& id) {
54
0
        if (isLeaves()) {
55
0
            return id(getFirst().getItem(), getSecond().getItem());
56
0
        } else {
57
0
            return BoundsTraits::distance(getFirst().getBounds(), getSecond().getBounds());
58
0
        }
59
0
    }
Unexecuted instantiation: geos_ts_c.cpp:geos::index::strtree::TemplateSTRNodePair<void*, geos::index::strtree::EnvelopeTraits, GEOSSTRtree_nearest_generic_r::CustomItemDistance>::distance(GEOSSTRtree_nearest_generic_r::CustomItemDistance&)
Unexecuted instantiation: geos_ts_c.cpp:geos::index::strtree::TemplateSTRNodePair<void*, geos::index::strtree::EnvelopeTraits, GEOSSTRtree_nearest_generic_r::GeometryDistance>::distance(GEOSSTRtree_nearest_generic_r::GeometryDistance&)
Unexecuted instantiation: geos::index::strtree::TemplateSTRNodePair<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits, geos::operation::distance::IndexedFacetDistance::FacetDistance>::distance(geos::operation::distance::IndexedFacetDistance::FacetDistance&)
Unexecuted instantiation: MinimumClearance.cpp:geos::index::strtree::TemplateSTRNodePair<geos::operation::distance::FacetSequence const*, geos::index::strtree::EnvelopeTraits, geos::precision::MinimumClearance::compute()::MinClearanceDistance>::distance(geos::precision::MinimumClearance::compute()::MinClearanceDistance&)
60
61
0
    double maximumDistance() {
62
0
        return BoundsTraits::maxDistance(getFirst().getBounds(), getSecond().getBounds());
63
0
    }
64
65
private:
66
    const Node* m_node1;
67
    const Node* m_node2;
68
    double m_distance;
69
};
70
71
}
72
}
73
}
74