21#ifndef GEOS_GEOS_POINT_H
22#define GEOS_GEOS_POINT_H
24#include <geos/export.h>
25#include <geos/geom/Geometry.h>
26#include <geos/geom/CoordinateSequence.h>
27#include <geos/geom/FixedSizeCoordinateSequence.h>
28#include <geos/geom/Envelope.h>
29#include <geos/geom/Dimension.h>
31#include <geos/inline.h>
39#pragma warning(disable: 4251)
46class CoordinateArraySequence;
47class CoordinateFilter;
48class CoordinateSequenceFilter;
49class GeometryComponentFilter;
75 ~Point()
override =
default;
83 std::unique_ptr<Geometry>
86 return std::unique_ptr<Geometry>(
new Point(*
this));
139 std::unique_ptr<Geometry>
165 Envelope::Ptr computeEnvelopeInternal()
const override;
167 int compareToSameClass(
const Geometry* p)
const override;
170 getSortIndex()
const override
172 return SORTINDEX_POINT;
180 FixedSizeCoordinateSequence<1> coordinates;
Geometry classes support the concept of applying a coordinate filter to every coordinate in the Geome...
Definition: CoordinateFilter.h:43
Interface for classes which provide operations that can be applied to the coordinates in a Coordinate...
Definition: CoordinateSequenceFilter.h:57
The internal representation of a list of coordinates inside a Geometry.
Definition: CoordinateSequence.h:58
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:60
DimensionType
Definition: Dimension.h:31
Definition: GeometryComponentFilter.h:43
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition: GeometryFactory.h:68
Geometry classes support the concept of applying a Geometry filter to the Geometry.
Definition: GeometryFilter.h:47
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition: Geometry.h:188
std::string getGeometryType() const override
Return a string representation of this Geometry type.
std::unique_ptr< Geometry > reverse() const override
Computes a new geometry which has all component coordinate sequences in reverse order (opposite orien...
Definition: Point.h:140
std::vector< const Point * > ConstVect
A vector of const Point pointers.
Definition: Point.h:73
Point(CoordinateSequence *newCoords, const GeometryFactory *newFactory)
Creates a Point taking ownership of the given CoordinateSequence (must have 1 element)
void apply_ro(CoordinateSequenceFilter &filter) const override
void normalize(void) override
Definition: Point.h:134
Dimension::DimensionType getDimension() const override
Returns point dimension (0)
void apply_rw(CoordinateSequenceFilter &filter) override
std::unique_ptr< Geometry > getBoundary() const override
bool equalsExact(const Geometry *other, double tolerance=0) const override
Returns true iff the two Geometrys are of the same type and their vertices corresponding by index are...
std::unique_ptr< Geometry > clone() const override
Definition: Point.h:84
size_t getNumPoints() const override
Returns the count of this Geometrys vertices.
int getBoundaryDimension() const override
Returns Dimension::False (Point has no boundary)
bool isSimple() const override
Returns false if the Geometry not simple.
std::unique_ptr< CoordinateSequence > getCoordinates(void) const override
Returns this Geometry vertices. Caller takes ownership of the returned object.
bool isEmpty() const override
Returns whether or not the set of points in this Geometry is empty.
uint8_t getCoordinateDimension() const override
Returns coordinate dimension.
GeometryTypeId getGeometryTypeId() const override
Return an integer representation of this Geometry type.
const Coordinate * getCoordinate() const override
Returns a vertex of this Geometry, or NULL if this is the empty geometry.
GeometryTypeId
Geometry types.
Definition: Geometry.h:75
Basic namespace for all GEOS functionalities.
Definition: IndexedNestedRingTester.h:26