private static double _get_position_on_shape(Models.ShapeXFormData xform, Models.ShapeRelativePosition pos)
        {
            var r = xform.GetRectangle();

            switch (pos)
            {
            case VisioScripting.Models.ShapeRelativePosition.PinY:
                return(xform.XFormPinY);

            case VisioScripting.Models.ShapeRelativePosition.PinX:
                return(xform.XFormPinX);

            case VisioScripting.Models.ShapeRelativePosition.Left:
                return(r.Left);

            case VisioScripting.Models.ShapeRelativePosition.Right:
                return(r.Right);

            case VisioScripting.Models.ShapeRelativePosition.Top:
                return(r.Top);

            case VisioScripting.Models.ShapeRelativePosition.Bottom:
                return(r.Bottom);
            }

            throw new System.ArgumentOutOfRangeException(nameof(pos));
        }
Esempio n. 2
0
        private static VisioAutomation.Geometry.Point _get_pin_position_for_corner(Models.ShapeXFormData input_xfrm, VisioAutomation.Geometry.Point new_lower_left, Models.SnapCornerPosition corner)
        {
            var size   = new VisioAutomation.Geometry.Size(input_xfrm.XFormWidth, input_xfrm.XFormHeight);
            var locpin = new VisioAutomation.Geometry.Point(input_xfrm.XFormLocPinX, input_xfrm.XFormLocPinY);

            switch (corner)
            {
            case VisioScripting.Models.SnapCornerPosition.LowerLeft:
            {
                return(new_lower_left.Add(locpin.X, locpin.Y));
            }

            case VisioScripting.Models.SnapCornerPosition.UpperRight:
            {
                return(new_lower_left.Subtract(size.Width, size.Height).Add(locpin.X, locpin.Y));
            }

            case VisioScripting.Models.SnapCornerPosition.LowerRight:
            {
                return(new_lower_left.Subtract(size.Width, 0).Add(locpin.X, locpin.Y));
            }

            case VisioScripting.Models.SnapCornerPosition.UpperLeft:
            {
                return(new_lower_left.Subtract(0, size.Height).Add(locpin.X, locpin.Y));
            }

            default:
            {
                throw new System.ArgumentOutOfRangeException(nameof(corner), "Unsupported corner");
            }
            }
        }