maliput_malidrive
PiecewiseGroundCurve Class Reference

Detailed Description

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>

Inheritance diagram for PiecewiseGroundCurve:
[legend]

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
 

Constructor & Destructor Documentation

◆ PiecewiseGroundCurve() [1/2]

◆ PiecewiseGroundCurve() [2/2]

PiecewiseGroundCurve ( std::vector< std::unique_ptr< GroundCurve >> &&  ground_curves,
double  linear_tolerance,
double  angular_tolerance 
)

Constructs a PiecewiseGroundCurve.

Parameters
ground_curvesContains the ground curves to combine.
linear_toleranceA non-negative value expected to be the same as maliput::api::RoadGeometry::linear_tolerance().
angular_toleranceA non-negative value expected to be the same as maliput::api::RoadGeometry::angular_tolerance().
Exceptions
maliput::common::assertion_errorWhen ground_curves ' size is zero.
maliput::common::assertion_errorWhen ground_curves contains a nullptr.
maliput::common::assertion_errorWhen ground_curves ' curves are not G1 contiguous.
maliput::common::assertion_errorWhen linear_tolerance is non-positive.
maliput::common::assertion_errorWhen angular_tolerance is non-positive.
maliput::common::assertion_errorWhen the resultant p1 is not sufficiently larger than the resultant p0.

Member Function Documentation

◆ MALIDRIVE_NO_COPY_NO_MOVE_NO_ASSIGN()

MALIDRIVE_NO_COPY_NO_MOVE_NO_ASSIGN ( PiecewiseGroundCurve  )

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