Project

General

Profile

« Previous | Next » 

Revision ea9b68db

Added by Leszek Koltunski about 4 years ago

Progress with MeshJoin app.
Fix rotating in some apps.

View differences:

src/main/java/org/distorted/examples/generic/GenericSurfaceView.java
30 30

  
31 31
class GenericSurfaceView extends GLSurfaceView
32 32
  {
33
  private final static int DIRECTION_SENSITIVITY=  12;
33 34
  private int mX, mY;
34 35
  private GenericRenderer mRenderer;
35 36

  
......
56 57
    return mRenderer;
57 58
    }
58 59

  
60
///////////////////////////////////////////////////////////////////////////////////////////////////
61

  
62
  private void resetQuats()
63
    {
64
    float qx = mRenderer.mQuat1.get0();
65
    float qy = mRenderer.mQuat1.get1();
66
    float qz = mRenderer.mQuat1.get2();
67
    float qw = mRenderer.mQuat1.get3();
68

  
69
    float rx = mRenderer.mQuat2.get0();
70
    float ry = mRenderer.mQuat2.get1();
71
    float rz = mRenderer.mQuat2.get2();
72
    float rw = mRenderer.mQuat2.get3();
73

  
74
    float tx = rw*qx - rz*qy + ry*qz + rx*qw;
75
    float ty = rw*qy + rz*qx + ry*qw - rx*qz;
76
    float tz = rw*qz + rz*qw - ry*qx + rx*qy;
77
    float tw = rw*qw - rz*qz - ry*qy - rx*qx;
78

  
79
    mRenderer.mQuat1.set(0f, 0f, 0f, 1f);
80
    mRenderer.mQuat2.set(tx, ty, tz, tw);
81
    }
82

  
59 83
///////////////////////////////////////////////////////////////////////////////////////////////////
60 84

  
61 85
  @Override
......
90 114
                                        mRenderer.mQuat1.set(px*sinA, py*sinA, pz*sinA, cosA);
91 115
                                        }
92 116
                                      }
117

  
118
                                    if( (mX-x)*(mX-x) + (mY-y)*(mY-y) > mRenderer.mScreenMin*mRenderer.mScreenMin/(DIRECTION_SENSITIVITY*DIRECTION_SENSITIVITY) )
119
                                      {
120
                                      mX = x;
121
                                      mY = y;
122
                                      resetQuats();
123
                                      }
93 124
                                    break;
94 125

  
95 126
      case MotionEvent.ACTION_UP  : mX = -1;
96 127
                                    mY = -1;
97

  
98
                                    float qx = mRenderer.mQuat1.get0();
99
                                    float qy = mRenderer.mQuat1.get1();
100
                                    float qz = mRenderer.mQuat1.get2();
101
                                    float qw = mRenderer.mQuat1.get3();
102

  
103
                                    float rx = mRenderer.mQuat2.get0();
104
                                    float ry = mRenderer.mQuat2.get1();
105
                                    float rz = mRenderer.mQuat2.get2();
106
                                    float rw = mRenderer.mQuat2.get3();
107

  
108
                                    float tx = rw*qx - rz*qy + ry*qz + rx*qw;
109
                                    float ty = rw*qy + rz*qx + ry*qw - rx*qz;
110
                                    float tz = rw*qz + rz*qw - ry*qx + rx*qy;
111
                                    float tw = rw*qw - rz*qz - ry*qy - rx*qx;
112

  
113
                                    mRenderer.mQuat1.set(0f, 0f, 0f, 1f);
114
                                    mRenderer.mQuat2.set(tx, ty, tz, tw);
115

  
128
                                    resetQuats();
116 129
                                    break;
117 130
      }
118 131

  

Also available in: Unified diff