org.sunflow.core
Class Instance
java.lang.Object
org.sunflow.core.Instance
- RenderObject
public class Instance
extends java.lang.Object
This represents an instance of a
Geometry
into the scene. This class
maps object space to world space and maintains a list of shaders and
modifiers attached to the surface.
getBounds
public BoundingBox getBounds()
Get the world space bounding box for this instance.
- bounding box in world space
getModifier
public Modifier getModifier(int i)
Get a modifier for the instance's list.
i
- index into the modifier list
- requested modifier, or
null
if the input is
invalid
getShader
public Shader getShader(int i)
Get a shader for the instance's list.
i
- index into the shader list
- requested shader, or
null
if the input is invalid
hasGeometry
public boolean hasGeometry(Geometry g)
Checks to see if this instance is relative to the specified geometry.
g
- geometry to check against
true
if the instanced geometry is equals to g,
false
otherwise
prepareShadingState
public void prepareShadingState(ShadingState state)
Prepare the shading state for shader invocation. This also runs the
currently attached surface modifier.
state
- shading state to be prepared
removeModifier
public void removeModifier(Modifier m)
Remove the specified modifier from the instance's list if it is being
used.
removeShader
public void removeShader(Shader s)
Remove the specified shader from the instance's list if it is being used.
transformNormalObjectToWorld
public Vector3 transformNormalObjectToWorld(Vector3 n)
Transform the given normal from object space to world space. A new
Vector3
object is returned.
n
- object space normal to transform
transformNormalWorldToObject
public Vector3 transformNormalWorldToObject(Vector3 n)
Transform the given normal from world space to object space. A new
Vector3
object is returned.
n
- world space normal to transform
transformObjectToWorld
public Point3 transformObjectToWorld(Point3 p)
Transform the given point from object space to world space. A new
Point3
object is returned.
p
- object space position to transform
transformVectorObjectToWorld
public Vector3 transformVectorObjectToWorld(Vector3 v)
Transform the given vector from object space to world space. A new
Vector3
object is returned.
v
- object space vector to transform
transformVectorWorldToObject
public Vector3 transformVectorWorldToObject(Vector3 v)
Transform the given vector from world space to object space. A new
Vector3
object is returned.
v
- world space vector to transform
transformWorldToObject
public Point3 transformWorldToObject(Point3 p)
Transform the given point from world space to object space. A new
Point3
object is returned.
p
- world space position to transform
updateBounds
public void updateBounds()
Recompute world space bounding box of this instance.