#include <litscene.h>
Inheritance diagram for LitScene:
Public Member Functions | |
LitScene (unsigned int maxBounces) | |
LitScene () | |
void | setLighting (int n) |
void | setAmbient (Colour colour) |
Light & | lightAt (int i) |
int & | numberOfLights () |
Colour | tracePath (const Ray &ray, GObject *object=NULL, Colour weightIn=Colour(1.0f, 1.0f, 1.0f), int depth=0) |
bool | hitLight (GObject *me, Ray ray) |
Colour | renderPixel (int i, int j, SimpleCamera &TheCamera, int N_RAYS_PER_PIXEL) |
int & | numberOfAreaLights () |
GObject * | areaLightAt (int i) |
int & | maxBounces (void) |
float & | cutOffThreshold (void) |
Colour | falseColour (const Ray &ray) |
Colour | colourOnObject (GObject *, Point, Point) |
bool | intersect (GObject *, Ray, Colour &, int) |
GObject * | intersect (Ray ray, Point &p, Vector &n) |
GObject * | isShadowed (GObject *me, Ray ray, bool directional) |
bool | load (const char *filename) |
Private Member Functions | |
void | buildAreaLightList (void) |
Private Attributes | |
int | NLights |
Light * | Lighting |
Colour | Ambient |
int | m_areaLightCount |
GObject ** | m_areaLights |
int | m_maxBounces |
float | m_cutOffThreshold |
Friends | |
ostream & | operator<< (ostream &, LitScene) |
istream & | operator>> (istream &, LitScene &) |
LitScene::LitScene | ( | unsigned int | maxBounces | ) | [inline] |
LitScene::LitScene | ( | ) | [inline] |
void LitScene::buildAreaLightList | ( | void | ) | [private] |
void LitScene::setLighting | ( | int | n | ) | [inline] |
void LitScene::setAmbient | ( | Colour | colour | ) | [inline] |
Light& LitScene::lightAt | ( | int | i | ) | [inline] |
int& LitScene::numberOfLights | ( | ) | [inline] |
Colour LitScene::tracePath | ( | const Ray & | ray, | |
GObject * | object = NULL , |
|||
Colour | weightIn = Colour(1.0f, 1.0f, 1.0f) , |
|||
int | depth = 0 | |||
) |
Colour LitScene::renderPixel | ( | int | i, | |
int | j, | |||
SimpleCamera & | TheCamera, | |||
int | N_RAYS_PER_PIXEL | |||
) |
int& LitScene::numberOfAreaLights | ( | ) | [inline] |
GObject* LitScene::areaLightAt | ( | int | i | ) | [inline] |
int& LitScene::maxBounces | ( | void | ) | [inline] |
float& LitScene::cutOffThreshold | ( | void | ) | [inline] |
returns true if the ray intersects the scene, and if so then the colour at the intersection point. This overrides the method in Scene
Your code here (2) - do a recursive ray trace. Use specular colour to modulate the colour returned by the recursive intersect call
bool LitScene::load | ( | const char * | filename | ) |
ostream& operator<< | ( | ostream & | s, | |
LitScene | scene | |||
) | [friend] |
istream& operator>> | ( | istream & | s, | |
LitScene & | scene | |||
) | [friend] |
int LitScene::NLights [private] |
Light* LitScene::Lighting [private] |
Colour LitScene::Ambient [private] |
int LitScene::m_areaLightCount [private] |
GObject** LitScene::m_areaLights [private] |
int LitScene::m_maxBounces [private] |
float LitScene::m_cutOffThreshold [private] |