geos::geom::Point Class Reference

`#include <Point.h>`

Inheritance diagram for geos::geom::Point:

## Public Types

typedef std::vector< const Point * > | ConstVect
| A vector of const Point pointers.
Public Types inherited from geos::geom::Geometry
using | ConstVect = std::vector<const Geometry*>
| A vector of const Geometry pointers.
using | NonConstVect = std::vector<Geometry*>
| A vector of non-const Geometry pointers.
using | Ptr = std::unique_ptr<Geometry>
| An unique_ptr of Geometry.

## Public Member Functions

std::unique_ptr< Point > | clone () const
std::unique_ptr< CoordinateSequence > | getCoordinates (void) const override
| Returns this Geometry vertices. Caller takes ownership of the returned object.
const CoordinateSequence * | getCoordinatesRO () const
std::size_t | getNumPoints () const override
| Returns the count of this Geometrys vertices.
bool | isEmpty () const override
| Returns whether or not the set of points in this Geometry is empty.
bool | isSimple () const override
| Returns false if the Geometry not simple.
Dimension::DimensionType | getDimension () const override
| Returns point dimension (0).
uint8_t | getCoordinateDimension () const override
| Returns coordinate dimension.
bool | hasM () const override
bool | hasZ () const override
int | getBoundaryDimension () const override
| Returns Dimension::False (Point has no boundary).
std::unique_ptr< Geometry > | getBoundary () const override
void | setXY (double x, double y)
const CoordinateXY * | getCoordinate () const override
| Returns a vertex of this Geometry, or NULL if this is the empty geometry.
double | getX () const
double | getY () const
double | getZ () const
double | getM () const
std::string | getGeometryType () const override
| Return a string representation of this Geometry type.
GeometryTypeId | getGeometryTypeId () const override
| Return an integer representation of this Geometry type.
void | apply_ro (CoordinateFilter *filter) const override
void | apply_rw (const CoordinateFilter *filter) override
void | apply_ro (GeometryFilter *filter) const override
void | apply_rw (GeometryFilter *filter) override
void | apply_rw (GeometryComponentFilter *filter) override
void | apply_ro (GeometryComponentFilter *filter) const override
void | apply_rw (CoordinateSequenceFilter &filter) override
void | apply_ro (CoordinateSequenceFilter &filter) 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 equal up to a specified distance tolerance. Geometries are not required to have the same dimemsion; any Z/M values are ignored.
bool | equalsIdentical (const Geometry *other) const override
| Returns true if the two geometries are of the same type and their vertices corresponding by index are equal in all dimensions.
void | normalize (void) override
std::unique_ptr< Point > | reverse () const
const Envelope * | getEnvelopeInternal () const override
| Returns the minimum and maximum x and y values in this Geometry, or a null Envelope if this Geometry is empty.
Public Member Functions inherited from geos::geom::Geometry
std::unique_ptr< Geometry > | clone () const
| Make a deep-copy of this Geometry.
virtual | ~Geometry ()
| Destroy Geometry and all components.
const GeometryFactory * | getFactory () const
| Gets the factory which contains the context in which this geometry was created.
void | setUserData (void *newUserData)
| A simple scheme for applications to add their own custom data to a Geometry. An example use might be to add an object representing a Coordinate Reference System.
void * | getUserData () const
| Gets the user data object for this geometry, if any.
int | getSRID () const
| Returns the ID of the Spatial Reference System used by the Geometry.
virtual void | setSRID (int newSRID)
| Sets the ID of the Spatial Reference System used by the Geometry.
const PrecisionModel * | getPrecisionModel () const
| Get the PrecisionModel used to create this Geometry.
virtual bool | hasCurvedComponents () const
| Returns whether the Geometry contains curved components.
virtual std::size_t | getNumGeometries () const
| Returns the number of geometries in this collection, or 1 if this is not a collection.
virtual const Geometry * | getGeometryN (std::size_t) const
| Returns a pointer to the nth Geometry in this collection (or self if this is not a collection).
bool | isValid () const
| Tests the validity of this `Geometry`.
virtual bool | isRectangle () const
| Polygon overrides to check for actual rectangle.
virtual bool | hasDimension (Dimension::DimensionType d) const
| Checks whether any component of this geometry has dimension d.
virtual bool | isDimensionStrict (Dimension::DimensionType d) const
| Checks whether this Geometry consists only of components having dimension d.
bool | isPuntal () const
bool | isLineal () const
bool | isPolygonal () const
bool | isMixedDimension () const
bool | isMixedDimension (Dimension::DimensionType *baseDim) const
bool | isCollection () const
virtual std::unique_ptr< Geometry > | getEnvelope () const
| Returns this Geometrys bounding box.
virtual bool | disjoint (const Geometry *other) const
virtual bool | touches (const Geometry *other) const
| Returns true if the DE-9IM intersection matrix for the two Geometrys is FT*******, F**T***** or F***T****.
virtual bool | intersects (const Geometry *g) const
| Returns true if disjoint returns false.
virtual bool | crosses (const Geometry *g) const
virtual bool | within (const Geometry *g) const
| Returns true if the DE-9IM intersection matrix for the two Geometrys is T*F**F***.
virtual bool | contains (const Geometry *g) const
| Returns true if other.within(this) returns true.
virtual bool | overlaps (const Geometry *g) const
| Returns true if the DE-9IM intersection matrix for the two Geometrys is T*T***T** (for two points or two surfaces) 1*T***T** (for two curves).
bool | relate (const Geometry *g, const std::string &intersectionPattern) const
| Returns true if the elements in the DE-9IM intersection matrix for the two Geometrys match the elements in intersectionPattern.
bool | relate (const Geometry &g, const std::string &intersectionPattern) const
std::unique_ptr< IntersectionMatrix > | relate (const Geometry *g) const
| Returns the DE-9IM intersection matrix for the two Geometrys.
std::unique_ptr< IntersectionMatrix > | relate (const Geometry &g) const
bool | equals (const Geometry *g) const
| Returns true if the DE-9IM intersection matrix for the two Geometrys is T*F**FFF*.
bool | covers (const Geometry *g) const
| Returns `true` if this geometry covers the specified geometry.
bool | coveredBy (const Geometry *g) const
| Tests whether this geometry is covered by the specified geometry.
virtual std::string | toString () const
| Returns the Well-known Text representation of this Geometry.
virtual std::string | toText () const
std::unique_ptr< Geometry > | buffer (double distance) const
std::unique_ptr< Geometry > | buffer (double distance, int quadrantSegments) const
| Returns a buffer region around this Geometry having the given width and with a specified number of segments used to approximate curves.
std::unique_ptr< Geometry > | buffer (double distance, int quadrantSegments, int endCapStyle) const
| Computes a buffer area around this geometry having the given width and with a specified accuracy of approximation for circular arcs, and using a specified end cap style.
virtual std::unique_ptr< Geometry > | convexHull () const
| Returns the smallest convex Polygon that contains all the points in the Geometry.
std::unique_ptr< Geometry > | reverse () const
| Computes a new geometry which has all component coordinate sequences in reverse order (opposite orientation) to this one.
std::unique_ptr< Geometry > | intersection (const Geometry *other) const
| Returns a Geometry representing the points shared by this Geometry and other.
std::unique_ptr< Geometry > | Union (const Geometry *other) const
| Returns a Geometry representing all the points in this Geometry and other.
Ptr | Union () const
| Computes the union of all the elements of this geometry. Heterogeneous GeometryCollections are fully supported.
std::unique_ptr< Geometry > | difference (const Geometry *other) const
| Returns a Geometry representing the points making up this Geometry that do not make up other.
std::unique_ptr< Geometry > | symDifference (const Geometry *other) const
| Returns a set combining the points in this Geometry not in other, and the points in other not in this Geometry.
template<class T>
void | applyComponentFilter (T &f) const
| Apply a filter to each component of this geometry. The filter is expected to provide a .filter(const Geometry*) method.
int | compareTo (const Geometry *geom) const
| Comparator for sorting geometry.
virtual double | getArea () const
| Returns the area of this Geometry.
virtual double | getLength () const
| Returns the length of this Geometry.
virtual double | distance (const Geometry *g) const
virtual bool | isWithinDistance (const Geometry *geom, double cDistance) const
| Tests whether the distance from this Geometry to another is less than or equal to a specified value.
virtual std::unique_ptr< Point > | getCentroid () const
| Computes the centroid of this `Geometry`.
virtual bool | getCentroid (CoordinateXY &ret) const
| Computes the centroid of this Geometry as a Coordinate.
std::unique_ptr< Point > | getInteriorPoint () const
| Computes an interior point of this `Geometry`.
void | geometryChanged ()
| Notifies this Geometry that its Coordinates have been changed by an external party (using a CoordinateFilter, for example).

## Protected Member Functions

| Point (CoordinateSequence &&newCoords, const GeometryFactory *newFactory)
| Creates a Point taking ownership of the given CoordinateSequence (must have 1 element).
| Point (const Coordinate &c, const GeometryFactory *newFactory)
| Point (const CoordinateXY &c, const GeometryFactory *newFactory)
| Point (const CoordinateXYM &c, const GeometryFactory *newFactory)
| Point (const CoordinateXYZM &c, const GeometryFactory *newFactory)
| Point (const Point &p)
Point * | cloneImpl () const override
| Make a deep-copy of this Geometry.
Point * | reverseImpl () const override
| Make a geometry with coordinates in reverse order.
Envelope | computeEnvelopeInternal () const
int | compareToSameClass (const Geometry *p) const override
int | getSortIndex () const override
void | geometryChangedAction () override
| Notifies this Geometry that its Coordinates have been changed by an external party.
Protected Member Functions inherited from geos::geom::Geometry
virtual bool | isEquivalentClass (const Geometry *other) const
| Returns whether the two Geometrys are equal, from the point of view of the equalsExact method.
bool | equal (const CoordinateXY &a, const CoordinateXY &b, double tolerance) const
| Geometry (const Geometry &geom)
| Geometry (const GeometryFactory *factory)
| Construct a geometry with the given GeometryFactory.

## Friends

class | GeometryFactory

## Additional Inherited Members

Static Public Member Functions inherited from geos::geom::Geometry
static GeometryTypeId | multiTypeId (GeometryTypeId typeId)
Static Protected Member Functions inherited from geos::geom::Geometry
template<typename T>
static bool | hasNonEmptyElements (const std::vector< T > *geometries)
| Returns true if the array contains any non-empty Geometrys.
static bool | hasNullElements (const CoordinateSequence *list)
| Returns true if the CoordinateSequence contains any null elements.
template<typename T>
static bool | hasNullElements (const std::vector< T > *geometries)
| Returns true if the vector contains any null elements.
static void | checkNotGeometryCollection (const Geometry *g)
template<typename T>
static int | compare (const T &a, const T &b)
template<typename T>
static std::vector< std::unique_ptr< Geometry > > | toGeometryArray (std::vector< std::unique_ptr< T > > &&v)
static std::vector< std::unique_ptr< Geometry > > | toGeometryArray (std::vector< std::unique_ptr< Geometry > > &&v)
Protected Attributes inherited from geos::geom::Geometry
int | SRID

## Detailed Description

Implementation of Point.

A Point is valid iff:

- the coordinate which defines it is a valid coordinate (i.e does not have an NaN X or Y ordinate)

## Constructor & Destructor Documentation

## Point()

geos::geom::Point::Point | ( | CoordinateSequence && | newCoords,
|  | const GeometryFactory * | newFactory )

protected

Creates a Point taking ownership of the given CoordinateSequence (must have 1 element).

Parameters

  newCoords | contains the single coordinate on which to base this `Point` or `null` to create the empty geometry.
  newFactory | the GeometryFactory used to create this geometry

References Point().

Referenced by cloneImpl(), Point(), and reverseImpl().

## Member Function Documentation

## apply_ro() [1/4]

void geos::geom::Point::apply_ro | ( | CoordinateFilter * | filter | ) | const

override virtual

Implements geos::geom::Geometry.

## apply_ro() [2/4]

void geos::geom::Point::apply_ro | ( | CoordinateSequenceFilter & | filter | ) | const

override virtual

Performs a read-only operation on the coordinates in this Geometry's CoordinateSequences.

Parameters

  filter | the filter to apply

Implements geos::geom::Geometry.

## apply_ro() [3/4]

void geos::geom::Point::apply_ro | ( | GeometryComponentFilter * | filter | ) | const

override virtual

Reimplemented from geos::geom::Geometry.

## apply_ro() [4/4]

void geos::geom::Point::apply_ro | ( | GeometryFilter * | filter | ) | const

override virtual

Reimplemented from geos::geom::Geometry.

## apply_rw() [1/4]

void geos::geom::Point::apply_rw | ( | const CoordinateFilter * | filter | ) |

override virtual

Implements geos::geom::Geometry.

## apply_rw() [2/4]

void geos::geom::Point::apply_rw | ( | CoordinateSequenceFilter & | filter | ) |

override virtual

Performs an operation on the coordinates in this Geometry's CoordinateSequences. If the filter reports that a coordinate value has been changed, `geometryChanged` will be called automatically.

Parameters

  filter | the filter to apply

Implements geos::geom::Geometry.

## apply_rw() [3/4]

void geos::geom::Point::apply_rw | ( | GeometryComponentFilter * | filter | ) |

override virtual

Reimplemented from geos::geom::Geometry.

## apply_rw() [4/4]

void geos::geom::Point::apply_rw | ( | GeometryFilter * | filter | ) |

override virtual

Reimplemented from geos::geom::Geometry.

## clone()

std::unique_ptr< Point > geos::geom::Point::clone | ( |  | ) | const

inline

Creates and returns a full copy of this `Point` object. (including all coordinates contained by it).

Returns
  a clone of this instance

References cloneImpl().

## cloneImpl()

Point * geos::geom::Point::cloneImpl | ( |  | ) | const

inline override protected virtual

Make a deep-copy of this Geometry.

Implements geos::geom::Geometry.

References Point().

Referenced by clone().

## compareToSameClass()

int geos::geom::Point::compareToSameClass | ( | const Geometry * | p | ) | const

override protected virtual

Implements geos::geom::Geometry.

## equalsExact()

bool geos::geom::Point::equalsExact | ( | const Geometry * | other,
|  | double | tolerance = 0 ) const

override virtual

Returns true iff the two Geometrys are of the same type and their vertices corresponding by index are equal up to a specified distance tolerance. Geometries are not required to have the same dimemsion; any Z/M values are ignored.

Implements geos::geom::Geometry.

## equalsIdentical()

bool geos::geom::Point::equalsIdentical | ( | const Geometry * | other | ) | const

override virtual

Returns true if the two geometries are of the same type and their vertices corresponding by index are equal in all dimensions.

Implements geos::geom::Geometry.

## geometryChangedAction()

void geos::geom::Point::geometryChangedAction | ( |  | ) |

inline override protected virtual

Notifies this Geometry that its Coordinates have been changed by an external party.

Implements geos::geom::Geometry.

## getBoundary()

std::unique_ptr< Geometry > geos::geom::Point::getBoundary | ( |  | ) | const

override virtual

Gets the boundary of this geometry. Zero-dimensional geometries have no boundary by definition, so an empty GeometryCollection is returned.

Returns
  an empty GeometryCollection

See also
  Geometry::getBoundary

Implements geos::geom::Geometry.

References isEmpty().

## getBoundaryDimension()

int geos::geom::Point::getBoundaryDimension | ( |  | ) | const

override virtual

Returns Dimension::False (Point has no boundary).

Implements geos::geom::Geometry.

## getCoordinate()

const CoordinateXY * geos::geom::Point::getCoordinate | ( |  | ) | const

inline override virtual

Returns a vertex of this Geometry, or NULL if this is the empty geometry.

Implements geos::geom::Geometry.

References isEmpty().

## getCoordinateDimension()

uint8_t geos::geom::Point::getCoordinateDimension | ( |  | ) | const

override virtual

Returns coordinate dimension.

Implements geos::geom::Geometry.

## getCoordinates()

std::unique_ptr< CoordinateSequence > geos::geom::Point::getCoordinates | ( | void |  | ) | const

override virtual

Returns this Geometry vertices. Caller takes ownership of the returned object.

Implements geos::geom::Geometry.

## getDimension()

Dimension::DimensionType geos::geom::Point::getDimension | ( |  | ) | const

override virtual

Returns point dimension (0).

Implements geos::geom::Geometry.

## getEnvelopeInternal()

const Envelope * geos::geom::Point::getEnvelopeInternal | ( |  | ) | const

inline override virtual

Returns the minimum and maximum x and y values in this Geometry, or a null Envelope if this Geometry is empty.

Implements geos::geom::Geometry.

## getGeometryType()

std::string geos::geom::Point::getGeometryType | ( |  | ) | const

override virtual

Return a string representation of this Geometry type.

Implements geos::geom::Geometry.

## getGeometryTypeId()

GeometryTypeId geos::geom::Point::getGeometryTypeId | ( |  | ) | const

override virtual

Return an integer representation of this Geometry type.

Implements geos::geom::Geometry.

## getNumPoints()

std::size_t geos::geom::Point::getNumPoints | ( |  | ) | const

override virtual

Returns the count of this Geometrys vertices.

Implements geos::geom::Geometry.

## getSortIndex()

int geos::geom::Point::getSortIndex | ( |  | ) | const

inline override protected virtual

Implements geos::geom::Geometry.

## hasM()

bool geos::geom::Point::hasM | ( |  | ) | const

override virtual

Implements geos::geom::Geometry.

## hasZ()

bool geos::geom::Point::hasZ | ( |  | ) | const

override virtual

Implements geos::geom::Geometry.

## isEmpty()

bool geos::geom::Point::isEmpty | ( |  | ) | const

override virtual

Returns whether or not the set of points in this Geometry is empty.

Implements geos::geom::Geometry.

Referenced by getBoundary(), and getCoordinate().

## isSimple()

bool geos::geom::Point::isSimple | ( |  | ) | const

override virtual

Returns false if the Geometry not simple.

Reimplemented from geos::geom::Geometry.

## normalize()

void geos::geom::Point::normalize | ( | void |  | ) |

inline override virtual

Reorganizes this Geometry into normal form (or canonical form). Starting point of rings is lower left, collections are ordered by geometry type, etc.

Implements geos::geom::Geometry.

## reverseImpl()

Point * geos::geom::Point::reverseImpl | ( |  | ) | const

inline override protected virtual

Make a geometry with coordinates in reverse order.

Implements geos::geom::Geometry.

References Point().

The documentation for this class was generated from the following file:

- Point.h