Revision 334c13fa
Added by Leszek Koltunski over 7 years ago
src/main/java/org/distorted/examples/movingeffects/MovingEffectsSurfaceView.java | ||
---|---|---|
30 | 30 |
|
31 | 31 |
import org.distorted.library.EffectTypes; |
32 | 32 |
import org.distorted.library.type.Dynamic2D; |
33 |
import org.distorted.library.type.Dynamic3D; |
|
33 | 34 |
import org.distorted.library.type.Dynamic4D; |
34 | 35 |
import org.distorted.library.type.Static1D; |
35 | 36 |
import org.distorted.library.type.Static2D; |
... | ... | |
52 | 53 |
|
53 | 54 |
private static final Object lock = new Object(); |
54 | 55 |
|
55 |
private Dynamic2D di2D;
|
|
56 |
private Dynamic3D di3D;
|
|
56 | 57 |
private Static4D dr; |
57 | 58 |
private Dynamic4D mRegion; |
58 | 59 |
|
... | ... | |
75 | 76 |
mPaint.setStyle(Style.FILL); |
76 | 77 |
moving = -1; |
77 | 78 |
|
78 |
di2D = new Dynamic2D(LOOP_TIME,0.0f);
|
|
79 |
di3D = new Dynamic3D(LOOP_TIME,0.0f);
|
|
79 | 80 |
mRegion = new Dynamic4D(LOOP_TIME,0.0f); |
80 | 81 |
|
81 | 82 |
if(!isInEditMode()) |
... | ... | |
125 | 126 |
{ |
126 | 127 |
MovingEffectsRenderer.mBackground.abortEffects(EffectTypes.VERTEX); |
127 | 128 |
MovingEffectsRenderer.mBackground.abortEffects(EffectTypes.FRAGMENT); |
128 |
MovingEffectsRenderer.mBackground.distort( new Static3D(0,0,mMax/10) , di2D, dr);
|
|
129 |
MovingEffectsRenderer.mBackground.distort( new Static3D(0,0,mMax/10) , di3D, dr);
|
|
129 | 130 |
mCurrEffect = EFFECT_BUBBLE; |
130 | 131 |
} |
131 | 132 |
} |
... | ... | |
140 | 141 |
{ |
141 | 142 |
MovingEffectsRenderer.mBackground.abortEffects(EffectTypes.VERTEX); |
142 | 143 |
MovingEffectsRenderer.mBackground.abortEffects(EffectTypes.FRAGMENT); |
143 |
MovingEffectsRenderer.mBackground.sink(new Static1D(10), di2D, dr);
|
|
144 |
MovingEffectsRenderer.mBackground.sink(new Static1D(10), di3D, dr);
|
|
144 | 145 |
mCurrEffect = EFFECT_SINK; |
145 | 146 |
} |
146 | 147 |
} |
... | ... | |
185 | 186 |
{ |
186 | 187 |
MovingEffectsRenderer.mBackground.abortEffects(EffectTypes.VERTEX); |
187 | 188 |
MovingEffectsRenderer.mBackground.abortEffects(EffectTypes.FRAGMENT); |
188 |
MovingEffectsRenderer.mBackground.swirl( new Static1D(30), di2D, dr);
|
|
189 |
MovingEffectsRenderer.mBackground.swirl( new Static1D(30), di3D, dr);
|
|
189 | 190 |
mCurrEffect = EFFECT_SWIRL; |
190 | 191 |
} |
191 | 192 |
} |
... | ... | |
198 | 199 |
{ |
199 | 200 |
MovingEffectsRenderer.mBackground.abortEffects(EffectTypes.VERTEX); |
200 | 201 |
MovingEffectsRenderer.mBackground.abortEffects(EffectTypes.FRAGMENT); |
201 |
di2D.removeAll();
|
|
202 |
di3D.removeAll();
|
|
202 | 203 |
mRegion.removeAll(); |
203 | 204 |
mCurrEffect = EFFECT_POINTS; |
204 | 205 |
} |
... | ... | |
210 | 211 |
{ |
211 | 212 |
synchronized(lock) |
212 | 213 |
{ |
213 |
int len = di2D.getNumPoints();
|
|
214 |
int len = di3D.getNumPoints();
|
|
214 | 215 |
|
215 |
float[] drawCoord = new float[2];
|
|
216 |
Static2D cu;
|
|
216 |
float[] drawCoord = new float[3];
|
|
217 |
Static3D cu;
|
|
217 | 218 |
int lit = mTime> 0 ? (int)((float)(time-mTime)*NUM_POINTS/LOOP_TIME) : 0; |
218 | 219 |
|
219 | 220 |
if( len>=2 ) |
... | ... | |
226 | 227 |
: 0xff - (lit+NUM_POINTS-i)*0xff/(NUM_POINTS-1); |
227 | 228 |
|
228 | 229 |
mPaint.setColor( 0xffffff + ((color&0xff)<<24) ); |
229 |
di2D.interpolateMain( drawCoord, 0, (long)(i*step) );
|
|
230 |
di3D.interpolateMain( drawCoord, 0, (long)(i*step) );
|
|
230 | 231 |
c.drawCircle(drawCoord[0], drawCoord[1], mSize1, mPaint ); |
231 | 232 |
} |
232 | 233 |
} |
... | ... | |
235 | 236 |
|
236 | 237 |
for(int curr=0; curr<len; curr++) |
237 | 238 |
{ |
238 |
cu = di2D.getPoint(curr);
|
|
239 |
cu = di3D.getPoint(curr);
|
|
239 | 240 |
c.drawCircle(cu.getX(), cu.getY(), mSize2, mPaint); |
240 | 241 |
} |
241 | 242 |
|
... | ... | |
258 | 259 |
|
259 | 260 |
float gx, gy; |
260 | 261 |
Static2D dv; |
261 |
int len = di2D.getNumPoints();
|
|
262 |
int len = di3D.getNumPoints();
|
|
262 | 263 |
|
263 | 264 |
for(int g=0; g<len; g++) |
264 | 265 |
{ |
265 |
dv = di2D.getPoint(g);
|
|
266 |
dv = di3D.getPoint(g);
|
|
266 | 267 |
gx = dv.getX(); |
267 | 268 |
gy = dv.getY(); |
268 | 269 |
|
... | ... | |
276 | 277 |
{ |
277 | 278 |
synchronized(lock) |
278 | 279 |
{ |
279 |
di2D.add(new Static2D(xDown,yDown));
|
|
280 |
di3D.add(new Static3D(xDown,yDown,0));
|
|
280 | 281 |
mRegion.add(new Static4D(xDown,yDown,mSizeR,mSizeR)); |
281 | 282 |
} |
282 | 283 |
} |
... | ... | |
286 | 287 |
xDown = (int)event.getX(); |
287 | 288 |
yDown = (int)event.getY(); |
288 | 289 |
|
289 |
di2D.setPoint(moving, xDown, yDown);
|
|
290 |
di3D.setPoint(moving, xDown, yDown, 0);
|
|
290 | 291 |
mRegion.setPoint(moving, xDown, yDown, mSizeR, mSizeR); |
291 | 292 |
} |
292 | 293 |
break; |
Also available in: Unified diff
Make the effect Center be always 3D.