]> git.jsancho.org Git - guile-irrlicht.git/commitdiff
add-animator! with mesh-scene-node support
authorJavier Sancho <jsf@jsancho.org>
Wed, 8 Apr 2020 18:35:49 +0000 (20:35 +0200)
committerJavier Sancho <jsf@jsancho.org>
Wed, 8 Apr 2020 18:35:49 +0000 (20:35 +0200)
src/scene-node.cpp

index f587c05ec28f86662a435bd178b096550c53d605..1ec773c4ace9c2084e9f17e1d5ecfb8ee82a4d12 100644 (file)
@@ -54,7 +54,22 @@ extern "C" {
   irr_scene_addAnimator (SCM wrapped_scene_node,
                          SCM animator)
   {
-    irr::scene::ISceneNode* node = unwrap_scene_node (wrapped_scene_node);
+    irr::scene::ISceneNode* node;
+
+    if (mesh_scene_node_p (wrapped_scene_node))
+      {
+        node = (irr::scene::ISceneNode*)unwrap_mesh_scene_node (wrapped_scene_node);
+      }
+    else if (scene_node_p (wrapped_scene_node))
+      {
+        node = unwrap_scene_node (wrapped_scene_node);
+      }
+    else
+      {
+        scm_error (scm_arg_type_key, NULL, "Cannot add animator flag to object: ~S",
+                   scm_list_1 (wrapped_scene_node), scm_list_1 (wrapped_scene_node));
+      }
+
     node->addAnimator (unwrap_scene_node_animator (animator));
     return SCM_UNSPECIFIED;
   }