isolate world code
[carveJwlIkooP6JGAAIwe30JlM.git] / skeleton.h
index 4f35d58e25d50681b462cfac7596f3a8b02991da..c5f59da39fcc31ab581e1e2396c73351b28bb863 100644 (file)
@@ -61,10 +61,14 @@ VG_STATIC u32 skeleton_bone_id( struct skeleton *skele, const char *name )
          return i;
    }
 
+   vg_error( "skeleton_bone_id( *, \"%s\" );\n", name );
+   vg_fatal_exit_loop( "Bone does not exist\n" );
+
    return 0;
 }
 
-VG_STATIC void keyframe_copy_pose( mdl_keyframe *kfa, mdl_keyframe *kfb, int num )
+VG_STATIC void keyframe_copy_pose( mdl_keyframe *kfa, mdl_keyframe *kfb, 
+                                   int num )
 {
    for( int i=0; i<num; i++ )
       kfb[i] = kfa[i];
@@ -73,8 +77,8 @@ VG_STATIC void keyframe_copy_pose( mdl_keyframe *kfa, mdl_keyframe *kfb, int num
 /*
  * Lerp between two sets of keyframes and store in dest. Rotations use Nlerp.
  */
-VG_STATIC void keyframe_lerp_pose( mdl_keyframe *kfa, mdl_keyframe *kfb, float t,
-                                mdl_keyframe *kfd, int count )
+VG_STATIC void keyframe_lerp_pose( mdl_keyframe *kfa, mdl_keyframe *kfb, 
+                                   float t, mdl_keyframe *kfd, int count )
 {
    if( t <= 0.01f )
    {
@@ -102,6 +106,12 @@ VG_STATIC void skeleton_lerp_pose( struct skeleton *skele,
    keyframe_lerp_pose( kfa, kfb, t, kfd, skele->bone_count-1 );
 }
 
+VG_STATIC void skeleton_copy_pose( struct skeleton *skele,
+                                   mdl_keyframe *kfa, mdl_keyframe *kfd )
+{
+   keyframe_copy_pose( kfa, kfd, skele->bone_count-1 );
+}
+
 /*
  * Sample animation between 2 closest frames using time value. Output is a
  * keyframe buffer that is allocated with an appropriate size
@@ -376,7 +386,7 @@ VG_STATIC void skeleton_apply_standard( struct skeleton *skele, mdl_keyframe *po
  * Get an animation by name
  */
 VG_STATIC struct skeleton_anim *skeleton_get_anim( struct skeleton *skele,
-                                                const char *name )
+                                                   const char *name )
 {
    for( int i=0; i<skele->anim_count; i++ )
    {
@@ -386,6 +396,9 @@ VG_STATIC struct skeleton_anim *skeleton_get_anim( struct skeleton *skele,
          return anim;
    }
 
+   vg_error( "skeleton_get_anim( *, \"%s\" )\n", name );
+   vg_fatal_exit_loop( "Invalid animation name\n" );
+
    return NULL;
 }