X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2FISceneManager.cpp;h=d01e785b399fa2ca605f268be8edd02f9fff0f11;hb=HEAD;hp=7edf4cf6e432fc8414a7080d8c0fd67d66130fb9;hpb=8d84fb35562071d38c50f6d78880aa3cb626c0fc;p=c-irrlicht.git diff --git a/src/ISceneManager.cpp b/src/ISceneManager.cpp index 7edf4cf..d01e785 100644 --- a/src/ISceneManager.cpp +++ b/src/ISceneManager.cpp @@ -26,7 +26,7 @@ class CustomSceneNode : public irr::scene::ISceneNode { void (*Render)(); irr_core_aabbox3d_f32* (*GetBoundingBox)(); - int (*GetMaterialCount)(); + uint32_t (*GetMaterialCount)(); irr_video_SMaterial* (*GetMaterial)(unsigned int i); public: @@ -38,7 +38,7 @@ public: const irr::core::vector3df& scale, void (*render)(), irr_core_aabbox3d_f32* (*getBoundingBox)(), - int (*getMaterialCount)(), + uint32_t (*getMaterialCount)(), irr_video_SMaterial* (*getMaterial)(unsigned int i)) : irr::scene::ISceneNode(parent, smgr, id, position, rotation, scale) { @@ -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); } }; @@ -89,35 +83,20 @@ extern "C" { irr_scene_addAnimatedMeshSceneNode(irr_scene_ISceneManager* smgr, irr_scene_IAnimatedMesh* mesh, irr_scene_ISceneNode* parent, - int id, + int32_t id, irr_core_vector3df* position, irr_core_vector3df* rotation, irr_core_vector3df* scale, - int alsoAddIfMeshPointerZero) + 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); } @@ -126,24 +105,14 @@ extern "C" { irr_scene_ISceneNode* parent, irr_core_vector3df* position, irr_core_vector3df* lookat, - int id, - int makeActive) + 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); } @@ -151,15 +120,15 @@ extern "C" { irr_scene_ICameraSceneNode* irr_scene_addCameraSceneNodeFPS(irr_scene_ISceneManager* smgr, irr_scene_ISceneNode* parent, - float rotateSpeed, - float moveSpeed, - int id, + float_t rotateSpeed, + float_t moveSpeed, + int32_t id, irr_SkeyMap* keyMapArray, - int keyMapSize, - int noVerticalMovement, - float jumpSpeed, - int invertMouse, - int makeActive) + int32_t keyMapSize, + bool noVerticalMovement, + float_t jumpSpeed, + bool invertMouse, + bool makeActive) { return ((irr::scene::ISceneManager*)smgr) ->addCameraSceneNodeFPS((irr::scene::ISceneNode*)parent, @@ -177,13 +146,13 @@ extern "C" { irr_scene_ISceneNode* irr_scene_addCustomSceneNode(irr_scene_ISceneManager* smgr, irr_scene_ISceneNode* parent, - int id, + int32_t id, irr_core_vector3df* position, irr_core_vector3df* rotation, irr_core_vector3df* scale, void (*render)(), irr_core_aabbox3d_f32* (*getBoundingBox)(), - int (*getMaterialCount)(), + uint32_t (*getMaterialCount)(), irr_video_SMaterial* (*getMaterial)(unsigned int i)) { if (parent == NULL) @@ -191,45 +160,27 @@ 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, getMaterial); - //node->drop(); - //node = 0; - //return NULL; return node; } irr_scene_IMeshSceneNode* - irr_scene_addOctreeSceneNodeAM(irr_scene_ISceneManager* smgr, - irr_scene_IAnimatedMesh* mesh, - irr_scene_ISceneNode* parent, - int id, - int minimalPolysPerNode, - int alsoAddIfMeshPointerZero) + irr_scene_addOctreeSceneNode(irr_scene_ISceneManager* smgr, + irr_scene_IAnimatedMesh* mesh, + irr_scene_ISceneNode* parent, + int32_t id, + int32_t minimalPolysPerNode, + bool alsoAddIfMeshPointerZero) { return ((irr::scene::ISceneManager*)smgr) ->addOctreeSceneNode((irr::scene::IAnimatedMesh*)mesh, @@ -239,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) {