/// <summary> /// Copy constructor of the <see cref="NonDirectedGraph<TVertex, TEdge>"/> class. /// </summary> /// <param name="graph">The graph.</param> /// <param name="edgeProducerFunc">The edge producer func which produces edges for this directed graph. Used in some algorithms which /// have to produce edges.</param> /// <param name="isCommandified">If set to true, the graph is a commandified graph, which means all actions taken on this graph which mutate /// graph state are undoable.</param> /// <param name="isSynchronized">if set to <c>true</c> this list is a synchronized collection, using a lock on SyncRoot to synchronize activity in multithreading /// scenarios</param> public NonDirectedGraph(NonDirectedGraph <TVertex, TEdge> graph, Func <TVertex, TVertex, TEdge> edgeProducerFunc, bool isCommandified, bool isSynchronized) : base(graph, false, isCommandified, isSynchronized) { this.EdgeProducerFunc = edgeProducerFunc; }
/// <summary> /// Copy constructor of the <see cref="NonDirectedGraph<TVertex, TEdge>"/> class. /// </summary> /// <param name="graph">The graph.</param> /// <param name="edgeProducerFunc">The edge producer func which produces edges for this directed graph. Used in some algorithms which /// have to produce edges.</param> /// <param name="isCommandified">If set to true, the graph is a commandified graph, which means all actions taken on this graph which mutate /// graph state are undoable.</param> public NonDirectedGraph(NonDirectedGraph <TVertex, TEdge> graph, Func <TVertex, TVertex, TEdge> edgeProducerFunc, bool isCommandified) : this(graph, edgeProducerFunc, isCommandified, isSynchronized : false) { }
/// <summary> /// Copy constructor of the <see cref="NonDirectedGraph<TVertex, TEdge>"/> class. /// </summary> /// <param name="graph">The graph.</param> /// <param name="isCommandified">If set to true, the graph is a commandified graph, which means all actions taken on this graph which mutate /// graph state are undoable.</param> public NonDirectedGraph(NonDirectedGraph <TVertex, TEdge> graph, bool isCommandified) : this(graph, null, isCommandified, isSynchronized : false) { }
/// <summary> /// Copy constructor of the <see cref="NonDirectedGraph<TVertex, TEdge>"/> class. /// </summary> /// <param name="graph">The graph.</param> public NonDirectedGraph(NonDirectedGraph <TVertex, TEdge> graph) : this(graph, null, false) { }
/// <summary> /// Copy constructor of the <see cref="NonDirectedGraph<TVertex, TEdge>"/> class. /// </summary> /// <param name="graph">The graph.</param> /// <param name="edgeProducerFunc">The edge producer func which produces edges for this directed graph. Used in some algorithms which /// have to produce edges.</param> public NonDirectedGraph(NonDirectedGraph <TVertex, TEdge> graph, Func <TVertex, TVertex, TEdge> edgeProducerFunc) : this(graph, edgeProducerFunc, false) { }
/// <summary> /// Copy constructor of the <see cref="NonDirectedGraph<TVertex, TEdge>"/> class. /// </summary> /// <param name="graph">The graph.</param> /// <param name="isCommandified">If set to true, the graph is a commandified graph, which means all actions taken on this graph which mutate /// graph state are undoable.</param> public NonDirectedGraph(NonDirectedGraph <TVertex, TEdge> graph, bool isCommandified) : this(graph, null, isCommandified) { }