GEOS  3.9.0dev
Public Member Functions | List of all members
geos::geom::CoordinateArraySequence Class Reference

The default implementation of CoordinateSequence. More...

#include <CoordinateArraySequence.h>

Inheritance diagram for geos::geom::CoordinateArraySequence:

Public Member Functions

 CoordinateArraySequence (const CoordinateArraySequence &cl)
 CoordinateArraySequence (const CoordinateSequence &cl)
< CoordinateSequence
clone () const override
 Returns a deep copy of this collection.
const CoordinategetAt (std::size_t pos) const override
 Returns a read-only reference to Coordinate at position i. More...
void getAt (std::size_t i, Coordinate &c) const override
 Copy Coordinate at position i to Coordinate c.
size_t getSize () const override
 Returns the number of Coordinates (actual or otherwise, as this implementation may not store its data in Coordinate objects).
void toVector (std::vector< Coordinate > &) const override
 CoordinateArraySequence ()
 Construct an empty sequence.
 CoordinateArraySequence (std::vector< Coordinate > &&coords, std::size_t dimension=0)
 Construct sequence moving from given Coordinate vector.
 CoordinateArraySequence (std::vector< Coordinate > *coords, std::size_t dimension=0)
 Construct sequence taking ownership of given Coordinate vector.
 CoordinateArraySequence (std::size_t n, std::size_t dimension=0)
 Construct sequence allocating space for n coordinates.
bool isEmpty () const override
 Returns true it list contains no coordinates.
bool empty () const
void clear ()
 Reset this CoordinateArraySequence to the empty state.
void add (const Coordinate &c)
 Add a Coordinate to the list.
void add (const Coordinate &c, bool allowRepeated)
 Add a coordinate. More...
void add (std::size_t i, const Coordinate &coord, bool allowRepeated)
 Inserts the specified coordinate at the specified position in this list. More...
void add (const CoordinateSequence *cl, bool allowRepeated, bool direction)
void setAt (const Coordinate &c, std::size_t pos) override
 Copy Coordinate c to position pos.
void setPoints (const std::vector< Coordinate > &v) override
 Substitute Coordinate list with a copy of the given vector.
void setOrdinate (std::size_t index, std::size_t ordinateIndex, double value) override
void expandEnvelope (Envelope &env) const override
std::size_t getDimension () const override
void apply_rw (const CoordinateFilter *filter) override
void apply_ro (CoordinateFilter *filter) const override
- Public Member Functions inherited from geos::geom::CoordinateSequence
const Coordinateback () const
 Return last Coordinate in the sequence.
const Coordinatefront () const
 Return first Coordinate in the sequence.
const Coordinateoperator[] (std::size_t i) const
virtual Envelope getEnvelope () const
size_t size () const
std::string toString () const
 Get a string representation of CoordinateSequence.
bool hasRepeatedPoints () const
 Returns true if contains any two consecutive points.
const CoordinateminCoordinate () const
 Returns lower-left Coordinate in list.
virtual double getOrdinate (std::size_t index, std::size_t ordinateIndex) const
virtual double getX (std::size_t index) const
virtual double getY (std::size_t index) const
template<class T >
void applyCoordinateFilter (T &f)
 Apply a filter to each Coordinate of this sequence. The filter is expected to provide a .filter(Coordinate&) method. More...

Additional Inherited Members

- Public Types inherited from geos::geom::CoordinateSequence
enum  { X, Y, Z, M }
 Standard ordinate index values.
typedef std::unique_ptr
< CoordinateSequence
- Static Public Member Functions inherited from geos::geom::CoordinateSequence
static bool hasRepeatedPoints (const CoordinateSequence *cl)
 Returns true if given CoordinateSequence contains any two consecutive Coordinate.
static CoordinateSequenceatLeastNCoordinatesOrNothing (std::size_t n, CoordinateSequence *c)
 Returns either the given CoordinateSequence if its length is greater than the given amount, or an empty CoordinateSequence.
static size_t indexOf (const Coordinate *coordinate, const CoordinateSequence *cl)
static bool equals (const CoordinateSequence *cl1, const CoordinateSequence *cl2)
 Returns true if the two arrays are identical, both null, or pointwise equal.
static void scroll (CoordinateSequence *cl, const Coordinate *firstCoordinate)
 Scroll given CoordinateSequence so to start with given Coordinate.
static int increasingDirection (const CoordinateSequence &pts)
 Determines which orientation of the Coordinate array is (overall) increasing. More...
static bool isRing (const CoordinateSequence *pts)
 Tests whether an array of Coordinates forms a ring, by checking length and closure. Self-intersection is not checked. More...
static void reverse (CoordinateSequence *cl)
 Reverse Coordinate order in given CoordinateSequence.
- Protected Member Functions inherited from geos::geom::CoordinateSequence
 CoordinateSequence (const CoordinateSequence &)

Detailed Description

The default implementation of CoordinateSequence.

Member Function Documentation

void geos::geom::CoordinateArraySequence::add ( const Coordinate c,
bool  allowRepeated 

Add a coordinate.

cthe coordinate to add
allowRepeatedif set to false, repeated coordinates are collapsed
void geos::geom::CoordinateArraySequence::add ( std::size_t  i,
const Coordinate coord,
bool  allowRepeated 

Inserts the specified coordinate at the specified position in this list.

ithe position at which to insert
coordthe coordinate to insert
allowRepeatedif set to false, repeated coordinates are collapsed
this is a CoordinateList interface in JTS
void geos::geom::CoordinateArraySequence::expandEnvelope ( Envelope env) const

Expands the given Envelope to include the coordinates in the sequence. Allows implementing classes to optimize access to coordinate values.

envthe envelope to expand

Reimplemented from geos::geom::CoordinateSequence.

const Coordinate& geos::geom::CoordinateArraySequence::getAt ( std::size_t  i) const

Returns a read-only reference to Coordinate at position i.

Whether or not the Coordinate returned is the actual underlying Coordinate or merely a copy depends on the implementation.

Implements geos::geom::CoordinateSequence.

std::size_t geos::geom::CoordinateArraySequence::getDimension ( ) const

Returns the dimension (number of ordinates in each coordinate) for this sequence.

the dimension of the sequence.

Implements geos::geom::CoordinateSequence.

void geos::geom::CoordinateArraySequence::setOrdinate ( std::size_t  index,
std::size_t  ordinateIndex,
double  value 

Sets the value for a given ordinate of a coordinate in this sequence.

indexthe coordinate index in the sequence
ordinateIndexthe ordinate index in the coordinate (in range [0, dimension-1])
valuethe new ordinate value

Implements geos::geom::CoordinateSequence.

void geos::geom::CoordinateArraySequence::toVector ( std::vector< Coordinate > &  coords) const

Pushes all Coordinates of this sequence into the provided vector.

This method is a port of the toCoordinateArray() method of JTS.

Implements geos::geom::CoordinateSequence.

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