Revision b5347187
Added by Leszek Koltunski over 4 years ago
| src/main/java/org/distorted/objects/FactoryCubit.java | ||
|---|---|---|
| 37 | 37 |
|
| 38 | 38 |
class FactoryCubit |
| 39 | 39 |
{
|
| 40 |
static final float IVY_D = 0.003f; |
|
| 41 |
static final float IVY_C = 0.59f; |
|
| 42 |
static final float IVY_M = 0.35f; |
|
| 43 |
static final float REX_D = 0.2f; |
|
| 44 |
|
|
| 45 | 40 |
private static final float SQ2 = (float)Math.sqrt(2); |
| 46 | 41 |
private static final float SQ3 = (float)Math.sqrt(3); |
| 47 | 42 |
private static final float SQ5 = (float)Math.sqrt(5); |
| 48 | 43 |
private static final float SQ6 = (float)Math.sqrt(6); |
| 49 | 44 |
|
| 45 |
private static final Static1D RADIUS = new Static1D(1); |
|
| 46 |
private static FactoryCubit mThis; |
|
| 47 |
|
|
| 48 |
// IVY |
|
| 49 |
static final float IVY_D = 0.003f; |
|
| 50 |
static final float IVY_C = 0.59f; |
|
| 51 |
static final float IVY_M = 0.35f; |
|
| 52 |
private static final int IVY_N = 8; |
|
| 53 |
|
|
| 54 |
// REX |
|
| 55 |
static final float REX_D = 0.2f; |
|
| 56 |
|
|
| 57 |
// KILO / MEGAMINX |
|
| 50 | 58 |
static final float SIN54 = (SQ5+1)/4; |
| 51 | 59 |
static final float COS54 = (float)(Math.sqrt(10-2*SQ5)/4); |
| 52 | 60 |
static final float SIN18 = (SQ5-1)/4; |
| 53 | 61 |
static final float COS18 = (float)(0.25f*Math.sqrt(10.0f+2.0f*SQ5)); |
| 54 | 62 |
static final float COS_HALFD= (float)(Math.sqrt(0.5f-0.1f*SQ5)); // cos(half the dihedral angle) |
| 55 | 63 |
static final float SIN_HALFD= (float)(Math.sqrt(0.5f+0.1f*SQ5)); // sin(half the dihedral angle) |
| 56 |
|
|
| 57 | 64 |
static final float DIHEDRAL1= (float)(Math.acos(-SQ5/5)*180/Math.PI); |
| 58 | 65 |
static final float DIHEDRAL2= (float)((180/Math.PI)*Math.asin((2*SIN54*SIN54-1)/COS54) - 90); |
| 59 |
|
|
| 60 | 66 |
static final float MINX_SC = 0.5f; |
| 61 | 67 |
|
| 62 |
private static final int IVY_N = 8; |
|
| 63 |
|
|
| 64 |
private static final Static1D RADIUS = new Static1D(1); |
|
| 65 |
private static FactoryCubit mThis; |
|
| 66 |
|
|
| 67 | 68 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 68 | 69 |
|
| 69 | 70 |
private FactoryCubit() |
| ... | ... | |
| 1356 | 1357 |
|
| 1357 | 1358 |
VertexEffect[] createVertexEffectsKilominxCenter(float width) |
| 1358 | 1359 |
{
|
| 1359 |
VertexEffect[] effect = new VertexEffect[10];
|
|
| 1360 |
VertexEffect[] effect = new VertexEffect[11];
|
|
| 1360 | 1361 |
|
| 1361 | 1362 |
float H = 0.5f*(SIN54/COS54); |
| 1362 | 1363 |
float Y1= 0.5f*SIN_HALFD; |
| ... | ... | |
| 1391 | 1392 |
effect[7] = new VertexEffectRotate(angle4, axisC, center); |
| 1392 | 1393 |
effect[8] = new VertexEffectRotate(angle5, axisC, center); |
| 1393 | 1394 |
effect[9] = new VertexEffectRotate(angle6, axisY, center); |
| 1395 |
effect[10]= new VertexEffectScale(width/0.5f); |
|
| 1394 | 1396 |
|
| 1395 | 1397 |
effect[0].setMeshAssociation( 7,-1); // meshes 0,1,2 |
| 1396 | 1398 |
effect[1].setMeshAssociation(56,-1); // meshes 3,4,5 |
| src/main/java/org/distorted/objects/ObjectList.java | ||
|---|---|---|
| 143 | 143 |
KILO ( |
| 144 | 144 |
new int[][] {
|
| 145 | 145 |
{3 , 18, R.raw.kilo3, R.drawable.ui_small_kilo3, R.drawable.ui_medium_kilo3, R.drawable.ui_big_kilo3, R.drawable.ui_huge_kilo3} ,
|
| 146 |
{5 , 31, R.raw.kilo3, R.drawable.ui_small_kilo3, R.drawable.ui_medium_kilo3, R.drawable.ui_big_kilo3, R.drawable.ui_huge_kilo3} ,
|
|
| 146 | 147 |
}, |
| 147 | 148 |
TwistyKilominx.class, |
| 148 | 149 |
new MovementMinx(), |
| src/main/java/org/distorted/objects/TwistyKilominx.java | ||
|---|---|---|
| 250 | 250 |
} |
| 251 | 251 |
} |
| 252 | 252 |
|
| 253 |
for(int center=0; center<NUM_CENTERS; center++, index++)
|
|
| 253 |
for(int center=0; center<NUM_CENTERS; center++) |
|
| 254 | 254 |
{
|
| 255 | 255 |
for(int part=0; part<numCubitsPerCenter; part++, index++) |
| 256 | 256 |
{
|
| ... | ... | |
| 309 | 309 |
if( mNumCornerEdgeVariants>0 ) |
| 310 | 310 |
{
|
| 311 | 311 |
if( mCornerMeshes==null ) mCornerMeshes = new MeshBase[mNumCornerEdgeVariants]; |
| 312 |
if( mEdgeMeshes ==null ) mEdgeMeshes = new MeshBase[mNumCornerEdgeVariants][(highestSize-3)/2];
|
|
| 312 |
if( mEdgeMeshes ==null ) mEdgeMeshes = new MeshBase[mNumCornerEdgeVariants][highestSize-3];
|
|
| 313 | 313 |
} |
| 314 | 314 |
|
| 315 | 315 |
if( mCenterMeshes==null ) mCenterMeshes = new MeshBase[variants]; |
| ... | ... | |
| 362 | 362 |
|
| 363 | 363 |
int getFaceColor(int cubit, int cubitface, int numLayers) |
| 364 | 364 |
{
|
| 365 |
return cubitface>=0 && cubitface<3 ? mCornerFaceMap[cubit][cubitface] : NUM_TEXTURES*NUM_FACES; |
|
| 365 |
if( numLayers==3 ) |
|
| 366 |
{
|
|
| 367 |
return cubitface>=0 && cubitface<3 ? mCornerFaceMap[cubit][cubitface] : NUM_TEXTURES*NUM_FACES; |
|
| 368 |
} |
|
| 369 |
|
|
| 370 |
return 0; |
|
| 366 | 371 |
} |
| 367 | 372 |
|
| 368 | 373 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| ... | ... | |
| 381 | 386 |
float[] vertices = { -X1, Y2, 0, -A*Y1, X1, Y2, 0, Y1 };
|
| 382 | 387 |
|
| 383 | 388 |
FactorySticker factory = FactorySticker.getInstance(); |
| 384 |
factory.drawRoundedPolygon(canvas, paint, left, top, vertices, S, FACE_COLORS[face], R); |
|
| 389 |
factory.drawRoundedPolygon(canvas, paint, left, top, vertices, S, FACE_COLORS[face%NUM_FACES], R);
|
|
| 385 | 390 |
|
| 386 | 391 |
float MID = TEXTURE_HEIGHT*0.5f; |
| 387 | 392 |
float WID = TEXTURE_HEIGHT*0.1f; |
Also available in: Unified diff
Progress with any size Kilominx.