Revision 668423be
Added by Leszek Koltunski about 4 years ago
| src/main/java/org/distorted/objects/TwistyDiamond.java | ||
|---|---|---|
| 544 | 544 | /////////////////////////////////////////////////////////////////////////////////////////////////// | 
| 545 | 545 | // The Diamond is solved if and only if: | 
| 546 | 546 | // | 
| 547 | // 1) all octahedrons are rotated with the same quat | |
| 548 | // 2) all tetrahedrons might be also optionally rotated by a 'face neutral' pair of quats | |
| 549 | // (indexes of those are kept in the 'mFaceNeutralQuattIndex' table) | |
| 550 | // | |
| 551 | // Note: this works for any size, because even if layers>3 - and then there are 'face-internal' | |
| 552 | // octahedrons which, it would seem, can be rotated by those 'face neutral' pairs of quats - but | |
| 553 | // in reality no, because if they were, the octahedrons would then not fit in the lattice... | |
| 547 | // - all cubits are rotated by the same quat | |
| 548 | // - those which are internal to the side, i.e. those which have only one 'non-black' face, might | |
| 549 | // also be optionally rotated by one of the two quats whose axis is perpendicular to the face. | |
| 550 | // (including some octahedrons if numLayers>=4) | |
| 554 | 551 |  | 
| 555 | 552 | public boolean isSolved() | 
| 556 | 553 |     {
 | 
| ... | ... | |
| 572 | 569 | q2Index = mFaceNeutralQuatIndex[face][1]; | 
| 573 | 570 | qI = CUBITS[i].mQuatIndex; | 
| 574 | 571 |  | 
| 575 |       if(  qI != q && qI != mulQuat(q,q1Index) && qI != mulQuat(q,q2Index) ) return false;
 | |
| 572 | if( qI != q && qI != mulQuat(q,q1Index) && qI != mulQuat(q,q2Index) ) return false; | |
| 576 | 573 | } | 
| 577 | 574 |  | 
| 578 | 575 | return true; | 
| src/main/java/org/distorted/objects/TwistyJing.java | ||
|---|---|---|
| 315 | 315 | } | 
| 316 | 316 | else | 
| 317 | 317 |       {
 | 
| 318 |       float[][] bands     = new float[][] { {0.020f,35,0.20f*(1-3*F),0.6f*(1-3*F),5,1,1},
 | |
| 319 |                                               {0.001f,35,0.05f*(1-3*F),0.1f*(1-3*F),5,1,1} };
 | |
| 318 |       float[][] bands     = new float[][] { {0.020f,35,0.20f*(1-3*F),0.6f*(1-3*F),5,1,1}, {0.001f,35,0.05f*(1-3*F),0.1f*(1-3*F),5,1,1} };
 | |
| 320 | 319 |       int[] bandIndices   = new int[] { 0,1,1,1,1,1 };
 | 
| 321 | 320 |       float[][] corners   = new float[][] { {0.04f,0.15f} };
 | 
| 322 | 321 |       int[] cornerIndices = new int[] { 0,0,0,-1,-1,-1 };
 | 
| src/main/java/org/distorted/objects/TwistyRedi.java | ||
|---|---|---|
| 252 | 252 |  | 
| 253 | 253 | float[][] getCuts(int size) | 
| 254 | 254 |     {
 | 
| 255 |     float[] cut = new float[] { -SQ3/3 -0.05f, +SQ3/3 +0.05f };
 | |
| 255 | float C = +SQ3/3 +0.05f; | |
| 256 |     float[] cut = new float[] {-C,+C};
 | |
| 256 | 257 |     return new float[][] { cut,cut,cut,cut };
 | 
| 257 | 258 | } | 
| 258 | 259 |  | 
| ... | ... | |
| 278 | 279 |  | 
| 279 | 280 | if( variant==0 ) | 
| 280 | 281 |       {
 | 
| 281 | float[][] bands= new float[][] | |
| 282 |           {
 | |
| 283 |             {0.06f,35,0.5f,0.7f,5,2,2},
 | |
| 284 |             {0.01f,35,0.2f,0.4f,5,2,2}
 | |
| 285 | }; | |
| 282 |       float[][] bands     = new float[][] { {0.06f,35,0.5f,0.7f,5,2,2}, {0.01f,35,0.2f,0.4f,5,2,2} };
 | |
| 286 | 283 |       int[] bandIndices   = new int[] { 0,0,0,1,1,1,1,1,1 };
 | 
| 287 | 284 |       float[][] corners   = new float[][] { {0.06f,0.12f} };
 | 
| 288 | 285 |       int[] cornerIndices = new int[]  { -1,0,-1,0,0,0,-1,-1 };
 | 
| 289 | 286 |       float[][] centers   = new float[][] { { 0.0f, 0.0f, 0.0f} };
 | 
| 290 | 287 |       int[] centerIndices = new int[] { -1,0,-1,0,0,0,-1,-1 };
 | 
| 291 |  | |
| 292 | 288 | return new ObjectShape(VERTICES_CORNER,VERT_INDEXES_CORNER,bands,bandIndices,corners,cornerIndices,centers,centerIndices,getNumCubitFaces(), null); | 
| 293 | 289 | } | 
| 294 | 290 | else | 
| 295 | 291 |       {
 | 
| 296 | float[][] bands= new float[][] | |
| 297 |           {
 | |
| 298 |             {0.038f,35,0.250f,0.7f, 7,2,2},
 | |
| 299 |             {0.020f,35,0.125f,0.2f, 3,1,2},
 | |
| 300 |             {0.020f,35,0.125f,0.2f, 3,1,1}
 | |
| 301 | }; | |
| 292 |       float[][] bands     = new float[][] { {0.038f,35,0.250f,0.7f,7,2,2}, {0.020f,35,0.125f,0.2f,3,1,2}, {0.020f,35,0.125f,0.2f,3,1,1} };
 | |
| 302 | 293 |       int[] bandIndices   = new int[] { 0,0,1,1,2,2 };
 | 
| 303 | 294 |       float[][] corners   = new float[][] { {0.06f,0.20f} };
 | 
| 304 | 295 |       int[] cornerIndices = new int[] { 0,0,-1,-1,-1,-1,-1,-1 };
 | 
| 305 | 296 |       float[][] centers   = new float[][] { { 0.0f,-0.75f,-0.75f} };
 | 
| 306 | 297 |       int[] centerIndices = new int[] { 0,0,-1,-1,-1,-1,-1,-1 };
 | 
| 307 |  | |
| 308 | 298 | return new ObjectShape(VERTICES_EDGE,VERT_INDEXES_EDGE,bands,bandIndices,corners,cornerIndices,centers,centerIndices,getNumCubitFaces(), null); | 
| 309 | 299 | } | 
| 310 | 300 | } | 
| src/main/java/org/distorted/objects/TwistySkewb.java | ||
|---|---|---|
| 21 | 21 |  | 
| 22 | 22 | import android.content.res.Resources; | 
| 23 | 23 |  | 
| 24 | import org.distorted.helpers.FactoryCubit; | |
| 25 | 24 | import org.distorted.helpers.ObjectShape; | 
| 26 | 25 | import org.distorted.helpers.ObjectSticker; | 
| 27 | import org.distorted.library.effect.MatrixEffectQuaternion; | |
| 28 | 26 | import org.distorted.library.main.DistortedEffects; | 
| 29 | 27 | import org.distorted.library.main.DistortedTexture; | 
| 30 | import org.distorted.library.mesh.MeshBase; | |
| 31 | 28 | import org.distorted.library.mesh.MeshSquare; | 
| 32 | 29 | import org.distorted.library.type.Static3D; | 
| 33 | 30 | import org.distorted.library.type.Static4D; | 
Also available in: Unified diff
Add flag of Madagascar.