#################################################################################################### # # Invoking X3D model self-test: # # $ python TranslatedAv8bHarrier.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.0', head=head( children=[ meta(content='TranslatedAv8bHarrier.x3d',name='title'), meta(content='Harrier Av8b, originally translated from web model authored by Soji Yamakawa and used as part of Saratoga carrier animation.',name='description'), meta(content='Soji Yamakawa',name='creator'), meta(content='Daniel Siew',name='translator'), meta(content='7 March 2001',name='created'), meta(content='20 October 2019',name='modified'), meta(content='http://ciel.me.cmu.edu/soji/aircraft/aircrafte.html',name='reference'), meta(content='../../ShipsMilitary/Carrier-UnitedStates-Saratoga/chapter.html',name='reference'), meta(content='https://savage.nps.edu/Savage/AircraftFixedWing/AV8bHarrierUnitedStates/TranslatedAv8bHarrier.x3d',name='identifier'), meta(content='X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit',name='generator'), meta(content='../../license.html',name='license')]), Scene=Scene( children=[ WorldInfo(title='TranslatedAv8bHarrier.x3d'), Background(groundAngle=[1.309,1.570796],groundColor=[(0,.2,.7),(0,.5,1),(1,1,1)],skyAngle=[1.309,1.571],skyColor=[(0,.2,.7),(0,.5,1),(1,1,1)]), Transform(rotation=(0,1,0,3.14), children=[ Shape(DEF='Fuselage', geometry=IndexedFaceSet(coordIndex=[0,1,2,3,-1,4,5,6,7,-1,6,8,9,10,-1,5,11,8,6,-1,11,12,13,8,-1,12,14,15,13,-1,9,8,13,16,-1,16,13,15,17,-1,29,30,31,-1,32,33,5,4,-1,34,35,33,32,-1,33,36,11,5,-1,35,37,36,33,-1,36,38,12,11,-1,37,39,38,36,-1,38,40,14,12,-1,39,41,42,40,38,-1,43,0,3,-1,44,4,7,-1,44,32,4,-1,43,45,46,-1,47,48,17,15,-1,49,50,51,52,-1,40,42,50,49,-1,50,42,54,-1,42,41,55,-1,42,55,54,-1,54,56,50,-1,51,50,56,-1,57,58,59,60,-1,56,61,51,-1,48,62,51,61,-1,63,57,64,-1,48,61,65,-1,64,57,60,66,-1,67,68,69,70,66,-1,71,72,73,74,-1,67,75,76,68,-1,77,78,79,80,-1,55,81,78,77,-1,78,82,83,79,-1,81,84,82,78,-1,82,85,86,83,-1,84,87,85,82,-1,85,88,89,86,-1,87,90,88,85,-1,56,54,80,-1,54,77,80,-1,54,55,77,-1,48,65,17,-1,91,92,93,94,-1,63,95,96,97,-1,92,98,99,93,-1,100,101,98,92,-1,98,102,103,99,-1,101,104,102,98,-1,102,105,106,103,-1,107,108,97,109,-1,72,71,110,111,-1,112,17,91,-1,17,65,91,-1,63,64,95,-1,64,66,95,-1,66,113,114,95,-1,113,66,115,116,114,-1,117,118,119,120,-1,121,122,123,124,125,-1,118,126,127,119,-1,128,129,118,117,-1,130,131,132,133,-1,129,134,126,118,-1,131,135,136,132,-1,136,137,138,-1,139,136,135,-1,124,123,30,-1,127,126,140,-1,126,141,140,-1,126,142,141,-1,140,143,127,-1,69,144,145,70,-1,146,70,145,147,148,-1,148,147,145,144,-1,88,90,149,-1,89,88,149,-1,130,133,76,-1,144,76,133,-1,128,117,150,-1,105,151,106,-1,152,153,154,-1,154,155,152,-1,156,117,120,-1,157,158,144,155,-1,156,150,117,-1,159,143,140,160,161,-1,140,141,162,160,-1,141,142,110,162,-1,161,160,163,164,-1,160,162,165,163,-1,162,110,166,165,-1,164,163,165,166,-1,168,30,123,-1,174,10,175,176,-1,176,175,177,178,-1,10,179,180,175,-1,175,180,181,177,-1,180,182,183,181,-1,182,184,185,183,-1,186,182,180,179,-1,187,184,182,186,-1,188,189,190,191,-1,74,73,192,161,-1,190,193,137,194,-1,192,111,195,196,-1,161,192,196,197,159,-1,198,199,200,-1,178,177,201,202,-1,202,201,35,34,-1,177,181,203,201,-1,201,203,37,35,-1,181,183,204,203,-1,203,204,39,37,-1,183,185,205,204,-1,204,205,206,41,39,-1,3,207,43,-1,207,208,43,-1,208,209,43,-1,209,45,43,-1,184,187,210,211,-1,212,213,214,215,-1,215,214,206,205,-1,20,216,19,217,-1,218,206,214,-1,55,41,206,-1,218,55,206,-1,214,219,218,-1,219,214,213,-1,220,221,222,223,-1,213,224,219,-1,224,213,225,210,-1,226,223,227,-1,228,224,210,-1,229,198,200,-1,230,220,223,226,-1,230,231,232,233,234,-1,229,200,235,-1,236,237,238,239,-1,240,241,242,243,-1,243,242,81,55,-1,241,239,244,242,-1,242,244,84,81,-1,239,238,245,244,-1,244,245,87,84,-1,238,237,246,245,-1,245,246,90,87,-1,240,218,219,-1,240,243,218,-1,243,55,218,-1,187,228,210,-1,94,93,247,248,-1,249,250,53,227,-1,93,99,251,247,-1,247,251,252,253,-1,99,103,254,251,-1,251,254,255,252,-1,103,106,235,254,-1,109,249,256,107,-1,235,151,229,-1,248,187,257,-1,248,228,187,-1,53,226,227,-1,53,230,226,-1,53,258,24,230,-1,258,259,25,230,24,-1,26,259,260,261,231,-1,229,262,263,198,-1,125,124,29,264,265,-1,262,266,267,263,-1,198,263,268,269,-1,269,268,270,149,-1,271,272,273,274,-1,274,273,135,131,-1,272,137,273,-1,135,273,139,-1,30,29,124,-1,196,267,266,-1,196,195,267,-1,194,137,272,-1,266,197,196,-1,231,275,216,232,-1,260,18,275,231,261,-1,216,275,18,260,-1,149,90,246,-1,130,276,277,-1,237,269,149,-1,269,237,199,-1,199,198,269,-1,106,151,235,-1,151,280,262,229,-1,153,125,265,-1,216,260,19,-1,260,217,19,-1,230,25,26,231,-1,25,259,26,-1,281,260,259,-1,281,282,217,260,-1,282,20,217,-1,221,283,284,222,-1,221,234,283,-1,211,225,213,212,-1,211,210,225,-1,262,280,287,-1,266,262,287,-1,62,48,47,-1,52,51,62,47,-1,294,67,59,-1,58,295,294,59,-1,157,155,154,-1,148,157,154,296,-1,116,148,296,-1,169,116,115,-1,70,169,115,66,-1,146,148,116,169,-1,70,146,169,-1,158,157,148,-1,158,148,144,-1,121,125,153,-1,152,297,121,153,-1,122,121,297,-1,122,297,123,-1],creaseAngle=1.78,solid=False, coord=Coordinate(DEF='BI_COORD',point=[(-0.35,-0.32,-6.71),(-0.44,-0.17,-5.91),(0,0.25,-5.9),(0,0,-6.7),(-0.35,-0.5,-6.7),(-0.45,-0.5,-5.9),(-0.44,-0.17,-5.91),(-0.35,-0.32,-6.71),(-0.44,0.11,-5.01),(-0.32,0.23,-5),(0,0.25,-5.9),(-0.45,-0.5,-5),(-0.45,-0.5,-4.55),(-0.44,0.25,-4.56),(-0.45,-0.5,-3.93),(-0.44,0.31,-4.05),(-0.34,0.36,-4.55),(-0.26,0.57,-3.55),(0.6,0.54,0.65),(0.62,0.53,1.09),(0.7,0.5,2.05),(4.62,0.05,2.42),(4.62,0.08,1.58),(3.79,0.18,0.71),(0.69,0.59,-0.95),(0.64,0.57,-0.27),(0.64,0.57,0),(2.78,0.32,0),(1.45,0.49,-0.92),(0.19,0.79,4.91),(0,0.85,6.5),(0.11,0.79,6.5),(-0.33,-0.54,-6.7),(-0.34,-0.68,-5.9),(0,-0.7,-6.7),(0,-0.85,-5.9),(-0.3,-0.8,-5),(0,-0.95,-5),(-0.3,-0.8,-4.55),(0,-0.95,-4.55),(-0.3,-0.8,-3.9),(0,-0.95,-3.55),(-0.3,-0.8,-3.55),(0,-0.43,-7.22),(0,-0.43,-7.22),(0,-0.7,-6.7),(-0.33,-0.54,-6.7),(-0.69,0.28,-4.03),(-0.83,0.5,-3.58),(-0.89,-0.64,-3.91),(-0.93,-0.63,-3.54),(-1.1,0,-3.55),(-1,-0.25,-3.95),(0.75,0.6,-1.6),(-0.65,-0.7,-2.6),(0,-0.95,-1.8),(-1.13,-0.35,-2.63),(-1.13,0.25,-2.62),(-1.13,-0.35,-2.63),(-1.15,-0.35,-1.6),(-1.15,0.25,-1.6),(-1.13,0.25,-2.62),(-0.96,0.25,-3.57),(-0.8,0.6,-2.6),(-0.8,0.25,-1.6),(-0.8,0.6,-2.6),(-0.85,0.25,-0.95),(-0.85,-0.35,-0.95),(-0.9,-0.35,0.65),(-0.9,0.25,0.65),(-0.87,0.25,0),(0.03,0.45,7.14),(0.22,0.57,7.14),(0.22,0.68,7.14),(0.03,0.8,7.14),(-0.65,-0.35,0.65),(-0.65,-0.35,1.1),(-0.46,-0.85,-1.8),(-0.5,-0.85,-1.6),(-0.8,-0.35,-1.6),(-0.75,-0.35,-1.8),(0,-0.95,-1.6),(-0.55,-0.84,-0.95),(-0.85,-0.35,-0.95),(0,-0.95,-0.95),(-0.33,-0.88,0.65),(-0.65,-0.35,0.65),(0,-0.95,0.65),(-0.33,-0.88,1.1),(-0.65,-0.35,1.1),(0,-0.95,1.1),(-0.69,0.68,-2.61),(-0.41,0.84,-1.6),(0,0.95,-1.6),(0,0.85,-2.65),(-0.75,0.6,-1.6),(-0.41,0.84,-1.6),(-0.69,0.68,-2.61),(-0.36,0.86,-0.95),(0,0.95,-0.95),(-0.75,0.6,-1.6),(-0.67,0.64,-0.95),(-0.34,0.85,0),(0,0.92,0),(-0.55,0.7,0),(-0.31,0.78,2.05),(0,0.85,2.05),(0,0.85,-3.55),(-0.26,0.74,-3.55),(0,0.85,-2.65),(0,0.4,6.87),(0.25,0.55,6.87),(-0.26,0.74,-3.55),(-0.69,0.59,-0.95),(-0.67,0.64,-0.95),(-0.64,0.57,-0.27),(-0.55,0.7,0),(-0.65,0.35,3.45),(-0.55,0.35,4),(-0.4,0.74,4.01),(-0.49,0.72,3.51),(-0.2,0.8,4),(-0.2,0.8,4.55),(-0.19,0.79,4.91),(0,0.85,4.9),(0,0.85,4),(-0.35,0.35,4.9),(-0.19,0.79,4.91),(-0.53,-0.23,3.52),(-0.45,-0.18,4.02),(0,-0.6,3.55),(0,-0.5,4),(-0.45,-0.18,4.02),(-0.53,-0.23,3.52),(-0.26,-0.16,4.92),(0,-0.35,4.9),(-0.26,-0.16,4.92),(0,0.4,6.5),(-0.35,0.35,4.9),(0,0,6.4),(-0.25,0.7,6.5),(-0.25,0.55,6.5),(0,0.4,6.5),(-0.11,0.79,6.5),(-0.65,0.25,1.1),(-0.65,0.25,0.65),(-0.66,0.54,0.48),(-0.6,0.54,0.65),(-0.59,0.64,0.65),(0,-0.6,3.55),(-0.65,0.25,1.1),(0,0.85,3.55),(-0.49,0.72,3.51),(0,0.85,3.55),(-0.31,0.78,2.05),(-0.7,0.5,2.05),(-0.7,0.5,2.05),(-0.62,0.6,1.09),(-0.62,0.53,1.09),(0,0.85,6.5),(-0.25,0.7,6.87),(0,0.85,6.87),(-0.25,0.55,6.87),(-0.22,0.68,7.14),(-0.03,0.8,7.14),(-0.22,0.57,7.14),(-0.03,0.45,7.14),(-1.45,0.49,-0.92),(-0.11,0.79,6.5),(-0.64,0.57,0),(-2.78,0.32,0),(-4.62,0.05,2.42),(-4.62,0.08,1.58),(-3.79,0.18,0.71),(0,0,-6.7),(0.44,-0.17,-5.91),(0.35,-0.32,-6.71),(0.45,-0.5,-5.9),(0.35,-0.5,-6.7),(0.32,0.23,-5),(0.44,0.11,-5.01),(0.45,-0.5,-5),(0.44,0.25,-4.56),(0.45,-0.5,-4.55),(0.44,0.31,-4.05),(0.45,-0.5,-3.93),(0.34,0.36,-4.55),(0.26,0.57,-3.55),(0.22,0.68,7.14),(0.22,0.57,7.14),(0.25,0.55,6.87),(0.25,0.7,6.87),(0.25,0.7,6.87),(0,0.4,6.87),(0.25,0.55,6.5),(0.25,0.55,6.5),(0.25,0.7,6.5),(0.11,0.79,6.5),(0.65,0.35,3.45),(0.65,0.25,1.1),(0.7,0.5,2.05),(0.34,-0.68,-5.9),(0.33,-0.54,-6.7),(0.3,-0.8,-5),(0.3,-0.8,-4.55),(0.3,-0.8,-3.9),(0.3,-0.8,-3.55),(0.35,-0.32,-6.71),(0.35,-0.5,-6.7),(0.33,-0.54,-6.7),(0.83,0.5,-3.58),(0.69,0.28,-4.03),(1,-0.25,-3.95),(1.1,0,-3.55),(0.93,-0.63,-3.54),(0.89,-0.64,-3.91),(0.65,0.25,1.1),(0.62,0.6,1.09),(0.65,-0.7,-2.6),(1.13,-0.35,-2.63),(1.15,0.25,-1.6),(1.15,-0.35,-1.6),(1.13,-0.35,-2.63),(1.13,0.25,-2.62),(1.13,0.25,-2.62),(0.96,0.25,-3.57),(0.8,0.25,-1.6),(0.8,0.6,-2.6),(0.8,0.6,-2.6),(0.49,0.72,3.51),(0.85,0.25,-0.95),(0.87,0.25,0),(0.9,0.25,0.65),(0.9,-0.35,0.65),(0.85,-0.35,-0.95),(0.31,0.78,2.05),(0.9,-0.35,0.65),(0.65,-0.35,1.1),(0.65,-0.35,0.65),(0.85,-0.35,-0.95),(0.75,-0.35,-1.8),(0.8,-0.35,-1.6),(0.5,-0.85,-1.6),(0.46,-0.85,-1.8),(0.55,-0.84,-0.95),(0.33,-0.88,0.65),(0.33,-0.88,1.1),(0.41,0.84,-1.6),(0.69,0.68,-2.61),(0.69,0.68,-2.61),(0.41,0.84,-1.6),(0.36,0.86,-0.95),(0.67,0.64,-0.95),(0.75,0.6,-1.6),(0.34,0.85,0),(0.55,0.7,0),(0.26,0.74,-3.55),(0.26,0.74,-3.55),(0.67,0.64,-0.95),(0.55,0.7,0),(0.59,0.64,0.65),(0.66,0.54,0.48),(0.4,0.74,4.01),(0.55,0.35,4),(0.2,0.8,4.55),(0.2,0.8,4),(0.19,0.79,4.91),(0.35,0.35,4.9),(0.45,-0.18,4.02),(0.53,-0.23,3.52),(0,-0.5,4),(0.55,0.35,4),(0.35,0.35,4.9),(0.26,-0.16,4.92),(0.45,-0.18,4.02),(0.65,0.25,0.65),(0.33,-0.88,1.1),(0.65,-0.35,1.1),(0,-0.6,5.95),(0,-0.45,6.2),(0.2,0.8,4),(0.34,0.85,0),(0.31,0.78,2.05),(0.8,-0.35,-1.6),(0.75,-0.35,-1.8),(2.2,0.15,6.7),(2.2,0.15,6.35),(0.2,0.8,4.55),(0,1.7,4.9),(0,2.4,5.65),(0,2.75,6.15),(0,2.85,6.7),(0,0.95,4),(0,0.95,3.55),(-0.8,-0.35,-1.6),(-0.75,-0.35,-1.8),(-0.34,0.85,0),(-0.4,0.74,4.01),(-2.2,0.15,6.7),(-2.2,0.15,6.35),(-0.33,0.52,-5),(0,0.85,-4.85),(-0.34,0.68,-4.55),(0,0.91,-3.44),(0,0.98,-4.4),(0.34,0.68,-4.55),(0.33,0.52,-5),(0,0.91,-3.44),(0.33,0.52,-5),(0.32,0.23,-5)])), appearance=Appearance( material=Material(),)), Shape(DEF='LeftWing', geometry=IndexedFaceSet(convex=False,coordIndex=[0,1,2,3,4,5,6,7,-1,8,9,10,11,12,13,14,15,-1,0,8,15,7,-1,0,1,9,8,-1,1,2,10,9,-1,2,3,11,10,-1,3,4,12,11,-1,4,5,13,12,-1,5,6,14,13,-1,6,7,15,14],creaseAngle=0.78, coord=Coordinate(point=[(-0.6,0.6,-1.6),(-0.6,0.5,-1.5),(-0.6,0.45,-1.4),(-0.6,0.4,-1.2),(-0.6,0.4,0.4),(-0.6,0.34,0.9),(-0.6,0.42,1.4),(-0.6,0.5,2.05),(-4.62,0.08,1.58),(-4.62,0.05,1.62),(-4.62,0.02,1.68),(-4.62,-0.02,1.75),(-4.62,-0.02,1.98),(-4.62,0.02,2.18),(-4.62,0.03,2.33),(-4.62,0.05,2.42)])), appearance=Appearance( material=Material(),)), Transform(center=(0,1,0),translation=(-2.0,0.25,1.5), children=[ Transform(rotation=(1,0,0,-1.57), children=[ Shape( geometry=Cylinder(radius=.16), appearance=Appearance( material=Material(),))])]), Shape(DEF='RightWing', geometry=IndexedFaceSet(convex=False,coordIndex=[0,1,2,3,4,5,6,7,-1,8,9,10,11,12,13,14,15,-1,0,8,15,7,-1,0,1,9,8,-1,1,2,10,9,-1,2,3,11,10,-1,3,4,12,11,-1,4,5,13,12,-1,5,6,14,13,-1,6,7,15,14],creaseAngle=0.78,solid=False, coord=Coordinate(point=[(0.6,0.6,-1.6),(0.6,0.5,-1.5),(0.6,0.45,-1.4),(0.6,0.4,-1.2),(0.6,0.4,0.4),(0.6,0.34,0.9),(0.6,0.42,1.4),(0.6,0.5,2.05),(4.62,0.08,1.58),(4.62,0.05,1.62),(4.62,0.02,1.68),(4.62,-0.02,1.75),(4.62,-0.02,1.98),(4.62,0.02,2.18),(4.62,0.03,2.33),(4.62,0.05,2.42)])), appearance=Appearance( material=Material(),)), Transform(center=(0,1,0),translation=(2.0,0.25,1.5), children=[ Transform(rotation=(1,0,0,-1.57), children=[ Shape( geometry=Cylinder(radius=.16), appearance=Appearance( material=Material(),))])]), Shape(DEF='Caps', geometry=IndexedFaceSet(convex=False,coordIndex=[232,216,277,233,-1,230,234,221,220,-1,60,59,67,66,-1,68,76,144,69,-1,17,108,107,256,187,-1,17,187,186,179,2,9,16,-1,161,191,190,193,162,160,-1],creaseAngle=0.5,solid=False, coord=Coordinate(USE='BI_COORD')), appearance=Appearance( material=Material(diffuseColor=(0.125,0.125,0.125)))), Shape(DEF='Cockpit', geometry=IndexedFaceSet(coordIndex=[9,300,10,-1,10,300,301,-1,16,17,112,302,-1,108,107,303,-1,301,304,305,306,-1,306,305,186,179,-1,304,307,257,305,-1,305,257,187,186,-1,301,306,10,-1,2,308,309,-1,302,112,307,304,-1,9,16,302,300,-1,300,302,304,301,-1,303,107,256,-1],creaseAngle=1.78,solid=False, coord=Coordinate(USE='BI_COORD')), appearance=Appearance( material=Material(diffuseColor=(0,0,1),transparency=0.7))), Shape(DEF='AirIntake', geometry=IndexedFaceSet(coordIndex=[14,40,49,-1,14,49,52,47,15,-1,215,205,185,-1,184,211,212,215,185,-1],creaseAngle=0.5, coord=Coordinate(USE='BI_COORD')), appearance=Appearance( material=Material(diffuseColor=(0.063,0.063,0.063)))), Shape(DEF='Tail', geometry=IndexedFaceSet(coordIndex=[136,139,137,-1,137,139,136,-1,273,139,137,-1,137,139,273,-1,131,278,135,-1,135,278,131,-1,278,139,135,-1,135,139,278,-1,278,279,139,-1,139,279,278,-1,31,285,286,-1,286,285,31,-1,29,31,286,-1,286,31,29,-1,264,29,286,-1,286,29,264,-1,288,289,290,291,30,124,-1,124,30,291,290,289,288,-1,292,288,124,125,-1,125,124,288,292,-1,153,293,292,125,-1,125,292,293,153,-1,278,279,139,-1,139,279,278,-1,278,139,135,-1,135,139,278,-1,131,278,135,-1,135,278,131,-1,288,289,290,291,30,124,-1,124,30,291,290,289,288,-1,292,288,124,125,-1,125,124,288,292,-1,153,293,292,125,-1,125,292,293,153,-1,168,298,299,-1,299,298,168,-1,123,168,299,-1,299,168,123,-1,122,123,299,-1,299,123,122,-1],creaseAngle=0.5, coord=Coordinate(USE='BI_COORD')), appearance=Appearance( material=Material(),)), Transform(DEF='Pilot',translation=(0,0.5,-4.0), children=[ Shape( geometry=Sphere(radius=0.22), appearance=Appearance( material=Material(diffuseColor=(0.5,1,0.2)))), Transform(scale=(1.3,1.6,1),translation=(0,-0.1,-0.1), children=[ Shape( geometry=Sphere(radius=0.15), appearance=Appearance( material=Material(diffuseColor=(1,.8,.2))))])]), Group(DEF='Wheels', children=[ Transform(DEF='FrontWheel',center=(0,1,0),translation=(0,-.96,-3.55), children=[ Transform(rotation=(1,0,0,3.14),translation=(0,-.3,0), children=[ Shape( geometry=Cone(bottomRadius=.1,height=.8), appearance=Appearance( material=Material(diffuseColor=(0.9,.9,.9))))]), Transform(translation=(0,-.7,0), children=[ Shape( geometry=Cylinder(height=.6,radius=.18), appearance=Appearance( material=Material(diffuseColor=(0.9,.9,.9))))]), Transform(rotation=(1,0,0,1.57),translation=(0,-1.01,0), children=[ Transform(DEF='BigWheel', children=[ Transform(rotation=(0,0,1,1.57),scale=(0.15,0.15,0.15), children=[ Shape( geometry=Extrusion(beginCap=False,convex=False,creaseAngle=1.57,crossSection=[(1.00,0.00),(0.92,-0.38),(0.71,-0.71),(0.38,-0.92),(0.00,-1.00),(-0.38,-0.92),(-0.71,-0.71),(-0.92,-0.38),(-1.00,-0.00),(-0.92,0.38),(-0.71,0.71),(-0.38,0.92),(0.00,1.00),(0.38,0.92),(0.71,0.71),(0.92,0.38),(1.00,0.00)],endCap=False,spine=[(2.00,0.0,0.00),(1.85,0.0,0.77),(1.41,0.0,1.41),(0.77,0.0,1.85),(0.00,0.0,2.00),(-0.77,0.0,1.85),(-1.41,0.0,1.41),(-1.85,0.0,0.77),(-2.00,0.0,0.00),(-1.85,0.0,-0.77),(-1.41,0.0,-1.41),(-0.77,0.0,-1.85),(0.00,0.0,-2.00),(0.77,0.0,-1.85),(1.41,0.0,-1.41),(1.85,0.0,-0.77),(2.00,0.0,0.00)]), appearance=Appearance( material=Material(diffuseColor=(0.1,0.1,0.1))))]), Transform(rotation=(0,0,1,1.57), children=[ Shape( geometry=Cylinder(height=.2,radius=.15), appearance=Appearance( material=Material(diffuseColor=(.8,.8,.8))))])])])]), Transform(DEF='BackWheel',center=(0,1,0),translation=(0,-.96,.65), children=[ Shape( geometry=Cylinder(radius=.07), appearance=Appearance( material=Material(diffuseColor=(0.9,.9,.9)))), Transform(translation=(0,-1.01,0), children=[ Transform(rotation=(0,0,1,1.57), children=[ Shape( geometry=Cylinder(height=.5,radius=.07), appearance=Appearance( material=Material(diffuseColor=(.8,.8,.8))))])]), Transform(rotation=(1,0,0,1.57),translation=(.25,-1.01,0), children=[ Transform(USE='BigWheel')]), Transform(rotation=(1,0,0,1.57),translation=(-.25,-1.01,0), children=[ Transform(USE='BigWheel')])]), Transform(DEF='RightWingWheel',center=(0,1,0),translation=(-2,-.66,.69), children=[ Shape( geometry=Cylinder(radius=.07), appearance=Appearance( material=Material(diffuseColor=(0.9,.9,.9)))), Transform(rotation=(1,0,0,1.57),scale=(.7,.7,.7),translation=(0,-1.45,0), children=[ Transform(USE='BigWheel')]), Transform(translation=(0,-1.22,0), children=[ Shape( geometry=Cylinder(height=.45,radius=.15), appearance=Appearance( material=Material(diffuseColor=(0.9,.9,.9))))])]), Transform(DEF='LeftWingWheel',center=(0,1,0),translation=(2,-.66,.69), children=[ Shape( geometry=Cylinder(radius=.07), appearance=Appearance( material=Material(diffuseColor=(0.9,.9,.9)))), Transform(rotation=(1,0,0,1.57),scale=(.7,.7,.7),translation=(0,-1.45,0), children=[ Transform(USE='BigWheel')]), Transform(translation=(0,-1.22,0), children=[ Shape( geometry=Cylinder(height=.45,radius=.15), appearance=Appearance( material=Material(diffuseColor=(0.9,.9,.9))))])])])])]) ) # X3D model complete #################################################################################################### # Self-test diagnostics #################################################################################################### print('Self-test diagnostics for TranslatedAv8bHarrier.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 TranslatedAv8bHarrier.py load and self-test diagnostics complete.")