コード例 #1
0
        private RectangleF[] createRectangles(PanelsContainer c)
        {
            PanelItem p = c.panels;

            List <RectangleF> rectangles = new List <RectangleF>();

            /*Create root panel*/
            int   rootX     = (int)c.pw.rootX;
            int   rootY     = (int)c.pw.rootY;
            Point rootPoint = new Point(rootX, rootY);

            /*Create root rotation*/
            DimensionsStructure dimension = new DimensionsStructure();

            dp = new DrawdPanel();
            dp.CurrentRootPoint = rootPoint;
            dp.Rotation         = dimension;
            dp.width            = (int)p.panelWidth;
            dp.height           = (int)p.panelHeight;
            dp.CalculateCoordinates();

            dwdList = new List <DrawdPanel>();
            dwdList.Add(dp);

            GetAll(p.AttachedPanels, dp, ref dwdList);

            foreach (DrawdPanel drawitem in dwdList)
            {
                rectangles.Add(drawitem.createRectangle());
            }
            return(rectangles.ToArray());
        }
コード例 #2
0
        public Image DrawScene(PanelsContainer container)
        {
            int width  = container.pw.originalDocumentWidth;
            int height = container.pw.originalDocumentHeight;

            Bitmap image = new Bitmap(width, height);

            Pen pen = new Pen(Brushes.Black, 3);

            Graphics g = Graphics.FromImage(image);

            RectangleF[] rt = createRectangles(container);
            g.DrawRectangles(pen, rt);

            return(image);
        }
コード例 #3
0
        public PanelsContainer GetPanels(string filename)
        {
            PanelsContainer container = new PanelsContainer();
            PanelItem       panels    = new PanelItem();

            XmlDocument xDoc = new XmlDocument();

            xDoc.Load(filesPath + filename);

            XmlElement xRoot = xDoc.DocumentElement;

            CultureInfo temp_culture = Thread.CurrentThread.CurrentCulture;

            Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");

            Preview p = new Preview();

            p.originalDocumentHeight = Convert.ToInt32(xRoot.Attributes.GetNamedItem("originalDocumentHeight").Value);
            p.originalDocumentWidth  = Convert.ToInt32(xRoot.Attributes.GetNamedItem("originalDocumentWidth").Value);
            p.rootX = float.Parse(xRoot.Attributes.GetNamedItem("rootX").Value);
            p.rootY = float.Parse(xRoot.Attributes.GetNamedItem("rootY").Value);

            Thread.CurrentThread.CurrentCulture = temp_culture;
            foreach (XmlNode xnode in xRoot)
            {
                if (xnode.Name == "panels")
                {
                    XmlNode rootPanelNode = xnode.FirstChild;
                    panels = GetPanelAttributesFromNode(rootPanelNode);
                    if (rootPanelNode.HasChildNodes)
                    {
                        panels.AttachedPanels = GetChildPanels(rootPanelNode);
                    }
                }
            }
            container.pw     = p;
            container.panels = panels;

            return(container);
        }