Revision 3d093961
Added by Leszek Koltunski over 2 years ago
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
Fix the solver (after rearranging the faces of the cuboids)