C++ / OpenCL Raytracer
Dielectric Class Reference

#include <dielectric.h>

Inheritance diagram for Dielectric:
Material

Public Member Functions

 Dielectric (double ri)
 
virtual bool Scatter (const Ray &r_in, const HitRecord &rec, Vector3D &attenuation, Ray &scattered) const
 
virtual int MatType () const
 
virtual Vector3D MatColor () const
 
virtual double MatFuzz () const
 
virtual double MatRef () const
 

Static Public Member Functions

static bool Refract (const Vector3D &v, const Vector3D &n, double NiOverNt, Vector3D &refracted)
 
- Static Public Member Functions inherited from Material
static Vector3D Reflect (const Vector3D &v, const Vector3D &n)
 
static Vector3D RandomInUnitSphere ()
 

Public Attributes

double m_dRefId
 Refractive index of Dielectric. Air = 1.0; Glass = 1.3 - 1.7; Diamond = 2.4.
 

Detailed Description

Dielectric (water, glass, diamond) refractive type Material.

Constructor & Destructor Documentation

◆ Dielectric()

Dielectric::Dielectric ( double  ri)
inline

Create Dielectric Material for Object with specified refractive index.

Example:

Dielectric(1.3);

Member Function Documentation

◆ MatColor()

virtual Vector3D Dielectric::MatColor ( ) const
inlinevirtual

Return Vector3D value for material color.

Example:

MatColor();

Implements Material.

◆ MatFuzz()

virtual double Dielectric::MatFuzz ( ) const
inlinevirtual

Return double value for material fuzz.

Example:

MatFuzz();

Implements Material.

◆ MatRef()

virtual double Dielectric::MatRef ( ) const
inlinevirtual

Return double value for material refraction index.

Example:

MatRef();

Implements Material.

◆ MatType()

virtual int Dielectric::MatType ( ) const
inlinevirtual

Return int value based on which material an object has. Used to determine normal calculation for box

Example:

MatType();

Implements Material.

◆ Refract()

static bool Dielectric::Refract ( const Vector3D v,
const Vector3D n,
double  NiOverNt,
Vector3D refracted 
)
inlinestatic

Return boolean value for input vectors. If vector was refracted returns true.

Example:

Refract(ray_direction, normal, NiOverNt, refracted_vector);

◆ Scatter()

bool Dielectric::Scatter ( const Ray r_in,
const HitRecord rec,
Vector3D attenuation,
Ray scattered 
) const
virtual

Return boolean value if ray scatters based on Material attenuation.

Example:

Scatter(StartingRay, rec, attenuation, ScatteredRay);

Implements Material.


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