Project

General

Profile

« Previous | Next » 

Revision 59c20632

Added by Leszek Koltunski over 2 years ago

Reorg for writing the JSON

View differences:

src/main/java/org/distorted/objectlib/objects/TwistyDino.java
19 19

  
20 20
package org.distorted.objectlib.objects;
21 21

  
22
import static org.distorted.objectlib.main.Movement.MOVEMENT_HEXAHEDRON;
22 23
import static org.distorted.objectlib.main.Movement.TYPE_SPLIT_CORNER;
23 24

  
24 25
import android.content.res.Resources;
......
30 31
import org.distorted.library.type.Static4D;
31 32

  
32 33
import org.distorted.objectlib.R;
33
import org.distorted.objectlib.main.Movement;
34
import org.distorted.objectlib.main.Movement6;
35 34
import org.distorted.objectlib.helpers.ObjectShape;
36 35
import org.distorted.objectlib.helpers.ObjectSticker;
37 36
import org.distorted.objectlib.helpers.ScrambleState;
......
51 50
           new Static3D(+SQ3/3,-SQ3/3,-SQ3/3)
52 51
         };
53 52

  
54
  private static final int[][][] ENABLED = new int[][][]
55
      {
56
          {{0,1},{3,1},{2,3},{0,2}},
57
          {{2,3},{3,1},{0,1},{0,2}},
58
          {{1,2},{0,1},{0,3},{2,3}},
59
          {{1,2},{2,3},{0,3},{0,1}},
60
          {{0,3},{0,2},{1,2},{1,3}},
61
          {{1,2},{0,2},{0,3},{1,3}},
62
      };
63

  
64 53
  private int[] mBasicAngle;
65 54
  private Static4D[] mQuats;
66 55
  private float[][] mCuts;
67
  private boolean[][] mLayerRotatable;
68 56
  private ObjectSticker[] mStickers;
69 57
  private float[][] mCenters;
70
  private Movement mMovement;
71 58
  ScrambleState[] mStates;
72 59

  
73 60
///////////////////////////////////////////////////////////////////////////////////////////////////
......
129 116

  
130 117
///////////////////////////////////////////////////////////////////////////////////////////////////
131 118

  
132
  private void getLayerRotatable(int[] numLayers)
119
  public boolean[][] getLayerRotatable(int[] numLayers)
133 120
    {
134
    if( mLayerRotatable==null )
121
    int numAxis = ROT_AXIS.length;
122
    boolean[] tmp = new boolean[] {true,false,true};
123
    boolean[][] layerRotatable = new boolean[numAxis][];
124
    for(int i=0; i<numAxis; i++) layerRotatable[i] = tmp;
125

  
126
    return layerRotatable;
127
    }
128

  
129
///////////////////////////////////////////////////////////////////////////////////////////////////
130

  
131
  public int getMovementType()
132
    {
133
    return MOVEMENT_HEXAHEDRON;
134
    }
135

  
136
///////////////////////////////////////////////////////////////////////////////////////////////////
137

  
138
  public int getMovementSplit()
139
    {
140
    return TYPE_SPLIT_CORNER;
141
    }
142

  
143
///////////////////////////////////////////////////////////////////////////////////////////////////
144

  
145
  public int[][][] getEnabled()
146
    {
147
    return new int[][][]
135 148
      {
136
      int numAxis = ROT_AXIS.length;
137
      boolean[] tmp = new boolean[] {true,false,true};
138
      mLayerRotatable = new boolean[numAxis][];
139
      for(int i=0; i<numAxis; i++) mLayerRotatable[i] = tmp;
140
      }
149
          {{0,1},{3,1},{2,3},{0,2}},
150
          {{2,3},{3,1},{0,1},{0,2}},
151
          {{1,2},{0,1},{0,3},{2,3}},
152
          {{1,2},{2,3},{0,3},{0,1}},
153
          {{0,3},{0,2},{1,2},{1,3}},
154
          {{1,2},{0,2},{0,3},{1,3}},
155
      };
156
    }
157

  
158
///////////////////////////////////////////////////////////////////////////////////////////////////
159

  
160
  public float[] getDist3D(int[] numLayers)
161
    {
162
    return null;
141 163
    }
142 164

  
143 165
///////////////////////////////////////////////////////////////////////////////////////////////////
......
248 270
    return ROT_AXIS;
249 271
    }
250 272

  
251
///////////////////////////////////////////////////////////////////////////////////////////////////
252

  
253
  public Movement getMovement()
254
    {
255
    if( mMovement==null )
256
      {
257
      int[] numLayers = getNumLayers();
258
      if( mCuts==null ) getCuts(numLayers);
259
      getLayerRotatable(numLayers);
260
      mMovement = new Movement6(ROT_AXIS,mCuts,mLayerRotatable,numLayers[0],TYPE_SPLIT_CORNER,ENABLED);
261
      }
262
    return mMovement;
263
    }
264

  
265 273
///////////////////////////////////////////////////////////////////////////////////////////////////
266 274

  
267 275
  public int[] getBasicAngle()

Also available in: Unified diff