public void MultipleCallsToNewPacketWithoutCloseThrowInvalidOperationException() { PacketCesiumWriter unused = m_writer.OpenPacket(m_outputStream); var exception = Assert.Throws <InvalidOperationException>(() => m_writer.OpenPacket(m_outputStream)); StringAssert.Contains("already opened", exception.Message); }
public void TestCesiumPropertyWriterSetUp() { StringWriter = new StringWriter(); OutputStream = new CesiumOutputStream(StringWriter); Writer = new CesiumStreamWriter(); Packet = Writer.OpenPacket(OutputStream); }
public void AvailabilityValueWritesAvailabilityProperty() { JulianDate start = new JulianDate(new GregorianDate(2012, 4, 2, 1, 2, 3)); JulianDate stop = new JulianDate(new GregorianDate(2012, 4, 3, 1, 2, 3)); m_output.WriteStartSequence(); using (PacketCesiumWriter packet = m_writer.OpenPacket(m_output)) { packet.WriteAvailability(start, stop); } using (PacketCesiumWriter packet = m_writer.OpenPacket(m_output)) { packet.WriteAvailability(new TimeInterval(start, stop)); } using (PacketCesiumWriter packet = m_writer.OpenPacket(m_output)) { var intervals = new List <TimeInterval>(); intervals.Add(new TimeInterval(start, stop)); intervals.Add(new TimeInterval(start.AddDays(2.0), stop.AddDays(2.0))); packet.WriteAvailability(intervals); } m_output.WriteEndSequence(); Assert.AreEqual("[{\"availability\":\"20120402T010203Z/20120403T010203Z\"}," + "{\"availability\":\"20120402T010203Z/20120403T010203Z\"}," + "{\"availability\":[\"20120402T010203Z/20120403T010203Z\",\"20120404T010203Z/20120405T010203Z\"]}]", m_sw.ToString()); }
public void DisposeClosesPacket() { using (PacketCesiumWriter packet = m_writer.OpenPacket(m_output)) { } Assert.AreEqual("{}", m_sw.ToString()); }
private void WritePacket(int index) { ShapePart part = simplifiedRings[index]; using (PacketCesiumWriter packetWriter = m_document.CesiumStreamWriter.OpenPacket(m_document.CesiumOutputStream)) { packetWriter.WriteId(Guid.NewGuid().ToString()); using (PolygonCesiumWriter polygonWriter = packetWriter.OpenPolygonProperty()) { using (MaterialCesiumWriter materialWriter = polygonWriter.OpenMaterialProperty()) { using (SolidColorMaterialCesiumWriter colorWriter = materialWriter.OpenSolidColorProperty()) { colorWriter.WriteColorProperty(m_color); } } } using (PositionListCesiumWriter positionWriter = packetWriter.OpenVertexPositionsProperty()) { PolygonShape polygon = (PolygonShape)m_shape; List <Cartographic> positions = new List <Cartographic>(); for (int i = 0; i < part.Count; i++) { positions.Add(part[i]); } positionWriter.WriteCartographicRadians(positions); } } }
/// <summary> /// Writes the polyline to its <see cref="CzmlDocument"/>. /// </summary> public override void Write() { PolylineShape polyline = (PolylineShape)m_shape; for (int i = 0; i < polyline.Count; i++) { ShapePart part = polyline[i]; using (PacketCesiumWriter packetWriter = m_document.CesiumStreamWriter.OpenPacket(m_document.CesiumOutputStream)) { packetWriter.WriteId(Guid.NewGuid().ToString()); using (PolylineCesiumWriter polylineWriter = packetWriter.OpenPolylineProperty()) { using (var materialWriter = polylineWriter.OpenMaterialProperty()) using (var colorWriter = materialWriter.OpenSolidColorProperty()) { colorWriter.WriteColorProperty(m_color); } List <Cartographic> positions = new List <Cartographic>(); for (int x = 0; x < part.Count; x++) { positions.Add(part[x]); } polylineWriter.WritePositionsPropertyCartographicRadians(positions); } } } }
public void NewPacketWritesObjectLiteral() { PacketCesiumWriter packet = m_writer.OpenPacket(m_output); packet.Close(); Assert.AreEqual("{}", m_sw.ToString()); }
public void TestPositionProperty() { PacketCesiumWriter packet = m_writer.OpenPacket(m_outputStream); PositionCesiumWriter position = packet.OpenPositionProperty(); Assert.IsNotNull(position); Assert.AreEqual("{\"position\":", m_stringWriter.ToString()); }
public void IdValueWritesIdProperty() { PacketCesiumWriter packet = m_writer.OpenPacket(m_output); packet.WriteId("foo"); packet.Close(); Assert.AreEqual("{\"id\":\"foo\"}", m_sw.ToString()); }
public void TestIdProperty() { PacketCesiumWriter packet = m_writer.OpenPacket(m_outputStream); packet.WriteId("foo"); packet.Close(); Assert.AreEqual("{\"id\":\"foo\"}", m_stringWriter.ToString()); }
public void TestDescriptionProperty() { PacketCesiumWriter packet = m_writer.OpenPacket(m_outputStream); packet.WriteDescriptionProperty("blah"); packet.Close(); Assert.AreEqual("{\"description\":\"blah\"}", m_stringWriter.ToString()); }
public void OpensObjectLiteralOnOpenAndClosesItOnClose() { PacketCesiumWriter packet = new PacketCesiumWriter(); packet.Open(m_outputStream); Assert.AreEqual("{", m_stringWriter.ToString()); packet.Close(); Assert.AreEqual("{}", m_stringWriter.ToString()); }
public void TestDeleteProperty() { PacketCesiumWriter packet = m_writer.OpenPacket(m_output); packet.WriteId("foo"); packet.WriteDelete(true); packet.Close(); Assert.AreEqual("{\"id\":\"foo\",\"delete\":true}", m_sw.ToString()); }
/// <summary> /// Writes the availability intervals from either the TimeSpan or TimeStamp elements from the kml document. /// </summary> /// <param name="timePrimitiveParentElement">The parent element that contains the kml TimePrimitive element.</param> /// <param name="packetWriter">The packet writer.</param> /// <param name="docNamespace">The namespace of the kml document.</param> public static void WriteAvailability(XElement timePrimitiveParentElement, PacketCesiumWriter packetWriter, XNamespace docNamespace) { TimeInterval interval = GetInterval(timePrimitiveParentElement, docNamespace); if (interval != null) { packetWriter.WriteAvailability(interval); } }
public void BillboardWritesBillboardProperty() { PacketCesiumWriter packet = m_writer.OpenPacket(m_output); using (BillboardCesiumWriter billboard = packet.OpenBillboardProperty()) { Assert.IsNotNull(billboard); } Assert.AreEqual("{\"billboard\":", m_sw.ToString()); }
public void SuccessiveCallsToNewPacketReturnSameInstance() { m_output.WriteStartSequence(); PacketCesiumWriter packet1 = m_writer.OpenPacket(m_output); packet1.Close(); PacketCesiumWriter packet2 = m_writer.OpenPacket(m_output); packet2.Close(); m_output.WriteEndSequence(); Assert.AreSame(packet1, packet2); }
/// <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); } } }
/// <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); } } }
/// <summary> /// Writes a new polyline packet for each part of the shape. /// </summary> /// <param name="part">The <see cref="ShapePart"/> of the <see cref="PolylineShape"/> to write</param> private void WritePacket(ShapePart part) { using (PacketCesiumWriter packetWriter = m_document.CesiumStreamWriter.OpenPacket(m_document.CesiumOutputStream)) { packetWriter.WriteId(Guid.NewGuid().ToString()); using (PositionListCesiumWriter position = packetWriter.OpenVertexPositionsProperty()) { PolylineShape polyline = (PolylineShape)m_shape; List <Cartographic> positions = new List <Cartographic>(); for (int i = 0; i < part.Count; i++) { positions.Add(part[i]); } position.WriteCartographicRadians(positions); } using (PolylineCesiumWriter polylineWriter = packetWriter.OpenPolylineProperty()) { polylineWriter.WriteColorProperty(m_color); } } }
/// <summary> /// Writes the czml packet of the given coordinate in the series. /// </summary> /// <param name="index">The index of the coordinate to write as a packet.</param> public void WritePacket(int index) { if (index < m_coordinates.Length) { using (PacketCesiumWriter packetWriter = m_document.CesiumStreamWriter.OpenPacket(m_document.CesiumOutputStream)) { packetWriter.WriteId(m_id + index); using (PolylineCesiumWriter polyline = packetWriter.OpenPolylineProperty()) { polyline.WriteColorProperty(ColorFromHSV(0.6 - (m_coordinates[index].Height * 0.5), 1.0, 1.0)); } using (PositionListCesiumWriter vertexPositions = packetWriter.OpenVertexPositionsProperty()) { Cartographic[] positions = new Cartographic[] { new Cartographic(m_coordinates[index].Longitude, m_coordinates[index].Latitude, 0.0), new Cartographic(m_coordinates[index].Longitude, m_coordinates[index].Latitude, m_coordinates[index].Height * m_scalar) }; vertexPositions.WriteCartographicDegrees(positions); } } } }
public void TestAvailabilityProperty() { JulianDate start = new GregorianDate(2012, 4, 2, 1, 2, 3).ToJulianDate(); JulianDate stop = new GregorianDate(2012, 4, 3, 1, 2, 3).ToJulianDate(); m_outputStream.WriteStartSequence(); using (PacketCesiumWriter packet = m_writer.OpenPacket(m_outputStream)) { packet.WriteAvailability(start, stop); } using (PacketCesiumWriter packet = m_writer.OpenPacket(m_outputStream)) { packet.WriteAvailability(new TimeInterval(start, stop)); } using (PacketCesiumWriter packet = m_writer.OpenPacket(m_outputStream)) { var intervals = new List <TimeInterval> { new TimeInterval(start, stop), new TimeInterval(start.AddDays(2.0), stop.AddDays(2.0)) }; packet.WriteAvailability(intervals); } m_outputStream.WriteEndSequence(); const string expected = "[" + "{\"availability\":\"20120402T010203Z/20120403T010203Z\"}," + "{\"availability\":\"20120402T010203Z/20120403T010203Z\"}," + "{\"availability\":[\"20120402T010203Z/20120403T010203Z\",\"20120404T010203Z/20120405T010203Z\"]}" + "]"; Assert.AreEqual(expected, m_stringWriter.ToString()); }
public void MultipleCallsToNewPacketWithoutCloseThrowInvalidOperationException() { PacketCesiumWriter packet = m_writer.OpenPacket(m_output); packet = m_writer.OpenPacket(m_output); }
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()); } }