Ejemplo n.º 1
0
        /// <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);
            }
        }