/// <summary> /// Initializes a new instance of the <see cref="CompoundFDPLayoutAlgorithm{TVertex,TEdge,TGraph}"/> class. /// </summary> /// <param name="visitedGraph">Graph to layout.</param> /// <param name="verticesPositions">Vertices positions.</param> /// <param name="verticesSizes">Vertices sizes.</param> /// <param name="verticesBorders">Vertices borders.</param> /// <param name="layoutTypes">Layout types per vertex.</param> /// <param name="parameters">Optional algorithm parameters.</param> public CompoundFDPLayoutAlgorithm( [NotNull] TGraph visitedGraph, [CanBeNull] IDictionary <TVertex, Point> verticesPositions, [NotNull] IDictionary <TVertex, Size> verticesSizes, [NotNull] IDictionary <TVertex, Thickness> verticesBorders, [NotNull] IDictionary <TVertex, CompoundVertexInnerLayoutType> layoutTypes, [CanBeNull] CompoundFDPLayoutParameters parameters = null) : base(visitedGraph, verticesPositions, parameters) { _verticesSizes = verticesSizes ?? throw new ArgumentNullException(nameof(verticesSizes)); _verticesBorders = verticesBorders ?? throw new ArgumentNullException(nameof(verticesBorders)); _layoutTypes = layoutTypes ?? throw new ArgumentNullException(nameof(layoutTypes)); _compoundGraph = VisitedGraph is ICompoundGraph <TVertex, TEdge> compoundGraph ? new CompoundGraph <TVertex, TEdge>(compoundGraph) : new CompoundGraph <TVertex, TEdge>(VisitedGraph); }
public CompoundFDPLayoutAlgorithm( TGraph visitedGraph, IDictionary <TVertex, Size> vertexSizes, IDictionary <TVertex, Thickness> vertexBorders, IDictionary <TVertex, CompoundVertexInnerLayoutType> layoutTypes, IDictionary <TVertex, Point> vertexPositions, CompoundFDPLayoutParameters oldParameters) : base(visitedGraph, vertexPositions, oldParameters) { _vertexSizes = vertexSizes; _vertexBorders = vertexBorders; _layoutTypes = layoutTypes; if (VisitedGraph is ICompoundGraph <TVertex, TEdge> ) { _compoundGraph = new CompoundGraph <TVertex, TEdge>(VisitedGraph as ICompoundGraph <TVertex, TEdge>); } else { _compoundGraph = new CompoundGraph <TVertex, TEdge>(VisitedGraph); } }