Revision cc448c54
Added by Leszek Koltunski over 2 years ago
src/main/java/org/distorted/objectlib/objects/TwistyMirror.java | ||
---|---|---|
59 | 59 |
private static final float DY = 0.25f; |
60 | 60 |
private static final float DZ = 0.40f; |
61 | 61 |
|
62 |
private static final float[][] SEQ2 = new float[][] |
|
63 |
{ |
|
64 |
{1-DX,1-DY},{1+DX,1-DY},{1-DX,1+DY},{1+DX,1+DY}, |
|
65 |
{1-DX,1-DZ},{1+DX,1-DZ},{1-DX,1+DZ},{1+DX,1+DZ}, |
|
66 |
{1-DZ,1-DY},{1+DZ,1-DY},{1-DZ,1+DY},{1+DZ,1+DY}, |
|
67 |
}; |
|
68 |
|
|
69 |
private static final float[][] SEQ3 = new float[][] |
|
70 |
{ |
|
71 |
{1 ,1 },{1-DX,1-DY},{1 ,1-DY},{1+DX,1-DY},{1-DX,1 }, |
|
72 |
{1+DX,1 },{1-DX,1+DY},{1 ,1+DY},{1+DX,1+DY},{1-DX,1-DZ}, |
|
73 |
{1 ,1-DZ},{1+DX,1-DZ},{1-DX,1 },{1+DX,1 },{1-DX,1+DZ}, |
|
74 |
{1 ,1+DZ},{1+DX,1+DZ},{1-DZ,1-DY},{1 ,1-DY},{1+DZ,1-DY}, |
|
75 |
{1-DZ,1 },{1+DZ,1 },{1-DZ,1+DY},{1 ,1+DY},{1+DZ,1+DY}, |
|
76 |
}; |
|
77 |
|
|
62 | 78 |
private ScrambleState[] mStates; |
63 | 79 |
private Static4D[] mQuats; |
64 | 80 |
private float[][] mCuts; |
... | ... | |
311 | 327 |
private float[] generateStrokes() |
312 | 328 |
{ |
313 | 329 |
int num = getNumLayers(); |
314 |
final float A = 0.08f; |
|
315 | 330 |
|
316 | 331 |
if( num==2 ) |
317 | 332 |
{ |
318 |
return new float[] { |
|
319 |
returnStroke(1-DX,1-DY), |
|
320 |
returnStroke(1+DX,1-DY), |
|
321 |
returnStroke(1-DX,1+DY), |
|
322 |
returnStroke(1+DX,1+DY), |
|
323 |
returnStroke(1-DX,1-DZ), |
|
324 |
returnStroke(1+DX,1-DZ), |
|
325 |
returnStroke(1-DX,1+DZ), |
|
326 |
returnStroke(1+DX,1+DZ), |
|
327 |
returnStroke(1-DZ,1-DY), |
|
328 |
returnStroke(1+DZ,1-DY), |
|
329 |
returnStroke(1-DZ,1+DY), |
|
330 |
returnStroke(1+DZ,1+DY), |
|
331 |
|
|
332 |
A/(1-DX), A/(1+DX), A/(1+DY), A/(1+DY), |
|
333 |
A/(1-DX), A/(1+DX), A/(1+DZ), A/(1+DZ), |
|
334 |
A/(1-DY), A/(1+DY), A/(1+DZ), A/(1+DZ), |
|
335 |
}; |
|
333 |
int LEN = SEQ2.length; |
|
334 |
float[] tmp = new float[LEN]; |
|
335 |
for(int i=0; i<LEN; i++) tmp[i] = returnStroke(SEQ2[i][0],SEQ2[i][1]); |
|
336 |
return tmp; |
|
336 | 337 |
} |
337 | 338 |
else |
338 | 339 |
{ |
339 |
return new float[] { |
|
340 |
returnStroke(1 ,1 ), |
|
341 |
|
|
342 |
returnStroke(1-DX,1-DY), |
|
343 |
returnStroke(1 ,1-DY), |
|
344 |
returnStroke(1+DX,1-DY), |
|
345 |
returnStroke(1-DX,1 ), |
|
346 |
returnStroke(1+DX,1 ), |
|
347 |
returnStroke(1-DX,1+DY), |
|
348 |
returnStroke(1 ,1+DY), |
|
349 |
returnStroke(1+DX,1+DY), |
|
350 |
|
|
351 |
returnStroke(1-DX,1-DZ), |
|
352 |
returnStroke(1 ,1-DZ), |
|
353 |
returnStroke(1+DX,1-DZ), |
|
354 |
returnStroke(1-DX,1 ), |
|
355 |
returnStroke(1+DX,1 ), |
|
356 |
returnStroke(1-DX,1+DZ), |
|
357 |
returnStroke(1 ,1+DZ), |
|
358 |
returnStroke(1+DX,1+DZ), |
|
359 |
|
|
360 |
returnStroke(1-DZ,1-DY), |
|
361 |
returnStroke(1 ,1-DY), |
|
362 |
returnStroke(1+DZ,1-DY), |
|
363 |
returnStroke(1-DZ,1 ), |
|
364 |
returnStroke(1+DZ,1 ), |
|
365 |
returnStroke(1-DZ,1+DY), |
|
366 |
returnStroke(1 ,1+DY), |
|
367 |
returnStroke(1+DZ,1+DY), |
|
368 |
}; |
|
340 |
int LEN = SEQ3.length; |
|
341 |
float[] tmp = new float[LEN]; |
|
342 |
for(int i=0; i<LEN; i++) tmp[i] = returnStroke(SEQ3[i][0],SEQ3[i][1]); |
|
343 |
return tmp; |
|
369 | 344 |
} |
370 | 345 |
} |
371 | 346 |
|
... | ... | |
387 | 362 |
|
388 | 363 |
if( num==2 ) |
389 | 364 |
{ |
390 |
return new float[][] |
|
391 |
{ |
|
392 |
returnSticker(1-DX,1-DY), |
|
393 |
returnSticker(1+DX,1-DY), |
|
394 |
returnSticker(1-DX,1+DY), |
|
395 |
returnSticker(1+DX,1+DY), |
|
396 |
returnSticker(1-DX,1-DZ), |
|
397 |
returnSticker(1+DX,1-DZ), |
|
398 |
returnSticker(1-DX,1+DZ), |
|
399 |
returnSticker(1+DX,1+DZ), |
|
400 |
returnSticker(1-DZ,1-DY), |
|
401 |
returnSticker(1+DZ,1-DY), |
|
402 |
returnSticker(1-DZ,1+DY), |
|
403 |
returnSticker(1+DZ,1+DY), |
|
404 |
}; |
|
365 |
int LEN = SEQ2.length; |
|
366 |
float[][] tmp = new float[LEN][]; |
|
367 |
for(int i=0; i<LEN; i++) tmp[i] = returnSticker(SEQ2[i][0],SEQ2[i][1]); |
|
368 |
return tmp; |
|
405 | 369 |
} |
406 | 370 |
else |
407 | 371 |
{ |
408 |
return new float[][] |
|
409 |
{ |
|
410 |
returnSticker(1 ,1 ), |
|
411 |
|
|
412 |
returnSticker(1-DX,1-DY), |
|
413 |
returnSticker(1 ,1-DY), |
|
414 |
returnSticker(1+DX,1-DY), |
|
415 |
returnSticker(1-DX,1 ), |
|
416 |
returnSticker(1+DX,1 ), |
|
417 |
returnSticker(1-DX,1+DY), |
|
418 |
returnSticker(1 ,1+DY), |
|
419 |
returnSticker(1+DX,1+DY), |
|
420 |
|
|
421 |
returnSticker(1-DX,1-DZ), |
|
422 |
returnSticker(1 ,1-DZ), |
|
423 |
returnSticker(1+DX,1-DZ), |
|
424 |
returnSticker(1-DX,1 ), |
|
425 |
returnSticker(1+DX,1 ), |
|
426 |
returnSticker(1-DX,1+DZ), |
|
427 |
returnSticker(1 ,1+DZ), |
|
428 |
returnSticker(1+DX,1+DZ), |
|
429 |
|
|
430 |
returnSticker(1-DZ,1-DY), |
|
431 |
returnSticker(1 ,1-DY), |
|
432 |
returnSticker(1+DZ,1-DY), |
|
433 |
returnSticker(1-DZ,1 ), |
|
434 |
returnSticker(1+DZ,1 ), |
|
435 |
returnSticker(1-DZ,1+DY), |
|
436 |
returnSticker(1 ,1+DY), |
|
437 |
returnSticker(1+DZ,1+DY), |
|
438 |
}; |
|
372 |
int LEN = SEQ3.length; |
|
373 |
float[][] tmp = new float[LEN][]; |
|
374 |
for(int i=0; i<LEN; i++) tmp[i] = returnSticker(SEQ3[i][0],SEQ3[i][1]); |
|
375 |
return tmp; |
|
439 | 376 |
} |
440 | 377 |
} |
441 | 378 |
|
... | ... | |
465 | 402 |
|
466 | 403 |
protected int getNumStickerTypes(int numLayers) |
467 | 404 |
{ |
468 |
return numLayers==2 ? 12 : 25;
|
|
405 |
return numLayers==2 ? SEQ2.length : SEQ3.length;
|
|
469 | 406 |
} |
470 | 407 |
|
471 | 408 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
Also available in: Unified diff
improvements to the Mirror Cube.