Shear Rotate Scale (SRS) comprises modelling tools intended as alternative and extension to standard tools. There are a shear tool, a rotation tool, a scaling tool, a move tool, and a bounding box snapping plugin. But why do we need this? I claim that these tools can speed up workflow in situations where (i) precision is required for alignment of object, and (ii) a pivot is needed relative to which a scaling, rotation operation is carried out. For instance, you want to scale a cube primitive relative to the bottom left corner while moving top right corner. Default tools cannot do this. This scale tool can.
Remarks:This plugin is a refurbishment of the old Shear Rotate Scale as well as intended as replacement for Transform Tool which I never really liked. Now full snapping functionality of Cinema 4D R14 is supported. It is designed to be used in 2D views mostly. Compared to Transform tool (and C4D tools) you will find that usability is rather clunky in 3D Views. The code to scale primitives was taken from Transform Tool with all its limitations and benefits.
Command Icons: Bounding box snap can be found like any ordinary plugin in the command manager.
All SRS tools use a common pivot. Its location and orientation are shared by all SRS tools. As aforementioned the pivot is essential for SRS tool, e.g. to rotate around but also e.g. to define an axis for movement.
At the beginning of user interaction, no pivot is set. Therefore the first action of a click or drag in SRS tools is to set the pivot. When the pivot has been set, normal tool operations start, where objects are modified. Shift-drag to reset the pivot. A movable direction indicator [(*), see figure] shows the direction of the primary axis, if required, and allows it to be changed. This is used for instance in the move tool, where the move can be constrained to the primary axis, or in the shear tool, where both axis work differently.
SRS tools operate in the 2D plane which is spanned by the cross hair axes. When the pivot is set, the plane is currently oriented normal to one of the world axes X, Y or Z, depending on the camera orientation. In future there may be finer control.
Pivot: The centre (+) is indicated by a big cross hair. It is movable by dragging the centre dot or by holding shift and dragging. The direction indicator (*) is only shown when appropriate. It can be moved by dragging the triangle at the end or by holding shift-ctrl and dragging. Holding shift while dragging enables quantization.
The pivot is remembered for each object, i.e. when switching between objects it will be restored to the last known state on the current object. In case of multi-selections there will be only one pivot which is associated with one of the involved objects, possibly overwriting the previous pivot that was for the single object.
Move:X indicates the new position of the pivot. Red and green line (*) show the projection of the movement vector onto the axes of the pivot.
Constraint Move: Only movement along the primary axis is allowed here. The axis is not required to be aligned with the world axes.
Rotation:The + marks the start point. The x marks the end point. Note: the cursor (*) will snap according to Cinema 4Ds snapping system. The end marker x is guided by the cursor but cannot follow it exactly in general.
Scaling: Just grab a point and move it around.
Misaligned Axes: Don't expect it to work on primitive objects like this. With point (polygon) objects this works as expected of course.
Shearing: tool in action. The shearing movement is applied as shown along the primary pivot axis. Initially the object was a cuboid.
Bounding Box Snap Demo: This kind of snapping can be very useful to align objects with rounded edges as seen here. The white outline is drawn by the bounding box snap plugin. It only appears when a snap is detected. Left: Using the scale tool. Pivot snaps to bottom left corner. Start point snaps to top right corner. Right: End point is dragged to corner of another objects.
3D Scale Tool Example: Left: Scaling is constrained to the primary axis (x axis). The cursor snaps to a bounding box corner somewhat behind the pivot plane (+). The starting point (*) is obtained by projection to the pivot plane. Right: Next the mouse is moved and the cursor snaps to some grid point (x). This location is again projected to obtain point (*). The actual endpoint is at the same height as the starting point (*) on the left. If scaling in two directions was allowed, the object would collapse flat on the X-Z-plane