SinglePassNoder.h
/**********************************************************************
*
* GEOS - Geometry Engine Open Source
* http://geos.osgeo.org
*
* Copyright (C) 2006 Refractions Research Inc.
*
* This is free software; you can redistribute and/or modify it under
* the terms of the GNU Lesser General Public Licence as published
* by the Free Software Foundation.
* See the COPYING file for more information.
*
**********************************************************************/
#pragma once
#include <geos/export.h>
#include <vector>
#include <geos/noding/Noder.h>
// Forward declarations
namespace geos {
namespace noding {
class SegmentString;
class SegmentIntersector;
}
}
namespace geos {
namespace noding { // geos.noding
class GEOS_DLL SinglePassNoder : public Noder { // implements Noder
protected:
SegmentIntersector* segInt;
public:
SinglePassNoder(SegmentIntersector* nSegInt = nullptr): segInt(nSegInt) {}
~SinglePassNoder() override {}
virtual void
setSegmentIntersector(SegmentIntersector* newSegInt)
{
segInt = newSegInt;
}
void computeNodes(std::vector<SegmentString*>* segStrings) override = 0;
std::vector<SegmentString*>* getNodedSubstrings() const override = 0;
};
} // namespace geos.noding
} // namespace geos
geos::noding::SegmentIntersector
Processes possible intersections detected by a Noder.
Definition noding/SegmentIntersector.h:45
geos::noding::SegmentString
An interface for classes which represent a sequence of contiguous line segments.
Definition SegmentString.h:47
geos::noding::SinglePassNoder
Base class for Noders which make a single pass to find intersections.
Definition SinglePassNoder.h:48
geos::noding::SinglePassNoder::computeNodes
void computeNodes(std::vector< SegmentString * > *segStrings) override=0
Computes the noding for a collection of SegmentStrings.
geos::noding::SinglePassNoder::getNodedSubstrings
std::vector< SegmentString * > * getNodedSubstrings() const override=0
Returns a Collection of fully noded SegmentStrings.
geos::noding::SinglePassNoder::segInt
SegmentIntersector * segInt
Externally owned.
Definition SinglePassNoder.h:53
geos::noding::SinglePassNoder::setSegmentIntersector
virtual void setSegmentIntersector(SegmentIntersector *newSegInt)
Sets the SegmentIntersector to use with this noder.
Definition SinglePassNoder.h:72
geos::noding
Classes to compute nodings for arrangements of line segments and line segment sequences.
Definition CoverageCleaner.h:42
geos
Basic namespace for all GEOS functionalities.
Definition geos.h:38