com.io7m.jcamera

## Interface JCameraSphericalType

- All Superinterfaces:
    JCameraReadableType, JCameraSphericalReadableType, JCameraType
  All Known Implementing Classes:
    JCameraSpherical

      public interface JCameraSphericalType
      extends JCameraType, JCameraSphericalReadableType

  The type of spherical style flying cameras that point towards a given point `p` and allow for:

  - Orbiting horizontally around `p`
  - Orbiting vertically around `p`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `cameraClampInclineDisable()` Do not clamp rotations around the horizontal axis.
    `void` | `cameraClampInclineEnable(double min, double max)` Clamp the possible rotations around the horizontal axis to the given bounds.
    `void` | `cameraClampRadiusDisable()` Do not clamp the length of the radius.
    `void` | `cameraClampRadiusEnable(double min, double max)` Clamp the length of the radius to the given bounds.
    `void` | `cameraMoveTargetForwardOnXZ(double u)` Move the target point of the camera forward `u` units iff `u` is positive, or backward `u` units iff `u` is negative.
    `void` | `cameraMoveTargetRight(double u)` Move the target point of the camera right `u` units iff `u` is positive, or left `u` units iff `u` is negative.
    `void` | `cameraMoveTargetUp(double u)` Move the target point of the camera up `u` units iff `u` is positive, or down `u` units iff `u` is negative.
    `void` | `cameraOrbitHeading(double r)`
    `boolean` | `cameraOrbitIncline(double r)`
    `void` | `cameraSetAngleHeading(double a)` Set the heading angle to `a`.
    `void` | `cameraSetAngleIncline(double a)` Set the incline angle to `a`.
    `void` | `cameraSetTargetPosition(com.io7m.jtensors.core.unparameterized.vectors.Vector3D v)` Set the position of the target point of camera.
    `void` | `cameraSetTargetPosition3(double x, double y, double z)` Set the position of the target point of camera.
    `void` | `cameraSetZoom(double r)` Set the zoom (or radius) of the camera to `r`.
    `boolean` | `cameraZoomIn(double r)` Zoom in the camera by reducing the radius of the sphere.
    `boolean` | `cameraZoomOut(double r)` Zoom out the camera by increasing the radius of the sphere.

    - ### Methods inherited from interface com.io7m.jcamera.JCameraSphericalReadableType

      `cameraGetAngleHeading, cameraGetAngleIncline, cameraGetForward, cameraGetForwardProjectedOnXZ, cameraGetPosition, cameraGetRight, cameraGetTargetPosition, cameraGetUp, cameraGetZoom`

    - ### Methods inherited from interface com.io7m.jcamera.JCameraReadableType

      `cameraMakeViewMatrix, cameraMakeViewPMatrix`

- - ### Method Detail

    - #### cameraClampInclineDisable

          void cameraClampInclineDisable()

      Do not clamp rotations around the horizontal axis.
      See Also:
        `cameraClampInclineEnable(double, double)`

    - #### cameraClampInclineEnable

          void cameraClampInclineEnable(double min,
                                        double max)

      Clamp the possible rotations around the horizontal axis to the given bounds.
      Parameters:
        `min` - The minimum angle
        `max` - The maximum angle

    - #### cameraClampRadiusDisable

          void cameraClampRadiusDisable()

      Do not clamp the length of the radius.
      See Also:
        `cameraClampRadiusEnable(double, double)`

    - #### cameraClampRadiusEnable

          void cameraClampRadiusEnable(double min,
                                       double max)

      Clamp the length of the radius to the given bounds.
      Parameters:
        `min` - The minimum length
        `max` - The maximum length

    - #### cameraMoveTargetForwardOnXZ

          void cameraMoveTargetForwardOnXZ(double u)

      Move the target point of the camera forward `u` units iff `u` is positive, or backward `u` units iff `u` is negative.

      The forward direction, in this case, means the current view direction projected onto the X/Z plane. This means that the camera will not move along the Y axis.

      Parameters:
        `u` - The units to move

    - #### cameraMoveTargetRight

          void cameraMoveTargetRight(double u)

      Move the target point of the camera right `u` units iff `u` is positive, or left `u` units iff `u` is negative.

      The right direction, in this case, means the direction perpendicular to the current view direction, `-π / 2` radians around the global Y axis.

      Parameters:
        `u` - The units to move

    - #### cameraMoveTargetUp

          void cameraMoveTargetUp(double u)

      Move the target point of the camera up `u` units iff `u` is positive, or down `u` units iff `u` is negative.

      The up direction, in this case, means the direction towards positive infinity on the global Y axis.

      Parameters:
        `u` - The units to move

    - #### cameraOrbitHeading

          void cameraOrbitHeading(double r)

      Parameters:
        `r` - The radians to rotate

    - #### cameraOrbitIncline

          boolean cameraOrbitIncline(double r)

      Parameters:
        `r` - The radians to orbit
      Returns:
        `true` if the rotation has been clamped
      See Also:
        `cameraClampInclineEnable(double, double)`

    - #### cameraSetAngleHeading

          void cameraSetAngleHeading(double a)

      Set the heading angle to `a`.
      Parameters:
        `a` - The angle.

    - #### cameraSetAngleIncline

          void cameraSetAngleIncline(double a)

      Set the incline angle to `a`.
      Parameters:
        `a` - The angle.

    - #### cameraSetTargetPosition

          void cameraSetTargetPosition(com.io7m.jtensors.core.unparameterized.vectors.Vector3D v)

      Set the position of the target point of camera.
      Parameters:
        `v` - The position.

    - #### cameraSetTargetPosition3

          void cameraSetTargetPosition3(double x,
                                        double y,
                                        double z)

      Set the position of the target point of camera.
      Parameters:
        `x` - The x coordinate.
        `y` - The y coordinate.
        `z` - The z coordinate.

    - #### cameraSetZoom

          void cameraSetZoom(double r)

      Set the zoom (or radius) of the camera to `r`.
      Parameters:
        `r` - The camera radius.

    - #### cameraZoomIn

          boolean cameraZoomIn(double r)

      Zoom in the camera by reducing the radius of the sphere.
      Parameters:
        `r` - The amount by which to reduce the radius
      Returns:
        `true` if the radius has been clamped
      See Also:
        `cameraClampRadiusEnable(double, double)`

    - #### cameraZoomOut

          boolean cameraZoomOut(double r)

      Zoom out the camera by increasing the radius of the sphere.
      Parameters:
        `r` - The amount by which to increase the radius
      Returns:
        `true` if the radius has been clamped
      See Also:
        `cameraClampRadiusEnable(double, double)`

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