@@ -33,18 +33,16 @@ using autoware::universe_utils::createDefaultMarker;
3333
3434void add_polygon_to_marker (Marker & marker, const Polygon2d & polygon, const double z = 0.0 )
3535{
36- for ( const auto & point : polygon. outer ()) {
37- Point p ;
38- p. x = point. x ();
39- p.y = point. y ();
40- p.z = z ;
36+ Point p;
37+ p. z = z ;
38+ boost::geometry::for_each_segment (polygon, [&]( const auto & segment) {
39+ p.x = segment. first . x ();
40+ p.y = segment. first . y () ;
4141 marker.points .push_back (p);
42- }
43-
44- // Close the polygon
45- if (!marker.points .empty ()) {
46- marker.points .push_back (marker.points .front ());
47- }
42+ p.x = segment.second .x ();
43+ p.y = segment.second .y ();
44+ marker.points .push_back (p);
45+ });
4846}
4947
5048} // namespace
@@ -80,91 +78,80 @@ MarkerArray RoadUserStopModule::create_debug_marker_array() const
8078 if (!debug_data_.trajectory_polygons .empty ()) {
8179 autoware_utils_debug::ScopedTimeTrack st_debug_marker (
8280 " create_debug_marker_array/trajectory_polygons" , *time_keeper_);
83- int traj_poly_id = 0 ;
84- for (const auto & polygon : debug_data_.trajectory_polygons ) {
85- Marker traj_poly_marker = createDefaultMarker (
86- " map" , clock_->now (), " trajectory_polygons" , traj_poly_id++, Marker::LINE_STRIP,
87- autoware::universe_utils::createMarkerScale (0.1 , 0 , 0 ),
88- autoware::universe_utils::createMarkerColor (1.0 , 1.0 , 0.0 , 0.5 )); // Yellow color
89-
90- traj_poly_marker.lifetime = rclcpp::Duration::from_seconds (0.3 );
81+ Marker traj_poly_marker = createDefaultMarker (
82+ " map" , clock_->now (), " trajectory_polygons" , 0 , Marker::LINE_LIST,
83+ autoware::universe_utils::createMarkerScale (0.1 , 0 , 0 ),
84+ autoware::universe_utils::createMarkerColor (1.0 , 1.0 , 0.0 , 0.5 )); // Yellow color
9185
86+ traj_poly_marker.lifetime = rclcpp::Duration::from_seconds (0.3 );
87+ for (const auto & polygon : debug_data_.trajectory_polygons ) {
9288 add_polygon_to_marker (traj_poly_marker, polygon);
93-
94- debug_marker_array.markers .push_back (traj_poly_marker);
9589 }
90+ debug_marker_array.markers .push_back (traj_poly_marker);
9691 }
9792
9893 if (!debug_data_.trajectory_polygons_no_margin .empty ()) {
9994 autoware_utils_debug::ScopedTimeTrack st_debug_marker (
10095 " create_debug_marker_array/trajectory_polygons_no_margin" , *time_keeper_);
101- int traj_poly_id = 0 ;
102- for (const auto & polygon : debug_data_.trajectory_polygons_no_margin ) {
103- Marker traj_poly_marker = createDefaultMarker (
104- " map" , clock_->now (), " trajectory_polygons_no_margin" , traj_poly_id++, Marker::LINE_STRIP,
105- autoware::universe_utils::createMarkerScale (0.1 , 0 , 0 ),
106- autoware::universe_utils::createMarkerColor (1.0 , 0.5 , 0.0 , 0.5 )); // Orange color
96+ Marker traj_poly_marker = createDefaultMarker (
97+ " map" , clock_->now (), " trajectory_polygons_no_margin" , 0 , Marker::LINE_LIST,
98+ autoware::universe_utils::createMarkerScale (0.1 , 0 , 0 ),
99+ autoware::universe_utils::createMarkerColor (1.0 , 0.5 , 0.0 , 0.5 )); // Orange color
107100
108- traj_poly_marker.lifetime = rclcpp::Duration::from_seconds (0.3 );
101+ traj_poly_marker.lifetime = rclcpp::Duration::from_seconds (0.3 );
109102
103+ for (const auto & polygon : debug_data_.trajectory_polygons_no_margin ) {
110104 add_polygon_to_marker (traj_poly_marker, polygon);
111-
112- debug_marker_array.markers .push_back (traj_poly_marker);
113105 }
106+ debug_marker_array.markers .push_back (traj_poly_marker);
114107 }
115108
116109 if (!debug_data_.object_polygons .empty ()) {
117110 autoware_utils_debug::ScopedTimeTrack st_debug_marker (
118111 " create_debug_marker_array/object_polygons" , *time_keeper_);
119- int obj_poly_id = 0 ;
120- for (const auto & polygon : debug_data_.object_polygons ) {
121- Marker obj_poly_marker = createDefaultMarker (
122- " map" , clock_->now (), " object_polygons" , obj_poly_id++, Marker::LINE_STRIP,
123- autoware::universe_utils::createMarkerScale (0.15 , 0 , 0 ),
124- autoware::universe_utils::createMarkerColor (0.8 , 0.0 , 0.8 , 0.9 ));
112+ Marker obj_poly_marker = createDefaultMarker (
113+ " map" , clock_->now (), " object_polygons" , 0 , Marker::LINE_LIST,
114+ autoware::universe_utils::createMarkerScale (0.15 , 0 , 0 ),
115+ autoware::universe_utils::createMarkerColor (0.8 , 0.0 , 0.8 , 0.9 ));
125116
126- obj_poly_marker.lifetime = rclcpp::Duration::from_seconds (0.3 );
117+ obj_poly_marker.lifetime = rclcpp::Duration::from_seconds (0.3 );
127118
119+ for (const auto & polygon : debug_data_.object_polygons ) {
128120 add_polygon_to_marker (obj_poly_marker, polygon);
129-
130- debug_marker_array.markers .push_back (obj_poly_marker);
131121 }
122+ debug_marker_array.markers .push_back (obj_poly_marker);
132123 }
133124
134125 if (!debug_data_.polygons_for_vru .empty ()) {
135126 autoware_utils_debug::ScopedTimeTrack st_debug_marker (
136127 " create_debug_marker_array/polygons_for_vru" , *time_keeper_);
137- int vru_poly_id = 0 ;
138- for (const auto & polygon : debug_data_.polygons_for_vru ) {
139- Marker vru_poly_marker = createDefaultMarker (
140- " map" , clock_->now (), " polygons_for_vru" , vru_poly_id++, Marker::LINE_STRIP,
141- autoware::universe_utils::createMarkerScale (0.15 , 0 , 0 ),
142- autoware::universe_utils::createMarkerColor (0.5 , 1.0 , 0.5 , 0.6 ));
128+ Marker vru_poly_marker = createDefaultMarker (
129+ " map" , clock_->now (), " polygons_for_vru" , 0 , Marker::LINE_LIST,
130+ autoware::universe_utils::createMarkerScale (0.15 , 0 , 0 ),
131+ autoware::universe_utils::createMarkerColor (0.5 , 1.0 , 0.5 , 0.6 ));
143132
144- vru_poly_marker.lifetime = rclcpp::Duration::from_seconds (0.3 );
133+ vru_poly_marker.lifetime = rclcpp::Duration::from_seconds (0.3 );
145134
135+ for (const auto & polygon : debug_data_.polygons_for_vru ) {
146136 add_polygon_to_marker (vru_poly_marker, polygon);
147-
148- debug_marker_array.markers .push_back (vru_poly_marker);
149137 }
138+ debug_marker_array.markers .push_back (vru_poly_marker);
150139 }
151140
152141 if (!debug_data_.polygons_for_opposing_traffic .empty ()) {
153142 autoware_utils_debug::ScopedTimeTrack st_debug_marker (
154143 " create_debug_marker_array/polygons_for_opposing_traffic" , *time_keeper_);
155- int opposing_poly_id = 0 ;
156- for (const auto & polygon : debug_data_.polygons_for_opposing_traffic ) {
157- Marker opposing_poly_marker = createDefaultMarker (
158- " map" , clock_->now (), " polygons_for_opposing_traffic" , opposing_poly_id++,
159- Marker::LINE_STRIP, autoware::universe_utils::createMarkerScale (0.15 , 0 , 0 ),
160- autoware::universe_utils::createMarkerColor (1.0 , 0.5 , 0.5 , 0.6 ));
144+ Marker opposing_poly_marker = createDefaultMarker (
145+ " map" , clock_->now (), " polygons_for_opposing_traffic" , 0 , Marker::LINE_LIST,
146+ autoware::universe_utils::createMarkerScale (0.15 , 0 , 0 ),
147+ autoware::universe_utils::createMarkerColor (1.0 , 0.5 , 0.5 , 0.6 ));
161148
162- opposing_poly_marker.lifetime = rclcpp::Duration::from_seconds (0.3 );
149+ opposing_poly_marker.lifetime = rclcpp::Duration::from_seconds (0.3 );
163150
151+ for (const auto & polygon : debug_data_.polygons_for_opposing_traffic ) {
164152 add_polygon_to_marker (opposing_poly_marker, polygon);
165-
166- debug_marker_array.markers .push_back (opposing_poly_marker);
167153 }
154+ debug_marker_array.markers .push_back (opposing_poly_marker);
168155 }
169156
170157 return debug_marker_array;
0 commit comments