GraphiteEditor / GraphiteEditor/Graphite
DAffine2 handling with "transform" as the primary attribute
- Dominant language
- Rust
- Stars
- 27.2k
- Forks
- 1.3k
- Avg merge
- 20h 5m
- Merged PRs (30d)
- 57
Description
Once the primary data (`Item::element` and `List::element`) live as equals with the attributes, meaning the element is no longer anonymous, we can treat the `"transform"` attribute as either secondary (living on other graphical content) or primary (being the first column in the Data panel). This solves the current problem where the Transform node cannot produce or edit values as an element, when it is designed to use the `"transform"` attribute exclusively.
Relatedly, we can also potentially distinguish a Vec2 value (`DVec2`) passed on a wire by its primary element/attribute name being `"position"` or `"direction"` to determine if a transformation matrix applied to it should use `w=0` or `w=1` to apply or skip factoring in the translation.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by tracing how Item::element, List::element, graphical attributes, and the Transform node currently represent and edit values. Clarify the primary-versus-secondary "transform" model and the proposed DVec2 position/direction distinction, then define tests for element editing and translation handling before implementation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- computer-graphics
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100