1. Have the logger enable logging of most Irrlicht classes, so:
Code: Select all
irr::core::vector3df vel(1.0f,2.0f,3.0f);
device->getLogger()->log(vel);
vector3d<f32>{ 1.0, 2.0, 3.0 }
2. Have methods like addAnimator() return the animator pointer instead of void, so you can do:
Code: Select all
camera->addAnimator(camAnim)->drop();
4. Let CCubeSceneNode use the standard meshbuffers, so it's easy to add shadows etc.
5. Methods that do not work for a subclass should assert or be virtual, for example:
irr::scene::ITerrainSceneNode *terrainnode = (irr::scene::ITerrainSceneNode*)node;
node->getAbsoluteTransformation(); << ASSERT!
6. All methods which accept text should be irr::core::string enabled f.e:
Code: Select all
irr::core::stringw foo("hello");
gui->addStaticText(foo, ...);
node->setName(foo);
7. This may be a bit more fundamental, but using RTTI instead of getType() enumerations might make some things a bit less complex.
That's all for now Perhaps some are already available somewhere, but have a nice day!