Class TTimeSensorNode
Unit
Declaration
type TTimeSensorNode = class(TAbstractTimeDependentNode)
Description
Generate events as time passes.
Hierarchy
- TObject
- TPersistent
- TX3DFileItem
- TX3DNode
- TAbstractNode
- TAbstractChildNode
- TAbstractTimeDependentNode
- TTimeSensorNode
Overview
Methods
![]() |
constructor Create(const AX3DName: String = ''; const ABaseUrl: String = ''); override; |
![]() |
procedure FakeTime(const TimeInAnimation: TFloatTime; const ALoop, AFractionIncreasing: boolean; const PartialSend: TPartialSend = nil); overload; |
![]() |
procedure FakeTime(const TimeInAnimation: TFloatTime; const ALoop, AFractionIncreasing: boolean; const TimeOfEvents: TX3DTime; const PartialSend: TPartialSend = nil); overload; |
![]() |
procedure Start(const ALoop: Boolean; const AFractionIncreasing: Boolean = true; const InitialTime: TFloatTime = 0); |
![]() |
procedure Stop; |
![]() |
procedure CreateNode; override; |
![]() |
class function ClassX3DType: string; override; |
Properties
![]() |
property FdCycleInterval: TSFTime read FFdCycleInterval; |
![]() |
property CycleInterval: TFloatTime read GetCycleInterval write SetCycleInterval; |
![]() |
property EventCycleTime: TSFTimeEvent read FEventCycleTime; |
![]() |
property EventFraction_changed: TSFFloatEvent read FEventFraction_changed; |
![]() |
property EventTime: TSFTimeEvent read FEventTime; |
![]() |
property FdEnabled: TSFBool read FFdEnabled; |
![]() |
property Enabled: Boolean read GetEnabled write SetEnabled; |
![]() |
property FdFractionIncreasing: TSFBool read FFdFractionIncreasing; |
![]() |
property FractionIncreasing: Boolean read GetFractionIncreasing write SetFractionIncreasing; |
![]() |
property FdDetectAffectedFields: TSFBool read FFdDetectAffectedFields; |
![]() |
property DetectAffectedFields: Boolean read GetDetectAffectedFields write SetDetectAffectedFields; |
Description
Methods
![]() |
constructor Create(const AX3DName: String = ''; const ABaseUrl: String = ''); override; |
![]() |
procedure FakeTime(const TimeInAnimation: TFloatTime; const ALoop, AFractionIncreasing: boolean; const PartialSend: TPartialSend = nil); overload; |
Send TimeSensor output events, without actually activating the TimeSensor. This is useful in situations when you want the X3D scene state to reflect given time, but you do not want to activate sensor and generally you do not want to initialize anything that would continue animating on it's own. Note: We ignore TimeSensor.loop (FdLoop) field, instead we follow our own ALoop parameter. We also ignore TimeSensor.fractionIncreasing field, instead we follow our own AFractionIncreasing parameter. We also ignore TimeSensor.enabled field, assuming that you always want to behave like it's enabled (in particular, this makes TCastleSceneCore.ForceAnimationPose always working, even if TCastleSceneCore.PlayAnimation set enabled = false on previously-stopped animation). We take into account TimeSensor.cycleInterval (FdCycleInterval), just like during normal TimeSensor behavior. We send out isActive:=true, fraction_changed, elapsedTime and time X3D output events, and they should drive the rest of animation. About the TimeOfEvents parameter: In X3D, if you send a message (which is what happens when various X3D nodes communicate, e.g. TimeSensors send messages to interpolators) the message will be ignored if it already passed through the same route (TX3DRoute) with the timestamp >= than current. This is a simple mechanism to avoid route loops in X3D. It means you need to use increasing time each time you initiate an X3D event. The implementation of FakeTime without In general case, when using FakeTime together with TCastleScene that has active events (TCastleSceneCore.ProcessEvents = |
![]() |
procedure FakeTime(const TimeInAnimation: TFloatTime; const ALoop, AFractionIncreasing: boolean; const TimeOfEvents: TX3DTime; const PartialSend: TPartialSend = nil); overload; |
![]() |
procedure Start(const ALoop: Boolean; const AFractionIncreasing: Boolean = true; const InitialTime: TFloatTime = 0); |
Start or stop the time sensor right now, by setting the fields of this time sensor. Usually you should prefer using the TCastleSceneCore.PlayAnimation or TCastleSceneCore.StopAnimation instead of these methods. The scene methods allow to play the animation with lots of features, and are more comfortable to use (e.g. you do not need to find the TTimeSensorNode reference). Using these methods directly is useful to play multiple animations simultaneously. |
![]() |
procedure Stop; |
![]() |
procedure CreateNode; override; |
![]() |
class function ClassX3DType: string; override; |
Properties
![]() |
property FdCycleInterval: TSFTime read FFdCycleInterval; |
Internal wrapper for property CycleInterval. This wrapper API may change, we advise to access simpler CycleInterval instead. |
![]() |
property CycleInterval: TFloatTime read GetCycleInterval write SetCycleInterval; |
![]() |
property EventCycleTime: TSFTimeEvent read FEventCycleTime; |
![]() |
property EventFraction_changed: TSFFloatEvent read FEventFraction_changed; |
![]() |
property EventTime: TSFTimeEvent read FEventTime; |
![]() |
property FdEnabled: TSFBool read FFdEnabled; |
Internal wrapper for property Enabled. This wrapper API may change, we advise to access simpler Enabled instead. |
![]() |
property Enabled: Boolean read GetEnabled write SetEnabled; |
![]() |
property FdFractionIncreasing: TSFBool read FFdFractionIncreasing; |
Internal wrapper for property FractionIncreasing. This wrapper API may change, we advise to access simpler FractionIncreasing instead. |
![]() |
property FractionIncreasing: Boolean read GetFractionIncreasing write SetFractionIncreasing; |
![]() |
property FdDetectAffectedFields: TSFBool read FFdDetectAffectedFields; |
Internal wrapper for property DetectAffectedFields. This wrapper API may change, we advise to access simpler DetectAffectedFields instead. |
![]() |
property DetectAffectedFields: Boolean read GetDetectAffectedFields write SetDetectAffectedFields; |
Generated by PasDoc 0.16.0.