maliput_malidrive
|
GroundCurve specification for a reference curve that describes a constant curvature arc.
Queries accept p ∈ [p0, p1] with a linear tolerance.
#include <src/maliput_malidrive/road_curve/arc_ground_curve.h>
Public Member Functions | |
MALIDRIVE_NO_COPY_NO_MOVE_NO_ASSIGN (ArcGroundCurve) | |
ArcGroundCurve ()=delete | |
ArcGroundCurve (double linear_tolerance, const maliput::math::Vector2 &xy0, double start_heading, double curvature, double arc_length, double p0, double p1) | |
Constructs an ArcGroundCurve. 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 |
ArcGroundCurve | ( | double | linear_tolerance, |
const maliput::math::Vector2 & | xy0, | ||
double | start_heading, | ||
double | curvature, | ||
double | arc_length, | ||
double | p0, | ||
double | p1 | ||
) |
Constructs an ArcGroundCurve.
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 arc. |
start_heading | The orientation of the tangent vector at xy0 . |
curvature | Non-zero quantity which indicates the reciprocal of the turning radius of the arc. A positive curvature makes a counterclockwise turn. Its magnitude must be greater than GroundCurve::kEpsilon. |
arc_length | The arc's length. It must be greater or equal to GroundCurve::kEpsilon. |
p0 | The value of the \( p \) parameter at the beginning of the arc, which must be non negative and smaller than p1 by at least GroundCurve::kEpsilon. |
p1 | The value of the \( p \) parameter at the end of the arc, which must be greater than p0 by at least GroundCurve::kEpsilon. |
maliput::common::assertion_error | When linear_tolerance is non-positive. |
maliput::common::assertion_error | When arc_length is smaller than GroundCurve::kEpsilon. |
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 | ( | ArcGroundCurve | ) |