Adjust ShapeChanging so that it can handle concave cubit faces.Now it is working also in case of the Ivy corner cubits.
Float vertices - scratchbook
Bugfix.
Add to MeshPolygon a special modee to create a 2-band polygon with dense corners (needed to reduce number of vertices in side faces of the TwisttyPuzzle cubits)
Add testing of MeshPolygon to the MeshFile app.
Major change: separate the notion of a TwistyObject and its Node. Now,
1) the Node stays when we change objects (this makes transitions faster)2) it's possible to just create an Object without adding it to the Screen (now app needs to explicitly create the Node and add it to its Screen itself)
Correction
By default, do use Halo Depth (this broke the halo around a solved object in distorted-cube!)
Set possibility for the Postprocessing effects to eclipse the whole object or only work at the edges.
New API: set components centers of all components all in one go.
comment.
New BORDER effect.
Comment.
Minor
Improvements for the new Border effect. Now works, but covers the object - to be corrected.
New postprocess effect 'Border' (not working yet) and adding it to the testing app 'Triblur'.
Mesh creation: finished.
Move destroying most of statics from onDestroy() earlier, to onPause().
Reason: doing this in onDestroy() is too late, because when we have two activities, and switch between them, first the ending's Activity onPause() is called, then the starting Activity's onResume, then it's onSurfaceCreated(), then we insert all the effects, and only then the ending Activity onDestroy() gets fired off - and this might destroy the already enabled effects, like for example the Programs of the Postprocessing effects.
Move QuatHelpeer to distorted-library
Add debugging option to DistortedEffects.
On second thought, come back to Vector. The problem: before we had the potentially blocking function 'effectFinished' inside our synchronized block.
Improve EffectMessageSender: ArrayList with explicit locking in place of a Vector.
1) add missing call to BlockController.onPause() / onResume() to the Tutorial activity2) rearrange BlockController's error reporting to make the case where the MessageSender thread has died separate3) in such case, resurrect the thread4) simplify and harden the EffectMessageSender
More debugs to the EffectMessageSender.
Firebase shows that we have a problem when an app is rapidly restarted, i.e. when is it paused and resumes within tens of milliseconds. Then sometimes the EffectMessageSender thread dies.
Attempt to limit this by synchronizing the whole 'start' and 'stop' methods, although I suspect this will still happen because the very methods are probably in such case called in the wrong order.
Also available in: Atom