## Uses of Class
org.sunflow.math.Matrix4

- Packages that use Matrix4
  Package | Description
  --- | ---
  org.sunflow |
  org.sunflow.core |
  org.sunflow.core.light |
  org.sunflow.core.parser |
  org.sunflow.core.primitive |
  org.sunflow.core.tesselatable |
  org.sunflow.math |

- - ### Uses of Matrix4 in org.sunflow

    Methods in org.sunflow with parameters of type Matrix4
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | SunflowAPI.`parameter​(java.lang.String name, Matrix4 value)` |
    `void` | SunflowAPIInterface.`parameter​(java.lang.String name, Matrix4 value)` | Declare a parameter with the specified name and value.

  - ### Uses of Matrix4 in org.sunflow.core

    Methods in org.sunflow.core that return Matrix4
    Modifier and Type | Method | Description
    --- | --- | ---
    `Matrix4` | ShadingState.`getCameraToWorld()` | Get a transformation matrix that will transform camera space points into world space.
    `Matrix4` | ParameterList.`getMatrix​(java.lang.String name, Matrix4 defaultValue)` | Get the specified matrix parameter from this list.
    `Matrix4` | ShadingState.`getWorldToCamera()` | Get a transformation matrix that will transform world space points into camera space.

    Methods in org.sunflow.core with parameters of type Matrix4
    Modifier and Type | Method | Description
    --- | --- | ---
    `static Instance` | Instance.`createTemporary​(PrimitiveList primitives, Matrix4 transform, Shader shader)` |
    `Matrix4` | ParameterList.`getMatrix​(java.lang.String name, Matrix4 defaultValue)` | Get the specified matrix parameter from this list.
    `BoundingBox` | PrimitiveList.`getWorldBounds​(Matrix4 o2w)` | Compute a bounding box of this object in world space, using the specified object-to-world transformation matrix.
    `BoundingBox` | Tesselatable.`getWorldBounds​(Matrix4 o2w)` | Compute a bounding box of this object in world space, using the specified object-to-world transformation matrix.
    `Ray` | Ray.`transform​(Matrix4 m)` | Create a new ray by transforming the supplied one by the given matrix.

  - ### Uses of Matrix4 in org.sunflow.core.light

    Methods in org.sunflow.core.light with parameters of type Matrix4
    Modifier and Type | Method | Description
    --- | --- | ---
    `BoundingBox` | ImageBasedLight.`getWorldBounds​(Matrix4 o2w)` |
    `BoundingBox` | SunSkyLight.`getWorldBounds​(Matrix4 o2w)` |

  - ### Uses of Matrix4 in org.sunflow.core.parser

    Methods in org.sunflow.core.parser that return Matrix4
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected abstract Matrix4` | SCAbstractParser.`parseMatrix()` |
    `protected Matrix4` | SCAsciiParser.`parseMatrix()` |
    `protected Matrix4` | SCBinaryParser.`parseMatrix()` |

  - ### Uses of Matrix4 in org.sunflow.core.primitive

    Methods in org.sunflow.core.primitive with parameters of type Matrix4
    Modifier and Type | Method | Description
    --- | --- | ---
    `BoundingBox` | Background.`getWorldBounds​(Matrix4 o2w)` |
    `BoundingBox` | BanchoffSurface.`getWorldBounds​(Matrix4 o2w)` |
    `BoundingBox` | Box.`getWorldBounds​(Matrix4 o2w)` |
    `BoundingBox` | CornellBox.`getWorldBounds​(Matrix4 o2w)` |
    `BoundingBox` | CubeGrid.`getWorldBounds​(Matrix4 o2w)` |
    `BoundingBox` | Cylinder.`getWorldBounds​(Matrix4 o2w)` |
    `BoundingBox` | Hair.`getWorldBounds​(Matrix4 o2w)` |
    `BoundingBox` | JuliaFractal.`getWorldBounds​(Matrix4 o2w)` |
    `BoundingBox` | ParticleSurface.`getWorldBounds​(Matrix4 o2w)` |
    `BoundingBox` | Plane.`getWorldBounds​(Matrix4 o2w)` |
    `BoundingBox` | QuadMesh.`getWorldBounds​(Matrix4 o2w)` |
    `BoundingBox` | Sphere.`getWorldBounds​(Matrix4 o2w)` |
    `BoundingBox` | SphereFlake.`getWorldBounds​(Matrix4 o2w)` |
    `BoundingBox` | Torus.`getWorldBounds​(Matrix4 o2w)` |
    `BoundingBox` | TriangleMesh.`getWorldBounds​(Matrix4 o2w)` |

  - ### Uses of Matrix4 in org.sunflow.core.tesselatable

    Methods in org.sunflow.core.tesselatable with parameters of type Matrix4
    Modifier and Type | Method | Description
    --- | --- | ---
    `BoundingBox` | BezierMesh.`getWorldBounds​(Matrix4 o2w)` |
    `BoundingBox` | FileMesh.`getWorldBounds​(Matrix4 o2w)` |

  - ### Uses of Matrix4 in org.sunflow.math

    Fields in org.sunflow.math declared as Matrix4
    Modifier and Type | Field | Description
    --- | --- | ---
    `static Matrix4` | Matrix4.`IDENTITY` |
    `static Matrix4` | Matrix4.`ZERO` |

    Methods in org.sunflow.math that return Matrix4
    Modifier and Type | Method | Description
    --- | --- | ---
    `static Matrix4` | Matrix4.`blend​(Matrix4 m0, Matrix4 m1, float t)` |
    `static Matrix4` | Matrix4.`fromBasis​(OrthoNormalBasis basis)` | Creates a rotation matrix from an OrthonormalBasis.
    `Matrix4` | MovingMatrix4.`getData​(int i)` | Get the matrix for the given time step.
    `Matrix4` | Matrix4.`inverse()` | Compute the inverse of this matrix and return it as a new object.
    `static Matrix4` | Matrix4.`lookAt​(Point3 eye, Point3 target, Vector3 up)` | Creates a camera positioning matrix from the given eye and target points and up vector.
    `Matrix4` | Matrix4.`multiply​(Matrix4 m)` | Computes this*m and return the result as a new Matrix4
    `static Matrix4` | Matrix4.`rotate​(float x, float y, float z, float theta)` | Creates a rotation matrix about the specified axis.
    `static Matrix4` | Matrix4.`rotateX​(float theta)` | Creates a rotation matrix about the X axis.
    `static Matrix4` | Matrix4.`rotateY​(float theta)` | Creates a rotation matrix about the Y axis.
    `static Matrix4` | Matrix4.`rotateZ​(float theta)` | Creates a rotation matrix about the Z axis.
    `Matrix4` | MovingMatrix4.`sample​(float time)` |
    `static Matrix4` | Matrix4.`scale​(float s)` | Create a uniform scaling matrix.
    `static Matrix4` | Matrix4.`scale​(float sx, float sy, float sz)` | Creates a non-uniform scaling matrix.
    `static Matrix4` | Matrix4.`translation​(float x, float y, float z)` | Create a translation matrix for the specified vector.

    Methods in org.sunflow.math with parameters of type Matrix4
    Modifier and Type | Method | Description
    --- | --- | ---
    `static Matrix4` | Matrix4.`blend​(Matrix4 m0, Matrix4 m1, float t)` |
    `boolean` | Matrix4.`equals​(Matrix4 m)` |
    `Matrix4` | Matrix4.`multiply​(Matrix4 m)` | Computes this*m and return the result as a new Matrix4
    `void` | MovingMatrix4.`updateData​(int i, Matrix4 m)` | Updates the matrix for the given time step.

    Constructors in org.sunflow.math with parameters of type Matrix4
    Constructor | Description
    --- | ---
    `MovingMatrix4​(Matrix4 m)` | Constructs a simple static matrix.