GT-3020 - Function Graph - for edges, split 'in active path' state into

2 parts so we can track hovered/focused/selected separately, which
prevents the focused/selected state changes from overwriting each other
This commit is contained in:
dragonmacher 2019-08-09 10:21:09 -04:00
parent 85e25af7e8
commit cb94773ce5
12 changed files with 368 additions and 218 deletions

View file

@ -34,7 +34,8 @@ public class FGEdgeImpl implements FGEdge {
boolean doHashCode = true;
int hashCode;
private boolean inActivePath = false;
private boolean inHoveredPath = false;
private boolean inFocusedPath = false;
private boolean selected = false;
private double emphasis = 0D;
private double alpha = 1D;
@ -50,13 +51,23 @@ public class FGEdgeImpl implements FGEdge {
}
@Override
public boolean isInActivePath() {
return inActivePath;
public boolean isInHoveredVertexPath() {
return inHoveredPath;
}
@Override
public void setInActivePath(boolean inActivePath) {
this.inActivePath = inActivePath;
public boolean isInFocusedVertexPath() {
return inFocusedPath;
}
@Override
public void setInHoveredVertexPath(boolean inPath) {
this.inHoveredPath = inPath;
}
@Override
public void setInFocusedVertexPath(boolean inPath) {
this.inFocusedPath = inPath;
}
@Override
@ -135,7 +146,8 @@ public class FGEdgeImpl implements FGEdge {
newEdge.layoutArticulationPoints = newPoints;
newEdge.alpha = alpha;
newEdge.inActivePath = inActivePath;
newEdge.inHoveredPath = inHoveredPath;
newEdge.inFocusedPath = inFocusedPath;
newEdge.selected = selected;
return newEdge;
}