Unify scrambling across all 4 bandaged objects.
Preparation for unification of scrambling. Scrambling of all objects will be done by a generic funtion, only fed a certain data structure by the objects. The data structure is going to be the ScrambleStateGraph - a directed state graph of all states we can come across while scrambling....
auto-compute the bandaged status from dimension of the CENTERS. Make 'computeBitmapFromRow' generic for bandageed and not bandaged objects.
Remove the last 'isSolved()' (from Dino4) and put it to the parent class as a special case.
Standarize the 'isSolved()' method: now all objects, except one (Dino4) have a standard isSolved().This incidentally also fixes detection of the solved state in case of Diamond4, i.e. a Master FTO.
Come back to creating the objects from mesh.
Add flag of Madagascar.
Make the 3x3 and 4x4 Diamond meshes smaller.
Finally remove cubit creation from the implementation classes and move it to the TwistyObject.
Convert the last object, Skewb Ultimate, to the new scheme.
Convert the two Squares to the new scheme.
Convert Skewb to the new scheme. New smaller mesh for the Master Skewb.
Convert Rex Cube to the new scheme.
Convert Redi Cube to the new scheme.
Convert Pyraminx to the new scheme. Make Pyra4 and Pyra5 meshes much smaller.
Convert Megaminx to the new scheme.
Move 1) Jing 2) Kilominx to the new cubit creation scheme.Make the Master Kilominx mesh a bit smaller.
Move 1) Helicopter 2) Ivy to the new cubit creation scheme.
Move 1) bandaged 3x3 2) normals cubes 3) octahedrons 4) both dinos to the new cubit creation scheme.
Important step towards making the implementation of an individual puzzle code-free (i.e. data-only): move the 'MeshBase[] mMeshes' variable from the individual classes to the parent TwistyObject.
Make the Kilominx cubit creation a bit more standard.
Introduce ObjectShape - a class encapsulating a shape of a Cubit.Make the Megaminx cubit creation a bit more standard.
Minor.
COnvert the last object, the Rex cube, to the new cubit creation scheme. Provide the new Rex mesh.
New Ivy mesh.
Convert the Ivy corner cubit to the new, 'universal' cubit creation method.
This forces deep changes to 'createRoundSolid' and the underlying 'MeshPolygon' class to make them support arbitrary Polygon 'centers of face convexity'.
Reason: the faces of this cubit are concave and such default 'center of face convexity' (which by default used to be (0,0)) turned to lie outside the face - which produces strange visual artifacts.
Corrections for the Bandaged cubit creation.
Convert bandaged Cubes to the standard mesh creation code.
Move the TwistyObject.retCubePosition() to the solver.
Standarize drawing stickers of a twisty puzzle. From now on, there's no 'sticker drawing' code in the individual classes, only some constants.
Use a trick to avoid having to correct the center sticker of the Kilominx.
Convert the last 'special' case, the Rex edge sticker, to the generic sticker mechanism.
Convert the Rex corner sticker to the new mechanism.
Generalize FactorySticker - make it possible to draw stickers whose sides are curved.Convert the Ivy to use this new functionality.
Make the Pyraminxes a bit bigger by default - improvement.
Make the Pyraminxes a bit bigger by default.
Finish implementing Jing's 'isSolved'
Add Master FTO's inventor and name.
TwistyObject's ObejctScreenRatio and InitScreenRatio shouldn't be static. Make them non-static.Otherwise, if the current object is, say, a cube (initSR=0.5), we fire up tutorials and start a tutorial for something with vastly different ObjectScreenRatio (Jing- initSR=1.64), then come back to the Main Activity - so there's a cube on the screen again - the ratios stay at their Jing values, which screws up detection of rotations.
Master FTO: icons
Master FTO: mesh
Add Master FTO.
New 'JingPyraminx' object - add the icons.
New 'JingPyraminx' object - add the mesh.
New 'JingPyraminx' object - improvements. The object should be working now.
New 'JingPyraminx' object - improvements
New 'JingPyraminx' object - improvement.
New 'JingPyraminx' object.
Lots of changes :)
Bugfix
New Kilominx mesh.
Workaround for a crash.
Correct the Redmi mesh to eliminate the visible seams.
Correct the dino mesh to eliminate the visible seams.
Correct rotations of the Cube - eliminate one cse when four consecutive rotations collapse into one or a NOP.
Correct rotations of the Pyraminx - eliminate one cse when three consecutive rotations collapse into one.
Separate the notion of maxLevel (in DB) [which has to stay backwards-compatible with previous versions of the app] and 'numScrambles' - the number of times an objects gets scrambled in the 'full scramble' mode. Now the second can be whatever we want without breaking backwards compatibility.
Improve scrambling of the Minx'es and the Redi, which in full scramble mode were frequently leaving large corners unscrambled.
Preparation for 'smart scrambling' : introduce the total number of scrambles to the 'randomizeNewScramble' function.
Minx'es: fix for the automatic rotations.
Square-2: correct detecting the solved state.
Squares: add tutorials.Correct the order of objects in the tutorial dialog.
Squares: add meshes.Bump version to 1.8.2
Square-2: minor.
Squares: icons.
Square-2 fix.
Square-2: progress.
Introduce Square-2 (unfinished)
Square-1: looks to be finished.
Square-1: progress with automatic scrambling.
Square-1: implement the fact that corners might bandage the puzzle.
Square-1: this is a shape-shifter; we cannot just clamp the Cubit positions to the initial list of positions.Do so only if the minError is appropriately low.
Square-1: progress with movement.
Make it possible for an object to have different 'cuts' along each of its axis.
Make it possible for an object to have different 'basicAngles' along each of its axis.
Hide more stuff in the TwistyObject class.
Remove the need for RowChances.
Square-1.
Progress with cubit shapes of the Square-1.
improvements for FactorySticker
Square-1: progress
Square-1: beginnings
Make it possible to have some objects created from dmesh, and others - bootstrapped programmatically.
Skewb Ultimate: icon.
Fact Turning Octahedron: icon.
Face-Turning Octahedron & Skewb Ultimate meshes.
Move some objects around.
Skewb Ultimate (hopefully) finished.
Progress with Skewb Ultimate.
Beginnings of a new object: Skewb Ultimate.
Fix (again) the solved state detection in Dino4.
Fix solved state detection of the Dino4
- report the Graphics driver's Renderer and Version.- new Diamond, Skewb2 and Skewb3 meshes.