Apel is a library that brings particle animations to the table with flexible behaviour and a clean developer interface. It promises also lots of predefined shapes & paths to help the developer on their particle scene
This cleans up several things on animators in preparation to move to builders:
Use ParticleObject<? extends ParticleObject<?>> as the type. This ensures that only classes inheriting from ParticleObject may be used when subclassing and using it generically.
The animation interceptor was using a camelCase name instead of PascalCase, so fix that across all animators.
PathAnimatorBase was somewhat disorganized with getters/setters, so order those to group getter/setter together.
There were a few mismatches between properties and getter/setter names, so align those.
Fixes bugs in AnimationTrimming where the wrong variables were set and returned.
Remove unused methods from PathAnimatorBase and BezierCurveAnimator.
Leverage getMetadata's ability to default a value of a known type to prevent casting.
Simplifies LinearAnimator using the pattern from BezierCurveAnimator; they're identical in structure -- the only difference is the segment type. There's possibility for future refactoring/inheritance/interface here.
This cleans up several things on animators in preparation to move to builders:
ParticleObject<? extends ParticleObject<?>>
as the type. This ensures that only classes inheriting fromParticleObject
may be used when subclassing and using it generically.PathAnimatorBase
was somewhat disorganized with getters/setters, so order those to group getter/setter together.PathAnimatorBase
andBezierCurveAnimator
.getMetadata
's ability to default a value of a known type to prevent casting.LinearAnimator
using the pattern fromBezierCurveAnimator
; they're identical in structure -- the only difference is the segment type. There's possibility for future refactoring/inheritance/interface here.