From b0221b79bf50c9edce0ed9d13f40373e9114603d Mon Sep 17 00:00:00 2001
From: Etienne Pellan <etienne.pellan@external.crf.it>
Date: Thu, 10 Aug 2023 10:46:11 +0200
Subject: [PATCH] Adding relative position to the spawning poses for traffic
 swarm

---
 include/MantleAPI/Traffic/i_traffic_swarm_service.h | 10 +++++++++-
 test/MantleAPI/Test/test_utils.h                    |  2 +-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/include/MantleAPI/Traffic/i_traffic_swarm_service.h b/include/MantleAPI/Traffic/i_traffic_swarm_service.h
index 0c018c32..c879b33c 100644
--- a/include/MantleAPI/Traffic/i_traffic_swarm_service.h
+++ b/include/MantleAPI/Traffic/i_traffic_swarm_service.h
@@ -43,7 +43,15 @@ struct TrafficSwarmParameters
 class ITrafficSwarmService
 {
 public:
-    virtual std::vector<mantle_api::Pose> GetAvailableSpawningPoses() const = 0;
+    enum class RelativePosition
+    {
+        kInFront = 0,
+        kBehind
+    };
+
+    using SpawningPosition = std::pair<mantle_api::Pose, RelativePosition>;
+
+    virtual std::vector<SpawningPosition> GetAvailableSpawningPoses() const = 0;
     virtual mantle_api::VehicleProperties GetVehicleProperties(mantle_api::VehicleClass vehicle_class) const = 0;
     virtual void UpdateControllerConfig(std::unique_ptr<mantle_api::ExternalControllerConfig>& config,
                                         units::velocity::meters_per_second_t speed) = 0;
diff --git a/test/MantleAPI/Test/test_utils.h b/test/MantleAPI/Test/test_utils.h
index 6755a007..4f887ef9 100755
--- a/test/MantleAPI/Test/test_utils.h
+++ b/test/MantleAPI/Test/test_utils.h
@@ -481,7 +481,7 @@ public:
 class MockTrafficSwarmService : public mantle_api::ITrafficSwarmService
 {
   public:
-    MOCK_METHOD(std::vector<mantle_api::Pose>,
+    MOCK_METHOD(std::vector<ITrafficSwarmService::SpawningPosition>,
                 GetAvailableSpawningPoses,
                 (),
                 (const, override));
-- 
GitLab