VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
railSegment.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 #pragma once
11 
12 #include "vrfutil/vrfutilDefines.h"
13 #include <list>
14 
15 #include <matrix/vlVector.h>
24 {
25 public:
26 
27  DtRailSegment();
28  DtRailSegment(const DtVector& start,const DtVector& end);
29 
30  virtual ~DtRailSegment();
31 
32  DtRailSegment(const DtRailSegment& orig);
33 
34  DtRailSegment& operator=(const DtRailSegment& orig);
35  virtual DtRailSegment* clone();
36 
38 
39  virtual void setStartPoint(const DtVector& start);
40  virtual const DtVector & startPoint() const;
42 
44 
45  virtual void setEndPoint(const DtVector & end);
46  virtual const DtVector & endPoint() const;
48 
52 
53  virtual void setSegmentSpeed(double speed);
54  virtual double segmentSpeed() const;
56 
59  virtual double defaultSegmentSpeedLimit() const;
60 
62 
63  virtual void setLaneWidth(double width);
64  virtual double laneWidth() const;
66 
68 
69  virtual void setNumberOfLanes(unsigned int lanes);
70  virtual unsigned int numberOfLanes() const;
72 
78 
79  virtual int leftLaneOfLane(int lane) const;
80  virtual int rightLaneOfLane(int lane) const;
82 
85  virtual double findLaneShift(const int fromLane, const int toLane) const;
87 
96 
97  virtual double laneOffset(int lanePos) const;
99 
103  virtual double laneCenterOffset(int lane) const;
104 
106 
107  virtual void setIsOneWay(bool way);
108  virtual bool isOneWay() const;
110 
112  virtual std::list<int> availableLanes() const;
113 
121 
122  virtual void setSpecificationID(const DtSpecificationID id);
123  virtual const DtSpecificationID specificationID() const;
125 
131 
132  virtual void setPathId(const unsigned int id);
133  virtual const unsigned int pathId() const;
135 
138 
139  virtual void setSegmentSurfaceConditions(DtVrfWeatherPrecipitationType condition);
140  virtual DtVrfWeatherPrecipitationType segmentSurfaceConditions() const;
142 
146  virtual void setMedianWidth(const double width);
147  virtual double medianWidth() const;
149 
152  virtual void setRoadName(const DtString name);
153  virtual DtString roadName() const;
155 
156 
160  virtual double length() const;
161 
162  static unsigned int nextPathId();
163 
164 protected:
165 
170  double mySpeed;
172  double myLaneWidth;
174  unsigned int myNumberOfLanes;
179  unsigned int myPathId;
189 
191  mutable double myLength;
192  mutable bool myRecomputeLength;
193 
194  static unsigned int theNextPathId;
195 };
196 
197 typedef std::list<DtRailSegment *> DtRailSegmentList;
198 typedef DtRailSegmentList::iterator DtRailSegmentListIterator;
199 typedef DtRailSegmentList::const_iterator DtRailSegmentListConstIterator;
200 
201 namespace DtBufferSerialize
202 {
204  DT_DLL_vrfutil int getSize(const DtRailSegment& data);
205 
211  DT_DLL_vrfutil char *encode(const DtRailSegment& data, char *buffer);
212 
218  DT_DLL_vrfutil const char *decode(DtRailSegment &data, const char *buffer) ;
219 }

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)