VR-Forces 4.3.1 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>
16 #include <vrfExtObjects/vrfWeatherStateEnums.h>
17 #include <gdb/specificationManager.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 
58 
59  virtual void setLaneWidth(double width);
60  virtual double laneWidth() const;
62 
64 
65  virtual void setNumberOfLanes(unsigned int lanes);
66  virtual unsigned int numberOfLanes() const;
68 
72 
73  virtual int leftLaneOfLane(unsigned lane) const;
74  virtual int rightLaneOfLane(unsigned lane) const;
76 
79  virtual double findLaneShift(const int fromLane, const int toLane) const;
81 
87 
88  virtual double laneOffset(int lanePos) const;
90 
94  virtual double laneCenterOffset(int lane) const;
95 
97 
98  virtual void setIsOneWay(bool way);
99  virtual bool isOneWay() const;
101 
103  virtual std::list<int> availableLanes() const;
104 
109 
110  virtual void setSpecificationID(const DtSpecificationID id);
111  virtual const DtSpecificationID specificationID() const;
113 
117 
118  virtual void setPathId(const unsigned int id);
119  virtual const unsigned int pathId() const;
121 
124 
125  virtual void setSegmentSurfaceConditions(DtVrfWeatherPrecipitationType condition);
126  virtual DtVrfWeatherPrecipitationType segmentSurfaceConditions() const;
128 
131  virtual double length() const;
132 
133  static unsigned int nextPathId();
134 
135 protected:
136 
141  double mySpeed;
143  double myLaneWidth;
145  unsigned int myNumberOfLanes;
150  unsigned int myPathId;
152  DtSpecificationID mySpecId;
154  DtVrfWeatherPrecipitationType mySurfaceCondition;
156  mutable double myLength;
157  mutable bool myRecomputeLength;
158 
159  static unsigned int theNextPathId;
160 };
161 
162 typedef std::list<DtRailSegment *> DtRailSegmentList;
163 typedef DtRailSegmentList::iterator DtRailSegmentListIterator;
164 typedef DtRailSegmentList::const_iterator DtRailSegmentListConstIterator;
165 
166 namespace DtBufferSerialize
167 {
169  DT_DLL_vrfutil int getSize(const DtRailSegment& data);
170 
176  DT_DLL_vrfutil char *encode(const DtRailSegment& data, char *buffer);
177 
183  DT_DLL_vrfutil const char *decode(DtRailSegment &data, const char *buffer) ;
184 }

Document ID: Generated on Wed Jul 29 00:55:00 EDT 2015 from SVN revision 155257
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)