On Thu, 7 May 2020 08:50:23 GMT, Ambarish Rapte <ara...@openjdk.org> wrote:
>> Mostly refactoring in preparation of the upcoming fixes. The changes might >> look like a lot, but it's mostly rearranging >> of methods. Summery of changes: >> ### Animation >> * Added `isNearZero` and `areNearEqual` methods that deal with `EPSILON` >> checks. >> * Added `isStopped`, `isRunning` and `isPaused` convenience methods. >> * Added `runHandler` method to deal with running the handler. >> * Moved methods to be grouped closer to where they are used rather than by >> visibility. >> * Removed the static import for `TickCalculation`. >> * Various small subjective readability changes. >> * Behavioral changes: switching `autoReverse` and `onFinished` properties >> from "Simple" to "Base" properties; and lazily >> initializing the `cuePoints` map. >> >> ### Clip Envelopes >> * Added `MultiLoopClipEnvelope` as an intermediate parent for infinite and >> finite clip envelopes. >> * Rearranged methods order to be consistent. >> * Replaced the `checkBounds` method with a new overload of `Utils.clamp`. >> * Renamed `pos` to `cyclePos`. >> * Extracted common methods: `changedDirection` and `ticksRateChange` >> * Added internal documentation. >> >> Also corrected a typo in `TicksCalculation` and added an explanation for an >> animation test. > > modules/javafx.graphics/src/main/java/com/sun/scenario/animation/shared/SingleLoopClipEnvelope.java > line 102: > >> 101: long ticksChange = Math.round(currentTick * currentRate); >> 102: ticks = Utils.clamp(0, deltaTicks + ticksChange, >> cycleTicks); >> 103: AnimationAccessor.getDefault().playTo(animation, ticks, >> cycleTicks); > > This could remain unchanged. The `ticksChange` value is not really used > elsewhere here. This change was made with extracting similar code from the other clip envelopes in mind, though there would need to be some future discussion about it. I think it also makes the code more readable anyway. ------------- PR: https://git.openjdk.java.net/jfx/pull/196