@@ -0,0 +1,739 @@
+package org.notimetoplay.voxeldesc;%0A%0Apublic class Camera %7B%0A%09public float x;%0A%09public float y;%0A%09public float z;%0A%09public float f;%0A%09%0A%09public float px;%0A%09public float py;%0A%09public float scale;%0A%09%0A%09public Camera(float nx, float ny, float nz, float nf) %7B%0A%09%09x = nx;%0A%09%09y = ny;%0A%09%09z = nz;%0A%09%09f = nf;%0A%09%7D%0A%09%0A%09public void project(float nx, float ny, float nz) %7B%0A%09%09nx -= x;%0A%09%09ny -= y;%0A%09%09nz -= z;%0A%0A%09%09scale = f / nz;%0A%09%09px = nx * scale;%0A%09%09py = ny * scale;%0A%09%7D%0A%09%0A%09// Convenience methods (for the scripting engine).%0A%09%0A%09public Camera moveTo(final float nx, final float ny, final float nz) %7B%0A%09%09x = nx;%0A%09%09y = ny;%0A%09%09z = nz;%0A%09%09return this;%0A%09%7D%0A%09%0A%09public Camera moveBy(final float nx, final float ny, final float nz) %7B%0A%09%09x += nx;%0A%09%09y += ny;%0A%09%09z += nz;%0A%09%09return this;%0A%09%7D%0A%7D%0A

Create Camera.java