private void UpdateEdges(GraphNode nodeOfInterest = null)
{
// Clear edges.
_edges.ForAll(edge =>
{
xRoot.Children.Remove(edge);
});
_edges.Clear();
// For each node already in this inspector.
foreach (var graphNode in this._nodes)
{
RandomVariable variable = (RandomVariable)graphNode.Tag;
// Check if this node connects to another node already in the graph.
foreach (var parentVariable in variable.Parents.Select(p => _network.GetVariable(p)))
{
var parentNode = parentVariable.UserData as GraphNode;
Debug.Assert(parentNode != null);
// Create edge.
GraphEdge edge = new GraphEdge();
xRoot.Children.Add(edge);
_edges.Add(edge);
edge.From = parentNode;
edge.To = graphNode;
edge.SetValue(Canvas.ZIndexProperty, LayerUnimportantEdges);
}
}
}