From 780da5e5812178797eb070c81d41b2ebbde1ddcc Mon Sep 17 00:00:00 2001 From: "Kae..pl" Date: Sun, 25 Sep 2011 22:22:07 +0000 Subject: [PATCH] Tests for loading bone and object animation from blender added. git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@8306 75d07b2b-3a1a-0410-a2c5-0572b91ccdca --- .../src/test-data/Blender/2.4x/animtest.blend | Bin 145712 -> 168156 bytes .../jme3test/model/anim/TestBlenderAnim.java | 93 ++++++++++++++++++ .../model/anim/TestBlenderObjectAnim.java | 93 ++++++++++++++++++ 3 files changed, 186 insertions(+) create mode 100644 engine/src/test/jme3test/model/anim/TestBlenderAnim.java create mode 100644 engine/src/test/jme3test/model/anim/TestBlenderObjectAnim.java diff --git a/engine/src/test-data/Blender/2.4x/animtest.blend b/engine/src/test-data/Blender/2.4x/animtest.blend index 9a0df27b887e6f90409e60a5f59b7c80bd4b63d8..eabd593dce1b1869d6e603aa2b0af35a678c74b7 100644 GIT binary patch delta 27197 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 DUizlU delta 20729 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