WSF
WsfMath3D_Mover.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 WSFMATH3D_MOVER_HPP
16#define WSFMATH3D_MOVER_HPP
17
18#include "wsf_export.h"
19
20class UtInput;
21#include "UtMath3D_Motion.hpp"
22#include "WsfPathGuidance.hpp"
23#include "WsfRouteMover.hpp"
24
39
41{
42public:
43 WsfMath3D_Mover() = delete;
44 WsfMath3D_Mover(WsfScenario& aScenario);
47 ~WsfMath3D_Mover() override;
48
49 WsfMover* Clone() const override;
50 bool Initialize(double aSimTime) override;
51 bool ProcessInput(UtInput& aInput) override;
52
54
55 UtMath3D_Motion& Motion() { return mMotion; }
56
57 // Base methods that must be implemented by this class,
58 // per the documentation provided by WsfRouteMover:
59 double TurnRadius(); // TODO
60 double TurnRadius(double aSpeed) override; // TODO
61 void SetGuidanceTo(const WsfWaypoint& aNextWaypoint) override;
62 void SetGuidanceFrom(const WsfWaypoint& aPreviousWaypoint) override;
63 void Pause(double aSimTime, double aUnpauseTime) override;
64 bool Unpause(double aSimTime, bool aInterrupt) override;
65 void ResetPosition(double aSimTime) override;
66 void AdvanceToNextWaypoint(double aSimTime, const WsfWaypoint& aTarget, const WsfWaypoint* aNextPointPtr) override;
67 void UpdatePosition(double aSimTime) override;
68 bool GoToAltitude(double aSimTime, double aAltitude, double aClimbDiveRate, bool aKeepRoute) override;
69 bool GoToSpeed(double aSimTime, double aSpeed, double aLinearAccel, bool aKeepRoute) override;
70 bool TurnToRelativeHeading(double aSimTime,
71 double aHeadingChange,
72 double aRadialAccel,
73 WsfPath::TurnDirection aTurnDirection) override;
74 bool TurnToHeading(double aSimTime, double aHeading, double aRadialAccel, WsfPath::TurnDirection aTurnDirection) override;
75
76protected:
77 void SetExternalMotionState();
78
79 // ========== BEGIN ATTRIBUTES =============
82 UtMath3D_Motion mMotion;
85};
86
87#endif
WsfSpatialDomain
A collection of enumerations and type definitions that are used across a number of components.
Definition WsfTypes.hpp:32
@ WSF_SPATIAL_DOMAIN_AIR
Cars, trucks, buildings, etc.
Definition WsfTypes.hpp:35
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
double mLocalUpdateTime
Definition WsfMath3D_Mover.hpp:84
UtMath3D_Motion mMotion
Definition WsfMath3D_Mover.hpp:82
WsfMath3D_Mover()=delete
WsfSpatialDomain GetSpatialDomain() const override
Definition WsfMath3D_Mover.hpp:53
WsfPathGuidance * mGuidancePtr
Definition WsfMath3D_Mover.hpp:83
double mTurnRadius
Definition WsfMath3D_Mover.hpp:80
UtMath3D_Motion & Motion()
Definition WsfMath3D_Mover.hpp:55
WsfMath3D_Mover & operator=(const WsfMath3D_Mover &)=delete
double mPrepauseVelocityNED[3]
Definition WsfMath3D_Mover.hpp:81
virtual bool TurnToHeading(double aSimTime, double aHeading, double aRadialAccel, WsfPath::TurnDirection aTurnDirection)
Definition WsfMover.cpp:454
virtual bool GoToAltitude(double aSimTime, double aAltitude, double aClimbDiveRate, bool aKeepRoute)
Definition WsfMover.cpp:383
WsfMover * Clone() const override=0
WsfMover()=delete
virtual void ResetPosition(double aSimTime)
Informs the mover to use the current platform state.
Definition WsfMover.hpp:94
virtual bool TurnToRelativeHeading(double aSimTime, double aHeadingChange, double aRadialAccel, WsfPath::TurnDirection aTurnDirection)
Definition WsfMover.cpp:467
virtual double TurnRadius(double atSpeed)
Definition WsfMover.hpp:274
Definition WsfPathGuidance.hpp:39
virtual bool Unpause(double aSimTime, bool aInterrupt)
Definition WsfRouteMover.cpp:1451
bool ProcessInput(UtInput &aInput) override
Definition WsfRouteMover.cpp:308
bool GoToSpeed(double aSimTime, double aSpeed, double aLinearAccel, bool aKeepRoute) override
Definition WsfRouteMover.cpp:557
WsfRouteMover()=delete
virtual void UpdatePosition(double aSimTime)=0
virtual void SetGuidanceFrom(const WsfWaypoint &aPreviousWaypoint)=0
virtual void AdvanceToNextWaypoint(double aSimTime, const WsfWaypoint &aTarget, const WsfWaypoint *aNextPointPtr)=0
virtual void SetGuidanceTo(const WsfWaypoint &aNextWaypoint)=0
virtual void Pause(double aSimTime, double aUnpauseTime)=0
Sets the mover to a paused state.
bool Initialize(double aSimTime) override
Definition WsfRouteMover.cpp:136
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
Definition WsfWaypoint.hpp:57
TurnDirection
Turn direction for TurnToHeading and TurnToRelativeHeading.
Definition WsfPath.hpp:88
Copyrights Multiple, All Rights Reserved