Class TAbstractDirectionalLightNode

Unit

Declaration

type TAbstractDirectionalLightNode = class(TAbstractPunctualLightNode)

Description

Base class for all directional lights.

Hierarchy

Overview

Methods

Protected function GetProjectionLocationLocal: TVector3; override;
Protected procedure SetProjectionLocationLocal(const Value: TVector3); override;
Protected function GetProjectionDirectionLocal: TVector3; override;
Protected procedure SetProjectionDirectionLocal(const Value: TVector3); override;
Public constructor Create(const AX3DName: string = ''; const ABaseUrl: String = ''); override;
Public procedure UpdateLightInstance(var LightInstance: TLightInstance); override;
Public function ProjectionMatrix: TMatrix4; override;
Public function ModelviewMatrix: TMatrix4; override;
Public function ModelviewRotationMatrix: TMatrix4; override;
Public procedure Box3DDistances(const Box: TBox3D; out MinDistance, MaxDistance: Single); override;
Public function PositionAndDirection: TVector4; override;
Public procedure CreateNode; override;
Public class function ClassX3DType: String; override;

Properties

Public property FdDirection: TSFVec3f read FFdDirection;
Public property Direction: TVector3 read GetDirection write SetDirection;
Public property FdProjectionRectangle: TSFVec4f read FFdProjectionRectangle;
Public property ProjectionRectangle: TVector4 read GetProjectionRectangle write SetProjectionRectangle;
Public property FdProjectionLocation: TSFVec3f read FFdProjectionLocation;
Public property ProjectionLocation: TVector3 read GetProjectionLocation write SetProjectionLocation;

Description

Methods

Protected function GetProjectionLocationLocal: TVector3; override;

This item has no description.

Protected procedure SetProjectionLocationLocal(const Value: TVector3); override;

This item has no description.

Protected function GetProjectionDirectionLocal: TVector3; override;

This item has no description.

Protected procedure SetProjectionDirectionLocal(const Value: TVector3); override;

This item has no description.

Public constructor Create(const AX3DName: string = ''; const ABaseUrl: String = ''); override;

This item has no description. Showing description inherited from TX3DNode.Create.

Constructor. Initializes various properties:

  • Name, BaseUrl are initialized from given parameters.

  • The Fields, Events lists are filled in every descendant, to have all the fields/events defined by the specification.

  • DefaultContainerField, and other node-specific stuff, is filled in descendants. This is actually implemented in CreateNode, that is called at the end of this constructor.

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

This item has no description. Showing description inherited from TAbstractLightNode.UpdateLightInstance.

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

Public function ProjectionMatrix: TMatrix4; override;

This item has no description. Showing description inherited from TAbstractPunctualLightNode.ProjectionMatrix.

Matrices for rendering shadow map from this light. Identity in this class, override for subclasses able to do shadow mapping.

Public function ModelviewMatrix: TMatrix4; override;

This item has no description.

Public function ModelviewRotationMatrix: TMatrix4; override;

This item has no description.

Public procedure Box3DDistances(const Box: TBox3D; out MinDistance, MaxDistance: Single); override;

This item has no description. Showing description inherited from TAbstractPunctualLightNode.Box3DDistances.

Calculate distances between the given Box and this light source. This is intended to capture the depth distances where the box resides, useful for calculating e.g. depth ranges to capture in the shadow maps. Depending on light source type, various distance measures may be used, appropriate to light sources projection.

Always MinDistance <= MaxDistance. They may be negative when we measure along the light's direction.

Public function PositionAndDirection: TVector4; override;

This item has no description. Showing description inherited from TAbstractPunctualLightNode.PositionAndDirection.

Position and direction expressed in homogeneous coordinates. For positional lights, the last component is always 1. For directional lights, the last component is always 0.

Note that this is expressed in the local light node coordinate system.

Public procedure CreateNode; override;

Create node fields and events.

Public 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.

Properties

Public property FdDirection: TSFVec3f read FFdDirection;

Internal wrapper for property Direction. This wrapper API may change, we advise to access simpler Direction instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).

Public property Direction: TVector3 read GetDirection write SetDirection;

This item has no description.

Public property FdProjectionRectangle: TSFVec4f read FFdProjectionRectangle;

Internal wrapper for property ProjectionRectangle. This wrapper API may change, we advise to access simpler ProjectionRectangle instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).

Public property ProjectionRectangle: TVector4 read GetProjectionRectangle write SetProjectionRectangle;

This item has no description.

Public property FdProjectionLocation: TSFVec3f read FFdProjectionLocation;

Internal wrapper for property ProjectionLocation. This wrapper API may change, we advise to access simpler ProjectionLocation instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).

Public property ProjectionLocation: TVector3 read GetProjectionLocation write SetProjectionLocation;

This item has no description.


Generated by PasDoc 0.16.0-snapshot.