Project

General

Profile

« Previous | Next » 

Revision da36b97e

Added by Leszek Koltunski over 3 years ago

Rex Cube - new mesh, textures and icon.

View differences:

src/main/java/org/distorted/objects/TwistyRex.java
42 42

  
43 43
public class TwistyRex extends TwistyObject
44 44
{
45
  private static final int FACES_PER_CUBIT =4;
45
  private static final int FACES_PER_CUBIT =6;
46 46

  
47 47
  // the four rotation axis of a RubikRex. Must be normalized.
48 48
  static final Static3D[] ROT_AXIS = new Static3D[]
......
80 80

  
81 81
  private static final int[][] mFaceMap =
82 82
         {
83
           {  0, 18,18,18 },
84
           {  0, 18,18,18 },
85
           {  0, 18,18,18 },
86
           {  0, 18,18,18 },
87
           {  1, 18,18,18 },
88
           {  1, 18,18,18 },
89
           {  1, 18,18,18 },
90
           {  1, 18,18,18 },
91
           {  2, 18,18,18 },
92
           {  2, 18,18,18 },
93
           {  2, 18,18,18 },
94
           {  2, 18,18,18 },
95
           {  3, 18,18,18 },
96
           {  3, 18,18,18 },
97
           {  3, 18,18,18 },
98
           {  3, 18,18,18 },
99
           {  4, 18,18,18 },
100
           {  4, 18,18,18 },
101
           {  4, 18,18,18 },
102
           {  4, 18,18,18 },
103
           {  5, 18,18,18 },
104
           {  5, 18,18,18 },
105
           {  5, 18,18,18 },
106
           {  5, 18,18,18 },
107

  
108
           {  6, 18,18,18 },
109
           {  7, 18,18,18 },
110
           {  8, 18,18,18 },
111
           {  9, 18,18,18 },
112
           { 10, 18,18,18 },
113
           { 11, 18,18,18 },
114

  
115
           { 16,14, 18,18 },
116
           { 16,12, 18,18 },
117
           { 16,15, 18,18 },
118
           { 16,13, 18,18 },
119
           { 12,14, 18,18 },
120
           { 15,12, 18,18 },
121
           { 15,13, 18,18 },
122
           { 13,14, 18,18 },
123
           { 14,17, 18,18 },
124
           { 12,17, 18,18 },
125
           { 17,15, 18,18 },
126
           { 13,17, 18,18 },
83
           {  0, 18,18,18,18,18 },
84
           {  0, 18,18,18,18,18 },
85
           {  0, 18,18,18,18,18 },
86
           {  0, 18,18,18,18,18 },
87
           {  1, 18,18,18,18,18 },
88
           {  1, 18,18,18,18,18 },
89
           {  1, 18,18,18,18,18 },
90
           {  1, 18,18,18,18,18 },
91
           {  2, 18,18,18,18,18 },
92
           {  2, 18,18,18,18,18 },
93
           {  2, 18,18,18,18,18 },
94
           {  2, 18,18,18,18,18 },
95
           {  3, 18,18,18,18,18 },
96
           {  3, 18,18,18,18,18 },
97
           {  3, 18,18,18,18,18 },
98
           {  3, 18,18,18,18,18 },
99
           {  4, 18,18,18,18,18 },
100
           {  4, 18,18,18,18,18 },
101
           {  4, 18,18,18,18,18 },
102
           {  4, 18,18,18,18,18 },
103
           {  5, 18,18,18,18,18 },
104
           {  5, 18,18,18,18,18 },
105
           {  5, 18,18,18,18,18 },
106
           {  5, 18,18,18,18,18 },
107

  
108
           {  6, 18,18,18,18,18 },
109
           {  7, 18,18,18,18,18 },
110
           {  8, 18,18,18,18,18 },
111
           {  9, 18,18,18,18,18 },
112
           { 10, 18,18,18,18,18 },
113
           { 11, 18,18,18,18,18 },
114

  
115
           { 16,14, 18,18,18,18 },
116
           { 16,12, 18,18,18,18 },
117
           { 16,15, 18,18,18,18 },
118
           { 16,13, 18,18,18,18 },
119
           { 12,14, 18,18,18,18 },
120
           { 15,12, 18,18,18,18 },
121
           { 15,13, 18,18,18,18 },
122
           { 13,14, 18,18,18,18 },
123
           { 14,17, 18,18,18,18 },
124
           { 12,17, 18,18,18,18 },
125
           { 17,15, 18,18,18,18 },
126
           { 13,17, 18,18,18,18 },
127 127
         };
128 128

  
129 129
  private static MeshBase mCornerMesh, mFaceMesh, mEdgeMesh;
......
192 192
  Static3D[] getCubitPositions(int numLayers)
193 193
    {
194 194
    final float DIST = 0.50f;
195
    final float DIST2= SQ3/6*(1.0f-2*REX_D);
195
    final float DIST2= (1+2*REX_D)/6;
196 196

  
197 197
    final Static3D[] CENTERS = new Static3D[42];
198 198

  
......
245 245
    }
246 246

  
247 247
///////////////////////////////////////////////////////////////////////////////////////////////////
248
// 1  +90 ( 1, 0, 0) = Static4D(+SQ2/2,     0,     0, SQ2/2);
249
// 2  -90 ( 1, 0, 0) = Static4D(-SQ2/2,     0,     0, SQ2/2);
250
// 3  +90 ( 0, 1, 0) = Static4D(     0,+SQ2/2,     0, SQ2/2);
251
// 4  -90 ( 0, 1, 0) = Static4D(     0,-SQ2/2,     0, SQ2/2);
252
// 5  +90 ( 0, 0, 1) = Static4D(     0,     0,+SQ2/2, SQ2/2);
253
// 6  -90 ( 0, 0, 1) = Static4D(     0,     0,-SQ2/2, SQ2/2);
254
// 7  180 ( 1, 0, 1) = Static4D(+SQ2/2,     0,+SQ2/2,     0);
255
// 8  180 (-1, 0, 1) = Static4D(-SQ2/2,     0,+SQ2/2,     0);
256
// 9  180 ( 0, 1, 1) = Static4D(     0,+SQ2/2,+SQ2/2,     0);
257
//10  180 ( 0,-1, 1) = Static4D(     0,-SQ2/2,+SQ2/2,     0);
258
//11  180 ( 1, 1, 0) = Static4D(+SQ2/2,+SQ2/2,     0,     0);
259
//12  180 ( 1,-1, 0) = Static4D(+SQ2/2,-SQ2/2,     0,     0);
260 248

  
261 249
  private Static4D getQuat(int cubit)
262 250
    {
......
352 340
    {
353 341
    int COLORS = FACE_COLORS.length;
354 342
    FactorySticker factory = FactorySticker.getInstance();
355
    float S1 = 0.05f;
356
    float S2 = 0.04f;
357
    float R1 = 0.12f;
358
    float R2 = 0.06f;
343
    float S1 = 0.050f;
344
    float S2 = 0.051f;
345
    float R1 = 0.07f;
346
    float R2 = 0.02f;
347
    float R3 = 0.06f;
348
    float R4 = 0.04f;
359 349

  
360 350
    if( face<COLORS )
361 351
      {
362
      factory.drawRexCornerSticker(canvas, paint, left, top, FACE_COLORS[face%COLORS], S1, R2);
352
      factory.drawRexCornerSticker(canvas, paint, left, top, FACE_COLORS[face%COLORS], S1, R2, R3);
363 353
      }
364 354
    else if( face<2*COLORS )
365 355
      {
366
      factory.drawRexFaceSticker(canvas, paint, left, top, FACE_COLORS[face%COLORS], S1, R1);
356
      float[] vertices = { -REX_D,0.0f, 0.0f, -REX_D, +REX_D, 0.0f, 0.0f, +REX_D};
357
      factory.drawRoundedPolygon(canvas, paint, left, top, vertices, S1, FACE_COLORS[face%COLORS], R4);
367 358
      }
368 359
    else
369 360
      {

Also available in: Unified diff