Package org.sunflow.core.primitive

## Class Background

- java.lang.Object
- - org.sunflow.core.primitive.Background

- All Implemented Interfaces:
    `PrimitiveList`, `RenderObject`

      public class Background
      extends java.lang.Object
      implements PrimitiveList

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Background()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `PrimitiveList` | `getBakingPrimitives()` | Create a new `PrimitiveList` object suitable for baking lightmaps.
    `int` | `getNumPrimitives()` | Returns the number of individual primtives in this aggregate object.
    `float` | `getPrimitiveBound​(int primID, int i)` | Retrieve the bounding box component of a particular primitive in object space.
    `BoundingBox` | `getWorldBounds​(Matrix4 o2w)` | Compute a bounding box of this object in world space, using the specified object-to-world transformation matrix.
    `void` | `intersectPrimitive​(Ray r, int primID, IntersectionState state)` | Intersect the specified primitive in local space.
    `void` | `prepareShadingState​(ShadingState state)` | Prepare the specified `ShadingState` by setting all of its internal parameters.
    `boolean` | `update​(ParameterList pl, SunflowAPI api)` | Update this object given a list of parameters.

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

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

- - ### Constructor Detail

    - #### Background

          public Background()

  - ### Method Detail

    - #### update

          public boolean update​(ParameterList pl,
                                SunflowAPI api)

      Description copied from interface: `RenderObject`
      Update this object given a list of parameters. This method is guarenteed to be called at least once on every object, but it should correctly handle empty parameter lists. This means that the object should be in a valid state from the time it is constructed. This method should also return true or false depending on whether the update was succesfull or not.
      Specified by:
        `update` in interface `RenderObject`
      Parameters:
        `pl` - list of parameters to read from
        `api` - reference to the current scene
      Returns:
        `true` if the update is succesfull, `false` otherwise

    - #### prepareShadingState

          public void prepareShadingState​(ShadingState state)

      Description copied from interface: `PrimitiveList`
      Prepare the specified `ShadingState` by setting all of its internal parameters.
      Specified by:
        `prepareShadingState` in interface `PrimitiveList`
      Parameters:
        `state` - shading state to fill in

    - #### getNumPrimitives

          public int getNumPrimitives()

      Description copied from interface: `PrimitiveList`
      Returns the number of individual primtives in this aggregate object.
      Specified by:
        `getNumPrimitives` in interface `PrimitiveList`
      Returns:
        number of primitives

    - #### getPrimitiveBound

          public float getPrimitiveBound​(int primID,
                                         int i)

      Description copied from interface: `PrimitiveList`
      Retrieve the bounding box component of a particular primitive in object space. Even indexes get minimum values, while odd indexes get the maximum values for each axis.
      Specified by:
        `getPrimitiveBound` in interface `PrimitiveList`
      Parameters:
        `primID` - primitive index
        `i` - bounding box side index
      Returns:
        value of the request bound

    - #### getWorldBounds

          public BoundingBox getWorldBounds​(Matrix4 o2w)

      Description copied from interface: `PrimitiveList`
      Compute a bounding box of this object in world space, using the specified object-to-world transformation matrix. The bounds should be as exact as possible, if they are difficult or expensive to compute exactly, you may use `Matrix4.transform(BoundingBox)`. If the matrix is `null` no transformation is needed, and object space is equivalent to world space.
      Specified by:
        `getWorldBounds` in interface `PrimitiveList`
      Parameters:
        `o2w` - object to world transformation matrix
      Returns:
        object bounding box in world space

    - #### intersectPrimitive

          public void intersectPrimitive​(Ray r,
                                         int primID,
                                         IntersectionState state)

      Description copied from interface: `PrimitiveList`
      Intersect the specified primitive in local space.
      Specified by:
        `intersectPrimitive` in interface `PrimitiveList`
      Parameters:
        `r` - ray in the object's local space
        `primID` - primitive index to intersect
        `state` - intersection state
      See Also:
        `Ray.setMax(float)`, `IntersectionState.setIntersection(int, float, float)`

    - #### getBakingPrimitives

          public PrimitiveList getBakingPrimitives()

      Description copied from interface: `PrimitiveList`
      Create a new `PrimitiveList` object suitable for baking lightmaps. This means a set of primitives laid out in the unit square UV space. This method is optional, objects which do not support it should simply return `null`.
      Specified by:
        `getBakingPrimitives` in interface `PrimitiveList`
      Returns:
        a list of baking primitives