![]()  | 
  
    MAGE
    v0.171.0
    
   Matthias Advanced Game Engine 
   | 
 
#include <spot_light.hpp>
  
 Public Member Functions | |
| SpotLight () noexcept | |
| SpotLight (const SpotLight &light) noexcept | |
| SpotLight (SpotLight &&light) noexcept | |
| virtual | ~SpotLight () | 
| SpotLight & | operator= (const SpotLight &light) noexcept | 
| SpotLight & | operator= (SpotLight &&light) noexcept | 
| RGB & | GetBaseColor () noexcept | 
| const RGB & | GetBaseColor () const noexcept | 
| F32 | GetPower () const noexcept | 
| void | SetPower (F32 power) noexcept | 
| const RGB | GetPowerSpectrum () const noexcept | 
| F32 | GetIntensity () const noexcept | 
| void | SetIntensity (F32 intensity) noexcept | 
| const RGB | GetIntensitySpectrum () const noexcept | 
| const AABB & | GetAABB () const noexcept | 
| const BoundingSphere & | GetBoundingSphere () const noexcept | 
| F32 | GetRange () const noexcept | 
| F32 | GetWorldRange () const noexcept | 
| void | SetRange (F32 range) noexcept | 
| F32 | GetStartAngularCutoff () const noexcept | 
| void | SetStartAngularCutoff (F32 cos_penumbra) noexcept | 
| F32 | GetEndAngularCutoff () const noexcept | 
| void | SetEndAngularCutoff (F32 cos_umbra) noexcept | 
| void | SetAngularCutoff (F32 cos_penumbra, F32 cos_umbra) noexcept | 
| F32 | GetRangeAngularCutoff () const noexcept | 
| F32 | GetPenumbraAngle () const noexcept | 
| void | SetPenumbraAngle (F32 penumbra) noexcept | 
| F32 | GetUmbraAngle () const noexcept | 
| void | SetUmbraAngle (F32 umbra) noexcept | 
| void | SetPenumbraAndUmbraAngles (F32 penumbra, F32 umbra) noexcept | 
| bool | UseShadows () const noexcept | 
| void | EnableShadows () noexcept | 
| void | DissableShadows () noexcept | 
| void | ToggleShadows () noexcept | 
| void | SetShadows (bool shadows) noexcept | 
| const F32x2 | GetClippingPlanes () const noexcept | 
| void | SetClippingPlanes (F32x2 clipping_planes) noexcept | 
| F32 | GetFOV () const noexcept | 
| const XMMATRIX XM_CALLCONV | GetLightToProjectionMatrix () const noexcept | 
  Public Member Functions inherited from mage::Component | |
| virtual | ~Component () | 
| Component & | operator= (const Component &component) noexcept | 
| Component & | operator= (Component &&component) noexcept | 
| State | GetState () const noexcept | 
| void | SetState (State state) noexcept | 
| U64 | GetGuid () const noexcept | 
| bool | HasOwner () const noexcept | 
| ProxyPtr< Node > | GetOwner () noexcept | 
| ProxyPtr< const Node > | GetOwner () const noexcept | 
Private Member Functions | |
| void | UpdateBoundingVolumes () noexcept | 
Private Attributes | |
| bool | m_shadows | 
| AABB | m_aabb | 
| BoundingSphere | m_sphere | 
| RGB | m_base_color | 
| F32 | m_intensity | 
| F32x2 | m_clipping_planes | 
| F32 | m_cos_penumbra | 
| F32 | m_cos_umbra | 
Additional Inherited Members | |
  Protected Member Functions inherited from mage::Component | |
| Component () noexcept | |
| Component (const Component &component) noexcept | |
| Component (Component &&component) noexcept | |
A class of spotlights.
      
  | 
  noexcept | 
Constructs a spotlight.
      
  | 
  defaultnoexcept | 
Constructs a spotlight from the given spotlight.
| [in] | light | A reference to the spotlight to copy. | 
      
  | 
  defaultnoexcept | 
Constructs a spotlight by moving the given spotlight.
| [in] | light | A reference to the spotlight to move. | 
      
  | 
  virtualdefault | 
Destructs this spotlight.
      
  | 
  noexcept | 
Dissables shadows for this spotlight.
      
  | 
  noexcept | 
Enables shadows for this spotlight.
      
  | 
  noexcept | 
      
  | 
  noexcept | 
Returns the (linear) base color of this omni light.
      
  | 
  noexcept | 
Returns the (linear) base color of this omni light.
      
  | 
  noexcept | 
Returns the BoundingSphere of this spotlight.
      
  | 
  noexcept | 
Returns the clipping planes of this spotlight expressed in light space.
      
  | 
  noexcept | 
Returns the cosine of the umbra angle of this spotlight.
      
  | 
  noexcept | 
Returns the (horizontal and vertical) field-of-view of this spotlight.
      
  | 
  noexcept | 
Returns the radiant intensity of this spotlight.
      
  | 
  noexcept | 
Returns the radiant intensity spectrum of this spotlight.
      
  | 
  noexcept | 
Returns the light-to-projection matrix of the light camera of this spot light.
      
  | 
  noexcept | 
Returns the penumbra angle (in radians) of this spotlight.
      
  | 
  noexcept | 
Returns the power of this spotlight.
      
  | 
  noexcept | 
Returns the power spectrum of this spotlight.
      
  | 
  noexcept | 
Returns the range of this spotlight expressed in light space.
      
  | 
  noexcept | 
Returns the cosine range where intensity attenuation occurs of this spotlight.
      
  | 
  noexcept | 
Returns the cosine of the penumbra angle of this spotlight.
      
  | 
  noexcept | 
Returns the umbra angle (in radians) of this spotlight.
      
  | 
  noexcept | 
Returns the range of this spotlight expressed in world space.
Copies the given spotlight to this spotlight.
| [in] | light | A reference to the spotlight to copy. | 
Moves the given spotlight to this spotlight.
| [in] | light | A reference to the spotlight to move. | 
Sets the cosine of the penumbra and umbra angles of this spotlight to the given values.
| [in] | cos_penumbra | The cosine of the penumbra angle. | 
| [in] | cos_umbra | The cosine of the umbra angle. | 
      
  | 
  noexcept | 
Sets the clipping planes of this spotlight expressed in light space to the given clipping planes.
| [in] | clipping_planes | The clipping planes. | 
      
  | 
  noexcept | 
Sets the cosine of the umbra angle of this spotlight to the given value.
| [in] | cos_umbra | The cosine of the umbra angle. | 
      
  | 
  noexcept | 
Sets the radiant intensity of this spotlight to the given radial intensity.
| [in] | intensity | The radiant intensity in watts per steradians. | 
Sets the penumbra and umbra angles (in radians) of this spotlight to the given values.
| [in] | penumbra | The penumbra angle (in radians). | 
| [in] | umbra | The umbra angle (in radians). | 
      
  | 
  noexcept | 
Sets the penumbra angle (in radians) of this spotlight to the given value (in radians).
| [in] | penumbra | The penumbra angle (in radians). | 
      
  | 
  noexcept | 
Sets the power of this omni light to the given radiance.
| [in] | power | The power in watts. | 
      
  | 
  noexcept | 
Sets the range of this spotlight to the given value expressed in light space.
| [in] | range | The range expressed in light space. | 
      
  | 
  noexcept | 
Sets shadows for this spotlight to the given value.
| [in] | shadows | true if shadows should be used for this spotlight. false otherwise.  | 
      
  | 
  noexcept | 
Sets the cosine of the penumbra angle of this spotlight to the given value.
| [in] | cos_penumbra | The cosine of the penumbra angle. | 
      
  | 
  noexcept | 
Sets the umbra angle (in radians) of this spotlight to the given value.
| [in] | umbra | The umbra angle (in radians). | 
      
  | 
  noexcept | 
Toggles shadows for this spotlight.
      
  | 
  privatenoexcept | 
Updates the bounding volumes of this spotlight.
      
  | 
  noexcept | 
Checks whether shadows should be used for this spotlight.
true if shadows should be used for this spotlight. false otherwise. 
      
  | 
  private | 
The (linear) base color of this spotlight.
      
  | 
  private | 
The clipping planes of this spotlight expressed in light space.
      
  | 
  private | 
The cosine of the penumbra angle of this spotlight.
      
  | 
  private | 
The cosine of the umbra angle of this spotlight.
      
  | 
  private | 
The radiant intensity in watts per steradians of this spotlight.
      
  | 
  private | 
A flag indicating whether shadows should be calculated or not for this spotlight.
      
  | 
  private | 
The BoundingSphere of this spotlight.