An interface for Emitter. More...

#include <emitter.h>

Inheritance diagram for Emitter:
GeneralizedBSDF Asset Clonable Component SIMDAlignedType Light Sensor Light_Area Light_Directional Light_Point Sensor_Area Sensor_Pinhole

Public Member Functions

 LM_INTERFACE_CLASS (Emitter, GeneralizedBSDF, 4)
 
 LM_DISABLE_COPY_AND_MOVE (Emitter)
 
 LM_INTERFACE_F (0, SamplePosition, void(const Vec2 &u, SurfaceGeometry &geom))
 Sample a position on the light. More...
 
 LM_INTERFACE_F (1, EvaluatePositionPDF, Float(const SurfaceGeometry &geom, bool evalDelta))
 Evaluate positional PDF. More...
 
 LM_INTERFACE_F (2, EvaluatePosition, SPD(const SurfaceGeometry &geom, bool evalDelta))
 Evaluate the positional component of the emitted quantity. More...
 
 LM_INTERFACE_F (3, RasterPosition, bool(const Vec3 &wo, const SurfaceGeometry &geom, Vec2 &rasterPos))
 Compute raster position from the direction and the position. More...
 
- Public Member Functions inherited from GeneralizedBSDF
 LM_INTERFACE_CLASS (GeneralizedBSDF, Asset, 4)
 
 LM_DISABLE_COPY_AND_MOVE (GeneralizedBSDF)
 
 LM_INTERFACE_F (0, Type, int())
 Generalized BSDF type. More...
 
 LM_INTERFACE_F (1, SampleDirection, void(const Vec2 &u, Float uComp, int queryType, const SurfaceGeometry &geom, const Vec3 &wi, Vec3 &wo))
 Sample outgoing vector. More...
 
 LM_INTERFACE_F (2, EvaluateDirectionPDF, Float(const SurfaceGeometry &geom, int queryType, const Vec3 &wi, const Vec3 &wo, bool evalDelta))
 Evaluate PDF with the direction. More...
 
 LM_INTERFACE_F (3, EvaluateDirection, SPD(const SurfaceGeometry &geom, int types, const Vec3 &wi, const Vec3 &wo, TransportDirection transDir, bool evalDelta))
 Evaluate generalized BSDF. More...
 
- Public Member Functions inherited from Asset
 LM_INTERFACE_CLASS (Asset, Clonable, 2)
 
 LM_DISABLE_COPY_AND_MOVE (Asset)
 
 LM_INTERFACE_F (0, Load, bool(const PropertyNode *prop, Assets *assets, const Primitive *primitive))
 Load an asset from a property node. More...
 
 LM_INTERFACE_F (1, PostLoad, bool(const Scene *scene))
 Post processing of the asset. More...
 
- Public Member Functions inherited from Clonable
 LM_INTERFACE_CLASS (Clonable, Component, 1)
 
 LM_DISABLE_COPY_AND_MOVE (Clonable)
 
 LM_INTERFACE_F (0, Clone, void(Clonable *o))
 Clone the instalce. More...
 
- Public Member Functions inherited from SIMDAlignedType
void * operator new (std::size_t size) throw (std::bad_alloc)
 
void operator delete (void *p)
 

Detailed Description

An interface for Emitter.

Member Function Documentation

Emitter::LM_INTERFACE_F ( ,
SamplePosition  ,
void(const Vec2 &u, SurfaceGeometry &geom)   
)

Sample a position on the light.

Parameters
uUniform random numbers in [0,1]^2.
geomSurface geometry at the sampled position.
Emitter::LM_INTERFACE_F ( ,
EvaluatePositionPDF  ,
Float(const SurfaceGeometry &geom, bool evalDelta)   
)

Evaluate positional PDF.

Parameters
geomSurface geometry.
Returns
Evaluated PDF.
Emitter::LM_INTERFACE_F ( ,
EvaluatePosition  ,
SPD(const SurfaceGeometry &geom, bool evalDelta)   
)

Evaluate the positional component of the emitted quantity.

Parameters
geomSurface geometry.
Returns
Positional component of the emitted quantity.
Emitter::LM_INTERFACE_F ( ,
RasterPosition  ,
bool(const Vec3 &wo, const SurfaceGeometry &geom, Vec2 &rasterPos)   
)

Compute raster position from the direction and the position.

The function calculates the raster position from the outgoing ray. Returns false if calculated raster position is the outside of [0, 1]^2.

Parameters
woOutgoing direction from the point on the emitter.
geomSurface geometry infromation around the point on the emitter.
rasterPosComputed raster position.