private void CreateLine(DataConnection data) //Два соединение элемент-линия-линия-элемент и элемент-элемент { var point0 = data.PointPin0; var point1 = data.PointPin1; var CheckCreateLine = (point0.IdParent != point1.IdParent) & (point0.Type != point1.Type); if (CheckCreateLine) { var pin0 = FindElementId(point0.IdParent).GetPinIndex(point0.Id); var pin1 = FindElementId(point1.IdParent).GetPinIndex(point1.Id); //BaseElement.Connect(pin0, pin1); //BaseElement.Connect(pin1, pin0); var line = new ViewModelComponentLine(point0, point1, _surface, data.ID); _elements.Add(line); line.OnElementDelete += Delete; if (pin0.Type == ETypePin.TypeOut) { pin1 = line.GetElementModel().GetPinId(0); BaseElement.Connect(pin0, pin1); pin0 = FindElementId(point1.IdParent).GetPinIndex(point1.Id); pin1 = line.GetElementModel().GetPinId(1); } else { pin1 = line.GetElementModel().GetPinId(1); BaseElement.Connect(pin0, pin1); pin0 = FindElementId(point1.IdParent).GetPinIndex(point1.Id); pin1 = line.GetElementModel().GetPinId(0); } BaseElement.Connect(pin0, pin1); //BaseElement.Connect(pin1, pin0); } }
CreateLine(PointPin point0, PointPin point1) //Два соединение элемент-линия-линия-элемент и элемент-элемент { var CheckCreateLine = (point0.IdParent != point1.IdParent) & (point0.Type != point1.Type); if (CheckCreateLine) { var pin0 = FindElementId(point0.IdParent).GetPinIndex(point0.Id); var pin1 = FindElementId(point1.IdParent).GetPinIndex(point1.Id); //BaseElement.Connect(pin0, pin1); //BaseElement.Connect(pin1, pin0); var line = new ViewModelComponentLine(point0, point1, _surface); _elements.Add(line); line.OnElementDelete += Delete; if (pin0.Type == ETypePin.TypeOut) { //FindElementId(point1.IdParent).GroupID = FindElementId(point0.IdParent).GroupID; pin1 = line.GetElementModel().GetPinId(0); BaseElement.Connect(pin0, pin1); pin0 = FindElementId(point1.IdParent).GetPinIndex(point1.Id); pin1 = line.GetElementModel().GetPinId(1); } else { //FindElementId(point0.IdParent).GroupID = FindElementId(point1.IdParent).GroupID; pin1 = line.GetElementModel().GetPinId(1); BaseElement.Connect(pin0, pin1); pin0 = FindElementId(point1.IdParent).GetPinIndex(point1.Id); pin1 = line.GetElementModel().GetPinId(0); } BaseElement.Connect(pin0, pin1); //BaseElement.Connect(pin1, pin0); } }
private void ClearAllCommand() { _elements.Clear(); _surface.Children.Clear(); DrawBufLine = new ViewModelComponentLine(new PointPin(0, 0, EDirection.East, ETypePin.TypeIn, 10, 10), new PointPin(0, 0, EDirection.East, ETypePin.TypeIn, 10, 10), _surface, -1000); DrawBufLine.IsCheck = true; }
public MainViewModel(ref Canvas surface) { _surface = surface; surface.Drop += Surface_Drop; surface.DragOver += Surface_DragOver; DrawBufLine = new ViewModelComponentLine(new PointPin(-100, -100, EDirection.East, ETypePin.TypeIn, 10, 10), new PointPin(-100, -100, EDirection.East, ETypePin.TypeIn, 10, 10), _surface, -1000); DrawBufLine.IsCheck = true; }
private void MoveLine(ViewModelComponentLine bufLine, Point truePosition, BaseComponentUI element) { var bufPointPin0 = bufLine.FirstPin; var bufPointPin1 = bufLine.LastPin; if (element.ID == bufLine.FirstPin.IdParent) { bufPointPin0.X = bufLine.FirstPin.X - truePosition.X; bufPointPin0.Y = bufLine.FirstPin.Y - truePosition.Y; bufPointPin1.X = bufLine.LastPin.X; bufPointPin1.Y = bufLine.LastPin.Y; } else { bufPointPin0.X = bufLine.FirstPin.X; bufPointPin0.Y = bufLine.FirstPin.Y; bufPointPin1.X = bufLine.LastPin.X - truePosition.X; bufPointPin1.Y = bufLine.LastPin.Y - truePosition.Y; } bufLine.ReBuild(bufPointPin0, bufPointPin1); }