/// <summary> /// Add an EdgeGeometry to route /// </summary> /// <param name="edgeGeometry"></param> public void AddEdgeGeometryToRoute(EdgeGeometry edgeGeometry) { ValidateArg.IsNotNull(edgeGeometry, "edgeGeometry"); // The Port.Location values are not necessarily rounded by the caller. The values // will be rounded upon acquisition in PortManager.cs. PointComparer.Equal expects // all values to be rounded. if (!PointComparer.Equal(ApproximateComparer.Round(edgeGeometry.SourcePort.Location) , ApproximateComparer.Round(edgeGeometry.TargetPort.Location))) { EdgeGeometries.Add(edgeGeometry); } else { selfEdges.Add(edgeGeometry); } }
/// <summary> /// Remove a routing specification for an EdgeGeometry. /// </summary> /// <param name="edgeGeometry"></param> public void RemoveEdgeGeometryToRoute(EdgeGeometry edgeGeometry) { EdgeGeometries.Remove(edgeGeometry); }
/// <summary> /// Remove all EdgeGeometries to route /// </summary> public void RemoveAllEdgeGeometriesToRoute() { // Don't call RemoveEdgeGeometryToRoute as it will interrupt the EdgeGeometries enumerator. EdgeGeometries.Clear(); }