PCLVisualizer

MLModule
genre PCLVisualization
author Wolf Spindler
package FMEwork/ReleaseMeVis
dll MLPCLVisualization
definition MLPCLVisualization.def
inherits from PCLModule
keywords points, clouds, PCL, display, visualizer, show, render

Purpose

PCLVisualizer is an experimental wrapper module around the pcl::visualization::PCLVisualizer class. It displays connected point clouds in a QVTKWidget. See pcl::visualization::PCLVisualization for details. It has two window panels, the first one displaying connected point clouds in a 3D vtk viewer, and the second one, which provides parameters to control the contents of the first window. Note that PCLVisualizer is a draft and not all of its features are considered stable.

Interaction

The parameter panel can be opened with the right mouse button menu on the module with Show Window -> Parameters. For supported keyboard interaction see pcl::visualization::PCLVisualizerInteractorStyle. Note that some of the interactions are not controlled via the MeVisLab module binding and may have side effects. They may be not enabled, have no effect or store/files to the current working directories. Also keyboard interaction states are not saved together with the module state.

Windows

Render

../../../Projects/MLPCLVisualization/Modules/mhelp/Images/Screenshots/PCLVisualizer.Render.png

Parameters

../../../Projects/MLPCLVisualization/Modules/mhelp/Images/Screenshots/PCLVisualizer.Parameters.png

Input Fields

inputPCLObject0

name: inputPCLObject0, type: MLBase

Connect the point cloud which shall be displayed by the module.

input0

name: input0, type: Image

An optional ML image input from which the scale of the coordinate system is calculates; if this input is left open then the scale is assumed as 1. See Show Coordinate System.

Output Fields

outputvtkMLQtParent

name: outputvtkMLQtParent, type: MLBase

Advanced: A connector to other vtk modules which want to make use of the internally created vtkMLQtParent object which contains the QVTKWidget and its parent which are used to embed the PCLVisualizer in the MeVisLab GUI window.

outputvtkMLQtRenderWindow

name: outputvtkMLQtRenderWindow, type: MLBase

A connector to other vtk modules which want to make use of the internally created vtkRenderWindow which is created within the PCLVisualizer and which is embedded in the MeVisLabGUI from inside a QVTKWidget; it will point to NULL if no window is available.

output0

name: output0, type: Image

This is the image output for snapshots. It will be invalid if no snapshot has been performed, otherwise it will be an RGBA image created with Create Snapshot.

outputvtkRenderer

name: outputvtkRenderer, type: MLBase

A connector to other vtk modules which want to make use of the internally created vtkRenderer which is created within the PCLVisualizer; it will point to NULL if no renderer is available. Note that this vtkRenderer output is of experimental nature and may not be reliable. Especially if Show Orientation Marker Widget Axes is enabled it seems to be instable.

Parameter Fields

Visible Fields

Status

name: status, type: String, persistent: no

see PCLModule.status

Show Frames Per Seconds

name: showFramesPerSeconds, type: Bool, default: FALSE

If enabled it displays the number of redrawn frames per second in the render window of this module, otherwise this value is not displayed.

Show Orientation Marker Widget Axes

name: showOrientationMarkerWidgetAxes, type: Bool, default: FALSE

Enables/disables the display of the orientation axes marker. Note that the position of this marker is not stored with the saved.

Show Coordinate System

name: showCoordinateSystem, type: Bool, default: FALSE

Enables/Disables the coordinate system display in the viewer. If available then scale is determined from the maximum extent in x/y/z dimension of the input image extent multiplied with its voxel size. If no input image is provided at input0 then the scaling is set to 1.

Point Size

name: pointSize, type: Double, default: 1

Passes a hint for the point size to the renderer.

Background Color

name: backgroundColor, type: Color, default: 0 0 0

Specifies the background color in the render window of this module as red, green and blue value.

Reset Camera On Input Change

name: resetCameraOnInputChange, type: Enum, default: ViewAll

Controls how the camera (if there is any) is adjusted if the input changes. Normally the position of the camera (if the display is open) is saved with the network. It will be restored, if possible, when the module is reloaded.

Values:

Title Name Description
View All ViewAll Many settings are left unchanged, but the entire scene is moved into visibly area.
No Change NoChange The camera is left unchanged even if new or changed scene objects may not be visible. Take care with this mode because newly connected point clouds may not be (completely) visibly. You may need to type “R” in the display to refocus the camera to view all.

View All

name: viewAll, type: Trigger

Moves all displayed objects into the visible area.

Create Snapshot

name: createSnapshot, type: Trigger

If notified then a snapshot of the current render window is created and passed to output0. If no snapshot can be created then output0 is invalidated.

Camera State Valid

name: cameraStateValid, type: Bool, default: FALSE

True if a valid camera state is stored in the fields, otherwise false. This flag is set automatically together with the camera parameters whenever the module is saved.

Camera Position

name: cameraPosition, type: Vector3, default: 0 0 1

Contains the recently stored position of the camera.

Camera Focal Point

name: cameraFocalPoint, type: Vector3, default: 0 0 0

Contains the recently stored focal point of the camera.

Camera View Up

name: cameraViewUp, type: Vector3, default: 0 1 0

Contains the recently stored view up vector of the camera.

Camera View Plane Normal

name: cameraViewPlaneNormal, type: Vector3, default: 0 0 1

Contains the recently stored view plane normal of the camera.

Camera Window Center

name: cameraWindowCenter, type: Vector2, default: 0 0

Contains the recently stored window center of the camera.

Camera Distance

name: cameraDistance, type: Double, default: 1

Contains the recently stored distance of the camera.

Camera Roll

name: cameraRoll, type: Double, default: 0

Contains the recently stored roll of the camera.

Camera View Angle

name: cameraViewAngle, type: Double, default: 30

Contains the recently stored view angle of the camera.

Camera Parallel Scale

name: cameraParallelScale, type: Double, default: 1

Contains the recently stored parallel scale of the camera.

Recent Selection Is Valid

name: recentSelectionIsValid, type: Bool, persistent: no

Indicates whether the contents of Recently Selected Point Index and Recently Selected Point Position are valid. Points can be selected in the display with Shift+Left Mouse.

Recently Selected Point Position

name: recentlySelectedPointPosition, type: Vector3, persistent: no

The recently selected point position; only valid if Recent Selection Is Valid is true. Points can be selected in the display with Shift+Left Mouse.

Recently Selected Point Index

name: recentlySelectedPointIndex, type: Integer, persistent: no

The recently selected point index; only valid if Recent Selection Is Valid is true. Points can be selected in the display with Shift+Left Mouse.

Render Area Hint XSize

name: renderAreaHintXSize, type: Integer, default: 200

Proposes the x extent of render area in the PCLVisualizer module. This, however, strongly depends on the used window manager and user interface mechanisms and is only a hint therefore. Note that this value is not used when the module is reloaded; in that case the normally saved window position is restored with the network reload. You need to touch Get Render Area Extents explicitly to set up the extent.

Render Area Hint YSize

name: renderAreaHintYSize, type: Integer, default: 200

Proposes the y extent of render area in the PCLVisualizer module. This, however, strongly depends on the used window manager and user interface mechanisms and is only a hint therefore.

Current Render Area Size X

name: currentRenderAreaSizeX, type: Integer, persistent: no

Same as Render Area Hint XSize, only for the y extent.

Current Render Area Size Y

name: currentRenderAreaSizeY, type: Integer, persistent: no

Shows the extent of the current render area in y dimension after Get Render Area Extents (or 0 if that is not visible). See Get Render Area Extents for details.

Get Render Area Extents

name: getRenderAreaExtents, type: Trigger

Notifying this field determines the current x and y extents of the render area if it is visible, otherwise the extents are set to 0. These extents are written into Current Render Area Size X and Current Render Area Size Y.

Hidden Fields

vtkMLQtRenderWindow

name: vtkMLQtRenderWindow, type: String