private void moveSimulationBoxFace(byte face, int x, int y) {
		if (face < 0)
			return;
		switch (face) {
		case 0x00: // front
		case 0x01: // rear
			Point3f p = viewer.findPointOnPlane('x', x, y, 0);
			int delta = (int) (2 * (p.z - clickPoint3D.z));
			float h = clickPoint3D.z < 0 ? originalValue - delta : originalValue + delta;
			if (h < 2 * absMax)
				h = 2 * absMax;
			model.setHeight((int) (h + 1));
			setSimulationBox();
			break;
		case 0x02: // top
		case 0x03: // bottom
			p = viewer.findPointOnPlane('z', x, y, 0);
			delta = (int) (2 * (p.y - clickPoint3D.y));
			float w = clickPoint3D.y < 0 ? originalValue - delta : originalValue + delta;
			if (w < 2 * absMax)
				w = 2 * absMax;
			model.setWidth((int) (w + 1));
			setSimulationBox();
			break;
		case 0x04: // right
		case 0x05: // left
			p = viewer.findPointOnPlane('y', x, y, 0);
			delta = (int) (2 * (p.x - clickPoint3D.x));
			float l = clickPoint3D.x < 0 ? originalValue - delta : originalValue + delta;
			if (l < 2 * absMax)
				l = 2 * absMax;
			model.setLength((int) (l + 1));
			setSimulationBox();
			break;
		}
		viewer.updateSimulationBoxFace(face);
	}