Project

General

Profile

« Previous | Next » 

Revision 568b29d8

Added by Leszek Koltunski over 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/DistortedObject.java
24 24
import android.opengl.GLUtils;
25 25

  
26 26
import org.distorted.library.message.EffectListener;
27
import org.distorted.library.type.Float1D;
28
import org.distorted.library.type.Float2D;
29
import org.distorted.library.type.Float3D;
30
import org.distorted.library.type.Float4D;
31
import org.distorted.library.type.Interpolator;
32
import org.distorted.library.type.Interpolator1D;
33
import org.distorted.library.type.Interpolator2D;
34
import org.distorted.library.type.Interpolator3D;
35
import org.distorted.library.type.Interpolator4D;
36
import org.distorted.library.type.InterpolatorQuat;
27
import org.distorted.library.type.Data1D;
28
import org.distorted.library.type.Data3D;
29
import org.distorted.library.type.Data4D;
30
import org.distorted.library.type.Dynamic;
31
import org.distorted.library.type.Dynamic1D;
32
import org.distorted.library.type.Dynamic2D;
33
import org.distorted.library.type.Dynamic3D;
34
import org.distorted.library.type.Dynamic4D;
35
import org.distorted.library.type.Static1D;
36
import org.distorted.library.type.Static2D;
37
import org.distorted.library.type.Static3D;
38
import org.distorted.library.type.Static4D;
39
import org.distorted.library.type.DynamicQuat;
37 40

  
38 41
///////////////////////////////////////////////////////////////////////////////////////////////////
39 42
/**
......
41 44
 */
42 45
public abstract class DistortedObject 
43 46
{
44
    private static final Float2D mZero2D = new Float2D(0,0);
45
    private static final Float3D mZero3D = new Float3D(0,0,0);
47
    private static final Static2D mZero2D = new Static2D(0,0);
48
    private static final Static3D mZero3D = new Static3D(0,0,0);
46 49

  
47 50
    private static float[] mViewMatrix   = new float[16];
48 51
   
......
465 468
///////////////////////////////////////////////////////////////////////////////////////////////////
466 469
// Matrix-based effects
467 470
///////////////////////////////////////////////////////////////////////////////////////////////////
468
// MOVE
469 471
/**
470
 * Moves the Object by a vector that changes in time as interpolated by the Interpolator.
472
 * Moves the Object by a vector that changes in time as interpolated by the Dynamic.
471 473
 * 
472
 * @param vector 3-dimensional Interpolator which at any given time will return a Float3D
474
 * @param vector 3-dimensional Data which at any given time will return a Static3D
473 475
 *               representing the current coordinates of the vector we want to move the Object with.
474 476
 * @return       ID of the effect added, or -1 if we failed to add one.
475 477
 */
476
  public long move(Interpolator3D vector)
478
  public long move(Data3D vector)
477 479
    {   
478 480
    return mM.add(EffectNames.MOVE,vector);
479 481
    }
480 482

  
481 483
///////////////////////////////////////////////////////////////////////////////////////////////////
482 484
/**
483
 * Moves the Object by a vector that smoothly changes from (0,0,0) to (x,y,z).
484
 *  
485
 * @param x        The x-coordinate of the vector we want to move the Object with. 
486
 * @param y        The y-coordinate of the vector we want to move the Object with.
487
 * @param z        The z-coordinate of the vector we want to move the Object with.
488
 * @param duration The time, in milliseconds, it takes to complete the movement.
489
 * @return         ID of the effect added, or -1 if we failed to add one. 
490
 */
491
  public long move(float x,float y,float z, int duration)
492
    {   
493
    Interpolator3D di = new Interpolator3D();  
494
    di.setCount(0.5f);
495
    di.setDuration(duration);
496
    di.add(new Float3D(0.0f,0.0f,0.0f));                             
497
    di.add(new Float3D(x,y,z));                        
498

  
499
    return mM.add(EffectNames.MOVE,di);
500
    }
501

  
502
///////////////////////////////////////////////////////////////////////////////////////////////////
503
/**
504
 * Moves the Object by vector (x,y,z) immediately.
505
 *   
506
 * @param x The x-coordinate of the vector we want to move the Object with. 
507
 * @param y The y-coordinate of the vector we want to move the Object with.
508
 * @param z The z-coordinate of the vector we want to move the Object with.
509
 * @return  ID of the effect added, or -1 if we failed to add one. 
510
 */
511
  public long move(float x,float y,float z)
512
    {   
513
    return mM.add(EffectNames.MOVE,mZero3D,x,y,z,0.0f);
514
    }
515

  
516
///////////////////////////////////////////////////////////////////////////////////////////////////
517
// SCALE
518
/**
519
 * Scales the Object by factors that change in time as returned by the Interpolator.
485
 * Scales the Object by factors that change in time as returned by the Dynamic.
520 486
 * 
521
 * @param scale 3-dimensional Interpolator which at any given time returns a Float3D
487
 * @param scale 3-dimensional Dynamic which at any given time returns a Static3D
522 488
 *              representing the current x- , y- and z- scale factors.
523 489
 * @return      ID of the effect added, or -1 if we failed to add one.
524 490
 */
525
  public long scale(Interpolator3D scale)
491
  public long scale(Data3D scale)
526 492
    {   
527 493
    return mM.add(EffectNames.SCALE,scale);
528 494
    }
529 495

  
530 496
///////////////////////////////////////////////////////////////////////////////////////////////////
531 497
/**
532
 * Scales the Object by a factor that smoothly changes from (1,1,1) at time 0 to (xscale,yscale,zscale)
533
 * after 'duration' milliseconds. 
534
 *    
535
 * @param xscale   After time 'duration' passes, Object's width will get multiplied by xscale; e.g. if
536
 *                 xscale=2, after 'duration' milliseconds the Object will become twice broader.
537
 * @param yscale   Factor to scale Object's height with.
538
 * @param zscale   Factor to scale Object's depth with.
539
 * @param duration Time, in milliseconds, it takes to interpolate to the full (xscale,yscale,zscale) scaling factors.
540
 * @return         ID of the effect added, or -1 if we failed to add one. 
541
 */
542
  public long scale(float xscale,float yscale,float zscale, int duration)
543
    {   
544
    Interpolator3D di = new Interpolator3D();  
545
    di.setCount(0.5f);
546
    di.setDuration(duration);
547
    di.add(new Float3D(1.0f,1.0f,1.0f));                             
548
    di.add(new Float3D(xscale,yscale,zscale));                        
549

  
550
    return mM.add(EffectNames.SCALE,di);
551
    }
552

  
553
///////////////////////////////////////////////////////////////////////////////////////////////////
554
/**
555
 * Immediately scales the Object's width by (xscale,yscale,zscale).   
556
 *   
557
 * @param xscale Object's width gets multiplied by this factor; e.g. if 
558
 *               xscale=2, the Object immediately becomes twice broader.
559
 * @param yscale factor to scale Object's height with.
560
 * @param zscale factor to scale Object's depth with. 
561
 * @return       ID of the effect added, or -1 if we failed to add one. 
562
 */
563
  public long scale(float xscale,float yscale,float zscale)
564
    {   
565
    return mM.add(EffectNames.SCALE,mZero3D,xscale,yscale,zscale,0.0f);
566
    }
567

  
568
///////////////////////////////////////////////////////////////////////////////////////////////////
569
/**
570
 * Convenience function - scale the Object by the same factor in all 3 dimensions.   
571
 *   
572
 * @param scale all 3 Object's dimensions get multiplied by this factor; e.g. if 
573
 *              scale=2, the Object immediately becomes twice larger.
574
 * @return      ID of the effect added, or -1 if we failed to add one. 
575
 */
576
  public long scale(float scale)
577
    {   
578
    return mM.add(EffectNames.SCALE,mZero3D,scale,scale,scale,0.0f);
579
    }
580
    
581
///////////////////////////////////////////////////////////////////////////////////////////////////
582
// ROTATE
583
/**
584
 * Rotates the Object around a (possibly moving) point, with angle and axis that change in time.
585
 * 
586
 * @param center    3-dimensional Interpolator which at any given time will return the current center
587
 *                  of the rotation
588
 * @param angleAxis 4-dimensional Interpolator which at any given time will return a Float4D
589
 *                  representing the current rotation in the (angle,axisX,axisY,axisY) form.
590
 * @return          ID of the effect added, or -1 if we failed to add one.
591
 */
592
  public long rotate(Interpolator3D center, Interpolator4D angleAxis)
593
    {   
594
    return mM.add(EffectNames.ROTATE, center, angleAxis);
595
    }
596

  
597
///////////////////////////////////////////////////////////////////////////////////////////////////  
598
/**
599
 * Rotates the Object around a static point, with angle and axis that change in time.
600
 * 
601
 * @param center    Center of the rotation
602
 * @param angleAxis 4-dimensional Interpolator which at any given time will return a Float4D
603
 *                  representing the current rotation in the (angle,axisX,axisY,axisY) form.
604
 * @return          ID of the effect added, or -1 if we failed to add one.
605
 */
606
  public long rotate(Float3D center, Interpolator4D angleAxis)
607
    {   
608
    return mM.add(EffectNames.ROTATE, center , angleAxis);
609
    }
610
  
611
///////////////////////////////////////////////////////////////////////////////////////////////////  
612
/**
613
 * Rotates the Object around a static point, with angle that changes in time, around axis 
614
 * (axisX, axisY, axisZ). 
615
 * 
616
 * @param center Center of the rotation
617
 * @param angle  1-dimensional Interpolator which at any given time will return the current rotation
618
 *               angle.
619
 * @param axisX  Rotation vector: x-coordinate
620
 * @param axisY  Rotation vector: y-coordinate
621
 * @param axisZ  Rotation vector: z-coordinate
622
 * @return       ID of the effect added, or -1 if we failed to add one.
623
 */
624
  public long rotate(Float3D center, Interpolator1D angle, float axisX, float axisY, float axisZ)
625
    {   
626
    return mM.add(EffectNames.ROTATE, center , angle, axisX, axisY, axisZ);
627
    }
628
  
629
///////////////////////////////////////////////////////////////////////////////////////////////////
630
/**
631
 * Rotates the Object around a (possibly moving) point, with angle that changes in time.
632
 * Axis of rotation is the vector (0,0,1), i.e. a vector normal to the screen surface.
633
 * 
634
 * @param center 3-dimensional Interpolator which at any given time will return the current center
635
 *               of the rotation.
636
 * @param angle  1-dimensional Interpolator which returns the current rotation angle.
637
 * @return       ID of the effect added, or -1 if we failed to add one.
638
 */
639
  public long rotate(Interpolator3D center, Interpolator1D angle)
640
    {   
641
    return mM.add(EffectNames.ROTATE, center, angle, 0.0f,0.0f,1.0f);
642
    }
643

  
644
///////////////////////////////////////////////////////////////////////////////////////////////////
645
/**
646
 * Rotates the Object around a constant point, with angle that changes in time.  
647
 * Axis of rotation is the vector (0,0,1), i.e. a vector normal to the screen surface.
648
 *   
649
 * @param center   Coordinates of the Point we are rotating around.
650
 * @param angle    Angle that we want to rotate the Object to. Unit: degrees
651
 * @param duration Time, in milliseconds, it takes to complete one rotation from 0 to 'angle' degrees.
652
 * @return         ID of the effect added, or -1 if we failed to add one. 
653
 */
654
  public long rotate(Float3D center, int angle, int duration)
655
    {   
656
    Interpolator1D di = new Interpolator1D();  
657
    di.setCount(0.5f);
658
    di.setDuration(duration);
659
    di.add(new Float1D(    0));
660
    di.add(new Float1D(angle));                        
661

  
662
    return mM.add(EffectNames.ROTATE, center, di, 0.0f,0.0f,1.0f);
663
    }
664

  
665
///////////////////////////////////////////////////////////////////////////////////////////////////
666
/**
667
 * Rotates the Object immediately by 'angle' degrees around point p.   
668
 * Axis of rotation is given by the last 3 floats.
669
 *   
498
 * Rotates the Object by 'angle' degrees around the center.
499
 * Static axis of rotation is given by the last parameter.
500
 *
670 501
 * @param center Coordinates of the Point we are rotating around.
671 502
 * @param angle  Angle that we want to rotate the Object to. Unit: degrees
672
 * @param axisX  Axis of rotation: x-coordinate
673
 * @param axisY  Axis of rotation: y-coordinate
674
 * @param axisZ  Axis of rotation: z-coordinate
503
 * @param axis   Axis of rotation
675 504
 * @return       ID of the effect added, or -1 if we failed to add one.
676 505
 */
677
  public long rotate(Float3D center, float angle, float axisX, float axisY, float axisZ)
678
    {   
679
    return mM.add(EffectNames.ROTATE, center, angle, axisX, axisY, axisZ);
680
    }
681
  
682
///////////////////////////////////////////////////////////////////////////////////////////////////
683
/**
684
 * Rotates the Object immediately by 'angle' degrees around point p.   
685
 *   
686
 * @param center Coordinates of the Point we are rotating around.
687
 * @param angle  The angle that we want to rotate the Object to. Unit: degrees
688
 * @return       ID of the effect added, or -1 if we failed to add one. 
689
 */
690
  public long rotate(Float3D center, int angle)
506
  public long rotate(Data3D center, Data1D angle, Static3D axis)
691 507
    {   
692
    return mM.add(EffectNames.ROTATE, center, angle,0.0f,0.0f,1.0f);
508
    return mM.add(EffectNames.ROTATE, center, angle, axis);
693 509
    }
694 510

  
695 511
///////////////////////////////////////////////////////////////////////////////////////////////////
696
// QUATERNION
697 512
/**
698
 * Rotates the Object immediately by quaternion (qX,qY,qZ,qW).
699
 *   
700
 * @param center Coordinates of the Point we are rotating around.
701
 * @param qX     Quaternion: x-coordinate
702
 * @param qY     Quaternion: y-coordinate
703
 * @param qZ     Quaternion: z-coordinate
704
 * @param qW     Quaternion: w-coordinate
705
 * @return       ID of the effect added, or -1 if we failed to add one.
513
 * Rotates the Object by 'angle' degrees around the center.
514
 * Static axis of rotation is given by the last parameter.
515
 *
516
 * @param center    Coordinates of the Point we are rotating around.
517
 * @param angleaxis Combined 4-tuple representing the (angle,axisX,axisY,axisZ).
518
 * @return          ID of the effect added, or -1 if we failed to add one.
706 519
 */
707
  public long quaternion(Float3D center, float qX, float qY, float qZ, float qW)
708
    {   
709
    return mM.add(EffectNames.QUATERNION,center,qX,qY,qZ,qW);
520
  public long rotate(Data3D center, Data4D angleaxis)
521
    {
522
    return mM.add(EffectNames.ROTATE, center, angleaxis);
710 523
    }
711 524

  
712 525
///////////////////////////////////////////////////////////////////////////////////////////////////
713 526
/**
714
 * Rotates the Object by a quaternion that's at the moment returned by the InterpolatorQuat.
527
 * Rotates the Object by quaternion.
715 528
 *   
716
 * @param center Coordinates of the Point we are rotating around.
717
 * @param quat   Interpolator that's going to, at any given moment, return a quaternion.
718
 * @return       ID of the effect added, or -1 if we failed to add one.
529
 * @param center     Coordinates of the Point we are rotating around.
530
 * @param quaternion The quaternion describing the rotation.
531
 * @return           ID of the effect added, or -1 if we failed to add one.
719 532
 */
720
  public long quaternion(Float3D center, InterpolatorQuat quat)
721
    {   
722
    return mM.add(EffectNames.QUATERNION, center, quat);
533
  public long quaternion(Data3D center, Data4D quaternion)
534
    {
535
    return mM.add(EffectNames.QUATERNION,center,quaternion);
723 536
    }
724 537

  
725 538
///////////////////////////////////////////////////////////////////////////////////////////////////
726 539
/**
727
 * Rotates the Object around a moving point by a quaternion that's at the moment returned by the InterpolatorQuat.
728
 *   
729
 * @param center Interpolator that returns the current center of rotation.
730
 * @param quat   Interpolator that's going to, at any given moment, return a quaternion representing
731
 *               the current rotation.
732
 * @return       ID of the effect added, or -1 if we failed to add one.
733
 */
734
  public long quaternion(Interpolator3D center, InterpolatorQuat quat)
735
    {   
736
    return mM.add(EffectNames.QUATERNION,center,quat);
737
    }
738
  
739
///////////////////////////////////////////////////////////////////////////////////////////////////
740
// SHEAR
741
/**
742
 * Shears the Object. If the Interpolator is 1D, it will shear along the X-axis. 2D Interpolator adds
743
 * shearing along the Y-axis, 3D one along Z axis.
540
 * Shears the Object.
744 541
 *
745 542
 * @param center  Center of shearing, i.e. the point which stays unmoved.
746
 * @param shear   1- 2- or 3D Interpolator which, at any given point, returns the ordered 1-, 2-
747
 *                or 3-tuple of shear factors.
543
 * @param shear   The 3-tuple of shear factors.
748 544
 * @return        ID of the effect added, or -1 if we failed to add one.
749 545
 */
750
  public long shear(Float3D center, Interpolator shear)
546
  public long shear(Data3D center, Data3D shear)
751 547
    {
752 548
    return mM.add(EffectNames.SHEAR, center, shear);
753 549
    }
754 550

  
755
///////////////////////////////////////////////////////////////////////////////////////////////////
756
/**
757
 * Shears the Object in 3D. Order: first X shearing, then Y, then Z.
758
 * 
759
 * @param center Center of shearing, i.e. the point which stays unmoved.
760
 * @param shear  ordered 3-tuple (x-degree, y-degree, z-degree) of shearing (tangent of the angle with
761
 *               which the X,Y and Z axis get slanted) 
762
 * @return       ID of the effect added, or -1 if we failed to add one. 
763
 */
764
  public long shear(Float3D center, Float3D shear)
765
    {
766
    Interpolator3D di = new Interpolator3D(); 
767
    di.setCount(0.5f);
768
    di.setDuration(0);
769
    di.add(new Float3D(0.0f,0.0f,0.0f));              
770
    di.add(shear);
771
        
772
    return mM.add(EffectNames.SHEAR, center, di );
773
    }
774

  
775 551
///////////////////////////////////////////////////////////////////////////////////////////////////
776 552
// Fragment-based effects  
777 553
///////////////////////////////////////////////////////////////////////////////////////////////////
778 554
// MACROBLOCK
779 555
/**
780
 * Creates macroblocks at and around point defined by the Interpolator2D and the Region. 
781
 * Size of the macroblocks at any given time is returned by the Interpolator1D.
556
 * Creates macroblocks at and around point defined by the Dynamic2D and the Region.
557
 * Size of the macroblocks at any given time is returned by the Dynamic1D.
782 558
 * 
783
 * @param size   1-dimensional Interpolator which, at any given time, returns the size of the macroblocks.
559
 * @param size   1-dimensional Dynamic which, at any given time, returns the size of the macroblocks.
784 560
 * @param region Region this Effect is limited to.
785 561
 *               Null here means 'apply the effect to the whole Object'.
786
 * @param center 2-dimensional Interpolator which, at any given time, returns a Float2D representing the
562
 * @param center 2-dimensional Dynamic which, at any given time, returns a Static2D representing the
787 563
 *               current center of the effect.
788 564
 * @return       ID of the effect added, or -1 if we failed to add one. 
789 565
 */
790
  public long macroblock(Interpolator1D size, Float4D region, Interpolator2D center)
566
  public long macroblock(Dynamic1D size, Static4D region, Dynamic2D center)
791 567
    {
792 568
    return mF.add(EffectNames.MACROBLOCK, size, region, center);
793 569
    }
......
795 571
///////////////////////////////////////////////////////////////////////////////////////////////////
796 572
/**
797 573
 * Creates macroblocks at and around point defined by the Point2D and the Region. 
798
 * Size of the macroblocks at any given time is returned by the Interpolator1D.
574
 * Size of the macroblocks at any given time is returned by the Dynamic1D.
799 575
 * <p>
800 576
 * The difference between this and the previous method is that here the center of the Effect stays constant.
801 577
 *    
802
 * @param size   1-dimensional Interpolator which, at any given time, returns the size of the macroblocks.
578
 * @param size   1-dimensional Dynamic which, at any given time, returns the size of the macroblocks.
803 579
 * @param region Region this Effect is limited to. 
804 580
 *               Null here means 'apply the effect to the whole Object'.
805 581
 * @param center Center of the Effect.
806 582
 * @return       ID of the effect added, or -1 if we failed to add one. 
807 583
 */
808
  public long macroblock(Interpolator1D size, Float4D region, Float2D center)
584
  public long macroblock(Dynamic1D size, Static4D region, Static2D center)
809 585
    {
810 586
    return mF.add(EffectNames.MACROBLOCK, size, region, center);
811 587
    }
812 588
  
813 589
///////////////////////////////////////////////////////////////////////////////////////////////////
814 590
/**
815
 * Creates macroblocks at and around point defined by the Interpolator2D and the Region. 
591
 * Creates macroblocks at and around point defined by the Dynamic2D and the Region.
816 592
 * <p>
817 593
 * The macroblocks change in size; at time 0 there are none, and after 'duration/2' milliseconds 
818 594
 * they are of (pixels X pixels) size; after 'duration' milliseconds there are again none (i.e. their
......
821 597
 * @param pixels   Maximum size, in pixels, of the Macroblocks we want to see.
822 598
 * @param region   Region this Effect is limited to. 
823 599
 *                 Null here means 'apply the effect to the whole Object'.
824
 * @param center   2-dimensional Interpolator which, at any given time, returns a Float2D representing the
600
 * @param center   2-dimensional Dynamic which, at any given time, returns a Static2D representing the
825 601
 *                 current center of the effect.
826 602
 * @param duration Time, in milliseconds, it takes to do one full interpolation.
827
 * @param count    Controls how many interpolations we want to do. See {@link Interpolator#setCount(float)}
603
 * @param count    Controls how many interpolations we want to do. See {@link Dynamic#setCount(float)}
828 604
 * @return         ID of the effect added, or -1 if we failed to add one. 
829 605
 */
830
  public long macroblock(int pixels, Float4D region, Interpolator2D center, int duration, float count)
606
  public long macroblock(int pixels, Static4D region, Dynamic2D center, int duration, float count)
831 607
    {
832
    Interpolator1D di = new Interpolator1D();
608
    Dynamic1D di = new Dynamic1D();
833 609
    di.setCount(count);
834 610
    di.setDuration(duration);
835
    di.add(new Float1D(1));                             
836
    di.add(new Float1D(pixels));                        
611
    di.add(new Static1D(1));
612
    di.add(new Static1D(pixels));
837 613

  
838 614
    return mF.add(EffectNames.MACROBLOCK, di, region, center);
839 615
    }
......
853 629
 *                 Null here means 'apply the effect to the whole Object'.
854 630
 * @param center   Center of the Effect.
855 631
 * @param duration Time, in milliseconds, it takes to do one full interpolation.
856
 * @param count    Controls how many interpolations we want to do. See {@link Interpolator#setCount(float)}
632
 * @param count    Controls how many interpolations we want to do. See {@link Dynamic#setCount(float)}
857 633
 * @return         ID of the effect added, or -1 if we failed to add one. 
858 634
 */
859
  public long macroblock(int pixels, Float4D region, Float2D center, int duration, float count)
635
  public long macroblock(int pixels, Static4D region, Static2D center, int duration, float count)
860 636
    {
861
    Interpolator1D di = new Interpolator1D();
637
    Dynamic1D di = new Dynamic1D();
862 638
    di.setCount(count);
863 639
    di.setDuration(duration);
864
    di.add(new Float1D(1));                             
865
    di.add(new Float1D(pixels));                        
640
    di.add(new Static1D(1));
641
    di.add(new Static1D(pixels));
866 642

  
867 643
    return mF.add(EffectNames.MACROBLOCK, di, region, center);
868 644
    }
......
880 656
 *    
881 657
 * @param pixels   Maximum size, in pixels, of the Macroblocks we want to see.
882 658
 * @param duration Time, in milliseconds, it takes to do one full interpolation.
883
 * @param count    Controls how many interpolations we want to do. See {@link Interpolator#setCount(float)}
659
 * @param count    Controls how many interpolations we want to do. See {@link Dynamic#setCount(float)}
884 660
 * @return         ID of the effect added, or -1 if we failed to add one. 
885 661
 */
886 662
  public long macroblock(int pixels, int duration, float count) 
887 663
    {
888
    Interpolator1D di = new Interpolator1D(); 
664
    Dynamic1D di = new Dynamic1D();
889 665
    di.setCount(count);
890 666
    di.setDuration(duration);
891
    di.add(new Float1D(1));                            
892
    di.add(new Float1D(pixels));                        
667
    di.add(new Static1D(1));
668
    di.add(new Static1D(pixels));
893 669
   
894 670
    return mF.add(EffectNames.MACROBLOCK, di, null, mZero2D);
895 671
    }
......
900 676
/**
901 677
 * Makes a certain sub-region of the Object smoothly change all three of its RGB components.
902 678
 *        
903
 * @param blend  1-dimensional Interpolator that returns the level of blend a given pixel will be
679
 * @param blend  1-dimensional Dynamic that returns the level of blend a given pixel will be
904 680
 *               mixed with the next parameter 'color': pixel = (1-level)*pixel + level*color
905 681
 * @param color  Color to mix. (1,0,0) is RED.
906 682
 * @param region Region this Effect is limited to. 
907 683
 *               Null here means 'apply the Effect to the whole Object'.
908
 * @param center 2-dimensional Interpolator which, at any given time, returns a Float2D representing
684
 * @param center 2-dimensional Dynamic which, at any given time, returns a Static2D representing
909 685
 *               the current center of the effect.
910 686
 * @return       ID of the effect added, or -1 if we failed to add one. 
911 687
 */
912
  public long chroma(Interpolator1D blend, Float3D color, Float4D region, Interpolator2D center)
688
  public long chroma(Dynamic1D blend, Static3D color, Static4D region, Dynamic2D center)
913 689
    {
914 690
    return mF.add(EffectNames.CHROMA, blend, color, region, center);
915 691
    }
......
920 696
 * <p>
921 697
 * Here the center of the Effect stays constant.
922 698
 *         
923
 * @param blend  1-dimensional Interpolator that returns the level of blend a given pixel will be
699
 * @param blend  1-dimensional Dynamic that returns the level of blend a given pixel will be
924 700
 *               mixed with the next parameter 'color': pixel = (1-level)*pixel + level*color
925 701
 * @param color  Color to mix. (1,0,0) is RED.
926 702
 * @param region Region this Effect is limited to. 
......
928 704
 * @param center Center of the Effect.
929 705
 * @return       ID of the effect added, or -1 if we failed to add one. 
930 706
 */
931
  public long chroma(Interpolator1D blend, Float3D color, Float4D region, Float2D center)
707
  public long chroma(Dynamic1D blend, Static3D color, Static4D region, Static2D center)
932 708
    {
933 709
    return mF.add(EffectNames.CHROMA, blend, color, region, center);
934 710
    }
......
942 718
 * @param color  Color to mix. (1,0,0) is RED.
943 719
 * @param region Region this Effect is limited to.
944 720
 *               Null here means 'apply the Effect to the whole Object'.
945
 * @param center 2-dimensional Interpolator which, at any given time, returns a Float2D representing the
721
 * @param center 2-dimensional Dynamic which, at any given time, returns a Static2D representing the
946 722
 *               current center of the effect.
947 723
 * @return       ID of the effect added, or -1 if we failed to add one. 
948 724
 */
949
  public long chroma(float blend, Float3D color, Float4D region, Interpolator2D center)
725
  public long chroma(float blend, Static3D color, Static4D region, Dynamic2D center)
950 726
    {
951 727
    return mF.add(EffectNames.CHROMA, blend, color, region, center);
952 728
    }
......
965 741
 * @param center Center of the Effect.
966 742
 * @return       ID of the effect added, or -1 if we failed to add one. 
967 743
 */
968
  public long chroma(float blend, Float3D color, Float4D region, Float2D center)
744
  public long chroma(float blend, Static3D color, Static4D region, Static2D center)
969 745
    {
970 746
    return mF.add(EffectNames.CHROMA, blend, color, region, center);
971 747
    }
......
981 757
 * @param color Color to mix. (1,0,0) is RED.
982 758
 * @return      ID of the effect added, or -1 if we failed to add one. 
983 759
 */
984
  public long chroma(float blend, Float3D color)
760
  public long chroma(float blend, Static3D color)
985 761
    {
986 762
    return mF.add(EffectNames.CHROMA, blend, color, null, mZero2D);
987 763
    }
......
990 766
/**
991 767
 * Makes a certain sub-region of the Object smoothly change all three of its RGB components.
992 768
 * 
993
 * See {@link #chroma(Interpolator1D, Float3D, Float4D, Interpolator2D)}
769
 * See {@link #chroma(Dynamic1D, Static3D, Static4D, Dynamic2D)}
994 770
 */
995
  public long smooth_chroma(Interpolator1D blend, Float3D color, Float4D region, Interpolator2D center)
771
  public long smooth_chroma(Dynamic1D blend, Static3D color, Static4D region, Dynamic2D center)
996 772
    {
997 773
    return mF.add(EffectNames.SMOOTH_CHROMA, blend, color, region, center);
998 774
    }
......
1001 777
/**
1002 778
 * Makes a certain sub-region of the Object smoothly change all three of its RGB components.
1003 779
 * 
1004
 * See {@link #chroma(Interpolator1D, Float3D, Float4D, Float2D)}
780
 * See {@link #chroma(Dynamic1D, Static3D, Static4D, Static2D)}
1005 781
 */
1006
  public long smooth_chroma(Interpolator1D blend, Float3D color, Float4D region, Float2D center)
782
  public long smooth_chroma(Dynamic1D blend, Static3D color, Static4D region, Static2D center)
1007 783
    {
1008 784
    return mF.add(EffectNames.SMOOTH_CHROMA, blend, color, region, center);
1009 785
    }
......
1012 788
/**
1013 789
 * Makes a certain sub-region of the Object smoothly change all three of its RGB components.
1014 790
 * 
1015
 * See {@link #chroma(float, Float3D, Float4D, Interpolator2D)}
791
 * See {@link #chroma(float, Static3D, Static4D, Dynamic2D)}
1016 792
 */
1017
  public long smooth_chroma(float blend, Float3D color, Float4D region, Interpolator2D center)
793
  public long smooth_chroma(float blend, Static3D color, Static4D region, Dynamic2D center)
1018 794
    {
1019 795
    return mF.add(EffectNames.SMOOTH_CHROMA, blend, color, region, center);
1020 796
    }
......
1023 799
/**
1024 800
 * Makes a certain sub-region of the Object smoothly change all three of its RGB components.
1025 801
 * 
1026
 * See {@link #chroma(float, Float3D, Float4D, Float2D)}
802
 * See {@link #chroma(float, Static3D, Static4D, Static2D)}
1027 803
 */
1028
  public long smooth_chroma(float blend, Float3D color, Float4D region, Float2D center)
804
  public long smooth_chroma(float blend, Static3D color, Static4D region, Static2D center)
1029 805
    {
1030 806
    return mF.add(EffectNames.SMOOTH_CHROMA, blend, color, region, center);
1031 807
    }
......
1034 810
/**
1035 811
 * Makes a certain sub-region of the Object smoothly change all three of its RGB components.
1036 812
 * 
1037
 * See {@link #chroma(float, Float3D)}
813
 * See {@link #chroma(float, Static3D)}
1038 814
 */
1039
  public long smooth_chroma(float blend, Float3D color)
815
  public long smooth_chroma(float blend, Static3D color)
1040 816
    {
1041 817
    return mF.add(EffectNames.SMOOTH_CHROMA, blend, color, null, mZero2D);
1042 818
    }
......
1047 823
/**
1048 824
 * Makes a certain sub-region of the Object smoothly change its transparency level.
1049 825
 *        
1050
 * @param alpha  1-dimensional Interpolator that returns the level of transparency we want to have at any given
826
 * @param alpha  1-dimensional Dynamic that returns the level of transparency we want to have at any given
1051 827
 *               moment.
1052 828
 * @param region Region this Effect is limited to. 
1053 829
 *               Null here means 'apply the Effect to the whole Object'.
1054
 * @param center 2-dimensional Interpolator which, at any given time, returns a Float2D representing the
830
 * @param center 2-dimensional Dynamic which, at any given time, returns a Static2D representing the
1055 831
 *               current center of the effect.
1056 832
 * @return       ID of the effect added, or -1 if we failed to add one. 
1057 833
 */
1058
  public long alpha(Interpolator1D alpha, Float4D region, Interpolator2D center)
834
  public long alpha(Dynamic1D alpha, Static4D region, Dynamic2D center)
1059 835
    {
1060 836
    return mF.add(EffectNames.ALPHA, alpha, region, center);
1061 837
    }
......
1066 842
 * <p>
1067 843
 * Here the center of the Effect stays constant.
1068 844
 *         
1069
 * @param alpha  1-dimensional Interpolator that returns the level of transparency we want to have at any given
845
 * @param alpha  1-dimensional Dynamic that returns the level of transparency we want to have at any given
1070 846
 *               moment.
1071 847
 * @param region Region this Effect is limited to. 
1072 848
 *               Null here means 'apply the Effect to the whole Object'.
1073 849
 * @param center Center of the Effect.
1074 850
 * @return       ID of the effect added, or -1 if we failed to add one. 
1075 851
 */
1076
  public long alpha(Interpolator1D alpha, Float4D region, Float2D center)
852
  public long alpha(Dynamic1D alpha, Static4D region, Static2D center)
1077 853
    {
1078 854
    return mF.add(EffectNames.ALPHA, alpha, region, center);
1079 855
    }
......
1085 861
 * @param alpha  Level of Alpha (between 0 and 1) we want to interpolate to.
1086 862
 * @param region Region this Effect is limited to. 
1087 863
 *               Null here means 'apply the Effect to the whole Object'.
1088
 * @param center 2-dimensional Interpolator which, at any given time, returns a Float2D representing the
864
 * @param center 2-dimensional Dynamic which, at any given time, returns a Static2D representing the
1089 865
 *               current center of the effect.
1090 866
 * @param duration Time, in milliseconds, it takes to do one full interpolation.
1091
 * @param count  Controls how many interpolations we want to do. See {@link Interpolator#setCount(float)}
867
 * @param count  Controls how many interpolations we want to do. See {@link Dynamic#setCount(float)}
1092 868
 * @return       ID of the effect added, or -1 if we failed to add one. 
1093 869
 */
1094
  public long alpha(float alpha, Float4D region, Interpolator2D center, int duration, float count)
870
  public long alpha(float alpha, Static4D region, Dynamic2D center, int duration, float count)
1095 871
    {
1096
    Interpolator1D di = new Interpolator1D(); 
872
    Dynamic1D di = new Dynamic1D();
1097 873
    di.setCount(count);
1098 874
    di.setDuration(duration);
1099
    di.add(new Float1D(1));                          
1100
    di.add(new Float1D(alpha));                         
875
    di.add(new Static1D(1));
876
    di.add(new Static1D(alpha));
1101 877
   
1102 878
    return mF.add(EffectNames.ALPHA, di, region, center);
1103 879
    }
......
1113 889
 *                 Null here means 'apply the Effect to the whole Object'.
1114 890
 * @param center   Center of the Effect.
1115 891
 * @param duration Time, in milliseconds, it takes to do one full interpolation.
1116
 * @param count    Controls how many interpolations we want to do. See {@link Interpolator#setCount(float)}
892
 * @param count    Controls how many interpolations we want to do. See {@link Dynamic#setCount(float)}
1117 893
 * @return         ID of the effect added, or -1 if we failed to add one.
1118 894
 */
1119
  public long alpha(float alpha, Float4D region, Float2D center, int duration, float count)
895
  public long alpha(float alpha, Static4D region, Static2D center, int duration, float count)
1120 896
    {
1121
    Interpolator1D di = new Interpolator1D(); 
897
    Dynamic1D di = new Dynamic1D();
1122 898
    di.setCount(count);
1123 899
    di.setDuration(duration);
1124
    di.add(new Float1D(1));                          
1125
    di.add(new Float1D(alpha));                         
900
    di.add(new Static1D(1));
901
    di.add(new Static1D(alpha));
1126 902
   
1127 903
    return mF.add(EffectNames.ALPHA, di, region, center);
1128 904
    }
......
1139 915
 * @param center Center of the Effect.
1140 916
 * @return       ID of the effect added, or -1 if we failed to add one. 
1141 917
 */
1142
  public long alpha(float alpha, Float4D region, Float2D center)
918
  public long alpha(float alpha, Static4D region, Static2D center)
1143 919
    {
1144
    Interpolator1D di = new Interpolator1D(); 
920
    Dynamic1D di = new Dynamic1D();
1145 921
    di.setCount(0.5f);
1146 922
    di.setDuration(0);
1147
    di.add(new Float1D(1));                          
1148
    di.add(new Float1D(alpha));                         
923
    di.add(new Static1D(1));
924
    di.add(new Static1D(alpha));
1149 925
   
1150 926
    return mF.add(EffectNames.ALPHA, di, region, center);
1151 927
    }
......
1156 932
 * 
1157 933
 * @param alpha    Level of Alpha (between 0 and 1) we want to interpolate to.
1158 934
 * @param duration Time, in milliseconds, it takes to do one full interpolation.
1159
 * @param count    Controls how many interpolations we want to do. See {@link Interpolator#setCount(float)}
935
 * @param count    Controls how many interpolations we want to do. See {@link Dynamic#setCount(float)}
1160 936
 * @return         ID of the effect added, or -1 if we failed to add one. 
1161 937
 */
1162 938
  public long alpha(float alpha, int duration, float count) 
1163 939
    {
1164
    Interpolator1D di = new Interpolator1D(); 
940
    Dynamic1D di = new Dynamic1D();
1165 941
    di.setCount(count);
1166 942
    di.setDuration(duration);
1167
    di.add(new Float1D(1));                            
1168
    di.add(new Float1D(alpha));                        
943
    di.add(new Static1D(1));
944
    di.add(new Static1D(alpha));
1169 945
         
1170 946
    return mF.add(EffectNames.ALPHA, di,null, mZero2D);
1171 947
    }
......
1174 950
/**
1175 951
 * Makes a certain sub-region of the Object smoothly change its transparency level.
1176 952
 * 
1177
 * See {@link #alpha(Interpolator1D, Float4D, Interpolator2D)}
953
 * See {@link #alpha(Dynamic1D, Static4D, Dynamic2D)}
1178 954
 */
1179
  public long smooth_alpha(Interpolator1D alpha, Float4D region, Interpolator2D center)
955
  public long smooth_alpha(Dynamic1D alpha, Static4D region, Dynamic2D center)
1180 956
    {
1181 957
    return mF.add(EffectNames.SMOOTH_ALPHA, alpha, region, center);
1182 958
    }
......
1185 961
/**
1186 962
 * Makes a certain sub-region of the Object smoothly change its transparency level.
1187 963
 * 
1188
 * See {@link #alpha(Interpolator1D, Float4D, Float2D)}
964
 * See {@link #alpha(Dynamic1D, Static4D, Static2D)}
1189 965
 */
1190
  public long smooth_alpha(Interpolator1D alpha, Float4D region, Float2D center)
966
  public long smooth_alpha(Dynamic1D alpha, Static4D region, Static2D center)
1191 967
    {
1192 968
    return mF.add(EffectNames.SMOOTH_ALPHA, alpha, region, center);
1193 969
    }
......
1196 972
/**
1197 973
 * Makes a certain sub-region of the Object smoothly change its transparency level.
1198 974
 * 
1199
 * See {@link #alpha(float, Float4D, Interpolator2D, int, float)}
975
 * See {@link #alpha(float, Static4D, Dynamic2D, int, float)}
1200 976
 */
1201
  public long smooth_alpha(float alpha, Float4D region, Interpolator2D center, int duration, float count)
977
  public long smooth_alpha(float alpha, Static4D region, Dynamic2D center, int duration, float count)
1202 978
    {
1203
    Interpolator1D di = new Interpolator1D(); 
979
    Dynamic1D di = new Dynamic1D();
1204 980
    di.setCount(count);
1205 981
    di.setDuration(duration);
1206
    di.add(new Float1D(1));                          
1207
    di.add(new Float1D(alpha));                         
982
    di.add(new Static1D(1));
983
    di.add(new Static1D(alpha));
1208 984
   
1209 985
    return mF.add(EffectNames.SMOOTH_ALPHA, di, region, center);
1210 986
    }
......
1213 989
/**
1214 990
 * Makes a certain sub-region of the Object smoothly change its transparency level.
1215 991
 * 
1216
 * See {@link #alpha(float, Float4D, Float2D, int, float)}
992
 * See {@link #alpha(float, Static4D, Static2D, int, float)}
1217 993
 */
1218
  public long smooth_alpha(float alpha, Float4D region, Float2D center, int duration, float count)
994
  public long smooth_alpha(float alpha, Static4D region, Static2D center, int duration, float count)
1219 995
    {
1220
    Interpolator1D di = new Interpolator1D(); 
996
    Dynamic1D di = new Dynamic1D();
1221 997
    di.setCount(count);
1222 998
    di.setDuration(duration);
1223
    di.add(new Float1D(1));                          
1224
    di.add(new Float1D(alpha));                         
999
    di.add(new Static1D(1));
1000
    di.add(new Static1D(alpha));
1225 1001
   
1226 1002
    return mF.add(EffectNames.SMOOTH_ALPHA, di, region, center);
1227 1003
    }
......
1230 1006
/**
1231 1007
 * Makes a certain sub-region of the Object smoothly change its transparency level.
1232 1008
 * 
1233
 * See {@link #alpha(float, Float4D, Float2D)}
1009
 * See {@link #alpha(float, Static4D, Static2D)}
1234 1010
 */
1235
  public long smooth_alpha(float alpha, Float4D region, Float2D center)
1011
  public long smooth_alpha(float alpha, Static4D region, Static2D center)
1236 1012
    {
1237
    Interpolator1D di = new Interpolator1D(); 
1013
    Dynamic1D di = new Dynamic1D();
1238 1014
    di.setCount(0.5f);
1239 1015
    di.setDuration(0);
1240
    di.add(new Float1D(1));                          
1241
    di.add(new Float1D(alpha));                         
1016
    di.add(new Static1D(1));
1017
    di.add(new Static1D(alpha));
1242 1018
   
1243 1019
    return mF.add(EffectNames.SMOOTH_ALPHA, di, region, center);
1244 1020
    }
......
1249 1025
/**
1250 1026
 * Makes a certain sub-region of the Object smoothly change its brightness level.
1251 1027
 *        
1252
 * @param brightness 1-dimensional Interpolator that returns the level of brightness we want to have
1028
 * @param brightness 1-dimensional Dynamic that returns the level of brightness we want to have
1253 1029
 *                   at any given moment.
1254 1030
 * @param region     Region this Effect is limited to.
1255 1031
 *                   Null here means 'apply the Effect to the whole Object'.
1256
 * @param center     2-dimensional Interpolator which, at any given time, returns a Float2D representing
1032
 * @param center     2-dimensional Dynamic which, at any given time, returns a Static2D representing
1257 1033
 *                   the current center of the effect.
1258 1034
 * @return           ID of the effect added, or -1 if we failed to add one.
1259 1035
 */
1260
  public long brightness(Interpolator1D brightness, Float4D region, Interpolator2D center)
1036
  public long brightness(Dynamic1D brightness, Static4D region, Dynamic2D center)
1261 1037
    {
1262 1038
    return mF.add(EffectNames.BRIGHTNESS, brightness, region, center);
1263 1039
    }
......
1268 1044
 * <p>
1269 1045
 * Here the center of the Effect stays constant.
1270 1046
 *         
1271
 * @param brightness 1-dimensional Interpolator that returns the level of brightness we want to have
1047
 * @param brightness 1-dimensional Dynamic that returns the level of brightness we want to have
1272 1048
 *                   at any given moment.
1273 1049
 * @param region     Region this Effect is limited to.
1274 1050
 *                   Null here means 'apply the Effect to the whole Object'.
1275 1051
 * @param center     Center of the Effect.
1276 1052
 * @return           ID of the effect added, or -1 if we failed to add one.
1277 1053
 */
1278
  public long brightness(Interpolator1D brightness, Float4D region, Float2D center)
1054
  public long brightness(Dynamic1D brightness, Static4D region, Static2D center)
1279 1055
    {
1280 1056
    return mF.add(EffectNames.BRIGHTNESS, brightness, region, center);
1281 1057
    }
......
1289 1065
 *                   anything more than 1- lighten it up. 
1290 1066
 * @param region     Region this Effect is limited to.
1291 1067
 *                   Null here means 'apply the Effect to the whole Object'.
1292
 * @param center     2-dimensional Interpolator which, at any given time, returns a Float2D
1068
 * @param center     2-dimensional Dynamic which, at any given time, returns a Static2D
1293 1069
 *                   representing the current center of the effect.
1294 1070
 * @param duration   Time, in milliseconds, it takes to do one full interpolation.
1295
 * @param count      Controls how many interpolations we want to do. See {@link Interpolator#setCount(float)}
1071
 * @param count      Controls how many interpolations we want to do. See {@link Dynamic#setCount(float)}
1296 1072
 * @return           ID of the effect added, or -1 if we failed to add one. 
1297 1073
 */
1298
  public long brightness(float brightness, Float4D region, Interpolator2D center, int duration, float count)
1074
  public long brightness(float brightness, Static4D region, Dynamic2D center, int duration, float count)
1299 1075
    {
1300
    Interpolator1D di = new Interpolator1D(); 
1076
    Dynamic1D di = new Dynamic1D();
1301 1077
    di.setCount(count);
1302 1078
    di.setDuration(duration);
1303
    di.add(new Float1D(1));                          
1304
    di.add(new Float1D(brightness));                         
1079
    di.add(new Static1D(1));
1080
    di.add(new Static1D(brightness));
1305 1081
   
1306 1082
    return mF.add(EffectNames.BRIGHTNESS, di, region, center);
1307 1083
    }
......
1319 1095
 *                   Null here means 'apply the Effect to the whole Object'.
1320 1096
 * @param center     Center of the Effect.
1321 1097
 * @param duration   Time, in milliseconds, it takes to do one full interpolation.
1322
 * @param count      Controls how many interpolations we want to do. See {@link Interpolator#setCount(float)}
1098
 * @param count      Controls how many interpolations we want to do. See {@link Dynamic#setCount(float)}
1323 1099
 * @return           ID of the effect added, or -1 if we failed to add one. 
1324 1100
 */
1325
  public long brightness(float brightness, Float4D region, Float2D center, int duration, float count)
1101
  public long brightness(float brightness, Static4D region, Static2D center, int duration, float count)
1326 1102
    {
1327
    Interpolator1D di = new Interpolator1D(); 
1103
    Dynamic1D di = new Dynamic1D();
1328 1104
    di.setCount(count);
1329 1105
    di.setDuration(duration);
1330
    di.add(new Float1D(1));                          
1331
    di.add(new Float1D(brightness));                         
1106
    di.add(new Static1D(1));
1107
    di.add(new Static1D(brightness));
1332 1108
   
1333 1109
    return mF.add(EffectNames.BRIGHTNESS, di, region, center);
1334 1110
    }
......
1347 1123
 * @param center     Center of the Effect.
1348 1124
 * @return           ID of the effect added, or -1 if we failed to add one. 
1349 1125
 */
1350
  public long brightness(float brightness, Float4D region, Float2D center)
1126
  public long brightness(float brightness, Static4D region, Static2D center)
1351 1127
    {
1352
    Interpolator1D di = new Interpolator1D(); 
1128
    Dynamic1D di = new Dynamic1D();
1353 1129
    di.setCount(0.5f);
1354 1130
    di.setDuration(0);
1355
    di.add(new Float1D(1));                          
1356
    di.add(new Float1D(brightness));                         
1131
    di.add(new Static1D(1));
1132
    di.add(new Static1D(brightness));
1357 1133
   
1358 1134
    return mF.add(EffectNames.BRIGHTNESS, di, region, center);
1359 1135
    }
......
1364 1140
/**
1365 1141
 * Makes a certain sub-region of the Object smoothly change its brightness level.
1366 1142
 *        
1367
 * @param brightness 1-dimensional Interpolator that returns the level of brightness we want to have
1143
 * @param brightness 1-dimensional Dynamic that returns the level of brightness we want to have
1368 1144
 *                   at any given moment.
1369 1145
 * @param region     Region this Effect is limited to.
1370 1146
 *                   Null here means 'apply the Effect to the whole Object'.
1371
 * @param center     2-dimensional Interpolator which, at any given time, returns a Float2D
1147
 * @param center     2-dimensional Dynamic which, at any given time, returns a Static2D
1372 1148
 *                   representing the current center of the effect.
1373 1149
 * @return           ID of the effect added, or -1 if we failed to add one.
1374 1150
 */
1375
  public long smooth_brightness(Interpolator1D brightness, Float4D region, Interpolator2D center)
1151
  public long smooth_brightness(Dynamic1D brightness, Static4D region, Dynamic2D center)
1376 1152
    {
1377 1153
    return mF.add(EffectNames.SMOOTH_BRIGHTNESS, brightness, region, center);
1378 1154
    }
......
1383 1159
 * <p>
1384 1160
 * Here the center of the Effect stays constant.
1385 1161
 *         
1386
 * @param brightness 1-dimensional Interpolator that returns the level of brightness we want to have
1162
 * @param brightness 1-dimensional Dynamic that returns the level of brightness we want to have
1387 1163
 *                   at any given moment.
1388 1164
 * @param region     Region this Effect is limited to.
1389 1165
 *                   Null here means 'apply the Effect to the whole Object'.
1390 1166
 * @param center     Center of the Effect.
1391 1167
 * @return           ID of the effect added, or -1 if we failed to add one.
1392 1168
 */
1393
  public long smooth_brightness(Interpolator1D brightness, Float4D region, Float2D center)
1169
  public long smooth_brightness(Dynamic1D brightness, Static4D region, Static2D center)
1394 1170
    {
1395 1171
    return mF.add(EffectNames.SMOOTH_BRIGHTNESS, brightness, region, center);
1396 1172
    }
......
1404 1180
 *                   anything more than 1 - lighten it up. 
1405 1181
 * @param region     Region this Effect is limited to. 
1406 1182
 *                   Null here means 'apply the Effect to the whole Object'.
1407
 * @param center     2-dimensional Interpolator which, at any given time, returns a Float2D
1183
 * @param center     2-dimensional Dynamic which, at any given time, returns a Static2D
1408 1184
 *                   represention the current center of the effect.
1409 1185
 * @param duration   Time, in milliseconds, it takes to do one full interpolation.
1410
 * @param count      Controls how many interpolations we want to do. See {@link Interpolator#setCount(float)}
1186
 * @param count      Controls how many interpolations we want to do. See {@link Dynamic#setCount(float)}
1411 1187
 * @return           ID of the effect added, or -1 if we failed to add one. 
1412 1188
 */
1413
  public long smooth_brightness(float brightness, Float4D region, Interpolator2D center, int duration, float count)
1189
  public long smooth_brightness(float brightness, Static4D region, Dynamic2D center, int duration, float count)
1414 1190
    {
1415
    Interpolator1D di = new Interpolator1D(); 
1191
    Dynamic1D di = new Dynamic1D();
1416 1192
    di.setCount(count);
1417 1193
    di.setDuration(duration);
1418
    di.add(new Float1D(1));                          
1419
    di.add(new Float1D(brightness));                         
1194
    di.add(new Static1D(1));
1195
    di.add(new Static1D(brightness));
1420 1196
   
1421 1197
    return mF.add(EffectNames.SMOOTH_BRIGHTNESS, di, region, center);
1422 1198
    }
......
1434 1210
 *                   Null here means 'apply the Effect to the whole Object'.
1435 1211
 * @param center     Center of the Effect.
1436 1212
 * @param duration   Time, in milliseconds, it takes to do one full interpolation.
1437
 * @param count      Controls how many interpolations we want to do. See {@link Interpolator#setCount(float)}
1213
 * @param count      Controls how many interpolations we want to do. See {@link Dynamic#setCount(float)}
1438 1214
 * @return           ID of the effect added, or -1 if we failed to add one. 
1439 1215
 */
1440
  public long smooth_brightness(float brightness, Float4D region, Float2D center, int duration, float count)
1216
  public long smooth_brightness(float brightness, Static4D region, Static2D center, int duration, float count)
1441 1217
    {
1442
    Interpolator1D di = new Interpolator1D(); 
1218
    Dynamic1D di = new Dynamic1D();
1443 1219
    di.setCount(count);
1444 1220
    di.setDuration(duration);
1445
    di.add(new Float1D(1));                          
1446
    di.add(new Float1D(brightness));                         
1221
    di.add(new Static1D(1));
1222
    di.add(new Static1D(brightness));
1447 1223
   
1448 1224
    return mF.add(EffectNames.SMOOTH_BRIGHTNESS, di, region, center);
1449 1225
    }
......
1462 1238
 * @param center     Center of the Effect.
1463 1239
 * @return           ID of the effect added, or -1 if we failed to add one. 
1464 1240
 */
1465
  public long smooth_brightness(float brightness, Float4D region, Float2D center)
1241
  public long smooth_brightness(float brightness, Static4D region, Static2D center)
1466 1242
    {
1467
    Interpolator1D di = new Interpolator1D(); 
1243
    Dynamic1D di = new Dynamic1D();
1468 1244
    di.setCount(0.5f);
1469 1245
    di.setDuration(0);
1470
    di.add(new Float1D(1));                          
1471
    di.add(new Float1D(brightness));                         
1246
    di.add(new Static1D(1));
1247
    di.add(new Static1D(brightness));
1472 1248
   
1473 1249
    return mF.add(EffectNames.SMOOTH_BRIGHTNESS, di, region, center);
1474 1250
    }
......
1481 1257
 *                   1 - level of brightness unchanged, anything less than 1 - 'darken the image',
1482 1258
 *                   anything more than 1- lighten it up.
1483 1259
 * @param duration   Time, in milliseconds, it takes to do one full interpolation.
1484
 * @param count      Controls how many interpolations we want to do. See {@link Interpolator#setCount(float)}
1260
 * @param count      Controls how many interpolations we want to do. See {@link Dynamic#setCount(float)}
1485 1261
 * @return           ID of the effect added, or -1 if we failed to add one. 
1486 1262
 */
1487 1263
  public long smooth_brightness(float brightness, int duration, float count) 
1488 1264
    {
1489
    Interpolator1D di = new Interpolator1D(); 
1265
    Dynamic1D di = new Dynamic1D();
1490 1266
    di.setCount(count);
1491 1267
    di.setDuration(duration);
1492
    di.add(new Float1D(1));                            
1493
    di.add(new Float1D(brightness));                        
1268
    di.add(new Static1D(1));
1269
    di.add(new Static1D(brightness));
1494 1270
         
1495 1271
    return mF.add(EffectNames.SMOOTH_BRIGHTNESS, di,null, mZero2D);
1496 1272
    }
......
1501 1277
/**
1502 1278
 * Makes a certain sub-region of the Object smoothly change its contrast level.
1503 1279
 *        
1504
 * @param contrast 1-dimensional Interpolator that returns the level of contrast we want to have
1280
 * @param contrast 1-dimensional Dynamic that returns the level of contrast we want to have
1505 1281
 *                 at any given moment.
1506 1282
 * @param region   Region this Effect is limited to.
1507 1283
 *                 Null here means 'apply the Effect to the whole Object'.
1508
 * @param center   2-dimensional Interpolator which, at any given time, returns a Float2D
1284
 * @param center   2-dimensional Dynamic which, at any given time, returns a Static2D
1509 1285
 *                 representing the current center of the effect.
1510 1286
 * @return         ID of the effect added, or -1 if we failed to add one.
1511 1287
 */
1512
  public long contrast(Interpolator1D contrast, Float4D region, Interpolator2D center)
1288
  public long contrast(Dynamic1D contrast, Static4D region, Dynamic2D center)
1513 1289
    {
1514 1290
    return mF.add(EffectNames.CONTRAST, contrast, region, center);
1515 1291
    }
......
1520 1296
 * <p>
1521 1297
 * Here the center of the Effect stays constant.
1522 1298
 *         
1523
 * @param contrast 1-dimensional Interpolator that returns the level of contrast we want to have
1299
 * @param contrast 1-dimensional Dynamic that returns the level of contrast we want to have
1524 1300
 *                 at any given moment.
1525 1301
 * @param region   Region this Effect is limited to.
1526 1302
 *                 Null here means 'apply the Effect to the whole Object'.
1527 1303
 * @param center  Center of the Effect.
1528 1304
 * @return        ID of the effect added, or -1 if we failed to add one.
1529 1305
 */
1530
  public long contrast(Interpolator1D contrast, Float4D region, Float2D center)
1306
  public long contrast(Dynamic1D contrast, Static4D region, Static2D center)
1531 1307
    {
1532 1308
    return mF.add(EffectNames.CONTRAST, contrast, region, center);
1533 1309
    }
......
1541 1317
 *                 anything more than 1 - increase the contrast. 
1542 1318
 * @param region   Region this Effect is limited to.
1543 1319
 *                 Null here means 'apply the Effect to the whole Object'.
1544
 * @param center   2-dimensional Interpolator which, at any given time, returns a Float2D
1320
 * @param center   2-dimensional Dynamic which, at any given time, returns a Static2D
1545 1321
 *                 represention the current center of the effect.
1546 1322
 * @param duration Time, in milliseconds, it takes to do one full interpolation.
1547
 * @param count    Controls how many interpolations we want to do. See {@link Interpolator#setCount(float)}
1323
 * @param count    Controls how many interpolations we want to do. See {@link Dynamic#setCount(float)}
1548 1324
 * @return         ID of the effect added, or -1 if we failed to add one. 
1549 1325
 */
1550
  public long contrast(float contrast, Float4D region, Interpolator2D center, int duration, float count)
1326
  public long contrast(float contrast, Static4D region, Dynamic2D center, int duration, float count)
1551 1327
    {
1552
    Interpolator1D di = new Interpolator1D(); 
1328
    Dynamic1D di = new Dynamic1D();
1553 1329
    di.setCount(count);
1554 1330
    di.setDuration(duration);
1555
    di.add(new Float1D(1));                          
1556
    di.add(new Float1D(contrast));                         
1331
    di.add(new Static1D(1));
1332
    di.add(new Static1D(contrast));
1557 1333
   
1558 1334
    return mF.add(EffectNames.CONTRAST, di, region, center);
1559 1335
    }
......
1571 1347
 *                 Null here means 'apply the Effect to the whole Object'.
1572 1348
 * @param center   Center of the Effect.
1573 1349
 * @param duration Time, in milliseconds, it takes to do one full interpolation.
1574
 * @param count    Controls how many interpolations we want to do. See {@link Interpolator#setCount(float)}
1350
 * @param count    Controls how many interpolations we want to do. See {@link Dynamic#setCount(float)}
1575 1351
 * @return         ID of the effect added, or -1 if we failed to add one. 
1576 1352
 */
1577
  public long contrast(float contrast, Float4D region, Float2D center, int duration, float count)
1353
  public long contrast(float contrast, Static4D region, Static2D center, int duration, float count)
1578 1354
    {
1579
    Interpolator1D di = new Interpolator1D(); 
1355
    Dynamic1D di = new Dynamic1D();
1580 1356
    di.setCount(count);
1581 1357
    di.setDuration(duration);
1582
    di.add(new Float1D(1));                          
1583
    di.add(new Float1D(contrast));                         
1358
    di.add(new Static1D(1));
1359
    di.add(new Static1D(contrast));
1584 1360
   
1585 1361
    return mF.add(EffectNames.CONTRAST, di, region, center);
1586 1362
    }
......
1599 1375
 * @param center   Center of the Effect.
1600 1376
 * @return         ID of the effect added, or -1 if we failed to add one. 
1601 1377
 */
1602
  public long contrast(float contrast, Float4D region, Float2D center)
1378
  public long contrast(float contrast, Static4D region, Static2D center)
1603 1379
    {
1604
    Interpolator1D di = new Interpolator1D(); 
1380
    Dynamic1D di = new Dynamic1D();
1605 1381
    di.setCount(0.5f);
1606 1382
    di.setDuration(0);
1607
    di.add(new Float1D(1));                          
1608
    di.add(new Float1D(contrast));                         
1383
    di.add(new Static1D(1));
1384
    di.add(new Static1D(contrast));
1609 1385
   
1610 1386
    return mF.add(EffectNames.CONTRAST, di, region, center);
1611 1387
    }
......
1616 1392
/**
1617 1393
 * Makes a certain sub-region of the Object smoothly change its contrast level.
1618 1394
 *        
1619
 * @param contrast 1-dimensional Interpolator that returns the level of contrast we want to have
1395
 * @param contrast 1-dimensional Dynamic that returns the level of contrast we want to have
1620 1396
 *                 at any given moment.
1621 1397
 * @param region   Region this Effect is limited to.
1622 1398
 *                 Null here means 'apply the Effect to the whole Object'.
1623
 * @param center   2-dimensional Interpolator which, at any given time, returns a Float2D
1399
 * @param center   2-dimensional Dynamic which, at any given time, returns a Static2D
1624 1400
 *                 representing the current center of the effect.
1625 1401
 * @return         ID of the effect added, or -1 if we failed to add one.
1626 1402
 */
1627
  public long smooth_contrast(Interpolator1D contrast, Float4D region, Interpolator2D center)
1403
  public long smooth_contrast(Dynamic1D contrast, Static4D region, Dynamic2D center)
1628 1404
    {
1629 1405
    return mF.add(EffectNames.SMOOTH_CONTRAST, contrast, region, center);
1630 1406
    }
......
1635 1411
 * <p>
1636 1412
 * Here the center of the Effect stays constant.
1637 1413
 *         
1638
 * @param contrast 1-dimensional Interpolator that returns the level of contrast we want to have
1414
 * @param contrast 1-dimensional Dynamic that returns the level of contrast we want to have
1639 1415
 *                 at any given moment.
1640 1416
 * @param region   Region this Effect is limited to.
1641 1417
 *                 Null here means 'apply the Effect to the whole Object'.
1642 1418
 * @param center   Center of the Effect.
1643 1419
 * @return         ID of the effect added, or -1 if we failed to add one.
1644 1420
 */
1645
  public long smooth_contrast(Interpolator1D contrast, Float4D region, Float2D center)
1421
  public long smooth_contrast(Dynamic1D contrast, Static4D region, Static2D center)
1646 1422
    {
1647 1423
    return mF.add(EffectNames.SMOOTH_CONTRAST, contrast, region, center);
1648 1424
    }
......
1656 1432
 *                 anything more than 1 - increase the contrast. 
1657 1433
 * @param region   Region this Effect is limited to. 
1658 1434
 *                 Null here means 'apply the Effect to the whole Object'.
1659
 * @param center   2-dimensional Interpolator which, at any given time, returns a Float2D
1435
 * @param center   2-dimensional Dynamic which, at any given time, returns a Static2D
1660 1436
 *                 representing the current center of the effect.
1661 1437
 * @param duration Time, in milliseconds, it takes to do one full interpolation.
1662
 * @param count    Controls how many interpolations we want to do. See {@link Interpolator#setCount(float)}
1438
 * @param count    Controls how many interpolations we want to do. See {@link Dynamic#setCount(float)}
1663 1439
 * @return         ID of the effect added, or -1 if we failed to add one. 
1664 1440
 */
1665
  public long smooth_contrast(float contrast, Float4D region, Interpolator2D center, int duration, float count)
1441
  public long smooth_contrast(float contrast, Static4D region, Dynamic2D center, int duration, float count)
1666 1442
    {
1667
    Interpolator1D di = new Interpolator1D(); 
1443
    Dynamic1D di = new Dynamic1D();
1668 1444
    di.setCount(count);
1669 1445
    di.setDuration(duration);
1670
    di.add(new Float1D(1));                          
1671
    di.add(new Float1D(contrast));                         
1446
    di.add(new Static1D(1));
1447
    di.add(new Static1D(contrast));
1672 1448
   
1673 1449
    return mF.add(EffectNames.SMOOTH_CONTRAST, di, region, center);
1674 1450
    }
......
1686 1462
 *                 Null here means 'apply the Effect to the whole Object'.
1687 1463
 * @param center   Center of the Effect.
1688 1464
 * @param duration Time, in milliseconds, it takes to do one full interpolation.
1689
 * @param count    Controls how many interpolations we want to do. See {@link Interpolator#setCount(float)}
1465
 * @param count    Controls how many interpolations we want to do. See {@link Dynamic#setCount(float)}
1690 1466
 * @return         ID of the effect added, or -1 if we failed to add one. 
1691 1467
 */
1692
  public long smooth_contrast(float contrast, Float4D region, Float2D center, int duration, float count)
1468
  public long smooth_contrast(float contrast, Static4D region, Static2D center, int duration, float count)
1693 1469
    {
1694
    Interpolator1D di = new Interpolator1D(); 
1470
    Dynamic1D di = new Dynamic1D();
1695 1471
    di.setCount(count);
1696 1472
    di.setDuration(duration);
1697
    di.add(new Float1D(1));                          
1698
    di.add(new Float1D(contrast));                         
1473
    di.add(new Static1D(1));
1474
    di.add(new Static1D(contrast));
1699 1475
   
1700 1476
    return mF.add(EffectNames.SMOOTH_CONTRAST, di, region, center);
1701 1477
    }
......
1714 1490
 * @param center   Center of the Effect.
1715 1491
 * @return         ID of the effect added, or -1 if we failed to add one. 
1716 1492
 */
1717
  public long smooth_contrast(float contrast, Float4D region, Float2D center)
1493
  public long smooth_contrast(float contrast, Static4D region, Static2D center)
1718 1494
    {
1719
    Interpolator1D di = new Interpolator1D(); 
1495
    Dynamic1D di = new Dynamic1D();
1720 1496
    di.setCount(0.5f);
1721 1497
    di.setDuration(0);
1722
    di.add(new Float1D(1));                          
1723
    di.add(new Float1D(contrast));                         
1498
    di.add(new Static1D(1));
1499
    di.add(new Static1D(contrast));
1724 1500
   
1725 1501
    return mF.add(EffectNames.SMOOTH_CONTRAST, di, region, center);
1726 1502
    }
......
1733 1509
 *                 1 - level of contrast unchanged, anything less than 1 - reduce contrast,
1734 1510
 *                 anything more than 1 - increase the contrast.
1735 1511
 * @param duration Time, in milliseconds, it takes to do one full interpolation.
1736
 * @param count    Controls how many interpolations we want to do. See {@link Interpolator#setCount(float)}
1512
 * @param count    Controls how many interpolations we want to do. See {@link Dynamic#setCount(float)}
1737 1513
 * @return         ID of the effect added, or -1 if we failed to add one. 
1738 1514
 */
1739 1515
  public long smooth_contrast(float contrast, int duration, float count) 
1740 1516
    {
1741
    Interpolator1D di = new Interpolator1D(); 
1517
    Dynamic1D di = new Dynamic1D();
1742 1518
    di.setCount(count);
1743 1519
    di.setDuration(duration);
1744
    di.add(new Float1D(1));                            
1745
    di.add(new Float1D(contrast));                        
1520
    di.add(new Static1D(1));
1521
    di.add(new Static1D(contrast));
1746 1522
         
1747 1523
    return mF.add(EffectNames.SMOOTH_CONTRAST, di,null, mZero2D);
1748 1524
    }
......
1754 1530
/**
1755 1531
 * Makes a certain sub-region of the Object smoothly change its saturation level.
1756 1532
 *        
1757
 * @param saturation 1-dimensional Interpolator that returns the level of saturation we want to have
1533
 * @param saturation 1-dimensional Dynamic that returns the level of saturation we want to have
1758 1534
 *                   at any given moment.
1759 1535
 * @param region     Region this Effect is limited to.
1760 1536
 *                   Null here means 'apply the Effect to the whole Object'.
1761
 * @param center     2-dimensional Interpolator which, at any given time, returns a Float2D
1537
 * @param center     2-dimensional Dynamic which, at any given time, returns a Static2D
1762 1538
 *                   representing the current center of the effect.
1763 1539
 * @return           ID of the effect added, or -1 if we failed to add one.
1764 1540
 */
1765
  public long saturation(Interpolator1D saturation, Float4D region, Interpolator2D center)
1541
  public long saturation(Dynamic1D saturation, Static4D region, Dynamic2D center)
1766 1542
    {
1767 1543
    return mF.add(EffectNames.SATURATION, saturation, region, center);
1768 1544
    }
......
1773 1549
 * <p>
1774 1550
 * Here the center of the Effect stays constant.
1775 1551
 *         
1776
 * @param saturation 1-dimensional Interpolator that returns the level of saturation we want to have
1552
 * @param saturation 1-dimensional Dynamic that returns the level of saturation we want to have
1777 1553
 *                   at any given moment.
1778 1554
 * @param region     Region this Effect is limited to.
1779 1555
 *                   Null here means 'apply the Effect to the whole Object'.
1780 1556
 * @param center     Center of the Effect.
1781 1557
 * @return           ID of the effect added, or -1 if we failed to add one.
1782 1558
 */
1783
  public long saturation(Interpolator1D saturation, Float4D region, Float2D center)
1559
  public long saturation(Dynamic1D saturation, Static4D region, Static2D center)
1784 1560
    {
1785 1561
    return mF.add(EffectNames.SATURATION, saturation, region, center);
1786 1562
    }
......
1794 1570
 *                   anything more than 1 - increase the saturation. 
1795 1571
 * @param region     Region this Effect is limited to.
1796 1572
 *                   Null here means 'apply the Effect to the whole Object'.
1797
 * @param center     2-dimensional Interpolator which, at any given time, returns a Float2D
1573
 * @param center     2-dimensional Dynamic which, at any given time, returns a Static2D
1798 1574
 *                   representing the current center of the effect.
1799 1575
 * @param duration   Time, in milliseconds, it takes to do one full interpolation.
1800
 * @param count      Controls how many interpolations we want to do. See {@link Interpolator#setCount(float)}
1576
 * @param count      Controls how many interpolations we want to do. See {@link Dynamic#setCount(float)}
1801 1577
 * @return           ID of the effect added, or -1 if we failed to add one. 
1802 1578
 */
1803
  public long saturation(float saturation, Float4D region, Interpolator2D center, int duration, float count)
1579
  public long saturation(float saturation, Static4D region, Dynamic2D center, int duration, float count)
1804 1580
    {
1805
    Interpolator1D di = new Interpolator1D(); 
1581
    Dynamic1D di = new Dynamic1D();
1806 1582
    di.setCount(count);
1807 1583
    di.setDuration(duration);
1808
    di.add(new Float1D(1));                          
1809
    di.add(new Float1D(saturation));                         
1584
    di.add(new Static1D(1));
1585
    di.add(new Static1D(saturation));
1810 1586
   
1811 1587
    return mF.add(EffectNames.SATURATION, di, region, center);
1812 1588
    }
......
1824 1600
 *                   Null here means 'apply the Effect to the whole Object'.
1825 1601
 * @param center     Center of the Effect.
1826 1602
 * @param duration   Time, in milliseconds, it takes to do one full interpolation.
1827
 * @param count      Controls how many interpolations we want to do. See {@link Interpolator#setCount(float)}
1603
 * @param count      Controls how many interpolations we want to do. See {@link Dynamic#setCount(float)}
1828 1604
 * @return           ID of the effect added, or -1 if we failed to add one. 
1829 1605
 */
1830
  public long saturation(float saturation, Float4D region, Float2D center, int duration, float count)
1606
  public long saturation(float saturation, Static4D region, Static2D center, int duration, float count)
1831 1607
    {
1832
    Interpolator1D di = new Interpolator1D(); 
1608
    Dynamic1D di = new Dynamic1D();
1833 1609
    di.setCount(count);
1834 1610
    di.setDuration(duration);
1835
    di.add(new Float1D(1));                          
1836
    di.add(new Float1D(saturation));                         
1611
    di.add(new Static1D(1));
1612
    di.add(new Static1D(saturation));
1837 1613
   
1838 1614
    return mF.add(EffectNames.SATURATION, di, region, center);
1839 1615
    }
......
1852 1628
 * @param center     Center of the Effect.
1853 1629
 * @return           ID of the effect added, or -1 if we failed to add one. 
1854 1630
 */
1855
  public long saturation(float saturation, Float4D region, Float2D center)
1631
  public long saturation(float saturation, Static4D region, Static2D center)
1856 1632
    {
1857
    Interpolator1D di = new Interpolator1D(); 
1633
    Dynamic1D di = new Dynamic1D();
1858 1634
    di.setCount(0.5f);
1859 1635
    di.setDuration(0);
1860
    di.add(new Float1D(1));                          
1861
    di.add(new Float1D(saturation));                         
1636
    di.add(new Static1D(1));
1637
    di.add(new Static1D(saturation));
1862 1638
   
1863 1639
    return mF.add(EffectNames.SATURATION, di, region, center);
1864 1640
    }
......
1869 1645
/**
1870 1646
 * Makes a certain sub-region of the Object smoothly change its saturation level.
1871 1647
 *        
1872
 * @param saturation 1-dimensional Interpolator that returns the level of saturation we want to have
1648
 * @param saturation 1-dimensional Dynamic that returns the level of saturation we want to have
1873 1649
 *                   at any given moment.
1874 1650
 * @param region     Region this Effect is limited to.
1875 1651
 *                   Null here means 'apply the Effect to the whole Object'.
1876
 * @param center     2-dimensional Interpolator which, at any given time, returns a Float2D
1652
 * @param center     2-dimensional Dynamic which, at any given time, returns a Static2D
1877 1653
 *                   representing the current center of the effect.
1878 1654
 * @return           ID of the effect added, or -1 if we failed to add one.
1879 1655
 */
1880
  public long smooth_saturation(Interpolator1D saturation, Float4D region, Interpolator2D center)
1656
  public long smooth_saturation(Dynamic1D saturation, Static4D region, Dynamic2D center)
1881 1657
    {
1882 1658
    return mF.add(EffectNames.SMOOTH_SATURATION, saturation, region, center);
1883 1659
    }
......
1888 1664
 * <p>
1889 1665
 * Here the center of the Effect stays constant.
1890 1666
 *         
1891
 * @param saturation 1-dimensional Interpolator that returns the level of saturation we want to have
1667
 * @param saturation 1-dimensional Dynamic that returns the level of saturation we want to have
1892 1668
 *                   at any given moment.
1893 1669
 * @param region     Region this Effect is limited to.
1894 1670
 *                   Null here means 'apply the Effect to the whole Object'.
1895 1671
 * @param center     Center of the Effect.
1896 1672
 * @return           ID of the effect added, or -1 if we failed to add one.
1897 1673
 */
1898
  public long smooth_saturation(Interpolator1D saturation, Float4D region, Float2D center)
1674
  public long smooth_saturation(Dynamic1D saturation, Static4D region, Static2D center)
1899 1675
    {
1900 1676
    return mF.add(EffectNames.SMOOTH_SATURATION, saturation, region, center);
1901 1677
    }
......
1909 1685
 *                   anything more than 1 -increase the saturation. 
1910 1686
 * @param region     Region this Effect is limited to. 
1911 1687
 *                   Null here means 'apply the Effect to the whole Object'.
1912
 * @param center     2-dimensional Interpolator which, at any given time, returns a Float2D
1688
 * @param center     2-dimensional Dynamic which, at any given time, returns a Static2D
1913 1689
 *                   representing the current center of the effect.
1914 1690
 * @param duration   Time, in milliseconds, it takes to do one full interpolation.
1915
 * @param count      Controls how many interpolations we want to do. See {@link Interpolator#setCount(float)}
1691
 * @param count      Controls how many interpolations we want to do. See {@link Dynamic#setCount(float)}
1916 1692
 * @return           ID of the effect added, or -1 if we failed to add one. 
1917 1693
 */
1918
  public long smooth_saturation(float saturation, Float4D region, Interpolator2D center, int duration, float count)
1694
  public long smooth_saturation(float saturation, Static4D region, Dynamic2D center, int duration, float count)
1919 1695
    {
1920
    Interpolator1D di = new Interpolator1D(); 
1696
    Dynamic1D di = new Dynamic1D();
1921 1697
    di.setCount(count);
1922 1698
    di.setDuration(duration);
1923
    di.add(new Float1D(1));                          
1924
    di.add(new Float1D(saturation));                         
1699
    di.add(new Static1D(1));
1700
    di.add(new Static1D(saturation));
1925 1701
   
1926 1702
    return mF.add(EffectNames.SMOOTH_SATURATION, di, region, center);
1927 1703
    }
......
1939 1715
 *                   Null here means 'apply the Effect to the whole Object'.
1940 1716
 * @param center     Center of the Effect.
1941 1717
 * @param duration   Time, in milliseconds, it takes to do one full interpolation.
1942
 * @param count      Controls how many interpolations we want to do. See {@link Interpolator#setCount(float)}
1718
 * @param count      Controls how many interpolations we want to do. See {@link Dynamic#setCount(float)}
1943 1719
 * @return           ID of the effect added, or -1 if we failed to add one. 
1944 1720
 */
1945
  public long smooth_saturation(float saturation, Float4D region, Float2D center, int duration, float count)
1721
  public long smooth_saturation(float saturation, Static4D region, Static2D center, int duration, float count)
1946 1722
    {
1947
    Interpolator1D di = new Interpolator1D(); 
1723
    Dynamic1D di = new Dynamic1D();
1948 1724
    di.setCount(count);
1949 1725
    di.setDuration(duration);
1950
    di.add(new Float1D(1));                          
1951
    di.add(new Float1D(saturation));                         
1726
    di.add(new Static1D(1));
1727
    di.add(new Static1D(saturation));
1952 1728
   
1953 1729
    return mF.add(EffectNames.SMOOTH_SATURATION, di, region, center);
1954 1730
    }
......
1967 1743
 * @param center     Center of the Effect.
1968 1744
 * @return           ID of the effect added, or -1 if we failed to add one. 
1969 1745
 */
1970
  public long smooth_saturation(float saturation, Float4D region, Float2D center)
1746
  public long smooth_saturation(float saturation, Static4D region, Static2D center)
1971 1747
    {
1972
    Interpolator1D di = new Interpolator1D(); 
1748
    Dynamic1D di = new Dynamic1D();
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff