#include <irrlicht/irrlicht.h>
#include <libguile.h>
#include "box3d.h"
+#include "gsubr.h"
#include "vector3d.h"
#include "wrapped.h"
-extern "C" {
-
- void
- init_box3d (void)
- {
- init_box3d_type ();
- scm_c_define_gsubr ("box3d-reset!", 2, 0, 0, (scm_t_subr)box3d_reset);
- scm_c_define_gsubr ("make-box3d", 0, 0, 0, (scm_t_subr)make_box3d);
- scm_c_export ("box3d-reset!", "make-box3d", NULL);
- }
-
- DEFINE_WRAPPED_TYPE (irr::core::aabbox3df*, "box3d",
- init_box3d_type, box3d_p,
- wrap_box3d, unwrap_box3d);
-
- 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 ()
- {
- irr::core::aabbox3df* aabbox = new irr::core::aabbox3df ();
- return wrap_box3d (aabbox);
- }
+using namespace irr;
+SCM
+aabbox3d_addInternalPoint (SCM box3d,
+ SCM point)
+{
+ ((core::aabbox3df*)scm_to_irr_pointer (box3d))->addInternalPoint (scm_to_vector3df (point));
+ return SCM_UNSPECIFIED;
+}
+
+SCM
+aabbox3d_make ()
+{
+ core::aabbox3df* aabbox = new core::aabbox3df ();
+ return scm_from_pointer ((void*)aabbox, NULL);
+}
+
+SCM
+aabbox3d_reset (SCM box3d,
+ SCM init_value)
+{
+ ((core::aabbox3df*)scm_to_irr_pointer (box3d))->reset (scm_to_vector3df (init_value));
+ return SCM_UNSPECIFIED;
+}
+
+void
+init_box3d (void)
+{
+ DEFINE_GSUBR ("aabbox3d_addInternalPoint", 2, 0, 0, aabbox3d_addInternalPoint);
+ DEFINE_GSUBR ("aabbox3d_make", 0, 0, 0, aabbox3d_make);
+ DEFINE_GSUBR ("aabbox3d_reset", 2, 0, 0, aabbox3d_reset);
}