RFR: 8242523: Update the animation and clip envelope classes

Nir Lisker nlisker at openjdk.java.net
Fri Apr 24 01:23:55 UTC 2020

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.


Commit messages:
 - Removed whitespace
 - Merge branch 'master' into 8242523_Update_the_Animation_and_ClipEnvelope_classes
 - Removing cycleNumber for now
 - Fix typo in TicksCalculation & add an explanation for an animation test
 - Initial push of 8242523
 - Comment out erroneous test
 - Fix IndefiniteCycleDuration test
 - Fixed single loop test
 - Initial commit

Changes: https://git.openjdk.java.net/jfx/pull/196/files
 Webrev: https://webrevs.openjdk.java.net/jfx/196/webrev.00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8242523
  Stats: 648 lines in 9 files changed: 336 ins; 174 del; 138 mod
  Patch: https://git.openjdk.java.net/jfx/pull/196.diff
  Fetch: git fetch https://git.openjdk.java.net/jfx pull/196/head:pull/196

PR: https://git.openjdk.java.net/jfx/pull/196

More information about the openjfx-dev mailing list