Revision c9c71c3f
Added by Leszek Koltunski over 2 years ago
src/main/java/org/distorted/objectlib/main/TwistyObject.java | ||
---|---|---|
51 | 51 |
import org.distorted.objectlib.helpers.ObjectSticker; |
52 | 52 |
import org.distorted.objectlib.helpers.ScrambleState; |
53 | 53 |
import org.distorted.objectlib.json.JsonReader; |
54 |
import org.distorted.objectlib.movement.Movement;
|
|
55 |
import org.distorted.objectlib.movement.MovementCuboids;
|
|
56 |
import org.distorted.objectlib.movement.MovementDodecahedron;
|
|
57 |
import org.distorted.objectlib.movement.MovementHexahedron;
|
|
58 |
import org.distorted.objectlib.movement.MovementOctahedron;
|
|
59 |
import org.distorted.objectlib.movement.MovementTetrahedron;
|
|
54 |
import org.distorted.objectlib.touchcontrol.TouchControl;
|
|
55 |
import org.distorted.objectlib.touchcontrol.TouchControlCuboids;
|
|
56 |
import org.distorted.objectlib.touchcontrol.TouchControlDodecahedron;
|
|
57 |
import org.distorted.objectlib.touchcontrol.TouchControlHexahedron;
|
|
58 |
import org.distorted.objectlib.touchcontrol.TouchControlOctahedron;
|
|
59 |
import org.distorted.objectlib.touchcontrol.TouchControlTetrahedron;
|
|
60 | 60 |
|
61 | 61 |
import java.io.DataInputStream; |
62 | 62 |
import java.io.IOException; |
63 | 63 |
import java.io.InputStream; |
64 | 64 |
import java.util.Random; |
65 | 65 |
|
66 |
import static org.distorted.objectlib.movement.Movement.MOVEMENT_TETRAHEDRON;
|
|
67 |
import static org.distorted.objectlib.movement.Movement.MOVEMENT_HEXAHEDRON;
|
|
68 |
import static org.distorted.objectlib.movement.Movement.MOVEMENT_OCTAHEDRON;
|
|
69 |
import static org.distorted.objectlib.movement.Movement.MOVEMENT_DODECAHEDRON;
|
|
70 |
import static org.distorted.objectlib.movement.Movement.MOVEMENT_SHAPECHANGE;
|
|
66 |
import static org.distorted.objectlib.touchcontrol.TouchControl.TC_TETRAHEDRON;
|
|
67 |
import static org.distorted.objectlib.touchcontrol.TouchControl.TC_HEXAHEDRON;
|
|
68 |
import static org.distorted.objectlib.touchcontrol.TouchControl.TC_OCTAHEDRON;
|
|
69 |
import static org.distorted.objectlib.touchcontrol.TouchControl.TC_DODECAHEDRON;
|
|
70 |
import static org.distorted.objectlib.touchcontrol.TouchControl.TC_CUBOID;
|
|
71 | 71 |
|
72 | 72 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
73 | 73 |
|
... | ... | |
136 | 136 |
private int mCurrentRotAxis; |
137 | 137 |
private MeshBase mMesh; |
138 | 138 |
private TwistyObjectScrambler mScrambler; |
139 |
private Movement mMovement;
|
|
139 |
private TouchControl mTouchControl;
|
|
140 | 140 |
private boolean[][] mLayerRotatable; |
141 | 141 |
private int[][][] mEnabled; |
142 | 142 |
private DistortedNode mNode; |
... | ... | |
1136 | 1136 |
float scale = mObjectScreenRatio*mInitScreenRatio*nodeSize/mSize; |
1137 | 1137 |
mObjectScale.set(scale,scale,scale); |
1138 | 1138 |
|
1139 |
if( mMovement==null ) mMovement = getMovement();
|
|
1140 |
mMovement.setObjectRatio(mObjectScreenRatio*mInitScreenRatio);
|
|
1139 |
if( mTouchControl ==null ) mTouchControl = getMovement();
|
|
1140 |
mTouchControl.setObjectRatio(mObjectScreenRatio*mInitScreenRatio);
|
|
1141 | 1141 |
} |
1142 | 1142 |
|
1143 | 1143 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
1327 | 1327 |
|
1328 | 1328 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
1329 | 1329 |
|
1330 |
public Movement getMovement()
|
|
1330 |
public TouchControl getMovement()
|
|
1331 | 1331 |
{ |
1332 |
if( mMovement==null )
|
|
1332 |
if( mTouchControl ==null )
|
|
1333 | 1333 |
{ |
1334 | 1334 |
int[] numLayers = getNumLayers(); |
1335 | 1335 |
if( mCuts==null ) getCuts(numLayers); |
... | ... | |
1341 | 1341 |
|
1342 | 1342 |
switch(movementType) |
1343 | 1343 |
{ |
1344 |
case MOVEMENT_TETRAHEDRON : mMovement = new MovementTetrahedron(mAxis,mCuts,mLayerRotatable,mSize,movementSplit,mEnabled);
|
|
1345 |
break;
|
|
1346 |
case MOVEMENT_HEXAHEDRON : mMovement = new MovementHexahedron(mAxis,mCuts,mLayerRotatable,mSize,movementSplit,mEnabled);
|
|
1347 |
break;
|
|
1348 |
case MOVEMENT_OCTAHEDRON : mMovement = new MovementOctahedron(mAxis,mCuts,mLayerRotatable,mSize,movementSplit,mEnabled);
|
|
1349 |
break;
|
|
1350 |
case MOVEMENT_DODECAHEDRON: mMovement = new MovementDodecahedron(mAxis,mCuts,mLayerRotatable,mSize,movementSplit,mEnabled);
|
|
1351 |
break;
|
|
1352 |
case MOVEMENT_SHAPECHANGE : float[] dist3D = getDist3D(numLayers);
|
|
1353 |
mMovement = new MovementCuboids(mAxis,mCuts,mLayerRotatable,mSize,movementSplit,mEnabled,dist3D);
|
|
1354 |
break;
|
|
1344 |
case TC_TETRAHEDRON : mTouchControl = new TouchControlTetrahedron(mAxis,mCuts,mLayerRotatable,mSize,movementSplit,mEnabled);
|
|
1345 |
break; |
|
1346 |
case TC_HEXAHEDRON : mTouchControl = new TouchControlHexahedron(mAxis,mCuts,mLayerRotatable,mSize,movementSplit,mEnabled);
|
|
1347 |
break; |
|
1348 |
case TC_OCTAHEDRON : mTouchControl = new TouchControlOctahedron(mAxis,mCuts,mLayerRotatable,mSize,movementSplit,mEnabled);
|
|
1349 |
break; |
|
1350 |
case TC_DODECAHEDRON: mTouchControl = new TouchControlDodecahedron(mAxis,mCuts,mLayerRotatable,mSize,movementSplit,mEnabled);
|
|
1351 |
break; |
|
1352 |
case TC_CUBOID : float[] dist3D = getDist3D(numLayers);
|
|
1353 |
mTouchControl = new TouchControlCuboids(mAxis,mCuts,mLayerRotatable,mSize,movementSplit,mEnabled,dist3D);
|
|
1354 |
break; |
|
1355 | 1355 |
} |
1356 | 1356 |
} |
1357 |
return mMovement;
|
|
1357 |
return mTouchControl;
|
|
1358 | 1358 |
} |
1359 | 1359 |
|
1360 | 1360 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
Also available in: Unified diff
Abstract out the TouchControl stuff in preparation for its new type - TouchControlShapeChanging.