All pastes #152454 Raw Edit

Let's make lights

public cpp v1 · immutable
#152454 ·published 2006-08-28 20:29 UTC
rendered paste body
/*-----------------------------------------------------------------*/// Author:         Darryl Davis// File:           RenderLight.cpp// Date:           8/18/06// Last Update:    8/21/06// Purpose:        RenderLight inherits from RenderObject and is used//				   to display an OpenGL light in the scene./*-----------------------------------------------------------------*/#include "RenderLight.h"#include "RenderPrimitive.h"/*-----------------------------------------------------------------*/// Name:	initialize()// Date:    8/24/06// In:     // Purpose: Initialize the light, do this once./*-----------------------------------------------------------------*/void CRenderLight::initialize(void){	glEnable(GL_LIGHTING);	glEnable(GL_LIGHT0);		m_fPosition[0] = 0.0f;	m_fPosition[1] = 0.0f;	m_fPosition[2] = 20.0f;	m_fPosition[3] = 1.0f;	//	Turn Off *global ambient* light - cbr	GLfloat noLight[] = { 0.0f, 0.0f, 0.0f };	GLfloat someLight[] = { 0.4f, 0.4f, 0.4f };	GLfloat diffuseLight[] = { 0.1f, 0.1f, 0.1f, 0.1f };	//GLfloat lightPos[] = { 100.0f, 0.0f, -100.0f };	GLfloat gray[] = { 0.5f, 0.5f, 0.5f };	glLightModelfv(GL_LIGHT_MODEL_AMBIENT, noLight);		GLfloat spotDir[] = { 0.0f, 0.0f, -1.0f };	glLightfv(GL_LIGHT0, GL_AMBIENT, noLight);	glLightfv(GL_LIGHT0, GL_DIFFUSE, someLight);//	glLightfv(GL_LIGHT0, GL_SPECULAR, someLight);	glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, spotDir);	glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 200.0f);//	glLightfv(GL_LIGHT0, GL_POSITION, m_fPosition);	glEnable(GL_COLOR_MATERIAL);	glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, gray);	glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);}/*--------------------------------------------------------*/// Name:	render// Date:	8/24/06// Purpose:	The Render function renders the light./*--------------------------------------------------------*/void CRenderLight::render(void){	static float m_fRotate = 0.0f;	glDisable(GL_LIGHTING);		glPushMatrix();	//m_fPosition[2] += 0.01f;	//glRotatef(m_fRotate, 1.0f, 0.0f, 0.0f);	glTranslatef( m_fPosition[0], m_fPosition[1], m_fPosition[2] );		glColor3f(1.0f, 1.0f, 1.0f);	GLUquadric *pSphere = gluNewQuadric();	gluSphere(pSphere, 1.0f, 10, 10);	gluDeleteQuadric(pSphere);	glPopMatrix();	glEnable(GL_LIGHTING);	glEnable(GL_LIGHT0);	glLightfv(GL_LIGHT0, GL_POSITION, m_fPosition);		//	Draw a sphere!	m_fRotate += 0.1f;	}void CRenderLight::enable(){	}void CRenderLight::disable(){	glDisable(GL_LIGHT0);}