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
                });
            }
        }
Exemple #2
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)
                });
            }
        }
Exemple #4
0
 protected abstract ExpressionResult GetOrbitNodeProperty(IOrbitNode node);