<!-- 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 -->
<!-- From X3D Abstract Specification Section 25.3.3 GeoLocation: "In addition to placing a X3D model at the correct geospatial location, the GeoLocation node will also adjust the orientation of the model appropriately. The standard X3D coordinate system specifies that the +Y axis = up, +Z = out of the screen, and +X = towards the right. The GeoLocation node will set the orientation so that the +Y axis is the up direction for that local area (the normal to the tangent plane on the ellipsoid), -Z points towards the north pole, and +X is east." -->
<
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>
</
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" "Up"'
solid='
false'>
<
FontStyle DEF='
LABEL_FONT_TOP'
family='
"SANS"'
justify='
"MIDDLE" "END"'
size='
.2'/>
</
Text>
</
Shape>
</
Billboard>
</
Transform>
<
Transform translation='
0 -1.08 0'>
<
Billboard>
<
Shape>
<
Appearance USE='
LABEL_APPEARANCE'/>
<
Text string='
"-Y" "Down"'
solid='
false'>
</
Text>
</
Shape>
</
Billboard>
</
Transform>
</
Group>
<
Transform rotation='
0 0 1 -1.57079'>
<!-- 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>
</
Group>
<
Transform rotation='
0 0 1 1.57079'
translation='
.072 1.1 0'>
<!-- note label rotated back to original coordinate frame -->
<
Billboard>
<
Shape>
<
Appearance USE='
LABEL_APPEARANCE'/>
<
Text string='
"+X" "East"'
solid='
false'>
<
FontStyle DEF='
LABEL_FONT'
family='
"SANS"'
justify='
"MIDDLE" "MIDDLE"'
size='
.2'/>
</
Text>
</
Shape>
</
Billboard>
</
Transform>
<
Transform rotation='
0 0 1 1.57079'
translation='
.072 -1.1 0'>
<!-- note label rotated back to original coordinate frame -->
<
Billboard>
<
Shape>
<
Appearance USE='
LABEL_APPEARANCE'/>
<
Text string='
"-X" "West"'
solid='
false'>
</
Text>
</
Shape>
</
Billboard>
</
Transform>
</
Group>
</
Transform>
<
Transform rotation='
1 0 0 1.57079'>
<!-- 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>
</
Group>
<
Transform rotation='
1 0 0 -1.57079'
translation='
0 1.1 .072'>
<!-- note label rotated back to original coordinate frame -->
<
Billboard>
<
Shape>
<
Appearance USE='
LABEL_APPEARANCE'/>
<
Text string='
"+Z" "South"'
solid='
false'>
</
Text>
</
Shape>
</
Billboard>
</
Transform>
<
Transform rotation='
1 0 0 -1.57079'
translation='
0 -1.1 .072'>
<!-- note label rotated back to original coordinate frame -->
<
Billboard>
<
Shape>
<
Appearance USE='
LABEL_APPEARANCE'/>
<
Text string='
"-Z" "North"'
solid='
false'>
</
Text>
</
Shape>
</
Billboard>
</
Transform>
</
Group>
</
Transform>