Revision bc008758
Added by Leszek Koltunski over 3 years ago
| src/main/java/org/distorted/objectlib/main/TwistyObject.java | ||
|---|---|---|
| 151 | 151 |
private int[][] mBasicAngles; |
| 152 | 152 |
private int mIconMode; |
| 153 | 153 |
private final InitData mInitData; |
| 154 |
private float[][] mRowOffset; |
|
| 154 | 155 |
|
| 155 | 156 |
//////////////////// SOLVED1 //////////////////////// |
| 156 | 157 |
|
| ... | ... | |
| 209 | 210 |
mNumCubits = mOrigPos.length; |
| 210 | 211 |
mNumFaceColors = getNumFaceColors(); |
| 211 | 212 |
mNumAxis = mAxis.length; |
| 213 |
mRowOffset = getRowOffset(); |
|
| 212 | 214 |
|
| 213 | 215 |
int scramblingType = getScrambleType(); |
| 214 | 216 |
ScrambleState[] states = getScrambleStates(); |
| ... | ... | |
| 409 | 411 |
|
| 410 | 412 |
for(int i=0; i<mNumCubits; i++) |
| 411 | 413 |
{
|
| 412 |
mCubits[i] = new Cubit(this,mOrigPos[i], mNumAxis); |
|
| 414 |
mCubits[i] = new Cubit(this,mOrigPos[i], mNumAxis,i);
|
|
| 413 | 415 |
setCubitQuat(i,mCubits[i].computeAssociation(),0); |
| 414 | 416 |
} |
| 415 | 417 |
} |
| ... | ... | |
| 711 | 713 |
return null; |
| 712 | 714 |
} |
| 713 | 715 |
|
| 716 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 717 |
|
|
| 718 |
public float[][] getRowOffset() |
|
| 719 |
{
|
|
| 720 |
return new float[mNumCubits][3]; |
|
| 721 |
} |
|
| 722 |
|
|
| 714 | 723 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 715 | 724 |
|
| 716 | 725 |
public int[][] getSolvedQuats() |
| ... | ... | |
| 932 | 941 |
|
| 933 | 942 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 934 | 943 |
|
| 935 |
int computeRow(float[] pos, int axisIndex) |
|
| 944 |
int computeRow(float[] pos, int axisIndex, int cubitIndex)
|
|
| 936 | 945 |
{
|
| 937 | 946 |
int ret=0; |
| 938 | 947 |
int len = pos.length / 3; |
| ... | ... | |
| 942 | 951 |
float axisZ = axis.get2(); |
| 943 | 952 |
float casted; |
| 944 | 953 |
|
| 954 |
float xoff = mRowOffset[cubitIndex][0]; |
|
| 955 |
float yoff = mRowOffset[cubitIndex][1]; |
|
| 956 |
float zoff = mRowOffset[cubitIndex][2]; |
|
| 957 |
|
|
| 945 | 958 |
for(int i=0; i<len; i++) |
| 946 | 959 |
{
|
| 947 |
casted = pos[3*i]*axisX + pos[3*i+1]*axisY + pos[3*i+2]*axisZ;
|
|
| 960 |
casted = (pos[3*i]+xoff)*axisX + (pos[3*i+1]+yoff)*axisY + (pos[3*i+2]+zoff)*axisZ;
|
|
| 948 | 961 |
ret |= computeSingleRow(axisIndex,casted); |
| 949 | 962 |
} |
| 950 | 963 |
|
| ... | ... | |
| 1076 | 1089 |
// Clamp all rotated positions to one of those original ones to avoid accumulating errors. |
| 1077 | 1090 |
// Do so only if minimal Error is appropriately low (shape-shifting puzzles - Square-1) |
| 1078 | 1091 |
|
| 1079 |
void clampPos(float[] pos, int offset)
|
|
| 1092 |
int clampPos(float[] pos, int offset)
|
|
| 1080 | 1093 |
{
|
| 1081 | 1094 |
float currError, minError = Float.MAX_VALUE; |
| 1082 | 1095 |
int minErrorIndex1 = -1; |
| ... | ... | |
| 1114 | 1127 |
pos[offset ] = mOrigPos[minErrorIndex1][3*minErrorIndex2 ]; |
| 1115 | 1128 |
pos[offset+1] = mOrigPos[minErrorIndex1][3*minErrorIndex2+1]; |
| 1116 | 1129 |
pos[offset+2] = mOrigPos[minErrorIndex1][3*minErrorIndex2+2]; |
| 1130 |
return minErrorIndex1; |
|
| 1117 | 1131 |
} |
| 1132 |
|
|
| 1133 |
return 0; |
|
| 1118 | 1134 |
} |
| 1119 | 1135 |
|
| 1120 | 1136 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| ... | ... | |
| 1467 | 1483 |
|
| 1468 | 1484 |
for(int s=0; s<numStickers; s++) |
| 1469 | 1485 |
{
|
| 1470 |
float scale = mStickerScales[s];
|
|
| 1486 |
float scale = mStickerScales.length>s ? mStickerScales[s] : 1.0f;
|
|
| 1471 | 1487 |
float radius = rad / scale; |
| 1472 | 1488 |
float stroke = str / scale; |
| 1473 | 1489 |
int len = mStickerCoords[s].length/2; |
Also available in: Unified diff
Crazy Planets: progress