Project

General

Profile

« Previous | Next » 

Revision 9621255f

Added by Leszek Koltunski about 4 years ago

Progress with the 3x3x3 Solver.

View differences:

src/main/java/org/distorted/main/RubikSurfaceView.java
173 173

  
174 174
///////////////////////////////////////////////////////////////////////////////////////////////////
175 175

  
176
    private void setUpDragOrRotate(float x, float y)
176
    private void setUpDragOrRotate(boolean down, float x, float y)
177 177
      {
178 178
      int mode = RubikState.getMode();
179 179

  
......
201 201
          else if( mode==MODE_REPLACE )
202 202
            {
203 203
            mBeginningRotation= false;
204
            RubikStateSolver solver = (RubikStateSolver) RubikState.SVER.getStateClass();
205
            int cubit = mMovement.getTouchedCubit();
206
            int face  = mMovement.getTouchedFace();
207
            int color = solver.getCurrentColor();
208
            mPostRender.setTextureMap( cubit, face, color );
204

  
205
            if( down )
206
              {
207
              RubikStateSolver solver = (RubikStateSolver) RubikState.SVER.getStateClass();
208
              int face      = mMovement.getTouchedFace();
209
              float[] point = mMovement.getTouchedPoint3D();
210
              int color = solver.getCurrentColor();
211
              RubikObject object = mPostRender.getObject();
212
              int cubit = object.getCubit(point);
213

  
214
              mPostRender.setTextureMap( cubit, face, color );
215
              }
209 216
            }
210 217
          }
211 218
        else
......
337 344
         {
338 345
         case MotionEvent.ACTION_DOWN: mX = x;
339 346
                                       mY = y;
340
                                       setUpDragOrRotate(x,y);
347
                                       setUpDragOrRotate(true,x,y);
341 348
                                       break;
342 349
         case MotionEvent.ACTION_MOVE: if( mBeginningRotation )
343 350
                                         {
......
357 364
                                           computeCurrentAxis( object.getRotationAxis()[axis] );
358 365
                                           mRotationFactor = object.returnRotationFactor(offset);
359 366

  
360
                                           object.beginNewRotation( axis, object.returnRowFromOffset(offset) );
367
                                           object.beginNewRotation( axis, (int)(object.returnMultiplier()*offset) );
361 368

  
362 369
                                           if( RubikState.getCurrentState()==RubikState.SOLV )
363 370
                                             {
......
391 398
                                         }
392 399
                                       else
393 400
                                         {
394
                                         setUpDragOrRotate(x,y);
401
                                         setUpDragOrRotate(false,x,y);
395 402
                                         }
396 403
                                       break;
397 404
         case MotionEvent.ACTION_UP  : if( mDragging )

Also available in: Unified diff