home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 24 / CDACTUAL24.iso / corel / BARISTA / ANIMATIONLIB / B_EFFECT.CLASS (.txt) < prev    next >
Encoding:
Java Class File  |  1997-07-24  |  6.7 KB  |  376 lines

  1. package animationlib;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Graphics;
  6. import java.awt.Image;
  7. import java.awt.Polygon;
  8. import java.awt.image.ImageObserver;
  9. import java.awt.image.ImageProducer;
  10. import java.awt.image.MemoryImageSource;
  11. import java.awt.image.PixelGrabber;
  12.  
  13. class B_effect extends animator {
  14.    // $FF: renamed from: x int
  15.    private int field_0;
  16.    // $FF: renamed from: y int
  17.    private int field_1;
  18.    private int OriginX;
  19.    private int OriginY;
  20.    private int NowX;
  21.    private int NowY;
  22.    private int nSteps;
  23.    private int nEffectType;
  24.    private int nStepOfEffect;
  25.    private int nWidth;
  26.    private int nHeight;
  27.    private boolean bEnter;
  28.    private int nStep;
  29.    private static final int ENTER = 0;
  30.    private static final int EXIT = 1;
  31.    private Image[] Working;
  32.    private Image Original;
  33.    private Image Target;
  34.    // $FF: renamed from: pg java.awt.image.PixelGrabber
  35.    private PixelGrabber field_2;
  36.    private byte[] OrigPixData;
  37.    private byte[][] WorkingPixData;
  38.    private int stepony;
  39.    private int steponx;
  40.    private int curx;
  41.    private int cury;
  42.    // $FF: renamed from: xs int[]
  43.    private int[] field_3 = new int[7];
  44.    // $FF: renamed from: ys int[]
  45.    private int[] field_4 = new int[7];
  46.    private static final int NONE = 0;
  47.    private static final int SCROLL = 1;
  48.    private static final int ZOOM = 2;
  49.    private static final int ZOOM_RECTANGLE = 3;
  50.    private static final int TLtoBR = 4;
  51.    private static final int TRtoBL = 5;
  52.    private static final int BLtoTR = 6;
  53.    private static final int BRtoTL = 7;
  54.    private static final int CHECKER_BOARD = 8;
  55.    private static final int IRIS = 9;
  56.    private static final int CIRCULAR_WIPE = 10;
  57.    private static final int PIXELIZE = 11;
  58.    // $FF: renamed from: wm animationlib.animator
  59.    private animator field_5;
  60.    private Image origpic;
  61.    // $FF: renamed from: ip java.awt.image.ImageProducer
  62.    private ImageProducer field_6;
  63.    private int finalx;
  64.    private int finaly;
  65.    private int whichprop;
  66.  
  67.    B_effect(int var1, int var2, int var3, int var4, boolean var5, animator var6, int var7, int var8, int var9) {
  68.       var6.CreateICM();
  69.       this.nEffectType = var1;
  70.       this.nSteps = var2;
  71.       this.OriginX = var3;
  72.       this.OriginY = var4;
  73.       this.nStepOfEffect = 0;
  74.       this.bEnter = var5;
  75.       this.Working = new Image[this.nSteps];
  76.       this.field_5 = var6;
  77.       this.finalx = var7;
  78.       this.finaly = var8;
  79.       this.whichprop = var9;
  80.       this.render();
  81.    }
  82.  
  83.    public void render() {
  84.       if (this.nEffectType != 0) {
  85.          this.field_6 = new MemoryImageSource(this.field_5.file_prop_celwidth[this.whichprop], this.field_5.file_prop_celheight[this.whichprop], this.field_5.cm, this.field_5.prop_data[this.whichprop], 0, this.field_5.file_prop_celwidth[this.whichprop]);
  86.          this.origpic = ((Component)this).createImage(this.field_6);
  87.          this.field_0 = this.finalx;
  88.          this.field_1 = this.finaly;
  89.          this.NowX = this.finalx;
  90.          this.NowY = this.finaly;
  91.          this.nWidth = this.origpic.getWidth((ImageObserver)null);
  92.          this.nHeight = this.origpic.getHeight((ImageObserver)null);
  93.          this.stepony = this.nHeight / this.nSteps;
  94.          this.steponx = this.nWidth / this.nSteps;
  95.          this.OrigPixData = new byte[this.nWidth * this.nHeight];
  96.          this.WorkingPixData = new byte[this.nSteps][this.nWidth * this.nHeight];
  97.          this.Working[0] = ((Component)this).createImage(this.field_6);
  98.          System.arraycopy(this.field_5.prop_data[this.whichprop], 0, this.OrigPixData, 0, this.nWidth * this.nHeight);
  99.          switch (this.nEffectType) {
  100.             case 4:
  101.             case 5:
  102.             case 6:
  103.             case 7:
  104.             case 8:
  105.             case 9:
  106.             case 10:
  107.             case 11:
  108.                this.Working[0] = ((Component)this).createImage(new MemoryImageSource(this.nWidth, this.nHeight, this.field_5.cm, this.WorkingPixData[0], 0, this.nWidth));
  109.             case 1:
  110.             case 2:
  111.             case 3:
  112.             default:
  113.                for(this.nStepOfEffect = 0; this.nStepOfEffect < this.nSteps; ++this.nStepOfEffect) {
  114.                   this.doEffect();
  115.                }
  116.  
  117.                this.nStepOfEffect = 0;
  118.                if (this.bEnter) {
  119.                   this.field_5.prop_effect_rendered[this.whichprop][0] = true;
  120.                } else {
  121.                   this.field_5.prop_effect_rendered[this.whichprop][1] = true;
  122.                }
  123.          }
  124.       }
  125.    }
  126.  
  127.    boolean renderRest(Graphics var1) {
  128.       if (this.nStepOfEffect >= this.nSteps) {
  129.          return false;
  130.       } else {
  131.          if (!this.bEnter) {
  132.             this.nStep = this.nSteps - this.nStepOfEffect - 1;
  133.          } else {
  134.             this.nStep = this.nStepOfEffect;
  135.          }
  136.  
  137.          switch (this.nEffectType) {
  138.             case 1:
  139.                this.NowX = this.OriginX - (this.OriginX - this.field_0) / this.nSteps * this.nStep;
  140.                this.NowY = this.OriginY - (this.OriginY - this.field_1) / this.nSteps * this.nStep;
  141.                var1.drawImage(this.Working[0], this.NowX, this.NowY, (ImageObserver)null);
  142.                break;
  143.             case 2:
  144.                this.NowX = this.OriginX - (this.OriginX - this.field_0) / this.nSteps * this.nStep;
  145.                this.NowY = this.OriginY - (this.OriginY - this.field_1) / this.nSteps * this.nStep;
  146.                int var2 = this.nWidth / this.nSteps * this.nStep;
  147.                int var3 = this.nHeight / this.nSteps * this.nStep;
  148.                var1.drawImage(this.Working[0], this.NowX, this.NowY, var2, var3, (ImageObserver)null);
  149.                break;
  150.             case 3:
  151.                this.NowX = this.OriginX - (this.OriginX - this.field_0) / this.nSteps * this.nStep;
  152.                this.NowY = this.OriginY - (this.OriginY - this.field_1) / this.nSteps * this.nStep;
  153.                int var4 = this.nWidth / this.nSteps * this.nStep;
  154.                int var5 = this.nHeight / this.nSteps * this.nStep;
  155.                var1.setColor(Color.white);
  156.                var1.setXORMode(Color.black);
  157.                var1.drawRect(this.NowX, this.NowY, var4, var5);
  158.                var1.setPaintMode();
  159.                break;
  160.             case 4:
  161.             case 5:
  162.             case 6:
  163.             case 7:
  164.             case 8:
  165.             case 9:
  166.             case 10:
  167.                this.NowX = this.field_0;
  168.                this.NowY = this.field_1;
  169.                var1.drawImage(this.Working[this.nStep], this.NowX, this.NowY, (ImageObserver)null);
  170.                break;
  171.             case 11:
  172.                this.NowX = this.field_0;
  173.                this.NowY = this.field_1;
  174.                var1.drawImage(this.Working[this.nStep], this.NowX, this.NowY, this.nWidth, this.nHeight, (ImageObserver)null);
  175.          }
  176.  
  177.          ++this.nStepOfEffect;
  178.          if (this.nStepOfEffect >= this.nSteps) {
  179.             this.nStepOfEffect = 0;
  180.             this.NowX = this.OriginX;
  181.             this.NowY = this.OriginY;
  182.             return false;
  183.          } else {
  184.             return true;
  185.          }
  186.       }
  187.    }
  188.  
  189.    void doEffect() {
  190.       switch (this.nEffectType) {
  191.          case 1:
  192.          case 2:
  193.          case 3:
  194.          default:
  195.             break;
  196.          case 4:
  197.             this.curx = this.steponx * this.nStepOfEffect * 2;
  198.             this.cury = this.stepony * this.nStepOfEffect * 2;
  199.             this.field_4[0] = -1;
  200.             this.field_4[1] = -1;
  201.             this.field_4[2] = this.cury;
  202.             this.field_3[0] = -1;
  203.             this.field_3[1] = this.curx;
  204.             this.field_3[2] = -1;
  205.             break;
  206.          case 5:
  207.             this.curx = this.steponx * this.nStepOfEffect * -2 + this.nWidth;
  208.             this.cury = this.stepony * this.nStepOfEffect * 2;
  209.             this.field_4[0] = -1;
  210.             this.field_4[1] = this.cury;
  211.             this.field_4[2] = -1;
  212.             this.field_3[0] = this.curx;
  213.             this.field_3[1] = this.nWidth;
  214.             this.field_3[2] = this.nWidth;
  215.             break;
  216.          case 6:
  217.             this.curx = this.steponx * this.nStepOfEffect * 2;
  218.             this.cury = this.stepony * this.nStepOfEffect * -2 + this.nHeight;
  219.             this.field_4[0] = this.nHeight;
  220.             this.field_4[1] = this.cury;
  221.             this.field_4[2] = this.nHeight;
  222.             this.field_3[0] = -1;
  223.             this.field_3[1] = -1;
  224.             this.field_3[2] = this.curx;
  225.             break;
  226.          case 7:
  227.             this.curx = this.steponx * this.nStepOfEffect * -2 + this.nWidth;
  228.             this.cury = this.stepony * this.nStepOfEffect * -2 + this.nHeight;
  229.             this.field_4[0] = this.nHeight;
  230.             this.field_4[1] = this.cury;
  231.             this.field_4[2] = this.nHeight;
  232.             this.field_3[0] = this.nWidth;
  233.             this.field_3[1] = this.nWidth;
  234.             this.field_3[2] = this.curx;
  235.             break;
  236.          case 8:
  237.             int var1 = this.nWidth / 4;
  238.             int var2 = var1 / 2;
  239.             int var3 = var1 / this.nSteps * this.nStepOfEffect;
  240.             int var4 = this.nHeight / 4;
  241.             int var5 = var4 / 2;
  242.             int var6 = var4 / this.nSteps * this.nStepOfEffect;
  243.  
  244.             for(int var30 = 0; var30 < 4; ++var30) {
  245.                for(int var31 = 0; var31 < 4; ++var31) {
  246.                   int var7 = var1 * var30 + var2 - var3 / 2 + (var4 * var31 + var5 - var6 / 2) * this.nWidth;
  247.  
  248.                   for(int var32 = 0; var32 < var6; ++var32) {
  249.                      for(int var33 = 0; var33 < var3; ++var33) {
  250.                         this.WorkingPixData[this.nStepOfEffect][var7 + var33] = this.OrigPixData[var7 + var33];
  251.                      }
  252.  
  253.                      var7 += this.nWidth;
  254.                   }
  255.                }
  256.             }
  257.  
  258.             this.Working[this.nStepOfEffect] = ((Component)this).createImage(new MemoryImageSource(this.nWidth, this.nHeight, this.field_5.cm, this.WorkingPixData[this.nStepOfEffect], 0, this.nWidth));
  259.             break;
  260.          case 9:
  261.             int var8 = this.nWidth / 2;
  262.             int var9 = this.nHeight / 2;
  263.             Math.max(var8, var9);
  264.             int var10 = (int)Math.sqrt((double)(var8 * var8 + var9 * var9));
  265.             int var11 = var10 / this.nSteps * this.nStepOfEffect;
  266.  
  267.             for(int var34 = -this.nHeight / 2; var34 < this.nHeight / 2; ++var34) {
  268.                for(int var36 = -this.nWidth / 2; var36 < this.nWidth / 2; ++var36) {
  269.                   if (var36 * var36 + var34 * var34 <= var11 * var11) {
  270.                      this.WorkingPixData[this.nStepOfEffect][(var34 + var9) * this.nWidth + var36 + var8] = this.OrigPixData[(var34 + var9) * this.nWidth + var36 + var8];
  271.                   }
  272.                }
  273.             }
  274.  
  275.             this.Working[this.nStepOfEffect] = ((Component)this).createImage(new MemoryImageSource(this.nWidth, this.nHeight, this.field_5.cm, this.WorkingPixData[this.nStepOfEffect], 0, this.nWidth));
  276.             break;
  277.          case 10:
  278.             byte var12 = 2;
  279.  
  280.             for(int var13 = 2; var13 < 7; ++var13) {
  281.                this.field_4[var13] = this.nHeight / 2;
  282.                this.field_3[var13] = this.nWidth / 2;
  283.             }
  284.  
  285.             this.field_4[0] = this.nHeight / 2;
  286.             this.field_4[1] = this.nHeight / 2;
  287.             this.field_3[0] = this.nWidth / 2;
  288.             this.field_3[1] = this.nWidth;
  289.             int var35 = 360 / this.nSteps * this.nStepOfEffect;
  290.             if (var35 >= 45) {
  291.                var12 = 3;
  292.                this.field_4[2] = this.nHeight;
  293.                this.field_3[2] = this.nWidth;
  294.             }
  295.  
  296.             if (var35 >= 135) {
  297.                var12 = 4;
  298.                this.field_4[3] = this.nHeight;
  299.                this.field_3[3] = -1;
  300.             }
  301.  
  302.             if (var35 >= 225) {
  303.                var12 = 5;
  304.                this.field_4[4] = -1;
  305.                this.field_3[4] = -1;
  306.             }
  307.  
  308.             if (var35 >= 315) {
  309.                var12 = 6;
  310.                this.field_4[5] = -1;
  311.                this.field_3[5] = this.nWidth;
  312.             }
  313.  
  314.             if (var35 < 90) {
  315.                this.field_3[var12] = this.nWidth;
  316.                this.field_4[var12] = (int)((double)(this.nHeight / 2) + (double)(this.nWidth / 2) * Math.tan((double)((float)var35) * Math.PI / (double)180.0F));
  317.             } else if (var35 <= 180 && var35 > 90) {
  318.                this.field_3[var12] = -1;
  319.                this.field_4[var12] = (int)((double)(this.nHeight / 2) + (double)(this.nWidth / 2) * Math.tan((double)((float)(-(var35 - 180))) * Math.PI / (double)180.0F));
  320.             } else if (var35 <= 270 && var35 > 180) {
  321.                this.field_3[var12] = -1;
  322.                this.field_4[var12] = (int)((double)(this.nHeight / 2) - (double)(this.nWidth / 2) * Math.tan((double)((float)(var35 - 180)) * Math.PI / (double)180.0F));
  323.             } else if (var35 <= 360 && var35 > 270) {
  324.                this.field_3[var12] = this.nWidth;
  325.                this.field_4[var12] = (int)((double)(this.nHeight / 2) - (double)(this.nWidth / 2) * Math.tan((double)((float)(-(var35 - 360))) * Math.PI / (double)180.0F));
  326.             }
  327.  
  328.             Polygon var14 = new Polygon(this.field_3, this.field_4, var12 + 1);
  329.  
  330.             for(int var37 = 0; var37 < this.nHeight; ++var37) {
  331.                for(int var16 = 0; var16 < this.nWidth; ++var16) {
  332.                   if (var14.inside(var16, var37)) {
  333.                      this.WorkingPixData[this.nStepOfEffect][var37 * this.nWidth + var16] = this.OrigPixData[var37 * this.nWidth + var16];
  334.                   }
  335.                }
  336.             }
  337.  
  338.             this.Working[this.nStepOfEffect] = ((Component)this).createImage(new MemoryImageSource(this.nWidth, this.nHeight, this.field_5.cm, this.WorkingPixData[this.nStepOfEffect], 0, this.nWidth));
  339.             break;
  340.          case 11:
  341.             double var15 = (double)(this.nSteps - this.nStepOfEffect);
  342.             double var17 = Math.floor((double)this.nHeight / var15);
  343.             double var19 = Math.floor((double)this.nWidth / var15);
  344.             int var21 = 0;
  345.             int var22 = 0;
  346.  
  347.             for(double var23 = var15 / (double)2.0F; var23 < (double)this.nHeight; var23 += var15) {
  348.                for(double var25 = var15 / (double)2.0F; var25 < (double)this.nWidth; var25 += var15) {
  349.                   this.WorkingPixData[this.nStepOfEffect][var21] = this.OrigPixData[(int)var23 * this.nWidth + (int)var25];
  350.                   ++var21;
  351.                }
  352.  
  353.                ++var22;
  354.                var21 = (int)(var19 * (double)var22);
  355.             }
  356.  
  357.             this.Working[this.nStepOfEffect] = ((Component)this).createImage(new MemoryImageSource((int)var19, (int)var17, this.field_5.cm, this.WorkingPixData[this.nStepOfEffect], 0, (int)var19));
  358.       }
  359.  
  360.       if (this.nEffectType >= 4 && this.nEffectType <= 7) {
  361.          Polygon var27 = new Polygon(this.field_3, this.field_4, 3);
  362.  
  363.          for(int var28 = 0; var28 < this.nHeight; ++var28) {
  364.             for(int var29 = 0; var29 < this.nWidth; ++var29) {
  365.                if (var27.inside(var29, var28)) {
  366.                   this.WorkingPixData[this.nStepOfEffect][var28 * this.nWidth + var29] = this.OrigPixData[var28 * this.nWidth + var29];
  367.                }
  368.             }
  369.          }
  370.  
  371.          this.Working[this.nStepOfEffect] = ((Component)this).createImage(new MemoryImageSource(this.nWidth, this.nHeight, this.field_5.cm, this.WorkingPixData[this.nStepOfEffect], 0, this.nWidth));
  372.       }
  373.  
  374.    }
  375. }
  376.