// .NAME vtkPVBoxZoom - Zooms into a box selected by the user.
// .SECTION Description
// vtkPVBoxZoom allows the user to interactively
// manipulate the camera, the viewpoint of the scene.
// Selecting a box with the mouse zooms into that area.

#ifndef __vtkPVBoxZoom_h
#define __vtkPVBoxZoom_h

#include "vtkCameraManipulator.h"

class VTK_EXPORT vtkPVBoxZoom : public vtkCameraManipulator
{
public:
  static vtkPVBoxZoom *New();
  vtkTypeRevisionMacro(vtkPVBoxZoom, vtkCameraManipulator);
  void PrintSelf(ostream& os, vtkIndent indent);
  
  // Description:
  // Event bindings controlling the effects of pressing mouse buttons
  // or moving the mouse.
  virtual void OnMouseMove(int x, int y, vtkRenderer *ren,
                           vtkRenderWindowInteractor *rwi);
  virtual void OnButtonDown(int x, int y, vtkRenderer *ren,
                            vtkRenderWindowInteractor *rwi);
  virtual void OnButtonUp(int x, int y, vtkRenderer *ren,
                          vtkRenderWindowInteractor *rwi);
  
protected:
  vtkPVBoxZoom();
  ~vtkPVBoxZoom();

  int xPos;
  int yPos;


  vtkPVBoxZoom(const vtkPVBoxZoom&); // Not implemented
  void operator=(const vtkPVBoxZoom&); // Not implemented
};

#endif
