X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2FISceneManager.cpp;h=a3a24b44e611dc0da351f813fee1f1a0a0137841;hb=c4148299267b63f38053b3ba15efd76db0d8bdc4;hp=83dcda1a8997e23046ed6a704e4917bb847d0938;hpb=8c7371f02417bb3a9aaafb9f084b97cc89f09da8;p=c-irrlicht.git diff --git a/src/ISceneManager.cpp b/src/ISceneManager.cpp index 83dcda1..a3a24b4 100644 --- a/src/ISceneManager.cpp +++ b/src/ISceneManager.cpp @@ -24,37 +24,120 @@ 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); + } + + irr_scene_ICameraSceneNode* + irr_scene_addCameraSceneNodeFPS(irr_scene_ISceneManager* smgr, + irr_scene_ISceneNode* parent, + float rotateSpeed, + float moveSpeed, + int id, + irr_SkeyMap* keyMapArray, + int keyMapSize, + int noVerticalMovement, + float jumpSpeed, + int invertMouse, + int makeActive) + { + return ((irr::scene::ISceneManager*)smgr) + ->addCameraSceneNodeFPS((irr::scene::ISceneNode*)parent, + rotateSpeed, + moveSpeed, + id, + (irr::SKeyMap*)keyMapArray, + keyMapSize, + noVerticalMovement, + jumpSpeed, + invertMouse, + makeActive); + } + + irr_scene_IMeshSceneNode* + irr_scene_addOctreeSceneNodeAM(irr_scene_ISceneManager* smgr, + irr_scene_IAnimatedMesh* mesh, + irr_scene_ISceneNode* parent, + int id, + int minimalPolysPerNode, + int alsoAddIfMeshPointerZero) + { + return ((irr::scene::ISceneManager*)smgr) + ->addOctreeSceneNode((irr::scene::IAnimatedMesh*)mesh, + (irr::scene::ISceneNode*)parent, + id, + minimalPolysPerNode, + alsoAddIfMeshPointerZero); } + 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);