Project

General

Profile

« Previous | Next » 

Revision 6612cbb4

Added by Leszek Koltunski 11 months ago

Progress with scrambling a bandaged pyraminx.

View differences:

src/main/java/org/distorted/objectlib/objects/TwistyBandagedPyraminx.java
31 31

  
32 32
public class TwistyBandagedPyraminx extends ShapeTetrahedron
33 33
{
34
  public static final String OBJECT_NAME = "LOCAL_PYRAMINX";
34
  public static final String OBJECT_NAME_PYRAMINX = "LOCAL_PYRAMINX";
35 35

  
36 36
  private static final Static3D[] ROT_AXIS = new Static3D[]
37 37
        {
......
66 66

  
67 67
///////////////////////////////////////////////////////////////////////////////////////////////////
68 68

  
69
  private boolean isTetCubitFaceOnPuzzleFace(float[] pos, int numLayers, int face)
70
    {
71
    Static3D ax= TouchControlTetrahedron.FACE_AXIS[face];
72
    float dist = pos[0]*ax.get0() + pos[1]*ax.get1() + pos[2]*ax.get2();
73
    return (dist > (numLayers-1)*SQ6/12 - 0.001f);
74
    }
75

  
76
///////////////////////////////////////////////////////////////////////////////////////////////////
77

  
78
  private int getType(float[] pos)
69
  private int getType(float[] pos, int numLayers)
79 70
    {
80 71
    if( pos.length>3 ) return OTHER;
81
    int[] numLayers = getNumLayers();
82
    int variant = FactoryBandagedPyraminx.getElementVariant(numLayers[0],pos[1]);
72
    int variant = FactoryBandagedPyraminx.getElementVariant(numLayers,pos[1]);
83 73
    return variant==0 ? OCT_1 : TET_1;
84 74
    }
85 75

  
86

  
87 76
///////////////////////////////////////////////////////////////////////////////////////////////////
88 77

  
89 78
  private int getType(int variant)
......
266 255

  
267 256
      for (int cubit=0; cubit<numCubits; cubit++)
268 257
        {
269
        int type = getType(positions[cubit]);
258
        int type = getType(positions[cubit],numLayers[0]);
270 259

  
271 260
        switch (type)
272 261
          {
......
425 414
    }
426 415

  
427 416
///////////////////////////////////////////////////////////////////////////////////////////////////
428
// TODO
429 417

  
430 418
  public ObjectSignature getSignature()
431 419
    {
432 420
    if( mSignature==null )
433 421
      {
434 422
      int[] numLayers = getNumLayers();
435
      mSignature = new ObjectSignature(numLayers[0],numLayers[1],numLayers[2],mPosition);
423
      mSignature = new ObjectSignature(numLayers[0],mPosition);
436 424
      }
437 425
    return mSignature;
438 426
    }
......
441 429

  
442 430
  public String getObjectName()
443 431
    {
444
    return OBJECT_NAME;
432
    return OBJECT_NAME_PYRAMINX;
445 433
    }
446 434

  
447 435
///////////////////////////////////////////////////////////////////////////////////////////////////

Also available in: Unified diff