/*
- * Sixth 3D engine. Copyright ©2012-2018, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 3 of the GNU Lesser General Public License
- * or later as published by the Free Software Foundation.
+ * Sixth 3D engine. Author: Svjatoslav Agejenko.
+ * This project is released under Creative Commons Zero (CC0) license.
*
+*
*/
package eu.svjatoslav.sixth.e3d.renderer.raster.shapes.composite.textcanvas;
import eu.svjatoslav.sixth.e3d.geometry.Point3D;
-import eu.svjatoslav.sixth.e3d.math.Transform;
-import eu.svjatoslav.sixth.e3d.math.TransformPipe;
import eu.svjatoslav.sixth.e3d.gui.RenderingContext;
import eu.svjatoslav.sixth.e3d.gui.TextPointer;
+import eu.svjatoslav.sixth.e3d.math.Transform;
+import eu.svjatoslav.sixth.e3d.math.TransformPipe;
import eu.svjatoslav.sixth.e3d.renderer.raster.Color;
import eu.svjatoslav.sixth.e3d.renderer.raster.shapes.composite.TexturedRectangle;
import java.io.IOException;
import java.io.StringReader;
+import static eu.svjatoslav.sixth.e3d.renderer.raster.Color.BLACK;
+import static eu.svjatoslav.sixth.e3d.renderer.raster.Color.WHITE;
+
public class TextCanvas extends TexturedRectangle {
- public static final int FONT_CHAR_WIDTH = 8;
- public static final int FONT_CHAR_HEIGHT = 16;
+ public static final int FONT_CHAR_WIDTH_PIXELS = 8;
+ public static final int FONT_CHAR_HEIGHT_PIXELS = 16;
public static final Font FONT = CanvasCharacter.getFont(15);
private static final String GROUP_TEXTURE = "texture";
private static final String GROUP_CHARACTERS = "characters";
private final TextPointer cursorLocation = new TextPointer();
CanvasCharacter lines[][];
private RenderMode renderMode = null;
- private Color backgroundColor = Color.BLACK;
-
- private Color foregroundColor = Color.WHITE;
+ private Color backgroundColor = BLACK;
+ private Color foregroundColor = WHITE;
public TextCanvas(final Transform location, final String text,
final Color foregroundColor, final Color backgroundColor) {
this.foregroundColor = foregroundColor;
// initialize underlying textured rectangle
- initialize(columns * FONT_CHAR_WIDTH, rows * FONT_CHAR_HEIGHT, 0);
+ initialize(columns * FONT_CHAR_WIDTH_PIXELS, rows * FONT_CHAR_HEIGHT_PIXELS, 0);
getTexture().primaryBitmap.fillColor(backgroundColor);
getTexture().resetResampledBitmapCache();
final char character, final Color foreground) {
final Graphics2D graphics = getTexture().graphics;
- getTexture().primaryBitmap.drawRectangle(column * FONT_CHAR_WIDTH, row
- * FONT_CHAR_HEIGHT, (column * FONT_CHAR_WIDTH)
- + FONT_CHAR_WIDTH, (row * FONT_CHAR_HEIGHT) + FONT_CHAR_HEIGHT,
+ getTexture().primaryBitmap.drawRectangle(column * FONT_CHAR_WIDTH_PIXELS, row
+ * FONT_CHAR_HEIGHT_PIXELS, (column * FONT_CHAR_WIDTH_PIXELS)
+ + FONT_CHAR_WIDTH_PIXELS, (row * FONT_CHAR_HEIGHT_PIXELS) + FONT_CHAR_HEIGHT_PIXELS,
backgroundColor);
graphics.setFont(FONT);
graphics.setColor(foreground.toAwtColor());
graphics.drawChars(new char[]{character,}, 0, 1,
- (column * FONT_CHAR_WIDTH) - 0, (row * FONT_CHAR_HEIGHT) + 13);
+ (column * FONT_CHAR_WIDTH_PIXELS) - 0, (row * FONT_CHAR_HEIGHT_PIXELS) + 13);
getTexture().resetResampledBitmapCache();
}
public Point3D getCharLocation(final int row, final int column) {
final Point3D coordinate = topLeft.clone();
- coordinate.translateY((row * FONT_CHAR_HEIGHT)
- + ((FONT_CHAR_HEIGHT / 2) - 3));
+ coordinate.translateY((row * FONT_CHAR_HEIGHT_PIXELS)
+ + ((FONT_CHAR_HEIGHT_PIXELS / 2) - 3));
- coordinate.translateX((column * FONT_CHAR_WIDTH)
- + (FONT_CHAR_WIDTH / 2));
+ coordinate.translateX((column * FONT_CHAR_WIDTH_PIXELS)
+ + (FONT_CHAR_WIDTH_PIXELS / 2));
return coordinate;
}