12#ifndef WSFGEOPOINT_HPP
13#define WSFGEOPOINT_HPP
15#include "wsf_export.h"
18#include "UtEntity.hpp"
20#include "UtMemory.hpp"
50 void GetLocationWCS(
double aLocationWCS[3])
const;
52 double GetDistanceFrom(
double aLocationWCS[3])
const;
54 double GetDistanceFrom(
const WsfGeoPoint& aRefPoint)
const;
58 void GetLocationECI(
const UtCalendar& aTime,
double aLocationECI[3])
const;
60 double GetLat()
const;
62 double GetLon()
const;
64 double GetAlt()
const;
66 void GetLocationLLA(
double& aLat,
double& aLon,
double& aAlt)
const;
68 void SetLocationLLA(
double aLat,
double aLon,
double aAlt);
70 void AddOffset(
double aHeading,
const double aOffset[3]);
72 void AddOffsetNED(
const double aOffsetNED[3]);
74 void Extrapolate(
double aHeading,
double aDistance);
76 void SetAltitudeMSL(
double aAltitude);
78 double TrueBearingTo(
const WsfGeoPoint& aRhs)
const;
80 double GroundRangeTo(
const WsfGeoPoint& aRhs)
const;
82 double GetApparentTime(
const UtCalendar& aEpoch)
const;
84 double SlantRangeTo(
const WsfGeoPoint& aRhs,
const bool aUseSpherical =
true)
const;
90 aAr& mRefPointWCS[0] & mRefPointWCS[1] & mRefPointWCS[2] & mRefLat& mRefLon& mRefAlt;
94 UtEntity& GetReferenceEntity()
const;
95 void UpdateLLA_Location()
const;
96 void UpdateWCS_Location()
const;
97 const ut::CentralBody& GetCentralBody()
const;
99 mutable UtVec3d mRefPointWCS;
100 mutable double mRefLat{0.0};
101 mutable double mRefLon{0.0};
102 mutable double mRefAlt{0.0};
103 mutable bool mWCS_LocationValid{
false};
104 mutable bool mLLA_LocationValid{
true};
106 mutable std::unique_ptr<UtEntity> mEntityPtr{
nullptr};
107 mutable std::unique_ptr<ut::CentralBody> mCentralBodyPtr{
nullptr};
#define WSF_DECLARE_COMPONENT_ROLE_TYPE(TYPE, ROLE)
Definition WsfComponentRoles.hpp:44
@ cWSF_COMPONENT_GEOPOINT
A 'geopoint' component (WsfGeoPoint).
Definition WsfComponentRoles.hpp:111
pointPtr SetLocationWCS(finalPos.GetData())
WsfSimpleComponentT< WsfPlatformComponent > WsfSimplePlatformComponent
Definition WsfSimpleComponent.hpp:126
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Definition WsfComponent.hpp:39
virtual bool ProcessInput(UtInput &aInput)
Definition WsfComponent.cpp:100
Definition WsfGeoPoint.hpp:29
void * QueryInterface(int aRole) override
Definition WsfGeoPoint.hpp:43
~WsfGeoPoint() override=default
WsfGeoPoint()
Definition WsfGeoPoint.cpp:68
virtual WsfGeoPoint * Clone() const
Definition WsfGeoPoint.hpp:46
WsfComponent * CloneComponent() const override
Definition WsfGeoPoint.hpp:42
static void RegisterComponentFactory(WsfScenario &aScenario)
Definition WsfGeoPoint.cpp:62
void Serialize(AR &aAr)
For XIO (de)serialization.
Definition WsfGeoPoint.hpp:88
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
WsfSimpleComponentT & operator=(const WsfSimpleComponentT &aRhs)
Definition WsfSimpleComponent.hpp:84
int mRoles[2]
Definition WsfSimpleComponent.hpp:116