Lightmetrica  0.0.1.50dbee3 (yosakoi)
 All Classes Functions Variables Typedefs Enumerations Enumerator
Public Member Functions | List of all members
Emitter Class Referenceabstract

#include <emitter.h>

Public Member Functions

virtual void SamplePosition (const Math::Vec2 &sample, SurfaceGeometry &geom, Math::PDFEval &pdf) const =0
 
virtual Math::Vec3 EvaluatePosition (const SurfaceGeometry &geom) const =0
 
virtual Math::PDFEval EvaluatePositionPDF (const SurfaceGeometry &geom) const =0
 
virtual void RegisterPrimitives (const std::vector< Primitive * > &primitives)=0
 
virtual void PostConfigure (const Scene &scene)=0
 
virtual EmitterShapeCreateEmitterShape () const =0
 
virtual AABB GetAABB () const =0
 
- Public Member Functions inherited from GeneralizedBSDF
virtual bool SampleDirection (const GeneralizedBSDFSampleQuery &query, const SurfaceGeometry &geom, GeneralizedBSDFSampleResult &result) const =0
 
virtual Math::Vec3 SampleAndEstimateDirection (const GeneralizedBSDFSampleQuery &query, const SurfaceGeometry &geom, GeneralizedBSDFSampleResult &result) const =0
 
virtual bool SampleAndEstimateDirectionBidir (const GeneralizedBSDFSampleQuery &query, const SurfaceGeometry &geom, GeneralizedBSDFSampleBidirResult &result) const =0
 
virtual Math::Vec3 EvaluateDirection (const GeneralizedBSDFEvaluateQuery &query, const SurfaceGeometry &geom) const =0
 
virtual Math::PDFEval EvaluateDirectionPDF (const GeneralizedBSDFEvaluateQuery &query, const SurfaceGeometry &geom) const =0
 
virtual int BSDFTypes () const =0
 
- Public Member Functions inherited from Asset
virtual bool Load (const ConfigNode &node, const Assets &assets)=0
 
LM_PUBLIC_API std::string ID () const
 
LM_HIDDEN_API void SetID (const std::string &id)
 
- Public Member Functions inherited from Component
virtual std::string ComponentInterfaceTypeName () const =0
 
virtual std::string ComponentImplTypeName () const =0
 
- Public Member Functions inherited from SIMDAlignedType
void * operator new (std::size_t size) throw (std::bad_alloc)
 
void operator delete (void *p)
 

Detailed Description

Emitter. The base class of Light and Camera.

Inheritance diagram for Emitter:
GeneralizedBSDF Asset Component SIMDAlignedType Camera Light PerspectiveCamera ThinLensCamera AreaLight ConstantEnvironmentLight

Member Function Documentation

virtual EmitterShape* Emitter::CreateEmitterShape ( ) const
pure virtual

Get associated emitter shapes. Some emitter is associated with intersectable shapes (e.g., sphere for environment lights) in order to integrate emitters with BPT based rendering techniques. Ownership of the created instance is delegated to the caller.

Returns
Instance of emitter shape.

Implemented in AreaLight, PerspectiveCamera, and ConstantEnvironmentLight.

virtual Math::Vec3 Emitter::EvaluatePosition ( const SurfaceGeometry geom) const
pure virtual

Evaluate the positional component of the emitted quantity.

Parameters
geomSurface geometry.
Returns
Positional component of the emitted quantity.

Implemented in AreaLight, PerspectiveCamera, ThinLensCamera, and ConstantEnvironmentLight.

virtual Math::PDFEval Emitter::EvaluatePositionPDF ( const SurfaceGeometry geom) const
pure virtual

Evaluate positional PDF.

Parameters
geomSurface geometry.
Returns
Evaluated PDF.

Implemented in AreaLight, PerspectiveCamera, ThinLensCamera, and ConstantEnvironmentLight.

virtual void Emitter::PostConfigure ( const Scene scene)
pure virtual

Post configuration after scene is built. Some emitter needs to be configured after scene is built. TODO : Replace RegisterPrimitive function with this function.

Parameters
sceneScene.

Implemented in AreaLight, PerspectiveCamera, and ConstantEnvironmentLight.

virtual void Emitter::RegisterPrimitives ( const std::vector< Primitive * > &  primitives)
pure virtual

Register an reference to the primitive. Some implementation of camera needs transformed mesh information for sampling. The function registers the reference to the primitive. The function is internally called.

Parameters
primitivesAn list instances of the primitive.

Implemented in AreaLight, PerspectiveCamera, ThinLensCamera, and ConstantEnvironmentLight.

virtual void Emitter::SamplePosition ( const Math::Vec2 &  sample,
SurfaceGeometry geom,
Math::PDFEval &  pdf 
) const
pure virtual

Sample a position on the light.

Parameters
samplePosition sample.
geomSurface geometry at sampled position #geom.p.
pdfEvaluated PDF (area measure).

Implemented in AreaLight, PerspectiveCamera, ThinLensCamera, and ConstantEnvironmentLight.


The documentation for this class was generated from the following file: