Browse Source

Bugfix: fixing a bug that caused negative time values to appear in times[] array in tracks. That caused some animations to behave oddly when in loop mode. Bug and solution found by Tobias Downer.

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@10141 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
Kae..pl 12 years ago
parent
commit
6520fc5b10

+ 1 - 2
engine/src/blender/com/jme3/scene/plugins/blender/animations/Ipo.java

@@ -140,7 +140,6 @@ public class Ipo {
 		if (calculatedTrack == null) {
 		if (calculatedTrack == null) {
 			// preparing data for track
 			// preparing data for track
 			int framesAmount = stopFrame - startFrame;
 			int framesAmount = stopFrame - startFrame;
-			float start = (startFrame - 1.0f) / fps;
 			float timeBetweenFrames = 1.0f / fps;
 			float timeBetweenFrames = 1.0f / fps;
 
 
 			float[] times = new float[framesAmount + 1];
 			float[] times = new float[framesAmount + 1];
@@ -159,7 +158,7 @@ public class Ipo {
 			// calculating track data
 			// calculating track data
 			for (int frame = startFrame; frame <= stopFrame; ++frame) {
 			for (int frame = startFrame; frame <= stopFrame; ++frame) {
 				int index = frame - startFrame;
 				int index = frame - startFrame;
-				times[index] = start + (frame - 1) * timeBetweenFrames;
+				times[index] = index * timeBetweenFrames;//start + (frame - 1) * timeBetweenFrames;
 				for (int j = 0; j < bezierCurves.length; ++j) {
 				for (int j = 0; j < bezierCurves.length; ++j) {
 					double value = bezierCurves[j].evaluate(frame, BezierCurve.Y_VALUE);
 					double value = bezierCurves[j].evaluate(frame, BezierCurve.Y_VALUE);
 					switch (bezierCurves[j].getType()) {
 					switch (bezierCurves[j].getType()) {