17.2. Types of Draggers

For all draggers subclassed from SoDragger SoDragger SoDragger , the user employs a click-drag-release motion with the mouse. Table 17.1, “Uses of Draggers” indicates the use of each dragger subclassed from SoDragger SoDragger SoDragger . For example, the drag-point dragger responds to dragging by translating in three dimensions.

Subclasses of SoDragger SoDragger SoDragger fall into two general categories: simple draggers and compound draggers. In general, simple draggers perform only one operation, such as a scale or a translation. Compound draggers perform several operations and are composed of multiple simple draggers. Simple draggers can be used in three ways:

  • You can connect the field of a simple dragger to other fields or to engines in the scene graph. This is a simple way to set up dependencies within the scene graph.

  • You can write callback functions that are performed when interaction starts or finishes, whenever the mouse moves, or when the value in the dragger's field changes.

  • You can use the simple draggers as building blocks to create more complex draggers.

Compound draggers are similar to simple draggers, except that they have more parts because they are comprised of two or more draggers. The SoTransformBoxDragger SoTransformBoxDragger SoTransformBoxDragger , for example, uses a scale dragger, three rotators, and six translators.

Dragger Classes

Figure 17.1.  Dragger Classes



Table 17.1.  Uses of Draggers

Dragger

Use

SoCenterballDragger

rotation, center

SoDirectionalLightDragger

rotation

SoDragPointDragger

translation

SoHandleBoxDragger

translation, scale

SoJackDragger

rotation, translation, uniform scale (three dimensions)

SoPointLightDragger

translation

SoRotateCylindricalDragger

rotation

SoRotateDiscDragger

rotation

SoRotateSphericalDragger

rotation

SoScale1Dragger

scale (one dimension)

SoScale2Dragger

scale (two dimensions)

SoScaleUniformDragger

uniform scale (three dimensions)

SoScale2UniformDragger

uniform scale (two dimensions)

SoSpotLightDragger

translation, rotation, cone angle

SoTabBoxDragger

scale, translation

SoTabPlaneDragger

scale (two dimensions), translation (two dimensions)

SoTrackballDragger

rotation, scale

SoTransformBoxDragger

rotation, translation, scale

SoTranslate1Dragger

translation (one dimension)

SoTranslate2Dragger

translation (two dimensions)