#X3D V3.3 utf8 PROFILE Immersive # [X3D] version=3.3 # [X3D] noNamespaceSchemaLocation=https://www.web3d.org/specifications/x3d-3.3.xsd # X3D-to-ClassicVRML XSL translation autogenerated by X3dToClassicVrmlEncoding.xslt and X3dToVrml97.xslt # https://www.web3d.org/x3d/content/X3dToClassicVrmlEncoding.xslt # https://www.web3d.org/x3d/content/X3dToVrml97.xslt # Transformation using XSLT processor: Saxonica # head META "title" "CoordinateAxes.x3d" META "creator" "Don Brutzman, Byounghyun Yoo" META "created" "14 July 2000" META "modified" "20 October 2019" META "description" "X Y Z axis arrows and labels in X3D coordinate system. See CoordinateAxesExample for use as an Inline coordinate-system reference frame." META "reference" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.x3d" META "reference" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter03Grouping/CoordinateAxesNSEW.x3d" META "reference" "https://savage.nps.edu/Savage/Tools/Authoring/CoordinateAxes.x3d" META "reference" "https://savage.nps.edu/Savage/Tools/Authoring/CoordinateAxesNSEW.x3d" META "identifier" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.x3d" META "generator" "X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit" META "license" "../license.html" # [Scene] ========== ========== ========== WorldInfo { title "CoordinateAxes.x3d" } DEF DoNotCollideWithVisualizationWidget Collision { children [ # Invoke CoordinateAxes in other scenes as an Inline child inside a scaling Transform node, at the topmost level of the scene graph. # This NavigationInfo allows examine mode and will be overridden by any parent scene. # Each arrow goes from +1m to -1m to allow linear scaling to fit a scene # Note each label rotates about the scene's vertical Y axis for consistency, enabling local orientation by user Group { children [ # Vertical Y arrow and label DEF ArrowGreen Group { children [ Shape { geometry DEF ArrowCylinder Cylinder { radius .025 top FALSE } appearance DEF Green Appearance { material Material { diffuseColor .1 .6 .1 emissiveColor .05 .2 .05 } } } Transform { translation 0 1 0 children [ Shape { geometry DEF ArrowCone Cone { bottomRadius .05 height .1 } appearance USE Green } ] } ] } Transform { translation 0 1.08 0 children [ Billboard { axisOfRotation 1 0 0 children [ Shape { appearance DEF LABEL_APPEARANCE Appearance { material Material { diffuseColor 1 1 .3 emissiveColor .33 .33 .1 } } geometry Text { string [ "Y" ] fontStyle DEF LABEL_FONT FontStyle { family [ "SANS" ] justify [ "MIDDLE" "MIDDLE" ] size .2 } } } ] } ] } ] } Transform { rotation 0 0 1 -1.57079 children [ # Horizontal X arrow and label Group { children [ DEF ArrowRed Group { children [ Shape { geometry USE ArrowCylinder appearance DEF Red Appearance { material Material { diffuseColor .7 .1 .1 emissiveColor .33 0 0 } } } Transform { translation 0 1 0 children [ Shape { geometry USE ArrowCone appearance USE Red } ] } ] } Transform { rotation 0 0 1 1.57079 translation .072 1.1 0 children [ # note label rotated back to original coordinate frame Billboard { axisOfRotation 1 0 0 children [ Shape { appearance USE LABEL_APPEARANCE geometry Text { string [ "X" ] fontStyle USE LABEL_FONT } } ] } ] } ] } ] } Transform { rotation 1 0 0 1.57079 children [ # Perpendicular Z arrow and label, note right-hand rule Group { children [ DEF ArrowBlue Group { children [ Shape { geometry USE ArrowCylinder appearance DEF Blue Appearance { material Material { diffuseColor .3 .3 1 emissiveColor .1 .1 .33 } } } Transform { translation 0 1 0 children [ Shape { geometry USE ArrowCone appearance USE Blue } ] } ] } Transform { rotation 1 0 0 -1.57079 translation 0 1.1 .072 children [ # note label rotated back to original coordinate frame Billboard { axisOfRotation 1 0 0 children [ Shape { appearance USE LABEL_APPEARANCE geometry Text { string [ "Z" ] fontStyle USE LABEL_FONT } } ] } ] } ] } ] } ] }