![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2010 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00008 00009 #pragma once 00010 00011 #include "vrfutil/railSegment.h" 00012 #include "matrix/vlVector.h" 00013 #include "vrfutil/vrfutilDefines.h" 00014 #include "terrainCS/coordSystem.h" 00015 #include "vrfutil/iteratorBase.h" 00016 #include "vrfutil/rwRailSegment.h" 00017 #include "vrfutil/lclVecIter.h" 00018 00020 00023 DT_DLL_vrfutil double distance2DSqAlongRailSegment(const DtVector & pos, const DtRailSegment * seg, 00024 const Coordinate_System& coordinateSystem,double & distanceToSeg); 00025 00027 DT_DLL_vrfutil double distance2DAlongRailFromStart(const DtVector & pos, const DtRailSegmentList * rails,const Coordinate_System& coordinateSystem); 00028 00030 DT_DLL_vrfutil DtVector locationAlongRail(double distanceFromStart, const DtRailSegmentList * rails,const Coordinate_System& coordinateSystem); 00031 00033 DT_DLL_vrfutil DtVector locationAlongRailSegment(double distanceFromSegmentStart, const DtRailSegment* railSegment); 00034 00036 DT_DLL_vrfutil double railHeading(const DtRailSegment* railSegment,const Coordinate_System& coordinateSystem); 00037 00040 DT_DLL_vrfutil int findTurnDirection(double currentHeading, double desiredHeading,double & headingDiff); 00041 00043 DT_DLL_vrfutil bool intersection(const DtRailSegment * currentSegment,const DtRailSegment * nextSegment); 00044 00046 DT_DLL_vrfutil int findDrivingLane(const int turnDirection,const DtRailSegment* segment); 00047 00048 DT_DLL_vrfutil const DtRailSegment * findClosestSegment( const DtVector & pos, const DtRailSegmentList * rails, const Coordinate_System & coordinateSystem, 00049 double & distanceSqAlongClosest); 00051 DT_DLL_vrfutil double distance2DAlongRailBetween2Points(const DtVector & pos1, const DtVector & pos2, const DtRailSegmentList * rails, 00052 const Coordinate_System& coordinateSystem); 00053 00054 DT_DLL_vrfutil double closestPointInXY(const DtRailSegment * seg, const DtVector & pointFronm, DtVector & closest, 00055 const Coordinate_System & coordinateSystem); 00056 00062 DT_DLL_vrfutil DtRailSegment * generateEntryPoint(const DtPoint & entry, DtRailSegmentList * rails,const DtVector & entityPos, 00063 bool drivingOnLeft,bool pivots,const double turnRadius,const double entityHeading,DtVector & entryPoint, const Coordinate_System& coordinateSystem); 00064 00067 DT_DLL_vrfutil void setUpLocalToBodyCoordinateTransform(const DtVector & offset, const double heading, 00068 const Coordinate_System& coordinateSystem,DtCoordTransform& transform); 00069 00070 DT_DLL_vrfutil DtRwRailSegmentList* createRwRailPath(const DtRailSegmentList * rails); 00071 00072 DT_DLL_vrfutil DtRwRailSegmentList* createRwRailPathFromRoute(DtLocalVectorIterator & routeIter,const DtVector startPos, 00073 DtIteratorDirection dir,bool startAtClosestPt, 00074 const Coordinate_System& coordinateSystem); 00075 00076 DT_DLL_vrfutil void fillInRailPathFromRoute(DtLocalVectorIterator& routeIter,const DtVector startPos, 00077 DtIteratorDirection dir,bool startAtClosestPt, 00078 const Coordinate_System& coordinateSystem,DtRailSegmentList & rails); 00079 00080 DT_DLL_vrfutil DtVector convertGeocVecToTopo(const DtVector& geocPoint, const DtCoordTransform& matrix); 00081 00082 DT_DLL_vrfutil DtVector convertTopoVecToGeoc(const DtVector& topoPoint, const DtCoordTransform& matrix); 00083 00084 DT_DLL_vrfutil DtCoordTransform generateTransformMatrix(const DtVector& geocViewpoint);