Package com.io7m.jcamera

# Class JCameraFPSStyleSnapshot

java.lang.Object
com.io7m.jcamera.JCameraFPSStyleSnapshot

All Implemented Interfaces:
  `JCameraFPSStyleReadableType`, `JCameraFPSStyleSnapshotType`, `JCameraReadableSnapshotType`, `JCameraReadableType`

public final class JCameraFPSStyleSnapshot extends Object implements JCameraFPSStyleSnapshotType
An immutable snapshot of a camera.

- ## Nested Class Summary

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

- ## Method Summary

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

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

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

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

  `cameraMakeViewMatrix, cameraMakeViewPMatrix`

- ## Method Details

  - ### cameraGetAngleAroundHorizontal

    public double cameraGetAngleAroundHorizontal()
    Specified by:
      `cameraGetAngleAroundHorizontal` in interface `JCameraFPSStyleReadableType`
    Specified by:
      `cameraGetAngleAroundHorizontal` in interface `JCameraFPSStyleSnapshotType`
    Returns:
      The value of the `cameraGetAngleAroundHorizontal` attribute

  - ### cameraGetAngleAroundVertical

    public double cameraGetAngleAroundVertical()
    Specified by:
      `cameraGetAngleAroundVertical` in interface `JCameraFPSStyleReadableType`
    Specified by:
      `cameraGetAngleAroundVertical` in interface `JCameraFPSStyleSnapshotType`
    Returns:
      The value of the `cameraGetAngleAroundVertical` attribute

  - ### cameraGetRight

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

  - ### cameraGetUp

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

  - ### cameraGetForward

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

  - ### cameraGetPosition

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

  - ### withCameraGetAngleAroundHorizontal

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

  - ### withCameraGetAngleAroundVertical

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

  - ### withCameraGetRight

    public final JCameraFPSStyleSnapshot 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 JCameraFPSStyleSnapshot 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 JCameraFPSStyleSnapshot 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 JCameraFPSStyleSnapshot 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

  - ### equals

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

  - ### toString

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

  - ### of

    public static JCameraFPSStyleSnapshot of(double cameraGetAngleAroundHorizontal, double cameraGetAngleAroundVertical, 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)
    Construct a new immutable `JCameraFPSStyleSnapshot` instance.
    Parameters:
      `cameraGetAngleAroundHorizontal` - The value for the `cameraGetAngleAroundHorizontal` attribute
      `cameraGetAngleAroundVertical` - The value for the `cameraGetAngleAroundVertical` attribute
      `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
    Returns:
      An immutable JCameraFPSStyleSnapshot instance

  - ### copyOf

    public static JCameraFPSStyleSnapshot copyOf(JCameraFPSStyleSnapshotType instance)
    Creates an immutable copy of a `JCameraFPSStyleSnapshotType` 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 JCameraFPSStyleSnapshot instance

  - ### builder

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

         JCameraFPSStyleSnapshot.builder()
            .setCameraGetAngleAroundHorizontal(double) // required cameraGetAngleAroundHorizontal
            .setCameraGetAngleAroundVertical(double) // required cameraGetAngleAroundVertical
            .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
            .build();

    Returns:
      A new JCameraFPSStyleSnapshot builder