20 #if !defined(__MITSUBA_RENDER_MEDIUM_H_)
21 #define __MITSUBA_RENDER_MEDIUM_H_
97 std::string toString()
const;
120 virtual bool sampleDistance(
const Ray &ray,
134 virtual void eval(
const Ray &ray,
152 Sampler *sampler = NULL)
const = 0;
158 virtual bool isHomogeneous()
const = 0;
189 virtual std::string
toString()
const = 0;
Float t
Traveled distance.
Definition: medium.h:38
const Medium * medium
Pointer to the associated medium.
Definition: medium.h:88
Abstract participating medium.
Definition: medium.h:103
Float pdfSuccess
Records the probability density of sampling a medium interaction at p.
Definition: medium.h:64
Generic serializable object, which supports construction from a Properties instance.
Definition: cobject.h:40
Spectrum m_sigmaS
Definition: medium.h:207
const Spectrum & getSigmaA() const
For homogeneous media: return the absorption coefficient.
Definition: medium.h:161
Float pdfFailure
Definition: medium.h:85
Base class of all sample generators.
Definition: sampler.h:66
Spectrum m_sigmaT
Definition: medium.h:208
MediumSamplingRecord()
Definition: medium.h:91
Spectrum sigmaA
The medium's absorption coefficient at p.
Definition: medium.h:58
Vector orientation
Local particle orientation at p.
Definition: medium.h:47
Float pdfSuccessRev
Records the probability density of sampling a medium interaction in the reverse direction.
Definition: medium.h:74
Spectrum m_sigmaA
Definition: medium.h:206
const Spectrum & getSigmaS() const
For homogeneous media: return the scattering coefficient.
Definition: medium.h:164
Spectrum sigmaS
The medium's scattering coefficient at p.
Definition: medium.h:61
Data record for sampling a point on the in-scattering integral of the RTE.
Definition: medium.h:34
virtual void addChild(const std::string &name, ConfigurableObject *child)
Add a child (default implementation throws an error)
void addChild(ConfigurableObject *child)
Add an unnamed child.
Definition: medium.h:186
Abstract seekable stream class.
Definition: stream.h:58
#define MTS_DECLARE_CLASS()
This macro must be used in the initial definition in classes that derive from Object.
Definition: class.h:158
const Spectrum & getSigmaT() const
For homogeneous media: return the extinction coefficient.
Definition: medium.h:167
Point p
Location of the scattering interaction.
Definition: medium.h:41
virtual void configure()
Configure the object (called once after construction and addition of all child ConfigurableObject ins...
Reference counting helper.
Definition: ref.h:40
Abstract phase function.
Definition: phase.h:117
Float time
Time value associated with the medium scattering event.
Definition: medium.h:44
virtual void serialize(Stream *stream, InstanceManager *manager) const
Serialize this object to a stream.
const PhaseFunction * getPhaseFunction() const
Return the phase function of this medium.
Definition: medium.h:155
Abstract interface for objects that reference shared network resources.
Definition: netobject.h:40
Spectrum transmittance
Specifies the transmittance along the segment [mint, t].
Definition: medium.h:55
Associative parameter map for constructing subclasses of ConfigurableObject.
Definition: properties.h:46
ref< PhaseFunction > m_phaseFunction
Definition: medium.h:205
Coordinates the serialization and unserialization of object graphs.
Definition: serialization.h:65
Discrete spectral power distribution based on a number of wavelength bins over the 360-830 nm range...
Definition: spectrum.h:663
virtual std::string toString() const
Return a human-readable string representation of the object's contents.