(define-module (irrlicht bindings core)
- #:use-module (system foreign))
+ #:use-module (system foreign)
+ #:use-module (irrlicht util foreign))
;; dimension2d struct
(define-public dimension2d
(list uint32 uint32))
+
+(define-public (dimension2d->pointer data)
+ (make-c-struct dimension2d data))
+
+;; rect struct
+(define-public rect
+ (list int32 int32 int32 int32))
+
+(define-public (rect->pointer data)
+ (make-c-struct rect data))
+
+;; vector2df struct
+(define-public vector2df
+ (list float float))
+
+(define-public (vector2df->pointer data)
+ (make-c-struct vector2df data))
+
+;; vector3df struct
+(define-public vector3df
+ (list float float float))
+
+(define-public (vector3df->pointer data)
+ (make-c-struct vector3df data))
+
+;; aabbox3df struct
+(define-wrapped-pointer-type aabbox3df-type
+ aabbox3df?
+ pointer->aabbox3df aabbox3df->pointer
+ (lambda (box port)
+ (format port "#<aabbox3df ~x>"
+ (pointer-address (aabbox3df->pointer box)))))
+
+(export pointer->aabbox3df
+ aabbox3df->pointer)
+
+(define-public aabbox3df
+ (list vector3df vector3df))
+
+(define-foreign aabbox3d-add-internal-point
+ void "irr_core_aabbox3d_addInternalPoint" (list '* '*))
+
+(define-foreign aabbox3d-reset
+ void "irr_core_aabbox3d_reset" (list '* '*))