GEOS 3.11.1
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< CoordinateSequenceclone () const override
 Returns a deep copy of this collection. More...
 
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. More...
 
std::size_t getSize () const override
 Returns the number of Coordinates (actual or otherwise, as this implementation may not store its data in Coordinate objects). More...
 
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. More...
 
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. More...
 
void setPoints (const std::vector< Coordinate > &v) override
 Substitute Coordinate list with a copy of the given vector. More...
 
void setOrdinate (std::size_t index, std::size_t ordinateIndex, double value) override
 
void expandEnvelope (Envelope &env) const override
 
void closeRing ()
 
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
virtual std::unique_ptr< CoordinateSequenceclone () const =0
 Returns a deep copy of this collection. More...
 
virtual const CoordinategetAt (std::size_t i) const =0
 Returns a read-only reference to Coordinate at position i. More...
 
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
 
virtual void getAt (std::size_t i, Coordinate &c) const =0
 Write Coordinate at position i to given Coordinate. More...
 
virtual std::size_t getSize () const =0
 Returns the number of Coordinates (actual or otherwise, as this implementation may not store its data in Coordinate objects). More...
 
size_t size () const
 
virtual void toVector (std::vector< Coordinate > &coords) const =0
 
virtual bool isEmpty () const =0
 Returns true it list contains no coordinates. More...
 
virtual void setAt (const Coordinate &c, std::size_t pos)=0
 Copy Coordinate c to position pos. More...
 
std::string toString () const
 Get a string representation of CoordinateSequence.
 
virtual void setPoints (const std::vector< Coordinate > &v)=0
 Substitute Coordinate list with a copy of the given vector. More...
 
bool hasRepeatedPoints () const
 Returns true if contains any two consecutive points.
 
const CoordinateminCoordinate () const
 Returns lower-left Coordinate in list.
 
bool isRing () const
 Tests whether an a CoordinateSequence forms a ring, by checking length and closure. Self-intersection is not checked. More...
 
virtual std::size_t getDimension () const =0
 
bool hasZ () const
 
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
 
virtual void setOrdinate (std::size_t index, std::size_t ordinateIndex, double value)=0
 
virtual void expandEnvelope (Envelope &env) const
 
virtual void apply_rw (const CoordinateFilter *filter)=0
 
virtual void apply_ro (CoordinateFilter *filter) const =0
 
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< CoordinateSequencePtr
 
- 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 std::size_t indexOf (const Coordinate *coordinate, const CoordinateSequence *cl)
 Return position of a Coordinate. 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

◆ add() [1/2]

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

◆ add() [2/2]

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

◆ apply_ro()

void geos::geom::CoordinateArraySequence::apply_ro ( CoordinateFilter filter) const
inlineoverridevirtual

◆ apply_rw()

void geos::geom::CoordinateArraySequence::apply_rw ( const CoordinateFilter filter)
overridevirtual

◆ clone()

std::unique_ptr< CoordinateSequence > geos::geom::CoordinateArraySequence::clone ( ) const
overridevirtual

Returns a deep copy of this collection.

Implements geos::geom::CoordinateSequence.

◆ expandEnvelope()

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.

◆ getAt() [1/2]

void geos::geom::CoordinateArraySequence::getAt ( std::size_t  i,
Coordinate c 
) const
overridevirtual

Copy Coordinate at position i to Coordinate c.

Implements geos::geom::CoordinateSequence.

◆ getAt() [2/2]

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.

◆ getDimension()

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.

◆ getSize()

std::size_t geos::geom::CoordinateArraySequence::getSize ( ) const
overridevirtual

Returns the number of Coordinates (actual or otherwise, as this implementation may not store its data in Coordinate objects).

Implements geos::geom::CoordinateSequence.

◆ isEmpty()

bool geos::geom::CoordinateArraySequence::isEmpty ( ) const
inlineoverridevirtual

Returns true it list contains no coordinates.

Implements geos::geom::CoordinateSequence.

◆ setAt()

void geos::geom::CoordinateArraySequence::setAt ( const Coordinate c,
std::size_t  pos 
)
overridevirtual

Copy Coordinate c to position pos.

Implements geos::geom::CoordinateSequence.

◆ setOrdinate()

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.

◆ setPoints()

void geos::geom::CoordinateArraySequence::setPoints ( const std::vector< Coordinate > &  v)
overridevirtual

Substitute Coordinate list with a copy of the given vector.

Implements geos::geom::CoordinateSequence.

◆ toVector()

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: