X-Git-Url: https://git.jsancho.org/?p=guile-irrlicht.git;a=blobdiff_plain;f=irrlicht%2Fscene.scm;h=425d01ec026bd8c08fa666beb6d764518deab0f8;hp=6c55a3d0cda9c2c7729a84484c216e851ed4d294;hb=0c415f2f23b5351bdd8e3901ccc29073fe98d9f6;hpb=a880a7401ee591eaff7d1c32bf14c1af977f7776 diff --git a/irrlicht/scene.scm b/irrlicht/scene.scm index 6c55a3d..425d01e 100644 --- a/irrlicht/scene.scm +++ b/irrlicht/scene.scm @@ -42,6 +42,13 @@ (export ) +;; ISceneNodeAnimator +(define-class ( ) + (irr-class #:init-value "ISceneNodeAnimator")) + +(export ) + + ;; ISceneManager (define-class () (irr-class #:init-value "ISceneManager")) @@ -151,6 +158,12 @@ (addOctreeSceneNode scene-manager mesh parent id minimal-polys-per-node also-add-if-mesh-pointer-zero))))) +(define-method (create-rotation-animator (scene-manager ) rotation-speed) + (let ((createRotationAnimator (get-irrlicht-proc "createRotationAnimator" scene-manager))) + (make + #:irr-pointer + (createRotationAnimator scene-manager rotation-speed)))) + (define-method (draw-all (scene-manager )) ((get-irrlicht-proc "drawAll" scene-manager) scene-manager)) @@ -167,14 +180,22 @@ (make #:irr-pointer (getRootSceneNode scene-manager)))) (export add-animated-mesh-scene-node! add-camera-scene-node! - add-camera-scene-node-fps! add-custom-scene-node! add-octree-scene-node! draw-all - get-root-scene-node get-mesh) + add-camera-scene-node-fps! add-custom-scene-node! add-octree-scene-node! + create-rotation-animator draw-all get-root-scene-node get-mesh) ;; ISceneNode (define-class () (irr-class #:init-value "ISceneNode")) +(define-method (add-animator! (node ) (animator )) + (let ((addAnimator (get-irrlicht-proc "addAnimator" node))) + (addAnimator node animator))) + +(define-method (get-absolute-transformation (node )) + (let ((getAbsoluteTransformation (get-irrlicht-proc "getAbsoluteTransformation" node))) + (getAbsoluteTransformation node))) + (define-method (set-material-flag! (node ) flag new-value) ((get-irrlicht-proc "setMaterialFlag" node) node @@ -191,7 +212,8 @@ (let ((setPosition (get-irrlicht-proc "setPosition" node))) (setPosition node new-pos))) -(export set-material-flag! set-material-texture! set-position!) +(export add-animator! get-absolute-transformation set-material-flag! + set-material-texture! set-position!) ;; IAnimatedMeshSceneNode