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.
Once the primary data (
Item::elementandList::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 usew=0orw=1to apply or skip factoring in the translation.