You may create a new node whose effects should not be cached during rendering or bounding-box computation. For example, the SoCallback( C++ | Java | .NET ) node allows a user to change the effect of the callback function, such as drawing a cube instead of a sphere, without ever making an Inventor call.
Uncacheable nodes such as SoCallback( C++ | Java | .NET ) should call
SoCacheElement::invalidate(state)
which aborts construction of the current cache. This call can be made during the render or bounding box action (the two actions that support caching). The invalidate() method also turns off auto-caching on any SoSeparator( C++ | Java | .NET ) nodes over the uncacheable node.