Revision bb85236a
Added by Leszek Koltunski 11 months ago
src/main/java/org/distorted/objectlib/objects/TwistyBandagedCuboid.java | ||
---|---|---|
503 | 503 |
|
504 | 504 |
public ObjectFaceShape getObjectFaceShape(int variant) |
505 | 505 |
{ |
506 |
int[] numLayers = getNumLayers(); |
|
507 |
int size = (numLayers[0]+numLayers[1]+numLayers[2])/3; |
|
508 | 506 |
int[] dim = getDim(variant); |
507 |
FactoryBandagedCuboid factory = FactoryBandagedCuboid.getInstance(); |
|
509 | 508 |
|
510 | 509 |
if( dim!=null ) |
511 | 510 |
{ |
511 |
boolean iconMode = isInIconMode(); |
|
512 |
float[][] bands = factory.getBands(iconMode); |
|
513 |
|
|
512 | 514 |
int X = dim[0]; |
513 | 515 |
int Y = dim[1]; |
514 | 516 |
int Z = dim[2]; |
517 |
int DX = Math.max(Y,Z); |
|
518 |
int DY = Math.max(X,Z); |
|
519 |
int DZ = Math.max(X,Y); |
|
515 | 520 |
|
516 |
float height = isInIconMode() ? 0.001f : size<=5 ? 0.048f : 0.020f; |
|
517 |
int[] bandIndices= { 0,0,1,1,2,2 }; |
|
518 |
|
|
519 |
int maxXY = Math.max(X,Y); |
|
520 |
int maxXZ = Math.max(X,Z); |
|
521 |
int maxYZ = Math.max(Y,Z); |
|
522 |
|
|
523 |
int angle = 45; |
|
524 |
float R = 0.25f; |
|
525 |
float S = 0.50f; |
|
526 |
float N = size<=4 ? 5 : size<=5 ? 4 : 3; |
|
527 |
|
|
528 |
float[][] bands = |
|
529 |
{ |
|
530 |
{height/maxYZ,angle,R,S,N,0,0}, |
|
531 |
{height/maxXZ,angle,R,S,N,0,0}, |
|
532 |
{height/maxXY,angle,R,S,N,0,0} |
|
533 |
}; |
|
521 |
int[] bandIndices= { DX,DX,DY,DY,DZ,DZ }; |
|
534 | 522 |
|
535 | 523 |
return new ObjectFaceShape(bands,bandIndices,null); |
536 | 524 |
} |
537 | 525 |
|
538 |
FactoryBandagedCuboid factory = FactoryBandagedCuboid.getInstance(); |
|
526 |
|
|
539 | 527 |
return factory.createIrregularFaceShape(variant, isInIconMode() ); |
540 | 528 |
} |
541 | 529 |
|
Also available in: Unified diff
Implement TwistyBandagedPyraminx