X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2FISceneManager.cpp;h=d01e785b399fa2ca605f268be8edd02f9fff0f11;hb=HEAD;hp=f4f2c87e6b05b757a0e8a024f01ec9b85eaa8b63;hpb=59b625c207d1ee8368f04f3c4d675fa393fe94f4;p=c-irrlicht.git diff --git a/src/ISceneManager.cpp b/src/ISceneManager.cpp index f4f2c87..d01e785 100644 --- a/src/ISceneManager.cpp +++ b/src/ISceneManager.cpp @@ -64,9 +64,7 @@ public: virtual const irr::core::aabbox3d& getBoundingBox() const { - irr_core_aabbox3d_f32* box = GetBoundingBox(); - irr::core::aabbox3d* irrBox = new irr::core::aabbox3d(); - return *irrBox; + return *(irr::core::aabbox3d*)GetBoundingBox(); } virtual irr::u32 getMaterialCount() const @@ -76,11 +74,7 @@ public: virtual irr::video::SMaterial& getMaterial(irr::u32 i) { - irr_video_SMaterial* material = GetMaterial(i); - irr::video::SMaterial* irrMaterial = new irr::video::SMaterial(); - irrMaterial->Wireframe = material->wireframe; - irrMaterial->Lighting = material->lighting; - return *irrMaterial; + return *(irr::video::SMaterial*)GetMaterial(i); } }; @@ -95,29 +89,14 @@ extern "C" { irr_core_vector3df* scale, bool alsoAddIfMeshPointerZero) { - 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, + position ? *(irr::core::vector3df*)position : irr::core::vector3df(0, 0, 0), + rotation ? *(irr::core::vector3df*)rotation : irr::core::vector3df(0, 0, 0), + scale ? *(irr::core::vector3df*)scale : irr::core::vector3df(1, 1, 1), alsoAddIfMeshPointerZero); } @@ -129,21 +108,11 @@ extern "C" { int32_t id, bool 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, + position ? *(irr::core::vector3df*)position : irr::core::vector3df(0, 0, 0), + lookat ? *(irr::core::vector3df*)lookat : irr::core::vector3df(0, 0, 100), id, makeActive); } @@ -191,28 +160,13 @@ extern "C" { parent = irr_scene_getRootSceneNode(smgr); } - 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); - CustomSceneNode *node = new CustomSceneNode((irr::scene::ISceneNode*)parent, (irr::scene::ISceneManager*)smgr, id, - iPosition, - iRotation, - iScale, + position ? *(irr::core::vector3df*)position : irr::core::vector3df(0, 0, 0), + rotation ? *(irr::core::vector3df*)rotation : irr::core::vector3df(0, 0, 0), + scale ? *(irr::core::vector3df*)scale : irr::core::vector3df(1, 1, 1), render, getBoundingBox, getMaterialCount, @@ -236,6 +190,14 @@ extern "C" { alsoAddIfMeshPointerZero); } + irr_scene_ISceneNodeAnimator* + irr_scene_createRotationAnimator(irr_scene_ISceneManager* smgr, + irr_core_vector3df* rotationSpeed) + { + return ((irr::scene::ISceneManager*)smgr) + ->createRotationAnimator(*(irr::core::vector3df*)rotationSpeed); + } + void irr_scene_drawAll(irr_scene_ISceneManager* smgr) {