/// <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)); }
/// <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) }, }); }
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); }
/// <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"); } }