public void Concatenate(MPath path2) { var list1 = GetPositions(); var list2 = path2.GetPositions(); list1.AddRange(list2); SetPositions(list1); var list1n = line.GetNormals(); var list2n = path2.line.GetNormals(); list1n.AddRange(list2n); line.SetNormals(list1n); Destroy(path2); dotTo = path2.dotTo; line.SetMesh(); }
public void AddCurveToBundle(PathFactory pf, int draggingPosition) { MPath path; if (curveBundle.Count == 0) { path = path1; } else { path = curveBundle[curveBundle.Count - 1]; } if (Vector3.Distance(path.GetPosition(draggingPosition), midPath.GetPosition(draggingPosition)) > Statics.bundleDist) { MPath newPath = pf.newPath(path1.GetColor(), path1.dotFrom, path1.dotTo); newPath.SetPositions(midPath.GetPositions()); curveBundle.Add(newPath); } }
public void addPath(MPath path) { var pathGroup = new List <int> (); pathGroup.Add(paths.Count); pathHomClasses.Add(pathGroup); paths.Add(path); Dictionary <int, int> dict = new Dictionary <int, int> (); var list = path.GetPositions(); for (int i = 0; i < statics.Count; i++) { dict.Add(i, WindingNumber(list, statics[i].transform.position)); } windingNumbersForObstacles.Add(dict); ConstructCanonicalPath(path); var canstring = ""; foreach (var num in path.canonicalPath) { canstring += num + " "; } Debug.Log("Canonical path " + path.pathNumber + " is: " + canstring); for (int i = 0; i < paths.Count - 1; i++) { CheckIfHomotopic(i, paths.Count - 1); } if (Statics.showingAlgebra) { AddPathAlgebra(paths.Count - 1, path); } Last.Push(MType.Path); }