private static void SnapSize(IVisio.Page page, IList <int> shapeids, VA.Drawing.Size snapsize, VA.Drawing.Size minsize) { var input_xfrms = VA.Shapes.XFormCells.GetCells(page, shapeids); var output_xfrms = new List <VA.Shapes.XFormCells>(input_xfrms.Count); var grid = new VA.Drawing.SnappingGrid(snapsize); foreach (var input_xfrm in input_xfrms) { var inut_size = new VA.Drawing.Size(input_xfrm.Width.Result, input_xfrm.Height.Result); var snapped_size = grid.Snap(inut_size); double max_w = System.Math.Max(snapped_size.Width, minsize.Width); double max_h = System.Math.Max(snapped_size.Height, minsize.Height); var new_size = new VA.Drawing.Size(max_w, max_h); var output_xfrm = new VA.Shapes.XFormCells(); output_xfrm.Width = new_size.Width; output_xfrm.Height = new_size.Height; output_xfrms.Add(output_xfrm); } // Now apply them update_xfrms(page, shapeids, output_xfrms); }
public void Internal_ValidateSnappingGrid() { double delta = 0.000000001; var g1 = new VA.Drawing.SnappingGrid(1.0, 1.0); AssertVA.AssertSnap(0.0, 0.0, g1, 0.0, 0.0, delta); AssertVA.AssertSnap(0.0, 0.0, g1, 0.3, 0.3, delta); AssertVA.AssertSnap(0.0, 0.0, g1, 0.49999, 0.49999, delta); AssertVA.AssertSnap(1.0, 1.0, g1, 0.5, 0.5, delta); AssertVA.AssertSnap(1.0, 1.0, g1, 0.500001, 0.500001, delta); AssertVA.AssertSnap(1.0, 1.0, g1, 1.0, 1.0, delta); AssertVA.AssertSnap(1.0, 1.0, g1, 1.3, 1.3, delta); AssertVA.AssertSnap(1.0, 1.0, g1, 1.49999, 1.49999, delta); AssertVA.AssertSnap(2.0, 2.0, g1, 1.5, 1.5, delta); AssertVA.AssertSnap(2.0, 2.0, g1, 1.500001, 1.500001, delta); var g2 = new VA.Drawing.SnappingGrid(1.0, 0.3); AssertVA.AssertSnap(0.0, 0.0, g2, 0.0, 0.0, delta); AssertVA.AssertSnap(0.0, 0.0, g2, 0.3, 0.1, delta); AssertVA.AssertSnap(0.0, 0.0, g2, 0.49999, 0.149, delta); AssertVA.AssertSnap(1.0, 0.3, g2, 0.5, 0.3, delta); AssertVA.AssertSnap(1.0, 0.3, g2, 0.500001, 0.30001, delta); }
public static void SnapCorner(IVisio.Page page, IList <int> shapeids, VA.Drawing.Size snapsize, VA.Arrange.SnapCornerPosition corner) { // First caculate the new transforms var snap_grid = new VA.Drawing.SnappingGrid(snapsize); var input_xfrms = ArrangeHelper.GetXForm(page, shapeids); var output_xfrms = new List <VA.Shapes.XFormCells>(input_xfrms.Count); foreach (var input_xfrm in input_xfrms) { var old_lower_left = ArrangeHelper.GetRectangle(input_xfrm).LowerLeft; var new_lower_left = snap_grid.Snap(old_lower_left); var output_xfrm = _SnapCorner(corner, new_lower_left, input_xfrm); output_xfrms.Add(output_xfrm); } // Now apply them update_xfrms(page, shapeids, output_xfrms); }
private static void SnapSize(IVisio.Page page, IList<int> shapeids, VA.Drawing.Size snapsize, VA.Drawing.Size minsize) { var input_xfrms = VA.Shapes.XFormCells.GetCells(page, shapeids); var output_xfrms = new List<VA.Shapes.XFormCells>(input_xfrms.Count); var grid = new VA.Drawing.SnappingGrid(snapsize); foreach (var input_xfrm in input_xfrms) { var inut_size = new VA.Drawing.Size(input_xfrm.Width.Result, input_xfrm.Height.Result); var snapped_size = grid.Snap(inut_size); double max_w = System.Math.Max(snapped_size.Width, minsize.Width); double max_h = System.Math.Max(snapped_size.Height, minsize.Height); var new_size = new VA.Drawing.Size(max_w, max_h); var output_xfrm = new VA.Shapes.XFormCells(); output_xfrm.Width = new_size.Width; output_xfrm.Height = new_size.Height; output_xfrms.Add(output_xfrm); } // Now apply them update_xfrms(page, shapeids, output_xfrms); }
public static void SnapCorner(IVisio.Page page, IList<int> shapeids, VA.Drawing.Size snapsize, VA.Arrange.SnapCornerPosition corner) { // First caculate the new transforms var snap_grid = new VA.Drawing.SnappingGrid(snapsize); var input_xfrms = ArrangeHelper.GetXForm(page, shapeids); var output_xfrms = new List<VA.Shapes.XFormCells>(input_xfrms.Count); foreach (var input_xfrm in input_xfrms) { var old_lower_left = ArrangeHelper.GetRectangle(input_xfrm).LowerLeft; var new_lower_left = snap_grid.Snap(old_lower_left); var output_xfrm = _SnapCorner(corner, new_lower_left, input_xfrm); output_xfrms.Add(output_xfrm); } // Now apply them update_xfrms(page, shapeids, output_xfrms); }
public static void AssertSnap(double ex, double ey, VA.Drawing.SnappingGrid g1, double ix, double iy, double delta) { AssertVA.AreEqual(ex, ey, g1.Snap(ix, iy), delta); }