maliput
Junction Class Reference

Detailed Description

geometry_base's implementation of api::Junction.

#include <include/maliput/geometry_base/junction.h>

Inheritance diagram for Junction:
[legend]

Public Member Functions

 MALIPUT_NO_COPY_NO_MOVE_NO_ASSIGN (Junction)
 
 Junction (const api::JunctionId &id)
 Constructs a Junction. More...
 
template<class T >
T * AddSegment (std::unique_ptr< T > segment)
 Adds segment to this Junction. More...
 
 ~Junction () override=default
 
void AttachToRoadGeometry (common::Passkey< RoadGeometry >, const api::RoadGeometry *road_geometry, const std::function< void(const api::Segment *)> &segment_indexing_callback, const std::function< void(const api::Lane *)> &lane_indexing_callback)
 
- Public Member Functions inherited from Junction
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...
 

Additional Inherited Members

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

Constructor & Destructor Documentation

◆ Junction()

Junction ( const api::JunctionId id)
explicit

Constructs a Junction.

Parameters
idthe ID of the Junction

The Junction is not fully initialized until it is added to a RoadGeometry.

◆ ~Junction()

~Junction ( )
overridevirtualdefault

Reimplemented from Junction.

Member Function Documentation

◆ AddSegment()

T* AddSegment ( std::unique_ptr< T >  segment)

Adds segment to this Junction.

This Junction will take ownership of segment and will be assigned as its parent.

Returns
segment's raw pointer.
Template Parameters
Tmust be derived from geometry_base::Segment.
Exceptions
std::exceptionif segment is empty.

◆ AttachToRoadGeometry()

void AttachToRoadGeometry ( common::Passkey< RoadGeometry ,
const api::RoadGeometry road_geometry,
const std::function< void(const api::Segment *)> &  segment_indexing_callback,
const std::function< void(const api::Lane *)> &  lane_indexing_callback 
)

◆ MALIPUT_NO_COPY_NO_MOVE_NO_ASSIGN()

MALIPUT_NO_COPY_NO_MOVE_NO_ASSIGN ( Junction  )

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