Fermat
Public Methods | Public Members | List of all members
DiskLight Struct Reference

Detailed description

Disk-light class

#include <lights.h>

Inheritance diagram for DiskLight:
Light

Public Methods

FERMAT_HOST_DEVICE bool sample_impl (const float *Z, uint32_t *prim_id, cugar::Vector2f *uv, VertexGeometry *geom, float *pdf, Edf *edf) const
 
FERMAT_HOST_DEVICE void intersect_impl (const Ray ray, float2 *uv, float *t) const
 
FERMAT_HOST_DEVICE void map_impl (const uint32_t prim_id, const cugar::Vector2f &uv, VertexGeometry *geom, float *pdf, Edf *edf) const
 
FERMAT_HOST_DEVICE void map_impl (const uint32_t prim_id, const cugar::Vector2f &uv, const VertexGeometry &geom, float *pdf, Edf *edf) const
 
- Public Methods inherited from Light
FERMAT_HOST_DEVICE Light (LightType _type)
 
FERMAT_HOST_DEVICE bool sample (const float *Z, uint32_t *prim_id, cugar::Vector2f *uv, VertexGeometry *geom, float *pdf, Edf *edf) const
 
FERMAT_HOST_DEVICE bool sample (const cugar::Vector3f p, const float *Z, uint32_t *prim_id, cugar::Vector2f *uv, VertexGeometry *geom, float *pdf, Edf *edf) const
 
FERMAT_HOST_DEVICE void intersect (const Ray ray, float2 *uv, float *t) const
 
FERMAT_HOST_DEVICE void map (const uint32_t prim_id, const cugar::Vector2f &uv, VertexGeometry *geom, float *pdf, Edf *edf) const
 
FERMAT_HOST_DEVICE void map (const uint32_t prim_id, const cugar::Vector2f &uv, const VertexGeometry &geom, float *pdf, Edf *edf) const
 

Public Members

cugar::Vector3f pos
 
cugar::Vector3f dir
 
cugar::Vector3f u
 
cugar::Vector3f v
 
cugar::Vector3f color
 
float radius
 
- Public Members inherited from Light
LightType type
 

Member Function Documentation

◆ intersect_impl()

FERMAT_HOST_DEVICE void DiskLight::intersect_impl ( const Ray  ray,
float2 *  uv,
float *  t 
) const
inline

intersect the given ray with the light source

◆ map_impl() [1/2]

FERMAT_HOST_DEVICE void DiskLight::map_impl ( const uint32_t  prim_id,
const cugar::Vector2f uv,
VertexGeometry geom,
float *  pdf,
Edf edf 
) const
inline

map a (prim,uv) pair to a surface element

◆ map_impl() [2/2]

FERMAT_HOST_DEVICE void DiskLight::map_impl ( const uint32_t  prim_id,
const cugar::Vector2f uv,
const VertexGeometry geom,
float *  pdf,
Edf edf 
) const
inline

map a (prim,uv) pair to a surface element

◆ sample_impl()

FERMAT_HOST_DEVICE bool DiskLight::sample_impl ( const float *  Z,
uint32_t *  prim_id,
cugar::Vector2f uv,
VertexGeometry geom,
float *  pdf,
Edf edf 
) const
inline

sample a surface element on the light source


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