scenario_simulator_v2 C++ API
distance.hpp
Go to the documentation of this file.
1 // Copyright 2024 TIER IV, Inc. All rights reserved.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #ifndef TRAFFIC_SIMULATOR__UTILS__DISTANCE_HPP_
16 #define TRAFFIC_SIMULATOR__UTILS__DISTANCE_HPP_
17 
19 #include <traffic_simulator_msgs/msg/waypoints_array.hpp>
20 
21 namespace traffic_simulator
22 {
23 inline namespace distance
24 {
25 // Lateral
26 auto lateralDistance(
27  const CanonicalizedLaneletPose & from, const CanonicalizedLaneletPose & to,
28  bool allow_lane_change, const std::shared_ptr<hdmap_utils::HdMapUtils> & hdmap_utils_ptr)
29  -> std::optional<double>;
30 
31 auto lateralDistance(
32  const CanonicalizedLaneletPose & from, const CanonicalizedLaneletPose & to,
33  double matching_distance, bool allow_lane_change,
34  const std::shared_ptr<hdmap_utils::HdMapUtils> & hdmap_utils_ptr) -> std::optional<double>;
35 
36 // Longitudinal
38  const CanonicalizedLaneletPose & from, const CanonicalizedLaneletPose & to,
39  bool include_adjacent_lanelet, bool include_opposite_direction, bool allow_lane_change,
40  const std::shared_ptr<hdmap_utils::HdMapUtils> & hdmap_utils_ptr) -> std::optional<double>;
41 
42 // BoundingBox
44  const geometry_msgs::msg::Pose & from,
45  const traffic_simulator_msgs::msg::BoundingBox & from_bounding_box,
46  const geometry_msgs::msg::Pose & to,
47  const traffic_simulator_msgs::msg::BoundingBox & to_bounding_box) -> std::optional<double>;
48 
50  const CanonicalizedLaneletPose & from,
51  const traffic_simulator_msgs::msg::BoundingBox & from_bounding_box,
52  const CanonicalizedLaneletPose & to,
53  const traffic_simulator_msgs::msg::BoundingBox & to_bounding_box, bool allow_lane_change,
54  const std::shared_ptr<hdmap_utils::HdMapUtils> & hdmap_utils_ptr) -> std::optional<double>;
55 
57  const CanonicalizedLaneletPose & from,
58  const traffic_simulator_msgs::msg::BoundingBox & from_bounding_box,
59  const CanonicalizedLaneletPose & to,
60  const traffic_simulator_msgs::msg::BoundingBox & to_bounding_box, bool include_adjacent_lanelet,
61  bool include_opposite_direction, bool allow_lane_change,
62  const std::shared_ptr<hdmap_utils::HdMapUtils> & hdmap_utils_ptr) -> std::optional<double>;
63 
64 // Bounds
66  const geometry_msgs::msg::Pose & map_pose,
67  const traffic_simulator_msgs::msg::BoundingBox & bounding_box, lanelet::Id lanelet_id,
68  const std::shared_ptr<hdmap_utils::HdMapUtils> & hdmap_utils_ptr) -> double;
69 
71  const geometry_msgs::msg::Pose & map_pose,
72  const traffic_simulator_msgs::msg::BoundingBox & bounding_box, const lanelet::Ids & lanelet_ids,
73  const std::shared_ptr<hdmap_utils::HdMapUtils> & hdmap_utils_ptr) -> double;
74 
76  const geometry_msgs::msg::Pose & map_pose,
77  const traffic_simulator_msgs::msg::BoundingBox & bounding_box, lanelet::Id lanelet_id,
78  const std::shared_ptr<hdmap_utils::HdMapUtils> & hdmap_utils_ptr) -> double;
79 
81  const geometry_msgs::msg::Pose & map_pose,
82  const traffic_simulator_msgs::msg::BoundingBox & bounding_box, const lanelet::Ids & lanelet_ids,
83  const std::shared_ptr<hdmap_utils::HdMapUtils> & hdmap_utils_ptr) -> double;
84 
86  const geometry_msgs::msg::Pose & map_pose,
87  const traffic_simulator_msgs::msg::BoundingBox & bounding_box, lanelet::Id lanelet_id,
88  const std::shared_ptr<hdmap_utils::HdMapUtils> & hdmap_utils_ptr) -> double;
89 
91  const geometry_msgs::msg::Pose & map_pose,
92  const traffic_simulator_msgs::msg::BoundingBox & bounding_box, const lanelet::Ids & lanelet_ids,
93  const std::shared_ptr<hdmap_utils::HdMapUtils> & hdmap_utils_ptr) -> double;
94 
95 // Other objects
97  const traffic_simulator_msgs::msg::WaypointsArray & waypoints_array,
98  const lanelet::Id target_crosswalk_id,
99  const std::shared_ptr<hdmap_utils::HdMapUtils> & hdmap_utils_ptr) -> std::optional<double>;
100 
101 auto distanceToStopLine(
102  const traffic_simulator_msgs::msg::WaypointsArray & waypoints_array,
103  const lanelet::Id target_stop_line_id,
104  const std::shared_ptr<hdmap_utils::HdMapUtils> & hdmap_utils_ptr) -> std::optional<double>;
105 } // namespace distance
106 } // namespace traffic_simulator
107 #endif // TRAFFIC_SIMULATOR__UTILS__DISTANCE_HPP_
Definition: lanelet_pose.hpp:27
auto distance(const geometry_msgs::Pose &pose1, const geometry_msgs::Pose &pose2)
Definition: detection_sensor.cpp:34
auto distanceToCrosswalk(const traffic_simulator_msgs::msg::WaypointsArray &waypoints_array, const lanelet::Id target_crosswalk_id, const std::shared_ptr< hdmap_utils::HdMapUtils > &hdmap_utils_ptr) -> std::optional< double >
Definition: distance.cpp:269
auto distanceToStopLine(const traffic_simulator_msgs::msg::WaypointsArray &waypoints_array, const lanelet::Id target_stop_line_id, const std::shared_ptr< hdmap_utils::HdMapUtils > &hdmap_utils_ptr) -> std::optional< double >
Definition: distance.cpp:283
auto longitudinalDistance(const CanonicalizedLaneletPose &from, const CanonicalizedLaneletPose &to, bool include_adjacent_lanelet, bool include_opposite_direction, bool allow_lane_change, const std::shared_ptr< hdmap_utils::HdMapUtils > &hdmap_utils_ptr) -> std::optional< double >
Definition: distance.cpp:48
auto distanceToLaneBound(const geometry_msgs::msg::Pose &map_pose, const traffic_simulator_msgs::msg::BoundingBox &bounding_box, lanelet::Id lanelet_id, const std::shared_ptr< hdmap_utils::HdMapUtils > &hdmap_utils_ptr) -> double
Definition: distance.cpp:249
auto boundingBoxLaneLongitudinalDistance(const CanonicalizedLaneletPose &from, const traffic_simulator_msgs::msg::BoundingBox &from_bounding_box, const CanonicalizedLaneletPose &to, const traffic_simulator_msgs::msg::BoundingBox &to_bounding_box, bool include_adjacent_lanelet, bool include_opposite_direction, bool allow_lane_change, const std::shared_ptr< hdmap_utils::HdMapUtils > &hdmap_utils_ptr) -> std::optional< double >
Definition: distance.cpp:159
auto boundingBoxLaneLateralDistance(const CanonicalizedLaneletPose &from, const traffic_simulator_msgs::msg::BoundingBox &from_bounding_box, const CanonicalizedLaneletPose &to, const traffic_simulator_msgs::msg::BoundingBox &to_bounding_box, bool allow_lane_change, const std::shared_ptr< hdmap_utils::HdMapUtils > &hdmap_utils_ptr) -> std::optional< double >
Definition: distance.cpp:133
auto distanceToLeftLaneBound(const geometry_msgs::msg::Pose &map_pose, const traffic_simulator_msgs::msg::BoundingBox &bounding_box, lanelet::Id lanelet_id, const std::shared_ptr< hdmap_utils::HdMapUtils > &hdmap_utils_ptr) -> double
Definition: distance.cpp:188
auto distanceToRightLaneBound(const geometry_msgs::msg::Pose &map_pose, const traffic_simulator_msgs::msg::BoundingBox &bounding_box, lanelet::Id lanelet_id, const std::shared_ptr< hdmap_utils::HdMapUtils > &hdmap_utils_ptr) -> double
Definition: distance.cpp:218
auto boundingBoxDistance(const geometry_msgs::msg::Pose &from, const traffic_simulator_msgs::msg::BoundingBox &from_bounding_box, const geometry_msgs::msg::Pose &to, const traffic_simulator_msgs::msg::BoundingBox &to_bounding_box) -> std::optional< double >
Definition: distance.cpp:124
auto lateralDistance(const CanonicalizedLaneletPose &from, const CanonicalizedLaneletPose &to, bool allow_lane_change, const std::shared_ptr< hdmap_utils::HdMapUtils > &hdmap_utils_ptr) -> std::optional< double >
Definition: distance.cpp:25
Definition: api.hpp:48