Project

General

Profile

« Previous | Next » 

Revision db3b12e6

Added by Leszek Koltunski about 4 years ago

Progress with the Ivy.

View differences:

src/main/java/org/distorted/objects/FactoryCubit.java
39 39
  private static final float SQ3 = (float)Math.sqrt(3);
40 40
  private static final float SQ6 = (float)Math.sqrt(6);
41 41

  
42
  private static final float IVY_D = 0.10f;
42
  private static final float IVY_D = 0.12f;
43 43
  private static final int   IVY_N = 8;
44 44

  
45 45
  private static final Static1D RADIUS = new Static1D(1);
......
502 502

  
503 503
  MeshBase createFacesIvyCorner()
504 504
    {
505
    return createFacesSkewbCorner();
505
    MeshBase[] meshes = new MeshBase[6];
506

  
507
    final float angle = (float)Math.PI/(2*IVY_N);
508
    final float CORR  = 1.0f - IVY_D*SQ2;
509
    final float DIST  = 0.4f;
510
    final float CORR2 = 0.5f;
511
    float[] vertices = new float[2*(IVY_N+1)+6];
512

  
513
    vertices[0] = ( 0.5f      -DIST)*CORR2;
514
    vertices[1] = (-0.5f+IVY_D-DIST)*CORR2;
515
    vertices[2] = ( 0.5f      -DIST)*CORR2;
516
    vertices[3] = ( 0.5f      -DIST)*CORR2;
517
    vertices[4] = (-0.5f+IVY_D-DIST)*CORR2;
518
    vertices[5] = ( 0.5f      -DIST)*CORR2;
519

  
520
    for(int i=0; i<=IVY_N; i++)
521
      {
522
      float ang = (IVY_N-i)*angle;
523
      float sin = (float)Math.sin(ang);
524
      float cos = (float)Math.cos(ang);
525

  
526
      vertices[2*i+6] = (CORR*(cos-0.5f)-DIST)*CORR2;
527
      vertices[2*i+7] = (CORR*(sin-0.5f)-DIST)*CORR2;
528
      }
529

  
530
    float[] bands0 = computeBands(+0.02f,18,0.2f,0.5f,5);
531
    float[] bands1 = computeBands(-0.10f,20,0.2f,0.0f,2);
532

  
533
    meshes[0] = new MeshPolygon(vertices,bands0,0,0);
534
    meshes[0].setEffectAssociation(0,1,0);
535
    meshes[1] = meshes[0].copy(true);
536
    meshes[1].setEffectAssociation(0,2,0);
537
    meshes[2] = meshes[0].copy(true);
538
    meshes[2].setEffectAssociation(0,4,0);
539
    meshes[3] = new MeshPolygon(vertices,bands1,0,0);
540
    meshes[3].setEffectAssociation(0,8,0);
541
    meshes[4] = meshes[3].copy(true);
542
    meshes[4].setEffectAssociation(0,16,0);
543
    meshes[5] = meshes[3].copy(true);
544
    meshes[5].setEffectAssociation(0,32,0);
545

  
546
    return new MeshJoined(meshes);
506 547
    }
507 548

  
508 549
///////////////////////////////////////////////////////////////////////////////////////////////////
......
942 983

  
943 984
  VertexEffect[] createVertexEffectsIvyCorner()
944 985
    {
945
    return createVertexEffectsSkewbCorner();
986
    float DIST=0.1f;
987

  
988
    Static3D axisX  = new Static3D(1,0,0);
989
    Static3D axisY  = new Static3D(0,1,0);
990
    Static1D angle1 = new Static1D(+90);
991
    Static1D angle2 = new Static1D(-90);
992
    Static3D center = new Static3D(0,0,0);
993
    Static3D move1  = new Static3D(-DIST,-DIST,0);
994

  
995
    VertexEffect[] effect = new VertexEffect[5];
996

  
997
    effect[0] = new VertexEffectScale(2.0f);
998
    effect[1] = new VertexEffectMove(move1);
999
    effect[2] = new VertexEffectScale(new Static3D(1,1,-1));
1000
    effect[3] = new VertexEffectRotate(angle1,axisX,center);
1001
    effect[4] = new VertexEffectRotate(angle2,axisY,center);
1002

  
1003
    effect[2].setMeshAssociation(54,-1);  // meshes 1,2,4,5
1004
    effect[3].setMeshAssociation(18,-1);  // meshes 1,4
1005
    effect[4].setMeshAssociation(36,-1);  // meshes 2,5
1006

  
1007
    return effect;
946 1008
    }
947 1009

  
948 1010
///////////////////////////////////////////////////////////////////////////////////////////////////
......
1207 1269

  
1208 1270
    Static3D center = new Static3D(-0.5f,-0.5f,-0.5f);
1209 1271
    Static3D[] vertices = new Static3D[4];
1272
    float DIST = IVY_D-0.5f;
1210 1273
    vertices[0] = new Static3D(+0.5f,+0.5f,+0.5f);
1211
    vertices[1] = new Static3D(-0.5f,+0.5f,+0.5f);
1212
    vertices[2] = new Static3D(+0.5f,+0.5f,-0.5f);
1213
    vertices[3] = new Static3D(+0.5f,-0.5f,+0.5f);
1274
    vertices[1] = new Static3D( DIST,+0.5f,+0.5f);
1275
    vertices[2] = new Static3D(+0.5f, DIST,+0.5f);
1276
    vertices[3] = new Static3D(+0.5f,+0.5f, DIST);
1214 1277

  
1215 1278
    roundCorners(mesh,center,vertices,0.06f,0.12f);
1216 1279

  

Also available in: Unified diff