de.caff.generics.mda

## Interface ThreeDimensionalByteAccess

- All Superinterfaces:
    MultiDimensional, MultiDimensionalAccess<java.lang.Byte>, MultiDimensionalReadAccess<java.lang.Byte>, ThreeDimensionalAccess<java.lang.Byte>, ThreeDimensionalByteReadAccess, ThreeDimensionalReadAccess<java.lang.Byte>
  All Known Implementing Classes:
    ThreeDimensionalByteArray

      public interface ThreeDimensionalByteAccess
      extends ThreeDimensionalByteReadAccess, ThreeDimensionalAccess<java.lang.Byte>

  Read/write access for 3-dimensional rectangular byte arrays.
  Since:
    November 11, 2019
  Author:
    Rammi

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static ThreeDimensionalByteAccess` | `EMPTY` Empty 3dimensional byte access.

    - ### Fields inherited from interface de.caff.generics.mda.MultiDimensionalReadAccess

      `EMPTY0, EMPTY1, EMPTY2, EMPTY3, EMPTY4, EMPTY5, EMPTY6, EMPTY7`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `default void` | `changeAllValues(ByteOperator1 operator)` Change all values by applying an operator.
    `default void` | `changeValueAt(ByteOperator1 operator, int ix, int iy, int iz)` Change the value at the given indexes.
    `default void` | `fillValuesByIndex(IntToByteFunction3 setter)` Set all values depending on their indexes.
    `default void` | `setElementAt(java.lang.Byte element, int ix, int iy, int iz)` Set the element at the given indexes.
    `void` | `setValueAt(byte value, int ix, int iy, int iz)` Set the value at the given indexes.
    `default TwoDimensionalByteAccess` | `subAtX(int fixX)` Get a 2-dimensional view of the plane at the given X index.
    `default TwoDimensionalByteAccess` | `subAtY(int fixY)` Get a 2-dimensional view of the plane at the given Y index.
    `default TwoDimensionalByteAccess` | `subAtZ(int fixZ)` Get a 2-dimensional view of the plane at the given Z index.

    - ### Methods inherited from interface de.caff.generics.mda.ThreeDimensionalByteReadAccess

      `getElementAt, getValueAt, singleton`

    - ### Methods inherited from interface de.caff.generics.mda.ThreeDimensionalAccess

      `changeAll, changeAll, empty, fillByIndex, setElement`

    - ### Methods inherited from interface de.caff.generics.mda.ThreeDimensionalReadAccess

      `getElement, getNumDimensions, getNumElements, getSize, getSizes, sizeX, sizeY, sizeZ, view, visitAll, visitAll`

    - ### Methods inherited from interface de.caff.generics.mda.MultiDimensionalAccess

      `change, setAll, setFrom, setFrom, setFrom`

    - ### Methods inherited from interface de.caff.generics.mda.MultiDimensionalReadAccess

      `empty, linearized`

- - ### Field Detail

    - #### EMPTY

          static final ThreeDimensionalByteAccess EMPTY

      Empty 3dimensional byte access.

  - ### Method Detail

    - #### setValueAt

          void setValueAt(byte value,
                          int ix,
                          int iy,
                          int iz)

      Set the value at the given indexes.
      Parameters:
        `value` - value to set
        `ix` - X index
        `iy` - Y index
        `iz` - Z index

    - #### changeValueAt

          default void changeValueAt(@NotNull
                                     ByteOperator1 operator,
                                     int ix,
                                     int iy,
                                     int iz)

      Change the value at the given indexes.
      Parameters:
        `operator` - operator to apply to the value
        `ix` - X index
        `iy` - Y index
        `iz` - Z index

    - #### changeAllValues

          default void changeAllValues(@NotNull
                                       ByteOperator1 operator)

      Change all values by applying an operator.
      Parameters:
        `operator` - operator to apply

    - #### setElementAt

          default void setElementAt(@NotNull
                                    java.lang.Byte element,
                                    int ix,
                                    int iy,
                                    int iz)

      Description copied from interface: `ThreeDimensionalAccess`
      Set the element at the given indexes.
      Specified by:
        `setElementAt` in interface `ThreeDimensionalAccess<java.lang.Byte>`
      Parameters:
        `element` - element to set
        `ix` - index in X direction from `0` (included) to `ThreeDimensionalReadAccess.sizeX()` (excluded)
        `iy` - index in Y direction from `0` (included) to `ThreeDimensionalReadAccess.sizeY()` (excluded)
        `iz` - index in Y direction from `0` (included) to `ThreeDimensionalReadAccess.sizeZ()` (excluded)

    - #### subAtX

          @NotNull
          default TwoDimensionalByteAccess subAtX(int fixX)

      Description copied from interface: `ThreeDimensionalReadAccess`
      Get a 2-dimensional view of the plane at the given X index. This is a view, so setting elements will change values in this array.
      Specified by:
        `subAtX` in interface `ThreeDimensionalAccess<java.lang.Byte>`
      Specified by:
        `subAtX` in interface `ThreeDimensionalByteReadAccess`
      Specified by:
        `subAtX` in interface `ThreeDimensionalReadAccess<java.lang.Byte>`
      Parameters:
        `fixX` - fix X index
      Returns:
        2-dimensional array at `fixX`

    - #### subAtY

          @NotNull
          default TwoDimensionalByteAccess subAtY(int fixY)

      Description copied from interface: `ThreeDimensionalReadAccess`
      Get a 2-dimensional view of the plane at the given Y index. This is a view, so setting elements will change values in this array.
      Specified by:
        `subAtY` in interface `ThreeDimensionalAccess<java.lang.Byte>`
      Specified by:
        `subAtY` in interface `ThreeDimensionalByteReadAccess`
      Specified by:
        `subAtY` in interface `ThreeDimensionalReadAccess<java.lang.Byte>`
      Parameters:
        `fixY` - fix Y index
      Returns:
        2-dimensional array at `fixY`

    - #### subAtZ

          @NotNull
          default TwoDimensionalByteAccess subAtZ(int fixZ)

      Description copied from interface: `ThreeDimensionalReadAccess`
      Get a 2-dimensional view of the plane at the given Z index. This is a view, so setting elements will change values in this array.
      Specified by:
        `subAtZ` in interface `ThreeDimensionalAccess<java.lang.Byte>`
      Specified by:
        `subAtZ` in interface `ThreeDimensionalByteReadAccess`
      Specified by:
        `subAtZ` in interface `ThreeDimensionalReadAccess<java.lang.Byte>`
      Parameters:
        `fixZ` - fix Z index
      Returns:
        2-dimensional array at `fixZ`

    - #### fillValuesByIndex

          default void fillValuesByIndex(@NotNull
                                         IntToByteFunction3 setter)

      Set all values depending on their indexes. This will call the setter for all indexes (x,y,z) and set the value at the given indexes from its result.
      Parameters:
        `setter` - setter which provides the value to set for each index combination