Project

General

Profile

« Previous | Next » 

Revision eeabbae3

Added by Leszek Koltunski about 1 year ago

Progress with Master Icosamate.

View differences:

src/main/java/org/distorted/objectlib/touchcontrol/TouchControlIcosahedron.java
27 27
                                        DIST3D,DIST3D,DIST3D,DIST3D,DIST3D,
28 28
                                        DIST3D,DIST3D,DIST3D,DIST3D,DIST3D };
29 29

  
30
  // topmost vertex (0,A,0) and 3 vertices from the second-topmost-layer, front one and two ones
31
  // to the right: (0,B,C) , (D,B,E) , (F,B,H)
30
  // VEC_0: topmost one. Then 3 vertices from the second-topmost-layer,
31
  // front one and two ones to the right.
32 32

  
33 33
  private static final float Z = (float)Math.sqrt(5+SQ5);
34 34

  
35
  private static final float A = Z*(SQ2/4);
36
  private static final float B = Z*(SQ2*SQ5/20);
37
  private static final float C = Z*(SQ2*SQ5/10);
38
  private static final float D = (SQ5+1)/4;
39
  private static final float E = Z*(SQ5-1)/(4*SQ2*SQ5);
40
  private static final float F = 0.5f;
41
  private static final float H =-Z*(SQ5+1)/(4*SQ2*SQ5);
42

  
43
  private static final float X1 = D/3;
44
  private static final float X2 = (D+F)/3;
45
  private static final float X3 = (2*D+F)/3;
46
  private static final float X4 = (D+F)/3;
47
  private static final float Y1 = (A+2*B)/3;
48
  private static final float Y2 = B/3;
49
  private static final float Z1 = (C+E)/3;
50
  private static final float Z2 = (E+H)/3;
51
  private static final float Z3 = 2*H/3;
52
  private static final float Z4 = (C-2*H)/3;
53
  private static final float Z5 = -H/3;
54
  private static final float Z6 = (H-C-E)/3;
35
  private static final float VEC_0_X = 0;
36
  private static final float VEC_0_Y = Z*(SQ2/4);
37
  private static final float VEC_0_Z = 0;
38

  
39
  private static final float VEC_1_X = 0;
40
  private static final float VEC_1_Y = Z*(SQ2*SQ5/20);
41
  private static final float VEC_1_Z = Z*(SQ2*SQ5/10);
42

  
43
  private static final float VEC_2_X = (SQ5+1)/4;
44
  private static final float VEC_2_Y = Z*(SQ2*SQ5/20);
45
  private static final float VEC_2_Z = Z*(SQ5-1)/(4*SQ2*SQ5);
46

  
47
  private static final float VEC_3_X = 0.5f;
48
  private static final float VEC_3_Y = Z*(SQ2*SQ5/20);
49
  private static final float VEC_3_Z =-Z*(SQ5+1)/(4*SQ2*SQ5);
50

  
51
  private static final float X1 = VEC_2_X/3;
52
  private static final float X2 = (VEC_2_X + VEC_3_X)/3;
53
  private static final float X3 = (2*VEC_2_X + VEC_3_X)/3;
54
  private static final float X4 = (VEC_2_X + VEC_3_X)/3;
55
  private static final float Y1 = (VEC_0_Y + 2*VEC_1_Y)/3;
56
  private static final float Y2 = VEC_1_Y/3;
57
  private static final float Z1 = (VEC_1_Z + VEC_2_Z)/3;
58
  private static final float Z2 = (VEC_2_Z + VEC_3_Z)/3;
59
  private static final float Z3 = 2*VEC_3_Z/3;
60
  private static final float Z4 = (VEC_1_Z - 2*VEC_3_Z)/3;
61
  private static final float Z5 = -VEC_3_Z/3;
62
  private static final float Z6 = (VEC_3_Z - VEC_1_Z - VEC_2_Z)/3;
63

  
64
  public static final float[][] VEC = new float[][]
65
        {
66
            { VEC_0_X, VEC_0_Y, VEC_0_Z},
67

  
68
            { VEC_1_X, VEC_1_Y, VEC_1_Z},
69
            { VEC_2_X, VEC_2_Y, VEC_2_Z},
70
            { VEC_3_X, VEC_3_Y, VEC_3_Z},
71
            {-VEC_3_X, VEC_3_Y, VEC_3_Z},
72
            {-VEC_2_X, VEC_2_Y, VEC_2_Z},
73

  
74
            {-VEC_1_X,-VEC_1_Y,-VEC_1_Z},
75
            {-VEC_2_X,-VEC_2_Y,-VEC_2_Z},
76
            {-VEC_3_X,-VEC_3_Y,-VEC_3_Z},
77
            { VEC_3_X,-VEC_3_Y,-VEC_3_Z},
78
            { VEC_2_X,-VEC_2_Y,-VEC_2_Z},
79

  
80
            {-VEC_0_X,-VEC_0_Y,-VEC_0_Z},
81
        };
82

  
83
  public static final int[][] EDGE_INDICES = new int[][]
84
        {
85
            {0,1}, {0,2}, {0,3}, {0,4}, {0,5},
86
            {1,2}, {2,3}, {3,4}, {4,5}, {5,1},
87
            {1,9}, {9,2}, {2,10}, {10,3}, {3,6}, {6,4}, {4,7}, {7,5}, {5,8}, {8,1},
88
            {6,7}, {7,8}, {8,9}, {9,10}, {10,6},
89
            {11,6}, {11,7}, {11,8}, {11,9}, {11,10}
90
        };
55 91

  
56 92
  public static final Static3D[] FACE_AXIS = new Static3D[]
57 93
         {
58 94
           new Static3D(    X1/DIST3D, Y1/DIST3D, Z1/DIST3D   ),
59 95
           new Static3D(    X2/DIST3D, Y1/DIST3D, Z2/DIST3D   ),
60
           new Static3D(  0.0f/DIST3D, Y1/DIST3D, Z3/DIST3D   ),
96
           new Static3D(     0/DIST3D, Y1/DIST3D, Z3/DIST3D   ),
61 97
           new Static3D(   -X2/DIST3D, Y1/DIST3D, Z2/DIST3D   ),
62 98
           new Static3D(   -X1/DIST3D, Y1/DIST3D, Z1/DIST3D   ),
63 99

  
64
           new Static3D(  0.0f/DIST3D,-Y2/DIST3D, Z4/DIST3D   ),
100
           new Static3D(     0/DIST3D,-Y2/DIST3D, Z4/DIST3D   ),
65 101
           new Static3D(    X3/DIST3D,-Y2/DIST3D, Z5/DIST3D   ),
66 102
           new Static3D(    X4/DIST3D,-Y2/DIST3D, Z6/DIST3D   ),
67 103
           new Static3D(   -X4/DIST3D,-Y2/DIST3D, Z6/DIST3D   ),
68 104
           new Static3D(   -X3/DIST3D,-Y2/DIST3D, Z5/DIST3D   ),
69 105

  
70
           new Static3D(  0.0f/DIST3D, Y2/DIST3D,-Z4/DIST3D   ),
106
           new Static3D(     0/DIST3D, Y2/DIST3D,-Z4/DIST3D   ),
71 107
           new Static3D(   -X3/DIST3D, Y2/DIST3D,-Z5/DIST3D   ),
72 108
           new Static3D(   -X4/DIST3D, Y2/DIST3D,-Z6/DIST3D   ),
73 109
           new Static3D(    X4/DIST3D, Y2/DIST3D,-Z6/DIST3D   ),
......
75 111

  
76 112
           new Static3D(   -X1/DIST3D,-Y1/DIST3D,-Z1/DIST3D   ),
77 113
           new Static3D(   -X2/DIST3D,-Y1/DIST3D,-Z2/DIST3D   ),
78
           new Static3D(  0.0f/DIST3D,-Y1/DIST3D,-Z3/DIST3D   ),
114
           new Static3D(     0/DIST3D,-Y1/DIST3D,-Z3/DIST3D   ),
79 115
           new Static3D(    X2/DIST3D,-Y1/DIST3D,-Z2/DIST3D   ),
80 116
           new Static3D(    X1/DIST3D,-Y1/DIST3D,-Z1/DIST3D   ),
81 117
         };

Also available in: Unified diff