GEOS  3.9.1dev
Public Member Functions | Private Attributes | List of all members
geos::geom::FixedSizeCoordinateSequence< N > Class Template Reference

#include <FixedSizeCoordinateSequence.h>

Inheritance diagram for geos::geom::FixedSizeCoordinateSequence< N >:
[legend]
Collaboration diagram for geos::geom::FixedSizeCoordinateSequence< N >:
[legend]

Public Member Functions

 FixedSizeCoordinateSequence (size_t dimension_in=0)
 
std::unique_ptr< CoordinateSequenceclone () const finaloverride
 Returns a deep copy of this collection. More...
 
const CoordinategetAt (size_t i) const finaloverride
 
void getAt (size_t i, Coordinate &c) const finaloverride
 
size_t getSize () const finaloverride
 Returns the number of Coordinates (actual or otherwise, as this implementation may not store its data in Coordinate objects). More...
 
bool isEmpty () const finaloverride
 Returns true it list contains no coordinates. More...
 
void setAt (const Coordinate &c, size_t pos) finaloverride
 
void setOrdinate (size_t index, size_t ordinateIndex, double value) finaloverride
 
size_t getDimension () const finaloverride
 
void toVector (std::vector< Coordinate > &out) const finaloverride
 
void setPoints (const std::vector< Coordinate > &v) finaloverride
 Substitute Coordinate list with a copy of the given vector. More...
 
void apply_ro (CoordinateFilter *filter) const finaloverride
 
void apply_rw (const CoordinateFilter *filter) finaloverride
 
- Public Member Functions inherited from geos::geom::CoordinateSequence
virtual ~CoordinateSequence ()
 
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. More...
 
const Coordinatefront () const
 Return first Coordinate in the sequence. More...
 
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...
 
size_t size () const
 
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. More...
 
bool hasRepeatedPoints () const
 Returns true if contains any two consecutive points. More...
 
const CoordinateminCoordinate () const
 Returns lower-left Coordinate in list. More...
 
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
 
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...
 

Private Attributes

std::array< Coordinate, N > m_data
 
std::size_t dimension
 

Additional Inherited Members

- Public Types inherited from geos::geom::CoordinateSequence
enum  { X, Y, Z, M }
 Standard ordinate index values. More...
 
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. More...
 
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. More...
 
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. More...
 
static void scroll (CoordinateSequence *cl, const Coordinate *firstCoordinate)
 Scroll given CoordinateSequence so to start with given Coordinate. More...
 
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. More...
 
- Protected Member Functions inherited from geos::geom::CoordinateSequence
 CoordinateSequence ()
 
 CoordinateSequence (const CoordinateSequence &)
 

Detailed Description

template<size_t N>
class geos::geom::FixedSizeCoordinateSequence< N >

Definition at line 33 of file FixedSizeCoordinateSequence.h.

Constructor & Destructor Documentation

template<size_t N>
geos::geom::FixedSizeCoordinateSequence< N >::FixedSizeCoordinateSequence ( size_t  dimension_in = 0)
inlineexplicit

Definition at line 35 of file FixedSizeCoordinateSequence.h.

Member Function Documentation

template<size_t N>
void geos::geom::FixedSizeCoordinateSequence< N >::apply_ro ( CoordinateFilter filter) const
inlinefinaloverridevirtual

Implements geos::geom::CoordinateSequence.

Definition at line 111 of file FixedSizeCoordinateSequence.h.

template<size_t N>
void geos::geom::FixedSizeCoordinateSequence< N >::apply_rw ( const CoordinateFilter filter)
inlinefinaloverridevirtual

Implements geos::geom::CoordinateSequence.

Definition at line 116 of file FixedSizeCoordinateSequence.h.

template<size_t N>
std::unique_ptr<CoordinateSequence> geos::geom::FixedSizeCoordinateSequence< N >::clone ( ) const
inlinefinaloverridevirtual

Returns a deep copy of this collection.

Implements geos::geom::CoordinateSequence.

Definition at line 37 of file FixedSizeCoordinateSequence.h.

template<size_t N>
const Coordinate& geos::geom::FixedSizeCoordinateSequence< N >::getAt ( size_t  i) const
inlinefinaloverride

Definition at line 43 of file FixedSizeCoordinateSequence.h.

template<size_t N>
void geos::geom::FixedSizeCoordinateSequence< N >::getAt ( size_t  i,
Coordinate c 
) const
inlinefinaloverride

Definition at line 47 of file FixedSizeCoordinateSequence.h.

template<size_t N>
size_t geos::geom::FixedSizeCoordinateSequence< N >::getDimension ( ) const
inlinefinaloverridevirtual

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

Returns
the dimension of the sequence.

Implements geos::geom::CoordinateSequence.

Definition at line 84 of file FixedSizeCoordinateSequence.h.

template<size_t N>
size_t geos::geom::FixedSizeCoordinateSequence< N >::getSize ( ) const
inlinefinaloverridevirtual

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

Implements geos::geom::CoordinateSequence.

Definition at line 51 of file FixedSizeCoordinateSequence.h.

template<size_t N>
bool geos::geom::FixedSizeCoordinateSequence< N >::isEmpty ( ) const
inlinefinaloverridevirtual

Returns true it list contains no coordinates.

Implements geos::geom::CoordinateSequence.

Definition at line 55 of file FixedSizeCoordinateSequence.h.

Referenced by geos::geom::FixedSizeCoordinateSequence< 1 >::getDimension().

Here is the caller graph for this function:

template<size_t N>
void geos::geom::FixedSizeCoordinateSequence< N >::setAt ( const Coordinate c,
size_t  pos 
)
inlinefinaloverride

Definition at line 59 of file FixedSizeCoordinateSequence.h.

template<size_t N>
void geos::geom::FixedSizeCoordinateSequence< N >::setOrdinate ( size_t  index,
size_t  ordinateIndex,
double  value 
)
inlinefinaloverride

Definition at line 63 of file FixedSizeCoordinateSequence.h.

template<size_t N>
void geos::geom::FixedSizeCoordinateSequence< N >::setPoints ( const std::vector< Coordinate > &  v)
inlinefinaloverridevirtual

Substitute Coordinate list with a copy of the given vector.

Implements geos::geom::CoordinateSequence.

Definition at line 107 of file FixedSizeCoordinateSequence.h.

template<size_t N>
void geos::geom::FixedSizeCoordinateSequence< N >::toVector ( std::vector< Coordinate > &  coords) const
inlinefinaloverridevirtual

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.

Definition at line 103 of file FixedSizeCoordinateSequence.h.

Member Data Documentation

template<size_t N>
std::size_t geos::geom::FixedSizeCoordinateSequence< N >::dimension
mutableprivate
template<size_t N>
std::array<Coordinate, N> geos::geom::FixedSizeCoordinateSequence< N >::m_data
private

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