Terminus
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
terminus::Light Class Reference

The Light class represents a light source with a packed, shader compatible memory layout. More...

#include <light.h>

Public Types

enum  Type { AMBIENT = 0, DIRECTIONAL = 1, POINT = 2, SPOT = 3 }
 The type of a light source. More...
 

Public Member Functions

 Light (Type type=AMBIENT)
 
void setPosition (const QVector3D &position)
 
void setDirection (const QVector3D &direction)
 
void setColor (const QVector3D &color)
 
void setIntensity (float intensity)
 
void setCutoff (float cutoffDegrees, float cutoffBorder)
 

Static Public Member Functions

static Light createAmbient (const QVector3D &color)
 
static Light createDirectional (const QVector3D &color, const QVector3D &direction)
 
static Light createPoint (const QVector3D &color, const QVector3D &position, float intensity)
 
static Light createSpot (const QVector3D &color, const QVector3D &position, const QVector3D &direction, float intensity, float cutoffDegrees, float cutoffBorder)
 

Static Public Attributes

static constexpr int vectorCount = 3
 the number of 4d vectors occupied by an instance of this class More...
 
static const Light nullLight
 a light that has no effect on the scene More...
 

Protected Attributes

QVector4D positionType
 
QVector4D directionIntensity
 
QVector4D colorCutOff
 

Detailed Description

The Light class represents a light source with a packed, shader compatible memory layout.

See also
LightManager

Member Enumeration Documentation

The type of a light source.

The type of a light source determines which fields will effectively be used

Enumerator
AMBIENT 
DIRECTIONAL 

Ambient light, only color is used.

POINT 

Directional light, defined by direction and color.

SPOT 

Point light, defined by position, attenuation and color.

Constructor & Destructor Documentation

terminus::Light::Light ( Type  type = AMBIENT)

Member Function Documentation

Light terminus::Light::createAmbient ( const QVector3D &  color)
static
Light terminus::Light::createDirectional ( const QVector3D &  color,
const QVector3D &  direction 
)
static
Light terminus::Light::createPoint ( const QVector3D &  color,
const QVector3D &  position,
float  intensity 
)
static
Light terminus::Light::createSpot ( const QVector3D &  color,
const QVector3D &  position,
const QVector3D &  direction,
float  intensity,
float  cutoffDegrees,
float  cutoffBorder 
)
static
void terminus::Light::setColor ( const QVector3D &  color)
void terminus::Light::setCutoff ( float  cutoffDegrees,
float  cutoffBorder 
)
void terminus::Light::setDirection ( const QVector3D &  direction)
void terminus::Light::setIntensity ( float  intensity)
void terminus::Light::setPosition ( const QVector3D &  position)

Member Data Documentation

QVector4D terminus::Light::colorCutOff
protected
QVector4D terminus::Light::directionIntensity
protected
const Light terminus::Light::nullLight
static

a light that has no effect on the scene

QVector4D terminus::Light::positionType
protected
constexpr int terminus::Light::vectorCount = 3
static

the number of 4d vectors occupied by an instance of this class


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