Revision d53fb890
Added by Leszek Koltunski over 2 years ago
src/main/java/org/distorted/objectlib/objects/TwistyRex.java | ||
---|---|---|
31 | 31 |
import org.distorted.objectlib.main.ObjectControl; |
32 | 32 |
import org.distorted.objectlib.main.ObjectType; |
33 | 33 |
import org.distorted.objectlib.helpers.ObjectShape; |
34 |
import org.distorted.objectlib.helpers.ObjectSticker; |
|
35 | 34 |
import org.distorted.objectlib.helpers.ScrambleState; |
36 | 35 |
import org.distorted.objectlib.main.ShapeHexahedron; |
37 | 36 |
|
... | ... | |
54 | 53 |
private Static4D[] mQuats; |
55 | 54 |
private float[][] mCuts; |
56 | 55 |
private int[][] mFaceMap; |
57 |
private ObjectSticker[] mStickers; |
|
58 | 56 |
|
59 | 57 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
60 | 58 |
|
... | ... | |
448 | 446 |
|
449 | 447 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
450 | 448 |
|
451 |
private float getRadius()
|
|
449 |
public float getStickerRadius()
|
|
452 | 450 |
{ |
453 | 451 |
return 0.09f; |
454 | 452 |
} |
455 | 453 |
|
456 | 454 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
457 | 455 |
|
458 |
private float getStroke()
|
|
456 |
public float getStickerStroke()
|
|
459 | 457 |
{ |
460 | 458 |
return ObjectControl.isInIconMode() ? 0.20f : 0.09f; |
461 | 459 |
} |
462 | 460 |
|
463 | 461 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
464 | 462 |
|
465 |
private float[][] getAngles()
|
|
463 |
public float[][] getStickerAngles()
|
|
466 | 464 |
{ |
467 | 465 |
final float F = (float)(Math.PI/20); |
468 | 466 |
return new float[][] { { -F/2,F,F },null,{ F/10,-F,-F } }; |
469 | 467 |
} |
470 | 468 |
|
471 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
472 |
|
|
473 |
public ObjectSticker retSticker(int sticker) |
|
474 |
{ |
|
475 |
if( mStickers==null ) |
|
476 |
{ |
|
477 |
float rad = getRadius(); |
|
478 |
float str = getStroke(); |
|
479 |
float[][] angles = getAngles(); |
|
480 |
int numStickers = mStickerCoords.length; |
|
481 |
mStickers = new ObjectSticker[numStickers]; |
|
482 |
|
|
483 |
for(int s=0; s<numStickers; s++) |
|
484 |
{ |
|
485 |
float scale = mStickerScales[s]; |
|
486 |
float radius = rad / scale; |
|
487 |
float stroke = str / scale; |
|
488 |
int len = mStickerCoords[s].length/2; |
|
489 |
float[] radii = new float[len]; |
|
490 |
for(int r=0; r<len; r++) radii[r] = radius*computeRadiusCorrection(mStickerCoords[s],r,len); |
|
491 |
mStickers[s] = new ObjectSticker(mStickerCoords[s],angles==null ? null : angles[s],radii,stroke); |
|
492 |
} |
|
493 |
} |
|
494 |
|
|
495 |
return mStickers[sticker]; |
|
496 |
} |
|
497 |
|
|
498 | 469 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
499 | 470 |
// PUBLIC API |
500 | 471 |
|
Also available in: Unified diff
Progress standarising stickering.