49 const double mid_x,
const double mid_y,
50 const double mid_z,
const double length,
51 const double width,
const double height,
52 const double heading) {
55 const int sign_l[4] = {1, 1, -1, -1};
56 const int sign_w[4] = {1, -1, -1, 1};
57 for (
int i = 0; i < 4; ++i) {
58 perception_obstacle->add_polygon_point();
59 perception_obstacle->mutable_polygon_point(i)->set_x(
60 mid_x + sign_l[i] * length * std::cos(heading) / 2.0 +
61 sign_w[i] * width * std::sin(heading) / 2.0);
62 perception_obstacle->mutable_polygon_point(i)->set_y(
63 mid_y + sign_l[i] * length * std::sin(heading) / 2.0 -
64 sign_w[i] * width * std::cos(heading) / 2.0);
65 perception_obstacle->mutable_polygon_point(i)->set_z(mid_z);
70 double default_object_length = 0.0;
71 switch (object_type) {
73 default_object_length = FLAGS_default_car_length;
77 default_object_length = FLAGS_default_truck_length;
81 default_object_length = FLAGS_default_bike_length;
85 default_object_length = FLAGS_default_ped_length;
89 default_object_length = FLAGS_default_unknown_length;
93 return default_object_length;
97 double default_object_width = 0.0;
98 switch (object_type) {
100 default_object_width = FLAGS_default_car_width;
104 default_object_width = FLAGS_default_truck_width;
108 default_object_width = FLAGS_default_bike_width;
112 default_object_width = FLAGS_default_ped_width;
116 default_object_width = FLAGS_default_unknown_width;
120 return default_object_width;
void FillPerceptionPolygon(PerceptionObstacle *const perception_obstacle, const double mid_x, const double mid_y, const double mid_z, const double length, const double width, const double height, const double heading)