Assignments
Assignments
|
#include <light.h>
Public Member Functions | |
virtual | ~Light (void) |
virtual std::string | name (void) const =0 |
virtual Util::Point3D | getAmbient (Util::Ray3D ray, const class RayShapeIntersectionInfo &iInfo, const Material &material) const =0 |
virtual Util::Point3D | getDiffuse (Util::Ray3D ray, const class RayShapeIntersectionInfo &iInfo, const Material &material) const =0 |
virtual Util::Point3D | getSpecular (Util::Ray3D ray, const class RayShapeIntersectionInfo &iInfo, const Material &material) const =0 |
virtual bool | isInShadow (const class RayShapeIntersectionInfo &iInfo, const class Shape &shape, unsigned int tIdx) const =0 |
virtual Util::Point3D | transparency (const class RayShapeIntersectionInfo &iInfo, const class Shape &shape, Util::Point3D cLimit, unsigned int samples, unsigned int tIdx) const =0 |
virtual void | drawOpenGL (int index, GLSLProgram *glslProgram) const =0 |
Protected Attributes | |
Util::Point3D | _ambient |
Util::Point3D | _diffuse |
Util::Point3D | _specular |
Private Member Functions | |
virtual void | _write (std::ostream &stream) const =0 |
virtual void | _read (std::istream &stream)=0 |
This abstract class represents a light source in the scene.
|
inlinevirtual |
The destructor
|
privatepure virtual |
This method reads the Light from the stream (excluding the starting directive)
Implemented in Ray::DirectionalLight, Ray::PointLight, Ray::SphereLight, and Ray::SpotLight.
|
privatepure virtual |
This method writes the Light into the stream (including the starting directive)
Implemented in Ray::DirectionalLight, Ray::PointLight, Ray::SphereLight, and Ray::SpotLight.
|
pure virtual |
This method calls the necessary OpenGL commands to render the light. The index argument specifices the index of the light that is to be drawn.
Implemented in Ray::DirectionalLight, Ray::PointLight, and Ray::SpotLight.
|
pure virtual |
This method returns the ambient contribution of the light source to the specified hit location.
Implemented in Ray::DirectionalLight, Ray::PointLight, and Ray::SpotLight.
|
pure virtual |
This method returns the diffuse contribution of the light source to the specified hit location.
Implemented in Ray::DirectionalLight, Ray::PointLight, and Ray::SpotLight.
|
pure virtual |
This method returns the specular contribution of the light source to the specified hit location.
Implemented in Ray::DirectionalLight, Ray::PointLight, and Ray::SpotLight.
|
pure virtual |
This method tests if the intersection point represented by iInfo is in shadow from the light source. The returned value is either 0 if the the intersection point is not in shadow or 1 if it is.
Implemented in Ray::DirectionalLight, and Ray::PointLight.
|
pure virtual |
This method returns the name of the shape
Implemented in Ray::DirectionalLight, Ray::PointLight, Ray::SphereLight, and Ray::SpotLight.
|
pure virtual |
This method tests if the intersection point represented by iInfo is in partial shadow from the light source. A ray is cast from the hit location to the light source, and the transparency values are accumulated. If the light source is an area light source, multiple rays area cast to (uniformly randomly chosen positions on the area light sources and the transparency is set to the average of the transparency values over the samples. If the transparency value falls below cLimit, the testing terminates.
Implemented in Ray::DirectionalLight, Ray::PointLight, Ray::SphereLight, and Ray::SpotLight.
|
protected |
The ambient color of the light source
|
protected |
The diffuse color of the light source
|
protected |
The specular color of the light source