Revision 59c20632
Added by Leszek Koltunski over 2 years ago
src/main/java/org/distorted/objectlib/objects/TwistyHelicopter.java | ||
---|---|---|
19 | 19 |
|
20 | 20 |
package org.distorted.objectlib.objects; |
21 | 21 |
|
22 |
import static org.distorted.objectlib.main.Movement.MOVEMENT_HEXAHEDRON; |
|
22 | 23 |
import static org.distorted.objectlib.main.Movement.TYPE_SPLIT_EDGE; |
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.Movement6; |
35 | 35 |
import org.distorted.objectlib.main.ObjectControl; |
36 | 36 |
import org.distorted.objectlib.main.ObjectType; |
... | ... | |
54 | 54 |
new Static3D(-SQ2/2, -SQ2/2, 0) |
55 | 55 |
}; |
56 | 56 |
|
57 |
private static final int[][][] ENABLED = new int[][][] |
|
58 |
{ |
|
59 |
{{2,5},{2,4},{3,4},{3,5}}, |
|
60 |
{{2,4},{2,5},{3,5},{3,4}}, |
|
61 |
{{0,5},{1,5},{1,4},{0,4}}, |
|
62 |
{{0,4},{1,4},{1,5},{0,5}}, |
|
63 |
{{1,3},{0,3},{0,2},{1,2}}, |
|
64 |
{{0,3},{1,3},{1,2},{0,2}}, |
|
65 |
}; |
|
66 |
|
|
67 | 57 |
private ScrambleState[] mStates; |
68 | 58 |
private int[] mBasicAngle; |
69 | 59 |
private Static4D[] mQuats; |
70 | 60 |
private float[][] mCuts; |
71 |
private boolean[][] mLayerRotatable; |
|
72 | 61 |
private float[][] mCenters; |
73 | 62 |
private int[] mQuatIndices; |
74 | 63 |
private int[][] mFaceMap; |
75 | 64 |
private ObjectSticker[] mStickers; |
76 |
private Movement mMovement; |
|
77 | 65 |
|
78 | 66 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
79 | 67 |
|
... | ... | |
171 | 159 |
|
172 | 160 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
173 | 161 |
|
174 |
protected int getSolvedFunctionIndex()
|
|
162 |
public int getSolvedFunctionIndex()
|
|
175 | 163 |
{ |
176 | 164 |
return 0; |
177 | 165 |
} |
... | ... | |
198 | 186 |
|
199 | 187 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
200 | 188 |
|
201 |
private void getLayerRotatable(int[] numLayers) |
|
189 |
public boolean[][] getLayerRotatable(int[] numLayers) |
|
190 |
{ |
|
191 |
int numAxis = ROT_AXIS.length; |
|
192 |
boolean[] tmp = new boolean[] {true,false,true}; |
|
193 |
boolean[][] layerRotatable = new boolean[numAxis][]; |
|
194 |
for(int i=0; i<numAxis; i++) layerRotatable[i] = tmp; |
|
195 |
|
|
196 |
return layerRotatable; |
|
197 |
} |
|
198 |
|
|
199 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
200 |
|
|
201 |
public int getMovementType() |
|
202 |
{ |
|
203 |
return MOVEMENT_HEXAHEDRON; |
|
204 |
} |
|
205 |
|
|
206 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
207 |
|
|
208 |
public int getMovementSplit() |
|
209 |
{ |
|
210 |
return TYPE_SPLIT_EDGE; |
|
211 |
} |
|
212 |
|
|
213 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
214 |
|
|
215 |
public int[][][] getEnabled() |
|
202 | 216 |
{ |
203 |
if( mLayerRotatable==null )
|
|
217 |
return new int[][][]
|
|
204 | 218 |
{ |
205 |
int numAxis = ROT_AXIS.length; |
|
206 |
boolean[] tmp = new boolean[] {true,false,true}; |
|
207 |
mLayerRotatable = new boolean[numAxis][]; |
|
208 |
for(int i=0; i<numAxis; i++) mLayerRotatable[i] = tmp; |
|
209 |
} |
|
219 |
{{2,5},{2,4},{3,4},{3,5}}, |
|
220 |
{{2,4},{2,5},{3,5},{3,4}}, |
|
221 |
{{0,5},{1,5},{1,4},{0,4}}, |
|
222 |
{{0,4},{1,4},{1,5},{0,5}}, |
|
223 |
{{1,3},{0,3},{0,2},{1,2}}, |
|
224 |
{{0,3},{1,3},{1,2},{0,2}}, |
|
225 |
}; |
|
226 |
} |
|
227 |
|
|
228 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
229 |
|
|
230 |
public float[] getDist3D(int[] numLayers) |
|
231 |
{ |
|
232 |
return null; |
|
210 | 233 |
} |
211 | 234 |
|
212 | 235 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
441 | 464 |
return ROT_AXIS; |
442 | 465 |
} |
443 | 466 |
|
444 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
445 |
|
|
446 |
public Movement getMovement() |
|
447 |
{ |
|
448 |
if( mMovement==null ) |
|
449 |
{ |
|
450 |
int[] numLayers = getNumLayers(); |
|
451 |
if( mCuts==null ) getCuts(numLayers); |
|
452 |
getLayerRotatable(numLayers); |
|
453 |
mMovement = new Movement6(ROT_AXIS,mCuts,mLayerRotatable,numLayers[0],TYPE_SPLIT_EDGE,ENABLED); |
|
454 |
} |
|
455 |
return mMovement; |
|
456 |
} |
|
457 |
|
|
458 | 467 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
459 | 468 |
|
460 | 469 |
public int[] getBasicAngle() |
... | ... | |
484 | 493 |
return R.string.heli3_inventor; |
485 | 494 |
} |
486 | 495 |
|
496 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
497 |
|
|
498 |
public int getYearOfInvention(int[] numLayers) |
|
499 |
{ |
|
500 |
return 2006; |
|
501 |
} |
|
502 |
|
|
487 | 503 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
488 | 504 |
|
489 | 505 |
public int getComplexity(int[] numLayers) |
Also available in: Unified diff
Reorg for writing the JSON