Class TAbstractPositionalLightNode
Unit
X3DNodes
Declaration
type TAbstractPositionalLightNode = class(TAbstractPunctualLightNode)
Description
Base class for all positional lights.
Hierarchy
Overview
Methods
Properties
Description
Methods
 |
constructor Create(const AX3DName: string = ''; const ABaseUrl: String = ''); override; |
|
 |
function DistanceNeededForAttenuation: boolean; |
Calculate light intensity drop because of the distance to the light. This follows the equation 1/max( attenuation[0] + ... ) from the VRML/X3D specification, it is the same as OpenGL attenuation.
Since calculating the DistanceToLight for the Attenuation method may be time-consuming in some situations, you can check DistanceNeededForAttenuation first. When the DistanceNeededForAttenuation returns False , then the value of DistanceToLight parameter is ignored (you can pass anything).
The DistanceToLight should be a distance in the light source local coordinate system. TODO: although our renderers currently ignore this: ray-tracer uses global coord system, OpenGL (fixed-function and shader) renderer uses eye coord system (should be equal to global coord system for normal cameras).
|
 |
function CalculateAttenuation(const DistanceToLight: Single): Single; overload; |
|
 |
function HasAttenuation: boolean; |
Is attenuation relevant. When False , you know that Attenuation function always returns 1, so there's no point in using it at all.
|
 |
function HasRadius: boolean; virtual; |
Should the "radius" field be taken into account.
|
 |
procedure UpdateLightInstance(var LightInstance: TLightInstance); override; |
|
 |
function PositionAndDirection: TVector4; override; |
|
 |
procedure CreateNode; override; |
Create node fields and events.
|
 |
class function ClassX3DType: String; override; |
|
Properties
 |
property FdAttenuation: TSFVec3f read FFdAttenuation; |
Internal wrapper for property Attenuation . This wrapper API may change, we advise to access simpler Attenuation instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).
|
 |
property Attenuation: TVector3 read GetAttenuation write SetAttenuation; |
|
 |
property FdLocation: TSFVec3f read FFdLocation; |
Internal wrapper for property Location . This wrapper API may change, we advise to access simpler Location instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).
|
 |
property Location: TVector3 read GetLocation write SetLocation; |
|
 |
property FdRadius: TSFFloat read FFdRadius; |
Internal wrapper for property Radius . This wrapper API may change, we advise to access simpler Radius instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).
|
 |
property Radius: Single read GetRadius write SetRadius; |
|
Generated by PasDoc 0.16.0.