OrthogonalViewer2

Synopsis

This module provides a new viewer that uses four separate windows to show a field. Three of the windows show orthoslices through the field parallel to the main plains (xy, xz and yz plane). The fourth viewer is a 3D view onto the objects. The position of the orthoslice planes can be changed interactively.

Input Ports

Name Type Description

child_objs DataObject[] array of directly renderable objects to be shown in the 3D scene
in_objs DataObject[] array of directly renderable objects to be shown in the three orthoslice views.

Parameters

Name Type Description Name

showPlane int[3] array of integers to toggle the tree orthoslice planes in the 3D scene Toggle Buttons
plane int[3] array of integers that contains the positions of the orthoslice planes Sliders
zoom int[3] array of integers that contain a zoom value for the orthoslice views (in steps of 0.05) Sliders
globalZoom int integer that contains a common zoom value for the orthoslice views (in steps of 0.05) Slider
DataRangeSize int[3] integers that contain the number of colours to be used in the datamap in the orthoslice views Sliders
globalDataRangeSize int integer that contains a common number of colours to be used in the datamap in the orthoslice views Slider
useGlobal int toggle that switches between using individual or common settings for the orthoslice views Toggle Button
WindowCenter int[2] position of the crosshairs between the viewersubwindows  

Output Ports

Name Type Description

picked_obj DefaultObject picked_obj output from the 3D Viewer
curr_view DefaultView+DefaultView curr_view output from the 3D Viewer
cur_obj DefaultObject cur_obj output from the 3D Viewer
SelectedPoint int[3] point where the three planes intersect

Description

The OrthogonalViewer module provides a new 3D viewer which can be incorporated in all standard AVS/Express applictions. This module is derrived from the UViewer3D, which builds the 3D scene in the otuput window. The behaviour of the 3D scene is identical to the standard UViewer 3D. The 2D scenes cannot be selected by the user. That means all the buttons in the single and multi window application only affect the 3D scene.

This Viewer output also provides three orthoslice views of the axial (xy), coronal (xz) and sagittal (yz) plane. In each of the planes there are two white lines representing the positions of the other planes. The plane positions can be altered by a left mouse click at the wanted new position for the planes. The white lines and the affected planes wil be updated.

Dragging with the right mouse buttons in the 2D orthoslice windows allows to zoom in and out on the plane.

Dragging with the middle mouse buttons in the 2D orthoslice windows allows to modify the number of colours used in the datamap of the orthoslice planes.

The orthoslice planes can be switched on and of in the 3D Scene. The datamap used for these orthoslice planes are identical to the ones used in the 2D scenes.

The orthoview crosshairs and with that the size of the viewersubwindows can be changed by dragging with the right mouse buttons on the crosshairs.

All interactions which can be done using mouse buttons except positioning of crosshairs, can also be set in the user interface of the OrthogonalViewer module.

View window of the OrthogonalViewer
View window of the OrthogonalViewer

Parameters

Inputs

child_objs

Array of directly renderable objects which is shown in the 3D scene.

in_objs

These directly renderable objects will be shown in the three orthoslice views. Structured and unstructured fields can be mixed when using this module. There is a problem however that the module throws error messages when fields are disconnected from the input port. However, these error messages do not interfere with the functioning of the module.

Parameters

showPlane

These toggle buttons allow to show or hide the planes (axial - xy , coronal - xz and sagittal - yz) shown in the 2D views in the 3D scene.

plane

These sliders allow to move the orthoslice planes of the 2D views. The positions of the other planes are represented by the white cross int the 2D view. This position can be changed by clicking the left mouse button at the wanted point.

zoom

These sliders allow to change the zoom value for the individual 2D orthoslice views. This value can also be changed by dragging with the right mouse button up and down in the respective window.

DataRangeSize

These sliders allow to change the number of colours to be used in the datamap for the individual 2D orthoslice views. This value can also be changed by dragging with the middle mouse button up and down in the respective window.

useGlobal

This Toggle Button switches the settings for the individual 2D orthoslice views to a common values for all three 2D views. It effects the zoom value as well as the DataRangeSize. Modifications made in either of the three 2D views affect the common value.

WindowCenter

This IntArray describe the position of the center of crosshairs between the viewersubwindows. This values can also be changed by dragging with the right mouse button on the crosshairs.

Outputs

picked_obj

picked_obj output of the3D Viewer. This output is not processed by the OrthogonalViewer. It is passed through as it comes from the 3D scene.

curr_view

curr_view output of the3D Viewer. This output is not processed by the OrthogonalViewer. It is passed through as it comes from the 3D scene.

cur_obj

cur_obj output of the3D Viewer. This output is not processed by the OrthogonalViewer. It is passed through as it comes from the 3D scene.

SelectedPoint

This output provides the 3D point in the Field where the three orthoslice planes intersect.

Example

The example applications show the usage of the Orthogonal viewer as viewer in a single and a multi window application.

Files

iac_proj/orthview/orthview.v

Creates the IAC_PROJ.OrthogonalViewer library.

iac_proj/orthview/oviewmod.v

Creates the OrthogonalViewerMods library containing the low-level support modules copy_on_modify, TransSliceCute and the parameter group OrthogonalViewerParams.

iac_proj/orthview/oviewmac.v

Creates the OrthogonalViewerMacs library containing the high-level macros OrthoScene, OrthogonalViewerUI, OrthogonalViewer and OrthogonalViewer2. It also contains the support macros transslice, transslice_ARR, get_position, ChangeDatarange, ChangeZoom, DrawCross2D, globalUI, localUI which are used by the high level macros.

iac_proj/orthview/oviewapp.v

Creates the OrthogonalViewerApps library containing the examle applications OrthogonalViewerSingleEg, OrthogonalViewerMultiEg, OrthogonalViewerSingleEg2 and OrthogonalViewerMultiEg2.

Prerequisites

This project relies on the successful installation of the following components. Without them it will not function correctly.

Other Notes

The OrthogonalViewer macro is using components of the slice_orthoplane_ARR module. Unfortunately due to the fact that original Express modules have been modified this project will only work with AVS/Express Developer's Edition.

Authors

Stephan Ebersbach
Manchester Visualization Centre

Tobias Schiebeck
Manchester Visualization Centre

Contact

International AVS Centre
Manchester Visualization Centre
Kilburn Building
University of Manchester
Oxford Road
Manchester
United Kingdom
M13 9PL