Class TAbstractSequencerNode

DescriptionHierarchyFieldsMethodsProperties

Unit

Declaration

type TAbstractSequencerNode = class(TAbstractChildNode)

Description

no description available, TAbstractChildNode description follows
no description available, TAbstractNode description follows

Base X3D node.

Almost all X3D nodes inherit from this. (Exception: X3DMetadataObject. So you cannot have metadata of metadata of...)

Hierarchy

Overview

Methods

Protected function KeyRange(const Fraction: Single): Integer;
Protected procedure SetCurrentKeyRange(const Value: Integer; const Time: TX3DTime);
Protected procedure SendValueChanged(const ValueIndex: Integer; const Time: TX3DTime); virtual; abstract;
Public procedure CreateNode; override;

Properties

Protected property CurrentKeyRange: Integer read FCurrentKeyRange;
Public property EventNext: TSFBoolEvent read FEventNext;
Public property EventPrevious: TSFBoolEvent read FEventPrevious;
Public property EventSet_fraction: TSFFloatEvent read FEventSet_fraction;
Public property FdKey: TMFFloat read FFdKey;
Public property FdForceContinousValue_Changed: TSFBool read FFdForceContinousValue_Changed;

Description

Methods

Protected function KeyRange(const Fraction: Single): Integer;

Analogous to TAbstractInterpolatorNode.KeyRange.

Protected procedure SetCurrentKeyRange(const Value: Integer; const Time: TX3DTime);
 
Protected procedure SendValueChanged(const ValueIndex: Integer; const Time: TX3DTime); virtual; abstract;

Override this is descendants to actually send value_changed event witk keyValue[ValueIndex]. You are guaranteed that ValueIndex is between 0 and FdKey.Count - 1, but you have to check yourself whether it's also between 0 and FdKeyValue.Count - 1 (although spec requires that key and keyValue fields have the same size, we have to protect against invalid files).

Public procedure CreateNode; override;
 

Properties

Protected property CurrentKeyRange: Integer read FCurrentKeyRange;

In what key range we currently are. In other words, which keyValue was last send (passed to SendValueChanged).

We have to keep track of this information, per each node, as specification clearly says that value_changed should not be generated continously on each set_fraction, but only when value actually changes. (Although we make an exception for this with our extension FdForceContinousValue_Changed).

Valid values here are between -1 and FdKey.Count - 1. Values between 0 and FdKey.Count - 1 indicate which keyValue was last send. Value -1 means that SendValueChanged was not yet called, this is the default value (after construction).

Public property EventNext: TSFBoolEvent read FEventNext;
 
Public property EventPrevious: TSFBoolEvent read FEventPrevious;
 
Public property EventSet_fraction: TSFFloatEvent read FEventSet_fraction;
 
Public property FdKey: TMFFloat read FFdKey;
 
Public property FdForceContinousValue_Changed: TSFBool read FFdForceContinousValue_Changed;