X-Git-Url: https://git.jsancho.org/?p=c-irrlicht.git;a=blobdiff_plain;f=src%2FISceneManager.cpp;h=e88bd00a95a0246994ce026e18668040ae90365a;hp=230a3eacfb5e00bbe9c5df0825d82c4ab70c62b4;hb=c132b13f55d878a67c2ac24453d32451c117d908;hpb=29e2baf09b55c8d338ddd68a7b79586945675710 diff --git a/src/ISceneManager.cpp b/src/ISceneManager.cpp index 230a3ea..e88bd00 100644 --- a/src/ISceneManager.cpp +++ b/src/ISceneManager.cpp @@ -27,21 +27,27 @@ extern "C" { irr_scene_ISceneManager_addAnimatedMeshSceneNode(irr_scene_ISceneManager* smgr, irr_scene_IAnimatedMesh* mesh, irr_scene_ISceneNode* parent, - int32_t id, + int id, irr_core_vector3df* position, irr_core_vector3df* rotation, irr_core_vector3df* scale, - bool alsoAddIfMeshPointerZero) + int alsoAddIfMeshPointerZero) { - const irr::core::vector3df& iPosition = irr::core::vector3df(position->x, - position->y, - position->z); - const irr::core::vector3df& iRotation = irr::core::vector3df(rotation->x, - rotation->y, - rotation->z); - const irr::core::vector3df& iScale = irr::core::vector3df(scale->x, - scale->y, - scale->z); + const irr::core::vector3df iPosition = + position ? + irr::core::vector3df(position->x, position->y, position->z) : + irr::core::vector3df(0, 0, 0); + + const irr::core::vector3df iRotation = + rotation ? + irr::core::vector3df(rotation->x, rotation->y, rotation->z) : + irr::core::vector3df(0, 0, 0); + + const irr::core::vector3df& iScale = + scale ? + irr::core::vector3df(scale->x, scale->y, scale->z) : + irr::core::vector3df(1, 1, 1); + return (irr_scene_IAnimatedMeshSceneNode*) ((irr::scene::ISceneManager*)smgr)->addAnimatedMeshSceneNode((irr::scene::IAnimatedMesh*)mesh, (irr::scene::ISceneNode*)parent, @@ -53,19 +59,23 @@ extern "C" { } irr_scene_ICameraSceneNode* - addCameraSceneNode(irr_scene_ISceneManager* smgr, - irr_scene_ISceneNode* parent, - irr_core_vector3df* position, - irr_core_vector3df* lookat, - int32_t id, - bool makeActive) + irr_scene_ISceneManager_addCameraSceneNode(irr_scene_ISceneManager* smgr, + irr_scene_ISceneNode* parent, + irr_core_vector3df* position, + irr_core_vector3df* lookat, + int id, + int makeActive) { - const irr::core::vector3df& iPosition = irr::core::vector3df(position->x, - position->y, - position->z); - const irr::core::vector3df& iLookat = irr::core::vector3df(lookat->x, - lookat->y, - lookat->z); + const irr::core::vector3df& iPosition = + position ? + irr::core::vector3df(position->x, position->y, position->z) : + irr::core::vector3df(0, 0, 0); + + const irr::core::vector3df& iLookat = + lookat ? + irr::core::vector3df(lookat->x, lookat->y, lookat->z) : + irr::core::vector3df(0, 0, 100); + return (irr_scene_ICameraSceneNode*) ((irr::scene::ISceneManager*)smgr)->addCameraSceneNode((irr::scene::ISceneNode*)parent, iPosition, @@ -74,6 +84,13 @@ extern "C" { makeActive); } + void + irr_scene_ISceneManager_drawAll(irr_scene_ISceneManager* smgr) + { + ((irr::scene::ISceneManager*)smgr)->drawAll(); + } + + irr_scene_IAnimatedMesh* irr_scene_ISceneManager_getMesh(irr_scene_ISceneManager* smgr, const char* filename)