]> git.jsancho.org Git - guile-irrlicht.git/blobdiff - irrlicht/base.scm
Some doc
[guile-irrlicht.git] / irrlicht / base.scm
index bb04442f8a722f310fb73d61d9880bbd25b2bd7e..76a7a6bd1c725c3e1dc7b3206e3813cd58b26123 100644 (file)
   #:use-module (oop goops)
   #:use-module (system foreign)
   #:export (<irrlicht-base>
-            wrapped-obj))
+            irr-class
+            irr-pointer))
 
 (define-class <irrlicht-base> ()
-  (irr-ptr #:init-value %null-pointer #:accessor irrlicht-pointer #:init-keyword #:ptr)
-  (irr-class #:init-value "irrlicht-base" #:getter irrlicht-class)
-  (wrapped-obj #:accessor wrapped-obj #:allocation #:virtual
-               #:slot-ref (lambda (obj)
-                            (cons (slot-ref obj 'irr-class)
-                                  (slot-ref obj 'irr-ptr)))
-               #:slot-set! (lambda (obj wrapped)
-                             (slot-set! obj 'irr-ptr (cdr wrapped)))))
+  (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))