Project

General

Profile

« Previous | Next » 

Revision 5da517d3

Added by Leszek Koltunski over 2 years ago

Minor

View differences:

src/main/java/org/distorted/objects/TwistyDiamond.java
52 52
           COLOR_GREEN , COLOR_GREY
53 53
         };
54 54

  
55
  private static final float DIST = 0.50f;
56 55
  private static final int FACES_PER_CUBIT =8;
57 56

  
58 57
  private ScrambleState[] mStates;
......
181 180
    else
182 181
      {
183 182
      float[][] cuts = new float[4][numLayers-1];
184
      float dist = SQ6*0.666f*DIST;
183
      float dist = SQ6/3;
185 184
      float cut  = 0.5f*dist*(2-numLayers);
186 185

  
187 186
      for(int i=0; i<numLayers-1; i++)
......
222 221

  
223 222
  private int createOctaPositions(float[][] centers, int index, int layers, float height)
224 223
    {
225
    float x = DIST*(layers-1);
226
    float z = DIST*(layers+1);
224
    float x = (layers-1)*0.5f;
225
    float z = (layers+1)*0.5f;
227 226

  
228 227
    for(int i=0; i<layers; i++, index++)
229 228
      {
230
      z -= 2*DIST;
229
      z -= 1;
231 230
      centers[index][0] = x;
232 231
      centers[index][1] = height;
233 232
      centers[index][2] = z;
......
235 234

  
236 235
    for(int i=0; i<layers-1; i++, index++)
237 236
      {
238
      x -= 2*DIST;
237
      x -= 1;
239 238
      centers[index][0] = x;
240 239
      centers[index][1] = height;
241 240
      centers[index][2] = z;
......
243 242

  
244 243
    for(int i=0; i<layers-1; i++, index++)
245 244
      {
246
      z += 2*DIST;
245
      z += 1;
247 246
      centers[index][0] = x;
248 247
      centers[index][1] = height;
249 248
      centers[index][2] = z;
......
251 250

  
252 251
    for(int i=0; i<layers-2; i++, index++)
253 252
      {
254
      x += 2*DIST;
253
      x += 1;
255 254
      centers[index][0] = x;
256 255
      centers[index][1] = height;
257 256
      centers[index][2] = z;
......
264 263

  
265 264
  private int createTetraPositions(float[][] centers, int index, int layers, float height)
266 265
    {
267
    float x = DIST*(layers-1);
268
    float z = DIST*layers;
266
    float x = (layers-1)*0.5f;
267
    float z =  layers*0.5f;
269 268

  
270 269
    for(int i=0; i<layers-1; i++, index++)
271 270
      {
272
      z -= 2*DIST;
271
      z -= 1;
273 272
      centers[index][0] = x;
274 273
      centers[index][1] = height;
275 274
      centers[index][2] = z;
276 275
      }
277 276

  
278
    x += DIST;
279
    z -= DIST;
277
    x += 0.5f;
278
    z -= 0.5f;
280 279

  
281 280
    for(int i=0; i<layers-1; i++, index++)
282 281
      {
283
      x -= 2*DIST;
282
      x -= 1;
284 283
      centers[index][0] = x;
285 284
      centers[index][1] = height;
286 285
      centers[index][2] = z;
287 286
      }
288 287

  
289
    x -= DIST;
290
    z -= DIST;
288
    x -= 0.5f;
289
    z -= 0.5f;
291 290

  
292 291
    for(int i=0; i<layers-1; i++, index++)
293 292
      {
294
      z += 2*DIST;
293
      z += 1;
295 294
      centers[index][0] = x;
296 295
      centers[index][1] = height;
297 296
      centers[index][2] = z;
298 297
      }
299 298

  
300
    x -= DIST;
301
    z += DIST;
299
    x -= 0.5f;
300
    z += 0.5f;
302 301

  
303 302
    for(int i=0; i<layers-1; i++, index++)
304 303
      {
305
      x += 2*DIST;
304
      x += 1;
306 305
      centers[index][0] = x;
307 306
      centers[index][1] = height;
308 307
      centers[index][2] = z;
......
326 325

  
327 326
    for(int i=layers-1; i>0; i--)
328 327
      {
329
      height += SQ2*DIST;
328
      height += SQ2/2;
330 329
      index = createOctaPositions(CENTERS,index,i,+height);
331 330
      index = createOctaPositions(CENTERS,index,i,-height);
332 331
      }
333 332

  
334
    height = DIST*SQ2/2;
333
    height = SQ2/4;
335 334

  
336 335
    for(int i=layers; i>1; i--)
337 336
      {
338 337
      index = createTetraPositions(CENTERS,index,i,+height);
339 338
      index = createTetraPositions(CENTERS,index,i,-height);
340
      height += SQ2*DIST;
339
      height += SQ2/2;
341 340
      }
342 341

  
343 342
    return CENTERS;

Also available in: Unified diff