Package org.sunflow.core
Class Instance
java.lang.Object
org.sunflow.core.Instance
- All Implemented Interfaces:
RenderObject
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.-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic Instance
createTemporary
(PrimitiveList primitives, Matrix4 transform, Shader shader) Get the world space bounding box for this instance.getModifier
(int i) Get a modifier for the instance's list.getShader
(int i) Get a shader for the instance's list.boolean
Checks to see if this instance is relative to the specified geometry.void
prepareShadingState
(ShadingState state) Prepare the shading state for shader invocation.void
Remove the specified modifier from the instance's list if it is being used.void
Remove the specified shader from the instance's list if it is being used.boolean
update
(ParameterList pl, SunflowAPI api) Update this object given a list of parameters.void
Recompute world space bounding box of this instance.
-
Constructor Details
-
Instance
public Instance()
-
-
Method Details
-
createTemporary
-
update
Description copied from interface:RenderObject
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.- Specified by:
update
in interfaceRenderObject
- Parameters:
pl
- list of parameters to read fromapi
- reference to the current scene- Returns:
true
if the update is succesfull,false
otherwise
-
updateBounds
public void updateBounds()Recompute world space bounding box of this instance. -
hasGeometry
Checks to see if this instance is relative to the specified geometry.- Parameters:
g
- geometry to check against- Returns:
true
if the instanced geometry is equals to g,false
otherwise
-
removeShader
Remove the specified shader from the instance's list if it is being used.- Parameters:
s
- shader to remove
-
removeModifier
Remove the specified modifier from the instance's list if it is being used.- Parameters:
m
- modifier to remove
-
getBounds
Get the world space bounding box for this instance.- Returns:
- bounding box in world space
-
prepareShadingState
Prepare the shading state for shader invocation. This also runs the currently attached surface modifier.- Parameters:
state
- shading state to be prepared
-
getShader
Get a shader for the instance's list.- Parameters:
i
- index into the shader list- Returns:
- requested shader, or
null
if the input is invalid
-
getModifier
Get a modifier for the instance's list.- Parameters:
i
- index into the modifier list- Returns:
- requested modifier, or
null
if the input is invalid
-