coin250(3)

πŸ“¦
version 4.0.10 Β· 4 versions
, in fedora 43, fedora 44

πŸ’– coin250(3) β€” Coin πŸ’–

okay bestie, sit down, grab a boba, because this is the coin250(3) page and it's literally just a whole glow-up tour of what's new in Coin v2.5.0. it's a brief summary, grouped by feature category. that's it, that's the whole vibe ✨


🌍 NAME 🌍

coin250 β€” New Features in Coin v2.5.0

so basically this is a little rundown of all the new stuff in Coin v2.5.0, sorted into lil categories so your brain doesn't explode. cute, right? πŸŽ€


πŸ—ΊοΈ Geographical Data Support πŸ—ΊοΈ

the Geographic Data Support nodes are partly based on GeoVRML (http://www.geovrml.org/) and partly based on our own UTM-nodes which live in the SmallChange library. two moms, one feature, we love to see it πŸ’…

the whole point? these nodes let you make globe-spanning models that you can navigate around in without hitting float precision problems (aka "the shakes"). iconic name, no notes. but β€” and this is important β€” some assistance from the application code is needed for this. it is not a fully automatic solution, bestie. you gotta do a lil work too 😭

New nodes:

  • SoGeoOrigin
  • SoGeoLocation
  • SoGeoSeparator
  • SoGeoCoordinate

and not just new nodes! SoCamera and its derived nodes have been updated to support the SoGeoOrigin node. slay 🫢

the coordinate system support in the above nodes is currently a bit lacking (only a few systems/zones are supported) β€” but it'll improve over time, promise. API-changes should not be needed to extend this, so patchlevel releases would be enough to add more coordinate systems. so like, no big dramatic refactor, just lil updates 🌸

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. manifesting it for u πŸ™ˆ

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 line. fr fr, don't do it, save yourself πŸ’€

✨ 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. GLSL is the main character here, periodt πŸ‘‘

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 (http://www.punkuser.net/vsm/). shadowy, moody, mysterious β€” it's giving main character energy 🌈

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. great performance increases, bestie!! but it's not universally enabled β€” you have to organize the scene graphs in specific ways for VBOs to be used. so it's like, the gains are real but the setup is on you πŸ™ˆ

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. and the reasoning behind this move is actually tea β˜• β€” 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 against the stable branch of Coin. messy!! 😭

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. growth, healing, communication πŸ’œ

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. two birds, one slay πŸ¦‹

🌸 Expanded Field Class Collection 🌸

the exact same reasoning as for the Sb*-classes goes for the field classes. same lore, different class family, we keep it consistent πŸ’…

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. literally a 1:1 translation, no cap 🫢

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. very "screens everywhere, cameras gotta know" energy πŸŽ€


🧚 Miscellaneous 🧚

below follows a non-exhaustive list of other, more minor, tweaks and tidbits. the lil side quests, if you will ✨

πŸ” 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. templates are lowkey giving, and this is the library for it πŸ’œ

πŸ› οΈ 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... the "..." is doing so much work there honestly πŸ’€


okay that's the whole page bestie!! every node, every class, every note, all accounted for, nothing skipped, we ate and left no crumbs πŸ‘‘πŸ’…

cute lil sign-off because you made it to the end: this whole vibe check was brought to you by Version 4.0.10, dated Thu Jun 25 2026 00:00:00 πŸŽ€πŸ¦‹βœ¨ ily, go write some scene graphs πŸ’–

πŸ“¦ where this page comes from