maliput_malidrive
|
GroundCurve specification for a reference curve that is described as a piecewise ground curve.
Queries accept p ∈ [p0, p1] with a linear tolerance.
#include <src/maliput_malidrive/road_curve/piecewise_ground_curve.h>
Public Member Functions | |
MALIDRIVE_NO_COPY_NO_MOVE_NO_ASSIGN (PiecewiseGroundCurve) | |
PiecewiseGroundCurve ()=delete | |
PiecewiseGroundCurve (std::vector< std::unique_ptr< GroundCurve >> &&ground_curves, double linear_tolerance, double angular_tolerance) | |
Constructs a PiecewiseGroundCurve. 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 |
PiecewiseGroundCurve | ( | std::vector< std::unique_ptr< GroundCurve >> && | ground_curves, |
double | linear_tolerance, | ||
double | angular_tolerance | ||
) |
Constructs a PiecewiseGroundCurve.
ground_curves | Contains the ground curves to combine. |
linear_tolerance | A non-negative value expected to be the same as maliput::api::RoadGeometry::linear_tolerance(). |
angular_tolerance | A non-negative value expected to be the same as maliput::api::RoadGeometry::angular_tolerance(). |
maliput::common::assertion_error | When ground_curves ' size is zero. |
maliput::common::assertion_error | When ground_curves contains a nullptr. |
maliput::common::assertion_error | When ground_curves ' curves are not G1 contiguous. |
maliput::common::assertion_error | When linear_tolerance is non-positive. |
maliput::common::assertion_error | When angular_tolerance is non-positive. |
maliput::common::assertion_error | When the resultant p1 is not sufficiently larger than the resultant p0. |
MALIDRIVE_NO_COPY_NO_MOVE_NO_ASSIGN | ( | PiecewiseGroundCurve | ) |