Project

General

Profile

« Previous | Next » 

Revision 1b32d001

Added by Leszek Koltunski over 3 years ago

Make the Ultimate standard size (dodecahedron size=2, i.e. equal to numLayers so that DIST2D and DIST3D are standard)

View differences:

src/main/java/org/distorted/objects/MovementUltimate.java
31 31

  
32 32
class MovementUltimate extends Movement
33 33
{
34
  static final float DIST3D = (float)Math.sqrt(0.625f+0.275f*SQ5)/2;
35
  static final float DIST2D = (0.5f*SIN54/COS54)/2;
34
  static final float DIST3D = (float)Math.sqrt(0.625f+0.275f*SQ5);
35
  static final float DIST2D = (SIN54/COS54)/2;
36 36

  
37 37
  static final Static3D[] FACE_AXIS = new Static3D[]
38 38
         {
src/main/java/org/distorted/objects/TwistyUltimate.java
144 144
      {
145 145
      double[][] vertices = new double[][]
146 146
         {
147
           { 0.0       ,  0.0      , 0.0       },
148
           { -0.5*E    , 0.5*E+0.25, -0.25     },
149
           {-0.25      , -E/2      , (-2*E-1)/4},
150
           { 0.5*E+0.25, 0.25      , -E/2      },
151
           { 0.0       , 0.5       , -E-0.5    },
152
           { 0.0       , 0.5       , 0.0       },
153
           { -0.5*E    ,-0.5*E+0.25, -0.25     },
154
           {  0.5*E    ,-0.5*E+0.25, -0.25     }
147
           { 0.0  , 0.0  , 0.0   },
148
           { -E   , E+0.5, -0.5  },
149
           {-0.5  , -E   , -E-0.5},
150
           { E+0.5, 0.5  , -E    },
151
           { 0.0  , 1    , -2*E-1},
152
           { 0.0  , 1    , 0.0   },
153
           { -E   ,-E+0.5, -0.5  },
154
           {  E   ,-E+0.5, -0.5  }
155 155
         };
156 156
      int[][] vert_indices = new int[][]
157 157
         {
......
165 165

  
166 166
      float[][] bands     = new float[][] { {0.03f,17,0.5f,0.2f,5,2,2}, {0.01f, 1,0.5f,0.2f,5,2,2} };
167 167
      int[] bandIndices   = new int[] { 0,0,0,1,1,1 };
168
      float[][] corners   = new float[][] {  { 0.013f, 0.08f } };
168
      float[][] corners   = new float[][] {  { 0.013f, 0.16f } };
169 169
      int[] cornerIndices = new int[] { 0, 0, 0, 0,-1, 0, 0, 0 };
170
      float[][] centers   = new float[][] { { 0.0f,-0.5f, -(SQ5+3)/4 } };
170
      float[][] centers   = new float[][] { { 0.0f,-1.0f, -(SQ5+3)/2 } };
171 171
      int[] centerIndices = new int[] { 0,0,0,0,0,0,0,0 };
172 172
      return new ObjectShape(vertices,vert_indices,bands,bandIndices,corners,cornerIndices,centers,centerIndices,getNumCubitFaces(), null);
173 173
      }
......
175 175
      {
176 176
      double[][] vertices = new double[][]
177 177
         {
178
            {         0.000,         0.000,         0.000},
179
            {       - 0.250,-SQ5/8 - 0.125,-SQ5/8 - 0.375},
180
            { SQ5/8 + 0.125,-SQ5/8 - 0.375,       + 0.250},
181
            { SQ5/8 + 0.375,       + 0.250,-SQ5/8 - 0.125},
182
            { SQ5/4 + 0.250,-SQ5/4 - 0.250,-SQ5/4 - 0.250},
183
            { SQ5/8 - 0.125,       + 0.250,-SQ5/8 - 0.125},
184
            {       - 0.250,-SQ5/8 - 0.125,-SQ5/8 + 0.125},
185
            { SQ5/8 + 0.125,-SQ5/8 + 0.125,       + 0.250}
178
            {         0.00,         0.00,         0.00},
179
            {       - 0.50,-SQ5/4 - 0.25,-SQ5/4 - 0.75},
180
            { SQ5/4 + 0.25,-SQ5/4 - 0.75,       + 0.50},
181
            { SQ5/4 + 0.75,       + 0.50,-SQ5/4 - 0.25},
182
            { SQ5/2 + 0.50,-SQ5/2 - 0.50,-SQ5/2 - 0.50},
183
            { SQ5/4 - 0.25,       + 0.50,-SQ5/4 - 0.25},
184
            {       - 0.50,-SQ5/4 - 0.25,-SQ5/4 + 0.25},
185
            { SQ5/4 + 0.25,-SQ5/4 + 0.25,       + 0.50}
186 186
         };
187 187
      int[][] vert_indices  = new int[][]
188 188
         {
......
196 196

  
197 197
      float[][] bands     = new float[][] { {0.03f,17,0.5f,0.2f,5,2,2}, {0.01f, 1,0.5f,0.2f,5,2,2} };
198 198
      int[] bandIndices   = new int[] { 0,0,0,1,1,1 };
199
      float[][] corners   = new float[][] {  { 0.013f, 0.08f } };
199
      float[][] corners   = new float[][] {  { 0.013f, 0.16f } };
200 200
      int[] cornerIndices = new int[] { 0, 0, 0, 0,-1, 0, 0, 0 };
201
      float[][] centers   = new float[][] { { 0.0f,-0.5f, -(SQ5+3)/4 } };
201
      float[][] centers   = new float[][] { { 0.0f,-1.0f, -(SQ5+3)/2 } };
202 202
      int[] centerIndices = new int[] { 0,0,0,0,0,0,0,0 };
203 203
      return new ObjectShape(vertices,vert_indices,bands,bandIndices,corners,cornerIndices,centers,centerIndices,getNumCubitFaces(), null);
204 204
      }
......
206 206
      {
207 207
      double[][] vertices = new double[][]
208 208
         {
209
           {-E/2     ,-E/2+0.25,     0.25},
210
           { E/2     , E/2-0.25,    -0.25},
211
           {-E       ,     0.00,     0.00},
212
           {     0.25, E/2     ,-E/2-0.25},
213
           {-E/2     ,-E/2-0.25,     0.25},
214
           { E/2+0.25,    -0.25,-E/2     },
215
           {-E       ,    -0.50,     0.00},
216
           {     0.50,     0.00,-E       },
217
           {-E  +0.25, E/2     ,-E/2-0.25},
218
           {     0.25,-E/2-0.50,-E/2+0.25},
219
           {-E/2     ,-E/2-0.25,-E  -0.25}
209
           {  -E    ,-E+0.5,     0.5},
210
           {   E    , E-0.5,    -0.5},
211
           {-2*E    ,   0.0,     0.0},
212
           {     0.5, E    ,  -E-0.5},
213
           {  -E    ,-E-0.5,     0.5},
214
           {   E+0.5,  -0.5,  -E    },
215
           {-2*E    ,  -1.0,     0.0},
216
           {     1.0,   0.0,-2*E    },
217
           {-2*E+0.5, E    ,  -E-0.5},
218
           {     0.5,-E-1.0,  -E+0.5},
219
           {  -E    ,-E-0.5,-2*E-0.5}
220 220
         };
221 221
      int[][] vert_indices = new int[][]
222 222
         {
......
232 232

  
233 233
      float[][] bands     = new float[][] { {0.04f,17,0.5f,0.2f,5,2,2}, {0.03f,17,0.5f,0.2f,5,2,2}, {0.01f, 1,0.5f,0.2f,5,2,2} };
234 234
      int[] bandIndices   = new int[] { 0,0,1,1,2,2,2,2 };
235
      float[][] corners   = new float[][] { { 0.013f, 0.08f } };
235
      float[][] corners   = new float[][] { { 0.013f, 0.16f } };
236 236
      int[] cornerIndices = new int[] { 0,0,0,0,0,0,0,0,0,0,-1 };
237
      float[][] centers   = new float[][] { { -(SQ5+1)/8, 0.25f, -(SQ5+5)/8 } };
237
      float[][] centers   = new float[][] { { -(SQ5+1)/4, 0.5f, -(SQ5+5)/4 } };
238 238
      int[] centerIndices = new int[] { 0,0,0,0,0,0,0,0,0,0,0 };
239 239
      return new ObjectShape(vertices,vert_indices,bands,bandIndices,corners,cornerIndices,centers,centerIndices,getNumCubitFaces(), null);
240 240
      }
......
271 271
      {
272 272
      mCenters = new float[][]
273 273
         {
274
           { 0.0f,-0.5f,    G },
275
           {    E,   -E,   -E },
276
           {   -G, 0.0f,-0.5f },
277
           { 0.5f,    G, 0.0f },
278

  
279
           {   -E,    E,    E },
280
           {    G, 0.0f, 0.5f },
281
           {-0.5f,   -G, 0.0f },
282
           { 0.0f, 0.5f,   -G },
283

  
284
           {        E/2, (E+0.5f)/2,    (E+G)/2 },
285
           {   -(E+G)/2,       -E/2, (E+0.5f)/2 },
286
           { (E+0.5f)/2,   -(E+G)/2,        E/2 },
287
           {       -E/2,-(E+0.5f)/2,   -(E+G)/2 },
288
           {    (E+G)/2,        E/2,-(E+0.5f)/2 },
289
           {-(E+0.5f)/2,    (E+G)/2,       -E/2 }
274
           {   0,  -1, 2*G },
275
           { 2*E,-2*E,-2*E },
276
           {-2*G,   0,  -1 },
277
           {   1, 2*G,   0 },
278

  
279
           {-2*E,  2*E, 2*E },
280
           { 2*G,    0,   1 },
281
           {  -1, -2*G,   0 },
282
           {   0,    1,-2*G },
283

  
284
           {        E, (E+0.5f),    (E+G) },
285
           {   -(E+G),       -E, (E+0.5f) },
286
           { (E+0.5f),   -(E+G),        E },
287
           {       -E,-(E+0.5f),   -(E+G) },
288
           {    (E+G),        E,-(E+0.5f) },
289
           {-(E+0.5f),    (E+G),       -E }
290 290
         };
291 291
      }
292 292

  
......
422 422

  
423 423
  float getScreenRatio()
424 424
    {
425
    return 0.67f;
425
    return 0.33f;
426 426
    }
427 427

  
428 428
///////////////////////////////////////////////////////////////////////////////////////////////////

Also available in: Unified diff