Project

General

Profile

« Previous | Next » 

Revision 568b29d8

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/library/EffectQueueMatrix.java
23 23
import android.opengl.Matrix;
24 24

  
25 25
import org.distorted.library.message.EffectMessage;
26
import org.distorted.library.type.Float3D;
27
import org.distorted.library.type.Interpolator;
28
import org.distorted.library.type.Interpolator1D;
29
import org.distorted.library.type.Interpolator3D;
26
import org.distorted.library.type.Data1D;
27
import org.distorted.library.type.Data3D;
28
import org.distorted.library.type.Data4D;
29
import org.distorted.library.type.Dynamic1D;
30
import org.distorted.library.type.Dynamic3D;
31
import org.distorted.library.type.Dynamic4D;
32
import org.distorted.library.type.DynamicQuat;
33
import org.distorted.library.type.Static1D;
34
import org.distorted.library.type.Static3D;
35
import org.distorted.library.type.Dynamic;
36
import org.distorted.library.type.Static4D;
30 37

  
31 38
///////////////////////////////////////////////////////////////////////////////////////////////////
32 39

  
......
160 167
        x = mUniforms[NUM_UNIFORMS*i  ];
161 168
        y = mUniforms[NUM_UNIFORMS*i+1];
162 169
        z = mUniforms[NUM_UNIFORMS*i+2];
163
     
170

  
164 171
        Matrix.translateM(viewMatrix, 0, x,-y, z); 
165 172
        Matrix.rotateM( viewMatrix, 0, mUniforms[NUM_UNIFORMS*i+3], mUniforms[NUM_UNIFORMS*i+4], mUniforms[NUM_UNIFORMS*i+5], mUniforms[NUM_UNIFORMS*i+6]);  
166 173
        Matrix.translateM(viewMatrix, 0,-x, y,-z);  
......
244 251
    }
245 252

  
246 253
///////////////////////////////////////////////////////////////////////////////////////////////////
254
// move, scale
247 255

  
248
  synchronized long add(EffectNames eln, Interpolator i)
256
  synchronized long add(EffectNames eln, Data3D vector)
249 257
    {
250 258
    if( mMax[INDEX]>mNumEffects )
251 259
      {
252 260
      mInterP[mNumEffects] = null;
253
      mInterI[mNumEffects] = i;
261

  
262
           if( vector instanceof Dynamic3D) mInterI[mNumEffects] = (Dynamic3D)vector;
263
      else if( vector instanceof Static3D )
264
        {
265
        mInterI[mNumEffects] = null;
266
        mUniforms[NUM_UNIFORMS*mNumEffects+3] = ((Static3D)vector).getX();
267
        mUniforms[NUM_UNIFORMS*mNumEffects+4] = ((Static3D)vector).getY();
268
        mUniforms[NUM_UNIFORMS*mNumEffects+5] = ((Static3D)vector).getZ();
269
        }
270
      else return -1;
254 271

  
255 272
      return addBase(eln);
256 273
      }
......
259 276
    }
260 277

  
261 278
///////////////////////////////////////////////////////////////////////////////////////////////////
262
  
263
  synchronized long add(EffectNames eln, Interpolator3D p, Interpolator i)
264
    {
265
    if( mMax[INDEX]>mNumEffects )
266
      {
267
      mInterP[mNumEffects] = p;
268
      mInterI[mNumEffects] = i;
269
      
270
      return addBase(eln);
271
      }
272
      
273
    return -1;
274
    }
279
// rotate - static axis
275 280

  
276
///////////////////////////////////////////////////////////////////////////////////////////////////
277
  
278
  synchronized long add(EffectNames eln, Float3D p, Interpolator i)
281
  synchronized long add(EffectNames eln, Data3D center, Data1D angle, Static3D axis)
279 282
    {
280 283
    if( mMax[INDEX]>mNumEffects )
281 284
      {
282
      mInterP[mNumEffects] = null;
283
      mInterI[mNumEffects] = i;
284
      
285
      mUniforms[NUM_UNIFORMS*mNumEffects  ] = p.getX();
286
      mUniforms[NUM_UNIFORMS*mNumEffects+1] = p.getY();
287
      mUniforms[NUM_UNIFORMS*mNumEffects+2] = p.getZ();
288
            
285
           if( center instanceof Dynamic3D) mInterP[mNumEffects] = (Dynamic3D)center;
286
      else if( center instanceof Static3D )
287
        {
288
        mInterP[mNumEffects] = null;
289
        mUniforms[NUM_UNIFORMS*mNumEffects  ] = ((Static3D)center).getX();
290
        mUniforms[NUM_UNIFORMS*mNumEffects+1] = ((Static3D)center).getY();
291
        mUniforms[NUM_UNIFORMS*mNumEffects+2] = ((Static3D)center).getZ();
292
        }
293
      else return -1;
294

  
295
           if( angle instanceof Dynamic1D) mInterI[mNumEffects] = (Dynamic1D)angle;
296
      else if( angle instanceof Static1D)
297
        {
298
        mInterI[mNumEffects] = null;
299
        mUniforms[NUM_UNIFORMS*mNumEffects+3] = ((Static1D)angle).getX();
300
        }
301
      else return -1;
302

  
303
      mUniforms[NUM_UNIFORMS*mNumEffects+4] = axis.getX();
304
      mUniforms[NUM_UNIFORMS*mNumEffects+5] = axis.getY();
305
      mUniforms[NUM_UNIFORMS*mNumEffects+6] = axis.getZ();
306

  
289 307
      return addBase(eln);
290 308
      }
291 309
      
......
293 311
    }
294 312

  
295 313
///////////////////////////////////////////////////////////////////////////////////////////////////
296
  
297
  synchronized long add(EffectNames eln, Float3D p, Interpolator1D i, float aX, float aY, float aZ)
314
// quaternion or rotate - dynamic axis
315

  
316
  synchronized long add(EffectNames eln, Data3D center, Data4D data)
298 317
    {
299 318
    if( mMax[INDEX]>mNumEffects )
300 319
      {
301
      mInterP[mNumEffects] = null;
302
      mInterI[mNumEffects] = i;
303
      
304
      mUniforms[NUM_UNIFORMS*mNumEffects  ] = p.getX();
305
      mUniforms[NUM_UNIFORMS*mNumEffects+1] = p.getY();
306
      mUniforms[NUM_UNIFORMS*mNumEffects+2] = p.getZ();
307
      
308
      mUniforms[NUM_UNIFORMS*mNumEffects+4] = aX;
309
      mUniforms[NUM_UNIFORMS*mNumEffects+5] = aY;  
310
      mUniforms[NUM_UNIFORMS*mNumEffects+6] = aZ;  
311
      
320
           if( center instanceof Dynamic3D) mInterP[mNumEffects] = (Dynamic3D)center;
321
      else if( center instanceof Static3D )
322
        {
323
        mInterP[mNumEffects] = null;
324
        mUniforms[NUM_UNIFORMS*mNumEffects  ] = ((Static3D)center).getX();
325
        mUniforms[NUM_UNIFORMS*mNumEffects+1] = ((Static3D)center).getY();
326
        mUniforms[NUM_UNIFORMS*mNumEffects+2] = ((Static3D)center).getZ();
327
        }
328
      else return -1;
329

  
330
           if( data instanceof Dynamic4D  ) mInterI[mNumEffects] = (Dynamic4D)data;
331
      else if( data instanceof DynamicQuat) mInterI[mNumEffects] = (DynamicQuat)data;
332
      else if( data instanceof Static4D   )
333
        {
334
        mInterI[mNumEffects] = null;
335
        mUniforms[NUM_UNIFORMS*mNumEffects+3] = ((Static4D)data).getX();
336
        mUniforms[NUM_UNIFORMS*mNumEffects+4] = ((Static4D)data).getY();
337
        mUniforms[NUM_UNIFORMS*mNumEffects+5] = ((Static4D)data).getZ();
338
        mUniforms[NUM_UNIFORMS*mNumEffects+6] = ((Static4D)data).getW();
339
        }
340
      else return -1;
341

  
312 342
      return addBase(eln);
313 343
      }
314
      
344

  
315 345
    return -1;
316 346
    }
317 347

  
318 348
///////////////////////////////////////////////////////////////////////////////////////////////////
319
  
320
  synchronized long add(EffectNames eln, Interpolator3D p, Interpolator1D i, float aX, float aY, float aZ)
349
// shear
350

  
351
  synchronized long add(EffectNames eln, Data3D center, Data3D shear)
321 352
    {
322 353
    if( mMax[INDEX]>mNumEffects )
323 354
      {
324
      mInterP[mNumEffects] = p;
325
      mInterI[mNumEffects] = i;
326
      
327
      mUniforms[NUM_UNIFORMS*mNumEffects+4] = aX;
328
      mUniforms[NUM_UNIFORMS*mNumEffects+5] = aY;  
329
      mUniforms[NUM_UNIFORMS*mNumEffects+6] = aZ;  
330
      
355
           if( center instanceof Dynamic3D) mInterP[mNumEffects] = (Dynamic3D)center;
356
      else if( center instanceof Static3D )
357
        {
358
        mInterP[mNumEffects] = null;
359
        mUniforms[NUM_UNIFORMS*mNumEffects  ] = ((Static3D)center).getX();
360
        mUniforms[NUM_UNIFORMS*mNumEffects+1] = ((Static3D)center).getY();
361
        mUniforms[NUM_UNIFORMS*mNumEffects+2] = ((Static3D)center).getZ();
362
        }
363
      else return -1;
364

  
365
           if( shear instanceof Dynamic3D) mInterI[mNumEffects] = (Dynamic3D)shear;
366
      else if( shear instanceof Static3D )
367
        {
368
        mInterI[mNumEffects] = null;
369
        mUniforms[NUM_UNIFORMS*mNumEffects+3] = ((Static3D)shear).getX();
370
        mUniforms[NUM_UNIFORMS*mNumEffects+4] = ((Static3D)shear).getY();
371
        mUniforms[NUM_UNIFORMS*mNumEffects+5] = ((Static3D)shear).getZ();
372
        }
373
      else return -1;
374

  
331 375
      return addBase(eln);
332 376
      }
333 377
      
334 378
    return -1;
335 379
    }
336
  
337
///////////////////////////////////////////////////////////////////////////////////////////////////
338
  
339
  synchronized long add(EffectNames eln, Float3D p, float aA, float aX, float aY, float aZ)
340
    {
341
    if( mMax[INDEX]>mNumEffects )
342
      {
343
      mInterP[mNumEffects] = null; 
344
      mInterI[mNumEffects] = null;
345
      
346
      mUniforms[NUM_UNIFORMS*mNumEffects  ] = p.getX();
347
      mUniforms[NUM_UNIFORMS*mNumEffects+1] = p.getY();
348
      mUniforms[NUM_UNIFORMS*mNumEffects+2] = p.getZ();
349
      mUniforms[NUM_UNIFORMS*mNumEffects+3] = aA;  
350
      mUniforms[NUM_UNIFORMS*mNumEffects+4] = aX;
351
      mUniforms[NUM_UNIFORMS*mNumEffects+5] = aY;  
352
      mUniforms[NUM_UNIFORMS*mNumEffects+6] = aZ;  
353
      
354
      return addBase(eln);   
355
      }
356
      
357
    return -1;
358
    }
359

  
360
///////////////////////////////////////////////////////////////////////////////////////////////////
361 380
  }

Also available in: Unified diff