####################################################################################################
#
# Invoking X3D model self-test:
#
#   $ python tooth_incisor_27_43.py
#
# Python package x3d.py package is available on PyPI for import.
#   This approach simplifies Python X3D deployment and use.
#   https://pypi.org/project/x3d
#
# Installation:
#       pip install x3d
# or
#       python -m pip install x3d
#
# Developer options for loading x3d package in other Python programs:
#
#    from x3d import *  # preferred approach, terser source that avoids x3d.* class prefixes
#
# or
#    import x3d         # traditional way to subclass x3d package, all classes require x3d.* prefix,
#                       # but python source is very verbose, for example x3d.Material x3d.Shape etc.
#                       # X3dToPython.xslt stylesheet insertPackagePrefix=true supports this option.
#
# Project home page:    # X3D Python Scene Access Interface Library (X3DPSAIL)
#                       # https://www.web3d.org/x3d/stylesheets/python/python.html
# Conversion generator: # https://www.web3d.org/x3d/stylesheets/X3dToPython.xslt
#
####################################################################################################

from x3d import *

newModel=X3D(profile='Interactive',version='4.0',
  head=head(
    children=[
    meta(content='tooth_incisor_27_43.x3d',name='title'),
    meta(content='tooth_incisor_27_43, lower left Universal Numbering System (UNS) #27, ISO 3950 standard designation #43',name='description'),
    meta(content='Don Brutzman, Joe Williams, John Carlson, Damon Hernandez',name='creator'),
    meta(content='13 March 2026',name='created'),
    meta(content='23 April 2026',name='modified'),
    meta(content='originals/rlatinlc.x3d',name='reference'),
    meta(content='originals/rlatinlr.x3d',name='reference'),
    meta(content='https://en.wikipedia.org/wiki/Human_tooth',name='reference'),
    meta(content='United States, https://en.wikipedia.org/wiki/Universal_Numbering_System',name='reference'),
    meta(content='ISO 3950, https://en.wikipedia.org/wiki/FDI_World_Dental_Federation_notation',name='reference'),
    meta(content='https://en.wikipedia.org/wiki/FDI_World_Dental_Federation_notation#/media/File:Comparison_of_dental_notations.svg',name='reference'),
    meta(content='https://en.wikipedia.org/wiki/List_of_bones_of_the_human_skeleton',name='reference'),
    meta(content='usage examples https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Medical',name='reference'),
    meta(content='X3D-Edit 4.0, https://www.web3d.org/x3d/tools/X3D-Edit',name='generator'),
    meta(content='X3D Tidy, https://www.web3d.org/x3d/stylesheets/X3dTidy.html',name='generator'),
    meta(content='https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_incisor_27_43.x3d',name='identifier'),
    meta(content='../license.html',name='license')]),
  Scene=Scene(
    children=[
    WorldInfo(title='tooth_incisor_27_43.x3d'),
    Background(skyColor=[(0.858824,1,0.94902)]),
    Comment('user hover lights bone and reveals description, user selection/deselection temporarily binds/unbinds close-up hidden viewpoint'),
    TouchSensor(DEF='UserTouchSensor',description='tooth_incisor_27_43 lower right'),
    Transform(DEF='rcaninlc',translation=(-0.0123,1.5886,0.0859),
      children=[
      BooleanToggle(DEF='UserTouchState'),
      ROUTE(fromField='isActive',fromNode='UserTouchSensor',toField='set_boolean',toNode='UserTouchState'),
      Viewpoint(DEF='HiddenViewpoint',nearDistance=0.001,position=(0,0,0.2),retainUserOffsets=True,
        navigationInfo=NavigationInfo(transitionType=["ANIMATE"],type=["EXAMINE"])),
      ROUTE(fromField='toggle',fromNode='UserTouchState',toField='set_bind',toNode='HiddenViewpoint'),
      DirectionalLight(DEF='HiddenLight',ambientIntensity=1,color=(0.1,0.1,1),on=False),
      ROUTE(fromField='toggle',fromNode='UserTouchState',toField='on',toNode='HiddenLight'),
      Transform(DEF='CenterOfRotationForJoint',visible=False,
        children=[
        Comment('insert computations for joint center of rotation here'),
        Inline(DEF='AxesDisplay',description='RGB display axes showing XYZ direction in local coordinate system',url=["AxesDisplay.x3d"],visible=False)]),
      ROUTE(fromField='toggle',fromNode='UserTouchState',toField='visible',toNode='CenterOfRotationForJoint'),
      Shape(
        appearance=Appearance(
          material=Material(DEF='ToothMaterial',ambientIntensity=0.4,diffuseColor=(1,0.9843,0.9843),shininess=0.05)),
        geometry=IndexedFaceSet(DEF='tooth_incisor_27_43_cap_geometry',coordIndex=[0,1,2,-1,3,2,1,-1,4,5,6,-1,7,8,9,-1,10,11,12,-1,13,14,15,-1,16,17,18,-1,19,20,21,-1,22,20,19,-1,23,24,25,-1,26,27,28,-1,29,30,31,-1,32,12,11,-1,33,34,35,-1,12,36,37,-1,27,38,39,-1,40,9,41,-1,42,43,44,-1,45,46,47,-1,48,49,50,-1,51,52,53,-1,54,10,55,-1,11,10,56,-1,51,57,58,-1,59,60,61,-1,62,61,63,-1,64,65,66,-1,67,68,69,-1,70,71,72,-1,73,74,75,-1,76,77,78,-1,78,79,76,-1,80,81,82,-1,83,84,85,-1,73,86,87,-1,73,88,86,-1,89,75,74,-1,90,70,91,-1,77,76,92,-1,69,93,75,-1,94,16,18,-1,60,90,91,-1,95,96,97,-1,64,63,61,-1,6,98,99,-1,100,101,53,-1,53,98,100,-1,48,102,103,-1,103,45,104,-1,105,106,107,-1,27,108,109,-1,110,111,50,-1,78,80,112,-1,8,39,113,-1,11,108,32,-1,114,115,116,-1,8,28,39,-1,11,56,117,-1,118,119,120,-1,65,121,122,-1,118,120,123,-1,124,125,51,-1,15,68,67,-1,14,124,68,-1,40,126,127,-1,42,1,0,-1,0,128,129,-1,130,6,5,-1,129,131,0,-1,132,131,105,-1,41,133,134,-1,14,68,15,-1,15,67,17,-1,125,124,14,-1,118,123,97,-1,72,22,19,-1,135,24,23,-1,117,108,11,-1,28,27,39,-1,95,114,116,-1,8,113,9,-1,33,35,136,-1,137,110,50,-1,112,79,78,-1,110,138,111,-1,27,109,38,-1,107,106,133,-1,139,140,141,-1,142,42,102,-1,103,44,45,-1,48,103,143,-1,50,49,137,-1,144,57,13,-1,13,16,144,-1,53,52,98,-1,100,137,101,-1,99,145,6,-1,62,59,61,-1,113,29,146,-1,96,118,97,-1,60,91,147,-1,94,144,16,-1,75,89,69,-1,77,92,148,-1,70,72,91,-1,149,150,151,-1,18,17,152,-1,83,153,84,-1,81,115,82,-1,75,154,73,-1,17,67,152,-1,69,89,67,-1,155,64,66,-1,156,157,54,-1,58,158,51,-1,55,156,54,-1,108,117,109,-1,138,110,130,-1,50,159,48,-1,45,160,46,-1,43,42,0,-1,161,162,139,-1,37,10,12,-1,34,58,35,-1,163,82,164,-1,25,165,23,-1,119,166,120,-1,121,147,122,-1,20,66,21,-1,13,125,14,-1,16,15,17,-1,15,16,13,-1,7,9,40,-1,107,133,41,-1,4,6,167,-1,168,3,1,-1,0,2,128,-1,5,138,130,-1,106,131,129,-1,131,106,105,-1,169,170,127,-1,169,171,170,-1,172,173,37,-1,173,172,174,-1,138,4,175,-1,5,4,138,-1,127,7,40,-1,7,127,170,-1,161,41,162,-1,41,161,107,-1,176,18,152,-1,176,94,18,-1,68,177,69,-1,177,68,124,-1,147,21,122,-1,147,91,21,-1,165,123,23,-1,165,97,123,-1,71,178,153,-1,178,71,70,-1,59,179,180,-1,59,62,179,-1,113,181,9,-1,113,146,181,-1,114,82,115,-1,82,114,164,-1,150,182,151,-1,83,182,150,-1,130,137,100,-1,137,130,110,-1,88,112,86,-1,112,88,79,-1,183,36,12,-1,184,36,183,-1,141,161,139,-1,141,185,161,-1,131,43,0,-1,131,132,43,-1,104,47,186,-1,104,45,47,-1,104,143,103,-1,143,104,187,-1,143,188,189,-1,143,187,188,-1,137,189,101,-1,137,49,189,-1,51,101,190,-1,53,101,51,-1,99,52,191,-1,99,98,52,-1,58,157,158,-1,157,58,34,-1,29,96,146,-1,119,96,29,-1,119,118,96,-1,144,58,57,-1,58,144,35,-1,75,192,154,-1,75,93,192,-1,148,47,46,-1,148,92,47,-1,155,20,149,-1,155,66,20,-1,164,24,193,-1,164,25,24,-1,112,194,86,-1,112,163,194,-1,195,73,87,-1,74,73,195,-1,74,85,152,-1,85,74,195,-1,136,176,84,-1,136,94,176,-1,81,78,77,-1,78,81,80,-1,149,22,150,-1,149,20,22,-1,193,196,197,-1,24,196,193,-1,24,135,196,-1,198,149,196,-1,198,155,149,-1,199,154,192,-1,200,154,199,-1,64,198,31,-1,198,64,155,-1,109,30,38,-1,109,63,30,-1,180,54,157,-1,179,54,180,-1,191,51,158,-1,191,52,51,-1,54,56,10,-1,56,54,179,-1,125,57,51,-1,125,13,57,-1,190,189,188,-1,101,189,190,-1,187,201,188,-1,187,202,201,-1,201,69,177,-1,201,93,69,-1,186,92,199,-1,186,47,92,-1,44,160,45,-1,44,43,160,-1,132,160,43,-1,132,185,160,-1,9,162,41,-1,9,181,162,-1,203,140,139,-1,203,116,140,-1,100,6,130,-1,100,98,6,-1,204,34,33,-1,204,205,34,-1,26,12,32,-1,26,183,12,-1,206,151,182,-1,206,197,151,-1,146,203,181,-1,146,96,203,-1,70,204,178,-1,70,90,204,-1,19,91,72,-1,19,21,91,-1,150,72,71,-1,150,22,72,-1,152,89,74,-1,89,152,67,-1,105,185,132,-1,107,185,105,-1,161,185,107,-1,207,171,208,-1,170,171,207,-1,209,173,174,-1,145,173,209,-1,207,210,184,-1,207,208,210,-1,134,106,211,-1,134,133,106,-1,212,168,213,-1,168,212,3,-1,127,214,169,-1,127,126,214,-1,215,37,36,-1,37,215,172,-1,111,175,216,-1,111,138,175,-1,213,216,212,-1,213,111,216,-1,207,183,217,-1,184,183,207,-1,124,190,177,-1,51,190,124,-1,66,122,21,-1,65,122,66,-1,218,23,123,-1,135,23,218,-1,60,180,205,-1,60,59,180,-1,163,193,194,-1,163,164,193,-1,83,71,153,-1,83,150,71,-1,29,38,30,-1,113,38,29,-1,39,38,113,-1,159,111,213,-1,159,50,111,-1,7,28,8,-1,7,217,28,-1,148,141,140,-1,46,141,148,-1,186,187,104,-1,187,186,202,-1,189,48,143,-1,49,48,189,-1,191,55,99,-1,55,191,156,-1,37,55,10,-1,37,173,55,-1,156,158,157,-1,191,158,156,-1,121,64,61,-1,121,65,64,-1,178,33,136,-1,204,33,178,-1,140,77,148,-1,140,81,77,-1,114,97,165,-1,114,95,97,-1,200,73,154,-1,73,200,88,-1,153,136,84,-1,153,178,136,-1,79,200,76,-1,200,79,88,-1,87,182,195,-1,206,182,87,-1,195,83,85,-1,182,83,195,-1,206,86,194,-1,87,86,206,-1,84,152,85,-1,176,152,84,-1,196,151,197,-1,151,196,149,-1,198,135,218,-1,198,196,135,-1,81,116,115,-1,140,116,81,-1,76,199,92,-1,76,200,199,-1,35,94,136,-1,35,144,94,-1,31,218,166,-1,31,198,218,-1,63,31,30,-1,63,64,31,-1,109,62,63,-1,109,117,62,-1,147,61,60,-1,147,121,61,-1,145,55,173,-1,99,55,145,-1,177,188,201,-1,190,188,177,-1,202,93,201,-1,202,192,93,-1,199,202,186,-1,202,199,192,-1,159,102,48,-1,159,142,102,-1,44,102,42,-1,102,44,103,-1,185,46,160,-1,185,141,46,-1,217,170,207,-1,170,217,7,-1,139,181,203,-1,162,181,139,-1,213,142,159,-1,168,142,213,-1,80,163,112,-1,163,80,82,-1,34,180,157,-1,205,180,34,-1,31,119,29,-1,31,166,119,-1,56,62,117,-1,179,62,56,-1,194,197,206,-1,194,193,197,-1,96,116,203,-1,96,95,116,-1,32,27,26,-1,108,27,32,-1,90,205,204,-1,205,90,60,-1,166,123,120,-1,166,218,123,-1,165,164,114,-1,165,25,164,-1,217,26,28,-1,183,26,217,-1,134,40,41,-1,40,134,126,-1,142,1,42,-1,1,142,168,-1,209,6,145,-1,6,209,167,-1,184,215,36,-1,210,215,184,-1,211,126,134,-1,126,211,214,-1],creaseAngle=1.571,
          coord=Coordinate(DEF='tooth_incisor_27_43_cap_coordinate',point=[(0.0016,-0.0036,0.0032),(0.0009,-0.0051,0.0032),(0.0010,-0.0054,0.0030),(0.0002,-0.0062,0.0030),(-0.0020,-0.0056,0.0000),(-0.0021,-0.0052,0.0001),(-0.0018,-0.0045,-0.0010),(0.0034,-0.0021,-0.0025),(0.0031,-0.0010,-0.0023),(0.0032,-0.0008,-0.0018),(0.0007,-0.0020,-0.0040),(0.0014,-0.0012,-0.0040),(0.0017,-0.0024,-0.0045),(-0.0030,0.0006,-0.0001),(-0.0032,0.0007,0.0000),(-0.0030,0.0024,0.0005),(-0.0032,0.0025,0.0003),(-0.0027,0.0041,0.0010),(-0.0029,0.0039,0.0006),(-0.0009,0.0036,-0.0001),(-0.0006,0.0039,-0.0000),(-0.0006,0.0023,-0.0008),(-0.0011,0.0045,-0.0000),(0.0014,0.0046,0.0024),(0.0011,0.0052,0.0026),(0.0014,0.0049,0.0029),(0.0026,-0.0014,-0.0037),(0.0023,-0.0009,-0.0033),(0.0028,-0.0012,-0.0033),(0.0026,0.0004,-0.0009),(0.0017,0.0006,-0.0014),(0.0013,0.0022,-0.0004),(0.0016,-0.0013,-0.0042),(-0.0027,0.0024,-0.0018),(-0.0023,0.0014,-0.0021),(-0.0032,0.0024,-0.0011),(0.0019,-0.0032,-0.0045),(0.0011,-0.0037,-0.0043),(0.0023,-0.0006,-0.0028),(0.0029,-0.0008,-0.0024),(0.0034,-0.0019,-0.0019),(0.0030,-0.0013,-0.0004),(0.0008,-0.0042,0.0037),(0.0016,-0.0026,0.0037),(0.0008,-0.0025,0.0042),(0.0008,-0.0006,0.0044),(0.0017,0.0008,0.0043),(0.0007,0.0009,0.0045),(-0.0016,-0.0035,0.0032),(-0.0023,-0.0035,0.0025),(-0.0017,-0.0054,0.0021),(-0.0027,-0.0011,-0.0009),(-0.0024,-0.0024,-0.0011),(-0.0026,-0.0025,-0.0006),(-0.0003,-0.0012,-0.0035),(-0.0006,-0.0029,-0.0032),(0.0008,-0.0009,-0.0038),(-0.0030,0.0006,-0.0006),(-0.0027,0.0010,-0.0016),(-0.0007,0.0006,-0.0029),(-0.0015,0.0017,-0.0023),(0.0000,0.0005,-0.0028),(0.0005,-0.0004,-0.0035),(0.0008,0.0005,-0.0023),(0.0005,0.0020,-0.0010),(-0.0000,0.0018,-0.0014),(-0.0003,0.0024,-0.0006),(-0.0026,0.0041,0.0013),(-0.0030,0.0024,0.0008),(-0.0030,0.0024,0.0013),(-0.0024,0.0035,-0.0013),(-0.0023,0.0042,-0.0009),(-0.0014,0.0037,-0.0005),(-0.0012,0.0057,0.0032),(-0.0018,0.0053,0.0021),(-0.0023,0.0041,0.0025),(0.0006,0.0038,0.0044),(0.0014,0.0032,0.0045),(0.0013,0.0047,0.0044),(0.0008,0.0049,0.0043),(0.0016,0.0049,0.0042),(0.0020,0.0035,0.0038),(0.0017,0.0050,0.0039),(-0.0015,0.0051,0.0001),(-0.0027,0.0046,-0.0005),(-0.0020,0.0052,0.0004),(0.0003,0.0061,0.0035),(-0.0006,0.0064,0.0028),(-0.0001,0.0056,0.0039),(-0.0026,0.0041,0.0016),(-0.0020,0.0024,-0.0019),(-0.0010,0.0024,-0.0011),(0.0007,0.0022,0.0047),(-0.0026,0.0028,0.0024),(-0.0033,0.0035,-0.0000),(0.0023,0.0031,0.0024),(0.0025,0.0017,0.0013),(0.0020,0.0029,0.0019),(-0.0021,-0.0036,-0.0013),(-0.0014,-0.0033,-0.0020),(-0.0026,-0.0037,-0.0001),(-0.0029,-0.0024,0.0009),(-0.0003,-0.0035,0.0039),(-0.0004,-0.0024,0.0042),(-0.0004,-0.0006,0.0043),(0.0022,-0.0019,0.0025),(0.0025,-0.0016,0.0015),(0.0026,-0.0013,0.0018),(0.0016,-0.0009,-0.0038),(0.0014,-0.0005,-0.0034),(-0.0023,-0.0048,0.0010),(-0.0016,-0.0060,0.0019),(0.0010,0.0053,0.0040),(0.0031,-0.0003,-0.0015),(0.0020,0.0042,0.0029),(0.0022,0.0041,0.0032),(0.0023,0.0031,0.0025),(0.0010,-0.0007,-0.0038),(0.0023,0.0018,0.0010),(0.0025,0.0009,-0.0004),(0.0020,0.0018,0.0006),(0.0000,0.0007,-0.0025),(-0.0003,0.0016,-0.0015),(0.0016,0.0027,0.0015),(-0.0032,0.0007,0.0004),(-0.0029,0.0001,-0.0003),(0.0032,-0.0022,-0.0013),(0.0033,-0.0025,-0.0019),(0.0019,-0.0034,0.0028),(0.0020,-0.0029,0.0026),(-0.0023,-0.0047,0.0003),(0.0020,-0.0024,0.0029),(0.0020,-0.0020,0.0030),(0.0027,-0.0013,0.0008),(0.0030,-0.0019,-0.0006),(0.0011,0.0046,0.0018),(-0.0032,0.0036,-0.0010),(-0.0026,-0.0037,0.0013),(-0.0020,-0.0057,0.0010),(0.0026,0.0012,0.0026),(0.0023,0.0025,0.0035),(0.0023,0.0011,0.0034),(-0.0000,-0.0052,0.0035),(-0.0017,-0.0020,0.0034),(-0.0033,0.0024,-0.0004),(-0.0013,-0.0042,-0.0021),(0.0030,0.0003,-0.0005),(-0.0007,0.0017,-0.0019),(0.0016,0.0022,0.0045),(-0.0003,0.0043,0.0003),(-0.0013,0.0049,0.0000),(-0.0006,0.0054,0.0009),(-0.0024,0.0047,0.0011),(-0.0026,0.0043,-0.0009),(-0.0015,0.0044,0.0034),(0.0002,0.0028,-0.0004),(-0.0010,-0.0017,-0.0030),(-0.0016,-0.0001,-0.0026),(-0.0023,-0.0006,-0.0019),(-0.0012,-0.0055,0.0029),(0.0019,-0.0009,0.0039),(0.0026,-0.0004,0.0021),(0.0028,-0.0001,0.0008),(0.0014,0.0052,0.0038),(0.0017,0.0051,0.0035),(0.0017,0.0044,0.0025),(0.0017,0.0020,0.0003),(-0.0016,-0.0049,-0.0010),(-0.0000,-0.0058,0.0032),(0.0033,-0.0029,-0.0018),(0.0034,-0.0028,-0.0026),(0.0034,-0.0032,-0.0025),(0.0011,-0.0041,-0.0044),(-0.0001,-0.0040,-0.0033),(-0.0000,-0.0044,-0.0034),(-0.0020,-0.0061,0.0008),(-0.0030,0.0043,-0.0000),(-0.0032,0.0007,0.0009),(-0.0027,0.0034,-0.0014),(0.0003,-0.0006,-0.0037),(-0.0009,0.0005,-0.0029),(0.0031,0.0001,-0.0004),(-0.0009,0.0057,0.0011),(0.0028,-0.0025,-0.0040),(0.0028,-0.0031,-0.0040),(0.0023,-0.0005,0.0032),(-0.0006,0.0015,0.0043),(-0.0017,-0.0005,0.0034),(-0.0026,-0.0008,0.0024),(-0.0026,-0.0024,0.0025),(-0.0030,-0.0009,0.0009),(-0.0020,-0.0020,-0.0020),(-0.0017,0.0029,0.0034),(0.0010,0.0057,0.0030),(0.0008,0.0059,0.0033),(-0.0013,0.0060,0.0016),(0.0006,0.0045,0.0010),(0.0000,0.0058,0.0018),(0.0009,0.0031,0.0001),(-0.0006,0.0029,0.0042),(-0.0004,0.0044,0.0040),(-0.0026,0.0014,0.0025),(-0.0017,0.0015,0.0034),(0.0026,0.0016,0.0015),(-0.0021,0.0023,-0.0020),(-0.0017,0.0016,-0.0024),(-0.0001,0.0060,0.0020),(0.0033,-0.0031,-0.0034),(0.0033,-0.0035,-0.0034),(-0.0012,-0.0046,-0.0023),(0.0029,-0.0035,-0.0040),(0.0030,-0.0024,-0.0008),(-0.0009,-0.0064,0.0024),(-0.0009,-0.0060,0.0025),(0.0031,-0.0024,-0.0009),(0.0020,-0.0036,-0.0047),(-0.0014,-0.0063,0.0016),(0.0033,-0.0023,-0.0034),(0.0014,0.0029,0.0010)])))]),
    Transform(DEF='rcaninlr',translation=(-0.0111,1.5770,0.0848),
      children=[
      Shape(
        appearance=Appearance(
          material=Material(USE='ToothMaterial')),
        geometry=IndexedFaceSet(DEF='tooth_incisor_27_43_root_geometry',coordIndex=[0,1,2,-1,3,4,5,-1,6,7,8,-1,9,10,11,-1,5,12,13,-1,14,15,16,-1,17,18,19,-1,20,21,22,-1,23,24,25,-1,26,27,28,-1,29,30,31,-1,32,33,34,-1,1,35,2,-1,36,37,0,-1,38,39,40,-1,37,36,41,-1,42,43,44,-1,15,45,16,-1,46,47,48,-1,49,50,51,-1,52,5,13,-1,53,54,46,-1,55,11,56,-1,57,55,58,-1,57,9,55,-1,10,59,11,-1,60,61,62,-1,63,64,65,-1,3,7,66,-1,33,67,68,-1,63,6,64,-1,61,51,62,-1,10,69,59,-1,55,56,70,-1,46,12,53,-1,13,71,52,-1,51,65,49,-1,59,62,72,-1,62,73,72,-1,46,48,17,-1,15,74,45,-1,42,44,23,-1,75,76,27,-1,75,77,76,-1,78,79,80,-1,32,38,40,-1,35,81,2,-1,38,32,34,-1,29,82,30,-1,26,75,27,-1,23,44,24,-1,20,83,21,-1,17,48,18,-1,14,16,83,-1,5,53,12,-1,9,11,55,-1,6,8,64,-1,3,5,52,-1,69,84,60,-1,69,85,84,-1,86,9,57,-1,9,86,87,-1,88,89,90,-1,88,91,89,-1,92,93,4,-1,93,92,94,-1,95,92,66,-1,96,92,95,-1,96,94,92,-1,97,94,96,-1,97,98,94,-1,97,99,98,-1,84,99,97,-1,84,91,99,-1,85,91,84,-1,100,91,85,-1,100,89,91,-1,87,89,100,-1,87,101,89,-1,86,101,87,-1,86,102,101,-1,103,104,105,-1,103,88,104,-1,51,63,65,-1,61,63,51,-1,58,106,57,-1,106,58,107,-1,107,108,109,-1,107,110,108,-1,105,46,54,-1,105,47,46,-1,111,65,64,-1,65,111,49,-1,72,11,59,-1,11,72,56,-1,14,70,56,-1,70,14,112,-1,108,113,114,-1,108,115,113,-1,12,17,116,-1,12,46,17,-1,117,111,118,-1,111,117,119,-1,120,121,122,-1,120,119,121,-1,123,112,20,-1,124,112,123,-1,125,113,126,-1,127,113,125,-1,128,117,129,-1,117,128,130,-1,121,131,132,-1,121,130,131,-1,16,133,134,-1,16,45,133,-1,135,136,137,-1,126,136,135,-1,138,139,140,-1,138,19,139,-1,43,141,44,-1,43,140,141,-1,142,143,144,-1,142,132,143,-1,21,26,82,-1,21,134,26,-1,145,146,137,-1,145,147,146,-1,148,146,149,-1,150,146,148,-1,141,151,152,-1,141,153,151,-1,77,154,76,-1,77,144,154,-1,31,155,156,-1,31,157,155,-1,148,158,159,-1,148,160,158,-1,24,161,162,-1,24,152,161,-1,163,154,164,-1,154,163,165,-1,166,28,167,-1,30,28,166,-1,168,169,170,-1,168,171,169,-1,172,173,174,-1,173,172,175,-1,176,177,178,-1,176,179,177,-1,35,180,81,-1,181,180,35,-1,1,182,35,-1,1,183,182,-1,39,184,40,-1,175,184,39,-1,185,176,186,-1,187,176,185,-1,41,188,189,-1,36,188,41,-1,190,191,192,-1,191,190,193,-1,193,172,191,-1,172,193,194,-1,195,187,185,-1,196,187,195,-1,197,79,186,-1,198,79,197,-1,79,198,80,-1,199,200,171,-1,199,162,200,-1,81,158,196,-1,180,158,81,-1,157,201,155,-1,201,157,34,-1,174,191,172,-1,174,165,191,-1,171,202,199,-1,171,168,202,-1,34,166,38,-1,166,34,157,-1,178,155,201,-1,155,178,177,-1,173,28,27,-1,28,173,167,-1,164,202,163,-1,164,203,202,-1,152,181,161,-1,152,151,181,-1,160,149,179,-1,148,149,160,-1,157,30,166,-1,31,30,157,-1,28,82,26,-1,82,28,30,-1,144,164,154,-1,144,143,164,-1,44,152,24,-1,44,141,152,-1,150,159,204,-1,150,148,159,-1,137,150,135,-1,137,146,150,-1,82,22,21,-1,22,82,29,-1,205,144,77,-1,205,142,144,-1,141,139,153,-1,140,139,141,-1,139,18,206,-1,19,18,139,-1,137,207,145,-1,136,207,137,-1,134,83,16,-1,83,134,21,-1,122,132,142,-1,122,121,132,-1,140,208,138,-1,208,140,43,-1,19,116,17,-1,116,19,138,-1,115,126,113,-1,115,136,126,-1,14,20,112,-1,14,83,20,-1,119,130,121,-1,119,117,130,-1,118,129,117,-1,118,71,129,-1,114,127,209,-1,114,113,127,-1,124,70,112,-1,210,70,124,-1,211,73,50,-1,73,211,74,-1,64,118,111,-1,64,8,118,-1,109,114,212,-1,109,108,114,-1,4,53,5,-1,4,93,53,-1,88,212,104,-1,88,90,212,-1,94,213,93,-1,213,94,98,-1,90,101,214,-1,90,89,101,-1,63,95,6,-1,63,96,95,-1,100,69,10,-1,69,100,85,-1,60,97,61,-1,60,84,97,-1,57,102,86,-1,57,106,102,-1,103,91,88,-1,103,99,91,-1,66,4,3,-1,4,66,92,-1,107,214,106,-1,214,107,109,-1,213,105,54,-1,213,103,105,-1,3,8,7,-1,3,52,8,-1,58,110,107,-1,58,210,110,-1,104,47,105,-1,104,209,47,-1,15,56,72,-1,56,15,14,-1,110,115,108,-1,110,215,115,-1,13,116,216,-1,13,12,116,-1,119,49,111,-1,49,119,120,-1,217,120,122,-1,211,120,217,-1,207,124,123,-1,215,124,207,-1,18,127,125,-1,48,127,18,-1,208,129,216,-1,129,208,128,-1,130,42,131,-1,130,128,42,-1,45,205,133,-1,45,217,205,-1,20,218,123,-1,20,22,218,-1,219,126,135,-1,125,126,219,-1,220,219,204,-1,206,219,220,-1,221,132,131,-1,132,221,143,-1,75,134,133,-1,134,75,26,-1,147,218,222,-1,145,218,147,-1,147,149,146,-1,147,223,149,-1,220,151,153,-1,220,224,151,-1,221,25,203,-1,221,23,25,-1,29,156,222,-1,29,31,156,-1,177,156,155,-1,223,156,177,-1,159,180,224,-1,159,158,180,-1,25,162,199,-1,25,24,162,-1,76,165,174,-1,76,154,165,-1,197,67,198,-1,67,197,68,-1,192,170,190,-1,192,168,170,-1,163,168,192,-1,163,202,168,-1,167,175,39,-1,167,173,175,-1,187,179,176,-1,160,179,187,-1,161,35,182,-1,161,181,35,-1,200,183,225,-1,182,183,200,-1,68,34,33,-1,68,201,34,-1,186,188,185,-1,186,79,188,-1,2,196,195,-1,2,81,196,-1,0,195,36,-1,0,2,195,-1,175,194,184,-1,175,172,194,-1,36,185,188,-1,185,36,195,-1,188,78,189,-1,188,79,78,-1,186,178,197,-1,186,176,178,-1,171,225,169,-1,200,225,171,-1,162,182,200,-1,162,161,182,-1,160,196,158,-1,160,187,196,-1,38,167,39,-1,166,167,38,-1,165,192,191,-1,165,163,192,-1,201,197,178,-1,201,68,197,-1,27,174,173,-1,27,76,174,-1,203,199,202,-1,203,25,199,-1,224,181,151,-1,224,180,181,-1,179,223,177,-1,149,223,179,-1,222,223,147,-1,222,156,223,-1,143,203,164,-1,143,221,203,-1,224,204,159,-1,220,204,224,-1,204,135,150,-1,219,135,204,-1,222,22,29,-1,218,22,222,-1,133,77,75,-1,133,205,77,-1,131,23,221,-1,131,42,23,-1,153,206,220,-1,139,206,153,-1,206,125,219,-1,18,125,206,-1,145,123,218,-1,207,123,145,-1,217,142,205,-1,217,122,142,-1,43,128,208,-1,128,43,42,-1,138,216,116,-1,216,138,208,-1,136,215,207,-1,115,215,136,-1,74,217,45,-1,74,211,217,-1,120,50,49,-1,50,120,211,-1,71,216,129,-1,71,13,216,-1,209,48,47,-1,209,127,48,-1,210,215,110,-1,210,124,215,-1,74,72,73,-1,72,74,15,-1,50,62,51,-1,62,50,73,-1,8,71,118,-1,8,52,71,-1,212,209,104,-1,212,114,209,-1,210,55,70,-1,58,55,210,-1,62,69,60,-1,69,62,59,-1,93,54,53,-1,93,213,54,-1,212,214,109,-1,90,214,212,-1,6,66,7,-1,6,95,66,-1,213,99,103,-1,213,98,99,-1,101,106,214,-1,106,101,102,-1,61,96,63,-1,61,97,96,-1,87,10,9,-1,10,87,100,-1],creaseAngle=1.571,
          coord=Coordinate(DEF='tooth_incisor_27_43_root_coordinate',point=[(-0.0002,0.0062,0.0041),(-0.0010,0.0054,0.0041),(-0.0002,0.0060,0.0040),(0.0024,-0.0099,-0.0020),(0.0025,-0.0099,-0.0020),(0.0019,-0.0097,-0.0017),(0.0025,-0.0099,-0.0024),(0.0024,-0.0099,-0.0021),(0.0018,-0.0096,-0.0024),(0.0033,-0.0090,-0.0030),(0.0032,-0.0092,-0.0031),(0.0029,-0.0086,-0.0034),(0.0010,-0.0082,-0.0008),(0.0006,-0.0083,-0.0012),(0.0024,-0.0052,-0.0035),(0.0021,-0.0053,-0.0036),(0.0020,-0.0035,-0.0038),(0.0008,-0.0060,0.0004),(0.0009,-0.0042,0.0008),(0.0004,-0.0043,0.0011),(0.0025,-0.0034,-0.0032),(0.0023,-0.0015,-0.0037),(0.0026,-0.0015,-0.0033),(-0.0018,-0.0011,0.0007),(-0.0018,0.0004,0.0016),(-0.0022,0.0004,0.0009),(0.0017,0.0002,-0.0041),(0.0007,0.0015,-0.0040),(0.0016,0.0017,-0.0041),(0.0027,0.0002,-0.0033),(0.0024,0.0018,-0.0036),(0.0026,0.0017,-0.0030),(0.0017,0.0081,-0.0029),(0.0021,0.0081,-0.0023),(0.0022,0.0061,-0.0026),(-0.0009,0.0047,0.0039),(0.0007,0.0083,0.0037),(0.0007,0.0082,0.0039),(0.0020,0.0062,-0.0031),(0.0010,0.0061,-0.0036),(0.0008,0.0080,-0.0035),(0.0008,0.0087,0.0038),(-0.0012,-0.0027,0.0001),(-0.0011,-0.0028,0.0008),(-0.0015,-0.0011,0.0013),(0.0013,-0.0036,-0.0035),(0.0014,-0.0080,-0.0005),(0.0017,-0.0078,-0.0007),(0.0011,-0.0059,0.0001),(0.0010,-0.0078,-0.0031),(0.0016,-0.0076,-0.0033),(0.0023,-0.0091,-0.0033),(0.0017,-0.0097,-0.0020),(0.0020,-0.0095,-0.0016),(0.0023,-0.0093,-0.0015),(0.0030,-0.0085,-0.0032),(0.0025,-0.0071,-0.0035),(0.0033,-0.0090,-0.0028),(0.0030,-0.0085,-0.0029),(0.0028,-0.0087,-0.0035),(0.0030,-0.0094,-0.0030),(0.0028,-0.0097,-0.0029),(0.0026,-0.0089,-0.0035),(0.0026,-0.0099,-0.0027),(0.0018,-0.0096,-0.0028),(0.0021,-0.0093,-0.0031),(0.0025,-0.0099,-0.0021),(0.0022,0.0084,-0.0014),(0.0022,0.0080,-0.0015),(0.0031,-0.0093,-0.0030),(0.0026,-0.0071,-0.0031),(0.0006,-0.0082,-0.0016),(0.0023,-0.0072,-0.0036),(0.0019,-0.0073,-0.0036),(0.0015,-0.0054,-0.0035),(0.0009,-0.0000,-0.0038),(-0.0002,0.0013,-0.0033),(-0.0000,-0.0002,-0.0033),(0.0018,0.0092,0.0004),(0.0018,0.0090,0.0004),(0.0019,0.0092,0.0003),(-0.0001,0.0049,0.0036),(0.0024,0.0002,-0.0037),(0.0024,-0.0034,-0.0036),(0.0030,-0.0094,-0.0029),(0.0031,-0.0093,-0.0029),(0.0033,-0.0091,-0.0028),(0.0033,-0.0091,-0.0029),(0.0030,-0.0091,-0.0020),(0.0032,-0.0091,-0.0022),(0.0032,-0.0090,-0.0022),(0.0031,-0.0092,-0.0020),(0.0026,-0.0099,-0.0020),(0.0026,-0.0097,-0.0018),(0.0027,-0.0097,-0.0019),(0.0026,-0.0099,-0.0024),(0.0027,-0.0098,-0.0026),(0.0028,-0.0097,-0.0028),(0.0027,-0.0096,-0.0019),(0.0029,-0.0094,-0.0019),(0.0032,-0.0092,-0.0029),(0.0033,-0.0091,-0.0025),(0.0033,-0.0091,-0.0027),(0.0028,-0.0093,-0.0018),(0.0027,-0.0089,-0.0017),(0.0024,-0.0091,-0.0015),(0.0033,-0.0090,-0.0027),(0.0030,-0.0086,-0.0027),(0.0025,-0.0072,-0.0021),(0.0030,-0.0086,-0.0024),(0.0026,-0.0071,-0.0025),(0.0007,-0.0081,-0.0025),(0.0025,-0.0052,-0.0031),(0.0022,-0.0054,-0.0011),(0.0024,-0.0073,-0.0016),(0.0024,-0.0053,-0.0019),(0.0002,-0.0061,0.0001),(-0.0002,-0.0059,-0.0015),(0.0006,-0.0082,-0.0020),(-0.0001,-0.0058,-0.0021),(0.0003,-0.0056,-0.0028),(-0.0006,-0.0041,-0.0018),(-0.0002,-0.0039,-0.0026),(0.0025,-0.0034,-0.0027),(0.0025,-0.0053,-0.0027),(0.0016,-0.0039,0.0002),(0.0021,-0.0037,-0.0006),(0.0018,-0.0056,-0.0004),(-0.0007,-0.0044,-0.0004),(-0.0002,-0.0060,-0.0009),(-0.0007,-0.0042,-0.0011),(-0.0012,-0.0026,-0.0007),(-0.0011,-0.0025,-0.0015),(0.0011,-0.0018,-0.0036),(0.0019,-0.0016,-0.0039),(0.0021,-0.0019,-0.0002),(0.0023,-0.0035,-0.0016),(0.0024,-0.0017,-0.0014),(-0.0002,-0.0044,0.0007),(-0.0000,-0.0026,0.0018),(-0.0006,-0.0027,0.0014),(-0.0009,-0.0011,0.0020),(-0.0006,-0.0022,-0.0026),(-0.0016,-0.0008,-0.0012),(-0.0010,-0.0005,-0.0025),(0.0025,-0.0016,-0.0021),(0.0025,-0.0000,-0.0012),(0.0027,0.0001,-0.0020),(0.0019,0.0013,0.0007),(0.0024,0.0015,-0.0009),(0.0020,-0.0002,0.0003),(-0.0002,0.0004,0.0028),(-0.0011,0.0004,0.0024),(-0.0001,-0.0010,0.0025),(-0.0014,0.0010,-0.0023),(0.0025,0.0037,-0.0023),(0.0027,0.0016,-0.0024),(0.0024,0.0038,-0.0030),(0.0011,0.0029,0.0024),(0.0013,0.0010,0.0018),(0.0019,0.0032,0.0012),(-0.0014,0.0024,0.0029),(-0.0021,0.0024,0.0022),(-0.0023,0.0028,-0.0005),(-0.0020,0.0007,-0.0010),(-0.0017,0.0031,-0.0020),(0.0022,0.0039,-0.0035),(0.0013,0.0038,-0.0039),(-0.0028,0.0049,0.0008),(-0.0032,0.0055,0.0019),(-0.0032,0.0060,0.0012),(-0.0028,0.0047,0.0018),(-0.0007,0.0057,-0.0027),(0.0006,0.0037,-0.0038),(-0.0005,0.0034,-0.0030),(0.0003,0.0060,-0.0034),(0.0021,0.0057,-0.0002),(0.0024,0.0036,-0.0015),(0.0022,0.0059,-0.0010),(0.0023,0.0035,-0.0006),(0.0002,0.0026,0.0031),(-0.0005,0.0025,0.0034),(-0.0018,0.0046,0.0034),(-0.0020,0.0052,0.0035),(-0.0000,0.0075,-0.0033),(0.0014,0.0070,0.0019),(0.0019,0.0075,0.0001),(0.0017,0.0054,0.0017),(0.0013,0.0087,0.0023),(0.0013,0.0100,0.0027),(-0.0028,0.0067,0.0001),(-0.0020,0.0053,-0.0016),(-0.0027,0.0050,-0.0001),(-0.0024,0.0070,-0.0011),(-0.0012,0.0072,-0.0023),(0.0008,0.0065,0.0033),(0.0010,0.0051,0.0029),(0.0020,0.0078,-0.0007),(0.0021,0.0087,-0.0006),(-0.0025,0.0025,0.0013),(-0.0024,0.0046,0.0027),(0.0023,0.0060,-0.0019),(-0.0025,0.0026,0.0004),(-0.0022,0.0006,-0.0001),(0.0015,-0.0005,0.0015),(0.0002,-0.0020,-0.0031),(0.0006,-0.0024,0.0015),(0.0024,-0.0035,-0.0021),(-0.0006,-0.0044,0.0002),(0.0021,-0.0075,-0.0011),(0.0026,-0.0071,-0.0028),(0.0010,-0.0055,-0.0032),(0.0029,-0.0087,-0.0021),(0.0027,-0.0095,-0.0017),(0.0033,-0.0090,-0.0025),(0.0024,-0.0053,-0.0023),(-0.0002,-0.0061,-0.0004),(0.0006,-0.0037,-0.0032),(0.0026,-0.0016,-0.0027),(0.0015,-0.0022,0.0009),(0.0006,-0.0008,0.0021),(-0.0018,-0.0009,-0.0003),(0.0027,0.0002,-0.0026),(0.0026,0.0016,-0.0017),(0.0005,0.0006,0.0025),(-0.0026,0.0053,0.0028)])))])])
)

### X3D model conversion complete ###

####################################################################################################
# Self-test diagnostics
####################################################################################################

print('Self-test diagnostics for tooth_incisor_27_43.py:')
if        metaDiagnostics(newModel): # built-in utility method in X3D class
    print(metaDiagnostics(newModel)) # display meta info, hint, warning, error, TODO values in this model
# print('check newModel.XML() serialization...')
newModelXML= newModel.XML() # test export method XML() for exceptions during export
newModel.XMLvalidate()
# print(newModelXML) # diagnostic

try:
#   print('check newModel.VRML() serialization...')
    newModelVRML=newModel.VRML() # test export method VRML() for exceptions during export
    # print(prependLineNumbers(newModelVRML)) # debug
    print("Python-to-VRML export of VRML output successful", flush=True)
except Exception as err: # usually BaseException
    # https://stackoverflow.com/questions/18176602/how-to-get-the-name-of-an-exception-that-was-caught-in-python
    print("*** Python-to-VRML export of VRML output failed:", type(err).__name__, err)
    if newModelVRML: # may have failed to generate
        print(prependLineNumbers(newModelVRML, err.lineno))

try:
#   print('check newModel.JSON() serialization...')
    newModelJSON=newModel.JSON() # test export method JSON() for exceptions during export
#   print(prependLineNumbers(newModelJSON)) # debug
    print("Python-to-JSON export of JSON output successful (under development)")
except Exception as err: # usually SyntaxError
    print("*** Python-to-JSON export of JSON output failed:", type(err).__name__, err)
    if newModelJSON: # may have failed to generate
        print(prependLineNumbers(newModelJSON,err.lineno))

print("python tooth_incisor_27_43.py load and self-test diagnostics complete.")
