This component defines the basic functionality of VRML/X3D. Some basic abstract nodes, also nodes to provide information (metadata) about the model.
See also X3D specification of the Core component.
We support everything from this component. Notes:
WorldInfo.title, if set, is displayed by
view3dscene on window's caption.
UNIT statement (see X3D 3.3 specification about UNIT) is handled. In both classic and XML encoding. Angle and length conversion is actually done.
Working examples of using it are inside
demo_models/x3d/units* in our VRML/X3D demo models. In short, you can declare them like this in X3D XML encoding:
<X3D version="3.3" profile="..." ... > <head> <unit category="angle" name="degrees" conversionFactor="0.017453293" /> <!-- pi / 180 --> <unit category="length" name="km" conversionFactor="1000" /> </head>
Or in X3D classic encoding:
#X3D V3.3 utf8 PROFILE .... UNIT angle degrees 0.017453293 # pi / 180 UNIT length km 1000
Above example snippet shows how you can express angles in degrees. This affects interpretation of these fields:
Length conversion is also possible. This is less useful IMHO — you can as well just wrap your model in a Transform with some scale. Actually, that's exactly our implementation of "UNIT length" for now — we simply add appropriate scale (calculated looking at length unit of inlined model (inner), and looking at length unit of inlining model (outer)).
We support "metadata" nodes for passing additional, custom data in the X3D graph.
Our engine does not do anything with this data. You can use these nodes in your own applications to "carry" some information between the software that generates your X3D files to your final application.
Copyright Michalis Kamburelis and other Castle Game Engine developers.
Thank you to Paweł Wojciechowicz from Cat-astrophe Games for various graphics.
This documentation is also open-source and you can even redistribute it on open-source terms.