t
Loading...
Searching...
No Matches
t::AmbientLight Class Reference

The ambient light, which illuminates all objects in the scene equally. More...

#include <AmbientLight.hpp>

Inheritance diagram for t::AmbientLight:
t::Light t::Object3D

Public Member Functions

 AmbientLight (Color _color, double _intensity)
 Creates a new ambient light with the specified color and intensity.
 
bool isAmbientLight () const override
 Returns whether or not this light is an ambient light.
 
- Public Member Functions inherited from t::Light
bool isLight () const override
 Returns whether or not this 3D object is a light.
 
virtual bool isPointLight () const
 Returns whether or not this light is a point light.
 
virtual bool isDirectionalLight () const
 Returns whether or not this light is a directional light.
 
virtual bool isSpotLight () const
 Returns whether or not this light is a spot light.
 
- Public Member Functions inherited from t::Object3D
virtual bool isMesh () const
 Returns whether this 3D object is a mesh.
 
Object3Dadd (Object3D &child)
 Adds another 3D object as a child of this 3D object.
 
Object3Dtranslate (double x, double y, double z)
 Translates this 3D object by the specified amounts along the x, y, and z axes in local space.
 
Object3Drotate (double x, double y, double z, EulerRotationOrder order)
 Rotates this 3D object by the specified angles around the x, y, and z axes in local space.
 
Object3Dscale (double x, double y, double z)
 Scales this 3D object by the specified amounts along the x, y, and z axes in local space.
 
Object3DupdateLocalMatrix ()
 Updates the local transformation matrix of this 3D object.
 
Object3DupdateModelMatrix ()
 Updates the model matrix of this 3D object.
 

Public Attributes

Color color
 The color of this ambient light.
 
double intensity
 The intensity of this ambient light.
 
- Public Attributes inherited from t::Object3D
std::optional< std::reference_wrapper< Object3D > > parent
 The parent of this 3D object.
 
Vector3 up = DEFAULT_UP
 The vector pointing to the up direction in object space.
 
Vector3 localPosition
 The position of this 3D object relative to its parent.
 
EulerRotation localRotation
 The rotation of this 3D object relative to its parent.
 
Vector3 localScale
 The scale of this 3D object relative to its parent.
 
Matrix4x4 localMatrix
 The matrix of the local transformation of this 3D object.
 
Matrix4x4 modelMatrix
 The model matrix of this 3D object, transformating local space to world space.
 
std::vector< std::reference_wrapper< Object3D > > children
 The children of this 3D object.
 

Detailed Description

The ambient light, which illuminates all objects in the scene equally.

Ambient lighting is used in many ways, such as providing a base level of illumination in a dark scene where you don't want the scene to be completely dark. It is also a component of the Phong reflection model.

For the BlinnPhong material, the light's color contribution will be \(c = c_{o} \times c_{l} \times s\) where:

Constructor & Destructor Documentation

◆ AmbientLight()

t::AmbientLight::AmbientLight ( Color _color,
double _intensity )
inline

Creates a new ambient light with the specified color and intensity.

Parameters
_colorThe color of the new ambient light.
_intensityThe intensity of the new ambient light. 0 means the ambient light will have no effect. 1 means full intensity.

Member Function Documentation

◆ isAmbientLight()

bool t::AmbientLight::isAmbientLight ( ) const
inlineoverridevirtual

Returns whether or not this light is an ambient light.

Always returns true. May be used in vertex and fragment shaders to determine the type of light and make a cast from Light appropriately.

Returns
true

Reimplemented from t::Light.


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