Conversation
Sounds good, will take a look at this and get that added. |
Use Global and Local axes for movement and scaling, with parent-space conversion and separate undo entries for each drag. Preserve the existing Gimbal behavior and fit oriented scaling to the available XYZ channels. Keep the original parent basis while dragging objects in the timeline so the temporary drag container is never treated as a transform.
|
@mbandersmc Added this in 170afd2. Move and Scale now follow the selected Global/Local orientation too, including the combined transform tool. Local uses the active object's axes, and nested selections account for their parent transforms without applying the inherited transform twice. Also fixed a crash when dragging objects between parents in the timeline. The gizmo now keeps using the original parent until the drop completes. Scale keeps the existing rotation values, so stretches that would require shear are approximated using the XYZ scale channels. Gimbal keeps its previous behavior. |
|
Got around to checking this out, thanks for putting time into this PR. It seems fine in C++ but there's some issues on the GameMaker side and code consistency. Some issues and suggestions:
btw there is a feature-freeze approaching in a couple days for 2.1. If addressing these would require a large refactor, don’t feel pressured to invest more time just to squeeze it in. |

Adds Global and Local rotation to the viewport tools. The existing Euler-channel behavior is named Gimbal and remains the default.
Adapted from Mine-imator Vexel Build (MI VB), originally introduced in Vexel-Studios/vexel-mine-imator#111.
The button below the viewport toolbar cycles between the three spaces, as does the remappable Q shortcut. Each space has its own icon and ring colors. Local uses the active object's axes when several objects are selected.
The choice is saved in program settings. Project files and animation curves still use Euler rotations, and changing the space does not edit keyframes or add an undo step.
Compatibility
2.1, alongside the rendering work in Mine-imator 2.1 rendering (WIP) #45.