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

- Packages that use VectorReadable3FType
  Package | Description
  --- | ---
  com.io7m.jtensors |

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

    Subinterfaces of VectorReadable3FType in com.io7m.jtensors
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `QuaternionReadable4FType` 'Read' interface to four-dimensional quaternions with single precision elements.
    `interface` | `VectorReadable4FType` 'Read' interface to four-dimensional vectors with single precision elements.

    Classes in com.io7m.jtensors that implement VectorReadable3FType
    Modifier and Type | Class and Description
    --- | ---
    `class` | `QuaternionI4F` A four-dimensional immutable quaternion type with single precision elements.
    `class` | `QuaternionM4F` A four-dimensional mutable quaternion type with single precision elements.
    `class` | `VectorI3F` A three-dimensional immutable vector type with single precision elements.
    `class` | `VectorI4F` A four-dimensional immutable vector type with single precision elements.
    `class` | `VectorM3F` A three-dimensional mutable vector type with single precision elements.
    `class` | `VectorM4F` A four-dimensional mutable vector type with single precision elements.

    Methods in com.io7m.jtensors with parameters of type VectorReadable3FType
    Modifier and Type | Method and Description
    --- | ---
    `static VectorI3F` | VectorI3F.`absolute(VectorReadable3FType v)` Calculate the absolute value of the vector `v`.
    `static VectorM3F` | VectorM3F.`absolute(VectorReadable3FType v, VectorM3F out)` Calculate the absolute values of the elements in vector `v`, saving the result to `out`.
    `static VectorI3F` | VectorI3F.`add(VectorReadable3FType v0, VectorReadable3FType v1)` Calculate the element-wise sum of the vectors `v0` and `v1`.
    `static VectorM3F` | VectorM3F.`add(VectorReadable3FType v0, VectorReadable3FType v1, VectorM3F out)` Calculate the element-wise sum of the vectors `v0` and `v1`, saving the result to `out`.
    `static VectorM3F` | VectorM3F.`addInPlace(VectorM3F v0, VectorReadable3FType v1)` Calculate the element-wise sum of the vectors `v0` and `v1`, saving the result to `v0`.
    `static VectorM3F` | VectorM3F.`addScaled(VectorReadable3FType v0, VectorReadable3FType v1, double r, VectorM3F out)` Calculate the element-wise sum of the vectors `v0` and the element-wise product of `v1` and `r`, saving the result to `out`.
    `static VectorI3F` | VectorI3F.`addScaled(VectorReadable3FType v0, VectorReadable3FType v1, float r)` Calculate the element-wise sum of the vectors `v0` and the element-wise product of `v1` and `r`.
    `static VectorM3F` | VectorM3F.`addScaledInPlace(VectorM3F v0, VectorReadable3FType v1, double r)` Calculate the element-wise sum of the vectors `v0` and the element-wise product of `v1` and `r`, saving the result to `v0`.
    `static boolean` | VectorM3F.`almostEqual(com.io7m.jequality.AlmostEqualFloat.ContextRelative context, VectorReadable3FType va, VectorReadable3FType vb)` Determine whether or not the vectors `va` and `vb` are equal to within the degree of error given in `context`.
    `static boolean` | VectorI3F.`almostEqual(com.io7m.jequality.AlmostEqualFloat.ContextRelative context, VectorReadable3FType va, VectorReadable3FType vb)` Determine whether or not the vectors `va` and `vb` are equal to within the degree of error given in `context`.
    `static VectorI3F` | VectorI3F.`clamp(VectorReadable3FType v, float minimum, float maximum)` Clamp the elements of the vector `v` to the range `[minimum ..`
    `static VectorM3F` | VectorM3F.`clamp(VectorReadable3FType v, float minimum, float maximum, VectorM3F out)` Clamp the elements of the vector `v` to the range `[minimum ..`
    `static VectorI3F` | VectorI3F.`clampByVector(VectorReadable3FType v, VectorReadable3FType minimum, VectorReadable3FType maximum)` Clamp the elements of the vector `v` to the inclusive range given by the corresponding elements in `minimum` and `maximum`.
    `static VectorM3F` | VectorM3F.`clampByVector(VectorReadable3FType v, VectorReadable3FType minimum, VectorReadable3FType maximum, VectorM3F out)` Clamp the elements of the vector `v` to the inclusive range given by the corresponding elements in `minimum` and `maximum`, saving the result to `out`.
    `static VectorM3F` | VectorM3F.`clampByVectorInPlace(VectorM3F v, VectorReadable3FType minimum, VectorReadable3FType maximum)` Clamp the elements of the vector `v` to the inclusive range given by the corresponding elements in `minimum` and `maximum`, saving the result to `v`.
    `static VectorI3F` | VectorI3F.`clampMaximum(VectorReadable3FType v, float maximum)` Clamp the elements of the vector `v` to the range `[-Infinity ..`
    `static VectorM3F` | VectorM3F.`clampMaximum(VectorReadable3FType v, float maximum, VectorM3F out)` Clamp the elements of the vector `v` to the range `[-Infinity ..`
    `static VectorI3F` | VectorI3F.`clampMaximumByVector(VectorReadable3FType v, VectorReadable3FType maximum)` Clamp the elements of the vector `v` to the inclusive range given by the corresponding elements in `maximum`.
    `static VectorM3F` | VectorM3F.`clampMaximumByVector(VectorReadable3FType v, VectorReadable3FType maximum, VectorM3F out)` Clamp the elements of the vector `v` to the inclusive range given by the corresponding elements in `maximum`, saving the result to `out`.
    `static VectorM3F` | VectorM3F.`clampMaximumByVectorInPlace(VectorM3F v, VectorReadable3FType maximum)` Clamp the elements of the vector `v` to the inclusive range given by the corresponding elements in `maximum`, saving the result to `v`.
    `static VectorI3F` | VectorI3F.`clampMinimum(VectorReadable3FType v, float minimum)` Clamp the elements of the vector `v` to the range `[minimum ..`
    `static VectorM3F` | VectorM3F.`clampMinimum(VectorReadable3FType v, float minimum, VectorM3F out)` Clamp the elements of the vector `v` to the range `[minimum ..`
    `static VectorI3F` | VectorI3F.`clampMinimumByVector(VectorReadable3FType v, VectorReadable3FType minimum)` Clamp the elements of the vector `v` to the inclusive range given by the corresponding elements in `minimum`.
    `static VectorM3F` | VectorM3F.`clampMinimumByVector(VectorReadable3FType v, VectorReadable3FType minimum, VectorM3F out)` Clamp the elements of the vector `v` to the inclusive range given by the corresponding elements in `minimum`, saving the result to `out`.
    `static VectorM3F` | VectorM3F.`clampMinimumByVectorInPlace(VectorM3F v, VectorReadable3FType minimum)` Clamp the elements of the vector `v` to the inclusive range given by the corresponding elements in `minimum`, saving the result to `v`.
    `static <T extends VectorWritable3FType> T` | VectorM3F.`copy(VectorReadable3FType input, T output)` Copy all elements of the vector `input` to the vector `output`.
    `void` | VectorWritable3FType.`copyFrom3F(VectorReadable3FType in_v)` Set the current vector to the contents of the input vector.
    `void` | VectorM4F.`copyFrom3F(VectorReadable3FType in_v)`
    `void` | VectorM3F.`copyFrom3F(VectorReadable3FType in_v)`
    `void` | QuaternionM4F.`copyFrom3F(VectorReadable3FType in_v)`
    `static VectorI3F` | VectorI3F.`crossProduct(VectorReadable3FType v0, VectorReadable3FType v1)` Calculate the cross product of the vectors `v0` and `v1`.
    `static VectorM3F` | VectorM3F.`crossProduct(VectorReadable3FType v0, VectorReadable3FType v1, VectorM3F out)` Return a vector perpendicular to both `v0` and `v1` , saving the result in `out`.
    `static double` | VectorM3F.`distance(VectorReadable3FType v0, VectorReadable3FType v1)` Calculate the distance between the two vectors `v0` and `v1`.
    `static float` | VectorI3F.`distance(VectorReadable3FType v0, VectorReadable3FType v1)` Calculate the distance between the two vectors `v0` and `v1`.
    `static double` | VectorM3F.`dotProduct(VectorReadable3FType v0, VectorReadable3FType v1)` Calculate the scalar product of the vectors `v0` and `v1`.
    `static float` | VectorI3F.`dotProduct(VectorReadable3FType v0, VectorReadable3FType v1)` Calculate the scalar product of the vectors `v0` and `v1`.
    `static VectorM3F` | VectorM3F.`interpolateLinear(VectorReadable3FType v0, VectorReadable3FType v1, double alpha, VectorM3F r)` Linearly interpolate between `v0` and `v1` by the amount `alpha`, saving the result to `r`.
    `static VectorI3F` | VectorI3F.`interpolateLinear(VectorReadable3FType v0, VectorReadable3FType v1, float alpha)` Linearly interpolate between `v0` and `v1` by the amount `alpha`.
    `static void` | MatrixM3x3F.`lookAtWithContext(MatrixM3x3F.Context context, VectorReadable3FType origin, VectorReadable3FType target, VectorReadable3FType up, MatrixM3x3F out_matrix, VectorM3F out_translation)` Calculate a rotation and translation representing a "camera" looking from the point `origin` to the point `target`.
    `static void` | MatrixM4x4F.`lookAtWithContext(MatrixM4x4F.Context context, VectorReadable3FType origin, VectorReadable3FType target, VectorReadable3FType up, MatrixM4x4F out_matrix)` Calculate a matrix representing a "camera" looking from the point `origin` to the point `target`.
    `static QuaternionI4F` | QuaternionI4F.`lookAtWithContext(QuaternionI4F.Context context, VectorReadable3FType origin, VectorReadable3FType target, VectorReadable3FType up)` 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.
    `static QuaternionM4F` | QuaternionM4F.`lookAtWithContext(QuaternionM4F.Context context, VectorReadable3FType origin, VectorReadable3FType target, VectorReadable3FType up, QuaternionM4F 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 float` | VectorM3F.`magnitude(VectorReadable3FType v)` Calculate the magnitude of the vector `v`.
    `static float` | VectorI3F.`magnitude(VectorReadable3FType v)` Calculate the magnitude of the vector `v`.
    `static double` | VectorM3F.`magnitudeSquared(VectorReadable3FType v)` Calculate the squared magnitude of the vector `v`.
    `static float` | VectorI3F.`magnitudeSquared(VectorReadable3FType v)` Calculate the squared magnitude of the vector `v`.
    `static QuaternionI4F` | QuaternionI4F.`makeFromAxisAngle(VectorReadable3FType axis, double angle)` Produce a quaternion that represents a rotation of `angle` degrees around the axis specified by `axis`.
    `static QuaternionM4F` | QuaternionM4F.`makeFromAxisAngle(VectorReadable3FType axis, double angle, QuaternionM4F out)` Produce a quaternion that represents a rotation of `angle` degrees around the axis specified by `axis`, saving the result to `out`.
    `static MatrixM4x4F` | MatrixM4x4F.`makeRotation(double angle, VectorReadable3FType axis)` Generate and return a matrix that represents a rotation of `angle` radians around the axis `axis`.
    `static MatrixM3x3F` | MatrixM3x3F.`makeRotation(double angle, VectorReadable3FType axis)` Generate and return a matrix that represents a rotation of `angle` radians around the axis `axis`.
    `static MatrixM3x3F` | MatrixM3x3F.`makeRotation(double angle, VectorReadable3FType axis, MatrixM3x3F out)` Generate a matrix that represents a rotation of `angle` radians around the axis `axis` and save to `out`.
    `static MatrixM4x4F` | MatrixM4x4F.`makeRotation(double angle, VectorReadable3FType axis, MatrixM4x4F out)` Generate a matrix that represents a rotation of `angle` radians around the axis `axis` and save to `out`.
    `static MatrixM4x4F` | MatrixM4x4F.`makeTranslation3F(VectorReadable3FType v)` Generate and return a matrix that represents a translation of `(v.x, v.y, v.z)` from the origin.
    `static MatrixM4x4F` | MatrixM4x4F.`makeTranslation3F(VectorReadable3FType v, MatrixM4x4F out)` Generate a matrix that represents a translation of `(v.x, v.y, v.z)` from the origin, and save to `out`.
    `static VectorM3F` | MatrixM3x3F.`multiplyVector3F(MatrixReadable3x3FType m, VectorReadable3FType v, VectorM3F out)` Multiply the matrix `m` with the vector `v`, writing the resulting vector to `out`.
    `static VectorI3F` | VectorI3F.`normalize(VectorReadable3FType v)` Normalize the vector `v`, preserving its direction but reducing it to unit length.
    `static VectorM3F` | VectorM3F.`normalize(VectorReadable3FType v, VectorM3F out)` Returns a vector with the same orientation as `v` but with magnitude equal to `1.0` in `out`.
    `static com.io7m.jfunctional.Pair<VectorM3F,VectorM3F>` | VectorM3F.`orthoNormalize(VectorReadable3FType v0, VectorReadable3FType v1)` Orthonormalize and return the vectors `v0` and `v1` .
    `static com.io7m.jfunctional.Pair<VectorI3F,VectorI3F>` | VectorI3F.`orthoNormalize(VectorReadable3FType v0, VectorReadable3FType v1)` Orthonormalize and return the vectors `v0` and `v1` .
    `static VectorI3F` | VectorI3F.`projection(VectorReadable3FType p, VectorReadable3FType q)` Calculate the projection of the vector `p` onto the vector `q`.
    `static VectorM3F` | VectorM3F.`projection(VectorReadable3FType p, VectorReadable3FType q, VectorM3F r)` Calculate the projection of the vector `p` onto the vector `q`, saving the result in `r`.
    `static MatrixM3x3F` | MatrixM3x3F.`rotate(double angle, MatrixReadable3x3FType m, VectorReadable3FType axis, MatrixM3x3F out)` Rotate the matrix `m` by `angle` radians around the axis `axis`, saving the result into `out`.
    `static MatrixM4x4F` | MatrixM4x4F.`rotate(double angle, MatrixReadable4x4FType m, VectorReadable3FType axis, MatrixM4x4F out)` Rotate the matrix `m` by `angle` radians around the axis `axis`, saving the result into `out`.
    `static MatrixM3x3F` | MatrixM3x3F.`rotateInPlace(double angle, MatrixM3x3F m, VectorReadable3FType axis)` Rotate the matrix `m` by `angle` radians around the axis `axis`, saving the result into `m`.
    `static MatrixM4x4F` | MatrixM4x4F.`rotateInPlace(double angle, MatrixM4x4F m, VectorReadable3FType axis)` Rotate the matrix `m` by `angle` radians around the axis `axis`, saving the result into `m`.
    `static MatrixM3x3F` | MatrixM3x3F.`rotateInPlaceWithContext(MatrixM3x3F.Context context, double angle, MatrixM3x3F m, VectorReadable3FType axis)` Rotate the matrix `m` by `angle` radians around the axis `axis`, saving the result into `m`.
    `static MatrixM4x4F` | MatrixM4x4F.`rotateInPlaceWithContext(MatrixM4x4F.Context context, double angle, MatrixM4x4F m, VectorReadable3FType axis)` Rotate the matrix `m` by `angle` radians around the axis `axis`, saving the result into `m`.
    `static MatrixM3x3F` | MatrixM3x3F.`rotateWithContext(MatrixM3x3F.Context context, double angle, MatrixReadable3x3FType m, VectorReadable3FType axis, MatrixM3x3F out)` Rotate the matrix `m` by `angle` radians around the axis `axis`, saving the result into `out`.
    `static MatrixM4x4F` | MatrixM4x4F.`rotateWithContext(MatrixM4x4F.Context context, double angle, MatrixReadable4x4FType m, VectorReadable3FType axis, MatrixM4x4F out)` Rotate the matrix `m` by `angle` radians around the axis `axis`, saving the result into `out`.
    `static VectorM3F` | VectorM3F.`scale(VectorReadable3FType v, double r, VectorM3F out)` Scale the vector `v` by the scalar `r`, saving the result to `out`.
    `static VectorI3F` | VectorI3F.`scale(VectorReadable3FType v, float r)` Scale the vector `v` by the scalar `r`.
    `static VectorI3F` | VectorI3F.`subtract(VectorReadable3FType v0, VectorReadable3FType v1)` Subtract the vector `v1` from the vector `v0`.
    `static VectorM3F` | VectorM3F.`subtract(VectorReadable3FType v0, VectorReadable3FType v1, VectorM3F out)` Subtract the vector `v1` from the vector `v0`, saving the result to `out`.
    `static VectorM3F` | VectorM3F.`subtractInPlace(VectorM3F v0, VectorReadable3FType v1)` Subtract the vector `v1` from the vector `v0`, saving the result to `v0`.
    `static MatrixM4x4F` | MatrixM4x4F.`translateByVector3F(MatrixReadable4x4FType m, VectorReadable3FType v, MatrixM4x4F out)` Translate the matrix `m` by the vector `v`, storing the resulting matrix in `out`.
    `static MatrixM4x4F` | MatrixM4x4F.`translateByVector3FInPlace(MatrixM4x4F m, VectorReadable3FType v)` Translate the matrix `m` by the vector `v`, storing the resulting matrix in `m`.

    Constructors in com.io7m.jtensors with parameters of type VectorReadable3FType
    Constructor and Description
    `OrthonormalizedI3F(VectorReadable3FType v0, VectorReadable3FType v1, VectorReadable3FType v2)` Orthonormalize and store the vectors `v0`, `v1`, and `v2`.
    `VectorI3F(VectorReadable3FType in_v)` Construct a vector initialized with the values given in the vector `in_v`.
    `VectorM3F(VectorReadable3FType in_v)` Construct a vector initialized with the values given in the vector `in_v`.

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