de.grogra.ray2.tracing
Class RadiationModel

java.lang.Object
  extended by de.grogra.ray2.tracing.RadiationModel
All Implemented Interfaces:
java.lang.Cloneable
Direct Known Subclasses:
LightModelProcessor, ParallelRadiationModel

public abstract class RadiationModel
extends java.lang.Object
implements java.lang.Cloneable

Abstract base class for radiation model.

Author:
Ole Kniemeyer

Field Summary
static int BUNDLE_SIZE
          Implementation groups rays into bundles of BUNDLE_SIZE rays which are computed at once.
 
Constructor Summary
RadiationModel(Spectrum spectrumFactory, ObjectList<Spectrum> radiantPowerSum, ObjectList<Spectrum> sensedIrradianceSum, int[] idToGroup)
          Create a new radiation model that adds collected radiation values to the lists.
 
Method Summary
abstract  void compute(long rayCount, long seed, ProgressMonitor progress, int depth, double minPower)
           
 Spectrum getAbsorbedPower(int volumeIndex)
          Obtain the radiation power that was absorbed by a volume.
 Collector getAbsorbedPowerCollector(int volumeIndex)
           
 Spectrum getSensedIrradiance(int volumeIndex)
          Obtain the irradiance that was sensed by a volume.
 Collector getSensedIrradianceCollector(int volumeIndex)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

BUNDLE_SIZE

public static final int BUNDLE_SIZE
Implementation groups rays into bundles of BUNDLE_SIZE rays which are computed at once.

See Also:
Constant Field Values
Constructor Detail

RadiationModel

public RadiationModel(Spectrum spectrumFactory,
                      ObjectList<Spectrum> radiantPowerSum,
                      ObjectList<Spectrum> sensedIrradianceSum,
                      int[] idToGroup)
Create a new radiation model that adds collected radiation values to the lists.

Parameters:
spectrumFactory - factory to create spectra
radiantPowerSum - list to which radiant powers are added
sensedIrradianceSum - list to which sensed irradiances are added
idToGroup - mapping from volume id to group index
Method Detail

compute

public abstract void compute(long rayCount,
                             long seed,
                             ProgressMonitor progress,
                             int depth,
                             double minPower)

getAbsorbedPower

public Spectrum getAbsorbedPower(int volumeIndex)
Obtain the radiation power that was absorbed by a volume.

Parameters:
volumeIndex - index into idToGroup
Returns:

getAbsorbedPowerCollector

public Collector getAbsorbedPowerCollector(int volumeIndex)

getSensedIrradiance

public Spectrum getSensedIrradiance(int volumeIndex)
Obtain the irradiance that was sensed by a volume.

Parameters:
volumeIndex - index into idToGroup
Returns:

getSensedIrradianceCollector

public Collector getSensedIrradianceCollector(int volumeIndex)