Revision ba6d9ee9
Added by Leszek Koltunski over 2 years ago
src/main/java/org/distorted/objectlib/main/Movement.java | ||
---|---|---|
61 | 61 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
62 | 62 |
|
63 | 63 |
Movement(Static3D[] rotAxis, Static3D[] faceAxis, float[][] cuts, boolean[][] rotatable, |
64 |
float distance3D, int size, int type, int[][][] enabled)
|
|
64 |
float distance3D, float size, int type, int[][][] enabled)
|
|
65 | 65 |
{ |
66 | 66 |
mPoint = new float[3]; |
67 | 67 |
mCamera= new float[3]; |
... | ... | |
268 | 268 |
|
269 | 269 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
270 | 270 |
|
271 |
private float[] computeBorder(float[] cuts, boolean[] rotatable, int size)
|
|
271 |
private float[] computeBorder(float[] cuts, boolean[] rotatable, float size)
|
|
272 | 272 |
{ |
273 | 273 |
if( cuts==null ) return null; |
274 | 274 |
|
... | ... | |
306 | 306 |
} |
307 | 307 |
|
308 | 308 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
309 |
// size, not numLayers (see Master Skewb where size!=numLayers) |
|
309 |
// size, not numLayers (see Master Skewb where size!=numLayers) - also cuboids.
|
|
310 | 310 |
|
311 |
void computeBorders(float[][] cuts, boolean[][] rotatable, int size)
|
|
311 |
void computeBorders(float[][] cuts, boolean[][] rotatable, float size)
|
|
312 | 312 |
{ |
313 | 313 |
int numCuts = cuts.length; |
314 | 314 |
mTouchBorders = new float[numCuts][]; |
315 | 315 |
|
316 |
for(int i=0; i<numCuts; i++)
|
|
316 |
for(int axis=0; axis<numCuts; axis++)
|
|
317 | 317 |
{ |
318 |
mTouchBorders[i] = computeBorder(cuts[i],rotatable[i],size);
|
|
318 |
mTouchBorders[axis] = computeBorder(cuts[axis],rotatable[axis],size);
|
|
319 | 319 |
} |
320 | 320 |
} |
321 | 321 |
|
src/main/java/org/distorted/objectlib/main/Movement12.java | ||
---|---|---|
54 | 54 |
|
55 | 55 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
56 | 56 |
|
57 |
public Movement12(Static3D[] rotAxis,float[][] cuts, boolean[][] rotatable, int size, int type, int[][][] enabled)
|
|
57 |
public Movement12(Static3D[] rotAxis,float[][] cuts, boolean[][] rotatable, float size, int type, int[][][] enabled)
|
|
58 | 58 |
{ |
59 | 59 |
super(rotAxis, FACE_AXIS, cuts,rotatable,DIST3D, size, type, enabled); |
60 | 60 |
} |
src/main/java/org/distorted/objectlib/main/Movement4.java | ||
---|---|---|
39 | 39 |
|
40 | 40 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
41 | 41 |
|
42 |
public Movement4(Static3D[] rotAxis,float[][] cuts, boolean[][] rotatable, int size, int type, int[][][] enabled)
|
|
42 |
public Movement4(Static3D[] rotAxis,float[][] cuts, boolean[][] rotatable, float size, int type, int[][][] enabled)
|
|
43 | 43 |
{ |
44 | 44 |
super(rotAxis, FACE_AXIS, cuts, rotatable, DIST3D, size, type, enabled); |
45 | 45 |
} |
src/main/java/org/distorted/objectlib/main/Movement6.java | ||
---|---|---|
38 | 38 |
|
39 | 39 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
40 | 40 |
|
41 |
public Movement6(Static3D[] rotAxis,float[][] cuts, boolean[][] rotatable, int size, int type, int[][][] enabled)
|
|
41 |
public Movement6(Static3D[] rotAxis,float[][] cuts, boolean[][] rotatable, float size, int type, int[][][] enabled)
|
|
42 | 42 |
{ |
43 | 43 |
super(rotAxis, FACE_AXIS, cuts, rotatable, DIST3D, size, type, enabled); |
44 | 44 |
} |
src/main/java/org/distorted/objectlib/main/Movement8.java | ||
---|---|---|
39 | 39 |
|
40 | 40 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
41 | 41 |
|
42 |
public Movement8(Static3D[] rotAxis,float[][] cuts, boolean[][] rotatable, int size, int type, int[][][] enabled)
|
|
42 |
public Movement8(Static3D[] rotAxis,float[][] cuts, boolean[][] rotatable, float size, int type, int[][][] enabled)
|
|
43 | 43 |
{ |
44 | 44 |
super(rotAxis, FACE_AXIS, cuts, rotatable, DIST3D, size, type, enabled); |
45 | 45 |
} |
src/main/java/org/distorted/objectlib/main/ObjectType.java | ||
---|---|---|
184 | 184 |
case 0: |
185 | 185 |
case 1: |
186 | 186 |
case 2: |
187 |
case 3: return new TwistyCuboid(numL, quat, move, texture, mesh, effects, res, surfaceW, surfaceH); |
|
187 |
case 3: return new TwistyCuboid (numL, quat, move, texture, mesh, effects, res, surfaceW, surfaceH);
|
|
188 | 188 |
case 4: return new TwistyJing (numL, quat, move, texture, mesh, effects, res, surfaceW, surfaceH); |
189 | 189 |
case 5: |
190 | 190 |
case 6: |
src/main/java/org/distorted/objectlib/objects/TwistyCuboid.java | ||
---|---|---|
545 | 545 |
{ |
546 | 546 |
mCuts = new float[3][]; |
547 | 547 |
|
548 |
int lenX = numLayers[0]; |
|
549 |
|
|
550 |
if( lenX>=2 ) |
|
548 |
for(int axis=0; axis<3; axis++) |
|
551 | 549 |
{ |
552 |
mCuts[0] = new float[lenX-1]; |
|
553 |
for(int i=0; i<lenX-1; i++) mCuts[0][i] = (2-lenX)*0.5f + i; |
|
554 |
} |
|
555 |
else |
|
556 |
{ |
|
557 |
mCuts[0] = null; |
|
558 |
} |
|
550 |
int len = numLayers[axis]; |
|
551 |
float start = (2-len)*0.5f; |
|
559 | 552 |
|
560 |
int lenY = numLayers[1]; |
|
561 |
|
|
562 |
if( lenY>=2 ) |
|
563 |
{ |
|
564 |
mCuts[1] = new float[lenY-1]; |
|
565 |
for(int i=0; i<lenY-1; i++) mCuts[1][i] = (2-lenY)*0.5f + i; |
|
566 |
} |
|
567 |
else |
|
568 |
{ |
|
569 |
mCuts[1] = null; |
|
570 |
} |
|
571 |
|
|
572 |
int lenZ = numLayers[2]; |
|
573 |
|
|
574 |
if( lenZ>=2 ) |
|
575 |
{ |
|
576 |
mCuts[2] = new float[lenZ-1]; |
|
577 |
for(int i=0; i<lenZ-1; i++) mCuts[2][i] = (2-lenZ)*0.5f + i; |
|
578 |
} |
|
579 |
else |
|
580 |
{ |
|
581 |
mCuts[2] = null; |
|
553 |
if( len>=2 ) |
|
554 |
{ |
|
555 |
mCuts[axis] = new float[len-1]; |
|
556 |
for(int i=0; i<len-1; i++) mCuts[axis][i] = start+i; |
|
557 |
} |
|
582 | 558 |
} |
583 | 559 |
} |
584 | 560 |
|
... | ... | |
641 | 617 |
int[] numLayers = getNumLayers(); |
642 | 618 |
if( mCuts==null ) getCuts(numLayers); |
643 | 619 |
getLayerRotatable(numLayers); |
644 |
mMovement = new Movement6(ROT_AXIS,mCuts,mLayerRotatable,numLayers[0],TYPE_NOT_SPLIT,ENABLED); |
|
620 |
float avg = (numLayers[0]+numLayers[1]+numLayers[2])/3.0f; |
|
621 |
mMovement = new Movement6(ROT_AXIS,mCuts,mLayerRotatable,avg,TYPE_NOT_SPLIT,ENABLED); |
|
645 | 622 |
} |
646 | 623 |
return mMovement; |
647 | 624 |
} |
... | ... | |
669 | 646 |
{ |
670 | 647 |
switch(numLayers[0]) |
671 | 648 |
{ |
672 |
case 2: return numLayers[1]==2 ? ObjectType.CUBE_2 : ObjectType.CU_223;
|
|
673 |
case 3: return numLayers[1]==3 ? ObjectType.CUBE_3 : ObjectType.CU_334;
|
|
649 |
case 2: return ObjectType.CUBE_2;
|
|
650 |
case 3: return ObjectType.CUBE_3;
|
|
674 | 651 |
case 4: return ObjectType.CUBE_4; |
675 | 652 |
case 5: return ObjectType.CUBE_5; |
676 | 653 |
} |
Also available in: Unified diff
Cuboids