sculpto
spot_light_component.h
Go to the documentation of this file.
1/*!****************************************************************//*!*
2 * \file spot_light_component.h
3 * \brief Spot light component class implementation module.
4 *
5 * \author Sabitov Kirill
6 * \date 05 July 2022
7 *********************************************************************/
8
9#pragma once
10
11#include "base.h"
12
13namespace scl
14{
17 {
18 private:
20 float InnerCutoff {};
21 float OuterCutoff {};
22
23 public:
26 float Epsilon {};
27
30 float Strength { 1 };
31
32 public:
34 float GetInnerCutoff() const { return InnerCutoff; }
36 float GetOuterCutoff() const { return OuterCutoff; }
37
39 void SetInnerCutoff(degrees Angle) { InnerCutoff = Angle; InnerCutoffCos = cos((radians)Angle); Epsilon = InnerCutoffCos - OuterCutoffCos; }
41 void SetOuterCutoff(degrees Angle) { OuterCutoff = Angle; OuterCutoffCos = cos((radians)Angle); Epsilon = InnerCutoffCos - OuterCutoffCos; }
42
43 public:
46 spot_light_component(const vec3 &Color, degrees InnerCutoffAngle, degrees OuterCutoffAngle) :
47 Color(Color),
48 InnerCutoffCos(cos((radians)InnerCutoffAngle)), InnerCutoff(InnerCutoffAngle),
49 OuterCutoffCos(cos((radians)OuterCutoffAngle)), OuterCutoff(OuterCutoffAngle),
52 };
53}
Topology object basis class for mesh creating implementation module.
Definition: base.h:33
spot_light_component(const vec3 &Color, degrees InnerCutoffAngle, degrees OuterCutoffAngle)
spot_light_component(const spot_light_component &Other)=default
void SetOuterCutoff(degrees Angle)
void SetInnerCutoff(degrees Angle)