no description available, TX3DFileItem description follows
Base class for any item within VRML/X3D file: a node, a field, a route, a prototype etc. We need a common base class for all such things to store PositionInParent.
About ancestry: TX3DFieldOrEvent make use of Assign mechanism and so need to descend from TPersistent. TX3DNode make use of interfaces and so must descend from something like TNonRefCountedInterfacedXxx. These are the only reasons, for now, why this descends from TNonRefCountedInterfacedPersistent.
This does everything that VRML parser should do when parsed VRML route. It looks for given node name (in Names.Nodes, then Names.Imported), then it looks for field/event within this node, and if everything is successfull — sets route properties.
If something goes wrong, OnWarning is generated and route ending is left unset.
These set source/destination of the route in more direct way.
FieldOrEvent is used to set SourceEvent (or DestinationEvent). FieldOrEvent may be the actual event to set, or exposed field containing this event.
You specify explictly NewNode, which is not checked in any way. We don't check whether it exists, whether it contains given FieldOrEvent, etc. — you have to guarantee this yourself. Also, remember that normal SetSource actually look for events inside PrototypeInstanceSourceNode, if exists — if you want this, you have to do this yourself when using these SetXxxDirectly. It is used to set SourceNode (or DestinationNode). Overloaded versions that don't take NewNode parameter just assume that NewNode can be taken from FieldOrEvent.ParentNode.
Clear the memory when the last event passed through this route. Route must remember such thing, to avoid loops in routes. This is following VRML 2.0 / X3D specifications, that explicitly say that only one event per ROUTE per timestamp is allowed.
Use ResetLastEventTime when you really want to reset this memory. In practice, this should be used only by TCastleSceneCore.ResetTime implementation.
Source event properties. Either all three are Nil, or:
SourceEvent is assigned, meaning is self-explanatory.
Note: if you want to get it's exposed field, remember this is available in SourceEvent.ParentExposedField.
SourceNode must also be assigned and this must be the node enclosing SourceEvent. That is, the node that has SourceEvent as one of explicit (on TX3DNode.Events list) or implicit (exposed by some field) event.