maliput_malidrive
LineGroundCurve Class Reference

Detailed Description

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>

Inheritance diagram for LineGroundCurve:
[legend]

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
 

Constructor & Destructor Documentation

◆ LineGroundCurve() [1/2]

LineGroundCurve ( )
delete

◆ LineGroundCurve() [2/2]

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.

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 line.
dxyA 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.
p0The value of the \( p \) paramater at the start of the line, which must be non-negative.
p1The 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.
Exceptions
maliput::common::assertion_errorWhen linear_tolerance is non-positive.
maliput::common::assertion_errorWhen the norm of dxy is too small.
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 ( LineGroundCurve  )

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