Light Class Reference

#include <light.h>

Class Description

Represents a light source in the scene.

Definition at line 18 of file light.h.

+ Inheritance diagram for Light:

Public Types

enum  LightType {
  LIGHT_DIRECTIONAL =0, LIGHT_POINT, LIGHT_SPOT, LIGHT_IBL,
  LIGHT_NONE
}
 
- Public Types inherited from Node
enum  DiagnosticLevel { dgnLevel1, dgnLevel2, dgnLevel3 }
 Indicates the level of validity checking that is performed in CheckValidity() More...
 

Public Member Functions

virtual Color Diffuse (void) const
 Returns the diffuse color value of the light. More...
 
virtual void SetDiffuse (const Color &cDiffuse)
 Sets the diffuse color value of the light. More...
 
virtual float Intensity (void) const
 Returns the light intensity in range 0..1. More...
 
virtual void SetIntensity (float fIntensity)
 Sets the light intensity in range 0..1. More...
 
virtual bool IsLockedToCamera (void) const
 Returns true if the light direction is locked to the camera direction. More...
 
virtual void SetLockedToCamera (bool bOnOrOff)
 Set lock/unlock to camera. More...
 
virtual bool Render (void)
 Renders the light manipulator or light geometry, if they are turned on. More...
 
virtual Manipulator * GetManipulator ()
 Returns a pointer to the light's manipulator, or NULL if no manipulator has been created. More...
 
virtual void ValidateShadowMap ()
 Checks and updates the shadow map (if shadowing is turned on). More...
 
virtual TextureShadowDepthMap ()
 Returns the depth map associated with the light. More...
 
virtual const MatrixShadowMatrix () const
 Returns the shadow/depth map matrix associated with light. More...
 
virtual bool CastShadow ()
 Returns true if shadow castinging is enabled for this light. More...
 
virtual float ShadowBias ()
 Returns the shadow bias for this light. More...
 
virtual LightType Type ()
 Returns the type of this light. More...
 
virtual void SetAttenuation (float)
 Sets the light attenuation value. More...
 
virtual float Attenuation (void) const
 Returns the light attenuation value. More...
 
virtual Matrix LockedToCameraMatrix () const
 Returns the "locked to camera" matrix. More...
 
virtual ImageHDRImage () const
 Returns the HDRI image associated with this light, if any. Returns a NULL pointer if this is not an HDRI light. More...
 
virtual const QStringHDRImageFilename () const
 
- Public Member Functions inherited from GroupNode
virtual class TransformationTransformation (void) const
 This method returns the Transformation node attached to this node (i.e., its Parent in the scene hierarchy). More...
 
- Public Member Functions inherited from TreeNode
 TreeNode (void)
 
 ~TreeNode (void)
 
virtual void Serialize (Stream &s)
 Serializes the node. More...
 
virtual void AddChild (TreeNode *pChild, bool bFirst=false) const
 Adds a node/subtree to the list of children. The added node will be removed from the current parent if it has one. More...
 
virtual void RemoveChild (TreeNode *pChild) const
 Removes a node/subtree from the list of children. More...
 
virtual TreeNodeFirstChild (void) const
 Returns the first node from the child list. More...
 
virtual TreeNodeParent (void) const
 Returns the parent node. More...
 
virtual TreeNodeNextSibling (void) const
 Returns the next linked node with the same parent. More...
 
virtual TreeNodePrevSibling (void) const
 Returns the previous linked node with the same parent. More...
 
virtual void MoveChild (TreeNode *pChild, TreeNode *pAfter)
 Moves the child after the given node in order. More...
 
virtual TreeNodeChildByClass (const ClassDesc *pClass, bool bAutoCreate=true) const
 Returns the first child with the specified type. When the bAutoCreate parameter is true and such a child does not exists, it creates it with the preferred descedant type. More...
 
template<typename type >
typeChildByClass (bool bAutoCreate=true) const
 Same as above, a most confortable version. More...
 
virtual TreeNodeChildByClass (const ClassDesc *pClass, unsigned int iIndex=0) const
 Returns the first child with the specified type, or returns zero if no child found. More...
 
template<typename type >
typeChildByClass (unsigned int iIndex=0) const
 Same as above, a most confortable version. More...
 
virtual void DeleteChildByClass (const ClassDesc *pClass)
 Deletes all child which is derived from a specific class. More...
 
virtual QString Info (void) const
 Returns descriptive information about the node. More...
 
virtual bool Visible (void) const
 Returns if the node is visible. Should be overridden in derived classes. More...
 
virtual void SetVisible (bool b)
 Sets the node visibility Should be overridden in derived classes. More...
 
virtual bool Locked (void) const
 Returns if the node is locked. Should be overridden in derived classes. More...
 
virtual void SetLocked (bool b)
 Sets the locking of the node. Should be overridden in derived classes. More...
 
virtual bool HiddenFromUI (void) const
 Returns true if the node cannot be seen from UI. More...
 
virtual void SetHiddenFromUI (bool b)
 Sets visibility in UI. More...
 
virtual void OnLinked (const TreeNode *pOldParent)
 This function is called then the node is linked to a new parent. More...
 
virtual void CheckValidity (Node::DiagnosticLevel iLevel=dgnLevel2) const
 See the documentation for Node::CheckValidity. More...
 
QString UniqueChildName (const TreeNode *pChild, const QString &sPrefix="") const
 Finds a node name that is unique among the children of this node. More...
 
virtual void SetStringID (const QString &sName)
 This method does the same thing as Node::SetStringID, except it ensures the name is unique among this node's siblings. More...
 
virtual void CopyTo (Node *pNode) const
 
- Public Member Functions inherited from Node
 Node (const QString &sStringID="", const QString &sDisplayName="")
 Standard constructor. More...
 
virtual ~Node (void)
 
virtual void Initialize (void)
 
void LoadTemplate (const QString &sFileName="", bool bStartEvent=false)
 Use an external XML file to initialize the attributes. More...
 
void SaveTemplate (const QString &sFileName="", bool bSaveOnlyVisible=false)
 Save current attributes as an XML template. More...
 
unsigned int Version (void) const
 Returns the current version of the node. This number increases when the content of the node changed (when ContentChanged() called). More...
 
void SetVersion (unsigned int iVersion)
 Sets the current version number for the node. More...
 
unsigned int ReferenceCount (void) const
 Returns the number of pointers referencing this node. More...
 
AttributeReferencePointer (unsigned int iIndex) const
 Returns the address of an attribute which refers to this node. The type of the attribute is always aptr. More...
 
NodeReferenceNode (unsigned int iIndex) const
 Returns the address of a node referencing this node. More...
 
virtual QString Name (const ClassDesc *pClass=0) const
 Deprecated. More...
 
virtual void SetName (const QString &sName)
 Deprecated. More...
 
virtual QString StringID (const ClassDesc *pClass=0) const
 Returns the string id of the node. More...
 
virtual QString DisplayName (void) const
 Returns the display name of the node. More...
 
virtual void SetDisplayName (const QString &sDisplayName)
 Sets the display name of the node. More...
 
virtual QString HelpID (void) const
 Returns the help entry id of the node. Can be overwritten in derived classes. More...
 
virtual void SetHelpID (const QString &sHelpID)
 Sets the help entry id of the node. More...
 
void Annex (Node *pSource, const QString &sCategory="")
 Relink all the attributes of the source node to this one. More...
 
bool IsKindOf (const ClassDesc *pClass) const
 Returns true if this node is derived from the pClass class. More...
 
void ContentChanged (void) const
 This function must be called if the content of the node is changed. More...
 
virtual NodeDuplicate (void) const
 
virtual void OnNodeEvent (const Attribute &cAttribute, NodeEventType cType)
 This function is called if an event occurs with any of the attributes of the node. More...
 
virtual void OnEvent (const EventGate &cEvent)
 This function is called when a generic event occurs. See EventGate class. More...
 
void RequestDeferredEvent (Attribute &cAttribute)
 Request for a deferred event, which will occur only in the main loop. More...
 
unsigned int AttributeCount (void) const
 Returns the number of attributes owned by the node. More...
 
AttributeAttributeByIndex (int iIndex) const
 Returns a specified attribute (or 0 if iIndex is greater than the number of attributes). More...
 
AttributeAttributeByName (const QString &sName) const
 Returns a specified attribute by its name. Returns 0 if the attribute not found. More...
 
AttributeAttributeByID (const QString &sID) const
 Returns a specified attribute by its ID. Returns 0 if the attribute not found. More...
 
void SetAttributeValue (const QString &sAttributeID, const QString &sNewValue)
 Set the value of an attribute from a string. More...
 
QString AttributeValue (const QString &sAttributeID) const
 Returns the current value of an attribute as a string. More...
 
void LogAttributes (void) const
 Write all attributes into the log file. More...
 
virtual QWidgetCreatePropertiesWindow (QWidget *pParent)
 Create a window which displays the attributes of the node. Can be overriden to provide a custom interface. More...
 
AttributeAddAttribute (Attribute::AttributeType type, const QString &id)
 Allows SDK users to add attributes at runtime. More...
 
NodeNext (void) const
 Returns the next node in the chain. Used to enumerate the current nodes. See also First(). More...
 
int ID (void) const
 Returns an ID for the node. The ID is unique in the whole application life. More...
 
bool SetID (int iID)
 Set ID for the node. More...
 

Protected Member Functions

 Light (void)
 Constructor. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from Node
static void StartHashing ()
 This is called once in main once static ctors are done. More...
 
static NodeFirst (void)
 This function will return the first node in the memory. Used to enumerate all the current nodes. See also Next(). More...
 
static NodeByID (int iID)
 Returns the node with the specified ID, or zero if such a node does not exists. More...
 
static NodeByName (const QString &sClass, const QString &sName)
 Search for a node with the name sName. More...
 
- Public Attributes inherited from TreeNode
 DECLARE_CLASS
 
- Public Attributes inherited from Node
AttributeThisPointer m_pThis
 
 DECLARE_CLASS
 

Member Enumeration Documentation

enum LightType
Enumerator
LIGHT_DIRECTIONAL 
LIGHT_POINT 
LIGHT_SPOT 
LIGHT_IBL 
LIGHT_NONE 

Definition at line 33 of file light.h.

Constructor & Destructor Documentation

Light ( void  )
protected

Constructor.

Do not use this directly. Use CreateInstances() instead.

This is the typical way to create a Light:

Light *myLight = CreateInstance<Light>();

Member Function Documentation

virtual Color Diffuse ( void  ) const
virtual

Returns the diffuse color value of the light.

virtual void SetDiffuse ( const Color cDiffuse)
virtual

Sets the diffuse color value of the light.

Parameters
[in]cDiffuseThe new color
virtual float Intensity ( void  ) const
virtual

Returns the light intensity in range 0..1.

virtual void SetIntensity ( float  fIntensity)
virtual

Sets the light intensity in range 0..1.

Parameters
[in]fIntensityThe new intensity (0 is no light; 1 is full light)
virtual bool IsLockedToCamera ( void  ) const
virtual

Returns true if the light direction is locked to the camera direction.

virtual void SetLockedToCamera ( bool  bOnOrOff)
virtual

Set lock/unlock to camera.

Parameters
[in]bOnOrOffIf true, the light will be locked to the camera so that it is always pointing in the same direction.
virtual bool Render ( void  )
virtual

Renders the light manipulator or light geometry, if they are turned on.

virtual Manipulator* GetManipulator ( )
virtual

Returns a pointer to the light's manipulator, or NULL if no manipulator has been created.

virtual void ValidateShadowMap ( )
virtual

Checks and updates the shadow map (if shadowing is turned on).

virtual Texture* ShadowDepthMap ( )
virtual

Returns the depth map associated with the light.

virtual const Matrix& ShadowMatrix ( ) const
virtual

Returns the shadow/depth map matrix associated with light.

This matrix is the 'view matrix' of the light. It is used to render the scene from the light's perspective (and thus create a depth buffer), and to transform the main scene depth values into 'light space' so we can compare the main scene depth values to the light's scene depth values. This is used to create shadow maps for the light.

virtual bool CastShadow ( )
virtual

Returns true if shadow castinging is enabled for this light.

virtual float ShadowBias ( )
virtual

Returns the shadow bias for this light.

Bias does not have a fixed range, but generally lies between -1 & 1. It is used to offset the depth map either toward the light’s position or away from it. This is used to correct any inaccuracies in the depth comparison caused by precision loss. (Either when converting the pixel’s position to light space or in the depth map itself). Similar to polygon offset in OpenGL.

virtual LightType Type ( )
virtual

Returns the type of this light.

Possible return values are Light::LIGHT_DIRECTIONAL, Light::LIGHT_POINT, Light::LIGHT_SPOT, Light::LIGHT_IBL, or Light::LIGHT_NONE.

virtual void SetAttenuation ( float  )
virtual

Sets the light attenuation value.

Range is from 0-1.

This is called "Light Decay" in the UI.

virtual float Attenuation ( void  ) const
virtual

Returns the light attenuation value.

Range is from 0-1.

This is called "Light Decay" in the UI.

virtual Matrix LockedToCameraMatrix ( ) const
virtual

Returns the "locked to camera" matrix.

This matrix represents the initial camera matrix (on start up or when the light is created) multiplied by the inverse of the current camera matrix and the inverse of the current light matrix. Effectively, it is the 'delta' between the camera position, and the position of a light that is locked to it. Use this to get the current world space location of a light relative to the camera.

virtual Image* HDRImage ( ) const
virtual

Returns the HDRI image associated with this light, if any. Returns a NULL pointer if this is not an HDRI light.

virtual const QString* HDRImageFilename ( ) const
virtual

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