public NetworkLayoutRecord(
BayesianNetwork network,
NetworkLayout layout,
NetworkLayoutOptions options)
{
Debug.Assert(options != null, "Layout options cannot be null.");
this.Network = network;
this.NetworkLayout = layout;
this.Options = options;
// Manually specify sizes.
Dictionary<string, float> sizes = new Dictionary<string, float>();
foreach (var v in network.Variables)
{
sizes[v.Key] = Workbench.NetworkLayoutVertexSizeNormal;
}
// Instantiate algorithm.
AlgorithmState = new LayoutAlgorithm(network.Clone(), sizes, options);
// Copy existing positions over.
if (layout != null && layout.Positions != null && layout.Positions.Count > 0)
{
foreach (var kvp in layout.Positions)
{
AlgorithmState.Positions[kvp.Key] = kvp.Value;
}
}
}