com.io7m.r2.core

## Interface R2MatricesObserverType

- All Superinterfaces:
    R2MatricesObserverValuesType, R2MatricesValuesType

      public interface R2MatricesObserverType
      extends R2MatricesObserverValuesType

  Access to the matrices for a given observer.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `<A,B> B` | `withProjectiveLight(R2LightProjectiveReadableType t, A x, BiFunction<R2MatricesProjectiveLightType,A,B> f)` Evaluate matrices for a given projective light, relative to the current observer.
    `<A,B> B` | `withTransform(R2TransformReadableType t, com.io7m.jtensors.parameterized.PMatrixReadable3x3FType<R2SpaceTextureType,R2SpaceTextureType> uv, A x, BiFunction<R2MatricesInstanceSingleType,A,B> f)` Evaluate matrices for a given transform, relative to the current observer.
    `<A,B> B` | `withVolumeLight(R2LightVolumeSingleReadableType t, A x, BiFunction<R2MatricesVolumeLightType,A,B> f)` Evaluate matrices for a given volume light, relative to the current observer.

    - ### Methods inherited from interface com.io7m.r2.core.R2MatricesObserverValuesType

      `matrixProjection, matrixProjectionInverse, matrixView, matrixViewInverse, projection, viewRays`

    - ### Methods inherited from interface com.io7m.r2.core.R2MatricesValuesType

      `transformContext`

- - ### Method Detail

    - #### withTransform

          <A,B> B withTransform(R2TransformReadableType t,
                                com.io7m.jtensors.parameterized.PMatrixReadable3x3FType<R2SpaceTextureType,R2SpaceTextureType> uv,
                                A x,
                                BiFunction<R2MatricesInstanceSingleType,A,B> f)
                         throws R2Exception

      Evaluate matrices for a given transform, relative to the current observer.
      Type Parameters:
        `A` - The type of consumed values
        `B` - The type of returned values
      Parameters:
        `t` - The transform
        `uv` - The UV matrix
        `f` - The function that will receive matrices
        `x` - A context value passed to `f`
      Returns:
        A value of `B`
      Throws:
        `R2Exception` - If `f` raises `R2Exception`

    - #### withProjectiveLight

          <A,B> B withProjectiveLight(R2LightProjectiveReadableType t,
                                      A x,
                                      BiFunction<R2MatricesProjectiveLightType,A,B> f)
                               throws R2Exception

      Evaluate matrices for a given projective light, relative to the current observer.
      Type Parameters:
        `A` - The type of consumed values
        `B` - The type of returned values
      Parameters:
        `t` - The light
        `f` - The function that will receive matrices
        `x` - A context value passed to `f`
      Returns:
        A value of `B`
      Throws:
        `R2Exception` - If `f` raises `R2Exception`

    - #### withVolumeLight

          <A,B> B withVolumeLight(R2LightVolumeSingleReadableType t,
                                  A x,
                                  BiFunction<R2MatricesVolumeLightType,A,B> f)
                           throws R2Exception

      Evaluate matrices for a given volume light, relative to the current observer.
      Type Parameters:
        `A` - The type of consumed values
        `B` - The type of returned values
      Parameters:
        `t` - The light
        `f` - The function that will receive matrices
        `x` - A context value passed to `f`
      Returns:
        A value of `B`
      Throws:
        `R2Exception` - If `f` raises `R2Exception`

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