Apollo 10.0
自动驾驶开放平台
hdmap_common.h
浏览该文件的文档.
1/* Copyright 2017 The Apollo Authors. All Rights Reserved.
2
3Licensed under the Apache License, Version 2.0 (the "License");
4you may not use this file except in compliance with the License.
5You may obtain a copy of the License at
6
7 http://www.apache.org/licenses/LICENSE-2.0
8
9Unless required by applicable law or agreed to in writing, software
10distributed under the License is distributed on an "AS IS" BASIS,
11WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12See the License for the specific language governing permissions and
13limitations under the License.
14=========================================================================*/
15
16#pragma once
17
18#include <memory>
19#include <string>
20#include <utility>
21#include <vector>
22
23#include "modules/common_msgs/map_msgs/map_area.pb.h"
24#include "modules/common_msgs/map_msgs/map_barrier_gate.pb.h"
25#include "modules/common_msgs/map_msgs/map_clear_area.pb.h"
26#include "modules/common_msgs/map_msgs/map_crosswalk.pb.h"
27#include "modules/common_msgs/map_msgs/map_id.pb.h"
28#include "modules/common_msgs/map_msgs/map_junction.pb.h"
29#include "modules/common_msgs/map_msgs/map_lane.pb.h"
30#include "modules/common_msgs/map_msgs/map_overlap.pb.h"
31#include "modules/common_msgs/map_msgs/map_parking_space.pb.h"
32#include "modules/common_msgs/map_msgs/map_pnc_junction.pb.h"
33#include "modules/common_msgs/map_msgs/map_road.pb.h"
34#include "modules/common_msgs/map_msgs/map_rsu.pb.h"
35#include "modules/common_msgs/map_msgs/map_signal.pb.h"
36#include "modules/common_msgs/map_msgs/map_speed_bump.pb.h"
37#include "modules/common_msgs/map_msgs/map_stop_sign.pb.h"
38#include "modules/common_msgs/map_msgs/map_yield_sign.pb.h"
39
45
50namespace apollo {
51namespace hdmap {
52
53template <class Object, class GeoObject>
55 public:
57 const Object *object, const GeoObject *geo_object,
58 const int id)
59 : aabox_(aabox), object_(object), geo_object_(geo_object), id_(id) {}
61 const apollo::common::math::AABox2d &aabox() const { return aabox_; }
62 double DistanceTo(const apollo::common::math::Vec2d &point) const {
63 return geo_object_->DistanceTo(point);
64 }
65 double DistanceSquareTo(const apollo::common::math::Vec2d &point) const {
66 return geo_object_->DistanceSquareTo(point);
67 }
68 const Object *object() const { return object_; }
69 const GeoObject *geo_object() const { return geo_object_; }
70 int id() const { return id_; }
71
72 private:
74 const Object *object_;
75 const GeoObject *geo_object_;
76 int id_;
77};
78
79class LaneInfo;
80class JunctionInfo;
81class CrosswalkInfo;
82class SignalInfo;
83class StopSignInfo;
84class YieldSignInfo;
85class OverlapInfo;
86class ClearAreaInfo;
87class SpeedBumpInfo;
88class RoadInfo;
89class ParkingSpaceInfo;
90class PNCJunctionInfo;
91class RSUInfo;
92class AreaInfo;
93class BarrierGateInfo;
94class HDMapImpl;
95
97 std::vector<apollo::common::PointENU> line_points;
98};
100 std::vector<apollo::common::PointENU> polygon_points;
101};
102
103enum class PolygonType {
107};
108
113
118
125
129using OverlapInfoConstPtr = std::shared_ptr<const OverlapInfo>;
130using LaneInfoConstPtr = std::shared_ptr<const LaneInfo>;
131using JunctionInfoConstPtr = std::shared_ptr<const JunctionInfo>;
132using SignalInfoConstPtr = std::shared_ptr<const SignalInfo>;
133using CrosswalkInfoConstPtr = std::shared_ptr<const CrosswalkInfo>;
134using StopSignInfoConstPtr = std::shared_ptr<const StopSignInfo>;
135using YieldSignInfoConstPtr = std::shared_ptr<const YieldSignInfo>;
136using ClearAreaInfoConstPtr = std::shared_ptr<const ClearAreaInfo>;
137using SpeedBumpInfoConstPtr = std::shared_ptr<const SpeedBumpInfo>;
138using RoadInfoConstPtr = std::shared_ptr<const RoadInfo>;
139using ParkingSpaceInfoConstPtr = std::shared_ptr<const ParkingSpaceInfo>;
140using RoadROIBoundaryPtr = std::shared_ptr<RoadROIBoundary>;
141using PolygonRoiPtr = std::shared_ptr<PolygonRoi>;
142using RoadRoiPtr = std::shared_ptr<RoadRoi>;
143using PNCJunctionInfoConstPtr = std::shared_ptr<const PNCJunctionInfo>;
144using RSUInfoConstPtr = std::shared_ptr<const RSUInfo>;
145using AreaInfoConstPtr = std::shared_ptr<const AreaInfo>;
146using BarrierGateInfoConstPtr = std::shared_ptr<const BarrierGateInfo>;
147
148class LaneInfo {
149 public:
150 explicit LaneInfo(const Lane &lane);
151
152 const Id &id() const { return lane_.id(); }
153 const Id &road_id() const { return road_id_; }
154 const Id &section_id() const { return section_id_; }
155 const Lane &lane() const { return lane_; }
156 const std::vector<apollo::common::math::Vec2d> &points() const {
157 return points_;
158 }
159 const std::vector<apollo::common::math::Vec2d> &unit_directions() const {
160 return unit_directions_;
161 }
162 double Heading(const double s) const;
163 double Curvature(const double s) const;
164 const std::vector<double> &headings() const { return headings_; }
165 const std::vector<apollo::common::math::LineSegment2d> &segments() const {
166 return segments_;
167 }
168 const std::vector<double> &accumulate_s() const { return accumulated_s_; }
169 const std::vector<OverlapInfoConstPtr> &overlaps() const { return overlaps_; }
170 const std::vector<OverlapInfoConstPtr> &cross_lanes() const {
171 return cross_lanes_;
172 }
173 const std::vector<OverlapInfoConstPtr> &signals() const { return signals_; }
174 const std::vector<OverlapInfoConstPtr> &barrier_gates() const {
175 return barrier_gates_;
176 }
177 const std::vector<OverlapInfoConstPtr> &yield_signs() const {
178 return yield_signs_;
179 }
180 const std::vector<OverlapInfoConstPtr> &stop_signs() const {
181 return stop_signs_;
182 }
183 const std::vector<OverlapInfoConstPtr> &crosswalks() const {
184 return crosswalks_;
185 }
186 const std::vector<OverlapInfoConstPtr> &junctions() const {
187 return junctions_;
188 }
189 const std::vector<OverlapInfoConstPtr> &clear_areas() const {
190 return clear_areas_;
191 }
192 const std::vector<OverlapInfoConstPtr> &speed_bumps() const {
193 return speed_bumps_;
194 }
195 const std::vector<OverlapInfoConstPtr> &parking_spaces() const {
196 return parking_spaces_;
197 }
198 const std::vector<OverlapInfoConstPtr> &pnc_junctions() const {
199 return pnc_junctions_;
200 }
201 const std::vector<OverlapInfoConstPtr> &areas() const { return areas_; }
202 double total_length() const { return total_length_; }
203 using SampledWidth = std::pair<double, double>;
204 const std::vector<SampledWidth> &sampled_left_width() const {
205 return sampled_left_width_;
206 }
207 const std::vector<SampledWidth> &sampled_right_width() const {
208 return sampled_right_width_;
209 }
210 void GetWidth(const double s, double *left_width, double *right_width) const;
211 double GetWidth(const double s) const;
212 double GetEffectiveWidth(const double s) const;
213
214 const std::vector<SampledWidth> &sampled_left_road_width() const {
215 return sampled_left_road_width_;
216 }
217 const std::vector<SampledWidth> &sampled_right_road_width() const {
218 return sampled_right_road_width_;
219 }
220 void GetRoadWidth(const double s, double *left_width,
221 double *right_width) const;
222 double GetRoadWidth(const double s) const;
223
224 bool IsOnLane(const apollo::common::math::Vec2d &point) const;
225 bool IsOnLane(const apollo::common::math::Box2d &box) const;
226
228 double DistanceTo(const apollo::common::math::Vec2d &point) const;
229 double DistanceTo(const apollo::common::math::Vec2d &point,
230 apollo::common::math::Vec2d *map_point, double *s_offset,
231 int *s_offset_index) const;
233 const apollo::common::math::Vec2d &point, double *distance) const;
235 double *accumulate_s, double *lateral) const;
237 const double heading, double *accumulate_s,
238 double *lateral) const;
239
240 private:
241 friend class HDMapImpl;
242 friend class RoadInfo;
243 void Init();
244 void PostProcess(const HDMapImpl &map_instance);
245 void UpdateOverlaps(const HDMapImpl &map_instance);
246 double GetWidthFromSample(const std::vector<LaneInfo::SampledWidth> &samples,
247 const double s) const;
248 void CreateKDTree();
249 void set_road_id(const Id &road_id) { road_id_ = road_id; }
250 void set_section_id(const Id &section_id) { section_id_ = section_id; }
251
252 private:
253 const Lane &lane_;
254 std::vector<apollo::common::math::Vec2d> points_;
255 std::vector<apollo::common::math::Vec2d> unit_directions_;
256 std::vector<double> headings_;
257 std::vector<apollo::common::math::LineSegment2d> segments_;
258 std::vector<double> accumulated_s_;
259 std::vector<std::string> overlap_ids_;
260 std::vector<OverlapInfoConstPtr> overlaps_;
261 std::vector<OverlapInfoConstPtr> cross_lanes_;
262 std::vector<OverlapInfoConstPtr> signals_;
263 std::vector<OverlapInfoConstPtr> barrier_gates_;
264 std::vector<OverlapInfoConstPtr> yield_signs_;
265 std::vector<OverlapInfoConstPtr> stop_signs_;
266 std::vector<OverlapInfoConstPtr> crosswalks_;
267 std::vector<OverlapInfoConstPtr> junctions_;
268 std::vector<OverlapInfoConstPtr> clear_areas_;
269 std::vector<OverlapInfoConstPtr> speed_bumps_;
270 std::vector<OverlapInfoConstPtr> parking_spaces_;
271 std::vector<OverlapInfoConstPtr> pnc_junctions_;
272 std::vector<OverlapInfoConstPtr> areas_;
273 double total_length_ = 0.0;
274 std::vector<SampledWidth> sampled_left_width_;
275 std::vector<SampledWidth> sampled_right_width_;
276
277 std::vector<SampledWidth> sampled_left_road_width_;
278 std::vector<SampledWidth> sampled_right_road_width_;
279
280 std::vector<LaneSegmentBox> segment_box_list_;
281 std::unique_ptr<LaneSegmentKDTree> lane_segment_kdtree_;
282
283 Id road_id_;
284 Id section_id_;
285};
286
288 public:
289 explicit JunctionInfo(const Junction &junction);
290
291 const Id &id() const { return junction_.id(); }
292 const Junction &junction() const { return junction_; }
293 const apollo::common::math::Polygon2d &polygon() const { return polygon_; }
294
295 const std::vector<Id> &OverlapStopSignIds() const {
296 return overlap_stop_sign_ids_;
297 }
298
299 private:
300 friend class HDMapImpl;
301 void Init();
302 void PostProcess(const HDMapImpl &map_instance);
303 void UpdateOverlaps(const HDMapImpl &map_instance);
304
305 private:
306 const Junction &junction_;
308
309 std::vector<Id> overlap_stop_sign_ids_;
310 std::vector<Id> overlap_ids_;
311};
316
317class AreaInfo {
318 public:
319 explicit AreaInfo(const Area &ad_area);
320
321 const Id &id() const { return ad_area_.id(); }
322 const Area &area() const { return ad_area_; }
323 const apollo::hdmap::Area_Type type() const { return ad_area_.type(); }
324 const std::string &get_name() const { return ad_area_.name(); }
325 const apollo::common::math::Polygon2d &polygon() const { return polygon_; }
326 const std::vector<std::shared_ptr<const AreaInfo>> &OverlapUnDriveableAreas()
327 const {
328 return overlap_undriveable_areas_;
329 }
330
331 private:
332 friend class HDMapImpl;
333 void Init();
334 void PostProcess(const HDMapImpl &map_instance);
335 void UpdateOverlaps(const HDMapImpl &map_instance);
336
337 private:
338 const Area &ad_area_;
340
341 std::vector<std::shared_ptr<const AreaInfo>> overlap_undriveable_areas_;
342
343 std::vector<Id> overlap_ids_;
344};
348
350 public:
351 explicit SignalInfo(const Signal &signal);
352
353 const Id &id() const { return signal_.id(); }
354 const Signal &signal() const { return signal_; }
355 const std::vector<apollo::common::math::LineSegment2d> &segments() const {
356 return segments_;
357 }
358
359 private:
360 void Init();
361
362 private:
363 const Signal &signal_;
364 std::vector<apollo::common::math::LineSegment2d> segments_;
365};
370
372 public:
374
375 const Id &id() const { return barrier_gate_.id(); }
376 const BarrierGate &barrier_gate() const { return barrier_gate_; }
377 const std::vector<apollo::common::math::LineSegment2d> &segments() const {
378 return segments_;
379 }
380
381 private:
382 void Init();
383
384 private:
385 const BarrierGate &barrier_gate_;
386 std::vector<apollo::common::math::LineSegment2d> segments_;
387};
392
394 public:
395 explicit CrosswalkInfo(const Crosswalk &crosswalk);
396
397 const Id &id() const { return crosswalk_.id(); }
398 const Crosswalk &crosswalk() const { return crosswalk_; }
399 const apollo::common::math::Polygon2d &polygon() const { return polygon_; }
400
401 private:
402 void Init();
403
404 private:
405 const Crosswalk &crosswalk_;
407};
412
414 public:
415 explicit StopSignInfo(const StopSign &stop_sign);
416
417 const Id &id() const { return stop_sign_.id(); }
418 const StopSign &stop_sign() const { return stop_sign_; }
419 const std::vector<apollo::common::math::LineSegment2d> &segments() const {
420 return segments_;
421 }
422 const std::vector<Id> &OverlapLaneIds() const { return overlap_lane_ids_; }
423 const std::vector<Id> &OverlapJunctionIds() const {
424 return overlap_junction_ids_;
425 }
426
427 private:
428 friend class HDMapImpl;
429 void init();
430 void PostProcess(const HDMapImpl &map_instance);
431 void UpdateOverlaps(const HDMapImpl &map_instance);
432
433 private:
434 const StopSign &stop_sign_;
435 std::vector<apollo::common::math::LineSegment2d> segments_;
436
437 std::vector<Id> overlap_lane_ids_;
438 std::vector<Id> overlap_junction_ids_;
439 std::vector<Id> overlap_ids_;
440};
445
447 public:
448 explicit YieldSignInfo(const YieldSign &yield_sign);
449
450 const Id &id() const { return yield_sign_.id(); }
451 const YieldSign &yield_sign() const { return yield_sign_; }
452 const std::vector<apollo::common::math::LineSegment2d> &segments() const {
453 return segments_;
454 }
455
456 private:
457 void Init();
458
459 private:
460 const YieldSign &yield_sign_;
461 std::vector<apollo::common::math::LineSegment2d> segments_;
462};
467
469 public:
470 explicit ClearAreaInfo(const ClearArea &clear_area);
471
472 const Id &id() const { return clear_area_.id(); }
473 const ClearArea &clear_area() const { return clear_area_; }
474 const apollo::common::math::Polygon2d &polygon() const { return polygon_; }
475
476 private:
477 void Init();
478
479 private:
480 const ClearArea &clear_area_;
482};
487
489 public:
490 explicit SpeedBumpInfo(const SpeedBump &speed_bump);
491
492 const Id &id() const { return speed_bump_.id(); }
493 const SpeedBump &speed_bump() const { return speed_bump_; }
494 const std::vector<apollo::common::math::LineSegment2d> &segments() const {
495 return segments_;
496 }
497
498 private:
499 void Init();
500
501 private:
502 const SpeedBump &speed_bump_;
503 std::vector<apollo::common::math::LineSegment2d> segments_;
504};
509
511 public:
512 explicit OverlapInfo(const Overlap &overlap);
513
514 const Id &id() const { return overlap_.id(); }
515 const Overlap &overlap() const { return overlap_; }
516 const ObjectOverlapInfo *GetObjectOverlapInfo(const Id &id) const;
517
518 private:
519 const Overlap &overlap_;
520};
521
522class RoadInfo {
523 public:
524 explicit RoadInfo(const Road &road);
525 const Id &id() const { return road_.id(); }
526 const Road &road() const { return road_; }
527 const std::vector<RoadSection> &sections() const { return sections_; }
528
529 const Id &junction_id() const { return road_.junction_id(); }
530 bool has_junction_id() const { return road_.has_junction_id(); }
531
532 const std::vector<RoadBoundary> &GetBoundaries() const;
533
534 apollo::hdmap::Road_Type type() const { return road_.type(); }
535
536 private:
537 Road road_;
538 std::vector<RoadSection> sections_;
539 std::vector<RoadBoundary> road_boundaries_;
540};
541
543 public:
544 explicit ParkingSpaceInfo(const ParkingSpace &parkingspace);
545 const Id &id() const { return parking_space_.id(); }
546 const ParkingSpace &parking_space() const { return parking_space_; }
547 const apollo::common::math::Polygon2d &polygon() const { return polygon_; }
548
549 private:
550 void Init();
551
552 private:
553 const ParkingSpace &parking_space_;
555};
560
562 public:
564
565 const Id &id() const { return junction_.id(); }
566 const PNCJunction &pnc_junction() const { return junction_; }
567 const apollo::common::math::Polygon2d &polygon() const { return polygon_; }
568
569 private:
570 void Init();
571
572 private:
573 const PNCJunction &junction_;
575
576 std::vector<Id> overlap_ids_;
577};
582
586
587using JunctionBoundaryPtr = std::shared_ptr<JunctionBoundary>;
588
589class RSUInfo {
590 public:
591 explicit RSUInfo(const RSU &rsu);
592
593 const Id &id() const { return _rsu.id(); }
594 const RSU &rsu() const { return _rsu; }
595
596 private:
597 RSU _rsu;
598};
599
600} // namespace hdmap
601} // namespace apollo
Defines the AABox2d class.
Defines the templated AABoxKDTree2dNode class.
Implements a class of (undirected) axes-aligned bounding boxes in 2-D.
Definition aabox2d.h:42
The class of KD-tree of Aligned Axis Bounding Box(AABox).
Rectangular (undirected) bounding box in 2-D.
Definition box2d.h:52
The class of polygon in 2-D.
Definition polygon2d.h:42
Implements a class of 2-dimensional vectors.
Definition vec2d.h:42
const apollo::common::math::Polygon2d & polygon() const
const Id & id() const
const std::string & get_name() const
const Area & area() const
const apollo::hdmap::Area_Type type() const
const std::vector< std::shared_ptr< const AreaInfo > > & OverlapUnDriveableAreas() const
const std::vector< apollo::common::math::LineSegment2d > & segments() const
const BarrierGate & barrier_gate() const
const ClearArea & clear_area() const
const apollo::common::math::Polygon2d & polygon() const
const Crosswalk & crosswalk() const
const apollo::common::math::Polygon2d & polygon() const
High-precision map loader implement.
Definition hdmap_impl.h:59
const std::vector< Id > & OverlapStopSignIds() const
const apollo::common::math::Polygon2d & polygon() const
const Junction & junction() const
const std::vector< OverlapInfoConstPtr > & junctions() const
std::pair< double, double > SampledWidth
const std::vector< OverlapInfoConstPtr > & speed_bumps() const
double Heading(const double s) const
const std::vector< SampledWidth > & sampled_left_width() const
const std::vector< OverlapInfoConstPtr > & stop_signs() const
void GetRoadWidth(const double s, double *left_width, double *right_width) const
const std::vector< OverlapInfoConstPtr > & barrier_gates() const
apollo::common::PointENU GetSmoothPoint(double s) const
void GetWidth(const double s, double *left_width, double *right_width) const
const std::vector< OverlapInfoConstPtr > & clear_areas() const
double GetEffectiveWidth(const double s) const
const std::vector< OverlapInfoConstPtr > & signals() const
const std::vector< OverlapInfoConstPtr > & parking_spaces() const
const Id & id() const
const std::vector< SampledWidth > & sampled_right_width() const
const std::vector< apollo::common::math::Vec2d > & points() const
const Id & section_id() const
const std::vector< OverlapInfoConstPtr > & crosswalks() const
const std::vector< OverlapInfoConstPtr > & pnc_junctions() const
apollo::common::PointENU GetNearestPoint(const apollo::common::math::Vec2d &point, double *distance) const
const std::vector< apollo::common::math::Vec2d > & unit_directions() const
double Curvature(const double s) const
const std::vector< double > & headings() const
const Id & road_id() const
const std::vector< apollo::common::math::LineSegment2d > & segments() const
const std::vector< OverlapInfoConstPtr > & yield_signs() const
const std::vector< SampledWidth > & sampled_right_road_width() const
bool GetProjection(const apollo::common::math::Vec2d &point, double *accumulate_s, double *lateral) const
const Lane & lane() const
double total_length() const
const std::vector< OverlapInfoConstPtr > & overlaps() const
bool IsOnLane(const apollo::common::math::Vec2d &point) const
const std::vector< OverlapInfoConstPtr > & areas() const
double DistanceTo(const apollo::common::math::Vec2d &point) const
const std::vector< double > & accumulate_s() const
const std::vector< SampledWidth > & sampled_left_road_width() const
const std::vector< OverlapInfoConstPtr > & cross_lanes() const
const apollo::common::math::AABox2d & aabox() const
const Object * object() const
double DistanceSquareTo(const apollo::common::math::Vec2d &point) const
ObjectWithAABox(const apollo::common::math::AABox2d &aabox, const Object *object, const GeoObject *geo_object, const int id)
double DistanceTo(const apollo::common::math::Vec2d &point) const
const GeoObject * geo_object() const
const Overlap & overlap() const
const Id & id() const
const ObjectOverlapInfo * GetObjectOverlapInfo(const Id &id) const
const PNCJunction & pnc_junction() const
const apollo::common::math::Polygon2d & polygon() const
const apollo::common::math::Polygon2d & polygon() const
const ParkingSpace & parking_space() const
const Id & id() const
const RSU & rsu() const
const Road & road() const
const std::vector< RoadSection > & sections() const
bool has_junction_id() const
const Id & id() const
const Id & junction_id() const
const std::vector< RoadBoundary > & GetBoundaries() const
apollo::hdmap::Road_Type type() const
const Signal & signal() const
const std::vector< apollo::common::math::LineSegment2d > & segments() const
const Id & id() const
const std::vector< apollo::common::math::LineSegment2d > & segments() const
const SpeedBump & speed_bump() const
const std::vector< Id > & OverlapJunctionIds() const
const std::vector< apollo::common::math::LineSegment2d > & segments() const
const StopSign & stop_sign() const
const std::vector< Id > & OverlapLaneIds() const
const std::vector< apollo::common::math::LineSegment2d > & segments() const
const YieldSign & yield_sign() const
Math-related util functions.
ObjectWithAABox< StopSignInfo, apollo::common::math::LineSegment2d > StopSignSegmentBox
ObjectWithAABox< ClearAreaInfo, apollo::common::math::Polygon2d > ClearAreaPolygonBox
std::shared_ptr< const PNCJunctionInfo > PNCJunctionInfoConstPtr
std::shared_ptr< const JunctionInfo > JunctionInfoConstPtr
std::shared_ptr< RoadROIBoundary > RoadROIBoundaryPtr
ObjectWithAABox< SpeedBumpInfo, apollo::common::math::LineSegment2d > SpeedBumpSegmentBox
ObjectWithAABox< LaneInfo, apollo::common::math::LineSegment2d > LaneSegmentBox
ObjectWithAABox< SignalInfo, apollo::common::math::LineSegment2d > SignalSegmentBox
ObjectWithAABox< YieldSignInfo, apollo::common::math::LineSegment2d > YieldSignSegmentBox
std::shared_ptr< const StopSignInfo > StopSignInfoConstPtr
std::shared_ptr< const AreaInfo > AreaInfoConstPtr
std::shared_ptr< const LaneInfo > LaneInfoConstPtr
std::shared_ptr< const ClearAreaInfo > ClearAreaInfoConstPtr
std::shared_ptr< const BarrierGateInfo > BarrierGateInfoConstPtr
std::shared_ptr< const SignalInfo > SignalInfoConstPtr
ObjectWithAABox< BarrierGateInfo, apollo::common::math::LineSegment2d > BarrierGateSegmentBox
std::shared_ptr< const SpeedBumpInfo > SpeedBumpInfoConstPtr
ObjectWithAABox< JunctionInfo, apollo::common::math::Polygon2d > JunctionPolygonBox
ObjectWithAABox< PNCJunctionInfo, apollo::common::math::Polygon2d > PNCJunctionPolygonBox
std::shared_ptr< const RoadInfo > RoadInfoConstPtr
ObjectWithAABox< ParkingSpaceInfo, apollo::common::math::Polygon2d > ParkingSpacePolygonBox
ObjectWithAABox< AreaInfo, apollo::common::math::Polygon2d > AreaPolygonBox
std::shared_ptr< const CrosswalkInfo > CrosswalkInfoConstPtr
std::shared_ptr< const RSUInfo > RSUInfoConstPtr
std::shared_ptr< JunctionBoundary > JunctionBoundaryPtr
std::shared_ptr< const YieldSignInfo > YieldSignInfoConstPtr
std::shared_ptr< const ParkingSpaceInfo > ParkingSpaceInfoConstPtr
std::shared_ptr< PolygonRoi > PolygonRoiPtr
std::shared_ptr< RoadRoi > RoadRoiPtr
ObjectWithAABox< CrosswalkInfo, apollo::common::math::Polygon2d > CrosswalkPolygonBox
std::shared_ptr< const OverlapInfo > OverlapInfoConstPtr
class register implement
Definition arena_queue.h:37
Define the Polygon2d class.
optional string name
optional Type type
JunctionInfoConstPtr junction_info
std::vector< apollo::common::PointENU > line_points
std::vector< apollo::common::PointENU > polygon_points
apollo::common::math::Polygon2d polygon
optional Id id
Definition map_rsu.proto:8
LineBoundary left_boundary
LineBoundary right_boundary
std::vector< PolygonBoundary > holes_boundary
optional Id junction_id
optional Type type
Defines the Vec2d class.