Project

General

Profile

« Previous | Next » 

Revision 21819119

Added by Leszek Koltunski over 7 years ago

Progress with Wind

View differences:

src/main/java/org/distorted/examples/wind/WindEffectsManager.java
22 22
///////////////////////////////////////////////////////////////////////////////////////////////////
23 23

  
24 24
import org.distorted.library.DistortedObject;
25
import org.distorted.library.type.Dynamic3D;
26
import org.distorted.library.type.Static3D;
25 27

  
26 28
class WindEffectsManager
27 29
  {
30
  private Static3D shearFactor;
31
  private Dynamic3D shearDynamic;
32
  private Static3D scaleFactor;
33
  private Dynamic3D scaleDynamic;
28 34

  
29 35
///////////////////////////////////////////////////////////////////////////////////////////////////
30 36

  
31
  void apply(DistortedObject obj, int wind)
37
  WindEffectsManager()
32 38
    {
39
    shearFactor = new Static3D(0,0,0);
40
    shearDynamic= new Dynamic3D();
41
    shearDynamic.add(shearFactor);
33 42

  
43
    scaleFactor = new Static3D(1,1,1);
44
    scaleDynamic= new Dynamic3D();
45
    scaleDynamic.add(scaleFactor);
46
    }
47

  
48
///////////////////////////////////////////////////////////////////////////////////////////////////
49

  
50
  synchronized void apply(DistortedObject obj, int wind)
51
    {
52
    Static3D center = new Static3D(0,obj.getHeight()/2,0);
53
    setWind(wind);
54

  
55
    obj.shear(shearDynamic,center);
56
    obj.scale(scaleDynamic);
57
    }
58

  
59
///////////////////////////////////////////////////////////////////////////////////////////////////
60

  
61
  synchronized void setWind(int wind)
62
    {
63
    float tanAngle = (wind-50)/50.0f;
64

  
65
    shearFactor.set2(tanAngle);
66
    scaleFactor.set1(1/(float)Math.sqrt(1+tanAngle*tanAngle));
34 67
    }
35 68
  }

Also available in: Unified diff