VTK
vtkInteractorStyleRubberBand3D.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkInteractorStyleRubberBand3D.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 /*-------------------------------------------------------------------------
16  Copyright 2008 Sandia Corporation.
17  Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
18  the U.S. Government retains certain rights in this software.
19 -------------------------------------------------------------------------*/
38 #ifndef vtkInteractorStyleRubberBand3D_h
39 #define vtkInteractorStyleRubberBand3D_h
40 
41 #include "vtkInteractionStyleModule.h" // For export macro
43 
45 
46 class VTKINTERACTIONSTYLE_EXPORT vtkInteractorStyleRubberBand3D : public vtkInteractorStyleTrackballCamera
47 {
48 public:
51  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
52 
53  void OnLeftButtonDown() VTK_OVERRIDE;
54  void OnLeftButtonUp() VTK_OVERRIDE;
55  void OnMiddleButtonDown() VTK_OVERRIDE;
56  void OnMiddleButtonUp() VTK_OVERRIDE;
57  void OnRightButtonDown() VTK_OVERRIDE;
58  void OnRightButtonUp() VTK_OVERRIDE;
59  void OnMouseMove() VTK_OVERRIDE;
60  void OnMouseWheelForward() VTK_OVERRIDE;
61  void OnMouseWheelBackward() VTK_OVERRIDE;
62 
64 
67  vtkSetMacro(RenderOnMouseMove, bool);
68  vtkGetMacro(RenderOnMouseMove, bool);
69  vtkBooleanMacro(RenderOnMouseMove, bool);
71 
75  enum
76  {
77  SELECT_NORMAL = 0,
78  SELECT_UNION = 1
79  };
80 
82 
85  vtkGetMacro(Interaction, int);
87 
88  enum
89  {
94  SELECTING
95  };
96 
98 
103  vtkGetVector2Macro(StartPosition,int);
104  vtkGetVector2Macro(EndPosition,int);
106 
107 protected:
109  ~vtkInteractorStyleRubberBand3D() VTK_OVERRIDE;
110 
111  // The interaction mode
112  int Interaction;
113 
114  // Draws the selection rubber band
115  void RedrawRubberBand();
116 
117  // The end position of the selection
118  int StartPosition[2];
119 
120  // The start position of the selection
121  int EndPosition[2];
122 
123  // The pixel array for the rubber band
124  vtkUnsignedCharArray* PixelArray;
125 
126  // Whether to trigger a render when the mouse moves
127  bool RenderOnMouseMove;
128 
129 private:
131  void operator=(const vtkInteractorStyleRubberBand3D&) VTK_DELETE_FUNCTION;
132 };
133 
134 #endif
static vtkInteractorStyleTrackballCamera * New()
a simple class to control print indentation
Definition: vtkIndent.h:33
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
dynamic, self-adjusting array of unsigned char
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
A rubber band interactor for a 3D view.
interactive manipulation of the camera
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
void OnLeftButtonDown() override
Event bindings controlling the effects of pressing mouse buttons or moving the mouse.