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

- Packages that use Vector3
  Package | Description
  --- | ---
  org.sunflow |
  org.sunflow.core |
  org.sunflow.core.light |
  org.sunflow.core.photonmap |
  org.sunflow.core.primitive |
  org.sunflow.math |

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

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

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

    Methods in org.sunflow.core that return Vector3
    Modifier and Type | Method | Description
    --- | --- | ---
    `Vector3` | Texture.`getBump​(float x, float y, OrthoNormalBasis basis, float scale)` |
    `Vector3` | Ray.`getDirection()` | Creates a vector to represent the direction of the ray.
    `Vector3` | ShadingState.`getGeoNormal()` | Gets the geometric normal of the current hit point.
    `Vector3` | ShadingState.`getNormal()` | Get shading normal at the hit point.
    `Vector3` | Texture.`getNormal​(float x, float y, OrthoNormalBasis basis)` |
    `Vector3` | ParameterList.`getVector​(java.lang.String name, Vector3 defaultValue)` | Get the specified vector parameter from this list.
    `Vector3` | ShadingState.`transformNormalObjectToWorld​(Vector3 n)` | Transform the given normal from object space to world space.
    `Vector3` | ShadingState.`transformNormalWorldToObject​(Vector3 n)` | Transform the given normal from world space to object space.
    `Vector3` | ShadingState.`transformVectorObjectToWorld​(Vector3 v)` | Transform the given vector from object space to world space.
    `Vector3` | ShadingState.`transformVectorWorldToObject​(Vector3 v)` | Transform the given vector from world space to object space.

    Methods in org.sunflow.core with parameters of type Vector3
    Modifier and Type | Method | Description
    --- | --- | ---
    `float` | LightSample.`dot​(Vector3 v)` | Compute a dot product between the current shadow ray direction and the specified vector.
    `float` | Ray.`dot​(Vector3 v)` | Computes the dot product of an arbitrary vector with the direction of the ray.
    `void` | LightSource.`getPhoton​(double randX1, double randY1, double randX2, double randY2, Point3 p, Vector3 dir, Color power)` | Gets a photon to emit from this light source by setting each of the arguments.
    `Color` | GlobalPhotonMapInterface.`getRadiance​(Point3 p, Vector3 n)` | Lookup the global diffuse radiance at the specified surface point.
    `Vector3` | ParameterList.`getVector​(java.lang.String name, Vector3 defaultValue)` | Get the specified vector parameter from this list.
    `void` | PhotonStore.`store​(ShadingState state, Vector3 dir, Color power, Color diffuse)` | Store the specified photon.
    `void` | ShadingState.`storePhoton​(Vector3 dir, Color power, Color diffuse)` | Records a photon at the specified location.
    `Vector3` | ShadingState.`transformNormalObjectToWorld​(Vector3 n)` | Transform the given normal from object space to world space.
    `Vector3` | ShadingState.`transformNormalWorldToObject​(Vector3 n)` | Transform the given normal from world space to object space.
    `Vector3` | ShadingState.`transformVectorObjectToWorld​(Vector3 v)` | Transform the given vector from object space to world space.
    `Vector3` | ShadingState.`transformVectorWorldToObject​(Vector3 v)` | Transform the given vector from world space to object space.

    Constructors in org.sunflow.core with parameters of type Vector3
    Constructor | Description
    --- | ---
    `Ray​(Point3 o, Vector3 d)` | Creates a new ray that points from the given origin to the given direction.

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

    Methods in org.sunflow.core.light with parameters of type Vector3
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | DirectionalSpotlight.`getPhoton​(double randX1, double randY1, double randX2, double randY2, Point3 p, Vector3 dir, Color power)` |
    `void` | ImageBasedLight.`getPhoton​(double randX1, double randY1, double randX2, double randY2, Point3 p, Vector3 dir, Color power)` |
    `void` | PointLight.`getPhoton​(double randX1, double randY1, double randX2, double randY2, Point3 p, Vector3 dir, Color power)` |
    `void` | SphereLight.`getPhoton​(double randX1, double randY1, double randX2, double randY2, Point3 p, Vector3 dir, Color power)` |
    `void` | SunSkyLight.`getPhoton​(double randX1, double randY1, double randX2, double randY2, Point3 p, Vector3 dir, Color power)` |
    `void` | TriangleMeshLight.`getPhoton​(double randX1, double randY1, double randX2, double randY2, Point3 p, Vector3 dir, Color power)` |

  - ### Uses of Vector3 in org.sunflow.core.photonmap

    Methods in org.sunflow.core.photonmap with parameters of type Vector3
    Modifier and Type | Method | Description
    --- | --- | ---
    `Color` | GlobalPhotonMap.`getRadiance​(Point3 p, Vector3 n)` |
    `Color` | GridPhotonMap.`getRadiance​(Point3 p, Vector3 n)` |
    `void` | CausticPhotonMap.`store​(ShadingState state, Vector3 dir, Color power, Color diffuse)` |
    `void` | GlobalPhotonMap.`store​(ShadingState state, Vector3 dir, Color power, Color diffuse)` |
    `void` | GridPhotonMap.`store​(ShadingState state, Vector3 dir, Color power, Color diffuse)` |

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

    Methods in org.sunflow.core.primitive with parameters of type Vector3
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | CornellBox.`getPhoton​(double randX1, double randY1, double randX2, double randY2, Point3 p, Vector3 dir, Color power)` |

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

    Methods in org.sunflow.math that return Vector3
    Modifier and Type | Method | Description
    --- | --- | ---
    `static Vector3` | Vector3.`add​(Vector3 v1, Vector3 v2, Vector3 dest)` |
    `static Vector3` | Vector3.`cross​(Vector3 v1, Vector3 v2, Vector3 dest)` |
    `static Vector3` | Vector3.`decode​(short n)` |
    `static Vector3` | Vector3.`decode​(short n, Vector3 dest)` |
    `Vector3` | Vector3.`div​(float d)` |
    `Vector3` | Vector3.`div​(float d, Vector3 dest)` |
    `Vector3` | BoundingBox.`getExtents()` | Gets the extents vector for the box.
    `Vector3` | Vector3.`mul​(float s)` |
    `Vector3` | Vector3.`mul​(float s, Vector3 dest)` |
    `Vector3` | Vector3.`negate()` |
    `Vector3` | Vector3.`negate​(Vector3 dest)` |
    `static Vector3` | PerlinVector.`noise​(float x)` |
    `static Vector3` | PerlinVector.`noise​(float x, float y)` |
    `static Vector3` | PerlinVector.`noise​(float x, float y, float z)` |
    `static Vector3` | PerlinVector.`noise​(float x, float y, float z, float t)` |
    `static Vector3` | PerlinVector.`noise​(Point2 p)` |
    `static Vector3` | PerlinVector.`noise​(Point3 p)` |
    `static Vector3` | PerlinVector.`noise​(Point3 p, float t)` |
    `static Vector3` | Point3.`normal​(Point3 p0, Point3 p1, Point3 p2)` |
    `static Vector3` | Point3.`normal​(Point3 p0, Point3 p1, Point3 p2, Vector3 dest)` |
    `Vector3` | Vector3.`normalize()` |
    `Vector3` | Vector3.`normalize​(Vector3 dest)` |
    `static Vector3` | PerlinVector.`pnoise​(float x, float period)` |
    `static Vector3` | PerlinVector.`pnoise​(float x, float y, float w, float h)` |
    `static Vector3` | PerlinVector.`pnoise​(float x, float y, float z, float w, float h, float d)` |
    `static Vector3` | PerlinVector.`pnoise​(float x, float y, float z, float t, float w, float h, float d, float p)` |
    `static Vector3` | PerlinVector.`pnoise​(Point2 p, float periodx, float periody)` |
    `static Vector3` | PerlinVector.`pnoise​(Point3 p, float t, Vector3 pperiod, float tperiod)` |
    `static Vector3` | PerlinVector.`pnoise​(Point3 p, Vector3 period)` |
    `Vector3` | Vector3.`set​(float x, float y, float z)` |
    `Vector3` | Vector3.`set​(Vector3 v)` |
    `static Vector3` | PerlinVector.`snoise​(float x)` |
    `static Vector3` | PerlinVector.`snoise​(float x, float y)` |
    `static Vector3` | PerlinVector.`snoise​(float x, float y, float z)` |
    `static Vector3` | PerlinVector.`snoise​(float x, float y, float z, float t)` |
    `static Vector3` | PerlinVector.`snoise​(Point2 p)` |
    `static Vector3` | PerlinVector.`snoise​(Point3 p)` |
    `static Vector3` | PerlinVector.`snoise​(Point3 p, float t)` |
    `static Vector3` | PerlinVector.`spnoise​(float x, float period)` |
    `static Vector3` | PerlinVector.`spnoise​(float x, float y, float w, float h)` |
    `static Vector3` | PerlinVector.`spnoise​(float x, float y, float z, float w, float h, float d)` |
    `static Vector3` | PerlinVector.`spnoise​(float x, float y, float z, float t, float w, float h, float d, float p)` |
    `static Vector3` | PerlinVector.`spnoise​(Point2 p, float periodx, float periody)` |
    `static Vector3` | PerlinVector.`spnoise​(Point3 p, float t, Vector3 pperiod, float tperiod)` |
    `static Vector3` | PerlinVector.`spnoise​(Point3 p, Vector3 period)` |
    `static Vector3` | Point3.`sub​(Point3 p1, Point3 p2, Vector3 dest)` |
    `static Vector3` | Vector3.`sub​(Vector3 v1, Vector3 v2, Vector3 dest)` |
    `Vector3` | OrthoNormalBasis.`transform​(Vector3 a)` |
    `Vector3` | OrthoNormalBasis.`transform​(Vector3 a, Vector3 dest)` |
    `Vector3` | Matrix4.`transformTransposeV​(Vector3 v)` | Computes (this^T)*v and returns the result as a new Vector3 object.
    `Vector3` | Matrix4.`transformV​(Vector3 v)` | Computes this*v and returns the result as a new Vector3 object.
    `Vector3` | OrthoNormalBasis.`untransform​(Vector3 a)` |
    `Vector3` | OrthoNormalBasis.`untransform​(Vector3 a, Vector3 dest)` |

    Methods in org.sunflow.math with parameters of type Vector3
    Modifier and Type | Method | Description
    --- | --- | ---
    `static Point3` | Point3.`add​(Point3 p, Vector3 v, Point3 dest)` |
    `static Vector3` | Vector3.`add​(Vector3 v1, Vector3 v2, Vector3 dest)` |
    `static Vector3` | Vector3.`cross​(Vector3 v1, Vector3 v2, Vector3 dest)` |
    `static Vector3` | Vector3.`decode​(short n, Vector3 dest)` |
    `Vector3` | Vector3.`div​(float d, Vector3 dest)` |
    `static float` | Vector3.`dot​(Vector3 v1, Vector3 v2)` |
    `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.
    `static OrthoNormalBasis` | OrthoNormalBasis.`makeFromW​(Vector3 w)` |
    `static OrthoNormalBasis` | OrthoNormalBasis.`makeFromWV​(Vector3 w, Vector3 v)` |
    `Vector3` | Vector3.`mul​(float s, Vector3 dest)` |
    `Vector3` | Vector3.`negate​(Vector3 dest)` |
    `static Vector3` | Point3.`normal​(Point3 p0, Point3 p1, Point3 p2, Vector3 dest)` |
    `Vector3` | Vector3.`normalize​(Vector3 dest)` |
    `static float` | PerlinScalar.`pnoise​(Point3 p, float t, Vector3 pperiod, float tperiod)` |
    `static float` | PerlinScalar.`pnoise​(Point3 p, Vector3 period)` |
    `static Vector3` | PerlinVector.`pnoise​(Point3 p, float t, Vector3 pperiod, float tperiod)` |
    `static Vector3` | PerlinVector.`pnoise​(Point3 p, Vector3 period)` |
    `Vector3` | Vector3.`set​(Vector3 v)` |
    `static float` | PerlinScalar.`spnoise​(Point3 p, float t, Vector3 pperiod, float tperiod)` |
    `static float` | PerlinScalar.`spnoise​(Point3 p, Vector3 period)` |
    `static Vector3` | PerlinVector.`spnoise​(Point3 p, float t, Vector3 pperiod, float tperiod)` |
    `static Vector3` | PerlinVector.`spnoise​(Point3 p, Vector3 period)` |
    `static Vector3` | Point3.`sub​(Point3 p1, Point3 p2, Vector3 dest)` |
    `static Vector3` | Vector3.`sub​(Vector3 v1, Vector3 v2, Vector3 dest)` |
    `Vector3` | OrthoNormalBasis.`transform​(Vector3 a)` |
    `Vector3` | OrthoNormalBasis.`transform​(Vector3 a, Vector3 dest)` |
    `Vector3` | Matrix4.`transformTransposeV​(Vector3 v)` | Computes (this^T)*v and returns the result as a new Vector3 object.
    `Vector3` | Matrix4.`transformV​(Vector3 v)` | Computes this*v and returns the result as a new Vector3 object.
    `Vector3` | OrthoNormalBasis.`untransform​(Vector3 a)` |
    `Vector3` | OrthoNormalBasis.`untransform​(Vector3 a, Vector3 dest)` |
    `float` | OrthoNormalBasis.`untransformX​(Vector3 a)` |
    `float` | OrthoNormalBasis.`untransformY​(Vector3 a)` |
    `float` | OrthoNormalBasis.`untransformZ​(Vector3 a)` |

    Constructors in org.sunflow.math with parameters of type Vector3
    Constructor | Description
    --- | ---
    `Vector3​(Vector3 v)` |