id
make-active))))
+(define-method (add-octree-scene-node! (scene-manager <scene-manager>)
+ (mesh <animated-mesh>)
+ . rest)
+ (let-keywords rest #f
+ ((parent (make <scene-node>))
+ (id -1)
+ (minimal-polys-per-node 512)
+ (also-add-if-mesh-pointer-zero #f))
+ (let ((addOctreeSceneNode (get-irrlicht-proc "addOctreeSceneNode" scene-manager parent mesh)))
+ (make <mesh-scene-node>
+ #:irr-pointer
+ (addOctreeSceneNode scene-manager mesh parent id minimal-polys-per-node
+ also-add-if-mesh-pointer-zero)))))
+
+(define-method (add-octree-scene-node! (scene-manager <scene-manager>)
+ (mesh <mesh>)
+ . rest)
+ (let-keywords rest #f
+ ((parent (make <scene-node>))
+ (id -1)
+ (minimal-polys-per-node 256)
+ (also-add-if-mesh-pointer-zero #f))
+ (let ((addOctreeSceneNode (get-irrlicht-proc "addOctreeSceneNode" scene-manager parent mesh)))
+ (make <mesh-scene-node>
+ #:irr-pointer
+ (addOctreeSceneNode scene-manager mesh parent id minimal-polys-per-node
+ also-add-if-mesh-pointer-zero)))))
+
(define-method (draw-all (scene-manager <scene-manager>))
((get-irrlicht-proc "drawAll" scene-manager)
scene-manager))
scene-manager
filename)))
-(export <scene-manager> add-animated-mesh-scene-node! add-camera-scene-node! draw-all get-mesh)
+(export <scene-manager> add-animated-mesh-scene-node! add-camera-scene-node! add-octree-scene-node!
+ draw-all get-mesh)
;; ISceneNode
(irr-class #:init-value "ICameraSceneNode"))
(export <camera-scene-node>)
+
+
+;; IMeshSceneNode
+(define-class <mesh-scene-node> (<scene-node>)
+ (irr-class #:init-value "IMeshSceneNode"))
+
+(export <mesh-scene-node>)