Use Case: Brushing

Summary

  • Scope: Shade, Hydrology, Soil Texture and Additional Layers
  • Level: User Goal
  • Actors: App User
  • Brief: User is able to mark areas easily by means of brushing.

Scenarios

  • Precondition: The user is in one of brushing layers (see Scope).

  • Main success scenario:

    The user is able to draw areas on the map via the following steps:

    • Pressing left mouse and dragging draws the area
    • Releasing left mouse button melts all drawn areas together and makes the combined area concave if needed
    • At this point the area is visually highlighted as "unconfirmed"
    • Pressing right mouse button confirms the area and adds it to the map

    The user is able to draw areas of different sizes via brush thickness configuration.
    The user is able to edit and remove any of the confirmed areas.
    Undo, Redo actions have respective effects on confirmed areas.

  • Alternative scenario:

    The user begins drawing an area but does not complete the full confirmation flow:

    • Pressing left mouse and dragging starts the drawing as expected.
    • Releasing the left mouse button highlights the area as "unconfirmed".
    • Instead of confirming with the right mouse button, the user:
      • Cancels the drawing using an escape key.
      • Exits drawing mode by clicking close button on drawing explanation toast.
      • Switches layer, tool or interacts with another element on the map.
    • The unconfirmed area is discarded and not added to the map.
  • Error scenario: The user attempts to add, move or edit a drawing but the app is experiencing technical difficulties and is unable to complete the request, displaying an error message.

  • Postcondition:

    • Confirmed areas are persisted in the map (i.e. refresh of screen does not discard them) and can be edited or removed later.
    • Unconfirmed or incomplete areas are discarded automatically.
  • Non-functional Constraints:

    • Non-confirmed areas are visually distinguishable from confirmed areas.
    • Drawing should be smooth and responsive, even on large or complex maps.