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)