Man Linux: Main Page and Category List


       coin250 - New Features in Coin v2.5.0 This is a brief summary of the
       new features in Coin v2.5.0, grouped by feature category.

Geographical Data Support

       The Geopgraphic Data Support nodes are partly based on GeoVRML
       (, and partly based on our own UTM-nodes which
       can be found in the SmallChange library.

       The Geographic Data Support nodes makes it possible to create e.g.
       globe-spanning models that you can navigate around in without getting
       into float precision problems (’the shakes’). Some assistance from the
       application code is needed for this though; it is not a fully automatic

       New nodes:

       · SoGeoOrigin

       · SoGeoLocation

       · SoGeoSeparator

       · SoGeoCoordinate

       In addition to new nodes, SoCamera and its derived nodes have been
       updated to support the SoGeoOrigin node.

       The coordinate system support in the above nodes are currently a bit
       lacking (only a few systems/zones are supported), but this will improve
       over time. API-changes should not be needed to extend this, so
       patchlevel releases would be enough to add more coordinate systems.

       The VRML2 counterparts of the above nodes, which would be a subpart of
       implementing the GeoVRML extension, are not yet in development, but
       they might show up for the next major release since a big part of the
       implementation will be shared.

       Note: These above SoGeo*-nodes make the UTM*-nodes in the SmallChange
       library obsolete (for anyone who uses those), so the support for those
       nodes will eventually be deprecated and removed. They won’t be removed
       over night though, but for new users: avoid starting to use the
       UTM*-nodes at all cost to avoid having to waste time on a port down the

Generic GLSL Shader Support

       Shader support is implemented through a set of new shader nodes, more
       or less compatible with the corresponding TGS extensions. Beyond GLSL,
       Coin also supports ARB shaders and Cg shaders (if the Cg library is
       installed). However, we will only recommend the use of the shader
       language GLSL and put our focus on that one.

       New nodes:

       · SoShaderProgram

       · SoVertexShader

       · SoFragmentShader

       · SoGeometryShader

       See also the ’Shaders in Coin’ page for more information.

Generic Shadow Rendering Functionality

       Support for rendering shadows has been added to Coin through a set of
       shader-based nodes. The technique used is the Variance Shadow Maps
       technique (

       New nodes:

       · SoShadowGroup

       · SoShadowCulling

       · SoShadowStyle

Vertex Buffer Object (VBO) Usage

       A lot of nodes have had their rendering code optimized for VBO usage,
       giving great performance increases. However, this is not universally
       enabled - it is necessary to organize the scene graphs in specific ways
       for VBOs to be used.

       See the VBO Rendering in Coin  page for a detailed description.

       Relevant classes:

       · SoVertexProperty

       · SoReorganizeAction

Expanded Sb* Class Collection

       The set of Sb* classes in Coin has been expanded greatly, with most
       notable a whole skew of SbVec and SbBox classes. The reasoning behind
       this move was that historically these classes were just added as
       needed, one by one, causing the stable branch of Coin and the
       development branch of Coin to diverge and become more and more
       incompatible as time went by. Also, extension nodes were created in
       peripheral libraries that used these new classes from the Coin
       development branch, and consequently couldn’t be built gainst the
       stable branch of Coin. With this preemptive class set expansion, we
       hope to cause that the Coin stable branch and the Coin development
       branch stay closer in sync over a longer period, and that the
       incompatibility divergence will happen around major new feature sets
       instead of around minor details.

       New Sb*-classes:  SbBox2i32, SbBox3i32, SbBox3d, SbVec2b, SbVec2ub,
       SbVec2us, SbVec2i32, SbVec2ui32, SbVec3b, SbVec3ub, SbVec3us,
       SbVec3i32, SbVec3ui32, SbVec4b, SbVec4ub, SbVec4s, SbVec4us, SbVec4i32,
       SbVec4ui32, SbXfBox3d

       Note: You can also find a good deal of these classes in TGS Inventor,
       so this was also a TGS compatibility move.

Expanded Field Class Collection

       The exact same reasoning as for the Sb*-classes goes for the field

       New field classes:  SoSFBox2s, SoSFBox2i32, SoSFBox2d, SoSFBox2d,
       SoSFBox3i32, SoSFBox3d, SoSFColorRGBA, SoSFDouble, SoSFVec2b,
       SoSFVec2i32, SoSFVec2d, SoSFVec3b, SoSFVec3i32, SoSFVec4b, SoSFVec4ub,
       SoSFVec4s, SoSFVec4us, SoSFVec4i32, SoSFVec4ui32, SoSFVec4d,
       SoMFColorRGBA, SoMFDouble, SoMFVec2b, SoMFVec2s, SoMFVec2i32,
       SoMFVec2d, SoMFVec3b, SoMFVec3s, SoMFVec3i32, SoMFVec4b, SoMFVec4ub,
       SoMFVec4s, SoMFVec4us, SoMFVec4i32, SoMFVec4ui32, SoMFVec4d

SoFrustumCamera node

       This node is added to make it possible to set up a custom camera with
       full control over the view volume. SoFrustumCamera is basically a
       mapping of the OpenGL glFrustum() method.

       The typical use of SoFrustumCamera is in a CAVE or MultiPipe
       environment where it’s often necessary to set up cameras based on the
       configuration of the different displays.


       Below follows a non-exhaustive list of other, more minor, tweaks and

   SoSearchAction on SoFile nodes
       To facilitate control over whether an SoFile node should traverse its
       children during an SoSearchAction traversal, two static methods have
       been added to SoFile.

       New functions:

       · SoFile::setSearchOK() [static]

       · SoFile::getSearchOK() [static]

   SbTypeInfo<T> template type information library
       For those who write generic code using C++ templates, a template type
       information library has been added for the primitive Coin-types, so you
       can use type relations for populating a template instead of needing
       template parameters for all changing types of the template, or you can
       write generic code on type attributes like the number of dimensions of
       an SbVec class. SbTypeInfo<T> can be found in Inventor/SbTypeInfo.h.

   Visual Studio Projects
       The Visual Studio projects have been split into projects for separately
       building, installing, uninstalling the Coin SDK, and document
       generation. This was done primarily to be able to build without
       automatically performing the installation procedure at the same time,
       but also to offer other supplementary targets later like the doc-
       generation project...

       New features for Coin v2.4.0 are here.