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 |
{
|
Fix the solver (after rearranging the faces of the cuboids)