Class TX3DPrototypeBase

Unit

Declaration

type TX3DPrototypeBase = class(TX3DFileItem)

Description

Common class to represent X3D external prototypes (referencing another file) or non-external prototypes (describing how to expand the prototype into other nodes).

Source: scene/x3d/x3dnodes_prototypes.inc (line 180).

Hierarchy

Show Additional Members:

Overview

Methods

Public procedure SaveToStream(Writer: TX3DWriter); virtual; abstract;
Public function SaveToXml: TSaveToXmlMethod; virtual;
Public constructor Create;
Public destructor Destroy; override;
Public procedure Parse(Lexer: TX3DLexer; Reader: TX3DReaderNames); virtual; abstract;
Public procedure ParseXML(Element: TDOMElement; Reader: TX3DReaderNames); virtual; abstract;

Properties

Public property PositionInParent: Integer read FPositionInParent write FPositionInParent default -1;
Public property X3DName: String read FX3DName write FX3DName;
Public property Name: String read FX3DName write FX3DName; deprecated 'use X3DName';
Public property InterfaceDeclarations: TX3DInterfaceDeclarationList read FInterfaceDeclarations;
Public property BaseUrl: String read FBaseUrl write FBaseUrl;

Description

Methods

Public procedure SaveToStream(Writer: TX3DWriter); virtual; abstract;

This item is declared in ancestor TX3DFileItem.

Save to stream.

Source: scene/x3d/castlefields_x3dfileitem.inc (line 75).

Public function SaveToXml: TSaveToXmlMethod; virtual;

This item is declared in ancestor TX3DFileItem.

How is this saved to X3D XML encoding. This determines when SaveToStream is called. It also cooperates with some SaveToStream implementations, guiding how the item is actually saved. By default it is sxChildElement.

Source: scene/x3d/castlefields_x3dfileitem.inc (line 81).

Public constructor Create;

This item has no description.

Source: scene/x3d/x3dnodes_prototypes.inc (line 207).

Public destructor Destroy; override;

This item has no description.

Source: scene/x3d/x3dnodes_prototypes.inc (line 208).

Public procedure Parse(Lexer: TX3DLexer; Reader: TX3DReaderNames); virtual; abstract;

Parse prototype, and add it to Names.Prototypes. Adds to Names by Names.Prototypes.Bind(Self).

Source: scene/x3d/x3dnodes_prototypes.inc (line 219).

Public procedure ParseXML(Element: TDOMElement; Reader: TX3DReaderNames); virtual; abstract;

This item has no description.

Source: scene/x3d/x3dnodes_prototypes.inc (line 220).

Properties

Public property PositionInParent: Integer read FPositionInParent write FPositionInParent default -1;

This item is declared in ancestor TX3DFileItem.

Position of this item within parent VRML/X3D node, used for saving the VRML/X3D graph to file. Default value -1 means "undefined".

For normal usage and processing of VRML graph, this is totally not needed. This position doesn't dictate actual meaning of VRML graph. If you're looking to change order of nodes, you probably want to rather look at something like ReplaceItems within TMFNode or such.

This field is purely a hint when encoding VRML file how to order VRML items (nodes, fields, routes, protos) within parent node or the VRML file. Reason: VRML allows non-unique node names. Each DEF XXX overrides all previous ("previous" in lexical sense, i.e. normal order of tokens in the file) DEF XXX with the same XXX, thus hiding previous node name "XXX". This means that when saving VRML file we have to be very careful about the order of items, such that e.g. all routes are specified when appropriate node names are bound.

This is a relative position, relative to other PositionInParent value of other TX3DFileItem items. So it's not necessary to keep all PositionInParent different or successive within some parent. When saving, we will sort everything according to PositionInParent.

See e.g. ../../../demo_models/x3d/tricky_def_use.x3dv for tests of some tricky layout. When reading such file we have to record PositionInParent to be able to save such file correctly.

Source: scene/x3d/castlefields_x3dfileitem.inc (line 71).

Public property X3DName: String read FX3DName write FX3DName;

This item has no description.

Source: scene/x3d/x3dnodes_prototypes.inc (line 209).

Public property Name: String read FX3DName write FX3DName; deprecated 'use X3DName';

Warning: this symbol is deprecated: use X3DName

This item has no description.

Source: scene/x3d/x3dnodes_prototypes.inc (line 211).

Public property InterfaceDeclarations: TX3DInterfaceDeclarationList read FInterfaceDeclarations;

This item has no description.

Source: scene/x3d/x3dnodes_prototypes.inc (line 213).

Public property BaseUrl: String read FBaseUrl write FBaseUrl;

The base URL path used to resolve urls inside. For now, used by EXTERNPROTO urls. See TX3DNode.BaseUrl for more comments.

Source: scene/x3d/x3dnodes_prototypes.inc (line 226).


Generated by PasDoc 0.17.0.snapshot.