7# pragma clang diagnostic push
8# pragma clang diagnostic ignored "-Wshadow"
10#include "boost/geometry.hpp"
11#include "boost/geometry/geometries/geometries.hpp"
12#include "boost/geometry/geometries/point_xy.hpp"
13#include "boost/geometry/geometries/polygon.hpp"
15# pragma clang diagnostic pop
25namespace traffic_manager {
42namespace bg = boost::geometry;
44using Buffer = std::deque<std::shared_ptr<SimpleWaypoint>>;
45using BufferMap = std::unordered_map<carla::ActorId, Buffer>;
49using Polygon = bg::model::polygon<bg::model::d2::point_xy<double>>;
68 const uint64_t reference_junction_look_ahead_index);
98 void Update (
const unsigned long index)
override;
102 void Reset()
override;
CollisionStage(const std::vector< ActorId > &vehicle_id_list, const SimulationState &simulation_state, const BufferMap &buffer_map, const TrackTraffic &track_traffic, const Parameters ¶meters, CollisionFrame &output_array, RandomGenerator &random_device)
GeodesicBoundaryMap geodesic_boundary_map
const std::vector< ActorId > & vehicle_id_list
const SimulationState & simulation_state
GeometryComparison GetGeometryBetweenActors(const ActorId reference_vehicle_id, const ActorId other_actor_id)
LocationVector GetGeodesicBoundary(const ActorId actor_id)
Polygon GetPolygon(const LocationVector &boundary)
void RemoveActor(const ActorId actor_id) override
移除参与者方法。
CollisionFrame & output_array
void DrawBoundary(const LocationVector &boundary)
LocationVector GetBoundary(const ActorId actor_id)
float GetBoundingBoxExtention(const ActorId actor_id)
RandomGenerator & random_device
const TrackTraffic & track_traffic
const BufferMap & buffer_map
void Update(const unsigned long index) override
更新方法。
CollisionLockMap collision_locks
GeometryComparisonMap geometry_cache
const Parameters & parameters
void Reset() override
重置方法。
std::pair< bool, float > NegotiateCollision(const ActorId reference_vehicle_id, const ActorId other_actor_id, const uint64_t reference_junction_look_ahead_index)
std::unordered_map< ActorId, LocationVector > GeodesicBoundaryMap
std::deque< std::shared_ptr< SimpleWaypoint > > Buffer
std::vector< CollisionHazardData > CollisionFrame
carla::ActorId ActorId
参与者的智能指针类型
std::unordered_map< ActorId, CollisionLock > CollisionLockMap
std::vector< cg::Location > LocationVector
std::unordered_map< carla::ActorId, Buffer > BufferMap
bg::model::polygon< bg::model::d2::point_xy< double > > Polygon
std::unordered_map< uint64_t, GeometryComparison > GeometryComparisonMap
double distance_to_lead_vehicle
double initial_lock_distance
double reference_vehicle_to_other_geodesic
double inter_geodesic_distance
double other_vehicle_to_reference_geodesic
double inter_bbox_distance