Project

General

Profile

« Previous | Next » 

Revision 9b1fe915

Added by Leszek Koltunski over 2 years ago

Finally remove the 'getCubitFaceColor()' API

View differences:

src/main/java/org/distorted/objectlib/objects/TwistyMegaminx.java
450 450
    return getNumCubitVariants(numLayers)-1;
451 451
    }
452 452

  
453
///////////////////////////////////////////////////////////////////////////////////////////////////
454

  
455
  int getCornerColor(int cubit, int cubitface, int numLayers, int numCubitsPerCorner)
456
    {
457
    if( mCornerFaceMap==null ) initializeCornerFaceMap();
458
    if( cubitface<0 || cubitface>2 ) return -1;
459

  
460
    int part  = cubit % numCubitsPerCorner;
461
    int corner= cubit / numCubitsPerCorner;
462

  
463
    if( part==0 )
464
      {
465
      return mCornerFaceMap[corner][cubitface];
466
      }
467
    else
468
      {
469
      int N = (numCubitsPerCorner-1)/3;
470
      int block = (part-1) % N;
471
      int index = (part-1) / N;
472

  
473
      if( block< (numLayers-3)/2 )
474
        {
475
        switch(index)
476
          {
477
          case 0: return cubitface==1 ? -1 : mCornerFaceMap[corner][cubitface];
478
          case 1: return cubitface==0 ? -1 : mCornerFaceMap[corner][cubitface];
479
          case 2: return cubitface==2 ? -1 : mCornerFaceMap[corner][cubitface];
480
          }
481
        }
482
      else
483
        {
484
        switch(index)
485
          {
486
          case 0: return cubitface==0 ? mCornerFaceMap[corner][cubitface] : -1;
487
          case 1: return cubitface==2 ? mCornerFaceMap[corner][cubitface] : -1;
488
          case 2: return cubitface==1 ? mCornerFaceMap[corner][cubitface] : -1;
489
          }
490
        }
491
      }
492

  
493
    return NUM_TEXTURES;
494
    }
495

  
496
///////////////////////////////////////////////////////////////////////////////////////////////////
497

  
498
  int getEdgeColor(int edge, int cubitface, int numCubitsPerEdge)
499
    {
500
    if( cubitface<0 || cubitface>1 ) return -1;
501

  
502
    int part    = edge % numCubitsPerEdge;
503
    int variant = edge / numCubitsPerEdge;
504
    if( mEdgeMap==null ) initializeEdgeMap();
505

  
506
    return (part==0 || cubitface==((part+1)%2)) ? mEdgeMap[variant][cubitface+2] : -1;
507
    }
508

  
509
///////////////////////////////////////////////////////////////////////////////////////////////////
510

  
511
  int getCenterColor(int center, int cubitface)
512
    {
513
    return cubitface>0 ? -1 : center;
514
    }
515

  
516
///////////////////////////////////////////////////////////////////////////////////////////////////
517

  
518
  public int getCubitFaceColor(int cubit, int face, int[] numLayers)
519
    {
520
    int numL = numLayers[0];
521
    int numCubitsPerCorner = numCubitsPerCorner(numL);
522
    int numCubitsPerEdge   = numCubitsPerEdge(numL);
523

  
524
    if( cubit < NUM_CORNERS*numCubitsPerCorner )
525
      {
526
      return getCornerColor(cubit,face,numL,numCubitsPerCorner);
527
      }
528
    else if( cubit<NUM_CORNERS*numCubitsPerCorner + NUM_EDGES*numCubitsPerEdge )
529
      {
530
      int edge = cubit - NUM_CORNERS*numCubitsPerCorner;
531
      return getEdgeColor(edge,face,numCubitsPerEdge);
532
      }
533
    else
534
      {
535
      int center = cubit-NUM_CORNERS*numCubitsPerCorner-NUM_EDGES*numCubitsPerEdge;
536
      return getCenterColor( center, face );
537
      }
538
    }
539

  
540 453
///////////////////////////////////////////////////////////////////////////////////////////////////
541 454

  
542 455
  public float getStickerRadius()

Also available in: Unified diff