![]() |
Computer Assited Medical Intervention Tool Kit
version 3.3
|
RendererWidget implements all support methods to use camiTK with Qt interface. More...
#include <RendererWidget.h>
Classes | |
class | ScreenshotFormatInfo |
sub-class containing all information concerning exporting images (screenshot) More... | |
Public Types | |
enum | CameraOrientation { RIGHT_DOWN, LEFT_UP, RIGHT_UP } |
describes the initial position and orientation of the default camera. More... | |
enum | ControlMode { JOYSTICK, TRACKBALL, TRACKBALL_2D, NONE } |
list of possible user interaction control mode More... | |
enum | MouseButtonState { NO_BUTTON, LEFT_BUTTON, MIDDLE_BUTTON, RIGHT_BUTTON } |
state of the pressed button (for 3 buttons mouse) More... | |
enum | ScreenshotFormat { PNG = 0, JPG, BMP, PS, EPS, PDF, TEX, SVG, OBJ, RIB, VRML, NOT_SUPPORTED } |
list of supported screenshot export formats More... | |
Public Member Functions | |
RendererWidget (QWidget *parent=0, ControlMode mode=RendererWidget::TRACKBALL) | |
constructors. More... | |
~RendererWidget () | |
destructor More... | |
add/manipulate actors | |
void | addProp (vtkSmartPointer< vtkProp > p, bool refresh=false) |
add a vtkActor or vtkActor2D, updating the cull face depending on the current state. More... | |
bool | containsProp (vtkSmartPointer< vtkProp >) |
is the given vtkProp (e.g. vtkActor or vtkActor2D) in this renderer More... | |
void | removeProp (vtkSmartPointer< vtkProp > p, bool refresh=false) |
remove the given vtkProp (e.g. More... | |
void | actorTransform (vtkSmartPointer< vtkActor >, double *, int, double **, double *, double *) |
perform the transformation of the actor More... | |
Protected Member Functions | |
virtual void | mouseMoveEvent (QMouseEvent *event) |
overloaded mouse move handler because a potentialbug in vtk 5.2.1 More... | |
virtual void | mouseReleaseEvent (QMouseEvent *event) |
overloaded mouse release handler because a potentialbug in vtk 5.2.1 More... | |
Static Protected Member Functions | |
screenshot management | |
build the map | |
static void | buildScreenshotMap () |
static const ScreenshotFormatInfo * | getScreenshotFormatInfo (QString) |
get the information from the extension (QString) More... | |
Protected Attributes | |
extra actors managements | |
is the gradient background displayed | |
bool | displayGradient |
bool | displayCopyright |
is the copyright text displayed More... | |
vtkSmartPointer< vtkActor2D > | copyrightTextActor |
copyright text vtk actor More... | |
bool | displayColorScale |
is the color scale currently displayed More... | |
vtkSmartPointer < vtkScalarBarActor > | colorScale |
the color scale displaying the lookup table + values More... | |
vtkSmartPointer < vtkScalarBarWidget > | colorBarWidget |
the scalar bar widget More... | |
vtkSmartPointer< vtkAxesActor > | axes |
axes actor More... | |
vtkSmartPointer < vtkAnnotatedCubeActor > | annotatedCube |
annotated cube actor More... | |
Private Member Functions | |
Q_ENUMS (ControlMode CameraOrientation) | |
picking and interaction | |
vtkSmartPointer< QVTKInteractor > | interactor |
vtkSmartPointer < vtkInteractorStyle > | interactorStyle |
for the interaction with the scene More... | |
ControlMode | controlMode |
current control mode More... | |
ControlMode | getControlMode () const |
void | setControlMode (ControlMode mode) |
Set the interaction like trackball or joystick style. More... | |
void | setPicker (vtkSmartPointer< vtkPicker > woodyWood) |
set the picker to handle the action More... | |
void | pick () |
Perform picking using the current mouse position. More... | |
void | pickActor (int x, int y) |
Perform picking from screen coordinates. More... | |
void | keyPressEvent (QKeyEvent *e) |
key events (do nothing but pass on e to the parent widget), please do not add any shortcut management here (see note in implementation)! More... | |
void | screenshot (QString filename) |
save the screenshot in a file More... | |
void | refresh () |
refresh the display More... | |
static const ScreenshotFormatInfo * | getScreenshotFormatInfo (unsigned int) |
return the information concerning the supporting format using an index corresponding to the enum (check index validity) More... | |
static const ScreenshotFormatInfo * | getScreenshotFormatInfo (ScreenshotFormat) |
retun the information concerning the supporting format using an index corresponding to the enum (check index validity) More... | |
void | leftClick () |
void | rightClick () |
manage right mouse click interactions, can emit rightButtonPressed() signal More... | |
void | actorPicked (vtkSmartPointer< vtkPicker >) |
void | rightButtonPressed () |
send when the mouse right button is clicked More... | |
view/camera settings | |
vtkSmartPointer< vtkRenderer > | renderer |
The current renderer. More... | |
bool | backfaceCulling |
Is back face culling on? More... | |
CameraOrientation | cameraOrientation |
state of the initial camera orientation More... | |
bool | lightFollowCamera |
Is the light following the camera. More... | |
double | pointSize |
default point size More... | |
bool | rendering3DRedBlue |
is rendering in 3D stereo red/blue More... | |
void | setBackfaceCulling (bool) |
bool | getBackfaceCulling () const |
Get the current state of backface culling. More... | |
void | setCameraOrientation (RendererWidget::CameraOrientation) |
Set the current axes mode. More... | |
RendererWidget::CameraOrientation | getCameraOrientation () const |
Return the current axes mode. More... | |
void | setLightFollowCamera (bool) |
Set/unset the light to follow the camera. More... | |
bool | getLightFollowCamera () const |
Get the current state of the property. More... | |
void | setPointSize (double size) |
set the default point size More... | |
double | getPointSize () const |
get the current value of point size More... | |
void | rotateCamera (double angle, int axe) |
Rotate the camera around param "axe" of "angle" degrees. More... | |
void | resetCamera () |
reset the camera to the default position, default FOV. More... | |
void | resetCamera (double *bounds) |
reset the camera to the default position, default FOV and use the given bounds to focus on More... | |
void | getCameraSettings (double *position, double *focalPoint, double *viewUp) |
get camera settings information (position, what is looked at and how) in world coordinates More... | |
void | setActiveCamera (vtkCamera *cam) |
set active camera More... | |
vtkCamera * | getActiveCamera () |
get the active camera More... | |
void | getMouse3DCoordinates (double &x, double &y, double &z) |
get the mouse coordinates in 3D More... | |
void | setBackgroundColor (double, double, double) |
set the background color (rgb) More... | |
void | getBackgroundColor (double &, double &, double &) |
get the background color (rgb) More... | |
bool | getGradientBackground () |
get the current state of the gradient background More... | |
void | setGradientBackground (bool) |
set the gradient background More... | |
void | toogle3DRedBlue () |
toggle stereo 3D red/blue rendering (you will need red/blue glasses) More... | |
void | toggleCopyright (bool) |
toggle copyright text More... | |
void | toggleAxes (bool) |
display the axes More... | |
void | updateAxes () |
update the axes sizes More... | |
void | setColorScale (bool) |
display the color scale in the viewport, use setColorScaleMinMax to change the displayed values More... | |
bool | getColorScale () const |
get the color display state More... | |
void | setColorScaleMinMax (double m, double M) |
set the min and max values. More... | |
void | setColorScaleTitle (QString t) |
set the color scale title. More... | |
void | computeVisiblePropBounds (double *bounds) |
get the bounding box of all visible actors [xmin,xmax, ymin,ymax, zmin,zmax] More... | |
void | resetCameraSettings () |
callback and interaction | |
vtkSmartPointer < vtkEventQtSlotConnect > | connector |
vtkSmartPointer < vtkCallbackCommand > | pickingButtonDiverter |
the callback to remove left button interaction while in picking mode More... | |
bool | pickingDiverter |
is the picking diverter used More... | |
static void | divertionCallback (vtkObject *caller, unsigned long eid, void *clientdata, void *calldata) |
a diverter observer callback (to be used to divert undesired events) More... | |
RendererWidget implements all support methods to use camiTK with Qt interface.
This class wraps the necessary VTK method for rendering, interactions, and signal/slot connections. This class should be usable completely independantly of Core.
The Core companion class is InteractiveViewer (which delegates all vtk stuff to RendererWidget.
It is directly based on QVTKWidget, the GUI support class available in Vtk version >= 5.0 This is a pure Qt/vtk wrapper class (no Core stuff).
For developers: please check the coding policy in InteractiveViewer API documentation first.
camitk::RendererWidget::RendererWidget | ( | QWidget * | parent = 0 , |
ControlMode | mode = RendererWidget::TRACKBALL |
||
) |
constructors.
By default:
parent | the parent widget |
mode | the mouse interaction control mode (default is TRACKBALL) |
camitk::RendererWidget::~RendererWidget | ( | ) |
destructor
|
signal |
void camitk::RendererWidget::actorTransform | ( | vtkSmartPointer< vtkActor > | , |
double * | , | ||
int | , | ||
double ** | , | ||
double * | , | ||
double * | |||
) |
perform the transformation of the actor
void camitk::RendererWidget::addProp | ( | vtkSmartPointer< vtkProp > | p, |
bool | refresh = false |
||
) |
add a vtkActor or vtkActor2D, updating the cull face depending on the current state.
The method checks it is not already there first. This method is "clever": it does different things (that should be documented bellow), depending on the type of the vtkProp
Action performed depending on the vtkProp (true) type:
p | the vtkProp to add to the scene |
refresh | if true the axes are refreshed (default false) |
|
staticprotected |
void camitk::RendererWidget::computeVisiblePropBounds | ( | double * | bounds | ) |
get the bounding box of all visible actors [xmin,xmax, ymin,ymax, zmin,zmax]
bool camitk::RendererWidget::containsProp | ( | vtkSmartPointer< vtkProp > | ) |
is the given vtkProp (e.g. vtkActor or vtkActor2D) in this renderer
|
inlinestaticprotected |
a diverter observer callback (to be used to divert undesired events)
vtkCamera* camitk::RendererWidget::getActiveCamera | ( | ) |
get the active camera
bool camitk::RendererWidget::getBackfaceCulling | ( | ) | const |
Get the current state of backface culling.
void camitk::RendererWidget::getBackgroundColor | ( | double & | , |
double & | , | ||
double & | |||
) |
get the background color (rgb)
RendererWidget::CameraOrientation camitk::RendererWidget::getCameraOrientation | ( | ) | const |
Return the current axes mode.
void camitk::RendererWidget::getCameraSettings | ( | double * | position, |
double * | focalPoint, | ||
double * | viewUp | ||
) |
get camera settings information (position, what is looked at and how) in world coordinates
bool camitk::RendererWidget::getColorScale | ( | ) | const |
get the color display state
ControlMode camitk::RendererWidget::getControlMode | ( | ) | const |
bool camitk::RendererWidget::getGradientBackground | ( | ) |
get the current state of the gradient background
bool camitk::RendererWidget::getLightFollowCamera | ( | ) | const |
Get the current state of the property.
void camitk::RendererWidget::getMouse3DCoordinates | ( | double & | x, |
double & | y, | ||
double & | z | ||
) |
get the mouse coordinates in 3D
double camitk::RendererWidget::getPointSize | ( | ) | const |
get the current value of point size
|
static |
return the information concerning the supporting format using an index corresponding to the enum (check index validity)
|
static |
retun the information concerning the supporting format using an index corresponding to the enum (check index validity)
|
staticprotected |
get the information from the extension (QString)
void camitk::RendererWidget::keyPressEvent | ( | QKeyEvent * | e | ) |
key events (do nothing but pass on e to the parent widget), please do not add any shortcut management here (see note in implementation)!
|
protectedslot |
|
protectedvirtual |
overloaded mouse move handler because a potentialbug in vtk 5.2.1
|
protectedvirtual |
overloaded mouse release handler because a potentialbug in vtk 5.2.1
void camitk::RendererWidget::pick | ( | ) |
Perform picking using the current mouse position.
void camitk::RendererWidget::pickActor | ( | int | x, |
int | y | ||
) |
Perform picking from screen coordinates.
|
private |
void camitk::RendererWidget::refresh | ( | ) |
refresh the display
void camitk::RendererWidget::removeProp | ( | vtkSmartPointer< vtkProp > | p, |
bool | refresh = false |
||
) |
remove the given vtkProp (e.g.
vtkActor or vtkActor2D, such as color scale)
p | the vtkProp to add to the scene |
refresh | if true the axes are refreshed (default false) |
void camitk::RendererWidget::resetCamera | ( | ) |
reset the camera to the default position, default FOV.
The camera focal is set so that all the things in the scenes are visible (i.e. reset the camera clipping range based on the bounds of the visible actors. This ensures that no props are cut off)
void camitk::RendererWidget::resetCamera | ( | double * | bounds | ) |
reset the camera to the default position, default FOV and use the given bounds to focus on
|
protected |
|
signal |
send when the mouse right button is clicked
|
protectedslot |
manage right mouse click interactions, can emit rightButtonPressed() signal
void camitk::RendererWidget::rotateCamera | ( | double | angle, |
int | axe | ||
) |
Rotate the camera around param "axe" of "angle" degrees.
void camitk::RendererWidget::screenshot | ( | QString | filename | ) |
save the screenshot in a file
filename | the filename extension (suffix) must be supported (use getScreenshotFormatInfo to get the correct extension) |
void camitk::RendererWidget::setActiveCamera | ( | vtkCamera * | cam | ) |
set active camera
void camitk::RendererWidget::setBackfaceCulling | ( | bool | ) |
void camitk::RendererWidget::setBackgroundColor | ( | double | , |
double | , | ||
double | |||
) |
set the background color (rgb)
void camitk::RendererWidget::setCameraOrientation | ( | RendererWidget::CameraOrientation | ) |
Set the current axes mode.
void camitk::RendererWidget::setColorScale | ( | bool | ) |
display the color scale in the viewport, use setColorScaleMinMax to change the displayed values
void camitk::RendererWidget::setColorScaleMinMax | ( | double | m, |
double | M | ||
) |
set the min and max values.
m | minimum value (blue) |
M | maximum value (red) |
void camitk::RendererWidget::setColorScaleTitle | ( | QString | t | ) |
set the color scale title.
t | title of the color scale |
void camitk::RendererWidget::setControlMode | ( | ControlMode | mode | ) |
Set the interaction like trackball or joystick style.
void camitk::RendererWidget::setGradientBackground | ( | bool | ) |
set the gradient background
void camitk::RendererWidget::setLightFollowCamera | ( | bool | ) |
Set/unset the light to follow the camera.
void camitk::RendererWidget::setPicker | ( | vtkSmartPointer< vtkPicker > | woodyWood | ) |
set the picker to handle the action
woodyWood | the picker (sorry, I could not resist this one!) |
void camitk::RendererWidget::setPointSize | ( | double | size | ) |
set the default point size
void camitk::RendererWidget::toggleAxes | ( | bool | ) |
display the axes
void camitk::RendererWidget::toggleCopyright | ( | bool | ) |
toggle copyright text
void camitk::RendererWidget::toogle3DRedBlue | ( | ) |
toggle stereo 3D red/blue rendering (you will need red/blue glasses)
void camitk::RendererWidget::updateAxes | ( | ) |
update the axes sizes
|
protected |
annotated cube actor
|
protected |
axes actor
|
protected |
Is back face culling on?
|
protected |
state of the initial camera orientation
|
protected |
the scalar bar widget
|
protected |
the color scale displaying the lookup table + values
|
protected |
|
protected |
current control mode
|
protected |
copyright text vtk actor
|
protected |
is the color scale currently displayed
|
protected |
is the copyright text displayed
|
protected |
|
protected |
|
protected |
for the interaction with the scene
|
protected |
Is the light following the camera.
|
protected |
the callback to remove left button interaction while in picking mode
|
protected |
is the picking diverter used
|
protected |
default point size
|
protected |
The current renderer.
|
protected |
is rendering in 3D stereo red/blue