Beispiel #1
0
        private static void Draw(ReticleDefinition reticle, string baseName, TrajectoryPoint[] trajectory)
        {
            const double svgWidth  = 10;
            double       svgHeight = Math.Round(reticle.Size.Y / reticle.Size.X * svgWidth, 2);

            var canvas     = SvgCanvasFactory.Create("reticle", $"{svgWidth}in", $"{svgHeight}in");
            var controller = new ReticleDrawController(reticle, canvas);

            controller.DrawReticle();
            controller.DrawBulletDropCompensator(trajectory, DistanceUnit.Yard.New(100), false, DistanceUnit.Yard, "black");
            var svg = SvgCanvasFactory.ToSvg(canvas);

            const int pngWidth  = 1024;
            int       pngHeight = (int)((reticle.Size.Y / reticle.Size.X) * pngWidth);

            XmlDocument xmlDocument = new XmlDocument();

            xmlDocument.LoadXml(svg);
            var      svgDocument = SvgDocument.Open(xmlDocument);
            var      bm          = svgDocument.Draw(pngWidth, pngHeight);
            var      bm1         = new Bitmap(pngWidth, pngHeight);
            Graphics g           = Graphics.FromImage(bm1);

            g.FillRectangle(Brushes.White, 0, 0, pngWidth, pngHeight);
            g.DrawImage(bm, 0, 0);
            bm1.Save($"{baseName}.png", ImageFormat.Png);
            xmlDocument.Save($"{baseName}.svg");

            xmlDocument = new XmlDocument();
            BallisticXmlSerializer serializer = new BallisticXmlSerializer(xmlDocument);

            xmlDocument.AppendChild(serializer.Serialize(reticle));
            xmlDocument.Save($"{baseName}.reticle");
        }
Beispiel #2
0
        public void SerializeToFile()
        {
            var tempFileName = Path.GetTempFileName();

            try
            {
                FlatteningContainer container = new FlatteningContainer()
                {
                    Value1 = new Implementation1()
                    {
                        Name = "123"
                    },
                    Value2 = new Implementation2()
                    {
                        ID = 456
                    },
                };
                BallisticXmlSerializer.SerializeToFile(container, tempFileName);

                File.Exists(tempFileName).Should().BeTrue();

                var container1 = BallisticXmlDeserializer.ReadFromFile <FlatteningContainer>(tempFileName);
                container1.Value1?.Name.Should().Be("123");
                container1.Value2?.ID.Should().Be(456);
            }
            finally
            {
                if (File.Exists(tempFileName))
                {
                    File.Delete(tempFileName);
                }
                File.Exists(tempFileName).Should().BeFalse();
            }
        }
Beispiel #3
0
        private static void Draw(ReticleDefinition reticle, string baseName)
        {
            var canvas     = SvgCanvasFactory.Create("reticle", "2in", "2in");
            var controller = new ReticleDrawController(reticle, canvas);

            controller.DrawReticle();
            var svg = SvgCanvasFactory.ToSvg(canvas);

            XmlDocument xmlDocument = new XmlDocument();

            xmlDocument.LoadXml(svg);
            var      svgDocument = SvgDocument.Open(xmlDocument);
            var      bm          = svgDocument.Draw(1024, 1024);
            var      bm1         = new Bitmap(1024, 1024);
            Graphics g           = Graphics.FromImage(bm1);

            g.FillRectangle(Brushes.White, 0, 0, 1024, 1024);
            g.DrawImage(bm, 0, 0);
            bm1.Save($"{baseName}.png", ImageFormat.Png);
            xmlDocument.Save($"{baseName}.svg");

            xmlDocument = new XmlDocument();
            BallisticXmlSerializer serializer = new BallisticXmlSerializer(xmlDocument);

            xmlDocument.AppendChild(serializer.Serialize(reticle));
            xmlDocument.Save($"{baseName}.reticle");

            xmlDocument = new XmlDocument();
            xmlDocument.Load($"{baseName}.reticle");
            BallisticXmlDeserializer deserializer = new BallisticXmlDeserializer();

            _ = deserializer.Deserialize <ReticleDefinition>(xmlDocument.DocumentElement);
        }
        public static void BallisticXmlSerialize <T>(this T value, Stream stream)
            where T : class
        {
            var xmlSeralizer = new BallisticXmlSerializer();

            xmlSeralizer.Document.AppendChild(xmlSeralizer.Serialize(value));
            xmlSeralizer.Document.Save(stream);
        }
Beispiel #5
0
        public void SerializeStream1()
        {
            FlatteningContainer container = new FlatteningContainer()
            {
                Value1 = new Implementation1()
                {
                    Name = "123"
                },
                Value2 = new Implementation2()
                {
                    ID = 456
                },
            };

            using MemoryStream ms = new MemoryStream();
            BallisticXmlSerializer.SerializeToStream(container, ms);

            using MemoryStream ms1 = new MemoryStream(ms.ToArray());
            var container1 = BallisticXmlDeserializer.ReadFromStream <FlatteningContainer>(ms1);

            container1.Value1?.Name.Should().Be("123");
            container1.Value2?.ID.Should().Be(456);
        }
Beispiel #6
0
        public static void Do(String[] args)
        {
            var le = BallisticXmlDeserializer.ReadLegacyAmmunitionLibraryEntryFromFile(args[0]);

            BallisticXmlSerializer.SerializeToFile <AmmunitionLibraryEntry>(le, args[1]);
        }