Transform cage incorrect when layer has zero width
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 76/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- rust
- Bereich
- computer-graphics
Rechercherichtung
Reproduce the zero-width layer case with the listed rectangle and select-tool steps, then read the transform handling in node-graph/libraries/rendering/src/renderer.rs around line 3293 and editor/src/messages/tool/tool_messages/select_tool.rs around lines 771-774. Compare the two singular-transform paths and verify that the transform cage remains aligned without the reported offset when the scale is zero.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Reproduction
- New document
- Draw rectangle
- Switch select tool
- s x 0 (or set the scale x to be zero in the properties panel).
- Observe transform bounds/cage offset
Video
https://github.com/user-attachments/assets/56e9ec75-549a-435d-8293-a3cf434e7377
Relevant code
When putting into the click targets, the inverse of the transform is applied. However if det=0 then the identity is used:
https://github.com/GraphiteEditor/Graphite/blob/ae321b3409113b238f1482a5ad71cbfff6929602/node-graph/libraries/rendering/src/renderer.rs#L3293
However in the select tool if the transform det=0, a random small number is added to it and the inverse of that transform is used:
https://github.com/GraphiteEditor/Graphite/blob/ae321b3409113b238f1482a5ad71cbfff6929602/editor/src/messages/tool/tool_messages/select_tool.rs#L771-L774
This has the effect of applying any translation twice for the bounding box when det=0.
- Vorherrschende Sprache
- Rust
- Sterne
- 27.3k
- Forks
- 1.3k
- Ø Merge
- 15 Std. 40 Min.
- Gemergte PRs (30 T.)
- 85
Entwicklungsumgebung
Die Einrichtungsdateien dieses Projekts haben wir noch nicht geprüft. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus GraphiteEditor/Graphite
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
GraphiteEditor/Graphite#4601 · 5 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
GraphiteEditor/Graphite#4396 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
GraphiteEditor/Graphite#4311 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
GraphiteEditor/Graphite#3939 · 2 Kommentare · 1 Reaktion ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 72/100
GraphiteEditor/Graphite#4618 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in GraphiteEditor/Graphite
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
linebender/parley#849 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
boxlite-ai/boxlite#1729 ·
Maintainer antworten meist innerhalb von 1 Tag
-
external
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
langchain-ai/docs#6255 ·
Maintainer antworten meist innerhalb von 1 Tag
-
P2 testing
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
Maintainer antworten meist innerhalb von 1 Tag