Provided by: ivtools-dev_2.0.11d.a1-3build1_amd64 bug

NAME

       Manipulator - base class for defining direct-manipulation semantics

SYNOPSIS

       #include <Unidraw/manip.h>

DESCRIPTION

       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 initiating event.

       virtual boolean Manipulating(Event&)
              Manipulating is called repeatedly during the manipulation whenever a new event arrives,  until  it
              returns  false.   Each  call  to  Manipulating  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 operations do nothing by default;  subclasses  that  require  this
              information must redefine these operations to assign and retrieve the state they require.

MANIPULATOR PROTECTED OPERATIONS

       Manipulator()
              The constructor is protected to disallow instantiation of abstract base class objects.

SEE ALSO

       Event(3I), Tool(3U), Viewer(3U)

Unidraw                                           1 August 1990                                  Manipulator(3U)