Package com.io7m.jcamera

# Interface JCameraSphericalSnapshotType

All Superinterfaces:
  `JCameraReadableSnapshotType`, `JCameraReadableType`, `JCameraSphericalReadableType`

All Known Implementing Classes:
  `JCameraSphericalSnapshot`

@Immutable public interface JCameraSphericalSnapshotType extends JCameraSphericalReadableType, JCameraReadableSnapshotType
An immutable snapshot of a camera.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `double`
  `cameraGetAngleHeading()`
  `double`
  `cameraGetAngleIncline()`
  `com.io7m.jtensors.core.unparameterized.vectors.Vector3D`
  `cameraGetForward()`
  `com.io7m.jtensors.core.unparameterized.vectors.Vector3D`
  `cameraGetForwardProjectedOnXZ()`
  `com.io7m.jtensors.core.unparameterized.vectors.Vector3D`
  `cameraGetPosition()`
  `com.io7m.jtensors.core.unparameterized.vectors.Vector3D`
  `cameraGetRight()`
  `com.io7m.jtensors.core.unparameterized.vectors.Vector3D`
  `cameraGetTargetPosition()`
  `com.io7m.jtensors.core.unparameterized.vectors.Vector3D`
  `cameraGetUp()`
  `double`
  `cameraGetZoom()`
  `default com.io7m.jtensors.core.unparameterized.matrices.Matrix4x4D`
  `cameraMakeViewMatrix()`
  Construct a view matrix for the camera.
  `default <T0, T1> com.io7m.jtensors.core.parameterized.matrices.PMatrix4x4D<T0,T1>`
  `cameraMakeViewPMatrix()`
  Construct a view matrix for the camera.

- ## Method Details

  - ### cameraGetRight

    @Parameter(order=0) com.io7m.jtensors.core.unparameterized.vectors.Vector3D cameraGetRight()
    Specified by:
      `cameraGetRight` in interface `JCameraSphericalReadableType`
    Returns:
      The right direction for the camera.

  - ### cameraGetUp

    @Parameter(order=1) com.io7m.jtensors.core.unparameterized.vectors.Vector3D cameraGetUp()
    Specified by:
      `cameraGetUp` in interface `JCameraSphericalReadableType`
    Returns:
      The up direction for the camera.

  - ### cameraGetForward

    @Parameter(order=2) com.io7m.jtensors.core.unparameterized.vectors.Vector3D cameraGetForward()
    Specified by:
      `cameraGetForward` in interface `JCameraSphericalReadableType`
    Returns:
      The forward direction for the camera.

  - ### cameraGetPosition

    @Parameter(order=3) com.io7m.jtensors.core.unparameterized.vectors.Vector3D cameraGetPosition()
    Specified by:
      `cameraGetPosition` in interface `JCameraSphericalReadableType`
    Returns:
      The position of the camera.

  - ### cameraGetAngleHeading

    @Parameter(order=4) double cameraGetAngleHeading()
    Specified by:
      `cameraGetAngleHeading` in interface `JCameraSphericalReadableType`
    Returns:
      The angle around the vertical axis.

  - ### cameraGetAngleIncline

    @Parameter(order=5) double cameraGetAngleIncline()
    Specified by:
      `cameraGetAngleIncline` in interface `JCameraSphericalReadableType`
    Returns:
      The angle around the horizontal axis.

  - ### cameraGetZoom

    @Parameter(order=6) double cameraGetZoom()
    Specified by:
      `cameraGetZoom` in interface `JCameraSphericalReadableType`
    Returns:
      The zoom (or radius) of the camera.

  - ### cameraGetForwardProjectedOnXZ

    @Parameter(order=7) com.io7m.jtensors.core.unparameterized.vectors.Vector3D cameraGetForwardProjectedOnXZ()
    Specified by:
      `cameraGetForwardProjectedOnXZ` in interface `JCameraSphericalReadableType`
    Returns:
      The forward direction for the camera, projected onto the X/Z plane.

  - ### cameraGetTargetPosition

    @Parameter(order=8) com.io7m.jtensors.core.unparameterized.vectors.Vector3D cameraGetTargetPosition()
    Specified by:
      `cameraGetTargetPosition` in interface `JCameraSphericalReadableType`
    Returns:
      The position of the camera target.

  - ### cameraMakeViewMatrix

    default com.io7m.jtensors.core.unparameterized.matrices.Matrix4x4D cameraMakeViewMatrix()
    Description copied from interface: `JCameraReadableType`
    Construct a view matrix for the camera.
    Specified by:
      `cameraMakeViewMatrix` in interface `JCameraReadableType`
    Returns:
      A view matrix for the camera

  - ### cameraMakeViewPMatrix

    default <T0, T1> com.io7m.jtensors.core.parameterized.matrices.PMatrix4x4D<T0,T1> cameraMakeViewPMatrix()
    Description copied from interface: `JCameraReadableType`
    Construct a view matrix for the camera.
    Specified by:
      `cameraMakeViewPMatrix` in interface `JCameraReadableType`
    Type Parameters:
      `T0` - The source coordinate system
      `T1` - The target coordiante system
    Returns:
      A view matrix for the camera