Project

General

Profile

« Previous | Next » 

Revision cc448c54

Added by Leszek Koltunski over 2 years ago

improvements to the Mirror Cube.

View differences:

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