-SceneNode         SceneNode

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | 0-9


SceneNode - A SceneNode is a logical element of the scene graph hierachy, which is used to organise objects in a scene. It can have multiple child nodes or MovableObjects (such as Entity, Camera, ManualObject, Light, ParticleSytem, etc.) attached to it. Rather than moving these individual items around, you move the nodes they are attached to.

Note for world and derived properties


The functions getWorldPosition(), getWorldOrientation() and getWorldScale() are removed since Ogre 1.6.
Instead you have to use _getDerivedPosition(), _getDerivedOrientation() and _getDerivedScale().

In normal cases you shouldn't use underscore functions if you don't really need them. Related to the SceneNode class ist just a warning symbol.

Sinbad wrote:

It does - basically it means 'caution'. The issue here is that derived positions are lazy-updated for speed, not every time you make a change to nodes in the hierarchy. Thus the result may not be accurate unless SceneManager::updateSceneGraph has happened, or you force an update for a sub-branch of the tree. When you make a change to a parent node, the update flag is not propagated all the way down the tree (for the same efficiency reasons), it's just flagged as pending a cascade which is propagated later. Thus a node several children down may have no knowledge that it is currently out of date. Within 1 level of the tree it's ok, but beyond that it's not.

Without this lazy update approach, making lots of updates to scene objects in deep hierarchies becomes very slow. Thus we mark the _getDerived methods with an underscore because grabbing derived updates all the time can be both costly and /or inaccurate depending how you propagate changes. Scene managers can rely on them because updateSceneGraph has resolved all the changes.


See also