26 #ifndef RENDERERWIDGET_H
27 #define RENDERERWIDGET_H
30 #error "Header Error: headers reordering required. Please include Log.h after including RendererWidget.h and InteractiveViewer.h or any OpenGL window based class."
38 #include <vtkVersion.h>
40 #include <CamiTKDisableWarnings>
41 #include <QVTKInteractor.h>
42 #include <CamiTKReEnableWarnings>
44 #if VTK_MAJOR_VERSION == 6
45 #include <QVTKWidget2.h>
47 #include <vtkGenericOpenGLRenderWindow.h>
49 #elif VTK_MAJOR_VERSION == 7
50 #include <QVTKWidget.h>
51 #include <vtkSmartPointer.h>
54 #elif VTK_MAJOR_VERSION == 8
55 #include <QVTKOpenGLWidget.h>
56 #include <vtkSmartPointer.h>
59 #error "Invalid VTK version: not (yet) supported."
64 class vtkInteractorStyle;
70 class vtkScalarBarActor;
71 class vtkEventQtSlotConnect;
72 class vtkCallbackCommand;
75 class vtkAnnotatedCubeActor;
76 class vtkScalarBarWidget;
78 class vtkAbstractPropPicker;
83 class vtkInteractorStylePick;
103 #if VTK_MAJOR_VERSION == 6
106 #elif VTK_MAJOR_VERSION == 7
109 #elif VTK_MAJOR_VERSION == 8
113 #error "Invalid VTK version: not (yet) supported."
168 RendererWidget(QWidget* parent =
nullptr, ControlMode mode = RendererWidget::TRACKBALL);
187 void setPicker(vtkSmartPointer<vtkAbstractPropPicker> woodyWood);
337 void actorTransform(vtkSmartPointer<vtkActor>,
double*,
int,
double**,
double*,
double*);
397 vtkSmartPointer<vtkRenderer>
renderer;
455 vtkSmartPointer<vtkAxesActor>
axes;
#define CAMITK_API
Definition: CamiTKAPI.h:49
CameraOrientation
RendererWidget implements all support methods to use camiTK with Qt interface.
Definition: RendererWidget.h:130
Definition: Action.cpp:35
void toogle3DRedBlue()
toggle stereo 3D red/blue rendering (you will need red/blue glasses)
void setBackfaceCulling(bool)
void pick()
Perform picking using the current mouse position.
void setPicker(vtkSmartPointer< vtkAbstractPropPicker > woodyWood)
set the picker to handle the action
void setColorScale(bool)
display the color scale in the viewport, use setColorScaleMinMax to change the displayed values
void resetCameraSettings()
void setGradientBackground(bool)
set the gradient background
interactor
Definition: RendererWidget.cpp:273
void setColorScaleMinMax(double m, double M)
set the min and max values.
void getBackgroundColor(double &, double &, double &)
get the background color (rgb)
void setAreaPicking(bool areaPicking)
RendererWidget::CameraOrientation getCameraOrientation() const
Return the current axes mode.
logoWidget
logo widget
Definition: RendererWidget.cpp:453
rendering3DRedBlue
is rendering in 3D stereo red/blue
Definition: RendererWidget.cpp:252
bool getBackfaceCulling() const
Get the current state of backface culling.
vtkSmartPointer< vtkActor2D > orientationDecorationActors[4]
annotated cube text actors
Definition: RendererWidget.h:461
void actorPicked(vtkSmartPointer< vtkPicker >)
ControlMode getControlMode() const
get the current control mode
pickInteractorStyle
picking interactor
Definition: RendererWidget.cpp:276
void setPointSize(double size)
set the default point size
vtkSmartPointer< vtkScalarBarActor > colorScale
the color scale displaying the lookup table + values
Definition: RendererWidget.h:449
pickingButtonDiverter
the callback to remove left button interaction while in picking mode
Definition: RendererWidget.cpp:289
void removeProp(vtkSmartPointer< vtkProp > p, bool refresh=false)
remove the given vtkProp (e.g.
void computeVisiblePropBounds(double *bounds)
get the bounding box of all visible actors [xmin,xmax, ymin,ymax, zmin,zmax]
renderer
The current renderer.
Definition: RendererWidget.cpp:260
void mouseReleaseEvent(QMouseEvent *event) override
mouse release handler overriden to manage different version of VTK
void setColorScaleTitle(QString t)
set the color scale title.
displayGradient
Definition: RendererWidget.cpp:492
setBackgroundColor(0.0, 0.0, 0.0)
void toggleLogo(bool)
toggle logo
void toggleOrientationDecorations(bool)
display orientation decorations
cameraOrientation
state of the initial camera orientation
Definition: RendererWidget.cpp:283
annotatedCube
annotated cube actor
Definition: RendererWidget.cpp:339
void mouseMoveEvent(QMouseEvent *event) override
mouse move handler overriden to manage different version of VTK
void toggleAxes(bool)
display the axes
vtkCamera * getActiveCamera()
get the active camera
void resetClippingPlanes(double *bounds=nullptr)
reset the camera clipping plane to a given bounding box If no bounds are given, reset to show all vis...
void setLightFollowCamera(bool)
Set/unset the light to follow the camera.
void rightButtonPressed()
send when the mouse right button is clicked
void keyPressEvent(QKeyEvent *e) override
key events (do nothing but pass on e to the parent widget), please do not add any shortcut management...
bool getLightFollowCamera() const
Get the current state of the property.
RendererWidget(QWidget *parent=nullptr, ControlMode mode=RendererWidget::TRACKBALL)
constructors.
bool getColorScale() const
get the color display state
void mousePressEvent(QMouseEvent *event) override
mouse press handler overriden to manage different version of VTK
displayColorScale
is the color scale currently displayed
Definition: RendererWidget.cpp:253
~RendererWidget() override
destructor
displayLogo
is the logo displayed
Definition: RendererWidget.cpp:251
double getPointSize() const
get the current value of point size
controlMode
current control mode
Definition: RendererWidget.cpp:282
void pickActor(int, int)
Perform picking from screen coordinates.
pointSize
default point size
Definition: RendererWidget.cpp:254
void rotateCamera(double angle, int axe)
Rotate the camera around param "axe" of "angle" degrees.
void refresh()
refresh the display
axes
axes actor
Definition: RendererWidget.cpp:297
colorBarWidget
the scalar bar widget
Definition: RendererWidget.cpp:471
bool lightFollowCamera
Is the light following the camera.
Definition: RendererWidget.h:406
void updateAxes()
update the axes sizes
void setOrientationDecorationsLetters(QString letters[4])
give the lettres for orientation decoration: Left, Right, Top, Down
void resetCamera()
reset the camera to the default position, default FOV.
static void divertionCallback(vtkObject *, unsigned long, void *, void *)
a diverter observer callback (to be used to divert undesired events)
Definition: RendererWidget.h:421
void getMouse3DCoordinates(double &x, double &y, double &z)
get the mouse coordinates in 3D
vtkSmartPointer< vtkTextMapper > orientationDecorationsTextMapper[4]
annotated cube text
Definition: RendererWidget.h:464
setCameraOrientation(cameraOrientation)
controlInteractorStyle
for the interaction with the scene
Definition: RendererWidget.cpp:284
void getCameraSettings(double *position, double *focalPoint, double *viewUp)
get camera settings information (position, what is looked at and how) in world coordinates
void endPicking()
end picking
bool containsProp(vtkSmartPointer< vtkProp >)
is the given vtkProp (e.g. vtkActor or vtkActor2D) in this renderer
void actorTransform(vtkSmartPointer< vtkActor >, double *, int, double **, double *, double *)
perform the transformation of the actor
MouseButtonState
state of the pressed button (for 3 buttons mouse)
Definition: RendererWidget.h:149
@ LEFT_BUTTON
the mouse left button is currently pressed
Definition: RendererWidget.h:151
@ RIGHT_BUTTON
the mouse right button is currently pressed
Definition: RendererWidget.h:153
@ NO_BUTTON
no buttons are currently pressed
Definition: RendererWidget.h:150
@ MIDDLE_BUTTON
the mouse middle button is currently pressed (or 3rd button emulation)
Definition: RendererWidget.h:152
void screenshot(QString filename)
save the screenshot in a file
bool getGradientBackground()
get the current state of the gradient background
pickingDiverter
is the picking diverter used
Definition: RendererWidget.cpp:292
backfaceCulling
Is back face culling on?
Definition: RendererWidget.cpp:250
void setActiveCamera(vtkCamera *cam)
set active camera
@ RIGHT_UP
World axes are seen so that x points to the right, y points upward.
Definition: RendererWidget.h:133
@ RIGHT_DOWN
World axes are seen so that x points to the right, y points downward.
Definition: RendererWidget.h:131
@ BACK_DOWN
< World axes are seen so that x points to the left, y points backward. For Medical Images Coronal Vie...
Definition: RendererWidget.h:135
@ LEFT_BACK
Definition: RendererWidget.h:134
@ LEFT_UP
World axes are seen so that x points to the left, y points upward.
Definition: RendererWidget.h:132