private void RebuildList(VectorImage img)
        {
            overlayPoints.Clear();
            List <Vector2D> vertices = img.GetPrimitives <Vector2D>();

            foreach (Vector2D v in vertices)
            {
                if (PrimitiveRenderData.Get(v).Text != "")
                {
                    double dist = GetClosestDistance(v, vertices);
                    overlayPoints.Add(new OverlayVector2D(v, dist));
                }
            }
            overlayPoints.Sort((a, b) => b.distance.CompareTo(a.distance));
        }
        private void DrawOverlay(RenderContext context)
        {
            for (int i = 0; i < overlayPoints.Count; i++)
            {
                if (overlayPoints[i].distance * context.DrawScale < 25.0f)
                {
                    break;
                }

                string label = PrimitiveRenderData.Get(overlayPoints[i].v).Text;

                SolidBrush drawBrush = new SolidBrush(Colors.ScientificText);
                Font       font      = new Font("Arial", 10);

                Vector2D p = context.PointToScreen(overlayPoints[i].v);
                context.Graphics.DrawString(label, font, Colors.ScientificText, p);
            }
        }