Revision 0e1437c1
Added by Leszek Koltunski almost 4 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.