mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
Some extra error handling
This commit is contained in:
parent
ecb4b725c2
commit
30b6e1077b
@ -24,36 +24,42 @@ namespace NewHorizons.OrbitalPhysics
|
|||||||
none
|
none
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Vector3 GetPosition(ParameterizedAstroObject ao)
|
|
||||||
{
|
|
||||||
Vector3 pos = Vector3.zero;
|
|
||||||
if(ao.SemiMajorAxis != 0)
|
|
||||||
{
|
|
||||||
var crGravity = new CRGravity(GravityVolume.GRAVITATIONAL_CONSTANT, 1f, 100f);
|
|
||||||
var kepler = KeplerCoordinates.fromTrueAnomaly(ao.Eccentricity, ao.SemiMajorAxis, ao.Inclination, ao.ArgumentOfPeriapsis, ao.LongitudeOfAscendingNode, ao.TrueAnomaly);
|
|
||||||
pos = PacificEngine.OW_CommonResources.Geometry.Orbits.OrbitHelper.toCartesian(crGravity, 0f, kepler).Item1;
|
|
||||||
}
|
|
||||||
|
|
||||||
Logger.Log($"Position : {pos}");
|
|
||||||
return pos;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Tuple<Vector3, Vector3> GetCartesian(Gravity gravity, OrbitModule orbit)
|
public static Tuple<Vector3, Vector3> GetCartesian(Gravity gravity, OrbitModule orbit)
|
||||||
{
|
{
|
||||||
|
if (orbit.SemiMajorAxis == 0)
|
||||||
|
{
|
||||||
|
return Tuple.Create(Vector3.zero, Vector3.zero);
|
||||||
|
}
|
||||||
|
|
||||||
var crGravity = new CRGravity(GravityVolume.GRAVITATIONAL_CONSTANT, gravity.Exponent, gravity.Mass);
|
var crGravity = new CRGravity(GravityVolume.GRAVITATIONAL_CONSTANT, gravity.Exponent, gravity.Mass);
|
||||||
var kepler = KeplerCoordinates.fromTrueAnomaly(orbit.Eccentricity, orbit.SemiMajorAxis, orbit.Inclination, orbit.ArgumentOfPeriapsis, orbit.LongitudeOfAscendingNode, orbit.TrueAnomaly);
|
var kepler = KeplerCoordinates.fromTrueAnomaly(orbit.Eccentricity, orbit.SemiMajorAxis, orbit.Inclination, orbit.ArgumentOfPeriapsis, orbit.LongitudeOfAscendingNode, orbit.TrueAnomaly);
|
||||||
var cartesian = PacificEngine.OW_CommonResources.Geometry.Orbits.OrbitHelper.toCartesian(crGravity, 0f, kepler);
|
var cartesian = PacificEngine.OW_CommonResources.Geometry.Orbits.OrbitHelper.toCartesian(crGravity, 0f, kepler);
|
||||||
|
|
||||||
|
if (cartesian == null)
|
||||||
|
{
|
||||||
|
cartesian = Tuple.Create(Vector3.zero, Vector3.zero);
|
||||||
|
}
|
||||||
|
|
||||||
Logger.Log($"Position : {cartesian.Item1} Velocity : {cartesian.Item2}");
|
Logger.Log($"Position : {cartesian.Item1} Velocity : {cartesian.Item2}");
|
||||||
return cartesian;
|
return cartesian;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Tuple<Vector3, Vector3> GetCartesian(Gravity gravity, ParameterizedAstroObject ao)
|
public static Tuple<Vector3, Vector3> GetCartesian(Gravity gravity, ParameterizedAstroObject ao)
|
||||||
{
|
{
|
||||||
|
if (ao.SemiMajorAxis == 0)
|
||||||
|
{
|
||||||
|
return Tuple.Create(Vector3.zero, Vector3.zero);
|
||||||
|
}
|
||||||
|
|
||||||
var crGravity = new CRGravity(GravityVolume.GRAVITATIONAL_CONSTANT, gravity.Exponent, gravity.Mass);
|
var crGravity = new CRGravity(GravityVolume.GRAVITATIONAL_CONSTANT, gravity.Exponent, gravity.Mass);
|
||||||
var kepler = KeplerCoordinates.fromTrueAnomaly(ao.Eccentricity, ao.SemiMajorAxis, ao.Inclination, ao.ArgumentOfPeriapsis, ao.LongitudeOfAscendingNode, ao.TrueAnomaly);
|
var kepler = KeplerCoordinates.fromTrueAnomaly(ao.Eccentricity, ao.SemiMajorAxis, ao.Inclination, ao.ArgumentOfPeriapsis, ao.LongitudeOfAscendingNode, ao.TrueAnomaly);
|
||||||
var cartesian = PacificEngine.OW_CommonResources.Geometry.Orbits.OrbitHelper.toCartesian(crGravity, 0f, kepler);
|
var cartesian = PacificEngine.OW_CommonResources.Geometry.Orbits.OrbitHelper.toCartesian(crGravity, 0f, kepler);
|
||||||
|
|
||||||
|
if (cartesian == null)
|
||||||
|
{
|
||||||
|
cartesian = Tuple.Create(Vector3.zero, Vector3.zero);
|
||||||
|
}
|
||||||
|
|
||||||
Logger.Log($"Position : {cartesian.Item1} Velocity : {cartesian.Item2}");
|
Logger.Log($"Position : {cartesian.Item1} Velocity : {cartesian.Item2}");
|
||||||
return cartesian;
|
return cartesian;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user