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/TwistySkewb.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 34
import org.distorted.objectlib.main.Movement6;
35 35
import org.distorted.objectlib.main.ObjectControl;
36 36
import org.distorted.objectlib.main.ObjectType;
......
51 51
           new Static3D(+SQ3/3,-SQ3/3,-SQ3/3)
52 52
         };
53 53

  
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 54
  private ScrambleState[] mStates;
65 55
  private int[] mBasicAngle;
66 56
  private Static4D[] mQuats;
67 57
  private float[][] mCuts;
68
  private boolean[][] mLayerRotatable;
69 58
  private int[][] mCornerMap,mEdgeMap,mCenterMap;
70 59
  private ObjectSticker[] mStickers;
71
  private Movement mMovement;
72 60

  
73 61
///////////////////////////////////////////////////////////////////////////////////////////////////
74 62

  
......
173 161

  
174 162
///////////////////////////////////////////////////////////////////////////////////////////////////
175 163

  
176
  protected int getSolvedFunctionIndex()
164
  public int getSolvedFunctionIndex()
177 165
    {
178 166
    return 0;
179 167
    }
......
200 188

  
201 189
///////////////////////////////////////////////////////////////////////////////////////////////////
202 190

  
203
  private void getLayerRotatable(int[] numLayers)
191
  public boolean[][] getLayerRotatable(int[] numLayers)
192
    {
193
    int numAxis = ROT_AXIS.length;
194
    boolean[] tmp = numLayers[0]==2 ? (new boolean[] {true,true}) : (new boolean[] {true,false,true});
195
    boolean[][] layerRotatable = new boolean[numAxis][];
196
    for(int i=0; i<numAxis; i++) layerRotatable[i] = tmp;
197

  
198
    return layerRotatable;
199
    }
200

  
201
///////////////////////////////////////////////////////////////////////////////////////////////////
202

  
203
  public int getMovementType()
204
    {
205
    return MOVEMENT_HEXAHEDRON;
206
    }
207

  
208
///////////////////////////////////////////////////////////////////////////////////////////////////
209

  
210
  public int getMovementSplit()
211
    {
212
    return TYPE_SPLIT_CORNER;
213
    }
214

  
215
///////////////////////////////////////////////////////////////////////////////////////////////////
216

  
217
  public int[][][] getEnabled()
204 218
    {
205
    if( mLayerRotatable==null )
219
    return new int[][][]
206 220
      {
207
      int numAxis = ROT_AXIS.length;
208
      boolean[] tmp = numLayers[0]==2 ? (new boolean[] {true,true}) : (new boolean[] {true,false,true});
209
      mLayerRotatable = new boolean[numAxis][];
210
      for(int i=0; i<numAxis; i++) mLayerRotatable[i] = tmp;
211
      }
221
          {{0,1},{3,1},{2,3},{0,2}},
222
          {{2,3},{3,1},{0,1},{0,2}},
223
          {{1,2},{0,1},{0,3},{2,3}},
224
          {{1,2},{2,3},{0,3},{0,1}},
225
          {{0,3},{0,2},{1,2},{1,3}},
226
          {{1,2},{0,2},{0,3},{1,3}},
227
      };
228
    }
229

  
230
///////////////////////////////////////////////////////////////////////////////////////////////////
231

  
232
  public float[] getDist3D(int[] numLayers)
233
    {
234
    return null;
212 235
    }
213 236

  
214 237
///////////////////////////////////////////////////////////////////////////////////////////////////
......
551 574
      {
552 575
      float[][] STICKERS = new float[][]
553 576
          {
577
             { -0.5f, 0.25f, 0.25f,  -0.5f, 0.25f, 0.25f  },
554 578
             { -0.5f, 0.25f, 0.25f,  -0.5f, 0.25f, 0.25f  },
555 579
             { -0.5f, 0.00f, 0.00f,  -0.5f, 0.50f, 0.0f, 0.0f, 0.5f }
556 580
          };
......
570 594
        strokes[2]*=mult;
571 595
        }
572 596

  
573
      mStickers = new ObjectSticker[STICKERS.length+1];
597
      mStickers = new ObjectSticker[STICKERS.length];
574 598

  
575
      for(int s=0; s<STICKERS.length+1; s++)
599
      for(int s=0; s<STICKERS.length; s++)
576 600
        {
577
        int index = s<2 ? 0:1;
578
        mStickers[s] = new ObjectSticker(STICKERS[index],null,radii[s],strokes[s]);
601
        mStickers[s] = new ObjectSticker(STICKERS[s],null,radii[s],strokes[s]);
579 602
        }
580 603
      }
581 604

  
......
590 613
    return ROT_AXIS;
591 614
    }
592 615

  
593
///////////////////////////////////////////////////////////////////////////////////////////////////
594

  
595
  public Movement getMovement()
596
    {
597
    if( mMovement==null )
598
      {
599
      int[] numLayers = getNumLayers();
600
      if( mCuts==null ) getCuts(numLayers);
601
      getLayerRotatable(numLayers);
602
      mMovement = new Movement6(ROT_AXIS,mCuts,mLayerRotatable,2*numLayers[0]-2,TYPE_SPLIT_CORNER,ENABLED);
603
      }
604
    return mMovement;
605
    }
606

  
607 616
///////////////////////////////////////////////////////////////////////////////////////////////////
608 617

  
609 618
  public int[] getBasicAngle()
......
649 658
    return R.string.skew2_inventor;
650 659
    }
651 660

  
661
///////////////////////////////////////////////////////////////////////////////////////////////////
662

  
663
  public int getYearOfInvention(int[] numLayers)
664
    {
665
    switch(numLayers[0])
666
      {
667
      case 2: return 1982;
668
      case 3: return 2003;
669
      }
670
    return 1982;
671
    }
672

  
652 673
///////////////////////////////////////////////////////////////////////////////////////////////////
653 674

  
654 675
  public int getComplexity(int[] numLayers)

Also available in: Unified diff