public override void WriteToXML(XElement root)
        {
            XElement xmlElement = new XElement("PortPainter");

            base.WriteToXML(xmlElement);
            xmlElement.Add(new XElement("PortDefenitionGuid", PortDefenitionGuid.ToString("B")));
            xmlElement.Add(new XElement("ConnectionPortLocation", ConnectionPortLocation.ToString()));
            rectanglePainter.WriteToXML(xmlElement);
            root.Add(xmlElement);
        }
Beispiel #2
0
        public static RectangleSide OppositeDirection(this RectangleSide side)
        {
            switch (side)
            {
            case RectangleSide.Left:
                return(RectangleSide.Right);

            case RectangleSide.Right:
                return(RectangleSide.Left);

            case RectangleSide.Top:
                return(RectangleSide.Bottom);

            case RectangleSide.Bottom:
                return(RectangleSide.Top);

            default:
                throw new InternalRuntimeException($"Can't take the opposite direction of the direction: {side.ToString()}");
            }
        }
Beispiel #3
0
        private static Rectangle MergeRectangles(Rectangle first, Rectangle second, RectangleSide side)
        {
            Rectangle mergedRectangle;

            switch (side)
            {
            case RectangleSide.Left:
                mergedRectangle = new Rectangle(first.width + second.width, first.height, second.x, first.y);
                break;

            case RectangleSide.Right:
                mergedRectangle = new Rectangle(first.width + second.width, first.height, first.x, first.y);
                break;

            case RectangleSide.Top:
                mergedRectangle = new Rectangle(first.width, first.height + second.height, first.x, first.y);
                break;

            case RectangleSide.Bottom:
                mergedRectangle = new Rectangle(first.width, first.height + second.height, first.x, second.y);
                break;

            default:
                throw new InternalRuntimeException("A rectangle can only be joined on the sides left, right, top or bottom, not " + side.ToString());
            }

            Rectangle[] oldRectangles = new Rectangle[]
            {
                first,
                second
            };
            Rectangle.ReplaceRectangles(oldRectangles, mergedRectangle);

            return(mergedRectangle);
        }