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.
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. |
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 | |
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 |
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 |
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.
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.
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.
The example applications show the usage of the Orthogonal viewer as viewer in a single and a multi window application.
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.
This project relies on the successful installation of the following components. Without them it will not function correctly.
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.
Stephan Ebersbach Manchester Visualization Centre
Tobias Schiebeck Manchester Visualization Centre
International AVS Centre Manchester Visualization Centre Kilburn Building University of Manchester Oxford Road Manchester United Kingdom M13 9PL