cz.cuni.jagrlib.piece
Class Radiosity

java.lang.Object
  extended by cz.cuni.jagrlib.DefaultProperty
      extended by cz.cuni.jagrlib.Piece
          extended by cz.cuni.jagrlib.piece.Radiosity
All Implemented Interfaces:
Breakable, GlobalIllumination, Property, Template

public class Radiosity
extends Piece
implements GlobalIllumination

Computes illumination of 3D scene using radiosity method.

See Also:
Radiosity.java

Nested Class Summary
static class Radiosity.Colors
          Supported color modes.
 
Field Summary
protected  int attrResult
          Actual node-result attribute.
protected  RadiosityBasisFunctions basis
          Accelerator: input information about basis.
protected  int batch
          Refine-batch size.
static java.lang.String BATCH
           
protected  Brep brep
          Accelerator: input B-rep database.
protected static java.lang.String CATEGORY
          Object category.
protected  Radiosity.Colors color
          Actual used color(s).
static java.lang.String COLORS
           
protected  int ctx
          Actual Brep context.
protected  SLEData data
          Accelerator: input result from solver.
protected  double epsilon
          Required accuracy of solution.
static java.lang.String EPSILON
           
protected  boolean gouraud
          Use Gouraud interpolation?
static java.lang.String GOURAUD
           
protected  boolean log
          Log debug information?
static java.lang.String LOG
           
static RegPiece reg
          Static registration instance for this class.
protected  SLESolver solver
          Accelerator: input result from solver.
protected static java.lang.String TEMPLATE_NAME
          Object template identifier.
 
Fields inherited from class cz.cuni.jagrlib.Piece
channels, info, pl, plugs, TEMPLATE_TYPE, userBreak
 
Fields inherited from interface cz.cuni.jagrlib.iface.Property
LOGGING, STATISTICS, TEXT_DESCRIPTION
 
Fields inherited from interface cz.cuni.jagrlib.Template
ALL_PLUGS, C_1D, C_2D, C_3D, C_ALPHA, C_BINARY, C_BREP, C_CAMERA, C_CIRCLE, C_CLIP, C_COMPRESSION, C_CURVE, C_DATA, C_DRAW, C_EDITOR, C_ELLIPSE, C_FILL, C_FILTER, C_FLOAT, C_FUNCTION, C_IMAGE, C_INTEGER, C_IO, C_LIGHT, C_LINE, C_METRIC, C_POLYGON, C_PROJECTION, C_RADIOSITY, C_RASTER, C_RENDER, C_SAMPLE, C_SCENE, C_SET, C_SOLID, C_TEXT, C_TRANSFORM, C_VECTOR, C_VIEWER, C_WORKER, CAT_EMPTY, EMPTY, IFACE, JAGRLIB, JAGRLIB2, MANIPULATOR_COMBO, MANIPULATOR_CUSTOM, MANIPULATOR_DEFAULT, MANIPULATOR_MULTILINE, PL_ALPHAMASK, PL_BITMASK, PL_CAUSTIC, PL_CODEC, PL_COLORMAP, PL_COMPARE, PL_DATA, PL_DIRECT, PL_EDITOR, PL_FILTER, PL_FUNCTION, PL_IMAGE, PL_IMPORT, PL_INPUT, PL_INTERSECTION, PL_LIGHTSOURCE, PL_ORDER, PL_OUTPUT, PL_PALETTE, PL_PHOTON, PL_PROPERTY, PL_QUANTIZER, PL_RASTER, PL_RENDER, PL_SHADOW, PL_STREAM, PL_TRANSFORM, PL_TRIGGER, PL_VOLUME, PL_WINDOW, TYPE_BOOLEAN, TYPE_DOUBLE, TYPE_FLOAT, TYPE_INTEGER, TYPE_LONG, TYPE_OBJECT, TYPE_STRING
 
Constructor Summary
Radiosity()
           
 
Method Summary
 java.lang.Object get(java.lang.String key)
          Gets the given property.
 boolean illuminate(int maxIterations, long maxTime)
          Computes scene illumination from the scratch.
protected  void saveResult(int handle, float[] result)
          Save one result (attribute) into a Brep database.
protected  void saveResults(double[][] solution)
          Save all results into a Brep database.
 void set(java.lang.String key, java.lang.Object value)
          Sets the given property.
 void setCamera(double[] camera)
          Sets camera position (null for no camera = pure global lighting).
static int setTemplate(Template t, int ord)
          General-purpose registration routine.
 boolean updateIllumination(int maxIterations, long maxTime)
          Recomputes illumination according to scene & light-source changes.
 
Methods inherited from class cz.cuni.jagrlib.Piece
className, connect, findPlug, findPlug, getInfo, getInterface, getInterface, getPlug, getReg, init, isCompatible, isCompatible, isConnected, logError, logWarning, myInterface, newInputPlug, newOptOutputPlug, newOutputPlug, newPlug, noTemplates, propBegin, propBounds, propDefault, propEnd, propEnum, propManipulator, propManipulator, setProgressListener, setRegStrings, setTemplateDynamic, stop
 
Methods inherited from class cz.cuni.jagrlib.DefaultProperty
booleanProperty, booleanProperty, colorDoubleProperty, colorProperty, commit, doubleProperty, doubleProperty, doubleProperty, enumProperty, floatProperty, floatProperty, floatProperty, intProperty, intProperty, intProperty, longProperty, longProperty, longProperty, set, stringProperty
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface cz.cuni.jagrlib.iface.Property
commit
 
Methods inherited from interface cz.cuni.jagrlib.Breakable
setProgressListener, stop
 

Field Detail

color

protected Radiosity.Colors color
Actual used color(s).


brep

protected Brep brep
Accelerator: input B-rep database.


data

protected SLEData data
Accelerator: input result from solver.


solver

protected SLESolver solver
Accelerator: input result from solver.


basis

protected RadiosityBasisFunctions basis
Accelerator: input information about basis.


ctx

protected int ctx
Actual Brep context.


attrResult

protected int attrResult
Actual node-result attribute.


gouraud

protected boolean gouraud
Use Gouraud interpolation?


epsilon

protected double epsilon
Required accuracy of solution.


batch

protected int batch
Refine-batch size.


log

protected boolean log
Log debug information?


COLORS

public static final java.lang.String COLORS
See Also:
Constant Field Values

GOURAUD

public static final java.lang.String GOURAUD
See Also:
Constant Field Values

EPSILON

public static final java.lang.String EPSILON
See Also:
Constant Field Values

BATCH

public static final java.lang.String BATCH
See Also:
Constant Field Values

LOG

public static final java.lang.String LOG
See Also:
Constant Field Values

TEMPLATE_NAME

protected static final java.lang.String TEMPLATE_NAME
Object template identifier.

See Also:
Constant Field Values

CATEGORY

protected static final java.lang.String CATEGORY
Object category.

See Also:
Constant Field Values

reg

public static final RegPiece reg
Static registration instance for this class. Automatically initialized in class-loading time.

Constructor Detail

Radiosity

public Radiosity()
Method Detail

saveResult

protected void saveResult(int handle,
                          float[] result)
Save one result (attribute) into a Brep database.


saveResults

protected void saveResults(double[][] solution)
Save all results into a Brep database.


setCamera

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

Specified by:
setCamera in interface GlobalIllumination
Parameters:
camera - World-space coordinates of the camera.

illuminate

public 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).

Specified by:
illuminate in interface GlobalIllumination
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

public 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..

Specified by:
updateIllumination in interface GlobalIllumination
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.

set

public void set(java.lang.String key,
                java.lang.Object value)
Sets the given property.

Specified by:
set in interface Property
Overrides:
set in class DefaultProperty
Parameters:
key - Key string.
value - The new value.
See Also:
Property.commit()

get

public java.lang.Object get(java.lang.String key)
Gets the given property.

Specified by:
get in interface Property
Overrides:
get in class DefaultProperty
Parameters:
key - Key string.
Returns:
The actual value or null.

setTemplate

public static int setTemplate(Template t,
                              int ord)
General-purpose registration routine. Sets all plugs, strings, etc. to the given Template.