Add the 4-color Dino.
Still one thing needs to be done about it: randomization of Moves (now sometimes in Level 1 the randomized move leads to an already solved position)
Fix rotations of the Helicopter.
Beginnings of support for the Helicopter.
Progress with the Skewb.
Beginnings of support for the Skewb.
Convert RubikPyraminx to the new MeshPolygon - better quality of the mesh and less vertices!
Convert RubikCubes to the new MeshPolygon - better quality of the mesh and less vertices!
Rename Meshes.
Fix for one bug seen in Firebase and additional debugging for another.
Finally fix the Dino's 'isSolved()' - Dino can be mirrored and then it is also solved!
Fix detecting if an Object is solved. Before, the generic Cubit.thereIsNoVisibleDifference(0 would not work correctly in case of the Dino.
Adjust randomizing new rotations so that:
1) it works for basicAngle=5 (Megaminx) (so now basicAngle=2,3,4,5 supported)2) it leaves the decision as to what can be the next rotation to the Object class, as in case of certain Objects (the Dino, or the Helicopter, the Megaminx) the next rotation doesn't have to 'intersect' the old rotation always when oldRotAxis != newRotAxis (that's so simple only in case of the Cube and - only partly - the Pyraminx!)
Major progress with Dino; rotations (almost?) work now.
Progress with Dino Movement
Introduce separate ROT_AXIS and FACE_AXIS ( step 2 )
Introduce separate ROT_AXIS and FACE_AXIS ( step 1 )
Move the knowledge about colors of individual cubit faces down to each Object subclass.
Progress with the Dino.
Introduce three sizes of UI images: small, medium, large.
Re-introduce possibility to dynamically create object mesh: part 2.
Object node: size of screenWidth.
Simplify dragging. Now there's only 1 Quat, rather than the old way with two (Accumulated, Current).
Read the meshes from .dmesh files (rather than compute them dynamically).This (along with single-mesh mode) hopefully makes the rendering much faster, while keeping the time needed for Object Change low.
The only downside: this increases the size of the release APK from 6 MB to 9.6 MB.
Speedup for rendering: cubes 2,3 contain better quality cubit faces (more vertices) than cubes 4,5.
More progreess porting RubikCube.
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.
Port RubikCube to the new library.
Progress making it possible to apply Vertex Effects only to some Components of a 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.
Make chances to randimoze a given row when scrambling dependant on the type of Object.
The point: in case of the Cube, all rows should have equal chances. In case of the Pyraminx, the smaller the row, the smaller the chance should be. In particular the trivial 4 corners of the tetraherdon should have a very small chance to be selected.
Progress with the Solver - RubikCube.retObjectString() finished.
What remains to be done here: ban changing colors of the centers of 3x3x3 faces, this shouldn't be allowed!
Progress implementing RubikCube.retObjectString()
Progress making the Solver state more abstract.
Make the Solver state more abstract.
Progress with the 3x3x3 Solver.
More support for the 3x3x3 Solver: more of the actual 3x3x3 solver mechanism.