Project

General

Profile

« Previous | Next » 

Revision 053ffa02

Added by Leszek Koltunski over 2 years ago

Progress standarising stickering.

View differences:

src/main/java/org/distorted/objectlib/objects/TwistyPyraminx.java
287 287
    return (numLayers-1)*numLayers*(numLayers+1)/6;
288 288
    }
289 289

  
290
///////////////////////////////////////////////////////////////////////////////////////////////////
291

  
292
  private int faceColor(int cubit, int face)
293
    {
294
    return CUBITS[cubit].getRotRow(face) == 1 ? face : -1;
295
    }
296

  
297
///////////////////////////////////////////////////////////////////////////////////////////////////
298

  
299
  public int getVariantFaceColor(int variant, int face, int[] numLayers)
300
    {
301
    return 0;
302
    }
303

  
304
///////////////////////////////////////////////////////////////////////////////////////////////////
305

  
306
  public int getCubitFaceColor(int cubit, int face, int[] numLayers)
307
    {
308
    if( cubit < getNumOctahedrons(numLayers[0]) )
309
      {
310
      switch( face )
311
        {
312
        case 0: return faceColor(cubit,0);
313
        case 2: return faceColor(cubit,1);
314
        case 5: return faceColor(cubit,3);
315
        case 7: return faceColor(cubit,2);
316
        default:return -1;
317
        }
318
      }
319
    else
320
      {
321
      return face<NUM_FACE_COLORS ? faceColor(cubit,face) : -1;
322
      }
323
    }
324

  
325 290
///////////////////////////////////////////////////////////////////////////////////////////////////
326 291

  
327 292
  public ObjectShape getObjectShape(int variant)
......
382 347

  
383 348
///////////////////////////////////////////////////////////////////////////////////////////////////
384 349

  
385
  public ObjectSticker retSticker(int sticker)
350
  private int faceColor(int cubit, int face)
386 351
    {
387
    if( mStickers==null )
388
      {
389
      float[][] STICKERS = new float[][] { { -0.4330127f, -0.25f, 0.4330127f, -0.25f, 0.0f, 0.5f } };
390
      final float radius = 0.06f;
391
      final float[] radii= {radius,radius,radius};
392
      mStickers = new ObjectSticker[STICKERS.length];
352
    return CUBITS[cubit].getRotRow(face) == 1 ? face : -1;
353
    }
393 354

  
394
      float stroke = 0.08f;
355
///////////////////////////////////////////////////////////////////////////////////////////////////
395 356

  
396
      if( ObjectControl.isInIconMode() )
357
  public int getCubitFaceColor(int cubit, int face, int[] numLayers)
358
    {
359
    if( cubit < getNumOctahedrons(numLayers[0]) )
360
      {
361
      switch( face )
397 362
        {
398
        int[] numLayers = getNumLayers();
363
        case 0: return faceColor(cubit,0);
364
        case 2: return faceColor(cubit,1);
365
        case 5: return faceColor(cubit,3);
366
        case 7: return faceColor(cubit,2);
367
        default:return -1;
368
        }
369
      }
370
    else
371
      {
372
      return face<NUM_FACE_COLORS ? faceColor(cubit,face) : -1;
373
      }
374
    }
399 375

  
400
        switch(numLayers[0])
401
          {
402
          case 2: stroke*=1.0f; break;
403
          case 3: stroke*=1.4f; break;
404
          case 4: stroke*=1.7f; break;
405
          default:stroke*=1.9f; break;
406
          }
376
///////////////////////////////////////////////////////////////////////////////////////////////////
377

  
378
  public int getVariantFaceColor(int variant, int face, int[] numLayers)
379
    {
380
    return face>=mStickerVariants[variant].length ? -1 : mStickerVariants[variant][face];
381
    }
382

  
383
///////////////////////////////////////////////////////////////////////////////////////////////////
384

  
385
  private float getRadius()
386
    {
387
    return 0.06f;
388
    }
389

  
390
///////////////////////////////////////////////////////////////////////////////////////////////////
391

  
392
  private float getStroke()
393
    {
394
    float stroke = 0.08f;
395

  
396
    if( ObjectControl.isInIconMode() )
397
      {
398
      int[] numLayers = getNumLayers();
399

  
400
      switch(numLayers[0])
401
        {
402
        case 2: stroke*=1.0f; break;
403
        case 3: stroke*=1.4f; break;
404
        case 4: stroke*=1.7f; break;
405
        default:stroke*=1.9f; break;
407 406
        }
407
      }
408 408

  
409
      mStickers[0] = new ObjectSticker(STICKERS[0],null,radii,stroke);
409
    return stroke;
410
    }
411

  
412
///////////////////////////////////////////////////////////////////////////////////////////////////
413

  
414
  public ObjectSticker retSticker(int sticker)
415
    {
416
    if( mStickers==null )
417
      {
418
      float rad = getRadius();
419
      float str = getStroke();
420
      int numStickers = mStickerCoords.length;
421
      mStickers = new ObjectSticker[numStickers];
422

  
423
      for(int s=0; s<numStickers; s++)
424
        {
425
        float scale = mStickerScales[s];
426
        float radius = rad / scale;
427
        float stroke = str / scale;
428
        int len = mStickerCoords[s].length;
429
        float[] radii = new float[len];
430
        for(int r=0; r<len; r++) radii[r] = radius;
431
        mStickers[s] = new ObjectSticker(mStickerCoords[s],null,radii,stroke);
432
        }
410 433
      }
411 434

  
412 435
    return mStickers[sticker];
src/main/java/org/distorted/objectlib/objects/TwistyRedi.java
360 360
    return cubit<8 ? 0:1;
361 361
    }
362 362

  
363
///////////////////////////////////////////////////////////////////////////////////////////////////
364

  
365
  public int getVariantFaceColor(int variant, int face, int[] numLayers)
366
    {
367
    return variant;
368
    }
369

  
370 363
///////////////////////////////////////////////////////////////////////////////////////////////////
371 364

  
372 365
  public int getCubitFaceColor(int cubit, int face, int[] numLayers)
......
404 397

  
405 398
///////////////////////////////////////////////////////////////////////////////////////////////////
406 399

  
407
  public ObjectSticker retSticker(int sticker)
400
  public int getVariantFaceColor(int variant, int face, int[] numLayers)
408 401
    {
409
    if( mStickers==null )
410
      {
411
      float[][] STICKERS = new float[][]
412
          {
413
             { -0.5f, -0.5f, 0.5f, -0.5f, 0.5f, 0.5f, -0.5f, 0.5f },
414
             { -0.3125f, 0.4375f, -0.3125f, -0.1875f, 0.0f, -0.5f, 0.3125f, -0.1875f, 0.3125f, 0.4375f }
415
          };
402
    return face>=mStickerVariants[variant].length ? -1 : mStickerVariants[variant][face];
403
    }
416 404

  
417
      final float R0 = 0.09f;
418
      final float R1 = 0.06f;
419
      final float[][] radii = { {R0,R0,R0,R0},{R1,R1,R1,R1,R1} };
420
      float[] strokes = { 0.09f,0.06f };
405
///////////////////////////////////////////////////////////////////////////////////////////////////
421 406

  
422
      if( ObjectControl.isInIconMode() )
423
        {
424
        float mult = 2.2f;
425
        strokes[0]*=mult;
426
        strokes[1]*=mult;
427
        }
407
  private float getRadius()
408
    {
409
    return 0.09f;
410
    }
411

  
412
///////////////////////////////////////////////////////////////////////////////////////////////////
413

  
414
  private float getStroke()
415
    {
416
    return ObjectControl.isInIconMode() ? 0.20f : 0.09f;
417
    }
418

  
419
///////////////////////////////////////////////////////////////////////////////////////////////////
428 420

  
429
      mStickers = new ObjectSticker[STICKERS.length];
421
  public ObjectSticker retSticker(int sticker)
422
    {
423
    if( mStickers==null )
424
      {
425
      float rad = getRadius();
426
      float str = getStroke();
427
      int numStickers = mStickerCoords.length;
428
      mStickers = new ObjectSticker[numStickers];
430 429

  
431
      for(int s=0; s<STICKERS.length; s++)
430
      for(int s=0; s<numStickers; s++)
432 431
        {
433
        mStickers[s] = new ObjectSticker(STICKERS[s],null,radii[s],strokes[s]);
432
        float scale = mStickerScales[s];
433
        float radius = rad / scale;
434
        float stroke = str / scale;
435
        int len = mStickerCoords[s].length;
436
        float[] radii = new float[len];
437
        for(int r=0; r<len; r++) radii[r] = radius;
438
        mStickers[s] = new ObjectSticker(mStickerCoords[s],null,radii,stroke);
434 439
        }
435 440
      }
436 441

  

Also available in: Unified diff