public static ChildConnection Configuration(ItemConnector connector, Transform target, Interactable addTo) { ChildConnection conn = addTo.gameObject.AddComponent <ChildConnection>(); conn.Connector = connector; conn.target = target.transform; conn.Init(); return(conn); }
public void AddLastChild(double degree = 0, double length = 100) { if (ChildConnection != null) { ChildConnection.AddLastChild(degree, length); } else { AddChild(degree, length); } }
public static ChildConnection AddChildConnection(ItemConnector connector, Transform target, Interactable addTo) { return(ChildConnection.Configuration(connector, target, addTo)); }
public IEnumerable <UIElement> GetDrawing() { var DrawingElements = new List <UIElement>(); var tran = new TranslateTransform(Anchor.X - Length / 10, Anchor.Y - height / 2); var transform = new RotateTransform(RotationDegree, Anchor.X, Anchor.Y); TransformGroup t = new TransformGroup { Children = new TransformCollection(new Transform[] { tran, transform }) }; var rect = new Rectangle() { Width = Length, Height = height, Fill = Brushes.LightCoral, RenderTransform = t }; DrawingElements.Add(rect); var pin = new Ellipse() { Tag = StickPointInfos[0], Width = 10, Height = 10, Fill = StickPointInfos[0].IsSelected ? Brushes.Orange : Brushes.DarkSlateBlue, Margin = new Thickness(Anchor.X - 5, Anchor.Y - 5, 0, 0) }; pin.MouseEnter += (sender, args) => { if (((StickPointInfo)pin.Tag).IsSelected == false) { pin.Fill = Brushes.LightCyan; } }; pin.MouseLeave += (sender, args) => { if (((StickPointInfo)pin.Tag).IsSelected == false) { pin.Fill = Brushes.DarkSlateBlue; } }; pin.MouseUp += (sender, args) => { if (((StickPointInfo)pin.Tag).IsSelected == false) { pin.Fill = Brushes.Orange; ((StickPointInfo)pin.Tag).IsSelected = true; } else { pin.Fill = Brushes.DarkSlateBlue; ((StickPointInfo)pin.Tag).IsSelected = false; } //((StickPointInfo)pin.Tag).IsSelected = !((StickPointInfo)pin.Tag).IsSelected; }; DrawingElements.Add(pin); if (ChildConnection != null) { DrawingElements.AddRange(ChildConnection.GetDrawing()); } else { var endPoint = new Point(Anchor.X + Length * 0.8 * Math.Cos(RotationDegree * Math.PI / 180), Anchor.Y + Length * 0.8 * Math.Sin(RotationDegree * Math.PI / 180)); var pinEnd = new Ellipse() { Tag = StickPointInfos[1], Width = 10, Height = 10, Fill = StickPointInfos[1].IsSelected ? Brushes.Orange : Brushes.DarkSlateBlue, Margin = new Thickness(endPoint.X - 5, endPoint.Y - 5, 0, 0) }; pinEnd.MouseEnter += (sender, args) => { if (((StickPointInfo)pinEnd.Tag).IsSelected == false) { pinEnd.Fill = Brushes.LightCyan; } }; pinEnd.MouseLeave += (sender, args) => { if (((StickPointInfo)pinEnd.Tag).IsSelected == false) { pinEnd.Fill = Brushes.DarkSlateBlue; } }; pinEnd.MouseUp += (sender, args) => { if (((StickPointInfo)pinEnd.Tag).IsSelected == false) { pinEnd.Fill = Brushes.Orange; ((StickPointInfo)pinEnd.Tag).IsSelected = true; } else { pinEnd.Fill = Brushes.DarkSlateBlue; ((StickPointInfo)pinEnd.Tag).IsSelected = false; } //((StickPointInfo)pinEnd.Tag).IsSelected = !((StickPointInfo)pinEnd.Tag).IsSelected; }; DrawingElements.Add(pinEnd); } return(DrawingElements); }