Project

General

Profile

« Previous | Next » 

Revision 7d8cc029

Added by Leszek Koltunski over 3 years ago

Simplify.

View differences:

src/main/java/org/distorted/objects/TwistyBandaged2Bar.java
59 59
       { 0.0f, -1.0f, -1.0f}
60 60
      };
61 61

  
62
  private final double[][] VERTICES_SMALL = new double[][]
63
          {
64
              { 0.5, 0.5, 0.5 },
65
              { 0.5, 0.5,-0.5 },
66
              { 0.5,-0.5, 0.5 },
67
              { 0.5,-0.5,-0.5 },
68
              {-0.5, 0.5, 0.5 },
69
              {-0.5, 0.5,-0.5 },
70
              {-0.5,-0.5, 0.5 },
71
              {-0.5,-0.5,-0.5 },
72
          };
73

  
74
  private final double[][] VERTICES_BIG = new double[][]
75
          {
76
              // TODO
77
          };
78

  
79
  private final int[][] VERT_INDEXES = new int[][]
80
          {
81
              {2,3,1,0},   // counterclockwise!
82
              {7,6,4,5},
83
              {4,0,1,5},
84
              {7,3,2,6},
85
              {6,2,0,4},
86
              {3,7,5,1}
87
          };
88

  
89 62
  private static final int[] QUAT_INDICES = new int[] { 2 };
90 63

  
91 64
///////////////////////////////////////////////////////////////////////////////////////////////////
......
96 69
    super(size, quat, texture, mesh, effects, moves, ObjectList.BAN2, res, scrWidth);
97 70
    }
98 71

  
99
///////////////////////////////////////////////////////////////////////////////////////////////////
100

  
101
  double[][] getVertices(int cubitType)
102
    {
103
     if( cubitType==0 )  // Small cubit
104
      {
105
      return VERTICES_SMALL;
106
      }
107
    if( cubitType==1 )  // Big cubit
108
      {
109
      return VERTICES_BIG;
110
      }
111

  
112
    return null;
113
    }
114

  
115
///////////////////////////////////////////////////////////////////////////////////////////////////
116

  
117
  int[][] getVertIndexes(int cubitType)
118
    {
119
    return VERT_INDEXES;
120
    }
121

  
122 72
///////////////////////////////////////////////////////////////////////////////////////////////////
123 73

  
124 74
  int getNumCubitTypes(int numLayers)
src/main/java/org/distorted/objects/TwistyBandaged3Plate.java
95 95
       { 0.0f,  0.0f, -1.0f}
96 96
      };
97 97

  
98
  private final double[][] VERTICES_SMALL = new double[][]
99
          {
100
              { 0.5, 0.5, 0.5 },
101
              { 0.5, 0.5,-0.5 },
102
              { 0.5,-0.5, 0.5 },
103
              { 0.5,-0.5,-0.5 },
104
              {-0.5, 0.5, 0.5 },
105
              {-0.5, 0.5,-0.5 },
106
              {-0.5,-0.5, 0.5 },
107
              {-0.5,-0.5,-0.5 },
108
          };
109

  
110
  private final double[][] VERTICES_BIG = new double[][]
111
          {
112
              // TODO
113
          };
114

  
115
  private final int[][] VERT_INDEXES = new int[][]
116
          {
117
              {2,3,1,0},   // counterclockwise!
118
              {7,6,4,5},
119
              {4,0,1,5},
120
              {7,3,2,6},
121
              {6,2,0,4},
122
              {3,7,5,1}
123
          };
124

  
125 98
  private static final int[] QUAT_INDICES = new int[] { 1, 3 };
126 99

  
127 100
///////////////////////////////////////////////////////////////////////////////////////////////////
......
132 105
    super(size, quat, texture, mesh, effects, moves, ObjectList.BAN3, res, scrWidth);
133 106
    }
134 107

  
135
///////////////////////////////////////////////////////////////////////////////////////////////////
136

  
137
  double[][] getVertices(int cubitType)
138
    {
139
     if( cubitType==0 )  // Small cubit
140
      {
141
      return VERTICES_SMALL;
142
      }
143
    if( cubitType==1 )  // Big cubit
144
      {
145
      return VERTICES_BIG;
146
      }
147

  
148
    return null;
149
    }
150

  
151
///////////////////////////////////////////////////////////////////////////////////////////////////
152

  
153
  int[][] getVertIndexes(int cubitType)
154
    {
155
    return VERT_INDEXES;
156
    }
157

  
158
///////////////////////////////////////////////////////////////////////////////////////////////////
159

  
160
  int getNumCubitTypes(int numLayers)
161
    {
162
    return 2;
163
    }
164

  
165 108
///////////////////////////////////////////////////////////////////////////////////////////////////
166 109

  
167 110
  float[][] getPositions()
src/main/java/org/distorted/objects/TwistyBandagedEvil.java
209 209
        { 1.0f, -1.0f, -1.0f,  1.0f,  0.0f, -1.0f}
210 210
      };
211 211

  
212
  private final double[][] VERTICES_SMALL = new double[][]
213
          {
214
              { 0.5, 0.5, 0.5 },
215
              { 0.5, 0.5,-0.5 },
216
              { 0.5,-0.5, 0.5 },
217
              { 0.5,-0.5,-0.5 },
218
              {-0.5, 0.5, 0.5 },
219
              {-0.5, 0.5,-0.5 },
220
              {-0.5,-0.5, 0.5 },
221
              {-0.5,-0.5,-0.5 },
222
          };
223

  
224
  private final double[][] VERTICES_MEDIUM = new double[][]
225
          {
226
              // TODO
227
          };
228

  
229
  private final double[][] VERTICES_BIG = new double[][]
230
          {
231
              // TODO
232
          };
233

  
234
  private final int[][] VERT_INDEXES = new int[][]
235
          {
236
              {2,3,1,0},   // counterclockwise!
237
              {7,6,4,5},
238
              {4,0,1,5},
239
              {7,3,2,6},
240
              {6,2,0,4},
241
              {3,7,5,1}
242
          };
243

  
244 212
  private static final int[] QUAT_INDICES = new int[]
245 213
      { 0, 1, 0, 0, 0, 2, 2, 2, 3, 3, 3, 3, 3 };
246 214

  
......
252 220
    super(size, quat, texture, mesh, effects, moves, ObjectList.BAN4, res, scrWidth);
253 221
    }
254 222

  
255
///////////////////////////////////////////////////////////////////////////////////////////////////
256

  
257
  double[][] getVertices(int cubitType)
258
    {
259
     if( cubitType==0 )  // Small cubit
260
      {
261
      return VERTICES_SMALL;
262
      }
263
    if( cubitType==1 )  // Medium cubit
264
      {
265
      return VERTICES_MEDIUM;
266
      }
267
    if( cubitType==2 )  // Big cubit
268
      {
269
      return VERTICES_BIG;
270
      }
271

  
272
    return null;
273
    }
274

  
275
///////////////////////////////////////////////////////////////////////////////////////////////////
276

  
277
  int[][] getVertIndexes(int cubitType)
278
    {
279
    return VERT_INDEXES;
280
    }
281

  
282
///////////////////////////////////////////////////////////////////////////////////////////////////
283

  
284
  int getNumCubitTypes(int numLayers)
285
    {
286
    return 3;
287
    }
288

  
289 223
///////////////////////////////////////////////////////////////////////////////////////////////////
290 224

  
291 225
  float[][] getPositions()
src/main/java/org/distorted/objects/TwistyBandagedFused.java
64 64
       { 0.0f,  0.0f, -1.0f}
65 65
      };
66 66

  
67
  private final double[][] VERTICES_SMALL = new double[][]
68
          {
69
              { 0.5, 0.5, 0.5 },
70
              { 0.5, 0.5,-0.5 },
71
              { 0.5,-0.5, 0.5 },
72
              { 0.5,-0.5,-0.5 },
73
              {-0.5, 0.5, 0.5 },
74
              {-0.5, 0.5,-0.5 },
75
              {-0.5,-0.5, 0.5 },
76
              {-0.5,-0.5,-0.5 },
77
          };
78

  
79
  private final double[][] VERTICES_BIG = new double[][]
80
          {
81
              // TODO
82
          };
83

  
84
  private final int[][] VERT_INDEXES = new int[][]
85
          {
86
              {2,3,1,0},   // counterclockwise!
87
              {7,6,4,5},
88
              {4,0,1,5},
89
              {7,3,2,6},
90
              {6,2,0,4},
91
              {3,7,5,1}
92
          };
93

  
94 67
  private static final int[] QUAT_INDICES = new int[] { 0 };
95 68

  
96 69
///////////////////////////////////////////////////////////////////////////////////////////////////
......
101 74
    super(size, quat, texture, mesh, effects, moves, ObjectList.BAN1, res, scrWidth);
102 75
    }
103 76

  
104
///////////////////////////////////////////////////////////////////////////////////////////////////
105

  
106
  double[][] getVertices(int cubitType)
107
    {
108
     if( cubitType==0 )  // Small cubit
109
      {
110
      return VERTICES_SMALL;
111
      }
112
    if( cubitType==1 )  // Big cubit
113
      {
114
      return VERTICES_BIG;
115
      }
116

  
117
    return null;
118
    }
119

  
120
///////////////////////////////////////////////////////////////////////////////////////////////////
121

  
122
  int[][] getVertIndexes(int cubitType)
123
    {
124
    return VERT_INDEXES;
125
    }
126

  
127
///////////////////////////////////////////////////////////////////////////////////////////////////
128

  
129
  int getNumCubitTypes(int numLayers)
130
    {
131
    return 2;
132
    }
133

  
134 77
///////////////////////////////////////////////////////////////////////////////////////////////////
135 78

  
136 79
  float[][] getPositions()
src/main/java/org/distorted/objects/TwistyCube.java
128 128
    super(size, size, quat, texture, mesh, effects, moves, ObjectList.CUBE, res, scrWidth);
129 129
    }
130 130

  
131
///////////////////////////////////////////////////////////////////////////////////////////////////
132

  
133
  double[][] getVertices(int cubitType)
134
    {
135
    return VERTICES;
136
    }
137

  
138
///////////////////////////////////////////////////////////////////////////////////////////////////
139

  
140
  int[][] getVertIndexes(int cubitType)
141
    {
142
    return VERT_INDEXES;
143
    }
144

  
145
///////////////////////////////////////////////////////////////////////////////////////////////////
146
// in the sense of shape, there's always only 1 cubit type.
147

  
148
  int getNumCubitTypes(int numLayers)
149
    {
150
    return 1;
151
    }
152

  
153 131
///////////////////////////////////////////////////////////////////////////////////////////////////
154 132

  
155 133
  MeshBase createCubitMesh(int cubit, int numLayers)
src/main/java/org/distorted/objects/TwistyDiamond.java
146 146
    super(size, size, quat, texture, mesh, effects, moves, ObjectList.DIAM, res, scrWidth);
147 147
    }
148 148

  
149
///////////////////////////////////////////////////////////////////////////////////////////////////
150

  
151
  double[][] getVertices(int cubitType)
152
    {
153
    if( cubitType==0 ) return VERTICES_OCTA;
154
    if( cubitType==1 ) return VERTICES_TETRA;
155
    return null;
156
    }
157

  
158
///////////////////////////////////////////////////////////////////////////////////////////////////
159

  
160
  int[][] getVertIndexes(int cubitType)
161
    {
162
    if( cubitType==0 ) return VERT_INDEXES_OCTA;
163
    if( cubitType==1 ) return VERT_INDEXES_TETRA;
164
    return null;
165
    }
166

  
167
///////////////////////////////////////////////////////////////////////////////////////////////////
168

  
169
  int getNumCubitTypes(int numLayers)
170
    {
171
    return 2;
172
    }
173

  
174 149
///////////////////////////////////////////////////////////////////////////////////////////////////
175 150

  
176 151
  float getScreenRatio()
src/main/java/org/distorted/objects/TwistyDino.java
118 118
    super(size, size, quat, texture, mesh, effects, moves, obj, res, scrWidth);
119 119
    }
120 120

  
121
///////////////////////////////////////////////////////////////////////////////////////////////////
122

  
123
  double[][] getVertices(int cubitType)
124
    {
125
    return VERTICES;
126
    }
127

  
128
///////////////////////////////////////////////////////////////////////////////////////////////////
129

  
130
  int[][] getVertIndexes(int cubitType)
131
    {
132
    return VERT_INDEXES;
133
    }
134

  
135
///////////////////////////////////////////////////////////////////////////////////////////////////
136

  
137
  int getNumCubitTypes(int numLayers)
138
    {
139
    return 1;
140
    }
141

  
142 121
///////////////////////////////////////////////////////////////////////////////////////////////////
143 122

  
144 123
  float getScreenRatio()
src/main/java/org/distorted/objects/TwistyHelicopter.java
234 234
                   MeshSquare mesh, DistortedEffects effects, int[][] moves, Resources res, int scrWidth)
235 235
    {
236 236
    super(size, size, quat, texture, mesh, effects, moves, ObjectList.HELI, res, scrWidth);
237

  
238
    createFaceDataStructures();
239
    }
240

  
241
///////////////////////////////////////////////////////////////////////////////////////////////////
242

  
243
  double[][] getVertices(int cubitType)
244
    {
245
    if( cubitType==0 ) return VERTICES_CORNER;
246
    if( cubitType==1 ) return VERTICES_FACE;
247
    return null;
248
    }
249

  
250
///////////////////////////////////////////////////////////////////////////////////////////////////
251

  
252
  int[][] getVertIndexes(int cubitType)
253
    {
254
    if( cubitType==0 ) return VERT_INDEXES_CORNER;
255
    if( cubitType==1 ) return VERT_INDEXES_FACE;
256
    return null;
257
    }
258

  
259
///////////////////////////////////////////////////////////////////////////////////////////////////
260

  
261
  int getNumCubitTypes(int numLayers)
262
    {
263
    return 2;
264 237
    }
265 238

  
266 239
///////////////////////////////////////////////////////////////////////////////////////////////////
src/main/java/org/distorted/objects/TwistyIvy.java
101 101
    super(size, size, quat, texture, mesh, effects, moves, ObjectList.IVY, res, scrWidth);
102 102
    }
103 103

  
104
///////////////////////////////////////////////////////////////////////////////////////////////////
105
// don't use this
106

  
107
  double[][] getVertices(int cubitType)
108
    {
109
    return null;
110
    }
111

  
112
///////////////////////////////////////////////////////////////////////////////////////////////////
113
// don't use this
114

  
115
  int[][] getVertIndexes(int cubitType)
116
    {
117
    return null;
118
    }
119

  
120
///////////////////////////////////////////////////////////////////////////////////////////////////
121

  
122
  int getNumCubitTypes(int numLayers)
123
    {
124
    return 2;
125
    }
126

  
127 104
///////////////////////////////////////////////////////////////////////////////////////////////////
128 105

  
129 106
  float getScreenRatio()
src/main/java/org/distorted/objects/TwistyKilominx.java
80 80
    super(size, size, quat, texture, mesh, effects, moves, ObjectList.KILO, res, scrWidth);
81 81
    }
82 82

  
83
///////////////////////////////////////////////////////////////////////////////////////////////////
84
// TODO
85

  
86
  double[][] getVertices(int cubitType)
87
    {
88
    return null;
89
    }
90

  
91
///////////////////////////////////////////////////////////////////////////////////////////////////
92
// TODO
93

  
94
  int[][] getVertIndexes(int cubitType)
95
    {
96
    return null;
97
    }
98

  
99
///////////////////////////////////////////////////////////////////////////////////////////////////
100
// 3 --> 1, 5 --> 4, 7 --> 5, 9 --> 6
101

  
102
  int getNumCubitTypes(int numLayers)
103
    {
104
    return numLayers==3 ? 1 : 2 + numLayers/2;
105
    }
106

  
107 83
///////////////////////////////////////////////////////////////////////////////////////////////////
108 84

  
109 85
  private int numCubitsPerCorner(int numLayers)
src/main/java/org/distorted/objects/TwistyMegaminx.java
62 62
    super(size, size, quat, texture, mesh, effects, moves, ObjectList.MEGA, res, scrWidth);
63 63
    }
64 64

  
65
///////////////////////////////////////////////////////////////////////////////////////////////////
66
// TODO
67

  
68
  double[][] getVertices(int cubitType)
69
    {
70
    return null;
71
    }
72

  
73
///////////////////////////////////////////////////////////////////////////////////////////////////
74
// TODO
75

  
76
  int[][] getVertIndexes(int cubitType)
77
    {
78
    return null;
79
    }
80

  
81
///////////////////////////////////////////////////////////////////////////////////////////////////
82
// 3 --> 3, 5 --> 4, 7 --> 5, 9 --> 6
83

  
84
  int getNumCubitTypes(int numLayers)
85
    {
86
    return 2 + numLayers/2;
87
    }
88

  
89 65
///////////////////////////////////////////////////////////////////////////////////////////////////
90 66

  
91 67
  private int numCubitsPerCorner(int numLayers)
src/main/java/org/distorted/objects/TwistyObject.java
549 549
///////////////////////////////////////////////////////////////////////////////////////////////////
550 550
// create StickerCoord and FaceTransform data structures
551 551

  
552
  void createFaceDataStructures()
552
  void createFaceDataStructures(double[][][] verts, int[][][] indices)
553 553
    {
554
    int numCubitTypes = getNumCubitTypes(mNumLayers);
554
    int numCubitTypes = verts.length;
555 555
    FactoryCubit factory = FactoryCubit.getInstance();
556 556
    factory.clear();
557 557

  
558 558
    for(int cubit=0; cubit<numCubitTypes; cubit++)
559 559
      {
560
      double[][] vertices = getVertices(cubit);
561
      int[][] vertIndices = getVertIndexes(cubit);
560
      double[][] vertices = verts[cubit];
561
      int[][] vertIndices = indices[cubit];
562 562
      factory.createNewFaceTransform(vertices,vertIndices);
563 563
      }
564 564

  
......
970 970
  abstract float[] getRowChances(int numLayers);
971 971
  abstract float[] getCuts(int numLayers);
972 972
  abstract boolean shouldResetTextureMaps();
973
  abstract double[][] getVertices(int cubitType);
974
  abstract int[][] getVertIndexes(int cubitType);
975
  abstract int getNumCubitTypes(int numLayers);
976 973

  
977 974
  public abstract boolean isSolved();
978 975
  public abstract Static3D[] getRotationAxis();
src/main/java/org/distorted/objects/TwistyPyraminx.java
123 123
    super(size, size, quat, texture, mesh, effects, moves, ObjectList.PYRA, res, scrWidth);
124 124
    }
125 125

  
126
///////////////////////////////////////////////////////////////////////////////////////////////////
127

  
128
  double[][] getVertices(int cubitType)
129
    {
130
    if( cubitType==0 ) return VERTICES_OCTA;
131
    if( cubitType==1 ) return VERTICES_TETRA;
132
    return null;
133
    }
134

  
135
///////////////////////////////////////////////////////////////////////////////////////////////////
136

  
137
  int[][] getVertIndexes(int cubitType)
138
    {
139
    if( cubitType==0 ) return VERT_INDEXES_OCTA;
140
    if( cubitType==1 ) return VERT_INDEXES_TETRA;
141
    return null;
142
    }
143

  
144
///////////////////////////////////////////////////////////////////////////////////////////////////
145

  
146
  int getNumCubitTypes(int numLayers)
147
    {
148
    return 2;
149
    }
150

  
151 126
///////////////////////////////////////////////////////////////////////////////////////////////////
152 127

  
153 128
  private void addTetrahedralLattice(int size, int index, float[][] pos)
src/main/java/org/distorted/objects/TwistyRedi.java
209 209
    super(size, size, quat, texture, mesh, effects, moves, ObjectList.REDI, res, scrWidth);
210 210
    }
211 211

  
212
///////////////////////////////////////////////////////////////////////////////////////////////////
213

  
214
  double[][] getVertices(int cubitType)
215
    {
216
    if( cubitType==0 ) return VERTICES_CORNER;
217
    if( cubitType==1 ) return VERTICES_EDGE;
218
    return null;
219
    }
220

  
221
///////////////////////////////////////////////////////////////////////////////////////////////////
222

  
223
  int[][] getVertIndexes(int cubitType)
224
    {
225
    if( cubitType==0 ) return VERT_INDEXES_CORNER;
226
    if( cubitType==1 ) return VERT_INDEXES_EDGE;
227
    return null;
228
    }
229

  
230
///////////////////////////////////////////////////////////////////////////////////////////////////
231

  
232
  int getNumCubitTypes(int numLayers)
233
    {
234
    return 2;
235
    }
236

  
237 212
///////////////////////////////////////////////////////////////////////////////////////////////////
238 213

  
239 214
  float getScreenRatio()
src/main/java/org/distorted/objects/TwistyRex.java
136 136
    super(size, size, quat, texture, mesh, effects, moves, ObjectList.REX, res, scrWidth);
137 137
    }
138 138

  
139
///////////////////////////////////////////////////////////////////////////////////////////////////
140
// don't use this
141

  
142
  double[][] getVertices(int cubitType)
143
    {
144
    return null;
145
    }
146

  
147
///////////////////////////////////////////////////////////////////////////////////////////////////
148
// don't use this
149

  
150
  int[][] getVertIndexes(int cubitType)
151
    {
152
    return null;
153
    }
154

  
155
///////////////////////////////////////////////////////////////////////////////////////////////////
156

  
157
  int getNumCubitTypes(int numLayers)
158
    {
159
    return 2;
160
    }
161

  
162 139
///////////////////////////////////////////////////////////////////////////////////////////////////
163 140

  
164 141
  float getScreenRatio()
src/main/java/org/distorted/objects/TwistySkewb.java
185 185
    super(size, 2*size-2, quat, texture, mesh, effects, moves, ObjectList.SKEW, res, scrWidth);
186 186
    }
187 187

  
188
///////////////////////////////////////////////////////////////////////////////////////////////////
189

  
190
  double[][] getVertices(int cubitType)
191
    {
192
    if( cubitType==0 ) return VERTICES_CORNER;
193
    if( cubitType==1 ) return VERTICES_EDGE;
194
    if( cubitType==2 ) return VERTICES_FACE;
195
    return null;
196
    }
197

  
198
///////////////////////////////////////////////////////////////////////////////////////////////////
199

  
200
  int[][] getVertIndexes(int cubitType)
201
    {
202
    if( cubitType==0 ) return VERT_INDEXES_CORNER;
203
    if( cubitType==1 ) return VERT_INDEXES_EDGE;
204
    if( cubitType==2 ) return VERT_INDEXES_FACE;
205
    return null;
206
    }
207

  
208
///////////////////////////////////////////////////////////////////////////////////////////////////
209

  
210
  int getNumCubitTypes(int numLayers)
211
    {
212
    return numLayers==2 ? 2 : 3;
213
    }
214

  
215 188
///////////////////////////////////////////////////////////////////////////////////////////////////
216 189

  
217 190
  private int getNumCorners()

Also available in: Unified diff