cz.cuni.jagrlib.iface
Interface GlobalIllumination

All Superinterfaces:
Breakable, Property
All Known Implementing Classes:
Radiosity, RadiosityHierarch

public interface GlobalIllumination
extends Property, Breakable

General global-illumination method. Modules implementing this interface should compute light distribution in the whole scene (optionally the computing will be dependent on the given camera position).

Since:
0.26

Field Summary
 
Fields inherited from interface cz.cuni.jagrlib.iface.Property
LOGGING, STATISTICS, TEXT_DESCRIPTION
 
Method Summary
 boolean illuminate(int maxIterations, long maxTime)
          Computes scene illumination from the scratch.
 void setCamera(double[] camera)
          Sets camera position (null for no camera = pure global lighting).
 boolean updateIllumination(int maxIterations, long maxTime)
          Recomputes illumination according to scene & light-source changes.
 
Methods inherited from interface cz.cuni.jagrlib.iface.Property
commit, get, set
 
Methods inherited from interface cz.cuni.jagrlib.Breakable
setProgressListener, stop
 

Method Detail

setCamera

void setCamera(double[] camera)
Sets camera position (null for no camera = pure global lighting).

Parameters:
camera - World-space coordinates of the camera.

illuminate

boolean illuminate(int maxIterations,
                   long maxTime)
Computes scene illumination from the scratch. If time/iteration limits are nonzero, tries to fulfill them.. This method can be called repeatedly - or in combination with updateIllumination(int, long).

Parameters:
maxIterations - If nonzero, defines maximum number of iterations (if applicable).
maxTime - If nonzero, defines maximum time in milliseconds (if applicable).
Returns:
true if finished.

updateIllumination

boolean updateIllumination(int maxIterations,
                           long maxTime)
Recomputes illumination according to scene & light-source changes. Scene & light-source changes are expressed in the SLEData interface. Camera position/importance changes should be considered too. If time/iteration limits are nonzero, tries to fulfill them..

Parameters:
maxIterations - If nonzero, defines maximum number of iterations (if applicable).
maxTime - If nonzero, defines maximum time in milliseconds (if applicable).
Returns:
true if finished.