]> git.jsancho.org Git - guile-irrlicht.git/blobdiff - src/scene-manager.cpp
Macro for defining guile procedures
[guile-irrlicht.git] / src / scene-manager.cpp
index 9ef592fcbfaa10972e78b68010cda494265d9632..0d4caebd51a024cea1c5c30c31c6b8a97d5c0621 100644 (file)
@@ -27,6 +27,7 @@
 #include "box3d.h"
 #include "camera-scene-node.h"
 #include "device.h"
+#include "gsubr.h"
 #include "keymap.h"
 #include "material.h"
 #include "mesh.h"
@@ -43,34 +44,19 @@ extern "C" {
   init_scene_manager (void)
   {
     init_scene_manager_type ();
-    scm_c_define_gsubr ("add-animated-mesh-scene-node!", 2, 0, 1,
-                        (scm_t_subr)irr_scene_addAnimatedMeshSceneNode);
-    scm_c_define_gsubr ("add-camera-scene-node!", 1, 0, 1,
-                        (scm_t_subr)irr_scene_addCameraSceneNode);
-    scm_c_define_gsubr ("add-camera-scene-node-fps!", 1, 0, 1,
-                        (scm_t_subr)irr_scene_addCameraSceneNodeFPS);
-    scm_c_define_gsubr ("add-cube-scene-node!", 1, 0, 1,
-                        (scm_t_subr)irr_scene_addCubeSceneNode);
-    scm_c_define_gsubr ("add-custom-scene-node!", 5, 0, 1,
-                        (scm_t_subr)irr_scene_addCustomSceneNode);
-    scm_c_define_gsubr ("add-octree-scene-node!", 2, 0, 1,
-                        (scm_t_subr)irr_scene_addOctreeSceneNode);
-    scm_c_define_gsubr ("add-sphere-scene-node!", 1, 0, 1,
-                        (scm_t_subr)irr_scene_addSphereSceneNode);
-    scm_c_define_gsubr ("create-fly-circle-animator", 1, 0, 1,
-                        (scm_t_subr)irr_scene_createFlyCircleAnimator);
-    scm_c_define_gsubr ("create-fly-straight-animator", 4, 0, 1,
-                        (scm_t_subr)irr_scene_createFlyStraightAnimator);
-    scm_c_define_gsubr ("create-rotation-animator", 2, 0, 0,
-                        (scm_t_subr)irr_scene_createRotationAnimator);
-    scm_c_define_gsubr ("get-mesh", 2, 0, 0, (scm_t_subr)irr_scene_getMesh);
-    scm_c_define_gsubr ("get-root-scene-node", 1, 0, 0, (scm_t_subr)irr_scene_getRootSceneNode);
-    scm_c_define_gsubr ("get-scene-manager", 1, 0, 0, (scm_t_subr)irr_getSceneManager);
-    scm_c_export ("add-animated-mesh-scene-node!", "add-camera-scene-node!",
-                  "add-camera-scene-node-fps!", "add-custom-scene-node!", "add-cube-scene-node!",
-                  "add-octree-scene-node!", "add-sphere-scene-node!", "create-fly-circle-animator",
-                  "create-fly-straight-animator", "create-rotation-animator", "get-mesh",
-                  "get-root-scene-node", "get-scene-manager", NULL);
+    DEFINE_GSUBR ("add-animated-mesh-scene-node!", 2, 0, 1, irr_scene_addAnimatedMeshSceneNode);
+    DEFINE_GSUBR ("add-camera-scene-node!", 1, 0, 1, irr_scene_addCameraSceneNode);
+    DEFINE_GSUBR ("add-camera-scene-node-fps!", 1, 0, 1, irr_scene_addCameraSceneNodeFPS);
+    DEFINE_GSUBR ("add-cube-scene-node!", 1, 0, 1, irr_scene_addCubeSceneNode);
+    DEFINE_GSUBR ("add-custom-scene-node!", 5, 0, 1, irr_scene_addCustomSceneNode);
+    DEFINE_GSUBR ("add-octree-scene-node!", 2, 0, 1, irr_scene_addOctreeSceneNode);
+    DEFINE_GSUBR ("add-sphere-scene-node!", 1, 0, 1, irr_scene_addSphereSceneNode);
+    DEFINE_GSUBR ("create-fly-circle-animator", 1, 0, 1, irr_scene_createFlyCircleAnimator);
+    DEFINE_GSUBR ("create-fly-straight-animator", 4, 0, 1, irr_scene_createFlyStraightAnimator);
+    DEFINE_GSUBR ("create-rotation-animator", 2, 0, 0, irr_scene_createRotationAnimator);
+    DEFINE_GSUBR ("get-mesh", 2, 0, 0, irr_scene_getMesh);
+    DEFINE_GSUBR ("get-root-scene-node", 1, 0, 0, irr_scene_getRootSceneNode);
+    DEFINE_GSUBR ("get-scene-manager", 1, 0, 0, irr_getSceneManager);
   }
 
   DEFINE_WRAPPED_TYPE (irr::scene::ISceneManager*, "scene-manager",