Project

General

Profile

« Previous | Next » 

Revision d53fb890

Added by Leszek Koltunski over 2 years ago

Progress standarising stickering.

View differences:

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