LuciadCPillar 2024.0.08
|
Represents a polyline. More...
#include <luciad/geometries/Polyline.h>
Public Member Functions | |
~Polyline () override | |
Coordinate | computePoint (double parameter) const override |
Computes a point of the curve, defined by the given parameter. More... | |
Bounds | getBounds () const override |
Returns the bounds for the geometry object. More... | |
std::shared_ptr< Curve > | getCurveAt (size_t index) const override |
Returns the curve for the requested index. More... | |
size_t | getCurveCount () const override |
Returns the number of curves in this composite. More... | |
LineInterpolationType | getInterpolationType () const |
Returns the interpolation type of the line segment. More... | |
double | getLength2D () const override |
Returns the length of the curve. More... | |
Coordinate | getPoint (size_t index) const |
Returns the coordinate for the requested index. More... | |
size_t | getPointCount () const |
Returns the number of points in the polyline. More... | |
const std::vector< Coordinate > & | getPoints () const |
Returns the list of points of this polyline. More... | |
std::shared_ptr< luciad::CoordinateReference > | getReference () const override |
Returns the coordinate reference of the geometry. More... | |
std::shared_ptr< Polyline > | insertPoint (size_t index, Coordinate newLocation) const |
Creates a new Polyline with an newly inserted control point. More... | |
std::shared_ptr< Polyline > | movePoint (size_t index, Coordinate newLocation) const |
Creates a new Polyline with a moved control point. More... | |
std::shared_ptr< Polyline > | removePoint (size_t index) const |
Creates a new Polyline with a control point removed. More... | |
std::shared_ptr< Polyline > | translate (Coordinate translation) const |
Translates the entire polyline. More... | |
Public Member Functions inherited from luciad::CompositeCurve | |
~CompositeCurve () override | |
Coordinate | computePoint (double parameter) const override |
Computes a point of the curve, defined by the given parameter. More... | |
Bounds | getBounds () const override |
Returns the bounds for the geometry object. More... | |
virtual std::shared_ptr< Curve > | getCurveAt (size_t index) const |
Returns the curve for the requested index. More... | |
virtual size_t | getCurveCount () const |
Returns the number of curves in this composite. More... | |
double | getLength2D () const override |
Returns the length of the curve. More... | |
std::shared_ptr< CoordinateReference > | getReference () const override |
Returns the coordinate reference of the geometry. More... | |
virtual Coordinate | computePoint (double parameter) const =0 |
Computes a point of the curve, defined by the given parameter. More... | |
virtual double | getLength2D () const =0 |
Returns the length of the curve. More... | |
Public Member Functions inherited from luciad::Geometry | |
virtual | ~Geometry ()=default |
virtual Bounds | getBounds () const =0 |
Returns the bounds for the geometry object. More... | |
virtual std::shared_ptr< CoordinateReference > | getReference () const =0 |
Returns the coordinate reference of the geometry. More... | |
Protected Member Functions | |
size_t | getHash () const override |
Returns the hash value for this geometry. More... | |
size_t | getHash () const override |
Returns the hash value for this geometry. More... | |
virtual size_t | getHash () const =0 |
Returns the hash value for this geometry. More... | |
Represents a polyline.
|
override |
|
overridevirtual |
Computes a point of the curve, defined by the given parameter.
parameter | the parameter value, within [0,1] , to compute the point location for. |
luciad::InvalidArgumentException | if parameter is not within [0,1] , or if the point could not be computed. For example, when the curve is defined by invalid points. |
Reimplemented from luciad::CompositeCurve.
|
overridevirtual |
Returns the bounds for the geometry object.
luciad::InvalidArgumentException | if the bounds could not be computed. For example, when the geometry is defined by invalid points. |
Reimplemented from luciad::CompositeCurve.
|
overridevirtual |
Returns the curve for the requested index.
index | the curve index |
luciad::InvalidArgumentException | when requesting an invalid index. |
Reimplemented from luciad::CompositeCurve.
|
overridevirtual |
Returns the number of curves in this composite.
Reimplemented from luciad::CompositeCurve.
|
overrideprotectedvirtual |
Returns the hash value for this geometry.
Reimplemented from luciad::CompositeCurve.
LineInterpolationType luciad::Polyline::getInterpolationType | ( | ) | const |
Returns the interpolation type of the line segment.
One of
|
overridevirtual |
Returns the length of the curve.
luciad::InvalidArgumentException | if the length could not be computed. For example, when the curve is defined by invalid points. |
Reimplemented from luciad::CompositeCurve.
Coordinate luciad::Polyline::getPoint | ( | size_t | index | ) | const |
Returns the coordinate for the requested index.
index | the index of the requested point. |
luciad::InvalidArgumentException | when requesting an invalid index. |
size_t luciad::Polyline::getPointCount | ( | ) | const |
Returns the number of points in the polyline.
const std::vector< Coordinate > & luciad::Polyline::getPoints | ( | ) | const |
Returns the list of points of this polyline.
|
overridevirtual |
Returns the coordinate reference of the geometry.
Reimplemented from luciad::CompositeCurve.
std::shared_ptr< Polyline > luciad::Polyline::insertPoint | ( | size_t | index, |
Coordinate | newLocation | ||
) | const |
Creates a new Polyline with an newly inserted control point.
index | the index of the newly inserted control point. Should be in [0, getPointCount()] . For index 0, a new point will be added at the start of the Polyline. For index getPointCount(), a new point will be added at the end of the Polyline. For other index values, a point will be added between 2 other points. |
newLocation | the location of the new point |
luciad::InvalidArgumentException | for an invalid index |
std::shared_ptr< Polyline > luciad::Polyline::movePoint | ( | size_t | index, |
Coordinate | newLocation | ||
) | const |
Creates a new Polyline with a moved control point.
index | the index of the point to move. Should be in [0, getPointCount() - 1] . |
newLocation | the new location of the point |
luciad::InvalidArgumentException | for an invalid index |
std::shared_ptr< Polyline > luciad::Polyline::removePoint | ( | size_t | index | ) | const |
Creates a new Polyline with a control point removed.
This methods returns a copy of the polyline if its point count is less or equal to 2.
index | the index of the point to be removed. Should be in [0, getPointCount() - 1] . |
luciad::InvalidArgumentException | for an invalid index |
std::shared_ptr< Polyline > luciad::Polyline::translate | ( | Coordinate | translation | ) | const |
Translates the entire polyline.
Note: when the polyline is defined in a geodetic reference and uses geodetic interpolation, the translation is not performed by translating the points one by one. Instead, a translation method is used that better preserves the shape of the polyline when moving it towards (or away from) the poles.
translation | the translation vector |