VTK  9.3.20240415
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 
36 #ifndef vtkContextTransform_h
37 #define vtkContextTransform_h
38 
39 #include "vtkAbstractContextItem.h"
40 #include "vtkRenderingContext2DModule.h" // For export macro
41 #include "vtkSmartPointer.h" // Needed for SP ivars.
42 #include "vtkVector.h" // Needed for ivars.
43 
44 VTK_ABI_NAMESPACE_BEGIN
45 class vtkTransform2D;
46 
47 class VTKRENDERINGCONTEXT2D_EXPORT vtkContextTransform : public vtkAbstractContextItem
48 {
49 public:
51  void PrintSelf(ostream& os, vtkIndent indent) override;
52 
57 
63  void Update() override;
64 
68  bool Paint(vtkContext2D* painter) override;
69 
73  virtual void Identity();
74 
79  virtual void Translate(float dx, float dy);
80 
85  virtual void Scale(float dx, float dy);
86 
90  virtual void Rotate(float angle);
91 
96 
101 
106 
108 
112  vtkSetMacro(PanMouseButton, int);
113  vtkGetMacro(PanMouseButton, int);
115 
117 
121  vtkSetMacro(PanModifier, int);
122  vtkGetMacro(PanModifier, int);
124 
126 
130  vtkSetMacro(SecondaryPanMouseButton, int);
131  vtkGetMacro(SecondaryPanMouseButton, int);
133 
135 
139  vtkSetMacro(SecondaryPanModifier, int);
140  vtkGetMacro(SecondaryPanModifier, int);
142 
144 
148  vtkSetMacro(ZoomMouseButton, int);
149  vtkGetMacro(ZoomMouseButton, int);
151 
153 
157  vtkSetMacro(ZoomModifier, int);
158  vtkGetMacro(ZoomModifier, int);
160 
162 
166  vtkSetMacro(SecondaryZoomMouseButton, int);
167  vtkGetMacro(SecondaryZoomMouseButton, int);
169 
171 
175  vtkSetMacro(SecondaryZoomModifier, int);
176  vtkGetMacro(SecondaryZoomModifier, int);
178 
180 
183  vtkSetMacro(ZoomOnMouseWheel, bool);
184  vtkGetMacro(ZoomOnMouseWheel, bool);
185  vtkBooleanMacro(ZoomOnMouseWheel, bool);
187 
189 
192  vtkSetMacro(PanYOnMouseWheel, bool);
193  vtkGetMacro(PanYOnMouseWheel, bool);
194  vtkBooleanMacro(PanYOnMouseWheel, bool);
196 
200  bool Hit(const vtkContextMouseEvent& mouse) override;
201 
205  bool MouseButtonPressEvent(const vtkContextMouseEvent& mouse) override;
206 
210  bool MouseMoveEvent(const vtkContextMouseEvent& mouse) override;
211 
215  bool MouseWheelEvent(const vtkContextMouseEvent& mouse, int delta) override;
216 
217 protected:
220 
222 
231 
234 
236 
237 private:
238  vtkContextTransform(const vtkContextTransform&) = delete;
239  void operator=(const vtkContextTransform&) = delete;
240 };
241 
242 VTK_ABI_NAMESPACE_END
243 #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:69
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:108
describes linear transformations via a 3x3 matrix
@ point
Definition: vtkX3D.h:236