Project

General

Profile

« Previous | Next » 

Revision b041d424

Added by Leszek Koltunski over 7 years ago

Minor details

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.Dynamic;
25 26
import org.distorted.library.type.Dynamic3D;
27
import org.distorted.library.type.Dynamic5D;
26 28
import org.distorted.library.type.Static3D;
29
import org.distorted.library.type.Static4D;
30
import org.distorted.library.type.Static5D;
27 31

  
28 32
class WindEffectsManager
29 33
  {
30
  private Static3D shearFactor;
34
  private Static3D  shearFactor;
31 35
  private Dynamic3D shearDynamic;
32
  private Static3D scaleFactor;
36
  private Static3D  scaleFactor;
33 37
  private Dynamic3D scaleDynamic;
38
  private Static3D  deformForce;
39
  private Static5D  windFactor1, windFactor2;
40
  private Dynamic5D windDynamic;
34 41

  
35 42
///////////////////////////////////////////////////////////////////////////////////////////////////
36 43

  
37
  WindEffectsManager()
44
  WindEffectsManager(DistortedObject obj)
38 45
    {
46
    int h = obj.getHeight();
47
    int w = obj.getWidth();
48

  
39 49
    shearFactor = new Static3D(0,0,0);
40 50
    shearDynamic= new Dynamic3D();
41 51
    shearDynamic.add(shearFactor);
......
43 53
    scaleFactor = new Static3D(1,1,1);
44 54
    scaleDynamic= new Dynamic3D();
45 55
    scaleDynamic.add(scaleFactor);
56

  
57
    deformForce = new Static3D(w/3,0,0);
58

  
59
    windFactor1 = new Static5D(h/10,h/5, 180, 0, 90);
60
    windFactor2 = new Static5D(h/10,h/5,-180, 0, 90);
61
    windDynamic = new Dynamic5D(1000,0.0f);
62
    windDynamic.add(windFactor1);
63
    windDynamic.add(windFactor2);
64
    windDynamic.setMode(Dynamic.MODE_JUMP);
46 65
    }
47 66

  
48 67
///////////////////////////////////////////////////////////////////////////////////////////////////
49 68

  
50 69
  synchronized void apply(DistortedObject obj, int wind)
51 70
    {
52
    Static3D center = new Static3D(0,obj.getHeight()/2,0);
71
    int h = obj.getHeight();
72
    int w = obj.getWidth();
73

  
74
    Static3D midLeft = new Static3D(0,h/2,0);
75
    Static3D midRight = new Static3D(w,h/2,0);
76
    Static4D windRegion = new Static4D(0,0,w,h);
77

  
53 78
    setWind(wind);
54 79

  
55
    obj.shear(shearDynamic,center);
80
    obj.shear(shearDynamic,midLeft);
56 81
    obj.scale(scaleDynamic);
82
    obj.deform(deformForce,midRight);
83
    obj.wave(windDynamic, midRight, windRegion);
57 84
    }
58 85

  
59 86
///////////////////////////////////////////////////////////////////////////////////////////////////
......
64 91

  
65 92
    shearFactor.set2(tanAngle);
66 93
    scaleFactor.set1(1/(float)Math.sqrt(1+tanAngle*tanAngle));
94
    windDynamic.setDuration( wind > 0 ? 100000/wind : Long.MAX_VALUE);
67 95
    }
68 96
  }

Also available in: Unified diff