home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / java / awt / image / BandedSampleModel.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  4.3 KB  |  304 lines

  1. package java.awt.image;
  2.  
  3. public final class BandedSampleModel extends ComponentSampleModel {
  4.    public BandedSampleModel(int var1, int var2, int var3, int var4) {
  5.       super(var1, var2, var3, 1, var2, createIndiciesArray(var4), createOffsetArray(var4));
  6.    }
  7.  
  8.    public BandedSampleModel(int var1, int var2, int var3, int var4, int[] var5, int[] var6) {
  9.       super(var1, var2, var3, 1, var4, var5, var6);
  10.    }
  11.  
  12.    public SampleModel createCompatibleSampleModel(int var1, int var2) {
  13.       int[] var3;
  14.       if (super.numBanks == 1) {
  15.          var3 = ((ComponentSampleModel)this).orderBands(super.bandOffsets, var1 * var2);
  16.       } else {
  17.          var3 = new int[super.bandOffsets.length];
  18.       }
  19.  
  20.       BandedSampleModel var4 = new BandedSampleModel(super.dataType, var1, var2, var1, super.bankIndices, var3);
  21.       return var4;
  22.    }
  23.  
  24.    public SampleModel createSubsetSampleModel(int[] var1) {
  25.       if (var1.length > super.bankIndices.length) {
  26.          throw new RasterFormatException("There are only " + super.bankIndices.length + " bands");
  27.       } else {
  28.          int[] var2 = new int[var1.length];
  29.          int[] var3 = new int[var1.length];
  30.  
  31.          for(int var4 = 0; var4 < var1.length; ++var4) {
  32.             var2[var4] = super.bankIndices[var1[var4]];
  33.             var3[var4] = super.bandOffsets[var1[var4]];
  34.          }
  35.  
  36.          return new BandedSampleModel(super.dataType, super.width, super.height, super.scanlineStride, var2, var3);
  37.       }
  38.    }
  39.  
  40.    public DataBuffer createDataBuffer() {
  41.       Object var1 = null;
  42.       int var2 = super.scanlineStride * super.height;
  43.       switch (super.dataType) {
  44.          case 0:
  45.             var1 = new DataBufferByte(var2, super.numBands);
  46.             break;
  47.          case 1:
  48.             var1 = new DataBufferUShort(var2, super.numBands);
  49.             break;
  50.          case 2:
  51.             var1 = new DataBufferShort(var2, super.numBands);
  52.             break;
  53.          case 3:
  54.             var1 = new DataBufferInt(var2, super.numBands);
  55.       }
  56.  
  57.       return (DataBuffer)var1;
  58.    }
  59.  
  60.    public Object getDataElements(int var1, int var2, Object var3, DataBuffer var4) {
  61.       int var5 = ((SampleModel)this).getTransferType();
  62.       int var6 = ((ComponentSampleModel)this).getNumDataElements();
  63.       int var7 = var2 * super.scanlineStride + var1;
  64.       switch (var5) {
  65.          case 0:
  66.             byte[] var8;
  67.             if (var3 == null) {
  68.                var8 = new byte[var6];
  69.             } else {
  70.                var8 = (byte[])var3;
  71.             }
  72.  
  73.             for(int var9 = 0; var9 < var6; ++var9) {
  74.                var8[var9] = (byte)var4.getElem(super.bankIndices[var9], var7 + super.bandOffsets[var9]);
  75.             }
  76.  
  77.             var3 = var8;
  78.             break;
  79.          case 1:
  80.          case 2:
  81.             short[] var10;
  82.             if (var3 == null) {
  83.                var10 = new short[var6];
  84.             } else {
  85.                var10 = (short[])var3;
  86.             }
  87.  
  88.             for(int var11 = 0; var11 < var6; ++var11) {
  89.                var10[var11] = (short)var4.getElem(super.bankIndices[var11], var7 + super.bandOffsets[var11]);
  90.             }
  91.  
  92.             var3 = var10;
  93.             break;
  94.          case 3:
  95.             int[] var12;
  96.             if (var3 == null) {
  97.                var12 = new int[var6];
  98.             } else {
  99.                var12 = (int[])var3;
  100.             }
  101.  
  102.             for(int var13 = 0; var13 < var6; ++var13) {
  103.                var12[var13] = var4.getElem(super.bankIndices[var13], var7 + super.bandOffsets[var13]);
  104.             }
  105.  
  106.             var3 = var12;
  107.       }
  108.  
  109.       return var3;
  110.    }
  111.  
  112.    public int[] getPixel(int var1, int var2, int[] var3, DataBuffer var4) {
  113.       int[] var5;
  114.       if (var3 != null) {
  115.          var5 = var3;
  116.       } else {
  117.          var5 = new int[super.numBands];
  118.       }
  119.  
  120.       int var6 = var2 * super.scanlineStride + var1;
  121.  
  122.       for(int var7 = 0; var7 < super.numBands; ++var7) {
  123.          var5[var7] = var4.getElem(super.bankIndices[var7], var6 + super.bandOffsets[var7]);
  124.       }
  125.  
  126.       return var5;
  127.    }
  128.  
  129.    public int[] getPixels(int var1, int var2, int var3, int var4, int[] var5, DataBuffer var6) {
  130.       int[] var7;
  131.       if (var5 != null) {
  132.          var7 = var5;
  133.       } else {
  134.          var7 = new int[var3 * var4 * super.numBands];
  135.       }
  136.  
  137.       for(int var8 = 0; var8 < super.numBands; ++var8) {
  138.          int var9 = var2 * super.scanlineStride + var1 + super.bandOffsets[var8];
  139.          int var10 = var8;
  140.          int var11 = super.bankIndices[var8];
  141.  
  142.          for(int var12 = 0; var12 < var4; ++var12) {
  143.             int var13 = var9;
  144.  
  145.             for(int var14 = 0; var14 < var3; ++var14) {
  146.                var7[var10] = var6.getElem(var11, var13++);
  147.                var10 += super.numBands;
  148.             }
  149.  
  150.             var9 += super.scanlineStride;
  151.          }
  152.       }
  153.  
  154.       return var7;
  155.    }
  156.  
  157.    public int getSample(int var1, int var2, int var3, DataBuffer var4) {
  158.       int var5 = var4.getElem(super.bankIndices[var3], var2 * super.scanlineStride + var1 + super.bandOffsets[var3]);
  159.       return var5;
  160.    }
  161.  
  162.    public float getSampleFloat(int var1, int var2, int var3, DataBuffer var4) {
  163.       float var5 = var4.getElemFloat(super.bankIndices[var3], var2 * super.scanlineStride + var1 + super.bandOffsets[var3]);
  164.       return var5;
  165.    }
  166.  
  167.    public double getSampleDouble(int var1, int var2, int var3, DataBuffer var4) {
  168.       double var5 = var4.getElemDouble(super.bankIndices[var3], var2 * super.scanlineStride + var1 + super.bandOffsets[var3]);
  169.       return var5;
  170.    }
  171.  
  172.    public int[] getSamples(int var1, int var2, int var3, int var4, int var5, int[] var6, DataBuffer var7) {
  173.       int[] var8;
  174.       if (var6 != null) {
  175.          var8 = var6;
  176.       } else {
  177.          var8 = new int[var3 * var4];
  178.       }
  179.  
  180.       int var9 = var2 * super.scanlineStride + var1 + super.bandOffsets[var5];
  181.       int var10 = 0;
  182.       int var11 = super.bankIndices[var5];
  183.  
  184.       for(int var12 = 0; var12 < var4; ++var12) {
  185.          int var13 = var9;
  186.  
  187.          for(int var14 = 0; var14 < var3; ++var14) {
  188.             var8[var10++] = var7.getElem(var11, var13++);
  189.          }
  190.  
  191.          var9 += super.scanlineStride;
  192.       }
  193.  
  194.       return var8;
  195.    }
  196.  
  197.    public void setDataElements(int var1, int var2, Object var3, DataBuffer var4) {
  198.       int var5 = ((SampleModel)this).getTransferType();
  199.       int var6 = ((ComponentSampleModel)this).getNumDataElements();
  200.       int var7 = var2 * super.scanlineStride + var1;
  201.       switch (var5) {
  202.          case 0:
  203.             byte[] var8 = (byte[])var3;
  204.  
  205.             for(int var9 = 0; var9 < var6; ++var9) {
  206.                var4.setElem(super.bankIndices[var9], var7 + super.bandOffsets[var9], var8[var9] & 255);
  207.             }
  208.             break;
  209.          case 1:
  210.          case 2:
  211.             short[] var10 = (short[])var3;
  212.  
  213.             for(int var11 = 0; var11 < var6; ++var11) {
  214.                var4.setElem(super.bankIndices[var11], var7 + super.bandOffsets[var11], var10[var11] & '\uffff');
  215.             }
  216.             break;
  217.          case 3:
  218.             int[] var12 = (int[])var3;
  219.  
  220.             for(int var13 = 0; var13 < var6; ++var13) {
  221.                var4.setElem(super.bankIndices[var13], var7 + super.bandOffsets[var13], var12[var13]);
  222.             }
  223.       }
  224.  
  225.    }
  226.  
  227.    public void setPixel(int var1, int var2, int[] var3, DataBuffer var4) {
  228.       int var5 = var2 * super.scanlineStride + var1;
  229.  
  230.       for(int var6 = 0; var6 < super.numBands; ++var6) {
  231.          var4.setElem(super.bankIndices[var6], var5 + super.bandOffsets[var6], var3[var6]);
  232.       }
  233.  
  234.    }
  235.  
  236.    public void setPixels(int var1, int var2, int var3, int var4, int[] var5, DataBuffer var6) {
  237.       for(int var7 = 0; var7 < super.numBands; ++var7) {
  238.          int var8 = var2 * super.scanlineStride + var1 + super.bandOffsets[var7];
  239.          int var9 = var7;
  240.          int var10 = super.bankIndices[var7];
  241.  
  242.          for(int var11 = 0; var11 < var4; ++var11) {
  243.             int var12 = var8;
  244.  
  245.             for(int var13 = 0; var13 < var3; ++var13) {
  246.                var6.setElem(var10, var12++, var5[var9]);
  247.                var9 += super.numBands;
  248.             }
  249.  
  250.             var8 += super.scanlineStride;
  251.          }
  252.       }
  253.  
  254.    }
  255.  
  256.    public void setSample(int var1, int var2, int var3, int var4, DataBuffer var5) {
  257.       var5.setElem(super.bankIndices[var3], var2 * super.scanlineStride + var1 + super.bandOffsets[var3], var4);
  258.    }
  259.  
  260.    public void setSample(int var1, int var2, int var3, float var4, DataBuffer var5) {
  261.       var5.setElemFloat(super.bankIndices[var3], var2 * super.scanlineStride + var1 + super.bandOffsets[var3], var4);
  262.    }
  263.  
  264.    public void setSample(int var1, int var2, int var3, double var4, DataBuffer var6) {
  265.       var6.setElemDouble(super.bankIndices[var3], var2 * super.scanlineStride + var1 + super.bandOffsets[var3], var4);
  266.    }
  267.  
  268.    public void setSamples(int var1, int var2, int var3, int var4, int var5, int[] var6, DataBuffer var7) {
  269.       int var8 = var2 * super.scanlineStride + var1 + super.bandOffsets[var5];
  270.       int var9 = 0;
  271.       int var10 = super.bankIndices[var5];
  272.  
  273.       for(int var11 = 0; var11 < var4; ++var11) {
  274.          int var12 = var8;
  275.  
  276.          for(int var13 = 0; var13 < var3; ++var13) {
  277.             var7.setElem(var10, var12++, var6[var9++]);
  278.          }
  279.  
  280.          var8 += super.scanlineStride;
  281.       }
  282.  
  283.    }
  284.  
  285.    private static int[] createOffsetArray(int var0) {
  286.       int[] var1 = new int[var0];
  287.  
  288.       for(int var2 = 0; var2 < var0; ++var2) {
  289.          var1[var2] = 0;
  290.       }
  291.  
  292.       return var1;
  293.    }
  294.  
  295.    private static int[] createIndiciesArray(int var0) {
  296.       int[] var1 = new int[var0];
  297.  
  298.       for(int var2 = 0; var2 < var0; var1[var2] = var2++) {
  299.       }
  300.  
  301.       return var1;
  302.    }
  303. }
  304.