Manipulator(3U) InterViews Reference Manual Manipulator(3U)
Manipulator - base class for defining direct-manipulation semantics
Tools use manipulator objects to encapsulate the mechanics of direct manipulation. Manipulators turn user input events into an animation
sequence that characterize the manipulation. Manipulators abstract the manipulation into three phases: the grasping phase, which occurs at
the start of the manipulation and lets the manipulator initialize state it will need in later phases; the manipulating phase, during which
the manipulator accepts input events and generates graphical output that characterizes successive frames of the animation; and finally the
effect phase, which occurs at the end of the manipulation and lets the manipulator finalize its state. Manipulator is an abstract base
class. Subclasses support different manipulation semantics.
MANIPULATOR PUBLIC OPERATIONS
virtual void Grasp(Event&)
Grasp is called once at the beginning of direct manipulation to allow the manipulator to initialize its internal state based on the
virtual boolean Manipulating(Event&)
Manipulating is called repeatedly during the manipulation whenever a new event arrives, until it returns false. Each call to Manip-
ulating should produce a new frame of the animation that characterizes the manipulation.
virtual void Effect(Event&)
Effect is called once at the end of direct manipulation to allow the manipulator to finalize its internal state based on the last
event supplied to the Manipulating operation.
virtual void SetViewer(Viewer*)
virtual Viewer* GetViewer()
virtual void SetTool(Tool*)
virtual Tool* GetTool()
Get and set the viewer, in which the manipulator generates graphical output, and the tool that created the manipulator. These oper-
ations do nothing by default; subclasses that require this information must redefine these operations to assign and retrieve the
state they require.
MANIPULATOR PROTECTED OPERATIONS
The constructor is protected to disallow instantiation of abstract base class objects.
Event(3I), Tool(3U), Viewer(3U)
Unidraw 1 August 1990 Manipulator(3U)