package org.notimetoplay.voxeldesc;

import java.util.TreeMap;
import java.awt.Color;

public class VoxelScene {
	private TreeMap<Point3D, Color> voxels = new TreeMap<Point3D, Color>();
	
	public TreeMap<Point3D, Color> getVoxels() {
		return voxels;
	}
}

@@ -246,11 +246,1121 @@
 xels;%0A%09%7D
+%0A%0A%09private Color drawingColor = Color.BLACK;%0A%09%0A%09public Color getDrawingColor() %7B%0A%09%09return drawingColor;%0A%09%7D%0A%09%0A%09public void setDrawingColor(final Color c) %7B%0A%09%09if (c == null) throw new NullPointerException(%0A%09%09%09%22Non-null color expected%22);%0A%09%09drawingColor = c;%0A%09%7D%0A%09%0A%09private final Point3D cursor = new Point3D(0, 0, 0);%0A%09%0A%09public VoxelScene from(final byte x, final byte y, final byte z) %7B%0A%09%09cursor.x = x;%0A%09%09cursor.y = y;%0A%09%09cursor.z = z;%0A%09%09%0A%09%09return this;%0A%09%7D%0A%09%0A%09private final Point3D mark = new Point3D(0, 0, 0);%0A%09%0A%09public VoxelScene to(final byte x, final byte y, final byte z) %7B%0A%09%09mark.x = x;%0A%09%09mark.y = y;%0A%09%09mark.z = z;%0A%09%09%0A%09%09return this;%0A%09%7D%0A%09%0A%09public VoxelScene box(final byte wx, final byte wy, final byte wz) %7B%0A%09%09mark.x = (byte) (cursor.x + wx);%0A%09%09mark.y = (byte) (cursor.y + wy);%0A%09%09mark.z = (byte) (cursor.z + wz);%0A%09%09box();%0A%09%09return this;%0A%09%7D%0A%09%0A%09public VoxelScene box() %7B%0A%09%09for (byte z = cursor.z; z %3C= mark.z; z++) %7B%0A%09%09%09for (byte y = cursor.y; y %3C= mark.y; y++) %7B%0A%09%09%09%09for (byte x = cursor.x; x %3C= mark.x; x++) %7B%0A%09%09%09%09%09voxels.put(%0A%09%09%09%09%09%09new Point3D(x, y, z),%0A%09%09%09%09%09%09drawingColor);%0A%09%09%09%09%7D%0A%09%09%09%7D%0A%09%09%7D%0A%09%09return this;%0A%09%7D
 %0A%7D%0A

Add minimal set of drawing primitives.