VTK  9.3.0
vtkContextTransform.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
3
26#ifndef vtkContextTransform_h
27#define vtkContextTransform_h
28
30#include "vtkRenderingContext2DModule.h" // For export macro
31#include "vtkSmartPointer.h" // Needed for SP ivars.
32#include "vtkVector.h" // Needed for ivars.
33
34VTK_ABI_NAMESPACE_BEGIN
35class vtkTransform2D;
36
37class VTKRENDERINGCONTEXT2D_EXPORT vtkContextTransform : public vtkAbstractContextItem
38{
39public:
41 void PrintSelf(ostream& os, vtkIndent indent) override;
42
47
53 void Update() override;
54
58 bool Paint(vtkContext2D* painter) override;
59
63 virtual void Identity();
64
69 virtual void Translate(float dx, float dy);
70
75 virtual void Scale(float dx, float dy);
76
80 virtual void Rotate(float angle);
81
86
90 vtkVector2f MapToParent(const vtkVector2f& point) override;
91
95 vtkVector2f MapFromParent(const vtkVector2f& point) override;
96
98
102 vtkSetMacro(PanMouseButton, int);
103 vtkGetMacro(PanMouseButton, int);
105
107
111 vtkSetMacro(PanModifier, int);
112 vtkGetMacro(PanModifier, int);
114
116
120 vtkSetMacro(SecondaryPanMouseButton, int);
121 vtkGetMacro(SecondaryPanMouseButton, int);
123
125
129 vtkSetMacro(SecondaryPanModifier, int);
130 vtkGetMacro(SecondaryPanModifier, int);
132
134
138 vtkSetMacro(ZoomMouseButton, int);
139 vtkGetMacro(ZoomMouseButton, int);
141
143
147 vtkSetMacro(ZoomModifier, int);
148 vtkGetMacro(ZoomModifier, int);
150
152
156 vtkSetMacro(SecondaryZoomMouseButton, int);
157 vtkGetMacro(SecondaryZoomMouseButton, int);
159
161
165 vtkSetMacro(SecondaryZoomModifier, int);
166 vtkGetMacro(SecondaryZoomModifier, int);
168
170
173 vtkSetMacro(ZoomOnMouseWheel, bool);
174 vtkGetMacro(ZoomOnMouseWheel, bool);
175 vtkBooleanMacro(ZoomOnMouseWheel, bool);
177
179
182 vtkSetMacro(PanYOnMouseWheel, bool);
183 vtkGetMacro(PanYOnMouseWheel, bool);
184 vtkBooleanMacro(PanYOnMouseWheel, bool);
186
190 bool Hit(const vtkContextMouseEvent& mouse) override;
191
195 bool MouseButtonPressEvent(const vtkContextMouseEvent& mouse) override;
196
200 bool MouseMoveEvent(const vtkContextMouseEvent& mouse) override;
201
205 bool MouseWheelEvent(const vtkContextMouseEvent& mouse, int delta) override;
206
207protected:
210
212
221
224
226
227private:
229 void operator=(const vtkContextTransform&) = delete;
230};
231
232VTK_ABI_NAMESPACE_END
233#endif // vtkContextTransform_h
base class for items that are part of a vtkContextScene.
Class for drawing 2D primitives to a graphical context.
data structure to represent mouse events.
all children of this item are transformed by the vtkTransform2D of this item.
static vtkContextTransform * New()
Creates a vtkContextTransform object.
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.
virtual vtkTransform2D * GetTransform()
Access the vtkTransform2D that controls object transformation.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
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.
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:38
Hold a reference to a vtkObjectBase instance.
describes linear transformations via a 3x3 matrix