blob: 0accaba1ef26b237836465a8dea796f4fc5b79ff [file] [log] [blame]
/*=============================================================================#
# Copyright (c) 2011, 2021 Stephan Wahlbrink and others.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
# which is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
#
# Contributors:
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
package org.eclipse.statet.rj.graphic.core;
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
/**
* Raster image.
*/
@NonNullByDefault
public class RRaster extends RGraphicElement {
/**
* The image data to draw (RGBA).
*/
public final byte[] imgData;
/**
* The dimension of the {@link #imgData image}.
*/
public final int imgWidth, imgHeight;
/**
* The position for the bottom-left corner where to draw the image.
*/
public final double x, y;
/**
* The dimension where to draw the image.
*/
public final double width, height;
/**
* The degree to rotate anti-clockwise the image.
*/
public final double rotateDegree;
public final boolean interpolate;
/**
* Creates a new raster image element.
*
* @param imgData {@link #imgData}
* @param imgWidth {@link #imgWidth}
* @param imgHeight {@link #imgHeight}
* @param x {@link #x}
* @param y {@link #y}
* @param w {@link #width}
* @param h {@link #height}
* @param rDeg {@link #rotateDegree}
* @param interpolate {@link #interpolate}
*/
public RRaster(final byte[] imgData, final int imgWidth, final int imgHeight,
final double x, final double y, final double w, final double h,
final double rDeg, final boolean interpolate) {
this.imgData= imgData;
this.imgWidth= imgWidth;
this.imgHeight= imgHeight;
this.x= x;
this.y= y;
this.width= w;
this.height= h;
this.rotateDegree= rDeg;
this.interpolate= interpolate;
}
@Override
public byte getInstructionType() {
return DRAW_RASTER;
}
@Override
public String toString() {
final StringBuilder sb= new StringBuilder(50);
sb.append("Raster[(");
sb.append(this.x);
sb.append(",");
sb.append(this.y);
sb.append("), (");
sb.append(this.width);
sb.append(" x ");
sb.append(this.height);
sb.append(", ");
sb.append(this.rotateDegree);
sb.append(", \"");
sb.append(this.interpolate);
sb.append("\"]");
return sb.toString();
}
}