in src/main/java/org/apache/xmlgraphics/java2d/ps/PSTilingPattern.java [499:577]
public boolean equals(Object pattern) {
if (pattern == null) {
return false;
}
if (!(pattern instanceof PSTilingPattern)) {
return false;
}
if (this == pattern) {
return true;
}
PSTilingPattern patternObj = (PSTilingPattern) pattern;
if (this.patternType != patternObj.patternType) {
return false;
}
TexturePaint patternTexture = patternObj.getTexturePaint();
if (((patternTexture == null) && (texture != null))
|| ((patternTexture != null) && (texture == null))) {
return false;
}
if ((patternTexture != null) && (texture != null)) {
// compare textures data
int width = texture.getImage().getWidth();
int height = texture.getImage().getHeight();
int widthPattern = patternTexture.getImage().getWidth();
int heightPattern = patternTexture.getImage().getHeight();
if (width != widthPattern) {
return false;
}
if (height != heightPattern) {
return false;
}
int [] rgbData = new int[width * height];
int [] rgbDataPattern = new int[widthPattern * heightPattern];
texture.getImage().getRGB(0, 0, width, height, rgbData, 0, width);
patternTexture.getImage().getRGB(0, 0, widthPattern, heightPattern,
rgbDataPattern, 0, widthPattern);
for (int i = 0; i < rgbData.length; i++) {
if (rgbData[i] != rgbDataPattern[i]) {
return false;
}
}
} else {
// compare PaintProc
if (!paintProc.toString().equals(patternObj.getPaintProc().toString())) {
return false;
}
}
// compare other parameters
if (xStep != patternObj.getXStep()) {
return false;
}
if (yStep != patternObj.getYStep()) {
return false;
}
if (paintType != patternObj.getPaintType()) {
return false;
}
if (tilingType != patternObj.getTilingType()) {
return false;
}
if (!bBox.equals(patternObj.getBoundingBox())) {
return false;
}
if ((xUID != null) && (patternObj.getXUID() != null)) {
if (!xUID.equals(patternObj.getXUID())) {
return false;
}
}
return true;
}