WSF
WsfRoadMover.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11// ****************************************************************************
12// Updated by Infoscitex, a DCS Company.
13// ****************************************************************************
14
15#ifndef WSFROADMOVER_HPP
16#define WSFROADMOVER_HPP
17
18#include "wsf_export.h"
19
20#include "WsfGroundMover.hpp"
21class WsfRoute;
22class WsfTrack;
23
30
32{
33public:
34 // using WsfGroundMover::CreateRoute;
35 WsfRoadMover() = delete;
36 WsfRoadMover(WsfScenario& aScenario);
38 ~WsfRoadMover() override = default;
39
42 WsfMover* Clone() const override;
43 bool Initialize(double aSimTime) override;
44 bool ProcessInput(UtInput& aInput) override;
46
47 WsfRoadMover(const WsfGroundMover& aSrc);
48
50
51 bool GoToLocation(double aSimTime,
52 double aLatitude,
53 double aLongitude,
54 double aAltitude = 0.0) override; // Normally don't care about altitude.
55
56 virtual bool GoToTrack(double aSimTime, WsfTrack* aTrackPtr);
57
58 virtual double GetTravelTime(double aSimTime, WsfTrack* aTrackPtr);
59
60 bool UpdateRoute(double aSimTime, const WsfRoute& aRoute) override;
61
62 void SetRoadNetworkId(WsfStringId aId) { mRoadNetworkId = aId; }
63 WsfStringId GetRoadNetworkId() const { return mRoadNetworkId; }
64 void SetStartLat(double aStartLat)
65 {
66 mStartLat = aStartLat;
67 mHaveStartPosition = true;
68 }
69 double GetStartLat() const { return mStartLat; }
70 void SetStartLon(double aStartLon)
71 {
72 mStartLon = aStartLon;
73 mHaveStartPosition = true;
74 }
75 double GetStartLon() const { return mStartLon; }
76 void SetEndLat(double aEndLat)
77 {
78 mEndLat = aEndLat;
79 mHaveEndPosition = true;
80 }
81 double GetEndLat() const { return mEndLat; }
82 void SetEndLon(double aEndLon)
83 {
84 mEndLon = aEndLon;
85 mHaveEndPosition = true;
86 }
87 double GetEndLon() const { return mEndLon; }
88 void SetSpeed(double aSpeed) { mSpeed = aSpeed; }
89 double GetSpeed() const { return mSpeed; }
90 void SetPauseTime(double aPauseTime) { mPauseTime = aPauseTime; }
91 double GetPauseTime() const { return mPauseTime; }
92 void SetUseClosestWaypoint(bool aFlag) { mUseClosestWaypoint = aFlag; }
93 bool GetUseClosestWaypoint() const { return mUseClosestWaypoint; }
94
95protected:
96 WsfRoadMover(const WsfRoadMover& aSrc);
97
98 bool SetOrUpdateRoute(double aSimTime);
99
100 bool CreateRoute(double aSimTime, double aStartLat, double aStartLon, double aEndLat, double aEndLon, WsfRoute& aRoute);
101
102 bool CreateRoute(double aSimTime, const WsfWaypoint& aWp1, const WsfWaypoint& aWp2, WsfRoute& aRoute);
103
104
106 bool CreateRoute(double aFromLatitude,
107 double aFromLongitude,
108 double aFromAltitude,
109 double aToLatitude,
110 double aToLongitude,
111 double aToAltitude,
112 WsfRoute& aRoute) const;
113
114 void MergeWaypoints(const WsfWaypoint& aWpFrom, WsfWaypoint& aWpTo);
115
116private:
117 bool AppendRoute(double aSimTime, const WsfWaypoint& aWp1, const WsfWaypoint& aWp2, WsfRoute& aRoute);
118
119 double GetTravelTime(double aSimTime, WsfTrack* aTrackPtr, WsfRoute& aRoute);
120
121 WsfStringId mRoadNetworkId;
122 bool mConsiderOffRoadShortcut;
123 double mStartLat;
124 double mStartLon;
125 double mEndLat;
126 double mEndLon;
127 double mSpeed;
128 double mOffRoadSpeed;
129 double mPauseTime;
130 bool mUseClosestWaypoint;
131 bool mHaveStartPosition;
132 bool mHaveEndPosition;
133 double mLinearAccel;
134};
135
136#endif
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
WsfSpatialDomain
A collection of enumerations and type definitions that are used across a number of components.
Definition WsfTypes.hpp:32
@ WSF_SPATIAL_DOMAIN_LAND
unknown or undefined
Definition WsfTypes.hpp:34
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
WsfGroundMover()=delete
WsfMover * Clone() const override
Definition WsfGroundMover.cpp:40
bool ProcessInput(UtInput &aInput) override
Definition WsfGroundMover.cpp:46
Definition WsfMover.hpp:37
Definition WsfRoadMover.hpp:32
double GetEndLat() const
Definition WsfRoadMover.hpp:81
~WsfRoadMover() override=default
void SetPauseTime(double aPauseTime)
Definition WsfRoadMover.hpp:90
WsfStringId GetRoadNetworkId() const
Definition WsfRoadMover.hpp:63
bool GetUseClosestWaypoint() const
Definition WsfRoadMover.hpp:93
void SetEndLon(double aEndLon)
Definition WsfRoadMover.hpp:82
void SetStartLon(double aStartLon)
Definition WsfRoadMover.hpp:70
WsfRoadMover()=delete
double GetStartLon() const
Definition WsfRoadMover.hpp:75
double GetPauseTime() const
Definition WsfRoadMover.hpp:91
double GetStartLat() const
Definition WsfRoadMover.hpp:69
double GetEndLon() const
Definition WsfRoadMover.hpp:87
WsfSpatialDomain GetSpatialDomain() const override
Definition WsfRoadMover.hpp:49
double GetSpeed() const
Definition WsfRoadMover.hpp:89
void SetStartLat(double aStartLat)
Definition WsfRoadMover.hpp:64
void SetUseClosestWaypoint(bool aFlag)
Definition WsfRoadMover.hpp:92
void SetRoadNetworkId(WsfStringId aId)
Definition WsfRoadMover.hpp:62
void SetSpeed(double aSpeed)
Definition WsfRoadMover.hpp:88
void SetEndLat(double aEndLat)
Definition WsfRoadMover.hpp:76
WsfRoadMover & operator=(const WsfRoadMover &)=delete
bool UpdateRoute(double aSimTime, const WsfRoute &aRoute) override
Definition WsfRouteMover.cpp:868
bool GoToLocation(double aSimTime, double aLatitude, double aLongitude, double aAltitude) override
Definition WsfRouteMover.cpp:844
A collection of WsfWaypoint objects that represent a path to be followed.
Definition WsfRoute.hpp:40
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
bool Initialize(double aSimTime) override
Definition WsfWaypointMover.cpp:122
Definition WsfWaypoint.hpp:57
Copyrights Multiple, All Rights Reserved