18 #ifndef IGNITION_RNDF_LANE_HH_ 19 #define IGNITION_RNDF_LANE_HH_ 34 class LaneHeaderPrivate;
76 public:
bool Load(std::ifstream &_rndfFile,
87 public:
double Width()
const;
91 public:
bool SetWidth(
const double _newWidth);
99 public:
Marking LeftBoundary()
const;
103 public:
void SetLeftBoundary(
const Marking &_boundary);
107 public:
Marking RightBoundary()
const;
111 public:
void SetRightBoundary(
const Marking &_boundary);
119 public:
unsigned int NumCheckpoints()
const;
123 public: std::vector<rndf::Checkpoint> &Checkpoints();
127 public:
const std::vector<rndf::Checkpoint> &Checkpoints()
const;
153 public:
bool RemoveCheckpoint(
const int _cpId);
161 public:
unsigned int NumStops()
const;
166 public: std::vector<int> &Stops();
170 public:
const std::vector<int> &Stops()
const;
177 public:
bool AddStop(
const int _waypointId);
184 public:
bool RemoveStop(
const int _waypointId);
192 public:
unsigned int NumExits()
const;
196 public: std::vector<Exit> &Exits();
200 public:
const std::vector<Exit> &Exits()
const;
206 public:
bool AddExit(
const Exit &_newExit);
212 public:
bool RemoveExit(
const Exit &_exit);
215 private: std::unique_ptr<LaneHeaderPrivate> dataPtr;
229 public:
explicit Lane(
const int _id);
234 public:
explicit Lane(
const Lane &_other);
237 public:
virtual ~
Lane();
251 public:
bool Load(std::ifstream &_rndfFile,
252 const int _segmentId,
261 public:
int Id()
const;
268 public:
bool SetId(
const int _id);
276 public:
unsigned int NumWaypoints()
const;
280 public: std::vector<rndf::Waypoint> &Waypoints();
284 public:
const std::vector<rndf::Waypoint> &Waypoints()
const;
290 public:
bool Waypoint(
const int _wpId,
310 public:
bool RemoveWaypoint(
const int _wpId);
318 public:
double Width()
const;
322 public:
bool SetWidth(
const double _newWidth);
330 public:
Marking LeftBoundary()
const;
334 public:
void SetLeftBoundary(
const Marking &_boundary);
338 public:
Marking RightBoundary()
const;
342 public:
void SetRightBoundary(
const Marking &_boundary);
350 public:
unsigned int NumCheckpoints()
const;
354 public: std::vector<rndf::Checkpoint> &Checkpoints();
358 public:
const std::vector<rndf::Checkpoint> &Checkpoints()
const;
384 public:
bool RemoveCheckpoint(
const int _cpId);
392 public:
unsigned int NumStops()
const;
397 public: std::vector<int> &Stops();
401 public:
const std::vector<int> &Stops()
const;
408 public:
bool AddStop(
const int _waypointId);
415 public:
bool RemoveStop(
const int _waypointId);
423 public:
unsigned int NumExits()
const;
427 public: std::vector<Exit> &Exits();
431 public:
const std::vector<Exit> &Exits()
const;
437 public:
bool AddExit(
const Exit &_newExit);
443 public:
bool RemoveExit(
const Exit &_exit);
450 public:
bool Valid()
const;
459 public:
bool operator==(
const Lane &_other)
const;
464 public:
bool operator!=(
const Lane &_other)
const;
469 public:
Lane &operator=(
const Lane &_other);
473 private: std::unique_ptr<LanePrivate> dataPtr;
#define IGNITION_RNDF_VISIBLE
Use to represent "symbol visible" if supported.
Definition: Helpers.hh:55
Marking
Definition: Lane.hh:39
A class that represents a road lane composed by a set of waypoints.
Definition: Lane.hh:220
An exit clas that shows how to go from an exit waypoint to an entry waypoint.
Definition: Exit.hh:32
A checkpoint is a waypoint that has to be visited.
Definition: Checkpoint.hh:34
Definition: Checkpoint.hh:25
A reference point.
Definition: Waypoint.hh:42