Revision 7589635e
Added by Leszek Koltunski almost 8 years ago
src/main/java/org/distorted/examples/deform/DeformRenderer.java | ||
---|---|---|
25 | 25 |
import org.distorted.library.Distorted; |
26 | 26 |
import org.distorted.library.DistortedBitmap; |
27 | 27 |
import org.distorted.library.EffectTypes; |
28 |
import org.distorted.library.type.Interpolator2D;
|
|
29 |
import org.distorted.library.type.Float3D;
|
|
30 |
import org.distorted.library.type.Float4D;
|
|
28 |
import org.distorted.library.type.Dynamic3D;
|
|
29 |
import org.distorted.library.type.Static3D;
|
|
30 |
import org.distorted.library.type.Static4D;
|
|
31 | 31 |
|
32 | 32 |
import android.graphics.Bitmap; |
33 | 33 |
import android.graphics.Canvas; |
... | ... | |
51 | 51 |
private GLSurfaceView mView; |
52 | 52 |
private DistortedBitmap fps; |
53 | 53 |
private DistortedBitmap stretch; |
54 |
private Float3D touchPoint; |
|
55 |
private static Interpolator2D di; |
|
56 |
private static Float3D[] v; |
|
57 |
private static Float4D dr; |
|
54 |
private Static3D touchPoint; |
|
55 |
private static Dynamic3D mReleasedDynamic; |
|
56 |
private static Dynamic3D mMovingDynamic; |
|
57 |
private static Static3D[] v; |
|
58 |
private static Static4D dr; |
|
58 | 59 |
private Canvas fpsCanvas; |
59 | 60 |
private Bitmap fpsBitmap, stretchBitmap; |
60 | 61 |
private int scrHeight, scrWidth; |
... | ... | |
75 | 76 |
{ |
76 | 77 |
mView = view; |
77 | 78 |
|
78 |
dr = new Float4D(0,0,0,0);
|
|
79 |
dr = new Static4D(0,0,0,0);
|
|
79 | 80 |
|
80 |
di = new Interpolator2D(); |
|
81 |
di.setMode(Interpolator2D.MODE_PATH); |
|
82 |
di.setCount(0.5f); |
|
83 |
di.setDuration(NUM_VECTORS*500); |
|
84 |
|
|
85 |
v = new Float3D[NUM_VECTORS]; |
|
86 |
|
|
81 |
mReleasedDynamic = new Dynamic3D(); |
|
82 |
mReleasedDynamic.setMode(Dynamic3D.MODE_PATH); |
|
83 |
mReleasedDynamic.setCount(0.5f); |
|
84 |
mReleasedDynamic.setDuration(NUM_VECTORS*500); |
|
85 |
|
|
86 |
mMovingDynamic = new Dynamic3D(); |
|
87 |
mMovingDynamic.setMode(Dynamic3D.MODE_PATH); |
|
88 |
mMovingDynamic.setCount(0.5f); |
|
89 |
mMovingDynamic.setDuration(0); |
|
90 |
|
|
91 |
v = new Static3D[NUM_VECTORS]; |
|
92 |
|
|
87 | 93 |
for(int i=0; i<NUM_VECTORS; i++) |
88 | 94 |
{ |
89 |
v[i] = new Float3D(0,0,0);
|
|
90 |
di.add(v[i]);
|
|
95 |
v[i] = new Static3D(0,0,0);
|
|
96 |
mReleasedDynamic.add(v[i]);
|
|
91 | 97 |
} |
92 |
|
|
98 |
|
|
99 |
mMovingDynamic.add(v[0]); |
|
100 |
|
|
93 | 101 |
durations = new long[NUMFRAMES+1]; |
94 | 102 |
currDuration = 0; |
95 | 103 |
|
... | ... | |
154 | 162 |
if( bitmapCreated==false ) |
155 | 163 |
{ |
156 | 164 |
createBitmap(scrWidth/2,scrHeight/2); |
157 |
stretch.move(scrWidth/4,scrHeight/4,0);
|
|
158 |
fps.move(5,5,0);
|
|
165 |
stretch.move( new Static3D(scrWidth/4,scrHeight/4,0) );
|
|
166 |
fps.move( new Static3D(5,5,0) );
|
|
159 | 167 |
bitmapCreated=true; |
160 | 168 |
} |
161 | 169 |
else |
... | ... | |
208 | 216 |
stretchCanvas.drawRect( 0, h *i/NUMLINES -1, w , h*i/NUMLINES + 1, mPaint); |
209 | 217 |
} |
210 | 218 |
|
211 |
touchPoint= new Float3D(0,0,0);
|
|
219 |
touchPoint= new Static3D(0,0,0);
|
|
212 | 220 |
|
213 | 221 |
fps = new DistortedBitmap( fpsW, fpsH, 2); |
214 | 222 |
fpsBitmap = Bitmap.createBitmap(fpsW,fpsH, Bitmap.Config.ARGB_8888); |
... | ... | |
244 | 252 |
break; |
245 | 253 |
case MODE_DEFORM : stretch.deform( v[0], touchPoint); |
246 | 254 |
break; |
247 |
case MODE_SHEAR : shearID = stretch.shear(touchPoint,v[0]);
|
|
255 |
case MODE_SHEAR : shearID = stretch.shear(touchPoint, mMovingDynamic);
|
|
248 | 256 |
break; |
249 | 257 |
} |
250 | 258 |
} |
... | ... | |
283 | 291 |
|
284 | 292 |
switch(mMode) |
285 | 293 |
{ |
286 |
case MODE_DISTORT: stretch.distort(di, dr, touchPoint);
|
|
294 |
case MODE_DISTORT: stretch.distort( mReleasedDynamic, dr, touchPoint);
|
|
287 | 295 |
break; |
288 |
case MODE_DEFORM : stretch.deform( di, touchPoint);
|
|
296 |
case MODE_DEFORM : stretch.deform( mReleasedDynamic, touchPoint);
|
|
289 | 297 |
break; |
290 |
case MODE_SHEAR : shearID = stretch.shear(touchPoint,di);
|
|
298 |
case MODE_SHEAR : shearID = stretch.shear(touchPoint,mReleasedDynamic);
|
|
291 | 299 |
break; |
292 | 300 |
} |
293 | 301 |
} |
Also available in: Unified diff
Major push towards simplifying DistortedObject's public API.
All MATRIX effects are using the new API - the 'DataND' marker interfaces.