public Vertex CreateVertex(Vector3 position, CreateOption createOption = CreateOption.ReuseExisting, SortOption sortOption = SortOption.SortNow) { if (createOption == CreateOption.ReuseExisting) { List <Vertex> existingVertices = FindVertices(position); if (existingVertices != null && existingVertices.Count > 0) { return(existingVertices[0]); } } Vertex createdVertex = new Vertex(position); vertices.Add(createdVertex, sortOption); return(createdVertex); }
private void RemoveVerticesMarkedForDeletion(HashSet <Vertex> markedForDeletion) { VertexCollecton NonDeleteVertices = new VertexCollecton(); for (int i = 0; i < Vertices.Count; i++) { Vertex vertexToCheck = Vertices[i]; if (!markedForDeletion.Contains(vertexToCheck)) { NonDeleteVertices.Add(vertexToCheck, SortOption.WillSortLater); } } // we put them in in the same order they were in, so we keep the state NonDeleteVertices.IsSorted = vertices.IsSorted; vertices = NonDeleteVertices; }
private void RemoveVerticesMarkedForDeletion(HashSet<Vertex> markedForDeletion) { VertexCollecton NonDeleteVertices = new VertexCollecton(); for (int i = 0; i < Vertices.Count; i++) { Vertex vertexToCheck = Vertices[i]; if (!markedForDeletion.Contains(vertexToCheck)) { NonDeleteVertices.Add(vertexToCheck, SortOption.WillSortLater); } } // we put them in in the same order they were in, so we keep the state NonDeleteVertices.IsSorted = vertices.IsSorted; vertices = NonDeleteVertices; }