Project

General

Profile

« Previous | Next » 

Revision cb137f36

Added by Leszek Koltunski about 3 years ago

Objects: tidy up some repeated code.

View differences:

src/main/java/org/distorted/objects/TwistySkewb.java
33 33
import org.distorted.library.type.Static3D;
34 34
import org.distorted.library.type.Static4D;
35 35
import org.distorted.main.R;
36
import org.distorted.main.RubikSurfaceView;
37 36

  
38 37
import java.util.Random;
39 38

  
......
658 657
      }
659 658
    }
660 659

  
661
///////////////////////////////////////////////////////////////////////////////////////////////////
662
// remember about the double cover or unit quaternions!
663

  
664
  private int mulQuat(int q1, int q2)
665
    {
666
    Static4D result = RubikSurfaceView.quatMultiply(QUATS[q1],QUATS[q2]);
667

  
668
    float rX = result.get0();
669
    float rY = result.get1();
670
    float rZ = result.get2();
671
    float rW = result.get3();
672

  
673
    final float MAX_ERROR = 0.1f;
674
    float dX,dY,dZ,dW;
675

  
676
    for(int i=0; i<QUATS.length; i++)
677
      {
678
      dX = QUATS[i].get0() - rX;
679
      dY = QUATS[i].get1() - rY;
680
      dZ = QUATS[i].get2() - rZ;
681
      dW = QUATS[i].get3() - rW;
682

  
683
      if( dX<MAX_ERROR && dX>-MAX_ERROR &&
684
          dY<MAX_ERROR && dY>-MAX_ERROR &&
685
          dZ<MAX_ERROR && dZ>-MAX_ERROR &&
686
          dW<MAX_ERROR && dW>-MAX_ERROR  ) return i;
687

  
688
      dX = QUATS[i].get0() + rX;
689
      dY = QUATS[i].get1() + rY;
690
      dZ = QUATS[i].get2() + rZ;
691
      dW = QUATS[i].get3() + rW;
692

  
693
      if( dX<MAX_ERROR && dX>-MAX_ERROR &&
694
          dY<MAX_ERROR && dY>-MAX_ERROR &&
695
          dZ<MAX_ERROR && dZ>-MAX_ERROR &&
696
          dW<MAX_ERROR && dW>-MAX_ERROR  ) return i;
697
      }
698

  
699
    return -1;
700
    }
701

  
702 660
///////////////////////////////////////////////////////////////////////////////////////////////////
703 661
// The Skewb is solved if and only if:
704 662
//

Also available in: Unified diff