Project

General

Profile

« Previous | Next » 

Revision 0e1437c1

Added by Leszek Koltunski over 2 years ago

Correct the way ObejctScale works in the TwistyObjectNode.

View differences:

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