]> git.jsancho.org Git - guile-irrlicht.git/blobdiff - src/box3d.cpp
box3d
[guile-irrlicht.git] / src / box3d.cpp
index 9b78836f1a25165fc2bf5d8b9c7ef71693217960..1c0152a186739f6dec133fa47e118f88bb957be9 100644 (file)
 #include "box3d.h"
 #include "gsubr.h"
 #include "vector3d.h"
-#include "wrapped.h"
 
-extern "C" {
 
-  void
-  init_box3d (void)
-  {
-    init_box3d_type ();
-    DEFINE_GSUBR ("box3d-add-internal-point!", 2, 0, 0, box3d_add_internal_point);
-    DEFINE_GSUBR ("box3d-reset!", 2, 0, 0, box3d_reset);
-    DEFINE_GSUBR ("make-box3d", 0, 0, 0, make_box3d);
-  }
+using namespace irr;
 
-  DEFINE_WRAPPED_TYPE (irr::core::aabbox3df*, "box3d",
-                       init_box3d_type, box3d_p,
-                       wrap_box3d, unwrap_box3d);
 
-  SCM
-  box3d_add_internal_point (SCM box3d,
-                            SCM point)
-  {
-    irr::core::aabbox3df* aabbox = unwrap_box3d (box3d);
-    aabbox->addInternalPoint (scm_to_vector3df (point));
-    return SCM_UNSPECIFIED;
-  }
+SCM
+irr_core_aabbox3d_addInternalPoint (SCM box3d,
+                                    SCM point)
+{
+  ((core::aabbox3df*)scm_to_pointer (box3d))->addInternalPoint (scm_to_vector3df (point));
+  return SCM_UNSPECIFIED;
+}
 
-  SCM
-  box3d_reset (SCM box3d,
-               SCM init_value)
-  {
-    irr::core::aabbox3df* aabbox = unwrap_box3d (box3d);
-    aabbox->reset (scm_to_vector3df (init_value));
-    return SCM_UNSPECIFIED;
-  }
 
-  SCM
-  make_box3d ()
+SCM
+irr_core_aabbox3d_make ()
+{
+  core::aabbox3df* aabbox = new core::aabbox3df ();
+  return scm_from_pointer ((void*)aabbox, NULL);
+}
+
+
+SCM
+irr_core_aabbox3d_reset (SCM box3d,
+                         SCM init_value)
+{
+  ((core::aabbox3df*)scm_to_pointer (box3d))->reset (scm_to_vector3df (init_value));
+  return SCM_UNSPECIFIED;
+}
+
+
+extern "C" {
+
+  void
+  init_box3d (void)
   {
-    irr::core::aabbox3df* aabbox = new irr::core::aabbox3df ();
-    return wrap_box3d (aabbox);
+    DEFINE_GSUBR ("irr_core_aabbox3d_addInternalPoint", 2, 0, 0,
+                  irr_core_aabbox3d_addInternalPoint);
+    DEFINE_GSUBR ("irr_core_aabbox3d_make", 0, 0, 0,
+                  irr_core_aabbox3d_make);
+    DEFINE_GSUBR ("irr_core_aabbox3d_reset", 2, 0, 0,
+                  irr_core_aabbox3d_reset);
   }
 
 }