Project

General

Profile

« Previous | Next » 

Revision acf2a9e1

Added by Leszek Koltunski 12 months ago

Support for automatic creation of Scramble Algorithms and Edges which ignore the 'non-rotatable' layers.
Implement this to the Coin Tetrahedron, Ancient Coin Cube & Tins Cube.

View differences:

src/main/java/org/distorted/objectlib/objects/TwistyCoinTetrahedron.java
48 48
  private float[][] mCuts;
49 49
  private float[][] mPosition;
50 50
  private int[] mQuatIndex;
51
  private boolean[][] mRotatable;
51 52

  
52 53
  private float[][] V,M,L;
53 54

  
......
62 63

  
63 64
  public int[][] getScrambleEdges()
64 65
    {
65
    if( mEdges==null ) mEdges = ScrambleEdgeGenerator.getScrambleEdgesSingle(mBasicAngle);
66
    if( mEdges==null )
67
      {
68
      setUpRotatable();
69
      mEdges = ScrambleEdgeGenerator.getScrambleEdgesSingle(mBasicAngle, mRotatable);
70
      }
71

  
66 72
    return mEdges;
67 73
    }
68 74

  
75
///////////////////////////////////////////////////////////////////////////////////////////////////
76

  
77
  @Override
78
  public int[][] getScrambleAlgorithms()
79
    {
80
    setUpRotatable();
81
    return ScrambleEdgeGenerator.getScramblingAlgorithms(mBasicAngle, mRotatable);
82
    }
83

  
69 84
///////////////////////////////////////////////////////////////////////////////////////////////////
70 85

  
71 86
  public float[][] getCuts(int[] numLayers)
......
79 94
    return mCuts;
80 95
    }
81 96

  
97
///////////////////////////////////////////////////////////////////////////////////////////////////
98

  
99
  private void setUpRotatable()
100
    {
101
    if( mRotatable==null )
102
      {
103
      boolean[] tmp = new boolean[] {true,false,true};
104
      mRotatable = new boolean[][] { tmp,tmp,tmp,tmp };
105
      }
106
    }
107

  
82 108
///////////////////////////////////////////////////////////////////////////////////////////////////
83 109

  
84 110
  public boolean[][] getLayerRotatable(int[] numLayers)
85 111
    {
86
    boolean[] tmp = new boolean[] {true,false,true};
87
    return new boolean[][] { tmp,tmp,tmp,tmp };
112
    setUpRotatable();
113
    return mRotatable;
88 114
    }
89 115

  
90 116
///////////////////////////////////////////////////////////////////////////////////////////////////

Also available in: Unified diff