Lots of changes :)
Hide more stuff in the TwistyObject class.
Change the Cubit center from a Static3D to a float[].The point: now we can have more than one center, and bandaged objects need more than one, because in this way they are going to fill up their RotationRow bitmaps.
Change Cubit.mRotationRow[] from an index pointing at a single rotating layer to a bitmap potentially pointing at several layers.(in preparation for bandaged objects)
Plug two more memory leaks.
Progress with the Kilominx - rotations.
Even more debugs for the 'failed to restore preferences' mystery.
1) Progress with the Ivy2) further refine defense against failing to restore preferences.
Bugfix
Report to Crashlytics if we fail to restore preferencees (2)
Report to Crashlytics if we fail to restore preferencees.
Move computation of the rotation rows to the Object from Cubits.
Work around a rare crash on startup
Rename some classes.
Fix detecting if an Object is solved. Before, the generic Cubit.thereIsNoVisibleDifference(0 would not work correctly in case of the Dino.
Fix the bug reported by Antonio Campos Galán: sometimes the app would not detect that the Cube is solved.
Bugfixes.
More progreess porting RubikCube. Rotation mostly working now.
More progreess porting RubikCube.
Progreess porting RubikCube to the new SingleMesh mode.
Begin porting RubikCube to the new SingleMesh library. This will make rendering much faster - e.g. in case of Cube 5, instead of 98 renders of individual Cubits, there will be one render of the whole Mesh.
1) Cube: convert it to the latest library. Main difference: objects are rendered better, individual cubits have rounded corners.2) Examples: some adjustments to MeshJoin & Predeform3) Library: fix a bug in main_vertex_shader's 'degree' function, which didn't work proprely in case of a vertex which was exactly at the center (i.e. vector PS was zero)
In library: allow a mixture of a deep and shallow copy of a Mesh ( mVertAttribs1 might be copied deeply or shallowly, mVertAttribs2 are always copied deeeply).Port RubikCube to the new library.
Fix for the previous fix :)
Fix a potential crasher ( do not set up a callback for end of rotation effect on the very first cubit that belongs to a rotation if all belonging cubits have not been set up yet )
There's a real crash from the field in Firebase Crashlytics which must mean that Cubit.returnRotationAngle() returned null.Leave some message in case this happens again.
Add a 'withdraw move' button to the Solving UI state.
Progress implementing RubikCube.retObjectString()
Progress with the 3x3x3 Solver.
More support for the 3x3x3 Solver: more of the actual 3x3x3 solver mechanism.