de.grogra.ray.physics
public class Collector3d extends Spectrum3d implements Collector, java.io.Serializable
Spectrum3d. It means that this Collector is
also a Spectrum.| Modifier and Type | Field and Description |
|---|---|
protected boolean |
asCollector |
protected long |
rayCount |
protected double |
squareSumDirectionX |
protected double |
squareSumDirectionY |
protected double |
squareSumDirectionZ |
protected double |
squareSumSpectrumX |
protected double |
squareSumSpectrumY |
protected double |
squareSumSpectrumZ |
protected double |
sumDirectionX |
protected double |
sumDirectionY |
protected double |
sumDirectionZ |
protected double |
sumSpectrumX |
protected double |
sumSpectrumY |
protected double |
sumSpectrumZ |
| Constructor and Description |
|---|
Collector3d()
Just a new instance of this class.
|
Collector3d(double x,
double y,
double z)
This constructor creates a Collector-instance with a certain
Spectrum. |
Collector3d(Spectrum spectrum)
This constructor creates a Collector-instance with a certain
Spectrum. |
| Modifier and Type | Method and Description |
|---|---|
void |
add(Collector col)
To combine two Collector-instances.
|
void |
add(Spectrum spectrum)
Add the newSpectrum to the spectrum of this Collector-instance
and update the statistics.
|
void |
addToStatistic(Tuple3d rayOrigin,
Spectrum3d spectrum,
double scaleFactor,
boolean isPrimary)
Add the Vector of the origin of a certain ray, which hits the object for this
corresponding Collector-instance.
|
void |
addToStatistic(Tuple3d rayOrigin,
Spectrum spectrum,
double scaleFactor,
boolean isPrimary)
Here the information of
LightModel computation are stored. |
Collector3d |
clone()
Creates a copy of the Spectrum or a deep-copy of this instance.
|
void |
getCollectedValues(Tuple3d sumDir,
Tuple3d sumSquareDir,
Tuple3d sumSpec,
Tuple3d sumSquareSpec) |
void |
getDirectionArithmeticMean(Tuple3d tuple)
Set the arithmetic mean of all directions (not normalized) to
vector. |
void |
getDirectionArithmeticMean(Tuple3f tuple) |
void |
getDirectionVariance(Tuple3d tuple)
This methods returns the variance of the light-direction (not normalized).
|
void |
getDirectionVariance(Tuple3f tuple) |
long |
getRayCount()
Returns the number of rays which hit the corresponding
object of this instance.
|
void |
getSpectrumArithmeticMean(Spectrum spectrum)
Set the arithmetic mean of all spectra to
spectrum. |
void |
getSpectrumVariance(Spectrum spectrum)
This methods returns the variance of the spectrums.
|
boolean |
isCollector()
If the collector should works like a Spectrum, this method
returns false, otherwise true.
|
Collector3d |
newInstance()
Returns a new instance of this class.
|
static void |
normalize(Tuple3d t) |
static void |
normalize(Tuple3f t) |
void |
setAsCollector()
The initial value of
asCollector is false. |
void |
setZero()
Sets all values the instance to zero.
|
clampMinZero, div, div, div, dot, evaluateDouble, get, getMax, integrate, mul, mul, mul, set, setIdentity, sub, sumabsolute, absolute, add, add, clamp, clamp, clampMax, clampMax, clampMin, clampMin, epsilonEquals, equals, equals, get, get, get, hashCode, interpolate, interpolate, max, min, negate, negate, scale, scale, scaleAdd, scaleAdd, set, set, set, set, sub, sub, toStringprotected boolean asCollector
protected long rayCount
protected double squareSumDirectionX
protected double squareSumDirectionY
protected double squareSumDirectionZ
protected double squareSumSpectrumX
protected double squareSumSpectrumY
protected double squareSumSpectrumZ
protected double sumDirectionX
protected double sumDirectionY
protected double sumDirectionZ
protected double sumSpectrumX
protected double sumSpectrumY
protected double sumSpectrumZ
public Collector3d()
public Collector3d(double x,
double y,
double z)
Spectrum.x - Red-component of Spectrum3dy - Green-component of Spectrum3dz - Blue-component of Spectrum3dpublic void add(Collector col)
col
added to the values of this instance.public void add(Spectrum spectrum)
add in interface Spectrumadd in class Spectrum3dnewSpectrum - New to added spectrum.public void addToStatistic(Tuple3d rayOrigin, Spectrum3d spectrum, double scaleFactor, boolean isPrimary)
rayOrigin - Where the light comes from.scale - The factor for weighting this direction (usually intensity of incoming light)public void addToStatistic(Tuple3d rayOrigin, Spectrum spectrum, double scaleFactor, boolean isPrimary)
CollectorLightModel computation are stored.addToStatistic in interface CollectorrayOrigin - 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.public Collector3d clone()
public void getCollectedValues(Tuple3d sumDir, Tuple3d sumSquareDir, Tuple3d sumSpec, Tuple3d sumSquareSpec)
getCollectedValues in interface Collectorpublic void getDirectionArithmeticMean(Tuple3d tuple)
vector.
The parameter vector should be initialized before.getDirectionArithmeticMean in interface Collectorvector - Returns the arithmetic mean of all direction
for this Collector-instance.public void getDirectionArithmeticMean(Tuple3f tuple)
public void getDirectionVariance(Tuple3d tuple)
getDirectionVariance in interface Collectorpublic void getDirectionVariance(Tuple3f tuple)
public long getRayCount()
getRayCount in interface Collectorpublic void getSpectrumArithmeticMean(Spectrum spectrum)
spectrum.
The parameter spectrum should be initialized before.getSpectrumArithmeticMean in interface Collectorspectrum - Returns the arithmetic mean of all spectra
for this Collector-instance.public void getSpectrumVariance(Spectrum spectrum)
getSpectrumVariance in interface Collectorpublic boolean isCollector()
isCollector in interface Collectorpublic Collector3d newInstance()
newInstance in interface CollectornewInstance in interface SpectrumnewInstance in class Spectrum3dpublic static void normalize(Tuple3d t)
public static void normalize(Tuple3f t)
public void setAsCollector()
asCollector is false. It means
that the collector works like a Spectrum. Thats useful
when this Collector-instance is used for the calculations in
LightModel.setAsCollector in interface Collectorpublic void setZero()
LightModel computation.setZero in interface SpectrumsetZero in class Spectrum3d