Revision 693cc52e
Added by Leszek Koltunski 12 months ago
src/main/java/org/distorted/objectlib/tablebases/TBCuboid323.java | ||
---|---|---|
197 | 197 |
return new boolean[][] { {true,false,true},{false,true},{true,true,false} }; |
198 | 198 |
} |
199 | 199 |
|
200 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
201 |
// purely for speedup |
|
202 |
|
|
203 |
@Override |
|
204 |
void computeRow(float[] pos, int quat, int[] output) |
|
205 |
{ |
|
206 |
float[] q = mQuats[quat]; |
|
207 |
float qx = q[0]; |
|
208 |
float qy = q[1]; |
|
209 |
float qz = q[2]; |
|
210 |
float qw = q[3]; |
|
211 |
float rx = pos[0]; |
|
212 |
float ry = pos[1]; |
|
213 |
float rz = pos[2]; |
|
214 |
|
|
215 |
mTmp[0] = qx - rz*qy + ry*qz + rx*qw; |
|
216 |
mTmp[1] = qy + rz*qx + ry*qw - rx*qz; |
|
217 |
mTmp[2] = qz + rz*qw - ry*qx + rx*qy; |
|
218 |
mTmp[3] = qw - rz*qz - ry*qy - rx*qx; |
|
219 |
|
|
220 |
float x = qw*mTmp[0] + qz*mTmp[1] - qy*mTmp[2] - qx*mTmp[3]; |
|
221 |
float y = qw*mTmp[1] - qz*mTmp[0] - qy*mTmp[3] + qx*mTmp[2]; |
|
222 |
float z = qw*mTmp[2] - qz*mTmp[3] + qy*mTmp[0] - qx*mTmp[1]; |
|
223 |
|
|
224 |
output[0] = (x<-0.5f ? 1 : (x<0.5f ? 2:4)); |
|
225 |
output[1] = (y<0 ? 1:2); |
|
226 |
output[2] = (z<-0.5f ? 1 : (z<0.5f ? 2:4)); |
|
227 |
} |
|
228 |
|
|
229 | 200 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
230 | 201 |
// we map the move (axis=2, middle layer) to move (axis=2,both middle and back layers). |
231 | 202 |
// this way we can imitate move of the front layer (which we do not want to move because |
Also available in: Unified diff
speedup