/// <summary> /// Adds an existing vertex to the cluster /// </summary> /// <param name="v">vertex to add</param> public virtual void AddVertex(IVertex v) { if (v == null) { throw new ArgumentNullException("v"); } if (Parent != null && !Parent.ContainsVertex(v)) { Parent.AddVertex(v); } Wrapped.AddVertex(v); }
/// <summary> /// Adds a vertex to this graph. /// </summary> /// <param name="vertex">Vertex to add.</param> /// <returns>True if the vertex was added, false otherwise.</returns> public virtual bool AddVertex([NotNull] TVertex vertex) { if (vertex == null) { throw new ArgumentNullException(nameof(vertex)); } if (!(Parent is null || Parent.ContainsVertex(vertex))) { Parent.AddVertex(vertex); return(Wrapped.AddVertex(vertex)); } return(Wrapped.AddVertex(vertex)); }
/// <summary> /// Adds a new vertex to the cluster /// </summary> /// <returns>new vertex</returns> public virtual IVertex AddVertex() { if (Parent != null) { // add new vertex in the parent IVertex v = Parent.AddVertex(); // add new vertex in the cluster Wrapped.AddVertex(v); // return vertex return(v); } else { return(Wrapped.AddVertex()); } }