Core component

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 (API reference)

    WorldInfo.title, if set, is displayed by view3dscene on window's caption.

  • UNIT statement (see X3D 3.3 specification) 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:

    • all SFRotation, MFRotation
    • all creaseAngle
    • TextureTransform.rotation
    • Background.skyAngle,groundAngle
    • Arc2D.startAngle,endAngle
    • ArcClose2D.startAngle,endAngle

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