(use-modules (system foreign)
(srfi srfi-64)
- (irrlicht util))
+ (irrlicht util foreign))
(test-begin "foreign-record")
;; Create dimension
(define dim (make-dimension2d 10 20))
+(test-assert (dimension2d? dim))
(test-equal 10 (dimension2d-width dim))
(test-equal 20 (dimension2d-height dim))
;; Is a pointer
(test-assert (pointer? (foreign-record->pointer dim)))
+;; Foreign record types as types for other foreign records
+(define-foreign-record-type point
+ (make-point x y)
+ point?
+ (x int64 point-x)
+ (y int64 point-y))
+
+(define-foreign-record-type triangle
+ (make-triangle p1 p2 p3)
+ triangle?
+ (p1 point triangle-p1)
+ (p2 point triangle-p2)
+ (p3 point triangle-p3))
+
+;(define tr (make-triangle (make-point 0 10) (make-point -10 5) (make-point 15 -7)))
+;(test-equal -10 (point-x (triangle-p2 tr)))
+
(test-end "foreign-record")