GraphiteEditor / GraphiteEditor/Graphite

DAffine2 handling with "transform" as the primary attribute

Open
#4,451 0 comments 0 reactions 0 assignees View on GitHub
Graphene
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.