maliput_malidrive
|
GroundCurve specification for a reference curve that describes a line.
Queries accept p ∈ [p0, p1] with a linear tolerance.
#include <src/maliput_malidrive/road_curve/line_ground_curve.h>
Public Member Functions | |
MALIDRIVE_NO_COPY_NO_MOVE_NO_ASSIGN (LineGroundCurve) | |
LineGroundCurve ()=delete | |
LineGroundCurve (const double linear_tolerance, const maliput::math::Vector2 &xy0, const maliput::math::Vector2 &dxy, double p0, double p1) | |
Constructor. More... | |
Public Member Functions inherited from GroundCurve | |
MALIDRIVE_NO_COPY_NO_MOVE_NO_ASSIGN (GroundCurve) | |
virtual | ~GroundCurve ()=default |
double | PFromP (double xodr_p) const |
Calculates the \( p \) value that matches with the \( p \) value in the XODR description. More... | |
maliput::math::Vector2 | G (double p) const |
Evaluates \( G(p) \). More... | |
maliput::math::Vector2 | GDot (double p) const |
Evaluates \( G'(p) \). More... | |
double | Heading (double p) const |
Evaluates \( θ(p) \). More... | |
double | HeadingDot (double p) const |
Evaluates \( θ'(p) \). More... | |
double | GInverse (const maliput::math::Vector2 &xy) const |
Evaluates \( G⁻¹(x, y) \). More... | |
double | ArcLength () const |
double | linear_tolerance () const |
double | p0 () const |
double | p1 () const |
bool | IsG1Contiguous () const |
Additional Inherited Members | |
Static Public Attributes inherited from GroundCurve | |
static constexpr double | kEpsilon = 1e-13 |
Implementations may opt to allow a tolerance or be up to kEpsilon away from [p0(); p1()]. More... | |
Protected Member Functions inherited from GroundCurve | |
GroundCurve ()=default | |
|
delete |
LineGroundCurve | ( | const double | linear_tolerance, |
const maliput::math::Vector2 & | xy0, | ||
const maliput::math::Vector2 & | dxy, | ||
double | p0, | ||
double | p1 | ||
) |
Constructor.
Computes a line from xy0
as the initial point of the line and dxy
as the difference vector that connects the xy0
with the end point of the reference curve.
linear_tolerance | A non-negative value expected to be the same as maliput::api::RoadGeometry::linear_tolerance(). |
xy0 | A 2D vector that represents the first point of the line. |
dxy | A 2D difference vector between the last point and xy0 . The norm of this vector must be larger than GroundCurve::kEpsilon to avoid having issues when computing the heading. |
p0 | The value of the \( p \) paramater at the start of the line, which must be non-negative. |
p1 | The value of the \( p \) paramater at the end of the line, which must be greater than the value of p0_ by at least GroundCurve::kEpsilon. |
maliput::common::assertion_error | When linear_tolerance is non-positive. |
maliput::common::assertion_error | When the norm of dxy is too small. |
maliput::common::assertion_error | When p0 is negative. |
maliput::common::assertion_error | When p1 is not sufficiently larger than p0 . |
MALIDRIVE_NO_COPY_NO_MOVE_NO_ASSIGN | ( | LineGroundCurve | ) |