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 is a complete (or nearly so) pass on all ParticleObject subclasses to ensure the following:
beforeDraw and afterDraw are present, defaulted to the identity() implementation on initialization, reset to identity() if ever set to null, and invoked from doBeforeDraw and doAfterDraw methods.
The ParticleEffect is named particleEffect so there's no confusion over what it means.
drawPos is the name of the position passed in from the PathAnimatorBase implementation.
Rotation and Offset are working correctly, without unintentional modification of internal vertices, rotations, offsets, etc.
Before and after interceptors are actually called before and after the drawParticle or drawLine invocation(s), as appropriate.
The returned ParticleObject from the interceptors is never referenced, since the user should not be able to replace the rendered object, only modify its properties.
Unboxing from getMetadata should not throw NullPointerException if the user happened to set it to null.
Constructors are telescoped such that there is a single "non-this" constructor and a single copy constructor.
I think that's it. Now, we should be able to get into more cool stuff, animators, pre-computing, performance, etc.
This is a complete (or nearly so) pass on all
ParticleObject
subclasses to ensure the following:beforeDraw
andafterDraw
are present, defaulted to theidentity()
implementation on initialization, reset toidentity()
if ever set tonull
, and invoked fromdoBeforeDraw
anddoAfterDraw
methods.ParticleEffect
is namedparticleEffect
so there's no confusion over what it means.drawPos
is the name of the position passed in from thePathAnimatorBase
implementation.drawParticle
ordrawLine
invocation(s), as appropriate.ParticleObject
from the interceptors is never referenced, since the user should not be able to replace the rendered object, only modify its properties.getMetadata
should not throwNullPointerException
if the user happened to set it tonull
.I think that's it. Now, we should be able to get into more cool stuff, animators, pre-computing, performance, etc.