Transform cage incorrect when layer has zero width
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 76/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- rust
- Domaine
- computer-graphics
Piste de recherche
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.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- Rust
- Étoiles
- 27.3k
- Forks
- 1.3k
- Merge moyen
- 16 h 57 min
- PR mergées (30 j)
- 87
Préparer son environnement
Nous n'avons pas encore vérifié les fichiers d'installation de ce projet. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de GraphiteEditor/Graphite
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
GraphiteEditor/Graphite#4601 · 5 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
GraphiteEditor/Graphite#4396 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
GraphiteEditor/Graphite#4311 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
GraphiteEditor/Graphite#3939 · 2 commentaires · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 3/5 1-2 jours Accessibilité débutants 72/100
GraphiteEditor/Graphite#4618 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de GraphiteEditor/Graphite
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
vercel-labs/agent-browser#2017 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
tursodatabase/turso#9405 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
PolyMeilex/Neothesia#447 ·
Les mainteneurs répondent en général sous 1 jour
-
backend::vllm diffusion multimodal
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
trezor/trezor-firmware#7985 ·
Les mainteneurs répondent en général sous 2 jours