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()); }
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); }
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); }