VR-Forces 4.1 Class Documentation
railSplineCalculator.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2010 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 #pragma once
6 
7 
8 
9 
15 
16 #include <vector>
17 #include <list>
18 #include <matrix/vlVector.h>
19 #include <matrix/vlTaitBryan.h>
20 #include <matrix/coordTransform.h>
21 
22 class DtRailSegment;
23 class Coordinate_System;
24 
26 {
27 public:
29 
30  virtual ~DtRailSplineCalculator();
31 
33  virtual bool setUpTurnSpline(const DtRailSegment * currentSeg,const DtRailSegment * nextSeg,
34  const int currentLane,const int desiredLane,Coordinate_System * coordinateSystem,bool useDefinedEntry = false,
35  DtVector entryPt = DtVector::zero());
36 
38  virtual bool setUpLaneSwitchSpline(const DtVector& projectedLocation,const DtRailSegment *currentSeg,const double bvolHL,
39  const int currentLane,const int desiredLane,Coordinate_System * coordinateSystem);
40 
41  virtual bool recalculateSpline(const DtRailSegment * currentSeg,const DtRailSegment * nextSeg, const int currentLane,
42  const int passingLane,const int previousSwitchDirection,Coordinate_System * coordinateSystem);
43 
44  virtual bool modifySpline(const DtVector & currentLocalPos,const DtRailSegment * currentSeg,const DtRailSegment * nextSeg, const int currentLane,const int passingLane,
45  Coordinate_System * coordinateSystem);
46 
50  virtual void calculateTurnPath(const DtVector & pathEntryPt,const DtVector & pathMidPt,const DtVector & pathExitPt);
51 
54  virtual DtVector determinePositionAlongCurve(double distance);
55 
57  virtual std::list<DtVector> getCurvePoints();
58 
60  virtual double calculateTurnHeading(double oldHeading);
61 
62  virtual double calculateLaneSwitchHeading(double oldHeading);
63 
64  virtual bool finishTurn(double oldHeading, double newHeading);
65  virtual bool finishLaneSwitch(double oldHeading,double newHeading);
66 
69  virtual const DtVector & splineLocalEntryPoint() const;
70  virtual const DtVector & splineLocalMidPoint() const;
71  virtual const DtVector & splineLocalExitPoint() const;
72 
73  virtual const int turnEntryLane() const;
74  virtual void setDrivingOnLeft(bool left);
75  virtual bool drivingOnLeft() const;
76 
78  virtual void setTurnDirection(const int dir);
79  virtual const int turnDirection() const;
80 
81  virtual void setLocalToTopoTransform(const DtCoordTransform & transform);
82  virtual void setTopoToLocalTransform(const DtCoordTransform & transform);
83 
84  virtual void clear();
85 
86 private:
89  const DtRailSplineCalculator& orig);
90 
92  DtRailSplineCalculator& operator=(
93  const DtRailSplineCalculator& orig);
94 
95 protected:
100  double mySplineTime;
104 
106  DtCoordTransform myLocalToTopoTransform;
107  DtCoordTransform myTopoToLocalTransform;
108 
116 
122  std::vector<DtVector> mySplineCoefficents;
123 };
124 

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)