Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

magiccube / src @ d13df23d

# Date Author Comment
d13df23d 09/27/2021 04:02 PM Leszek Koltunski

Important bugfix.

7ee89540 09/26/2021 10:12 PM Leszek Koltunski

Remove redundant variable.

967c1d17 09/25/2021 01:30 AM Leszek Koltunski

Do away with the last method in the object Movement classes. Remove the object Movement classes altogether.
From now on the implementation of a TwistyPuzzle is 100% data, no code at all.
Next step: make the implementation a (generated?) (XML?) file.

74c9af0d 09/24/2021 05:27 PM Leszek Koltunski

Next step on the way to completely do away with object Movement classes.

a76d9cb4 09/24/2021 04:23 PM Leszek Koltunski

Correct the cuts of Mega/Kilominx.

4946b635 09/24/2021 11:30 AM Leszek Koltunski

Major abstraction - automatically compute the 'computeRowFromOffset()' function from CUTS.
Still one thing left: it appears like the CUTS of Mega/Kilominxes are not correct.

ef018c1b 09/23/2021 02:11 AM Leszek Koltunski

Abstract the next function, computeRowFromOffset(), out of the individual Movement classes.
Still two issues:

1) mysterious 1.5 multiplier in Movement12
2) in Movement8, moving the offset works only if the rotAxis are face-turning, i.e. they connect the centers of the opposing faces of the octahedron.

4ab3d91b 09/21/2021 02:15 AM Leszek Koltunski

Remove class referencees from ObjectList.

96208efc 09/21/2021 01:50 AM Leszek Koltunski

MOve the FOV from ObjectList to individual object classes.

efa81f0c 09/21/2021 01:43 AM Leszek Koltunski

Introduce abstract 4,6,8 adn 12 classes.

e9a87113 09/21/2021 12:59 AM Leszek Koltunski

Move the Movement class from ObjectList to individual object classes.

e782e026 09/21/2021 12:37 AM Leszek Koltunski

Realize that the Movements of Rex, Redi, Dino and the Skewbs are all identical and convert those 4 classes into one MovementCornerTwisting.

5da517d3 09/19/2021 01:04 PM Leszek Koltunski

Minor

da178c88 09/19/2021 12:44 AM Leszek Koltunski

Make computing the offset in the Movement class more correct. From now on, in the center of the face the offset if always 0 regardless of the axis.
Before it would always assume that we can add DIST2D to the offset which is originated at the center of the face and this way get an offset which spans from 0 to height of the face. This is not always true - conterexample: half of the triangluar faces of an octahedron which are 'upside down'

771f6dfa 09/18/2021 10:09 PM Leszek Koltunski

Move actual solving the object to PreRender.

(before we had a 'solveObejct()' in preRender already, but that one just starts the Solve Effect!)

df664009 09/18/2021 08:40 PM Leszek Koltunski

Minor

5b05d357 09/17/2021 04:10 PM Leszek Koltunski

Minor

c7a98f94 09/17/2021 03:57 PM Leszek Koltunski

Minor

be7c9190 09/17/2021 03:51 PM Leszek Koltunski

Abstract out some methods from the Movement classes. only two remain now: rowFromOffset and enabledAxis.

387b6326 09/17/2021 12:01 PM Leszek Koltunski

Make the Kilo and Megaminxes standard size (dodecahedron size=3,5, i.e. equal to numLayers so that DIST2D and DIST3D are standard)

1b32d001 09/16/2021 12:27 AM Leszek Koltunski

Make the Ultimate standard size (dodecahedron size=2, i.e. equal to numLayers so that DIST2D and DIST3D are standard)

74d67e50 09/16/2021 12:00 AM Leszek Koltunski

Make the Skewbs standard size (cube size=2,3, i.e. equal to numLayers so that DIST2D and DIST3D are standard)

16861599 09/15/2021 11:24 PM Leszek Koltunski

Make Rex standard size (cube size=3, i.e. equal to numLayers so that DIST2D and DIST3D are standard)

d84768fe 09/15/2021 06:41 PM Leszek Koltunski

Make Jing standard size (tetra size=2, i.e. equal to numLayers so that DIST2D and DIST3D are standard)

4d27a99b 09/15/2021 01:48 PM Leszek Koltunski

Make Ivy standard size (cube size=2, i.e. equal to numLayers so that DIST2D and DIST3D are standard)

41c8d4d8 09/15/2021 01:34 PM Leszek Koltunski

Make Helicopter standard size (cube size=3, i.e. equal to numLayers so that DIST2D and DIST3D are standard)

7e338611 09/15/2021 10:37 AM Leszek Koltunski

On second thought, come back to Vector. The problem: before we had the potentially blocking function 'effectFinished' inside our synchronized block.

4c49986e 09/14/2021 11:55 PM Leszek Koltunski

1) add missing call to BlockController.onPause() / onResume() to the Tutorial activity
2) rearrange BlockController's error reporting to make the case where the MessageSender thread has died separate
3) in such case, resurrect the thread
4) simplify and harden the EffectMessageSender

de43f86a 09/14/2021 03:32 PM Leszek Koltunski

Correct height of the tutorial dialog.

1160205e 09/13/2021 01:39 PM Leszek Koltunski

Add Mirror 2x2 tutorials.

3e6b6e37 09/13/2021 01:07 PM Leszek Koltunski

Increase NODE_RATIO, i.e. the height/width ratio of the DistortedNode behind the object (before with 1.4, if one scrambled the Mirror Cube and made it the largest possible, corners were cut off form the top and bottom)

0e505360 09/13/2021 01:00 PM Leszek Koltunski

Mirror Cubes: re-enable meshes; update meshes.

62ec404d 09/13/2021 12:55 PM Leszek Koltunski

Mirror Cubes: make them still more off-center.

69f807c5 09/13/2021 03:53 AM Leszek Koltunski

Mirror Cubes: make them a bit more off-center.

36341b2f 09/13/2021 03:45 AM Leszek Koltunski

Mirror Cubes: add meshes and icons.

abf36986 09/13/2021 03:15 AM Leszek Koltunski

Add Mirror Cube 2x2 and 3x3.

91792184 09/10/2021 01:29 AM Leszek Koltunski

Make object scrambling abstract (well, almost - with exception of Square-1 - this theoretically could also be done the generic way, but this would require almost 20000 'ScrambleStates')

f5e7bb94 09/09/2021 11:56 PM Leszek Koltunski

Some more debugs for the case when the UI is blocked.

00aa398a 09/09/2021 11:24 PM Leszek Koltunski

safety!

255492a0 09/09/2021 11:21 PM Leszek Koltunski

Improvements for the PopupWindows: now they work:

1) on Android 11, everywhere
2) on Android 10,9,8.1,8.0 - in case of fullscreen and split-screen modes; pop-up mode still does not work.
3) on Android <= 7.0 : there should be no pop-up mode, so they should be working in all cases

a36b9dca 09/07/2021 11:27 PM Leszek Koltunski

Defer initialization of statics in RubikNetwork till we actually need them.

cc3d81dd 09/07/2021 11:11 PM Leszek Koltunski

Remove statics from the TwistyObject class.

dc78f395 09/07/2021 02:34 PM Leszek Koltunski

Fix play screen popups in case the whole app is in 'multi-window' or 'pop-up window' state.

51baad0e 09/07/2021 01:08 PM Leszek Koltunski

Simplify Play Screen popups.

d90c55cc 09/07/2021 01:00 PM Leszek Koltunski

Make the 'Play' popup always fit within the window height.

963921af 09/07/2021 02:17 AM Leszek Koltunski

Remove statics from the Ultimate class.

d5380277 09/07/2021 02:06 AM Leszek Koltunski

Remove statics from the Square classes.

8c3148e2 09/07/2021 01:25 AM Leszek Koltunski

Remove statics from the Skewb class.

f242ba04 09/07/2021 01:09 AM Leszek Koltunski

Remove statics from the Rex class.

1dd8d3af 09/07/2021 01:02 AM Leszek Koltunski

Remove statics from the Redi class.

48fec01e 09/07/2021 12:48 AM Leszek Koltunski

Remove statics from the Pyraminx class.

af0de0af 09/07/2021 12:38 AM Leszek Koltunski

Remove statics from the Minx classes.

4f8cda80 09/06/2021 11:45 PM Leszek Koltunski

Remove statics from the Jing class.

e01fa67a 09/06/2021 11:20 PM Leszek Koltunski

Remove statics from the Ivy class.

85449b44 09/06/2021 11:12 PM Leszek Koltunski

Remove statics from the Helicopter class.

d464f54f 09/06/2021 10:56 PM Leszek Koltunski

Remove statics from the Dino classes.

aec5cc91 09/06/2021 10:42 PM Leszek Koltunski

Remove statics from the Diamond classes.

97eb0852 09/06/2021 10:29 PM Leszek Koltunski

Remove more statics from the Bandaged Cube classes.

7ff38997 09/06/2021 10:10 PM Leszek Koltunski

Remove statics from the Cube classes.

f2d0d23e 09/06/2021 03:14 PM Leszek Koltunski

Remove statics from the Bandaged Cube classes.

214e301a 09/06/2021 02:59 PM Leszek Koltunski

Fix the problem reported by Samsung -

1. Fire off the app
2. minimize it, select 'Multi window'
3. put some other app in the lower half of the screen
4. close the lower app
5. our app used to fail to display the upper and lower menu bars.

0021af58 09/02/2021 10:44 PM Leszek Koltunski

Convert Square-2 to the new generic scrambling algorithm.

In order to do it we need to introduce a third, artificial rotational axis - otherwise the algorithm would make it impossible to rotate the lower layer and immediatelly after - the upper.

e42a9e87 09/01/2021 10:24 PM Leszek Koltunski

Fix the Square-2 isSolved() (it was wrong even before!)

bbbfb6af 09/01/2021 10:02 PM Leszek Koltunski

Convert the Pyraminxes to the new scrambling paradigm.
This leaves only the two Squares.

aa26ba7f 08/31/2021 11:52 PM Leszek Koltunski

Convert the 4 Minx'es to the new scrambling paradigm.

cda32fc1 08/31/2021 06:12 PM Leszek Koltunski

Convert the Redi to the new scrambling paradigm.

e1dc3366 08/31/2021 05:46 PM Leszek Koltunski

Introduce pseudorandom balancing into scrambling to all the other already converted objects, i.e. everytihng except for Pyraminxes, Squares, Minxes and the Redi.

6cf89a3e 08/31/2021 03:38 PM Leszek Koltunski

Introduce pseudorandom balancing into scrambling in case of the two Dinos (from now on, the more times a particular (ax,layer) combination has been chosen already in the scrambling sequence, the less likely it is to be chosen next).
Fix Dino6 - isSolved(). Sadly, it cannot be the geeneric function - it needs to be another special case.

caccea6e 08/31/2021 01:12 AM Leszek Koltunski

Convert the Cubes of all sizes to the new, unified scrambling method.

20898e6f 08/30/2021 11:03 PM Leszek Koltunski

Convert both Dinos to the new, unified scrambling method.

486b3417 08/30/2021 10:21 PM Leszek Koltunski

Convert the Diamonds & the Helicopter to the new, unified scrambling method.

01b2ef5a 08/30/2021 07:33 PM Leszek Koltunski

Convert Skewbs & Rex Cube to the new, unified scrambling method.

0ad6b867 08/30/2021 05:02 PM Leszek Koltunski

Convert Skewb Ultimate, Jing Pyraminx & Ivy Cube to the new, unified scrambling method.

38589947 08/30/2021 10:51 AM Leszek Koltunski

Unify scrambling across all 4 bandaged objects.

8db55f55 08/30/2021 01:46 AM Leszek Koltunski

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....

5e254115 08/26/2021 10:39 PM Leszek Koltunski

auto-compute the bandaged status from dimension of the CENTERS. Make 'computeBitmapFromRow' generic for bandageed and not bandaged objects.

169219a7 08/26/2021 10:30 PM Leszek Koltunski

Remove the last 'isSolved()' (from Dino4) and put it to the parent class as a special case.

a480ee80 08/26/2021 01:13 AM Leszek Koltunski

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.

abe288a3 08/24/2021 02:35 PM Leszek Koltunski

Come back to creating the objects from mesh.

668423be 08/24/2021 12:32 PM Leszek Koltunski

Add flag of Madagascar.

7d11f930 08/23/2021 03:32 PM Leszek Koltunski

Make the 3x3 and 4x4 Diamond meshes smaller.

3e605536 08/23/2021 03:20 PM Leszek Koltunski

Finally remove cubit creation from the implementation classes and move it to the TwistyObject.

acf165d9 08/23/2021 02:15 PM Leszek Koltunski

Convert the last object, Skewb Ultimate, to the new scheme.

fd836c4e 08/23/2021 02:07 PM Leszek Koltunski

Convert the two Squares to the new scheme.

8655f3fe 08/21/2021 12:58 AM Leszek Koltunski

Convert Skewb to the new scheme. New smaller mesh for the Master Skewb.

a38fe4b2 08/20/2021 11:46 PM Leszek Koltunski

Convert Rex Cube to the new scheme.

2077dd18 08/20/2021 11:31 PM Leszek Koltunski

Convert Redi Cube to the new scheme.

045d8cbd 08/20/2021 11:24 PM Leszek Koltunski

Convert Pyraminx to the new scheme. Make Pyra4 and Pyra5 meshes much smaller.

8e4a3670 08/20/2021 11:11 PM Leszek Koltunski

Convert Megaminx to the new scheme.

8ebaf76d 08/20/2021 10:50 PM Leszek Koltunski

New, smaller Master Kilominx mesh.

94a4edcf 08/20/2021 10:44 PM Leszek Koltunski

Move 1) Jing 2) Kilominx to the new cubit creation scheme.
Make the Master Kilominx mesh a bit smaller.

a2a4df1b 08/20/2021 01:03 AM Leszek Koltunski

Move 1) Helicopter 2) Ivy to the new cubit creation scheme.

f10a88a8 08/20/2021 12:39 AM Leszek Koltunski

Move 1) bandaged 3x3 2) normals cubes 3) octahedrons 4) both dinos to the new cubit creation scheme.

ad7907b0 08/19/2021 11:28 PM Leszek Koltunski

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.

f8031218 08/19/2021 10:52 PM Leszek Koltunski

Make the Kilominx cubit creation a bit more standard.

45f63f17 08/19/2021 10:44 PM Leszek Koltunski

Introduce ObjectShape - a class encapsulating a shape of a Cubit.
Make the Megaminx cubit creation a bit more standard.

a0b48da6 08/18/2021 11:04 PM Leszek Koltunski

Minor.

c75ab933 08/18/2021 01:36 AM Leszek Koltunski

COnvert the last object, the Rex cube, to the new cubit creation scheme. Provide the new Rex mesh.

46e6b3f6 08/17/2021 09:42 PM Leszek Koltunski

New Ivy mesh.

47d98cd5 08/17/2021 05:30 PM Leszek Koltunski

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.