OGS
VtkCustomInteractorStyle.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
4#pragma once
5
6// ** INCLUDES **
7#include <QObject>
8
9#include <vtkInteractorStyleTrackballCamera.h>
10
11class vtkDataObject;
12class vtkDataSetMapper;
13class vtkActor;
14
15class vtkUnstructuredGridAlgorithm;
16
24class VtkCustomInteractorStyle : public QObject, public vtkInteractorStyleTrackballCamera
25{
26 Q_OBJECT
27
28public:
30 vtkTypeMacro (VtkCustomInteractorStyle, vtkInteractorStyleTrackballCamera);
31
33 void OnChar() override;
34
36 void OnKeyDown() override;
37
39 void OnKeyUp() override;
40
42 void OnLeftButtonDown() override;
43
45 void OnRightButtonDown() override;
46
47public slots:
48 void highlightActor(vtkProp3D* actor);
49
52
53 void setHighlightActor(bool on);
54
56 void pickableDataObject(vtkDataObject* object);
57
58protected:
61
63 vtkDataObject* _data{nullptr};
64
66 vtkDataSetMapper* _selectedMapper;
67
69 vtkActor* _selectedActor;
70
71private:
72 bool _highlightActor{false};
74
75signals:
78
81 void cursorChanged(Qt::CursorShape);
82
84 void elementPicked(vtkUnstructuredGridAlgorithm const*const, unsigned);
85
88
89};
vtkDataSetMapper * _selectedMapper
The mapper for highlighting the selected cell.
void OnChar() override
Handles key press events.
void OnKeyDown() override
Handles key down events.
void elementPicked(vtkUnstructuredGridAlgorithm const *const, unsigned)
Emitted when a mesh element has been picked.
void cursorChanged(Qt::CursorShape)
Emitted when the cursor shape was changed due to alternate mouse action mode.
void clearElementView()
Emitted when the current object type cannot be handled by the element model.
void pickableDataObject(vtkDataObject *object)
Sets the highlightable vtk object.
vtkDataObject * _data
The vtk object to pick.
void removeHighlightActor()
Removes the highlight actor from the visible scene.
vtkActor * _selectedActor
The actor for highlighting the selected cell.
vtkTypeMacro(VtkCustomInteractorStyle, vtkInteractorStyleTrackballCamera)
void highlightActor(vtkProp3D *actor)
void requestViewUpdate()
Emitted when something was picked.
void OnLeftButtonDown() override
Handles left mouse button events (picking).
void OnKeyUp() override
Handles key up events.
static VtkCustomInteractorStyle * New()
void OnRightButtonDown() override
Handles middle mouse button events (rotation point picking).