Revision 59c20632
Added by Leszek Koltunski over 2 years ago
src/main/java/org/distorted/objectlib/objects/TwistyDiamond.java | ||
---|---|---|
19 | 19 |
|
20 | 20 |
package org.distorted.objectlib.objects; |
21 | 21 |
|
22 |
import static org.distorted.objectlib.main.Movement.MOVEMENT_OCTAHEDRON; |
|
22 | 23 |
import static org.distorted.objectlib.main.Movement.TYPE_NOT_SPLIT; |
23 | 24 |
|
24 | 25 |
import android.content.res.Resources; |
... | ... | |
30 | 31 |
import org.distorted.library.type.Static4D; |
31 | 32 |
|
32 | 33 |
import org.distorted.objectlib.R; |
33 |
import org.distorted.objectlib.main.Movement; |
|
34 | 34 |
import org.distorted.objectlib.main.Movement8; |
35 | 35 |
import org.distorted.objectlib.main.ObjectControl; |
36 | 36 |
import org.distorted.objectlib.main.ObjectType; |
... | ... | |
52 | 52 |
new Static3D( 0,-SQ3/3,+SQ6/3) |
53 | 53 |
}; |
54 | 54 |
|
55 |
private static final int[][][] ENABLED = new int[][][] |
|
56 |
{ |
|
57 |
{{1,2,3}},{{1,2,3}},{{0,2,3}},{{0,2,3}},{{0,1,3}},{{0,1,3}},{{0,1,2}},{{0,1,2}} |
|
58 |
}; |
|
59 |
|
|
60 | 55 |
private ScrambleState[] mStates; |
61 | 56 |
private int[] mBasicAngle; |
62 | 57 |
private int[] mFaceMap; |
63 | 58 |
private float[][] mCuts; |
64 |
private boolean[][] mLayerRotatable; |
|
65 | 59 |
private Static4D[] mQuats; |
66 | 60 |
private int[] mTetraToFaceMap; |
67 | 61 |
private ObjectSticker[] mStickers; |
68 |
private Movement mMovement; |
|
69 | 62 |
|
70 | 63 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
71 | 64 |
|
... | ... | |
157 | 150 |
|
158 | 151 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
159 | 152 |
|
160 |
protected int getSolvedFunctionIndex()
|
|
153 |
public int getSolvedFunctionIndex()
|
|
161 | 154 |
{ |
162 | 155 |
return 0; |
163 | 156 |
} |
... | ... | |
196 | 189 |
|
197 | 190 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
198 | 191 |
|
199 |
private void getLayerRotatable(int[] numLayers)
|
|
192 |
public boolean[][] getLayerRotatable(int[] numLayers)
|
|
200 | 193 |
{ |
201 |
if( mLayerRotatable==null ) |
|
202 |
{ |
|
203 |
int numAxis = ROT_AXIS.length; |
|
204 |
mLayerRotatable = new boolean[numAxis][]; |
|
194 |
int numAxis = ROT_AXIS.length; |
|
195 |
boolean[][] layerRotatable = new boolean[numAxis][]; |
|
205 | 196 |
|
206 |
for(int i=0; i<numAxis; i++) |
|
207 |
{ |
|
208 |
mLayerRotatable[i] = new boolean[numLayers[i]]; |
|
209 |
for(int j=0; j<numLayers[i]; j++) mLayerRotatable[i][j] = true; |
|
210 |
} |
|
197 |
for(int i=0; i<numAxis; i++) |
|
198 |
{ |
|
199 |
layerRotatable[i] = new boolean[numLayers[i]]; |
|
200 |
for(int j=0; j<numLayers[i]; j++) layerRotatable[i][j] = true; |
|
211 | 201 |
} |
202 |
|
|
203 |
return layerRotatable; |
|
204 |
} |
|
205 |
|
|
206 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
207 |
|
|
208 |
public int getMovementType() |
|
209 |
{ |
|
210 |
return MOVEMENT_OCTAHEDRON; |
|
211 |
} |
|
212 |
|
|
213 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
214 |
|
|
215 |
public int getMovementSplit() |
|
216 |
{ |
|
217 |
return TYPE_NOT_SPLIT; |
|
218 |
} |
|
219 |
|
|
220 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
221 |
|
|
222 |
public int[][][] getEnabled() |
|
223 |
{ |
|
224 |
return new int[][][] |
|
225 |
{ |
|
226 |
{{1,2,3}},{{1,2,3}},{{0,2,3}},{{0,2,3}},{{0,1,3}},{{0,1,3}},{{0,1,2}},{{0,1,2}} |
|
227 |
}; |
|
228 |
} |
|
229 |
|
|
230 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
231 |
|
|
232 |
public float[] getDist3D(int[] numLayers) |
|
233 |
{ |
|
234 |
return null; |
|
212 | 235 |
} |
213 | 236 |
|
214 | 237 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
539 | 562 |
return ROT_AXIS; |
540 | 563 |
} |
541 | 564 |
|
542 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
543 |
|
|
544 |
public Movement getMovement() |
|
545 |
{ |
|
546 |
if( mMovement==null ) |
|
547 |
{ |
|
548 |
int[] numLayers = getNumLayers(); |
|
549 |
if( mCuts==null ) getCuts(numLayers); |
|
550 |
getLayerRotatable(numLayers); |
|
551 |
mMovement = new Movement8(ROT_AXIS,mCuts,mLayerRotatable,numLayers[0],TYPE_NOT_SPLIT,ENABLED); |
|
552 |
} |
|
553 |
return mMovement; |
|
554 |
} |
|
555 |
|
|
556 | 565 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
557 | 566 |
|
558 | 567 |
public int[] getBasicAngle() |
... | ... | |
603 | 612 |
return 0; |
604 | 613 |
} |
605 | 614 |
|
615 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
616 |
|
|
617 |
public int getYearOfInvention(int[] numLayers) |
|
618 |
{ |
|
619 |
switch(numLayers[0]) |
|
620 |
{ |
|
621 |
case 2: return 1984; |
|
622 |
case 3: return 2003; |
|
623 |
case 4: return 2011; |
|
624 |
} |
|
625 |
return 1984; |
|
626 |
} |
|
627 |
|
|
606 | 628 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
607 | 629 |
|
608 | 630 |
public int getComplexity(int[] numLayers) |
Also available in: Unified diff
Reorg for writing the JSON