Revision 3e605536
Added by Leszek Koltunski over 2 years ago
src/main/java/org/distorted/objects/TwistyObject.java | ||
---|---|---|
29 | 29 |
|
30 | 30 |
import org.distorted.helpers.FactoryCubit; |
31 | 31 |
import org.distorted.helpers.FactorySticker; |
32 |
import org.distorted.helpers.ObjectShape; |
|
32 | 33 |
import org.distorted.helpers.ObjectSticker; |
33 | 34 |
import org.distorted.helpers.QuatHelper; |
34 | 35 |
import org.distorted.library.effect.Effect; |
... | ... | |
287 | 288 |
} |
288 | 289 |
} |
289 | 290 |
|
291 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
292 |
|
|
293 |
private MeshBase createCubitMesh(int cubit, int numLayers) |
|
294 |
{ |
|
295 |
int variant = getCubitVariant(cubit,numLayers); |
|
296 |
|
|
297 |
if( mMeshes==null ) |
|
298 |
{ |
|
299 |
FactoryCubit factory = FactoryCubit.getInstance(); |
|
300 |
factory.clear(); |
|
301 |
mMeshes = new MeshBase[getNumCubitVariants(numLayers)]; |
|
302 |
} |
|
303 |
|
|
304 |
if( mMeshes[variant]==null ) |
|
305 |
{ |
|
306 |
ObjectShape shape = getObjectShape(cubit,numLayers); |
|
307 |
FactoryCubit factory = FactoryCubit.getInstance(); |
|
308 |
factory.createNewFaceTransform(shape); |
|
309 |
mMeshes[variant] = factory.createRoundedSolid(shape); |
|
310 |
} |
|
311 |
|
|
312 |
MeshBase mesh = mMeshes[variant].copy(true); |
|
313 |
MatrixEffectQuaternion quat = new MatrixEffectQuaternion( getQuat(cubit,numLayers), new Static3D(0,0,0) ); |
|
314 |
mesh.apply(quat,0xffffffff,0); |
|
315 |
|
|
316 |
return mesh; |
|
317 |
} |
|
318 |
|
|
290 | 319 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
291 | 320 |
|
292 | 321 |
public void setObjectRatio(float sizeChange) |
... | ... | |
974 | 1003 |
abstract int getNumFaces(); |
975 | 1004 |
abstract int getNumStickerTypes(int numLayers); |
976 | 1005 |
abstract int getNumCubitFaces(); |
977 |
abstract MeshBase createCubitMesh(int cubit, int numLayers); |
|
978 | 1006 |
abstract ObjectSticker retSticker(int face); |
979 | 1007 |
abstract int getColor(int face); |
980 | 1008 |
abstract int getFaceColor(int cubit, int cubitface, int numLayers); |
981 | 1009 |
abstract float returnMultiplier(); |
982 | 1010 |
abstract float[][] getCuts(int numLayers); |
983 | 1011 |
abstract boolean shouldResetTextureMaps(); |
1012 |
abstract int getCubitVariant(int cubit, int numLayers); |
|
1013 |
abstract int getNumCubitVariants(int numLayers); |
|
1014 |
abstract Static4D getQuat(int cubit, int numLayers); |
|
1015 |
abstract ObjectShape getObjectShape(int cubit, int numLayers); |
|
984 | 1016 |
|
985 | 1017 |
public abstract Static3D[] getRotationAxis(); |
986 | 1018 |
public abstract boolean isSolved(); |
Also available in: Unified diff
Finally remove cubit creation from the implementation classes and move it to the TwistyObject.