org.sunflow.core.tesselatable
Class BezierMesh
java.lang.Object
org.sunflow.core.tesselatable.BezierMesh
- PrimitiveList, RenderObject, Tesselatable
public class BezierMesh
extends java.lang.Object
BezierMesh
public BezierMesh()
BezierMesh
public BezierMesh(float[][] patches)
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
.
- getBakingPrimitives in interface PrimitiveList
- a list of baking primitives
getNumPrimitives
public int getNumPrimitives()
Returns the number of individual primtives in this aggregate object.
- getNumPrimitives in interface PrimitiveList
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.
- getPrimitiveBound in interface PrimitiveList
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.
- getWorldBounds in interface PrimitiveList
- getWorldBounds in interface Tesselatable
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.
- intersectPrimitive in interface PrimitiveList
r
- ray in the object's local spaceprimID
- primitive index to intersectstate
- intersection state
update
public boolean update(ParameterList pl,
SunflowAPI api)
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.
- update in interface RenderObject
pl
- list of parameters to read fromapi
- reference to the current scene
true
if the update is succesfull,
false
otherwise