This component contains the basic tools to combine various VRML/X3D models.
Inline
allows to insert another 3D model into
the current file. Anchor
makes a link that, when clicked,
will jump to the referenced file (similar to HTML <a href="...">).
Supported:
URLs everywhere are supported. file
, http
, and
data
URIs are loaded, as well as special protocols for scripting
languages. Absolute as well as relative URLs are handled, of course.
For network support (http
, https
) in
view3dscene remember to enable first
Preferences -> Download Resources From Network option.
In your own programs using Castle Game Engine:
see the networking manual.
Anchor
(Pascal API: TAnchorNode
)
Files recognized as 3D models are loaded. We jump to viewpoint in a 3D model (loaded or current), if specified. Other documents (URLs not recognized as 3D models) are opened with default WWW browser on your operating system.
TODO: parameter
field is ignored.
Inline
(Pascal API: TInlineNode
),
(VRML 97) InlineLoadControl
Yes, this includes handling of InlineLoadControl
features
to react to load
, url
and generate children
events. For X3D, basic Inline
node already has
load
, url
features and they also work perfectly.
IMPORT / EXPORT
feature is fully supported.
In both XML and classic encodings, of course.
Also supported in VRML 97 (including the ability to import in X3D nodes
exported in VRML 97, and vice versa).
Both importedDEF
(preferred) and
exportedDEF
(obsolete) are supported.
For the XML encoding, note that the X3D XML encoding
spec errorneously talks about exportedDEF
attribute of the <IMPORT>
element.
It should be called importedDEF
,
this is what is used in the schemas (like x3d-3.2.xsd),
looking at changelog
it's clear that the exportedDEF
was deliberately renamed to
importedDEF
.
See my mail on x3d-public, submitted as X3D spec feedback.
IMPORT / EXPORT
declarations allowed inside nodes,
just like ROUTE
s.
This means that IMPORT / EXPORT
do not have to be at the top-level
of the VRML file, they can be specified inside nodes.
While it's clearly allowed in XML encoding
(xsd says so, as far as I understand it,
also example ImportExportSyntax.x3d
uses it), in classic encoding it seems not allowed (grammar rules
suggest that they are only allowed at "statements").
But we allow it also inside nodes (this is consistent,
and makes converting XML->classic reliable).
See my mail on x3d-public, submitted as X3D spec feedback.
TODO: LoadSensor is missing.