public void AddEdge(Point3D p1, Point3D p2) { Edges.Add(new Line3D(p1, p2)); Point3D point1 = Vertices.Find(p => p == p1); Point3D point2 = Vertices.Find(p => p == p2); if (!AdjacencyMatrix.ContainsKey(point1)) { AdjacencyMatrix.Add(point1, new List <Point3D> { p2 }); } else { AdjacencyMatrix[point1].Add(p2); } if (!AdjacencyMatrix.ContainsKey(point2)) { AdjacencyMatrix.Add(point2, new List <Point3D> { p1 }); } else { AdjacencyMatrix[point2].Add(p1); } }