Class TAbstractPunctualLightNode

Unit

Declaration

type TAbstractPunctualLightNode = class(TAbstractLightNode)

Description

Base class for all "punctual" light nodes (that have a position and/or direction).

Hierarchy

Overview

Methods

Protected function GetProjectionLocationLocal: TVector3; virtual;
Protected procedure SetProjectionLocationLocal(const Value: TVector3); virtual;
Protected function GetProjectionDirectionLocal: TVector3; virtual;
Protected procedure SetProjectionDirectionLocal(const Value: TVector3); virtual;
Public function ProjectionMatrix: TMatrix4; virtual;
Public function ModelviewMatrix: TMatrix4; virtual;
Public function ModelviewRotationMatrix: TMatrix4; virtual;
Public function GetProjectorMatrix: TMatrix4;
Public procedure GetView(out Pos, Dir, Side, Up: TVector3); overload;
Public procedure GetView(out View: TViewVectors); overload;
Public procedure Box3DDistances(const Box: TBox3D; out MinDistance, MaxDistance: Single); virtual; abstract;
Public function PositionAndDirection: TVector4; virtual; abstract;
Public procedure CreateNode; override;
Public class function ClassX3DType: String; override;

Properties

Public property ProjectionLocationLocal: TVector3 read GetProjectionLocationLocal write SetProjectionLocationLocal;
Public property ProjectionDirectionLocal: TVector3 read GetProjectionDirectionLocal write SetProjectionDirectionLocal;
Public property ProjectionWorldLocation: TVector3 read GetProjectionWorldLocation write SetProjectionWorldLocation;
Public property ProjectionWorldDirection: TVector3 read GetProjectionWorldDirection write SetProjectionWorldDirection;
Public property FdShadows: TSFBool read FFdShadows;
Public property Shadows: Boolean read GetShadows write SetShadows;
Public property FdShadowVolumesMain: TSFBool read FFdShadowVolumesMain;
Public property ShadowVolumesMain: Boolean read GetShadowVolumesMain write SetShadowVolumesMain;
Public property FdShowProxyGeometry: TSFBool read FFdShowProxyGeometry;
Public property ShowProxyGeometry: Boolean read GetShowProxyGeometry write SetShowProxyGeometry;
Public property FdProjectionNear: TSFFloat read FFdProjectionNear;
Public property ProjectionNear: Single read GetProjectionNear write SetProjectionNear;
Public property FdProjectionFar: TSFFloat read FFdProjectionFar;
Public property ProjectionFar: Single read GetProjectionFar write SetProjectionFar;
Public property FdUp: TSFVec3f read FFdUp;
Public property Up: TVector3 read GetUp write SetUp;
Public property FdDefaultShadowMap: TSFNode read FFdDefaultShadowMap;
Public property DefaultShadowMap: TGeneratedShadowMapNode read GetDefaultShadowMap write SetDefaultShadowMap;

Description

Methods

Protected function GetProjectionLocationLocal: TVector3; virtual;

This item has no description.

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

This item has no description.

Protected function GetProjectionDirectionLocal: TVector3; virtual;

This item has no description.

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

This item has no description.

Public function ProjectionMatrix: TMatrix4; virtual;

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

Public function ModelviewMatrix: TMatrix4; virtual;

This item has no description.

Public function ModelviewRotationMatrix: TMatrix4; virtual;

This item has no description.

Public function GetProjectorMatrix: TMatrix4;

This item has no description.

Public procedure GetView(out Pos, Dir, Side, Up: TVector3); overload;

This item has no description.

Public procedure GetView(out View: TViewVectors); overload;

This item has no description.

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

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.

Exceptions raised
EBox3DEmpty
When used with an empty box.
Public function PositionAndDirection: TVector4; virtual; abstract;

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 ProjectionLocationLocal: TVector3 read GetProjectionLocationLocal write SetProjectionLocationLocal;

Light location, direction and up vectors, for projection. Useful when you think of lights as cameras (for shadow maps).

ProjectionDirectionLocal will always be exactly zero for a PointLight (that doesn't have a direction).

The GetView returns vectors in global (scene) space. It guarantees that Direction, Side and Up are normalized and orthogonal to each other.

Public property ProjectionDirectionLocal: TVector3 read GetProjectionDirectionLocal write SetProjectionDirectionLocal;

This item has no description.

Public property ProjectionWorldLocation: TVector3 read GetProjectionWorldLocation write SetProjectionWorldLocation;

This item has no description.

Public property ProjectionWorldDirection: TVector3 read GetProjectionWorldDirection write SetProjectionWorldDirection;

This item has no description.

Public property FdShadows: TSFBool read FFdShadows;

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

Public property Shadows: Boolean read GetShadows write SetShadows;

This item has no description.

Public property FdShadowVolumesMain: TSFBool read FFdShadowVolumesMain;

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

Public property ShadowVolumesMain: Boolean read GetShadowVolumesMain write SetShadowVolumesMain;

Does this light determine shadows (when using shadow volumes). Ignored if not ShadowVolumes.

Public property FdShowProxyGeometry: TSFBool read FFdShowProxyGeometry;

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

Public property ShowProxyGeometry: Boolean read GetShowProxyGeometry write SetShowProxyGeometry;

InstantReality extension, see [http://instant-reality.com/documentation/nodetype/Light/].

Public property FdProjectionNear: TSFFloat read FFdProjectionNear;

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

Public property ProjectionNear: Single read GetProjectionNear write SetProjectionNear;

Projection near, for shadow maps. See https://castle-engine.io/x3d_extensions_shadow_maps.php

Public property FdProjectionFar: TSFFloat read FFdProjectionFar;

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

Public property ProjectionFar: Single read GetProjectionFar write SetProjectionFar;

Projection far, for shadow maps. See https://castle-engine.io/x3d_extensions_shadow_maps.php

Public property FdUp: TSFVec3f read FFdUp;

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

Public property Up: TVector3 read GetUp write SetUp;

View up vector, for shadow maps. See https://castle-engine.io/x3d_extensions_shadow_maps.php

Public property FdDefaultShadowMap: TSFNode read FFdDefaultShadowMap;

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

Public property DefaultShadowMap: TGeneratedShadowMapNode read GetDefaultShadowMap write SetDefaultShadowMap;

Shadow map used by this light source. See https://castle-engine.io/x3d_extensions_shadow_maps.php


Generated by PasDoc 0.16.0-snapshot.