]> git.jsancho.org Git - guile-irrlicht.git/blobdiff - irrlicht/base.scm
avoid problems with complex inheritance tree and getters
[guile-irrlicht.git] / irrlicht / base.scm
index 4f08eefec60e192deb3a85ae478069861d4611a8..db1de76f1bd8333f03a0a74bcb93528f74dcedb8 100644 (file)
   #:use-module (oop goops)
   #:use-module (system foreign)
   #:export (<irrlicht-base>
-            irr-pointer))
+            irr-class
+            irr-pointer
+            is-empty?))
 
 (define-class <irrlicht-base> ()
-  (irr-pointer #:init-value %null-pointer #:accessor irr-pointer #:init-keyword #:irr-pointer))
+  (irr-class #:init-value "")
+  (irr-pointer #:init-value %null-pointer #:getter irr-pointer #:init-keyword #:irr-pointer))
+
+;; irr-class getter is defined in this way to avoid problems with multiple getters
+;; in multiple inherited classes
+(define-method (irr-class (obj <irrlicht-base>))
+  (slot-ref obj 'irr-class))
+
+(define-method (is-empty? (obj <irrlicht-base>))
+  (equal? (irr-pointer obj) %null-pointer))