]> git.jsancho.org Git - guile-irrlicht.git/blobdiff - irrlicht/scene.scm
Check null objects
[guile-irrlicht.git] / irrlicht / scene.scm
index 425d01ec026bd8c08fa666beb6d764518deab0f8..9626f4b33cdabe64723d1463852fd9a016492327 100644 (file)
          (rotation '(0 0 0))
          (scale '(1 1 1))
          (also-add-if-mesh-pointer-zero #f))
-    (make <animated-mesh-scene-node>
-      #:irr-pointer
-      ((get-irrlicht-proc "addAnimatedMeshSceneNode" scene-manager parent)
-       scene-manager
-       mesh
-       parent
-       id
-       position
-       rotation
-       scale
-       also-add-if-mesh-pointer-zero))))
+    (let* ((addAnimatedMeshSceneNode (get-irrlicht-proc "addAnimatedMeshSceneNode"
+                                                        scene-manager
+                                                        parent))
+           (node-pointer (addAnimatedMeshSceneNode scene-manager mesh parent id position
+                                                   rotation scale also-add-if-mesh-pointer-zero)))
+      (cond ((null-pointer? node-pointer)
+             (error "In procedure add-animated-mesh-scene-node!: Scene node cannot be created"))
+            (else
+             (make <animated-mesh-scene-node> #:irr-pointer node-pointer))))))
 
 (define-method (add-camera-scene-node! (scene-manager <scene-manager>) . rest)
   (let-keywords rest #f
    scene-manager))
 
 (define-method (get-mesh (scene-manager <scene-manager>) filename)
-  (make <animated-mesh>
-    #:irr-pointer
-    ((get-irrlicht-proc "getMesh" scene-manager)
-     scene-manager
-     filename)))
+  (let* ((getMesh (get-irrlicht-proc "getMesh" scene-manager))
+         (mesh-pointer (getMesh scene-manager filename)))
+    (cond ((null-pointer? mesh-pointer)
+           (error "In procedure get-mesh: Mesh cannot be created"))
+          (else
+           (make <animated-mesh> #:irr-pointer mesh-pointer)))))
 
 (define-method (get-root-scene-node (scene-manager <scene-manager>))
   (let ((getRootSceneNode (get-irrlicht-proc "getRootSceneNode" scene-manager)))