home *** CD-ROM | disk | FTP | other *** search
- package java.awt.image;
-
- public final class BandedSampleModel extends ComponentSampleModel {
- public BandedSampleModel(int var1, int var2, int var3, int var4) {
- super(var1, var2, var3, 1, var2, createIndiciesArray(var4), createOffsetArray(var4));
- }
-
- public BandedSampleModel(int var1, int var2, int var3, int var4, int[] var5, int[] var6) {
- super(var1, var2, var3, 1, var4, var5, var6);
- }
-
- public SampleModel createCompatibleSampleModel(int var1, int var2) {
- int[] var3;
- if (super.numBanks == 1) {
- var3 = ((ComponentSampleModel)this).orderBands(super.bandOffsets, var1 * var2);
- } else {
- var3 = new int[super.bandOffsets.length];
- }
-
- BandedSampleModel var4 = new BandedSampleModel(super.dataType, var1, var2, var1, super.bankIndices, var3);
- return var4;
- }
-
- public SampleModel createSubsetSampleModel(int[] var1) {
- if (var1.length > super.bankIndices.length) {
- throw new RasterFormatException("There are only " + super.bankIndices.length + " bands");
- } else {
- int[] var2 = new int[var1.length];
- int[] var3 = new int[var1.length];
-
- for(int var4 = 0; var4 < var1.length; ++var4) {
- var2[var4] = super.bankIndices[var1[var4]];
- var3[var4] = super.bandOffsets[var1[var4]];
- }
-
- return new BandedSampleModel(super.dataType, super.width, super.height, super.scanlineStride, var2, var3);
- }
- }
-
- public DataBuffer createDataBuffer() {
- Object var1 = null;
- int var2 = super.scanlineStride * super.height;
- switch (super.dataType) {
- case 0:
- var1 = new DataBufferByte(var2, super.numBands);
- break;
- case 1:
- var1 = new DataBufferUShort(var2, super.numBands);
- break;
- case 2:
- var1 = new DataBufferShort(var2, super.numBands);
- break;
- case 3:
- var1 = new DataBufferInt(var2, super.numBands);
- }
-
- return (DataBuffer)var1;
- }
-
- public Object getDataElements(int var1, int var2, Object var3, DataBuffer var4) {
- int var5 = ((SampleModel)this).getTransferType();
- int var6 = ((ComponentSampleModel)this).getNumDataElements();
- int var7 = var2 * super.scanlineStride + var1;
- switch (var5) {
- case 0:
- byte[] var8;
- if (var3 == null) {
- var8 = new byte[var6];
- } else {
- var8 = (byte[])var3;
- }
-
- for(int var9 = 0; var9 < var6; ++var9) {
- var8[var9] = (byte)var4.getElem(super.bankIndices[var9], var7 + super.bandOffsets[var9]);
- }
-
- var3 = var8;
- break;
- case 1:
- case 2:
- short[] var10;
- if (var3 == null) {
- var10 = new short[var6];
- } else {
- var10 = (short[])var3;
- }
-
- for(int var11 = 0; var11 < var6; ++var11) {
- var10[var11] = (short)var4.getElem(super.bankIndices[var11], var7 + super.bandOffsets[var11]);
- }
-
- var3 = var10;
- break;
- case 3:
- int[] var12;
- if (var3 == null) {
- var12 = new int[var6];
- } else {
- var12 = (int[])var3;
- }
-
- for(int var13 = 0; var13 < var6; ++var13) {
- var12[var13] = var4.getElem(super.bankIndices[var13], var7 + super.bandOffsets[var13]);
- }
-
- var3 = var12;
- }
-
- return var3;
- }
-
- public int[] getPixel(int var1, int var2, int[] var3, DataBuffer var4) {
- int[] var5;
- if (var3 != null) {
- var5 = var3;
- } else {
- var5 = new int[super.numBands];
- }
-
- int var6 = var2 * super.scanlineStride + var1;
-
- for(int var7 = 0; var7 < super.numBands; ++var7) {
- var5[var7] = var4.getElem(super.bankIndices[var7], var6 + super.bandOffsets[var7]);
- }
-
- return var5;
- }
-
- public int[] getPixels(int var1, int var2, int var3, int var4, int[] var5, DataBuffer var6) {
- int[] var7;
- if (var5 != null) {
- var7 = var5;
- } else {
- var7 = new int[var3 * var4 * super.numBands];
- }
-
- for(int var8 = 0; var8 < super.numBands; ++var8) {
- int var9 = var2 * super.scanlineStride + var1 + super.bandOffsets[var8];
- int var10 = var8;
- int var11 = super.bankIndices[var8];
-
- for(int var12 = 0; var12 < var4; ++var12) {
- int var13 = var9;
-
- for(int var14 = 0; var14 < var3; ++var14) {
- var7[var10] = var6.getElem(var11, var13++);
- var10 += super.numBands;
- }
-
- var9 += super.scanlineStride;
- }
- }
-
- return var7;
- }
-
- public int getSample(int var1, int var2, int var3, DataBuffer var4) {
- int var5 = var4.getElem(super.bankIndices[var3], var2 * super.scanlineStride + var1 + super.bandOffsets[var3]);
- return var5;
- }
-
- public float getSampleFloat(int var1, int var2, int var3, DataBuffer var4) {
- float var5 = var4.getElemFloat(super.bankIndices[var3], var2 * super.scanlineStride + var1 + super.bandOffsets[var3]);
- return var5;
- }
-
- public double getSampleDouble(int var1, int var2, int var3, DataBuffer var4) {
- double var5 = var4.getElemDouble(super.bankIndices[var3], var2 * super.scanlineStride + var1 + super.bandOffsets[var3]);
- return var5;
- }
-
- public int[] getSamples(int var1, int var2, int var3, int var4, int var5, int[] var6, DataBuffer var7) {
- int[] var8;
- if (var6 != null) {
- var8 = var6;
- } else {
- var8 = new int[var3 * var4];
- }
-
- int var9 = var2 * super.scanlineStride + var1 + super.bandOffsets[var5];
- int var10 = 0;
- int var11 = super.bankIndices[var5];
-
- for(int var12 = 0; var12 < var4; ++var12) {
- int var13 = var9;
-
- for(int var14 = 0; var14 < var3; ++var14) {
- var8[var10++] = var7.getElem(var11, var13++);
- }
-
- var9 += super.scanlineStride;
- }
-
- return var8;
- }
-
- public void setDataElements(int var1, int var2, Object var3, DataBuffer var4) {
- int var5 = ((SampleModel)this).getTransferType();
- int var6 = ((ComponentSampleModel)this).getNumDataElements();
- int var7 = var2 * super.scanlineStride + var1;
- switch (var5) {
- case 0:
- byte[] var8 = (byte[])var3;
-
- for(int var9 = 0; var9 < var6; ++var9) {
- var4.setElem(super.bankIndices[var9], var7 + super.bandOffsets[var9], var8[var9] & 255);
- }
- break;
- case 1:
- case 2:
- short[] var10 = (short[])var3;
-
- for(int var11 = 0; var11 < var6; ++var11) {
- var4.setElem(super.bankIndices[var11], var7 + super.bandOffsets[var11], var10[var11] & '\uffff');
- }
- break;
- case 3:
- int[] var12 = (int[])var3;
-
- for(int var13 = 0; var13 < var6; ++var13) {
- var4.setElem(super.bankIndices[var13], var7 + super.bandOffsets[var13], var12[var13]);
- }
- }
-
- }
-
- public void setPixel(int var1, int var2, int[] var3, DataBuffer var4) {
- int var5 = var2 * super.scanlineStride + var1;
-
- for(int var6 = 0; var6 < super.numBands; ++var6) {
- var4.setElem(super.bankIndices[var6], var5 + super.bandOffsets[var6], var3[var6]);
- }
-
- }
-
- public void setPixels(int var1, int var2, int var3, int var4, int[] var5, DataBuffer var6) {
- for(int var7 = 0; var7 < super.numBands; ++var7) {
- int var8 = var2 * super.scanlineStride + var1 + super.bandOffsets[var7];
- int var9 = var7;
- int var10 = super.bankIndices[var7];
-
- for(int var11 = 0; var11 < var4; ++var11) {
- int var12 = var8;
-
- for(int var13 = 0; var13 < var3; ++var13) {
- var6.setElem(var10, var12++, var5[var9]);
- var9 += super.numBands;
- }
-
- var8 += super.scanlineStride;
- }
- }
-
- }
-
- public void setSample(int var1, int var2, int var3, int var4, DataBuffer var5) {
- var5.setElem(super.bankIndices[var3], var2 * super.scanlineStride + var1 + super.bandOffsets[var3], var4);
- }
-
- public void setSample(int var1, int var2, int var3, float var4, DataBuffer var5) {
- var5.setElemFloat(super.bankIndices[var3], var2 * super.scanlineStride + var1 + super.bandOffsets[var3], var4);
- }
-
- public void setSample(int var1, int var2, int var3, double var4, DataBuffer var6) {
- var6.setElemDouble(super.bankIndices[var3], var2 * super.scanlineStride + var1 + super.bandOffsets[var3], var4);
- }
-
- public void setSamples(int var1, int var2, int var3, int var4, int var5, int[] var6, DataBuffer var7) {
- int var8 = var2 * super.scanlineStride + var1 + super.bandOffsets[var5];
- int var9 = 0;
- int var10 = super.bankIndices[var5];
-
- for(int var11 = 0; var11 < var4; ++var11) {
- int var12 = var8;
-
- for(int var13 = 0; var13 < var3; ++var13) {
- var7.setElem(var10, var12++, var6[var9++]);
- }
-
- var8 += super.scanlineStride;
- }
-
- }
-
- private static int[] createOffsetArray(int var0) {
- int[] var1 = new int[var0];
-
- for(int var2 = 0; var2 < var0; ++var2) {
- var1[var2] = 0;
- }
-
- return var1;
- }
-
- private static int[] createIndiciesArray(int var0) {
- int[] var1 = new int[var0];
-
- for(int var2 = 0; var2 < var0; var1[var2] = var2++) {
- }
-
- return var1;
- }
- }
-