scenario_simulator_v2 C++ API
misc_object_entity.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__ENTITY__MISC_OBJECT_ENTITY_HPP_
16 #define TRAFFIC_SIMULATOR__ENTITY__MISC_OBJECT_ENTITY_HPP_
17 
18 #include <optional>
20 #include <traffic_simulator_msgs/msg/misc_object_parameters.hpp>
21 
22 namespace traffic_simulator
23 {
24 namespace entity
25 {
27 {
28 public:
29  explicit MiscObjectEntity(
31  const traffic_simulator_msgs::msg::MiscObjectParameters &);
32 
33  void onUpdate(double, double) override;
34 
35  auto getCurrentAction() const -> std::string override;
36 
37  auto getDefaultDynamicConstraints() const
38  -> const traffic_simulator_msgs::msg::DynamicConstraints & override;
39 
40  auto getEntityTypename() const -> const std::string & override
41  {
42  static const std::string result = "MiscObjectEntity";
43  return result;
44  }
45 
46  ~MiscObjectEntity() override = default;
47 
48  auto getGoalPoses() -> std::vector<geometry_msgs::msg::Pose> override { return {}; }
49 
50  std::optional<traffic_simulator_msgs::msg::Obstacle> getObstacle() override
51  {
52  return std::nullopt;
53  }
54 
55  auto getRouteLanelets(double) -> lanelet::Ids override
56  {
57  THROW_SEMANTIC_ERROR("getRouteLanelets function cannot not use in MiscObjectEntity");
58  }
59 
60  auto getWaypoints() -> const traffic_simulator_msgs::msg::WaypointsArray override
61  {
62  return traffic_simulator_msgs::msg::WaypointsArray();
63  }
64 
65  void requestSpeedChange(double, bool) override;
66 
67  void requestSpeedChange(const speed_change::RelativeTargetSpeed &, bool) override;
68 
70  const std::vector<CanonicalizedLaneletPose> &, const RouteOption &) override
71  {
72  THROW_SEMANTIC_ERROR("requestAssignRoute function cannot not use in MiscObjectEntity");
73  }
74 
76  const std::vector<geometry_msgs::msg::Pose> &, const RouteOption &) override
77  {
78  THROW_SEMANTIC_ERROR("requestAssignRoute function cannot not use in MiscObjectEntity");
79  }
80 
82  {
83  THROW_SEMANTIC_ERROR("requestAcquirePosition function cannot not use in MiscObjectEntity");
84  }
85 
87  {
88  THROW_SEMANTIC_ERROR("requestAcquirePosition function cannot not use in MiscObjectEntity");
89  }
90 
91  void requestSpeedChange(
92  const double, const speed_change::Transition, const speed_change::Constraint,
93  const bool) override;
94 
95  auto getBehaviorParameter() const -> traffic_simulator_msgs::msg::BehaviorParameter override;
96 
97  void setBehaviorParameter(const traffic_simulator_msgs::msg::BehaviorParameter &) override;
98 
99  void setVelocityLimit(double) override
100  {
102  }
103 
104  void setAccelerationLimit(double) override
105  {
107  }
108 
109  void setAccelerationRateLimit(double) override
110  {
112  }
113 
114  void setDecelerationLimit(double) override
115  {
117  }
118 
119  void setDecelerationRateLimit(double) override
120  {
122  }
123 
124  auto getMaxAcceleration() const -> double override
125  {
126  THROW_SEMANTIC_ERROR("getMaxAcceleration function cannot not use in MiscObjectEntity");
127  }
128 
129  auto getMaxDeceleration() const -> double override
130  {
131  THROW_SEMANTIC_ERROR("getMaxDeceleration function cannot not use in MiscObjectEntity");
132  }
133 };
134 } // namespace entity
135 } // namespace traffic_simulator
136 
137 #endif // TRAFFIC_SIMULATOR__ENTITY__MISC_OBJECT_ENTITY_HPP_
Definition: entity_base.hpp:52
const std::string name
Definition: entity_base.hpp:348
Definition: misc_object_entity.hpp:27
void requestAssignRoute(const std::vector< CanonicalizedLaneletPose > &, const RouteOption &) override
Definition: misc_object_entity.hpp:69
void setAccelerationRateLimit(double) override
Definition: misc_object_entity.hpp:109
void setBehaviorParameter(const traffic_simulator_msgs::msg::BehaviorParameter &) override
Definition: misc_object_entity.cpp:48
auto getGoalPoses() -> std::vector< geometry_msgs::msg::Pose > override
Definition: misc_object_entity.hpp:48
void requestSpeedChange(double, bool) override
Definition: misc_object_entity.cpp:69
void onUpdate(double, double) override
Definition: misc_object_entity.cpp:28
auto getMaxAcceleration() const -> double override
Definition: misc_object_entity.hpp:124
void setAccelerationLimit(double) override
Definition: misc_object_entity.hpp:104
void requestAcquirePosition(const CanonicalizedLaneletPose &, const RouteOption &) override
Definition: misc_object_entity.hpp:81
MiscObjectEntity(const std::string &name, const CanonicalizedEntityStatus &, const traffic_simulator_msgs::msg::MiscObjectParameters &)
Definition: misc_object_entity.cpp:21
void requestAcquirePosition(const geometry_msgs::msg::Pose &, const RouteOption &) override
Definition: misc_object_entity.hpp:86
void setVelocityLimit(double) override
Definition: misc_object_entity.hpp:99
std::optional< traffic_simulator_msgs::msg::Obstacle > getObstacle() override
Definition: misc_object_entity.hpp:50
void setDecelerationLimit(double) override
Definition: misc_object_entity.hpp:114
void requestAssignRoute(const std::vector< geometry_msgs::msg::Pose > &, const RouteOption &) override
Definition: misc_object_entity.hpp:75
auto getCurrentAction() const -> std::string override
Definition: misc_object_entity.cpp:37
auto getEntityTypename() const -> const std::string &override
Definition: misc_object_entity.hpp:40
auto getBehaviorParameter() const -> traffic_simulator_msgs::msg::BehaviorParameter override
Definition: misc_object_entity.cpp:42
auto getMaxDeceleration() const -> double override
Definition: misc_object_entity.hpp:129
auto getRouteLanelets(double) -> lanelet::Ids override
Definition: misc_object_entity.hpp:55
void setDecelerationRateLimit(double) override
Definition: misc_object_entity.hpp:119
auto getWaypoints() -> const traffic_simulator_msgs::msg::WaypointsArray override
Definition: misc_object_entity.hpp:60
auto getDefaultDynamicConstraints() const -> const traffic_simulator_msgs::msg::DynamicConstraints &override
Definition: misc_object_entity.cpp:53
Definition: entity_status.hpp:31
Definition: lanelet_pose.hpp:35
#define THROW_SEMANTIC_ERROR(...)
Definition: exception.hpp:59
Definition: lanelet_wrapper.hpp:43
geometry_msgs::msg::Pose Pose
Definition: lanelet_wrapper.hpp:70
Transition
Definition: speed_change.hpp:26
Definition: operators.hpp:25
Definition: api.hpp:33
std::string string
Definition: junit5.hpp:26
Definition: route_option.hpp:25
Definition: speed_change.hpp:35