Revision 1e256a15
Added by Leszek Koltunski over 3 years ago
src/main/java/org/distorted/control/RubikControlWhole.java | ||
---|---|---|
29 | 29 |
import org.distorted.library.main.DistortedScreen; |
30 | 30 |
import org.distorted.library.main.DistortedTexture; |
31 | 31 |
import org.distorted.library.mesh.MeshQuad; |
32 |
import org.distorted.library.message.EffectListener; |
|
33 | 32 |
import org.distorted.library.type.Dynamic; |
34 | 33 |
import org.distorted.library.type.Dynamic3D; |
35 | 34 |
import org.distorted.library.type.Static3D; |
... | ... | |
41 | 40 |
|
42 | 41 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
43 | 42 |
|
44 |
class RubikControlWhole implements EffectListener
|
|
43 |
class RubikControlWhole |
|
45 | 44 |
{ |
46 | 45 |
private static final int NUM_NODE = 4; |
47 | 46 |
private static final int NUM_EFFE = 4; |
... | ... | |
60 | 59 |
private DistortedEffects[] mEffects; |
61 | 60 |
private DistortedNode[] mNodes; |
62 | 61 |
private long mEffectID; |
63 |
private int mCurrentStage, mWidth, mHeight;
|
|
62 |
private int mCurrentStage; |
|
64 | 63 |
|
65 | 64 |
private MeshQuad mQuad; |
66 | 65 |
private DistortedTexture mTextureShad, mTextureCirc; |
... | ... | |
75 | 74 |
private MatrixEffectMove mMoveHand2, mMoveShad2; |
76 | 75 |
private MatrixEffectScale mScaleHand2, mScaleShad2; |
77 | 76 |
|
78 |
private Dynamic3D mDyn1, mDyn2; |
|
79 |
private Static3D mPosition1, mPosition2; |
|
80 |
private float[] mHandPosition;
|
|
77 |
private Dynamic3D mDyn1, mDyn2, mDyn3, mDyn4;
|
|
78 |
private Static3D mPosition1, mPosition2, mPosition3, mPosition4;
|
|
79 |
private float[] tmpBuffer;
|
|
81 | 80 |
private long mLastTime, mDiffTime; |
82 | 81 |
|
83 | 82 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
163 | 162 |
mDyn2.resetToBeginning(); |
164 | 163 |
} |
165 | 164 |
|
165 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
166 |
|
|
167 |
private void resetDynamics4(int stage) |
|
168 |
{ |
|
169 |
int dur = DUR[stage-1]; |
|
170 |
|
|
171 |
mDyn3.removeAll(); |
|
172 |
mDyn4.removeAll(); |
|
173 |
mDyn3.setDuration(dur); |
|
174 |
mDyn4.setDuration(dur); |
|
175 |
mDyn3.resetToBeginning(); |
|
176 |
mDyn4.resetToBeginning(); |
|
177 |
} |
|
178 |
|
|
166 | 179 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
167 | 180 |
// first finger appears and approaches the screen |
168 | 181 |
|
... | ... | |
170 | 183 |
{ |
171 | 184 |
resetDynamics1(1); |
172 | 185 |
resetDynamics2(1); |
186 |
resetDynamics3(1); |
|
173 | 187 |
|
174 | 188 |
Static3D point0h = new Static3D(-X0 ,-Y1 , 0); |
175 | 189 |
Static3D point1h = new Static3D(-X1 ,-Y1 , 0); |
... | ... | |
182 | 196 |
|
183 | 197 |
Static3D pointSc = new Static3D(s033,s033,s033); |
184 | 198 |
|
185 |
mDynMoveHand1.add(point0h); |
|
186 |
mDynMoveHand1.add(point1h); |
|
187 |
mDynMoveHand1.add(point2h); |
|
188 |
mDynMoveHand1.add(point2h); |
|
189 |
mDynMoveHand1.add(point3h); |
|
190 |
mDynMoveShad1.add(point0s); |
|
191 |
mDynMoveShad1.add(point1s); |
|
192 |
mDynMoveShad1.add(point2s); |
|
193 |
mDynMoveShad1.add(point2s); |
|
194 |
mDynMoveShad1.add(point3s); |
|
199 |
mDyn1.add(point0h); |
|
200 |
mDyn1.add(point1h); |
|
201 |
mDyn1.add(point2h); |
|
202 |
mDyn1.add(point2h); |
|
203 |
mDyn1.add(point3h); |
|
204 |
mDyn2.add(point0s); |
|
205 |
mDyn2.add(point1s); |
|
206 |
mDyn2.add(point2s); |
|
207 |
mDyn2.add(point2s); |
|
208 |
mDyn2.add(point3s); |
|
209 |
|
|
210 |
mPosition1.set(point0h); |
|
211 |
mPosition2.set(point0s); |
|
212 |
|
|
213 |
mDynMoveHand1.add(mPosition1); |
|
214 |
mDynMoveShad1.add(mPosition2); |
|
215 |
|
|
195 | 216 |
mDynScaleHand1.add(pointSc); |
196 | 217 |
mDynScaleShad1.add(pointSc); |
197 | 218 |
|
198 |
mMoveHand1.notifyWhenFinished(this);
|
|
219 |
setPostFrame(true);
|
|
199 | 220 |
} |
200 | 221 |
|
201 | 222 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
204 | 225 |
private void setEffectsStage2() |
205 | 226 |
{ |
206 | 227 |
resetDynamics1(2); |
228 |
resetDynamics3(2); |
|
207 | 229 |
|
208 | 230 |
Static3D point3h = new Static3D(-X2 +D,-Y1 +D, 0); |
209 | 231 |
Static3D scaleS = new Static3D(s001,s001,s001); |
210 | 232 |
Static3D scaleF = new Static3D(s014,s014,s014); |
211 | 233 |
Static3D pointH = new Static3D(s033,s033,s033); |
212 | 234 |
|
235 |
mPosition1.set(scaleS); |
|
236 |
mDyn1.add(scaleS); |
|
237 |
mDyn1.add(scaleF); |
|
238 |
|
|
213 | 239 |
mDynMoveHand1.add(point3h); |
214 | 240 |
mDynMoveShad1.add(point3h); |
215 | 241 |
mDynScaleHand1.add(pointH); |
216 |
mDynScaleShad1.add(scaleS); |
|
217 |
mDynScaleShad1.add(scaleF); |
|
218 |
|
|
219 |
mScaleShad1.notifyWhenFinished(this); |
|
242 |
mDynScaleShad1.add(mPosition1); |
|
220 | 243 |
|
221 | 244 |
mNodes[0].changeInputSurface(mTextureCirc); |
245 |
setPostFrame(true); |
|
222 | 246 |
} |
223 | 247 |
|
224 | 248 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
267 | 291 |
private void setEffectsStage4() |
268 | 292 |
{ |
269 | 293 |
resetDynamics1(4); |
294 |
resetDynamics3(4); |
|
270 | 295 |
|
271 | 296 |
Static3D point3h = new Static3D(-X2+D,-Y1+D, 0); |
272 | 297 |
Static3D scaleS = new Static3D(s014,s014,s014); |
273 | 298 |
Static3D scaleF = new Static3D(s001,s001,s001); |
274 | 299 |
Static3D pointH = new Static3D(s033,s033,s033); |
275 | 300 |
|
301 |
mDyn1.add(scaleS); |
|
302 |
mDyn1.add(scaleF); |
|
303 |
mPosition1.set(scaleS); |
|
304 |
|
|
276 | 305 |
mDynMoveHand1.add(point3h); |
277 | 306 |
mDynMoveShad1.add(point3h); |
278 | 307 |
mDynScaleHand1.add(pointH); |
279 |
mDynScaleShad1.add(scaleS); |
|
280 |
mDynScaleShad1.add(scaleF); |
|
308 |
mDynScaleShad1.add(mPosition1); |
|
281 | 309 |
|
282 |
mScaleShad1.notifyWhenFinished(this);
|
|
310 |
setPostFrame(true);
|
|
283 | 311 |
} |
284 | 312 |
|
285 | 313 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
288 | 316 |
private void setEffectsStage5() |
289 | 317 |
{ |
290 | 318 |
resetDynamics1(5); |
319 |
resetDynamics3(5); |
|
291 | 320 |
|
292 | 321 |
Static3D pointH = new Static3D(-X2 ,-Y1 , 0); |
293 | 322 |
Static3D point0 = new Static3D(-X2 +D,-Y1 +D, 0); |
294 | 323 |
Static3D pointS = new Static3D(-X2+2*D,-Y1+2*D, 0); |
295 | 324 |
Static3D pointSc = new Static3D(s033,s033,s033); |
296 | 325 |
|
326 |
mPosition1.set(point0); |
|
327 |
mPosition2.set(point0); |
|
328 |
|
|
329 |
mDyn1.add(point0); |
|
330 |
mDyn1.add(pointH); |
|
331 |
mDyn2.add(point0); |
|
332 |
mDyn2.add(pointS); |
|
333 |
|
|
297 | 334 |
mDynScaleHand1.add(pointSc); |
298 | 335 |
mDynScaleShad1.add(pointSc); |
299 |
mDynMoveHand1.add(point0); |
|
300 |
mDynMoveHand1.add(pointH); |
|
301 |
mDynMoveShad1.add(point0); |
|
302 |
mDynMoveShad1.add(pointS); |
|
336 |
mDynMoveHand1.add(mPosition1); |
|
337 |
mDynMoveShad1.add(mPosition2); |
|
303 | 338 |
|
304 |
mMoveShad1.notifyWhenFinished(this); |
|
305 | 339 |
mNodes[0].changeInputSurface(mTextureShad); |
340 |
setPostFrame(true); |
|
306 | 341 |
} |
307 | 342 |
|
308 | 343 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
312 | 347 |
{ |
313 | 348 |
resetDynamics1(6); |
314 | 349 |
resetDynamics2(6); |
350 |
resetDynamics3(6); |
|
315 | 351 |
|
316 | 352 |
Static3D pointH = new Static3D(-X2 ,-Y1 , 0); |
317 | 353 |
Static3D pointS = new Static3D(-X2+2*D,-Y1+2*D, 0); |
... | ... | |
328 | 364 |
Static3D point0s = new Static3D( X0+2*D, Y1+2*D, 0); |
329 | 365 |
Static3D point1s = new Static3D( X1+2*D, Y1+2*D, 0); |
330 | 366 |
Static3D point2s = new Static3D( X2+2*D, Y1+2*D, 0); |
331 |
Static3D pointSm= new Static3D(-s033,s033,s033); |
|
367 |
Static3D pointSm = new Static3D(-s033,s033,s033); |
|
368 |
|
|
369 |
mPosition1.set(point0h); |
|
370 |
mPosition2.set(point0s); |
|
371 |
|
|
372 |
mDyn1.add(point0h); |
|
373 |
mDyn1.add(point1h); |
|
374 |
mDyn1.add(point2h); |
|
375 |
mDyn1.add(point2h); |
|
376 |
mDyn2.add(point0s); |
|
377 |
mDyn2.add(point1s); |
|
378 |
mDyn2.add(point2s); |
|
379 |
mDyn2.add(point2s); |
|
332 | 380 |
|
333 |
mDynMoveHand2.add(point0h); |
|
334 |
mDynMoveHand2.add(point1h); |
|
335 |
mDynMoveHand2.add(point2h); |
|
336 |
mDynMoveHand2.add(point2h); |
|
337 |
mDynMoveShad2.add(point0s); |
|
338 |
mDynMoveShad2.add(point1s); |
|
339 |
mDynMoveShad2.add(point2s); |
|
340 |
mDynMoveShad2.add(point2s); |
|
341 | 381 |
mDynScaleHand2.add(pointSm); |
342 | 382 |
mDynScaleShad2.add(pointSm); |
383 |
mDynMoveHand2.add(mPosition1); |
|
384 |
mDynMoveShad2.add(mPosition2); |
|
343 | 385 |
|
344 |
mMoveHand2.notifyWhenFinished(this);
|
|
386 |
setPostFrame(true);
|
|
345 | 387 |
} |
346 | 388 |
|
347 | 389 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
351 | 393 |
{ |
352 | 394 |
resetDynamics1(7); |
353 | 395 |
resetDynamics2(7); |
396 |
resetDynamics3(7); |
|
397 |
resetDynamics4(7); |
|
398 |
|
|
399 |
Static3D point1Sc= new Static3D( s033,s033,s033); |
|
400 |
Static3D point2Sc= new Static3D(-s033,s033,s033); |
|
401 |
mDynScaleHand1.add(point1Sc); |
|
402 |
mDynScaleShad1.add(point1Sc); |
|
403 |
mDynScaleHand2.add(point2Sc); |
|
404 |
mDynScaleShad2.add(point2Sc); |
|
354 | 405 |
|
355 | 406 |
Static3D point1H = new Static3D(-X2 ,-Y1 , 0); |
356 | 407 |
Static3D point1F = new Static3D(-X2 +D,-Y1 +D, 0); |
357 | 408 |
Static3D point1S = new Static3D(-X2+2*D,-Y1+2*D, 0); |
358 |
Static3D point1Sc= new Static3D(s033,s033,s033); |
|
359 | 409 |
|
360 |
mDynScaleHand1.add(point1Sc); |
|
361 |
mDynScaleShad1.add(point1Sc); |
|
362 |
mDynMoveHand1.add(point1H); |
|
363 |
mDynMoveHand1.add(point1F); |
|
364 |
mDynMoveShad1.add(point1S); |
|
365 |
mDynMoveShad1.add(point1F); |
|
410 |
mDyn1.add(point1H); |
|
411 |
mDyn1.add(point1F); |
|
412 |
mDyn2.add(point1S); |
|
413 |
mDyn2.add(point1F); |
|
414 |
|
|
415 |
mPosition1.set(point1H); |
|
416 |
mPosition2.set(point1S); |
|
417 |
mDynMoveHand1.add(mPosition1); |
|
418 |
mDynMoveShad1.add(mPosition2); |
|
366 | 419 |
|
367 | 420 |
Static3D point2H = new Static3D( X2 , Y1 , 0); |
368 | 421 |
Static3D point2F = new Static3D( X2 +D, Y1 +D, 0); |
369 | 422 |
Static3D point2S = new Static3D( X2+2*D, Y1+2*D, 0); |
370 |
Static3D point2Sc= new Static3D(-s033,s033,s033); |
|
371 | 423 |
|
372 |
mDynScaleHand2.add(point2Sc); |
|
373 |
mDynScaleShad2.add(point2Sc); |
|
374 |
mDynMoveHand2.add(point2H); |
|
375 |
mDynMoveHand2.add(point2F); |
|
376 |
mDynMoveShad2.add(point2S); |
|
377 |
mDynMoveShad2.add(point2F); |
|
424 |
mDyn3.add(point2H); |
|
425 |
mDyn3.add(point2F); |
|
426 |
mDyn4.add(point2S); |
|
427 |
mDyn4.add(point2F); |
|
378 | 428 |
|
379 |
mMoveHand2.notifyWhenFinished(this); |
|
429 |
mPosition3.set(point2H); |
|
430 |
mPosition4.set(point2S); |
|
431 |
mDynMoveHand2.add(mPosition3); |
|
432 |
mDynMoveShad2.add(mPosition4); |
|
433 |
|
|
434 |
setPostFrame(true); |
|
380 | 435 |
} |
381 | 436 |
|
382 | 437 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
386 | 441 |
{ |
387 | 442 |
resetDynamics1(8); |
388 | 443 |
resetDynamics2(8); |
444 |
resetDynamics3(8); |
|
389 | 445 |
|
390 | 446 |
Static3D point1h= new Static3D(-X2 +D,-Y1 +D, 0); |
391 | 447 |
Static3D point2h= new Static3D( X2 +D, Y1 +D, 0); |
... | ... | |
396 | 452 |
Static3D scale2F = new Static3D(-s014,s014,s014); |
397 | 453 |
Static3D point2H = new Static3D(-s033,s033,s033); |
398 | 454 |
|
455 |
mPosition1.set(scale1S); |
|
456 |
mDyn1.add(scale1S); |
|
457 |
mDyn1.add(scale1F); |
|
458 |
|
|
399 | 459 |
mDynMoveHand1.add(point1h); |
400 | 460 |
mDynMoveShad1.add(point1h); |
401 | 461 |
mDynScaleHand1.add(point1H); |
402 |
mDynScaleShad1.add(scale1S); |
|
403 |
mDynScaleShad1.add(scale1F); |
|
462 |
mDynScaleShad1.add(mPosition1); |
|
463 |
|
|
464 |
mPosition2.set(scale2S); |
|
465 |
mDyn2.add(scale2S); |
|
466 |
mDyn2.add(scale2F); |
|
404 | 467 |
|
405 | 468 |
mDynMoveHand2.add(point2h); |
406 | 469 |
mDynMoveShad2.add(point2h); |
407 | 470 |
mDynScaleHand2.add(point2H); |
408 |
mDynScaleShad2.add(scale2S); |
|
409 |
mDynScaleShad2.add(scale2F); |
|
410 |
|
|
411 |
mScaleShad2.notifyWhenFinished(this); |
|
471 |
mDynScaleShad2.add(mPosition2); |
|
412 | 472 |
|
413 | 473 |
mNodes[0].changeInputSurface(mTextureCirc); |
414 | 474 |
mNodes[1].changeInputSurface(mTextureCirc); |
475 |
|
|
476 |
setPostFrame(true); |
|
415 | 477 |
} |
416 | 478 |
|
417 | 479 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
460 | 522 |
{ |
461 | 523 |
resetDynamics1(10); |
462 | 524 |
resetDynamics2(10); |
525 |
resetDynamics3(10); |
|
463 | 526 |
|
464 | 527 |
Static3D scale1F = new Static3D( s014,s014,s014); |
465 | 528 |
Static3D point1H = new Static3D( s033,s033,s033); |
... | ... | |
471 | 534 |
Static3D point2= new Static3D(( X2+D)*F,( Y1+D)*F, 0); |
472 | 535 |
Static3D point3= new Static3D(( X2+D)*F,(-Y1+D)*F, 0); |
473 | 536 |
|
474 |
mDynMoveHand1.add(point0); |
|
475 |
mDynMoveHand1.add(point1); |
|
476 |
mDynMoveHand1.add(point2); |
|
477 |
mDynMoveHand1.add(point3); |
|
478 |
mDynMoveHand1.add(point0); |
|
479 |
mDynMoveShad1.add(point0); |
|
480 |
mDynMoveShad1.add(point1); |
|
481 |
mDynMoveShad1.add(point2); |
|
482 |
mDynMoveShad1.add(point3); |
|
483 |
mDynMoveShad1.add(point0); |
|
484 | 537 |
mDynScaleHand1.add(point1H); |
485 | 538 |
mDynScaleShad1.add(scale1F); |
486 |
|
|
487 |
mDynMoveHand2.add(point2); |
|
488 |
mDynMoveHand2.add(point3); |
|
489 |
mDynMoveHand2.add(point0); |
|
490 |
mDynMoveHand2.add(point1); |
|
491 |
mDynMoveHand2.add(point2); |
|
492 |
mDynMoveShad2.add(point2); |
|
493 |
mDynMoveShad2.add(point3); |
|
494 |
mDynMoveShad2.add(point0); |
|
495 |
mDynMoveShad2.add(point1); |
|
496 |
mDynMoveShad2.add(point2); |
|
497 | 539 |
mDynScaleHand2.add(point2H); |
498 | 540 |
mDynScaleShad2.add(scale2F); |
499 | 541 |
|
500 |
mDynMoveHand1.setConvexity(1.0f); |
|
501 |
mDynMoveHand2.setConvexity(1.0f); |
|
502 |
mDynMoveShad1.setConvexity(1.0f); |
|
503 |
mDynMoveShad2.setConvexity(1.0f); |
|
542 |
mDyn1.add(point0); |
|
543 |
mDyn1.add(point1); |
|
544 |
mDyn1.add(point2); |
|
545 |
mDyn1.add(point3); |
|
546 |
mDyn1.add(point0); |
|
547 |
mDyn2.add(point2); |
|
548 |
mDyn2.add(point3); |
|
549 |
mDyn2.add(point0); |
|
550 |
mDyn2.add(point1); |
|
551 |
mDyn2.add(point2); |
|
552 |
|
|
553 |
mDyn1.setConvexity(1.0f); |
|
554 |
mDyn2.setConvexity(1.0f); |
|
555 |
|
|
556 |
mPosition1.set(point0); |
|
557 |
mPosition2.set(point2); |
|
558 |
|
|
559 |
mDynMoveHand1.add(mPosition1); |
|
560 |
mDynMoveShad1.add(mPosition1); |
|
561 |
mDynMoveHand2.add(mPosition2); |
|
562 |
mDynMoveShad2.add(mPosition2); |
|
504 | 563 |
|
505 |
mMoveShad1.notifyWhenFinished(this);
|
|
564 |
setPostFrame(true);
|
|
506 | 565 |
} |
507 | 566 |
|
508 | 567 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
512 | 571 |
{ |
513 | 572 |
resetDynamics1(11); |
514 | 573 |
resetDynamics2(11); |
574 |
resetDynamics3(11); |
|
515 | 575 |
|
516 | 576 |
Static3D point1s= new Static3D( -X2+D , -Y1+D , 0); |
517 | 577 |
Static3D point2s= new Static3D( X2+D , Y1+D , 0); |
... | ... | |
522 | 582 |
Static3D scale2F= new Static3D(-s014,s014,s014); |
523 | 583 |
Static3D point2H= new Static3D(-s033,s033,s033); |
524 | 584 |
|
525 |
mDynMoveHand1.add(point1f); |
|
526 |
mDynMoveHand1.add(point1s); |
|
527 |
mDynMoveShad1.add(point1f); |
|
528 |
mDynMoveShad1.add(point1s); |
|
529 | 585 |
mDynScaleHand1.add(point1H); |
530 | 586 |
mDynScaleShad1.add(scale1F); |
531 |
|
|
532 |
mDynMoveHand2.add(point2f); |
|
533 |
mDynMoveHand2.add(point2s); |
|
534 |
mDynMoveShad2.add(point2f); |
|
535 |
mDynMoveShad2.add(point2s); |
|
536 | 587 |
mDynScaleHand2.add(point2H); |
537 | 588 |
mDynScaleShad2.add(scale2F); |
538 | 589 |
|
539 |
mDynMoveHand1.setConvexity(0.0f); |
|
540 |
mDynMoveHand2.setConvexity(0.0f); |
|
541 |
mDynMoveShad1.setConvexity(0.0f); |
|
542 |
mDynMoveShad2.setConvexity(0.0f); |
|
590 |
mDyn1.add(point1f); |
|
591 |
mDyn1.add(point1s); |
|
592 |
mDyn2.add(point2f); |
|
593 |
mDyn2.add(point2s); |
|
594 |
|
|
595 |
mDyn1.setConvexity(0.0f); |
|
596 |
mDyn2.setConvexity(0.0f); |
|
597 |
|
|
598 |
mPosition1.set(point1f); |
|
599 |
mPosition2.set(point2f); |
|
600 |
|
|
601 |
mDynMoveHand1.add(mPosition1); |
|
602 |
mDynMoveShad1.add(mPosition1); |
|
603 |
mDynMoveHand2.add(mPosition2); |
|
604 |
mDynMoveShad2.add(mPosition2); |
|
543 | 605 |
|
544 |
mMoveShad1.notifyWhenFinished(this);
|
|
606 |
setPostFrame(true);
|
|
545 | 607 |
} |
546 | 608 |
|
547 | 609 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
551 | 613 |
{ |
552 | 614 |
resetDynamics1(12); |
553 | 615 |
resetDynamics2(12); |
616 |
resetDynamics3(12); |
|
554 | 617 |
|
555 | 618 |
Static3D point1h = new Static3D(-X2+D,-Y1+D, 0); |
556 | 619 |
Static3D point2h = new Static3D( X2+D, Y1+D, 0); |
... | ... | |
561 | 624 |
Static3D scale2F = new Static3D(-s001,s001,s001); |
562 | 625 |
Static3D point2H = new Static3D(-s033,s033,s033); |
563 | 626 |
|
627 |
mPosition1.set(scale1S); |
|
628 |
mPosition2.set(scale2S); |
|
629 |
|
|
630 |
mDyn1.add(scale1S); |
|
631 |
mDyn1.add(scale1F); |
|
632 |
mDyn2.add(scale2S); |
|
633 |
mDyn2.add(scale2F); |
|
634 |
|
|
564 | 635 |
mDynMoveHand1.add(point1h); |
565 | 636 |
mDynMoveShad1.add(point1h); |
566 | 637 |
mDynScaleHand1.add(point1H); |
567 |
mDynScaleShad1.add(scale1F); |
|
568 |
mDynScaleShad1.add(scale1S); |
|
638 |
mDynScaleShad1.add(mPosition1); |
|
569 | 639 |
|
570 | 640 |
mDynMoveHand2.add(point2h); |
571 | 641 |
mDynMoveShad2.add(point2h); |
572 | 642 |
mDynScaleHand2.add(point2H); |
573 |
mDynScaleShad2.add(scale2F); |
|
574 |
mDynScaleShad2.add(scale2S); |
|
643 |
mDynScaleShad2.add(mPosition2); |
|
575 | 644 |
|
576 |
mScaleShad1.notifyWhenFinished(this);
|
|
645 |
setPostFrame(true);
|
|
577 | 646 |
} |
578 | 647 |
|
579 | 648 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
583 | 652 |
{ |
584 | 653 |
resetDynamics1(13); |
585 | 654 |
resetDynamics2(13); |
655 |
resetDynamics3(13); |
|
656 |
resetDynamics4(13); |
|
586 | 657 |
|
587 | 658 |
Static3D point1_0 = new Static3D(-X2 +D,-Y1 +D, 0); |
588 | 659 |
Static3D point11H = new Static3D(-X2 ,-Y1 , 0); |
... | ... | |
593 | 664 |
Static3D point13S = new Static3D(-X0+2*D,-Y1+2*D, 0); |
594 | 665 |
Static3D point1Sc = new Static3D( s033,s033,s033); |
595 | 666 |
|
667 |
mPosition1.set(point1_0); |
|
668 |
mDynMoveHand1.add(mPosition1); |
|
669 |
mPosition2.set(point1_0); |
|
670 |
mDynMoveShad1.add(mPosition2); |
|
671 |
|
|
596 | 672 |
mDynScaleHand1.add(point1Sc); |
597 | 673 |
mDynScaleShad1.add(point1Sc); |
598 |
mDynMoveHand1.add(point1_0); |
|
599 |
mDynMoveHand1.add(point11H); |
|
600 |
mDynMoveHand1.add(point11H); |
|
601 |
mDynMoveHand1.add(point12H); |
|
602 |
mDynMoveHand1.add(point13H); |
|
603 |
mDynMoveShad1.add(point1_0); |
|
604 |
mDynMoveShad1.add(point11S); |
|
605 |
mDynMoveShad1.add(point11S); |
|
606 |
mDynMoveShad1.add(point12S); |
|
607 |
mDynMoveShad1.add(point13S); |
|
674 |
|
|
675 |
mDyn1.add(point1_0); |
|
676 |
mDyn1.add(point11H); |
|
677 |
mDyn1.add(point11H); |
|
678 |
mDyn1.add(point12H); |
|
679 |
mDyn1.add(point13H); |
|
680 |
|
|
681 |
mDyn2.add(point1_0); |
|
682 |
mDyn2.add(point11S); |
|
683 |
mDyn2.add(point11S); |
|
684 |
mDyn2.add(point12S); |
|
685 |
mDyn2.add(point13S); |
|
608 | 686 |
|
609 | 687 |
Static3D point2_0 = new Static3D( X2 +D, Y1 +D, 0); |
610 | 688 |
Static3D point21H = new Static3D( X2 , Y1 , 0); |
... | ... | |
615 | 693 |
Static3D point23S = new Static3D( X0+2*D, Y1+2*D, 0); |
616 | 694 |
Static3D point2Sc= new Static3D(-s033,s033,s033); |
617 | 695 |
|
696 |
mPosition3.set(point2_0); |
|
697 |
mDynMoveHand2.add(mPosition3); |
|
698 |
mPosition4.set(point2_0); |
|
699 |
mDynMoveShad2.add(mPosition4); |
|
700 |
|
|
618 | 701 |
mDynScaleHand2.add(point2Sc); |
619 | 702 |
mDynScaleShad2.add(point2Sc); |
620 |
mDynMoveHand2.add(point2_0); |
|
621 |
mDynMoveHand2.add(point21H);
|
|
622 |
mDynMoveHand2.add(point21H);
|
|
623 |
mDynMoveHand2.add(point22H);
|
|
624 |
mDynMoveHand2.add(point23H);
|
|
625 |
mDynMoveShad2.add(point2_0);
|
|
626 |
mDynMoveShad2.add(point21S); |
|
627 |
mDynMoveShad2.add(point21S);
|
|
628 |
mDynMoveShad2.add(point22S);
|
|
629 |
mDynMoveShad2.add(point23S);
|
|
630 |
|
|
631 |
mMoveHand2.notifyWhenFinished(this);
|
|
703 |
|
|
704 |
mDyn3.add(point2_0);
|
|
705 |
mDyn3.add(point21H);
|
|
706 |
mDyn3.add(point21H);
|
|
707 |
mDyn3.add(point22H);
|
|
708 |
mDyn3.add(point23H);
|
|
709 |
|
|
710 |
mDyn4.add(point2_0);
|
|
711 |
mDyn4.add(point21S);
|
|
712 |
mDyn4.add(point21S);
|
|
713 |
mDyn4.add(point22S); |
|
714 |
mDyn4.add(point23S);
|
|
632 | 715 |
|
633 | 716 |
mNodes[0].changeInputSurface(mTextureShad); |
634 | 717 |
mNodes[1].changeInputSurface(mTextureShad); |
718 |
setPostFrame(true); |
|
635 | 719 |
} |
636 | 720 |
|
637 | 721 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
649 | 733 |
mDyn2 = new Dynamic3D(time,0.5f); |
650 | 734 |
mDyn2.setMode(Dynamic.MODE_PATH); |
651 | 735 |
mDyn2.setConvexity(0.0f); |
736 |
mDyn3 = new Dynamic3D(time,0.5f); |
|
737 |
mDyn3.setMode(Dynamic.MODE_PATH); |
|
738 |
mDyn3.setConvexity(0.0f); |
|
739 |
mDyn4 = new Dynamic3D(time,0.5f); |
|
740 |
mDyn4.setMode(Dynamic.MODE_PATH); |
|
741 |
mDyn4.setConvexity(0.0f); |
|
652 | 742 |
|
653 | 743 |
mPosition1 = new Static3D(0,0,0); |
654 | 744 |
mPosition2 = new Static3D(0,0,0); |
745 |
mPosition3 = new Static3D(0,0,0); |
|
746 |
mPosition4 = new Static3D(0,0,0); |
|
655 | 747 |
|
656 |
mHandPosition = new float[6];
|
|
748 |
tmpBuffer = new float[12];
|
|
657 | 749 |
|
658 | 750 |
mDynMoveHand1 = new Dynamic3D(time,0.5f); |
659 | 751 |
mDynMoveHand1.setMode(Dynamic.MODE_PATH); |
... | ... | |
702 | 794 |
mEffects[3].apply(mMoveHand2); |
703 | 795 |
|
704 | 796 |
DistortedScreen screen = mControl.getScreen(); |
705 |
mWidth = screen.getWidth();
|
|
706 |
mHeight= screen.getHeight();
|
|
707 |
|
|
708 |
X0 = mWidth*0.55f;
|
|
709 |
X1 = mWidth*0.45f;
|
|
710 |
X2 = mWidth*0.35f;
|
|
711 |
Y1 = mHeight*0.28f;
|
|
712 |
D = mWidth*0.01f;
|
|
713 |
s001 = mWidth*0.0001f;
|
|
714 |
s014 = mWidth*0.14f;
|
|
715 |
s033 = mWidth*0.33f;
|
|
716 |
F = 0.60f; |
|
797 |
int wid= screen.getWidth();
|
|
798 |
int hei= screen.getHeight();
|
|
799 |
|
|
800 |
X0 = wid*0.55f;
|
|
801 |
X1 = wid*0.45f;
|
|
802 |
X2 = wid*0.35f;
|
|
803 |
Y1 = hei*0.28f;
|
|
804 |
D = wid*0.01f;
|
|
805 |
s001 = wid*0.0001f;
|
|
806 |
s014 = wid*0.14f;
|
|
807 |
s033 = wid*0.33f;
|
|
808 |
F = 0.60f;
|
|
717 | 809 |
} |
718 | 810 |
|
719 | 811 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
787 | 879 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
788 | 880 |
// PUBLIC |
789 | 881 |
|
790 |
public void effectFinished(long effectID) |
|
791 |
{ |
|
792 |
switch( mCurrentStage ) |
|
793 |
{ |
|
794 |
case 1: setEffectsStage2(); break; |
|
795 |
case 2: setEffectsStage3(); break; |
|
796 |
case 3: setEffectsStage4(); break; |
|
797 |
case 4: setEffectsStage5(); break; |
|
798 |
case 5: setEffectsStage6(); break; |
|
799 |
case 6: setEffectsStage7(); break; |
|
800 |
case 7: setEffectsStage8(); break; |
|
801 |
case 8: setEffectsStage9(); break; |
|
802 |
case 9: setEffectsStage10();break; |
|
803 |
case 10: setEffectsStage11();break; |
|
804 |
case 11: setEffectsStage12();break; |
|
805 |
case 12: setEffectsStage13();break; |
|
806 |
default: mEffectID = -1; |
|
807 |
mControl.effectFinished(mEffectID); |
|
808 |
break; |
|
809 |
} |
|
810 |
} |
|
811 |
|
|
812 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
813 |
|
|
814 | 882 |
public void postDrawFrame(long time) |
815 | 883 |
{ |
816 | 884 |
if( mLastTime<0 ) mLastTime = time; |
... | ... | |
819 | 887 |
|
820 | 888 |
switch( mCurrentStage ) |
821 | 889 |
{ |
822 |
case 3: |
|
823 |
|
|
824 |
mDyn1.setDebug(true); |
|
825 |
boolean finished = mDyn1.get( mHandPosition,0, time, mDiffTime); |
|
826 |
mPosition1.set(mHandPosition[0], mHandPosition[1], mHandPosition[2]); |
|
827 |
if( finished ) |
|
890 |
case 1: boolean finished1_1 = mDyn1.get( tmpBuffer,0, time, mDiffTime); |
|
891 |
boolean finished1_2 = mDyn2.get( tmpBuffer,3, time, mDiffTime); |
|
892 |
mPosition1.set(tmpBuffer[0], tmpBuffer[1], tmpBuffer[2]); |
|
893 |
mPosition2.set(tmpBuffer[3], tmpBuffer[4], tmpBuffer[5]); |
|
894 |
if( finished1_1 && finished1_2 ) |
|
895 |
{ |
|
896 |
setPostFrame(false); |
|
897 |
setEffectsStage2(); |
|
898 |
} |
|
899 |
break; |
|
900 |
case 2: boolean finished2_1 = mDyn1.get( tmpBuffer,0, time, mDiffTime); |
|
901 |
mPosition1.set(tmpBuffer[0], tmpBuffer[1], tmpBuffer[2]); |
|
902 |
if( finished2_1 ) |
|
903 |
{ |
|
904 |
setPostFrame(false); |
|
905 |
setEffectsStage3(); |
|
906 |
} |
|
907 |
break; |
|
908 |
case 3: boolean finished3_1 = mDyn1.get( tmpBuffer,0, time, mDiffTime); |
|
909 |
mPosition1.set(tmpBuffer[0], tmpBuffer[1], tmpBuffer[2]); |
|
910 |
if( finished3_1 ) |
|
911 |
{ |
|
912 |
setPostFrame(false); |
|
913 |
setEffectsStage4(); |
|
914 |
} |
|
915 |
break; |
|
916 |
case 4: boolean finished4_1 = mDyn1.get( tmpBuffer,0, time, mDiffTime); |
|
917 |
mPosition1.set(tmpBuffer[0], tmpBuffer[1], tmpBuffer[2]); |
|
918 |
if( finished4_1 ) |
|
919 |
{ |
|
920 |
setPostFrame(false); |
|
921 |
setEffectsStage5(); |
|
922 |
} |
|
923 |
break; |
|
924 |
case 5: boolean finished5_1 = mDyn1.get( tmpBuffer,0, time, mDiffTime); |
|
925 |
boolean finished5_2 = mDyn2.get( tmpBuffer,3, time, mDiffTime); |
|
926 |
mPosition1.set(tmpBuffer[0], tmpBuffer[1], tmpBuffer[2]); |
|
927 |
mPosition2.set(tmpBuffer[3], tmpBuffer[4], tmpBuffer[5]); |
|
928 |
if( finished5_1 && finished5_2 ) |
|
929 |
{ |
|
930 |
setPostFrame(false); |
|
931 |
setEffectsStage6(); |
|
932 |
} |
|
933 |
break; |
|
934 |
case 6: boolean finished6_1 = mDyn1.get( tmpBuffer,0, time, mDiffTime); |
|
935 |
boolean finished6_2 = mDyn2.get( tmpBuffer,3, time, mDiffTime); |
|
936 |
mPosition1.set(tmpBuffer[0], tmpBuffer[1], tmpBuffer[2]); |
|
937 |
mPosition2.set(tmpBuffer[3], tmpBuffer[4], tmpBuffer[5]); |
|
938 |
if( finished6_1 && finished6_2 ) |
|
939 |
{ |
|
940 |
setPostFrame(false); |
|
941 |
setEffectsStage7(); |
|
942 |
} |
|
943 |
break; |
|
944 |
case 7: boolean finished7_1 = mDyn1.get( tmpBuffer,0, time, mDiffTime); |
|
945 |
boolean finished7_2 = mDyn2.get( tmpBuffer,3, time, mDiffTime); |
|
946 |
boolean finished7_3 = mDyn3.get( tmpBuffer,6, time, mDiffTime); |
|
947 |
boolean finished7_4 = mDyn4.get( tmpBuffer,9, time, mDiffTime); |
|
948 |
mPosition1.set(tmpBuffer[0], tmpBuffer[ 1], tmpBuffer[ 2]); |
|
949 |
mPosition2.set(tmpBuffer[3], tmpBuffer[ 4], tmpBuffer[ 5]); |
|
950 |
mPosition3.set(tmpBuffer[6], tmpBuffer[ 7], tmpBuffer[ 8]); |
|
951 |
mPosition4.set(tmpBuffer[9], tmpBuffer[10], tmpBuffer[11]); |
|
952 |
if( finished7_1 && finished7_2 && finished7_3 && finished7_4 ) |
|
953 |
{ |
|
954 |
setPostFrame(false); |
|
955 |
setEffectsStage8(); |
|
956 |
} |
|
957 |
break; |
|
958 |
case 8: boolean finished8_1 = mDyn1.get( tmpBuffer,0, time, mDiffTime); |
|
959 |
boolean finished8_2 = mDyn2.get( tmpBuffer,3, time, mDiffTime); |
|
960 |
mPosition1.set(tmpBuffer[0], tmpBuffer[1], tmpBuffer[2]); |
|
961 |
mPosition2.set(tmpBuffer[3], tmpBuffer[4], tmpBuffer[5]); |
|
962 |
if( finished8_1 && finished8_2 ) |
|
963 |
{ |
|
964 |
setPostFrame(false); |
|
965 |
setEffectsStage9(); |
|
966 |
} |
|
967 |
break; |
|
968 |
case 9: boolean finished9_1 = mDyn1.get( tmpBuffer,0, time, mDiffTime); |
|
969 |
boolean finished9_2 = mDyn2.get( tmpBuffer,3, time, mDiffTime); |
|
970 |
mPosition1.set(tmpBuffer[0], tmpBuffer[1], tmpBuffer[2]); |
|
971 |
mPosition2.set(tmpBuffer[3], tmpBuffer[4], tmpBuffer[5]); |
|
972 |
if( finished9_1 && finished9_2 ) |
|
973 |
{ |
|
974 |
setPostFrame(false); |
|
975 |
setEffectsStage10(); |
|
976 |
} |
|
977 |
break; |
|
978 |
case 10: boolean finished10_1 = mDyn1.get( tmpBuffer,0, time, mDiffTime); |
|
979 |
boolean finished10_2 = mDyn2.get( tmpBuffer,3, time, mDiffTime); |
|
980 |
mPosition1.set(tmpBuffer[0], tmpBuffer[1], tmpBuffer[2]); |
|
981 |
mPosition2.set(tmpBuffer[3], tmpBuffer[4], tmpBuffer[5]); |
|
982 |
if( finished10_1 && finished10_2 ) |
|
983 |
{ |
|
984 |
setPostFrame(false); |
|
985 |
setEffectsStage11(); |
|
986 |
} |
|
987 |
break; |
|
988 |
case 11: boolean finished11_1 = mDyn1.get( tmpBuffer,0, time, mDiffTime); |
|
989 |
boolean finished11_2 = mDyn2.get( tmpBuffer,3, time, mDiffTime); |
|
990 |
mPosition1.set(tmpBuffer[0], tmpBuffer[1], tmpBuffer[2]); |
|
991 |
mPosition2.set(tmpBuffer[3], tmpBuffer[4], tmpBuffer[5]); |
|
992 |
if( finished11_1 && finished11_2 ) |
|
993 |
{ |
|
994 |
setPostFrame(false); |
|
995 |
setEffectsStage12(); |
|
996 |
} |
|
997 |
break; |
|
998 |
case 12: boolean finished12_1 = mDyn1.get( tmpBuffer,0, time, mDiffTime); |
|
999 |
boolean finished12_2 = mDyn2.get( tmpBuffer,3, time, mDiffTime); |
|
1000 |
mPosition1.set(tmpBuffer[0], tmpBuffer[1], tmpBuffer[2]); |
|
1001 |
mPosition2.set(tmpBuffer[3], tmpBuffer[4], tmpBuffer[5]); |
|
1002 |
if( finished12_1 && finished12_2 ) |
|
828 | 1003 |
{ |
829 | 1004 |
setPostFrame(false); |
830 |
effectFinished(0);
|
|
1005 |
setEffectsStage13();
|
|
831 | 1006 |
} |
832 | 1007 |
break; |
833 |
case 9: boolean finished1 = mDyn1.get( mHandPosition,0, time, mDiffTime); |
|
834 |
boolean finished2 = mDyn2.get( mHandPosition,3, time, mDiffTime); |
|
835 |
mPosition1.set(mHandPosition[0], mHandPosition[1], mHandPosition[2]); |
|
836 |
mPosition2.set(mHandPosition[3], mHandPosition[4], mHandPosition[5]); |
|
837 |
if( finished1 && finished2 ) |
|
1008 |
case 13: boolean finished13_1 = mDyn1.get( tmpBuffer,0, time, mDiffTime); |
|
1009 |
boolean finished13_2 = mDyn2.get( tmpBuffer,3, time, mDiffTime); |
|
1010 |
boolean finished13_3 = mDyn3.get( tmpBuffer,6, time, mDiffTime); |
|
1011 |
boolean finished13_4 = mDyn4.get( tmpBuffer,9, time, mDiffTime); |
|
1012 |
mPosition1.set(tmpBuffer[0], tmpBuffer[ 1], tmpBuffer[ 2]); |
|
1013 |
mPosition2.set(tmpBuffer[3], tmpBuffer[ 4], tmpBuffer[ 5]); |
|
1014 |
mPosition3.set(tmpBuffer[6], tmpBuffer[ 7], tmpBuffer[ 8]); |
|
1015 |
mPosition4.set(tmpBuffer[9], tmpBuffer[10], tmpBuffer[11]); |
|
1016 |
if( finished13_1 && finished13_2 && finished13_3 && finished13_4 ) |
|
838 | 1017 |
{ |
839 | 1018 |
setPostFrame(false); |
840 |
effectFinished(0); |
|
1019 |
mEffectID = -1; |
|
1020 |
mControl.effectFinished(mEffectID); |
|
841 | 1021 |
} |
842 | 1022 |
break; |
843 | 1023 |
default: android.util.Log.e("D", "WHAT? "+mCurrentStage); |
Also available in: Unified diff
RubikControl: progress.