Coverage Report

Created: 2026-02-26 07:13

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/geos/include/geos/triangulate/quadedge/QuadEdgeQuartet.h
Line
Count
Source
1
/**********************************************************************
2
 *
3
 * GEOS - Geometry Engine Open Source
4
 * http://geos.osgeo.org
5
 *
6
 * Copyright (C) 2019 Daniel Baston
7
 *
8
 * This is free software; you can redistribute and/or modify it under
9
 * the terms of the GNU Lesser General 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/triangulate/quadedge/QuadEdge.h>
18
19
20
namespace geos {
21
namespace triangulate {
22
namespace quadedge {
23
24
class GEOS_DLL QuadEdgeQuartet {
25
26
public:
27
0
    QuadEdgeQuartet() : e{{QuadEdge(0), QuadEdge(1), QuadEdge(2), QuadEdge(3)}} {
28
0
        e[0].next = &(e[0]);
29
0
        e[1].next = &(e[3]);
30
0
        e[2].next = &(e[2]);
31
0
        e[3].next = &(e[1]);
32
0
    };
33
34
0
    static QuadEdge& makeEdge(const Vertex& o, const Vertex & d, std::deque<QuadEdgeQuartet> & edges) {
35
0
        edges.emplace_back();
36
0
        auto& qe = edges.back();
37
0
        qe.base().setOrig(o);
38
0
        qe.base().setDest(d);
39
40
0
        return qe.base();
41
0
    }
42
43
0
    QuadEdge& base() {
44
0
        return e[0];
45
0
    }
46
47
0
    const QuadEdge& base() const {
48
0
        return e[0];
49
0
    }
50
51
0
    void setVisited(bool status) {
52
0
        for (auto& edge : e) {
53
0
            edge.setVisited(status);
54
0
        }
55
0
    }
56
57
private:
58
    std::array<QuadEdge, 4> e;
59
};
60
61
}
62
}
63
}
64