Project

General

Profile

« Previous | Next » 

Revision 7589635e

Added by Leszek Koltunski almost 8 years ago

Major push towards simplifying DistortedObject's public API.
All MATRIX effects are using the new API - the 'DataND' marker interfaces.

View differences:

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