Public Types | Public Member Functions | List of all members
ad::rss::map::RssObjectConversion Class Reference

class providing support to convert ad::map objects into ad::rss objects More...

#include <ad/rss/map/RssObjectConversion.hpp>

Public Types

using Ptr = std::shared_ptr< RssObjectConversion >
 Smart pointer on RssObjectConversion.
using ConstPtr = std::shared_ptr< RssObjectConversion const >
 Smart pointer on constant RssObjectConversion.

Public Member Functions

 RssObjectConversion (RssObjectData const &objectData)
 constructor More...
 RssObjectConversion (RssObjectData const &objectData, ::ad::rss::world::OccupiedRegionVector const &objectOccupiedRegions)
 constructor with explicit occupied regions More...
 RssObjectConversion (const RssObjectConversion &other)=default
 standard copy constructor
 RssObjectConversion (RssObjectConversion &&other)=default
 standard move constructor
 ~RssObjectConversion ()=default
 standard destructor
RssObjectConversionoperator= (const RssObjectConversion &other)=delete
 delete standard assignment operator
RssObjectConversionoperator= (RssObjectConversion &&other)=delete
 delete standard move assignment operator
::ad::rss::world::RssDynamics getRssDynamics () const
const ::ad::rss::world::Object & getRssObject () const
::ad::rss::world::ObjectId getId () const
bool calculateMinStoppingDistance (::ad::physics::Distance &minStoppingDistance) const
void updateSpeedLimit (::ad::physics::Speed const &maxSpeedOnAcceleration)
 update the max speed content
void laneIntervalAdded (::ad::map::route::LaneInterval const &laneInterval)
 lane interval was added to the object route, so append relevant occupied regions
void updateVelocityOnRoute (::ad::map::route::FullRoute const &route)
 update the objects current velocity on the route
const ::ad::map::match::Object * getObjectMapMatchedPosition () const
 return the map matched position object this was created with (might be nullptr)
bool isOriginalSpeedAcceptable (::ad::physics::Speed const acceptableNegativeSpeed=::ad::physics::Speed(-0.5)) const
 check if the original input speed is in acceptable range More...
const ::ad::physics::Speed & getOriginalObjectSpeed () const

Detailed Description

class providing support to convert ad::map objects into ad::rss objects

Constructor & Destructor Documentation

◆ RssObjectConversion() [1/2]

ad::rss::map::RssObjectConversion::RssObjectConversion ( RssObjectData const &  objectData)


[in]objectDatathe object data

◆ RssObjectConversion() [2/2]

ad::rss::map::RssObjectConversion::RssObjectConversion ( RssObjectData const &  objectData,
::ad::rss::world::OccupiedRegionVector const &  objectOccupiedRegions 

constructor with explicit occupied regions

[in]objectDatathe object data
[in]objectOccupiedRegionsthe object's occupied regions explicitly

Member Function Documentation

◆ calculateMinStoppingDistance()

bool ad::rss::map::RssObjectConversion::calculateMinStoppingDistance ( ::ad::physics::Distance &  minStoppingDistance) const
the minimum distance for the object to stop This is an estimate, that can be used to calculate the connecting route calculation distance to be taken into account.

◆ getId()

::ad::rss::world::ObjectId ad::rss::map::RssObjectConversion::getId ( ) const
Object id

◆ getOriginalObjectSpeed()

const ::ad::physics::Speed& ad::rss::map::RssObjectConversion::getOriginalObjectSpeed ( ) const
the original object speed provided as input

◆ getRssDynamics()

::ad::rss::world::RssDynamics ad::rss::map::RssObjectConversion::getRssDynamics ( ) const
RssDynamics of the object

If updateSpeedLimit() was called in between the maxSpeedOnAcceleration value of the dynamics will be adapted to these.

◆ getRssObject()

const ::ad::rss::world::Object& ad::rss::map::RssObjectConversion::getRssObject ( ) const
RSS Object description

If laneIntervalAdded() or fillNotRelevantSceneBoundingBox() was called in between the occupied regions have been filled accordingly. If not, these are empty (which is an invalid object!)

◆ isOriginalSpeedAcceptable()

bool ad::rss::map::RssObjectConversion::isOriginalSpeedAcceptable ( ::ad::physics::Speed const  acceptableNegativeSpeed = ::ad::physics::Speed(-0.5)) const

check if the original input speed is in acceptable range

Negative speed is not supported by the RSS implementation; therefore negative input speeds are mapped to zero speed by this class.

But up to a certain small negative speed value, negative speeds still might want to be accepted to account for slowly backward drifting vehicles. Therefore, the constructor of this class maps all negative speeds to zero, but stores the original provided speed for later analysis. This function can be used to check for an acceptable speed.

[in]acceptableNegativeSpeeda small negative speed value that should be allowed to be mapped to zero without error (default -0.5m/s).
true if the original speed equals the current internal object speed. It also returns true if the original speed is equal or larger than the provided acceptableNegativeSpeed.

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