VTK  9.3.20240424
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
21VTK_ABI_NAMESPACE_BEGIN
23class vtkRectd;
24
25class VTKCHARTSCORE_EXPORT vtkInteractiveArea : public vtkContextArea
26{
27public:
29
31 void PrintSelf(ostream& os, vtkIndent indent) override;
32
34
37 bool Paint(vtkContext2D* painter) override;
38 bool Hit(const vtkContextMouseEvent& mouse) override;
39 bool MouseWheelEvent(const vtkContextMouseEvent& mouse, int delta) override;
40 bool MouseMoveEvent(const vtkContextMouseEvent& mouse) override;
41 bool MouseButtonPressEvent(const vtkContextMouseEvent& mouse) override;
43
44protected:
47
49
52 void SetAxisRange(vtkRectd const& data) override;
53
54private:
58 void RecalculateTickSpacing(vtkAxis* axis, int numClicks);
59
63 void ComputeViewTransform() override;
64
65 void ComputeZoom(
66 vtkVector2d const& origin, vtkVector2d& scale, vtkVector2d& shift, vtkVector2d& factor);
67
68 class MouseActions;
69 MouseActions* Actions;
70
72 void operator=(const vtkInteractiveArea&) = delete;
73};
74
75VTK_ABI_NAMESPACE_END
76#endif // vtkInteractiveArea_h
takes care of drawing 2D axes
Definition vtkAxis.h:170
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()