RELEASE NOTES ============= This file describes notable changes in the Coin library in a more elaborate way than can be fit into to the compact NEWS summary file. The changes described here are issues that might have an effect on the compatibility of your source code when upgrading the library. Coin 3.1.3 ========== This is a bugfix release. Due to an underlying buildsystem upgrade, the default location of the generated HTML docs changed from $datarootdir/share/Coin/html to $datarootdir/share/doc/coin/html. Coin 3.1.2 ========== This is a bugfix release. Coin 3.1.1 ========== This is a bugfix release. Bugs are fixed in all the NURBS related classes, and SoIndexedPointSet. Coin 3.1.0 ========== Default transparency type for SoGLRenderAction changed from SCREEN_DOOR to BLEND. SoBase will not keep a list of unnamed / empty named nodes any more. This is both an optimization and improves conformance to SGI / TGS Inventor. SbTesselator does better when handed certain polygons, due to improved precision in internal calculations. Resource usage pressure significantly lower for common case scene graphs with regard to mutex allocations. A not entirely uncommon problem on MS Windows systems for huge scene graphs was that the run-time system ran out of available mutexes -- this is now very unlikely to happen. Builds with G++ and MSVC will have C++ exception support enabled by default. SoSceneManager render callback can be set to NULL to disable it. Non-power-of-two textures are automatically supported if the OpenGL driver has that feature. No other intentional differences in semantics, other than for any bugs fixed. Coin 3.0.0 ========== New scene graph traversal profiling subsystem. New node SoVertexAttribute which provides vertex attribute support for shaders. New SoDepthBuffer node to control depth buffer settings. New SoShadowSpotLight node in the shadow generation subsystem. New SoHeightMapToNormalMap engine to convert depthmap images to three- component normal maps. SoPickStyle has three new style settings, SHAPE_ON_TOP, BOUNDING_BOX_ON_TOP, and SHAPE_FRONTFACES. Integrated XML parser used for various purposes. GL feature control through a new GLDriverDatabase subsystem which is configurable through XML files. Statechart XML engine, which has been used to implement examiner-mode viewer navigation at the Coin level (earlier this functionality was implemented over and over again in the various GUI libraries). Foreign file format support through SoForeignFileKit, with an example SoSTLFileKit implementation for STL import. There is a testsuite framework based on Boost.Test Translation draggers (1D/2D) are now fitted with new fields minTranslation and maxTranslation to add the ability of restricting the range the draggers can operate in. When this feature is used, and draggers are stored to file, it has consequences for the file format, and you lose the ability to load those files with older versions of Coin. Slight change in antialiased rendering with SoGLRenderAction::setNumPasses(). Antialiased rendering is no longer shifted 1/2 pixel to the left compared to single-pass non-antialiased rendering. Dynamic loading of support libraries for Mac OS X has been changed, which has consequences for which possibilities are available for bundling such libraries when creating your application bundles. Coin 2.5.0 ========== SoFaceDetail's FaceIndex property behaves slightly different, now the same way SGI Inventor does it. Coin 2.4.6 ========== No intentional differences in semantics, other than for any bugs fixed. Coin 2.4.5 ========== Minor axis MIDDLE (i.e. center) justification for VRML97's FontStyle and Text nodes did previously not work as expected, but should now, so text layout depending on the old, wrong behavior might not look good any more. Coin 2.4.4 ========== Ray-picking precision has been vastly improved, which may result in slight application behaviour changes, hopefully in a positive way. Coin 2.4.3 ========== No intentional change in semantics for anything in this version. Coin 2.4.2 ========== No intentional change in semantics for anything in this version. Coin 2.4.1 ========== Rectangle and lasso selection (SoExtSelection) can now be aborted through keyboard events. Coin 2.4.0 ========== Fixed sensor processing in SoSensorManager to be conformant to SGI Inventor. Sensors with equal priority or trigger time are now processed FIFO (this used to be LIFO). File compression support (reading) was removed for anything but regular files and memory buffers (to fix a bug). Coin 2.3.0 ========== No intentional change in semantics for anything in this version. Coin 2.2.1 ========== VRML97 PROTOs are now handled more properly. Fields are connected both ways between the scene graph and the PROTO instance. You can now change fields in the scene graph, and the PROTO instance (the container for the PROTO based fields) will be updated. When exporting scene graph to file again, PROTO field values should contain updated values. See also description for Coin 2.2.0; "the release that never was"[1]. Coin 2.2.0 ========== New nodes SoBumpMap, SoBumpMapCoordinate, and SoBumpMapTransform for bumpmapping support. New node SoTextureUnit for multitexturing support. New node SoSceneTexture2 for rendering scene graphs to textures, with offscreen pbuffer support on selected platforms. Slight change of semantics for the SoFile node: the scene graph from the file will now always be reproduced as-is from the SoFile node. Previously, there would always be an SoSeparator root node added (if one was not present). Note that this change can in theory cause visible changes for application code using SoFile nodes, as e.g. appearance type nodes (like for instance SoMaterial) can now influence subsequent parts of the scene graph. The new behavior is consistent with the behavior of SoFile from the original Open Inventor implementation of SGI. Also note that there was a bug in getting bounding box information for SoFile nodes (and SoVRMLInline nodes) that has now been fixed. Slight change of semantics for the SoMarkerSet node: a marker in the marker set will now be culled if its 3D position is positioned on the "clipping side" of an SoClipPlane node. (SoMarkerSet markers was previously only culled against the near and far view frustum clipping planes.) Coin 2.1.0 ========== New class SoIntersectionDetectionAction in Inventor/collision/ for detecting intersecting primitives in a scene graph. New class SoVectorizePSAction in Inventor/annex/HardCopy/ for generating PostScript images of scene graphs. Inventor and VRML files compressed on disk with gzip or bzip2 will be decompressed automatically upon loading. API functions for controlling compression during export has been added to the class SoOutput. SoBoxHighlightRenderAction and SoLineHighlightRenderAction will now do highlight rendering for all SoSelection nodes in the scene graph, not just the first one. Coin 2.0.2 ========== We found and fixed a bug for SoQuadMesh usage with PER_FACE materials. Models depending on this bug will likely change appearance. This was a bug that was introduced in Coin-2. Coin-1 does not have this bug. Nodekits will now write out all relevant parts when the scene graph is exported (not only the public parts as we did earlier). This is done to be compatible with SGI/TGS Inventor. Because of this new feature, it will now also be possible to import data into private nodekit parts. In Coin 2.0.1 this would trigger a read error. Coin 2.0.1 ========== No intentional change in semantics for anything in this version. Coin 2.0.0 ========== Removed obsoleted methods in SoField: SbBool connectFrom(SoVRMLInterpOutput * master, SbBool notnotify = FALSE, SbBool append = FALSE); SbBool appendConnection(SoVRMLInterpOutput * master, SbBool notnotify = FALSE); void disconnect(SoVRMLInterpOutput * interpoutput); SbBool isConnectedFromVRMLInterp(void) const; SbBool getConnectedVRMLInterp(SoVRMLInterpOutput *& master) const; These methods were obsoleted in Coin-1, and we chose to remove them in Coin-2. Changed behaviour of CLAMP texture wrap mode When CLAMP is specified as the texture wrap mode (for SoTexture2 or SoTexture3), the OpenGL feature GL_CLAMP_TO_EDGE will be used instead of GL_CLAMP. This is done since GL_CLAMP_TO_EDGE is usually what you want. Especially for Coin/Open Inventor where it's impossible to specify the texture border color used by GL_CLAMP. The environment variable COIN_ENABLE_CONFORMANT_GL_CLAMP can be set to "1" to force Coin to use GL_CLAMP instead of GL_CLAMP_TO_EDGE. [1] Coin 2.2.0 was pulled before it was announced because of a critical bug that was introduced just before the release. We want to blame a serious disk crash we experienced two days earlier, but we should maybe blame our backup and final testing routines instead.