Revision b30695c6
Added by Leszek Koltunski about 5 years ago
| src/main/java/org/distorted/objects/RubikObject.java | ||
|---|---|---|
| 76 | 76 |
final int NUM_CUBITS; |
| 77 | 77 |
final float BASIC_STEP; |
| 78 | 78 |
|
| 79 |
private static float mInitScreenRatio,mObjectScreenRatio; |
|
| 79 |
private static float mInitScreenRatio; |
|
| 80 |
private static float mObjectScreenRatio = 1.0f; |
|
| 80 | 81 |
|
| 81 | 82 |
private final int mNodeSize; |
| 82 | 83 |
private int mRotRowBitmap; |
| ... | ... | |
| 120 | 121 |
NUM_CUBITS = mOrigPos.length; |
| 121 | 122 |
ROTATION_AXIS = getRotationAxis(); |
| 122 | 123 |
NUM_AXIS = ROTATION_AXIS.length; |
| 123 |
mObjectScreenRatio = getScreenRatio(); |
|
| 124 |
mInitScreenRatio = mObjectScreenRatio; |
|
| 124 |
mInitScreenRatio = getScreenRatio(); |
|
| 125 | 125 |
NUM_FACES = getNumFaces(); |
| 126 | 126 |
NUM_CUBIT_FACES = getNumCubitFaces(); |
| 127 | 127 |
NUM_TEXTURES = getNumStickerTypes()*NUM_FACES; |
| 128 | 128 |
BASIC_STEP = getBasicStep(); |
| 129 | 129 |
|
| 130 |
if( mObjectScreenRatio>MAX_SIZE_CHANGE) mObjectScreenRatio = MAX_SIZE_CHANGE; |
|
| 131 |
if( mObjectScreenRatio<MIN_SIZE_CHANGE) mObjectScreenRatio = MIN_SIZE_CHANGE; |
|
| 132 |
|
|
| 130 | 133 |
mSize = size; |
| 131 | 134 |
computeStartAndStep(mOrigPos); |
| 132 | 135 |
mNodeScale= new Static3D(1,NODE_RATIO,1); |
| ... | ... | |
| 142 | 145 |
mRotationAngleMiddle = new Static1D(0); |
| 143 | 146 |
mRotationAngleFinal = new Static1D(0); |
| 144 | 147 |
|
| 145 |
float scale = mObjectScreenRatio*mNodeSize/mSize; |
|
| 148 |
float scale = mObjectScreenRatio*mInitScreenRatio*mNodeSize/mSize;
|
|
| 146 | 149 |
mObjectScale = new Static3D(scale,scale,scale); |
| 147 | 150 |
mScaleEffect = new MatrixEffectScale(mObjectScale); |
| 148 | 151 |
mQuatEffect = new MatrixEffectQuaternion(quat, CENTER); |
| ... | ... | |
| 230 | 233 |
{
|
| 231 | 234 |
mObjectScreenRatio *= (1.0f+sizeChange)/2; |
| 232 | 235 |
|
| 233 |
if( mObjectScreenRatio > MAX_SIZE_CHANGE*mInitScreenRatio) |
|
| 234 |
{
|
|
| 235 |
mObjectScreenRatio = MAX_SIZE_CHANGE*mInitScreenRatio; |
|
| 236 |
} |
|
| 237 |
if( mObjectScreenRatio < MIN_SIZE_CHANGE*mInitScreenRatio) |
|
| 238 |
{
|
|
| 239 |
mObjectScreenRatio = MIN_SIZE_CHANGE*mInitScreenRatio; |
|
| 240 |
} |
|
| 236 |
if( mObjectScreenRatio>MAX_SIZE_CHANGE) mObjectScreenRatio = MAX_SIZE_CHANGE; |
|
| 237 |
if( mObjectScreenRatio<MIN_SIZE_CHANGE) mObjectScreenRatio = MIN_SIZE_CHANGE; |
|
| 241 | 238 |
|
| 242 |
float scale = mObjectScreenRatio*mNodeSize/mSize; |
|
| 239 |
float scale = mObjectScreenRatio*mInitScreenRatio*mNodeSize/mSize;
|
|
| 243 | 240 |
mObjectScale.set(scale,scale,scale); |
| 244 | 241 |
} |
| 245 | 242 |
|
| ... | ... | |
| 247 | 244 |
|
| 248 | 245 |
static float getObjectRatio() |
| 249 | 246 |
{
|
| 250 |
return mObjectScreenRatio; |
|
| 247 |
return mObjectScreenRatio*mInitScreenRatio;
|
|
| 251 | 248 |
} |
| 252 | 249 |
|
| 253 | 250 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
Also available in: Unified diff
Do not forget the amount an Object has been changed in size when we switch between Objects.