com.io7m.r2.core

## Class R2TransformSiOT

- java.lang.Object
- - com.io7m.r2.core.R2TransformSiOT

- All Implemented Interfaces:
    R2TransformNonOrthogonalReadableType, R2TransformReadableType, R2TransformType

      public final class R2TransformSiOT
      extends Object
      implements R2TransformNonOrthogonalReadableType, R2TransformType

  A transform represented by a scale, followed by an orientation, followed by a translation.

  The transform allows independent scaling on each axis and may therefore produce matrices that are not orthogonal.

- - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `com.io7m.jtensors.Quaternion4FType` | `getOrientation()`
    `com.io7m.jtensors.Vector3FType` | `getScale()`
    `com.io7m.jtensors.parameterized.PVector3FType<R2SpaceWorldType>` | `getTranslation()`
    `static R2TransformSiOT` | `newTransform()` Construct a transform using the default values: The identity quaternion `(0, 0, 0, 1)` for orientation, the scale vector `(1, 1, 1)`, and the translation `(0, 0, 0)`.
    `static R2TransformSiOT` | `newTransformWith(com.io7m.jtensors.Quaternion4FType in_orientation, com.io7m.jtensors.Vector3FType in_scale, com.io7m.jtensors.parameterized.PVectorM3F<R2SpaceWorldType> in_translation)` Construct a transform using the given initial values.
    `R2WatchableType<R2TransformReadableType>` | `transformGetWatchable()`
    `void` | `transformMakeMatrix4x4F(R2TransformContextType context, com.io7m.jtensors.parameterized.PMatrixWritable4x4FType<R2SpaceObjectType,R2SpaceWorldType> m)` Produce a 4x4 matrix for the current transformation, writing the resulting matrix to `m`.
    `R2WatchableType<R2TransformNonOrthogonalReadableType>` | `transformNonOrthogonalGetWatchable()`

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

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

- - ### Method Detail

    - #### newTransformWith

          public static R2TransformSiOT newTransformWith(com.io7m.jtensors.Quaternion4FType in_orientation,
                                                         com.io7m.jtensors.Vector3FType in_scale,
                                                         com.io7m.jtensors.parameterized.PVectorM3F<R2SpaceWorldType> in_translation)

      Construct a transform using the given initial values. The given vectors are not copied; any modifications made to them will be reflected in the transform.

      Parameters:
        `in_orientation` - The orientation
        `in_scale` - The scale
        `in_translation` - The translation
      Returns:
        A new transform

    - #### newTransform

          public static R2TransformSiOT newTransform()

      Construct a transform using the default values: The identity quaternion `(0, 0, 0, 1)` for orientation, the scale vector `(1, 1, 1)`, and the translation `(0, 0, 0)`.

      Returns:
        A new transform

    - #### getOrientation

          public com.io7m.jtensors.Quaternion4FType getOrientation()

      Returns:
        A quaternion representing the current orientation

    - #### getScale

          public com.io7m.jtensors.Vector3FType getScale()

      Returns:
        A vector representing scale in three dimensions

    - #### getTranslation

          public com.io7m.jtensors.parameterized.PVector3FType<R2SpaceWorldType> getTranslation()

      Returns:
        A translation in world-space

    - #### transformMakeMatrix4x4F

          public void transformMakeMatrix4x4F(R2TransformContextType context,
                                              com.io7m.jtensors.parameterized.PMatrixWritable4x4FType<R2SpaceObjectType,R2SpaceWorldType> m)

      Description copied from interface: `R2TransformReadableType`
      Produce a 4x4 matrix for the current transformation, writing the resulting matrix to `m`.
      Specified by:
        `transformMakeMatrix4x4F` in interface `R2TransformReadableType`
      Parameters:
        `context` - The current transform context
        `m` - The matrix to which values will be written

    - #### transformGetWatchable

          public R2WatchableType<R2TransformReadableType> transformGetWatchable()

      Specified by:
        `transformGetWatchable` in interface `R2TransformReadableType`
      Returns:
        The watchable value for this transform

    - #### transformNonOrthogonalGetWatchable

          public R2WatchableType<R2TransformNonOrthogonalReadableType> transformNonOrthogonalGetWatchable()

      Specified by:
        `transformNonOrthogonalGetWatchable` in interface `R2TransformNonOrthogonalReadableType`
      Returns:
        The watchable value for this transform

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