19#ifndef GEOS_NODING_SNAPROUND_HOTPIXEL_H
20#define GEOS_NODING_SNAPROUND_HOTPIXEL_H
22#include <geos/export.h>
24#include <geos/inline.h>
26#include <geos/geom/Coordinate.h>
27#include <geos/geom/Envelope.h>
31#pragma warning(disable: 4251)
43class NodedSegmentString;
89 std::vector<geom::Coordinate> corner;
92 mutable std::unique_ptr<geom::Envelope> safeEnv;
96 double scale(
double val)
const;
214# include "geos/noding/snapround/HotPixel.inl"
A LineIntersector is an algorithm that can both test whether two line segments intersect and compute ...
Definition: LineIntersector.h:49
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:60
An Envelope defines a rectangulare region of the 2D coordinate plane.
Definition: Envelope.h:58
Represents a list of contiguous line segments, and supports noding the segments.
Definition: NodedSegmentString.h:57
Implements a "hot pixel" as used in the Snap Rounding algorithm.
Definition: HotPixel.h:62
bool intersects(const geom::Coordinate &p0, const geom::Coordinate &p1) const
bool addSnappedNode(NodedSegmentString &segStr, std::size_t segIndex)
const geom::Coordinate & getCoordinate() const
Return reference to original Coordinate (the one provided at construction time)
Definition: HotPixel.h:169
const geom::Envelope & getSafeEnvelope() const
Returns a "safe" envelope that is guaranteed to contain the hot pixel. Keeps ownership of it.
HotPixel(const geom::Coordinate &pt, double scaleFact, algorithm::LineIntersector &li)
Basic namespace for all GEOS functionalities.
Definition: IndexedNestedRingTester.h:25