X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=irrlicht%2Fscene.scm;h=2f2aa50c2a070b7e1a5831e70cd5220dbe7daa38;hb=340d6bc2e11c89f4ae048d37a080a1cf371f47e6;hp=264a4bd9883fce2d46d5a70257216ede6820736b;hpb=4f9f0b90027aa3a254de58aea48a649727a05cda;p=guile-irrlicht.git diff --git a/irrlicht/scene.scm b/irrlicht/scene.scm index 264a4bd..2f2aa50 100644 --- a/irrlicht/scene.scm +++ b/irrlicht/scene.scm @@ -26,13 +26,15 @@ #:use-module ((irrlicht bindings video) #:prefix ffi-video:) #:use-module (irrlicht util) #:export (add-animated-mesh-scene-node - add-camera-scene-node + add-camera-scene-node! add-camera-scene-node-fps! - add-octree-scene-node-am + add-custom-scene-node! + add-octree-scene-node get-mesh + get-root-scene-node scene-draw-all - set-material-flag-am! - set-material-texture-am! + set-material-flag! + set-material-texture! set-md2-animation! set-position!)) @@ -55,13 +57,13 @@ (bool->integer also-add-if-mesh-pointer-zero)))) (if (null-pointer? node) #f node))) -(define* (add-camera-scene-node scene-manager - #:key - (parent %null-pointer) - (position '(0 0 0)) - (lookat '(0 0 100)) - (id -1) - (make-active #t)) +(define* (add-camera-scene-node! scene-manager + #:key + (parent %null-pointer) + (position '(0 0 0)) + (lookat '(0 0 100)) + (id -1) + (make-active #t)) (let ((camera (ffi-scene:add-camera-scene-node scene-manager parent @@ -96,13 +98,23 @@ (bool->integer invert-mouse) (bool->integer make-active))) -(define* (add-octree-scene-node-am scene-manager mesh - #:key - (parent %null-pointer) - (id -1) - (minimal-polys-per-node 512) - (also-add-if-mesh-pointer-zero #f)) - (ffi-scene:add-octree-scene-node-am +(define (add-custom-scene-node! parent + scene-manager + id + custom-render) + (ffi-scene:add-custom-scene-node + parent + scene-manager + id + (procedure->pointer void custom-render '()))) + +(define* (add-octree-scene-node scene-manager mesh + #:key + (parent %null-pointer) + (id -1) + (minimal-polys-per-node 512) + (also-add-if-mesh-pointer-zero #f)) + (ffi-scene:add-octree-scene-node scene-manager mesh parent @@ -114,10 +126,13 @@ (let ((mesh (ffi-scene:get-mesh scene-manager (string->pointer filename)))) (if (null-pointer? mesh) #f mesh))) +(define (get-root-scene-node scene-manager) + (ffi-scene:get-root-scene-node scene-manager)) + (define (scene-draw-all scene-manager) (ffi-scene:draw-all scene-manager)) -(define (set-material-flag-am! node flag newvalue) +(define (set-material-flag! node flag newvalue) (let ((material-flag (match flag ('wireframe ffi-video:EMF_WIREFRAME) @@ -140,13 +155,13 @@ ('use-mip-maps ffi-video:EMF_USE_MIP_MAPS) ('blend-operation ffi-video:EMF_BLEND_OPERATION) ('polygon-offset ffi-video:EMF_POLYGON_OFFSET)))) - (ffi-scene:set-material-flag-am + (ffi-scene:set-material-flag node material-flag (bool->integer newvalue)))) -(define (set-material-texture-am! node texture-layer texture) - (ffi-scene:set-material-texture-am node texture-layer texture)) +(define (set-material-texture! node texture-layer texture) + (ffi-scene:set-material-texture node texture-layer texture)) (define (set-md2-animation! node anim) (let ((animation-type