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
This commit is contained in:
parent
5536f5f824
commit
6520fc5b10
@ -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()) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user