JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / site / j2s / java / awt / image / Raster.js
1 Clazz.declarePackage ("java.awt.image");\r
2 Clazz.load (["java.awt.image.MultiPixelPackedSampleModel", "$.SinglePixelPackedSampleModel"], "java.awt.image.Raster", ["java.lang.IllegalArgumentException", "$.NullPointerException", "java.awt.Point", "$.Rectangle", "java.awt.image.DataBuffer", "$.DataBufferByte", "$.DataBufferInt", "$.RasterFormatException", "swingjs.api.Interface"], function () {\r
3 c$ = Clazz.decorateAsClass (function () {\r
4 this.sampleModel = null;\r
5 this.dataBuffer = null;\r
6 this.minX = 0;\r
7 this.minY = 0;\r
8 this.width = 0;\r
9 this.height = 0;\r
10 this.sampleModelTranslateX = 0;\r
11 this.sampleModelTranslateY = 0;\r
12 this.numBands = 0;\r
13 this.numDataElements = 0;\r
14 this.parent = null;\r
15 Clazz.instantialize (this, arguments);\r
16 }, java.awt.image, "Raster");\r
17 c$.createPackedRaster = Clazz.defineMethod (c$, "createPackedRaster", \r
18 function (dataType, w, h, bandMasks, location) {\r
19 var d;\r
20 switch (dataType) {\r
21 case 0:\r
22 d =  new java.awt.image.DataBufferByte (w * h);\r
23 break;\r
24 case 3:\r
25 d =  new java.awt.image.DataBufferInt (w * h);\r
26 break;\r
27 default:\r
28 throw  new IllegalArgumentException ("Unsupported data type " + dataType);\r
29 }\r
30 return java.awt.image.Raster.createPackedRaster (d, w, h, w, bandMasks, location);\r
31 }, "~N,~N,~N,~A,java.awt.Point");\r
32 c$.createPackedRaster = Clazz.defineMethod (c$, "createPackedRaster", \r
33 function (dataType, w, h, bands, bitsPerBand, location) {\r
34 var d;\r
35 if (bands <= 0) {\r
36 throw  new IllegalArgumentException ("Number of bands (" + bands + ") must be greater than 0");\r
37 }if (bitsPerBand <= 0) {\r
38 throw  new IllegalArgumentException ("Bits per band (" + bitsPerBand + ") must be greater than 0");\r
39 }if (bands != 1) {\r
40 var masks =  Clazz.newIntArray (bands, 0);\r
41 var mask = (1 << bitsPerBand) - 1;\r
42 var shift = (bands - 1) * bitsPerBand;\r
43 if (shift + bitsPerBand > java.awt.image.DataBuffer.getDataTypeSize (dataType)) {\r
44 throw  new IllegalArgumentException ("bitsPerBand(" + bitsPerBand + ") * bands is " + " greater than data type " + "size.");\r
45 }switch (dataType) {\r
46 case 0:\r
47 case 3:\r
48 break;\r
49 default:\r
50 throw  new IllegalArgumentException ("Unsupported data type " + dataType);\r
51 }\r
52 for (var i = 0; i < bands; i++) {\r
53 masks[i] = mask << shift;\r
54 shift = shift - bitsPerBand;\r
55 }\r
56 return java.awt.image.Raster.createPackedRaster (dataType, w, h, masks, location);\r
57 } else {\r
58 var fw = w;\r
59 switch (dataType) {\r
60 case 0:\r
61 d =  new java.awt.image.DataBufferByte (Clazz.doubleToInt (Math.ceil (fw / (Clazz.doubleToInt (8 / bitsPerBand)))) * h);\r
62 break;\r
63 case 3:\r
64 d =  new java.awt.image.DataBufferInt (Clazz.doubleToInt (Math.ceil (fw / (Clazz.doubleToInt (32 / bitsPerBand)))) * h);\r
65 break;\r
66 default:\r
67 throw  new IllegalArgumentException ("Unsupported data type " + dataType);\r
68 }\r
69 return java.awt.image.Raster.createPackedRaster (d, w, h, bitsPerBand, location);\r
70 }}, "~N,~N,~N,~N,~N,java.awt.Point");\r
71 c$.createPackedRaster = Clazz.defineMethod (c$, "createPackedRaster", \r
72 function (dataBuffer, w, h, scanlineStride, bandMasks, location) {\r
73 if (dataBuffer == null) {\r
74 throw  new NullPointerException ("DataBuffer cannot be null");\r
75 }if (location == null) {\r
76 location =  new java.awt.Point (0, 0);\r
77 }var dataType = dataBuffer.getDataType ();\r
78 var sppsm =  new java.awt.image.SinglePixelPackedSampleModel (dataType, w, h, scanlineStride, bandMasks);\r
79 switch (dataType) {\r
80 case 0:\r
81 case 3:\r
82 break;\r
83 default:\r
84 throw  new IllegalArgumentException ("Unsupported data type " + dataType);\r
85 }\r
86 var r = swingjs.api.Interface.getInstance ("jssun.awt.image." + (dataType == 0 ? "Byte" : "Integer") + "InterleavedRaster", true);\r
87 r.setParams (sppsm, dataBuffer, location);\r
88 return r;\r
89 }, "java.awt.image.DataBuffer,~N,~N,~N,~A,java.awt.Point");\r
90 c$.createPackedRaster = Clazz.defineMethod (c$, "createPackedRaster", \r
91 function (dataBuffer, w, h, bitsPerPixel, location) {\r
92 if (dataBuffer == null) {\r
93 throw  new NullPointerException ("DataBuffer cannot be null");\r
94 }if (location == null) {\r
95 location =  new java.awt.Point (0, 0);\r
96 }var dataType = dataBuffer.getDataType ();\r
97 if (dataType != 0 && dataType != 3) {\r
98 throw  new IllegalArgumentException ("Unsupported data type " + dataType);\r
99 }if (dataBuffer.getNumBanks () != 1) {\r
100 throw  new java.awt.image.RasterFormatException ("DataBuffer for packed Rasters must only have 1 bank.");\r
101 }var mppsm =  new java.awt.image.MultiPixelPackedSampleModel (dataType, w, h, bitsPerPixel);\r
102 if (dataType == 0 && (bitsPerPixel == 1 || bitsPerPixel == 2 || bitsPerPixel == 4)) {\r
103 return  new jssun.awt.image.BytePackedRaster (mppsm, dataBuffer, location);\r
104 } else {\r
105 return  new jssun.awt.image.SunWritableRaster (mppsm, dataBuffer, location);\r
106 }}, "java.awt.image.DataBuffer,~N,~N,~N,java.awt.Point");\r
107 c$.createRaster = Clazz.defineMethod (c$, "createRaster", \r
108 function (sm, db, location) {\r
109 if ((sm == null) || (db == null)) {\r
110 throw  new NullPointerException ("SampleModel and DataBuffer cannot be null");\r
111 }if (location == null) {\r
112 location =  new java.awt.Point (0, 0);\r
113 }var dataType = sm.getDataType ();\r
114 if (Clazz.instanceOf (sm, java.awt.image.MultiPixelPackedSampleModel) && dataType == 0 && sm.getSampleSize (0) < 8) {\r
115 return  new jssun.awt.image.BytePackedRaster (sm, db, location);\r
116 }return  new java.awt.image.Raster (sm, db, location);\r
117 }, "java.awt.image.SampleModel,java.awt.image.DataBuffer,java.awt.Point");\r
118 c$.createWritableRaster = Clazz.defineMethod (c$, "createWritableRaster", \r
119 function (sm, location) {\r
120 if (location == null) {\r
121 location =  new java.awt.Point (0, 0);\r
122 }return java.awt.image.Raster.createWritableRaster (sm, sm.createDataBuffer (), location);\r
123 }, "java.awt.image.SampleModel,java.awt.Point");\r
124 c$.createWritableRaster = Clazz.defineMethod (c$, "createWritableRaster", \r
125 function (sm, db, location) {\r
126 if ((sm == null) || (db == null)) {\r
127 throw  new NullPointerException ("SampleModel and DataBuffer cannot be null");\r
128 }if (location == null) {\r
129 location =  new java.awt.Point (0, 0);\r
130 }var dataType = sm.getDataType ();\r
131 if (Clazz.instanceOf (sm, java.awt.image.MultiPixelPackedSampleModel) && dataType == 0 && sm.getSampleSize (0) < 8) {\r
132 return  new jssun.awt.image.BytePackedRaster (sm, db, location);\r
133 }return  new jssun.awt.image.SunWritableRaster (sm, db, location);\r
134 }, "java.awt.image.SampleModel,java.awt.image.DataBuffer,java.awt.Point");\r
135 Clazz.makeConstructor (c$, \r
136 function (sampleModel, origin) {\r
137 this.setRaster (sampleModel, sampleModel.createDataBuffer (),  new java.awt.Rectangle (origin.x, origin.y, sampleModel.getWidth (), sampleModel.getHeight ()), origin, null);\r
138 }, "java.awt.image.SampleModel,java.awt.Point");\r
139 Clazz.makeConstructor (c$, \r
140 function (sampleModel, dataBuffer, origin) {\r
141 this.setRaster (sampleModel, dataBuffer,  new java.awt.Rectangle (origin.x, origin.y, sampleModel.getWidth (), sampleModel.getHeight ()), origin, null);\r
142 }, "java.awt.image.SampleModel,java.awt.image.DataBuffer,java.awt.Point");\r
143 Clazz.makeConstructor (c$, \r
144 function () {\r
145 });\r
146 Clazz.makeConstructor (c$, \r
147 function (sampleModel, dataBuffer, aRegion, sampleModelTranslate, parent) {\r
148 this.setRaster (sampleModel, dataBuffer, aRegion, sampleModelTranslate, parent);\r
149 }, "java.awt.image.SampleModel,java.awt.image.DataBuffer,java.awt.Rectangle,java.awt.Point,java.awt.image.Raster");\r
150 Clazz.defineMethod (c$, "setRaster", \r
151 function (sampleModel, dataBuffer, aRegion, sampleModelTranslate, parent) {\r
152 if ((sampleModel == null) || (dataBuffer == null) || (aRegion == null) || (sampleModelTranslate == null)) {\r
153 throw  new NullPointerException ("SampleModel, dataBuffer, aRegion and sampleModelTranslate cannot be null");\r
154 }this.sampleModel = sampleModel;\r
155 this.dataBuffer = dataBuffer;\r
156 this.minX = aRegion.x;\r
157 this.minY = aRegion.y;\r
158 this.width = aRegion.width;\r
159 this.height = aRegion.height;\r
160 if (this.width <= 0 || this.height <= 0) {\r
161 throw  new java.awt.image.RasterFormatException ("negative or zero " + ((this.width <= 0) ? "width" : "height"));\r
162 }if ((this.minX + this.width) < this.minX) {\r
163 throw  new java.awt.image.RasterFormatException ("overflow condition for X coordinates of Raster");\r
164 }if ((this.minY + this.height) < this.minY) {\r
165 throw  new java.awt.image.RasterFormatException ("overflow condition for Y coordinates of Raster");\r
166 }this.sampleModelTranslateX = sampleModelTranslate.x;\r
167 this.sampleModelTranslateY = sampleModelTranslate.y;\r
168 this.numBands = sampleModel.getNumBands ();\r
169 this.numDataElements = sampleModel.getNumDataElements ();\r
170 this.parent = parent;\r
171 }, "java.awt.image.SampleModel,java.awt.image.DataBuffer,java.awt.Rectangle,java.awt.Point,java.awt.image.Raster");\r
172 Clazz.defineMethod (c$, "getParent", \r
173 function () {\r
174 return this.parent;\r
175 });\r
176 Clazz.defineMethod (c$, "getSampleModelTranslateX", \r
177 function () {\r
178 return this.sampleModelTranslateX;\r
179 });\r
180 Clazz.defineMethod (c$, "getSampleModelTranslateY", \r
181 function () {\r
182 return this.sampleModelTranslateY;\r
183 });\r
184 Clazz.defineMethod (c$, "createCompatibleWritableRaster", \r
185 function () {\r
186 return  new jssun.awt.image.SunWritableRaster (this.sampleModel,  new java.awt.Point (0, 0));\r
187 });\r
188 Clazz.defineMethod (c$, "createCompatibleWritableRaster", \r
189 function (w, h) {\r
190 if (w <= 0 || h <= 0) {\r
191 throw  new java.awt.image.RasterFormatException ("negative " + ((w <= 0) ? "width" : "height"));\r
192 }var sm = this.sampleModel.createCompatibleSampleModel (w, h);\r
193 return  new jssun.awt.image.SunWritableRaster (sm,  new java.awt.Point (0, 0));\r
194 }, "~N,~N");\r
195 Clazz.defineMethod (c$, "createCompatibleWritableRaster", \r
196 function (rect) {\r
197 if (rect == null) {\r
198 throw  new NullPointerException ("Rect cannot be null");\r
199 }return this.createCompatibleWritableRaster (rect.x, rect.y, rect.width, rect.height);\r
200 }, "java.awt.Rectangle");\r
201 Clazz.defineMethod (c$, "createCompatibleWritableRaster", \r
202 function (x, y, w, h) {\r
203 var ret = this.createCompatibleWritableRaster (w, h);\r
204 return ret.createWritableChild (0, 0, w, h, x, y, null);\r
205 }, "~N,~N,~N,~N");\r
206 Clazz.defineMethod (c$, "createTranslatedChild", \r
207 function (childMinX, childMinY) {\r
208 return this.createChild (this.minX, this.minY, this.width, this.height, childMinX, childMinY, null);\r
209 }, "~N,~N");\r
210 Clazz.defineMethod (c$, "createChild", \r
211 function (parentX, parentY, width, height, childMinX, childMinY, bandList) {\r
212 if (parentX < this.minX) {\r
213 throw  new java.awt.image.RasterFormatException ("parentX lies outside raster");\r
214 }if (parentY < this.minY) {\r
215 throw  new java.awt.image.RasterFormatException ("parentY lies outside raster");\r
216 }if ((parentX + width < parentX) || (parentX + width > this.width + this.minX)) {\r
217 throw  new java.awt.image.RasterFormatException ("(parentX + width) is outside raster");\r
218 }if ((parentY + height < parentY) || (parentY + height > this.height + this.minY)) {\r
219 throw  new java.awt.image.RasterFormatException ("(parentY + height) is outside raster");\r
220 }var subSampleModel;\r
221 if (bandList == null) {\r
222 subSampleModel = this.sampleModel;\r
223 } else {\r
224 subSampleModel = this.sampleModel.createSubsetSampleModel (bandList);\r
225 }var deltaX = childMinX - parentX;\r
226 var deltaY = childMinY - parentY;\r
227 return  new java.awt.image.Raster (subSampleModel, this.getDataBuffer (),  new java.awt.Rectangle (childMinX, childMinY, width, height),  new java.awt.Point (this.sampleModelTranslateX + deltaX, this.sampleModelTranslateY + deltaY), this);\r
228 }, "~N,~N,~N,~N,~N,~N,~A");\r
229 Clazz.defineMethod (c$, "getBounds", \r
230 function () {\r
231 return  new java.awt.Rectangle (this.minX, this.minY, this.width, this.height);\r
232 });\r
233 Clazz.defineMethod (c$, "getMinX", \r
234 function () {\r
235 return this.minX;\r
236 });\r
237 Clazz.defineMethod (c$, "getMinY", \r
238 function () {\r
239 return this.minY;\r
240 });\r
241 Clazz.defineMethod (c$, "getWidth", \r
242 function () {\r
243 return this.width;\r
244 });\r
245 Clazz.defineMethod (c$, "getHeight", \r
246 function () {\r
247 return this.height;\r
248 });\r
249 Clazz.defineMethod (c$, "getNumBands", \r
250 function () {\r
251 return this.numBands;\r
252 });\r
253 Clazz.defineMethod (c$, "getNumDataElements", \r
254 function () {\r
255 return this.sampleModel.getNumDataElements ();\r
256 });\r
257 Clazz.defineMethod (c$, "getTransferType", \r
258 function () {\r
259 return this.sampleModel.getTransferType ();\r
260 });\r
261 Clazz.defineMethod (c$, "getDataBuffer", \r
262 function () {\r
263 return this.dataBuffer;\r
264 });\r
265 Clazz.defineMethod (c$, "getSampleModel", \r
266 function () {\r
267 return this.sampleModel;\r
268 });\r
269 Clazz.defineMethod (c$, "getDataElements", \r
270 function (x, y, outData) {\r
271 return this.sampleModel.getDataElements (x - this.sampleModelTranslateX, y - this.sampleModelTranslateY, outData, this.dataBuffer);\r
272 }, "~N,~N,~O");\r
273 Clazz.defineMethod (c$, "getDataElements", \r
274 function (x, y, w, h, outData) {\r
275 return this.sampleModel.getDataElements (x - this.sampleModelTranslateX, y - this.sampleModelTranslateY, w, h, outData, this.dataBuffer);\r
276 }, "~N,~N,~N,~N,~O");\r
277 Clazz.defineMethod (c$, "getPixel", \r
278 function (x, y, iArray) {\r
279 return this.sampleModel.getPixel (x - this.sampleModelTranslateX, y - this.sampleModelTranslateY, iArray, this.dataBuffer);\r
280 }, "~N,~N,~A");\r
281 Clazz.defineMethod (c$, "getPixel", \r
282 function (x, y, fArray) {\r
283 return this.sampleModel.getPixel (x - this.sampleModelTranslateX, y - this.sampleModelTranslateY, fArray, this.dataBuffer);\r
284 }, "~N,~N,~A");\r
285 Clazz.defineMethod (c$, "getPixel", \r
286 function (x, y, dArray) {\r
287 return this.sampleModel.getPixel (x - this.sampleModelTranslateX, y - this.sampleModelTranslateY, dArray, this.dataBuffer);\r
288 }, "~N,~N,~A");\r
289 Clazz.defineMethod (c$, "getPixels", \r
290 function (x, y, w, h, iArray) {\r
291 return this.sampleModel.getPixels (x - this.sampleModelTranslateX, y - this.sampleModelTranslateY, w, h, iArray, this.dataBuffer);\r
292 }, "~N,~N,~N,~N,~A");\r
293 Clazz.defineMethod (c$, "getPixels", \r
294 function (x, y, w, h, fArray) {\r
295 return this.sampleModel.getPixels (x - this.sampleModelTranslateX, y - this.sampleModelTranslateY, w, h, fArray, this.dataBuffer);\r
296 }, "~N,~N,~N,~N,~A");\r
297 Clazz.defineMethod (c$, "getPixels", \r
298 function (x, y, w, h, dArray) {\r
299 return this.sampleModel.getPixels (x - this.sampleModelTranslateX, y - this.sampleModelTranslateY, w, h, dArray, this.dataBuffer);\r
300 }, "~N,~N,~N,~N,~A");\r
301 Clazz.defineMethod (c$, "getSample", \r
302 function (x, y, b) {\r
303 return this.sampleModel.getSample (x - this.sampleModelTranslateX, y - this.sampleModelTranslateY, b, this.dataBuffer);\r
304 }, "~N,~N,~N");\r
305 Clazz.defineMethod (c$, "getSampleFloat", \r
306 function (x, y, b) {\r
307 return this.sampleModel.getSampleFloat (x - this.sampleModelTranslateX, y - this.sampleModelTranslateY, b, this.dataBuffer);\r
308 }, "~N,~N,~N");\r
309 Clazz.defineMethod (c$, "getSampleDouble", \r
310 function (x, y, b) {\r
311 return this.sampleModel.getSampleDouble (x - this.sampleModelTranslateX, y - this.sampleModelTranslateY, b, this.dataBuffer);\r
312 }, "~N,~N,~N");\r
313 Clazz.defineMethod (c$, "getSamples", \r
314 function (x, y, w, h, b, iArray) {\r
315 return this.sampleModel.getSamples (x - this.sampleModelTranslateX, y - this.sampleModelTranslateY, w, h, b, iArray, this.dataBuffer);\r
316 }, "~N,~N,~N,~N,~N,~A");\r
317 Clazz.defineMethod (c$, "getSamples", \r
318 function (x, y, w, h, b, fArray) {\r
319 return this.sampleModel.getSamples (x - this.sampleModelTranslateX, y - this.sampleModelTranslateY, w, h, b, fArray, this.dataBuffer);\r
320 }, "~N,~N,~N,~N,~N,~A");\r
321 Clazz.defineMethod (c$, "getSamples", \r
322 function (x, y, w, h, b, dArray) {\r
323 return this.sampleModel.getSamples (x - this.sampleModelTranslateX, y - this.sampleModelTranslateY, w, h, b, dArray, this.dataBuffer);\r
324 }, "~N,~N,~N,~N,~N,~A");\r
325 });\r