Пример #1
0
        /// <summary>
        /// Performs any processing when the line associated with this topology
        /// is being de-activated.  This should mark adjacent polygons for deletion, and
        /// remove line references from any intersections.
        /// </summary>
        internal override void OnLineDeactivation()
        {
            // By default, we don't cleanup the starting terminal of each section. Unless
            // the preceding section was an overlap (since intersections aren't cross-referenced
            // to overlaps).
            bool doFrom = false;

            foreach (SectionTopology s in m_Sections)
            {
                if (s.IsOverlap)
                {
                    doFrom = true;
                }
                else
                {
                    Topology.MarkPolygons(s);

                    // The starting terminal only needs to be cleaned up if the preceding
                    // section was an overlap.
                    if (doFrom)
                    {
                        OnLineDeactivation(s.From);
                        doFrom = false;
                    }

                    OnLineDeactivation(s.To);
                }
            }
        }
Пример #2
0
        /// <summary>
        /// Performs any processing when the line associated with this topology
        /// is being de-activated.  This should mark adjacent polygons for deletion, and
        /// remove line references from any intersections.
        /// </summary>
        internal override void OnLineDeactivation()
        {
            // Mark adjacent polygons for deletion
            Topology.MarkPolygons(this);

            // Don't need to do anything about intersections, since LineTopology relates
            // to a complete line, and complete lines must terminate on concrete PointFeature
            // objects.
        }