Project

General

Profile

« Previous | Next » 

Revision e32d318a

Added by Leszek Koltunski over 2 years ago

new API to make is possible to adjust default scale factor in each TwistyObjectNode.
(and use it in Tutorials, where the object needs to be smaller)

View differences:

src/main/java/org/distorted/objectlib/main/ObjectControl.java
232 232
        float distQuot = mInitDistance<0 ? 1.0f : distNow/ mInitDistance;
233 233
        mInitDistance = distNow;
234 234
        TwistyObject object = mPreRender.getObject();
235
        if( object!=null ) object.setObjectRatio(distQuot,mObjectNode.getMinSize() );
235
        if( object!=null ) object.setObjectRatio(distQuot,mObjectNode.getScaleFactor() );
236 236
        }
237 237
      else
238 238
        {
......
490 490
        }
491 491
      }
492 492

  
493
///////////////////////////////////////////////////////////////////////////////////////////////////
494

  
495
    void setMovement(Movement movement)
496
      {
497
      mMovement = movement;
498
      }
499

  
493 500
///////////////////////////////////////////////////////////////////////////////////////////////////
494 501
// INTERNAL API (for AutomaticControl)
495 502
///////////////////////////////////////////////////////////////////////////////////////////////////
......
627 634

  
628 635
    public void scaleNow(float scale)
629 636
      {
630
      mPreRender.getObject().setObjectRatioNow(scale,mObjectNode.getMinSize());
637
      mPreRender.getObject().setObjectRatioNow(scale,mObjectNode.getScaleFactor());
631 638
      }
632 639

  
633 640
///////////////////////////////////////////////////////////////////////////////////////////////////
......
644 651
      return mQuat;
645 652
      }
646 653

  
647
///////////////////////////////////////////////////////////////////////////////////////////////////
648

  
649
    public void setMovement(Movement movement)
650
      {
651
      mMovement = movement;
652
      }
653

  
654 654
///////////////////////////////////////////////////////////////////////////////////////////////////
655 655

  
656 656
    public void preRender()
......
720 720

  
721 721
///////////////////////////////////////////////////////////////////////////////////////////////////
722 722

  
723
    public void changeObject(ObjectType object)
723
    public void changeObject(ObjectType newObject)
724 724
      {
725
      mPreRender.changeObject(object);
725
      mPreRender.changeObject(newObject);
726 726
      }
727 727

  
728 728
///////////////////////////////////////////////////////////////////////////////////////////////////
src/main/java/org/distorted/objectlib/main/ObjectPreRender.java
108 108

  
109 109
    if( mNewObject!=null )
110 110
      {
111
      TwistyObjectNode node = mController.getNode();
112
      if( node!=null ) mNewObject.setObjectRatioNow( 1.0f, node.getScaleFactor() );
111 113
      mController.setMovement(mNewObject.getMovement());
112 114
      if( firstTime && mPreferences!=null ) mNewObject.restorePreferences(mPreferences);
113 115
      mIsSolved = mNewObject.isSolved();
src/main/java/org/distorted/objectlib/main/Twisty4.java
66 66

  
67 67
  public int getFOV()
68 68
    {
69
    return 30;
69
    return 60;
70 70
    }
71 71

  
72 72
///////////////////////////////////////////////////////////////////////////////////////////////////
73 73

  
74 74
  protected float getScreenRatio()
75 75
    {
76
    return 0.88f;
76
    return 0.89f;
77 77
    }
78 78
}
src/main/java/org/distorted/objectlib/main/Twisty8.java
78 78

  
79 79
  protected float getScreenRatio()
80 80
    {
81
    return 0.65f;
81
    return 0.68f;
82 82
    }
83 83
}
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, mMinSize;
34
  private int mWidth, mHeight, mScaleFactor;
35 35
  private float mCameraDist;
36
  private float mObjectScale;
36 37

  
37 38
///////////////////////////////////////////////////////////////////////////////////////////////////
38 39

  
......
40 41
    {
41 42
    super(new DistortedTexture(),new DistortedEffects(),new MeshSquare(20,20));
42 43

  
44
    mObjectScale = 1.0f;
43 45
    mScale= new Static3D(1,1,1);
44 46
    setSize(surfaceW,surfaceH);
45 47
    MatrixEffectScale scaleEffect = new MatrixEffectScale(mScale);
......
52 54

  
53 55
  void setSize(int surfaceW, int surfaceH)
54 56
    {
55
    mWidth  = surfaceW;
56
    mHeight = surfaceH;
57
    mMinSize= Math.min(mWidth,mHeight);
57
    mWidth      = surfaceW;
58
    mHeight     = surfaceH;
59
    mScaleFactor= (int)(Math.min(mWidth,mHeight)*mObjectScale);
58 60

  
59 61
    resizeFBO(mWidth,mHeight);
60 62

  
......
70 72

  
71 73
///////////////////////////////////////////////////////////////////////////////////////////////////
72 74

  
73
  int getMinSize()
75
  int getScaleFactor()
74 76
    {
75
    return mMinSize;
77
    return mScaleFactor;
76 78
    }
77 79

  
78 80
///////////////////////////////////////////////////////////////////////////////////////////////////
......
86 88
    setProjection( fov, 0.1f);
87 89
    }
88 90

  
91
///////////////////////////////////////////////////////////////////////////////////////////////////
92

  
93
  public void setScaleFactor(float scale)
94
    {
95
    mObjectScale = scale;
96
    mScaleFactor = (int)(Math.min(mWidth,mHeight)*mObjectScale);
97
    }
98

  
89 99
///////////////////////////////////////////////////////////////////////////////////////////////////
90 100

  
91 101
  public int getWidth()

Also available in: Unified diff