com.io7m.r2.core

## Interface R2LightProjectiveReadableType

- All Superinterfaces:
    R2LightReadableType, R2LightSingleReadableType, R2LightVolumeSingleReadableType
  All Known Subinterfaces:
    R2LightProjectiveType, R2LightProjectiveUsableType, R2LightProjectiveWithoutShadowReadableType, R2LightProjectiveWithoutShadowType, R2LightProjectiveWithShadowReadableType, R2LightProjectiveWithShadowType, R2LightProjectiveWithShadowVarianceType
  All Known Implementing Classes:
    R2LightProjectiveWithoutShadow, R2LightProjectiveWithShadowVariance

      public interface R2LightProjectiveReadableType
      extends R2LightVolumeSingleReadableType

  The type of readable projective lights.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `float` | `falloff()`
    `R2Texture2DUsableType` | `image()`
    `default <A,B,E extends Throwable> B` | `matchLightVolumeSingleReadable(A context, com.io7m.jfunctional.PartialBiFunctionType<A,R2LightProjectiveReadableType,B,E> on_projective, com.io7m.jfunctional.PartialBiFunctionType<A,R2LightSphericalSingleReadableType,B,E> on_spherical)` Match on the type of volume light.
    `<A,B,E extends Throwable> B` | `matchProjectiveReadable(A context, com.io7m.jfunctional.PartialBiFunctionType<A,R2LightProjectiveWithoutShadowReadableType,B,E> on_shadowless, com.io7m.jfunctional.PartialBiFunctionType<A,R2LightProjectiveWithShadowReadableType,B,E> on_shadowed)` Match on the type of projective light.
    `com.io7m.jtensors.parameterized.PVectorReadable3FType<R2SpaceWorldType>` | `position()`
    `R2ProjectionReadableType` | `projection()`
    `float` | `radius()`
    `R2TransformViewReadableType` | `transform()`

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

      `arrayObject, matchLightSingle`

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

      `color, intensity, lightID`

- - ### Method Detail

    - #### radius

          float radius()

      Returns:
        The light radius

    - #### falloff

          float falloff()

      Returns:
        The light falloff exponent

    - #### projection

          R2ProjectionReadableType projection()

      Returns:
        The light's projection

    - #### image

          R2Texture2DUsableType image()

      Returns:
        The image that will be projected from the light

    - #### transform

          R2TransformViewReadableType transform()

      Specified by:
        `transform` in interface `R2LightSingleReadableType`
      Returns:
        The transform for the light origin

    - #### position

          com.io7m.jtensors.parameterized.PVectorReadable3FType<R2SpaceWorldType> position()

      Returns:
        The position of the origin of the light in world-space

    - #### matchLightVolumeSingleReadable

          default <A,B,E extends Throwable> B matchLightVolumeSingleReadable(A context,
                                                                             com.io7m.jfunctional.PartialBiFunctionType<A,R2LightProjectiveReadableType,B,E> on_projective,
                                                                             com.io7m.jfunctional.PartialBiFunctionType<A,R2LightSphericalSingleReadableType,B,E> on_spherical)
                                                                      throws E extends Throwable

      Description copied from interface: `R2LightVolumeSingleReadableType`
      Match on the type of volume light.
      Specified by:
        `matchLightVolumeSingleReadable` in interface `R2LightVolumeSingleReadableType`
      Type Parameters:
        `A` - The type of context values
        `B` - The type of returned values
        `E` - The type of raised exceptions
      Parameters:
        `context` - A context value
        `on_projective` - Evaluated for projective lights
        `on_spherical` - Evaluated for spherical lights
      Returns:
        A value of type `B`
      Throws:
        `E` - If any of the given functions raise `E`
        `E extends Throwable`

    - #### matchProjectiveReadable

          <A,B,E extends Throwable> B matchProjectiveReadable(A context,
                                                              com.io7m.jfunctional.PartialBiFunctionType<A,R2LightProjectiveWithoutShadowReadableType,B,E> on_shadowless,
                                                              com.io7m.jfunctional.PartialBiFunctionType<A,R2LightProjectiveWithShadowReadableType,B,E> on_shadowed)
                                                       throws E extends Throwable

      Match on the type of projective light.
      Type Parameters:
        `A` - The type of context values
        `B` - The type of returned values
        `E` - The type of raised exceptions
      Parameters:
        `context` - A context value
        `on_shadowless` - Evaluated for projective lights without shadows
        `on_shadowed` - Evaluated for projective lights with shadows
      Returns:
        A value of type `B`
      Throws:
        `E` - If any of the given functions raise `E`
        `E extends Throwable`

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