private GroupFigure FindGroupByRect(RectangleF r) { var g = new GroupFigure(); foreach (var f in Diagram.Figures.OfType <IMoveable>()) { if (r.Contains(f.Location)) { g.Add(f as Figure); } } Diagram.SelectedFigure = g; return(g); }
private static void SaveImage(string fileName, Layer layer, GroupFigure group, int width, int height, ImageFormat format) { using (var image = new Bitmap(width, height)) { using (var g = Graphics.FromImage(image)) { if (layer.FillStyle.IsVisible) { g.Clear(Color.FromArgb(layer.FillStyle.Opacity, layer.FillStyle.Color)); } @group.Renderer.Render(g, @group); } image.Save(fileName, format); } }
private static void HandleFillStyle(Layer layer, out GroupFigure group, out int width, out int height) { group = new GroupFigure(layer.Figures); var bounds = @group.GetTransformedPath().Path.GetBounds(); if (layer.FillStyle.IsVisible) { width = (int)(bounds.Left * 2 + bounds.Width); height = (int)(bounds.Top * 2 + bounds.Height); } else { width = (int)(bounds.Width + 2); height = (int)(bounds.Height + 2); @group.Transform.Matrix.Translate(-bounds.Left, -bounds.Top); } }
public GroupFigure ToFigure() { var result = new GroupFigure(); foreach (var g in Groups) { var subGroup = new GroupFigure(); foreach (var t in g.Triangles) { if (t.N1 != null && t.N2 != null && t.N3 != null) { subGroup.Add(new TriangleWithNormalsFigure(Matrix4x4.Identity, MaterialConstants.Default, t.P1, t.P2, t.P3, t.N1, t.N2, t.N3)); } else { subGroup.Add(new TriangleFigure(Matrix4x4.Identity, MaterialConstants.Default, t.P1, t.P2, t.P3)); } } result.Add(subGroup); } return(result); }
public void GroupManipulations() { var s1 = new SphereFigure(Matrix4x4.Identity, MaterialConstants.Default); var s2 = new CubeFigure(Matrix4x4.Identity, MaterialConstants.Default); var s3 = new PlaneFigure(Matrix4x4.Identity, MaterialConstants.Default); var g = new GroupFigure(); var g2 = new GroupFigure(); s1.Parent = g; s2.Parent = g; g.Add(s3); Assert.Equal(g, s1.Parent); Assert.Equal(g, s2.Parent); Assert.Equal(g, s3.Parent); Assert.Contains(s1, g.Figures); Assert.Contains(s2, g.Figures); Assert.Contains(s3, g.Figures); g.Remove(s1); s3.Parent = null; Assert.Null(s1.Parent); Assert.Equal(g, s2.Parent); Assert.Null(s3.Parent); Assert.DoesNotContain(s1, g.Figures); Assert.Contains(s2, g.Figures); Assert.DoesNotContain(s3, g.Figures); s2.Parent = g2; Assert.DoesNotContain(s2, g.Figures); Assert.Equal(g2, s2.Parent); Assert.Contains(s2, g2.Figures); }
public void Given_group(string id) { figure[id] = new GroupFigure(); }