Class TInternalTimeDependentHandler
Unit
X3DNodes
Declaration
type TInternalTimeDependentHandler = class(TObject)
Description
Common helper for all X3DTimeDependentNode descendants. This includes things descending from interface IAbstractTimeDependentNode, in particular (but not only) descending from class TAbstractTimeDependentNode.
It would be cleaner to have Node declared as IAbstractTimeDependentNode, and have IAbstractTimeDependentNode contain common fields. Then a lot of fields of this class would not be needed, as they would be accessible as IAbstractTimeDependentNode fields. TODO: maybe in the future.
Hierarchy
- TObject
- TInternalTimeDependentHandler
Overview
Fields
Methods
Properties
Description
Fields
 |
FdEnabled: TSFBool; |
May be Nil if node doesn't have an "enabled" field.
|
 |
EventCycleTime: TSFTimeEvent; |
May be Nil if node doesn't have a "cycleTime" event.
|
Methods
 |
function CycleInterval: TFloatTime; |
Cycle interval for this time-dependent node.
|
 |
function SetTime(const NewTime: TFloatTime; const TimeIncrease: TFloatTime; const ResetTime: boolean): boolean; |
Call this when world time increases. This is the most important method of this class, that basically implements time-dependent nodes operations.
NewTime and TimeIncrease are produced by TCastleSceneCore.SetTime and friends.
When ResetTime = true, this means that "TimeIncrease value is unknown" (you must pass TimeIncrease = 0 in this case). This can happen only when were called by ResetTime.
In other circumstances, TimeIncrease must be >= 0. (It's allowed to pass TimeIncrease = 0 and ResetTime = false, this doesn't advance the clock, but is a useful trick to force some update, see HandleChangeTimeStopStart in TCastleSceneCore.InternalChangedField implementation.)
References: see X3D specification "Time" component, 8.2 ("concepts") for logic behind all those start/stop/pause/resumeTime, cycleInterval, loop properties.
Returns
If some state of time-dependent node changed. |
Properties
 |
property IsActive: boolean read FIsActive write SetIsActive; |
Is the sensor enabled and running (ignoring whether it is paused). Changing this automatically causes appropriate events to be generated.
|
 |
property IsPaused: boolean read FIsPaused write SetIsPaused; |
Is the sensor paused. Changing this automatically causes appropriate events to be generated.
|
 |
property ElapsedTime: TFloatTime read FElapsedTime write SetElapsedTime; |
Time in seconds since the sensor was activated and running, not counting any time while in pause state. Changing this automatically causes appropriate events to be generated.
|
Generated by PasDoc 0.15.0.
|