Package com.io7m.jcamera

# Class JCameraSphericalSnapshot

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

All Implemented Interfaces:
  `JCameraReadableSnapshotType`, `JCameraReadableType`, `JCameraSphericalReadableType`, `JCameraSphericalSnapshotType`

public final class JCameraSphericalSnapshot extends Object implements JCameraSphericalSnapshotType
An immutable snapshot of a camera.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static final class`
  `JCameraSphericalSnapshot.Builder`
  Builds instances of type `JCameraSphericalSnapshot`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static JCameraSphericalSnapshot.Builder`
  `builder()`
  Creates a builder for `JCameraSphericalSnapshot`.
  `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()`
  `static JCameraSphericalSnapshot`
  `copyOf(JCameraSphericalSnapshotType instance)`
  Creates an immutable copy of a `JCameraSphericalSnapshotType` value.
  `boolean`
  `equals(Object another)`
  This instance is equal to all instances of `JCameraSphericalSnapshot` that have equal attribute values.
  `int`
  `hashCode()`
  Computes a hash code from attributes: `cameraGetRight`, `cameraGetUp`, `cameraGetForward`, `cameraGetPosition`, `cameraGetAngleHeading`, `cameraGetAngleIncline`, `cameraGetZoom`, `cameraGetForwardProjectedOnXZ`, `cameraGetTargetPosition`.
  `static JCameraSphericalSnapshot`
  `of(com.io7m.jtensors.core.unparameterized.vectors.Vector3D cameraGetRight, com.io7m.jtensors.core.unparameterized.vectors.Vector3D cameraGetUp, com.io7m.jtensors.core.unparameterized.vectors.Vector3D cameraGetForward, com.io7m.jtensors.core.unparameterized.vectors.Vector3D cameraGetPosition, double cameraGetAngleHeading, double cameraGetAngleIncline, double cameraGetZoom, com.io7m.jtensors.core.unparameterized.vectors.Vector3D cameraGetForwardProjectedOnXZ, com.io7m.jtensors.core.unparameterized.vectors.Vector3D cameraGetTargetPosition)`
  Construct a new immutable `JCameraSphericalSnapshot` instance.
  `String`
  `toString()`
  Prints the immutable value `JCameraSphericalSnapshot` with attribute values.
  `final JCameraSphericalSnapshot`
  `withCameraGetAngleHeading(double value)`
  Copy the current immutable object by setting a value for the `cameraGetAngleHeading` attribute.
  `final JCameraSphericalSnapshot`
  `withCameraGetAngleIncline(double value)`
  Copy the current immutable object by setting a value for the `cameraGetAngleIncline` attribute.
  `final JCameraSphericalSnapshot`
  `withCameraGetForward(com.io7m.jtensors.core.unparameterized.vectors.Vector3D value)`
  Copy the current immutable object by setting a value for the `cameraGetForward` attribute.
  `final JCameraSphericalSnapshot`
  `withCameraGetForwardProjectedOnXZ(com.io7m.jtensors.core.unparameterized.vectors.Vector3D value)`
  Copy the current immutable object by setting a value for the `cameraGetForwardProjectedOnXZ` attribute.
  `final JCameraSphericalSnapshot`
  `withCameraGetPosition(com.io7m.jtensors.core.unparameterized.vectors.Vector3D value)`
  Copy the current immutable object by setting a value for the `cameraGetPosition` attribute.
  `final JCameraSphericalSnapshot`
  `withCameraGetRight(com.io7m.jtensors.core.unparameterized.vectors.Vector3D value)`
  Copy the current immutable object by setting a value for the `cameraGetRight` attribute.
  `final JCameraSphericalSnapshot`
  `withCameraGetTargetPosition(com.io7m.jtensors.core.unparameterized.vectors.Vector3D value)`
  Copy the current immutable object by setting a value for the `cameraGetTargetPosition` attribute.
  `final JCameraSphericalSnapshot`
  `withCameraGetUp(com.io7m.jtensors.core.unparameterized.vectors.Vector3D value)`
  Copy the current immutable object by setting a value for the `cameraGetUp` attribute.
  `final JCameraSphericalSnapshot`
  `withCameraGetZoom(double value)`
  Copy the current immutable object by setting a value for the `cameraGetZoom` attribute.

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

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

  ### Methods inherited from interface com.io7m.jcamera.JCameraSphericalSnapshotType

  `cameraMakeViewMatrix, cameraMakeViewPMatrix`

- ## Method Details

  - ### cameraGetRight

    public com.io7m.jtensors.core.unparameterized.vectors.Vector3D cameraGetRight()
    Specified by:
      `cameraGetRight` in interface `JCameraSphericalReadableType`
    Specified by:
      `cameraGetRight` in interface `JCameraSphericalSnapshotType`
    Returns:
      The value of the `cameraGetRight` attribute

  - ### cameraGetUp

    public com.io7m.jtensors.core.unparameterized.vectors.Vector3D cameraGetUp()
    Specified by:
      `cameraGetUp` in interface `JCameraSphericalReadableType`
    Specified by:
      `cameraGetUp` in interface `JCameraSphericalSnapshotType`
    Returns:
      The value of the `cameraGetUp` attribute

  - ### cameraGetForward

    public com.io7m.jtensors.core.unparameterized.vectors.Vector3D cameraGetForward()
    Specified by:
      `cameraGetForward` in interface `JCameraSphericalReadableType`
    Specified by:
      `cameraGetForward` in interface `JCameraSphericalSnapshotType`
    Returns:
      The value of the `cameraGetForward` attribute

  - ### cameraGetPosition

    public com.io7m.jtensors.core.unparameterized.vectors.Vector3D cameraGetPosition()
    Specified by:
      `cameraGetPosition` in interface `JCameraSphericalReadableType`
    Specified by:
      `cameraGetPosition` in interface `JCameraSphericalSnapshotType`
    Returns:
      The value of the `cameraGetPosition` attribute

  - ### cameraGetAngleHeading

    public double cameraGetAngleHeading()
    Specified by:
      `cameraGetAngleHeading` in interface `JCameraSphericalReadableType`
    Specified by:
      `cameraGetAngleHeading` in interface `JCameraSphericalSnapshotType`
    Returns:
      The value of the `cameraGetAngleHeading` attribute

  - ### cameraGetAngleIncline

    public double cameraGetAngleIncline()
    Specified by:
      `cameraGetAngleIncline` in interface `JCameraSphericalReadableType`
    Specified by:
      `cameraGetAngleIncline` in interface `JCameraSphericalSnapshotType`
    Returns:
      The value of the `cameraGetAngleIncline` attribute

  - ### cameraGetZoom

    public double cameraGetZoom()
    Specified by:
      `cameraGetZoom` in interface `JCameraSphericalReadableType`
    Specified by:
      `cameraGetZoom` in interface `JCameraSphericalSnapshotType`
    Returns:
      The value of the `cameraGetZoom` attribute

  - ### cameraGetForwardProjectedOnXZ

    public com.io7m.jtensors.core.unparameterized.vectors.Vector3D cameraGetForwardProjectedOnXZ()
    Specified by:
      `cameraGetForwardProjectedOnXZ` in interface `JCameraSphericalReadableType`
    Specified by:
      `cameraGetForwardProjectedOnXZ` in interface `JCameraSphericalSnapshotType`
    Returns:
      The value of the `cameraGetForwardProjectedOnXZ` attribute

  - ### cameraGetTargetPosition

    public com.io7m.jtensors.core.unparameterized.vectors.Vector3D cameraGetTargetPosition()
    Specified by:
      `cameraGetTargetPosition` in interface `JCameraSphericalReadableType`
    Specified by:
      `cameraGetTargetPosition` in interface `JCameraSphericalSnapshotType`
    Returns:
      The value of the `cameraGetTargetPosition` attribute

  - ### withCameraGetRight

    public final JCameraSphericalSnapshot withCameraGetRight(com.io7m.jtensors.core.unparameterized.vectors.Vector3D value)
    Copy the current immutable object by setting a value for the `cameraGetRight` attribute. A shallow reference equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for cameraGetRight
    Returns:
      A modified copy of the `this` object

  - ### withCameraGetUp

    public final JCameraSphericalSnapshot withCameraGetUp(com.io7m.jtensors.core.unparameterized.vectors.Vector3D value)
    Copy the current immutable object by setting a value for the `cameraGetUp` attribute. A shallow reference equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for cameraGetUp
    Returns:
      A modified copy of the `this` object

  - ### withCameraGetForward

    public final JCameraSphericalSnapshot withCameraGetForward(com.io7m.jtensors.core.unparameterized.vectors.Vector3D value)
    Copy the current immutable object by setting a value for the `cameraGetForward` attribute. A shallow reference equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for cameraGetForward
    Returns:
      A modified copy of the `this` object

  - ### withCameraGetPosition

    public final JCameraSphericalSnapshot withCameraGetPosition(com.io7m.jtensors.core.unparameterized.vectors.Vector3D value)
    Copy the current immutable object by setting a value for the `cameraGetPosition` attribute. A shallow reference equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for cameraGetPosition
    Returns:
      A modified copy of the `this` object

  - ### withCameraGetAngleHeading

    public final JCameraSphericalSnapshot withCameraGetAngleHeading(double value)
    Copy the current immutable object by setting a value for the `cameraGetAngleHeading` attribute. A value strict bits equality used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for cameraGetAngleHeading
    Returns:
      A modified copy of the `this` object

  - ### withCameraGetAngleIncline

    public final JCameraSphericalSnapshot withCameraGetAngleIncline(double value)
    Copy the current immutable object by setting a value for the `cameraGetAngleIncline` attribute. A value strict bits equality used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for cameraGetAngleIncline
    Returns:
      A modified copy of the `this` object

  - ### withCameraGetZoom

    public final JCameraSphericalSnapshot withCameraGetZoom(double value)
    Copy the current immutable object by setting a value for the `cameraGetZoom` attribute. A value strict bits equality used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for cameraGetZoom
    Returns:
      A modified copy of the `this` object

  - ### withCameraGetForwardProjectedOnXZ

    public final JCameraSphericalSnapshot withCameraGetForwardProjectedOnXZ(com.io7m.jtensors.core.unparameterized.vectors.Vector3D value)
    Copy the current immutable object by setting a value for the `cameraGetForwardProjectedOnXZ` attribute. A shallow reference equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for cameraGetForwardProjectedOnXZ
    Returns:
      A modified copy of the `this` object

  - ### withCameraGetTargetPosition

    public final JCameraSphericalSnapshot withCameraGetTargetPosition(com.io7m.jtensors.core.unparameterized.vectors.Vector3D value)
    Copy the current immutable object by setting a value for the `cameraGetTargetPosition` attribute. A shallow reference equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for cameraGetTargetPosition
    Returns:
      A modified copy of the `this` object

  - ### equals

    public boolean equals(Object another)
    This instance is equal to all instances of `JCameraSphericalSnapshot` 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: `cameraGetRight`, `cameraGetUp`, `cameraGetForward`, `cameraGetPosition`, `cameraGetAngleHeading`, `cameraGetAngleIncline`, `cameraGetZoom`, `cameraGetForwardProjectedOnXZ`, `cameraGetTargetPosition`.
    Overrides:
      `hashCode` in class `Object`
    Returns:
      hashCode value

  - ### toString

    public String toString()
    Prints the immutable value `JCameraSphericalSnapshot` with attribute values.
    Overrides:
      `toString` in class `Object`
    Returns:
      A string representation of the value

  - ### of

    public static JCameraSphericalSnapshot of(com.io7m.jtensors.core.unparameterized.vectors.Vector3D cameraGetRight, com.io7m.jtensors.core.unparameterized.vectors.Vector3D cameraGetUp, com.io7m.jtensors.core.unparameterized.vectors.Vector3D cameraGetForward, com.io7m.jtensors.core.unparameterized.vectors.Vector3D cameraGetPosition, double cameraGetAngleHeading, double cameraGetAngleIncline, double cameraGetZoom, com.io7m.jtensors.core.unparameterized.vectors.Vector3D cameraGetForwardProjectedOnXZ, com.io7m.jtensors.core.unparameterized.vectors.Vector3D cameraGetTargetPosition)
    Construct a new immutable `JCameraSphericalSnapshot` instance.
    Parameters:
      `cameraGetRight` - The value for the `cameraGetRight` attribute
      `cameraGetUp` - The value for the `cameraGetUp` attribute
      `cameraGetForward` - The value for the `cameraGetForward` attribute
      `cameraGetPosition` - The value for the `cameraGetPosition` attribute
      `cameraGetAngleHeading` - The value for the `cameraGetAngleHeading` attribute
      `cameraGetAngleIncline` - The value for the `cameraGetAngleIncline` attribute
      `cameraGetZoom` - The value for the `cameraGetZoom` attribute
      `cameraGetForwardProjectedOnXZ` - The value for the `cameraGetForwardProjectedOnXZ` attribute
      `cameraGetTargetPosition` - The value for the `cameraGetTargetPosition` attribute
    Returns:
      An immutable JCameraSphericalSnapshot instance

  - ### copyOf

    public static JCameraSphericalSnapshot copyOf(JCameraSphericalSnapshotType instance)
    Creates an immutable copy of a `JCameraSphericalSnapshotType` value. Uses accessors to get values to initialize the new immutable instance. If an instance is already immutable, it is returned as is.
    Parameters:
      `instance` - The instance to copy
    Returns:
      A copied immutable JCameraSphericalSnapshot instance

  - ### builder

    public static JCameraSphericalSnapshot.Builder builder()
    Creates a builder for `JCameraSphericalSnapshot`.

         JCameraSphericalSnapshot.builder()
            .setCameraGetRight(com.io7m.jtensors.core.unparameterized.vectors.Vector3D) // required cameraGetRight
            .setCameraGetUp(com.io7m.jtensors.core.unparameterized.vectors.Vector3D) // required cameraGetUp
            .setCameraGetForward(com.io7m.jtensors.core.unparameterized.vectors.Vector3D) // required cameraGetForward
            .setCameraGetPosition(com.io7m.jtensors.core.unparameterized.vectors.Vector3D) // required cameraGetPosition
            .setCameraGetAngleHeading(double) // required cameraGetAngleHeading
            .setCameraGetAngleIncline(double) // required cameraGetAngleIncline
            .setCameraGetZoom(double) // required cameraGetZoom
            .setCameraGetForwardProjectedOnXZ(com.io7m.jtensors.core.unparameterized.vectors.Vector3D) // required cameraGetForwardProjectedOnXZ
            .setCameraGetTargetPosition(com.io7m.jtensors.core.unparameterized.vectors.Vector3D) // required cameraGetTargetPosition
            .build();

    Returns:
      A new JCameraSphericalSnapshot builder