Package org.sunflow.core
Interface PrimitiveList
- All Superinterfaces:
RenderObject
- All Known Implementing Classes:
Background
,BanchoffSurface
,Box
,CornellBox
,CubeGrid
,Cylinder
,Hair
,ImageBasedLight
,JuliaFractal
,ParticleSurface
,Plane
,QuadMesh
,Sphere
,SphereFlake
,SunSkyLight
,Torus
,TriangleMesh
,TriangleMeshLight
This class represents an object made up of many primitives.
-
Method Summary
Modifier and TypeMethodDescriptionCreate a newPrimitiveList
object suitable for baking lightmaps.int
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.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 specifiedShadingState
by setting all of its internal parameters.Methods inherited from interface org.sunflow.core.RenderObject
update
-
Method Details
-
getWorldBounds
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 useMatrix4.transform(BoundingBox)
. If the matrix isnull
no transformation is needed, and object space is equivalent to world space.- Parameters:
o2w
- object to world transformation matrix- Returns:
- object bounding box in world space
-
getNumPrimitives
int getNumPrimitives()Returns the number of individual primtives in this aggregate object.- Returns:
- number of primitives
-
getPrimitiveBound
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.- Parameters:
primID
- primitive indexi
- bounding box side index- Returns:
- value of the request bound
-
intersectPrimitive
Intersect the specified primitive in local space.- Parameters:
r
- ray in the object's local spaceprimID
- primitive index to intersectstate
- intersection state- See Also:
-
prepareShadingState
Prepare the specifiedShadingState
by setting all of its internal parameters.- Parameters:
state
- shading state to fill in
-
getBakingPrimitives
PrimitiveList getBakingPrimitives()Create a newPrimitiveList
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 returnnull
.- Returns:
- a list of baking primitives
-