Project

General

Profile

« Previous | Next » 

Revision 3788d0cd

Added by Leszek Koltunski about 1 year ago

Speedups for setupPosition(). Now the 587 moves of the Burr Cube is getting done visibly faster.

View differences:

src/main/java/org/distorted/objectlib/main/TwistyObjectCubit.java
205 205

  
206 206
///////////////////////////////////////////////////////////////////////////////////////////////////
207 207

  
208
  boolean rotateCubit(Static4D quat)
208
  float[] getCurrentPos()
209
    {
210
    return mCurrentPosition;
211
    }
212

  
213
///////////////////////////////////////////////////////////////////////////////////////////////////
214

  
215
  boolean rotateCubit(Static4D quat, boolean clamp)
209 216
    {
210 217
    boolean result = true;
211 218
    int len = mLen/3;
212 219

  
213
    for(int i=0; i<len; i++)
220
    if( clamp )
221
      {
222
      for(int i=0; i<len; i++)
223
        {
224
        QuatHelper.rotateVectorByQuat( mTmp, mCurrentPosition[3*i], mCurrentPosition[3*i+1], mCurrentPosition[3*i+2], 0, quat);
225
        mCurrentPosition[3*i  ] = mTmp[0];
226
        mCurrentPosition[3*i+1] = mTmp[1];
227
        mCurrentPosition[3*i+2] = mTmp[2];
228
        mParent.clampPos(mCurrentPosition, 3*i);
229
        }
230
      }
231
    else
214 232
      {
215
      QuatHelper.rotateVectorByQuat( mTmp, mCurrentPosition[3*i], mCurrentPosition[3*i+1], mCurrentPosition[3*i+2], 0, quat);
216
      mCurrentPosition[3*i  ] = mTmp[0];
217
      mCurrentPosition[3*i+1] = mTmp[1];
218
      mCurrentPosition[3*i+2] = mTmp[2];
219
      mParent.clampPos(mCurrentPosition, 3*i);
233
      for(int i=0; i<len; i++)
234
        {
235
        QuatHelper.rotateVectorByQuat( mTmp, mCurrentPosition[3*i], mCurrentPosition[3*i+1], mCurrentPosition[3*i+2], 0, quat);
236
        mCurrentPosition[3*i  ] = mTmp[0];
237
        mCurrentPosition[3*i+1] = mTmp[1];
238
        mCurrentPosition[3*i+2] = mTmp[2];
239
        }
220 240
      }
221 241

  
222 242
    if( mCubitType!=TYPE_NORMAL )

Also available in: Unified diff