/**
  * Make a given manipulator visible and active in a given window. The window must be registered.
  */
 public synchronized void showManipInWindow(Manip manip, AWTGLAutoDrawable window) {
   WindowInfo info = (WindowInfo) windowToInfoMap.get(window);
   if (info == null) {
     throw new RuntimeException("Window not registered");
   }
   info.manips.add(manip);
   Set windows = (Set) manipToWindowMap.get(manip);
   if (windows == null) {
     windows = new HashSet();
     manipToWindowMap.put(manip, windows);
   }
   windows.add(window);
 }
 /**
  * Make the ManipManager aware of the existence of a given window. This causes mouse and mouse
  * motion listeners to be installed on this window; see setupMouseListeners, below.
  */
 public synchronized void registerWindow(AWTGLAutoDrawable window) {
   windowToInfoMap.put(window, new WindowInfo());
   setupMouseListeners(window);
 }