Skip to content

[Feature]: VBL Pen tool for freehand topology drawing #5939

@KnutZuidema

Description

@KnutZuidema

Describe the Problem

Currently, drawing Vision Blocking Layer (VBL) or other topology types is limited to geometric shapes (Rectangles, Ovals, Polygons) or line-based tools. These tools often require multiple clicks and only apply the final shape once the drawing is completed (mouse release). This makes it difficult to draw complex, organic, or fine-grained VBL areas quickly and with real-time feedback.

The Solution you'd like

Add a "VBL Pen" tool that allows for freehand drawing of topology with a configurable radius. Key features should include:

  • Freehand Drawing: Continuous drawing while the left mouse button is held down.
  • Immediate Application: Topology changes should be applied incrementally during the mouse drag, providing real-time visual feedback on the map.
  • Configurable Radius: A dedicated radius control panel and support for dynamic resizing using Ctrl + Mouse Wheel.
  • Eraser Mode: Instant switching to eraser mode using the Shift key, with the cursor indicator changing color to reflect the mode.
  • Support for All Topology Types: The tool should respect the currently selected modes in the Topology Toolbar (Wall VBL, MBL, Hill VBL, etc.).

Alternatives that you've considered.

Using the Polygon tool or drawing many small rectangles, but these are inefficient and lack the fluid experience of a pen-style tool.

Additional Context

I have already developed a prototype implementation of this feature which includes:

  • VBLPenTool.java for the core logic.
  • Real-time incremental application of topology segments.
  • Integration with AppStatePersisted for radius persistence.
  • Immediate visual feedback for modifier keys (Shift for Erase).
  • Integration into the Topology toolbar using the Freehand icon.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions