Revision 59c20632
Added by Leszek Koltunski over 2 years ago
src/main/java/org/distorted/objectlib/objects/TwistyIvy.java | ||
---|---|---|
20 | 20 |
package org.distorted.objectlib.objects; |
21 | 21 |
|
22 | 22 |
import static org.distorted.objectlib.main.Movement.TYPE_SPLIT_CORNER; |
23 |
import static org.distorted.objectlib.main.Movement.MOVEMENT_HEXAHEDRON; |
|
23 | 24 |
|
24 | 25 |
import android.content.res.Resources; |
25 | 26 |
|
... | ... | |
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; |
... | ... | |
51 | 51 |
new Static3D(+SQ3/3,-SQ3/3,-SQ3/3) |
52 | 52 |
}; |
53 | 53 |
|
54 |
private static final int[][][] ENABLED = new int[][][] |
|
55 |
{ |
|
56 |
{{0},{3},{3},{0}}, |
|
57 |
{{2},{1},{1},{2}}, |
|
58 |
{{2},{0},{0},{2}}, |
|
59 |
{{1},{3},{3},{1}}, |
|
60 |
{{0},{0},{1},{1}}, |
|
61 |
{{2},{2},{3},{3}}, |
|
62 |
}; |
|
63 |
|
|
64 | 54 |
private static final int NUM_STICKERS = 2; |
65 | 55 |
public static final float IVY_D = 0.006f; |
66 | 56 |
private static final int IVY_N = 8; |
... | ... | |
69 | 59 |
private int[] mBasicAngle; |
70 | 60 |
private Static4D[] mQuats; |
71 | 61 |
private float[][] mCuts; |
72 |
private boolean[][] mLayerRotatable; |
|
73 | 62 |
private int[][] mFaceMap; |
74 | 63 |
private ObjectSticker[] mStickers; |
75 |
private Movement mMovement; |
|
76 | 64 |
|
77 | 65 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
78 | 66 |
|
... | ... | |
147 | 135 |
|
148 | 136 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
149 | 137 |
|
150 |
protected int getSolvedFunctionIndex()
|
|
138 |
public int getSolvedFunctionIndex()
|
|
151 | 139 |
{ |
152 | 140 |
return 0; |
153 | 141 |
} |
... | ... | |
174 | 162 |
|
175 | 163 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
176 | 164 |
|
177 |
private void getLayerRotatable(int[] numLayers)
|
|
165 |
public boolean[][] getLayerRotatable(int[] numLayers)
|
|
178 | 166 |
{ |
179 |
if( mLayerRotatable==null ) |
|
180 |
{ |
|
181 |
int numAxis = ROT_AXIS.length; |
|
182 |
mLayerRotatable = new boolean[numAxis][]; |
|
167 |
int numAxis = ROT_AXIS.length; |
|
168 |
boolean[][] layerRotatable = new boolean[numAxis][]; |
|
183 | 169 |
|
184 |
for(int i=0; i<numAxis; i++) |
|
185 |
{ |
|
186 |
mLayerRotatable[i] = new boolean[numLayers[i]]; |
|
187 |
for(int j=0; j<numLayers[i]; j++) mLayerRotatable[i][j] = true; |
|
188 |
} |
|
170 |
for(int i=0; i<numAxis; i++) |
|
171 |
{ |
|
172 |
layerRotatable[i] = new boolean[numLayers[i]]; |
|
173 |
for(int j=0; j<numLayers[i]; j++) layerRotatable[i][j] = true; |
|
189 | 174 |
} |
175 |
|
|
176 |
return layerRotatable; |
|
177 |
} |
|
178 |
|
|
179 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
180 |
|
|
181 |
public int getMovementType() |
|
182 |
{ |
|
183 |
return MOVEMENT_HEXAHEDRON; |
|
184 |
} |
|
185 |
|
|
186 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
187 |
|
|
188 |
public int getMovementSplit() |
|
189 |
{ |
|
190 |
return TYPE_SPLIT_CORNER; |
|
191 |
} |
|
192 |
|
|
193 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
194 |
|
|
195 |
public int[][][] getEnabled() |
|
196 |
{ |
|
197 |
return new int[][][] |
|
198 |
{ |
|
199 |
{{0},{3},{3},{0}}, |
|
200 |
{{2},{1},{1},{2}}, |
|
201 |
{{2},{0},{0},{2}}, |
|
202 |
{{1},{3},{3},{1}}, |
|
203 |
{{0},{0},{1},{1}}, |
|
204 |
{{2},{2},{3},{3}}, |
|
205 |
}; |
|
206 |
} |
|
207 |
|
|
208 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
209 |
|
|
210 |
public float[] getDist3D(int[] numLayers) |
|
211 |
{ |
|
212 |
return null; |
|
190 | 213 |
} |
191 | 214 |
|
192 | 215 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
473 | 496 |
return ROT_AXIS; |
474 | 497 |
} |
475 | 498 |
|
476 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
477 |
|
|
478 |
public Movement getMovement() |
|
479 |
{ |
|
480 |
if( mMovement==null ) |
|
481 |
{ |
|
482 |
int[] numLayers = getNumLayers(); |
|
483 |
if( mCuts==null ) getCuts(numLayers); |
|
484 |
getLayerRotatable(numLayers); |
|
485 |
mMovement = new Movement6(ROT_AXIS,mCuts,mLayerRotatable,numLayers[0],TYPE_SPLIT_CORNER,ENABLED); |
|
486 |
} |
|
487 |
return mMovement; |
|
488 |
} |
|
489 |
|
|
490 | 499 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
491 | 500 |
|
492 | 501 |
public int[] getBasicAngle() |
... | ... | |
516 | 525 |
return R.string.ivy2_inventor; |
517 | 526 |
} |
518 | 527 |
|
528 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
529 |
|
|
530 |
public int getYearOfInvention(int[] numLayers) |
|
531 |
{ |
|
532 |
return 2009; |
|
533 |
} |
|
534 |
|
|
519 | 535 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
520 | 536 |
|
521 | 537 |
public int getComplexity(int[] numLayers) |
Also available in: Unified diff
Reorg for writing the JSON