Project

General

Profile

Download (20.2 KB) Statistics
| Branch: | Tag: | Revision:

magiccube / src / main / java / org / distorted / objects / TwistySkewb.java @ 4946b635

# Date Author Comment
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.

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.

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)

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')

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

Remove statics from the Skewb class.

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.

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

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

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

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.

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

Add flag of Madagascar.

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

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

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

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

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.

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.

ecf3f149 08/08/2021 04:46 PM Leszek Koltunski

Move the TwistyObject.retCubePosition() to the solver.

9c06394a 08/08/2021 04:21 PM Leszek Koltunski

Standarize drawing stickers of a twisty puzzle. From now on, there's no 'sticker drawing' code in the individual classes, only some constants.

29bc084f 08/06/2021 01:48 PM Leszek Koltunski

Convert the last 'special' case, the Rex edge sticker, to the generic sticker mechanism.

9ce78850 08/06/2021 12:38 AM Leszek Koltunski

Generalize FactorySticker - make it possible to draw stickers whose sides are curved.
Convert the Ivy to use this new functionality.

d5ca9927 07/30/2021 02:37 PM Leszek Koltunski

Finish implementing Jing's 'isSolved'

9f171eba 06/13/2021 10:35 PM Leszek Koltunski

Preparation for 'smart scrambling' : introduce the total number of scrambles to the 'randomizeNewScramble' function.

e6734aa9 06/04/2021 01:25 AM Leszek Koltunski

Make it possible for an object to have different 'cuts' along each of its axis.

925ed78f 06/04/2021 12:26 AM Leszek Koltunski

Make it possible for an object to have different 'basicAngles' along each of its axis.

582617c1 06/03/2021 10:46 PM Leszek Koltunski

Hide more stuff in the TwistyObject class.

0203be88 06/03/2021 10:06 PM Leszek Koltunski

Remove the need for RowChances.

be56193c 04/20/2021 12:28 AM Leszek Koltunski

Move all the special cubit-creating code out of FactoryCubit and to the Object classes, and thus hopefully finish implementing the new cubit creating engine.

7d8cc029 04/18/2021 10:20 PM Leszek Koltunski

Simplify.

0919eba7 04/15/2021 05:29 PM Leszek Koltunski

Correct still one bug with collapsing stickers in teh new Cubit engine.
Convert the Helicopter corner cubits to the new engine.

7dc57f89 04/15/2021 01:16 AM Leszek Koltunski

Convert the Skewb.

cb137f36 04/15/2021 12:20 AM Leszek Koltunski

Objects: tidy up some repeated code.

b3c9061a 04/14/2021 11:59 PM Leszek Koltunski

New Cubit Engine: add adjustable centers.

596d62a4 04/14/2021 11:16 PM Leszek Koltunski

Convert the Dino and one of the Skewb's cubits to the new engine.

b1f2ccf5 04/14/2021 04:00 PM Leszek Koltunski

Convert the first object, the Cube, to the new Cubit-creating engine.

749ef882 04/14/2021 10:01 AM Leszek Koltunski

Move Factories to the 'helpers' package.

5043d5d0 03/21/2021 12:44 AM Leszek Koltunski

Refactor the automatic scrambling. From now on, it is not needed to care about single and double turns when randomizing a new turn.

bbc6471c 03/20/2021 12:36 AM Leszek Koltunski

Change the automatic scramble API in the TwistyObject - in preparation for automatic scrambles in the Bandaged Objects.

e6cf7283 03/18/2021 09:48 AM Leszek Koltunski

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.

db875721 03/07/2021 12:17 AM Leszek Koltunski

Add Gigaminx dmesh.

a64e07d0 01/19/2021 04:17 PM Leszek Koltunski

Beginnings of Megaminx & Gigaminx

323b217c 01/10/2021 11:52 PM Leszek Koltunski

Make the color scheme more standard.

6fd4a72c 10/23/2020 11:51 PM Leszek Koltunski

Preparation for the Object Info popup: add the name, inventor, complexity info to each object.

b3da2f16 10/17/2020 10:55 PM Leszek Koltunski

Icons for the Skewb Master.

d92030e4 10/16/2020 11:23 PM Leszek Koltunski

Improve the Skewb; set max components to 110 in MeshBase so that all of Professor Skewb's components fit.

ae755eda 10/16/2020 10:26 PM Leszek Koltunski

Make the texture multi-row: avoid the maximum texture size.

c7e23561 10/16/2020 03:43 PM Leszek Koltunski

Report to Crashlytics if the fail to set texture due to it being too large.

b89898c5 10/16/2020 12:11 PM Leszek Koltunski

Progress with Skewb familty; separate StickerFactory class.

d99f3a48 10/16/2020 08:32 AM Leszek Koltunski

Spearate the concept of number of layers of an object and its size.
In case of the Skewb family, this is no longer the same (Master Skewb has 3 layers but it's twice bigger than the 2-layered Skewb)

a97e02b7 10/15/2020 03:11 PM Leszek Koltunski

Objects must explicitly provide a list of offsets specifying where the cut planes are (rather than just a BASIC_STEP - the width of the layer - which is insufficient in case of objects which have layers of vastly different width, like the Master Skewb)

3f3ff476 10/14/2020 03:21 PM Leszek Koltunski

Beginnings of support for any-sized Skewb.

e06e1b7e 10/01/2020 10:29 PM Leszek Koltunski

- after some time using it, request an App review
- some tweaking for the way the objects look (set internal_color to something slightly lighter than pure black, round the corners of the stickers better)
- set internal_node ratio to 1.42, this way the objects never get cut

db7eb1ad 09/30/2020 08:25 PM Leszek Koltunski

Minor.

76c2bd07 09/30/2020 06:08 PM Leszek Koltunski

Simplify drawing textures.

f18e8fae 09/29/2020 08:33 PM Leszek Koltunski

Simplify drawing textures.

ac940e24 09/28/2020 12:59 PM Leszek Koltunski

Add a CubitFactory and convert all objects to use it. Biggest change is thr Pyramiinx which now uses a lattice of Octahedrons and Tetrahedrons, just like the Diamond.

ee39837d 09/26/2020 11:30 PM Leszek Koltunski

Progress with the Diamond. Everything working except for the isSolved(): turns out the center cubits can end up rotated along the face by multitudes of 120 degrees.

cc99cf91 09/26/2020 08:44 PM Leszek Koltunski

Progress with the Diamond. Everything working, expect one thing: half of the faces are upside down, and computing offset doesn't work on those faces properly.

9c2f0c91 09/25/2020 08:35 AM Leszek Koltunski

Rename some classes.