/// <summary> /// /// </summary> /// <param name="graph"></param> /// <param name="settings"></param> public SteinerFinder(HeGraphSim graph, SteinerFinderSettings settings = null) { _graph = graph; _graph.Compact(); _settings = settings ?? new SteinerFinderSettings(); SetTerminalStatus(); }
/// <summary> /// /// </summary> /// <param name="points"></param> /// <param name="settings"></param> /// <returns></returns> public static SteinerFinder CreateFromPoints(IEnumerable <Vec3d> points, SteinerFinderSettings settings = null) { var graph = new HeGraphSim(); // add vertices foreach (var p in points) { graph.AddVertex().Position = p; } // add central vertex int nv = graph.Vertices.Count; graph.AddVertex().Position = points.Mean(); // add edges for (int i = 0; i < nv; i++) { graph.AddEdge(i, nv); } return(new SteinerFinder(graph, settings)); }