SoTransformerDragger

InventorModule
genre InventorDraggers
author Silicon Graphics Inc
package MeVisLab/Standard
definition inventor.def

Purpose

SoTransformerDragger is a dragger shaped like a box. It features small cubes at the corners and small balls protruding from the center of each face. Click and drag any face of the box for 2D translation in the plane of that face. Drag any corner cube to scale the box uniformly. Select any of the mid-face balls to rotate the entire dragger about its center.

The SoTransformerDragger utilizes locate highlighting, allowing you to identify which part you are about to select before pressing the mouse button. By default, the locate highlight color is gold.

As with all draggers, if you change the fields, the dragger will adjust to match the new settings.

Remember: This is not a SoTransform! If you want to move other objects with this dragger, you can either:

1 Use a SoTransformerManip, which is subclassed from SoTransform. It creates one of these draggers and uses it as the interface to change its fields. 2 Use field-to-field connections to connect the fields of this dragger to those of any SoTransform node.

Interaction

Click and drag any face to translate the dragger within the plane of that face. The selected face will highlight in yellow. While you drag, yellow feedback arrows display the two directions of motion. Press the Shift key, and the arrows will turn orange; you may now choose between these two directions to constrain the motion. The direction you move the cursor in will determine which direction is selected. Pressing the Ctrl key allows the dragger to translate perpendicular to that plane. The translation field is modified as the face is dragged.

Click a corner to scale the dragger. The selected corner will turn yellow, and radial lines will indicate that you may move toward and away from the center of the box. Drag radially to perform a uniform scale. Press the Ctrl key to scale about the opposite corner instead of the center of the box.

To stretch the dragger non-uniformly, press when dragging the corner cube. You will see three orange arrows indicating that your gesture will determine which direction to choose. Move the cursor, and the selected arrow will turn yellow while the others disappear. The dragger will stretch only in the selected direction. Pressing Ctrl at the same time allows you to stretch the dragger while keeping the opposite side pinned in place. When you drag a corner, this modifies the Scale Factor and possibly the translation field of the dragger.

Click one of the spherical knobs to rotate the dragger. Upon clicking, you will see two orange lines and two purple circles. The purple circles indicate the two ways you can rotate. The orange lines represent the two choices for your mouse gesture. Each line initiates movement around one of the two circles. Once you move the cursor far enough, the selected line turns yellow, and you begin rotating the dragger about the chosen circle. The other circle and line will disappear.

To perform unconstrained (“free”) rotation, press Shift while dragging the spherical knob. There will be no choices; instead, all three purple circles will be displayed, forming a ball that you can roll around. Regardless of how you rotate, dragging the spherical knobs will modify the Rotation field of the dragger. Depending on how it is centered and what transforms precede it in the scene graph, rotation is likely to affect the Translation and Scale Factor fields as well.

Pressing the Ctrl key will change the center of rotation in both constrained and unconstrained cases. By default, rotation occurs about the center of the bounding box. With Ctrl pressed, rotation occurs about the middle of the opposite side of the bounding box. The purple feedback will change to illustrate this; the feedback circles increase in size, and purple crosshairs appear at the new rotational center.

Windows

Default Panel

../../../Modules/Inventor/InventorBase/mhelp/Images/Screenshots/SoTransformerDragger._default.png

Output Fields

self

name: self, type: SoNode

Parameter Fields

Field Index

enable: Bool
Is Active: Bool
Min Disc Rot Dot: Float
Rotation: Rotation
Scale Factor: Vector3
Translation: Vector3

Visible Fields

Is Active

name: isActive, type: Bool, persistent: no

Shows whether the dragger is active.

Translation

name: translation, type: Vector3, default: 0 0 0

Sets and shows the position of the dragger.

Scale Factor

name: scaleFactor, type: Vector3, default: 1 1 1

Sets and shows the scale of the dragger.

Rotation

name: rotation, type: Rotation, default: 0 0 1 0

Sets and shows the orientation of the dragger.

Min Disc Rot Dot

name: minDiscRotDot, type: Float, default: 0.025

Sets the minimum dot product between eyeDir and the rotPlane normal before switching from record-player-type rotation to rolling-pin-type rotation. This transition is implemented to prevent rotations from becoming distorted when the circle is edge-on. The value lies in the range [0-1]. It is best to leave this setting unchanged.

Hidden Fields

enable

name: enable, type: Bool, default: TRUE