public class Hair extends Object implements PrimitiveList, Shader
Constructor and Description |
---|
Hair() |
Modifier and Type | Method and 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.
|
Color |
getRadiance(ShadingState state)
Gets the radiance for a specified rendering state.
|
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. |
void |
scatterPhoton(ShadingState state,
Color power)
Scatter a photon with the specied power.
|
boolean |
update(ParameterList pl,
SunflowAPI api)
Update this object given a list of parameters.
|
public int getNumPrimitives()
PrimitiveList
getNumPrimitives
in interface PrimitiveList
public float getPrimitiveBound(int primID, int i)
PrimitiveList
getPrimitiveBound
in interface PrimitiveList
primID
- primitive indexi
- bounding box side indexpublic BoundingBox getWorldBounds(Matrix4 o2w)
PrimitiveList
Matrix4.transform(BoundingBox)
. If the matrix is
null
no transformation is needed, and object space is
equivalent to world space.getWorldBounds
in interface PrimitiveList
o2w
- object to world transformation matrixpublic void intersectPrimitive(Ray r, int primID, IntersectionState state)
PrimitiveList
intersectPrimitive
in interface PrimitiveList
r
- ray in the object's local spaceprimID
- primitive index to intersectstate
- intersection stateRay.setMax(float)
,
IntersectionState.setIntersection(int, float, float)
public void prepareShadingState(ShadingState state)
PrimitiveList
ShadingState
by setting all of its internal
parameters.prepareShadingState
in interface PrimitiveList
state
- shading state to fill inpublic boolean update(ParameterList pl, SunflowAPI api)
RenderObject
update
in interface RenderObject
pl
- list of parameters to read fromapi
- reference to the current scenetrue
if the update is succesfull,
false
otherwisepublic Color getRadiance(ShadingState state)
Shader
getRadiance
in interface Shader
state
- current render statepublic void scatterPhoton(ShadingState state, Color power)
Shader
scatterPhoton
in interface Shader
state
- current statepower
- power of the incoming photon.public PrimitiveList getBakingPrimitives()
PrimitiveList
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
.getBakingPrimitives
in interface PrimitiveList
Copyright © 2018. All rights reserved.