GEOS 3.9.1
FastSegmentSetIntersectionFinder.h
1/**********************************************************************
2 *
3 * GEOS - Geometry Engine Open Source
4 * http://geos.osgeo.org
5 *
6 * Copyright (C) 2006 Refractions Research 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 *
16 * Last port: noding/FastSegmentSetIntersectionFinder.java r388 (JTS-1.12)
17 *
18 **********************************************************************/
19
20#ifndef GEOS_NODING_FASTSEGMENTSETINTERSECTIONFINDER_H
21#define GEOS_NODING_FASTSEGMENTSETINTERSECTIONFINDER_H
22
23#include <geos/algorithm/LineIntersector.h>
24#include <geos/noding/SegmentString.h>
25#include <geos/noding/MCIndexSegmentSetMutualIntersector.h>
26
27#include <memory>
28
29//forward declarations
30namespace geos {
31namespace noding {
32class SegmentIntersectionDetector;
33class SegmentSetMutualIntersector;
34//class MCIndexSegmentSetMutualIntersector : public SegmentSetMutualIntersector;
35}
36}
37
38
39namespace geos {
40namespace noding { // geos::noding
41
52private:
53 std::unique_ptr<MCIndexSegmentSetMutualIntersector> segSetMutInt;
54 std::unique_ptr<geos::algorithm::LineIntersector> lineIntersector;
55
56protected:
57public:
58 FastSegmentSetIntersectionFinder(SegmentString::ConstVect* baseSegStrings);
59
61
70 {
71 return segSetMutInt.get();
72 }
73
74 bool intersects(SegmentString::ConstVect* segStrings);
75 bool intersects(SegmentString::ConstVect* segStrings, SegmentIntersectionDetector* intDetector);
76
77};
78
79} // geos::noding
80} // geos
81
82#endif // GEOS_NODING_FASTSEGMENTSETINTERSECTIONFINDER_H
83
Finds if two sets of SegmentStrings intersect.
Definition FastSegmentSetIntersectionFinder.h:51
const SegmentSetMutualIntersector * getSegmentSetIntersector() const
Definition FastSegmentSetIntersectionFinder.h:69
Detects and records an intersection between two SegmentStrings, if one exists.
Definition SegmentIntersectionDetector.h:42
An intersector for the red-blue intersection problem.
Definition SegmentSetMutualIntersector.h:37
Basic namespace for all GEOS functionalities.
Definition IndexedNestedRingTester.h:26