Bug 1454 - GraphUI Scene: Elevate active (selected) shape (add z-offset) and select (pick) in Z descending order
Summary: GraphUI Scene: Elevate active (selected) shape (add z-offset) and select (pic...
Alias: None
Product: GraphUI
Classification: JogAmp
Component: Core (show other bugs)
Version: 2.6.0
Hardware: All all
: P4 normal
Assignee: Sven Gothel
Depends on: 1458
Blocks: 1464
  Show dependency treegraph
Reported: 2023-09-23 20:37 CEST by Sven Gothel
Modified: 2023-09-30 01:48 CEST (History)
0 users

See Also:
SCM Refs:
84b26f9efcd62cc8c41bf3cd867482080d16d7a0 9f900c7f88d70808e24ed8b48087126dad0c3188 4b8574c63e100f0ef8bb2ad292d71f612e6cfceb
Workaround: ---


Note You need to log in before you can comment on or make changes to this bug.
Description Sven Gothel 2023-09-23 20:37:46 CEST
Picking (select) a shape shall process all shapes in Z descending order, 
i.e. top shape first. This is a bug currently.

Note: Picking (selecting) a shape using a (mouse-)pointer device
is active by mouse-moved and not only mouse-clicked.
Therefor, we select shapes by mouse-over.

The active selected shape shall have an elevated Z offset to be rendered on top
of the others on same plane.
- This avoids them being rendered below others while moving them around etc.
- This also avoids flickering of overlapping shapes with mouse over.
- This stabilizes the UI experience
Comment 1 Sven Gothel 2023-09-23 20:45:16 CEST
Feature added w/ commit 84b26f9efcd62cc8c41bf3cd867482080d16d7a0
Comment 2 Sven Gothel 2023-09-24 01:51:53 CEST
Resolution uses a multiple of current Z-Epsilon, see Bug 1458
Comment 3 Sven Gothel 2023-09-24 02:40:26 CEST
Bug 1454 - GraphUI Scene: Make active ZOffset scale configurable
Comment 4 Sven Gothel 2023-09-30 01:48:15 CEST
commit 4b8574c63e100f0ef8bb2ad292d71f612e6cfceb

    Bug 1454 + Bug 1464: Maintain a Shape local 'zOffset' and only consider it for sorting w/o actually modifying the position (enogh to be painted on top and for selection)
    Also use a simplified comparison using only float relational operations w/o NaN/Inf bit-stuff or epsilon,
    as it should be accurate enough for this cause.
    This shall also resolve Bug 1454, as we no more modify the position directly
    but the local zOffset field .. but this has to be seen (data race).