20 #if !defined(__MITSUBA_RENDER_EMITTER_H_)
21 #define __MITSUBA_RENDER_EMITTER_H_
78 EDeltaDirection = 0x01,
81 EDeltaPosition = 0x02,
125 const Point2 &sample,
const Point2 *extra = NULL)
const;
161 const Point2 *extra = NULL)
const;
193 const Point2 &sample)
const;
297 {
return m_worldTransform.get(); }
301 { m_worldTransform = trafo; }
324 inline bool isDegenerate()
const {
return m_type & (EDeltaPosition | EDeltaDirection); }
335 return needsPositionSample() && needsDirectionSample();
393 virtual AABB getAABB()
const = 0;
453 EEnvironmentEmitter = 0x010
518 const Point2 &spatialSample,
519 const Point2 &directionalSample,
602 virtual bool fillDirectSamplingRecord(
613 virtual bool isCompound()
const;
622 virtual Emitter *getElement(
size_t index);
TVector2< int > Vector2i
Definition: fwd.h:108
Record for solid-angle based area sampling techniques.
Definition: common.h:238
Shape * getShape()
Return the shape, to which the emitter is currently attached.
Definition: emitter.h:360
Abstract participating medium.
Definition: medium.h:103
Abstract radiance emitter interface.
Definition: emitter.h:443
void setWorldTransform(AnimatedTransform *trafo)
Set the local space to world space transformation.
Definition: emitter.h:300
Generic serializable object, which supports construction from a Properties instance.
Definition: cobject.h:40
Generic sampling record for directions.
Definition: common.h:168
Abstract radiance/importance emitter interface.
Definition: emitter.h:70
Generic sampling record for positions.
Definition: common.h:82
void setMedium(Medium *medium)
Set the medium that surrounds the emitter.
Definition: emitter.h:396
void addChild(ConfigurableObject *child)
Add an unnamed child.
Definition: emitter.h:412
Principal scene data structure.
Definition: scene.h:49
Discrete measure.
Definition: common.h:66
EMeasure getDirectMeasure() const
Return the measure associated with the sampleDirect() operation.
Definition: emitter.h:342
Abstract hardware resource.
Definition: shader.h:39
Medium * getMedium()
Return a pointer to the medium that surrounds the emitter.
Definition: emitter.h:354
const AnimatedTransform * getWorldTransform() const
Return the local space to world space transformation.
Definition: emitter.h:296
Abstract base class of all shapes.
Definition: shape.h:178
virtual void serialize(Stream *stream, InstanceManager *manager) const
Serialize this object to a binary data stream.
EMeasure
A list of measures that are associated with various sampling methods in Mitsuba.
Definition: common.h:56
bool isEnvironmentEmitter() const
Is this an environment emitter? (e.g. an HDRI environment map?)
Definition: emitter.h:566
Ray differential – enhances the basic ray class with information about the rays of adjacent pixels on...
Definition: ray.h:140
Axis-aligned bounding box data structure in three dimensions.
Definition: aabb.h:437
uint32_t getType() const
Return a listing of classification flags combined using binary OR.
Definition: emitter.h:293
const Medium * getMedium() const
Return a pointer to the medium that surrounds the emitter (const version)
Definition: emitter.h:357
virtual void addChild(const std::string &name, ConfigurableObject *child)
Add a child (default implementation throws an error)
bool needsDirectSample() const
Does the method sampleDirect() require a uniformly distributed sample?
Definition: emitter.h:334
Solid angle measure.
Definition: common.h:60
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
bool isDegenerate() const
Does the sensor have a degenerate directional or spatial distribution?
Definition: emitter.h:324
Reference counting helper.
Definition: ref.h:40
const Shape * getShape() const
Return the shape, to which the emitter is currently attached (const version)
Definition: emitter.h:363
EEmitterFlags
This list of flags is used to additionally characterize and classify the response functions of differ...
Definition: emitter.h:451
EEmitterType
Flags used to classify the emission profile of different types of emitters.
Definition: emitter.h:76
Associative parameter map for constructing subclasses of ConfigurableObject.
Definition: properties.h:46
Container for all information related to a surface intersection.
Definition: shape.h:36
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
bool needsDirectionSample() const
Does the method sampleDirection() require a uniformly distributed sample for the direction component...
Definition: emitter.h:313
bool isOnSurface() const
Does the emitter lie on some kind of surface?
Definition: emitter.h:318
bool needsPositionSample() const
Does the method samplePosition() require a uniformly distributed sample for the spatial component...
Definition: emitter.h:307
Float getSamplingWeight() const
Return the luminaire's sampling weight.
Definition: emitter.h:535