示例#1
0
        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);
        }
示例#2
0
        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;
        }
示例#3
0
		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;
		}