unify TouchControl
Basic manual contorl over a 4x2x2 Ghost should be fine now.
Things still TODO:
1) correct axis in TouchControl when all rows are 'down'2) implement proper ghostAxis and rowBitmap switching that would work in general, not only in case of a 4x2x23) implement automatic rotation that would force unblocking on the first move
Big progress with Ghosts.
The test (4,2,2) almost works now - only sometimes, when we switch to mGhostRowBitmap=fullOnes, (all rows 'DOWN' ) then some cubits do not seem to belong to their assigned layers anymore.
progress with Ghosts
Work on Ghosts
minor
replace all andoird logging with System.out.println
minor bugfix: eliminate too long move angles.
Solver for Megaminx.
bugfix in SolverActivity and speedup in MoveProviderAlgs
change one of objlib's APIs from 'onReplaceModeUP/Down' (which only comes when TouchControl is in REPLACE mode) to 'onStickerTouched/Untouched' (which reports the same thing, but comes always)
better minimalCubiesInRow in case of cuboids - take into account that the shapeshifters can be hollow inside if x>=3, y>=3, z>=3 (e.g. 3x3x5)
beginnings of PhasedSolverMegaminx.Verifier & locked cubits done - now define the actual phases!
Move all the strings from objlib to the app.Upgrade AGP from 8.1.4 to 8.3.2
New verifier mechanism finished and being used by both KILO3 and CUBE3 algorithmic solvers.
Progress with automatic verifiers.Appears to work now in case of KILO_3 and CUBE_3.In case of IVY_2, it crashes.
beginnings of the Kilominx verifier
beginnings of ther Kilominx verifier
comment
Another part of the fix for shape-shifting cuboids: we need to write numLayers to JSON (rather than computing it from mRotatable) because it turns out mNumLayers can be different than the lengths of mRotatable!
This and new object JSONs for the 3 shape-shifters (other object default back to the old method of computing numLayers on read from JSON)
fix for scrambling shape-shifting cuboids. Before when scrambling e.g. the CU_242, we would sometimes 'hit air' (try to rotate a layer which does not have any cubits in it)
Algorithmic solvers (at least the 3x3 beginner and the Kilominx) seem to be working now.
progress with Algorithmic solvers. Seem to solve all right now; but still problems with which cubits it lights.
fixes for Algorithmic solvers (but those still do not work correctly!)
a dialog to interrupt too long solves
Add the 'interrupt()' API to all solversAdd the 'start/stopSolving' notification to ResultScreen
Initial support for Algorithmic Kilominx verifier and introduction of it into the App.
Do not call the Kociemba solver on an already solved position.
Integration of the Algorithmic solver 'SolverAlgorithmicCUBE3' with the app pretty much done.
3x3 position validator finished; what's left is compute the quat table knowing the position is correct.
Properly define and separate the interface between the App and the 'solver' part of the objectlib. Move the 'position verifiers' to the objectlib.
Integration of the Algorithmic solvers into the App.
Restructuring for the solvers in the app.
Progeress towards automatically integrating the Algorithmic solvers into the list of solvers in the App.
Glow cubits involved in the phase.
Step towards glowing cubits involved in a phase.
push objectRatio up from TwistyObjectControllable to the last layer.
Remove the final remnants of legacy 'ghost' stuff.
Carve out the fifth layer: touch control.
Carve out the fourth layer: stickers.
Carve out the third layer from the Puzzle implementation: TwistyPuzzleSolved, i.e. detection of the solved state.
Next: the fourth layer: stickers.Then: fifth layer: touch control.Then: everything else. (metadata?)
API name changes; fix for Dino4's solved state!
Minor
remove numLayers from parameter list of 3 next methods.
correction.
remove numLayers from 4 API methods.
Clean up TwistyObjectWithMesh's API (remove getDist3D() and getSize() )
Make calculation of circumscribed radius work for any current and future object.
Cleanup
bugfix (move iconode to TwistyObjectWithMesh as mesh creation sometimes depends on the mode)
port fixes from master
Carve out another, 2nd layer from TwistyObject: everything related to creating its Mesh.
Progress with PhasedSolver app.
SolverKilominx finished.
Add possibility to select different solvers.
Better structure things architecturally.
More for Solver Kilominx (almost finished)
More for Solver Kilominx
Improvements to the Solver: remove redundant moves per-whole phase, not per subphases.
Improvements to the Phased Solver app
Beginnings of SolverKilominx
bugfix
Finally! Split TwistyObject into:
- lower class 'TwistyObjectTheoretical' (an object that has no mesh, no stickers, cannot be touch-controlled, but knows how a real object of its kind moves - so can be used e.g. in solvers)
- everything else above it.
In the future, the 'everything else' will be further slipt into...
improve the way Crazy Puzzles are done: JSON files
improve the way Crazy Puzzles are done (this does not depend on mShapes anymore)
First stage of the planned split of the giant TwistyObject class into (at first!) two: TwistyObjectTheoretical (a 'theoretical' object which moves just like the real one, but which has no mesh, stickers, shapes, node and cannot be controlled) and everything else.
Clean up SolvedObject's API.
Minor.
Introduce SolutionListener interface which permits to send solutions phase-by-phase. Time time keeping to the app.
Improve the Phased Solver App (show phases)
bugfix - MoveProviders (Algs with a regex) can return null moves (if the regex evaluates to empty)
Improve SOlver3x3Beginner
Abstract out Solver3x3Beginner - the first implemented Phased Solver.
3x3 Beginner should be finished. Everything seems to work, and work fast.
Still some fixes.
All phases of the 3x3 beginner (seem to) work now.
Fixes. OLL (edges) works now, PLL (edges) still does not.
branching foctor does not depend on SolvedObject, but on MoveProvider.
Clean up everything.Algorithmic MoveProviders do nto seem to work yet. (3x3 Beginner's OLL phase does not work)
clean up TargetQuats API
Bugfixes
remove debugging
Phased Solver app: debugging
Progress with PhasedSolver.Introduce an abstracted TargetQuats.