Esempio n. 1
0
        public void TestPositionProperty()
        {
            PacketCesiumWriter   packet   = m_writer.OpenPacket(m_outputStream);
            PositionCesiumWriter position = packet.OpenPositionProperty();

            Assert.IsNotNull(position);
            Assert.AreEqual("{\"position\":", m_stringWriter.ToString());
        }
Esempio n. 2
0
        /// <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);
                }
            }
        }
Esempio n. 3
0
 /// <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);
         }
     }
 }
Esempio n. 4
0
        /// <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());
            }
        }