Navigation
API > API/Plugins > API/Plugins/CelestialVault
Units Conventions Distances: Distances are expressed in Astronomical units - Specified by the "AU" mention in the function name
Time: Local/UTC Time: All function parameters contains either the "Local" or "UTC" prefix in their name to specify if they expect a Local or UTC Time.
Most Celestial functions are expecting an absolute time expressed using a Julian Date. When the name "JulianDay" is used, it means the Julian Date when t=0 (midnight, beginning of the day) By definition, a Julian Date is finishing by 0.5 at Midnight.
Angles: GMST and GAST angle are expressed in Degrees Some Celestial data involve ArcSeconds (1 Degree = 3600 Arcseconds) - Conversion functions are provided
| Name | UCelestialMaths |
| Type | class |
| Header File | /Engine/Plugins/Experimental/CelestialVault/Source/CelestialVault/Public/CelestialMaths.h |
| Include Path | #include "CelestialMaths.h" |
Syntax
UCLASS ()
class UCelestialMaths : public UBlueprintFunctionLibrary
Inheritance Hierarchy
- UObjectBase → UObjectBaseUtility → UObject → UBlueprintFunctionLibrary → UCelestialMaths
Constants
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| AstronomicalUnitsMeters | double | CelestialMaths.h | |
| NewMoonReferenceJulianDate | double | CelestialMaths.h | |
| SpeedOfLightMetersPerSeconds | double | CelestialMaths.h | |
| SynodicMonthAverage | double | CelestialMaths.h | |
| VSOPToJ2000 | FMatrix | Static const Members. | CelestialMaths.h |
Functions
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static double ArcsecondsToDegrees
(
double Arcseconds |
Convert Arcseconds to Degrees1 Degree = 3600 Arcseconds | CelestialMaths.h |
|
static double ArcsecondsToRadians
(
double Arcseconds |
Convert Arcseconds to Radians2 PI Rad = 360 Degrees = 360 * 3600 Arcseconds | CelestialMaths.h |
|
static double AstronomicalUnitsToMeters
(
double AU |
Convert Astronomical Unit (UA) to meters1 AU = 149 597 870 700 m | CelestialMaths.h |
|
static FLinearColor BVtoLinearColor
(
float BV |
Returns the RGB normalized components [0..1] from the Color Index (B-V) Value | CelestialMaths.h |
|
static FString Conv_DeclinationToString
(
const double& DecDegrees |
Declination String Builder | CelestialMaths.h |
|
static FString Conv_DMSToString
(
bool Sign, |
DMS String Builder | CelestialMaths.h |
|
static FString Conv_HMSToString
(
int32 Hours, |
HMS String Builder | CelestialMaths.h |
|
static FString Conv_PlanetaryBodyInfoToString
(
const FPlanetaryBodyInfo& PlanetaryBodyInfo |
PlanetaryBodyInfo String Builder | CelestialMaths.h |
|
static FString Conv_RightAscensionToString
(
const double& RightAscensionHours |
Right Ascension String Builder | CelestialMaths.h |
|
| StarInfo String Builder | CelestialMaths.h |
|
|
| SunInfo ToString String Builder | CelestialMaths.h |
|
|
static double DateTimeToGreenwichMeanSiderealTime
(
FDateTime UTCDateTime |
Return the Greenwich Mean Sidereal Time (GMST) for a specific DateTime, in Degrees | CelestialMaths.h |
|
static double DaysToSeconds
(
double Days |
CelestialMaths.h |
|
|
static double DegreesToArcseconds
(
double Degrees |
Convert Degrees to Arcseconds1 Degree = 3600 Arcseconds | CelestialMaths.h |
|
static void DegreesToDMS
(
double DecimalDegrees, |
Convert decimal degrees to Degrees, Minutes, Seconds, with the appropriate Sign (True if Positive) | CelestialMaths.h |
|
static void DegreesToHMS
(
double DecimalDegrees, |
Convert Decimal degrees to Hours, Minutes, Seconds ( One Hour equals 15 degrees) | CelestialMaths.h |
|
static double EquationOfTheEquinoxes
(
double JulianDate |
Return the nutation in right ascension ( aka the equation of the equinoxes) in Degrees | CelestialMaths.h |
|
static int32 FloorForJulianDate
(
double JulianDate |
Because the Dates are expressed around Jan 1, 4713 BC, we need a special Floor function to have the right years continuity | CelestialMaths.h | |
static FVector GeodeticLatLonToECEFXYZAU
(
double Latitude, |
Convert Geodetic Lat Lon to Geocentric XYZ position vector in ECEF coordinates, for the WGS84 Ellipsoid. | CelestialMaths.h |
|
static void GetBodyCelestialCoordinatesAU
(
double JulianDate, |
Return the location of a Planetary Body relative to the Earth, expressed in Celestial Coordinates (RA, DEC, Distance) It requires the Observer location on Earth for more precise computations This function also returns the distance to the Sun, as it can help for Magnitude computations | CelestialMaths.h |
|
static FVector GetBodyLocation_FK5J2000_AU
(
FPlanetaryBodyInputData PlanetaryBody, |
Returns the location of a specific Planetary body, in the FK5 J2000 Coordinate System | CelestialMaths.h |
|
static FVector [GetBodyLocation_FK5J2000AU_Relativistic](API\Plugins\CelestialVault\UCelestialMaths\GetBodyLocation-)
(
FVector ObserverBodyFK5J2000LocationAU, |
Returns the location of a specific Planetary body, in the FK5 J2000 Coordinate System | CelestialMaths.h |
|
static double GetEarthRotationAngle
(
double JulianDate |
Retrurn the Earth Rotation Angle (In Degrees) as measured by GMST (Greenwich Mean Sidereal Time) | CelestialMaths.h |
|
static double GetIlluminationPercentage
(
double NormalizedAge |
Return the illumination factor (0..1) of a Body, considering his normalized age and the crescent effects | CelestialMaths.h |
|
static double GetLeapSeconds
(
double JulianDate |
Returns the Leap Seconds for a specific Julian Date | CelestialMaths.h |
|
static double GetMoonNormalizedAgeSimple
(
double JulianDate |
Returns the Moon Phase for a specific Date | CelestialMaths.h |
|
static FVector GetObserverGeocentricLocationAU
(
double Latitude, |
Return the Geocentric position of an observer located at the Earth surface, considering the rotation at this specific JulianDate, using the Greenwich Apparent Didereal Time. | CelestialMaths.h |
|
static double GetPlanetaryBodyMagnitude
(
FPlanetaryBodyInputData PlanetaryBody, |
Return the Magnitude of a Planetary Body as seen from the Earth | CelestialMaths.h |
|
static FTransform GetPlanetCenterTransform
(
double Latitude, |
Return the Transformation to apply to a WGS84 Ellipsoid model so that its location in Lat,long,Altitude is tangent to the Origin It's used to locate the Rotating Celestial Vault for a specific UE Origin | CelestialMaths.h |
|
static FString GetPreciseVectorString
(
FVector Vector, |
Returns a String displaying a vector with a large number of digits | CelestialMaths.h |
|
static double GetSpeedOfLight() |
Returns the Speed of Light 299 792 458 (m/s) | CelestialMaths.h |
|
static FSunInfo GetSunInformation
(
double JulianDate, |
Compute all Sun Properties for a speficic JulianDate | CelestialMaths.h |
|
static double InternationalAtomicTimeToTerrestrialTime
(
double TAI |
Returns the Terrestrial Time in SI secondsTT = TAI + 32.184 seconds; | CelestialMaths.h |
|
static double JulianDateToGreenwichApparentSiderealTime
(
double JulianDate |
Return the Greenwich Apparent Sidereal Time (GAST) for a specific UTC DateTime, in Degrees. | CelestialMaths.h |
|
static double JulianDateToGreenwichMeanSiderealTime
(
double JulianDate |
Return the Greenwich Mean Sidereal Time (GMST) for a specific Julian Date, In Degrees | CelestialMaths.h |
|
static double JulianDateToInternationalAtomicTime
(
double JulianDate |
Returns the International Atomic Time in SI seconds | CelestialMaths.h |
|
static double JulianDateToJulianCenturies
(
double JulianDate |
Returns the Julien CenturiesJulian Centuries = (JulianDate - 2451545.0) / 36525.0 | CelestialMaths.h |
|
static FDateTime JulianDateToUTCDateTime
(
double JulianDate |
Return the UTC Time for a specific Julian Date | CelestialMaths.h |
|
static double LocalSideralTime
(
double LongitudeDegrees, |
Return the Sidereal Time for a specific Longitude and GMST | CelestialMaths.h |
|
| Return the UTC for a specific Local Time, using the TimeZone and Daylight Saving Information | CelestialMaths.h |
|
|
static double MetersToAstronomicalUnits
(
double Meters |
Convert meters to Astronomical Unit (UA)1 AU = 149 597 870 700 m | CelestialMaths.h |
|
static double ModPositive
(
double Value, |
Special Mod function that makes sure to always return positive values | CelestialMaths.h |
|
static void Nutation2000BTruncated
(
double JulianDate, |
Approximation of the IAU2000A/B nutation model used in the Equation Of The Equinoxes, accurate enough for VSOP87 computations | CelestialMaths.h |
|
static FVector RADECToXYZ_RH
(
double RADegrees, |
Convert Polar Coordinates to Cartesian Coordinates, using a Righ-Handed Frame | CelestialMaths.h |
|
static double SecondsToDay
(
double Seconds |
CelestialMaths.h |
|
|
static double UTCDateTimeToJulianDate
(
FDateTime UTCDateTime |
Return the Julian Date for a specific UTC Time | CelestialMaths.h |
|
| Return the UTC for a specific Time, using the TimeZone and Daylight Saving Information | CelestialMaths.h |
|
|
static void XYZToRADEC_RH
(
FVector XYZ, |
Convert Cartesian Coordinates to Polar Coordinates, using a Righ-Handed Frame | CelestialMaths.h |
|