Revision d0e6cf7f
Added by Leszek Koltunski over 2 years ago
src/main/java/org/distorted/objectlib/objects/TwistyPyraminx.java | ||
---|---|---|
129 | 129 |
mStates[numLayers-1] = new ScrambleState( generateState(1,numLayers-2) ); |
130 | 130 |
} |
131 | 131 |
|
132 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
133 |
|
|
134 |
public int[] getSolvedQuats(int cubit, int[] numLayers) |
|
135 |
{ |
|
136 |
if( mQuats==null ) initializeQuats(); |
|
137 |
int status = retCubitSolvedStatus(cubit,numLayers); |
|
138 |
return status<0 ? null : buildSolvedQuats(TouchControlTetrahedron.FACE_AXIS[status],mQuats); |
|
139 |
} |
|
140 |
|
|
141 | 132 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
142 | 133 |
|
143 | 134 |
private void addTetrahedralLattice(int size, int index, float[][] pos) |
... | ... | |
176 | 167 |
} |
177 | 168 |
|
178 | 169 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
179 |
// there are (n^3-n)/6 octahedrons and ((n+1)^3 - (n+1))/6 tetrahedrons |
|
180 | 170 |
|
181 |
public float[][] getCubitPositions(int[] numLayers)
|
|
171 |
private int getNumOctahedrons(int numLayers)
|
|
182 | 172 |
{ |
183 |
int numL = numLayers[0]; |
|
184 |
int numOcta = (numL-1)*numL*(numL+1)/6; |
|
185 |
int numTetra= numL*(numL+1)*(numL+2)/6; |
|
186 |
float[][] ret = new float[numOcta+numTetra][]; |
|
173 |
return (numLayers-1)*numLayers*(numLayers+1)/6; |
|
174 |
} |
|
187 | 175 |
|
188 |
addTetrahedralLattice(numL-1, 0,ret); |
|
189 |
addTetrahedralLattice(numL ,numOcta,ret); |
|
176 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
190 | 177 |
|
191 |
return ret; |
|
178 |
public int[] getSolvedQuats(int cubit, int[] numLayers) |
|
179 |
{ |
|
180 |
if( mQuats==null ) initializeQuats(); |
|
181 |
int status = retCubitSolvedStatus(cubit,numLayers); |
|
182 |
return status<0 ? null : buildSolvedQuats(TouchControlTetrahedron.FACE_AXIS[status],mQuats); |
|
192 | 183 |
} |
193 | 184 |
|
194 | 185 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
280 | 271 |
} |
281 | 272 |
|
282 | 273 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
274 |
// there are (n^3-n)/6 octahedrons and ((n+1)^3 - (n+1))/6 tetrahedrons |
|
283 | 275 |
|
284 |
private int getNumOctahedrons(int numLayers)
|
|
276 |
public float[][] getCubitPositions(int[] numLayers)
|
|
285 | 277 |
{ |
286 |
return (numLayers-1)*numLayers*(numLayers+1)/6; |
|
278 |
int numL = numLayers[0]; |
|
279 |
int numOcta = (numL-1)*numL*(numL+1)/6; |
|
280 |
int numTetra= numL*(numL+1)*(numL+2)/6; |
|
281 |
float[][] ret = new float[numOcta+numTetra][]; |
|
282 |
|
|
283 |
addTetrahedralLattice(numL-1, 0,ret); |
|
284 |
addTetrahedralLattice(numL ,numOcta,ret); |
|
285 |
|
|
286 |
return ret; |
|
287 |
} |
|
288 |
|
|
289 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
290 |
|
|
291 |
public Static4D getCubitQuats(int cubit, int[] numLayers) |
|
292 |
{ |
|
293 |
if( mQuats==null ) initializeQuats(); |
|
294 |
return mQuats[0]; |
|
287 | 295 |
} |
288 | 296 |
|
289 | 297 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
336 | 344 |
} |
337 | 345 |
} |
338 | 346 |
|
339 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
340 |
|
|
341 |
public Static4D getQuat(int cubit, int[] numLayers) |
|
342 |
{ |
|
343 |
if( mQuats==null ) initializeQuats(); |
|
344 |
return mQuats[0]; |
|
345 |
} |
|
346 |
|
|
347 | 347 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
348 | 348 |
|
349 | 349 |
public int getNumCubitVariants(int[] numLayers) |
Also available in: Unified diff
Simplification.