org.sunflow.core
Interface PrimitiveList
- RenderObject
- Background, BanchoffSurface, BezierMesh, Box, CornellBox, CubeGrid, Gumbo, Hair, ImageBasedLight, JuliaFractal, ParticleSurface, Plane, QuadMesh, Sphere, SunSkyLight, Teapot, Torus, TriangleMesh, TriangleMeshLight
public interface PrimitiveList
This class represents an object made up of many primitives.
getBakingPrimitives
public PrimitiveList getBakingPrimitives()
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
.
- a list of baking primitives
getNumPrimitives
public int getNumPrimitives()
Returns the number of individual primtives in this aggregate object.
getPrimitiveBound
public float getPrimitiveBound(int primID,
int i)
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.
primID
- primitive indexi
- bounding box side index
- value of the request bound
getWorldBounds
public BoundingBox getWorldBounds(Matrix4 o2w)
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.
o2w
- object to world transformation matrix
- object bounding box in world space
intersectPrimitive
public void intersectPrimitive(Ray r,
int primID,
IntersectionState state)
Intersect the specified primitive in local space.
r
- ray in the object's local spaceprimID
- primitive index to intersectstate
- intersection state
prepareShadingState
public void prepareShadingState(ShadingState state)
Prepare the specified
ShadingState
by setting all of its internal
parameters.
state
- shading state to fill in