Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

light.cpp

Go to the documentation of this file.
00001 #include <windows.h>
00002 #include "light.h"
00003 #include "mmgr.h"
00004 
00005 LIGHT::LIGHT()
00006 {
00007 }
00008 
00009 LIGHT::~LIGHT()
00010 {
00011 }
00012 
00013 void LIGHT::Reset()
00014 {
00015     Orientation.Reset();
00016     Position.Set(2.0, 2.0, 3.0);
00017     Delta_x = 0.0;
00018     Delta_y = 0.0;
00019     Delta_z = 0.0;
00020     Movement_x = 0.0;
00021     Movement_y = 0.0;
00022     Movement_z = 0.0;
00023     Ambient[0] = 0.0;
00024     Ambient[1] = 0.0;
00025     Ambient[2] = 0.0;
00026     Ambient[3] = 1.0;
00027     Diffuse[0] = 1.0;
00028     Diffuse[1] = 1.0;
00029     Diffuse[2] = 1.0;
00030     Diffuse[3] = 1.0;
00031     Specular[0] = 1.0;
00032     Specular[1] = 1.0;
00033     Specular[2] = 1.0;
00034     Specular[3] = 1.0;
00035     SpotLight = GL_FALSE;
00036     SpotDirection = GetZUnit();
00037     SpotExponent = 0.0;
00038     SpotCutoff = 180.0;
00039     Constant = 1.0;
00040     Linear = 0.0;
00041     Quadratic = 0.0;
00042     GlobalAmbient[0] = 0.2;
00043     GlobalAmbient[1] = 0.2;
00044     GlobalAmbient[2] = 0.2;
00045     GlobalAmbient[3] = 1.0;
00046     Positional = GL_FALSE;
00047     LocalViewer = GL_FALSE;
00048     TwoSided = GL_FALSE;
00049     float LightPosition[] = {Position.x, Position.y, Position.z, (float)Positional};
00050     glLightfv(GL_LIGHT[LightNumber], GL_POSITION, LightPosition);
00051     glLightfv(GL_LIGHT[LightNumber], GL_AMBIENT, Ambient);
00052     glLightfv(GL_LIGHT[LightNumber], GL_DIFFUSE, Diffuse);
00053     glLightfv(GL_LIGHT[LightNumber], GL_SPECULAR, Specular);
00054     glEnable(GL_LIGHT[LightNumber]);
00055 }
00056 
00057 void LIGHT::Update()
00058 {
00059     glLightfv(GL_LIGHT[LightNumber], GL_AMBIENT, Ambient);
00060     glLightfv(GL_LIGHT[LightNumber], GL_DIFFUSE, Diffuse);
00061     glLightfv(GL_LIGHT[LightNumber], GL_SPECULAR, Specular);
00062 }
00063 
00064 void LIGHT::Apply()
00065 {
00066     UpdatePosition();
00067     float LightPosition[] = {Position.x, Position.y, Position.z, (float)Positional};
00068     glLightfv(GL_LIGHT[LightNumber], GL_POSITION, LightPosition);
00069 }

Generated on Fri Dec 23 05:20:18 2005 for Portals by doxygen1.2.15