]> git.jsancho.org Git - c-irrlicht.git/blobdiff - include/ISceneManager.h
IReferenceCounted
[c-irrlicht.git] / include / ISceneManager.h
index 6153726051257321062590945e8c159596eccb7f..4e276864ad04d23e4d2c71ef2ebcc040cbafb813 100644 (file)
 #ifndef __C_I_SCENE_MANAGER_H_INCLUDED__
 #define __C_I_SCENE_MANAGER_H_INCLUDED__
 
+#include <inttypes.h>
+#include <math.h>
+#include <stdbool.h>
+
+#include "aabbox3d.h"
 #include "IAnimatedMesh.h"
 #include "IAnimatedMeshSceneNode.h"
 #include "ICameraSceneNode.h"
 #include "IMeshSceneNode.h"
 #include "ISceneNode.h"
+#include "ISceneNodeAnimator.h"
+#include "SKeyMap.h"
+#include "SMaterial.h"
 #include "vector3d.h"
 
 typedef void irr_scene_ISceneManager;
@@ -39,27 +47,56 @@ 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);
 
   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);
+                               int32_t id,
+                               bool 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);
+
+  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));
 
   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);
+
+  irr_scene_ISceneNodeAnimator*
+  irr_scene_createRotationAnimator(irr_scene_ISceneManager* smgr,
+                                   irr_core_vector3df* rotationSpeed);
 
   void
   irr_scene_drawAll(irr_scene_ISceneManager* smgr);
@@ -68,6 +105,9 @@ extern "C" {
   irr_scene_getMesh(irr_scene_ISceneManager* smgr,
                     const char* filename);
 
+  irr_scene_ISceneNode*
+  irr_scene_getRootSceneNode(irr_scene_ISceneManager* smgr);
+
 #ifdef __cplusplus
 }
 #endif