Compatibility Notes


Open Inventor 9.3 (May 2013)

Older compatibility notes

Technical overview

Please at least glance through these compatibility notes so that you are not surprised by any differences in behavior between this release and the previous release.

You should completely recompile existing applications after installing a new version of Open Inventor.
New versions of Open Inventor are source code compatible (unless noted in this document), but not binary compatible.

New Classes

  • SoTessellationControlShader
  • SoTessellationEvaluationShader
  • SoVolumeBufferedShape
  • MoMeshSlab

New Fields/Enums in Existing Nodes

  • SoMarkerSet::markerGlobalScale
  • SoMarkerSet::markerScale
  • SoVolumeRender::opacityThreshold
  • MoMeshSkin::minCellRanges
  • MoMeshSkin::maxCellRanges
  • PoLinearAxis::gradStart
  • PoLinearAxis::gradEnd

 Open Inventor

SoElement methods visibility changes

  • The matches, copyMatchInfo, init, commonInit and getNextInStack methods of SoElement are now protected.
  • The push and pop methods of SoElement are now public.



  • Most of the SoLDMResourceParameter fields are now set to (-1) by default in order to let LDM compute resources based on its own heuristics. 
  • The maxTilesInMainMem field is now deprecated.
    Instead CPU resources should be set using the maxMainMemory field.
  • The maxTilesInTexMem field is now deprecated.
    Instead GPU resources should be set using the maxTexMemory field.


The cubicInterpolation field is now deprecated.  Cubic interpolation should be specified on the shape node, e.g. SoVolumeRender, using the value CUBIC in the interpolation field inherited from SoVolumeShape.

SoSlice bump mapping has a slightly different behavior

Due to a correction to the computation of normals, bump mapping on SoSlice is now rendered slightly differently. You can achieve a result similar to before by adjusting the value of the bumpScale field.

MeshViz XLM (C++ API only)

  • MiGeometry
    The getMin() and getMax() methods are now deprecated and are no longer called.
    The min and max of the input geometry is now always computed by MeshViz, possibly resulting in a slight drop in performance. This could happen with MoMeshGridPlaneSlice, MoMeshAnnotatedIsoline and MoMeshPointProbe

  • When implementing the interface MiBoundedDataSet the template argument must now have an explicit constructor with double type such as: 

 explicit T(double arg) { … } 

Java API Specific

SoSFEnum and SoMFEnum are now generic classes

SoSFEnum and SoMFEnum are now generic classes, and the type parameter is the enum type. As a result, in the SoSFEnum class, the signatures of the setValue and getValue methods have changed from:

public void setValue(com.openinventor.inventor.IntegerValuedEnum newValue);

public<T extendsEnum<T> & com.openinventor.inventor.IntegerValuedEnum> T getValue(Class<T> enumType) 


public void setValue(EnumType newValue)

public EnumType getValue(Class<EnumType> enumType) 

where SoSFEnum is declared as follows:

SoSFEnum<EnumType extendsEnum<EnumType> & com.openinventor.inventor.IntegerValuedEnum>  

The parameter type for these methods is now more restrictive and does not allow the use of incorrect enum types. The new API is more secure but this change can lead to compatibility issues if these methods were previously used incorrectly. For example, this code sample will no longer compile:



It must be replaced by:



Fixed bugs

Since 9.3.1, in the page " Fixed bugs" the bug tracking numbering has evolved to reflect internal improvement on issues management. New bug numbers have now five digits (old have only four digits).  For some bugs present in both system you can lookup the corresponding old number format in the comment, for example in the case #17604 you will find the comment [eBUG#5414] ...