GEOS  3.8.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:
geos::geom::CoordinateSequence

Public Member Functions

 CoordinateArraySequence (const CoordinateArraySequence &cl)
 
 CoordinateArraySequence (const CoordinateSequence &cl)
 
std::unique_ptr
< 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 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.
 
double getOrdinate (std::size_t index, size_t ordinateIndex) const override
 
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
 
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 =0
 
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
Ptr
 
- 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)
 Return position of a Coordinate, or -1 if not found. More...
 
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 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.

Parameters
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.

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

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

Parameters
envthe envelope to expand

Reimplemented from geos::geom::CoordinateSequence.

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

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
overridevirtual

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

Returns
the dimension of the sequence.

Implements geos::geom::CoordinateSequence.

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

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

Parameters
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
overridevirtual

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: