com.io7m.r2.core.shaders.types

## Class R2ShaderParametersLight<M>

- java.lang.Object
- - com.io7m.r2.core.shaders.types.R2ShaderParametersLight<M>

- Type Parameters:
    `M` - The precise type of shader parameters
  All Implemented Interfaces:
    R2ShaderParametersLightType<M>

      @Generated(value={"Immutables.generator","R2ShaderParametersLightType<M>"})
      public final class R2ShaderParametersLight<M>
      extends Object
      implements R2ShaderParametersLightType<M>

  The type of material-related parameters available to shaders.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `R2ShaderParametersLight.Builder<M>` Builds instances of type `R2ShaderParametersLight`.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static <M> R2ShaderParametersLight.Builder<M>` | `builder()` Creates a builder for `R2ShaderParametersLight`.
    `static <M> R2ShaderParametersLight<M>` | `copyOf(R2ShaderParametersLightType<M> instance)` Creates an immutable copy of a `R2ShaderParametersLightType` value.
    `boolean` | `equals(Object another)` This instance is equal to all instances of `R2ShaderParametersLight` that have equal attribute values.
    `int` | `hashCode()` Computes a hash code from attributes: `textureUnitContext`, `values`, `observerMatrices`, `viewport`.
    `R2MatricesObserverValuesType` | `observerMatrices()`
    `static <M> R2ShaderParametersLight<M>` | `of(com.io7m.jcanephora.texture_unit_allocator.JCGLTextureUnitContextMutableType textureUnitContext, M values, R2MatricesObserverValuesType observerMatrices, com.io7m.jareas.core.AreaInclusiveUnsignedLType viewport)` Construct a new immutable `R2ShaderParametersLight` instance.
    `com.io7m.jcanephora.texture_unit_allocator.JCGLTextureUnitContextMutableType` | `textureUnitContext()`
    `String` | `toString()` Prints the immutable value `R2ShaderParametersLight` with attribute values.
    `M` | `values()`
    `com.io7m.jareas.core.AreaInclusiveUnsignedLType` | `viewport()` A specification of the viewport to which rendering is occurring.
    `R2ShaderParametersLight<M>` | `withObserverMatrices(R2MatricesObserverValuesType value)` Copy the current immutable object by setting a value for the `observerMatrices` attribute.
    `R2ShaderParametersLight<M>` | `withTextureUnitContext(com.io7m.jcanephora.texture_unit_allocator.JCGLTextureUnitContextMutableType value)` Copy the current immutable object by setting a value for the `textureUnitContext` attribute.
    `R2ShaderParametersLight<M>` | `withValues(M value)` Copy the current immutable object by setting a value for the `values` attribute.
    `R2ShaderParametersLight<M>` | `withViewport(com.io7m.jareas.core.AreaInclusiveUnsignedLType value)` Copy the current immutable object by setting a value for the `viewport` attribute.

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Method Detail

    - #### textureUnitContext

          public com.io7m.jcanephora.texture_unit_allocator.JCGLTextureUnitContextMutableType textureUnitContext()

      Specified by:
        `textureUnitContext` in interface `R2ShaderParametersLightType<M>`
      Returns:
        The current texture unit context

    - #### values

          public M values()

      Specified by:
        `values` in interface `R2ShaderParametersLightType<M>`
      Returns:
        The current shader values

    - #### observerMatrices

          public R2MatricesObserverValuesType observerMatrices()

      Specified by:
        `observerMatrices` in interface `R2ShaderParametersLightType<M>`
      Returns:
        The current observer matrices

    - #### viewport

          public com.io7m.jareas.core.AreaInclusiveUnsignedLType viewport()

      A specification of the viewport to which rendering is occurring.
      Specified by:
        `viewport` in interface `R2ShaderParametersLightType<M>`
      Returns:
        The current viewport

    - #### withTextureUnitContext

          public final R2ShaderParametersLight<M> withTextureUnitContext(com.io7m.jcanephora.texture_unit_allocator.JCGLTextureUnitContextMutableType value)

      Copy the current immutable object by setting a value for the `textureUnitContext` attribute. A shallow reference equality check is used to prevent copying of the same value by returning `this`.
      Parameters:
        `value` - A new value for textureUnitContext
      Returns:
        A modified copy of the `this` object

    - #### withValues

          public final R2ShaderParametersLight<M> withValues(M value)

      Copy the current immutable object by setting a value for the `values` attribute. A shallow reference equality check is used to prevent copying of the same value by returning `this`.
      Parameters:
        `value` - A new value for values
      Returns:
        A modified copy of the `this` object

    - #### withObserverMatrices

          public final R2ShaderParametersLight<M> withObserverMatrices(R2MatricesObserverValuesType value)

      Copy the current immutable object by setting a value for the `observerMatrices` attribute. A shallow reference equality check is used to prevent copying of the same value by returning `this`.
      Parameters:
        `value` - A new value for observerMatrices
      Returns:
        A modified copy of the `this` object

    - #### withViewport

          public final R2ShaderParametersLight<M> withViewport(com.io7m.jareas.core.AreaInclusiveUnsignedLType value)

      Copy the current immutable object by setting a value for the `viewport` attribute. A shallow reference equality check is used to prevent copying of the same value by returning `this`.
      Parameters:
        `value` - A new value for viewport
      Returns:
        A modified copy of the `this` object

    - #### equals

          public boolean equals(Object another)

      This instance is equal to all instances of `R2ShaderParametersLight` that have equal attribute values.
      Overrides:
        `equals` in class `Object`
      Returns:
        `true` if `this` is equal to `another` instance

    - #### hashCode

          public int hashCode()

      Computes a hash code from attributes: `textureUnitContext`, `values`, `observerMatrices`, `viewport`.
      Overrides:
        `hashCode` in class `Object`
      Returns:
        hashCode value

    - #### toString

          public String toString()

      Prints the immutable value `R2ShaderParametersLight` with attribute values.
      Overrides:
        `toString` in class `Object`
      Returns:
        A string representation of the value

    - #### of

          public static <M> R2ShaderParametersLight<M> of(com.io7m.jcanephora.texture_unit_allocator.JCGLTextureUnitContextMutableType textureUnitContext,
                                                          M values,
                                                          R2MatricesObserverValuesType observerMatrices,
                                                          com.io7m.jareas.core.AreaInclusiveUnsignedLType viewport)

      Construct a new immutable `R2ShaderParametersLight` instance.
      Parameters:
        `textureUnitContext` - The value for the `textureUnitContext` attribute
        `values` - The value for the `values` attribute
        `observerMatrices` - The value for the `observerMatrices` attribute
        `viewport` - The value for the `viewport` attribute
      Returns:
        An immutable R2ShaderParametersLight instance

    - #### copyOf

          public static <M> R2ShaderParametersLight<M> copyOf(R2ShaderParametersLightType<M> instance)

      Creates an immutable copy of a `R2ShaderParametersLightType` value. Uses accessors to get values to initialize the new immutable instance. If an instance is already immutable, it is returned as is.
      Type Parameters:
        `M` - generic parameter M
      Parameters:
        `instance` - The instance to copy
      Returns:
        A copied immutable R2ShaderParametersLight instance

    - #### builder

          public static <M> R2ShaderParametersLight.Builder<M> builder()

      Creates a builder for `R2ShaderParametersLight`.
      Type Parameters:
        `M` - generic parameter M
      Returns:
        A new R2ShaderParametersLight builder

Copyright © 2016 <code@io7m.com> http://io7m.com