Drake
Junction Class Reference

An api::Junction implementation. More...

#include <drake/automotive/maliput/multilane/junction.h>

Public Member Functions

 Junction (const api::JunctionId &id, const api::RoadGeometry *road_geometry, const std::function< void(const api::Segment *)> &register_segment, const std::function< void(const api::Lane *)> &register_lane)
 Constructs an empty Junction. More...
 
SegmentNewSegment (const api::SegmentId &id, std::unique_ptr< RoadCurve > road_curve, double r_min, double r_max, const api::HBounds &elevation_bounds)
 Creates and adds a new Segment. More...
 
 ~Junction () override=default
 
Does not allow copy, move, or assignment
 Junction (const Junction &)=delete
 
Junctionoperator= (const Junction &)=delete
 
 Junction (Junction &&)=delete
 
Junctionoperator= (Junction &&)=delete
 
- Public Member Functions inherited from Junction
const JunctionId id () const
 Returns the persistent identifier. More...
 
const RoadGeometryroad_geometry () const
 Returns the RoadGeometry to which this Junction belongs. More...
 
int num_segments () const
 Returns the number of Segments in the Junction. More...
 
const Segmentsegment (int index) const
 Returns the Segment indexed by index. More...
 
 Junction (const Junction &)=delete
 
Junctionoperator= (const Junction &)=delete
 
 Junction (Junction &&)=delete
 
Junctionoperator= (Junction &&)=delete
 

Additional Inherited Members

- Protected Member Functions inherited from Junction
 Junction ()=default
 

Detailed Description

An api::Junction implementation.

Constructor & Destructor Documentation

◆ Junction() [1/3]

Junction ( const Junction )
delete

◆ Junction() [2/3]

Junction ( Junction &&  )
delete

◆ Junction() [3/3]

Junction ( const api::JunctionId id,
const api::RoadGeometry road_geometry,
const std::function< void(const api::Segment *)> &  register_segment,
const std::function< void(const api::Lane *)> &  register_lane 
)
inline

Constructs an empty Junction.

road_geometry must remain valid for the lifetime of this class, and must refer to the RoadGeometry which will contain the newly constructed Junction instance. register_segment and register_lane will be called on any new Segment or Lane instances created as children of the Junction.

◆ ~Junction()

~Junction ( )
overridevirtualdefault

Reimplemented from Junction.

Member Function Documentation

◆ NewSegment()

Segment * NewSegment ( const api::SegmentId id,
std::unique_ptr< RoadCurve road_curve,
double  r_min,
double  r_max,
const api::HBounds elevation_bounds 
)

Creates and adds a new Segment.

Parameters
idSegment's ID.
road_curveReference trajectory over the Segment's surface.
r_minLateral distance to the minimum extent of road_curve's curve from where Segment's surface starts.
r_maxLateral distance to the maximum extent of road_curve's curve from where Segment's surface ends.
elevation_boundsThe height bounds over the segment' surface.
Returns
A Segment object.

◆ operator=() [1/2]

Junction& operator= ( const Junction )
delete

◆ operator=() [2/2]

Junction& operator= ( Junction &&  )
delete

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