Revision 0e1437c1
Added by Leszek Koltunski over 2 years ago
src/main/java/org/distorted/objectlib/main/ObjectControl.java | ||
---|---|---|
234 | 234 |
float distQuot = mInitDistance<0 ? 1.0f : distNow/ mInitDistance; |
235 | 235 |
mInitDistance = distNow; |
236 | 236 |
TwistyObject object = mPreRender.getObject(); |
237 |
if( object!=null ) object.setObjectRatio(distQuot,mObjectNode.getScaleFactor() );
|
|
237 |
if( object!=null ) object.setObjectRatio(distQuot, mObjectNode.getScale(), mObjectNode.getMinSize() );
|
|
238 | 238 |
} |
239 | 239 |
else |
240 | 240 |
{ |
... | ... | |
622 | 622 |
|
623 | 623 |
public void scaleNow(float scale) |
624 | 624 |
{ |
625 |
mPreRender.getObject().setObjectRatioNow(scale,mObjectNode.getScaleFactor());
|
|
625 |
mPreRender.getObject().setObjectRatioNow(scale,mObjectNode.getScale(), mObjectNode.getMinSize() );
|
|
626 | 626 |
} |
627 | 627 |
|
628 | 628 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
src/main/java/org/distorted/objectlib/main/ObjectPreRender.java | ||
---|---|---|
116 | 116 |
{ |
117 | 117 |
mNewObject.setLibInterface(mInterface); |
118 | 118 |
TwistyObjectNode node = mController.getNode(); |
119 |
if( node!=null ) mNewObject.setObjectRatioNow( 1.0f, node.getScaleFactor() );
|
|
119 |
if( node!=null ) mNewObject.setObjectRatioNow( 1.0f, node.getScale(), node.getMinSize() );
|
|
120 | 120 |
mController.setMovement(mNewObject.getMovement()); |
121 | 121 |
if( firstTime && mPreferences!=null ) mNewObject.restorePreferences(mPreferences); |
122 | 122 |
mIsSolved = mNewObject.isSolved(); |
src/main/java/org/distorted/objectlib/main/TwistyObject.java | ||
---|---|---|
220 | 220 |
mRotationAngleFinal = new Static1D(0); |
221 | 221 |
|
222 | 222 |
mObjectScale = new Static3D(1,1,1); |
223 |
setObjectRatioNow(1.0f,720); |
|
223 |
setObjectRatioNow(1.0f,1.0f,720);
|
|
224 | 224 |
|
225 | 225 |
MatrixEffectScale scaleEffect = new MatrixEffectScale(mObjectScale); |
226 | 226 |
MatrixEffectQuaternion quatEffect = new MatrixEffectQuaternion(mQuat, CENTER); |
... | ... | |
1118 | 1118 |
|
1119 | 1119 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
1120 | 1120 |
|
1121 |
void setObjectRatioNow(float sc, int nodeMinSize) |
|
1121 |
void setObjectRatioNow(float sc, float nodeScale, int nodeMinSize)
|
|
1122 | 1122 |
{ |
1123 |
mObjectScreenRatio = sc; |
|
1123 |
mObjectScreenRatio = sc*nodeScale;
|
|
1124 | 1124 |
float scale = mObjectScreenRatio*mInitScreenRatio*nodeMinSize/mSize; |
1125 | 1125 |
mObjectScale.set(scale,scale,scale); |
1126 | 1126 |
} |
1127 | 1127 |
|
1128 | 1128 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
1129 | 1129 |
|
1130 |
void setObjectRatio(float sizeChange, int nodeMinSize) |
|
1130 |
void setObjectRatio(float sizeChange, float nodeScale, int nodeMinSize)
|
|
1131 | 1131 |
{ |
1132 | 1132 |
mObjectScreenRatio *= (1.0f+sizeChange)/2; |
1133 | 1133 |
|
1134 | 1134 |
if( mObjectScreenRatio>MAX_SIZE_CHANGE) mObjectScreenRatio = MAX_SIZE_CHANGE; |
1135 | 1135 |
if( mObjectScreenRatio<MIN_SIZE_CHANGE) mObjectScreenRatio = MIN_SIZE_CHANGE; |
1136 | 1136 |
|
1137 |
setObjectRatioNow(mObjectScreenRatio, nodeMinSize); |
|
1137 |
setObjectRatioNow(mObjectScreenRatio, nodeScale, nodeMinSize);
|
|
1138 | 1138 |
} |
1139 | 1139 |
|
1140 | 1140 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
src/main/java/org/distorted/objectlib/main/TwistyObjectNode.java | ||
---|---|---|
31 | 31 |
public class TwistyObjectNode extends DistortedNode |
32 | 32 |
{ |
33 | 33 |
private final Static3D mScale; |
34 |
private int mWidth, mHeight, mScaleFactor;
|
|
34 |
private int mWidth, mHeight, mMin;
|
|
35 | 35 |
private float mCameraDist; |
36 | 36 |
private float mObjectScale; |
37 | 37 |
|
... | ... | |
56 | 56 |
{ |
57 | 57 |
mWidth = surfaceW; |
58 | 58 |
mHeight = surfaceH; |
59 |
mScaleFactor= (int)(Math.min(mWidth,mHeight)*mObjectScale);
|
|
59 |
mMin = Math.min(mWidth,mHeight);
|
|
60 | 60 |
|
61 | 61 |
resizeFBO(mWidth,mHeight); |
62 | 62 |
|
... | ... | |
72 | 72 |
|
73 | 73 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
74 | 74 |
|
75 |
int getScaleFactor()
|
|
75 |
float getScale()
|
|
76 | 76 |
{ |
77 |
return mScaleFactor;
|
|
77 |
return mObjectScale;
|
|
78 | 78 |
} |
79 | 79 |
|
80 | 80 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
93 | 93 |
public void setScaleFactor(float scale) |
94 | 94 |
{ |
95 | 95 |
mObjectScale = scale; |
96 |
mScaleFactor = (int)(Math.min(mWidth,mHeight)*mObjectScale); |
|
96 |
} |
|
97 |
|
|
98 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
99 |
|
|
100 |
public int getMinSize() |
|
101 |
{ |
|
102 |
return mMin; |
|
97 | 103 |
} |
98 | 104 |
|
99 | 105 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
Also available in: Unified diff
Correct the way ObejctScale works in the TwistyObjectNode.