Transformation Gizmo

Transformation Gizmos (often called manipulators or widgets) are used by 3D modeling packages to transform objects without having to care about the actual numerical values. Ventuz has three Gizmos (Translate/Rotate/Scale) which can be activated with the respective buttons in the renderer window or by pressing short-cut keys (T, R, S) while the mouse focus is on the renderer window.

Note: The renderer has to be in Editing mode to show the gizmo. You can either switch between normal run and edit mode by pressing Tab while the renderer has the focus or by pressing the respective button in the renderer toolbar. While in editing mode, an orange selection highlight shows which objects are selected. Also note that during editing mode, no mouse input will be sent to the scene.

Each Gizmo has three axes and a center area. By clicking left mouse button on one of those areas, the gizmo is activated. If one of the axes is clicked left mouse button on, a mouse move while pressing left mouse button will cause a translation/rotation/scaling in that axis only. The center area has a different functionality for each Gizmo:

The transformation induced by the Gizmo has obviously to be stored in an Axis node. If there is a unique Axis associated with the current selection, that Axis is used. If the respective Axis does not exist or would affect objects outside the selection as well, the Gizmo is rendered in dark gray. This visualizes that a new Axis node will be inserted if the gizmo is used to transform the selection.


Things get interesting when nodes are linked multiple times in the scene. For such cases, Ventuz internally keeps information in addition to the scene selection which help it to distinguish between different instances of the same node. If the selected node and its associated Axis are linked multiple times, a gizmo will be renderer at all those positions and changing one of them will of course affect all instances (because there is only one actual axis in the scene). If however only the selection is linked multiple times but each instance of that selection has its own associated Axis, the gizmo will only be rendered at the position of the associated axis. In essence, Ventuz follows a "let's do the best we can"-strategy. Using multiple-referenced nodes adds a tremendous amount of complexity to the scene management and although there might be cases where the desired solution is obvious to the user, further analysis often shows that in a slightly different situation the solution would be deemed incorrect.

Unfortunately, the requirement of having a unique axis can cause some very complex situations if multiple objects are selected and new axes would have to be inserted. Therefore, it is in general not possible to transform a multi-selection unless the internal algorithm can figure out that all the selected nodes are associated with the same axis.

If an object has some rotation applied to it, moving the object along one of its local axes will often require a translation along all three axes. Similarly, translating/rotating/scaling can create - while achieving the correct visual result - odd numerical values. For users that are used to a property based workflow, the Gizmos can be changed to be property aligned by toggling the respective button in the render window. When in property-alignment mode, the axes of the gizmo are rendered such that they no longer are object-aligned but point in the direction of property change (i.e. the X-axis of the gizmo points in the direction the gizmo would move when the X-value of the respective Axis is changed in the Properties Editor).

Finally, the modifiers SHIFT, CTRL, SHIFT + CTRL can be used to slow down the rate of mouse movement to actual property change or snap the values to a regular interval.

See also: