public void ClearReferences() { foreach (GraphicItem g in _graphicItems) { GraphicItem.unpersist(g); } _graphicItems.Clear(); }
public override Value Evaluate(FSharpList <Value> args) { Geometry geom1 = (Geometry)((Value.Container)args[0]).Item; Geometry geom2 = (Geometry)((Value.Container)args[1]).Item; GeometryList result = geom1.intersect(geom2); foreach (Geometry g in _result) { GraphicItem.unpersist(g); } _result.Clear(); foreach (Geometry g in result) { Geometry restored = RestoreProperType(g); GraphicItem.persist(restored); _result.Add(restored); _graphicItems.Add(restored); } if (_result.Count == 1) { return(Value.NewContainer(_result[0])); } else { List <Value> return_values = new List <Value>(); foreach (Geometry g in _result) { return_values.Add(Value.NewContainer(g)); } return(Value.NewList(Utils.SequenceToFSharpList(return_values))); } }