Revision cb137f36
Added by Leszek Koltunski about 3 years ago
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
Objects: tidy up some repeated code.