Class TX3DNodeNames
Unit
X3DNodes
Declaration
type TX3DNodeNames = class(specialize TGenericStructList<TX3DNodeNameRec>)
Description
List to track node names while parsing VRML/X3D file.
Hierarchy
Overview
Methods
 |
constructor Create(const AAutoRemove: boolean); |
 |
destructor Destroy; override; |
 |
procedure Bind(Node: TX3DNode; const NodeFinished: boolean); overload; |
 |
procedure Bind(Node: TX3DNode; const NodeFinished: boolean; const BindToName: string); overload; |
 |
function Bound(const Name: string; out NodeFinished: boolean): TX3DNode; |
 |
function Bound(Node: TX3DNode): boolean; |
Properties
Description
Methods
 |
constructor Create(const AAutoRemove: boolean); |
|
 |
destructor Destroy; override; |
|
 |
procedure Bind(Node: TX3DNode; const NodeFinished: boolean); overload; |
Associate given node with it's own name.
If not NodeFinished, then we understand that we're parsing / saving the node's contents now. If NodeFinished, then we know the node contents are fully parsed / saved now. This information helps us to detect cycles in VRML/X3D DEF/USE graph. For now, we just disallow such cycles. Still, we allow ROUTEs from inside the node, so calling with NodeFinished = false is still useful for parsing.
|
 |
procedure Bind(Node: TX3DNode; const NodeFinished: boolean; const BindToName: string); overload; |
|
 |
function Bound(const Name: string; out NodeFinished: boolean): TX3DNode; |
Find node bound to given name. Nil if none.
|
 |
function Bound(Node: TX3DNode): boolean; |
Check is Node bound in the current namespace. False means that node is not within this namespace, possibly it's name was hidden by other node with the same name.
Doesn't check is Node bound to it's name (Node.NodeName) or something else. So this assumes that node can only be bound (if at all) only to it's own name, which is true during parsing (when nothing can change in the middle of parsing).
|
Properties
 |
property AutoRemove: boolean read FAutoRemove; |
If True (determined at construction time), then destroyed nodes will be automatically removed from this list. This allows you to safely destroy node instances during this objects lifetime, without worrying that some dangling pointers remain on this list.
Internally, this is done by registering itself for AnyNodeDestructionNotifications.
|
Generated by PasDoc 0.14.0.
|