Closed TheDuckCow closed 5 years ago
Has now been largely implemented, simpluneed to wrap into s mofs operator and determine the best UI location and/or hotkey to trigger scaling.
Demo here: https://twitter.com/theduckcow/status/899513916149157888
Note to implement the modal,will have to rethink how the caching or undoing will work while minimizing overhead or raw duplication of all UV data initial state, though it might be the only way.
Note to self: realizing it's a significant effort to implement as a natural modal operator. On top of having the basic function working, it also needs to implement (to make consistent with blender):
zero
versus NUMPAD_0
result in keyboard input of 0x 0 . 5
and x / 2
and 2 / x
all result in the same result: all selected UV's are scaled by 0.5 or a half, constrained along the x axis. Note that for example x 0 . 5 x
would the be same as entering 0 . 5
as the double x's essentially cancel out. Likewise, typing / once indicates to invert the number provided, and pressing / again indicates to undue this effect. Goals:
-
, value inputs like 0.5
, and inverting via /
, but no interpretation of shift or single-axis scalingWhile workarounds exist to implement scaling using built in method and capabilities (e.g. via splitting vertices, scaling in UV editor, and then removing duplicates), that introduces changes of original geometry and is overall a destructive workflow. This method will be direct data manipulations of the UV maps only.
Reverted on the plans and ambitions above in favor of an "MVP". Using the redo last slider, may revisit making this a modal operator sometime in the future for personal educational purposes. Basic version without modal is currently in dev and will release in 3.1.1.
The "why didn't I create this 4 years ago" operator we've all been waiting for. The functionality would be similar to having a modal setting of "individual origins" in the 3D view, but for individual faces in the UV editor view. This helps combat non-perfect pixel lineups or materials whose settings make UV edges bleed between pixels of a texture.
This should be implemented as a modal operator, potentially with its own shortcut key (some modification of s).