public void RemoveVegetationSemantic(VegetationSemantic vegetationBoundary) { vegetationBoundaries.Remove(vegetationBoundary); RefreshVegetation(); }
protected void ParseElement(XmlTextReader r) { bool readEnd = true; // set the field in this object based on the element we just read switch (r.Name) { case "name": // read the value r.Read(); if (r.NodeType != XmlNodeType.Text) { return; } name = string.Format("{0} - unique boundary - {1}", r.Value, uniqueNum); uniqueNum++; break; case "points": ParsePoints(r); readEnd = false; break; case "boundarySemantic": BoundarySemanticType type = BoundarySemanticType.None; for (int i = 0; i < r.AttributeCount; i++) { r.MoveToAttribute(i); // set the field in this object based on the element we just read switch (r.Name) { case "type": switch (r.Value) { case "SpeedTreeForest": type = BoundarySemanticType.SpeedTreeForest; break; case "WaterPlane": type = BoundarySemanticType.WaterPlane; break; case "Vegetation": type = BoundarySemanticType.Vegetation; break; } break; } } r.MoveToElement(); //Moves the reader back to the element node. switch (type) { case BoundarySemanticType.SpeedTreeForest: Forest forest = new Forest(sceneNode, r); this.AddSemantic(forest); break; case BoundarySemanticType.WaterPlane: WaterPlane water = new WaterPlane(sceneNode, r); this.AddSemantic(water); break; case BoundarySemanticType.Vegetation: VegetationSemantic vegetationBoundary = new VegetationSemantic(r); this.AddSemantic(vegetationBoundary); break; default: break; } readEnd = false; break; } if (readEnd) { // error out if we dont see an end element here r.Read(); if (r.NodeType != XmlNodeType.EndElement) { return; } } }
public void AddVegetationSemantic(VegetationSemantic vegetationBoundary) { vegetationBoundaries.Add(vegetationBoundary); RefreshVegetation(); }