public override void Draw(System.Drawing.Graphics gc, Render.RenderParameter r, Render.RenderHint editState, Render.IDrawVisitor drawMethods, PointD mousePosition) { if (m_Param.Path != null) { /*if (editState.GetAttributes() == States.StateAttributes.Start) { if (r.StrokeFill != null) gc.FillPath(r.StrokeFill, (Tools.Model.VectorPath) m_Param.Path); gc.DrawPath(r.StrokeOutline, (Tools.Model.VectorPath)m_Param.Path); } else*/ if (editState == Render.RenderHint.Start) { Pen dashPen = (Pen)r.StrokeOutline.Clone(); dashPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot; if (m_Param.Path.PointCount > 0) { PointD firstPoint = (PointD)m_Param.Path.GetFirstPoint(); gc.DrawEllipse(dashPen, (float)firstPoint.X - Tools.Render.DrawHelper.TARGET_SIZE / 2.0f, (float)firstPoint.Y - Tools.Render.DrawHelper.TARGET_SIZE / 2.0f, (float)Tools.Render.DrawHelper.TARGET_SIZE, (float)Tools.Render.DrawHelper.TARGET_SIZE); if (r.StrokeFill != null) gc.FillPath(r.StrokeFill, (Tools.Model.VectorPath)m_Param.Path); gc.DrawPath(r.StrokeOutline, (Tools.Model.VectorPath)m_Param.Path); DrawRegionRepresentation(gc, r, drawMethods, mousePosition); } } /*else if (editState.GetAttributes() == States.StateAttributes.Change) { drawMethods.DrawNegativeSpace(gc, m_Param, r); drawMethods.DrawPositiveSpace(gc, m_Param, r); if (editState is States.RegionChange) { DrawRegionRepresentation(gc, r, mousePosition); ((States.RegionChange)editState).Handles.DrawHandles(gc, m_Param, r); } }*/ else if (editState == Render.RenderHint.Feedback) { drawMethods.DrawNegativeSpace(gc, m_Param.Path.InternalPath, r); drawMethods.DrawPositiveSpace(gc, m_Param.Path.InternalPath, r); if (!(this is ConveyorBeltFilter)) DrawRegionRepresentation(gc, r,drawMethods, mousePosition); } else { drawMethods.DrawNegativeSpace(gc, m_Param.Path.InternalPath, r); drawMethods.DrawPositiveSpace(gc, m_Param.Path.InternalPath, r); DrawRegionRepresentation(gc, r, drawMethods, mousePosition); // TODO ((States.IFilterHandles)editState).Handles.DrawHandles(gc, m_Param, r); } drawMethods.DrawHandles(gc, this, r); } }