VTK  9.6.20260405
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
38
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#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO, VTK_MARSHALEXCLUDE
46
47VTK_ABI_NAMESPACE_BEGIN
49class vtkCamera;
50class vtkProp3D;
51class vtkMatrix3x3;
52class vtkMatrix4x4;
53class vtkTimerLog;
54class vtkTransform;
55
56class VTKRENDERINGCORE_EXPORT VTK_MARSHALAUTO vtkInteractorStyle3D : public vtkInteractorStyle
57{
58public:
61 void PrintSelf(ostream& os, vtkIndent indent) override;
62
63 // This method handles updating the prop based on changes in the devices
64 // pose. We use rotate as the state to mean adjusting-the-actor-pose
65 // if last world event position \p lwpos and orientation \p lwori are defined
66 // then this function do not use the Interactor3D to get the last world event position
67 // and orientation. This is useful when one needs to pass custom world event data.
68 virtual void PositionProp(vtkEventData*, double* lwpos = nullptr, double* lwori = nullptr);
69
70 // This method handles updating the camera based on changes in the devices
71 // pose. We use Dolly as the state to mean moving the camera forward
72 virtual void Dolly3D(vtkEventData*);
73
75
80 vtkSetMacro(DollyPhysicalSpeed, double);
81 vtkGetMacro(DollyPhysicalSpeed, double);
83
89 virtual void SetScale(vtkCamera* cam, double newScale);
90
92
100
101protected:
104
105 void FindPickedActor(double pos[3], double orient[4]);
106
108 vtkProp3D* prop3D, double* boxCenter, int NumRotation, double** rotate, double* scale);
109
114
117
121
122private:
124 void operator=(const vtkInteractorStyle3D&) = delete;
125};
126
127VTK_ABI_NAMESPACE_END
128#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
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.
double LastTrackPadPosition[2]
Get/Set the interaction picker.
virtual void SetScale(vtkCamera *cam, double newScale)
Set the scaling factor from world to physical space.
double AppliedTranslation[3]
Get/Set the interaction picker.
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.
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.
represent and manipulate 3x3 transformation matrices
represent and manipulate 4x4 transformation matrices
Allocate and hold a VTK object.
Definition vtkNew.h:168
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
#define VTK_MARSHAL_EXCLUDE_REASON_IS_INTERNAL
#define VTK_MARSHALAUTO
#define VTK_MARSHALEXCLUDE(reason)