com.io7m.jcamera

## Class JCameraSphericalSnapshot

- java.lang.Object
- - com.io7m.jcamera.JCameraSphericalSnapshot

- All Implemented Interfaces:
    JCameraReadableSnapshotType, JCameraReadableType, JCameraSphericalReadableType

      @EqualityStructural
      public final class JCameraSphericalSnapshot
      extends Object
      implements JCameraSphericalReadableType, JCameraReadableSnapshotType

  An immutable snapshot of a `JCameraSphericalType`.

- - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `float` | `cameraGetAngleHeading()`
    `float` | `cameraGetAngleIncline()`
    `com.io7m.jtensors.VectorReadable3FType` | `cameraGetForward()`
    `com.io7m.jtensors.VectorReadable3FType` | `cameraGetForwardProjectedOnXZ()`
    `com.io7m.jtensors.VectorReadable3FType` | `cameraGetPosition()`
    `com.io7m.jtensors.VectorReadable3FType` | `cameraGetRight()`
    `com.io7m.jtensors.VectorReadable3FType` | `cameraGetTargetPosition()`
    `com.io7m.jtensors.VectorReadable3FType` | `cameraGetUp()`
    `float` | `cameraGetZoom()`
    `JCameraSphericalSnapshot` | `cameraMakeSnapshot()`
    `void` | `cameraMakeViewMatrix(JCameraContext ctx, com.io7m.jtensors.Matrix4x4FType m)` Construct a view matrix for the camera, using preallocated storage in `ctx` and writing the result to `m`.
    `<T0,T1> void` | `cameraMakeViewPMatrix(JCameraContext ctx, com.io7m.jtensors.parameterized.PMatrix4x4FType<T0,T1> m)` Construct a view matrix for the camera, using preallocated storage in `ctx` and writing the result to `m`.
    `boolean` | `equals(Object obj)`
    `int` | `hashCode()`
    `static JCameraSphericalSnapshot` | `interpolate(JCameraSphericalSnapshot x, JCameraSphericalSnapshot y, float a)` Linearly interpolate between two camera snapshots.
    `String` | `toString()`

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

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

- - ### Method Detail

    - #### interpolate

          public static JCameraSphericalSnapshot interpolate(JCameraSphericalSnapshot x,
                                                             JCameraSphericalSnapshot y,
                                                             float a)

      Linearly interpolate between two camera snapshots.
      Parameters:
        `x` - The first snapshot
        `y` - The second snapshot
        `a` - The interpolation value
      Returns:
        A value between `x` and `y`

    - #### cameraGetAngleHeading

          public float cameraGetAngleHeading()

      Specified by:
        `cameraGetAngleHeading` in interface `JCameraSphericalReadableType`
      Returns:
        The angle around the vertical axis.

    - #### cameraGetAngleIncline

          public float cameraGetAngleIncline()

      Specified by:
        `cameraGetAngleIncline` in interface `JCameraSphericalReadableType`
      Returns:
        The angle around the horizontal axis.

    - #### cameraGetForward

          public com.io7m.jtensors.VectorReadable3FType cameraGetForward()

      Specified by:
        `cameraGetForward` in interface `JCameraSphericalReadableType`
      Returns:
        The forward direction for the camera.

    - #### cameraGetForwardProjectedOnXZ

          public com.io7m.jtensors.VectorReadable3FType cameraGetForwardProjectedOnXZ()

      Specified by:
        `cameraGetForwardProjectedOnXZ` in interface `JCameraSphericalReadableType`
      Returns:
        The forward direction for the camera, projected onto the X/Z plane.

    - #### cameraGetPosition

          public com.io7m.jtensors.VectorReadable3FType cameraGetPosition()

      Specified by:
        `cameraGetPosition` in interface `JCameraSphericalReadableType`
      Returns:
        The position of the camera.

    - #### cameraGetRight

          public com.io7m.jtensors.VectorReadable3FType cameraGetRight()

      Specified by:
        `cameraGetRight` in interface `JCameraSphericalReadableType`
      Returns:
        The right direction for the camera.

    - #### cameraGetTargetPosition

          public com.io7m.jtensors.VectorReadable3FType cameraGetTargetPosition()

      Specified by:
        `cameraGetTargetPosition` in interface `JCameraSphericalReadableType`
      Returns:
        The position of the camera target.

    - #### cameraGetUp

          public com.io7m.jtensors.VectorReadable3FType cameraGetUp()

      Specified by:
        `cameraGetUp` in interface `JCameraSphericalReadableType`
      Returns:
        The up direction for the camera.

    - #### cameraGetZoom

          public float cameraGetZoom()

      Specified by:
        `cameraGetZoom` in interface `JCameraSphericalReadableType`
      Returns:
        The zoom (or radius) of the camera.

    - #### cameraMakeSnapshot

          public JCameraSphericalSnapshot cameraMakeSnapshot()

      Specified by:
        `cameraMakeSnapshot` in interface `JCameraSphericalReadableType`
      Returns:
        A snapshot of the current camera state.

    - #### cameraMakeViewMatrix

          public void cameraMakeViewMatrix(JCameraContext ctx,
                                           com.io7m.jtensors.Matrix4x4FType m)

      Description copied from interface: `JCameraReadableType`
      Construct a view matrix for the camera, using preallocated storage in `ctx` and writing the result to `m`.
      Specified by:
        `cameraMakeViewMatrix` in interface `JCameraReadableType`
      Parameters:
        `ctx` - Preallocated storage
        `m` - The output matrix

    - #### cameraMakeViewPMatrix

          public <T0,T1> void cameraMakeViewPMatrix(JCameraContext ctx,
                                                    com.io7m.jtensors.parameterized.PMatrix4x4FType<T0,T1> m)

      Description copied from interface: `JCameraReadableType`
      Construct a view matrix for the camera, using preallocated storage in `ctx` and writing the result to `m`.
      Specified by:
        `cameraMakeViewPMatrix` in interface `JCameraReadableType`
      Type Parameters:
        `T0` - The source coordinate system
        `T1` - The target coordiante system
      Parameters:
        `ctx` - Preallocated storage
        `m` - The output matrix

    - #### equals

          public boolean equals(@Nullable
                                Object obj)

      Overrides:
        `equals` in class `Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

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