| 119 | 119 | 
 | 
  | 120 | 120 |   float getScreenRatio()
 | 
  | 121 | 121 |     {
 | 
  | 122 |  |     return 1.5f;
 | 
  |  | 122 |     return 0.5f;
 | 
  | 123 | 123 |     }
 | 
  | 124 | 124 | 
 | 
  | 125 | 125 | ///////////////////////////////////////////////////////////////////////////////////////////////////
 | 
  | ... | ... |  | 
  | 162 | 162 | 
 | 
  | 163 | 163 |   float[][] getCuts(int numLayers)
 | 
  | 164 | 164 |     {
 | 
  | 165 |  |     float C = SQ3*0.15f; // bit less than 1/6 of the length of the main diagonal
 | 
  |  | 165 |     float C = SQ3*0.45f; // bit less than 1/2 of the length of the main diagonal
 | 
  | 166 | 166 |     float[] cut = new float[] {-C,+C};
 | 
  | 167 | 167 |     return new float[][] { cut,cut,cut,cut };
 | 
  | 168 | 168 |     }
 | 
  | ... | ... |  | 
  | 178 | 178 | 
 | 
  | 179 | 179 |   float[][] getCubitPositions(int numLayers)
 | 
  | 180 | 180 |     {
 | 
  | 181 |  |     final float DIST1= 0.50f;
 | 
  | 182 |  |     final float DIST2= (1+2*REX_D)/6;
 | 
  | 183 |  |     final float DIST3= 0.51f;
 | 
  |  | 181 |     final float DIST1= 1.50f;
 | 
  |  | 182 |     final float DIST2= (1+2*REX_D)/2;
 | 
  |  | 183 |     final float DIST3= 1.53f;
 | 
  | 184 | 184 | 
 | 
  | 185 | 185 |     final float[][] CENTERS = new float[24+6+12][];
 | 
  | 186 | 186 | 
 | 
  | ... | ... |  | 
  | 241 | 241 |     if( variant==0 )
 | 
  | 242 | 242 |       {
 | 
  | 243 | 243 |       float G = (1-REX_D)*SQ2/2;
 | 
  | 244 |  | 
 | 
  | 245 |  |       double[][] vertices =
 | 
  | 246 |  |          {
 | 
  | 247 |  |              {  -0.033333f, 0.23333f, 0.0f },
 | 
  | 248 |  |              {  -0.233333f, 0.03333f, 0.0f },
 | 
  | 249 |  |              {  +0.216666f,-0.23666f, 0.0f },
 | 
  | 250 |  |              {  +0.236666f,-0.21666f, 0.0f }
 | 
  | 251 |  |          };
 | 
  | 252 |  | 
 | 
  |  | 244 |       double[][] vertices ={{-0.10f,0.70f,0},{-0.70f,0.10f,0},{+0.65f,-0.71f,0},{+0.71f,-0.65f,0}};
 | 
  | 253 | 245 |       int[][] vertIndexes = { {0,1,2,3},{3,2,1,0} };
 | 
  | 254 |  |       float[][] centers= new float[][] { {0.0f,0.0f,-G/3} };
 | 
  | 255 |  |       float[][] corners= new float[][] { {0.03f,0.10f} };
 | 
  |  | 246 |       float[][] centers= new float[][] { {0.0f,0.0f,-G} };
 | 
  |  | 247 |       float[][] corners= new float[][] { {0.03f,0.30f} };
 | 
  | 256 | 248 |       int[] indices= {-1,-1,0,0};
 | 
  | 257 | 249 |       int[] bandIndices= new int[] { 0,1 };
 | 
  |  | 250 |       float[][] bands = { {+0.016f,10,G/3,0.5f,5,1,1},{+0.230f,45,G/3,0.0f,2,0,0} };
 | 
  | 258 | 251 | 
 | 
  | 259 |  |       float[][] bands =
 | 
  | 260 |  |         {
 | 
  | 261 |  |             {+0.016f,10,G/3,0.5f,5,1,1},
 | 
  | 262 |  |             {+0.230f,45,G/3,0.0f,2,0,0}
 | 
  | 263 |  |         };
 | 
  | 264 | 252 |       return new ObjectShape(vertices,vertIndexes,bands,bandIndices,corners,indices,centers,indices,getNumCubitFaces(), null);
 | 
  | 265 | 253 |       }
 | 
  | 266 | 254 |     else if( variant==1 )
 | 
  | 267 | 255 |       {
 | 
  | 268 |  |       double[][] vertices =
 | 
  | 269 |  |         {
 | 
  | 270 |  |             { -REX_D,   0.0f, 0.0f },
 | 
  | 271 |  |             {   0.0f, -REX_D, 0.0f },
 | 
  | 272 |  |             { +REX_D,   0.0f, 0.0f },
 | 
  | 273 |  |             {   0.0f, +REX_D, 0.0f }
 | 
  | 274 |  |         };
 | 
  | 275 |  | 
 | 
  |  | 256 |       float G = 3*REX_D;
 | 
  |  | 257 |       double[][] vertices= { { -G, 0, 0 },{ 0, -G, 0 },{ +G, 0, 0 },{ 0,+G,0 } };
 | 
  | 276 | 258 |       int[][] vertIndexes= { {0,1,2,3},{3,2,1,0} };
 | 
  | 277 | 259 |       int[] indices= {-1,-1,-1,-1};
 | 
  | 278 | 260 |       int[] bandIndices= new int[] { 0,1 };
 | 
  | 279 |  | 
 | 
  | 280 |  |       float[][] bands =
 | 
  | 281 |  |         {
 | 
  | 282 |  |             {0.025f,10,REX_D/2,0.5f,5,0,0},
 | 
  | 283 |  |             {0.000f,45,REX_D/2,0.0f,2,0,0}
 | 
  | 284 |  |         };
 | 
  |  | 261 |       float[][] bands = { {0.025f,10,G/2,0.5f,5,0,0},{0.000f,45,G/2,0.0f,2,0,0} };
 | 
  | 285 | 262 | 
 | 
  | 286 | 263 |       return new ObjectShape(vertices,vertIndexes,bands,bandIndices,null,indices,null,indices,getNumCubitFaces(), null);
 | 
  | 287 | 264 |       }
 | 
  | 288 | 265 |     else
 | 
  | 289 | 266 |       {
 | 
  | 290 |  |       float E = 0.5f - REX_D;
 | 
  | 291 |  |       float F = 0.5f;
 | 
  |  | 267 |       float E = 1.5f - 3*REX_D;
 | 
  |  | 268 |       float F = 1.5f;
 | 
  | 292 | 269 |       float G = (float)Math.sqrt(E*E+F*F);
 | 
  | 293 |  | 
 | 
  | 294 |  |       double[][] vertices =
 | 
  | 295 |  |          {
 | 
  | 296 |  |              { -F, 0, 0 },
 | 
  | 297 |  |              {  0,-E, 0 },
 | 
  | 298 |  |              { +F, 0, 0 },
 | 
  | 299 |  |              {  0, 0,-E },
 | 
  | 300 |  |          };
 | 
  | 301 |  | 
 | 
  |  | 270 |       double[][] vertices = { { -F, 0, 0 },{  0,-E, 0 },{ +F, 0, 0 },{  0, 0,-E } };
 | 
  | 302 | 271 |       int[][] vertIndexes = { {0,1,2}, {0,2,3}, {0,3,1}, {1,3,2} };
 | 
  | 303 |  |       float[][] centers= new float[][] { {0.0f,-0.5f,-0.5f} };
 | 
  | 304 |  |       float[][] corners= new float[][] { {0.06f,0.10f} };
 | 
  |  | 272 |       float[][] centers= new float[][] { {0.0f,-1.5f,-1.5f} };
 | 
  |  | 273 |       float[][] corners= new float[][] { {0.06f,0.20f} };
 | 
  | 305 | 274 |       int[] indices= {0,-1,0,-1};
 | 
  | 306 | 275 |       int[] bandIndices= new int[] { 0,0,1,1 };
 | 
  | 307 |  | 
 | 
  | 308 |  |       float[][] bands =
 | 
  | 309 |  |         {
 | 
  | 310 |  |            {0.03f,27,F/3,0.8f,5,2,3},
 | 
  | 311 |  |            {0.01f,45,G/3,0.2f,3,1,2}
 | 
  | 312 |  |         };
 | 
  |  | 276 |       float[][] bands = { {0.03f,27,F/3,0.8f,5,2,3},{0.01f,45,G/3,0.2f,3,1,2} };
 | 
  | 313 | 277 | 
 | 
  | 314 | 278 |       return new ObjectShape(vertices,vertIndexes,bands,bandIndices,corners,indices,centers,indices,getNumCubitFaces(), null);
 | 
  | 315 | 279 |       }
 | 
 
Make Rex standard size (cube size=3, i.e. equal to numLayers so that DIST2D and DIST3D are standard)