Example #1
0
        /// <summary>
        /// Ensures this feature is clean after some sort of edit. If this point has been marked inactive,
        /// any incident topological sections will be merged.
        /// </summary>
        internal override void Clean()
        {
            if (IsInactive)
            {
                // If any topological lines pass THROUGH this point, ensure they have
                // been marked as moved (force recalculation of intersections).

                IDivider[] dividers = this.IncidentDividers();

                foreach (IDivider d in dividers)
                {
                    if (d is SectionDivider)
                    {
                        LineFeature line = d.Line;
                        if (!line.IsInactive && line.StartPoint != this && line.EndPoint != this)
                        {
                            line.ResetTopology();
                        }
                    }
                }
            }

            base.Clean();
        }