SoWEMRenderer

InventorModule
genre WEMRendering
author MeVis Medical Solutions AG
package MeVisLab/Standard
dll SoWEM
definition SoWEM.def
see also WEMIsoSurface, WEMInfo
keywords visualization, surface

Purpose

The SoWEMRenderer renders the faces of a WEM as an Open Inventor scene.

Usage

Just plug in a WEM into the input, and the module’s output into an Inventor viewer.

Interaction

A rendered WEM can be selected in the viewer. On the module?s GUI, some information on the clicked position, the id of the hit WEMPatch, as well as some additional information on the local configuration of the hit position is displayed.

Windows

Default Panel

../../../Modules/Inventor/SoWEM/mhelp/Images/Screenshots/SoWEMRenderer._default.png

Input Fields

The input is the WEM to be rendered and an option LUT for coloring the WEM (only meaningful if the WEM has values stored in at least one PVL).

inWEM

name: inWEM, type: WEM(MLBase)
For accessing this object via scripting see the Scripting Reference: MLWEMWrapper.

inLUT

name: inLUT, type: LUTFunction(MLBase)

inExtensions

name: inExtensions, type: SoNode

Allows to add extension modules to the SoWEMRenderer.

Output Fields

The WEM as an Inventor scene.

self

name: self, type: SoNode

Parameter Fields

Visible Fields

Auto Apply

name: autoApply, type: Bool, default: TRUE

If checked, all parameter changes lead to a new generation of the output scene.

Auto Update

name: autoUpdate, type: Bool, default: TRUE

If checked, all input changes lead to a new generation of the output scene.

Apply

name: apply, type: Trigger

if pressed, the module generates a new Inventor scene.

Enable Crease Angle

name: enableCreaseAngle, type: Bool, default: FALSE

If enabled, the normals on the triangles will be calculated for each node depending on the angle of the neighboring triangles, using the Angle angle. This allows to render sharp edged on WEMs, which would not be possible otherwise.

Angle

name: creaseAngle, type: Float, default: 75, minimum: 0, maximum: 175

The angle between neighboring triangles which is used to detect sharp/creasing edges.

Highlight selected patch

name: useHighlightSelected, type: Bool, default: FALSE

If checked, the selected WEMPatch is highlighted by a blinking silhouette.

This costs a lot of performance, so handle with care.

Color

name: highlightColor, type: Color, default: 1 0 0

The highlight color of the selected WEM.

Intensity

name: highlightIntensity, type: Float, default: 0.5, minimum: 0, maximum: 1

The intensity of the highlight.

Face Rendering Mode

name: faceRenderingMode, type: Enum, default: WEM_FACE_RENDERING_MODE_AUTO

Defines the rendering mode of faces.

Values:

Title Name Description
Auto WEM_FACE_RENDERING_MODE_AUTO

The rendering mode is determined automatically.

It will be DOUBLE_SIDE if the WEMPatch to be rendered has transparencies or holes, so that the backsides of faces are correctly rendered.

Otherwise, the render mode is SINGLE_SIDE.

However, the module cannot detect if a WEM is cut by a clipping plane.

Single Side WEM_FACE_RENDERING_MODE_SINGLE_SIDE

Only the front faces are rendered. This leads to a faster rendering as there are only half the amount of primitives to be processed.

However, transparencies, open WEMs (holes or clipping planes) are not rendered correctly.

Double Side WEM_FACE_RENDERING_MODE_DOUBLE_SIDE

Both, the front and the back side of polygons are rendered.

This mode always renders correctly, but always slow.

Hit Patch

name: hitPatchIndex, type: Integer, persistent: no

The index of the hit (picked) WEMPatch.

Hit Face

name: hitFaceIndex, type: Integer, persistent: no

The index of the hit (picked) face.

Nearest Node

name: hitNearestNodeIndex, type: Integer, persistent: no

The index of the nearest node to the hit position.

Nearest Value

name: hitNearestNodeValue, type: Float, persistent: no

The value of the node nearest to the hit position.

Hit Position

name: hitPosition, type: Vector3, persistent: no

The position where the picking ray first hit the surface.

Hit information valid

name: isHitInformationValid, type: Bool, persistent: no

This field is true if the hit information on the GUI is valid.

Allow Hits

name: allowHits, type: Bool, default: FALSE

If checked, the module evaluates picking information.

Perform pre-hit test

name: performPreHitTest, type: Bool, default: FALSE

If this is checked, a hit test is performed while hovering. This allows to adapt the cursor while over eligible WEMs and may allow other interactions to use the same button combination (when not over a WEM). A slight performance penalty may be induced by this, though.

This option should also be activated if several SoWEMRenderer modules in the same scene allow picking at the same time, since otherwise only the first module will get the click. Note though that the Hit information valid field will never get unset in this mode.

Color Mode

name: colorMode, type: Enum, default: WEM_COLOR_GENERAL

Determines how the WEM (faces) should be colored.

Values:

Title Name Description
General WEM_COLOR_GENERAL The WEM is colored according to the module’s own color settings.
Node Colors WEM_COLOR_NODE_COLORS The WEM is colored with the nodes’ color.
Lut Values WEM_COLOR_LUT_VALUES The WEM is colored with a LUT using the selected PVL.
Lut Values Integer WEM_COLOR_LUT_VALUES_INTEGER The WEM is colored with a LUT using the selected PVL rounded to integers.
Textured WEM_COLOR_TEXTURED The WEM is textured.
None WEM_COLOR_NONE The WEM is not colored and a SoMaterial node can be used to set the color.

Patch to Render (-1=all)

name: wemPatchToRender, type: Integer, default: -1, minimum: -1, maximum: :field:`maxWEMPatchIndex`

Sets the patch index to render. If set to -1, all patches are rendered.

Cache Patches

name: cachePatches, type: Bool, default: FALSE

If enabled, all WEM patches are pre-generated as Open Inventor facesets, even if Patch to Render (-1=all) is not -1. This allows to do fast patch animations, e.g. when the patches are for individual time points.

Send triangle adjacency

name: sendAdjacency, type: Bool, default: FALSE

If enabled, the WEM renderer sends triangle adjacency information when drawing (using GL_TRIANGLES_ADJACENCY).

This allows to access the three adjacent triangles of each triangle in a geometry shader.

Hidden Fields

interactionProviderID

name: interactionProviderID, type: String

autoClear

name: autoClear, type: Bool, default: TRUE

isMouseOverSurface

name: isMouseOverSurface, type: Bool, persistent: no

cursorShape

name: cursorShape, type: Enum, default: CROSS_CURSOR

Set the cursor shape displayed if the picking action is active.

Values:

Title Name
Undefined Cursor UNDEFINED_CURSOR
Default Cursor DEFAULT_CURSOR
Forbidden Cursor FORBIDDEN_CURSOR
Pointing Hand Cursor POINTING_HAND_CURSOR
Open Hand Cursor OPEN_HAND_CURSOR
Closed Hand Cursor CLOSED_HAND_CURSOR
Move All Cursor MOVE_ALL_CURSOR
Move Hori Cursor MOVE_HORI_CURSOR
Move Vert Cursor MOVE_VERT_CURSOR
Move Fdiag Cursor MOVE_FDIAG_CURSOR
Move Bdiag Cursor MOVE_BDIAG_CURSOR
Move Inout Cursor MOVE_INOUT_CURSOR
Rotate X Cursor ROTATE_X_CURSOR
Rotate Y Cursor ROTATE_Y_CURSOR
Rotate Z Cursor ROTATE_Z_CURSOR
Rotate Xy Cursor ROTATE_XY_CURSOR
Zoom Cursor ZOOM_CURSOR
Zoom In Cursor ZOOM_IN_CURSOR
Zoom Out Cursor ZOOM_OUT_CURSOR
Cross Cursor CROSS_CURSOR
Cross Plus Cursor CROSS_PLUS_CURSOR
Cross Minus Cursor CROSS_MINUS_CURSOR
Cross Move Cursor CROSS_MOVE_CURSOR
Cross Rotate Cursor CROSS_ROTATE_CURSOR
Cross Rect Cursor CROSS_RECT_CURSOR
Cross Oval Cursor CROSS_OVAL_CURSOR
Cross Vector Cursor CROSS_VECTOR_CURSOR
Cross Freeform Cursor CROSS_FREEFORM_CURSOR
Cross Point Cursor CROSS_POINT_CURSOR
Cross Line Cursor CROSS_LINE_CURSOR
Cross Curve Cursor CROSS_CURVE_CURSOR
Cross Polyline Cursor CROSS_POLYLINE_CURSOR
Cross Polygon Cursor CROSS_POLYGON_CURSOR
Cross Fill Cursor CROSS_FILL_CURSOR
Cross Link Cursor CROSS_LINK_CURSOR
Cross 0 Cursor CROSS_0_CURSOR
Cross 1 Cursor CROSS_1_CURSOR
Cross 2 Cursor CROSS_2_CURSOR
Cross 3 Cursor CROSS_3_CURSOR
Cross 4 Cursor CROSS_4_CURSOR
Cross 5 Cursor CROSS_5_CURSOR
Cross 6 Cursor CROSS_6_CURSOR
Cross 7 Cursor CROSS_7_CURSOR
Cross 8 Cursor CROSS_8_CURSOR
Cross 9 Cursor CROSS_9_CURSOR
Lut Cursor LUT_CURSOR
Lut 1 Cursor LUT_1_CURSOR
Lut 2 Cursor LUT_2_CURSOR
Lut 3 Cursor LUT_3_CURSOR
Slicing Cursor SLICING_CURSOR
Other Cursor 0 OTHER_CURSOR_0
Other Cursor 1 OTHER_CURSOR_1
Other Cursor 2 OTHER_CURSOR_2
Other Cursor 3 OTHER_CURSOR_3
Other Cursor 4 OTHER_CURSOR_4
Other Cursor 5 OTHER_CURSOR_5
Other Cursor 6 OTHER_CURSOR_6
Other Cursor 7 OTHER_CURSOR_7
Other Cursor 8 OTHER_CURSOR_8
Other Cursor 9 OTHER_CURSOR_9
Other Cursor 10 OTHER_CURSOR_10
Other Cursor 11 OTHER_CURSOR_11
Other Cursor 12 OTHER_CURSOR_12
Other Cursor 13 OTHER_CURSOR_13
Other Cursor 14 OTHER_CURSOR_14
Other Cursor 15 OTHER_CURSOR_15
Other Cursor 16 OTHER_CURSOR_16
Other Cursor 17 OTHER_CURSOR_17
Other Cursor 18 OTHER_CURSOR_18
Other Cursor 19 OTHER_CURSOR_19
Other Cursor 20 OTHER_CURSOR_20
Other Cursor 21 OTHER_CURSOR_21
Other Cursor 22 OTHER_CURSOR_22
Other Cursor 23 OTHER_CURSOR_23
Other Cursor 24 OTHER_CURSOR_24
Other Cursor 25 OTHER_CURSOR_25
Other Cursor 26 OTHER_CURSOR_26
Other Cursor 27 OTHER_CURSOR_27
Other Cursor 28 OTHER_CURSOR_28
Other Cursor 29 OTHER_CURSOR_29
Other Cursor 30 OTHER_CURSOR_30
Other Cursor 31 OTHER_CURSOR_31
Other Cursor 32 OTHER_CURSOR_32
Other Cursor 33 OTHER_CURSOR_33
Other Cursor 34 OTHER_CURSOR_34
Other Cursor 35 OTHER_CURSOR_35
Other Cursor 36 OTHER_CURSOR_36
Other Cursor 37 OTHER_CURSOR_37
Other Cursor 38 OTHER_CURSOR_38
Other Cursor 39 OTHER_CURSOR_39
Other Cursor 40 OTHER_CURSOR_40
Other Cursor 41 OTHER_CURSOR_41
Other Cursor 42 OTHER_CURSOR_42
Other Cursor 43 OTHER_CURSOR_43
Other Cursor 44 OTHER_CURSOR_44
Other Cursor 45 OTHER_CURSOR_45
Other Cursor 46 OTHER_CURSOR_46
Other Cursor 47 OTHER_CURSOR_47
Other Cursor 48 OTHER_CURSOR_48
Other Cursor 49 OTHER_CURSOR_49
Other Cursor 50 OTHER_CURSOR_50
Other Cursor 51 OTHER_CURSOR_51
Other Cursor 52 OTHER_CURSOR_52
Other Cursor 53 OTHER_CURSOR_53
Other Cursor 54 OTHER_CURSOR_54
Other Cursor 55 OTHER_CURSOR_55
Other Cursor 56 OTHER_CURSOR_56
Other Cursor 57 OTHER_CURSOR_57
Other Cursor 58 OTHER_CURSOR_58
Other Cursor 59 OTHER_CURSOR_59
Other Cursor 60 OTHER_CURSOR_60
Other Cursor 61 OTHER_CURSOR_61
Other Cursor 62 OTHER_CURSOR_62
Other Cursor 63 OTHER_CURSOR_63
Other Cursor 64 OTHER_CURSOR_64
Other Cursor 65 OTHER_CURSOR_65
Other Cursor 66 OTHER_CURSOR_66
Other Cursor 67 OTHER_CURSOR_67
Other Cursor 68 OTHER_CURSOR_68
Other Cursor 69 OTHER_CURSOR_69
Blank Cursor BLANK_CURSOR

primitiveValueLists

name: primitiveValueLists, type: String

primitiveValueListValid

name: primitiveValueListValid, type: Bool, default: FALSE

primitiveValueListAlphaValid

name: primitiveValueListAlphaValid, type: Bool, default: FALSE

maxWEMPatchIndex

name: maxWEMPatchIndex, type: Integer, default: -1

hitModifierKey

name: hitModifierKey, type: Enum, default: AllModifiersMask

Values:

Title Name
No Modifier NoModifier
Shift Modifier ShiftModifier
Control Modifier ControlModifier
Alt Modifier AltModifier
All Modifiers Mask AllModifiersMask