Revision da69c279
Added by Leszek Koltunski over 4 years ago
| src/main/java/org/distorted/objects/ObjectList.java | ||
|---|---|---|
| 215 | 215 |
|
| 216 | 216 |
SQU1 ( |
| 217 | 217 |
new int[][] {
|
| 218 |
{3 , 18, 0, R.drawable.ui_small_diam2, R.drawable.ui_medium_diam2, R.drawable.ui_big_diam2, R.drawable.ui_huge_diam2} ,
|
|
| 218 |
{3 , 24, 0, R.drawable.ui_small_diam2, R.drawable.ui_medium_diam2, R.drawable.ui_big_diam2, R.drawable.ui_huge_diam2} ,
|
|
| 219 | 219 |
}, |
| 220 | 220 |
TwistySquare1.class, |
| 221 | 221 |
new MovementSquare(), |
| ... | ... | |
| 225 | 225 |
|
| 226 | 226 |
SQU2 ( |
| 227 | 227 |
new int[][] {
|
| 228 |
{3 , 18, 0, R.drawable.ui_small_diam2, R.drawable.ui_medium_diam2, R.drawable.ui_big_diam2, R.drawable.ui_huge_diam2} ,
|
|
| 228 |
{3 , 24, 0, R.drawable.ui_small_diam2, R.drawable.ui_medium_diam2, R.drawable.ui_big_diam2, R.drawable.ui_huge_diam2} ,
|
|
| 229 | 229 |
}, |
| 230 | 230 |
TwistySquare2.class, |
| 231 | 231 |
new MovementSquare(), |
| src/main/java/org/distorted/objects/TwistyObject.java | ||
|---|---|---|
| 888 | 888 |
int index = CUBITS[i].removeRotationNow(quat); |
| 889 | 889 |
mMesh.setEffectAssociation(i, CUBITS[i].computeAssociation(),index); |
| 890 | 890 |
} |
| 891 |
/* |
|
| 892 |
if( NUM_CUBITS==18 ) |
|
| 893 |
{
|
|
| 894 |
boolean error=false; |
|
| 895 |
String str=""; |
|
| 896 |
|
|
| 897 |
for(int i=10; i<18; i++) |
|
| 898 |
{
|
|
| 899 |
int q = CUBITS[i].mQuatIndex; |
|
| 900 |
|
|
| 901 |
str += (" "+q);
|
|
| 902 |
|
|
| 903 |
if( (((i%2)==0) && (q==2 || q== 8 || q==17 || q==23)) || |
|
| 904 |
(((i%2)==1) && (q==5 || q==11 || q==14 || q==20)) ) |
|
| 905 |
error=true; |
|
| 906 |
} |
|
| 907 |
|
|
| 908 |
if( error ) str+= " ERROR"; |
|
| 909 |
android.util.Log.e("D", "cubit: "+str);
|
|
| 910 |
} |
|
| 911 |
|
|
| 912 |
*/ |
|
| 913 | 891 |
} |
| 914 | 892 |
|
| 915 | 893 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| src/main/java/org/distorted/objects/TwistySquare1.java | ||
|---|---|---|
| 354 | 354 |
{
|
| 355 | 355 |
for(int corner=0; corner<8; corner++) |
| 356 | 356 |
{
|
| 357 |
//android.util.Log.e("D", "isPermittedUp: up corner: "+corner+" angle: "+angle);
|
|
| 358 |
|
|
| 359 |
|
|
| 360 | 357 |
if( cornerIsUp(corner) ) |
| 361 | 358 |
{
|
| 362 | 359 |
int currQuat = mCornerQuat[corner]; |
| 363 | 360 |
int finalQuat= QUAT_MULT[angle][currQuat]; |
| 364 |
|
|
| 365 |
//boolean bad = quatIsBad(finalQuat,corner); |
|
| 366 |
//android.util.Log.e("D", "isPermittedUp: up corner: "+corner+" angle: "+angle+" is bad: "+bad);
|
|
| 367 |
|
|
| 368 | 361 |
if( quatIsBad(finalQuat,corner) ) return false; |
| 369 | 362 |
} |
| 370 | 363 |
} |
| ... | ... | |
| 389 | 382 |
{
|
| 390 | 383 |
if( isPermittedUp(angle ) ) mPermittedAngles[1][mPermittedUp++] = angle; |
| 391 | 384 |
} |
| 392 |
/* |
|
| 393 |
String strDo=""; |
|
| 394 |
|
|
| 395 |
for(int i=0; i<mPermittedDo; i++) |
|
| 396 |
{
|
|
| 397 |
strDo += (" "+mPermittedAngles[0][i]);
|
|
| 398 |
} |
|
| 399 |
|
|
| 400 |
String strUp=""; |
|
| 401 |
|
|
| 402 |
for(int i=0; i<mPermittedUp; i++) |
|
| 403 |
{
|
|
| 404 |
strUp += (" "+mPermittedAngles[1][i]);
|
|
| 405 |
} |
|
| 406 |
|
|
| 407 |
android.util.Log.e("D", "up : "+strUp);
|
|
| 408 |
android.util.Log.e("D", "down: "+strDo);
|
|
| 409 |
|
|
| 410 |
*/ |
|
| 411 | 385 |
} |
| 412 | 386 |
|
| 413 | 387 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| ... | ... | |
| 475 | 449 |
mCornerQuat[corner] = QUAT_MULT[quat][curr]; |
| 476 | 450 |
} |
| 477 | 451 |
} |
| 478 |
/* |
|
| 479 |
String q=""; |
|
| 480 |
|
|
| 481 |
for(int c=0; c<8; c++) |
|
| 482 |
{
|
|
| 483 |
q += (" "+mCornerQuat[c]);
|
|
| 484 |
} |
|
| 485 |
|
|
| 486 |
android.util.Log.d("D", "quat="+quat+" corner quats now= "+q);
|
|
| 487 |
*/ |
|
| 488 | 452 |
} |
| 489 | 453 |
|
| 490 | 454 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| ... | ... | |
| 517 | 481 |
scramble[num][2] = nextAngle; |
| 518 | 482 |
mLastRot = layer==0 ? LAST_LO : LAST_UP; |
| 519 | 483 |
updateCornerQuats(scramble[num]); |
| 520 |
|
|
| 521 |
//android.util.Log.e("D", "SL axis="+scramble[num][0]+" layer="+scramble[num][1]+" angle="+scramble[num][2]);
|
|
| 522 |
|
|
| 523 | 484 |
break; |
| 524 | 485 |
case LAST_LO: |
| 525 | 486 |
case LAST_UP: layer = mLastRot==LAST_LO ? 1:0; |
| ... | ... | |
| 532 | 493 |
scramble[num][2] = nextAngle; |
| 533 | 494 |
updateCornerQuats(scramble[num]); |
| 534 | 495 |
mLastRot = LAST_UL; |
| 535 |
//android.util.Log.e("D", "LO/UP 1 axis="+scramble[num][0]+" layer="+scramble[num][1]+" angle="+scramble[num][2]);
|
|
| 536 | 496 |
} |
| 537 | 497 |
else |
| 538 | 498 |
{
|
| ... | ... | |
| 542 | 502 |
mLastRot = LAST_SL; |
| 543 | 503 |
updateCornerQuats(scramble[num]); |
| 544 | 504 |
computePermittedAngles(); |
| 545 |
//android.util.Log.e("D", "LO/UP 2 axis="+scramble[num][0]+" layer="+scramble[num][1]+" angle="+scramble[num][2]);
|
|
| 546 | 505 |
} |
| 547 | 506 |
|
| 548 | 507 |
break; |
| ... | ... | |
| 552 | 511 |
mLastRot = LAST_SL; |
| 553 | 512 |
updateCornerQuats(scramble[num]); |
| 554 | 513 |
computePermittedAngles(); |
| 555 |
//android.util.Log.e("D", "UL axis="+scramble[num][0]+" layer="+scramble[num][1]+" angle="+scramble[num][2]);
|
|
| 556 |
|
|
| 557 | 514 |
break; |
| 558 | 515 |
} |
| 559 | 516 |
} |
| src/main/java/org/distorted/objects/TwistySquare2.java | ||
|---|---|---|
| 47 | 47 |
{
|
| 48 | 48 |
0, 6, |
| 49 | 49 |
0, 9, 6, 3, 18, 15, 12, 21, |
| 50 |
0, 9, 6, 3, 15, 12, 21, 18,
|
|
| 51 |
0, 9, 6, 3, 15, 12, 21, 18
|
|
| 50 |
0, 9, 6, 3, 0, 9, 6, 3,
|
|
| 51 |
15, 12, 21, 18, 15, 12, 21, 18
|
|
| 52 | 52 |
}; |
| 53 | 53 |
|
| 54 | 54 |
// centers of the 2 middles + 8 edges + 8 left corners + 8 right corners |
| ... | ... | |
| 143 | 143 |
{ 2, 0, 0, 0, 0, 0 },
|
| 144 | 144 |
{ 2, 0, 5, 0, 0, 0 },
|
| 145 | 145 |
{ 2, 0, 1, 0, 0, 0 },
|
| 146 |
|
|
| 146 | 147 |
{ 0, 3, 4, 0, 0, 0 },
|
| 147 | 148 |
{ 0, 3, 0, 0, 0, 0 },
|
| 148 | 149 |
{ 0, 3, 5, 0, 0, 0 },
|
| 149 | 150 |
{ 0, 3, 1, 0, 0, 0 },
|
| 150 | 151 |
|
| 151 |
{ 0, 2, 4, 0, 0, 0 }, // 18
|
|
| 152 |
{ 0, 2, 0, 0, 0, 0 },
|
|
| 152 |
{ 0, 2, 0, 0, 0, 0 }, // 18
|
|
| 153 | 153 |
{ 0, 2, 5, 0, 0, 0 },
|
| 154 | 154 |
{ 0, 2, 1, 0, 0, 0 },
|
| 155 |
{ 0, 2, 4, 0, 0, 0 },
|
|
| 155 | 156 |
{ 3, 0, 0, 0, 0, 0 },
|
| 156 | 157 |
{ 3, 0, 5, 0, 0, 0 },
|
| 157 | 158 |
{ 3, 0, 1, 0, 0, 0 },
|
| ... | ... | |
| 173 | 174 |
|
| 174 | 175 |
private Static4D getQuat(int cubit) |
| 175 | 176 |
{
|
| 176 |
if( (cubit>=0 && cubit<=13) || (cubit>=22)) |
|
| 177 |
{
|
|
| 178 |
return QUATS[QUAT_NUMBER[cubit]]; |
|
| 179 |
} |
|
| 180 |
else |
|
| 181 |
{
|
|
| 182 |
return QUATS[0]; |
|
| 183 |
} |
|
| 177 |
return QUATS[QUAT_NUMBER[cubit]]; |
|
| 184 | 178 |
} |
| 185 | 179 |
|
| 186 | 180 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| ... | ... | |
| 191 | 185 |
{
|
| 192 | 186 |
float[][] bands= new float[][] |
| 193 | 187 |
{
|
| 194 |
{0.038f,35,0.9f,1.0f, 5,2,1},
|
|
| 188 |
{0.030f,35,0.9f,1.0f, 5,2,1},
|
|
| 195 | 189 |
{0.001f,35,0.9f,1.0f, 5,2,1}
|
| 196 | 190 |
}; |
| 197 |
int[] bandIndexes = new int[] { 0,1,0,1,1 };
|
|
| 191 |
int[] bandIndexes = new int[] { 0,0,0,1,1 };
|
|
| 198 | 192 |
float[][] corners = new float[][] { {0.05f,0.13f} };
|
| 199 | 193 |
int[] cornerIndexes = new int[] { 0,0,-1,0,0,-1 };
|
| 200 | 194 |
float[][] centers = new float[][] { { 0.0f, 0.0f,-0.5f} };
|
Also available in: Unified diff
Square-2: progress.