<!-- Invoke CoordinateAxesVrml in other scenes as an Inline child inside a scaling Transform node, at the topmost level of the scene graph. -->
<!-- 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>
<!-- Vertical Y arrow and label -->
<
Group DEF='
ArrowGreen'>
<
Shape>
<
Cylinder DEF='
ArrowCylinder'
bottom='
false'
radius='
.025'
top='
false'/>
<
Appearance DEF='
Green'>
<Material diffuseColor='.1 .6 .1' emissiveColor='.05 .2 .05'/>
</
Appearance>
</
Shape>
<
Transform translation='
0 1 0'>
<
Shape>
<
Cone DEF='
ArrowCone'
bottomRadius='
.05'
height='
.1'/>
<
Appearance USE='
Green'/>
</
Shape>
</
Transform>
<
Transform rotation='
1 0 0 3.1416'
translation='
0 -1 0'>
</
Transform>
</
Group>
<
Transform translation='
0 1.08 0'>
<
Billboard>
<
Shape>
<
Appearance DEF='
LABEL_APPEARANCE'>
<Material diffuseColor='1 1 .3' emissiveColor='.33 .33 .1'/>
</
Appearance>
<
Text string='
Y'
solid='
true'>
<
FontStyle DEF='
LABEL_FONT'
family='
SANS'
justify='
MIDDLE'
size='
.2'/>
</
Text>
</
Shape>
</
Billboard>
</
Transform>
</
Group>
<
Transform rotation='
0 0 1 -1.5708'>
<!-- Horizontal X arrow and label -->
<
Group>
<
Group DEF='
ArrowRed'>
<
Shape>
<
Cylinder USE='
ArrowCylinder'/>
<
Appearance DEF='
Red'>
<Material diffuseColor='.7 .1 .1' emissiveColor='.33 0 0'/>
</
Appearance>
</
Shape>
<
Transform translation='
0 1 0'>
</
Transform>
<
Transform rotation='
1 0 0 3.1416'
translation='
0 -1 0'>
</
Transform>
</
Group>
<
Transform rotation='
0 0 1 1.5708'
translation='
.072 1.1 0'>
<!-- note label rotated back to original coordinate frame -->
<
Billboard>
</
Billboard>
</
Transform>
</
Group>
</
Transform>
<
Transform rotation='
1 0 0 1.5708'>
<!-- Perpendicular Z arrow and label, note right-hand rule -->
<
Group>
<
Group DEF='
ArrowBlue'>
<
Shape>
<
Cylinder USE='
ArrowCylinder'/>
<
Appearance DEF='
Blue'>
<Material diffuseColor='.3 .3 1' emissiveColor='.1 .1 .33'/>
</
Appearance>
</
Shape>
<
Transform translation='
0 1 0'>
</
Transform>
<
Transform rotation='
1 0 0 3.1416'
translation='
0 -1 0'>
</
Transform>
</
Group>
<
Transform rotation='
1 0 0 -1.5708'
translation='
0 1.1 .072'>
<!-- note label rotated back to original coordinate frame -->
<
Billboard>
</
Billboard>
</
Transform>
</
Group>
</
Transform>