public static void GetLocation(Wire wire1, Wire wire2, out PointEx start, out PointEx end) { var line1 = wire1.Line as ILine; var start1 = wire1.Start; var end1 = wire1.End; var line2 = wire2.Line as ILine; var start2 = wire2.Start; var end2 = wire2.End; start = null; end = null; if (start1 != null) { var margin = line1.GetMargin(); start = new PointEx(margin.Left, margin.Top); } if (end1 != null) end = new PointEx(line1.GetX2(), line1.GetY2()); if (start2 != null) { var margin = line2.GetMargin(); start = new PointEx(margin.Left, margin.Top); } if (end2 != null) end = new PointEx(line2.GetX2(), line2.GetY2()); }
private static ILine SecondConnection(IElement root, ILine line, double x, double y, List<Wire> wires) { var margin = line.GetMargin(); line.SetX2(x - margin.Left); line.SetY2(y - margin.Top); string rootUid = root.GetUid(); bool endIsIO = StringUtil.StartsWith(rootUid, Constants.TagElementInput) || StringUtil.StartsWith(rootUid, Constants.TagElementOutput); line.SetEndIO(endIsIO); var wire = new Wire(line, null, root); wires.Add(wire); var lineTag = line.GetTag(); if (lineTag != null) { var start = lineTag as IElement; if (start != null) line.SetTag(new Wire(line, start, root)); } return null; }
private void MoveLine(double dX, double dY, bool snap, Wire wire) { var line = wire.Line as ILine; var start = wire.Start; var end = wire.End; if (start != null) { var margin = line.GetMargin(); double left = margin.Left; double top = margin.Top; //line.X1 = SnapOffsetX(line.X1 + dX, snap); //line.Y1 = SnapOffsetY(line.Y1 + dY, snap); double x = SnapOffsetX(left + dX, snap); double y = SnapOffsetY(top + dY, snap); if (left != x || top != y) { line.SetX2(line.GetX2() + (left - x)); line.SetY2(line.GetY2() + (top - y)); line.SetMargin(new MarginEx(0, x, 0, y)); } } if (end != null) { double left = line.GetX2(); double top = line.GetY2(); double x = SnapX(left + dX, snap); double y = SnapY(top + dY, snap); line.SetX2(x); line.SetY2(y); } }