Project

General

Profile

« Previous | Next » 

Revision 3d093961

Added by Leszek Koltunski over 2 years ago

Fix the solver (after rearranging the faces of the cuboids)

View differences:

src/main/java/org/distorted/objectlib/main/ObjectControl.java
160 160
      return distInPixels/mDensity;
161 161
      }
162 162

  
163
///////////////////////////////////////////////////////////////////////////////////////////////////
164

  
165
    private void replaceMode(TwistyObject object, boolean down)
166
      {
167
      mBeginningRotation= false;
168

  
169
      if( down )
170
        {
171
        int color = mInterface.getCurrentColor();
172
        float[] point = mMovement.getTouchedPoint3D();
173
        mLastCubit = object.getCubit(point);
174
        mLastCubitColor = mInterface.cubitIsLocked(mLastCubit);
175
        int face;
176

  
177
        if( mLastCubitColor>=0 )
178
          {
179
          face =4;
180
          }
181
        else
182
          {
183
          int touchedFace = mMovement.getTouchedFace();
184
          if( mLastCubit<8 ) face = touchedFace;
185
          else
186
            {
187
            switch(touchedFace)
188
              {
189
              case  0: face = mLastCubit==15 || mLastCubit==18 ? 3 : 5; break;
190
              case  1: face = mLastCubit==13 || mLastCubit==16 ? 3 : 5; break;
191
              case  2: face = mLastCubit==10                   ? 5 : 3; break;
192
              case  3: face = mLastCubit== 8                   ? 3 : 5; break;
193
              case  4: face = mLastCubit== 9                   ? 3 : 5; break;
194
              case  5: face = mLastCubit== 8                   ? 5 : 3; break;
195
              default: face =-1;
196
              }
197
            }
198
          }
199

  
200
        mPreRender.setTextureMap( mLastCubit, face , color );
201
        }
202
      }
203

  
163 204
///////////////////////////////////////////////////////////////////////////////////////////////////
164 205

  
165 206
    private void setUpDragOrRotate(boolean down, float x, float y, int mode)
......
188 229
            {
189 230
            mBeginningRotation= !mPreRender.isTouchBlocked();
190 231
            }
191
          else if( mode==MODE_REPLACE )
192
            {
193
            mBeginningRotation= false;
194

  
195
            if( down )
196
              {
197
              int color = mInterface.getCurrentColor();
198
              float[] point = mMovement.getTouchedPoint3D();
199
              mLastCubit = object.getCubit(point);
200
              mLastCubitColor = mInterface.cubitIsLocked(mLastCubit);
201
              mPreRender.setTextureMap( mLastCubit, mLastCubitColor>=0 ? 4 : mMovement.getTouchedFace(), color );
202
              }
203
            }
232
          else if( mode==MODE_REPLACE ) replaceMode(object,down);
204 233
          }
205 234
        else
206 235
          {

Also available in: Unified diff