Progress towards removing the 'getNumCubitFaces()' object API.
Simplify.
Split ObjectShape into ObjectShape and ObjectFaceShape
Finally move the 'getVariantFaceColor()' method to the base class.
Progress standarising stickering.Looks like all four object creation modes - J0M0, J0M1, J1M0 and J1M1 are supported now.
Progress standarising stickering.
Progress standarising stickering
Progress standarising stickering - adjust sticker radii based on cos of the angle at the sticker vertex.
Improve stickering - while drawing a sticker, set stencil to its area so the drawing does not encroach on the neighbouring stickers.
Progress
Initial commit
Correct the shape of Trajber's Octahedron.
Minor
Shorten Square-1 inventors
Trajber's Octahedron: correct the mesh.
Trajber's Octahedron: add object to the system.
Trajber's Octahedron: progress.
Trajber's Octahedron: first try.
Make the internal walls of Cuboids flat.
Bugfixes for the shape of Megaminxes (2)
Bugfixes for the shape of Megaminxes.
Fix a crasher.
Minor.
Fix setDefaultRotation() when changing an object; do it at exactly the right time when the 'old' object has already disappeared, but the new hasn't been attached to the Nodee yet.
Include the info about 'numFaces' of a puzzle in the jsons.Based on this, and the recently introduced 'DEFAULT_ROTs' to the basic Shape classes, rotate each object in the Config so it looks attractive.
Move info about the default rotation of the 4 basic shapes of puzzles form the 'Creator' app to the Shape classes.
'Simple' and 'Nice' meshes: fix Ivy.
'Simple' and 'Nice' meshes: fix Rex.
Introduce 'Simple' and 'Nice' meshes.
In the 'magic' app, ObjectType is now only used in RubikObject and RubikObjectList classes and nowhere else.This is a major step towards being able to download objects from an online repository.
Progress replacing the enum ObjetType with the class RubikObjectList.
Fix projection matrix with which the puzzles get rendered: make it independent of the aspect ratio of the underlying surface.
Progress with ConfigPane.
Progress with ConfigScreen.
Better error reporting.
FIx some issues with ShapeChanging; implement per-object TouchControlSquare and TouchControlMirror.
Implement example ShapreChanging object control and convert the Mirror Cube to use it.
Adjust ShapeChanging so that it can handle concave cubit faces.Now it is working also in case of the Ivy corner cubits.
Make the ShapeChanging the default TouchControl during MODE_REPLACE.
Fixes for the ShapeChanging touch control.
Bugfixes for the ShapeChanging touch control.Still doesn't work but doesn't crash anymore :)
Bugfix
Float vertices - scratchbook
Abstract out the TouchControl stuff in preparation for its new type - TouchControlShapeChanging.
Move the Movement to its own package; abstract out some stuff.
call the appropriate TwistyObject constructor by reflection.
Correct the edges of the cuboid mesh - part 2.
Correct the edges of the cuboid mesh - before we went too far and imperfections were visible.
Correct the next bug with settign the object size.Multiply the time limits in BlockController by 2 - this way we can see if the ratio of (UI+Touch)/Thread Firebase non-fatals will observably drop below the current value of 4.
Set the initial object size correctly.
Small things.
Make it possible to extract objects' sticker pngs.
Make the Master Kilominx' and Gigaminx' meshes much smaller.
Fix the solver (after rearranging the faces of the cuboids)
Fix problems with TwistyObjectNode 'object scale' property.Now this property is not part of the Node at all, but its initial value passed to the object in its constructor.
Bugfix & debugging for a crash from Firebase.
Bugfixes for crashes from Firebase.
Add 'shouldResetTextureMaps' to the JSON puzzle description.
Add the 7x7 cube.
Simplification.
Introduce the third type of a cuboid's cubit: the edge.Makes the meshes much smaller!
Correct the way ObejctScale works in the TwistyObjectNode.
Move the main app to the 'J1M1' object creation mode, i.e. create them from the Json files and using the Dmesh fiels as well.
Make it possible for any app descending from the 'objectlib' to use any of the J0M0, J0M1, J1M0, J1M1 modes.
Remove ObjectType and info it held (icons, mesh file, num of scrambles, shortname) from the JSON file.
Remove ObjectType from a few moree places.
Further simplify ObjectType
Make the meshAssociation of the Rotate effect independent of the global MAX_SIZE of any implemented object.Now only the NUM_OF_AXIS*MAX_NUM_OF_LAYERS of any individual object needs to be <=32 - before the second factor was global, which - because of the recent introduction of the Cube6 - screwed the Gigaminx (!) where NUM_OF_AXIS=6 and GLOBAL_MAX_NUM_LAYERS = 6 now, so 6*6>32 !
Add info about Cube6.
Rearrange object so that they look better in tthe popup.
Add Cube6.
Add testing of MeshPolygon to the MeshFile app.
Remove dependancies on Firebase from objectlib.Report such errors to the application via the Interface.
Bugfix.
Progress with PuzzleTester app.
Correect JSON reading and writing: shape corners and centers are optional!
JsonReader (?) finished: the creator app can now read objects from JSON files.
Do not pull the inventors and the names of objects from Resources.
new API to make is possible to adjust default scale factor in each TwistyObjectNode.(and use it in Tutorials, where the object needs to be smaller)
Major change: separate the notion of a TwistyObject and its Node. Now,
1) the Node stays when we change objects (this makes transitions faster)2) it's possible to just create an Object without adding it to the Screen (now app needs to explicitly create the Node and add it to its Screen itself)
Standarize icon naming scheme.
Systematic names for the meshes.
Separate the notions of a sticker shape and a sticker color.