Revision 8becce57
Added by Leszek Koltunski about 4 years ago
src/main/java/org/distorted/magic/RubikSurfaceView.java | ||
---|---|---|
58 | 58 |
private final Static4D CAMERA_POINT = new Static4D(0, 0, (float)Math.sqrt(3)*0.5f, 0); |
59 | 59 |
|
60 | 60 |
private RubikRenderer mRenderer; |
61 |
private RubikPostRender mPostRender; |
|
61 | 62 |
private RubikObjectMovement mMovement; |
62 | 63 |
private boolean mDragging, mBeginningRotation, mContinuingRotation; |
63 | 64 |
private int mScreenWidth, mScreenHeight, mScreenMin; |
... | ... | |
96 | 97 |
return mRenderer; |
97 | 98 |
} |
98 | 99 |
|
100 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
101 |
|
|
102 |
RubikPostRender getPostRender() |
|
103 |
{ |
|
104 |
return mPostRender; |
|
105 |
} |
|
106 |
|
|
99 | 107 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
100 | 108 |
|
101 | 109 |
void setQuatAccumulated() |
... | ... | |
177 | 185 |
if( mMovement!=null && mMovement.faceTouched(rotatedTouchPoint1,rotatedCamera) ) |
178 | 186 |
{ |
179 | 187 |
mDragging = false; |
180 |
mBeginningRotation = mRenderer.canRotate();
|
|
188 |
mBeginningRotation = mPostRender.canRotate();
|
|
181 | 189 |
mContinuingRotation = false; |
182 | 190 |
} |
183 | 191 |
else |
184 | 192 |
{ |
185 |
mDragging = mRenderer.canDrag();
|
|
193 |
mDragging = mPostRender.canDrag();
|
|
186 | 194 |
mBeginningRotation = false; |
187 | 195 |
mContinuingRotation = false; |
188 | 196 |
} |
... | ... | |
288 | 296 |
|
289 | 297 |
if(!isInEditMode()) |
290 | 298 |
{ |
291 |
mRenderer = new RubikRenderer(this); |
|
299 |
mRenderer = new RubikRenderer(this); |
|
300 |
mPostRender = new RubikPostRender(this); |
|
292 | 301 |
|
293 | 302 |
final ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); |
294 | 303 |
final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo(); |
... | ... | |
323 | 332 |
Static4D rotatedTouchPoint2= rotateVectorByInvertedQuat(touchPoint2, mQuatAccumulated); |
324 | 333 |
|
325 | 334 |
Static2D res = mMovement.newRotation(rotatedTouchPoint2); |
326 |
RubikObject object = mRenderer.getObject();
|
|
335 |
RubikObject object = mPostRender.getObject();
|
|
327 | 336 |
|
328 | 337 |
int axis = (int)res.get0(); |
329 | 338 |
float offset = res.get1(); |
... | ... | |
345 | 354 |
else if( mContinuingRotation ) |
346 | 355 |
{ |
347 | 356 |
float angle = continueRotation(x-mStartRotX,y-mStartRotY); |
348 |
mRenderer.getObject().continueRotation(SWIPING_SENSITIVITY*angle);
|
|
357 |
mPostRender.getObject().continueRotation(SWIPING_SENSITIVITY*angle);
|
|
349 | 358 |
} |
350 | 359 |
else if( mDragging ) |
351 | 360 |
{ |
352 | 361 |
mTempCurrent.set(quatFromDrag(mX-x,y-mY)); |
353 |
mRenderer.setQuatCurrentOnNextRender();
|
|
362 |
mPostRender.setQuatCurrentOnNextRender();
|
|
354 | 363 |
|
355 | 364 |
if( (mX-x)*(mX-x) + (mY-y)*(mY-y) > 1.0f/(DIRECTION_SENSITIVITY*DIRECTION_SENSITIVITY) ) |
356 | 365 |
{ |
... | ... | |
358 | 367 |
mY = y; |
359 | 368 |
mTempAccumulated.set(quatMultiply(mQuatCurrent, mQuatAccumulated)); |
360 | 369 |
mTempCurrent.set(0f, 0f, 0f, 1f); |
361 |
mRenderer.setQuatCurrentOnNextRender();
|
|
362 |
mRenderer.setQuatAccumulatedOnNextRender();
|
|
370 |
mPostRender.setQuatCurrentOnNextRender();
|
|
371 |
mPostRender.setQuatAccumulatedOnNextRender();
|
|
363 | 372 |
} |
364 | 373 |
} |
365 |
else if( mRenderer.canRotate() || mRenderer.canDrag() )
|
|
374 |
else if( mPostRender.canRotate() || mPostRender.canDrag() )
|
|
366 | 375 |
{ |
367 | 376 |
setUpDragOrRotate(x,y); |
368 | 377 |
} |
... | ... | |
371 | 380 |
{ |
372 | 381 |
mTempAccumulated.set(quatMultiply(mQuatCurrent, mQuatAccumulated)); |
373 | 382 |
mTempCurrent.set(0f, 0f, 0f, 1f); |
374 |
mRenderer.setQuatCurrentOnNextRender();
|
|
375 |
mRenderer.setQuatAccumulatedOnNextRender();
|
|
383 |
mPostRender.setQuatCurrentOnNextRender();
|
|
384 |
mPostRender.setQuatAccumulatedOnNextRender();
|
|
376 | 385 |
} |
377 | 386 |
|
378 | 387 |
if( mContinuingRotation ) |
379 | 388 |
{ |
380 |
mRenderer.finishRotation();
|
|
389 |
mPostRender.finishRotation();
|
|
381 | 390 |
} |
382 | 391 |
break; |
383 | 392 |
} |
Also available in: Unified diff
Major progress with Prretty Patterns - hopefully only initializing the Object remains!