Project

General

Profile

« Previous | Next » 

Revision a2122d42

Added by Leszek Koltunski 4 months ago

Penrose Cube: jsons, mesh, icon, finishing touches.

View differences:

src/main/java/org/distorted/objectlib/main/TwistyObject.java
1340 1340
    boolean error = false;
1341 1341
    String key = getShortName();
1342 1342

  
1343
    int[] qu =
1344
      {
1345
      0,0,
1346
      0,0,0,0,0,0,
1347
      0,0,0,
1348
      0,0,0,0,0,0,0,0,0,
1349
      0,0,0,0,0,0
1350
      };
1351

  
1352
    android.util.Log.e("D", "RESTORING PREFERENCES");
1353

  
1354 1343
    for(int i=0; i<mNumCubits; i++)
1355 1344
      {
1356
      mQuatDebug[i] = i<qu.length ? qu[i] : mCubits[i].restorePreferences(key,os);
1345
      mQuatDebug[i] = mCubits[i].restorePreferences(key,os);
1357 1346

  
1358 1347
      if( mQuatDebug[i]>=0 && mQuatDebug[i]<mNumQuats )
1359 1348
        {
src/main/java/org/distorted/objectlib/metadata/MetadataPENR_3.java
19 19
  public static int INDEX = 89;
20 20
  public MetadataPENR_3()         { super( TwistyPenrose.class, new int[] {3,3,3}, 0, null, INDEX ); }
21 21
  public int numScrambles()       { return 24; }
22
  public int icon()               { return R.drawable.axis_3; }
22
  public int icon()               { return R.drawable.penr_3; }
23 23
  public int price()              { return 60; }
24
  public int extrasJson()         { return 0; }
25
  public int objectJson()         { return 0; }
26
  public int mesh()               { return 0; }
24
  public int extrasJson()         { return R.raw.penr_3_extras; }
25
  public int objectJson()         { return R.raw.penr_3_object; }
26
  public int mesh()               { return R.raw.penr_3; }
27 27
  public String getAuthor()       { return "Antonio Rubio"; }
28 28
  public int getYearOfInvention() { return 2017; }
29 29
  public float getDifficulty()    { return 2.59f; }
src/main/java/org/distorted/objectlib/objects/TwistyPenrose.java
9 9

  
10 10
package org.distorted.objectlib.objects;
11 11

  
12
import static org.distorted.objectlib.touchcontrol.TouchControl.TC_CHANGING_MIRROR;
12
import static org.distorted.objectlib.touchcontrol.TouchControl.TC_CUBOID;
13 13
import static org.distorted.objectlib.touchcontrol.TouchControl.TYPE_NOT_SPLIT;
14 14

  
15 15
import org.distorted.library.effect.EffectName;
16
import org.distorted.library.helpers.QuatHelper;
17 16
import org.distorted.library.type.Static3D;
18 17
import org.distorted.library.type.Static4D;
19 18
import org.distorted.objectlib.helpers.FactoryCubit;
......
43 42
  private float[][] mCuts;
44 43
  private int[] mQuatIndex;
45 44
  private int[][] mFaceMap;
46
  private int[][] mQuatDivided;
47 45

  
48 46
///////////////////////////////////////////////////////////////////////////////////////////////////
49 47

  
......
94 92
      };
95 93
    }
96 94

  
97
///////////////////////////////////////////////////////////////////////////////////////////////////
98
// remember about the double cover or unit quaternions!
99

  
100
  private int mulQuat(int q1, int q2)
101
    {
102
    Static4D result = QuatHelper.quatMultiply(mObjectQuats[q1],mObjectQuats[q2]);
103
    return findQuatIndex(result);
104
    }
105

  
106
///////////////////////////////////////////////////////////////////////////////////////////////////
107
// remember about the double cover or unit quaternions!
108

  
109
  private int findQuatIndex(Static4D quat)
110
    {
111
    int numQ = mObjectQuats.length;
112

  
113
    float rX = quat.get0();
114
    float rY = quat.get1();
115
    float rZ = quat.get2();
116
    float rW = quat.get3();
117

  
118
    final float MAX_ERROR = 0.1f;
119
    float dX,dY,dZ,dW;
120

  
121
    for(int i=0; i<numQ; i++)
122
      {
123
      dX = mObjectQuats[i].get0() - rX;
124
      dY = mObjectQuats[i].get1() - rY;
125
      dZ = mObjectQuats[i].get2() - rZ;
126
      dW = mObjectQuats[i].get3() - rW;
127

  
128
      if( dX<MAX_ERROR && dX>-MAX_ERROR &&
129
          dY<MAX_ERROR && dY>-MAX_ERROR &&
130
          dZ<MAX_ERROR && dZ>-MAX_ERROR &&
131
          dW<MAX_ERROR && dW>-MAX_ERROR  ) return i;
132

  
133
      dX = mObjectQuats[i].get0() + rX;
134
      dY = mObjectQuats[i].get1() + rY;
135
      dZ = mObjectQuats[i].get2() + rZ;
136
      dW = mObjectQuats[i].get3() + rW;
137

  
138
      if( dX<MAX_ERROR && dX>-MAX_ERROR &&
139
          dY<MAX_ERROR && dY>-MAX_ERROR &&
140
          dZ<MAX_ERROR && dZ>-MAX_ERROR &&
141
          dW<MAX_ERROR && dW>-MAX_ERROR  ) return i;
142
      }
143

  
144
    return -1;
145
    }
146

  
147
///////////////////////////////////////////////////////////////////////////////////////////////////
148
// QDivided[i][j] = ObjectQ[i]/ObjectQ[j] -> QDivided[i][j] * ObjectQ[j] = ObjectQ[i]
149

  
150
  private void createQuatDivided()
151
    {
152
    int numQ = mObjectQuats.length;
153

  
154
    mQuatDivided = new int[numQ][numQ];
155

  
156
    for(int i=0; i<numQ; i++)
157
      for(int j=0; j<numQ; j++) mQuatDivided[i][j] = -3;
158

  
159
    for(int i=0; i<numQ; i++)
160
      for(int j=0; j<numQ; j++)
161
        {
162
        int q = mulQuat(i,j);
163
        mQuatDivided[q][j] = i;
164
        }
165

  
166
    for(int i=0; i<numQ; i++)
167
      for(int j=0; j<numQ; j++)
168
        if( mQuatDivided[i][j] == -3 )
169
          android.util.Log.e("D", "quat divided: "+i+" "+j);
170
    }
171

  
172 95
///////////////////////////////////////////////////////////////////////////////////////////////////
173 96

  
174 97
  @Override
175 98
  public int[][] getSolvedQuats()
176 99
    {
177
    if( mQuatDivided==null ) createQuatDivided();
178

  
179
    int[][] ret =  new int[][]
100
    return new int[][]
180 101
      {
181
              { 1, 12, mQuatDivided[15][12], mQuatDivided[17][12] },  // triplet of full edges 12<-->15<-->17
182
              { 1, 15, mQuatDivided[12][15], mQuatDivided[17][15] },
183
              { 1, 17, mQuatDivided[12][17], mQuatDivided[15][17] },
184
              { 1, 13, mQuatDivided[16][13], mQuatDivided[19][13] },  // triplet of full edges 13<-->16<-->19
185
              { 1, 16, mQuatDivided[13][16], mQuatDivided[19][16] },
186
              { 1, 19, mQuatDivided[13][19], mQuatDivided[16][19] },
187
              { 1, 11, mQuatDivided[14][11], mQuatDivided[18][11] },  // triplet of full edges 11<-->14<-->18
188
              { 1, 14, mQuatDivided[11][14], mQuatDivided[18][14] },
189
              { 1, 18, mQuatDivided[11][18], mQuatDivided[14][18] },
102
              { 1, 12, 7,13 },  // triplet of full edges 12<-->15<-->17
103
              { 1, 15, 1, 9 },
104
              { 1, 17, 3,21 },
105
              { 1, 13, 4,20 },  // triplet of full edges 13<-->16<-->19
106
              { 1, 16, 1,15 },
107
              { 1, 19, 3, 6 },
108
              { 1, 11, 4, 7 },  // triplet of full edges 11<-->14<-->18
109
              { 1, 14, 9,10 },
110
              { 1, 18, 6,22 },
190 111

  
191 112
              { 1, 20, 1, 2, 3 },  // +X center; in-face rotations.
192 113
              { 1, 21, 1, 2, 3 },  // -X center
......
195 116
              { 1, 24, 7, 8, 9 },  // +Z center
196 117
              { 1, 25, 7, 8, 9 }   // -Z center
197 118
      };
198

  
199
    StringBuilder sb = new StringBuilder();
200
    int l = ret.length;
201
    sb.append("SOLVED QUATS");
202

  
203
    for(int i=0; i<l; i++)
204
      {
205
      sb.append("\ngroup ");
206
      sb.append(i);
207
      sb.append(" : ");
208

  
209
      for( int s : ret[i] )
210
        {
211
        sb.append(' ');
212
        sb.append(s);
213
        }
214
      }
215

  
216
    android.util.Log.e("D", sb.toString() );
217

  
218
    return ret;
219 119
    }
220 120

  
221 121
///////////////////////////////////////////////////////////////////////////////////////////////////
......
321 221

  
322 222
  public int getTouchControlType()
323 223
    {
324
    return TC_CHANGING_MIRROR;
224
    return TC_CUBOID;
325 225
    }
326 226

  
327 227
///////////////////////////////////////////////////////////////////////////////////////////////////
src/main/res/raw/penr_3_extras.json
1
{"major":1,"minor":1,"object":"PENR_3","tutorials":[{"language":"gb","link":"Qit_PhYq-AI","title":"Penrose Cube Tutorial","author":"Manqube Manish Rathod"},{"language":"es","link":"e6q1GwDeqFc","title":"Tutorial del Penrose Cube","author":"Rubiking"},{"language":"ru","link":"LeYvajdcizQ","title":"Как собрать Penrose Cube","author":"YG Cuber"},{"language":"fr","link":"jrHq_nZuQGk","title":"Résolution du Penrose Cube","author":"asthalis"},{"language":"de","link":"P5dck40kTU0","title":"Penrose Cube Tutorial","author":"rofrisch"},{"language":"pl","link":"o_c_pIOC6RU","title":"Jak ułożyć kostkę Penrose","author":"Kostki logiczne TV"},{"language":"br","link":"6Iz95dtq1dE","title":"Como resolver o Cubo Penrose","author":"Cubo vício"},{"language":"kr","link":"uzeoQzkDWM0","title":"펜로즈 큐브","author":"큐브놀이터"},{"language":"vn","link":"PjyCCsxJyBU","title":"Hướng dẫn giải Penrose Cube","author":"Rubik Ocean"},{"language":"tw","link":"lkzFMKmlB_8","title":"Penrose Cube","author":"不正常魔術方塊研究中心"}]}
src/main/res/raw/penr_3_object.json
1
{"major":15,"minor":1,"metadata":{"longname":"Penrose Cube","inventor":"Antonio Rubio","year":2017,"complexity":2.5899999141693115,"size":3,"scrambles":24,"shortname":"PENR_3","resetmaps":false,"num_faces":6,"price":60,"category":257,"signature":[0,0,0,0,0,0,0,0,89]},"mesh":{"shapes":[{"vertices":[{"x":0.5,"y":0.5,"z":0.5},{"x":0.5,"y":0.5,"z":-0.5},{"x":0.5,"y":-0.5,"z":0.5},{"x":0.5,"y":-0.5,"z":-0.5},{"x":-0.5,"y":0.5,"z":0.5},{"x":-0.5,"y":0.5,"z":-0.5},{"x":-0.5,"y":-0.5,"z":0.5},{"x":-0.5,"y":-0.5,"z":-0.5}],"faces":[{"bandIndex":3,"sticker":0,"isOuter":0,"vertexIndices":[2,3,1,0]},{"bandIndex":0,"sticker":0,"isOuter":1,"vertexIndices":[7,6,4,5]},{"bandIndex":3,"sticker":0,"isOuter":0,"vertexIndices":[4,0,1,5]},{"bandIndex":0,"sticker":0,"isOuter":1,"vertexIndices":[7,3,2,6]},{"bandIndex":3,"sticker":0,"isOuter":0,"vertexIndices":[6,2,0,4]},{"bandIndex":0,"sticker":0,"isOuter":1,"vertexIndices":[3,7,5,1]}],"bands":[{"height":0.04500000178813934,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":5,"extraI":1,"extraJ":1},{"height":0.0010000000474974513,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":2,"extraI":3,"extraJ":1},{"height":0.0010000000474974513,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":2,"extraI":0,"extraJ":0},{"height":0.0010000000474974513,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":5,"extraI":1,"extraJ":1},{"height":0.029999999329447746,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":7,"extraI":1,"extraJ":1},{"height":0.0010000000474974513,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":7,"extraI":1,"extraJ":1}],"effects":[{"name":"DEFORM","var0":0,"var1":-0.014999999664723873,"var2":-0.014999999664723873,"var3":-0.014999999664723873,"var4":1,"center0":0.5,"center1":0.5,"center2":0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":-0.014999999664723873,"var2":-0.014999999664723873,"var3":0.014999999664723873,"var4":1,"center0":0.5,"center1":0.5,"center2":-0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":-0.014999999664723873,"var2":0.014999999664723873,"var3":-0.014999999664723873,"var4":1,"center0":0.5,"center1":-0.5,"center2":0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":-0.014999999664723873,"var2":0.014999999664723873,"var3":0.014999999664723873,"var4":1,"center0":0.5,"center1":-0.5,"center2":-0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":0.014999999664723873,"var2":-0.014999999664723873,"var3":-0.014999999664723873,"var4":1,"center0":-0.5,"center1":0.5,"center2":0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":0.014999999664723873,"var2":-0.014999999664723873,"var3":0.014999999664723873,"var4":1,"center0":-0.5,"center1":0.5,"center2":-0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":0.014999999664723873,"var2":0.014999999664723873,"var3":-0.014999999664723873,"var4":1,"center0":-0.5,"center1":-0.5,"center2":0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":0.014999999664723873,"var2":0.014999999664723873,"var3":0.014999999664723873,"var4":1,"center0":-0.5,"center1":-0.5,"center2":-0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false}]},{"vertices":[{"x":-0.5,"y":-0.5,"z":-0.5},{"x":0.5,"y":-0.5,"z":-0.5},{"x":0.5,"y":0.5,"z":-0.5},{"x":-0.5,"y":-0.5,"z":0.5},{"x":0.5,"y":-0.5,"z":0.5},{"x":0.5,"y":0.5,"z":0.5}],"faces":[{"bandIndex":5,"sticker":1,"isOuter":0,"vertexIndices":[2,1,0]},{"bandIndex":4,"sticker":1,"isOuter":1,"vertexIndices":[3,4,5]},{"bandIndex":4,"sticker":2,"isOuter":1,"vertexIndices":[0,3,5,2]},{"bandIndex":5,"sticker":0,"isOuter":0,"vertexIndices":[0,1,4,3]},{"bandIndex":5,"sticker":0,"isOuter":0,"vertexIndices":[5,4,1,2]}],"bands":[{"height":0.04500000178813934,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":5,"extraI":1,"extraJ":1},{"height":0.0010000000474974513,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":2,"extraI":3,"extraJ":1},{"height":0.0010000000474974513,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":2,"extraI":0,"extraJ":0},{"height":0.0010000000474974513,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":5,"extraI":1,"extraJ":1},{"height":0.029999999329447746,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":7,"extraI":1,"extraJ":1},{"height":0.0010000000474974513,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":7,"extraI":1,"extraJ":1}],"effects":[{"name":"DEFORM","var0":0,"var1":0.014999999664723873,"var2":0.014999999664723873,"var3":0.014999999664723873,"var4":1,"center0":-0.5,"center1":-0.5,"center2":-0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":-0.014999999664723873,"var2":0.014999999664723873,"var3":0.014999999664723873,"var4":1,"center0":0.5,"center1":-0.5,"center2":-0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":-0.014999999664723873,"var2":-0.014999999664723873,"var3":0.014999999664723873,"var4":1,"center0":0.5,"center1":0.5,"center2":-0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":0.014999999664723873,"var2":0.014999999664723873,"var3":-0.014999999664723873,"var4":1,"center0":-0.5,"center1":-0.5,"center2":0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":-0.014999999664723873,"var2":0.014999999664723873,"var3":-0.014999999664723873,"var4":1,"center0":0.5,"center1":-0.5,"center2":0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":-0.014999999664723873,"var2":-0.014999999664723873,"var3":-0.014999999664723873,"var4":1,"center0":0.5,"center1":0.5,"center2":0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"PIPE","var0":0.5,"var1":0,"var2":0,"var3":1,"var4":0.9200000166893005,"center0":-0.5,"center1":0.5,"center2":0,"region0":0,"region1":0,"region2":0,"region3":0,"use":true}]},{"vertices":[{"x":-0.5,"y":-0.5,"z":-0.5},{"x":0.5,"y":-0.5,"z":-0.5},{"x":0.5,"y":0.5,"z":-0.5},{"x":-0.5,"y":-0.5,"z":0.5},{"x":0.5,"y":-0.5,"z":0.5},{"x":0.5,"y":0.5,"z":0.5}],"faces":[{"bandIndex":5,"sticker":1,"isOuter":0,"vertexIndices":[2,1,0]},{"bandIndex":5,"sticker":1,"isOuter":0,"vertexIndices":[3,4,5]},{"bandIndex":4,"sticker":2,"isOuter":1,"vertexIndices":[0,3,5,2]},{"bandIndex":5,"sticker":0,"isOuter":0,"vertexIndices":[0,1,4,3]},{"bandIndex":5,"sticker":0,"isOuter":0,"vertexIndices":[5,4,1,2]}],"bands":[{"height":0.04500000178813934,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":5,"extraI":1,"extraJ":1},{"height":0.0010000000474974513,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":2,"extraI":3,"extraJ":1},{"height":0.0010000000474974513,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":2,"extraI":0,"extraJ":0},{"height":0.0010000000474974513,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":5,"extraI":1,"extraJ":1},{"height":0.029999999329447746,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":7,"extraI":1,"extraJ":1},{"height":0.0010000000474974513,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":7,"extraI":1,"extraJ":1}],"effects":[{"name":"DEFORM","var0":0,"var1":0.014999999664723873,"var2":0.014999999664723873,"var3":0.014999999664723873,"var4":1,"center0":-0.5,"center1":-0.5,"center2":-0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":-0.014999999664723873,"var2":0.014999999664723873,"var3":0.014999999664723873,"var4":1,"center0":0.5,"center1":-0.5,"center2":-0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":-0.014999999664723873,"var2":-0.014999999664723873,"var3":0.014999999664723873,"var4":1,"center0":0.5,"center1":0.5,"center2":-0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":0.014999999664723873,"var2":0.014999999664723873,"var3":-0.014999999664723873,"var4":1,"center0":-0.5,"center1":-0.5,"center2":0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":-0.014999999664723873,"var2":0.014999999664723873,"var3":-0.014999999664723873,"var4":1,"center0":0.5,"center1":-0.5,"center2":0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":-0.014999999664723873,"var2":-0.014999999664723873,"var3":-0.014999999664723873,"var4":1,"center0":0.5,"center1":0.5,"center2":0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"PIPE","var0":0.5,"var1":0,"var2":0,"var3":1,"var4":0.9200000166893005,"center0":-0.5,"center1":0.5,"center2":0,"region0":0,"region1":0,"region2":0,"region3":0,"use":true}]},{"vertices":[{"x":0.5,"y":0.5,"z":0.5},{"x":0.5,"y":0.5,"z":-0.5},{"x":0.5,"y":-0.5,"z":0.5},{"x":0.5,"y":-0.5,"z":-0.5},{"x":-0.5,"y":0.5,"z":0.5},{"x":-0.5,"y":0.5,"z":-0.5},{"x":-0.5,"y":-0.5,"z":0.5},{"x":-0.5,"y":-0.5,"z":-0.5}],"faces":[{"bandIndex":1,"sticker":0,"isOuter":0,"vertexIndices":[2,3,1,0]},{"bandIndex":1,"sticker":0,"isOuter":0,"vertexIndices":[7,6,4,5]},{"bandIndex":1,"sticker":0,"isOuter":0,"vertexIndices":[4,0,1,5]},{"bandIndex":0,"sticker":0,"isOuter":1,"vertexIndices":[7,3,2,6]},{"bandIndex":1,"sticker":0,"isOuter":0,"vertexIndices":[6,2,0,4]},{"bandIndex":0,"sticker":0,"isOuter":1,"vertexIndices":[3,7,5,1]}],"bands":[{"height":0.04500000178813934,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":5,"extraI":1,"extraJ":1},{"height":0.0010000000474974513,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":2,"extraI":3,"extraJ":1},{"height":0.0010000000474974513,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":2,"extraI":0,"extraJ":0},{"height":0.0010000000474974513,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":5,"extraI":1,"extraJ":1},{"height":0.029999999329447746,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":7,"extraI":1,"extraJ":1},{"height":0.0010000000474974513,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":7,"extraI":1,"extraJ":1}],"effects":[{"name":"DEFORM","var0":0,"var1":-0.014999999664723873,"var2":-0.014999999664723873,"var3":-0.014999999664723873,"var4":1,"center0":0.5,"center1":0.5,"center2":0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":-0.014999999664723873,"var2":-0.014999999664723873,"var3":0.014999999664723873,"var4":1,"center0":0.5,"center1":0.5,"center2":-0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":-0.014999999664723873,"var2":0.014999999664723873,"var3":-0.014999999664723873,"var4":1,"center0":0.5,"center1":-0.5,"center2":0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":-0.014999999664723873,"var2":0.014999999664723873,"var3":0.014999999664723873,"var4":1,"center0":0.5,"center1":-0.5,"center2":-0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":0.014999999664723873,"var2":-0.014999999664723873,"var3":-0.014999999664723873,"var4":1,"center0":-0.5,"center1":0.5,"center2":0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":0.014999999664723873,"var2":-0.014999999664723873,"var3":0.014999999664723873,"var4":1,"center0":-0.5,"center1":0.5,"center2":-0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":0.014999999664723873,"var2":0.014999999664723873,"var3":-0.014999999664723873,"var4":1,"center0":-0.5,"center1":-0.5,"center2":0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":0.014999999664723873,"var2":0.014999999664723873,"var3":0.014999999664723873,"var4":1,"center0":-0.5,"center1":-0.5,"center2":-0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false}]},{"vertices":[{"x":0.5,"y":0.5,"z":0.5},{"x":0.5,"y":0.5,"z":-0.5},{"x":0.5,"y":-0.5,"z":0.5},{"x":0.5,"y":-0.5,"z":-0.5},{"x":-0.5,"y":0.5,"z":0.5},{"x":-0.5,"y":0.5,"z":-0.5},{"x":-0.5,"y":-0.5,"z":0.5},{"x":-0.5,"y":-0.5,"z":-0.5}],"faces":[{"bandIndex":2,"sticker":0,"isOuter":0,"vertexIndices":[2,3,1,0]},{"bandIndex":2,"sticker":0,"isOuter":0,"vertexIndices":[7,6,4,5]},{"bandIndex":2,"sticker":0,"isOuter":0,"vertexIndices":[4,0,1,5]},{"bandIndex":2,"sticker":0,"isOuter":0,"vertexIndices":[7,3,2,6]},{"bandIndex":0,"sticker":0,"isOuter":1,"vertexIndices":[6,2,0,4]},{"bandIndex":2,"sticker":0,"isOuter":0,"vertexIndices":[3,7,5,1]}],"bands":[{"height":0.04500000178813934,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":5,"extraI":1,"extraJ":1},{"height":0.0010000000474974513,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":2,"extraI":3,"extraJ":1},{"height":0.0010000000474974513,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":2,"extraI":0,"extraJ":0},{"height":0.0010000000474974513,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":5,"extraI":1,"extraJ":1},{"height":0.029999999329447746,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":7,"extraI":1,"extraJ":1},{"height":0.0010000000474974513,"angle":35,"distanceToCenter":0.5,"distanceToFlat":0.699999988079071,"numOfBands":7,"extraI":1,"extraJ":1}],"effects":[{"name":"DEFORM","var0":0,"var1":-0.014999999664723873,"var2":-0.014999999664723873,"var3":-0.014999999664723873,"var4":1,"center0":0.5,"center1":0.5,"center2":0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":-0.014999999664723873,"var2":-0.014999999664723873,"var3":0.014999999664723873,"var4":1,"center0":0.5,"center1":0.5,"center2":-0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":-0.014999999664723873,"var2":0.014999999664723873,"var3":-0.014999999664723873,"var4":1,"center0":0.5,"center1":-0.5,"center2":0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":-0.014999999664723873,"var2":0.014999999664723873,"var3":0.014999999664723873,"var4":1,"center0":0.5,"center1":-0.5,"center2":-0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":0.014999999664723873,"var2":-0.014999999664723873,"var3":-0.014999999664723873,"var4":1,"center0":-0.5,"center1":0.5,"center2":0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":0.014999999664723873,"var2":-0.014999999664723873,"var3":0.014999999664723873,"var4":1,"center0":-0.5,"center1":0.5,"center2":-0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":0.014999999664723873,"var2":0.014999999664723873,"var3":-0.014999999664723873,"var4":1,"center0":-0.5,"center1":-0.5,"center2":0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false},{"name":"DEFORM","var0":0,"var1":0.014999999664723873,"var2":0.014999999664723873,"var3":0.014999999664723873,"var4":1,"center0":-0.5,"center1":-0.5,"center2":-0.5,"region0":0,"region1":0,"region2":0,"region3":0.11999999731779099,"use":false}]}],"cubits":[{"centers":[-1,1,-1],"qx":0.7071067690849304,"qy":0,"qz":0,"qw":-0.7071067690849304,"variant":0,"type":0,"colors":[-1,2,-1,1,-1,4]},{"centers":[1,-1,1],"qx":0,"qy":1,"qz":0,"qw":6.123234262925839E-17,"variant":0,"type":0,"colors":[-1,1,-1,2,-1,4]},{"centers":[-1,-1,-1],"qx":1,"qy":0,"qz":0,"qw":6.123234262925839E-17,"variant":1,"type":0,"colors":[-1,1,2,-1,-1,-1]},{"centers":[-1,-1,1],"qx":0,"qy":0,"qz":0.7071067690849304,"qw":-0.7071067690849304,"variant":1,"type":0,"colors":[-1,4,2,-1,-1,-1]},{"centers":[-1,1,1],"qx":0.4999999701976776,"qy":-0.4999999701976776,"qz":-0.4999999701976776,"qw":-0.4999999701976776,"variant":1,"type":0,"colors":[-1,2,4,-1,-1,-1]},{"centers":[1,-1,-1],"qx":4.329780301713277E-17,"qy":0.7071067690849304,"qz":-0.7071067690849304,"qw":4.329780301713277E-17,"variant":1,"type":0,"colors":[-1,2,1,-1,-1,-1]},{"centers":[1,1,-1],"qx":0.4999999701976776,"qy":0.4999999701976776,"qz":0.4999999701976776,"qw":0.4999999701976776,"variant":1,"type":0,"colors":[-1,4,1,-1,-1,-1]},{"centers":[1,1,1],"qx":0,"qy":0.7071067690849304,"qz":0,"qw":-0.7071067690849304,"variant":1,"type":0,"colors":[-1,1,4,-1,-1,-1]},{"centers":[0,1,1],"qx":0,"qy":0.7071067690849304,"qz":0,"qw":-0.7071067690849304,"variant":2,"type":0,"colors":[-1,-1,4,-1,-1,-1]},{"centers":[1,0,-1],"qx":4.329780301713277E-17,"qy":0.7071067690849304,"qz":-0.7071067690849304,"qw":4.329780301713277E-17,"variant":2,"type":0,"colors":[-1,-1,1,-1,-1,-1]},{"centers":[-1,-1,0],"qx":1,"qy":0,"qz":0,"qw":6.123234262925839E-17,"variant":2,"type":0,"colors":[-1,-1,2,-1,-1,-1]},{"centers":[0,-1,-1],"qx":0,"qy":0,"qz":0,"qw":1,"variant":3,"type":0,"colors":[-1,-1,-1,2,-1,1]},{"centers":[0,-1,1],"qx":0.7071067690849304,"qy":0,"qz":0,"qw":0.7071067690849304,"variant":3,"type":0,"colors":[-1,-1,-1,4,-1,2]},{"centers":[0,1,-1],"qx":0.7071067690849304,"qy":0,"qz":0,"qw":-0.7071067690849304,"variant":3,"type":0,"colors":[-1,-1,-1,1,-1,4]},{"centers":[-1,0,-1],"qx":0,"qy":0,"qz":0.7071067690849304,"qw":0.7071067690849304,"variant":3,"type":0,"colors":[-1,-1,-1,2,-1,1]},{"centers":[-1,0,1],"qx":-0.4999999701976776,"qy":0.4999999701976776,"qz":-0.4999999701976776,"qw":-0.4999999701976776,"variant":3,"type":0,"colors":[-1,-1,-1,4,-1,2]},{"centers":[1,0,1],"qx":0.4999999701976776,"qy":0.4999999701976776,"qz":-0.4999999701976776,"qw":0.4999999701976776,"variant":3,"type":0,"colors":[-1,-1,-1,4,-1,1]},{"centers":[-1,1,0],"qx":-0.7071067690849304,"qy":4.329780301713277E-17,"qz":-0.7071067690849304,"qw":-4.329780301713277E-17,"variant":3,"type":0,"colors":[-1,-1,-1,4,-1,2]},{"centers":[1,-1,0],"qx":0,"qy":0.7071067690849304,"qz":0,"qw":0.7071067690849304,"variant":3,"type":0,"colors":[-1,-1,-1,2,-1,1]},{"centers":[1,1,0],"qx":0.7071067690849304,"qy":4.329780301713277E-17,"qz":-0.7071067690849304,"qw":4.329780301713277E-17,"variant":3,"type":0,"colors":[-1,-1,-1,4,-1,1]},{"centers":[1,0,0],"qx":0,"qy":0.7071067690849304,"qz":0,"qw":-0.7071067690849304,"variant":4,"type":0,"colors":[-1,-1,-1,-1,1,-1]},{"centers":[-1,0,0],"qx":0,"qy":0.7071067690849304,"qz":0,"qw":0.7071067690849304,"variant":4,"type":0,"colors":[-1,-1,-1,-1,2,-1]},{"centers":[0,1,0],"qx":0.7071067690849304,"qy":0,"qz":0,"qw":0.7071067690849304,"variant":4,"type":0,"colors":[-1,-1,-1,-1,4,-1]},{"centers":[0,-1,0],"qx":0.7071067690849304,"qy":0,"qz":0,"qw":-0.7071067690849304,"variant":4,"type":0,"colors":[-1,-1,-1,-1,2,-1]},{"centers":[0,0,1],"qx":0,"qy":0,"qz":0,"qw":1,"variant":4,"type":0,"colors":[-1,-1,-1,-1,4,-1]},{"centers":[0,0,-1],"qx":1,"qy":0,"qz":0,"qw":6.123234262925839E-17,"variant":4,"type":0,"colors":[-1,-1,-1,-1,1,-1]}],"stickers":[{"loops":[[{"x":-0.5,"y":-0.5,"angle":0,"radius":0.10000000894069672,"stroke":0.10000000894069672},{"x":0.5,"y":-0.5,"angle":0,"radius":0.10000000894069672,"stroke":0.10000000894069672},{"x":0.5,"y":0.5,"angle":0,"radius":0.10000000894069672,"stroke":0.10000000894069672},{"x":-0.5,"y":0.5,"angle":0,"radius":0.10000000894069672,"stroke":0.10000000894069672}]]},{"loops":[[{"x":-0.25,"y":0.5,"angle":0,"radius":0.09749999642372131,"stroke":0.07499999552965164},{"x":-0.25,"y":-0.25,"angle":0,"radius":0.07499999552965164,"stroke":0.07499999552965164},{"x":0.5,"y":-0.25,"angle":0,"radius":0.09749999642372131,"stroke":0.07499999552965164},{"x":0.5,"y":-0.23000000417232513,"angle":0,"radius":0,"stroke":0.07499999552965164},{"x":0.35899999737739563,"y":-0.07900000363588333,"angle":0,"radius":0,"stroke":0.07499999552965164},{"x":0.20800000429153442,"y":0.06199999153614044,"angle":0,"radius":0,"stroke":0.07499999552965164},{"x":0.13699999451637268,"y":0.13700000941753387,"angle":0,"radius":0,"stroke":0.07499999552965164},{"x":0.06199999153614044,"y":0.20800000429153442,"angle":0,"radius":0,"stroke":0.07499999552965164},{"x":-0.07900000363588333,"y":0.35899999737739563,"angle":0,"radius":0,"stroke":0.07499999552965164},{"x":-0.23000000417232513,"y":0.5,"angle":0,"radius":0,"stroke":0.07499999552965164}]]},{"loops":[[{"x":-0.5,"y":-0.08578643947839737,"angle":0,"radius":0.05857864394783974,"stroke":0.05857864394783974},{"x":-0.08578643947839737,"y":-0.5,"angle":0,"radius":0.05857864394783974,"stroke":0.05857864394783974},{"x":0.5,"y":0.08578643947839737,"angle":0,"radius":0.05857864394783974,"stroke":0.05857864394783974},{"x":0.08578643947839737,"y":0.5,"angle":0,"radius":0.05857864394783974,"stroke":0.05857864394783974}]]}],"pillow":1},"axis":[{"x":1,"y":0,"z":0,"basicAngles":[4,4,4],"cuts":[-0.5,0.5],"rotatable":[true,true,true],"factor":[1,1,1]},{"x":0,"y":1,"z":0,"basicAngles":[4,4,4],"cuts":[-0.5,0.5],"rotatable":[true,true,true],"factor":[1,1,1]},{"x":0,"y":0,"z":1,"basicAngles":[4,4,4],"cuts":[-0.5,0.5],"rotatable":[true,true,true],"factor":[1,1,1]}],"quats":[{"x":0,"y":0,"z":0,"w":1},{"x":0.7071067690849304,"y":0,"z":0,"w":0.7071067690849304},{"x":1,"y":0,"z":0,"w":6.123234262925839E-17},{"x":0.7071067690849304,"y":0,"z":0,"w":-0.7071067690849304},{"x":0,"y":0.7071067690849304,"z":0,"w":0.7071067690849304},{"x":0,"y":1,"z":0,"w":6.123234262925839E-17},{"x":0,"y":0.7071067690849304,"z":0,"w":-0.7071067690849304},{"x":0,"y":0,"z":0.7071067690849304,"w":0.7071067690849304},{"x":0,"y":0,"z":1,"w":6.123234262925839E-17},{"x":0,"y":0,"z":0.7071067690849304,"w":-0.7071067690849304},{"x":0.4999999701976776,"y":0.4999999701976776,"z":-0.4999999701976776,"w":0.4999999701976776},{"x":4.329780301713277E-17,"y":0.7071067690849304,"z":-0.7071067690849304,"w":4.329780301713277E-17},{"x":-0.4999999701976776,"y":0.4999999701976776,"z":-0.4999999701976776,"w":-0.4999999701976776},{"x":0.4999999701976776,"y":0.4999999701976776,"z":0.4999999701976776,"w":0.4999999701976776},{"x":4.329780301713277E-17,"y":0.7071067690849304,"z":0.7071067690849304,"w":4.329780301713277E-17},{"x":-0.4999999701976776,"y":0.4999999701976776,"z":0.4999999701976776,"w":-0.4999999701976776},{"x":0.7071067690849304,"y":4.329780301713277E-17,"z":-0.7071067690849304,"w":4.329780301713277E-17},{"x":-0.7071067690849304,"y":4.329780301713277E-17,"z":-0.7071067690849304,"w":-4.329780301713277E-17},{"x":0.7071067690849304,"y":0.7071067690849304,"z":4.329780301713277E-17,"w":4.329780301713277E-17},{"x":-0.7071067690849304,"y":0.7071067690849304,"z":4.329780301713277E-17,"w":-4.329780301713277E-17},{"x":0.4999999701976776,"y":-0.4999999701976776,"z":-0.4999999701976776,"w":-0.4999999701976776},{"x":-0.4999999701976776,"y":-0.4999999701976776,"z":-0.4999999701976776,"w":0.4999999701976776},{"x":0.4999999701976776,"y":0.4999999701976776,"z":-0.4999999701976776,"w":-0.4999999701976776},{"x":-0.4999999701976776,"y":0.4999999701976776,"z":-0.4999999701976776,"w":0.4999999701976776}],"scrambling":{"scrambleType":0,"algorithms":[[0,1,-1],[0,1,1],[0,1,2],[0,2,-1],[0,2,1],[0,2,2],[0,4,-1],[0,4,1],[0,4,2],[1,1,-1],[1,1,1],[1,1,2],[1,2,-1],[1,2,1],[1,2,2],[1,4,-1],[1,4,1],[1,4,2],[2,1,-1],[2,1,1],[2,1,2],[2,2,-1],[2,2,1],[2,2,2],[2,4,-1],[2,4,1],[2,4,2]],"edges":[[0,1,1,1,2,1,3,1,4,1,5,1,6,1,7,1,8,1,9,2,10,2,11,2,12,2,13,2,14,2,15,2,16,2,17,2,18,3,19,3,20,3,21,3,22,3,23,3,24,3,25,3,26,3],[9,4,10,4,11,4,12,4,13,4,14,4,15,4,16,4,17,4,18,5,19,5,20,5,21,5,22,5,23,5,24,5,25,5,26,5],[0,6,1,6,2,6,3,6,4,6,5,6,6,6,7,6,8,6,18,7,19,7,20,7,21,7,22,7,23,7,24,7,25,7,26,7],[0,8,1,8,2,8,3,8,4,8,5,8,6,8,7,8,8,8,9,9,10,9,11,9,12,9,13,9,14,9,15,9,16,9,17,9],[0,10,1,10,2,10,3,10,4,10,5,10,6,10,7,10,8,10,18,7,19,7,20,7,21,7,22,7,23,7,24,7,25,7,26,7],[0,11,1,11,2,11,3,11,4,11,5,11,6,11,7,11,8,11,9,9,10,9,11,9,12,9,13,9,14,9,15,9,16,9,17,9],[9,12,10,12,11,12,12,12,13,12,14,12,15,12,16,12,17,12,18,5,19,5,20,5,21,5,22,5,23,5,24,5,25,5,26,5],[0,8,1,8,2,8,3,8,4,8,5,8,6,8,7,8,8,8,9,13,10,13,11,13,12,13,13,13,14,13,15,13,16,13,17,13],[9,4,10,4,11,4,12,4,13,4,14,4,15,4,16,4,17,4,18,14,19,14,20,14,21,14,22,14,23,14,24,14,25,14,26,14],[0,6,1,6,2,6,3,6,4,6,5,6,6,6,7,6,8,6,18,15,19,15,20,15,21,15,22,15,23,15,24,15,25,15,26,15],[18,5,19,5,20,5,21,5,22,5,23,5,24,5,25,5,26,5],[9,4,10,4,11,4,12,4,13,4,14,4,15,4,16,4,17,4],[18,7,19,7,20,7,21,7,22,7,23,7,24,7,25,7,26,7],[0,6,1,6,2,6,3,6,4,6,5,6,6,6,7,6,8,6],[9,9,10,9,11,9,12,9,13,9,14,9,15,9,16,9,17,9],[0,8,1,8,2,8,3,8,4,8,5,8,6,8,7,8,8,8]]},"touchcontrol":{"movementType":0,"movementSplit":0,"enabledAxis":[[[1,2]],[[1,2]],[[0,2]],[[0,2]],[[0,1]],[[0,1]]],"dist3D":[0.5,0.5,0.5,0.5,0.5,0.5]},"colors":[-256,-1,-16776961,-16729344,-6750208,-40448,-16777216],"solved":{"functionIndex":0,"groups":[[1,12,7,13],[1,15,1,9],[1,17,3,21],[1,13,4,20],[1,16,1,15],[1,19,3,6],[1,11,4,7],[1,14,9,10],[1,18,6,22],[1,20,1,2,3],[1,21,1,2,3],[1,22,4,5,6],[1,23,4,5,6],[1,24,7,8,9],[1,25,7,8,9]]}}

Also available in: Unified diff