## Uses of Interface
com.io7m.jtensors.QuaternionWritable4DType

- Packages that use QuaternionWritable4DType
  Package | Description
  --- | ---
  com.io7m.jtensors | Core vector and matrix types.
  com.io7m.jtensors.bytebuffered | `ByteBuffer` backed tensors.

- - ### Uses of QuaternionWritable4DType in com.io7m.jtensors

    Subinterfaces of QuaternionWritable4DType in com.io7m.jtensors
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `Quaternion4DType` The type of mutable quaternions with `double` elements.

    Classes in com.io7m.jtensors that implement QuaternionWritable4DType
    Modifier and Type | Class and Description
    --- | ---
    `class` | `QuaternionM4D` A four-dimensional mutable quaternion type with `double` elements.

    Methods in com.io7m.jtensors with type parameters of type QuaternionWritable4DType
    Modifier and Type | Method and Description
    --- | ---
    `static <Q extends QuaternionWritable4DType> Q` | QuaternionM4D.`add(QuaternionReadable4DType q0, QuaternionReadable4DType q1, Q out)` Calculate the element-wise sum of the quaternions `q0` and `q1`, saving the result to `qr`.
    `static <Q extends QuaternionWritable4DType & QuaternionReadable4DType> Q` | QuaternionM4D.`addInPlace(Q q0, QuaternionReadable4DType q1)` Calculate the element-wise sum of the quaternions `q0` and `q1`, saving the result to `q0`.
    `static <Q extends QuaternionWritable4DType> Q` | QuaternionM4D.`conjugate(QuaternionReadable4DType q, Q out)` Calculate the conjugate of the input quaternion `q`, saving the result to `out`.
    `static <Q extends QuaternionWritable4DType & QuaternionReadable4DType> Q` | QuaternionM4D.`conjugateInPlace(Q q)` Calculate the conjugate of the input quaternion `q`, modifying `q` in place.
    `static <Q extends QuaternionWritable4DType> Q` | QuaternionM4D.`copy(QuaternionReadable4DType q, Q out)` Copy the contents of the quaternion `q` to `out`.
    `static <Q extends QuaternionWritable4DType> Q` | QuaternionM4D.`interpolateLinear(QuaternionM4D.ContextQM4D c, QuaternionReadable4DType q0, QuaternionReadable4DType q1, double alpha, Q r)` Linearly interpolate between `q0` and `q1` by the amount `alpha`, such that: `interpolateLinear(q0, q1, 0.0, r) -> r = q0` `interpolateLinear(q0, q1, 1.0, r) -> r = q1`
    `static <Q extends QuaternionWritable4DType> Q` | QuaternionM4D.`lookAt(QuaternionM4D.ContextQM4D context, VectorReadable3DType origin, VectorReadable3DType target, VectorReadable3DType up, Q q)` Produce a quaternion that represents a rotation that "looks at" the point at `target` assuming the viewer is at `origin`, using `up` as the "up" vector, saving the result to `q`.
    `static <Q extends QuaternionWritable4DType> Q` | QuaternionM4D.`makeFromAxisAngle(QuaternionM4D.ContextQM4D c, VectorReadable3DType axis, double angle, Q out)` Produce a quaternion that represents a rotation of `angle` degrees around the axis specified by `axis`, saving the result to `out`.
    `static <Q extends QuaternionWritable4DType> Q` | QuaternionM4D.`makeFromRotationMatrix3x3(MatrixReadable3x3DType m, Q out)` Produce a quaternion equivalent to the rotation matrix `m`, writing the result to `out`.
    `static <Q extends QuaternionWritable4DType> Q` | QuaternionM4D.`makeFromRotationMatrix4x4(MatrixReadable4x4DType m, Q out)` Produce a quaternion equivalent to the rotation matrix `m`, writing the result to `out`.
    `static <Q extends QuaternionWritable4DType> Q` | QuaternionM4D.`multiply(QuaternionReadable4DType q0, QuaternionReadable4DType q1, Q qr)` Multiply the quaternion `q0` by the quaternion `q1` , saving the result to `qr`.
    `static <Q extends QuaternionWritable4DType & QuaternionReadable4DType> Q` | QuaternionM4D.`multiplyInPlace(Q q0, QuaternionReadable4DType q1)` Multiply the quaternion `q0` by the quaternion `q1` , saving the result to `q0`.
    `static <Q extends QuaternionWritable4DType> Q` | QuaternionM4D.`negate(QuaternionReadable4DType qa, Q out)` Negate the elements of `qa`, writing the resulting quaternion to `out`.
    `static <Q extends QuaternionWritable4DType & QuaternionReadable4DType> Q` | QuaternionM4D.`negateInPlace(Q q)` Negate the elements of `q`, modifying the quaternion in-place.
    `static <Q extends QuaternionWritable4DType> Q` | QuaternionM4D.`normalize(QuaternionReadable4DType q, Q out)` Returns a quaternion with the same orientation as `q` but with magnitude equal to `1.0` in `out`.
    `static <Q extends QuaternionWritable4DType & QuaternionReadable4DType> Q` | QuaternionM4D.`normalizeInPlace(Q q)` Returns a quaternion with the same orientation as `q` but with magnitude equal to `1.0` in `q`.
    `static <Q extends QuaternionWritable4DType> Q` | QuaternionM4D.`scale(QuaternionReadable4DType q, double r, Q out)` Scale the quaternion `q` by the scalar `r`, saving the result to `out`.
    `static <Q extends QuaternionWritable4DType & QuaternionReadable4DType> Q` | QuaternionM4D.`scaleInPlace(Q q, double r)` Scale the quaternion `q` by the scalar `r`, saving the result to `q`.
    `static <Q extends QuaternionWritable4DType> Q` | QuaternionM4D.`subtract(QuaternionReadable4DType q0, QuaternionReadable4DType q1, Q out)` Subtract the quaternion `q0` from the quaternion `q1`, saving the result to `out`.
    `static <Q extends QuaternionWritable4DType & QuaternionReadable4DType> Q` | QuaternionM4D.`subtractInPlace(Q q0, QuaternionReadable4DType q1)` Subtract the quaternion `q0` from the quaternion `q1`, saving the result to `q0`.

  - ### Uses of QuaternionWritable4DType in com.io7m.jtensors.bytebuffered

    Subinterfaces of QuaternionWritable4DType in com.io7m.jtensors.bytebuffered
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `QuaternionByteBuffered4DType` The type of `Quaternion4DType` values that are also byte buffered.

    Classes in com.io7m.jtensors.bytebuffered that implement QuaternionWritable4DType
    Modifier and Type | Class and Description
    --- | ---
    `class` | `QuaternionByteBufferedM4D` A quaternion type with `double` elements, packed into a `ByteBuffer`.

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