| 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='title' content=' lowerTeeth.x3d '/> |
| 6 | <meta name='description' content='lowerTeeth includes all lower teeth'/> |
| 7 | <meta name='creator' content='Don Brutzman'/> |
| 8 | <meta name='created' content='4 April 2026'/> |
| 9 | <meta name='modified' content='23 April 2026'/> |
| 10 | <meta name='reference' content='https://en.wikipedia.org/wiki/Human_tooth'/> |
| 11 | <meta name='reference' content='United States, https://en.wikipedia.org/wiki/Universal_Numbering_System'/> |
| 12 | <meta name='reference' content='ISO 3950, https://en.wikipedia.org/wiki/FDI_World_Dental_Federation_notation'/> |
| 13 |
<meta name='reference' content='
https://en.wikipedia.org/wiki/FDI_World_Dental_Federation_notation#/media/File:Comparison_of_dental_notations.svg
' |
| 14 | <meta name='reference' content='usage examples https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Medical'/> |
| 15 | <meta name='generator' content='X3D-Edit 4.0, https://www.web3d.org/x3d/tools/X3D-Edit'/> |
| 16 | <meta name='generator' content=' X3D Tidy, https://www.web3d.org/x3d/stylesheets/X3dTidy.html '/> |
| 17 | <meta name='identifier' content=' https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/lowerTeeth.x3d '/> |
| 18 | <meta name='license' content='../license.html'/> |
| 19 | </head> |
Event Graph ROUTE Table shows event connections.
-->
<!--
DEF nodes index:
AxesDisplay,
CenterOfRotationForJoint,
HiddenLight,
lowerTeeth,
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_lowerTeeth
-->| 20 | <Scene> |
| 21 | <WorldInfo title='lowerTeeth.x3d'/> |
| 22 | <Background skyColor='0.858824 1 0.94902'/> |
| 23 | <!-- user hover lights bone and reveals description, user selection/deselection temporarily binds/unbinds close-up hidden viewpoint --> |
| 24 |
<!-- ROUTE information for UserTouchSensor node:
[from isActive to UserTouchState.set_boolean
]
-->
<TouchSensor DEF='UserTouchSensor' description='lowerTeeth: all lower teeth'/> |
| 25 | <Transform DEF='lowerTeeth' translation='0 1.5954 0.1'> |
| 26 | <ViewpointGroup DEF='ViewpointGroup_lowerTeeth' description='lowerTeeth model' retainUserOffsets='true' containerField='children'> |
| 27 | <Viewpoint DEF='ViewFromFront' description='lowerTeeth face' nearDistance='0.001' position='0 0 0.2' retainUserOffsets='true'/> |
| 28 | <Viewpoint DEF='ViewFromBehind' description='lowerTeeth from left side' nearDistance='0.001' orientation='0 1 0 1.5708' position='0.2 0 0' retainUserOffsets='true'/> |
| 29 | <Viewpoint DEF='ViewFromLeft' description='lowerTeeth from behind' nearDistance='0.001' orientation='0 1 0 3.1416' position='0 0 -0.2' retainUserOffsets='true'/> |
| 30 | <Viewpoint DEF='ViewFromRight' description='lowerTeeth from right side' nearDistance='0.001' orientation='0 1 0 -1.5708' position='-0.2 0 0' retainUserOffsets='true'/> |
| 31 | <Viewpoint DEF='ViewFromAbove' description='lowerTeeth from above' nearDistance='0.001' orientation='1 0 0 -1.5708' position='0 0.2 0' retainUserOffsets='true'/> |
| 32 | <Viewpoint DEF='ViewFromBelow' description='lowerTeeth from below' nearDistance='0.001' orientation='1 0 0 1.5708' position='0 -0.2 0' retainUserOffsets='true'/> |
| 33 | </ViewpointGroup> |
| 34 | <!-- nevertheless, TouchSensor interfaces from each of the Inline models are closer, taking priority and overriding this interface --> |
| 35 |
<!-- 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='UserTouchState' containerField='children'/> |
| 36 | < ROUTE fromNode='UserTouchSensor' fromField='isActive' toNode='UserTouchState' toField='set_boolean'/> |
| 37 |
<!-- ROUTE information for HiddenViewpoint node:
[from UserTouchState.toggle to set_bind
]
-->
<Viewpoint DEF='HiddenViewpoint' nearDistance='0.001' position='0 0 0.2' retainUserOffsets='true'> |
| 38 | <NavigationInfo containerField='navigationInfo' transitionType='"ANIMATE"' type='"EXAMINE"'/> |
| 39 | </Viewpoint> |
| 40 | < ROUTE fromNode='UserTouchState' fromField='toggle' toNode='HiddenViewpoint' toField='set_bind'/> |
| 41 |
<!-- ROUTE information for HiddenLight node:
[from UserTouchState.toggle to on
]
-->
<DirectionalLight DEF='HiddenLight' ambientIntensity='1' color='0.1 0.1 1' on='false'/> |
| 42 | < ROUTE fromNode='UserTouchState' fromField='toggle' toNode='HiddenLight' toField='on'/> |
| 43 |
<!-- ROUTE information for CenterOfRotationForJoint node:
[from UserTouchState.toggle to visible
]
-->
<Transform DEF='CenterOfRotationForJoint' visible='false'> |
| 44 | <!-- insert computations for joint center of rotation here --> |
| 45 |
|
| 46 | </Transform> |
| 47 | < ROUTE fromNode='UserTouchState' fromField='toggle' toNode='CenterOfRotationForJoint' toField='visible'/> |
| 48 | </Transform> |
| 49 |
|
| 50 | <!-- replaces <Inline DEF='l_molar3lc' url='"l_molar3lc.x3d"'/> <Inline DEF='l_molar3lr' url='"l_molar3lr.x3d"'/> --> |
| 51 |
|
| 52 | <!-- replaces <Inline DEF='l_molar2lc' url='"l_molar2lc.x3d"'/> <Inline DEF='l_molar2lr' url='"l_molar2lr.x3d"'/> --> |
| 53 |
|
| 54 | <!-- replaces <Inline DEF='l_molar1lc' url='"l_molar1lc.x3d"'/> <Inline DEF='l_molar1lr' url='"l_molar1lr.x3d"'/> --> |
| 55 |
|
| 56 | <!-- replaces <Inline DEF='lprem2lc' url='"lprem2lc.x3d"'/> <Inline DEF='lprem2lr' url='"lprem2lr.x3d"'/> --> |
| 57 |
|
| 58 | <!-- replaces <Inline DEF='lprem1lc' url='"lprem1lc.x3d"'/> <Inline DEF='lprem1lr' url='"lprem1lr.x3d"'/> --> |
| 59 |
|
| 60 | <!-- replaces <Inline DEF='l_caninelc' url='"l_caninelc.x3d"'/> <Inline DEF='l_caninelr' url='"l_caninelr.x3d"'/> --> |
| 61 |
|
| 62 | <!-- replaces <Inline DEF='llatinlc' url='"llatinlc.x3d"'/> <Inline DEF='llatinlr' url='"llatinlr.x3d"'/> --> |
| 63 |
|
| 64 | <!-- replaces <Inline DEF='lceninlc' url='"lceninlc.x3d"'/> <Inline DEF='lceninlr' url='"lceninlr.x3d"'/> --> |
| 65 |
|
| 66 | <!-- replaces <Inline DEF='rceninlc' url='"rceninlc.x3d"'/> <Inline DEF='rceninlr' url='"rceninlr.x3d"'/> --> |
| 67 |
|
| 68 | <!-- replaces <Inline DEF='rlatinlc' url='"rlatinlc.x3d"'/> <Inline DEF='rlatinlr' url='"rlatinlr.x3d"'/> --> |
| 69 |
|
| 70 | <!-- replaces <Inline DEF='r_caninelc' url='"r_caninelc.x3d"'/> <Inline DEF='r_caninelr' url='"r_caninelr.x3d"'/> --> |
| 71 |
|
| 72 | <!-- replaces <Inline DEF='"rprem1lc' url='"rprem1lc.x3d"'/> <Inline DEF='rprem1lr' url='"rprem1lr.x3d"'/> --> |
| 73 |
|
| 74 | <!-- replaces <Inline DEF='rprem2lc' url='"rprem2lc.x3d"'/> <Inline DEF='rprem2lr' url='"rprem2lr.x3d"'/> --> |
| 75 |
|
| 76 | <!-- replaces <Inline DEF='r_molar1lc' url='"r_molar1lc.x3d"'/> <Inline DEF='r_molar1lr' url='"r_molar1lr.x3d"'/> --> |
| 77 |
|
| 78 | <!-- replaces <Inline DEF='r_molar2lc' url='"r_molar2lc.x3d"'/> <Inline DEF='r_molar2lr' url='"r_molar2lr.x3d"'/> --> |
| 79 |
|
| 80 | <!-- replaces <Inline DEF='r_molar3lc' url='"r_molar3lc.x3d"'/> <Inline DEF='r_molar3lr' url='"r_molar3lr.x3d"'/> --> |
| 81 | </Scene> |
| 82 | </X3D> |
Event Graph ROUTE Table shows event connections.
-->
<!--
DEF nodes index:
AxesDisplay,
CenterOfRotationForJoint,
HiddenLight,
lowerTeeth,
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_lowerTeeth
-->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 |
UserTouchState
BooleanToggle set_boolean SFBool |
then
|
UserTouchState
BooleanToggle toggle SFBool |
HiddenViewpoint
Viewpoint set_bind SFBool |
||
|
then
|
UserTouchState
BooleanToggle toggle SFBool |
HiddenLight
DirectionalLight on SFBool |
||||
|
then
|
UserTouchState
BooleanToggle toggle SFBool |
CenterOfRotationForJoint
Transform visible SFBool |
||||
<!--
Color-coding legend: X3D terminology
<X3dNode DEF='idName' field='value'/>
matches XML terminology
<XmlElement DEF='idName' attribute='value'/>
(Light-blue background: event-based behavior node or statement)
(Grey background inside box: inserted documentation)
(Magenta background: X3D Extensibility)
-->
<!--
For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints.
-->