Ejemplo n.º 1
0
        public void Internal_ValidateSnappingGrid()
        {
            double delta = 0.000000001;

            var g1 = new SnappingGrid(1.0, 1.0);

            AssertUtil.AssertSnap((0.0, 0.0), g1, (0.0, 0.0), delta);
            AssertUtil.AssertSnap((0.0, 0.0), g1, (0.3, 0.3), delta);
            AssertUtil.AssertSnap((0.0, 0.0), g1, (0.49999, 0.49999), delta);
            AssertUtil.AssertSnap((1.0, 1.0), g1, (0.5, 0.5), delta);
            AssertUtil.AssertSnap((1.0, 1.0), g1, (0.500001, 0.500001), delta);
            AssertUtil.AssertSnap((1.0, 1.0), g1, (1.0, 1.0), delta);
            AssertUtil.AssertSnap((1.0, 1.0), g1, (1.3, 1.3), delta);
            AssertUtil.AssertSnap((1.0, 1.0), g1, (1.49999, 1.49999), delta);
            AssertUtil.AssertSnap((2.0, 2.0), g1, (1.5, 1.5), delta);
            AssertUtil.AssertSnap((2.0, 2.0), g1, (1.500001, 1.500001), delta);

            var g2 = new SnappingGrid(1.0, 0.3);

            AssertUtil.AssertSnap((0.0, 0.0), g2, (0.0, 0.0), delta);
            AssertUtil.AssertSnap((0.0, 0.0), g2, (0.3, 0.1), delta);
            AssertUtil.AssertSnap((0.0, 0.0), g2, (0.49999, 0.149), delta);
            AssertUtil.AssertSnap((1.0, 0.3), g2, (0.5, 0.3), delta);
            AssertUtil.AssertSnap((1.0, 0.3), g2, (0.500001, 0.30001), delta);
        }
Ejemplo n.º 2
0
        public static void SnapSize(IVisio.Page page, TargetShapeIDs target, Drawing.Size snapsize, Drawing.Size minsize)
        {
            var input_xfrms = ShapeXFormData.Get(page, target);
            var sizes       = new List <VisioAutomation.Drawing.Size>(input_xfrms.Count);

            var grid = new SnappingGrid(snapsize);

            foreach (var input_xfrm in input_xfrms)
            {
                // First snap the size to the grid
                double old_w        = input_xfrm.Width;
                double old_h        = input_xfrm.Height;
                var    input_size   = new Drawing.Size(old_w, old_h);
                var    snapped_size = grid.Snap(input_size);

                // then account for any minum size requirements
                double new_w = System.Math.Max(snapped_size.Width, minsize.Width);
                double new_h = System.Math.Max(snapped_size.Height, minsize.Height);

                sizes.Add(new VisioAutomation.Drawing.Size(new_w, new_h));
            }

            // Now apply the updates to the sizes
            ModifySizes(page, target.ShapeIDs, sizes);
        }
Ejemplo n.º 3
0
    public void _HandleDrop(Module dropped)
    {
        var        droppedPosition = dropped.transform.position;
        Collider2D gridOverlap     = Physics2D.OverlapPoint(droppedPosition, LayerMask.GetMask("Grid"));
        bool       overGrid        = gridOverlap != null;

        Collider2D[] moduleOverlap = Physics2D.OverlapPointAll(droppedPosition, LayerMask.GetMask("Draggable"));
        bool         cellTaken     = moduleOverlap.Length > 1;

        if (overGrid && !cellTaken)
        {
            SnappingGrid targetGrid = gridOverlap.GetComponent <SnappingGrid>();
            targetGrid.TrySnap(dropped);
            return;
        }
        dropped.CancelMovement();
    }
Ejemplo n.º 4
0
        public static void SnapCorner(IVisio.Page page, TargetShapeIDs target, Drawing.Size snapsize, SnapCornerPosition corner)
        {
            // First caculate the new transforms
            var snap_grid    = new SnappingGrid(snapsize);
            var input_xfrms  = ShapeXFormData.Get(page, target);
            var output_xfrms = new List <VisioAutomation.Drawing.Point>(input_xfrms.Count);

            foreach (var input_xfrm in input_xfrms)
            {
                var old_rect         = input_xfrm.GetRectangle();
                var old_lower_left   = old_rect.LowerLeft;
                var new_lower_left   = snap_grid.Snap(old_lower_left);
                var new_pin_position = ArrangeHelper.GetPinPositionForCorner(input_xfrm, new_lower_left, corner);
                var output_xfrm      = new VisioAutomation.Drawing.Point(new_pin_position.X, new_pin_position.Y);
                output_xfrms.Add(output_xfrm);
            }

            ModifyPinPositions(page, target.ShapeIDs, output_xfrms);
        }
Ejemplo n.º 5
0
    public static Graph GetDefaultRoad(SnappingGrid grid)
    {
        var graph = new Graph();

        // Vertices
        graph.AddVertex(new Vertex("a", grid.PlaceInGrid(5, 0)));
        graph.AddVertex(new Vertex("b", grid.PlaceInGrid(5, 10)));
        graph.AddVertex(new Vertex("c", grid.PlaceInGrid(27, 10)));
        graph.AddVertex(new Vertex("d", grid.PlaceInGrid(27, 20)));
        graph.AddVertex(new Vertex("e", grid.PlaceInGrid(3, 20)));
        graph.AddVertex(new Vertex("f", grid.PlaceInGrid(3, 29)));

        // Edges
        graph.AddAnEdge("a", "b");
        graph.AddAnEdge("b", "c");
        graph.AddAnEdge("c", "d");
        graph.AddAnEdge("d", "e");
        graph.AddAnEdge("e", "f");

        return(graph);
    }
Ejemplo n.º 6
0
 void OnEnable()
 {
     myTarget = target as SnappingGrid;
 }