Coverage Report

Created: 2026-09-01 06:39

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/geos/include/geos/index/chain/MonotoneChainSelectAction.h
Line
Count
Source
1
/**********************************************************************
2
 *
3
 * GEOS - Geometry Engine Open Source
4
 * http://geos.osgeo.org
5
 *
6
 * Copyright (C) 2001-2002 Vivid Solutions Inc.
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
 * Last port: index/chain/MonotoneChainSelectAction.java rev. 1.6 (JTS-1.10)
16
 *
17
 **********************************************************************/
18
19
#pragma once
20
21
#include <geos/export.h>
22
#include <geos/geom/LineSegment.h> // composition
23
#include <geos/geom/Envelope.h> // composition
24
25
26
// Forward declarations
27
namespace geos {
28
namespace index {
29
namespace chain {
30
class MonotoneChain;
31
}
32
}
33
}
34
35
namespace geos {
36
namespace index { // geos::index
37
namespace chain { // geos::index::chain
38
39
/**
40
 *  The action for the internal iterator for performing
41
 *  Envelope select queries on a MonotoneChain
42
 *
43
 */
44
class GEOS_DLL MonotoneChainSelectAction {
45
46
protected:
47
48
    geom::LineSegment selectedSegment;
49
50
public:
51
52
412k
    MonotoneChainSelectAction() {}
53
54
    virtual
55
412k
    ~MonotoneChainSelectAction() {}
56
57
    /// This function can be overridden if the original chain is needed
58
    virtual void select(const MonotoneChain& mc, std::size_t start);
59
60
    /**
61
     * This is a convenience function which can be overridden
62
     * to obtain the actual line segment which is selected
63
     *
64
     * @param seg
65
     */
66
    virtual void select(const geom::LineSegment& seg) = 0;
67
68
};
69
70
71
} // namespace geos::index::chain
72
} // namespace geos::index
73
} // namespace geos
74