ad_rss
RssSituationExtraction.hpp
Go to the documentation of this file.
1 // ----------------- BEGIN LICENSE BLOCK ---------------------------------
2 //
3 // Copyright (C) 2018-2021 Intel Corporation
4 //
5 // SPDX-License-Identifier: LGPL-2.1-only
6 //
7 // ----------------- END LICENSE BLOCK -----------------------------------
12 #pragma once
13 
17 
21 namespace ad {
25 namespace rss {
26 
30 namespace core {
31 
38 {
39 public:
43  typedef std::shared_ptr<RssSituationExtraction> Ptr;
44 
48  typedef std::shared_ptr<RssSituationExtraction const> ConstPtr;
49 
54 
59 
69  bool extractSituation(world::WorldModel const &worldModel, core::RssSituationSnapshot &situationSnapshot);
70 
78  void dropObjectHistory(world::ObjectId const &object_id);
79 
80 private:
81  void calcluateRelativeLongitudinalPosition(physics::MetricRange const &egoMetricRange,
82  physics::MetricRange const &otherMetricRange,
83  LongitudinalRelativePosition &longitudinal_position,
84  physics::Distance &longitudinal_distance);
85  void calcluateRelativeLongitudinalPositionIntersection(physics::MetricRange const &egoMetricRange,
86  physics::MetricRange const &otherMetricRange,
87  LongitudinalRelativePosition &longitudinal_position,
88  physics::Distance &longitudinal_distance);
89  void calcluateRelativeLateralPosition(physics::MetricRange const &egoMetricRange,
90  physics::MetricRange const &otherMetricRange,
91  LateralRelativePosition &lateral_position,
92  physics::Distance &lateral_distance);
93  bool convertObjectsNonIntersection(world::Constellation const &currentConstellation,
94  core::RelativeConstellation &constellation);
95  void convertToIntersectionCentric(physics::MetricRange const &objectDimension,
96  physics::MetricRange const &intersectionPosition,
97  physics::MetricRange &dimensionsIntersection);
98  bool convertObjectsIntersection(world::Constellation const &currentConstellation,
99  core::RelativeConstellation &constellation);
100 
111  bool extractConstellationInputRangeChecked(world::TimeIndex const &time_index,
112  world::Constellation const &worldConstellation,
113  RelativeConstellation &relativeConstellation);
114  enum class MergeMode
115  {
116  EgoVehicle,
117  OtherVehicle
118  };
119  bool mergeVehicleStates(MergeMode const &mergeMode,
120  RelativeObjectState const &other_state,
121  RelativeObjectState &mergedVehicleState);
122  bool mergeConstellations(core::RelativeConstellation const &otherConstellation,
123  core::RelativeConstellation &mergedConstellation);
124 
125  structured::RssConstellationIdProvider mConstellationIdProvider;
126 };
127 
128 } // namespace core
129 } // namespace rss
130 } // namespace ad
class RssSituationExtraction
Definition: RssSituationExtraction.hpp:38
std::shared_ptr< RssSituationExtraction > Ptr
Smart pointer on RssSituationExtraction.
Definition: RssSituationExtraction.hpp:43
bool extractSituation(world::WorldModel const &worldModel, core::RssSituationSnapshot &situationSnapshot)
Transform all RSS constellations from the world model into relative constellations within their const...
~RssSituationExtraction()=default
destructor
void dropObjectHistory(world::ObjectId const &object_id)
drop the history associated with a given object_id
RssSituationExtraction()=default
constructor
std::shared_ptr< RssSituationExtraction const > ConstPtr
Smart pointer on constant RssSituationExtraction.
Definition: RssSituationExtraction.hpp:48
class supporting to keep track of unique constellation ids
Definition: RssConstellationIdProvider.hpp:39
LongitudinalRelativePosition
DataType LongitudinalRelativePosition.
Definition: LongitudinalRelativePosition.hpp:45
LateralRelativePosition
DataType LateralRelativePosition.
Definition: LateralRelativePosition.hpp:45
uint64_t ObjectId
DataType ObjectId.
Definition: ObjectId.hpp:39
uint64_t TimeIndex
DataType TimeIndex.
Definition: TimeIndex.hpp:39
namespace ad
Definition: LateralRelativePosition.hpp:28
DataType RelativeConstellation.
Definition: RelativeConstellation.hpp:56
DataType RelativeObjectState.
Definition: RelativeObjectState.hpp:48
DataType RssSituationSnapshot.
Definition: RssSituationSnapshot.hpp:46
DataType Constellation.
Definition: Constellation.hpp:49
DataType WorldModel.
Definition: WorldModel.hpp:47