Project

General

Profile

« Previous | Next » 

Revision 11fa413d

Added by Leszek Koltunski over 2 years ago

Make the ShapeChanging the default TouchControl during MODE_REPLACE.

View differences:

src/main/java/org/distorted/objectlib/helpers/ObjectLibInterface.java
31 31
  void failedToDrag();
32 32
  void onSolved();
33 33
  void onObjectCreated(long time);
34
  void onReplaceModeDown(int cubit, int face);
35
  void onReplaceModeUp();
36

  
34 37
  void reportBlockProblem(int type, int place, long pause, long resume, long time);
35 38
  void reportProblem(String problem);
36

  
37
  // objectlib calls those to figure out app's state
38
  int getCurrentColor();
39
  int cubitIsLocked(int cubit);
40 39
  }
src/main/java/org/distorted/objectlib/json/JsonWriter.java
471 471
    {
472 472
    JSONObject touchControl = new JSONObject();
473 473

  
474
    touchControl.put("movementType" , object.getMovementType() );
475
    touchControl.put("movementSplit", object.getMovementSplit() );
474
    touchControl.put("movementType" , object.getTouchControlType() );
475
    touchControl.put("movementSplit", object.getTouchControlSplit() );
476 476

  
477 477
    int[][][] enabled = object.getEnabled();
478 478

  
src/main/java/org/distorted/objectlib/main/ObjectControl.java
33 33
import org.distorted.objectlib.helpers.MovesFinished;
34 34
import org.distorted.objectlib.helpers.ObjectLibInterface;
35 35
import org.distorted.objectlib.touchcontrol.TouchControl;
36
import org.distorted.objectlib.touchcontrol.TouchControlShapeChanging;
36 37

  
37 38
///////////////////////////////////////////////////////////////////////////////////////////////////
38 39

  
......
55 56

  
56 57
    private final ObjectLibInterface mInterface;
57 58
    private final ObjectPreRender mPreRender;
58
    private TouchControl mTouchControl;
59
    private TouchControl mTouchControl, mTouchControlBackup;
59 60
    private TwistyObjectNode mObjectNode;
60 61
    private boolean mDragging, mBeginningRotation, mContinuingRotation;
61 62
    private int mScreenWidth, mScreenHeight, mScreenMin;
62 63
    private float mMoveX, mMoveY;
64
    private int mLastMode;
63 65

  
64 66
    private float mRotAngle, mInitDistance;
65 67
    private float mStartRotX, mStartRotY;
66 68
    private float mRotationFactor;
67
    private int mLastCubitColor, mLastCubit;
68 69
    private int mCurrentAxis, mCurrentRow;
69 70
    private float mCurrentAngle, mCurrRotSpeed;
70 71
    private final float[] mLastX;
......
152 153

  
153 154
      if( down )
154 155
        {
155
        int color = mInterface.getCurrentColor();
156
        float[] point = mTouchControl.getTouchedPoint3D();
157
        TwistyObject object = mPreRender.getObject();
158
        mLastCubit = object.getCubit(point);
159
        mLastCubitColor = mInterface.cubitIsLocked(mLastCubit);
160
        int face;
161

  
162
        if( mLastCubitColor>=0 )
163
          {
164
          face =4;
165
          }
166
        else
167
          {
168
          int touchedFace = mTouchControl.getTouchedFace();
169
          if( mLastCubit<8 ) face = touchedFace;
170
          else
171
            {
172
            switch(touchedFace)
173
              {
174
              case  0: face = mLastCubit==15 || mLastCubit==18 ? 3 : 5; break;
175
              case  1: face = mLastCubit==13 || mLastCubit==16 ? 3 : 5; break;
176
              case  2: face = mLastCubit==10                   ? 5 : 3; break;
177
              case  3: face = mLastCubit== 8                   ? 3 : 5; break;
178
              case  4: face = mLastCubit== 9                   ? 3 : 5; break;
179
              case  5: face = mLastCubit== 8                   ? 5 : 3; break;
180
              default: face =-1;
181
              }
182
            }
183
          }
184

  
185
        mPreRender.setTextureMap( mLastCubit, face , color );
156
        int cubit = mTouchControl.getTouchedCubit();
157
        int face  = mTouchControl.getTouchedCubitFace();
158
        mInterface.onReplaceModeDown(cubit,face);
186 159
        }
187 160
      }
188 161

  
189 162
///////////////////////////////////////////////////////////////////////////////////////////////////
190 163

  
191
    private void setUpDragOrRotate(boolean down, float x, float y, int mode)
164
    private void setUpDragOrRotate(boolean down, float x, float y)
192 165
      {
193
      if( mode==MODE_DRAG )
166
      if( mLastMode==MODE_DRAG )
194 167
        {
195 168
        mDragging           = true;
196 169
        mBeginningRotation  = false;
......
208 181
          mDragging           = false;
209 182
          mContinuingRotation = false;
210 183

  
211
               if( mode==MODE_ROTATE  ) mBeginningRotation = !mPreRender.isTouchBlocked();
212
          else if( mode==MODE_REPLACE ) replaceMode(down);
184
               if( mLastMode==MODE_ROTATE  ) mBeginningRotation = !mPreRender.isTouchBlocked();
185
          else if( mLastMode==MODE_REPLACE ) replaceMode(down);
213 186
          }
214 187
        else
215 188
          {
......
415 388

  
416 389
///////////////////////////////////////////////////////////////////////////////////////////////////
417 390

  
418
    private void actionMove(float x1, float y1, float x2, float y2, int mode)
391
    private void actionMove(float x1, float y1, float x2, float y2)
419 392
      {
420 393
      float pX = mPointer1 != INVALID_POINTER_ID ? x1 : x2;
421 394
      float pY = mPointer1 != INVALID_POINTER_ID ? y1 : y2;
......
440 413
        }
441 414
      else
442 415
        {
443
        setUpDragOrRotate(false,x,y,mode);
416
        setUpDragOrRotate(false,x,y);
444 417
        }
445 418
      }
446 419

  
447 420
///////////////////////////////////////////////////////////////////////////////////////////////////
448 421

  
449
    private void actionDown(float x, float y, int mode)
422
    private void actionDown(float x, float y)
450 423
      {
451 424
      mX = (x -  mScreenWidth*0.5f)/mScreenMin;
452 425
      mY = (mScreenHeight*0.5f - y)/mScreenMin;
453 426

  
454
      setUpDragOrRotate(true,mX,mY,mode);
427
      setUpDragOrRotate(true,mX,mY);
455 428
      }
456 429

  
457 430
///////////////////////////////////////////////////////////////////////////////////////////////////
......
463 436
        finishRotation();
464 437
        }
465 438

  
466
      if( mLastCubitColor>=0 )
467
        {
468
        mPreRender.setTextureMap( mLastCubit, 4, mLastCubitColor );
469
        mLastCubitColor = -1;
470
        }
439
      if( mLastMode==MODE_REPLACE ) mInterface.onReplaceModeUp();
471 440
      }
472 441

  
473 442
///////////////////////////////////////////////////////////////////////////////////////////////////
......
510 479

  
511 480
///////////////////////////////////////////////////////////////////////////////////////////////////
512 481

  
513
    void setMovement(TouchControl touchControl)
482
    void setTouchControl(TwistyObject object)
514 483
      {
515
      mTouchControl = touchControl;
484
      if( mLastMode!=MODE_REPLACE )  mTouchControl = object.getTouchControl();
485
      else                           mTouchControl = new TouchControlShapeChanging(object);
516 486
      }
517 487

  
518 488
///////////////////////////////////////////////////////////////////////////////////////////////////
......
556 526
      mBuffer = new int[2];
557 527
      mAxis   = new float[2];
558 528

  
559
      mLastCubitColor = -1;
560
      mCurrRotSpeed   = 0.0f;
529
      mCurrRotSpeed= 0.0f;
530
      mLastMode    = -1;
561 531

  
562 532
      mLastX = new float[NUM_SPEED_PROBES];
563 533
      mLastY = new float[NUM_SPEED_PROBES];
......
850 820
      mIsLocked = mRemLocked;
851 821
      }
852 822

  
823
///////////////////////////////////////////////////////////////////////////////////////////////////
824

  
825
    public void setTextureMap(int cubit, int face, int newColor)
826
      {
827
      mPreRender.setTextureMap(cubit,face,newColor);
828
      }
829

  
830
///////////////////////////////////////////////////////////////////////////////////////////////////
831

  
832
    private void switchTouchControl(int oldMode, int newMode)
833
      {
834
      if( newMode==MODE_REPLACE )
835
        {
836
        if( mTouchControlBackup!=null )
837
          {
838
          TouchControl tmp = mTouchControlBackup;
839
          mTouchControlBackup = mTouchControl;
840
          mTouchControl = tmp;
841
          }
842
        else
843
          {
844
          mTouchControlBackup = mTouchControl;
845
          TwistyObject object = getObject();
846
          mTouchControl = new TouchControlShapeChanging(object);
847
          float ratio = object.getObjectRatio();
848
          mTouchControl.setObjectRatio(ratio);
849
          }
850
        }
851
      if( oldMode==MODE_REPLACE )
852
        {
853
        if( mTouchControlBackup!=null )
854
          {
855
          TouchControl tmp = mTouchControlBackup;
856
          mTouchControlBackup = mTouchControl;
857
          mTouchControl = tmp;
858
          }
859
        else
860
          {
861
          mTouchControlBackup = mTouchControl;
862
          TwistyObject object = getObject();
863
          mTouchControl = object.getTouchControl();
864
          float ratio = object.getObjectRatio();
865
          mTouchControl.setObjectRatio(ratio);
866
          }
867
        }
868
      }
869

  
853 870
///////////////////////////////////////////////////////////////////////////////////////////////////
854 871

  
855 872
    public boolean onTouchEvent(MotionEvent event, int mode)
856 873
      {
857 874
      int action = event.getActionMasked();
858 875

  
876
      if( mode!=mLastMode)
877
        {
878
        switchTouchControl(mLastMode,mode);
879
        mLastMode = mode;
880
        }
881

  
859 882
      switch(action)
860 883
         {
861 884
         case MotionEvent.ACTION_DOWN        : prepareDown(event);
862
                                               actionDown(mX1, mY1, mode);
885
                                               actionDown(mX1, mY1);
863 886
                                               break;
864 887
         case MotionEvent.ACTION_MOVE        : prepareMove(event);
865
                                               actionMove(mX1, mY1, mX2, mY2, mode);
888
                                               actionMove(mX1, mY1, mX2, mY2);
866 889
                                               break;
867 890
         case MotionEvent.ACTION_UP          : prepareUp(event);
868 891
                                               actionUp();
src/main/java/org/distorted/objectlib/main/ObjectPreRender.java
120 120
    if( mNewObject!=null )
121 121
      {
122 122
      mNewObject.setLibInterface(mInterface);
123
      mController.setMovement(mNewObject.getMovement());
123
      mController.setTouchControl(mNewObject);
124 124
      TwistyObjectNode node = mController.getNode();
125 125
      if( node!=null ) mNewObject.setObjectRatioNow(mScale, node.getMinSize() );
126 126
      if( firstTime && mPreferences!=null ) mNewObject.restorePreferences(mPreferences);
src/main/java/org/distorted/objectlib/main/TwistyJson.java
99 99

  
100 100
///////////////////////////////////////////////////////////////////////////////////////////////////
101 101

  
102
  public int getMovementType()
102
  public int getTouchControlType()
103 103
    {
104 104
    return mReader.getMovementType();
105 105
    }
106 106

  
107 107
///////////////////////////////////////////////////////////////////////////////////////////////////
108 108

  
109
  public int getMovementSplit()
109
  public int getTouchControlSplit()
110 110
    {
111 111
    return mReader.getMovementSplit();
112 112
    }
src/main/java/org/distorted/objectlib/main/TwistyObject.java
1127 1127
    float scale = mObjectScreenRatio*mInitScreenRatio*nodeSize/mSize;
1128 1128
    mObjectScale.set(scale,scale,scale);
1129 1129

  
1130
    if( mTouchControl ==null ) mTouchControl = getMovement();
1130
    if( mTouchControl ==null ) mTouchControl = getTouchControl();
1131 1131
    mTouchControl.setObjectRatio(mObjectScreenRatio*mInitScreenRatio);
1132 1132
    }
1133 1133

  
......
1157 1157
    return mObjectScreenRatio;
1158 1158
    }
1159 1159

  
1160
///////////////////////////////////////////////////////////////////////////////////////////////////
1161

  
1162
  public float getObjectRatio()
1163
    {
1164
    return mObjectScreenRatio*mInitScreenRatio;
1165
    }
1166

  
1160 1167
///////////////////////////////////////////////////////////////////////////////////////////////////
1161 1168

  
1162 1169
  boolean isSolved()
......
1325 1332

  
1326 1333
///////////////////////////////////////////////////////////////////////////////////////////////////
1327 1334

  
1328
  public TouchControl getMovement()
1335
  public TouchControl getTouchControl()
1329 1336
    {
1330 1337
    if( mTouchControl==null )
1331 1338
      {
1332
      switch(getMovementType())
1339
      switch(getTouchControlType())
1333 1340
        {
1334 1341
        case TC_TETRAHEDRON : mTouchControl = new TouchControlTetrahedron(this);
1335 1342
                              break;
......
1369 1376

  
1370 1377
  // for JSON only
1371 1378
  public abstract int getSolvedFunctionIndex();
1372
  public abstract int getMovementType();
1373
  public abstract int getMovementSplit();
1379
  public abstract int getTouchControlType();
1380
  public abstract int getTouchControlSplit();
1374 1381
  public abstract boolean[][] getLayerRotatable(int[] numLayers);
1375 1382
  public abstract int[][][] getEnabled();
1376 1383
  public abstract float[] getDist3D(int[] numLayers);
src/main/java/org/distorted/objectlib/objects/TwistyBandagedAbstract.java
358 358

  
359 359
///////////////////////////////////////////////////////////////////////////////////////////////////
360 360

  
361
  public int getMovementType()
361
  public int getTouchControlType()
362 362
    {
363 363
    return TC_HEXAHEDRON;
364 364
    }
365 365

  
366 366
///////////////////////////////////////////////////////////////////////////////////////////////////
367 367

  
368
  public int getMovementSplit()
368
  public int getTouchControlSplit()
369 369
    {
370 370
    return TYPE_NOT_SPLIT;
371 371
    }
src/main/java/org/distorted/objectlib/objects/TwistyCuboid.java
643 643

  
644 644
///////////////////////////////////////////////////////////////////////////////////////////////////
645 645

  
646
  public int getMovementType()
646
  public int getTouchControlType()
647 647
    {
648 648
    return TC_CUBOID;
649 649
    }
650 650

  
651 651
///////////////////////////////////////////////////////////////////////////////////////////////////
652 652

  
653
  public int getMovementSplit()
653
  public int getTouchControlSplit()
654 654
    {
655 655
    return TYPE_NOT_SPLIT;
656 656
    }
src/main/java/org/distorted/objectlib/objects/TwistyDiamond.java
186 186

  
187 187
///////////////////////////////////////////////////////////////////////////////////////////////////
188 188

  
189
  public int getMovementType()
189
  public int getTouchControlType()
190 190
    {
191 191
    return TC_OCTAHEDRON;
192 192
    }
193 193

  
194 194
///////////////////////////////////////////////////////////////////////////////////////////////////
195 195

  
196
  public int getMovementSplit()
196
  public int getTouchControlSplit()
197 197
    {
198 198
    return TYPE_NOT_SPLIT;
199 199
    }
src/main/java/org/distorted/objectlib/objects/TwistyDino.java
116 116

  
117 117
///////////////////////////////////////////////////////////////////////////////////////////////////
118 118

  
119
  public int getMovementType()
119
  public int getTouchControlType()
120 120
    {
121 121
    return TC_HEXAHEDRON;
122 122
    }
123 123

  
124 124
///////////////////////////////////////////////////////////////////////////////////////////////////
125 125

  
126
  public int getMovementSplit()
126
  public int getTouchControlSplit()
127 127
    {
128 128
    return TYPE_SPLIT_CORNER;
129 129
    }
src/main/java/org/distorted/objectlib/objects/TwistyHelicopter.java
186 186

  
187 187
///////////////////////////////////////////////////////////////////////////////////////////////////
188 188

  
189
  public int getMovementType()
189
  public int getTouchControlType()
190 190
    {
191 191
    return TC_HEXAHEDRON;
192 192
    }
193 193

  
194 194
///////////////////////////////////////////////////////////////////////////////////////////////////
195 195

  
196
  public int getMovementSplit()
196
  public int getTouchControlSplit()
197 197
    {
198 198
    return TYPE_SPLIT_EDGE;
199 199
    }
src/main/java/org/distorted/objectlib/objects/TwistyIvy.java
166 166

  
167 167
///////////////////////////////////////////////////////////////////////////////////////////////////
168 168

  
169
  public int getMovementType()
169
  public int getTouchControlType()
170 170
    {
171 171
    return TC_HEXAHEDRON;
172 172
    }
173 173

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

  
176
  public int getMovementSplit()
176
  public int getTouchControlSplit()
177 177
    {
178 178
    return TYPE_SPLIT_CORNER;
179 179
    }
src/main/java/org/distorted/objectlib/objects/TwistyJing.java
197 197

  
198 198
///////////////////////////////////////////////////////////////////////////////////////////////////
199 199

  
200
  public int getMovementType()
200
  public int getTouchControlType()
201 201
    {
202 202
    return TC_TETRAHEDRON;
203 203
    }
204 204

  
205 205
///////////////////////////////////////////////////////////////////////////////////////////////////
206 206

  
207
  public int getMovementSplit()
207
  public int getTouchControlSplit()
208 208
    {
209 209
    return TYPE_NOT_SPLIT;
210 210
    }
src/main/java/org/distorted/objectlib/objects/TwistyMinx.java
561 561

  
562 562
///////////////////////////////////////////////////////////////////////////////////////////////////
563 563

  
564
  public int getMovementType()
564
  public int getTouchControlType()
565 565
    {
566 566
    return TC_DODECAHEDRON;
567 567
    }
568 568

  
569 569
///////////////////////////////////////////////////////////////////////////////////////////////////
570 570

  
571
  public int getMovementSplit()
571
  public int getTouchControlSplit()
572 572
    {
573 573
    return TYPE_SPLIT_EDGE;
574 574
    }
src/main/java/org/distorted/objectlib/objects/TwistyMirror.java
582 582

  
583 583
///////////////////////////////////////////////////////////////////////////////////////////////////
584 584

  
585
  public int getMovementType()
585
  public int getTouchControlType()
586 586
    {
587 587
    return TC_HEXAHEDRON;
588 588
    }
589 589

  
590 590
///////////////////////////////////////////////////////////////////////////////////////////////////
591 591

  
592
  public int getMovementSplit()
592
  public int getTouchControlSplit()
593 593
    {
594 594
    return TYPE_NOT_SPLIT;
595 595
    }
src/main/java/org/distorted/objectlib/objects/TwistyPyraminx.java
254 254

  
255 255
///////////////////////////////////////////////////////////////////////////////////////////////////
256 256

  
257
  public int getMovementType()
257
  public int getTouchControlType()
258 258
    {
259 259
    return TC_TETRAHEDRON;
260 260
    }
261 261

  
262 262
///////////////////////////////////////////////////////////////////////////////////////////////////
263 263

  
264
  public int getMovementSplit()
264
  public int getTouchControlSplit()
265 265
    {
266 266
    return TYPE_NOT_SPLIT;
267 267
    }
src/main/java/org/distorted/objectlib/objects/TwistyRedi.java
166 166

  
167 167
///////////////////////////////////////////////////////////////////////////////////////////////////
168 168

  
169
  public int getMovementType()
169
  public int getTouchControlType()
170 170
    {
171 171
    return TC_HEXAHEDRON;
172 172
    }
173 173

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

  
176
  public int getMovementSplit()
176
  public int getTouchControlSplit()
177 177
    {
178 178
    return TYPE_SPLIT_CORNER;
179 179
    }
src/main/java/org/distorted/objectlib/objects/TwistyRex.java
161 161

  
162 162
///////////////////////////////////////////////////////////////////////////////////////////////////
163 163

  
164
  public int getMovementType()
164
  public int getTouchControlType()
165 165
    {
166 166
    return TC_HEXAHEDRON;
167 167
    }
168 168

  
169 169
///////////////////////////////////////////////////////////////////////////////////////////////////
170 170

  
171
  public int getMovementSplit()
171
  public int getTouchControlSplit()
172 172
    {
173 173
    return TYPE_SPLIT_CORNER;
174 174
    }
src/main/java/org/distorted/objectlib/objects/TwistySkewb.java
182 182

  
183 183
///////////////////////////////////////////////////////////////////////////////////////////////////
184 184

  
185
  public int getMovementType()
185
  public int getTouchControlType()
186 186
    {
187 187
    return TC_HEXAHEDRON;
188 188
    }
189 189

  
190 190
///////////////////////////////////////////////////////////////////////////////////////////////////
191 191

  
192
  public int getMovementSplit()
192
  public int getTouchControlSplit()
193 193
    {
194 194
    return TYPE_SPLIT_CORNER;
195 195
    }
src/main/java/org/distorted/objectlib/objects/TwistySquare.java
135 135

  
136 136
///////////////////////////////////////////////////////////////////////////////////////////////////
137 137

  
138
  public int getMovementType()
138
  public int getTouchControlType()
139 139
    {
140 140
    return TC_HEXAHEDRON;
141 141
    }
142 142

  
143 143
///////////////////////////////////////////////////////////////////////////////////////////////////
144 144

  
145
  public int getMovementSplit()
145
  public int getTouchControlSplit()
146 146
    {
147 147
    return TYPE_NOT_SPLIT;
148 148
    }
src/main/java/org/distorted/objectlib/objects/TwistyUltimate.java
397 397

  
398 398
///////////////////////////////////////////////////////////////////////////////////////////////////
399 399

  
400
  public int getMovementType()
400
  public int getTouchControlType()
401 401
    {
402 402
    return TC_DODECAHEDRON;
403 403
    }
404 404

  
405 405
///////////////////////////////////////////////////////////////////////////////////////////////////
406 406

  
407
  public int getMovementSplit()
407
  public int getTouchControlSplit()
408 408
    {
409 409
    return TYPE_NOT_SPLIT;
410 410
    }
src/main/java/org/distorted/objectlib/touchcontrol/TouchControl.java
19 19

  
20 20
package org.distorted.objectlib.touchcontrol;
21 21

  
22
import org.distorted.library.type.Static2D;
23 22
import org.distorted.library.type.Static4D;
24 23

  
25 24
///////////////////////////////////////////////////////////////////////////////////////////////////
......
44 43

  
45 44
///////////////////////////////////////////////////////////////////////////////////////////////////
46 45

  
47
  public TouchControl()
46
  public TouchControl(float ratio)
48 47
    {
49
    mObjectRatio = 1.0f;
48
    mObjectRatio = ratio;
50 49
    }
51 50

  
52 51
///////////////////////////////////////////////////////////////////////////////////////////////////
......
61 60
  public abstract boolean objectTouched(Static4D rotatedTouchPoint, Static4D rotatedCamera);
62 61
  public abstract void newRotation(int[] output, Static4D rotatedTouchPoint);
63 62
  public abstract void getCastedRotAxis(float[] output, Static4D quat, int rotIndex);
64
  public abstract int getTouchedFace();
65
  public abstract float[] getTouchedPoint3D();
63
  public abstract int getTouchedCubitFace();
64
  public abstract int getTouchedCubit();
66 65
  public abstract float returnRotationFactor(int[] numLayers, int row);
67 66
  }
src/main/java/org/distorted/objectlib/touchcontrol/TouchControlShapeChanging.java
107 107

  
108 108
  public TouchControlShapeChanging(TwistyObject object)
109 109
    {
110
    super(object.getObjectRatio());
111

  
110 112
    mPoint = new float[3];
111 113
    mCamera= new float[3];
112 114
    mTouch = new float[3];
......
252 254
///////////////////////////////////////////////////////////////////////////////////////////////////
253 255
// vertices are counterclockwise
254 256

  
255
  private boolean isInside(float[] point, float[][] vertices )
257
  private boolean isInside(float[] point, float[][] vertices)
256 258
    {
257 259
    int numVert = vertices.length;
258 260

  
......
323 325
// 4) else, rotate 'vertices' by quat and see if the casted point lies inside the polygon defined by them
324 326
// 5) if yes, return its Z; otherwise, return NOT_TOUCHED
325 327

  
326
  private float cubitFaceTouched(FaceInfo info, float[] quat, float closestSoFar, int cubit, int face)
328
  private float cubitFaceTouched(FaceInfo info, float[] quat, float closestSoFar)
327 329
    {
328 330
    QuatHelper.rotateVectorByQuat(mTmp,info.vector,quat);
329 331
    float nx = mTmp[0];
......
376 378

  
377 379
      for(int face=0; face<mNumFaces[cubit]; face++)
378 380
        {
379
        float dist = cubitFaceTouched(mInfos[cubit][face],quat,closestSoFar,cubit,face);
381
        float dist = cubitFaceTouched(mInfos[cubit][face],quat,closestSoFar);
380 382

  
381 383
        if( dist!=NOT_TOUCHED )
382 384
          {
......
386 388
          }
387 389
        }
388 390
      }
389

  
391
/*
390 392
    if( closestSoFar!=NOT_TOUCHED )
391 393
      {
392 394
      android.util.Log.e("D", "cubit="+mTouchedCubit+" face="+mTouchedFace+" result: "+closestSoFar);
393 395
      }
394

  
396
*/
395 397
    return closestSoFar!=NOT_TOUCHED;
396 398
    }
397 399

  
......
419 421
    }
420 422

  
421 423
///////////////////////////////////////////////////////////////////////////////////////////////////
422
// replace mode only
423 424

  
424
  public int getTouchedFace()
425
  public int getTouchedCubitFace()
425 426
    {
426
    return -1;
427
    return mTouchedFace;
427 428
    }
428 429

  
429 430
///////////////////////////////////////////////////////////////////////////////////////////////////
430
// replace mode only
431 431

  
432
  public float[] getTouchedPoint3D()
432
  public int getTouchedCubit()
433 433
    {
434
    return null;
434
    return mTouchedCubit;
435 435
    }
436 436

  
437 437
///////////////////////////////////////////////////////////////////////////////////////////////////
src/main/java/org/distorted/objectlib/touchcontrol/TouchControlShapeConstant.java
55 55

  
56 56
  TouchControlShapeConstant(TwistyObject object, float[] distance3D, Static3D[] faceAxis)
57 57
    {
58
    super(object.getObjectRatio());
59

  
58 60
    int[] numLayers       = object.getNumLayers();
59 61
    float[][] cuts        = object.getCuts(numLayers);
60 62
    boolean[][] rotatable = object.getLayerRotatable(numLayers);
......
68 70
    mPoint2D = new float[2];
69 71
    mMove2D  = new float[2];
70 72

  
71
    mSplit      = object.getMovementSplit();
73
    mSplit      = object.getTouchControlSplit();
72 74
    mEnabled    = object.getEnabled();
73 75
    mFaceAxis   = faceAxis;
74 76
    mNumFaceAxis= mFaceAxis.length;
......
481 483

  
482 484
///////////////////////////////////////////////////////////////////////////////////////////////////
483 485

  
484
  public int getTouchedFace()
486
  public int getTouchedCubitFace()
485 487
    {
486
    return mLastTouchedFace;
488
    return 0;
487 489
    }
488 490

  
489 491
///////////////////////////////////////////////////////////////////////////////////////////////////
490 492

  
491
  public float[] getTouchedPoint3D()
493
  public int getTouchedCubit()
492 494
    {
493
    return mTouch;
495
    return 0;
494 496
    }
495 497
  }

Also available in: Unified diff