VTK  9.4.20241221
vtkInteractiveArea.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
14#ifndef vtkInteractiveArea_h
15#define vtkInteractiveArea_h
16
17#include "vtkChartsCoreModule.h" // For export macro
18#include "vtkContextArea.h"
19#include "vtkNew.h" // For vtkNew
20#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
21
22VTK_ABI_NAMESPACE_BEGIN
24class vtkRectd;
25
26class VTKCHARTSCORE_EXPORT VTK_MARSHALAUTO vtkInteractiveArea : public vtkContextArea
27{
28public:
30
32 void PrintSelf(ostream& os, vtkIndent indent) override;
33
35
38 bool Paint(vtkContext2D* painter) override;
39 bool Hit(const vtkContextMouseEvent& mouse) override;
40 bool MouseWheelEvent(const vtkContextMouseEvent& mouse, int delta) override;
41 bool MouseMoveEvent(const vtkContextMouseEvent& mouse) override;
42 bool MouseButtonPressEvent(const vtkContextMouseEvent& mouse) override;
44
45protected:
48
50
53 void SetAxisRange(vtkRectd const& data) override;
54
55private:
59 void RecalculateTickSpacing(vtkAxis* axis, int numClicks);
60
64 void ComputeViewTransform() override;
65
66 void ComputeZoom(
67 vtkVector2d const& origin, vtkVector2d& scale, vtkVector2d& shift, vtkVector2d& factor);
68
69 class MouseActions;
70 MouseActions* Actions;
71
73 void operator=(const vtkInteractiveArea&) = delete;
74};
75
76VTK_ABI_NAMESPACE_END
77#endif // vtkInteractiveArea_h
takes care of drawing 2D axes
Definition vtkAxis.h:171
Class for drawing 2D primitives to a graphical context.
Clipped, transformed area with axes for context items.
virtual void ComputeViewTransform()
data structure to represent mouse events.
all children of this item are transformed by the vtkTransform2D of this item.
a simple class to control print indentation
Definition vtkIndent.h:108
Implements zooming and panning in a vtkContextArea.
bool MouseWheelEvent(const vtkContextMouseEvent &mouse, int delta) override
vtkAbstractContextItem API
bool Hit(const vtkContextMouseEvent &mouse) override
vtkAbstractContextItem API
~vtkInteractiveArea() override
bool MouseButtonPressEvent(const vtkContextMouseEvent &mouse) override
vtkAbstractContextItem API
bool MouseMoveEvent(const vtkContextMouseEvent &mouse) override
vtkAbstractContextItem API
void SetAxisRange(vtkRectd const &data) override
vtkContextArea API
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
bool Paint(vtkContext2D *painter) override
vtkAbstractContextItem API
static vtkInteractiveArea * New()
#define VTK_MARSHALAUTO