@@ -0,0 +1,1101 @@
+public class Layer%0A%7B%0A    public Layer (int layer, int width, int height)%0A    %7B%0A        _cubes = new Cube%5Bwidth%5D%5Bheight%5D;%0A        _layer = layer;%0A%0A        for (int y = 0; y %3C width; y++)%0A        %7B%0A            for (int x = 0; x %3C height; x++)%0A            %7B%0A                _cubes%5By%5D%5Bx%5D = new Cube(new ThreeDPoint(x, y, _layer));%0A            %7D%0A        %7D%0A    %7D%0A%0A    public final void activate (ThreeDPoint coord)%0A    %7B%0A        _cubes%5Bcoord.getY()%5D%5Bcoord.getX()%5D.activate();%0A    %7D%0A%0A    public final void deactivate (ThreeDPoint coord)%0A    %7B%0A        _cubes%5Bcoord.getY()%5D%5Bcoord.getX()%5D.deactivate();%0A    %7D%0A%0A    @Override%0A    public String toString ()%0A    %7B%0A        String str = %22z=%22+_layer+%22%5Cn%22;%0A%0A        for (int y = 0; y %3C _cubes.length; y++)%0A        %7B%0A            for (int x = 0; x %3C _cubes%5B0%5D.length; x++)%0A            %7B%0A                if (_cubes%5By%5D%5Bx%5D.isActive())%0A                    str += CubeId.ACTIVE;%0A                else%0A                    str += CubeId.INACTIVE;%0A            %7D%0A%0A            str += %22%5Cn%22;%0A        %7D%0A%0A        return str;%0A    %7D%0A%0A    private Cube%5B%5D%5B%5D _cubes;%0A    private int _layer;%0A%7D

Create Layer.java