public void TestPositionProperty() { PacketCesiumWriter packet = m_writer.OpenPacket(m_outputStream); PositionCesiumWriter position = packet.OpenPositionProperty(); Assert.IsNotNull(position); Assert.AreEqual("{\"position\":", m_stringWriter.ToString()); }
/// <summary> /// Writes the point to its <see cref="CzmlDocument"/>. /// </summary> public override void Write() { using (PacketCesiumWriter packetWriter = m_document.CesiumStreamWriter.OpenPacket(m_document.CesiumOutputStream)) { packetWriter.WriteId(Guid.NewGuid().ToString()); PointShape point = (PointShape)m_shape; using (PositionCesiumWriter position = packetWriter.OpenPositionProperty()) { position.WriteCartographicRadians(point.Position); } using (PointCesiumWriter pointWriter = packetWriter.OpenPointProperty()) { pointWriter.WriteColorProperty(m_color); } } }
/// <inheritdoc /> protected override void Write() { using (PositionCesiumWriter position = PacketWriter.OpenPositionProperty()) { position.WriteCartographicRadians(m_position); } if (m_extrude) { List <Cartographic> positions = new List <Cartographic>(); positions.Add(m_position); positions.Add(new Cartographic(m_position.Longitude, m_position.Latitude, 0.0)); using (PositionListCesiumWriter polyline = PacketWriter.OpenVertexPositionsProperty()) { polyline.WriteCartographicRadians(positions); } } }
/// <summary> /// Writes each point to its <see cref="CzmlDocument"/> as a separate packet. /// </summary> private void WritePacket(int index) { using (PacketCesiumWriter packetWriter = m_document.CesiumStreamWriter.OpenPacket(m_document.CesiumOutputStream)) { packetWriter.WriteId(Guid.NewGuid().ToString()); MultiPointShape multipoint = (MultiPointShape)m_shape; using (PositionCesiumWriter position = packetWriter.OpenPositionProperty()) { position.WriteCartographicRadians(multipoint[index]); } using (PointCesiumWriter pointWriter = packetWriter.OpenPointProperty()) { pointWriter.WriteColorProperty(m_color); } } }
public void Sandbox() { JulianDate date = new JulianDate(2451545.0); using (StringWriter sw = new StringWriter()) { CesiumOutputStream output = new CesiumOutputStream(sw); output.PrettyFormatting = true; CesiumStreamWriter writer = new CesiumStreamWriter(); using (PacketCesiumWriter packet = writer.OpenPacket(output)) { packet.WriteId("MyID"); packet.WriteAvailability(date, date.AddDays(1.0)); using (PositionCesiumWriter position = packet.OpenPositionProperty()) using (CesiumIntervalListWriter <PositionCesiumWriter> intervalList = position.OpenMultipleIntervals()) { using (PositionCesiumWriter interval = intervalList.OpenInterval()) { interval.WriteInterval(new TimeInterval(date, date.AddDays(1.0))); interval.WriteCartesian(new Cartesian(1.0, 2.0, 3.0)); } using (PositionCesiumWriter interval = intervalList.OpenInterval(date.AddDays(1.0), date.AddDays(2.0))) { var dates = new List <JulianDate>(); var positions = new List <Cartographic>(); dates.Add(date.AddDays(1.0)); positions.Add(Cartographic.Zero); dates.Add(date.AddDays(1.5)); positions.Add(new Cartographic(1.0, 0.0, 0.0)); dates.Add(date.AddDays(2.0)); positions.Add(new Cartographic(0.0, 1.0, 0.0)); interval.WriteCartographicRadians(dates, positions); } } using (OrientationCesiumWriter orientation = packet.OpenOrientationProperty()) using (CesiumIntervalListWriter <OrientationCesiumWriter> intervalList = orientation.OpenMultipleIntervals()) { using (OrientationCesiumWriter interval = intervalList.OpenInterval()) { interval.WriteAxes("MyMadeUpAxes"); interval.WriteInterval(new TimeInterval(date, date.AddDays(1.0))); interval.WriteUnitQuaternion(new UnitQuaternion(1, 0, 0, 0)); } using (OrientationCesiumWriter interval = intervalList.OpenInterval()) { interval.WriteInterpolationAlgorithm(CesiumInterpolationAlgorithm.Linear); interval.WriteInterpolationDegree(1); var dates = new List <JulianDate>(); var orientations = new List <UnitQuaternion>(); dates.Add(date.AddDays(1.0)); orientations.Add(UnitQuaternion.Identity); dates.Add(date.AddDays(1.5)); orientations.Add(new UnitQuaternion(0.0, 1.0, 0.0, 0.0)); dates.Add(date.AddDays(2.0)); orientations.Add(new UnitQuaternion(0.0, 0.0, 1.0, 0.0)); interval.WriteUnitQuaternion(dates, orientations); } } } Console.WriteLine(sw.ToString()); } }