RNDFNode.hh
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2017 Open Source Robotics Foundation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16 */
17 
18 #ifndef IGNITION_RNDF_RNDFNODE_HH_
19 #define IGNITION_RNDF_RNDFNODE_HH_
20 
21 #include <memory>
22 
23 #include "ignition/rndf/Helpers.hh"
24 
25 namespace ignition
26 {
27  namespace rndf
28  {
29  // Forward declarations.
30  class Lane;
31  class RNDFNodePrivate;
32  class Segment;
33  class UniqueId;
34  class Waypoint;
35  class Zone;
36 
37  // \internal
41  {
44  public: RNDFNode();
45 
48  public: explicit RNDFNode(const rndf::UniqueId &_id);
49 
52  public: explicit RNDFNode(const RNDFNode &_other);
53 
55  public: virtual ~RNDFNode();
56 
59  public: rndf::UniqueId &UniqueId() const;
60 
64  public: rndf::Segment *Segment() const;
65 
69  public: rndf::Lane *Lane() const;
70 
74  public: rndf::Zone *Zone() const;
75 
79  public: rndf::Waypoint *Waypoint() const;
80 
83  public: void SetUniqueId(const rndf::UniqueId &_id);
84 
89  public: void SetSegment(rndf::Segment *_segment);
90 
95  public: void SetLane(rndf::Lane *_lane);
96 
101  public: void SetZone(rndf::Zone *_zone);
102 
107  // pased in the constructor was incorrect).
108  public: void SetWaypoint(rndf::Waypoint *_waypoint);
109 
113 
117  public: bool operator==(const RNDFNode &_other) const;
118 
122  public: bool operator!=(const RNDFNode &_other) const;
123 
127  public: RNDFNode &operator=(const RNDFNode &_other);
128 
131  private: std::unique_ptr<RNDFNodePrivate> dataPtr;
132  };
133  }
134 }
135 #endif
#define IGNITION_RNDF_VISIBLE
Use to represent "symbol visible" if supported.
Definition: Helpers.hh:55
Abstraction for representing road segments.
Definition: Segment.hh:82
A unique id of the form x.y.z, where x and z are positive numbers and y is a non-negative number (per...
Definition: UniqueId.hh:32
A class that represents a road lane composed by a set of waypoints.
Definition: Lane.hh:220
An RNDF node class.
Definition: RNDFNode.hh:40
An abstraction for representing areas within free vehicle movement is permitted.
Definition: Zone.hh:85
Definition: Checkpoint.hh:25
A reference point.
Definition: Waypoint.hh:42