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/TwistyHelicopter.java
437 437
      }
438 438
    }
439 439

  
440
///////////////////////////////////////////////////////////////////////////////////////////////////
441
// remember about the double cover or unit quaternions!
442

  
443
  private int mulQuat(int q1, int q2)
444
    {
445
    Static4D result = RubikSurfaceView.quatMultiply(QUATS[q1],QUATS[q2]);
446

  
447
    float rX = result.get0();
448
    float rY = result.get1();
449
    float rZ = result.get2();
450
    float rW = result.get3();
451

  
452
    final float MAX_ERROR = 0.1f;
453
    float dX,dY,dZ,dW;
454

  
455
    for(int i=0; i<QUATS.length; i++)
456
      {
457
      dX = QUATS[i].get0() - rX;
458
      dY = QUATS[i].get1() - rY;
459
      dZ = QUATS[i].get2() - rZ;
460
      dW = QUATS[i].get3() - rW;
461

  
462
      if( dX<MAX_ERROR && dX>-MAX_ERROR &&
463
          dY<MAX_ERROR && dY>-MAX_ERROR &&
464
          dZ<MAX_ERROR && dZ>-MAX_ERROR &&
465
          dW<MAX_ERROR && dW>-MAX_ERROR  ) return i;
466

  
467
      dX = QUATS[i].get0() + rX;
468
      dY = QUATS[i].get1() + rY;
469
      dZ = QUATS[i].get2() + rZ;
470
      dW = QUATS[i].get3() + rW;
471

  
472
      if( dX<MAX_ERROR && dX>-MAX_ERROR &&
473
          dY<MAX_ERROR && dY>-MAX_ERROR &&
474
          dZ<MAX_ERROR && dZ>-MAX_ERROR &&
475
          dW<MAX_ERROR && dW>-MAX_ERROR  ) return i;
476
      }
477

  
478
    return -1;
479
    }
480

  
481 440
///////////////////////////////////////////////////////////////////////////////////////////////////
482 441
// The Helicopter is solved if and only if:
483 442
//

Also available in: Unified diff