Esempio n. 1
0
        public void InsertLinestring(int index, Linestring linestring)
        {
            Linestrings.Insert(index, linestring);

            UpdateBounds(linestring);

            SpatialIndex = null;

            CacheStartIndexes();
        }
Esempio n. 2
0
        public void AddLinestring(Linestring linestring)
        {
            Linestrings.Add(linestring);

            UpdateBounds(linestring);

            UpdateSpatialIndex(linestring, Linestrings.Count - 1);

            CacheStartIndexes();
        }
Esempio n. 3
0
        public void SetEmpty()
        {
            Linestrings.Clear();

            XMin = double.NaN;
            YMin = double.NaN;
            XMax = double.NaN;
            YMax = double.NaN;

            SpatialIndex = null;
        }
Esempio n. 4
0
        public bool RemoveLinestring(Linestring linestring)
        {
            bool result = Linestrings.Remove(linestring);

            foreach (Linestring l in Linestrings)
            {
                UpdateBounds(l);
            }

            SpatialIndex = null;

            CacheStartIndexes();

            return(result);
        }
Esempio n. 5
0
 public bool IsVertical(double tolerance) =>
 Linestrings.All(l => l.IsVerticalRing(tolerance));
Esempio n. 6
0
 public double GetArea2D()
 {
     return(Linestrings.Sum(r => r.GetArea2D()));
 }
Esempio n. 7
0
 public double GetLength2D()
 {
     return(Linestrings.Sum(l => l.GetLength2D()));
 }
Esempio n. 8
0
        public override int GetHashCode()
        {
            int hashCode = (Linestrings != null ? Linestrings.GetHashCode() : 0);

            return(hashCode);
        }
Esempio n. 9
0
 public IEnumerator <Line3D> GetEnumerator()
 {
     return(Linestrings.SelectMany(linestring => linestring).GetEnumerator());
 }