X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2FISceneManager.cpp;h=bef569bd9ea46e09e54ed4c76a65350c70bacb75;hb=bf35c1c5384d6ccae7b7690ee08c511d036ffaec;hp=83dcda1a8997e23046ed6a704e4917bb847d0938;hpb=8c7371f02417bb3a9aaafb9f084b97cc89f09da8;p=c-irrlicht.git diff --git a/src/ISceneManager.cpp b/src/ISceneManager.cpp index 83dcda1..bef569b 100644 --- a/src/ISceneManager.cpp +++ b/src/ISceneManager.cpp @@ -24,37 +24,78 @@ extern "C" { irr_scene_IAnimatedMeshSceneNode* - irr_scene_ISceneManager_addAnimatedMeshSceneNode(irr_scene_ISceneManager* smgr, - irr_scene_IAnimatedMesh* mesh, - irr_scene_ISceneNode* parent, - int32_t id, - irr_core_vector3df* position, - irr_core_vector3df* rotation, - irr_core_vector3df* scale, - bool alsoAddIfMeshPointerZero) + irr_scene_addAnimatedMeshSceneNode(irr_scene_ISceneManager* smgr, + irr_scene_IAnimatedMesh* mesh, + irr_scene_ISceneNode* parent, + int id, + irr_core_vector3df* position, + irr_core_vector3df* rotation, + irr_core_vector3df* scale, + 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, - id, - iPosition, - iRotation, - iScale, - alsoAddIfMeshPointerZero); + ((irr::scene::ISceneManager*)smgr) + ->addAnimatedMeshSceneNode((irr::scene::IAnimatedMesh*)mesh, + (irr::scene::ISceneNode*)parent, + id, + iPosition, + iRotation, + iScale, + alsoAddIfMeshPointerZero); + } + + irr_scene_ICameraSceneNode* + irr_scene_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 = + 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, + iLookat, + id, + makeActive); + } + + void + irr_scene_drawAll(irr_scene_ISceneManager* smgr) + { + ((irr::scene::ISceneManager*)smgr)->drawAll(); } + irr_scene_IAnimatedMesh* - irr_scene_ISceneManager_getMesh(irr_scene_ISceneManager* smgr, - const char* filename) + irr_scene_getMesh(irr_scene_ISceneManager* smgr, + const char* filename) { return (irr_scene_IAnimatedMesh*) ((irr::scene::ISceneManager*)smgr)->getMesh(filename);