;;; guile-irrlicht --- FFI bindings for Irrlicht Engine
-;;; Copyright (C) 2019 Javier Sancho <jsf@jsancho.org>
+;;; Copyright (C) 2020 Javier Sancho <jsf@jsancho.org>
;;;
;;; This file is part of guile-irrlicht.
;;;
(define-module (irrlicht scene)
- #:export (add-animated-mesh-scene-node!
- add-camera-scene-node!
- get-mesh
- set-material-flag!
- set-material-texture!
- set-md2-animation!))
+ #:use-module (oop goops)
+ #:use-module (irrlicht foreign)
+ #:use-module (irrlicht irr))
-(load-extension "libguile-irrlicht" "init_guile_irrlicht")
-(define irr-add-animated-mesh-scene-node! add-animated-mesh-scene-node!)
-(define* (add-animated-mesh-scene-node! scene-manager mesh
- #:key
- (parent #f)
- (id -1)
- (position '(0 0 0))
- (rotation '(0 0 0))
- (scale '(1 1 1))
- (also-add-if-mesh-pointer-zero #f))
- (irr-add-animated-mesh-scene-node! scene-manager
- mesh
- parent
- id
- position
- rotation
- scale
- also-add-if-mesh-pointer-zero))
+;; ISceneManager
+(define-class <scene-manager> (<reference-counted>))
-(define irr-add-camera-scene-node! add-camera-scene-node!)
-(define* (add-camera-scene-node! scene-manager
- #:key
- (parent #f)
- (position '(0 0 0))
- (lookat '(0 0 100))
- (id -1)
- (make-active #t))
- (irr-add-camera-scene-node! scene-manager
- parent
- position
- lookat
- id
- make-active))
+(export <scene-manager>)