VTK  9.2.6
vtkContextTransform.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkContextItem.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 
48 #ifndef vtkContextTransform_h
49 #define vtkContextTransform_h
50 
51 #include "vtkAbstractContextItem.h"
52 #include "vtkRenderingContext2DModule.h" // For export macro
53 #include "vtkSmartPointer.h" // Needed for SP ivars.
54 #include "vtkVector.h" // Needed for ivars.
55 
56 class vtkTransform2D;
57 
58 class VTKRENDERINGCONTEXT2D_EXPORT vtkContextTransform : public vtkAbstractContextItem
59 {
60 public:
62  void PrintSelf(ostream& os, vtkIndent indent) override;
63 
68 
74  void Update() override;
75 
79  bool Paint(vtkContext2D* painter) override;
80 
84  virtual void Identity();
85 
90  virtual void Translate(float dx, float dy);
91 
96  virtual void Scale(float dx, float dy);
97 
101  virtual void Rotate(float angle);
102 
107 
112 
117 
119 
123  vtkSetMacro(PanMouseButton, int);
124  vtkGetMacro(PanMouseButton, int);
126 
128 
132  vtkSetMacro(PanModifier, int);
133  vtkGetMacro(PanModifier, int);
135 
137 
141  vtkSetMacro(SecondaryPanMouseButton, int);
142  vtkGetMacro(SecondaryPanMouseButton, int);
144 
146 
150  vtkSetMacro(SecondaryPanModifier, int);
151  vtkGetMacro(SecondaryPanModifier, int);
153 
155 
159  vtkSetMacro(ZoomMouseButton, int);
160  vtkGetMacro(ZoomMouseButton, int);
162 
164 
168  vtkSetMacro(ZoomModifier, int);
169  vtkGetMacro(ZoomModifier, int);
171 
173 
177  vtkSetMacro(SecondaryZoomMouseButton, int);
178  vtkGetMacro(SecondaryZoomMouseButton, int);
180 
182 
186  vtkSetMacro(SecondaryZoomModifier, int);
187  vtkGetMacro(SecondaryZoomModifier, int);
189 
191 
194  vtkSetMacro(ZoomOnMouseWheel, bool);
195  vtkGetMacro(ZoomOnMouseWheel, bool);
196  vtkBooleanMacro(ZoomOnMouseWheel, bool);
198 
200 
203  vtkSetMacro(PanYOnMouseWheel, bool);
204  vtkGetMacro(PanYOnMouseWheel, bool);
205  vtkBooleanMacro(PanYOnMouseWheel, bool);
207 
211  bool Hit(const vtkContextMouseEvent& mouse) override;
212 
216  bool MouseButtonPressEvent(const vtkContextMouseEvent& mouse) override;
217 
221  bool MouseMoveEvent(const vtkContextMouseEvent& mouse) override;
222 
226  bool MouseWheelEvent(const vtkContextMouseEvent& mouse, int delta) override;
227 
228 protected:
231 
233 
242 
245 
247 
248 private:
249  vtkContextTransform(const vtkContextTransform&) = delete;
250  void operator=(const vtkContextTransform&) = delete;
251 };
252 
253 #endif // vtkContextTransform_h
base class for items that are part of a vtkContextScene.
Class for drawing 2D primitives to a graphical context.
Definition: vtkContext2D.h:77
data structure to represent mouse events.
all children of this item are transformed by the vtkTransform2D of this item.
bool MouseWheelEvent(const vtkContextMouseEvent &mouse, int delta) override
Mouse wheel event.
bool Paint(vtkContext2D *painter) override
Paint event for the item, called whenever the item needs to be drawn.
virtual void Identity()
Reset the transform to the identity transformation.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual vtkTransform2D * GetTransform()
Access the vtkTransform2D that controls object transformation.
virtual void Translate(float dx, float dy)
Translate the item by the specified amounts dx and dy in the x and y directions.
bool MouseMoveEvent(const vtkContextMouseEvent &mouse) override
Mouse move event.
bool MouseButtonPressEvent(const vtkContextMouseEvent &mouse) override
Mouse press event.
vtkVector2f MapToParent(const vtkVector2f &point) override
Transforms a point to the parent coordinate system.
static vtkContextTransform * New()
Creates a vtkContextTransform object.
bool Hit(const vtkContextMouseEvent &mouse) override
Returns true if the transform is interactive, false otherwise.
~vtkContextTransform() override
void Update() override
Perform any updates to the item that may be necessary before rendering.
vtkVector2f MapFromParent(const vtkVector2f &point) override
Transforms a point from the parent coordinate system.
virtual void Scale(float dx, float dy)
Scale the item by the specified amounts dx and dy in the x and y directions.
vtkSmartPointer< vtkTransform2D > Transform
virtual void Rotate(float angle)
Rotate the item by the specified angle.
a simple class to control print indentation
Definition: vtkIndent.h:119
describes linear transformations via a 3x3 matrix
@ point
Definition: vtkX3D.h:242