1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | //Convience functions that scale the result for you, scaling both the duration and the value. float ScaledEase(const EaseFunction &easeFunction, float currentTime, float startPos, float stopPos, float startTime, float stopTime) { //Get the range of the values. float timeRange = (stopTime - startTime); //Adjust the position from (begin, end) to (0, range), and convert to float. float adjustedTime = (currentTime - startTime); //Convert to the (0.0f, 1.0f) scale. adjustedTime /= timeRange; //Calculate the current position in the easing function, after adjusting 'currentTime' to the range (0.0 - 1.0). float easePos = easeFunction(adjustedTime); //Get the range to convert the ease into. float distanceRange = (stopPos - startPos); //Calculate and return the result. return (distanceRange * easePos) + startPos; } |
Ly9Db252aWVuY2UgZnVuY3Rpb25zIHRoYXQgc2NhbGUgdGhlIHJlc3VsdCBmb3IgeW91LCBzY2FsaW5nIGJvdGggdGhlIGR1cmF0aW9uIGFuZCB0aGUgdmFsdWUuCmZsb2F0IFNjYWxlZEVhc2UoY29uc3QgRWFzZUZ1bmN0aW9uICZlYXNlRnVuY3Rpb24sIGZsb2F0IGN1cnJlbnRUaW1lLCBmbG9hdCBzdGFydFBvcywgZmxvYXQgc3RvcFBvcywgZmxvYXQgc3RhcnRUaW1lLCBmbG9hdCBzdG9wVGltZSkKewogICAgLy9HZXQgdGhlIHJhbmdlIG9mIHRoZSB2YWx1ZXMuCiAgICBmbG9hdCB0aW1lUmFuZ2UgPSAoc3RvcFRpbWUgLSBzdGFydFRpbWUpOwogICAgICAgICAgICAgICAgCiAgICAvL0FkanVzdCB0aGUgcG9zaXRpb24gZnJvbSAoYmVnaW4sIGVuZCkgdG8gKDAsIHJhbmdlKSwgYW5kIGNvbnZlcnQgdG8gZmxvYXQuCiAgICBmbG9hdCBhZGp1c3RlZFRpbWUgPSAoY3VycmVudFRpbWUgLSBzdGFydFRpbWUpOwogICAgICAgICAgICAgICAgCiAgICAvL0NvbnZlcnQgdG8gdGhlICgwLjBmLCAxLjBmKSBzY2FsZS4KICAgIGFkanVzdGVkVGltZSAvPSB0aW1lUmFuZ2U7CiAgICAKICAgIC8vQ2FsY3VsYXRlIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBlYXNpbmcgZnVuY3Rpb24sIGFmdGVyIGFkanVzdGluZyAnY3VycmVudFRpbWUnIHRvIHRoZSByYW5nZSAoMC4wIC0gMS4wKS4KICAgIGZsb2F0IGVhc2VQb3MgPSBlYXNlRnVuY3Rpb24oYWRqdXN0ZWRUaW1lKTsKICAgIAogICAgLy9HZXQgdGhlIHJhbmdlIHRvIGNvbnZlcnQgdGhlIGVhc2UgaW50by4KICAgIGZsb2F0IGRpc3RhbmNlUmFuZ2UgPSAoc3RvcFBvcyAtIHN0YXJ0UG9zKTsKICAgIAogICAgLy9DYWxjdWxhdGUgYW5kIHJldHVybiB0aGUgcmVzdWx0LgogICAgcmV0dXJuIChkaXN0YW5jZVJhbmdlICogZWFzZVBvcykgKyBzdGFydFBvczsKfQ==
Scaling ease output from (0.0 - 1.0) to whatever you desire.


