de.caff.generics.mda

## Interface ThreeDimensionalCharAccess

- All Superinterfaces:
    MultiDimensional, MultiDimensionalAccess<java.lang.Character>, MultiDimensionalReadAccess<java.lang.Character>, ThreeDimensionalAccess<java.lang.Character>, ThreeDimensionalCharReadAccess, ThreeDimensionalReadAccess<java.lang.Character>
  All Known Implementing Classes:
    ThreeDimensionalCharArray

      public interface ThreeDimensionalCharAccess
      extends ThreeDimensionalCharReadAccess, ThreeDimensionalAccess<java.lang.Character>

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

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static ThreeDimensionalCharAccess` | `EMPTY` Empty 3dimensional char 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(CharOperator1 operator)` Change all values by applying an operator.
    `default void` | `changeValueAt(CharOperator1 operator, int ix, int iy, int iz)` Change the value at the given indexes.
    `default void` | `fillValuesByIndex(IntToCharFunction3 setter)` Set all values depending on their indexes.
    `default void` | `setElementAt(java.lang.Character element, int ix, int iy, int iz)` Set the element at the given indexes.
    `void` | `setValueAt(char value, int ix, int iy, int iz)` Set the value at the given indexes.
    `default TwoDimensionalCharAccess` | `subAtX(int fixX)` Get a 2-dimensional view of the plane at the given X index.
    `default TwoDimensionalCharAccess` | `subAtY(int fixY)` Get a 2-dimensional view of the plane at the given Y index.
    `default TwoDimensionalCharAccess` | `subAtZ(int fixZ)` Get a 2-dimensional view of the plane at the given Z index.

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

      `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 ThreeDimensionalCharAccess EMPTY

      Empty 3dimensional char access.

  - ### Method Detail

    - #### setValueAt

          void setValueAt(char 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
                                     CharOperator1 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
                                       CharOperator1 operator)

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

    - #### fillValuesByIndex

          default void fillValuesByIndex(@NotNull
                                         IntToCharFunction3 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

    - #### setElementAt

          default void setElementAt(@NotNull
                                    java.lang.Character 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.Character>`
      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 TwoDimensionalCharAccess 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.Character>`
      Specified by:
        `subAtX` in interface `ThreeDimensionalCharReadAccess`
      Specified by:
        `subAtX` in interface `ThreeDimensionalReadAccess<java.lang.Character>`
      Parameters:
        `fixX` - fix X index
      Returns:
        2-dimensional array at `fixX`

    - #### subAtY

          @NotNull
          default TwoDimensionalCharAccess 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.Character>`
      Specified by:
        `subAtY` in interface `ThreeDimensionalCharReadAccess`
      Specified by:
        `subAtY` in interface `ThreeDimensionalReadAccess<java.lang.Character>`
      Parameters:
        `fixY` - fix Y index
      Returns:
        2-dimensional array at `fixY`

    - #### subAtZ

          @NotNull
          default TwoDimensionalCharAccess 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.Character>`
      Specified by:
        `subAtZ` in interface `ThreeDimensionalCharReadAccess`
      Specified by:
        `subAtZ` in interface `ThreeDimensionalReadAccess<java.lang.Character>`
      Parameters:
        `fixZ` - fix Z index
      Returns:
        2-dimensional array at `fixZ`