Fixed Open Inventor Bugs

Issue API Product Release
5025

Improved quality of volume rendering when deferred lighting or ambient occlusion is enabled. Previously, rendering artifacts may have been seen.

Cpp VolumeViz 9.3
5027

Fixed rendering artifacts that occurred when using SoVolumeRenderingQuality::boundaryAligned = TRUE with rectilinear data sets.

Cpp VolumeViz 9.2.4
5028

When using SoSceneManager::setAutoInteractiveMode(true) (also activable by mean of  Viewer’s PopMenu), modifying the scene graph underlying a fastEdit separator, the image was flickering between interactive and still mode.

Core Open Inventor 9.2.3
5029

VolumeRender - In some cases, when loading a large dataset (LDM) with a low texture load rate, not all textures could be loaded.

Core VolumeViz 9.3
5030

SoToPDF/U3DAction had very bad performance (appeared to freeze) when applied to an MiHexahedronTopologyExplicitIjk mesh representation.

Core HardCopy 9.2.4
5033
Removed failure when switching from one mesh to another in MoMeshSkin. 
Now, if the mesh is properly displayed by the skin (such as a regular volume mesh), switching to a mesh not handled by the skin (such as a regular surface mesh) causes a warning message "Inventor warning in MoMeshSkin::doExtract(): Cannot compute skins on this type of mesh".
Cpp MeshVizXLM 9.3
5035

VolumeEdit doesn't fail using polygon screen drawer.

Core VolumeViz 9.2.3
5037

Volume render, in slicing and VolumeMask, works fine.

Cpp Open Inventor 9.2.3
5038

There is no more background flickering when a field under the fastedit node is changed.

Core Open Inventor 9.2.3
5041
NVIDIA graphics card - SoLDMGlobalResourceParameters::getMaxTexMemory() now returns the correct size on GPUs with more than 4GB memory. 
Core Open Inventor 9.2.4
5042

While dragging SoRoiManip inside a PoSceneView, the position of the dragger was not synchronized with the mouse pointer.

Core Open Inventor 9.2.4
5043

When using SoSceneManager::setAutoInteractiveMode(true) (also activable by mean of  Viewer’s PopMenu), modifying the scene graph underlying a fastEdit separator, the image was flickering between interactive and still mode.

Core Open Inventor 9.2.3
5045

SoVolumeSkin is refined to full resolution when initial ROI (region of interest) is smaller than full volume.

Core VolumeViz 9.2.3
5049

Transparent geometry doesn't disappears with delayed transparency.

Cpp Open Inventor 9.2.3
5052

SoShadowGroup - The shadow cast on geometry was rendered on both sides of the geometry.  It should be only on the side toward the light.

Core Open Inventor 9.2.4
5054

Volume reader works fine.

Core Open Inventor 9.2.3
5056

The demo SoLDMWriter for VolumeViz works and converts a LDM file.

Cpp VolumeViz 9.2.3
5057

Opaque volumes in a SoVolumeGroup node are displayed.

Core VolumeViz 9.2.3
5058

Fixed problems related to SoVRMLInterpolator: derived nodes not having next action method index set.

Cpp Open Inventor 9.2.3
5060

OGLInfo tool for Unix does not fail and shows all the information.

Core Open Inventor 9.2.3
5061

SoConsole doesn't fail writing the output file oivErrorFile.txt when the current working directory is read only. The file will be saved to the temporary folder (specified by SbFileHelper::getTempDirectory()).

Core Open Inventor 9.2.3
5063

It was not possible to create render areas on multiple X11 displays.

Cpp Open Inventor 9.2.3
5065

IvTune works properly when using Qt application.

Cpp Open Inventor 9.2.3
5066

SoLineSet - In some cases picking a line set failed, depending on the zoom factor. Related to #5097.

Core Open Inventor 9.2.4
5067

Volume mask was not visible in boundary mode.

Cpp VolumeViz 9.2.3
5069

Part of the internal scene graph of the representation was not deleted when clearing a MeshViz scene graph because there was a memory leak in MoMeshRepresentation.

Cpp MeshVizXLM 9.2.3
5070

MPEG recorder failed when the recording was restarted before finishing the first recording.

Core Open Inventor 9.2.3
5073

SoVolumeRender with composition MAX_INTENSITY_PROJECTION: using the opaque color map INTENSITY, voxels with zero value are now black instead of transparent.

Core VolumeViz 9.2.3
5077

EclipseMeshViz demo failed when displaying VertexPillarMesh.

Cpp MeshVizXLM 9.2.3
5078

Fixed behaviour with low resolution tile of method getSubSlice() of custom volume reader.

Core VolumeViz 9.2.3
5079

A DICOM volume, stored as multiple files (one slice per file), where the slice image files do not contain the image position or slice location tag, is correctly displayed.

Core VolumeViz 9.2.3
5081

QuadraticTube demo failed when switching to non-parallel mode.

Cpp MeshVizXLM 9.2.3
5082

MoMeshLine representation using a MoTessellator on quadratic lines was showing internal tesselation points when switching from parallel mode to a non parallel mode.

Cpp MeshVizXLM 9.2.4
5083

IvTune plugin projects were generating the wrong DLL name for the debug target.

Cpp IvTune 9.2.4
5086

In some cases, changing the visibility of a transparent shape multiple times caused the shape to disappear (no longer be rendered).

Cpp Open Inventor 9.2.4
5087

Fixed mouse binding management. Now when the viewer is in selection mode, both down and up key events are sent to the scene graph correctly.

Cpp Open Inventor 9.2.4
5088
SoWinExaminerViewer:: addViewingMouseBinding() - Fixed incorrect behavior in input mouse binding.
It is now possible implement a "mode-less" viewer correctly. 
For instance, if the third mouse button is bound to Pan and the viewer is in viewing mode, when the third button is pressed, now the viewer switches to viewing mode and it is possible to pan until the mouse button is released.
Cpp Open Inventor 9.2.4
5089
SoWinExaminerViewer::addViewingMouseBinding() - In the default viewer behavior it is possible to change the viewing function while the mouse button (button1) is already pressed. 
For example, press button1 to activate the spin function, then press Shift to temporarily activate the pan function, release Shift to return to the spin function. Now, pressing a modifier key (also linked with addViewingMouseBinding) no longer stops the active viewing function.
Cpp Open Inventor 9.2.4
5090

A crash occurred when changing a shape's material property from transparent to opaque during a render traversal. Note: In general the scene graph should not be modified during a render traversal. Use, for example, an SoOneShotSensor to schedule a change to be made after the render traversal has completed.

Core Open Inventor 9.2.4
5095

MoMeshSkin applied on regular, rectilinear and curvilinear meshes did not display scalar sets properly.

Cpp MeshVizXLM 9.2.3
5096

SoLineSet - In some cases separate line sets with a common vertex were incorrectly clipped and appeared disjoint.

Core Open Inventor 9.2.4
5097

SoLineSet - In some cases picking a line set failed. Related to #5066.

Core Open Inventor 9.2.4
5098

Fix bad caching condition that led to VolumeViz object disappearing.

Core Open Inventor 9.3
5100

NET - Custom node may be collected despite they are still referenced in the application scene graph.

.NET Open Inventor 9.2.4
5101

VolumeViz - In some cases performance was reduced for a large scene graph with many Open Inventor shapes.  This was due to time taken by the SoLDMValuationAction pre-rendering pass (this is an internally used action).  Separator nodes now cache the result of this action similar to other actions.

Core VolumeViz 9.2.4
5103

NET - Assertion was displayed when removing nodes with user data.

.NET Open Inventor 9.2.4
5107

Fixed demos (.NET and C++) that use multi-touch manipulation (rotation, scaling, etc. ...) by adding a call to the method setHandled(). 

Core Open Inventor 9.3
5110

Improved SoPointSet performance. SoPointSet has an auto-simplification feature that skips some number of points depending on the value field of SoComplexity. For SoComplexity values below 0.5 the points now are decimated (fewer points are displayed) following a logarithmic law and the performance improves accordingly.

Core Open Inventor 9.2.4
5112

SoAnnoText3 - In some cases, characters were incorrectly rendered as solid rectangles when the camera position was very close to the text.

Core Open Inventor 9.2.4
5113

Java - Opening and closing an Open Inventor viewer multiple times in an RCP (Rich Client Platform) application on Linux could cause a crash.

Java Open Inventor 9.2.4
5118

Improved event handling of Open Inventor viewer. Now, all events not handled by the viewer are sent to the scene graph.

Cpp Open Inventor 9.2.4
5119

If the scene graph contained lines that were invisible (line pattern equal to zero), during export of a scene graph to  HPGL, GDI, CGM, or PostScript, an infinite loop could occur. 

Cpp HardCopy 9.2.4
5123

When reading PNG file with multiple IDAT chunks, Open Inventor no longer crashes. 

Core Open Inventor 9.2.4
5126

Fixed volume rendering. There is no longer a dark halo around the volume when using ambientOcclusion in low resolution. A numerical instability in the ambient occlusion shader was fixed.

Core VolumeViz 9.3
5130

Spacing of Kanji characters was incorrect with Japanese font MS Mincho and MS Gothic.

Core Open Inventor 9.2.4
5131

Tesselation of characters was incorrect for Chinese font SimSun.

Core Open Inventor 9.2.4
5132

SoVRDicomFileReader crashed when the specified input file name was missing (*.dcm).

Core VolumeViz 9.2.4
5133

In some cases, after importing a DXF version 15 file, some text was missing, incorrectly rotated, or too small.

Core Open Inventor 9.2.4
5139

In some cases, when using AutoInteractiveMode (see SoSceneManager), the rendering never returned to "still" mode (remained in interactive mode).

Core VolumeViz 9.2.4
5144

NET - Custom volume reader - If you defined and used a custom volume reader, it could have been automatically removed by garbage collection even if it was still referenced in the application.

.NET Open Inventor 9.2.4
5147

There was a memory leak in SoOffscreenRender::render() when full-scene antialiasing (FSAA) was enabled.

Core Open Inventor 9.2.4
5152

Incorrect rendering when using FastEdit mode (see SoSeparator) with FXAA antialiasing.

Core Open Inventor 9.2.4
5153

Fixed crash that occurred after SoWriteAction was applied multiple times on a node using the alternate representation mechanism.

Core Open Inventor 9.2.4
5155

Fixed rendering artifact that made lines and text barely readable when displayed in front of a volume render node where only one of the transfer function opacity values was slightly below 1.0.

Core VolumeViz 9.3
5156

Fixed precision issue in raycast shader when other objects were inside the border of the volume.

Core VolumeViz 9.3
5157
SoExtSelection with SoClipPlane - You can now change the SoExtSelection behavior when the scene graph contains SoClipPlane nodes by changing the new Open Inventor parameter OIV_SELECTION_USE_CLIPPLANES from 0 to 1 (default is 0). If you set the parameter equal to 1, the selection is now applied only to the shapes that are not culled out by the clipping planes.
 
Note that, even if OIV_SELECTION_USE_CLIPPLANES is set to 1 and the user has added triangle or segment filter callbacks (setTriangleFilterCallback/setLineSegmentFilterCallback), the user callback function is invoked just once for the untrimmed selected primitives (triangles or segments).
Core Open Inventor 9.3
5170

Java - SwSimpleViewer did not support the usual behavior of the ALT key in Open Inventor viewers.  Specifically, when the viewer is in selection mode, pressing and holding the ALT key now causes the viewer to return to viewing mode temporarily, until the ALT key is released. This behavior is useful when the user must alternate between moving the camera and moving a dragger.

Java Open Inventor 9.2.4
5172

VRML export. Sometimes, if one of the shapes in the input Open Inventor scene graph had a coordIndex without any value, SoVRMLAction and SoVRML2Action crashed.

Core Open Inventor 9.2.4
5173

VRML export. If SoVertexShape nodes are in a node kit, now the vertex property fields of the SoVertexShape nodes are correctly translated to VRML.

Core Open Inventor 9.2.4
5174

Fixed failure when loading volume data file with very large dimensions (20000x10000x1).

Core Open Inventor 9.2.4
5175

Fixed incorrect license management. SoVolumeMask no longer requests an LDM license.

Core VolumeViz 9.2.4
5176

VolumeViz - In some cases line geometry was partially visible when it should have been hidden by the volume rendering. There is now improved precision in raycast shader when an object is inside the border of the volume.

Core VolumeViz 9.2.4
5177

NET and Java - DirectViz - SoDirectVizManager::setCamera() method is now exposed. It can be used to provide DirectViz access in a custom viewer.

.NET DirectViz 9.3
5182

Java - The SoIvTune static class is now exposed. This class provides static methods to start IvTune as an alternative to the default shift-F12 hot key.

Java Open Inventor 9.2.4
5183

Incorrect rendering when using DELAYED_SORTED_LAYERS_BLEND transparency mode on ATI (AMD) FirePro board.

Core Open Inventor 9.2.4
5185

VolumeViz - Incorrect rendering of slices when the useRGBA field was enabled.

Core VolumeViz 9.2.4
5192

In some cases, if sorted layers blend mode was enabled, text strings could disappear. 

Core Open Inventor 9.2.4
5193

SoVertexShape::allocateVBO() crashed in some cases after unref call.

Core Open Inventor 9.2.4
5196

Java - Crashed if SoPreferences.setValue() was called before any Open Inventor classes were instantiated. Now it is possible to call  SoPreferences.setValue() before any other call to OpenInventor method.

Java Open Inventor 9.2.4
5198

 Fixed rendering artifacts that could occur when drawing isosurface with SoVolumeRender::subdivideTile = TRUE.

Core VolumeViz 9.2.4
5200

Java - The class SoGLLazyElement is now exposed.  Note that this class is not needed in applications using an Open Inventor viewer class. It is useful when doing Open Inventor rendering in an OpenGL context created by third-party software. Normally Open Inventor assumes that the OpenGL state at the beginning of traversal is the same as it was at the end of the last traversal. As a result Open Inventor may not send the first material to OpenGL. This is a valid assumption when using an Open Inventor viewer class, but is not valid when a third party controls the OpenGL context. In this case it is necessary to be able to call SoGLLazyElement.reset() before each traversal.

Java Open Inventor 9.2.4
5203

MeshViz XLM picking returned an MoFaceDetail with data set values even if no data sets were mapped on the mesh (no MoMaterial.faceColoring::CONTOURING was used).

Cpp MeshVizXLM 9.2.4
5219

EclipseMeshViz demo could not generate a large mesh.

Cpp MeshVizXLM 9.3
5226

NET - The first rendering of an SoWpfRenderArea was empty.

.NET Open Inventor 9.2.4
5230

SbViewportRegion::getWindowSize() and SbViewportRegion::getWindowSize_i32() methods returned viewport dimension instead of the window size in offscreen tiled rendering.

Core Open Inventor 9.2.4
5237
Loading huge non-LDM files (such as *.am, *.vox, *.vol, etc…) an overflow was not handled while reading a full slice and VolumeViz was crashing.
Cpp VolumeViz 9.2.4
5238

In some cases, when the scene graph contained SoPathSwitch and SoMultiDataSeparator, a crash occurred during a bounding box action traversal. 

Core Open Inventor 9.2.4
5240

SoFontGL2D::allocateRoomInTexture(). In some cases, an invalid textured glyph was returned and caused the crash.

Core Open Inventor 9.2.4
5246

SoBufferedShape. In some cases using SoBufferedShape and Qt antialiasing resulted in incorrect rendering.

Cpp Open Inventor 9.2.4
5248

Improved shadow option. Now, if you change SoShadowStyle::style to NO_SHADOWING, the style is handled properly. 

Core Open Inventor 9.2.4
5251

In some cases using a custom shader, the color was not set properly to gl_color. Now the issue is fixed and both the color and the material are changed to have the same behavior with or without lighting.

Core Open Inventor 9.2.4
5252

Linux - Qt. Using an SoQtViewer in a Qt MDI application caused a crash. 

Core Open Inventor 9.2.4
5253

VolumeViz - Removed unecessary warning message that was displayed when rendering a slice with large tile size.

Core VolumeViz 9.2.4
5254

When an SoAnnoText3 node contained multiple lines of text and the render mode (SoAnnoText3Property) was RENDER2D_PRINT_RASTER, all the lines of text were rendered on top of each other. Rendering in other modes was correct.

Core Open Inventor 9.2.4
5255

MeshVizXLM - In some cases an exception or a crash occurred while picking an extracted MoMeshOutline.

Cpp MeshVizXLM 9.2.4
5256

NET - In some case the COM object initialization returns an unexpected status for the code and this causes a crash in the application. Now the problem is fixed and the status com return values S_FALSE is no longer considered as failure but we consider that the component is already initialized.

.NET Open Inventor 9.2.4
5257

TGS vector font. In some cases the bounding box did not fit the displayed text. 

Core Open Inventor 9.2.4
5260

When IvTuneViewer load a scene graph with a bad file path for SoVolumeData, included in SoVolumeMask, the rendering of SoVolumeMask crashed because due to invalid data management. 

Core VolumeViz 9.2.4
5268

In some cases there were blinking shapes due to OIV_CACHE_MODE management while the camera moved. The problem is now fixed. A workaround is to set OIV_CACHE_MODE = SoDB::RenderCacheMode::COMPILE_AND_EXECUTE (=1).

Cpp Open Inventor 9.2.4
5270

SoVolumeMask. When two regions were specified to be invisible using SoVolumeMask, the overlap between them was visible. Now the regions will be invisible.

Cpp VolumeViz 9.2.4