On Tue, 25 Nov 2025 01:42:42 GMT, Michael Strauß <[email protected]> wrote:

>> Implementation of the 
>> [linear](https://www.w3.org/TR/css-easing-2/#the-linear-easing-function) 
>> easing function, which is now widely supported by all browsers, but still 
>> missing in JavaFX.
>> 
>> It allows developers to approximate arbitrary easing functions with linear 
>> segments:
>> 
>> 
>> linear(
>>     /* Start to 1st bounce */
>>     0, 0.063, 0.25, 0.563, 1 36.4%,
>>     /* 1st to 2nd bounce */
>>     0.812, 0.75, 0.813, 1 72.7%,
>>     /* 2nd to 3rd bounce */
>>     0.953, 0.938, 0.953, 1 90.9%,
>>     /* 3rd bounce to end */
>>     0.984, 1 100% 100%
>>   )
>> 
>> 
>> <img 
>> src="https://github.com/user-attachments/assets/73aac0d4-0185-47c5-8791-bdb247eb69c8";
>>  width="400"/>
>
> Michael Strauß has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   rename LINEAR() to ofLinear()

The API and docs look good. I left a couple questions on the `ofLinear` method.

modules/javafx.graphics/src/main/java/javafx/animation/Interpolator.java line 
105:

> 103:      * the first or last control point is unspecified, it is set to 0 or 
> 1, respectively.
> 104:      *
> 105:      * @param controlPoints the control points

Do the control points need to be sorted by their X values (excluding NaN)? The 
treatment of NaN values regarding of "neighboring control points" suggests that 
it should be in order for it to be sensible, but perhaps the algorithm doesn't 
require it?

modules/javafx.graphics/src/main/java/javafx/animation/Interpolator.java line 
107:

> 105:      * @param controlPoints the control points
> 106:      * @throws NullPointerException if {@code controlPoints} is {@code 
> null}
> 107:      * @throws IllegalArgumentException if {@code controlPoints} is empty

Should it throw IAE if length < 2?

-------------

PR Review: https://git.openjdk.org/jfx/pull/1977#pullrequestreview-3512841991
PR Review Comment: https://git.openjdk.org/jfx/pull/1977#discussion_r2566572800
PR Review Comment: https://git.openjdk.org/jfx/pull/1977#discussion_r2566583991

Reply via email to