| 94 |
94 |
new Static4D( -0.5f, 0.5f, 0.5f, 0.5f)
|
| 95 |
95 |
};
|
| 96 |
96 |
|
| 97 |
|
private static MeshBase mMeshBig = null;
|
| 98 |
|
private static MeshBase mMeshSma = null;
|
|
97 |
private static MeshBase[] mMeshes;
|
| 99 |
98 |
|
| 100 |
99 |
///////////////////////////////////////////////////////////////////////////////////////////////////
|
| 101 |
100 |
|
| ... | ... | |
| 164 |
163 |
|
| 165 |
164 |
MeshBase createCubitMesh(int cubit)
|
| 166 |
165 |
{
|
| 167 |
|
return createCubitMesh(getSize()<=3);
|
|
166 |
int size = getSize();
|
|
167 |
int ordinal= RubikObjectList.CUBE.ordinal();
|
|
168 |
int index = RubikObjectList.getSizeIndex(ordinal,size);
|
|
169 |
float[] loc;
|
|
170 |
|
|
171 |
switch(size)
|
|
172 |
{
|
|
173 |
case 5 : loc = new float[] { -0.5f, 0.05f, 0.1f, 0.35f, 0.35f, 0.1f, 0.05f };
|
|
174 |
break;
|
|
175 |
case 2 : loc = new float[] { -0.5f, 0.03f, 0.05f, 0.07f, 0.20f, 0.30f, 0.20f, 0.07f, 0.05f, 0.03f };
|
|
176 |
break;
|
|
177 |
default: loc = new float[] { -0.5f, 0.04f, 0.06f, 0.25f, 0.30f, 0.25f, 0.06f, 0.04f };
|
|
178 |
}
|
|
179 |
|
|
180 |
return createCubitMesh(index,loc);
|
| 168 |
181 |
}
|
| 169 |
182 |
|
| 170 |
183 |
///////////////////////////////////////////////////////////////////////////////////////////////////
|
| 171 |
184 |
|
| 172 |
|
MeshBase createCubitMesh(boolean big)
|
|
185 |
MeshBase createCubitMesh(int index, float[] loc)
|
| 173 |
186 |
{
|
| 174 |
|
MeshBase mesh = big ? mMeshBig : mMeshSma;
|
| 175 |
|
int size = big ? 14 : 9;
|
|
187 |
if( mMeshes==null )
|
|
188 |
{
|
|
189 |
mMeshes = new MeshBase[RubikObjectList.CUBE.getNumVariants()];
|
|
190 |
}
|
| 176 |
191 |
|
| 177 |
|
if( mesh==null )
|
|
192 |
if( mMeshes[index]==null )
|
| 178 |
193 |
{
|
| 179 |
194 |
final int MESHES=6;
|
| 180 |
195 |
int association = 1;
|
| 181 |
196 |
MeshBase[] meshes = new MeshRectangles[MESHES];
|
| 182 |
|
meshes[0] = new MeshRectangles(size,size);
|
|
197 |
meshes[0] = new MeshRectangles(loc,loc);
|
| 183 |
198 |
meshes[0].setEffectAssociation(0,association,0);
|
| 184 |
199 |
|
| 185 |
200 |
for(int i=1; i<MESHES; i++)
|
| ... | ... | |
| 189 |
204 |
meshes[i].setEffectAssociation(0,association,0);
|
| 190 |
205 |
}
|
| 191 |
206 |
|
| 192 |
|
mesh = new MeshJoined(meshes);
|
|
207 |
mMeshes[index] = new MeshJoined(meshes);
|
| 193 |
208 |
|
| 194 |
209 |
Static3D axisY = new Static3D(0,1,0);
|
| 195 |
210 |
Static3D axisX = new Static3D(1,0,0);
|
| ... | ... | |
| 247 |
262 |
|
| 248 |
263 |
VertexEffectSink effect14= new VertexEffectSink( new Static1D(1.5f), center, new Static4D(0,0,0,0.72f) );
|
| 249 |
264 |
|
| 250 |
|
mesh.apply(effect0);
|
| 251 |
|
mesh.apply(effect1);
|
| 252 |
|
mesh.apply(effect2);
|
| 253 |
|
mesh.apply(effect3);
|
| 254 |
|
mesh.apply(effect4);
|
| 255 |
|
mesh.apply(effect5);
|
| 256 |
|
mesh.apply(effect6);
|
| 257 |
|
mesh.apply(effect7);
|
| 258 |
|
mesh.apply(effect8);
|
| 259 |
|
mesh.apply(effect9);
|
| 260 |
|
mesh.apply(effect10);
|
| 261 |
|
mesh.apply(effect11);
|
| 262 |
|
mesh.apply(effect12);
|
| 263 |
|
mesh.apply(effect13);
|
| 264 |
|
mesh.apply(effect14);
|
| 265 |
|
|
| 266 |
|
mesh.mergeEffComponents();
|
|
265 |
mMeshes[index].apply(effect0);
|
|
266 |
mMeshes[index].apply(effect1);
|
|
267 |
mMeshes[index].apply(effect2);
|
|
268 |
mMeshes[index].apply(effect3);
|
|
269 |
mMeshes[index].apply(effect4);
|
|
270 |
mMeshes[index].apply(effect5);
|
|
271 |
mMeshes[index].apply(effect6);
|
|
272 |
mMeshes[index].apply(effect7);
|
|
273 |
mMeshes[index].apply(effect8);
|
|
274 |
mMeshes[index].apply(effect9);
|
|
275 |
mMeshes[index].apply(effect10);
|
|
276 |
mMeshes[index].apply(effect11);
|
|
277 |
mMeshes[index].apply(effect12);
|
|
278 |
mMeshes[index].apply(effect13);
|
|
279 |
mMeshes[index].apply(effect14);
|
|
280 |
|
|
281 |
mMeshes[index].mergeEffComponents();
|
| 267 |
282 |
}
|
| 268 |
283 |
|
| 269 |
|
return mesh.copy(true);
|
|
284 |
return mMeshes[index].copy(true);
|
| 270 |
285 |
}
|
| 271 |
286 |
|
| 272 |
287 |
///////////////////////////////////////////////////////////////////////////////////////////////////
|
Re-introduce possibility to dynamically create object mesh: part 2.