Class TAbstractLightNode

Unit

Declaration

type TAbstractLightNode = class(TAbstractChildNode)

Description

Base class for all the light nodes.

Hierarchy

Overview

Methods

Protected procedure BeforeTraverse(StateStack: TX3DGraphTraverseStateStack); override;
Protected procedure MiddleTraverse(StateStack: TX3DGraphTraverseStateStack); override;
Protected procedure GroupBeforeTraverse(const State: TX3DGraphTraverseState; var WasPointingDeviceSensor: Boolean); override;
Public procedure CreateNode; override;
Public function CreateLightInstance(State: TX3DGraphTraverseState): TLightInstance;
Public procedure UpdateLightInstanceState( var LightInstance: TLightInstance; State: TX3DGraphTraverseState);
Public procedure UpdateLightInstance( var LightInstance: TLightInstance); virtual;
Public function Scope: TLightScope; virtual;
Public function Transform: TMatrix4;
Public function InverseTransform: TMatrix4;
Public function TransformationChange: TNodeTransformationChange; override;
Public procedure SetEffects(const Value: array of TEffectNode);

Properties

Public property FdOn: TSFBool read FFdOn;
Public property FdIntensity: TSFFloat read FFdIntensity;
Public property FdColor: TSFColor read FFdColor;
Public property FdAmbientIntensity: TSFFloat read FFdAmbientIntensity;
Public property FdGlobal: TSFBool read FFdGlobal;
Public property FdShadowVolumes: TSFBool read FFdShadowVolumes;
Public property FdEffects: TMFNode read FFdEffects;
Public property AmbientIntensity: Single read GetAmbientIntensity write SetAmbientIntensity;
Public property Color: TCastleColorRGB read GetColor write SetColor;
Public property Global: Boolean read GetGlobal write SetGlobal;
Public property Intensity: Single read GetIntensity write SetIntensity;
Public property IsOn: Boolean read GetIsOn write SetIsOn;
Public property ShadowVolumes: Boolean read GetShadowVolumes write SetShadowVolumes;

Description

Methods

Protected procedure BeforeTraverse(StateStack: TX3DGraphTraverseStateStack); override;
 
Protected procedure MiddleTraverse(StateStack: TX3DGraphTraverseStateStack); override;
 
Protected procedure GroupBeforeTraverse(const State: TX3DGraphTraverseState; var WasPointingDeviceSensor: Boolean); override;
 
Public procedure CreateNode; override;
 
Public function CreateLightInstance(State: TX3DGraphTraverseState): TLightInstance;

Create TLightInstance record describing this light node under given State.

Public procedure UpdateLightInstanceState( var LightInstance: TLightInstance; State: TX3DGraphTraverseState);

Update TLightInstance record when lighting State changes. Assumes that LightInstance.Node = Self.

This will set LightInstance.Transform properties, and recalculate all LightInstance properties based on Transform.

Public procedure UpdateLightInstance( var LightInstance: TLightInstance); virtual;

Update TLightInstance record when lighting location/direction (and other properties precalculated on TLightInstance) change. Assumes that LightInstance.Node = Self.

Public function Scope: TLightScope; virtual;

Light scope. Default implementation returns lsGlobal or lsLocal, depending on "global" field value (this follows VRML/X3D >= 2.0 rules).

Public function Transform: TMatrix4;

Transformation of this light node. Beware: In X3D, light nodes can be instantiated many times within the scene, with different transformations, so this transformation property should not be used in general.

Use this only if you you know that light node occurs only once within the scene (see [https://castle-engine.io/x3d_extensions.php#section_ext_shadow_maps]). Or if you're fine with just getting an undefined transformation, for any of the light instances.

This value is calculated during traversing. Last BeforeTraverse call for this node sets this property. By default, it represents identity transformation.

Public function InverseTransform: TMatrix4;
 
Public function TransformationChange: TNodeTransformationChange; override;
 
Public procedure SetEffects(const Value: array of TEffectNode);
 

Properties

Public property FdOn: TSFBool read FFdOn;
 
Public property FdIntensity: TSFFloat read FFdIntensity;
 
Public property FdColor: TSFColor read FFdColor;
 
Public property FdAmbientIntensity: TSFFloat read FFdAmbientIntensity;
 
Public property FdGlobal: TSFBool read FFdGlobal;
 
Public property FdShadowVolumes: TSFBool read FFdShadowVolumes;
 
Public property FdEffects: TMFNode read FFdEffects;
 
Public property AmbientIntensity: Single read GetAmbientIntensity write SetAmbientIntensity;
 
Public property Color: TCastleColorRGB read GetColor write SetColor;
 
Public property Global: Boolean read GetGlobal write SetGlobal;
 
Public property Intensity: Single read GetIntensity write SetIntensity;
 
Public property IsOn: Boolean read GetIsOn write SetIsOn;
 
Public property ShadowVolumes: Boolean read GetShadowVolumes write SetShadowVolumes;
 

Generated by PasDoc 0.15.0.