15#ifndef WSFTSPI_MOVER_HPP
16#define WSFTSPI_MOVER_HPP
18#include "wsf_export.h"
24#include "UtOptional.hpp"
25#include "UtVec3dX.hpp"
53 void Update(
double aSimTime)
override;
67 void OpenFile(
const std::string& aFileName);
71 std::string
FileName()
const {
return mFileName; }
73 bool SetFileName(
const std::string& aName);
131 double aTSPI_StartTime,
136 bool GetLocationXYZ(
double aTime,
double aLocXYZ[3])
const override;
138 bool GetVelocityXYZ(
double aTime,
double aVelXYZ[3])
const override;
143 Point(
double aTimeStamp,
const double aLocXYZ[3]);
157 const double aLocationWCS[3],
158 const double aVelocityWCS[3],
160 WsfDraw* aDrawPtr)
const override;
167 void TranslateLocation();
169 bool ProcessInputRelocateAndRotate(UtInput& aInput);
171 static UtDCM ComputeTranslationTransform(
const UtVec3dX& aAnchor,
double aTargetLat,
double aTargetLon);
173 static UtDCM ComputeRotationTransform(
const UtVec3dX& aAnchor,
const UtVec3dX& aNonAnchor,
const PathMovement& aMovement);
175 static void TransformPoints(std::vector<Point>& aPoints,
const UtDCM& aTransform);
177 std::ifstream* mInputStreamPtr;
178 std::string mFileName;
183 bool mStartAtInitialTime;
184 bool mDeleteOnDestruct;
185 bool mIsExtrapolating;
188 double mTSPI_StartTime;
189 double mCurrentUpdateTime;
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_AIR
Cars, trucks, buildings, etc.
Definition WsfTypes.hpp:35
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Provides the capability to draw shapes into the WSF replay file.
Definition WsfDraw.hpp:35
EventDisposition
Definition WsfEvent.hpp:37
Definition WsfMover.hpp:286
bool ProcessInput(UtInput &aInput) override
Definition WsfMover.cpp:138
bool Initialize(double aSimTime) override
Definition WsfMover.cpp:108
virtual void TriggerExtrapolation()
Definition WsfMover.cpp:623
virtual bool IsStopped() const
Return whether the mover (and its attached platform) is stopped.
Definition WsfMover.cpp:551
WsfMover * Clone() const override=0
virtual KinematicModel * CreateKinematicModel(double aSimTime, WsfStringId aPlatformTypeId, const double aLocationWCS[3], const double aVelocityWCS[3], WsfMover *aMoverPtr, WsfDraw *aDrawPtr) const
Definition WsfMover.hpp:335
virtual bool IsExtrapolating() const
Definition WsfMover.cpp:576
virtual bool IsPaused() const
Definition WsfMover.cpp:561
void Update(double aSimTime) override
Definition WsfMover.cpp:310
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
EventDisposition Execute() override
Definition WsfTSPI_Mover.cpp:477
InitializeMoverEvent()
Definition WsfTSPI_Mover.cpp:463
Definition WsfTSPI_Mover.hpp:62
std::vector< Point > mPoints
Definition WsfTSPI_Mover.hpp:152
TSPI_Model(double aSimTime, double aStartTime, double aTSPI_StartTime, WsfStringId aModelTypeId, const WsfTSPI_Mover *aTSPI_MoverPtr, WsfDraw *aDrawPtr=nullptr)
Definition WsfTSPI_Mover.cpp:824
bool GetVelocityXYZ(double aTime, double aVelXYZ[3]) const override
Definition WsfTSPI_Mover.cpp:920
bool GetLocationXYZ(double aTime, double aLocXYZ[3]) const override
Definition WsfTSPI_Mover.cpp:891
void Add(const Point &aPoint)
Definition WsfTSPI_Mover.cpp:958
double mTSPI_StartTime
Definition WsfTSPI_Mover.hpp:151
void TranslateAndRotateToNewFile()
Definition WsfTSPI_Mover.cpp:264
EndPath
End of-path option.
Definition WsfTSPI_Mover.hpp:40
@ cEP_EXTRAPOLATE
Extrapolate at end-of-path.
Definition WsfTSPI_Mover.hpp:41
@ cEP_STOP
Stop at end-of-path.
Definition WsfTSPI_Mover.hpp:42
@ cEP_REMOVE
Remove the platform at end-of-path.
Definition WsfTSPI_Mover.hpp:43
void CloseFile()
Close the TSPI input file.
Definition WsfTSPI_Mover.cpp:759
void OpenFile(const std::string &aFileName)
Definition WsfTSPI_Mover.cpp:775
bool InitializeMover(double aSimTime)
Definition WsfTSPI_Mover.cpp:489
void SetStartAtInitialTime(bool aValue)
Definition WsfTSPI_Mover.hpp:74
std::string FileName() const
Definition WsfTSPI_Mover.hpp:71
void UpdateMover(double aSimTime)
Definition WsfTSPI_Mover.cpp:697
double TSPI_StartTime() const
Definition WsfTSPI_Mover.hpp:70
void SetDeleteOnDestruct(bool aValue)
Definition WsfTSPI_Mover.hpp:75
void NormalizeLatLonDeg(double &aLatitudeDeg, double &aLongitudeDeg)
Fix Latitude and Longitude within conventional limits.
Definition WsfTSPI_Mover.cpp:499
WsfSpatialDomain GetSpatialDomain() const override
Definition WsfTSPI_Mover.hpp:55
bool Fetch_TSPI()
Definition WsfTSPI_Mover.cpp:574
double SimStartTime() const
Definition WsfTSPI_Mover.hpp:69
A Time-Space-Position-Information (TSPI) class.
Definition WsfTSPI.hpp:34
Definition WsfTSPI_Mover.hpp:93
bool mTranslateIsNeeded
Definition WsfTSPI_Mover.hpp:95
ut::optional< double > mGC_AnchorHeadingRad
Definition WsfTSPI_Mover.hpp:98
ut::optional< double > mGreatCircleLat
Definition WsfTSPI_Mover.hpp:99
bool mTransformIsNeeded
Definition WsfTSPI_Mover.hpp:94
ut::optional< double > mGreatCircleLon
Definition WsfTSPI_Mover.hpp:100
bool mStartPointIsAnchor
Definition WsfTSPI_Mover.hpp:96
UtVec3dX mMovedFRDinXYZ
Definition WsfTSPI_Mover.hpp:89
UtVec3dX mOrigFRDinXYZ
Definition WsfTSPI_Mover.hpp:85
WsfTSPI mOrigTSPI
Definition WsfTSPI_Mover.hpp:83
WsfTSPI mMovedTSPI
Definition WsfTSPI_Mover.hpp:87
UtVec3dX mOrigLocWCS_SL
Definition WsfTSPI_Mover.hpp:84
Point(const WsfTSPI &aPoint)
Definition WsfTSPI_Mover.cpp:800
UtVec3dX mMovedLocWCS_SL
Definition WsfTSPI_Mover.hpp:88
Definition WsfTSPI_Mover.hpp:142
double mLocXYZ[3]
Definition WsfTSPI_Mover.hpp:145
double mVelXYZ[3]
Definition WsfTSPI_Mover.hpp:146
double mTimeStamp
Definition WsfTSPI_Mover.hpp:144
Point(double aTimeStamp, const double aLocXYZ[3])
Definition WsfTSPI_Mover.cpp:949