GEOS 3.9.1
SweepLineSegment.h
1/**********************************************************************
2 *
3 * GEOS - Geometry Engine Open Source
4 * http://geos.osgeo.org
5 *
6 * Copyright (C) 2005-2006 Refractions Research Inc.
7 * Copyright (C) 2001-2002 Vivid Solutions Inc.
8 *
9 * This is free software; you can redistribute and/or modify it under
10 * the terms of the GNU Lesser General Public Licence as published
11 * by the Free Software Foundation.
12 * See the COPYING file for more information.
13 *
14 **********************************************************************/
15
16#ifndef GEOS_GEOMGRAPH_INDEX_SWEEPLINESEGMENT_H
17#define GEOS_GEOMGRAPH_INDEX_SWEEPLINESEGMENT_H
18
19#include <cstddef>
20#include <geos/export.h>
21#include <geos/geomgraph/index/SweepLineEventObj.h> // for inheritance
22
23// Forward declarations
24namespace geos {
25namespace geom {
26class CoordinateSequence;
27}
28namespace geomgraph {
29class Edge;
30namespace index {
31class SegmentIntersector;
32}
33}
34}
35
36namespace geos {
37namespace geomgraph { // geos::geomgraph
38namespace index { // geos::geomgraph::index
39
40class GEOS_DLL SweepLineSegment: public SweepLineEventOBJ {
41public:
42 SweepLineSegment(Edge* newEdge, size_t newPtIndex);
43 ~SweepLineSegment() override = default;
44 double getMinX();
45 double getMaxX();
46 void computeIntersections(SweepLineSegment* ss, SegmentIntersector* si);
47protected:
48 Edge* edge;
49 const geom::CoordinateSequence* pts;
50 size_t ptIndex;
51};
52
53
54
55} // namespace geos.geomgraph.index
56} // namespace geos.geomgraph
57} // namespace geos
58
59#endif
60
Basic namespace for all GEOS functionalities.
Definition IndexedNestedRingTester.h:26