scenario_simulator_v2 C++ API
entity_status.hpp
Go to the documentation of this file.
1 // Copyright 2015 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__DATA_TYPE__ENTITY_STATUS_HPP_
16 #define TRAFFIC_SIMULATOR__DATA_TYPE__ENTITY_STATUS_HPP_
17 
21 #include <traffic_simulator_msgs/msg/entity_status.hpp>
22 
23 namespace traffic_simulator
24 {
28 
29 inline namespace entity_status
30 {
32 {
33 public:
35  const EntityStatus & may_non_canonicalized_entity_status,
36  const std::optional<CanonicalizedLaneletPose> & canonicalized_lanelet_pose);
38  explicit operator EntityStatus() const noexcept { return entity_status_; }
39 
40  auto set(const CanonicalizedEntityStatus & status) -> void;
41  auto set(
42  const EntityStatus & status, const lanelet::Ids & lanelet_ids, const double matching_distance)
43  -> void;
44  auto set(const EntityStatus & status, const double matching_distance) -> void;
45 
46  auto setAction(const std::string & action) -> void;
47  auto getActionStatus() const noexcept -> const traffic_simulator_msgs::msg::ActionStatus &;
48 
49  auto getTime() const noexcept -> double;
50  auto setTime(double) -> void;
51 
52  auto getMapPose() const noexcept -> const geometry_msgs::msg::Pose &;
53  auto setMapPose(const geometry_msgs::msg::Pose & pose) -> void;
54 
55  auto getAltitude() const -> double;
56 
57  auto getTwist() const noexcept -> const geometry_msgs::msg::Twist &;
58  auto setTwist(const geometry_msgs::msg::Twist & twist) -> void;
59  auto setLinearVelocity(double linear_velocity) -> void;
60 
61  auto getAccel() const noexcept -> const geometry_msgs::msg::Accel &;
62  auto setAccel(const geometry_msgs::msg::Accel & accel) -> void;
63  auto setLinearAcceleration(double linear_acceleration) -> void;
64 
65  auto getLinearJerk() const noexcept -> double;
66  auto setLinearJerk(double) -> void;
67 
68  auto isInLanelet() const noexcept -> bool;
69  auto getLaneletId() const -> lanelet::Id;
70  auto getLaneletIds() const -> lanelet::Ids;
71  auto getLaneletPose() const -> const LaneletPose &;
72  auto getCanonicalizedLaneletPose() const noexcept
73  -> const std::optional<CanonicalizedLaneletPose> &;
74  auto getName() const noexcept -> const std::string & { return entity_status_.name; }
75  auto getType() const noexcept -> const EntityType & { return entity_status_.type; }
76  auto getSubtype() const noexcept -> const EntitySubtype & { return entity_status_.subtype; }
77  auto getBoundingBox() const noexcept -> const traffic_simulator_msgs::msg::BoundingBox &;
78 
79 private:
80  std::optional<CanonicalizedLaneletPose> canonicalized_lanelet_pose_;
81  EntityStatus entity_status_;
82 };
83 } // namespace entity_status
84 auto isSameLaneletId(
85  const CanonicalizedEntityStatus & first_status, const CanonicalizedEntityStatus & second_status)
86  -> bool;
87 auto isSameLaneletId(const CanonicalizedEntityStatus & status, const lanelet::Id lanelet_id)
88  -> bool;
89 } // namespace traffic_simulator
90 
91 #endif // TRAFFIC_SIMULATOR__DATA_TYPE__ENTITY_STATUS_HPP_
Definition: entity_status.hpp:32
auto set(const CanonicalizedEntityStatus &status) -> void
Definition: entity_status.cpp:55
CanonicalizedEntityStatus(const EntityStatus &may_non_canonicalized_entity_status, const std::optional< CanonicalizedLaneletPose > &canonicalized_lanelet_pose)
Definition: entity_status.cpp:22
auto getLaneletIds() const -> lanelet::Ids
Definition: entity_status.cpp:142
auto getAccel() const noexcept -> const geometry_msgs::msg::Accel &
Definition: entity_status.cpp:178
auto getSubtype() const noexcept -> const EntitySubtype &
Definition: entity_status.hpp:76
auto getType() const noexcept -> const EntityType &
Definition: entity_status.hpp:75
auto setAccel(const geometry_msgs::msg::Accel &accel) -> void
Definition: entity_status.cpp:168
auto setLinearJerk(double) -> void
Definition: entity_status.cpp:183
auto getCanonicalizedLaneletPose() const noexcept -> const std::optional< CanonicalizedLaneletPose > &
Definition: entity_status.cpp:147
auto getTwist() const noexcept -> const geometry_msgs::msg::Twist &
Definition: entity_status.cpp:158
auto getLinearJerk() const noexcept -> double
Definition: entity_status.cpp:188
auto isInLanelet() const noexcept -> bool
Definition: entity_status.cpp:101
auto setTime(double) -> void
Definition: entity_status.cpp:193
auto getLaneletId() const -> lanelet::Id
Definition: entity_status.cpp:137
auto getActionStatus() const noexcept -> const traffic_simulator_msgs::msg::ActionStatus &
Definition: entity_status.cpp:95
auto getBoundingBox() const noexcept -> const traffic_simulator_msgs::msg::BoundingBox &
Definition: entity_status.cpp:106
auto getName() const noexcept -> const std::string &
Definition: entity_status.hpp:74
auto getAltitude() const -> double
Definition: entity_status.cpp:122
auto getTime() const noexcept -> double
Definition: entity_status.cpp:195
auto setLinearAcceleration(double linear_acceleration) -> void
Definition: entity_status.cpp:173
auto setAction(const std::string &action) -> void
Definition: entity_status.cpp:90
auto setTwist(const geometry_msgs::msg::Twist &twist) -> void
Definition: entity_status.cpp:153
auto getMapPose() const noexcept -> const geometry_msgs::msg::Pose &
Definition: entity_status.cpp:117
auto setLinearVelocity(double linear_velocity) -> void
Definition: entity_status.cpp:163
auto getLaneletPose() const -> const LaneletPose &
Definition: entity_status.cpp:128
auto setMapPose(const geometry_msgs::msg::Pose &pose) -> void
Definition: entity_status.cpp:112
Definition: lanelet_pose.hpp:35
Definition: lanelet_wrapper.hpp:39
geometry_msgs::msg::Pose Pose
Definition: lanelet_map.hpp:30
traffic_simulator_msgs::msg::BoundingBox BoundingBox
Definition: lanelet_wrapper.hpp:61
Definition: api.hpp:48
traffic_simulator_msgs::msg::EntityType EntityType
Definition: entity_status.hpp:26
traffic_simulator_msgs::msg::EntitySubtype EntitySubtype
Definition: entity_status.hpp:27
traffic_simulator_msgs::msg::LaneletPose LaneletPose
Definition: lanelet_pose.hpp:30
auto isSameLaneletId(const CanonicalizedEntityStatus &first_status, const CanonicalizedEntityStatus &second_status) -> bool
Definition: entity_status.cpp:198
traffic_simulator_msgs::msg::EntityStatus EntityStatus
Definition: entity_status.hpp:25
std::string string
Definition: junit5.hpp:26
traffic_simulator_msgs::EntitySubtype EntitySubtype
Definition: helper_functions.hpp:30
traffic_simulator_msgs::EntityStatus EntityStatus
Definition: helper_functions.hpp:32
traffic_simulator_msgs::EntityType EntityType
Definition: helper_functions.hpp:31