|
CubeTwister 2.0alpha141 2011-10-13 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectch.randelshofer.rubik.AbstractCube
ch.randelshofer.rubik.RevengeCube
public class RevengeCube
Represents the state of a 4-times sliced cube (Revenge Cube) by the location and orientation of its parts.
A Revenge Cube has 8 corner parts, 24 edge parts, 24 side parts and one center part. The parts divide each face of the cube into 4 x 4 layers.
Corner parts
The following diagram shows the initial orientations and locations of the corner parts:
+---+---+---+---+
|4.0| |2.0|
+---+ +---+
| |
+ u +
| |
+---+ +---+
|6.0| |0.0|
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
|4.1| |6.2|6.1| |0.2|0.1| |2.2|2.1| |4.2|
+---+ +---+---+ +---+---+ +---+---+ +---+
| | | | |
+ l + f + r + b +
| | | | |
+---+ +---+---+ +---+---+ +---+---+ +---+
|5.2| |7.1|7.2| |1.1|1.2| |3.1|3.2| |5.1|
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
|7.0| |1.0|
+---+ +---+
| |
+ d +
| |
+---+ +---+
|5.0| |3.0|
+---+---+---+---+
Edge parts
The following diagram shows the initial orientations and locations of the edge parts. The first 12 edges are located near the origins of the x-, y- and z-axis. The second 12 edges are located far from the origin of the x-, y- and z-axis.
X--->
+---+---+---+---+
| |3.1|15 | |
Z +---+---+---+---+ Z
| |6.0| |0.0| |
v +---+ u +---+ v
|18 | |12 |
+---+---+---+---+
Z---> | |9.1|21 | | <---Z <---X
+---+---+---+---+---+---*---+---+---+---+---+---+---+---+---+---+
| |6.1|18 | | |9.0|21 | | |12 |0.1| | |15 |3.0| |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
^ |19 | |22 |22 | |13 |13 | |16 |16 | |19 | ^
| +---+ l +---+---+ f +---+---+ r +---+---+ b +---+ |
Y |7.0| 10.0|10.1 |1.1|1.0| |4.0|4.1| |7.1| Y
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| |8.1|20 | | 11.0|23 | | |14 |2.1| | |17 |5.0| |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---*---+---+
Z---> | 11.1|23 | | <---Z <---X
+---+---+---+---+
|20 | |14 |
+---+ d +---+ ^
|8.0| |2.0| |
+---+---+---+---+ Z
| |5.1|17 | |
+---+---+---+---+
X--->
Side parts
The following diagram shows the initial orientation and location of the face parts:
+---+---+---+---+
| .1 |
+ +---+---+ +
| | 1 | 7 | |
+ .0+---+---+.2 +
| |19 |13 | |
+ +---+---+ +
| .3 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| .0 | .2 | .3 | .1 |
+ +---+---+ + +---+---+ + +---+---+ + +---+---+ +
| |21 | 3 | | | 8 |14 | | |12 |18 | | | 5 |11 | |
+ .3+---+---+.1 + .1+---+---+.3 + .2+---+---+.0 + .0+---+---+.2 +
| |15 | 9 | | | 2 |20 | | | 6 | 0 | | |23 |17 | |
+ +---+---+ + +---+---+ + +---+---+ + +---+---+ +
| .2 | .0 | .1 | .3 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| .0 |
+ +---+---+ +
| |22 | 4 | |
+ .3+---+---+.1 +
| |16 |10 | |
+ +---+---+ +
| .2 |
+---+---+---+---+
For more information about the location and orientation of the parts see
AbstractCube.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class ch.randelshofer.rubik.AbstractCube |
|---|
AbstractCube.TransformType |
| Field Summary |
|---|
| Fields inherited from class ch.randelshofer.rubik.AbstractCube |
|---|
CENTER_PART, CENTER_TO_SIDE_MAP, CORNER_PART, CORNER_SWIPE_TABLE, CORNER_TO_FACE_MAP, cornerLoc, cornerOrient, EDGE_PART, EDGE_TO_ANGLE_MAP, EDGE_TO_AXIS_MAP, EDGE_TO_FACE_MAP, edgeLoc, edgeOrient, layerCount, NUMBER_OF_CORNER_PARTS, SIDE_PART, sideLoc, sideOrient, transformAngle, transformAxis, transformMask, transformType |
| Constructor Summary | |
|---|---|
RevengeCube()
Creates a new instance. |
|
| Method Summary | |
|---|---|
int |
getPartLayerMask(int part,
int orientation)
Returns the current layer mask on which the orientation of the part lies. |
int |
getPartSwipeAngle(int part,
int orientation,
int swipeDirection)
Returns the angle on which the orientation of the part can be swiped into the specified direction. |
int |
getPartSwipeAxis(int part,
int orientation,
int swipeDirection)
Returns the axis on which the orientation of the part can be swiped into the specified direction. |
int |
getPartSwipeLayerMask(int part,
int orientation,
int swipeDirection)
Returns the layer mask on which the orientation of the part can be swiped into the specified direction. |
void |
setToStickers(int[][] stickers)
Sets the cube to a state where the faces of the parts map to the provided stickers array. |
int[][] |
toStickers()
Converts the cube into a stickers array reflecting the current permutation of the cube. |
protected void |
transform0(int axis,
int layerMask,
int angle)
Transforms the cube and fires a cubeTwisted event. |
| Methods inherited from class java.lang.Object |
|---|
finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public RevengeCube()
| Method Detail |
|---|
protected void transform0(int axis,
int layerMask,
int angle)
transform0 in class AbstractCubeaxis - 0=x, 1=y, 2=z axis.layerMask - A bitmask specifying the layers to be transformed.
The size of the layer mask depends on the value returned by
getLayerCount(axis). For a 3x3x3 cube, the layer mask has the
following meaning:
15=rotate the whole cube;angle - positive values=clockwise rotationAbstractCube.getLayerCount()
public int getPartLayerMask(int part,
int orientation)
getPartLayerMask in interface CubegetPartLayerMask in class AbstractCubepublic int[][] toStickers()
Cube
Cube.setToStickers(int[][])public void setToStickers(int[][] stickers)
Cube
stickers - Sticker array to be reused. The method creates a new
array if this parameter is null.
public int getPartSwipeAxis(int part,
int orientation,
int swipeDirection)
Cube
part - The part index.orientation - The orientation of the part where swiping is performed.swipeDirection - The direction of the swipe. 0=up,1=right,2=down,4=left.
public int getPartSwipeLayerMask(int part,
int orientation,
int swipeDirection)
Cube
part - The part index.orientation - The orientation of the part where swiping is performed.swipeDirection - The direction of the swipe. 0=up,1=right,2=down,4=left.
public int getPartSwipeAngle(int part,
int orientation,
int swipeDirection)
Cube
part - The part index.orientation - The orientation of the part where swiping is performed.swipeDirection - The direction of the swipe. 0=up,1=right,2=down,4=left.
|
(c) Werner Randelshofer. All rights reserved. |
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||