44 {
45
46 auto& obj = new_object->object_ptr;
47 hull_.GetConvexHull(obj->radar4d_supplement.cloud_world, &obj->polygon);
48
49
50 if (track_data->age_ > 0) {
52 if (new_object->direction.dot(latest_object->direction) < 0) {
53 new_object->direction *= -1;
54 }
55 static const double kMovingAverage = 0.6;
56 new_object->direction =
57 latest_object->output_direction * (1 - kMovingAverage) +
58 new_object->direction * kMovingAverage;
59 new_object->direction.normalize();
60 }
61 Eigen::Vector3f local_direction = obj->direction;
62 Eigen::Vector3d local_center = obj->center;
63 Eigen::Vector3f local_size = obj->size;
64 obj->direction = new_object->direction.cast<float>();
65
67 new_object->center = obj->center;
68 new_object->size = obj->size.cast<double>();
69
70 obj->center = local_center;
71 obj->size = local_size;
72 obj->direction = local_direction;
73 new_object->output_center = new_object->center;
74 new_object->output_direction = new_object->direction;
75 new_object->output_size = new_object->size;
76}
algorithm::ConvexHull2D< base::RadarPointDCloud, base::PolygonDType > hull_
std::shared_ptr< const TrackedObject > TrackedObjectConstPtr
void ComputeObjectShapeFromPolygon(std::shared_ptr< Object > object, bool use_world_cloud)