Package org.sunflow.math

## Class MovingMatrix4

- java.lang.Object
- - org.sunflow.math.MovingMatrix4

-     public final class MovingMatrix4
      extends java.lang.Object

  This class describes a transformation matrix that changes over time. Note that while unlimited motion segments are supported, it is assumed that these segments represent equidistant samples within a given time range.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `MovingMatrix4​(Matrix4 m)` | Constructs a simple static matrix.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Matrix4` | `getData​(int i)` | Get the matrix for the given time step.
    `MovingMatrix4` | `inverse()` |
    `int` | `numSegments()` | Get the number of matrix segments
    `Matrix4` | `sample​(float time)` |
    `void` | `setSteps​(int n)` | Redefines the number of steps in the matrix.
    `void` | `updateData​(int i, Matrix4 m)` | Updates the matrix for the given time step.
    `void` | `updateTimes​(float t0, float t1)` | Update the time extents over which the matrix data is changing.

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

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

- - ### Constructor Detail

    - #### MovingMatrix4

          public MovingMatrix4​(Matrix4 m)

      Constructs a simple static matrix.
      Parameters:
        `m` - matrix value at all times

  - ### Method Detail

    - #### setSteps

          public void setSteps​(int n)

      Redefines the number of steps in the matrix. The contents are only re-allocated if the number of steps changes. This is to allow the matrix to be incrementally specified.
      Parameters:
        `n` -

    - #### updateData

          public void updateData​(int i,
                                 Matrix4 m)

      Updates the matrix for the given time step.
      Parameters:
        `i` - time step to update
        `m` - new value for the matrix at this time step

    - #### getData

          public Matrix4 getData​(int i)

      Get the matrix for the given time step.
      Parameters:
        `i` - time step to get
      Returns:
        matrix for the specfied time step

    - #### numSegments

          public int numSegments()

      Get the number of matrix segments
      Returns:
        number of segments

    - #### updateTimes

          public void updateTimes​(float t0,
                                  float t1)

      Update the time extents over which the matrix data is changing. If the interval is empty, no motion will be produced, even if multiple values have been specified.
      Parameters:
        `t0` -
        `t1` -

    - #### inverse

          public MovingMatrix4 inverse()

    - #### sample

          public Matrix4 sample​(float time)