Revision 59c20632
Added by Leszek Koltunski over 2 years ago
src/main/java/org/distorted/objectlib/objects/TwistyPyraminx.java | ||
---|---|---|
19 | 19 |
|
20 | 20 |
package org.distorted.objectlib.objects; |
21 | 21 |
|
22 |
import static org.distorted.objectlib.main.Movement.MOVEMENT_TETRAHEDRON; |
|
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.Movement4; |
35 | 35 |
import org.distorted.objectlib.main.ObjectControl; |
36 | 36 |
import org.distorted.objectlib.main.ObjectType; |
... | ... | |
51 | 51 |
new Static3D(-SQ6/3,+SQ3/3, 0), |
52 | 52 |
}; |
53 | 53 |
|
54 |
private static final int[][][] ENABLED = new int[][][] |
|
55 |
{ |
|
56 |
{{1,2,3}},{{0,2,3}},{{0,1,3}},{{0,1,2}} |
|
57 |
}; |
|
58 |
|
|
59 | 54 |
private ScrambleState[] mStates; |
60 | 55 |
private int[] mBasicAngle; |
61 | 56 |
private Static4D[] mQuats; |
62 | 57 |
private float[][] mCuts; |
63 |
private boolean[][] mLayerRotatable; |
|
64 | 58 |
private ObjectSticker[] mStickers; |
65 |
private Movement mMovement; |
|
66 | 59 |
|
67 | 60 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
68 | 61 |
|
... | ... | |
228 | 221 |
|
229 | 222 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
230 | 223 |
|
231 |
protected int getSolvedFunctionIndex()
|
|
224 |
public int getSolvedFunctionIndex()
|
|
232 | 225 |
{ |
233 | 226 |
return 0; |
234 | 227 |
} |
... | ... | |
264 | 257 |
|
265 | 258 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
266 | 259 |
|
267 |
private void getLayerRotatable(int[] numLayers)
|
|
260 |
public boolean[][] getLayerRotatable(int[] numLayers)
|
|
268 | 261 |
{ |
269 |
if( mLayerRotatable==null ) |
|
270 |
{ |
|
271 |
int numAxis = ROT_AXIS.length; |
|
272 |
mLayerRotatable = new boolean[numAxis][]; |
|
262 |
int numAxis = ROT_AXIS.length; |
|
263 |
boolean[][] layerRotatable = new boolean[numAxis][]; |
|
273 | 264 |
|
274 |
for(int i=0; i<numAxis; i++) |
|
275 |
{ |
|
276 |
mLayerRotatable[i] = new boolean[numLayers[i]]; |
|
277 |
for(int j=0; j<numLayers[i]; j++) mLayerRotatable[i][j] = true; |
|
278 |
} |
|
265 |
for(int i=0; i<numAxis; i++) |
|
266 |
{ |
|
267 |
layerRotatable[i] = new boolean[numLayers[i]]; |
|
268 |
for(int j=0; j<numLayers[i]; j++) layerRotatable[i][j] = true; |
|
279 | 269 |
} |
270 |
|
|
271 |
return layerRotatable; |
|
272 |
} |
|
273 |
|
|
274 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
275 |
|
|
276 |
public int getMovementType() |
|
277 |
{ |
|
278 |
return MOVEMENT_TETRAHEDRON; |
|
279 |
} |
|
280 |
|
|
281 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
282 |
|
|
283 |
public int getMovementSplit() |
|
284 |
{ |
|
285 |
return TYPE_NOT_SPLIT; |
|
286 |
} |
|
287 |
|
|
288 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
289 |
|
|
290 |
public int[][][] getEnabled() |
|
291 |
{ |
|
292 |
return new int[][][] { {{1,2,3}},{{0,2,3}},{{0,1,3}},{{0,1,2}} }; |
|
293 |
} |
|
294 |
|
|
295 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
296 |
|
|
297 |
public float[] getDist3D(int[] numLayers) |
|
298 |
{ |
|
299 |
return null; |
|
280 | 300 |
} |
281 | 301 |
|
282 | 302 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
422 | 442 |
return ROT_AXIS; |
423 | 443 |
} |
424 | 444 |
|
425 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
426 |
|
|
427 |
public Movement getMovement() |
|
428 |
{ |
|
429 |
if( mMovement==null ) |
|
430 |
{ |
|
431 |
int[] numLayers = getNumLayers(); |
|
432 |
if( mCuts==null ) getCuts(numLayers); |
|
433 |
getLayerRotatable(numLayers); |
|
434 |
mMovement = new Movement4(ROT_AXIS,mCuts,mLayerRotatable,numLayers[0],TYPE_NOT_SPLIT,ENABLED); |
|
435 |
} |
|
436 |
return mMovement; |
|
437 |
} |
|
438 |
|
|
439 | 445 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
440 | 446 |
|
441 | 447 |
public int[] getBasicAngle() |
... | ... | |
484 | 490 |
return R.string.pyra3_inventor; |
485 | 491 |
} |
486 | 492 |
|
493 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
494 |
|
|
495 |
public int getYearOfInvention(int[] numLayers) |
|
496 |
{ |
|
497 |
switch(numLayers[0]) |
|
498 |
{ |
|
499 |
case 3: return 1970; |
|
500 |
case 4: return 2002; |
|
501 |
case 5: return 2011; |
|
502 |
} |
|
503 |
return 1970; |
|
504 |
} |
|
505 |
|
|
487 | 506 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
488 | 507 |
|
489 | 508 |
public int getComplexity(int[] numLayers) |
Also available in: Unified diff
Reorg for writing the JSON