VTK
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 
29 #ifndef vtkContextTransform_h
30 #define vtkContextTransform_h
31 
32 #include "vtkRenderingContext2DModule.h" // For export macro
33 #include "vtkAbstractContextItem.h"
34 #include "vtkSmartPointer.h" // Needed for SP ivars.
35 #include "vtkVector.h" // Needed for ivars.
36 
37 class vtkTransform2D;
38 
39 class VTKRENDERINGCONTEXT2D_EXPORT vtkContextTransform : public vtkAbstractContextItem
40 {
41 public:
43  void PrintSelf(ostream &os, vtkIndent indent) override;
44 
48  static vtkContextTransform *New();
49 
55  void Update() override;
56 
60  bool Paint(vtkContext2D *painter) override;
61 
65  virtual void Identity();
66 
71  virtual void Translate(float dx, float dy);
72 
77  virtual void Scale(float dx, float dy);
78 
82  virtual void Rotate(float angle);
83 
87  virtual vtkTransform2D* GetTransform();
88 
92  vtkVector2f MapToParent(const vtkVector2f& point) override;
93 
97  vtkVector2f MapFromParent(const vtkVector2f& point) override;
98 
100 
104  vtkSetMacro(PanMouseButton, int);
105  vtkGetMacro(PanMouseButton, int);
107 
109 
113  vtkSetMacro(PanModifier, int);
114  vtkGetMacro(PanModifier, int);
116 
118 
122  vtkSetMacro(SecondaryPanMouseButton, int);
123  vtkGetMacro(SecondaryPanMouseButton, int);
125 
127 
131  vtkSetMacro(SecondaryPanModifier, int);
132  vtkGetMacro(SecondaryPanModifier, int);
134 
136 
140  vtkSetMacro(ZoomMouseButton, int);
141  vtkGetMacro(ZoomMouseButton, int);
143 
145 
149  vtkSetMacro(ZoomModifier, int);
150  vtkGetMacro(ZoomModifier, int);
152 
154 
158  vtkSetMacro(SecondaryZoomMouseButton, int);
159  vtkGetMacro(SecondaryZoomMouseButton, int);
161 
163 
167  vtkSetMacro(SecondaryZoomModifier, int);
168  vtkGetMacro(SecondaryZoomModifier, int);
170 
172 
175  vtkSetMacro(ZoomOnMouseWheel, bool);
176  vtkGetMacro(ZoomOnMouseWheel, bool);
177  vtkBooleanMacro(ZoomOnMouseWheel, bool);
179 
181 
184  vtkSetMacro(PanYOnMouseWheel, bool);
185  vtkGetMacro(PanYOnMouseWheel, bool);
186  vtkBooleanMacro(PanYOnMouseWheel, bool);
188 
192  bool Hit(const vtkContextMouseEvent &mouse) override;
193 
197  bool MouseButtonPressEvent(const vtkContextMouseEvent &mouse) override;
198 
202  bool MouseMoveEvent(const vtkContextMouseEvent &mouse) override;
203 
207  bool MouseWheelEvent(const vtkContextMouseEvent &mouse, int delta) override;
208 
209 protected:
211  ~vtkContextTransform() override;
212 
214 
223 
226 
228 
229 private:
230  vtkContextTransform(const vtkContextTransform &) = delete;
231  void operator=(const vtkContextTransform &) = delete;
232 
233 };
234 
235 #endif //vtkContextTransform_h
vtkAbstractContextItem::MapFromParent
virtual vtkVector2f MapFromParent(const vtkVector2f &point)
Maps the point from the parent coordinate system.
vtkContextMouseEvent
data structure to represent mouse events.
Definition: vtkContextMouseEvent.h:40
vtkContextTransform::Transform
vtkSmartPointer< vtkTransform2D > Transform
Definition: vtkContextTransform.h:213
vtkAbstractContextItem
base class for items that are part of a vtkContextScene.
Definition: vtkAbstractContextItem.h:40
vtkTransform2D
describes linear transformations via a 3x3 matrix
Definition: vtkTransform2D.h:51
vtkObject::New
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
vtkContextTransform::SecondaryPanModifier
int SecondaryPanModifier
Definition: vtkContextTransform.h:220
vtkContextTransform::PanMouseButton
int PanMouseButton
Definition: vtkContextTransform.h:215
vtkContextTransform::ZoomAnchor
vtkVector2f ZoomAnchor
Definition: vtkContextTransform.h:227
vtkSmartPointer< vtkTransform2D >
vtkVector.h
vtkContext2D
Class for drawing 2D primitives to a graphical context.
Definition: vtkContext2D.h:58
vtkContextTransform::ZoomModifier
int ZoomModifier
Definition: vtkContextTransform.h:218
vtkContextTransform::PanModifier
int PanModifier
Definition: vtkContextTransform.h:216
vtkX3D::point
Definition: vtkX3D.h:236
vtkAbstractContextItem::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkContextTransform::SecondaryPanMouseButton
int SecondaryPanMouseButton
Definition: vtkContextTransform.h:219
vtkAbstractContextItem::MapToParent
virtual vtkVector2f MapToParent(const vtkVector2f &point)
Maps the point to the parent coordinate system.
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkAbstractContextItem::Hit
virtual bool Hit(const vtkContextMouseEvent &mouse)
Return true if the supplied x, y coordinate is inside the item.
vtkSmartPointer.h
vtkAbstractContextItem::MouseMoveEvent
virtual bool MouseMoveEvent(const vtkContextMouseEvent &mouse)
Mouse move event.
vtkAbstractContextItem.h
vtkContextTransform
all children of this item are transformed by the vtkTransform2D of this item.
Definition: vtkContextTransform.h:39
vtkContextTransform::ZoomMouseButton
int ZoomMouseButton
Definition: vtkContextTransform.h:217
vtkAbstractContextItem::Paint
virtual bool Paint(vtkContext2D *painter)
Paint event for the item, called whenever the item needs to be drawn.
vtkContextTransform::SecondaryZoomModifier
int SecondaryZoomModifier
Definition: vtkContextTransform.h:222
vtkContextTransform::SecondaryZoomMouseButton
int SecondaryZoomMouseButton
Definition: vtkContextTransform.h:221
vtkAbstractContextItem::MouseButtonPressEvent
virtual bool MouseButtonPressEvent(const vtkContextMouseEvent &mouse)
Mouse button down event Return true if the item holds the event, false if the event can be propagated...
vtkContextTransform::ZoomOnMouseWheel
bool ZoomOnMouseWheel
Definition: vtkContextTransform.h:224
vtkContextTransform::PanYOnMouseWheel
bool PanYOnMouseWheel
Definition: vtkContextTransform.h:225
vtkVector2f
Definition: vtkVector.h:418
vtkAbstractContextItem::MouseWheelEvent
virtual bool MouseWheelEvent(const vtkContextMouseEvent &mouse, int delta)
Mouse wheel event, positive delta indicates forward movement of the wheel.
vtkAbstractContextItem::Update
virtual void Update()
Perform any updates to the item that may be necessary before rendering.