WSF
WsfHybridMover.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 WSFHYBRID_HPP
16#define WSFHYBRID_HPP
17
18#include "wsf_export.h"
19
20#include "WsfMover.hpp"
21
22class UtInput;
23class WsfFollower;
25
29{
30public:
37
38 WsfHybridMover() = delete;
39 WsfHybridMover(WsfScenario& aScenario);
41 ~WsfHybridMover() override;
42
44
45 WsfMover* Clone() const override;
46 WsfSpatialDomain GetSpatialDomain() const override;
47 bool Initialize(double aSimTime) override;
48 bool ProcessInput(UtInput& aInput) override;
49 void Update(double aSimTime) override;
51
54 void SetFollowerMover(WsfFollower* aFollowerMoverPtr) { mFollowerMoverPtr = aFollowerMoverPtr; }
55
58 void SetWaypointMover(WsfMover* aWaypointMoverPtr) { mWaypointMoverPtr = aWaypointMoverPtr; }
59
60 void SetType(MoverType aMoverType);
61
62 MoverType GetType() const { return mCurrentMoverType; }
63
64 WsfMover* Get(MoverType aMoverType) const;
65
66 WsfMover* GetCurrent() const;
67
68 // The following methods implement the navigation interface in the base class.
69
70 const WsfRoute* GetRoute() const override;
71
72 const WsfRoute* GetDefaultRoute() const override;
73
74 bool GoToAltitude(double aSimTime, double aAltitude, double aClimbDiveRate, bool aKeepRoute) override;
75
76 bool GoToClosestPoint(double aSimTime) override;
77
78 bool GoToLabel(double aSimTime, WsfStringId aLabelId) override;
79
80 bool GoToLocation(double aSimTime, double aLatitude, double aLongitude, double aAltitude) override;
81
82 bool GoToSpeed(double aSimTime, double aSpeed, double aLinearAccel, bool aKeepRoute) override;
83
84 bool TurnToHeading(double aSimTime, double aHeading, double aRadialAccel, WsfPath::TurnDirection aTurnDirection) override;
85
86 bool TurnToRelativeHeading(double aSimTime,
87 double aHeadingChange,
88 double aRadialAccel,
89 WsfPath::TurnDirection aTurnDirection) override;
90
91 bool UpdateRoute(double aSimTime, const WsfRoute& aRoute) override;
92
93private:
94 WsfHybridMover(const WsfHybridMover& aSrc);
95
96 MoverType mCurrentMoverType;
97 WsfFollower* mFollowerMoverPtr;
98 WsfMover* mWaypointMoverPtr;
99
100 bool mAutoSwitch;
101 bool mInitialized;
102};
103
104#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
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Definition WsfFollower.hpp:36
Definition WsfHybridMover.hpp:29
MoverType GetType() const
Definition WsfHybridMover.hpp:62
void SetWaypointMover(WsfMover *aWaypointMoverPtr)
Definition WsfHybridMover.hpp:58
void SetFollowerMover(WsfFollower *aFollowerMoverPtr)
Definition WsfHybridMover.hpp:54
WsfHybridMover()=delete
WsfHybridMover & operator=(const WsfHybridMover &)=delete
MoverType
Definition WsfHybridMover.hpp:32
@ cWAYPOINT
Definition WsfHybridMover.hpp:35
@ cINVALID
Definition WsfHybridMover.hpp:33
@ cFOLLOWER
Definition WsfHybridMover.hpp:34
Definition WsfMover.hpp:37
virtual bool GoToLabel(double aSimTime, WsfStringId aLabelId)
Definition WsfMover.cpp:414
bool ProcessInput(UtInput &aInput) override
Definition WsfMover.cpp:138
virtual bool TurnToHeading(double aSimTime, double aHeading, double aRadialAccel, WsfPath::TurnDirection aTurnDirection)
Definition WsfMover.cpp:454
bool Initialize(double aSimTime) override
Definition WsfMover.cpp:108
virtual WsfSpatialDomain GetSpatialDomain() const
Definition WsfMover.cpp:339
virtual bool GoToAltitude(double aSimTime, double aAltitude, double aClimbDiveRate, bool aKeepRoute)
Definition WsfMover.cpp:383
virtual const WsfRoute * GetDefaultRoute() const
Definition WsfMover.cpp:370
WsfMover * Clone() const override=0
virtual bool GoToSpeed(double aSimTime, double aSpeed, double aLinearAccel, bool aKeepRoute)
Definition WsfMover.cpp:441
virtual bool GoToClosestPoint(double aSimTime)
Definition WsfMover.cpp:403
WsfMover()=delete
virtual const WsfRoute * GetRoute() const
Definition WsfMover.cpp:348
virtual bool GoToLocation(double aSimTime, double aLatitude, double aLongitude, double aAltitude)
Definition WsfMover.cpp:428
virtual bool TurnToRelativeHeading(double aSimTime, double aHeadingChange, double aRadialAccel, WsfPath::TurnDirection aTurnDirection)
Definition WsfMover.cpp:467
void Update(double aSimTime) override
Definition WsfMover.cpp:310
virtual bool UpdateRoute(double aSimTime, const WsfRoute &aRoute)
Definition WsfMover.cpp:492
void SetType(WsfStringId aType)
Definition WsfObject.cpp:172
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
Definition WsfWaypointMover.hpp:37
TurnDirection
Turn direction for TurnToHeading and TurnToRelativeHeading.
Definition WsfPath.hpp:88
Copyrights Multiple, All Rights Reserved