public int[] getTouchingVoxel( int x, int y, int z ) throws UnsupportedOperationException
    {

        switch ( this )
        {

            case LEFT:
                return new int[] { x - 1, y, z };

            case RIGHT:
                return new int[] { x + 1, y, z };

            case BOTTOM:
                return new int[] { x, y - 1, z };

            case TOP:
                return new int[] { x, y + 1, z };

            case BACK:
                return new int[] { x, y, z + 1 };

            case FRONT:
                return new int[] { x, y, z - 1 };

        }

        throw new UnsupportedOperationException( "Something's wrong about this face; index: " + value );
    }