+ ((irr::scene::ISceneManager*)smgr)
+ ->addAnimatedMeshSceneNode((irr::scene::IAnimatedMesh*)mesh,
+ (irr::scene::ISceneNode*)parent,
+ id,
+ 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);
+ }
+
+ irr_scene_ICameraSceneNode*
+ irr_scene_addCameraSceneNode(irr_scene_ISceneManager* smgr,
+ irr_scene_ISceneNode* parent,
+ irr_core_vector3df* position,
+ irr_core_vector3df* lookat,
+ int32_t id,
+ bool makeActive)
+ {
+ return (irr_scene_ICameraSceneNode*)
+ ((irr::scene::ISceneManager*)smgr)
+ ->addCameraSceneNode((irr::scene::ISceneNode*)parent,
+ position ? *(irr::core::vector3df*)position : irr::core::vector3df(0, 0, 0),
+ lookat ? *(irr::core::vector3df*)lookat : irr::core::vector3df(0, 0, 100),
+ id,
+ makeActive);
+ }
+
+ irr_scene_ICameraSceneNode*
+ irr_scene_addCameraSceneNodeFPS(irr_scene_ISceneManager* smgr,
+ irr_scene_ISceneNode* parent,
+ float_t rotateSpeed,
+ float_t moveSpeed,
+ int32_t id,
+ irr_SkeyMap* keyMapArray,
+ int32_t keyMapSize,
+ bool noVerticalMovement,
+ float_t jumpSpeed,
+ bool invertMouse,
+ bool makeActive)
+ {
+ return ((irr::scene::ISceneManager*)smgr)
+ ->addCameraSceneNodeFPS((irr::scene::ISceneNode*)parent,
+ rotateSpeed,
+ moveSpeed,
+ id,
+ (irr::SKeyMap*)keyMapArray,
+ keyMapSize,
+ noVerticalMovement,
+ jumpSpeed,
+ invertMouse,
+ makeActive);
+ }
+
+ irr_scene_ISceneNode*
+ irr_scene_addCustomSceneNode(irr_scene_ISceneManager* smgr,
+ irr_scene_ISceneNode* parent,
+ int32_t id,
+ irr_core_vector3df* position,
+ irr_core_vector3df* rotation,
+ irr_core_vector3df* scale,
+ void (*render)(),
+ irr_core_aabbox3d_f32* (*getBoundingBox)(),
+ uint32_t (*getMaterialCount)(),
+ irr_video_SMaterial* (*getMaterial)(unsigned int i))
+ {
+ if (parent == NULL)
+ {
+ parent = irr_scene_getRootSceneNode(smgr);
+ }
+
+ CustomSceneNode *node =
+ new CustomSceneNode((irr::scene::ISceneNode*)parent,
+ (irr::scene::ISceneManager*)smgr,
+ id,
+ 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);
+ return node;
+ }
+
+ irr_scene_IMeshSceneNode*
+ 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,
+ (irr::scene::ISceneNode*)parent,
+ id,
+ minimalPolysPerNode,
+ 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);