18 #ifndef MANIFOLD_RNDF_LANE_HH_
19 #define MANIFOLD_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);
123 public: std::vector<rndf::Checkpoint> &
Checkpoints();
127 public:
const std::vector<rndf::Checkpoint> &
Checkpoints()
const;
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;
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();
249 public:
bool Load(std::ifstream &_rndfFile,
250 const int _segmentId,
259 public:
int Id()
const;
266 public:
bool SetId(
const int _id);
274 public:
unsigned int NumWaypoints()
const;
278 public: std::vector<rndf::Waypoint> &Waypoints();
282 public:
const std::vector<rndf::Waypoint> &Waypoints()
const;
307 public:
bool RemoveWaypoint(
const int _wpId);
315 public:
double Width()
const;
319 public:
bool SetWidth(
const double _newWidth);
327 public:
Marking LeftBoundary()
const;
331 public:
void SetLeftBoundary(
const Marking &_boundary);
335 public:
Marking RightBoundary()
const;
339 public:
void SetRightBoundary(
const Marking &_boundary);
347 public:
unsigned int NumCheckpoints()
const;
351 public: std::vector<rndf::Checkpoint> &Checkpoints();
355 public:
const std::vector<rndf::Checkpoint> &Checkpoints()
const;
381 public:
bool RemoveCheckpoint(
const int _cpId);
389 public:
unsigned int NumStops()
const;
394 public: std::vector<int> &Stops();
398 public:
const std::vector<int> &Stops()
const;
405 public:
bool AddStop(
const int _waypointId);
412 public:
bool RemoveStop(
const int _waypointId);
420 public:
unsigned int NumExits()
const;
424 public: std::vector<Exit> &Exits();
428 public:
const std::vector<Exit> &Exits()
const;
434 public:
bool AddExit(
const Exit &_newExit);
440 public:
bool RemoveExit(
const Exit &_exit);
447 public:
bool Valid()
const;
456 public:
bool operator==(
const Lane &_other)
const;
461 public:
bool operator!=(
const Lane &_other)
const;
466 public:
Lane &operator=(
const Lane &_other);
470 private: std::unique_ptr<LanePrivate> dataPtr;
A reference point.
Definition: Waypoint.hh:42
An exit clas that shows how to go from an exit waypoint to an entry waypoint.
Definition: Exit.hh:32
#define MANIFOLD_VISIBLE
Use to represent "symbol visible" if supported.
Definition: Helpers.hh:55
Marking
Definition: Lane.hh:39
A checkpoint is a waypoint that has to be visited.
Definition: Checkpoint.hh:34
A class that represents a road lane composed by a set of waypoints.
Definition: Lane.hh:220