예제 #1
0
        /// <summary>
        /// Writes the interpolation algorithm to use to interpolate the sampled data in this interval.
        /// </summary>
        /// <param name="interpolationAlgorithm">The interpolation algorithm.</param>
        public void WriteInterpolationAlgorithm(CesiumInterpolationAlgorithm interpolationAlgorithm)
        {
            OpenIntervalIfNecessary();

            Output.WritePropertyName("interpolationAlgorithm");
            Output.WriteValue(CesiumFormattingHelper.InterpolationAlgorithmToString(interpolationAlgorithm));
        }
예제 #2
0
        /// <summary>
        /// Converts a <see cref="CesiumInterpolationAlgorithm"/> to the corresponding string in a
        /// CZML stream.
        /// </summary>
        /// <param name="interpolationAlgorithm">The interpolation algorithm to convert.</param>
        /// <returns>The string representing the specified <see cref="CesiumInterpolationAlgorithm"/>.</returns>
        public static string InterpolationAlgorithmToString(CesiumInterpolationAlgorithm interpolationAlgorithm)
        {
            switch (interpolationAlgorithm)
            {
            case CesiumInterpolationAlgorithm.Linear:
                return("LINEAR");

            case CesiumInterpolationAlgorithm.Lagrange:
                return("LAGRANGE");

            case CesiumInterpolationAlgorithm.Hermite:
                return("HERMITE");

            default:
                throw new ArgumentException(CesiumLocalization.UnknownEnumerationValue, "interpolationAlgorithm");
            }
        }
        public void InterpolationAlgorithmValueWritesInterpolationAlgorithmProperty()
        {
            const string expectedPropertyName = "foo";
            const CesiumInterpolationAlgorithm expectedInterpolationAlgorithm = CesiumInterpolationAlgorithm.Hermite;

            using (Packet)
                using (var propertyWriter = CreatePropertyWriter(expectedPropertyName))
                {
                    propertyWriter.Open(OutputStream);
                    using (TDerived intervalWriter = propertyWriter.OpenInterval())
                    {
                        intervalWriter.WriteInterpolationAlgorithm(expectedInterpolationAlgorithm);
                    }
                }

            AssertExpectedJson(expectedPropertyName, new Dictionary <string, object>
            {
                { "interpolationAlgorithm", CesiumFormattingHelper.InterpolationAlgorithmToString(expectedInterpolationAlgorithm) },
            });
        }
예제 #4
0
        public void TestCompleteExample()
        {
            var date = new JulianDate(2451545.0);

            const string id           = "MyID";
            var          availability = new TimeInterval(date, date.AddDays(2.0));

            var interval1 = new TimeInterval(date, date.AddDays(1.0));

            var interval1Position    = new Cartesian(1.0, 2.0, 3.0);
            var interval1Orientation = new UnitQuaternion(1, 0, 0, 0);

            var interval2 = new TimeInterval(date.AddDays(1.0), date.AddDays(2.0));

            var interval2SampleDates = new List <JulianDate>
            {
                date.AddDays(1.0),
                date.AddDays(1.5),
                date.AddDays(2.0)
            };

            var interval2SamplePositions = new List <Cartographic>
            {
                Cartographic.Zero,
                new Cartographic(1.0, 0.0, 0.0),
                new Cartographic(0.0, 1.0, 0.0)
            };
            var interval2SampleOrientations = new List <UnitQuaternion>
            {
                UnitQuaternion.Identity,
                new UnitQuaternion(0.0, 1.0, 0.0, 0.0),
                new UnitQuaternion(0.0, 0.0, 1.0, 0.0)
            };

            const CesiumInterpolationAlgorithm orientationInterpolationAlgorithm = CesiumInterpolationAlgorithm.Linear;
            const int orientationInterpolationDegree = 1;

            var outputStream = new CesiumOutputStream(StringWriter)
            {
                PrettyFormatting = true
            };
            var writer = new CesiumStreamWriter();

            using (var packet = writer.OpenPacket(outputStream))
            {
                packet.WriteId(id);
                packet.WriteAvailability(availability);

                using (var positionWriter = packet.OpenPositionProperty())
                    using (var intervalListWriter = positionWriter.OpenMultipleIntervals())
                    {
                        using (var interval = intervalListWriter.OpenInterval())
                        {
                            interval.WriteInterval(interval1);
                            interval.WriteCartesian(interval1Position);
                        }

                        using (var interval = intervalListWriter.OpenInterval(interval2.Start, interval2.Stop))
                        {
                            interval.WriteCartographicRadians(interval2SampleDates, interval2SamplePositions);
                        }
                    }

                using (var orientationWriter = packet.OpenOrientationProperty())
                    using (var intervalListWriter = orientationWriter.OpenMultipleIntervals())
                    {
                        using (var interval = intervalListWriter.OpenInterval())
                        {
                            interval.WriteInterval(interval1);
                            interval.WriteUnitQuaternion(interval1Orientation);
                        }

                        using (var interval = intervalListWriter.OpenInterval(interval2.Start, interval2.Stop))
                        {
                            interval.WriteInterpolationAlgorithm(orientationInterpolationAlgorithm);
                            interval.WriteInterpolationDegree(orientationInterpolationDegree);

                            interval.WriteUnitQuaternion(interval2SampleDates, interval2SampleOrientations);
                        }
                    }
            }

            Console.WriteLine(StringWriter.ToString());
        }
 /// <inheritdoc />
 public void WriteInterpolationAlgorithm(CesiumInterpolationAlgorithm interpolationAlgorithm)
 {
     m_parent.WriteInterpolationAlgorithm(interpolationAlgorithm);
 }
        public void TestInterpolationAlgorithmToString(CesiumInterpolationAlgorithm value)
        {
            string s = CesiumFormattingHelper.InterpolationAlgorithmToString(value);

            Assert.IsNotNull(s);
        }
예제 #7
0
        /// <summary>
        /// Converts a <see cref="CesiumInterpolationAlgorithm"/> to the corresponding string in a
        /// CZML stream.
        /// </summary>
        /// <param name="interpolationAlgorithm">The interpolation algorithm to convert.</param>
        /// <returns>The string representing the specified <see cref="CesiumInterpolationAlgorithm"/>.</returns>
        public static string InterpolationAlgorithmToString(CesiumInterpolationAlgorithm interpolationAlgorithm)
        {
            switch (interpolationAlgorithm)
            {
                case CesiumInterpolationAlgorithm.Linear:
                    return "LINEAR";

                case CesiumInterpolationAlgorithm.Lagrange:
                    return "LAGRANGE";

                case CesiumInterpolationAlgorithm.Hermite:
                    return "HERMITE";

                default:
                    throw new ArgumentException(CesiumLocalization.UnknownEnumerationValue, "interpolationAlgorithm");
            }
        }