X3D Model Documentation: CameraCompassPrototypes.x3d

  1  <?xml version="1.0" encoding="UTF-8"?>
  2 
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "https://www.web3d.org/specifications/x3d-3.0.dtd">
  3  <X3D profile='Immersive' version='3.0 xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.0.xsd'>
  4       <head>
  5            <meta name='titlecontent=' CameraCompassPrototypes.x3d '/>
  6            <meta name='descriptioncontent='Prototypes for a circular set of compass bearings that follow the active viewpoint. North = +X axis, East = +Z axis, up = +Y axis.'/>
  7            <meta name='creatorcontent='Don Brutzman'/>
  8            <meta name='createdcontent='16 June 2001'/>
  9            <meta name='modifiedcontent='28 November 2019'/>
 10            <meta name='inspirationcontent='David Colleen'/>
 11            <meta name='referencecontent='http://www.planet9.com/earth/pearlharbor/vrml/tour.wrl'/>
 12            <meta name='referencecontent='http://www.planet9.com/earth/pearlharbor/vrml/compass.wrl'/>
 13            <meta name='subjectcontent='compass display'/>
 14            <meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/CameraCompassPrototypes.x3d '/>
 15            <meta name='generatorcontent='X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit'/>
 16            <meta name='licensecontent='../../license.html'/>
 17       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: AllMarkers, AllMarkers12, Bearing010, Bearing020, Bearing030, Bearing040, Bearing050, Bearing060, Bearing070, Bearing080, Bearing120, Bearing150, Bearing210, Bearing240, Bearing300, Bearing330, CameraCompass12Node, CameraLocation, CameraLocation12, CameraLocation36, CameraOffset, CameraOffset12, CameraOffset36, CardinalMarker, CardinalMarker12, CenterJustify, CenterJustify12, CenterJustifySmall, CenterJustifySmall12, CircleLine12, CircleLine8, CircleMaterial, CircleMaterial12, East, East12, FirstQuadrantMarkers, FourthQuadrantMarkers, MarkerAppearance, MarkerAppearance12, MarkerAppearance36, MarkerMaterial, MarkerMaterial12, MarkerMaterial36, MidMarker, MidMarker12, MidMarker36, North, North12, NorthEast, NorthWest, SecondQuadrantMarkers, South, South12, SouthEast, SouthWest, TextAppearance, TextAppearance12, TextMaterial, TextMaterial12, TextMenu, ThirdQuadrantMarkers, West, West12, WhereSensor, WhereSensor12, WhereSensor36

Index for ProtoDeclare definitions: CameraCompass12, CameraCompass36, CameraCompass8
-->
 18       <Scene>
 19            <WorldInfo title='CameraCompassPrototypes.x3d'/>
 20            <ProtoDeclare name='CameraCompass8appinfo='Circular set of compass bearings that follow the active viewpoint set at 360/8 = 45 degree intervals. North = +X axis East = +Z axis up = +Y axis.'>
 21                 <ProtoInterface>
 22                      <field name='enabledtype='SFBoolvalue='trueaccessType='inputOutput'/>
 23                      <field name='positionOffsetFromCameratype='SFVec3fvalue='0 6 0accessType='inputOutput'/>
 24                      <field name='markerColortype='SFColorvalue='0.3 0.3 0.8accessType='inputOutput'/>
 25                      <field name='labelColortype='SFColorvalue='0.9 0.9 0.9accessType='inputOutput'/>
 26                 </ProtoInterface>
 27                 <ProtoBody>
 28                      <Group>
 29 
                         <!-- ROUTE information for WhereSensor node:  [from position_changed to CameraLocation.translation ] -->
                         <ProximitySensor DEF='WhereSensorsize='1000000000 1000000000 1000000000'>
 30                                <IS>
 31                                     <connect nodeField='enabledprotoField='enabled'/>
 32                                </IS>
 33                           </ProximitySensor>
 34 
                         <!-- ROUTE information for CameraLocation node:  [from WhereSensor.position_changed to translation ] -->
                         <Transform DEF='CameraLocation'>
 35                                <Transform DEF='CameraOffset'>
 36                                     <IS>
 37                                          <connect nodeField='translationprotoField='positionOffsetFromCamera'/>
 38                                     </IS>
 39                                     <Group DEF='AllMarkers'>
 40                                          <Transform DEF='Westtranslation='0 0 -20'>
 41                                               <Billboard>
 42 
                                                  <!-- Shape CardinalMarker is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
                                                  <Shape DEF='CardinalMarker'>
 43                                                         <IndexedFaceSet coordIndex='0 1 2 3 -1'>
 44                                                              <Coordinate point='0.1 2.0 0 -0.1 2.0 0 -0.1 1.2 0 0.1 1.2 0'/>
 45                                                         </IndexedFaceSet>
 46 
                                                       <!-- Appearance MarkerAppearance is a DEF node that has 1 USE node: USE_1 -->
                                                       <Appearance DEF='MarkerAppearance'>
 47                                                              <!-- default diffuseColor is (0.8 0.8 0.8), thus zero it out so emissiveColor is unaffected -->
 48                                                              <Material DEF='MarkerMaterialdiffuseColor='0 0 0'>
 49                                                                   <IS>
 50                                                                        <connect nodeField='emissiveColorprotoField='markerColor'/>
 51                                                                   </IS>
 52                                                              </Material>
 53                                                         </Appearance>
 54                                                    </Shape>
 55                                                    <Transform translation='0 0.6 0'>
 56                                                         <Shape>
 57                                                              <Text string='"West" "270"'>
 58 
                                                                 <!-- FontStyle CenterJustify is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
                                                                 <FontStyle DEF='CenterJustifyfamily='"SANS"justify='"MIDDLE" "MIDDLE"size='0.6'/>
 59                                                              </Text>
 60 
                                                            <!-- Appearance TextAppearance is a DEF node that has 7 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5, USE_6, USE_7 -->
                                                            <Appearance DEF='TextAppearance'>
 61                                                                   <!-- default diffuseColor is (0.8 0.8 0.8), thus zero it out so emissiveColor is unaffected -->
 62                                                                   <Material DEF='TextMaterialdiffuseColor='0 0 0'>
 63                                                                        <IS>
 64                                                                             <connect nodeField='emissiveColorprotoField='labelColor'/>
 65                                                                        </IS>
 66                                                                   </Material>
 67                                                              </Appearance>
 68                                                         </Shape>
 69                                                    </Transform>
 70                                               </Billboard>
 71                                          </Transform>
 72                                          <Transform DEF='Northtranslation='20 0 0'>
 73                                               <Billboard>
 74                                                    <Shape USE='CardinalMarker'/>
 75                                                    <Transform translation='0 0.6 0'>
 76                                                         <Shape>
 77                                                              <Text string='"North" "000"'>
 78                                                                   <FontStyle USE='CenterJustify'/>
 79                                                              </Text>
 80                                                              <Appearance USE='TextAppearance'/>
 81                                                         </Shape>
 82                                                    </Transform>
 83                                               </Billboard>
 84                                          </Transform>
 85                                          <Transform DEF='Easttranslation='0 0 20'>
 86                                               <Billboard>
 87                                                    <Shape USE='CardinalMarker'/>
 88                                                    <Transform translation='0 0.6 0'>
 89                                                         <Shape>
 90                                                              <Text string='"East" "090"'>
 91                                                                   <FontStyle USE='CenterJustify'/>
 92                                                              </Text>
 93                                                              <Appearance USE='TextAppearance'/>
 94                                                         </Shape>
 95                                                    </Transform>
 96                                               </Billboard>
 97                                          </Transform>
 98                                          <Transform DEF='Southtranslation='-20 0 0'>
 99                                               <Billboard>
100                                                    <Shape USE='CardinalMarker'/>
101                                                    <Transform translation='0 0.6 0'>
102                                                         <Shape>
103                                                              <Text string='"South" "180"'>
104                                                                   <FontStyle USE='CenterJustify'/>
105                                                              </Text>
106                                                              <Appearance USE='TextAppearance'/>
107                                                         </Shape>
108                                                    </Transform>
109                                               </Billboard>
110                                          </Transform>
111                                          <!-- ===== -->
112                                          <Transform DEF='NorthWesttranslation='14.142 0 -14.142'>
113                                               <Billboard>
114 
                                                  <!-- Shape MidMarker is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
                                                  <Shape DEF='MidMarker'>
115                                                         <IndexedFaceSet coordIndex='0 1 2 3 -1'>
116                                                              <Coordinate point='0.05 1.8 0 -0.05 1.8 0 -0.05 1.4 0 0.05 1.4 0'/>
117                                                         </IndexedFaceSet>
118                                                         <Appearance USE='MarkerAppearance'/>
119                                                    </Shape>
120                                                    <Transform translation='0 0.6 0'>
121                                                         <Shape>
122                                                              <Text string='"NW" "315"'>
123 
                                                                 <!-- FontStyle CenterJustifySmall is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
                                                                 <FontStyle DEF='CenterJustifySmallfamily='"SANS"justify='"MIDDLE" "FIRST"size='0.6'/>
124                                                              </Text>
125                                                              <Appearance USE='TextAppearance'/>
126                                                         </Shape>
127                                                    </Transform>
128                                               </Billboard>
129                                          </Transform>
130                                          <Transform DEF='NorthEasttranslation='14.142 0 14.142'>
131                                               <Billboard>
132                                                    <Shape USE='MidMarker'/>
133                                                    <Transform translation='0 0.6 0'>
134                                                         <Shape>
135                                                              <Text string='"NE" "045"'>
136                                                                   <FontStyle USE='CenterJustifySmall'/>
137                                                              </Text>
138                                                              <Appearance USE='TextAppearance'/>
139                                                         </Shape>
140                                                    </Transform>
141                                               </Billboard>
142                                          </Transform>
143                                          <Transform DEF='SouthEasttranslation='-14.142 0 14.142'>
144                                               <Billboard>
145                                                    <Shape USE='MidMarker'/>
146                                                    <Transform translation='0 0.6 0'>
147                                                         <Shape>
148                                                              <Text string='"SE" "135"'>
149                                                                   <FontStyle USE='CenterJustifySmall'/>
150                                                              </Text>
151                                                              <Appearance USE='TextAppearance'/>
152                                                         </Shape>
153                                                    </Transform>
154                                               </Billboard>
155                                          </Transform>
156                                          <Transform DEF='SouthWesttranslation='-14.142 0 -14.142'>
157                                               <Billboard>
158                                                    <Shape USE='MidMarker'/>
159                                                    <Transform translation='0 0.6 0'>
160                                                         <Shape>
161                                                              <Text string='"SW" "225"'>
162                                                                   <FontStyle USE='CenterJustifySmall'/>
163                                                              </Text>
164                                                              <Appearance USE='TextAppearance'/>
165                                                         </Shape>
166                                                    </Transform>
167                                               </Billboard>
168                                          </Transform>
169                                     </Group>
170                                     <Transform DEF='CircleLine8scale='20 1 20translation='0 1.6 0'>
171                                          <Shape>
172                                               <IndexedLineSet coordIndex='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 -1 60 61 -1 62 63 -1'>
173                                                    <Coordinate point='0.0 0.0 1.000 0.105 0.0 0.995 0.208 0.0 0.978 0.309 0.0 0.951 0.407 0.0 0.914 0.500 0.0 0.866 0.588 0.0 0.809 0.669 0.0 0.743 0.743 0.0 0.669 0.809 0.0 0.588 0.866 0.0 0.500 0.914 0.0 0.407 0.951 0.0 0.309 0.978 0.0 0.208 0.995 0.0 0.105 1.0 0.0 0.000 0.995 0.0 -0.105 0.978 0.0 -0.208 0.951 0.0 -0.309 0.914 0.0 -0.407 0.866 0.0 -0.500 0.809 0.0 -0.588 0.743 0.0 -0.669 0.669 0.0 -0.743 0.588 0.0 -0.809 0.500 0.0 -0.866 0.407 0.0 -0.914 0.309 0.0 -0.951 0.208 0.0 -0.978 0.105 0.0 -0.995 0.0 0.0 -1.000 -0.105 0.0 -0.995 -0.208 0.0 -0.978 -0.309 0.0 -0.951 -0.407 0.0 -0.914 -0.500 0.0 -0.866 -0.588 0.0 -0.809 -0.669 0.0 -0.743 -0.743 0.0 -0.669 -0.809 0.0 -0.588 -0.866 0.0 -0.500 -0.914 0.0 -0.407 -0.951 0.0 -0.309 -0.978 0.0 -0.208 -0.995 0.0 -0.105 -1.0 0.0 -0.000 -0.995 0.0 0.105 -0.978 0.0 0.208 -0.951 0.0 0.309 -0.914 0.0 0.407 -0.866 0.0 0.500 -0.809 0.0 0.588 -0.743 0.0 0.669 -0.669 0.0 0.743 -0.588 0.0 0.809 -0.500 0.0 0.866 -0.407 0.0 0.914 -0.309 0.0 0.951 -0.208 0.0 0.978 -0.105 0.0 0.995 0.0 0.0 1.000 0 0 -1 1 0 0 -1 0 0'/>
174                                               </IndexedLineSet>
175                                               <Appearance>
176                                                    <Material DEF='CircleMaterialdiffuseColor='0 0 0'>
177                                                         <IS>
178                                                              <connect nodeField='emissiveColorprotoField='markerColor'/>
179                                                         </IS>
180                                                    </Material>
181                                               </Appearance>
182                                          </Shape>
183                                     </Transform>
184                                </Transform>
185                           </Transform>
186                      </Group>
187                      < ROUTE  fromNode='WhereSensor' fromField='position_changed' toNode='CameraLocation' toField='translation'/>
188                 </ProtoBody>
189            </ProtoDeclare>
190            <ProtoDeclare name='CameraCompass12appinfo='Circular set of compass bearings that follow the active viewpoint set at 360/12 = 30 degree intervals. North = +X axis East = +Z axis up = +Y axis.'>
191                 <ProtoInterface>
192                      <field name='enabledtype='SFBoolvalue='trueaccessType='inputOutput'/>
193                      <field name='positionOffsetFromCameratype='SFVec3fvalue='0 6 0accessType='inputOutput'/>
194                      <field name='markerColortype='SFColorvalue='0.3 0.3 0.8accessType='inputOutput'/>
195                      <field name='labelColortype='SFColorvalue='0.9 0.9 0.9accessType='inputOutput'/>
196                 </ProtoInterface>
197                 <ProtoBody>
198                      <Group>
199 
                         <!-- ROUTE information for WhereSensor12 node:  [from position_changed to CameraLocation12.translation ] -->
                         <ProximitySensor DEF='WhereSensor12size='1000000000 1000000000 1000000000'>
200                                <IS>
201                                     <connect nodeField='enabledprotoField='enabled'/>
202                                </IS>
203                           </ProximitySensor>
204 
                         <!-- ROUTE information for CameraLocation12 node:  [from WhereSensor12.position_changed to translation ] -->
                         <Transform DEF='CameraLocation12'>
205                                <Transform DEF='CameraOffset12'>
206                                     <IS>
207                                          <connect nodeField='translationprotoField='positionOffsetFromCamera'/>
208                                     </IS>
209                                     <Group DEF='AllMarkers12'>
210                                          <Transform DEF='West12translation='0 0 -20'>
211                                               <Billboard>
212 
                                                  <!-- Shape CardinalMarker12 is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
                                                  <Shape DEF='CardinalMarker12'>
213                                                         <IndexedFaceSet coordIndex='0 1 2 3 -1'>
214                                                              <Coordinate point='0.1 2.0 0 -0.1 2.0 0 -0.1 1.2 0 0.1 1.2 0'/>
215                                                         </IndexedFaceSet>
216 
                                                       <!-- Appearance MarkerAppearance12 is a DEF node that has 1 USE node: USE_1 -->
                                                       <Appearance DEF='MarkerAppearance12'>
217                                                              <!-- default diffuseColor is (0.8 0.8 0.8), thus zero it out so emissiveColor is unaffected -->
218                                                              <Material DEF='MarkerMaterial12diffuseColor='0 0 0'>
219                                                                   <IS>
220                                                                        <connect nodeField='emissiveColorprotoField='markerColor'/>
221                                                                   </IS>
222                                                              </Material>
223                                                         </Appearance>
224                                                    </Shape>
225                                                    <Transform translation='0 0.6 0'>
226                                                         <Shape>
227                                                              <Text string='"West" "270"'>
228 
                                                                 <!-- FontStyle CenterJustify12 is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
                                                                 <FontStyle DEF='CenterJustify12family='"SANS"justify='"MIDDLE" "MIDDLE"size='0.6'/>
229                                                              </Text>
230 
                                                            <!-- Appearance TextAppearance12 is a DEF node that has 11 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5, USE_6, USE_7, USE_8, USE_9, USE_10, USE_11 -->
                                                            <Appearance DEF='TextAppearance12'>
231                                                                   <!-- default diffuseColor is (0.8 0.8 0.8), thus zero it out so emissiveColor is unaffected -->
232                                                                   <Material DEF='TextMaterial12diffuseColor='0 0 0'>
233                                                                        <IS>
234                                                                             <connect nodeField='emissiveColorprotoField='labelColor'/>
235                                                                        </IS>
236                                                                   </Material>
237                                                              </Appearance>
238                                                         </Shape>
239                                                    </Transform>
240                                               </Billboard>
241                                          </Transform>
242                                          <Transform DEF='North12translation='20 0 0'>
243                                               <Billboard>
244                                                    <Shape USE='CardinalMarker12'/>
245                                                    <Transform translation='0 0.6 0'>
246                                                         <Shape>
247                                                              <Text string='"North" "000"'>
248                                                                   <FontStyle USE='CenterJustify12'/>
249                                                              </Text>
250                                                              <Appearance USE='TextAppearance12'/>
251                                                         </Shape>
252                                                    </Transform>
253                                               </Billboard>
254                                          </Transform>
255                                          <Transform DEF='East12translation='0 0 20'>
256                                               <Billboard>
257                                                    <Shape USE='CardinalMarker12'/>
258                                                    <Transform translation='0 0.6 0'>
259                                                         <Shape>
260                                                              <Text string='"East" "090"'>
261                                                                   <FontStyle USE='CenterJustify12'/>
262                                                              </Text>
263                                                              <Appearance USE='TextAppearance12'/>
264                                                         </Shape>
265                                                    </Transform>
266                                               </Billboard>
267                                          </Transform>
268                                          <Transform DEF='South12translation='-20 0 0'>
269                                               <Billboard>
270                                                    <Shape USE='CardinalMarker12'/>
271                                                    <Transform translation='0 0.6 0'>
272                                                         <Shape>
273                                                              <Text string='"South" "180"'>
274                                                                   <FontStyle USE='CenterJustify12'/>
275                                                              </Text>
276                                                              <Appearance USE='TextAppearance12'/>
277                                                         </Shape>
278                                                    </Transform>
279                                               </Billboard>
280                                          </Transform>
281                                          <!-- ===== -->
282                                          <Transform DEF='Bearing030translation='17.32 0 10'>
283                                               <Billboard>
284 
                                                  <!-- Shape MidMarker12 is a DEF node that has 7 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5, USE_6, USE_7 -->
                                                  <Shape DEF='MidMarker12'>
285                                                         <IndexedFaceSet coordIndex='0 1 2 3 -1'>
286                                                              <Coordinate point='0.05 1.8 0 -0.05 1.8 0 -0.05 1.4 0 0.05 1.4 0'/>
287                                                         </IndexedFaceSet>
288                                                         <Appearance USE='MarkerAppearance12'/>
289                                                    </Shape>
290                                                    <Shape>
291                                                         <Text string='"030"'>
292 
                                                            <!-- FontStyle CenterJustifySmall12 is a DEF node that has 7 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5, USE_6, USE_7 -->
                                                            <FontStyle DEF='CenterJustifySmall12family='"SANS"justify='"MIDDLE" "FIRST"size='0.75'/>
293                                                         </Text>
294                                                         <Appearance USE='TextAppearance12'/>
295                                                    </Shape>
296                                               </Billboard>
297                                          </Transform>
298                                          <Transform DEF='Bearing060translation='10 0 17.32'>
299                                               <Billboard>
300                                                    <Shape USE='MidMarker12'/>
301                                                    <Shape>
302                                                         <Text string='"060"'>
303                                                              <FontStyle USE='CenterJustifySmall12'/>
304                                                         </Text>
305                                                         <Appearance USE='TextAppearance12'/>
306                                                    </Shape>
307                                               </Billboard>
308                                          </Transform>
309                                          <Transform DEF='Bearing120translation='-10 0 17.32'>
310                                               <Billboard>
311                                                    <Shape USE='MidMarker12'/>
312                                                    <Shape>
313                                                         <Text string='"120"'>
314                                                              <FontStyle USE='CenterJustifySmall12'/>
315                                                         </Text>
316                                                         <Appearance USE='TextAppearance12'/>
317                                                    </Shape>
318                                               </Billboard>
319                                          </Transform>
320                                          <Transform DEF='Bearing150translation='-17.32 0 10'>
321                                               <Billboard>
322                                                    <Shape USE='MidMarker12'/>
323                                                    <Shape>
324                                                         <Text string='"150"'>
325                                                              <FontStyle USE='CenterJustifySmall12'/>
326                                                         </Text>
327                                                         <Appearance USE='TextAppearance12'/>
328                                                    </Shape>
329                                               </Billboard>
330                                          </Transform>
331                                          <Transform DEF='Bearing210translation='-17.32 0 -10'>
332                                               <Billboard>
333                                                    <Shape USE='MidMarker12'/>
334                                                    <Shape>
335                                                         <Text string='"210"'>
336                                                              <FontStyle USE='CenterJustifySmall12'/>
337                                                         </Text>
338                                                         <Appearance USE='TextAppearance12'/>
339                                                    </Shape>
340                                               </Billboard>
341                                          </Transform>
342                                          <Transform DEF='Bearing240translation='-10 0 -17.32'>
343                                               <Billboard>
344                                                    <Shape USE='MidMarker12'/>
345                                                    <Shape>
346                                                         <Text string='"240"'>
347                                                              <FontStyle USE='CenterJustifySmall12'/>
348                                                         </Text>
349                                                         <Appearance USE='TextAppearance12'/>
350                                                    </Shape>
351                                               </Billboard>
352                                          </Transform>
353                                          <Transform DEF='Bearing300translation='10 0 -17.32'>
354                                               <Billboard>
355                                                    <Shape USE='MidMarker12'/>
356                                                    <Shape>
357                                                         <Text string='"300"'>
358                                                              <FontStyle USE='CenterJustifySmall12'/>
359                                                         </Text>
360                                                         <Appearance USE='TextAppearance12'/>
361                                                    </Shape>
362                                               </Billboard>
363                                          </Transform>
364                                          <Transform DEF='Bearing330translation='17.32 0 -10'>
365                                               <Billboard>
366                                                    <Shape USE='MidMarker12'/>
367                                                    <Shape>
368                                                         <Text string='"330"'>
369                                                              <FontStyle USE='CenterJustifySmall12'/>
370                                                         </Text>
371                                                         <Appearance USE='TextAppearance12'/>
372                                                    </Shape>
373                                               </Billboard>
374                                          </Transform>
375                                     </Group>
376                                     <Transform DEF='CircleLine12scale='20 1 20translation='0 1.6 0'>
377                                          <Shape>
378                                               <IndexedLineSet coordIndex='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 -1 60 61 -1 62 63 -1'>
379                                                    <Coordinate point='0.0 0.0 1.000 0.105 0.0 0.995 0.208 0.0 0.978 0.309 0.0 0.951 0.407 0.0 0.914 0.500 0.0 0.866 0.588 0.0 0.809 0.669 0.0 0.743 0.743 0.0 0.669 0.809 0.0 0.588 0.866 0.0 0.500 0.914 0.0 0.407 0.951 0.0 0.309 0.978 0.0 0.208 0.995 0.0 0.105 1.0 0.0 0.000 0.995 0.0 -0.105 0.978 0.0 -0.208 0.951 0.0 -0.309 0.914 0.0 -0.407 0.866 0.0 -0.500 0.809 0.0 -0.588 0.743 0.0 -0.669 0.669 0.0 -0.743 0.588 0.0 -0.809 0.500 0.0 -0.866 0.407 0.0 -0.914 0.309 0.0 -0.951 0.208 0.0 -0.978 0.105 0.0 -0.995 0.0 0.0 -1.000 -0.105 0.0 -0.995 -0.208 0.0 -0.978 -0.309 0.0 -0.951 -0.407 0.0 -0.914 -0.500 0.0 -0.866 -0.588 0.0 -0.809 -0.669 0.0 -0.743 -0.743 0.0 -0.669 -0.809 0.0 -0.588 -0.866 0.0 -0.500 -0.914 0.0 -0.407 -0.951 0.0 -0.309 -0.978 0.0 -0.208 -0.995 0.0 -0.105 -1.0 0.0 -0.000 -0.995 0.0 0.105 -0.978 0.0 0.208 -0.951 0.0 0.309 -0.914 0.0 0.407 -0.866 0.0 0.500 -0.809 0.0 0.588 -0.743 0.0 0.669 -0.669 0.0 0.743 -0.588 0.0 0.809 -0.500 0.0 0.866 -0.407 0.0 0.914 -0.309 0.0 0.951 -0.208 0.0 0.978 -0.105 0.0 0.995 0.0 0.0 1.000 0 0 -1 1 0 0 -1 0 0'/>
380                                               </IndexedLineSet>
381                                               <Appearance>
382                                                    <Material DEF='CircleMaterial12diffuseColor='0 0 0'>
383                                                         <IS>
384                                                              <connect nodeField='emissiveColorprotoField='markerColor'/>
385                                                         </IS>
386                                                    </Material>
387                                               </Appearance>
388                                          </Shape>
389                                     </Transform>
390                                </Transform>
391                           </Transform>
392                      </Group>
393                      < ROUTE  fromNode='WhereSensor12' fromField='position_changed' toNode='CameraLocation12' toField='translation'/>
394                 </ProtoBody>
395            </ProtoDeclare>
396            <ProtoDeclare name='CameraCompass36appinfo='Circular set of compass bearings that follow the active viewpoint set at 360/36 = 10 degree intervals. North = +X axis East = +Z axis up = +Y axis.'>
397                 <ProtoInterface>
398                      <field name='enabledtype='SFBoolvalue='trueaccessType='inputOutput'/>
399                      <field name='positionOffsetFromCameratype='SFVec3fvalue='0 6 0accessType='inputOutput'/>
400                      <field name='markerColortype='SFColorvalue='0.3 0.3 0.8accessType='inputOutput'/>
401                      <field name='labelColortype='SFColorvalue='0.9 0.9 0.9accessType='inputOutput'/>
402                 </ProtoInterface>
403                 <ProtoBody>
404                      <Group>
405                           <ProtoInstance name='CameraCompass12DEF='CameraCompass12Node'>
406                                <IS>
407                                     <connect nodeField='enabledprotoField='enabled'/>
408                                     <connect nodeField='positionOffsetFromCameraprotoField='positionOffsetFromCamera'/>
409                                     <connect nodeField='markerColorprotoField='markerColor'/>
410                                     <connect nodeField='labelColorprotoField='labelColor'/>
411                                </IS>
412                           </ProtoInstance>
413 
                         <!-- ROUTE information for WhereSensor36 node:  [from position_changed to CameraLocation36.translation ] -->
                         <ProximitySensor DEF='WhereSensor36size='1000000000 1000000000 1000000000'>
414                                <IS>
415                                     <connect nodeField='enabledprotoField='enabled'/>
416                                </IS>
417                           </ProximitySensor>
418 
                         <!-- ROUTE information for CameraLocation36 node:  [from WhereSensor36.position_changed to translation ] -->
                         <Transform DEF='CameraLocation36'>
419                                <Transform DEF='CameraOffset36'>
420                                     <IS>
421                                          <connect nodeField='translationprotoField='positionOffsetFromCamera'/>
422                                     </IS>
423 
                                   <!-- Group FirstQuadrantMarkers is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
                                   <Group DEF='FirstQuadrantMarkers'>
424                                          <Transform DEF='Bearing010translation='19.7 0.0 3.48'>
425                                               <Billboard>
426 
                                                  <!-- Shape MidMarker36 is a DEF node that has 5 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5 -->
                                                  <Shape DEF='MidMarker36'>
427                                                         <IndexedFaceSet coordIndex='0 1 2 3 -1'>
428                                                              <Coordinate point='0.05 1.8 0 -0.05 1.8 0 -0.05 1.4 0 0.05 1.4 0'/>
429                                                         </IndexedFaceSet>
430                                                         <Appearance DEF='MarkerAppearance36'>
431                                                              <!-- default diffuseColor is (0.8 0.8 0.8), thus zero it out so emissiveColor is unaffected -->
432                                                              <Material DEF='MarkerMaterial36diffuseColor='0 0 0'>
433                                                                   <IS>
434                                                                        <connect nodeField='emissiveColorprotoField='markerColor'/>
435                                                                   </IS>
436                                                              </Material>
437                                                         </Appearance>
438                                                    </Shape>
439                                               </Billboard>
440                                          </Transform>
441                                          <Transform DEF='Bearing020translation='18.8 0.0 6.84'>
442                                               <Billboard>
443                                                    <Shape USE='MidMarker36'/>
444                                               </Billboard>
445                                          </Transform>
446                                          <Transform DEF='Bearing040translation='15.32 0.0 12.86'>
447                                               <Billboard>
448                                                    <Shape USE='MidMarker36'/>
449                                               </Billboard>
450                                          </Transform>
451                                          <Transform DEF='Bearing050translation='12.86 0.0 15.32'>
452                                               <Billboard>
453                                                    <Shape USE='MidMarker36'/>
454                                               </Billboard>
455                                          </Transform>
456                                          <Transform DEF='Bearing070translation='6.84 0.0 18.8'>
457                                               <Billboard>
458                                                    <Shape USE='MidMarker36'/>
459                                               </Billboard>
460                                          </Transform>
461                                          <Transform DEF='Bearing080translation='3.48 0.0 19.7'>
462                                               <Billboard>
463                                                    <Shape USE='MidMarker36'/>
464                                               </Billboard>
465                                          </Transform>
466                                     </Group>
467                                     <Transform DEF='SecondQuadrantMarkersrotation='0 1 0 -1.57'>
468                                          <Group USE='FirstQuadrantMarkers'/>
469                                     </Transform>
470                                     <Transform DEF='ThirdQuadrantMarkersrotation='0 1 0 3.1416'>
471                                          <Group USE='FirstQuadrantMarkers'/>
472                                     </Transform>
473                                     <Transform DEF='FourthQuadrantMarkersrotation='0 1 0 1.57'>
474                                          <Group USE='FirstQuadrantMarkers'/>
475                                     </Transform>
476                                </Transform>
477                           </Transform>
478                      </Group>
479                      < ROUTE  fromNode='WhereSensor36' fromField='position_changed' toNode='CameraLocation36' toField='translation'/>
480                 </ProtoBody>
481            </ProtoDeclare>
482            <!-- ======================== -->
483            <NavigationInfo speed='10type='"FLY" "ANY"'/>
484            <Group DEF='TextMenu'>
485                 <Transform translation='0 2 0'>
486                      <Shape>
487                           <Text string='"CameraCompassPrototypes" "is a prototype definition file." "For examples click text:"'>
488                                <FontStyle justify='"MIDDLE" "MIDDLE"'/>
489                           </Text>
490                           <Appearance>
491                                <Material diffuseColor='0.9 0.9 0.9'/>
492                           </Appearance>
493                      </Shape>
494                 </Transform>
495                 <Transform translation='0 -1 0'>
496                      <Anchor description='CameraCompass8 Exampleparameter='"target=_blank"'   url=' "CameraCompass8Example.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/CameraCompass8Example.x3d" "CameraCompass8Example.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/CameraCompass8Example.wrl" '>
497                           <Shape>
498                                <Text string='"CameraCompass8 Example"'>
499                                     <FontStyle justify='"MIDDLE" "MIDDLE"'/>
500                                </Text>
501                                <Appearance>
502                                     <Material diffuseColor='0.8 0.8 0.4'/>
503                                </Appearance>
504                           </Shape>
505                      </Anchor>
506                 </Transform>
507                 <Transform translation='0 -2 0'>
508                      <Anchor description='CameraCompass12 Exampleparameter='"target=_blank"'   url=' "CameraCompass12Example.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/CameraCompass12Example.x3d" "CameraCompass12Example.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/CameraCompass12Example.wrl" '>
509                           <Shape>
510                                <Text string='"CameraCompass12 Example"'>
511                                     <FontStyle justify='"MIDDLE" "MIDDLE"'/>
512                                </Text>
513                                <Appearance>
514                                     <Material diffuseColor='0.8 0.4 0.2'/>
515                                </Appearance>
516                           </Shape>
517                      </Anchor>
518                 </Transform>
519                 <Transform translation='0 -3 0'>
520                      <Anchor description='CameraCompass36 Exampleparameter='"target=_blank"'   url=' "CameraCompass36Example.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/CameraCompass36Example.x3d" "CameraCompass36Example.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/CameraCompass36Example.wrl" '>
521                           <Shape>
522                                <Text string='"CameraCompass36 Example"'>
523                                     <FontStyle justify='"MIDDLE" "MIDDLE"'/>
524                                </Text>
525                                <Appearance>
526                                     <Material diffuseColor='0.9 0.2 0.2'/>
527                                </Appearance>
528                           </Shape>
529                      </Anchor>
530                 </Transform>
531            </Group>
532       </Scene>
533  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: AllMarkers, AllMarkers12, Bearing010, Bearing020, Bearing030, Bearing040, Bearing050, Bearing060, Bearing070, Bearing080, Bearing120, Bearing150, Bearing210, Bearing240, Bearing300, Bearing330, CameraCompass12Node, CameraLocation, CameraLocation12, CameraLocation36, CameraOffset, CameraOffset12, CameraOffset36, CardinalMarker, CardinalMarker12, CenterJustify, CenterJustify12, CenterJustifySmall, CenterJustifySmall12, CircleLine12, CircleLine8, CircleMaterial, CircleMaterial12, East, East12, FirstQuadrantMarkers, FourthQuadrantMarkers, MarkerAppearance, MarkerAppearance12, MarkerAppearance36, MarkerMaterial, MarkerMaterial12, MarkerMaterial36, MidMarker, MidMarker12, MidMarker36, North, North12, NorthEast, NorthWest, SecondQuadrantMarkers, South, South12, SouthEast, SouthWest, TextAppearance, TextAppearance12, TextMaterial, TextMaterial12, TextMenu, ThirdQuadrantMarkers, West, West12, WhereSensor, WhereSensor12, WhereSensor36

Index for ProtoDeclare definitions: CameraCompass12, CameraCompass36, CameraCompass8
-->
X3D Tooltips element index: Anchor, Appearance, Billboard, connect, Coordinate, field, FontStyle, Group, head, IndexedFaceSet, IndexedLineSet, IS, Material, meta, NavigationInfo, ProtoBody, ProtoDeclare, ProtoInstance, ProtoInterface, ProximitySensor, ROUTE, Scene, Shape, Text, Transform, WorldInfo, X3D, plus documentation for accessType definitions, type definitions, XML data types, and field types

Event Graph ROUTE Table entries with 3 ROUTE connections total, showing X3D event-model relationships for this scene.

Each row shows an event cascade that may occur during a single timestamp interval between frame renderings, as part of the X3D execution model.

WhereSensor
ProximitySensor
position_changed
SFVec3f

ROUTE
event to
(1)
CameraLocation
Transform
translation
SFVec3f

WhereSensor12
ProximitySensor
position_changed
SFVec3f

ROUTE
event to
(1)
CameraLocation12
Transform
translation
SFVec3f

WhereSensor36
ProximitySensor
position_changed
SFVec3f

ROUTE
event to
(1)
CameraLocation36
Transform
translation
SFVec3f

CameraCompass12Node
ProtoInstance
CameraCompass12
No direct ROUTE connection found for events to/from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

line 496
Anchor
description='CameraCompass8 Example' 
User-interaction hint for this node. 

line 508
Anchor
description='CameraCompass12 Example' 
User-interaction hint for this node. 

line 520
Anchor
description='CameraCompass36 Example' 
User-interaction hint for this node. 

Additional guidance on X3D animation can be found in the 10-Step Animation Design Process and Event Tracing hint sheets. Have fun with X3D! 😀

-->
<!-- Online at
https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/CameraCompassPrototypesIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/CameraCompassPrototypes.x3d -->

<!-- Color-coding legend: X3D terminology <X3dNode  DEF='idNamefield='value'/> matches XML terminology <XmlElement  DEF='idNameattribute='value'/>
(Light-blue background: event-based behavior node or statement) (Grey background inside box: inserted documentation) (Magenta background: X3D Extensibility)
    <ProtoInstance name='ProtoName'> <field name='fieldName'/> </ProtoInstance> -->

to top <!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints. -->