protected override ExpressionResult GetOrbitNodeProperty(IOrbitNode node) { switch (this._elementType) { case AdvancedOrbitalElement.AngularMomentum: return(new ExpressionResult { VectorValue = node.Orbit.AngularMomentum }); case AdvancedOrbitalElement.Apoapse: return(new ExpressionResult { VectorValue = node.Orbit.Apoapsis }); case AdvancedOrbitalElement.Periapse: return(new ExpressionResult { VectorValue = node.Orbit.Periapsis }); case AdvancedOrbitalElement.OrbitalPlaneNormal: return(new ExpressionResult { VectorValue = node.Orbit.OrbitalPlaneNormal }); case AdvancedOrbitalElement.EccentricityVector: return(new ExpressionResult { VectorValue = node.Orbit.EccentricityVector }); case AdvancedOrbitalElement.EccentricAnomaly: return(new ExpressionResult { NumberValue = node.Orbit.EccentricAnomaly / Math.PI * 180 }); case AdvancedOrbitalElement.MeanAnomaly: return(new ExpressionResult { NumberValue = node.Orbit.MeanAnomaly / Math.PI * 180 }); case AdvancedOrbitalElement.MeanMotion: return(new ExpressionResult { NumberValue = node.Orbit.MeanMotion / Math.PI * 180 }); default: Debug.LogWarning("Unrecognized orbital element: " + this._element); return(new ExpressionResult { NumberValue = 0 }); } }
protected override ExpressionResult GetOrbitNodeProperty(IOrbitNode node) { switch (this._elementType) { case OrbitalElement.RightAscension: return(new ExpressionResult { NumberValue = node.Orbit.RightAscensionOfAscendingNode / Math.PI * 180 }); case OrbitalElement.Inclination: return(new ExpressionResult { NumberValue = node.Orbit.Inclination / Math.PI * 180 }); case OrbitalElement.ArgumentOfPeriapsis: return(new ExpressionResult { NumberValue = node.Orbit.PeriapsisAngle / Math.PI * 180 }); case OrbitalElement.TrueAnomaly: return(new ExpressionResult { NumberValue = node.Orbit.TrueAnomaly / Math.PI * 180 }); case OrbitalElement.SemiMajorAxis: return(new ExpressionResult { NumberValue = node.Orbit.SemiMajorAxis }); case OrbitalElement.Eccentricity: return(new ExpressionResult { NumberValue = node.Orbit.Eccentricity }); case OrbitalElement.Period: return(new ExpressionResult { NumberValue = node.Orbit.Period }); default: Debug.Log("Unrecognized orbital element: "); return(new ExpressionResult { NumberValue = 0 }); } }
protected override ExpressionResult GetOrbitNodeProperty(IOrbitNode node) { switch (this._vectorType) { case CartesianStateVector.Position: return(new ExpressionResult { VectorValue = node.Orbit.Position }); case CartesianStateVector.Velocity: return(new ExpressionResult { VectorValue = node.Orbit.Velocity }); default: Debug.LogWarning( $"Unrecognized cartesian state vector: {this._vector}" ); return(new ExpressionResult { VectorValue = new Vector3d(0, 0, 0) }); } }
protected abstract ExpressionResult GetOrbitNodeProperty(IOrbitNode node);