99 |
99 |
{
|
100 |
100 |
if( mCuts==null )
|
101 |
101 |
{
|
102 |
|
float[] cut = new float[] {0};
|
|
102 |
float[] cut = new float[] {0}; // TODO
|
103 |
103 |
mCuts = new float[][] { cut,cut,cut,cut,cut,cut };
|
104 |
104 |
}
|
105 |
105 |
|
... | ... | |
110 |
110 |
|
111 |
111 |
public boolean[][] getLayerRotatable(int[] numLayers)
|
112 |
112 |
{
|
113 |
|
boolean[] tmp = new boolean[] {true,true};
|
|
113 |
int nL = numLayers[0];
|
|
114 |
boolean[] tmp = new boolean[nL];
|
|
115 |
for(int i=0; i<nL; i++) tmp[i] = true;
|
114 |
116 |
return new boolean[][] { tmp,tmp,tmp,tmp,tmp,tmp };
|
115 |
117 |
}
|
116 |
118 |
|
... | ... | |
329 |
331 |
|
330 |
332 |
public int getNumCubitVariants(int[] numLayers)
|
331 |
333 |
{
|
332 |
|
return 2;
|
|
334 |
return getNumLayers()[0]==2 ? 2 : 3;
|
333 |
335 |
}
|
334 |
336 |
|
335 |
337 |
///////////////////////////////////////////////////////////////////////////////////////////////////
|
336 |
338 |
|
337 |
339 |
public int getCubitVariant(int cubit, int[] numLayers)
|
338 |
340 |
{
|
339 |
|
return cubit<12 ? 0:1;
|
|
341 |
int N = getNumLayers()[0];
|
|
342 |
return cubit<12 ? 0 : (cubit<10*N*(N-1)+12 ? 1 : 2);
|
340 |
343 |
}
|
341 |
344 |
|
342 |
345 |
///////////////////////////////////////////////////////////////////////////////////////////////////
|
... | ... | |
387 |
390 |
|
388 |
391 |
public String getShortName()
|
389 |
392 |
{
|
390 |
|
return ObjectType.ICOS_2.name();
|
|
393 |
switch(getNumLayers()[0])
|
|
394 |
{
|
|
395 |
case 2: return ObjectType.ICOS_2.name();
|
|
396 |
case 3: return ObjectType.ICOS_3.name();
|
|
397 |
}
|
|
398 |
|
|
399 |
return null;
|
391 |
400 |
}
|
392 |
401 |
|
393 |
402 |
///////////////////////////////////////////////////////////////////////////////////////////////////
|
394 |
403 |
|
395 |
404 |
public ObjectSignature getSignature()
|
396 |
405 |
{
|
397 |
|
return new ObjectSignature(ObjectSignatures.ICOS_2);
|
|
406 |
switch(getNumLayers()[0])
|
|
407 |
{
|
|
408 |
case 2: return new ObjectSignature(ObjectSignatures.ICOS_2);
|
|
409 |
case 3: return new ObjectSignature(ObjectSignatures.ICOS_3);
|
|
410 |
}
|
|
411 |
|
|
412 |
return null;
|
398 |
413 |
}
|
399 |
414 |
|
400 |
415 |
///////////////////////////////////////////////////////////////////////////////////////////////////
|
401 |
416 |
|
402 |
417 |
public String getObjectName()
|
403 |
418 |
{
|
404 |
|
return "Icosamate";
|
|
419 |
switch(getNumLayers()[0])
|
|
420 |
{
|
|
421 |
case 2: return "Icosamate";
|
|
422 |
case 3: return "Master Icosamate";
|
|
423 |
}
|
|
424 |
return null;
|
405 |
425 |
}
|
406 |
426 |
|
407 |
427 |
///////////////////////////////////////////////////////////////////////////////////////////////////
|
408 |
428 |
|
409 |
429 |
public String getInventor()
|
410 |
430 |
{
|
411 |
|
return "Jason Smith";
|
|
431 |
switch(getNumLayers()[0])
|
|
432 |
{
|
|
433 |
case 2: return "Jason Smith";
|
|
434 |
case 3: return "Keisuke Maruyama";
|
|
435 |
}
|
|
436 |
return null;
|
412 |
437 |
}
|
413 |
438 |
|
414 |
439 |
///////////////////////////////////////////////////////////////////////////////////////////////////
|
415 |
440 |
|
416 |
441 |
public int getYearOfInvention()
|
417 |
442 |
{
|
418 |
|
return 2010;
|
|
443 |
switch(getNumLayers()[0])
|
|
444 |
{
|
|
445 |
case 2: return 2010;
|
|
446 |
case 3: return 2018;
|
|
447 |
}
|
|
448 |
return 0;
|
419 |
449 |
}
|
420 |
450 |
|
421 |
451 |
///////////////////////////////////////////////////////////////////////////////////////////////////
|
422 |
452 |
|
423 |
453 |
public int getComplexity()
|
424 |
454 |
{
|
425 |
|
return 3;
|
|
455 |
return getNumLayers()[0]==2 ? 3 : 4;
|
426 |
456 |
}
|
427 |
457 |
|
428 |
458 |
///////////////////////////////////////////////////////////////////////////////////////////////////
|
429 |
459 |
|
430 |
460 |
public String[][] getTutorials()
|
431 |
461 |
{
|
432 |
|
return new String[][] {
|
|
462 |
int[] numLayers = getNumLayers();
|
|
463 |
|
|
464 |
switch(numLayers[0])
|
|
465 |
{
|
|
466 |
case 2: return new String[][] {
|
433 |
467 |
{"gb","e7Es4Zx6Sl4","Icosamate introduction & algorithms","Superantoniovivaldi"},
|
434 |
468 |
{"gb","ZhkklbYfs98","Icosamate solve","Superantoniovivaldi"},
|
435 |
469 |
{"pl","eJTLTeoicWI","Icosamate TUTORIAL PL","MrUK"},
|
436 |
470 |
{"vn","RVjjxj9rPeg","BẠN PHẠM BẢO GIẢI ICOSAMATE","VĂN CÔNG TÙNG"},
|
437 |
471 |
};
|
|
472 |
case 3: return new String[][] {
|
|
473 |
{"gb","77aBjBdfA2Q","Master Icosamate Algorithms","Superantoniovivaldi"},
|
|
474 |
{"gb","j6AIwlIofFU","Master Icosamate Tutorial","Superantoniovivaldi"},
|
|
475 |
{"gb","5Z1B5r6-CxM","Astrominx Tutorial","Jabberwock Technologies"},
|
|
476 |
{"pl","","Icosamate TUTORIAL PL","MrUK"},
|
|
477 |
{"vn","C4YO0B4rgTc","Tutorial N.237- Master Icosamate 1/3","Duy Thích Rubik"},
|
|
478 |
{"vn","90m_0AoyOHU","Tutorial N.237- Master Icosamate 2/3","Duy Thích Rubik"},
|
|
479 |
{"vn","LOd5qBwoP_k","Tutorial N.237- Master Icosamate 3/3","Duy Thích Rubik"},
|
|
480 |
};
|
|
481 |
}
|
|
482 |
|
|
483 |
return null;
|
438 |
484 |
}
|
439 |
485 |
}
|
Master Icosamate: first code.