Support for the new default detection of solved state done. Something seems to be working.
Move signatures and ObjectConstants to Metadata.
Next step toward separating TwistyObject metadata.
Big step toward separating TwistyObject metadata.
change complexity from int to float.
remove 'MESH_NICE'
separate ObjectSiguature into its own package and separate the BandagedSignatures out of it.
Lots of new tutorials; change the order of the objects.
Support drawing stickers with multiple holes in them.
correct face shapes (post-new MeshPolygon normal computation)
Actually use the 'overridable rotation factors' feature and tweat the factors of many objects.
Introduce InitAssets. We'll use this later to pass on references to the tablebase file to the TwistyObject (so that it can use this for perfect scrambling)
- add the Pyraminx Duo solver to the list- make the signature of an object independent of its location in the ObjectType enum
Move scrambling to a new model where there are spearete scrambling 'algorithms' and 'edges' of the scrambling graph.Now each edge can contain a whole algorithm, i.e. a sequence of moves leading from state to state, which permits construction of scrambling for more complicated bandaged objects such as the AI cube....
Major change in JSOn file format:
replace the old (corners,centers) system with a list of VertexEffects which are applied to each cubit variant.
objects: license.
Introduce InitData, a data structure used to initialize a TwistyObject.Current (optional) members: int[] numLayers, int param [intended: type of the Crazy 3x3 planet], float[][] pos [position of a bandaged cube] )
Introduce ObjectSignature that can incorporate 192-bit signatures (for 5x5x5 bandaged cubes).ObjectScrambler does not fully work yet.
Progress with cubit quaternions.
Mode the 'iconMode' from static variable in ObjectControl to member varaible in TwistyObject (safer)
Add Vietnamese Tutorials.
Preparation for local creation of puzzles: remove the 'ObjectType' enum from TwistyObject class.
New, generalized ScrambleState generator that should work for any bandaged 3x3.
Preparation for drawing only the FRONT side of the cubit walls.
Step towards tutorial JSON files.
unify every isSolved() routine except one - the Dino4 is still special.
Preparation for further unification of the isSolved() routine.
Standarize two next functions - getSolvedQuats and getSolvedFunctionIndex.Now all objects except Dino6, Dino4 and Square-2 have them the same.
Convert Squares.
Simplification.
Remove the need to provide the number of outer faces of a ObjectShape.
Finally remove the 'getCubitFaceColor()' API
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.
Progress standarising stickering
Progress
Initial commit
Introduce 'Simple' and 'Nice' meshes.
Progress with ConfigPane.
Float vertices - scratchbook
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.
JsonReader (?) finished: the creator app can now read objects from JSON files.
Do not pull the inventors and the names of objects from Resources.
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)
Systematic names for the meshes.
Separate the notions of a sticker shape and a sticker color.
simplify sticker/color map.
Progress with serializing object to JSON: cubits.Only faceColorMap remains now.
Progress with serializing object to JSON: shapes.
Progress with serializing object to JSON: stickers, quats.
Progress with serializing object to JSON: scrambling.
Reorg for writing the JSON
- remove the retarded NODE_RATIO from TwistyObject- more correctly estimate Cuboid's 'realSize' as an average of their 3 sizes.
make numLayers into an int[] (preparation for Cuboids)Caution: because of previous changes to cubit order in cube, the Solver is broken!
'IconMode' finished.
1) introduce possibility to move objects, i.e. display them not in the middle of the screen (not fully functional yet)2) do away with unneeded any more interface 'EffectController' - since ObjectPreRender is the only implementation now.
Remove the 'setupObject()' redundant API.
Move more code to objectlib.
Simplify TwistyObject's API.
Reename ObjectList to a more logical ObjectType.
Simplify ObjectList: now there's just one object per size.
move the resourceIDs from ObjectList to individual object classes.