#################################################################################################### # # Invoking X3D model self-test: # # $ python Doors.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. # #################################################################################################### from x3d import * newModel=X3D(profile='Immersive',version='3.1', head=head( children=[ meta(content='Doors.x3d',name='title'), meta(content='Doors and windows to the cab of the midsize black pickup truck',name='description'), meta(content='Donald Coomes',name='creator'), meta(content='1 September 2006',name='created'), meta(content='20 October 2019',name='modified'), meta(content='Geometry created with Wings3d and partially animated with Flux Studio',name='reference'), meta(content='ground vehicles',name='subject'), meta(content='none',name='warning'), meta(content='X3D-Edit, Wings3d, and Flux Studio',name='generator'), meta(content='https://savage.nps.edu/Savage/GroundVehicles/Truck/Doors.x3d',name='identifier'), meta(content='../../license.html',name='license')]), Scene=Scene( children=[ WorldInfo(title='Doors.x3d'), Group(DEF='Doors', children=[ Transform( children=[ Transform(DEF='CompleteRtDoor',center=(-2,0,1), children=[ Transform( children=[ Shape(DEF='RtDoor', appearance=Appearance( material=Material(DEF='Black1',diffuseColor=(.05,.05,.05),shininess=.1)), geometry=IndexedFaceSet(colorIndex=[0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1],coordIndex=[0,1,8,-1,0,8,111,-1,0,111,113,-1,0,113,5,-1,0,5,4,-1,0,3,2,-1,0,2,1,-1,0,4,7,-1,0,7,3,-1,1,2,16,-1,1,16,17,-1,1,17,126,-1,1,126,130,-1,1,130,8,-1,2,3,7,-1,2,7,6,-1,2,6,117,-1,2,117,114,-1,2,114,9,-1,2,9,132,-1,2,132,127,-1,2,127,16,-1,4,5,6,-1,4,6,7,-1,5,11,10,-1,5,10,6,-1,5,113,120,-1,5,120,11,-1,6,10,123,-1,6,123,117,-1,8,9,20,-1,8,20,19,-1,8,18,34,-1,8,34,25,-1,8,19,18,-1,8,25,43,-1,8,43,110,-1,8,110,111,-1,8,130,129,-1,8,129,131,-1,8,131,132,-1,8,132,9,-1,9,21,20,-1,9,114,115,-1,9,115,21,-1,10,11,15,-1,10,15,14,-1,10,14,13,-1,10,13,122,-1,10,122,123,-1,11,120,121,-1,11,121,12,-1,11,12,15,-1,12,13,14,-1,12,14,15,-1,12,17,16,-1,12,16,13,-1,12,121,126,-1,12,126,17,-1,13,16,127,-1,13,127,122,-1,18,19,20,-1,18,20,21,-1,18,21,115,-1,18,115,116,-1,18,116,97,-1,18,97,96,-1,18,96,108,-1,18,108,109,-1,18,109,110,-1,18,110,43,-1,18,43,34,-1,22,24,51,-1,22,51,33,-1,22,33,59,-1,22,59,55,-1,22,55,54,-1,22,54,53,-1,22,53,52,-1,22,52,23,-1,22,23,24,-1,23,42,51,-1,23,51,24,-1,23,52,56,-1,23,56,42,-1,25,26,92,-1,25,92,93,-1,25,93,94,-1,25,94,95,-1,25,95,44,-1,25,44,43,-1,25,34,35,-1,25,35,84,-1,25,84,85,-1,25,85,86,-1,25,86,87,-1,25,87,26,-1,26,27,45,-1,26,45,44,-1,26,44,95,-1,26,95,94,-1,26,94,93,-1,26,93,92,-1,27,28,46,-1,27,46,45,-1,27,83,79,-1,27,79,28,-1,28,29,47,-1,28,47,46,-1,28,79,75,-1,28,75,29,-1,29,30,48,-1,29,48,47,-1,29,75,71,-1,29,71,30,-1,30,31,49,-1,30,49,48,-1,30,71,67,-1,30,67,31,-1,31,32,50,-1,31,50,49,-1,31,67,63,-1,31,63,32,-1,32,33,51,-1,32,51,50,-1,32,63,59,-1,32,59,33,-1,34,43,44,-1,34,44,88,-1,34,88,89,-1,34,89,90,-1,34,90,91,-1,34,91,35,-1,35,36,80,-1,35,80,84,-1,35,91,90,-1,35,90,89,-1,35,89,88,-1,35,88,44,-1,35,44,45,-1,35,45,36,-1,36,37,76,-1,36,76,80,-1,36,45,46,-1,36,46,37,-1,37,38,72,-1,37,72,76,-1,37,46,47,-1,37,47,38,-1,38,39,68,-1,38,68,72,-1,38,47,48,-1,38,48,39,-1,39,40,64,-1,39,64,68,-1,39,48,49,-1,39,49,40,-1,40,41,60,-1,40,60,64,-1,40,49,50,-1,40,50,41,-1,41,42,56,-1,41,56,60,-1,41,50,51,-1,41,51,42,-1,52,53,57,-1,52,57,56,-1,53,54,58,-1,53,58,57,-1,54,55,59,-1,54,59,58,-1,56,57,61,-1,56,61,60,-1,57,58,62,-1,57,62,61,-1,58,59,63,-1,58,63,62,-1,60,61,65,-1,60,65,64,-1,61,62,66,-1,61,66,65,-1,62,63,67,-1,62,67,66,-1,64,65,69,-1,64,69,68,-1,65,66,70,-1,65,70,69,-1,66,67,71,-1,66,71,70,-1,68,69,73,-1,68,73,72,-1,69,70,74,-1,69,74,73,-1,70,71,75,-1,70,75,74,-1,72,73,77,-1,72,77,76,-1,73,74,78,-1,73,78,77,-1,74,75,79,-1,74,79,78,-1,76,77,81,-1,76,81,80,-1,77,78,82,-1,77,82,81,-1,78,79,83,-1,78,83,82,-1,80,81,85,-1,80,85,84,-1,81,82,86,-1,81,86,85,-1,82,83,87,-1,82,87,86,-1,96,97,100,-1,96,100,103,-1,96,98,112,-1,96,112,108,-1,96,103,102,-1,96,102,98,-1,97,99,101,-1,97,101,100,-1,97,116,118,-1,97,118,99,-1,98,99,118,-1,98,118,124,-1,98,124,119,-1,98,119,112,-1,98,102,101,-1,98,101,99,-1,100,101,105,-1,100,105,104,-1,100,104,107,-1,100,107,103,-1,101,102,106,-1,101,106,105,-1,102,103,107,-1,102,107,106,-1,104,105,106,-1,104,106,107,-1,108,111,110,-1,108,110,109,-1,108,112,113,-1,108,113,111,-1,112,119,120,-1,112,120,113,-1,114,116,115,-1,114,117,118,-1,114,118,116,-1,117,123,124,-1,117,124,118,-1,119,121,120,-1,119,124,128,-1,119,128,125,-1,119,125,126,-1,119,126,121,-1,122,124,123,-1,122,127,128,-1,122,128,124,-1,125,128,131,-1,125,131,129,-1,125,129,130,-1,125,130,126,-1,127,132,131,-1,127,131,128,-1],creaseAngle=0.524, coord=Coordinate(point=[(-2.05975,-.636,1),(-2.05975,.636,1),(-1.94015,.636,1),(-1.94015,-.636,1),(-2.05975,-.636,-1),(-2.05975,.636,-1),(-1.94015,.636,-1),(-1.94015,-.636,-1),(-2.05975,.636,.8),(-1.94015,.636,.8),(-1.94015,1.69664,-1),(-2.05975,1.69664,-1),(-2.05975,1.80231,-.8),(-1.94015,1.80231,-.8),(-1.94015,1.80231,-1),(-2.05975,1.80231,-1),(-1.94015,1.80231,-.22389),(-2.05975,1.80231,-.22389),(-2.05975,.85284,.6),(-2.05975,.8161,.71587),(-1.94015,.8161,.71587),(-1.94015,.85284,.6),(-2.46024,.636,.67203),(-2.46024,.85284,.6),(-2.46024,.636,.6),(-2.0998,.65985,.756),(-2.13984,.67738,.72367),(-2.17989,.636,.67203),(-2.21994,.636,.67203),(-2.25999,.636,.67203),(-2.30004,.636,.67203),(-2.34009,.636,.67203),(-2.38014,.636,.67203),(-2.42019,.636,.67203),(-2.0998,.80513,.622),(-2.13984,.77008,.63817),(-2.17989,.85284,.6),(-2.21994,.85284,.6),(-2.25999,.85284,.6),(-2.30004,.85284,.6),(-2.34009,.85284,.6),(-2.38014,.85284,.6),(-2.42019,.85284,.6),(-2.0998,.65985,.622),(-2.13984,.67738,.63817),(-2.17989,.636,.6),(-2.21994,.636,.6),(-2.25999,.636,.6),(-2.30004,.636,.6),(-2.34009,.636,.6),(-2.38014,.636,.6),(-2.42019,.636,.6),(-2.44734,.82606,.64948),(-2.44174,.7898,.7037),(-2.42596,.75236,.74962),(-2.43563,.66633,.72564),(-2.41098,.82606,.64948),(-2.40698,.7898,.7037),(-2.39571,.75236,.74962),(-2.40262,.66633,.72564),(-2.37461,.82606,.64948),(-2.37221,.7898,.7037),(-2.36545,.75236,.74962),(-2.3696,.66633,.72564),(-2.33825,.82606,.64948),(-2.33745,.7898,.7037),(-2.33519,.75236,.74962),(-2.33658,.66633,.72564),(-2.30188,.82606,.64948),(-2.30268,.7898,.7037),(-2.30494,.75236,.74962),(-2.30356,.66633,.72564),(-2.26552,.82606,.64948),(-2.26792,.7898,.7037),(-2.27468,.75236,.74962),(-2.27054,.66633,.72564),(-2.22916,.82606,.64948),(-2.23316,.7898,.7037),(-2.24443,.75236,.74962),(-2.23752,.66633,.72564),(-2.19279,.82606,.64948),(-2.19839,.7898,.7037),(-2.21417,.75236,.74962),(-2.2045,.66633,.72564),(-2.13984,.75154,.65527),(-2.13984,.733,.67237),(-2.13984,.71446,.68947),(-2.13984,.69592,.70657),(-2.13984,.69592,.63817),(-2.13984,.71446,.63817),(-2.13984,.733,.63817),(-2.13984,.75154,.63817),(-2.13984,.67738,.70657),(-2.13984,.67738,.68947),(-2.13984,.67738,.67237),(-2.13984,.67738,.65527),(-2.01988,.636,.6),(-1.98001,.636,.6),(-2.01988,.636,-.8),(-1.98001,.636,-.8),(-1.98001,.64091,.6),(-1.98001,.64091,-.8),(-2.01988,.64091,-.8),(-2.01988,.64091,.6),(-1.99312,.65402,.5869),(-1.99312,.65402,-.7869),(-2.00678,.65402,-.7869),(-2.00678,.65402,.5869),(-2.03849,.636,.6),(-2.05975,.65726,.6),(-2.07626,.64584,.60907),(-2.05975,.636,.62126),(-2.03849,.636,-.8),(-2.05975,.636,-.82125),(-1.94015,.636,.62126),(-1.94015,.65726,.6),(-1.9614,.636,.6),(-1.94015,.636,-.82125),(-1.9614,.636,-.8),(-2.03849,1.69664,-.8),(-2.05975,1.69664,-.82125),(-2.05975,1.71789,-.8),(-1.94015,1.71789,-.8),(-1.94015,1.69664,-.82125),(-1.9614,1.69664,-.8),(-2.03849,1.69664,-.22389),(-2.05975,1.71789,-.22389),(-1.94015,1.71789,-.22389),(-1.9614,1.69664,-.22389),(-2.03849,.84813,.59522),(-2.05975,.83283,.60998),(-1.9614,.84813,.59522),(-1.94015,.83283,.60998)])))]), Group( children=[ Transform(DEF='RtWindow', children=[ Shape( appearance=Appearance( material=Material(DEF='ClearGlass',diffuseColor=(0,0,.25),transparency=.5)), geometry=IndexedFaceSet(colorIndex=[0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1],coordIndex=[0,1,8,-1,0,8,9,-1,0,9,10,-1,0,10,11,-1,0,11,12,-1,0,12,13,-1,0,13,14,-1,0,14,15,-1,0,15,16,-1,0,16,5,-1,0,5,4,-1,0,4,26,-1,0,3,2,-1,0,2,1,-1,0,26,27,-1,0,27,3,-1,1,2,17,-1,1,17,8,-1,3,27,7,-1,3,7,21,-1,3,21,20,-1,3,20,19,-1,3,19,18,-1,3,18,17,-1,3,17,2,-1,21,7,6,-1,21,6,25,-1,21,25,24,-1,21,24,23,-1,21,23,22,-1,4,5,6,-1,4,6,7,-1,4,7,27,-1,4,27,26,-1,5,16,25,-1,5,25,6,-1,8,17,18,-1,8,18,9,-1,9,18,19,-1,9,19,10,-1,10,19,20,-1,10,20,11,-1,11,20,21,-1,11,21,12,-1,12,21,22,-1,12,22,13,-1,13,22,23,-1,13,23,14,-1,14,23,24,-1,14,24,15,-1,15,24,25,-1,15,25,16,-1],creaseAngle=0.524, coord=Coordinate(point=[(-1.99157,.89132,.58861),(-1.99156,.64851,.58859),(-2.00837,.64851,.59712),(-2.00838,.89132,.59714),(-1.99152,1.69664,-.81842),(-1.99147,.64851,-.81844),(-2.00827,.64851,-.82679),(-2.00833,1.69664,-.82677),(-1.99155,.64851,.44789),(-1.99154,.64851,.30718),(-1.99153,.64851,.16648),(-1.99152,.64851,.02578),(-1.99151,.64851,-.11493),(-1.9915,.64851,-.25563),(-1.99149,.64851,-.39633),(-1.99149,.64851,-.53704),(-1.99148,.64851,-.67774),(-2.00836,.64851,.45473),(-2.00835,.64851,.31234),(-2.00834,.64851,.16995),(-2.00833,.64851,.02755),(-2.00832,.64851,-.11484),(-2.00831,.64851,-.25723),(-2.0083,.64851,-.39962),(-2.00829,.64851,-.54201),(-2.00828,.64851,-.6844),(-1.99156,1.69664,-.22095),(-2.00837,1.69664,-.22214)])))]), TimeSensor(DEF='RtWindowClock',cycleInterval=8.000), TouchSensor(DEF='RtWindowSensor',description='Touch to roll down passenger window')])]), TimeSensor(DEF='RtDoorClock',cycleInterval=8.000), TouchSensor(DEF='RtDoorSensor',description='Touch to open passenger door')]), Transform( children=[ Transform(DEF='CompleteLftDoor',center=(2,0,1), children=[ Group( children=[ Transform(DEF='LftWindow', children=[ Shape( appearance=Appearance( material=Material(USE='ClearGlass')), geometry=IndexedFaceSet(colorIndex=[0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1],coordIndex=[0,1,8,-1,0,8,9,-1,0,9,10,-1,0,10,11,-1,0,11,12,-1,0,12,13,-1,0,13,14,-1,0,14,15,-1,0,15,16,-1,0,16,5,-1,0,5,4,-1,0,4,26,-1,0,3,2,-1,0,2,1,-1,0,26,27,-1,0,27,3,-1,1,2,17,-1,1,17,8,-1,3,27,7,-1,3,7,21,-1,3,21,20,-1,3,20,19,-1,3,19,18,-1,3,18,17,-1,3,17,2,-1,21,7,6,-1,21,6,25,-1,21,25,24,-1,21,24,23,-1,21,23,22,-1,4,5,6,-1,4,6,7,-1,4,7,27,-1,4,27,26,-1,5,16,25,-1,5,25,6,-1,8,17,18,-1,8,18,9,-1,9,18,19,-1,9,19,10,-1,10,19,20,-1,10,20,11,-1,11,20,21,-1,11,21,12,-1,12,21,22,-1,12,22,13,-1,13,22,23,-1,13,23,14,-1,14,23,24,-1,14,24,15,-1,15,24,25,-1,15,25,16,-1],creaseAngle=0.524, coord=Coordinate(point=[(2.00832,.89132,.60292),(2.00833,.64851,.6029),(1.99152,.64851,.6029),(1.99151,.89132,.60292),(2.00837,1.69664,-.83702),(2.00842,.64851,-.83704),(1.99161,.64851,-.83705),(1.99156,1.69664,-.83702),(2.00834,.64851,.45891),(2.00835,.64851,.31491),(2.00836,.64851,.17092),(2.00837,.64851,.02692),(2.00837,.64851,-.11707),(2.00838,.64851,-.26107),(2.00839,.64851,-.40506),(2.0084,.64851,-.54906),(2.00841,.64851,-.69305),(1.99153,.64851,.4589),(1.99154,.64851,.31491),(1.99155,.64851,.17092),(1.99156,.64851,.02692),(1.99157,.64851,-.11707),(1.99157,.64851,-.26107),(1.99158,.64851,-.40506),(1.99159,.64851,-.54906),(1.9916,.64851,-.69305),(2.00833,1.69664,-.22558),(1.99152,1.69664,-.22558)])))]), TimeSensor(DEF='LftWindowClock',cycleInterval=8.000), TouchSensor(DEF='LftWindowSensor',description='Touch to roll down driver side window')]), Transform( children=[ Shape(DEF='LftDoor', appearance=Appearance( material=Material(USE='Black1')), geometry=IndexedFaceSet(colorIndex=[0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1],coordIndex=[0,1,8,-1,0,8,106,-1,0,106,109,-1,0,109,5,-1,0,5,4,-1,0,3,2,-1,0,2,1,-1,0,4,7,-1,0,7,3,-1,1,2,16,-1,1,16,17,-1,1,17,122,-1,1,122,126,-1,1,126,8,-1,2,3,7,-1,2,7,6,-1,2,6,113,-1,2,113,111,-1,2,111,9,-1,2,9,128,-1,2,128,123,-1,2,123,16,-1,4,5,6,-1,4,6,7,-1,5,11,10,-1,5,10,6,-1,5,109,116,-1,5,116,11,-1,6,10,119,-1,6,119,113,-1,8,9,19,-1,8,19,18,-1,8,18,130,-1,8,130,129,-1,8,126,125,-1,8,125,127,-1,8,127,128,-1,8,128,9,-1,8,129,106,-1,9,32,23,-1,9,23,135,-1,9,135,134,-1,9,111,112,-1,9,112,41,-1,9,41,32,-1,9,134,133,-1,9,133,19,-1,10,11,15,-1,10,15,14,-1,10,14,13,-1,10,13,118,-1,10,118,119,-1,11,116,117,-1,11,117,12,-1,11,12,15,-1,12,13,14,-1,12,14,15,-1,12,17,16,-1,12,16,13,-1,12,117,122,-1,12,122,17,-1,13,16,123,-1,13,123,118,-1,18,19,133,-1,18,133,132,-1,18,132,131,-1,18,131,130,-1,20,22,49,-1,20,49,31,-1,20,31,57,-1,20,57,53,-1,20,22,21,-1,20,21,50,-1,20,50,51,-1,20,51,52,-1,20,52,53,-1,21,40,49,-1,21,49,22,-1,21,50,54,-1,21,54,40,-1,23,24,90,-1,23,90,91,-1,23,91,92,-1,23,92,93,-1,23,93,42,-1,23,42,41,-1,23,32,33,-1,23,33,82,-1,23,82,83,-1,23,83,84,-1,23,84,85,-1,23,85,24,-1,23,41,112,-1,23,112,135,-1,24,25,43,-1,24,43,42,-1,24,42,93,-1,24,93,92,-1,24,92,91,-1,24,91,90,-1,24,85,81,-1,24,81,25,-1,25,26,44,-1,25,44,43,-1,25,81,77,-1,25,77,26,-1,26,27,45,-1,26,45,44,-1,26,77,73,-1,26,73,27,-1,27,28,46,-1,27,46,45,-1,27,73,69,-1,27,69,28,-1,28,29,47,-1,28,47,46,-1,28,69,65,-1,28,65,29,-1,29,30,48,-1,29,48,47,-1,29,65,61,-1,29,61,30,-1,30,31,49,-1,30,49,48,-1,30,61,57,-1,30,57,31,-1,32,41,42,-1,32,42,86,-1,32,86,87,-1,32,87,88,-1,32,88,89,-1,32,89,33,-1,33,89,88,-1,33,88,87,-1,33,87,86,-1,33,86,42,-1,33,42,43,-1,33,43,34,-1,34,35,74,-1,34,74,78,-1,34,43,44,-1,34,44,35,-1,35,36,70,-1,35,70,74,-1,35,44,45,-1,35,45,36,-1,36,37,66,-1,36,66,70,-1,36,45,46,-1,36,46,37,-1,37,38,62,-1,37,62,66,-1,37,46,47,-1,37,47,38,-1,38,39,58,-1,38,58,62,-1,38,47,48,-1,38,48,39,-1,39,40,54,-1,39,54,58,-1,39,48,49,-1,39,49,40,-1,50,51,55,-1,50,55,54,-1,51,52,56,-1,51,56,55,-1,52,53,57,-1,52,57,56,-1,54,55,59,-1,54,59,58,-1,55,56,60,-1,55,60,59,-1,56,57,61,-1,56,61,60,-1,58,59,63,-1,58,63,62,-1,59,60,64,-1,59,64,63,-1,60,61,65,-1,60,65,64,-1,62,63,67,-1,62,67,66,-1,63,64,68,-1,63,68,67,-1,64,65,69,-1,64,69,68,-1,66,67,71,-1,66,71,70,-1,67,68,72,-1,67,72,71,-1,68,69,73,-1,68,73,72,-1,70,71,75,-1,70,75,74,-1,71,72,76,-1,71,76,75,-1,72,73,77,-1,72,77,76,-1,74,75,79,-1,74,79,78,-1,75,76,80,-1,75,80,79,-1,76,77,81,-1,76,81,80,-1,78,79,83,-1,78,83,82,-1,79,80,84,-1,79,84,83,-1,80,81,85,-1,80,85,84,-1,94,95,98,-1,94,98,101,-1,94,96,108,-1,94,108,107,-1,94,101,100,-1,94,100,96,-1,94,107,131,-1,94,131,132,-1,94,132,110,-1,94,110,95,-1,95,97,99,-1,95,99,98,-1,95,110,114,-1,95,114,97,-1,96,97,114,-1,96,114,120,-1,96,120,115,-1,96,115,108,-1,96,100,99,-1,96,99,97,-1,98,99,103,-1,98,103,102,-1,98,102,105,-1,98,105,101,-1,99,100,104,-1,99,104,103,-1,100,101,105,-1,100,105,104,-1,102,103,104,-1,102,104,105,-1,106,107,108,-1,106,108,109,-1,106,129,131,-1,106,131,107,-1,108,115,116,-1,108,116,109,-1,110,111,113,-1,110,113,114,-1,110,112,111,-1,110,132,135,-1,110,135,112,-1,113,119,120,-1,113,120,114,-1,115,117,116,-1,115,120,124,-1,115,124,121,-1,115,121,122,-1,115,122,117,-1,118,120,119,-1,118,123,124,-1,118,124,120,-1,121,124,127,-1,121,127,125,-1,121,125,126,-1,121,126,122,-1,123,128,127,-1,123,127,124,-1,129,130,131,-1,132,133,134,-1,132,134,135,-1],creaseAngle=0.524, coord=Coordinate(point=[(1.94015,-.636,1),(1.94015,.636,1),(2.05975,.636,1),(2.05975,-.636,1),(1.94015,-.636,-1),(1.94015,.636,-1),(2.05975,.636,-1),(2.05975,-.636,-1),(1.94015,.636,.8),(2.05975,.636,.8),(2.05975,1.69664,-1),(1.94015,1.69664,-1),(1.94015,1.80231,-.8),(2.05975,1.80231,-.8),(2.05975,1.80231,-1),(1.94015,1.80231,-1),(2.05975,1.80231,-.22389),(1.94015,1.80231,-.22389),(1.94015,.8161,.71587),(2.05975,.8161,.71587),(2.46024,.85284,.6),(2.46024,.636,.67203),(2.46024,.636,.6),(2.0998,.80513,.622),(2.13984,.77008,.63817),(2.17989,.85284,.6),(2.21994,.85284,.6),(2.25999,.85284,.6),(2.30004,.85284,.6),(2.34009,.85284,.6),(2.38014,.85284,.6),(2.42019,.85284,.6),(2.0998,.65985,.756),(2.13984,.67738,.72367),(2.17989,.636,.67203),(2.21994,.636,.67203),(2.25999,.636,.67203),(2.30004,.636,.67203),(2.34009,.636,.67203),(2.38014,.636,.67203),(2.42019,.636,.67203),(2.0998,.65985,.622),(2.13984,.67738,.63817),(2.17989,.636,.6),(2.21994,.636,.6),(2.25999,.636,.6),(2.30004,.636,.6),(2.34009,.636,.6),(2.38014,.636,.6),(2.42019,.636,.6),(2.43563,.66633,.72564),(2.42596,.75236,.74962),(2.44174,.7898,.7037),(2.44734,.82606,.64948),(2.40262,.66633,.72564),(2.39571,.75236,.74962),(2.40698,.7898,.7037),(2.41098,.82606,.64948),(2.3696,.66633,.72564),(2.36545,.75236,.74962),(2.37221,.7898,.7037),(2.37461,.82606,.64948),(2.33658,.66633,.72564),(2.33519,.75236,.74962),(2.33745,.7898,.7037),(2.33825,.82606,.64948),(2.30356,.66633,.72564),(2.30494,.75236,.74962),(2.30268,.7898,.7037),(2.30188,.82606,.64948),(2.27054,.66633,.72564),(2.27468,.75236,.74962),(2.26792,.7898,.7037),(2.26552,.82606,.64948),(2.23752,.66633,.72564),(2.24443,.75236,.74962),(2.23316,.7898,.7037),(2.22916,.82606,.64948),(2.2045,.66633,.72564),(2.21417,.75236,.74962),(2.19839,.7898,.7037),(2.19279,.82606,.64948),(2.13984,.69592,.70657),(2.13984,.71446,.68947),(2.13984,.733,.67237),(2.13984,.75154,.65527),(2.13984,.67738,.65527),(2.13984,.67738,.67237),(2.13984,.67738,.68947),(2.13984,.67738,.70657),(2.13984,.75154,.63817),(2.13984,.733,.63817),(2.13984,.71446,.63817),(2.13984,.69592,.63817),(1.98001,.636,.6),(2.01988,.636,.6),(1.98001,.636,-.8),(2.01988,.636,-.8),(2.01988,.64091,.6),(2.01988,.64091,-.8),(1.98001,.64091,-.8),(1.98001,.64091,.6),(2.00678,.65402,.5869),(2.00678,.65402,-.7869),(1.99312,.65402,-.7869),(1.99312,.65402,.5869),(1.94015,.636,.62126),(1.9614,.636,.6),(1.9614,.636,-.8),(1.94015,.636,-.82125),(2.03849,.636,.6),(2.05975,.636,.62126),(2.07626,.64584,.60907),(2.05975,.636,-.82125),(2.03849,.636,-.8),(1.9614,1.69664,-.8),(1.94015,1.69664,-.82125),(1.94015,1.71789,-.8),(2.05975,1.71789,-.8),(2.05975,1.69664,-.82125),(2.03849,1.69664,-.8),(1.9614,1.69664,-.22389),(1.94015,1.71789,-.22389),(2.05975,1.71789,-.22389),(2.03849,1.69664,-.22389),(1.9614,.84813,.59522),(1.94015,.83283,.60998),(2.03849,.84813,.59522),(2.05975,.83283,.60998),(1.94015,.83721,.61441),(1.94015,.84641,.62026),(1.9614,.85284,.6),(2.03849,.85284,.6),(2.05975,.84641,.62026),(2.05975,.83721,.61441),(2.07263,.83749,.60708)])))])]), TouchSensor(DEF='LftDoorSensor',description='Touch to open driver side door'), TimeSensor(DEF='LftDoorClock',cycleInterval=6.000)])]), OrientationInterpolator(DEF='LftDoorOI',key=[0,.24998,.49997,.75,1],keyValue=[(0,1,0,0),(0,1,0,-.262),(0,1,0,-.524),(0,1,0,-.785),(0,1,0,-1.222)]), PositionInterpolator(DEF='LftWindowPI',key=[0,.5,1],keyValue=[(0,0,0),(0,-1,0),(0,0,0)]), OrientationInterpolator(DEF='RtDoorOI',key=[0,.24998,.49998,.75,1],keyValue=[(0,1,0,0),(0,1,0,.524),(0,1,0,1.134),(0,1,0,.524),(0,1,0,0)]), PositionInterpolator(DEF='RtWindowPI',key=[0,.5,1],keyValue=[(0,0,0),(0,-1,0),(0,0,0)]), ROUTE(fromField='touchTime',fromNode='LftDoorSensor',toField='startTime',toNode='LftDoorClock'), ROUTE(fromField='fraction_changed',fromNode='LftDoorClock',toField='set_fraction',toNode='LftDoorOI'), ROUTE(fromField='value_changed',fromNode='LftDoorOI',toField='set_rotation',toNode='CompleteLftDoor'), ROUTE(fromField='fraction_changed',fromNode='LftWindowClock',toField='set_fraction',toNode='LftWindowPI'), ROUTE(fromField='value_changed',fromNode='LftWindowPI',toField='set_translation',toNode='LftWindow'), ROUTE(fromField='touchTime',fromNode='LftWindowSensor',toField='startTime',toNode='LftWindowClock'), ROUTE(fromField='fraction_changed',fromNode='RtDoorClock',toField='set_fraction',toNode='RtDoorOI'), ROUTE(fromField='value_changed',fromNode='RtDoorOI',toField='set_rotation',toNode='CompleteRtDoor'), ROUTE(fromField='touchTime',fromNode='RtDoorSensor',toField='startTime',toNode='RtDoorClock'), ROUTE(fromField='fraction_changed',fromNode='RtWindowClock',toField='set_fraction',toNode='RtWindowPI'), ROUTE(fromField='value_changed',fromNode='RtWindowPI',toField='set_translation',toNode='RtWindow'), ROUTE(fromField='touchTime',fromNode='RtWindowSensor',toField='startTime',toNode='RtWindowClock')]) ) # X3D model complete #################################################################################################### # Self-test diagnostics #################################################################################################### print('Self-test diagnostics for Doors.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 Doors.py load and self-test diagnostics complete.")