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 / Raster.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  10.3 KB  |  541 lines

  1. package java.awt.image;
  2.  
  3. import java.awt.Point;
  4. import java.awt.Rectangle;
  5. import sun.awt.image.ByteBandedRaster;
  6. import sun.awt.image.ByteInterleavedRaster;
  7. import sun.awt.image.BytePackedRaster;
  8. import sun.awt.image.IntegerInterleavedRaster;
  9. import sun.awt.image.ShortBandedRaster;
  10. import sun.awt.image.ShortInterleavedRaster;
  11.  
  12. public class Raster {
  13.    protected SampleModel sampleModel;
  14.    protected DataBuffer dataBuffer;
  15.    protected int minX;
  16.    protected int minY;
  17.    protected int width;
  18.    protected int height;
  19.    protected int sampleModelTranslateX;
  20.    protected int sampleModelTranslateY;
  21.    protected int numBands;
  22.    protected int numDataElements;
  23.    protected Raster parent;
  24.  
  25.    private static native void initIDs();
  26.  
  27.    public static WritableRaster createInterleavedRaster(int var0, int var1, int var2, int var3, Point var4) {
  28.       int[] var5 = new int[var3];
  29.  
  30.       for(int var6 = 0; var6 < var3; var5[var6] = var6++) {
  31.       }
  32.  
  33.       return createInterleavedRaster(var0, var1, var2, var1 * var3, var3, var5, var4);
  34.    }
  35.  
  36.    public static WritableRaster createInterleavedRaster(int var0, int var1, int var2, int var3, int var4, int[] var5, Point var6) {
  37.       int var8 = var5.length;
  38.       int var9 = var5[0];
  39.  
  40.       for(int var10 = 1; var10 < var8; ++var10) {
  41.          if (var5[var10] > var9) {
  42.             var9 = var5[var10];
  43.          }
  44.       }
  45.  
  46.       int var11 = var9 + var3 * (var2 - 1) + var4 * (var1 - 1) + 1;
  47.       Object var7;
  48.       switch (var0) {
  49.          case 0:
  50.             var7 = new DataBufferByte(var11);
  51.             break;
  52.          case 1:
  53.             var7 = new DataBufferUShort(var11);
  54.             break;
  55.          default:
  56.             throw new IllegalArgumentException("Unsupported data type " + var0);
  57.       }
  58.  
  59.       return createInterleavedRaster((DataBuffer)var7, var1, var2, var3, var4, var5, var6);
  60.    }
  61.  
  62.    public static WritableRaster createBandedRaster(int var0, int var1, int var2, int var3, Point var4) {
  63.       if (var3 < 1) {
  64.          throw new ArrayIndexOutOfBoundsException("Number of bands (" + var3 + ") must" + " be greater than 0");
  65.       } else {
  66.          int[] var5 = new int[var3];
  67.          int[] var6 = new int[var3];
  68.  
  69.          for(int var7 = 0; var7 < var3; ++var7) {
  70.             var5[var7] = var7;
  71.             var6[var7] = 0;
  72.          }
  73.  
  74.          return createBandedRaster(var0, var1, var2, var1, var5, var6, var4);
  75.       }
  76.    }
  77.  
  78.    public static WritableRaster createBandedRaster(int var0, int var1, int var2, int var3, int[] var4, int[] var5, Point var6) {
  79.       int var8 = var5.length;
  80.       if (var4 == null) {
  81.          throw new ArrayIndexOutOfBoundsException("Bank indices array is null");
  82.       } else if (var5 == null) {
  83.          throw new ArrayIndexOutOfBoundsException("Band offsets array is null");
  84.       } else {
  85.          int var9 = var4[0];
  86.          int var10 = var5[0];
  87.  
  88.          for(int var11 = 1; var11 < var8; ++var11) {
  89.             if (var4[var11] > var9) {
  90.                var9 = var4[var11];
  91.             }
  92.  
  93.             if (var5[var11] > var10) {
  94.                var10 = var5[var11];
  95.             }
  96.          }
  97.  
  98.          int var12 = var9 + 1;
  99.          int var13 = var10 + var3 * (var2 - 1) + (var1 - 1) + 1;
  100.          Object var7;
  101.          switch (var0) {
  102.             case 0:
  103.                var7 = new DataBufferByte(var13, var12);
  104.                break;
  105.             case 1:
  106.                var7 = new DataBufferUShort(var13, var12);
  107.                break;
  108.             case 2:
  109.             default:
  110.                throw new IllegalArgumentException("Unsupported data type " + var0);
  111.             case 3:
  112.                var7 = new DataBufferInt(var13, var12);
  113.          }
  114.  
  115.          return createBandedRaster((DataBuffer)var7, var1, var2, var3, var4, var5, var6);
  116.       }
  117.    }
  118.  
  119.    public static WritableRaster createPackedRaster(int var0, int var1, int var2, int[] var3, Point var4) {
  120.       Object var5;
  121.       switch (var0) {
  122.          case 0:
  123.             var5 = new DataBufferByte(var1 * var2);
  124.             break;
  125.          case 1:
  126.             var5 = new DataBufferUShort(var1 * var2);
  127.             break;
  128.          case 2:
  129.          default:
  130.             throw new IllegalArgumentException("Unsupported data type " + var0);
  131.          case 3:
  132.             var5 = new DataBufferInt(var1 * var2);
  133.       }
  134.  
  135.       return createPackedRaster((DataBuffer)var5, var1, var2, var1, var3, var4);
  136.    }
  137.  
  138.    public static WritableRaster createPackedRaster(int var0, int var1, int var2, int var3, int var4, Point var5) {
  139.       if (var3 <= 0) {
  140.          throw new IllegalArgumentException("Number of bands (" + var3 + ") must be greater than 0");
  141.       } else if (var4 <= 0) {
  142.          throw new IllegalArgumentException("Bits per band (" + var4 + ") must be greater than 0");
  143.       } else if (var3 == 1) {
  144.          double var11 = (double)var1;
  145.          Object var6;
  146.          switch (var0) {
  147.             case 0:
  148.                var6 = new DataBufferByte((int)Math.ceil(var11 / (double)(8 / var4)) * var2);
  149.                break;
  150.             case 1:
  151.                var6 = new DataBufferUShort((int)Math.ceil(var11 / (double)(16 / var4)) * var2);
  152.                break;
  153.             case 2:
  154.             default:
  155.                throw new IllegalArgumentException("Unsupported data type " + var0);
  156.             case 3:
  157.                var6 = new DataBufferInt((int)Math.ceil(var11 / (double)(32 / var4)) * var2);
  158.          }
  159.  
  160.          return createPackedRaster((DataBuffer)var6, var1, var2, var4, var5);
  161.       } else {
  162.          int[] var7 = new int[var3];
  163.          int var8 = (1 << var4) - 1;
  164.          int var9 = (var3 - 1) * var4;
  165.          if (var9 + var4 > DataBuffer.getDataTypeSize(var0)) {
  166.             throw new IllegalArgumentException("bitsPerBand(" + var4 + ") * bands is " + " greater than data type " + "size.");
  167.          } else {
  168.             switch (var0) {
  169.                case 0:
  170.                case 1:
  171.                case 3:
  172.                   for(int var10 = 0; var10 < var3; ++var10) {
  173.                      var7[var10] = var8 << var9;
  174.                      var9 -= var4;
  175.                   }
  176.  
  177.                   return createPackedRaster(var0, var1, var2, var7, var5);
  178.                case 2:
  179.                default:
  180.                   throw new IllegalArgumentException("Unsupported data type " + var0);
  181.             }
  182.          }
  183.       }
  184.    }
  185.  
  186.    public static WritableRaster createInterleavedRaster(DataBuffer var0, int var1, int var2, int var3, int var4, int[] var5, Point var6) {
  187.       if (var6 == null) {
  188.          var6 = new Point(0, 0);
  189.       }
  190.  
  191.       int var7 = var0.getDataType();
  192.       PixelInterleavedSampleModel var8 = new PixelInterleavedSampleModel(var7, var1, var2, var4, var3, var5);
  193.       switch (var7) {
  194.          case 0:
  195.             return new ByteInterleavedRaster(var8, var0, var6);
  196.          case 1:
  197.             return new ShortInterleavedRaster(var8, var0, var6);
  198.          default:
  199.             throw new IllegalArgumentException("Unsupported data type " + var7);
  200.       }
  201.    }
  202.  
  203.    public static WritableRaster createBandedRaster(DataBuffer var0, int var1, int var2, int var3, int[] var4, int[] var5, Point var6) {
  204.       if (var6 == null) {
  205.          var6 = new Point(0, 0);
  206.       }
  207.  
  208.       int var7 = var0.getDataType();
  209.       int var8 = var4.length;
  210.       if (var5.length != var8) {
  211.          throw new IllegalArgumentException("bankIndices.length != bandOffsets.length");
  212.       } else {
  213.          BandedSampleModel var9 = new BandedSampleModel(var7, var1, var2, var3, var4, var5);
  214.          switch (var7) {
  215.             case 0:
  216.                return new ByteBandedRaster(var9, var0, var6);
  217.             case 1:
  218.                return new ShortBandedRaster(var9, var0, var6);
  219.             case 2:
  220.             default:
  221.                throw new IllegalArgumentException("Unsupported data type " + var7);
  222.             case 3:
  223.                return new WritableRaster(var9, var0, var6);
  224.          }
  225.       }
  226.    }
  227.  
  228.    public static WritableRaster createPackedRaster(DataBuffer var0, int var1, int var2, int var3, int[] var4, Point var5) {
  229.       if (var5 == null) {
  230.          var5 = new Point(0, 0);
  231.       }
  232.  
  233.       int var6 = var0.getDataType();
  234.       SinglePixelPackedSampleModel var7 = new SinglePixelPackedSampleModel(var6, var1, var2, var3, var4);
  235.       switch (var6) {
  236.          case 0:
  237.             return new ByteInterleavedRaster(var7, var0, var5);
  238.          case 1:
  239.             return new ShortInterleavedRaster(var7, var0, var5);
  240.          case 2:
  241.          default:
  242.             throw new IllegalArgumentException("Unsupported data type " + var6);
  243.          case 3:
  244.             return new IntegerInterleavedRaster(var7, var0, var5);
  245.       }
  246.    }
  247.  
  248.    public static WritableRaster createPackedRaster(DataBuffer var0, int var1, int var2, int var3, Point var4) {
  249.       if (var4 == null) {
  250.          var4 = new Point(0, 0);
  251.       }
  252.  
  253.       int var5 = var0.getDataType();
  254.       if (var0.getNumBanks() != 1) {
  255.          throw new RasterFormatException("DataBuffer for packed Rasters must only have 1 bank.");
  256.       } else {
  257.          MultiPixelPackedSampleModel var6 = new MultiPixelPackedSampleModel(var5, var1, var2, var3);
  258.          switch (var5) {
  259.             case 0:
  260.                return new BytePackedRaster(var6, var0, var4);
  261.             case 1:
  262.                return new WritableRaster(var6, var0, var4);
  263.             case 2:
  264.             default:
  265.                throw new IllegalArgumentException("Unsupported data type " + var5);
  266.             case 3:
  267.                return new WritableRaster(var6, var0, var4);
  268.          }
  269.       }
  270.    }
  271.  
  272.    public static Raster createRaster(SampleModel var0, DataBuffer var1, Point var2) {
  273.       if (var1 == null) {
  274.          throw new NullPointerException("DataBuffer cannot be null");
  275.       } else {
  276.          if (var2 == null) {
  277.             var2 = new Point(0, 0);
  278.          }
  279.  
  280.          int var3 = var0.getDataType();
  281.          if (var0 instanceof PixelInterleavedSampleModel) {
  282.             switch (var3) {
  283.                case 0:
  284.                   return new ByteInterleavedRaster(var0, var1, var2);
  285.                case 1:
  286.                   return new ShortInterleavedRaster(var0, var1, var2);
  287.             }
  288.          } else if (var0 instanceof SinglePixelPackedSampleModel) {
  289.             switch (var3) {
  290.                case 0:
  291.                   return new ByteInterleavedRaster(var0, var1, var2);
  292.                case 1:
  293.                   return new ShortInterleavedRaster(var0, var1, var2);
  294.                case 2:
  295.                default:
  296.                   break;
  297.                case 3:
  298.                   return new IntegerInterleavedRaster(var0, var1, var2);
  299.             }
  300.          } else if (var0 instanceof MultiPixelPackedSampleModel && var3 == 0) {
  301.             return new BytePackedRaster(var0, var1, var2);
  302.          }
  303.  
  304.          return new Raster(var0, var1, var2);
  305.       }
  306.    }
  307.  
  308.    public static WritableRaster createWritableRaster(SampleModel var0, Point var1) {
  309.       if (var1 == null) {
  310.          var1 = new Point(0, 0);
  311.       }
  312.  
  313.       return createWritableRaster(var0, var0.createDataBuffer(), var1);
  314.    }
  315.  
  316.    public static WritableRaster createWritableRaster(SampleModel var0, DataBuffer var1, Point var2) {
  317.       if (var1 == null) {
  318.          throw new NullPointerException("DataBuffer cannot be null");
  319.       } else {
  320.          if (var2 == null) {
  321.             var2 = new Point(0, 0);
  322.          }
  323.  
  324.          int var3 = var0.getDataType();
  325.          if (var0 instanceof PixelInterleavedSampleModel) {
  326.             switch (var3) {
  327.                case 0:
  328.                   return new ByteInterleavedRaster(var0, var1, var2);
  329.                case 1:
  330.                   return new ShortInterleavedRaster(var0, var1, var2);
  331.             }
  332.          } else if (var0 instanceof SinglePixelPackedSampleModel) {
  333.             switch (var3) {
  334.                case 0:
  335.                   return new ByteInterleavedRaster(var0, var1, var2);
  336.                case 1:
  337.                   return new ShortInterleavedRaster(var0, var1, var2);
  338.                case 2:
  339.                default:
  340.                   break;
  341.                case 3:
  342.                   return new IntegerInterleavedRaster(var0, var1, var2);
  343.             }
  344.          } else if (var0 instanceof MultiPixelPackedSampleModel && var3 == 0) {
  345.             return new BytePackedRaster(var0, var1, var2);
  346.          }
  347.  
  348.          return new WritableRaster(var0, var1, var2);
  349.       }
  350.    }
  351.  
  352.    protected Raster(SampleModel var1, Point var2) {
  353.       this(var1, var1.createDataBuffer(), new Rectangle(var2.x, var2.y, var1.getWidth(), var1.getHeight()), var2, (Raster)null);
  354.    }
  355.  
  356.    protected Raster(SampleModel var1, DataBuffer var2, Point var3) {
  357.       this(var1, var2, new Rectangle(var3.x, var3.y, var1.getWidth(), var1.getHeight()), var3, (Raster)null);
  358.    }
  359.  
  360.    protected Raster(SampleModel var1, DataBuffer var2, Rectangle var3, Point var4, Raster var5) {
  361.       if (var2 == null) {
  362.          throw new NullPointerException("DataBuffer cannot be null");
  363.       } else {
  364.          this.sampleModel = var1;
  365.          this.dataBuffer = var2;
  366.          this.minX = var3.x;
  367.          this.minY = var3.y;
  368.          this.width = var3.width;
  369.          this.height = var3.height;
  370.          this.sampleModelTranslateX = var4.x;
  371.          this.sampleModelTranslateY = var4.y;
  372.          this.numBands = var1.getNumBands();
  373.          this.numDataElements = var1.getNumDataElements();
  374.          this.parent = var5;
  375.       }
  376.    }
  377.  
  378.    public Raster getParent() {
  379.       return this.parent;
  380.    }
  381.  
  382.    public final int getSampleModelTranslateX() {
  383.       return this.sampleModelTranslateX;
  384.    }
  385.  
  386.    public final int getSampleModelTranslateY() {
  387.       return this.sampleModelTranslateY;
  388.    }
  389.  
  390.    public WritableRaster createCompatibleWritableRaster() {
  391.       return new WritableRaster(this.sampleModel, new Point(0, 0));
  392.    }
  393.  
  394.    public WritableRaster createCompatibleWritableRaster(int var1, int var2) {
  395.       if (var1 > 0 && var2 > 0) {
  396.          SampleModel var3 = this.sampleModel.createCompatibleSampleModel(var1, var2);
  397.          return new WritableRaster(var3, new Point(0, 0));
  398.       } else {
  399.          throw new RasterFormatException("negative " + (var1 <= 0 ? "width" : "height"));
  400.       }
  401.    }
  402.  
  403.    public WritableRaster createCompatibleWritableRaster(Rectangle var1) {
  404.       return this.createCompatibleWritableRaster(var1.x, var1.y, var1.width, var1.height);
  405.    }
  406.  
  407.    public WritableRaster createCompatibleWritableRaster(int var1, int var2, int var3, int var4) {
  408.       WritableRaster var5 = this.createCompatibleWritableRaster(var3, var4);
  409.       return var5.createWritableChild(0, 0, var3, var4, var1, var2, (int[])null);
  410.    }
  411.  
  412.    public Raster createTranslatedChild(int var1, int var2) {
  413.       return this.createChild(this.minX, this.minY, this.width, this.height, var1, var2, (int[])null);
  414.    }
  415.  
  416.    public Raster createChild(int var1, int var2, int var3, int var4, int var5, int var6, int[] var7) {
  417.       if (var1 < this.minX) {
  418.          throw new RasterFormatException("parentX lies outside raster");
  419.       } else if (var2 < this.minY) {
  420.          throw new RasterFormatException("parentY lies outside raster");
  421.       } else if (var1 + var3 > this.width + this.minX) {
  422.          throw new RasterFormatException("(parentX + width) is outside raster");
  423.       } else if (var2 + var4 > this.height + this.minY) {
  424.          throw new RasterFormatException("(parentY + height) is outside raster");
  425.       } else {
  426.          SampleModel var8;
  427.          if (var7 == null) {
  428.             var8 = this.sampleModel;
  429.          } else {
  430.             var8 = this.sampleModel.createCompatibleSampleModel(var3, var4);
  431.             var8 = var8.createSubsetSampleModel(var7);
  432.          }
  433.  
  434.          int var9 = var5 - var1;
  435.          int var10 = var6 - var2;
  436.          return new Raster(var8, this.dataBuffer, new Rectangle(var5, var6, var3, var4), new Point(this.sampleModelTranslateX + var9, this.sampleModelTranslateY + var10), this);
  437.       }
  438.    }
  439.  
  440.    public Rectangle getBounds() {
  441.       return new Rectangle(this.minX, this.minY, this.width, this.height);
  442.    }
  443.  
  444.    public final int getMinX() {
  445.       return this.minX;
  446.    }
  447.  
  448.    public final int getMinY() {
  449.       return this.minY;
  450.    }
  451.  
  452.    public final int getWidth() {
  453.       return this.width;
  454.    }
  455.  
  456.    public final int getHeight() {
  457.       return this.height;
  458.    }
  459.  
  460.    public final int getNumBands() {
  461.       return this.numBands;
  462.    }
  463.  
  464.    public final int getNumDataElements() {
  465.       return this.sampleModel.getNumDataElements();
  466.    }
  467.  
  468.    public final int getTransferType() {
  469.       return this.sampleModel.getTransferType();
  470.    }
  471.  
  472.    public DataBuffer getDataBuffer() {
  473.       return this.dataBuffer;
  474.    }
  475.  
  476.    public SampleModel getSampleModel() {
  477.       return this.sampleModel;
  478.    }
  479.  
  480.    public Object getDataElements(int var1, int var2, Object var3) {
  481.       return this.sampleModel.getDataElements(var1 - this.sampleModelTranslateX, var2 - this.sampleModelTranslateY, var3, this.dataBuffer);
  482.    }
  483.  
  484.    public Object getDataElements(int var1, int var2, int var3, int var4, Object var5) {
  485.       return this.sampleModel.getDataElements(var1 - this.sampleModelTranslateX, var2 - this.sampleModelTranslateY, var3, var4, var5, this.dataBuffer);
  486.    }
  487.  
  488.    public int[] getPixel(int var1, int var2, int[] var3) {
  489.       return this.sampleModel.getPixel(var1 - this.sampleModelTranslateX, var2 - this.sampleModelTranslateY, var3, this.dataBuffer);
  490.    }
  491.  
  492.    public float[] getPixel(int var1, int var2, float[] var3) {
  493.       return this.sampleModel.getPixel(var1 - this.sampleModelTranslateX, var2 - this.sampleModelTranslateY, var3, this.dataBuffer);
  494.    }
  495.  
  496.    public double[] getPixel(int var1, int var2, double[] var3) {
  497.       return this.sampleModel.getPixel(var1 - this.sampleModelTranslateX, var2 - this.sampleModelTranslateY, var3, this.dataBuffer);
  498.    }
  499.  
  500.    public int[] getPixels(int var1, int var2, int var3, int var4, int[] var5) {
  501.       return this.sampleModel.getPixels(var1 - this.sampleModelTranslateX, var2 - this.sampleModelTranslateY, var3, var4, var5, this.dataBuffer);
  502.    }
  503.  
  504.    public float[] getPixels(int var1, int var2, int var3, int var4, float[] var5) {
  505.       return this.sampleModel.getPixels(var1 - this.sampleModelTranslateX, var2 - this.sampleModelTranslateY, var3, var4, var5, this.dataBuffer);
  506.    }
  507.  
  508.    public double[] getPixels(int var1, int var2, int var3, int var4, double[] var5) {
  509.       return this.sampleModel.getPixels(var1 - this.sampleModelTranslateX, var2 - this.sampleModelTranslateY, var3, var4, var5, this.dataBuffer);
  510.    }
  511.  
  512.    public int getSample(int var1, int var2, int var3) {
  513.       return this.sampleModel.getSample(var1 - this.sampleModelTranslateX, var2 - this.sampleModelTranslateY, var3, this.dataBuffer);
  514.    }
  515.  
  516.    public float getSampleFloat(int var1, int var2, int var3) {
  517.       return this.sampleModel.getSampleFloat(var1 - this.sampleModelTranslateX, var2 - this.sampleModelTranslateY, var3, this.dataBuffer);
  518.    }
  519.  
  520.    public double getSampleDouble(int var1, int var2, int var3) {
  521.       return this.sampleModel.getSampleDouble(var1 - this.sampleModelTranslateX, var2 - this.sampleModelTranslateY, var3, this.dataBuffer);
  522.    }
  523.  
  524.    public int[] getSamples(int var1, int var2, int var3, int var4, int var5, int[] var6) {
  525.       return this.sampleModel.getSamples(var1 - this.sampleModelTranslateX, var2 - this.sampleModelTranslateY, var3, var4, var5, var6, this.dataBuffer);
  526.    }
  527.  
  528.    public float[] getSamples(int var1, int var2, int var3, int var4, int var5, float[] var6) {
  529.       return this.sampleModel.getSamples(var1 - this.sampleModelTranslateX, var2 - this.sampleModelTranslateY, var3, var4, var5, var6, this.dataBuffer);
  530.    }
  531.  
  532.    public double[] getSamples(int var1, int var2, int var3, int var4, int var5, double[] var6) {
  533.       return this.sampleModel.getSamples(var1 - this.sampleModelTranslateX, var2 - this.sampleModelTranslateY, var3, var4, var5, var6, this.dataBuffer);
  534.    }
  535.  
  536.    static {
  537.       ColorModel.loadLibraries();
  538.       initIDs();
  539.    }
  540. }
  541.