Shear Rotate Scale

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.

The common pivot indicator

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 Tool

Simply click or click-drag to move the pivot to a new position. The current selection will move by the same amount. It allows the movement to be constrained to the primary axis by the Two Dimensional toggle.

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.

Rotate Tool

The rotate tool quite simply allows you to rotate things around the pivot. Click-drag the point you want to move, and it will try to rotate to follow the mouse.

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.

Scale Tool

The scale tool tries to apply a scaling transformation so that the start point + is brought to coincidence with the end point x. It also works on most primitives, provided that the object axes are aligned with the pivot axes. Similar to the move tool it has the option to constrain the scaling in one direction. It can also scale uniformly along both axes by the same magnitude.

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.

Shear Tool

The shear tool applies a shearing transformation so that the start point + is brought to coincidence with the end point x. It works only with point (polygon) objects - as you will expect it. It will still move the origin of primitive objects according to the transformation. I think this makes sense for multi-selection. There is the option to scale in the direction perpendicular to the direction of shearing.

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

Bounding box snap, is a snap plugin. It provides new things to snap to for all tools that make use of Cinema 4Ds snapping facilities, not just SRS tool. In its current version it allows snapping to the corners of object bounding boxes. Caveat: you have to guess the position of the corners since they are not indicated to avoid clutter.

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.

Working in 3D Views

The pivot plane is automatically picked aligned to the world axis most parallel to the camera axis. Every move, scale, etc. is done in the pivot plane. So the mouse cursor is always projected onto this plane. Otherwise it works like in 2D views.

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