| 298 |
298 |
|
| 299 |
299 |
MeshBase createSkewbFaceMesh()
|
| 300 |
300 |
{
|
| 301 |
|
int association = 1;
|
| 302 |
|
|
| 303 |
301 |
float D = 0.03f;
|
| 304 |
302 |
float E = SQ2/4;
|
| 305 |
303 |
float[] vertices0 = { -E,-E, +E,-E, +E,+E, -E,+E };
|
| ... | ... | |
| 312 |
310 |
0.30f , D*1.60f,
|
| 313 |
311 |
0.0f , D*1.70f };
|
| 314 |
312 |
|
| 315 |
|
MeshBase[] meshes = new MeshBase[6];
|
|
313 |
MeshBase[] meshes = new MeshBase[5];
|
| 316 |
314 |
meshes[0] = new MeshPolygon(vertices0, bands0, 3, 3);
|
| 317 |
|
meshes[0].setEffectAssociation(0,association,0);
|
| 318 |
|
|
| 319 |
|
association <<= 1;
|
|
315 |
meshes[0].setEffectAssociation(0,1,0);
|
| 320 |
316 |
|
| 321 |
317 |
float[] vertices1 = { -E,-SQ3*E, +E,-SQ3*E, 0,0 };
|
| 322 |
318 |
float[] bands1 = { 1.0f, 0.0f, 0.5f, 0.0f, 0.0f, 0.0f };
|
| 323 |
319 |
|
| 324 |
320 |
meshes[1] = new MeshPolygon(vertices1,bands1,0,0);
|
| 325 |
|
meshes[1].setEffectAssociation(0,association,0);
|
| 326 |
|
|
| 327 |
|
for(int i=2; i<5; i++)
|
| 328 |
|
{
|
| 329 |
|
association <<= 1;
|
| 330 |
|
meshes[i] = meshes[1].copy(true);
|
| 331 |
|
meshes[i].setEffectAssociation(0,association,0);
|
| 332 |
|
}
|
| 333 |
|
|
| 334 |
|
association <<= 1;
|
| 335 |
|
meshes[5] = new MeshTriangle(1); // empty triangle so that
|
| 336 |
|
meshes[5].setEffectAssociation(0,association,0); // all cubits have 6 faces
|
|
321 |
meshes[1].setEffectAssociation(0,2,0);
|
|
322 |
meshes[2] = meshes[1].copy(true);
|
|
323 |
meshes[2].setEffectAssociation(0,4,0);
|
|
324 |
meshes[3] = meshes[1].copy(true);
|
|
325 |
meshes[3].setEffectAssociation(0,8,0);
|
|
326 |
meshes[4] = meshes[1].copy(true);
|
|
327 |
meshes[4].setEffectAssociation(0,16,0);
|
| 337 |
328 |
|
| 338 |
329 |
MeshBase mesh = new MeshJoined(meshes);
|
| 339 |
330 |
|
| ... | ... | |
| 348 |
339 |
VertexEffect effect3 = new VertexEffectRotate( new Static1D( -45), axisZ, center);
|
| 349 |
340 |
VertexEffect effect4 = new VertexEffectRotate( new Static1D( -135), axisZ, center);
|
| 350 |
341 |
VertexEffect effect5 = new VertexEffectMove( new Static3D(0,0,-0.5f) );
|
| 351 |
|
VertexEffect effect6 = new VertexEffectScale(0);
|
| 352 |
342 |
|
| 353 |
343 |
effect0.setMeshAssociation(30,-1); // meshes 1,2,3,4
|
| 354 |
344 |
effect1.setMeshAssociation( 2,-1); // mesh 1
|
| ... | ... | |
| 356 |
346 |
effect3.setMeshAssociation( 8,-1); // mesh 3
|
| 357 |
347 |
effect4.setMeshAssociation(16,-1); // mesh 4
|
| 358 |
348 |
effect5.setMeshAssociation(30,-1); // meshes 1,2,3,4
|
| 359 |
|
effect6.setMeshAssociation(32,-1); // mesh 5
|
| 360 |
349 |
|
| 361 |
350 |
mesh.apply(effect0);
|
| 362 |
351 |
mesh.apply(effect1);
|
| ... | ... | |
| 364 |
353 |
mesh.apply(effect3);
|
| 365 |
354 |
mesh.apply(effect4);
|
| 366 |
355 |
mesh.apply(effect5);
|
| 367 |
|
mesh.apply(effect6);
|
| 368 |
356 |
|
| 369 |
357 |
Static3D roundingCenter = new Static3D(0,0,-0.2f);
|
| 370 |
358 |
|
| ... | ... | |
| 376 |
364 |
roundCorners(mesh,roundingCenter,vertices,0.10f,0.10f);
|
| 377 |
365 |
|
| 378 |
366 |
mesh.mergeEffComponents();
|
|
367 |
mesh.addEmptyTexComponent();
|
| 379 |
368 |
|
| 380 |
369 |
return mesh;
|
| 381 |
370 |
}
|
| ... | ... | |
| 467 |
456 |
|
| 468 |
457 |
MeshBase createTetraMesh()
|
| 469 |
458 |
{
|
| 470 |
|
MeshBase[] meshes = new MeshBase[8];
|
|
459 |
MeshBase[] meshes = new MeshBase[4];
|
| 471 |
460 |
int association = 1;
|
| 472 |
461 |
|
| 473 |
462 |
float C = 0.06f;
|
| ... | ... | |
| 494 |
483 |
meshes[i].setEffectAssociation(0,association,0);
|
| 495 |
484 |
}
|
| 496 |
485 |
|
| 497 |
|
for(int i=4; i<8; i++)
|
| 498 |
|
{
|
| 499 |
|
association <<= 1;
|
| 500 |
|
meshes[i] = new MeshTriangle(1);
|
| 501 |
|
meshes[i].setEffectAssociation(0,association,0);
|
| 502 |
|
}
|
| 503 |
|
|
| 504 |
486 |
MeshBase mesh = new MeshJoined(meshes);
|
| 505 |
487 |
|
| 506 |
488 |
Static3D flipZ = new Static3D( 1, 1,-1);
|
| ... | ... | |
| 523 |
505 |
VertexEffect effect3 = new VertexEffectScale(flipZ);
|
| 524 |
506 |
VertexEffect effect4 = new VertexEffectRotate(angle1, axisY, cent0);
|
| 525 |
507 |
VertexEffect effect5 = new VertexEffectRotate(angle2, axisZ, cent0);
|
| 526 |
|
VertexEffect effect6 = new VertexEffectScale(0);
|
| 527 |
508 |
|
| 528 |
509 |
effect0.setMeshAssociation(15,-1); // meshes 0,1,2,3
|
| 529 |
510 |
effect1.setMeshAssociation(15,-1); // meshes 0,1,2,3
|
| ... | ... | |
| 531 |
512 |
effect3.setMeshAssociation(10,-1); // meshes 1 & 3
|
| 532 |
513 |
effect4.setMeshAssociation(12,-1); // meshes 2 & 3
|
| 533 |
514 |
effect5.setMeshAssociation(12,-1); // meshes 2 & 3
|
| 534 |
|
effect6.setMeshAssociation(240,-1);// meshes 4,5,6,7
|
| 535 |
515 |
|
| 536 |
516 |
mesh.apply(effect0);
|
| 537 |
517 |
mesh.apply(effect1);
|
| ... | ... | |
| 539 |
519 |
mesh.apply(effect3);
|
| 540 |
520 |
mesh.apply(effect4);
|
| 541 |
521 |
mesh.apply(effect5);
|
| 542 |
|
mesh.apply(effect6);
|
| 543 |
522 |
|
| 544 |
523 |
Static3D[] verticesRound = new Static3D[4];
|
| 545 |
524 |
verticesRound[0] = new Static3D(-0.5f,+SQ2/4, 0 );
|
| ... | ... | |
| 549 |
528 |
roundCorners(mesh,cent0,verticesRound,0.08f,0.15f);
|
| 550 |
529 |
|
| 551 |
530 |
mesh.mergeEffComponents();
|
|
531 |
mesh.addEmptyTexComponent();
|
|
532 |
mesh.addEmptyTexComponent();
|
|
533 |
mesh.addEmptyTexComponent();
|
|
534 |
mesh.addEmptyTexComponent();
|
| 552 |
535 |
|
| 553 |
536 |
return mesh;
|
| 554 |
537 |
}
|
| ... | ... | |
| 761 |
744 |
|
| 762 |
745 |
MeshBase createHelicopterFaceMesh()
|
| 763 |
746 |
{
|
| 764 |
|
MeshBase[] meshes = new MeshBase[6];
|
|
747 |
MeshBase[] meshes = new MeshBase[4];
|
| 765 |
748 |
|
| 766 |
749 |
float D = 0.02f;
|
| 767 |
750 |
float E = 0.5f;
|
| ... | ... | |
| 800 |
783 |
meshes[2].setEffectAssociation(0,4,0);
|
| 801 |
784 |
meshes[3] = meshes[2].copy(true);
|
| 802 |
785 |
meshes[3].setEffectAssociation(0,8,0);
|
| 803 |
|
meshes[4] = new MeshTriangle(1);
|
| 804 |
|
meshes[4].setEffectAssociation(0,16,0);
|
| 805 |
|
meshes[5] = new MeshTriangle(1);
|
| 806 |
|
meshes[5].setEffectAssociation(0,32,0);
|
| 807 |
786 |
|
| 808 |
787 |
MeshBase mesh = new MeshJoined(meshes);
|
| 809 |
788 |
|
| ... | ... | |
| 833 |
812 |
VertexEffect effect7 = new VertexEffectRotate(angle4, axisX, center);
|
| 834 |
813 |
VertexEffect effect8 = new VertexEffectRotate(angle1, axisY, center);
|
| 835 |
814 |
VertexEffect effect9 = new VertexEffectMove(move4);
|
| 836 |
|
VertexEffect effect10= new VertexEffectScale(0);
|
| 837 |
815 |
|
| 838 |
816 |
effect0.setMeshAssociation( 1,-1); // mesh 0
|
| 839 |
817 |
effect1.setMeshAssociation( 2,-1); // mesh 1
|
| ... | ... | |
| 845 |
823 |
effect7.setMeshAssociation( 4,-1); // mesh 2
|
| 846 |
824 |
effect8.setMeshAssociation( 8,-1); // mesh 3
|
| 847 |
825 |
effect9.setMeshAssociation(15,-1); // meshes 0,1,2,3
|
| 848 |
|
effect10.setMeshAssociation(48,-1); // meshes 4,5
|
| 849 |
826 |
|
| 850 |
827 |
mesh.apply(effect0);
|
| 851 |
828 |
mesh.apply(effect1);
|
| ... | ... | |
| 857 |
834 |
mesh.apply(effect7);
|
| 858 |
835 |
mesh.apply(effect8);
|
| 859 |
836 |
mesh.apply(effect9);
|
| 860 |
|
mesh.apply(effect10);
|
| 861 |
837 |
|
| 862 |
838 |
Static3D roundingCenter = new Static3D(-E/2 + E/3,-E/2 + E/3,-E/2);
|
| 863 |
839 |
|
| ... | ... | |
| 871 |
847 |
roundCorners(mesh,roundingCenter,verticesType2,0.10f,0.20f);
|
| 872 |
848 |
|
| 873 |
849 |
mesh.mergeEffComponents();
|
|
850 |
mesh.addEmptyTexComponent();
|
|
851 |
mesh.addEmptyTexComponent();
|
| 874 |
852 |
|
| 875 |
853 |
return mesh;
|
| 876 |
854 |
}
|
New API for the library: add an empty texture component to a Mesh.
Use this in thr Magic Cube to add empty texture components to some types of cubits.