maliput_malidrive
ArcGroundCurve Class Reference

Detailed Description

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>

Inheritance diagram for ArcGroundCurve:
[legend]

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
 

Constructor & Destructor Documentation

◆ ArcGroundCurve() [1/2]

ArcGroundCurve ( )
delete

◆ ArcGroundCurve() [2/2]

ArcGroundCurve ( double  linear_tolerance,
const maliput::math::Vector2 xy0,
double  start_heading,
double  curvature,
double  arc_length,
double  p0,
double  p1 
)

Constructs an ArcGroundCurve.

Parameters
linear_toleranceA non-negative value expected to be the same as maliput::api::RoadGeometry::linear_tolerance().
xy0A 2D vector that represents the first point of the arc.
start_headingThe orientation of the tangent vector at xy0.
curvatureNon-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_lengthThe arc's length. It must be greater or equal to GroundCurve::kEpsilon.
p0The 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.
p1The value of the \( p \) parameter at the end of the arc, which must be greater than p0 by at least GroundCurve::kEpsilon.
Exceptions
maliput::common::assertion_errorWhen linear_tolerance is non-positive.
maliput::common::assertion_errorWhen arc_length is smaller than GroundCurve::kEpsilon.
maliput::common::assertion_errorWhen p0 is negative.
maliput::common::assertion_errorWhen p1 is not sufficiently larger than p0.

Member Function Documentation

◆ MALIDRIVE_NO_COPY_NO_MOVE_NO_ASSIGN()

MALIDRIVE_NO_COPY_NO_MOVE_NO_ASSIGN ( ArcGroundCurve  )

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