Revision 45686da2
Added by Leszek Koltunski over 4 years ago
src/main/java/org/distorted/magic/RubikSurfaceView.java | ||
---|---|---|
59 | 59 |
private int mScreenWidth, mScreenHeight, mScreenMin; |
60 | 60 |
private float mCameraDistance; |
61 | 61 |
|
62 |
private static Static4D mQuatCurrent =new Static4D(0,0,0,1); |
|
63 |
private static Static4D mQuatAccumulated=new Static4D(-0.25189602f,0.3546389f,0.009657208f,0.90038127f); |
|
62 |
private static Static4D mQuatCurrent = new Static4D(0,0,0,1); |
|
63 |
private static Static4D mQuatAccumulated= new Static4D(-0.25189602f,0.3546389f,0.009657208f,0.90038127f); |
|
64 |
private static Static4D mTempCurrent = new Static4D(0,0,0,1); |
|
65 |
private static Static4D mTempAccumulated= new Static4D(0,0,0,1); |
|
64 | 66 |
|
65 | 67 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
66 | 68 |
|
... | ... | |
81 | 83 |
mScreenWidth = mScreenHeight = mScreenMin = 0; |
82 | 84 |
|
83 | 85 |
mRenderer = new RubikRenderer(this); |
84 |
mRenderer.setQuatAccumulated(mQuatAccumulated); |
|
85 | 86 |
|
86 | 87 |
final ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); |
87 | 88 |
final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo(); |
... | ... | |
120 | 121 |
break; |
121 | 122 |
case MotionEvent.ACTION_MOVE: if( mDragging ) |
122 | 123 |
{ |
123 |
mQuatCurrent.set(quatFromDrag(mX-x,mY-y));
|
|
124 |
mRenderer.setQuatCurrent(mQuatCurrent);
|
|
124 |
mTempCurrent.set(quatFromDrag(mX-x,mY-y));
|
|
125 |
mRenderer.setQuatCurrentOnNextRender();
|
|
125 | 126 |
} |
126 | 127 |
if( mBeginningRotation ) |
127 | 128 |
{ |
... | ... | |
141 | 142 |
break; |
142 | 143 |
case MotionEvent.ACTION_UP : if( mDragging ) |
143 | 144 |
{ |
144 |
mQuatAccumulated.set(quatMultiply(mQuatCurrent, mQuatAccumulated));
|
|
145 |
mQuatCurrent.set(0f, 0f, 0f, 1f);
|
|
146 |
mRenderer.setQuatCurrent(mQuatCurrent);
|
|
147 |
mRenderer.setQuatAccumulated(mQuatAccumulated);
|
|
145 |
mTempAccumulated.set(quatMultiply(mQuatCurrent, mQuatAccumulated));
|
|
146 |
mTempCurrent.set(0f, 0f, 0f, 1f);
|
|
147 |
mRenderer.setQuatCurrentOnNextRender();
|
|
148 |
mRenderer.setQuatAccumulatedOnNextRender();
|
|
148 | 149 |
} |
149 | 150 |
|
150 | 151 |
if( mContinuingRotation ) |
... | ... | |
158 | 159 |
return true; |
159 | 160 |
} |
160 | 161 |
|
162 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
163 |
|
|
164 |
void setQuatAccumulated() |
|
165 |
{ |
|
166 |
mQuatAccumulated.set(mTempAccumulated); |
|
167 |
} |
|
168 |
|
|
169 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
170 |
|
|
171 |
void setQuatCurrent() |
|
172 |
{ |
|
173 |
mQuatCurrent.set(mTempCurrent); |
|
174 |
} |
|
175 |
|
|
176 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
177 |
|
|
178 |
Static4D getQuatAccumulated() |
|
179 |
{ |
|
180 |
return mQuatAccumulated; |
|
181 |
} |
|
182 |
|
|
183 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
184 |
|
|
185 |
Static4D getQuatCurrent() |
|
186 |
{ |
|
187 |
return mQuatCurrent; |
|
188 |
} |
|
189 |
|
|
161 | 190 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
162 | 191 |
|
163 | 192 |
RubikRenderer getRenderer() |
Also available in: Unified diff
RubikCube: remove all awareness of rotations from RubikRenderer.