GEOS 3.15.0dev
ArcIntersector.h
1/**********************************************************************
2*
3 * GEOS - Geometry Engine Open Source
4 * http://geos.osgeo.org
5 *
6 * Copyright (C) 2025 ISciences, LLC
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/export.h>
18#include <geos/noding/ArcString.h>
19#include <geos/noding/SegmentString.h>
20
21namespace geos::noding {
22
23class GEOS_DLL ArcIntersector {
24public:
25 virtual void processIntersections(ArcString& e0, std::size_t arcIndex0,
26 ArcString& e1, std::size_t arcIndex1) = 0;
27 virtual void processIntersections(SegmentString& e0, std::size_t segIndex0,
28 SegmentString& e1, std::size_t segIndex1) = 0;
29 virtual void processIntersections(ArcString& e0, std::size_t arcIndex0,
30 SegmentString& e1, std::size_t segIndex1) = 0;
31
32 virtual void processIntersections(SegmentString& e0, std::size_t segIndex0,
33 ArcString& e1, std::size_t arcIndex1) {
34 processIntersections(e1, arcIndex1, e0, segIndex0);
35 }
36
37 virtual bool isDone() const {
38 return false;
39 }
40
41 virtual ~ArcIntersector() = default;
42};
43
44}
Classes to compute nodings for arrangements of line segments and line segment sequences.
Definition CoverageCleaner.h:42