Project

General

Profile

« Previous | Next » 

Revision 693cc52e

Added by Leszek Koltunski 12 months ago

speedup

View differences:

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