Project

General

Profile

« Previous | Next » 

Revision 7289fd6c

Added by Leszek Koltunski about 4 years ago

Beginnings of support for the 3x3x3 Solver.

View differences:

src/main/java/org/distorted/object/RubikPyraminx.java
208 208
    return new VertexEffectSink( new Static1D(1.3f), center, region );
209 209
    }
210 210

  
211
///////////////////////////////////////////////////////////////////////////////////////////////////
212

  
213
  void createFaceTexture(Canvas canvas, Paint paint, int face)
214
    {
215
    int xoffset = face*TEXTURE_HEIGHT;
216
    float STROKE = 0.06f*TEXTURE_HEIGHT;
217
    float OFF = STROKE/2 -1;
218
    float OFF2 = 0.5f*TEXTURE_HEIGHT + OFF;
219
    float HEIGHT = TEXTURE_HEIGHT - OFF;
220
    float RADIUS = TEXTURE_HEIGHT/12.0f;
221
    float ARC1_H = 0.2f*TEXTURE_HEIGHT;
222
    float ARC1_W = TEXTURE_HEIGHT*0.5f;
223
    float ARC2_W = 0.153f*TEXTURE_HEIGHT;
224
    float ARC2_H = 0.905f*TEXTURE_HEIGHT;
225
    float ARC3_W = TEXTURE_HEIGHT-ARC2_W;
226

  
227
    paint.setAntiAlias(true);
228
    paint.setStrokeWidth(STROKE);
229
    paint.setColor(FACE_COLORS[face]);
230
    paint.setStyle(Paint.Style.FILL);
231

  
232
    canvas.drawRect(xoffset,0,xoffset+TEXTURE_HEIGHT,TEXTURE_HEIGHT,paint);
233

  
234
    paint.setColor(0xff000000);
235
    paint.setStyle(Paint.Style.STROKE);
236

  
237
    canvas.drawLine(                     xoffset,         HEIGHT,  TEXTURE_HEIGHT       +xoffset, HEIGHT, paint);
238
    canvas.drawLine(                OFF +xoffset, TEXTURE_HEIGHT,                 OFF2  +xoffset,      0, paint);
239
    canvas.drawLine((TEXTURE_HEIGHT-OFF)+xoffset, TEXTURE_HEIGHT, (TEXTURE_HEIGHT-OFF2) +xoffset,      0, paint);
240

  
241
    canvas.drawArc( ARC1_W-RADIUS+xoffset, ARC1_H-RADIUS, ARC1_W+RADIUS+xoffset, ARC1_H+RADIUS, 225, 90, false, paint);
242
    canvas.drawArc( ARC2_W-RADIUS+xoffset, ARC2_H-RADIUS, ARC2_W+RADIUS+xoffset, ARC2_H+RADIUS, 105, 90, false, paint);
243
    canvas.drawArc( ARC3_W-RADIUS+xoffset, ARC2_H-RADIUS, ARC3_W+RADIUS+xoffset, ARC2_H+RADIUS, 345, 90, false, paint);
244
    }
245

  
246 211
///////////////////////////////////////////////////////////////////////////////////////////////////
247 212

  
248 213
  MeshBase createCubitMesh(int cubit, int vertices)
......
289 254
    return result;
290 255
    }
291 256

  
257
///////////////////////////////////////////////////////////////////////////////////////////////////
258

  
259
  void createFaceTexture(Canvas canvas, Paint paint, int face, int left, int top, int side)
260
    {
261
    float STROKE = 0.06f*side;
262
    float OFF = STROKE/2 -1;
263
    float OFF2 = 0.5f*side + OFF;
264
    float HEIGHT = side - OFF;
265
    float RADIUS = side/12.0f;
266
    float ARC1_H = 0.2f*side;
267
    float ARC1_W = side*0.5f;
268
    float ARC2_W = 0.153f*side;
269
    float ARC2_H = 0.905f*side;
270
    float ARC3_W = side-ARC2_W;
271

  
272
    paint.setAntiAlias(true);
273
    paint.setStrokeWidth(STROKE);
274
    paint.setColor(FACE_COLORS[face]);
275
    paint.setStyle(Paint.Style.FILL);
276

  
277
    canvas.drawRect(left,top,left+side,top+side,paint);
278

  
279
    paint.setColor(0xff000000);
280
    paint.setStyle(Paint.Style.STROKE);
281

  
282
    canvas.drawLine(           left, HEIGHT,  side       +left, HEIGHT, paint);
283
    canvas.drawLine(      OFF +left, side  ,       OFF2  +left,      0, paint);
284
    canvas.drawLine((side-OFF)+left, side  , (side-OFF2) +left,      0, paint);
285

  
286
    canvas.drawArc( ARC1_W-RADIUS+left, ARC1_H-RADIUS, ARC1_W+RADIUS+left, ARC1_H+RADIUS, 225, 90, false, paint);
287
    canvas.drawArc( ARC2_W-RADIUS+left, ARC2_H-RADIUS, ARC2_W+RADIUS+left, ARC2_H+RADIUS, 105, 90, false, paint);
288
    canvas.drawArc( ARC3_W-RADIUS+left, ARC2_H-RADIUS, ARC3_W+RADIUS+left, ARC2_H+RADIUS, 345, 90, false, paint);
289
    }
290

  
292 291
///////////////////////////////////////////////////////////////////////////////////////////////////
293 292
// PUBLIC API
294 293

  

Also available in: Unified diff