Revision 59c20632
Added by Leszek Koltunski over 2 years ago
src/main/java/org/distorted/objectlib/objects/TwistyDino.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_CORNER; |
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 |
import org.distorted.objectlib.main.Movement6; |
|
35 | 34 |
import org.distorted.objectlib.helpers.ObjectShape; |
36 | 35 |
import org.distorted.objectlib.helpers.ObjectSticker; |
37 | 36 |
import org.distorted.objectlib.helpers.ScrambleState; |
... | ... | |
51 | 50 |
new Static3D(+SQ3/3,-SQ3/3,-SQ3/3) |
52 | 51 |
}; |
53 | 52 |
|
54 |
private static final int[][][] ENABLED = new int[][][] |
|
55 |
{ |
|
56 |
{{0,1},{3,1},{2,3},{0,2}}, |
|
57 |
{{2,3},{3,1},{0,1},{0,2}}, |
|
58 |
{{1,2},{0,1},{0,3},{2,3}}, |
|
59 |
{{1,2},{2,3},{0,3},{0,1}}, |
|
60 |
{{0,3},{0,2},{1,2},{1,3}}, |
|
61 |
{{1,2},{0,2},{0,3},{1,3}}, |
|
62 |
}; |
|
63 |
|
|
64 | 53 |
private int[] mBasicAngle; |
65 | 54 |
private Static4D[] mQuats; |
66 | 55 |
private float[][] mCuts; |
67 |
private boolean[][] mLayerRotatable; |
|
68 | 56 |
private ObjectSticker[] mStickers; |
69 | 57 |
private float[][] mCenters; |
70 |
private Movement mMovement; |
|
71 | 58 |
ScrambleState[] mStates; |
72 | 59 |
|
73 | 60 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
129 | 116 |
|
130 | 117 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
131 | 118 |
|
132 |
private void getLayerRotatable(int[] numLayers)
|
|
119 |
public boolean[][] getLayerRotatable(int[] numLayers)
|
|
133 | 120 |
{ |
134 |
if( mLayerRotatable==null ) |
|
121 |
int numAxis = ROT_AXIS.length; |
|
122 |
boolean[] tmp = new boolean[] {true,false,true}; |
|
123 |
boolean[][] layerRotatable = new boolean[numAxis][]; |
|
124 |
for(int i=0; i<numAxis; i++) layerRotatable[i] = tmp; |
|
125 |
|
|
126 |
return layerRotatable; |
|
127 |
} |
|
128 |
|
|
129 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
130 |
|
|
131 |
public int getMovementType() |
|
132 |
{ |
|
133 |
return MOVEMENT_HEXAHEDRON; |
|
134 |
} |
|
135 |
|
|
136 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
137 |
|
|
138 |
public int getMovementSplit() |
|
139 |
{ |
|
140 |
return TYPE_SPLIT_CORNER; |
|
141 |
} |
|
142 |
|
|
143 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
144 |
|
|
145 |
public int[][][] getEnabled() |
|
146 |
{ |
|
147 |
return new int[][][] |
|
135 | 148 |
{ |
136 |
int numAxis = ROT_AXIS.length; |
|
137 |
boolean[] tmp = new boolean[] {true,false,true}; |
|
138 |
mLayerRotatable = new boolean[numAxis][]; |
|
139 |
for(int i=0; i<numAxis; i++) mLayerRotatable[i] = tmp; |
|
140 |
} |
|
149 |
{{0,1},{3,1},{2,3},{0,2}}, |
|
150 |
{{2,3},{3,1},{0,1},{0,2}}, |
|
151 |
{{1,2},{0,1},{0,3},{2,3}}, |
|
152 |
{{1,2},{2,3},{0,3},{0,1}}, |
|
153 |
{{0,3},{0,2},{1,2},{1,3}}, |
|
154 |
{{1,2},{0,2},{0,3},{1,3}}, |
|
155 |
}; |
|
156 |
} |
|
157 |
|
|
158 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
159 |
|
|
160 |
public float[] getDist3D(int[] numLayers) |
|
161 |
{ |
|
162 |
return null; |
|
141 | 163 |
} |
142 | 164 |
|
143 | 165 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
248 | 270 |
return ROT_AXIS; |
249 | 271 |
} |
250 | 272 |
|
251 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
252 |
|
|
253 |
public Movement getMovement() |
|
254 |
{ |
|
255 |
if( mMovement==null ) |
|
256 |
{ |
|
257 |
int[] numLayers = getNumLayers(); |
|
258 |
if( mCuts==null ) getCuts(numLayers); |
|
259 |
getLayerRotatable(numLayers); |
|
260 |
mMovement = new Movement6(ROT_AXIS,mCuts,mLayerRotatable,numLayers[0],TYPE_SPLIT_CORNER,ENABLED); |
|
261 |
} |
|
262 |
return mMovement; |
|
263 |
} |
|
264 |
|
|
265 | 273 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
266 | 274 |
|
267 | 275 |
public int[] getBasicAngle() |
Also available in: Unified diff
Reorg for writing the JSON