public static Vector3 CatmullRomOLD (Vector3 previous,Vector3 start, Vector3 end, Vector3 next, float elapsedTime) {
// References used:
// p.266 GemsV1
//
// tension is often set to 0.5 but you can use any reasonable value:
// http://www.cs.cmu.edu/~462/projects/assn2/assn2/catmullRom.pdf
//
// bias and tension controls:
// http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/interpolation/
float percentComplete = elapsedTime;
float percentCompleteSquared = percentComplete * percentComplete;
float percentCompleteCubed = percentCompleteSquared * percentComplete;
return previous * (-0.5F*percentCompleteCubed +
percentCompleteSquared -
0.5F*percentComplete) +
start * (1.5F*percentCompleteCubed +
-2.5F*percentCompleteSquared + 1.0F) +
end * (-1.5F*percentCompleteCubed +
2.0F*percentCompleteSquared +
0.5F*percentComplete) +
next * (0.5F*percentCompleteCubed -
0.5F*percentCompleteSquared);
}
}