7#include "SpacecraftPosition.h"
16#include "EndianSwapper.h"
18#include "IException.h"
22#include "NaifStatus.h"
52 ltState.isObserverTargetSwapped()) {
160 SpiceDouble state[6], lt;
162 const SpiceInt ssbCode(0);
169 SpiceDouble ssbObs[6], ssbObs_lt;
172 "J2000",
"NONE", ssbObs, dummy, ssbObs_lt);
176 SpiceDouble ssbTarg[6], ssbTarg_lt;
178 "J2000",
"NONE", ssbTarg, dummy, ssbTarg_lt);
181 (void) vsubg_c(ssbTarg, ssbObs, 6, state);
Distance measurement, usually in meters.
double kilometers() const
Get the distance in kilometers.
Provides interface to user configurable Light Time correction feature.
bool isLightTimeToSurfaceCorrected() const
Returns state of light time from surface to center body correction.
QString getAberrationCorrection() const
Returns the value of the current stellar aberration state.
void setAberrationCorrection(const QString &correction)
Sets the aberration correction directly.
bool isLightTimeCorrected() const
Is light time to target corrected?
LightTimeCorrectionState m_abcorr
Light time correction state.
const LightTimeCorrectionState & getLightTimeState() const
Return the state of light time correction parameters.
virtual void SetAberrationCorrection(const QString &correction)
Set aberration correction value for determining positions.
double getRadiusLightTime() const
Returns the time it takes for light to travel the radius of the target.
virtual void SetEphemerisTimeSpice()
Determine accurate position of target w.r.t.
SpacecraftPosition(int targetCode, int observerCode, const LightTimeCorrectionState <State=LightTimeCorrectionState(), const Distance &radius=Distance(0.0, Distance::Meters))
constructor for swapping observer/target parameters
static double getDistanceLightTime(const Distance &distance)
Returns the time it takes for light to travel a given distance.
Distance m_radius
Radius of target.
virtual QString GetAberrationCorrection() const
Returns the stellr aberration correction applied.
Obtain SPICE position information for a body.
virtual void SetEphemerisTimeSpice()
This is a protected method that is called by SetEphemerisTime() when Source type is Spice.
void setLightTime(const double &lightTime)
Inheritors can set the light time if indicated.
void setStateVector(const double state[6], const bool &hasVelocity)
Sets the state of target relative to observer.
int getTargetCode() const
Returns target code.
double getAdjustedEphemerisTime() const
Returns adjusted ephemeris time.
int getObserverCode() const
Returns observer code.
void computeStateVector(double et, int target, int observer, const QString &refFrame, const QString &abcorr, double state[6], bool &hasVelocity, double &lightTime) const
Computes the state vector of the target w.r.t observer.
virtual void SetAberrationCorrection(const QString &correction)
Set the aberration correction (light time)
This is free and unencumbered software released into the public domain.
Namespace for the standard library.