Networking component

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="...">).

See also X3D specification of the Networking component.

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 ROUTEs.

      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.