Revision 2f20ae3a
Added by Leszek Koltunski over 7 years ago
src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldEffectsManager.java | ||
---|---|---|
32 | 32 |
class AroundTheWorldEffectsManager |
33 | 33 |
{ |
34 | 34 |
private int mHeight, mWidth; |
35 |
|
|
36 |
private Static3D shearFactor; |
|
37 |
private Dynamic3D shearDynamic; |
|
38 |
private Static3D scaleFactor; |
|
39 |
private Dynamic3D scaleDynamic; |
|
40 |
private Static3D deformForce; |
|
41 |
private Static5D windFactor11, windFactor12; |
|
42 |
private Dynamic5D windDynamic1; |
|
43 |
private Static5D windFactor21, windFactor22; |
|
44 |
private Dynamic5D windDynamic2; |
|
45 |
private Static5D windFactor31, windFactor32; |
|
46 |
private Dynamic5D windDynamic3; |
|
35 |
private float mBlackness, mAsianness; |
|
47 | 36 |
|
48 | 37 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
49 | 38 |
|
50 |
AroundTheWorldEffectsManager(DistortedObject obj)
|
|
39 |
AroundTheWorldEffectsManager() |
|
51 | 40 |
{ |
52 |
mHeight = obj.getHeight(); |
|
53 |
mWidth = obj.getWidth(); |
|
54 |
|
|
55 |
shearFactor = new Static3D(0,0,0); |
|
56 |
shearDynamic= new Dynamic3D(); |
|
57 |
shearDynamic.add(shearFactor); |
|
58 |
|
|
59 |
scaleFactor = new Static3D(1,1,1); |
|
60 |
scaleDynamic= new Dynamic3D(); |
|
61 |
scaleDynamic.add(scaleFactor); |
|
62 |
|
|
63 |
deformForce = new Static3D(mWidth/3,0,0); |
|
64 |
|
|
65 |
windFactor11 = new Static5D(mHeight/10,mHeight/5, 180, 0, 90); |
|
66 |
windFactor12 = new Static5D(mHeight/10,mHeight/5,-180, 0, 90); |
|
67 |
windDynamic1 = new Dynamic5D(1000,0.0f); |
|
68 |
windDynamic1.add(windFactor11); |
|
69 |
windDynamic1.add(windFactor12); |
|
70 |
windDynamic1.setMode(Dynamic.MODE_JUMP); |
|
71 |
windDynamic1.setAccessMode(Dynamic.ACCESS_SEQUENTIAL); |
|
41 |
mHeight = 0; |
|
42 |
mWidth = 0; |
|
43 |
mBlackness = 0; |
|
44 |
mAsianness = 0; |
|
45 |
} |
|
72 | 46 |
|
73 |
windFactor21 = new Static5D(mHeight/10,mHeight/5,-180, 90, 10); |
|
74 |
windFactor22 = new Static5D(mHeight/10,mHeight/5,+180, 90, 10); |
|
75 |
windDynamic2 = new Dynamic5D(1000,0.0f); |
|
76 |
windDynamic2.add(windFactor21); |
|
77 |
windDynamic2.add(windFactor22); |
|
78 |
windDynamic2.setMode(Dynamic.MODE_JUMP); |
|
79 |
windDynamic2.setAccessMode(Dynamic.ACCESS_SEQUENTIAL); |
|
47 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
80 | 48 |
|
81 |
windFactor31 = new Static5D(mHeight/10,mHeight/10,-180, 90, 90); |
|
82 |
windFactor32 = new Static5D(mHeight/10,mHeight/10,+180, 90, 90); |
|
83 |
windDynamic3 = new Dynamic5D(1000,0.0f); |
|
84 |
windDynamic3.add(windFactor31); |
|
85 |
windDynamic3.add(windFactor32); |
|
86 |
windDynamic3.setMode(Dynamic.MODE_JUMP); |
|
87 |
windDynamic3.setAccessMode(Dynamic.ACCESS_SEQUENTIAL); |
|
49 |
void setSize(int width, int height) |
|
50 |
{ |
|
51 |
mWidth = width; |
|
52 |
mHeight= height; |
|
88 | 53 |
} |
89 | 54 |
|
90 | 55 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
91 | 56 |
|
92 |
synchronized void apply(DistortedObject obj, int wind)
|
|
57 |
synchronized void apply(DistortedObject obj) |
|
93 | 58 |
{ |
94 |
Static3D midLeft = new Static3D(0,mHeight/2,0); |
|
95 |
Static3D midRight = new Static3D(mWidth,mHeight/2,0); |
|
96 |
Static4D windRegion = new Static4D(0,0,mWidth,mHeight); |
|
97 |
|
|
98 |
setWind(wind); |
|
59 |
setRace(mBlackness, mAsianness); |
|
99 | 60 |
|
100 |
obj.shear(shearDynamic,midLeft); |
|
101 |
obj.scale(scaleDynamic); |
|
102 |
obj.deform(deformForce,midRight); |
|
103 |
obj.wave(windDynamic1, midRight, windRegion); |
|
104 |
obj.wave(windDynamic2, midRight, windRegion); |
|
105 |
obj.wave(windDynamic3, midRight, windRegion); |
|
61 |
// TODO |
|
106 | 62 |
} |
107 | 63 |
|
108 | 64 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
109 | 65 |
|
110 |
synchronized void setWind(int wind)
|
|
66 |
synchronized void setRace(float blackness, float asianness)
|
|
111 | 67 |
{ |
112 |
float tanAngle = (wind-50)/50.0f; |
|
113 |
|
|
114 |
shearFactor.set2(tanAngle); |
|
115 |
scaleFactor.set1(1/(float)Math.sqrt(1+tanAngle*tanAngle)); |
|
116 |
windDynamic1.setDuration( wind > 0 ? 100000/wind : Long.MAX_VALUE); |
|
117 |
windDynamic2.setDuration( wind > 0 ? 80000/wind : Long.MAX_VALUE); |
|
118 |
windDynamic3.setDuration( wind > 0 ? 100000/wind : Long.MAX_VALUE); |
|
119 |
|
|
120 |
float waveA = (mHeight/(20.0f-0.15f*wind)); |
|
121 |
windFactor21.set1(waveA); |
|
122 |
windFactor22.set1(waveA); |
|
68 |
mBlackness = blackness; |
|
69 |
mAsianness = asianness; |
|
123 | 70 |
|
124 |
float waveB = (mHeight/(wind+5.0f)); |
|
125 |
windFactor31.set1(waveB); |
|
126 |
windFactor32.set1(waveB); |
|
71 |
android.util.Log.e("manager", "blackness="+blackness+" asianness="+asianness); |
|
72 |
// TODO |
|
127 | 73 |
} |
128 | 74 |
} |
Also available in: Unified diff
Around the World: setRace