Simplify.
New Cubit Engine: add adjustable centers.
Convert the first object, the Cube, to the new Cubit-creating engine.
Move Factories to the 'helpers' package.
Progress making the Diamond class support any size.
Refactor the automatic scrambling. From now on, it is not needed to care about single and double turns when randomizing a new turn.
Change the automatic scramble API in the TwistyObject - in preparation for automatic scrambles in the Bandaged Objects.
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.
Change Cubit.mRotationRow[] from an index pointing at a single rotating layer to a bitmap potentially pointing at several layers.(in preparation for bandaged objects)
Simplifications.
Simplification with objects.
Add Gigaminx dmesh.
Beginnings of Megaminx & Gigaminx
Make the color scheme more standard.
Fix a long standing bug in the way we detect if a Cube or Pyraminx is solved. The reason for all those 'impossible' records being submitted.
Preparation for the Object Info popup: add the name, inventor, complexity info to each object.
Missing meshes; fix the Solver.
Make the texture multi-row: avoid the maximum texture size.
Progress with Skewb familty; separate StickerFactory class.
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)
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)
Move computation of the rotation rows to the Object from Cubits.
Beginnings of support for any-sized Skewb.
CubitFactory: unify creating MeshPolygon bands.
Minor.
Simplify drawing textures.
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.
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.
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.
Rename some classes.