VTK  9.3.20240420
vtkInteractorStyle3D.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
39#ifndef vtkInteractorStyle3D_h
40#define vtkInteractorStyle3D_h
41
42#include "vtkInteractorStyle.h"
43#include "vtkNew.h" // ivars
44#include "vtkRenderingCoreModule.h" // For export macro
45
46VTK_ABI_NAMESPACE_BEGIN
48class vtkCamera;
49class vtkProp3D;
50class vtkMatrix3x3;
51class vtkMatrix4x4;
52class vtkTimerLog;
53class vtkTransform;
54
55class VTKRENDERINGCORE_EXPORT vtkInteractorStyle3D : public vtkInteractorStyle
56{
57public:
60 void PrintSelf(ostream& os, vtkIndent indent) override;
61
62 // This method handles updating the prop based on changes in the devices
63 // pose. We use rotate as the state to mean adjusting-the-actor-pose
64 // if last world event position \p lwpos and orientation \p lwori are defined
65 // then this function do not use the Interactor3D to get the last world event position
66 // and orientation. This is useful when one needs to pass custom world event data.
67 virtual void PositionProp(vtkEventData*, double* lwpos = nullptr, double* lwori = nullptr);
68
69 // This method handles updating the camera based on changes in the devices
70 // pose. We use Dolly as the state to mean moving the camera forward
71 virtual void Dolly3D(vtkEventData*);
72
74
79 vtkSetMacro(DollyPhysicalSpeed, double);
80 vtkGetMacro(DollyPhysicalSpeed, double);
82
88 virtual void SetScale(vtkCamera* cam, double newScale);
89
91
95 vtkGetObjectMacro(InteractionPicker, vtkAbstractPropPicker);
97
98protected:
101
102 void FindPickedActor(double pos[3], double orient[4]);
103
105 vtkProp3D* prop3D, double* boxCenter, int NumRotation, double** rotate, double* scale);
106
111
113 double AppliedTranslation[3];
114
117 double LastTrackPadPosition[2];
118
119private:
121 void operator=(const vtkInteractorStyle3D&) = delete;
122};
123
124VTK_ABI_NAMESPACE_END
125#endif
abstract API for pickers that can pick an instance of vtkProp
a virtual camera for 3D rendering
Definition vtkCamera.h:151
a simple class to control print indentation
Definition vtkIndent.h:108
extends interaction to support 3D input
vtkTransform * TempTransform
Get/Set the interaction picker.
virtual void Dolly3D(vtkEventData *)
double DollyPhysicalSpeed
Get/Set the interaction picker.
vtkAbstractPropPicker * InteractionPicker
Get/Set the interaction picker.
virtual void SetScale(vtkCamera *cam, double newScale)
Set the scaling factor from world to physical space.
static vtkInteractorStyle3D * New()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetInteractionPicker(vtkAbstractPropPicker *prop)
Get/Set the interaction picker.
~vtkInteractorStyle3D() override
Get/Set the interaction picker.
vtkMatrix3x3 * TempMatrix3
Get/Set the interaction picker.
vtkNew< vtkTimerLog > LastDolly3DEventTime
Get/Set the interaction picker.
virtual void PositionProp(vtkEventData *, double *lwpos=nullptr, double *lwori=nullptr)
vtkInteractorStyle3D()
Get/Set the interaction picker.
vtkProp3D * InteractionProp
Get/Set the interaction picker.
void Prop3DTransform(vtkProp3D *prop3D, double *boxCenter, int NumRotation, double **rotate, double *scale)
Get/Set the interaction picker.
vtkMatrix4x4 * TempMatrix4
Get/Set the interaction picker.
void FindPickedActor(double pos[3], double orient[4])
Get/Set the interaction picker.
provide event-driven interface to the rendering window (defines trackball mode)
represent and manipulate 3x3 transformation matrices
represent and manipulate 4x4 transformation matrices
Allocate and hold a VTK object.
Definition vtkNew.h:160
represents an 3D object for placement in a rendered scene
Definition vtkProp3D.h:89
Timer support and logging.
describes linear transformations via a 4x4 matrix