Module raytracer

Interface Collector

All Superinterfaces:
DoubleToDouble, Spectrum
All Known Implementing Classes:
Collector3d, Collector3dList, CollectorW3d

public interface Collector extends Spectrum
This interface is used to store more information during the computation of the
invalid reference
LightModel
. Its an extension of the Spectrum interface, which means, that every Collector - instance can handled as a Spectrum instance. Every implementation of this interface is also a certain specialized Spectrum.
Author:
Stephan Rogge
  • Method Details

    • clone

      Collector clone()
      Returns a clone of this collector.
      Specified by:
      clone in interface Spectrum
      Returns:
      clone of this collector
    • newInstance

      Collector newInstance()
      Returns a new instance of the class of this collector. It is initialized to the zero function.
      Specified by:
      newInstance in interface Spectrum
      Returns:
      new instance of same class
    • getRayCount

      long getRayCount()
      Returns the number of rays, which hits the corresponding object.
      Returns:
      Number of rays.
    • add

      void add(Collector collector)
      This method combines to collectors to one single collector by add every corresponding value.
      Parameters:
      collector - which has to be added to the corresponding instance.
    • setAsCollector

      void setAsCollector()
      The collector works like a Spectrum after initializing. Thats useful when this Collector-instance is used for the calculations in
      invalid reference
      LightModel
      .
    • isCollector

      boolean isCollector()
      Return the state if this instance working as Collector or just as an Spectrum.
      Returns:
    • addToStatistic

      void addToStatistic(Tuple3d tuple, Spectrum spectrum, double scaleFactor, boolean isPrimary)
      Here the information of
      invalid reference
      LightModel
      computation are stored.
      Parameters:
      tuple - May this contains a certain vector (direction for example).
      spectrum - To added Spectrum.
      scaleFactor - For the added Spectrum.
      isPrimary - To distinguish from primary or secondary rays.
    • getSpectrumArithmeticMean

      void getSpectrumArithmeticMean(Spectrum spectrum)
      Set the arithmetic mean of all spectra to vector. The parameter vector should be initialized before.
      Parameters:
      vector - Returns the arithmetic mean of all spectra for this Collector-instance.
    • getSpectrumVariance

      void getSpectrumVariance(Spectrum spectrum)
      This methods returns the variance of the spectra. The calculation for this is: sigma^2 = 1/N * ((sum of all spectra^2) - (N * x^2)) N ... The number of rays x ... The arithmetic mean of all spectra To get the standard deviation, just extract the root of the variance. For more information see .
    • getDirectionArithmeticMean

      void getDirectionArithmeticMean(Tuple3d tuple)
      Set the arithmetic mean of all directions (not normalized) to vector. The parameter vector should be initialized before.
      Parameters:
      vector - Returns the arithmetic mean of all direction for this Collector-instance.
    • getDirectionVariance

      void getDirectionVariance(Tuple3d tuple)
      This methods returns the variance of the light-direction (not normalized). The calculation for this is: sigma^2 = 1/N * ((sum of all directions^2) - (N * x^2)) N ... The number of rays x ... The arithmetic mean of all direction To get the standard deviation, just extract the root of the variance. For more information see .
    • getCollectedValues

      void getCollectedValues(Tuple3d sumDir, Tuple3d sumSquareDir, Tuple3d sumSpec, Tuple3d sumSquareSpec)