]> git.jsancho.org Git - guile-irrlicht.git/blobdiff - irrlicht/scene.scm
TOC with direct C++
[guile-irrlicht.git] / irrlicht / scene.scm
index 7e9b8d23dddcc1cc7d22c2503600e5cb009d7e59..83eb9ba9a4b0a5a02623268628813a3c86e4b9fa 100644 (file)
   #:use-module ((irrlicht bindings video) #:prefix ffi-video:)
   #:use-module (irrlicht util)
   #:export (add-animated-mesh-scene-node
+            add-animator!
             add-camera-scene-node!
             add-camera-scene-node-fps!
             add-custom-scene-node!
             add-octree-scene-node
+            create-rotation-animator
+            get-absolute-transformation
             get-mesh
             get-root-scene-node
             scene-draw-all
@@ -57,6 +60,9 @@
                (bool->integer also-add-if-mesh-pointer-zero))))
     (if (null-pointer? node) #f node)))
 
+(define (add-animator! node animator)
+  (ffi-scene:add-animator node animator))
+
 (define* (add-camera-scene-node! scene-manager
                                  #:key
                                  (parent %null-pointer)
            (ffi-core:aabbox3df->pointer (get-bounding-box))))
         (c-get-material
          (lambda (i)
-           (ffi-core:material->pointer (get-material i)))))
+           (ffi-video:smaterial->pointer (get-material i)))))
     (ffi-scene:add-custom-scene-node
      scene-manager
      parent
    minimal-polys-per-node
    (bool->integer also-add-if-mesh-pointer-zero)))
 
+(define (create-rotation-animator scene-manager rotation-speed)
+  (let ((animator (ffi-scene:create-rotation-animator
+                   scene-manager
+                   (ffi-core:vector3df->pointer rotation-speed))))
+    (if (null-pointer? animator) #f animator)))
+
+(define (get-absolute-transformation node)
+  (ffi-scene:get-absolute-transformation node))
+
 (define (get-mesh scene-manager filename)
   (let ((mesh (ffi-scene:get-mesh scene-manager (string->pointer filename))))
     (if (null-pointer? mesh) #f mesh)))