Castle Game Engine: X3DNodes: Class TTimeDependentNodeHandler

# Class TTimeDependentNodeHandler
Description | Hierarchy | Fields | Methods | Properties
## Unit X3DNodes ## Declaration `type TTimeDependentNodeHandler = 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 TTimeDependentNodeHandler ## Overview ### Fields
| `Node: TX3DNode;`
| `CurrentTime: TX3DTime;`
| `OnCycleInterval: TTimeFunction;`
| `Fdloop: TSFBool;`
| `FdpauseTime: TSFTime;`
| `FdresumeTime: TSFTime;`
| `FdstartTime: TSFTime;`
| `FdstopTime: TSFTime;`
| `Fdenabled: TSFBool;`
| `EventelapsedTime: TSFTimeEvent;`
| `EventisActive: TSFBoolEvent;`
| `EventisPaused: TSFBoolEvent;`
| `EventcycleTime: TSFTimeEvent;`
### Methods
| `function CycleInterval: TFloatTime;`
| `function SetTime(const OldValue, NewValue: TX3DTime; const TimeIncrease: TFloatTime; const ResetTime: boolean): boolean;`
### Properties
| `property IsActive: boolean read FIsActive write SetIsActive;`
| `property IsPaused: boolean read FIsPaused write SetIsPaused;`
| `property ElapsedTime: TFloatTime read FElapsedTime write SetElapsedTime;`
| `property ElapsedTimeInCycle: TFloatTime read FElapsedTimeInCycle;`
## Description ### Fields
| `Node: TX3DNode;`
| `CurrentTime: TX3DTime;`
| `OnCycleInterval: TTimeFunction;`
Cycle interval for this time-dependent node.
| `Fdloop: TSFBool;`
| `FdpauseTime: TSFTime;`
| `FdresumeTime: TSFTime;`
| `FdstartTime: TSFTime;`
| `FdstopTime: TSFTime;`
| `Fdenabled: TSFBool;`
May be `Nil` if node doesn't have an "enabled" field.
| `EventelapsedTime: TSFTimeEvent;`
| `EventisActive: TSFBoolEvent;`
| `EventisPaused: TSFBoolEvent;`
| `EventcycleTime: TSFTimeEvent;`
May be `Nil` if node doesn't have a "cycleTime" event.
### Methods
| `function CycleInterval: TFloatTime;`
| `function SetTime(const OldValue, NewValue: TX3DTime; 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. OldValue, NewValue and TimeIncrease must match, as 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 TVRMScene.ChangedField 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;`
These describe current state of this TimeDependentNode, see X3D specification about "Time" component. Their setting causes appropriate events to be generated (with Time = CurrentTime, so be sure to update it before changing these properties. SetTime automatically does this for you.).
| `property IsPaused: boolean read FIsPaused write SetIsPaused;`
| `property ElapsedTime: TFloatTime read FElapsedTime write SetElapsedTime;`
| `property ElapsedTimeInCycle: TFloatTime read FElapsedTimeInCycle;`
Like ElapsedTime, but spent in the current cycle. When cycleInterval = 0, this is always 0. When cycleInterval <> 0, this is always >= 0 and < cycleInterval .
Generated by PasDoc 0.13.0 on 2015-06-15 04:43:14