java.lang.Object
de.grogra.persistence.ShareableBase
de.grogra.gpuflux.imp3d.spectral.SpectralCurve
de.grogra.gpuflux.imp3d.spectral.IrregularSpectralCurve
- All Implemented Interfaces:
Manageable
,Shareable
- Direct Known Subclasses:
CIENormSpectralCurve
This class allows spectral curves to be defined from irregularly sampled
data. Note that the wavelength array is assumed to be sorted low to high. Any
values beyond the defined range will simply be extended to infinity from the
end points. Points inside the valid range will be linearly interpolated
between the two nearest samples. No explicit error checking is performed, but
this class will run into
ArrayIndexOutOfBoundsException
s if the
array lengths don't match.-
Nested Class Summary
-
Field Summary
Modifier and TypeFieldDescriptionstatic final IrregularSpectralCurve.Type
protected float[]
static final SCOType.Field
protected float[]
static final SCOType.Field
-
Constructor Summary
ConstructorDescriptionIrregularSpectralCurve
(float[] wavelengths, float[] amplitudes) Define an irregular spectral curve from the provided (sorted) wavelengths and amplitude data. -
Method Summary
Modifier and TypeMethodDescriptionfloat
sample
(float lambda) This function determines the actual spectral curve data.Methods inherited from class de.grogra.gpuflux.imp3d.spectral.SpectralCurve
toXYZ, toXYZ
Methods inherited from class de.grogra.persistence.ShareableBase
addReference, appendReferencesTo, fieldModified, getProvider, getStamp, initProvider, manageableReadResolve, manageableWriteReplace, removeReference
-
Field Details
-
wavelengths
protected float[] wavelengths -
amplitudes
protected float[] amplitudes -
$TYPE
-
wavelengths$FIELD
-
amplitudes$FIELD
-
-
Constructor Details
-
IrregularSpectralCurve
public IrregularSpectralCurve() -
IrregularSpectralCurve
public IrregularSpectralCurve(float[] wavelengths, float[] amplitudes) Define an irregular spectral curve from the provided (sorted) wavelengths and amplitude data. The wavelength array is assumed to contain values in nanometers. Array lengths must match.- Parameters:
wavelengths
- sampled wavelengths in nmamplitudes
- amplitude of the curve at the sampled points
-
-
Method Details
-
getManageableType
-
sample
public float sample(float lambda) Description copied from class:SpectralCurve
This function determines the actual spectral curve data. Note that the lambda parameter is assumed to be in nanometers.- Specified by:
sample
in classSpectralCurve
- Parameters:
lambda
- wavelength to sample in nanometers- Returns:
- the value of the spectral curve at this point
-