Class TAbstractLightNode
Unit
Declaration
type TAbstractLightNode = class(TAbstractChildNode)
Description
Base class for all the light nodes.
Hierarchy
- TObject
- TPersistent
- TX3DFileItem
- TX3DNode
- TAbstractNode
- TAbstractChildNode
- TAbstractLightNode
Overview
Methods
procedure BeforeTraverse(StateStack: TX3DGraphTraverseStateStack); override; |
|
procedure MiddleTraverse(StateStack: TX3DGraphTraverseStateStack); override; |
|
procedure GroupBeforeTraverse(const State: TX3DGraphTraverseState; var WasPointingDeviceSensor: Boolean); override; |
|
constructor Create(const AX3DName: string = ''; const ABaseUrl: String = ''); override; |
|
function CreateLightInstance(State: TX3DGraphTraverseState): TLightInstance; |
|
procedure UpdateLightInstanceState( var LightInstance: TLightInstance; State: TX3DGraphTraverseState); |
|
procedure UpdateLightInstance( var LightInstance: TLightInstance); virtual; |
|
function Scope: TLightScope; virtual; |
|
function Transform: TMatrix4; |
|
function InverseTransform: TMatrix4; |
|
function TransformationChange: TNodeTransformationChange; override; |
|
procedure CreateNode; override; |
|
class function ClassX3DType: String; override; |
|
procedure SetEffects(const Value: array of TEffectNode); |
Properties
property FdAmbientIntensity: TSFFloat read FFdAmbientIntensity; |
|
property AmbientIntensity: Single read GetAmbientIntensity write SetAmbientIntensity; |
|
property FdColor: TSFColor read FFdColor; |
|
property Color: TCastleColorRGB read GetColor write SetColor; |
|
property FdGlobal: TSFBool read FFdGlobal; |
|
property Global: Boolean read GetGlobal write SetGlobal; |
|
property FdIntensity: TSFFloat read FFdIntensity; |
|
property Intensity: Single read GetIntensity write SetIntensity; |
|
property FdOn: TSFBool read FFdOn; |
|
property IsOn: Boolean read GetIsOn write SetIsOn; |
|
property FdEffects: TMFNode read FFdEffects; |
|
property FdShadowVolumes: TSFBool read FFdShadowVolumes; |
|
property ShadowVolumes: Boolean read GetShadowVolumes write SetShadowVolumes; |
Description
Methods
procedure BeforeTraverse(StateStack: TX3DGraphTraverseStateStack); override; |
|
This item has no description. Showing description inherited from TX3DNode.BeforeTraverse. Override these methods to determine what happens when given node is traversed during Traverse call. The main use of this is to operate on TX3DGraphTraverseStateStack. Remember to always call inherited when overriding. In Besides changing StateStack.Top fields, you can do push/pop on the stack. Remember that if you do StateStack.Push in |
procedure MiddleTraverse(StateStack: TX3DGraphTraverseStateStack); override; |
|
This item has no description. |
procedure GroupBeforeTraverse(const State: TX3DGraphTraverseState; var WasPointingDeviceSensor: Boolean); override; |
|
This item has no description. Showing description inherited from TX3DNode.GroupBeforeTraverse. React when this node is processed as an immediate child of a grouping node, within grouping node's BeforeTraverse. |
constructor Create(const AX3DName: string = ''; const ABaseUrl: String = ''); override; |
|
This item has no description. Showing description inherited from TX3DNode.Create. Constructor. Initializes various properties:
|
function CreateLightInstance(State: TX3DGraphTraverseState): TLightInstance; |
|
Create TLightInstance record describing this light node under given State. |
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. |
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. |
function Scope: TLightScope; virtual; |
|
Light scope. Default implementation returns lsGlobal or lsLocal, depending on "global" field value (this follows VRML/X3D >= 2.0 rules). |
function Transform: TMatrix4; |
|
Transformation of this light node, to world space. This accounts for transformation to scene space (TCastleScene) and then to viewport root (TCastleViewport.Items) space. 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. For example shadow maps assume this, see [https://castle-engine.io/x3d_extensions.php#section_ext_shadow_maps . For this to work, we multiply transformation from last traverse (BeforeTraverse collects transformation to space) and then use TCastleTransform.WorldTransform. Call this only when scene is part of some TCastleViewport and thus its world transformation is known. |
function InverseTransform: TMatrix4; |
|
This item has no description. |
function TransformationChange: TNodeTransformationChange; override; |
|
This item has no description. |
procedure CreateNode; override; |
|
Create node fields and events. |
class function ClassX3DType: String; override; |
|
This item has no description. Showing description inherited from TX3DNode.ClassX3DType. Node type name in VRML/X3D, for this class. Normal VRML/X3D node classes should override this to return something non-empty, and then X3DType automatically will return the same value. Empty for classes that don't have a hardcoded VRML/X3D node name, like a special TX3DUnknownNode. Such special classes should override then X3DType to return actual non-empty name there. You usually should call X3DType. The only use of this method is that it works on classes (it's "class function"), without needing at actual instance. |
procedure SetEffects(const Value: array of TEffectNode); |
|
This item has no description. |
Properties
property FdAmbientIntensity: TSFFloat read FFdAmbientIntensity; |
|
Internal wrapper for property |
property AmbientIntensity: Single read GetAmbientIntensity write SetAmbientIntensity; |
|
This item has no description. |
property FdColor: TSFColor read FFdColor; |
|
Internal wrapper for property |
property Color: TCastleColorRGB read GetColor write SetColor; |
|
This item has no description. |
property FdGlobal: TSFBool read FFdGlobal; |
|
Internal wrapper for property |
property Global: Boolean read GetGlobal write SetGlobal; |
|
This item has no description. |
property FdIntensity: TSFFloat read FFdIntensity; |
|
Internal wrapper for property |
property Intensity: Single read GetIntensity write SetIntensity; |
|
This item has no description. |
property FdOn: TSFBool read FFdOn; |
|
Internal wrapper for property |
property IsOn: Boolean read GetIsOn write SetIsOn; |
|
This item has no description. |
property FdEffects: TMFNode read FFdEffects; |
|
Internal wrapper for property |
property FdShadowVolumes: TSFBool read FFdShadowVolumes; |
|
Internal wrapper for property |
property ShadowVolumes: Boolean read GetShadowVolumes write SetShadowVolumes; |
|
This item has no description. |
Generated by PasDoc 0.16.0-snapshot.