edge visibility

This commit is contained in:
naninunenoy 2020-11-26 23:06:23 +09:00
parent 52f2856307
commit ad5ad99975
2 changed files with 22 additions and 5 deletions

View File

@ -4,17 +4,34 @@ using UnityEngine.UIElements;
namespace AsmdefHelper.DependencyGraph.Editor {
public class AsmdefNode : UiElementsNodeView, IAsmdefNodeView {
public IPort LeftPort { get; }
public IPort RightPort { get; }
readonly GraphViewPort leftPort;
readonly GraphViewPort rightPort;
public IPort LeftPort => leftPort;
public IPort RightPort => rightPort;
public AsmdefNode(string nodeName, VisualElement parentContentContainer) {
Label = nodeName;
LeftPort = new GraphViewPort(parentContentContainer, Direction.Input) { Label = "Ref By" };
leftPort = new GraphViewPort(parentContentContainer, Direction.Input) { Label = "Ref By" };
inputContainer.Add(LeftPort as Port); // as right side
RightPort = new GraphViewPort(parentContentContainer, Direction.Output) { Label = "Ref To" };
rightPort = new GraphViewPort(parentContentContainer, Direction.Output) { Label = "Ref To" };
outputContainer.Add(RightPort as Port); // as left side
}
public override bool Visibility {
get => base.Visibility;
set {
base.Visibility = value;
// right(output)
foreach (var edge in rightPort.connections) {
edge.visible = edge.input.node.visible & visible;
}
// left(input)
foreach (var edge in leftPort.connections) {
edge.visible = edge.output.node.visible & visible;
}
}
}
}
}

View File

@ -23,7 +23,7 @@ namespace AsmdefHelper.DependencyGraph.Editor.NodeView {
public float Width => contentRect.width;
public bool Visibility {
public virtual bool Visibility {
get => visible;
set => visible = value;
}