Esempio n. 1
0
        public void ClearReferences()
        {
            foreach (GraphicItem g in _graphicItems)
            {
                GraphicItem.unpersist(g);
            }

            _graphicItems.Clear();
        }
Esempio n. 2
0
        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)));
            }
        }