WSF
WsfSixDOF_Integrator.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 2020 Infoscitex, a DCS 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#ifndef WSFSIXDOFINTEGRATOR_HPP
13#define WSFSIXDOFINTEGRATOR_HPP
14
15#include "wsf_six_dof_export.h"
16
17#include <cstdint>
18
19#include "UtVec3dX.hpp"
20
21namespace wsf
22{
23namespace six_dof
24{
25class KinematicState;
26class MassProperties;
27class Mover;
28
29// Integrator integrates the state of Objects.
30class WSF_SIX_DOF_EXPORT Integrator
31{
32public:
33 Integrator() = default;
34 ~Integrator() = default;
35 Integrator& operator=(const Integrator& other) = delete;
36
37 virtual void Update(int64_t aSimTime_nanosec, double aDeltaT_sec) const = 0;
38
39protected:
40 Integrator(const Integrator& other) = default;
41
42 virtual Mover* GetParentVehicle() const = 0;
43
44 // This is called to update fuel burn
45 virtual void UpdateFuelBurn(KinematicState& aState, int64_t aSimTime_nanosec, double aDeltaT_sec) const;
46
47 // This is called to propagate translation
48 virtual void PropagateTranslation(KinematicState& aState, const UtVec3dX& aBodyAccel_mps2, double aDeltaT_sec) const;
49
50 // This is called to propagate rotation
51 virtual void PropagateRotation(KinematicState& aState, UtVec3dX aRotationalAccel_rps2, double aDeltaT_sec) const;
52};
53} // namespace six_dof
54} // namespace wsf
55
56#endif
virtual void UpdateFuelBurn(KinematicState &aState, int64_t aSimTime_nanosec, double aDeltaT_sec) const
Definition WsfSixDOF_Integrator.cpp:20
virtual void PropagateTranslation(KinematicState &aState, const UtVec3dX &aBodyAccel_mps2, double aDeltaT_sec) const
Definition WsfSixDOF_Integrator.cpp:31
Integrator & operator=(const Integrator &other)=delete
virtual void PropagateRotation(KinematicState &aState, UtVec3dX aRotationalAccel_rps2, double aDeltaT_sec) const
Definition WsfSixDOF_Integrator.cpp:104
virtual Mover * GetParentVehicle() const =0
virtual void Update(int64_t aSimTime_nanosec, double aDeltaT_sec) const =0
Integrator(const Integrator &other)=default
Definition WsfSixDOF_KinematicState.hpp:34
Definition WsfSixDOF_MassProperties.hpp:29
This is a base class for detailed air movers. This umbrella can cover RB6 or PM6 models.
Definition WsfSixDOF_Mover.hpp:58
Definition WsfSA_Processor.hpp:35
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
Copyrights Multiple, All Rights Reserved