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)
62class GEOS_DLL HotPixel {
89 std::vector<geom::Coordinate> corner;
92 mutable std::auto_ptr<geom::Envelope> safeEnv;
96 double scale(
double val)
const;
147 HotPixel(
const HotPixel& other);
148 HotPixel& operator=(
const HotPixel& rhs);
210# 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:53
Represents a list of contiguous line segments, and supports noding the segments.
Definition NodedSegmentString.h:58
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:168
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)
Contains classes and interfaces implementing fundamental computational geometry algorithms.
Definition Angle.h:33
Contains the Geometry interface hierarchy and supporting classes.
Definition IndexedNestedRingTester.h:26
Contains classes to implement the Snap Rounding algorithm for noding linestrings.
Definition HotPixel.h:49
Classes to compute nodings for arrangements of line segments and line segment sequences.
Definition PreparedLineString.h:27
Basic namespace for all GEOS functionalities.
Definition IndexedNestedRingTester.h:25