geos::geom::Surface Class Referenceabstract

`#include <Surface.h>`

Inheritance diagram for geos::geom::Surface:

## Public Member Functions

void | apply_ro (CoordinateFilter *filter) const override
void | apply_ro (CoordinateSequenceFilter &filter) const override
void | apply_ro (GeometryComponentFilter *filter) const override
void | apply_ro (GeometryFilter *filter) const override
void | apply_rw (CoordinateSequenceFilter &filter) override
void | apply_rw (GeometryComponentFilter *filter) override
void | apply_rw (GeometryFilter *filter) override
void | apply_rw (const CoordinateFilter *filter) override
std::unique_ptr< Geometry > | convexHull () const override
| Returns the smallest convex Polygon that contains all the points in the Geometry.
bool | equalsExact (const Geometry *other, double tolerance=0.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.
int | getBoundaryDimension () const override
| Returns the dimension of this Geometrys inherent boundary.
const CoordinateXY * | getCoordinate () const override
| Returns a vertex of this Geometry, or NULL if this is the empty geometry.
uint8_t | getCoordinateDimension () const override
| Returns the coordinate dimension of this Geometry (2=XY, 3=XYZ or XYM, 4=XYZM).
Dimension::DimensionType | getDimension () const override
| Returns the dimension of this Geometry (0=point, 1=line, 2=surface).
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.
virtual const Curve * | getExteriorRing () const =0
| Returns the exterior ring (shell).
virtual const Curve * | getInteriorRingN (std::size_t n) const =0
| Get nth interior ring (hole).
double | getLength () const override
| Returns the perimeter of this Surface.
virtual size_t | getNumInteriorRing () const =0
| Returns number of interior rings (holes).
size_t | getNumPoints () const override
| Returns the count of this Geometrys vertices.
bool | hasM () const override
bool | hasZ () const override
bool | isEmpty () const override
| Returns whether or not the set of points in 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 std::unique_ptr< CoordinateSequence > | getCoordinates () const =0
| Returns this Geometry vertices. Caller takes ownership of the returned object.
virtual bool | isSimple () const
| Returns false if the Geometry not simple.
virtual std::string | getGeometryType () const =0
| Return a string representation of this Geometry type.
virtual bool | hasCurvedComponents () const
| Returns whether the Geometry contains curved components.
virtual GeometryTypeId | getGeometryTypeId () const =0
| Return an integer representation of this Geometry type.
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 > | getBoundary () const =0
| Returns the boundary, or an empty geometry of appropriate dimension if this `Geometry` is empty.
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.
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.
virtual void | normalize ()=0
int | compareTo (const Geometry *geom) const
| Comparator for sorting geometry.
virtual double | getArea () const
| Returns the area 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

int | compareToSameClass (const Geometry *g) const override
virtual Curve * | getExteriorRing ()=0
virtual Curve * | getInteriorRingN (std::size_t i)=0
void | geometryChangedAction () override
| Notifies this Geometry that its Coordinates have been changed by an external party.
| Geometry (const Geometry &geom)
| Geometry (const GeometryFactory *factory)
| Construct a geometry with the given GeometryFactory.
Protected Member Functions inherited from geos::geom::Geometry
virtual Geometry * | cloneImpl () const =0
| Make a deep-copy of this Geometry.
virtual Geometry * | reverseImpl () const =0
| Make a geometry with coordinates in reverse order.
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.
virtual int | getSortIndex () const =0

## Static Protected Member Functions

static std::unique_ptr< Geometry > | createEmptyRing (const GeometryFactory &)
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)

## Additional Inherited Members

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.
Static Public Member Functions inherited from geos::geom::Geometry
static GeometryTypeId | multiTypeId (GeometryTypeId typeId)
Protected Attributes inherited from geos::geom::Geometry
int | SRID

## Detailed Description

A Surface is an abstract class representing a Geometry of dimension 2. It is extended by Polygon, which represents a Surface with linear edges, and by CurvePolygon, whose edges may include circular arcs.

## Member Function Documentation

## apply_ro() [1/4]

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

override virtual

Implements geos::geom::Geometry.

## apply_ro() [2/4]

void geos::geom::Surface::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::Surface::apply_ro | ( | GeometryComponentFilter * | filter | ) | const

override virtual

Reimplemented from geos::geom::Geometry.

## apply_ro() [4/4]

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

override virtual

Reimplemented from geos::geom::Geometry.

## apply_rw() [1/4]

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

override virtual

Implements geos::geom::Geometry.

## apply_rw() [2/4]

void geos::geom::Surface::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.

References apply_rw().

Referenced by apply_rw().

## apply_rw() [3/4]

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

override virtual

Reimplemented from geos::geom::Geometry.

## apply_rw() [4/4]

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

override virtual

Reimplemented from geos::geom::Geometry.

## compareToSameClass()

int geos::geom::Surface::compareToSameClass | ( | const Geometry * | g | ) | const

override protected virtual

Implements geos::geom::Geometry.

## convexHull()

std::unique_ptr< Geometry > geos::geom::Surface::convexHull | ( |  | ) | const

override virtual

Returns the smallest convex Polygon that contains all the points in the Geometry.

Reimplemented from geos::geom::Geometry.

## equalsExact()

bool geos::geom::Surface::equalsExact | ( | const Geometry * | other,
|  | double | tolerance = 0.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::Surface::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.

## Geometry()

geos::geom::Geometry::Geometry | ( | const GeometryFactory * | factory | ) |

protected

Construct a geometry with the given GeometryFactory.

Will keep a reference to the factory, so don't delete it until al Geometry objects referring to it are deleted.

Parameters

  factory |

## geometryChangedAction()

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

inline override protected virtual

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

Implements geos::geom::Geometry.

## getBoundaryDimension()

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

inline override virtual

Returns the dimension of this Geometrys inherent boundary.

Implements geos::geom::Geometry.

## getCoordinate()

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

override virtual

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

Implements geos::geom::Geometry.

## getCoordinateDimension()

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

override virtual

Returns the coordinate dimension of this Geometry (2=XY, 3=XYZ or XYM, 4=XYZM).

Implements geos::geom::Geometry.

## getDimension()

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

inline override virtual

Returns the dimension of this Geometry (0=point, 1=line, 2=surface).

Implements geos::geom::Geometry.

References geos::geom::Dimension::A.

## getEnvelopeInternal()

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

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.

## getLength()

double geos::geom::Surface::getLength | ( |  | ) | const

override virtual

Returns the perimeter of this Surface.

Reimplemented from geos::geom::Geometry.

## getNumPoints()

size_t geos::geom::Surface::getNumPoints | ( |  | ) | const

override virtual

Returns the count of this Geometrys vertices.

Implements geos::geom::Geometry.

## hasM()

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

override virtual

Implements geos::geom::Geometry.

## hasZ()

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

override virtual

Implements geos::geom::Geometry.

## isEmpty()

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

override virtual

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

Implements geos::geom::Geometry.

References getExteriorRing(), and getInteriorRingN().

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

- Surface.h