@Override public CubeSpaceState turn(final Turn userTurn) { final Turn cubeTurn = SymTransform.getTurn(userTurn, cubeSym); if (!cubeTurn.isB()) return null; final int cs = SymTransform.getSymmetry(cubeSym, userTurn); final int cp = t.cornerPosTable.turn(cubeTurn, cornerPos); final int mep = t.mEdgePosTable.turn(cubeTurn, mEdgePos); final int udep = t.udEdgePosTable.turn(cubeTurn, udEdgePos); return new FullState(cs, cp, mep, udep, t); }