For some specialized nodes, such as the camera, it makes a big difference:
auto& sm= yanve::scene::SceneManager::getInstance();
// as is currently
cameraUp = ((yanve::scene::Camera*)sm.resolveNodeID(cameraId))->up();
// as would be
cameraUp = sm.getParameterVec3(cameraId, CameraParam::Up);
There is also the plus that no pointer manipulation would be necessary on the "front-end", all happening inside the scene managere system.
Currently, in order to manipulate a scene node we need to do the following:
A better way, as implemented in Horde3D would be the following:
For some specialized nodes, such as the camera, it makes a big difference:
There is also the plus that no pointer manipulation would be necessary on the "front-end", all happening inside the scene managere system.