Package com.io7m.jcamera

# Class JCameraSphericalLinearIntegratorZoomScaled

java.lang.Object
com.io7m.jcamera.JCameraSphericalLinearIntegratorZoomScaled

All Implemented Interfaces:
  `JCameraIntegratorType`, `JCameraSphericalLinearIntegratorType`

@EqualityReference public final class JCameraSphericalLinearIntegratorZoomScaled extends Object implements JCameraSphericalLinearIntegratorType
An implementation of `JCameraSphericalLinearIntegratorType` that scales movement on the horizontal plane by the current zoom.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `integrate(double t)`
  Integrate the positions/velocities of the current camera over `d`.
  `JCameraSphericalType`
  `integratorGetCamera()`
  `JCameraSphericalInputType`
  `integratorGetInput()`
  `void`
  `integratorLinearTargetSetAcceleration(double a)`
  Set the linear acceleration (of the camera target) to `a`.
  `void`
  `integratorLinearTargetSetDrag(double f)`
  Set the linear drag factor (of the camera target) to `f`.
  `void`
  `integratorLinearTargetSetMaximumSpeed(double s)`
  Set the maximum linear movement speed (of the camera target) to `s`.
  `void`
  `integratorLinearZoomSetAcceleration(double a)`
  Set the linear acceleration (of the camera zoom) to `a`.
  `void`
  `integratorLinearZoomSetDrag(double f)`
  Set the linear drag factor (of the camera zoom) to `f`.
  `void`
  `integratorLinearZoomSetMaximumSpeed(double s)`
  Set the maximum linear movement speed (of the camera zoom) to `s`.
  `static JCameraSphericalLinearIntegratorType`
  `newIntegrator(JCameraSphericalType in_camera, JCameraSphericalInputType in_input)`
  Construct a new integrator.
  `static JCameraSphericalLinearIntegratorType`
  `newIntegratorWithFunctions(JCameraSphericalType in_camera, JCameraSphericalInput in_input, JCameraScalingFunctionType in_drag_scale, JCameraScalingFunctionType in_linear_scale)`
  Construct a new integrator.

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

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Method Details

  - ### newIntegrator

    public static JCameraSphericalLinearIntegratorType newIntegrator(JCameraSphericalType in_camera, JCameraSphericalInputType in_input)
    Construct a new integrator.
    Parameters:
      `in_camera` - The camera to be integrated.
      `in_input` - The input to be sampled.
    Returns:
      A new integrator

  - ### newIntegratorWithFunctions

    public static JCameraSphericalLinearIntegratorType newIntegratorWithFunctions(JCameraSphericalType in_camera, JCameraSphericalInput in_input, JCameraScalingFunctionType in_drag_scale, JCameraScalingFunctionType in_linear_scale)
    Construct a new integrator.
    Parameters:
      `in_camera` - The camera to be integrated.
      `in_input` - The input to be sampled.
      `in_drag_scale` - The function used to produce a scaling factor for mouse dragging.
      `in_linear_scale` - The function used to produce a scaling factor for linear movement.
    Returns:
      A new integrator

  - ### integrate

    public void integrate(double t)
    Description copied from interface: `JCameraIntegratorType`
    Integrate the positions/velocities of the current camera over `d`.
    Specified by:
      `integrate` in interface `JCameraIntegratorType`
    Parameters:
      `t` - The delta time

  - ### integratorGetCamera

    public JCameraSphericalType integratorGetCamera()
    Specified by:
      `integratorGetCamera` in interface `JCameraSphericalLinearIntegratorType`
    Returns:
      The camera that will be affected by the integrator

  - ### integratorGetInput

    public JCameraSphericalInputType integratorGetInput()
    Specified by:
      `integratorGetInput` in interface `JCameraSphericalLinearIntegratorType`
    Returns:
      The input used to drive the integrator.

  - ### integratorLinearTargetSetAcceleration

    public void integratorLinearTargetSetAcceleration(double a)
    Description copied from interface: `JCameraSphericalLinearIntegratorType`
    Set the linear acceleration (of the camera target) to `a`.
    Specified by:
      `integratorLinearTargetSetAcceleration` in interface `JCameraSphericalLinearIntegratorType`
    Parameters:
      `a` - The linear acceleration.

  - ### integratorLinearTargetSetDrag

    public void integratorLinearTargetSetDrag(double f)
    Description copied from interface: `JCameraSphericalLinearIntegratorType`
    Set the linear drag factor (of the camera target) to `f`.
    Specified by:
      `integratorLinearTargetSetDrag` in interface `JCameraSphericalLinearIntegratorType`
    Parameters:
      `f` - The linear drag factor.

  - ### integratorLinearTargetSetMaximumSpeed

    public void integratorLinearTargetSetMaximumSpeed(double s)
    Description copied from interface: `JCameraSphericalLinearIntegratorType`
    Set the maximum linear movement speed (of the camera target) to `s`.
    Specified by:
      `integratorLinearTargetSetMaximumSpeed` in interface `JCameraSphericalLinearIntegratorType`
    Parameters:
      `s` - The maximum linear speed.

  - ### integratorLinearZoomSetAcceleration

    public void integratorLinearZoomSetAcceleration(double a)
    Description copied from interface: `JCameraSphericalLinearIntegratorType`
    Set the linear acceleration (of the camera zoom) to `a`.
    Specified by:
      `integratorLinearZoomSetAcceleration` in interface `JCameraSphericalLinearIntegratorType`
    Parameters:
      `a` - The linear acceleration.

  - ### integratorLinearZoomSetDrag

    public void integratorLinearZoomSetDrag(double f)
    Description copied from interface: `JCameraSphericalLinearIntegratorType`
    Set the linear drag factor (of the camera zoom) to `f`.
    Specified by:
      `integratorLinearZoomSetDrag` in interface `JCameraSphericalLinearIntegratorType`
    Parameters:
      `f` - The linear drag factor.

  - ### integratorLinearZoomSetMaximumSpeed

    public void integratorLinearZoomSetMaximumSpeed(double s)
    Description copied from interface: `JCameraSphericalLinearIntegratorType`
    Set the maximum linear movement speed (of the camera zoom) to `s`.
    Specified by:
      `integratorLinearZoomSetMaximumSpeed` in interface `JCameraSphericalLinearIntegratorType`
    Parameters:
      `s` - The maximum linear speed.