X3D Model Documentation: jaw.x3d

  1  <?xml version="1.0" encoding="UTF-8"?>
  2  <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 4.0//EN" "https://www.web3d.org/specifications/x3d-4.0.dtd">
  3  <X3D profile='Interactive' version='4.0 xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-4.0.xsd'>
  4       <head>
  5            <meta name='titlecontent=' jaw.x3d '/>
  6            <meta name='descriptioncontent='jaw includes mandible (lower jaw or jawbone) and lower teeth'/>
  7            <meta name='creatorcontent='Don Brutzman'/>
  8            <meta name='createdcontent='12 March 2026'/>
  9            <meta name='modifiedcontent='23 April 2026'/>
 10            <meta name='referencecontent='https://en.wikipedia.org/wiki/Mandible'/>
 11            <meta name='referencecontent='https://en.wikipedia.org/wiki/Human_tooth'/>
 12            <meta name='referencecontent='United States, https://en.wikipedia.org/wiki/Universal_Numbering_System'/>
 13            <meta name='referencecontent='ISO 3950, https://en.wikipedia.org/wiki/FDI_World_Dental_Federation_notation'/>
 14            <meta name='referencecontent=' https://en.wikipedia.org/wiki/FDI_World_Dental_Federation_notation#/media/File:Comparison_of_dental_notations.svg '/>
 15            <meta name='referencecontent='usage examples https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Medical'/>
 16            <meta name='generatorcontent='X3D-Edit 4.0, https://www.web3d.org/x3d/tools/X3D-Edit'/>
 17            <meta name='generatorcontent=' X3D Tidy, https://www.web3d.org/x3d/stylesheets/X3dTidy.html '/>
 18            <meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/jaw.x3d '/>
 19            <meta name='licensecontent='../license.html'/>
 20       </head>
<!--

Event Graph ROUTE Table shows event connections.

--> <!-- to top DEF nodes index: AxesDisplay, CenterOfRotationForJoint, HiddenLight, jaw, mandible, tooth_canine_22_33, tooth_canine_27_43, tooth_incisor_23_32, tooth_incisor_24_31, tooth_incisor_25_41, tooth_incisor_26_42, tooth_molar_17_38, tooth_molar_18_37, tooth_molar_19_36, tooth_molar_30_46, tooth_molar_31_47, tooth_molar_32_48, tooth_premolar_20_35, tooth_premolar_21_34, tooth_premolar_28_44, tooth_premolar_29_45, UserTouchSensor, UserTouchState

Index for Viewpoint and ViewpointGroup nodes: HiddenViewpoint, ViewFromAbove, ViewFromBehind, ViewFromBelow, ViewFromFront, ViewFromLeft, ViewFromRight, ViewpointGroup_jaw

-->
 21       <Scene>
 22            <WorldInfo title='jaw.x3d'/>
 23            <Background skyColor='0.858824 1 0.94902'/>
 24            <!-- user hover lights bone and reveals description, user selection/deselection temporarily binds/unbinds close-up hidden viewpoint -->
 25 
          <!-- ROUTE information for UserTouchSensor node:  [from isActive to UserTouchState.set_boolean ] -->
          <TouchSensor DEF='UserTouchSensordescription='jaw: mandible and lower teeth'/>
 26            <Transform DEF='jawtranslation='0 1.5954 0'>
 27                 <ViewpointGroup DEF='ViewpointGroup_jawdescription='jaw modelretainUserOffsets='truecontainerField='children'>
 28                      <Viewpoint DEF='ViewFromFrontdescription='jaw facenearDistance='0.001position='0 0 0.4retainUserOffsets='true'/>
 29                      <Viewpoint DEF='ViewFromBehinddescription='jaw from left sidenearDistance='0.001orientation='0 1 0 1.5708position='0.4 0 0retainUserOffsets='true'/>
 30                      <Viewpoint DEF='ViewFromLeftdescription='jaw from behindnearDistance='0.001orientation='0 1 0 3.1416position='0 0 -0.4retainUserOffsets='true'/>
 31                      <Viewpoint DEF='ViewFromRightdescription='jaw from right sidenearDistance='0.001orientation='0 1 0 -1.5708position='-0.4 0 0retainUserOffsets='true'/>
 32                      <Viewpoint DEF='ViewFromAbovedescription='jaw from abovenearDistance='0.001orientation='1 0 0 -1.5708position='0 0.4 0retainUserOffsets='true'/>
 33                      <Viewpoint DEF='ViewFromBelowdescription='jaw from belownearDistance='0.001orientation='1 0 0 1.5708position='0 -0.4 0retainUserOffsets='true'/>
 34                 </ViewpointGroup>
 35                 <!-- nevertheless, TouchSensor interfaces from each of the Inline models are closer, taking priority and overriding this interface -->
 36 
               <!-- ROUTE information for UserTouchState node:  [from UserTouchSensor.isActive to set_boolean ] [from toggle to HiddenViewpoint.set_bind ] [from toggle to HiddenLight.on ] [from toggle to CenterOfRotationForJoint.visible ] -->
               <BooleanToggle DEF='UserTouchStatecontainerField='children'/>
 37                 < ROUTE  fromNode='UserTouchSensor' fromField='isActive' toNode='UserTouchState' toField='set_boolean'/>
 38 
               <!-- ROUTE information for HiddenViewpoint node:  [from UserTouchState.toggle to set_bind ] -->
               <Viewpoint DEF='HiddenViewpointnearDistance='0.001position='0 0 0.3retainUserOffsets='true'>
 39                      <NavigationInfo containerField='navigationInfotransitionType='"ANIMATE"type='"EXAMINE"'/>
 40                 </Viewpoint>
 41                 < ROUTE  fromNode='UserTouchState' fromField='toggle' toNode='HiddenViewpoint' toField='set_bind'/>
 42 
               <!-- ROUTE information for HiddenLight node:  [from UserTouchState.toggle to on ] -->
               <DirectionalLight DEF='HiddenLightambientIntensity='1color='0.1 0.1 1on='false'/>
 43                 < ROUTE  fromNode='UserTouchState' fromField='toggle' toNode='HiddenLight' toField='on'/>
 44 
               <!-- ROUTE information for CenterOfRotationForJoint node:  [from UserTouchState.toggle to visible ] -->
               <Transform DEF='CenterOfRotationForJointvisible='false'>
 45                      <!-- insert computations for joint center of rotation here -->
 46                      <Inline DEF='AxesDisplaydescription='RGB display axes showing XYZ direction in local coordinate systemvisible='false'   url=' "AxesDisplay.x3d"'/>
 47                 </Transform>
 48                 < ROUTE  fromNode='UserTouchState' fromField='toggle' toNode='CenterOfRotationForJoint' toField='visible'/>
 49            </Transform>
 50            <!-- mandible and teeth, TODO combine and rename -->
 51            <Inline DEF='mandible'   url=' "mandible.x3d" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/mandible.x3d" "mandible.wrl" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/mandible.wrl" '/>
 52            <Inline DEF='tooth_molar_17_38'   url=' "tooth_molar_17_38.x3d" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_molar_17_38.x3d" "tooth_molar_17_38.wrl" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_molar_17_38.wrl" '/>
 53            <!-- replaces <Inline DEF='l_molar3lc' url='"l_molar3lc.x3d"'/> <Inline DEF='l_molar3lr' url='"l_molar3lr.x3d"'/> -->
 54            <Inline DEF='tooth_molar_18_37'   url=' "tooth_molar_18_37.x3d" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_molar_18_37.x3d" "tooth_molar_18_37.wrl" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_molar_18_37.wrl" '/>
 55            <!-- replaces <Inline DEF='l_molar2lc' url='"l_molar2lc.x3d"'/> <Inline DEF='l_molar2lr' url='"l_molar2lr.x3d"'/> -->
 56            <Inline DEF='tooth_molar_19_36'   url=' "tooth_molar_19_36.x3d" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_molar_19_36.x3d" "tooth_molar_19_36.wrl" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_molar_19_36.wrl" '/>
 57            <!-- replaces <Inline DEF='l_molar1lc' url='"l_molar1lc.x3d"'/> <Inline DEF='l_molar1lr' url='"l_molar1lr.x3d"'/> -->
 58            <Inline DEF='tooth_premolar_20_35'   url=' "tooth_premolar_20_35.x3d" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_premolar_20_35.x3d" "tooth_premolar_20_35.wrl" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_premolar_20_35.wrl" '/>
 59            <!-- replaces <Inline DEF='lprem2lc' url='"lprem2lc.x3d"'/> <Inline DEF='lprem2lr' url='"lprem2lr.x3d"'/> -->
 60            <Inline DEF='tooth_premolar_21_34'   url=' "tooth_premolar_21_34.x3d" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_premolar_21_34.x3d" "tooth_premolar_21_34.wrl" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_premolar_21_34.wrl" '/>
 61            <!-- replaces <Inline DEF='lprem1lc' url='"lprem1lc.x3d"'/> <Inline DEF='lprem1lr' url='"lprem1lr.x3d"'/> -->
 62            <Inline DEF='tooth_canine_22_33'   url=' "tooth_canine_22_33.x3d" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_canine_22_33.x3d" "tooth_canine_22_33.wrl" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_canine_22_33.wrl" '/>
 63            <!-- replaces <Inline DEF='l_caninelc' url='"l_caninelc.x3d"'/> <Inline DEF='l_caninelr' url='"l_caninelr.x3d"'/> -->
 64            <Inline DEF='tooth_incisor_23_32'   url=' "tooth_incisor_23_32.x3d" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_incisor_23_32.x3d" "tooth_incisor_23_32.wrl" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_incisor_23_32.wrl" '/>
 65            <!-- replaces <Inline DEF='llatinlc' url='"llatinlc.x3d"'/> <Inline DEF='llatinlr' url='"llatinlr.x3d"'/> -->
 66            <Inline DEF='tooth_incisor_24_31'   url=' "tooth_incisor_24_31.x3d" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_incisor_24_31.x3d" "tooth_incisor_24_31.wrl" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_incisor_24_31.wrl" '/>
 67            <!-- replaces <Inline DEF='lceninlc' url='"lceninlc.x3d"'/> <Inline DEF='lceninlr' url='"lceninlr.x3d"'/> -->
 68            <Inline DEF='tooth_incisor_25_41'   url=' "tooth_incisor_25_41.x3d" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_incisor_25_41.x3d" "tooth_incisor_25_41.wrl" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_incisor_25_41.wrl" '/>
 69            <!-- replaces <Inline DEF='rceninlc' url='"rceninlc.x3d"'/> <Inline DEF='rceninlr' url='"rceninlr.x3d"'/> -->
 70            <Inline DEF='tooth_incisor_26_42'   url=' "tooth_incisor_26_42.x3d" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_incisor_26_42.x3d" "tooth_incisor_26_42.wrl" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_incisor_26_42.wrl" '/>
 71            <!-- replaces <Inline DEF='rlatinlc' url='"rlatinlc.x3d"'/> <Inline DEF='rlatinlr' url='"rlatinlr.x3d"'/> -->
 72            <Inline DEF='tooth_canine_27_43'   url=' "tooth_canine_27_43.x3d" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_canine_27_43.x3d" "tooth_canine_27_43.wrl" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_canine_27_43.wrl" '/>
 73            <!-- replaces <Inline DEF='r_caninelc' url='"r_caninelc.x3d"'/> <Inline DEF='r_caninelr' url='"r_caninelr.x3d"'/> -->
 74            <Inline DEF='tooth_premolar_28_44'   url=' "tooth_premolar_28_44.x3d" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_premolar_28_44.x3d" "tooth_premolar_28_44.wrl" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_premolar_28_44.wrl" '/>
 75            <!-- replaces <Inline DEF='"rprem1lc' url='"rprem1lc.x3d"'/> <Inline DEF='rprem1lr' url='"rprem1lr.x3d"'/> -->
 76            <Inline DEF='tooth_premolar_29_45'   url=' "tooth_premolar_29_45.x3d" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_premolar_29_45.x3d" "tooth_premolar_29_45.wrl" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_premolar_29_45.wrl" '/>
 77            <!-- replaces <Inline DEF='rprem2lc' url='"rprem2lc.x3d"'/> <Inline DEF='rprem2lr' url='"rprem2lr.x3d"'/> -->
 78            <Inline DEF='tooth_molar_30_46'   url=' "tooth_molar_30_46.x3d" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_molar_30_46.x3d" "tooth_molar_30_46.wrl" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_molar_30_46.wrl" '/>
 79            <!-- replaces <Inline DEF='r_molar1lc' url='"r_molar1lc.x3d"'/> <Inline DEF='r_molar1lr' url='"r_molar1lr.x3d"'/> -->
 80            <Inline DEF='tooth_molar_31_47'   url=' "tooth_molar_31_47.x3d" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_molar_31_47.x3d" "tooth_molar_31_47.wrl" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_molar_31_47.wrl" '/>
 81            <!-- replaces <Inline DEF='r_molar2lc' url='"r_molar2lc.x3d"'/> <Inline DEF='r_molar2lr' url='"r_molar2lr.x3d"'/> -->
 82            <Inline DEF='tooth_molar_32_48'   url=' "tooth_molar_32_48.x3d" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_molar_32_48.x3d" "tooth_molar_32_48.wrl" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_molar_32_48.wrl" '/>
 83            <!-- replaces <Inline DEF='r_molar3lc' url='"r_molar3lc.x3d"'/> <Inline DEF='r_molar3lr' url='"r_molar3lr.x3d"'/> -->
 84       </Scene>
 85  </X3D>
<!--

Event Graph ROUTE Table shows event connections.

--> <!-- to top DEF nodes index: AxesDisplay, CenterOfRotationForJoint, HiddenLight, jaw, mandible, tooth_canine_22_33, tooth_canine_27_43, tooth_incisor_23_32, tooth_incisor_24_31, tooth_incisor_25_41, tooth_incisor_26_42, tooth_molar_17_38, tooth_molar_18_37, tooth_molar_19_36, tooth_molar_30_46, tooth_molar_31_47, tooth_molar_32_48, tooth_premolar_20_35, tooth_premolar_21_34, tooth_premolar_28_44, tooth_premolar_29_45, UserTouchSensor, UserTouchState

Index for Viewpoint and ViewpointGroup nodes: HiddenViewpoint, ViewFromAbove, ViewFromBehind, ViewFromBelow, ViewFromFront, ViewFromLeft, ViewFromRight, ViewpointGroup_jaw

-->
X3D Tooltips element index: Background, BooleanToggle, DirectionalLight, head, Inline, meta, NavigationInfo, ROUTE, Scene, TouchSensor, Transform, Viewpoint, ViewpointGroup, WorldInfo, X3D,
plus documentation for accessType definitions, type definitions, XML data types, and field types

Event Graph ROUTE Table entries with 4 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.

UserTouchSensor
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
UserTouchState
BooleanToggle
set_boolean
SFBool
then
 
 
 
UserTouchState
BooleanToggle
toggle
SFBool

ROUTE
event to
(2)
HiddenViewpoint
Viewpoint
set_bind
SFBool
  then
 
 
 
UserTouchState
BooleanToggle
toggle
SFBool

ROUTE
event to
(2)
HiddenLight
DirectionalLight
on
SFBool
  then
 
 
 
UserTouchState
BooleanToggle
toggle
SFBool

ROUTE
event to
(2)
CenterOfRotationForJoint
Transform
visible
SFBool

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/HumanoidAnimation/Bones/jawIndex.html -->
<!-- SourceForge version control Version control at    
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/jaw.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)
-->

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