01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17: /**
18: * @author Oleg V. Khaschansky
19: * @version $Revision$
20: *
21: * @date: Sep 28, 2005
22: */package java.awt.image;
23:
24: import org.apache.harmony.awt.internal.nls.Messages;
25:
26: public class Kernel implements Cloneable {
27: private final int xOrigin;
28: private final int yOrigin;
29: private int width;
30: private int height;
31: float data[];
32:
33: public Kernel(int width, int height, float[] data) {
34: int dataLength = width * height;
35: if (data.length < dataLength) {
36: // awt.22B=Length of data should not be less than width*height
37: throw new IllegalArgumentException(Messages
38: .getString("awt.22B")); //$NON-NLS-1$
39: }
40:
41: this .width = width;
42: this .height = height;
43:
44: this .data = new float[dataLength];
45: System.arraycopy(data, 0, this .data, 0, dataLength);
46:
47: xOrigin = (width - 1) / 2;
48: yOrigin = (height - 1) / 2;
49: }
50:
51: public final int getWidth() {
52: return width;
53: }
54:
55: public final int getHeight() {
56: return height;
57: }
58:
59: public final float[] getKernelData(float[] data) {
60: if (data == null) {
61: data = new float[this .data.length];
62: }
63: System.arraycopy(this .data, 0, data, 0, this .data.length);
64:
65: return data;
66: }
67:
68: public final int getXOrigin() {
69: return xOrigin;
70: }
71:
72: public final int getYOrigin() {
73: return yOrigin;
74: }
75:
76: @Override
77: public Object clone() {
78: return new Kernel(width, height, data);
79: }
80: }
|