PGR Copakond OpenGL Engine - Bowling
Loading...
Searching...
No Matches
copakond::Light Class Reference

Base class for scene lighting calculations. More...

#include <light.h>

Inheritance diagram for copakond::Light:
copakond::DirectionalLight copakond::PointLight copakond::SpotLight

Public Types

enum  LightType { DIRECTIONAL , POINT , SPOTLIGHT }

Public Member Functions

 Light (LightType type, glm::vec3 position, glm::vec3 direction, glm::vec3 ambient, glm::vec3 diffuse, glm::vec3 specular, float range, float angle, float exponent, bool dim)
 Initializes base light properties.
int type ()
glm::vec3 & position ()
glm::vec3 & direction ()
glm::vec3 & ambient ()
glm::vec3 & diffuse ()
glm::vec3 & specular ()
int & id ()
float & range ()
float & angle ()
float & exponent ()
bool & dim ()
LightUniformsgetUniformLocations ()

Protected Attributes

LightType _type
glm::vec3 _position
glm::vec3 _direction
glm::vec3 _ambient
glm::vec3 _diffuse
glm::vec3 _specular
int _id
float _range
float _angle
float _exponent
bool _dim
LightUniforms _uniformLocations

Detailed Description

Base class for scene lighting calculations.

Member Enumeration Documentation

◆ LightType

Enumerator
DIRECTIONAL 
POINT 
SPOTLIGHT 

Constructor & Destructor Documentation

◆ Light()

copakond::Light::Light ( LightType type,
glm::vec3 position,
glm::vec3 direction,
glm::vec3 ambient,
glm::vec3 diffuse,
glm::vec3 specular,
float range,
float angle,
float exponent,
bool dim )

Initializes base light properties.

Parameters
dimIf true, applies distance-based attenuation (dimming).

Member Function Documentation

◆ ambient()

glm::vec3 & copakond::Light::ambient ( )
inline

◆ angle()

float & copakond::Light::angle ( )
inline

◆ diffuse()

glm::vec3 & copakond::Light::diffuse ( )
inline

◆ dim()

bool & copakond::Light::dim ( )
inline

◆ direction()

glm::vec3 & copakond::Light::direction ( )
inline

◆ exponent()

float & copakond::Light::exponent ( )
inline

◆ getUniformLocations()

LightUniforms & copakond::Light::getUniformLocations ( )
inline

◆ id()

int & copakond::Light::id ( )
inline

◆ position()

glm::vec3 & copakond::Light::position ( )
inline

◆ range()

float & copakond::Light::range ( )
inline

◆ specular()

glm::vec3 & copakond::Light::specular ( )
inline

◆ type()

int copakond::Light::type ( )
inline

Member Data Documentation

◆ _ambient

glm::vec3 copakond::Light::_ambient
protected

◆ _angle

float copakond::Light::_angle
protected

Cutoff angle for spotlights

◆ _diffuse

glm::vec3 copakond::Light::_diffuse
protected

◆ _dim

bool copakond::Light::_dim
protected

If true, light intensity attenuates based on distance

◆ _direction

glm::vec3 copakond::Light::_direction
protected

◆ _exponent

float copakond::Light::_exponent
protected

Falloff exponent for spotlights

◆ _id

int copakond::Light::_id
protected

◆ _position

glm::vec3 copakond::Light::_position
protected

◆ _range

float copakond::Light::_range
protected

Maximum distance the light reaches

◆ _specular

glm::vec3 copakond::Light::_specular
protected

◆ _type

LightType copakond::Light::_type
protected

◆ _uniformLocations

LightUniforms copakond::Light::_uniformLocations
protected

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