####################################################################################################
#
# Invoking X3D model self-test:
#
#   $ python AttenuationTest.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='Interchange',version='4.0',
  head=head(
    children=[
    component(level=3,name='Lighting'),
    component(level=2,name='Shape'),
    meta(content='AttenuationTest.x3d',name='title'),
    meta(content='This model tests interactions between attenuation color, attenuation distance, and thickness in the KHR_materials_volume extension.',name='description'),
    meta(content='17 July 2021',name='created'),
    meta(content='11 May 2024',name='modified'),
    meta(content='Ed Mackey, Analytical Graphics, Inc.',name='creator'),
    meta(content='https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/2.0/AttenuationTest',name='reference'),
    meta(content='https://khronos/gltf',name='reference'),
    meta(content='https://en.wikipedia.org/glTF',name='reference'),
    meta(content='https://www.web3d.org/x3d4',name='reference'),
    meta(content='X3D 4.0 Architecture, ISO/IEC 19775-1:2023, 9 Networking component, 12 Shape component, 12.4.2 Appearance',name='specificationSection'),
    meta(content='X3D 4.0 Architecture, ISO/IEC 19775-1:2023, clause 9 Networking component, Table 9.3 - Networking component support levels',name='specificationSection'),
    meta(content='https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/networking.html#t-supportLevels',name='specificationUrl'),
    meta(content='https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#Appearance',name='specificationUrl'),
    meta(content='https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS',name='reference'),
    meta(content='https://castle-engine.io/creating_data_model_formats.php#section_gltf',name='reference'),
    meta(content='commented out Tangent nodes, removed flipVertically=true, removed gravityTransform=false since those constructs are not valid X3D4',name='warning'),
    meta(content='view3dscene, https://castle-engine.io/view3dscene.php',name='generator'),
    meta(content='X3D-Edit 4.0, https://www.web3d.org/x3d/tools/X3D-Edit',name='generator'),
    meta(content='https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GltfSampleModels/AttenuationTest.x3d',name='identifier'),
    meta(content='https://www.web3d.org/x3d/content/examples/license.html',name='license'),
    meta(content='AttenuationTest.gltf',name='source')]),
  Scene=Scene(
    children=[
    WorldInfo(info=["glTF Sample Model"],title='AttenuationTest.x3d'),
    Transform(DEF='CastleEncoded_R2_Block_1_46_0',translation=(0,3,0),
      children=[
      Group(DEF='CastleEncoded_Block_1_46_0',
        children=[
        Shape(bboxCenter=(0,0,0.5),bboxSize=(1,1,1),
          appearance=Appearance(DEF='CastleEncoded_R2_and_R4_ThicknessFac_1_46_0',alphaMode='OPAQUE',
            material=PhysicalMaterial(metallic=0,roughness=0)),
          geometry=IndexedTriangleSet(ccw=True,colorPerVertex=True,index=[1,14,20,1,20,7,10,6,19,10,19,23,21,18,12,21,12,15,16,3,9,16,9,22,5,2,8,5,8,11,17,13,0,17,0,4],normalPerVertex=True,solid=True,
            coord=Coordinate(point=[(0.5,0.5,0),(0.5,0.5,0),(0.5,0.5,0),(0.5,-0.5,0),(0.5,-0.5,0),(0.5,-0.5,0),(0.5,0.5,1),(0.5,0.5,1),(0.5,0.5,1),(0.5,-0.5,1),(0.5,-0.5,1),(0.5,-0.5,1),(-0.5,0.5,0),(-0.5,0.5,0),(-0.5,0.5,0),(-0.5,-0.5,0),(-0.5,-0.5,0),(-0.5,-0.5,0),(-0.5,0.5,1),(-0.5,0.5,1),(-0.5,0.5,1),(-0.5,-0.5,1),(-0.5,-0.5,1),(-0.5,-0.5,1)]),
            normal=Normal(vector=[(0,0,-1),(0,1,0),(1,0,0),(0,-1,0),(0,0,-1),(1,0,0),(0,0,1),(0,1,0),(1,0,0),(0,-1,0),(0,0,1),(1,0,0),(-1,0,0),(0,0,-1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,-1),(-1,0,0),(0,0,1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,1)])))])]),
    Transform(DEF='CastleEncoded_R2_Block_1_46_5',translation=(2.5,3,0),
      children=[
      Group(DEF='CastleEncoded_Block_1_46_5',
        children=[
        Shape(bboxCenter=(0,0,0.75),bboxSize=(1.5,1.5,1.5),
          appearance=Appearance(DEF='CastleEncoded_R2_ThicknessFac_1_46_5',alphaMode='OPAQUE',
            material=PhysicalMaterial(metallic=0,roughness=0)),
          geometry=IndexedTriangleSet(ccw=True,colorPerVertex=True,index=[1,14,20,1,20,7,10,6,19,10,19,23,21,18,12,21,12,15,16,3,9,16,9,22,5,2,8,5,8,11,17,13,0,17,0,4],normalPerVertex=True,solid=True,
            coord=Coordinate(point=[(0.75,0.75,0),(0.75,0.75,0),(0.75,0.75,0),(0.75,-0.75,0),(0.75,-0.75,0),(0.75,-0.75,0),(0.75,0.75,1.5),(0.75,0.75,1.5),(0.75,0.75,1.5),(0.75,-0.75,1.5),(0.75,-0.75,1.5),(0.75,-0.75,1.5),(-0.75,0.75,0),(-0.75,0.75,0),(-0.75,0.75,0),(-0.75,-0.75,0),(-0.75,-0.75,0),(-0.75,-0.75,0),(-0.75,0.75,1.5),(-0.75,0.75,1.5),(-0.75,0.75,1.5),(-0.75,-0.75,1.5),(-0.75,-0.75,1.5),(-0.75,-0.75,1.5)]),
            normal=Normal(vector=[(0,0,-1),(0,1,0),(1,0,0),(0,-1,0),(0,0,-1),(1,0,0),(0,0,1),(0,1,0),(1,0,0),(0,-1,0),(0,0,1),(1,0,0),(-1,0,0),(0,0,-1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,-1),(-1,0,0),(0,0,1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,1)])))])]),
    Transform(DEF='CastleEncoded_R2_Block_2_46_0',translation=(6,3,0),
      children=[
      Group(DEF='CastleEncoded_Block_2_46_0',
        children=[
        Shape(bboxCenter=(0,0,1),bboxSize=(2,2,2),
          appearance=Appearance(DEF='CastleEncoded_R2_ThicknessFac_2_46_0',alphaMode='OPAQUE',
            material=PhysicalMaterial(metallic=0,roughness=0)),
          geometry=IndexedTriangleSet(ccw=True,colorPerVertex=True,index=[1,14,20,1,20,7,10,6,19,10,19,23,21,18,12,21,12,15,16,3,9,16,9,22,5,2,8,5,8,11,17,13,0,17,0,4],normalPerVertex=True,solid=True,
            coord=Coordinate(point=[(1,1,0),(1,1,0),(1,1,0),(1,-1,0),(1,-1,0),(1,-1,0),(1,1,2),(1,1,2),(1,1,2),(1,-1,2),(1,-1,2),(1,-1,2),(-1,1,0),(-1,1,0),(-1,1,0),(-1,-1,0),(-1,-1,0),(-1,-1,0),(-1,1,2),(-1,1,2),(-1,1,2),(-1,-1,2),(-1,-1,2),(-1,-1,2)]),
            normal=Normal(vector=[(0,0,-1),(0,1,0),(1,0,0),(0,-1,0),(0,0,-1),(1,0,0),(0,0,1),(0,1,0),(1,0,0),(0,-1,0),(0,0,1),(1,0,0),(-1,0,0),(0,0,-1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,-1),(-1,0,0),(0,0,1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,1)])))])]),
    Transform(DEF='CastleEncoded_R2_Block_0_46_50',translation=(-2,3,0),
      children=[
      Group(DEF='CastleEncoded_Block_0_46_50',
        children=[
        Shape(bboxCenter=(0,0,0.25),bboxSize=(0.5,0.5,0.5),
          appearance=Appearance(DEF='CastleEncoded_R2_ThicknessFac_0_46_50',alphaMode='OPAQUE',
            material=PhysicalMaterial(metallic=0,roughness=0)),
          geometry=IndexedTriangleSet(ccw=True,colorPerVertex=True,index=[1,14,20,1,20,7,10,6,19,10,19,23,21,18,12,21,12,15,16,3,9,16,9,22,5,2,8,5,8,11,17,13,0,17,0,4],normalPerVertex=True,solid=True,
            coord=Coordinate(point=[(0.25,0.25,0),(0.25,0.25,0),(0.25,0.25,0),(0.25,-0.25,0),(0.25,-0.25,0),(0.25,-0.25,0),(0.25,0.25,0.5),(0.25,0.25,0.5),(0.25,0.25,0.5),(0.25,-0.25,0.5),(0.25,-0.25,0.5),(0.25,-0.25,0.5),(-0.25,0.25,0),(-0.25,0.25,0),(-0.25,0.25,0),(-0.25,-0.25,0),(-0.25,-0.25,0),(-0.25,-0.25,0),(-0.25,0.25,0.5),(-0.25,0.25,0.5),(-0.25,0.25,0.5),(-0.25,-0.25,0.5),(-0.25,-0.25,0.5),(-0.25,-0.25,0.5)]),
            normal=Normal(vector=[(0,0,-1),(0,1,0),(1,0,0),(0,-1,0),(0,0,-1),(1,0,0),(0,0,1),(0,1,0),(1,0,0),(0,-1,0),(0,0,1),(1,0,0),(-1,0,0),(0,0,-1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,-1),(-1,0,0),(0,0,1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,1)])))])]),
    Transform(DEF='CastleEncoded_R2_Block_0_46_25',translation=(-3.5,3,0),
      children=[
      Group(DEF='CastleEncoded_Block_0_46_25',
        children=[
        Shape(bboxCenter=(0,0,0.125),bboxSize=(0.25,0.25,0.25),
          appearance=Appearance(DEF='CastleEncoded_R2_ThicknessFac_0_46_25',alphaMode='OPAQUE',
            material=PhysicalMaterial(metallic=0,roughness=0)),
          geometry=IndexedTriangleSet(ccw=True,colorPerVertex=True,index=[1,14,20,1,20,7,10,6,19,10,19,23,21,18,12,21,12,15,16,3,9,16,9,22,5,2,8,5,8,11,17,13,0,17,0,4],normalPerVertex=True,solid=True,
            coord=Coordinate(point=[(0.125,0.125,0),(0.125,0.125,0),(0.125,0.125,0),(0.125,-0.125,0),(0.125,-0.125,0),(0.125,-0.125,0),(0.125,0.125,0.25),(0.125,0.125,0.25),(0.125,0.125,0.25),(0.125,-0.125,0.25),(0.125,-0.125,0.25),(0.125,-0.125,0.25),(-0.125,0.125,0),(-0.125,0.125,0),(-0.125,0.125,0),(-0.125,-0.125,0),(-0.125,-0.125,0),(-0.125,-0.125,0),(-0.125,0.125,0.25),(-0.125,0.125,0.25),(-0.125,0.125,0.25),(-0.125,-0.125,0.25),(-0.125,-0.125,0.25),(-0.125,-0.125,0.25)]),
            normal=Normal(vector=[(0,0,-1),(0,1,0),(1,0,0),(0,-1,0),(0,0,-1),(1,0,0),(0,0,1),(0,1,0),(1,0,0),(0,-1,0),(0,0,1),(1,0,0),(-1,0,0),(0,0,-1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,-1),(-1,0,0),(0,0,1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,1)])))])]),
    Transform(DEF='Labels',
      children=[
      Group(DEF='Labels_2',
        children=[
        Shape(bboxCenter=(-1.47358417510986,0.974341630935669,-0.0125000951811671),bboxSize=(15.8457813262939,14.5641613006592,0.0250003915280104),
          appearance=Appearance(DEF='LabelMaterial',alphaMode='OPAQUE',
            material=PhysicalMaterial(baseTextureMapping='TEXCOORD_0',metallic=0,roughness=0.800000011920929,
              baseTexture=ImageTexture(url=["AttenuationLabels.png","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GltfSampleModels/AttenuationLabels.png"],
                textureProperties=TextureProperties(magnificationFilter='AVG_PIXEL',minificationFilter='NEAREST_PIXEL_AVG_MIPMAP')))),
          geometry=IndexedTriangleSet(ccw=True,colorPerVertex=True,index=[24,37,36,24,36,25,2,7,5,2,5,3,9,34,35,9,35,18,33,32,11,33,11,19,31,13,20,31,20,30,29,15,21,29,21,28,39,23,22,39,22,38,8,6,4,8,4,10,26,14,12,26,12,27,0,16,17,0,17,1,64,77,76,64,76,65,42,47,45,42,45,43,49,74,75,49,75,58,73,72,51,73,51,59,71,53,60,71,60,70,69,55,61,69,61,68,79,63,62,79,62,78,48,46,44,48,44,50,66,54,52,66,52,67,40,56,57,40,57,41],normalPerVertex=True,solid=True,
            coord=Coordinate(point=[(-9.39647483825684,-6.30773878097534,-1.02578425753563E-7),(-9.39647483825684,-5.63075494766235,-7.2986523491636E-8),(-9.39647483825684,5.65004682540894,3.02096196946877E-8),(-9.39647483825684,6.38050174713135,6.21388167587611E-8),(0.470691561698914,8.25642204284668,1.00097366839691E-7),(-5.10894250869751,6.38050174713135,6.21388167587611E-8),(0.470691561698914,7.71541118621826,7.64490692972686E-8),(-5.10894250869751,5.65004682540894,3.02096196946877E-8),(-0.415542006492615,7.71541118621826,7.64490692972686E-8),(5.5335521697998,7.71541118621826,7.64490692972686E-8),(-0.415542006492615,8.25642204284668,1.00097366839691E-7),(-5.10894250869751,3.40431714057922,3.02096196946877E-8),(-2.92531585693359,8.25642204284668,1.00097366839691E-7),(-5.10894250869751,-0.391610264778137,-3.89279293244726E-8),(-2.92531585693359,7.71541118621826,7.64490692972686E-8),(-5.10894250869751,-3.40076780319214,-7.2986523491636E-8),(-5.10894250869751,-6.30773878097534,-1.02578425753563E-7),(-5.10894250869751,-5.63075494766235,-7.2986523491636E-8),(5.5335521697998,8.25642204284668,1.00097366839691E-7),(-9.39647483825684,3.40431714057922,3.02096196946877E-8),(-5.10894250869751,0.3985316157341,-4.38972636018775E-9),(-5.10894250869751,-2.62159776687622,-3.89279293244726E-8),(-1.49901676177979,8.25642204284668,1.00097366839691E-7),(-1.49901676177979,7.71541118621826,7.64490692972686E-8),(2.10634636878967,7.71541118621826,7.64490692972686E-8),(2.10634636878967,8.25642204284668,1.00097366839691E-7),(-4.04490852355957,7.71541118621826,7.64490692972686E-8),(-4.04490852355957,8.25642204284668,1.00097366839691E-7),(-9.39647483825684,-2.62159776687622,-3.89279293244726E-8),(-9.39647483825684,-3.40076780319214,-7.2986523491636E-8),(-9.39647483825684,0.3985316157341,-4.38972636018775E-9),(-9.39647483825684,-0.391610383987427,-3.89279293244726E-8),(-5.10894250869751,2.61277627944946,-4.38972636018775E-9),(-9.39647483825684,2.61277627944946,-4.38972636018775E-9),(6.44930601119995,7.71541118621826,7.64490692972686E-8),(6.44930601119995,8.25642204284668,1.00097366839691E-7),(2.9443576335907,8.25642204284668,1.00097366839691E-7),(2.9443576335907,7.71541118621826,7.64490692972686E-8),(-2.40868592262268,8.25642204284668,1.00097366839691E-7),(-2.40868592262268,7.71541118621826,7.64490692972686E-8),(-5.10894203186035,-6.30773878097534,-0.0250002611428499),(-5.10894203186035,-5.63075494766235,-0.0250002909451723),(-5.10894203186035,5.65004682540894,-0.0250001288950443),(-5.10894203186035,6.38050174713135,-0.0250001605600119),(-0.415542006492615,8.25642204284668,-0.0249998867511749),(-9.39647483825684,6.38050174713135,-0.0249997843056917),(-0.415542006492615,7.71541118621826,-0.024999862536788),(-9.39647483825684,5.65004682540894,-0.0249997526407242),(0.470691561698914,7.71541118621826,-0.0249999407678843),(6.44930648803711,7.71541118621826,-0.0249999407678843),(0.470691561698914,8.25642204284668,-0.0249999649822712),(-9.39647483825684,3.40431714057922,-0.0249998159706593),(-4.04490852355957,8.25642204284668,-0.0249998774379492),(-9.39647483825684,-0.391610264778137,-0.0249998178333044),(-4.04490852355957,7.71541118621826,-0.0249998532235622),(-9.39647483825684,-3.40076780319214,-0.0249998476356268),(-9.39647483825684,-6.30773878097534,-0.0249998848885298),(-9.39647483825684,-5.63075494766235,-0.0249999146908522),(6.44930648803711,8.25642204284668,-0.0249999649822712),(-5.10894203186035,3.40431714057922,-0.0250001922249794),(-9.39647483825684,0.3985316157341,-0.0249998532235622),(-9.39647483825684,-2.62159776687622,-0.0249998811632395),(-2.4086856842041,8.25642204284668,-0.0249998867511749),(-2.4086856842041,7.71541118621826,-0.024999862536788),(2.9443576335907,7.71541118621826,-0.0249999389052391),(2.9443576335907,8.25642204284668,-0.024999963119626),(-2.92531585693359,7.71541118621826,-0.02499995008111),(-2.92531585693359,8.25642204284668,-0.0249999742954969),(-5.10894203186035,-2.62159776687622,-0.0250002574175596),(-5.10894203186035,-3.40076780319214,-0.0250002238899469),(-5.10894203186035,0.3985316157341,-0.0250002294778824),(-5.10894203186035,-0.391610383987427,-0.0250001940876246),(-9.39647483825684,2.61277627944946,-0.0249997824430466),(-5.10894203186035,2.61277627944946,-0.0250001586973667),(5.53355264663696,7.71541118621826,-0.024999862536788),(5.53355264663696,8.25642204284668,-0.0249998867511749),(2.10634636878967,8.25642204284668,-0.0249998886138201),(2.10634636878967,7.71541118621826,-0.0249998643994331),(-1.49901652336121,8.25642204284668,-0.0249999649822712),(-1.49901652336121,7.71541118621826,-0.0249999407678843)]),
            normal=Normal(vector=[(0,-4.37113847340243E-8,1),(0,-4.37113847340243E-8,1),(0,-4.37113847340243E-8,1),(0,-4.37113847340243E-8,1),(0,-4.37113136797507E-8,1),(0,-4.37113847340243E-8,1),(0,-4.37113136797507E-8,1),(0,-4.37113847340243E-8,1),(0,-4.37113136797507E-8,1),(0,-4.3711299468896E-8,0.999999940395355),(0,-4.37113136797507E-8,1),(0,-4.37113847340243E-8,0.999999940395355),(0,-4.3711320785178E-8,1),(6.06274631667343E-16,-4.37113847340243E-8,0.999999940395355),(0,-4.3711320785178E-8,1),(0,-4.37113740758832E-8,0.999999940395355),(0,-4.37113847340243E-8,1),(0,-4.37113847340243E-8,1),(0,-4.3711299468896E-8,0.999999940395355),(0,-4.37113847340243E-8,0.999999940395355),(6.06274631667343E-16,-4.37113847340243E-8,0.999999940395355),(0,-4.37113740758832E-8,0.999999940395355),(0,-4.3711320785178E-8,1),(0,-4.3711320785178E-8,1),(0,-4.37113065743233E-8,1),(0,-4.37113065743233E-8,1),(0,-4.3711320785178E-8,1),(0,-4.3711320785178E-8,1),(0,-4.37113740758832E-8,0.999999940395355),(0,-4.37113740758832E-8,0.999999940395355),(6.06274631667343E-16,-4.37113847340243E-8,0.999999940395355),(6.06274631667343E-16,-4.37113847340243E-8,0.999999940395355),(0,-4.37113847340243E-8,0.999999940395355),(0,-4.37113847340243E-8,0.999999940395355),(0,-4.3711299468896E-8,0.999999940395355),(0,-4.3711299468896E-8,0.999999940395355),(0,-4.37113065743233E-8,1),(0,-4.37113065743233E-8,1),(0,-4.3711320785178E-8,1),(0,-4.3711320785178E-8,1),(-8.7755438471504E-8,-4.3636838142902E-8,-1),(-8.7755438471504E-8,-4.3636838142902E-8,-1),(-8.77554313660767E-8,-4.28214868009036E-8,-1),(-8.77554313660767E-8,-4.28214868009036E-8,-1),(-8.82736301832665E-8,-4.27335180575028E-8,-1),(-8.77554313660767E-8,-4.28214868009036E-8,-1),(-8.82736301832665E-8,-4.27335180575028E-8,-1),(-8.77554313660767E-8,-4.28214868009036E-8,-1),(-8.82736301832665E-8,-4.27335180575028E-8,-1),(-8.54280131079577E-8,-4.51155806047154E-8,-0.999999940395355),(-8.82736301832665E-8,-4.27335180575028E-8,-1),(-8.77554313660767E-8,-4.17121839291212E-8,-1),(-8.65114202497352E-8,-4.61270133200742E-8,-1),(-8.7755438471504E-8,-4.61845637289571E-8,-0.999999940395355),(-8.65114202497352E-8,-4.61270133200742E-8,-1),(-8.77554313660767E-8,-4.46046790614218E-8,-1),(-8.7755438471504E-8,-4.3636838142902E-8,-1),(-8.7755438471504E-8,-4.3636838142902E-8,-1),(-8.54280131079577E-8,-4.51155806047154E-8,-0.999999940395355),(-8.77554313660767E-8,-4.17121839291212E-8,-1),(-8.7755438471504E-8,-4.61845637289571E-8,-0.999999940395355),(-8.77554313660767E-8,-4.46046790614218E-8,-1),(-8.59994457869107E-8,-4.54173587627338E-8,-1),(-8.59994457869107E-8,-4.54173587627338E-8,-1),(-8.89079174726248E-8,-4.10841494158376E-8,-1),(-8.89079174726248E-8,-4.10841494158376E-8,-1),(-8.65114202497352E-8,-4.61270133200742E-8,-1),(-8.65114202497352E-8,-4.61270133200742E-8,-1),(-8.77554313660767E-8,-4.46046790614218E-8,-1),(-8.77554313660767E-8,-4.46046790614218E-8,-1),(-8.7755438471504E-8,-4.61845637289571E-8,-0.999999940395355),(-8.7755438471504E-8,-4.61845637289571E-8,-0.999999940395355),(-8.77554313660767E-8,-4.17121839291212E-8,-1),(-8.77554313660767E-8,-4.17121839291212E-8,-1),(-8.54280131079577E-8,-4.51155806047154E-8,-0.999999940395355),(-8.54280131079577E-8,-4.51155806047154E-8,-0.999999940395355),(-8.89079174726248E-8,-4.10841494158376E-8,-1),(-8.89079174726248E-8,-4.10841494158376E-8,-1),(-8.59994457869107E-8,-4.54173587627338E-8,-1),(-8.59994457869107E-8,-4.54173587627338E-8,-1)]),
            texCoord=MultiTextureCoordinate(
              texCoord=[
              TextureCoordinate(mapping='TEXCOORD_0',point=[(0.142493635416031,0.969344139099121),(0.142493635416031,0.833947420120239),(0.142493635416031,0.361776947975159),(0.142493635416031,0.215685963630676),(0.616178035736084,0.0420078039169312),(1,0.215685963630676),(0.616178035736084,0.150209903717041),(1,0.361776947975159),(0.438931345939636,0.150209903717041),(0.78378027677536,0.150209903717041),(0.438931316137314,0.0420078039169312),(1,0.361776947975159),(0.256997466087341,0.0420078039169312),(1,0.678113460540771),(0.256997466087341,0.150209903717041),(1,0.833947420120239),(1,0.969344139099121),(1,0.833947420120239),(0.78378027677536,0.0420078039169312),(0.142493635416031,0.361776947975159),(1,0.520085096359253),(1,0.678113460540771),(0.438931316137314,0.0420078039169312),(0.438931345939636,0.150209903717041),(0.616178035736084,0.150209903717041),(0.616178035736084,0.0420078039169312),(0.0330788791179657,0.150209903717041),(0.0330788791179657,0.0420078635215759),(0.142493635416031,0.678113460540771),(0.142493635416031,0.833947420120239),(0.142493635416031,0.520085096359253),(0.142493635416031,0.678113460540771),(1,0.520085096359253),(0.142493635416031,0.520085096359253),(0.966931104660034,0.150209903717041),(0.966931104660034,0.0420079231262207),(0.78378027677536,0.0420078039169312),(0.78378027677536,0.150209903717041),(0.256997466087341,0.0420078039169312),(0.256997466087341,0.150209903717041),(0.142493635416031,0.969344139099121),(0.142493635416031,0.833947420120239),(0.439035803079605,0.361776947975159),(0.439035803079605,0.215685963630676),(0.616178035736084,0.0420078039169312),(1.29654216766357,0.215685963630676),(0.616178035736084,0.150209903717041),(1.29654216766357,0.361776947975159),(0.438931345939636,0.150209903717041),(0.78378027677536,0.150209903717041),(0.438931316137314,0.0420078039169312),(1.15849661827087,0.361776947975159),(0.256997466087341,0.0420078039169312),(1.10396015644073,0.678113460540771),(0.256997466087341,0.150209903717041),(1.3868682384491,0.833947420120239),(1,0.969344139099121),(1,0.833947420120239),(0.78378027677536,0.0420078039169312),(0.300990253686905,0.361776947975159),(1.10396015644073,0.520085096359253),(1.3868682384491,0.678113460540771),(0.438931316137314,0.0420078039169312),(0.438931345939636,0.150209903717041),(0.616178035736084,0.150209903717041),(0.616178035736084,0.0420078039169312),(0.0330788791179657,0.150209903717041),(0.0330788791179657,0.0420078635215759),(0.529361844062805,0.678113460540771),(0.529361844062805,0.833947420120239),(0.246453791856766,0.520085096359253),(0.246453791856766,0.678113460540771),(1.15849661827087,0.520085096359253),(0.300990253686905,0.520085096359253),(0.966931104660034,0.150209903717041),(0.966931104660034,0.0420079231262207),(0.78378027677536,0.0420078039169312),(0.78378027677536,0.150209903717041),(0.256997466087341,0.0420078039169312),(0.256997466087341,0.150209903717041)])])))])]),
    Transform(DEF='CastleEncoded_R4_Block_1_46_0',translation=(0,-3,0),
      children=[
      Group(DEF='CastleEncoded_Block_1_46_0_2',
        children=[
        Shape(bboxCenter=(0,0,0.5),bboxSize=(1,1,1),
          appearance=Appearance(USE='CastleEncoded_R2_and_R4_ThicknessFac_1_46_0'),
          geometry=IndexedTriangleSet(ccw=True,colorPerVertex=True,index=[1,14,20,1,20,7,10,6,19,10,19,23,21,18,12,21,12,15,16,3,9,16,9,22,5,2,8,5,8,11,17,13,0,17,0,4],normalPerVertex=True,solid=True,
            coord=Coordinate(point=[(0.5,0.5,0),(0.5,0.5,0),(0.5,0.5,0),(0.5,-0.5,0),(0.5,-0.5,0),(0.5,-0.5,0),(0.5,0.5,1),(0.5,0.5,1),(0.5,0.5,1),(0.5,-0.5,1),(0.5,-0.5,1),(0.5,-0.5,1),(-0.5,0.5,0),(-0.5,0.5,0),(-0.5,0.5,0),(-0.5,-0.5,0),(-0.5,-0.5,0),(-0.5,-0.5,0),(-0.5,0.5,1),(-0.5,0.5,1),(-0.5,0.5,1),(-0.5,-0.5,1),(-0.5,-0.5,1),(-0.5,-0.5,1)]),
            normal=Normal(vector=[(0,0,-1),(0,1,0),(1,0,0),(0,-1,0),(0,0,-1),(1,0,0),(0,0,1),(0,1,0),(1,0,0),(0,-1,0),(0,0,1),(1,0,0),(-1,0,0),(0,0,-1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,-1),(-1,0,0),(0,0,1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,1)])))])]),
    Transform(DEF='CastleEncoded_R4_Block_1_46_5',scale=(1.5,1.5,1.5),translation=(2.5,-3,0),
      children=[
      Group(DEF='CastleEncoded_Block_1_46_0_3',
        children=[
        Shape(bboxCenter=(0,0,0.5),bboxSize=(1,1,1),
          appearance=Appearance(USE='CastleEncoded_R2_and_R4_ThicknessFac_1_46_0'),
          geometry=IndexedTriangleSet(ccw=True,colorPerVertex=True,index=[1,14,20,1,20,7,10,6,19,10,19,23,21,18,12,21,12,15,16,3,9,16,9,22,5,2,8,5,8,11,17,13,0,17,0,4],normalPerVertex=True,solid=True,
            coord=Coordinate(point=[(0.5,0.5,0),(0.5,0.5,0),(0.5,0.5,0),(0.5,-0.5,0),(0.5,-0.5,0),(0.5,-0.5,0),(0.5,0.5,1),(0.5,0.5,1),(0.5,0.5,1),(0.5,-0.5,1),(0.5,-0.5,1),(0.5,-0.5,1),(-0.5,0.5,0),(-0.5,0.5,0),(-0.5,0.5,0),(-0.5,-0.5,0),(-0.5,-0.5,0),(-0.5,-0.5,0),(-0.5,0.5,1),(-0.5,0.5,1),(-0.5,0.5,1),(-0.5,-0.5,1),(-0.5,-0.5,1),(-0.5,-0.5,1)]),
            normal=Normal(vector=[(0,0,-1),(0,1,0),(1,0,0),(0,-1,0),(0,0,-1),(1,0,0),(0,0,1),(0,1,0),(1,0,0),(0,-1,0),(0,0,1),(1,0,0),(-1,0,0),(0,0,-1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,-1),(-1,0,0),(0,0,1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,1)])))])]),
    Transform(DEF='CastleEncoded_R4_Block_2_46_0',scale=(2,2,2),translation=(6,-3,0),
      children=[
      Group(DEF='CastleEncoded_Block_1_46_0_4',
        children=[
        Shape(bboxCenter=(0,0,0.5),bboxSize=(1,1,1),
          appearance=Appearance(USE='CastleEncoded_R2_and_R4_ThicknessFac_1_46_0'),
          geometry=IndexedTriangleSet(ccw=True,colorPerVertex=True,index=[1,14,20,1,20,7,10,6,19,10,19,23,21,18,12,21,12,15,16,3,9,16,9,22,5,2,8,5,8,11,17,13,0,17,0,4],normalPerVertex=True,solid=True,
            coord=Coordinate(point=[(0.5,0.5,0),(0.5,0.5,0),(0.5,0.5,0),(0.5,-0.5,0),(0.5,-0.5,0),(0.5,-0.5,0),(0.5,0.5,1),(0.5,0.5,1),(0.5,0.5,1),(0.5,-0.5,1),(0.5,-0.5,1),(0.5,-0.5,1),(-0.5,0.5,0),(-0.5,0.5,0),(-0.5,0.5,0),(-0.5,-0.5,0),(-0.5,-0.5,0),(-0.5,-0.5,0),(-0.5,0.5,1),(-0.5,0.5,1),(-0.5,0.5,1),(-0.5,-0.5,1),(-0.5,-0.5,1),(-0.5,-0.5,1)]),
            normal=Normal(vector=[(0,0,-1),(0,1,0),(1,0,0),(0,-1,0),(0,0,-1),(1,0,0),(0,0,1),(0,1,0),(1,0,0),(0,-1,0),(0,0,1),(1,0,0),(-1,0,0),(0,0,-1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,-1),(-1,0,0),(0,0,1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,1)])))])]),
    Transform(DEF='CastleEncoded_R4_Block_0_46_50',scale=(0.5,0.5,0.5),translation=(-2,-3,0),
      children=[
      Group(DEF='CastleEncoded_Block_1_46_0_5',
        children=[
        Shape(bboxCenter=(0,0,0.5),bboxSize=(1,1,1),
          appearance=Appearance(USE='CastleEncoded_R2_and_R4_ThicknessFac_1_46_0'),
          geometry=IndexedTriangleSet(ccw=True,colorPerVertex=True,index=[1,14,20,1,20,7,10,6,19,10,19,23,21,18,12,21,12,15,16,3,9,16,9,22,5,2,8,5,8,11,17,13,0,17,0,4],normalPerVertex=True,solid=True,
            coord=Coordinate(point=[(0.5,0.5,0),(0.5,0.5,0),(0.5,0.5,0),(0.5,-0.5,0),(0.5,-0.5,0),(0.5,-0.5,0),(0.5,0.5,1),(0.5,0.5,1),(0.5,0.5,1),(0.5,-0.5,1),(0.5,-0.5,1),(0.5,-0.5,1),(-0.5,0.5,0),(-0.5,0.5,0),(-0.5,0.5,0),(-0.5,-0.5,0),(-0.5,-0.5,0),(-0.5,-0.5,0),(-0.5,0.5,1),(-0.5,0.5,1),(-0.5,0.5,1),(-0.5,-0.5,1),(-0.5,-0.5,1),(-0.5,-0.5,1)]),
            normal=Normal(vector=[(0,0,-1),(0,1,0),(1,0,0),(0,-1,0),(0,0,-1),(1,0,0),(0,0,1),(0,1,0),(1,0,0),(0,-1,0),(0,0,1),(1,0,0),(-1,0,0),(0,0,-1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,-1),(-1,0,0),(0,0,1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,1)])))])]),
    Transform(DEF='CastleEncoded_R4_Block_0_46_25',scale=(0.25,0.25,0.25),translation=(-3.5,-3,0),
      children=[
      Group(DEF='CastleEncoded_Block_1_46_0_6',
        children=[
        Shape(bboxCenter=(0,0,0.5),bboxSize=(1,1,1),
          appearance=Appearance(USE='CastleEncoded_R2_and_R4_ThicknessFac_1_46_0'),
          geometry=IndexedTriangleSet(ccw=True,colorPerVertex=True,index=[1,14,20,1,20,7,10,6,19,10,19,23,21,18,12,21,12,15,16,3,9,16,9,22,5,2,8,5,8,11,17,13,0,17,0,4],normalPerVertex=True,solid=True,
            coord=Coordinate(point=[(0.5,0.5,0),(0.5,0.5,0),(0.5,0.5,0),(0.5,-0.5,0),(0.5,-0.5,0),(0.5,-0.5,0),(0.5,0.5,1),(0.5,0.5,1),(0.5,0.5,1),(0.5,-0.5,1),(0.5,-0.5,1),(0.5,-0.5,1),(-0.5,0.5,0),(-0.5,0.5,0),(-0.5,0.5,0),(-0.5,-0.5,0),(-0.5,-0.5,0),(-0.5,-0.5,0),(-0.5,0.5,1),(-0.5,0.5,1),(-0.5,0.5,1),(-0.5,-0.5,1),(-0.5,-0.5,1),(-0.5,-0.5,1)]),
            normal=Normal(vector=[(0,0,-1),(0,1,0),(1,0,0),(0,-1,0),(0,0,-1),(1,0,0),(0,0,1),(0,1,0),(1,0,0),(0,-1,0),(0,0,1),(1,0,0),(-1,0,0),(0,0,-1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,-1),(-1,0,0),(0,0,1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,1)])))])]),
    Transform(DEF='R3_Block_Row',translation=(-3.5,0,0),
      children=[
      Group(DEF='Block_Row',
        children=[
        Shape(bboxCenter=(5.1875,0,1),bboxSize=(10.625,2,2),
          appearance=Appearance(DEF='R3_ThicknessTex_Mat',alphaMode='OPAQUE',
            material=PhysicalMaterial(metallic=0,roughness=0)),
          geometry=IndexedTriangleSet(ccw=True,colorPerVertex=True,index=[1,14,20,1,20,7,10,6,19,10,19,23,21,18,12,21,12,15,16,3,9,16,9,22,5,2,8,5,8,11,17,13,0,17,0,4,25,38,44,25,44,31,34,30,43,34,43,47,45,42,36,45,36,39,40,27,33,40,33,46,29,26,32,29,32,35,41,37,24,41,24,28,49,62,68,49,68,55,58,54,67,58,67,71,69,66,60,69,60,63,64,51,57,64,57,70,53,50,56,53,56,59,65,61,48,65,48,52,73,86,92,73,92,79,82,78,91,82,91,95,93,90,84,93,84,87,88,75,81,88,81,94,77,74,80,77,80,83,89,85,72,89,72,76,97,110,116,97,116,103,106,102,115,106,115,119,117,114,108,117,108,111,112,99,105,112,105,118,101,98,104,101,104,107,113,109,96,113,96,100],normalPerVertex=True,solid=True,
            coord=Coordinate(point=[(0.125,0.125,0),(0.125,0.125,0),(0.125,0.125,0),(0.125,-0.125,0),(0.125,-0.125,0),(0.125,-0.125,0),(0.125,0.125,0.25),(0.125,0.125,0.25),(0.125,0.125,0.25),(0.125,-0.125,0.25),(0.125,-0.125,0.25),(0.125,-0.125,0.25),(-0.125,0.125,0),(-0.125,0.125,0),(-0.125,0.125,0),(-0.125,-0.125,0),(-0.125,-0.125,0),(-0.125,-0.125,0),(-0.125,0.125,0.25),(-0.125,0.125,0.25),(-0.125,0.125,0.25),(-0.125,-0.125,0.25),(-0.125,-0.125,0.25),(-0.125,-0.125,0.25),(4,0.5,0),(4,0.5,0),(4,0.5,0),(4,-0.5,0),(4,-0.5,0),(4,-0.5,0),(4,0.5,1),(4,0.5,1),(4,0.5,1),(4,-0.5,1),(4,-0.5,1),(4,-0.5,1),(3,0.5,0),(3,0.5,0),(3,0.5,0),(3,-0.5,0),(3,-0.5,0),(3,-0.5,0),(3,0.5,1),(3,0.5,1),(3,0.5,1),(3,-0.5,1),(3,-0.5,1),(3,-0.5,1),(6.75,0.75,0),(6.75,0.75,0),(6.75,0.75,0),(6.75,-0.75,0),(6.75,-0.75,0),(6.75,-0.75,0),(6.75,0.75,1.5),(6.75,0.75,1.5),(6.75,0.75,1.5),(6.75,-0.75,1.5),(6.75,-0.75,1.5),(6.75,-0.75,1.5),(5.25,0.75,0),(5.25,0.75,0),(5.25,0.75,0),(5.25,-0.75,0),(5.25,-0.75,0),(5.25,-0.75,0),(5.25,0.75,1.5),(5.25,0.75,1.5),(5.25,0.75,1.5),(5.25,-0.75,1.5),(5.25,-0.75,1.5),(5.25,-0.75,1.5),(10.5,1,0),(10.5,1,0),(10.5,1,0),(10.5,-1,0),(10.5,-1,0),(10.5,-1,0),(10.5,1,2),(10.5,1,2),(10.5,1,2),(10.5,-1,2),(10.5,-1,2),(10.5,-1,2),(8.5,1,0),(8.5,1,0),(8.5,1,0),(8.5,-1,0),(8.5,-1,0),(8.5,-1,0),(8.5,1,2),(8.5,1,2),(8.5,1,2),(8.5,-1,2),(8.5,-1,2),(8.5,-1,2),(1.75,0.25,0),(1.75,0.25,0),(1.75,0.25,0),(1.75,-0.25,0),(1.75,-0.25,0),(1.75,-0.25,0),(1.75,0.25,0.5),(1.75,0.25,0.5),(1.75,0.25,0.5),(1.75,-0.25,0.5),(1.75,-0.25,0.5),(1.75,-0.25,0.5),(1.25,0.25,0),(1.25,0.25,0),(1.25,0.25,0),(1.25,-0.25,0),(1.25,-0.25,0),(1.25,-0.25,0),(1.25,0.25,0.5),(1.25,0.25,0.5),(1.25,0.25,0.5),(1.25,-0.25,0.5),(1.25,-0.25,0.5),(1.25,-0.25,0.5)]),
            normal=Normal(vector=[(0,0,-1),(0,1,0),(1,0,0),(0,-1,0),(0,0,-1),(1,0,0),(0,0,1),(0,1,0),(1,0,0),(0,-1,0),(0,0,1),(1,0,0),(-1,0,0),(0,0,-1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,-1),(-1,0,0),(0,0,1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,1),(0,0,-1),(0,1,0),(1,0,0),(0,-1,0),(0,0,-1),(1,0,0),(0,0,1),(0,1,0),(1,0,0),(0,-1,0),(0,0,1),(1,0,0),(-1,0,0),(0,0,-1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,-1),(-1,0,0),(0,0,1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,1),(0,0,-1),(0,1,0),(1,0,0),(0,-1,0),(0,0,-1),(1,0,0),(0,0,1),(0,1,0),(1,0,0),(0,-1,0),(0,0,1),(1,0,0),(-1,0,0),(0,0,-1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,-1),(-1,0,0),(0,0,1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,1),(0,0,-1),(0,1,0),(1,0,0),(0,-1,0),(0,0,-1),(1,0,0),(0,0,1),(0,1,0),(1,0,0),(0,-1,0),(0,0,1),(1,0,0),(-1,0,0),(0,0,-1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,-1),(-1,0,0),(0,0,1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,1),(0,0,-1),(0,1,0),(1,0,0),(0,-1,0),(0,0,-1),(1,0,0),(0,0,1),(0,1,0),(1,0,0),(0,-1,0),(0,0,1),(1,0,0),(-1,0,0),(0,0,-1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,-1),(-1,0,0),(0,0,1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,1)]),
            texCoord=MultiTextureCoordinate(
              texCoord=[
              TextureCoordinate(mapping='TEXCOORD_0',point=[(0.897418916225433,0.126378774642944),(0.897418916225433,0.126378774642944),(0.897418916225433,0.126378774642944),(0.897418916225433,0.0923066139221191),(0.897418916225433,0.0923066139221191),(0.897418916225433,0.0923066139221191),(0.931491076946259,0.126378774642944),(0.931491076946259,0.126378774642944),(0.931491076946259,0.126378774642944),(0.931491076946259,0.0923066139221191),(0.931491076946259,0.0923066139221191),(0.931491076946259,0.0923066139221191),(0.863346695899963,0.126378774642944),(0.863346695899963,0.126378774642944),(0.897418916225433,0.160450994968414),(0.863346695899963,0.0923066139221191),(0.897418916225433,0.0582343935966492),(0.863346695899963,0.0923066139221191),(0.829274535179138,0.126378774642944),(0.965563297271729,0.126378774642944),(0.931491076946259,0.160450994968414),(0.829274535179138,0.0923066139221191),(0.931491076946259,0.0582343935966492),(0.965563297271729,0.0923066139221191),(0.897418916225433,0.522712826728821),(0.897418916225433,0.522712826728821),(0.897418916225433,0.522712826728821),(0.897418916225433,0.488640666007996),(0.897418916225433,0.488640666007996),(0.897418916225433,0.488640666007996),(0.931491076946259,0.522712826728821),(0.931491076946259,0.522712826728821),(0.931491076946259,0.522712826728821),(0.931491076946259,0.488640666007996),(0.931491076946259,0.488640666007996),(0.931491076946259,0.488640666007996),(0.863346695899963,0.522712826728821),(0.863346695899963,0.522712826728821),(0.897418916225433,0.556785047054291),(0.863346695899963,0.488640666007996),(0.897418916225433,0.45456850528717),(0.863346695899963,0.488640666007996),(0.829274535179138,0.522712826728821),(0.965563297271729,0.522712826728821),(0.931491076946259,0.556785047054291),(0.829274535179138,0.488640666007996),(0.931491076946259,0.45456850528717),(0.965563297271729,0.488640666007996),(0.897418916225433,0.710734844207764),(0.897418916225433,0.710734844207764),(0.897418916225433,0.710734844207764),(0.897418916225433,0.676662683486938),(0.897418916225433,0.676662683486938),(0.897418916225433,0.676662683486938),(0.931491076946259,0.710734844207764),(0.931491076946259,0.710734844207764),(0.931491076946259,0.710734844207764),(0.931491076946259,0.676662683486938),(0.931491076946259,0.676662683486938),(0.931491076946259,0.676662683486938),(0.863346695899963,0.710734844207764),(0.863346695899963,0.710734844207764),(0.897418916225433,0.744807004928589),(0.863346695899963,0.676662683486938),(0.897418916225433,0.642590463161469),(0.863346695899963,0.676662683486938),(0.829274535179138,0.710734844207764),(0.965563297271729,0.710734844207764),(0.931491076946259,0.744807004928589),(0.829274535179138,0.676662683486938),(0.931491076946259,0.642590463161469),(0.965563297271729,0.676662683486938),(0.897418916225433,0.912283599376678),(0.897418916225433,0.912283599376678),(0.897418916225433,0.912283599376678),(0.897418916225433,0.878211438655853),(0.897418916225433,0.878211438655853),(0.897418916225433,0.878211438655853),(0.931491076946259,0.912283599376678),(0.931491076946259,0.912283599376678),(0.931491076946259,0.912283599376678),(0.931491076946259,0.878211438655853),(0.931491076946259,0.878211438655853),(0.931491076946259,0.878211438655853),(0.863346695899963,0.912283599376678),(0.863346695899963,0.912283599376678),(0.897418916225433,0.946355819702148),(0.863346695899963,0.878211438655853),(0.897418916225433,0.844139218330383),(0.863346695899963,0.878211438655853),(0.829274535179138,0.912283599376678),(0.965563297271729,0.912283599376678),(0.931491076946259,0.946355819702148),(0.829274535179138,0.878211438655853),(0.931491076946259,0.844139218330383),(0.965563297271729,0.878211438655853),(0.897418916225433,0.330632865428925),(0.897418916225433,0.330632865428925),(0.897418916225433,0.330632865428925),(0.897418916225433,0.296560704708099),(0.897418916225433,0.296560704708099),(0.897418916225433,0.296560704708099),(0.931491076946259,0.330632865428925),(0.931491076946259,0.330632865428925),(0.931491076946259,0.330632865428925),(0.931491076946259,0.296560704708099),(0.931491076946259,0.296560704708099),(0.931491076946259,0.296560704708099),(0.863346695899963,0.330632865428925),(0.863346695899963,0.330632865428925),(0.897418916225433,0.364705085754395),(0.863346695899963,0.296560704708099),(0.897418916225433,0.262488484382629),(0.863346695899963,0.296560704708099),(0.829274535179138,0.330632865428925),(0.965563297271729,0.330632865428925),(0.931491076946259,0.364705085754395),(0.829274535179138,0.296560704708099),(0.931491076946259,0.262488484382629),(0.965563297271729,0.296560704708099)])])))])]),
    Transform(DEF='CastleEncoded_R5_Block_1_46_0',translation=(0,-6,0),
      children=[
      Group(DEF='CastleEncoded_Block_1_46_0_7',
        children=[
        Shape(bboxCenter=(0,0,0.5),bboxSize=(1,1,1),
          appearance=Appearance(DEF='CastleEncoded_R5_Attenuation_1_46_0',alphaMode='OPAQUE',
            material=PhysicalMaterial(metallic=0,roughness=0)),
          geometry=IndexedTriangleSet(ccw=True,colorPerVertex=True,index=[1,14,20,1,20,7,10,6,19,10,19,23,21,18,12,21,12,15,16,3,9,16,9,22,5,2,8,5,8,11,17,13,0,17,0,4],normalPerVertex=True,solid=True,
            coord=Coordinate(point=[(0.5,0.5,0),(0.5,0.5,0),(0.5,0.5,0),(0.5,-0.5,0),(0.5,-0.5,0),(0.5,-0.5,0),(0.5,0.5,1),(0.5,0.5,1),(0.5,0.5,1),(0.5,-0.5,1),(0.5,-0.5,1),(0.5,-0.5,1),(-0.5,0.5,0),(-0.5,0.5,0),(-0.5,0.5,0),(-0.5,-0.5,0),(-0.5,-0.5,0),(-0.5,-0.5,0),(-0.5,0.5,1),(-0.5,0.5,1),(-0.5,0.5,1),(-0.5,-0.5,1),(-0.5,-0.5,1),(-0.5,-0.5,1)]),
            normal=Normal(vector=[(0,0,-1),(0,1,0),(1,0,0),(0,-1,0),(0,0,-1),(1,0,0),(0,0,1),(0,1,0),(1,0,0),(0,-1,0),(0,0,1),(1,0,0),(-1,0,0),(0,0,-1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,-1),(-1,0,0),(0,0,1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,1)])))])]),
    Transform(DEF='CastleEncoded_R5_Block_1_46_5',translation=(2.5,-6,0),
      children=[
      Group(DEF='CastleEncoded_Block_1_46_0_8',
        children=[
        Shape(bboxCenter=(0,0,0.5),bboxSize=(1,1,1),
          appearance=Appearance(DEF='CastleEncoded_R5_Attenuation_1_46_5',alphaMode='OPAQUE',
            material=PhysicalMaterial(metallic=0,roughness=0)),
          geometry=IndexedTriangleSet(ccw=True,colorPerVertex=True,index=[1,14,20,1,20,7,10,6,19,10,19,23,21,18,12,21,12,15,16,3,9,16,9,22,5,2,8,5,8,11,17,13,0,17,0,4],normalPerVertex=True,solid=True,
            coord=Coordinate(point=[(0.5,0.5,0),(0.5,0.5,0),(0.5,0.5,0),(0.5,-0.5,0),(0.5,-0.5,0),(0.5,-0.5,0),(0.5,0.5,1),(0.5,0.5,1),(0.5,0.5,1),(0.5,-0.5,1),(0.5,-0.5,1),(0.5,-0.5,1),(-0.5,0.5,0),(-0.5,0.5,0),(-0.5,0.5,0),(-0.5,-0.5,0),(-0.5,-0.5,0),(-0.5,-0.5,0),(-0.5,0.5,1),(-0.5,0.5,1),(-0.5,0.5,1),(-0.5,-0.5,1),(-0.5,-0.5,1),(-0.5,-0.5,1)]),
            normal=Normal(vector=[(0,0,-1),(0,1,0),(1,0,0),(0,-1,0),(0,0,-1),(1,0,0),(0,0,1),(0,1,0),(1,0,0),(0,-1,0),(0,0,1),(1,0,0),(-1,0,0),(0,0,-1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,-1),(-1,0,0),(0,0,1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,1)])))])]),
    Transform(DEF='CastleEncoded_R5_Block_2_46_0',translation=(6,-6,0),
      children=[
      Group(DEF='CastleEncoded_Block_1_46_0_9',
        children=[
        Shape(bboxCenter=(0,0,0.5),bboxSize=(1,1,1),
          appearance=Appearance(DEF='CastleEncoded_R5_Attenuation_2_46_0',alphaMode='OPAQUE',
            material=PhysicalMaterial(metallic=0,roughness=0)),
          geometry=IndexedTriangleSet(ccw=True,colorPerVertex=True,index=[1,14,20,1,20,7,10,6,19,10,19,23,21,18,12,21,12,15,16,3,9,16,9,22,5,2,8,5,8,11,17,13,0,17,0,4],normalPerVertex=True,solid=True,
            coord=Coordinate(point=[(0.5,0.5,0),(0.5,0.5,0),(0.5,0.5,0),(0.5,-0.5,0),(0.5,-0.5,0),(0.5,-0.5,0),(0.5,0.5,1),(0.5,0.5,1),(0.5,0.5,1),(0.5,-0.5,1),(0.5,-0.5,1),(0.5,-0.5,1),(-0.5,0.5,0),(-0.5,0.5,0),(-0.5,0.5,0),(-0.5,-0.5,0),(-0.5,-0.5,0),(-0.5,-0.5,0),(-0.5,0.5,1),(-0.5,0.5,1),(-0.5,0.5,1),(-0.5,-0.5,1),(-0.5,-0.5,1),(-0.5,-0.5,1)]),
            normal=Normal(vector=[(0,0,-1),(0,1,0),(1,0,0),(0,-1,0),(0,0,-1),(1,0,0),(0,0,1),(0,1,0),(1,0,0),(0,-1,0),(0,0,1),(1,0,0),(-1,0,0),(0,0,-1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,-1),(-1,0,0),(0,0,1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,1)])))])]),
    Transform(DEF='CastleEncoded_R5_Block_0_46_50',translation=(-2,-6,0),
      children=[
      Group(DEF='CastleEncoded_Block_1_46_0_10',
        children=[
        Shape(bboxCenter=(0,0,0.5),bboxSize=(1,1,1),
          appearance=Appearance(DEF='CastleEncoded_R5_Attenuation_0_46_50',alphaMode='OPAQUE',
            material=PhysicalMaterial(metallic=0,roughness=0)),
          geometry=IndexedTriangleSet(ccw=True,colorPerVertex=True,index=[1,14,20,1,20,7,10,6,19,10,19,23,21,18,12,21,12,15,16,3,9,16,9,22,5,2,8,5,8,11,17,13,0,17,0,4],normalPerVertex=True,solid=True,
            coord=Coordinate(point=[(0.5,0.5,0),(0.5,0.5,0),(0.5,0.5,0),(0.5,-0.5,0),(0.5,-0.5,0),(0.5,-0.5,0),(0.5,0.5,1),(0.5,0.5,1),(0.5,0.5,1),(0.5,-0.5,1),(0.5,-0.5,1),(0.5,-0.5,1),(-0.5,0.5,0),(-0.5,0.5,0),(-0.5,0.5,0),(-0.5,-0.5,0),(-0.5,-0.5,0),(-0.5,-0.5,0),(-0.5,0.5,1),(-0.5,0.5,1),(-0.5,0.5,1),(-0.5,-0.5,1),(-0.5,-0.5,1),(-0.5,-0.5,1)]),
            normal=Normal(vector=[(0,0,-1),(0,1,0),(1,0,0),(0,-1,0),(0,0,-1),(1,0,0),(0,0,1),(0,1,0),(1,0,0),(0,-1,0),(0,0,1),(1,0,0),(-1,0,0),(0,0,-1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,-1),(-1,0,0),(0,0,1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,1)])))])]),
    Transform(DEF='CastleEncoded_R5_Block_0_46_25',translation=(-3.5,-6,0),
      children=[
      Group(DEF='CastleEncoded_Block_1_46_0_11',
        children=[
        Shape(bboxCenter=(0,0,0.5),bboxSize=(1,1,1),
          appearance=Appearance(DEF='CastleEncoded_R5_Attenuation_0_46_25',alphaMode='OPAQUE',
            material=PhysicalMaterial(metallic=0,roughness=0)),
          geometry=IndexedTriangleSet(ccw=True,colorPerVertex=True,index=[1,14,20,1,20,7,10,6,19,10,19,23,21,18,12,21,12,15,16,3,9,16,9,22,5,2,8,5,8,11,17,13,0,17,0,4],normalPerVertex=True,solid=True,
            coord=Coordinate(point=[(0.5,0.5,0),(0.5,0.5,0),(0.5,0.5,0),(0.5,-0.5,0),(0.5,-0.5,0),(0.5,-0.5,0),(0.5,0.5,1),(0.5,0.5,1),(0.5,0.5,1),(0.5,-0.5,1),(0.5,-0.5,1),(0.5,-0.5,1),(-0.5,0.5,0),(-0.5,0.5,0),(-0.5,0.5,0),(-0.5,-0.5,0),(-0.5,-0.5,0),(-0.5,-0.5,0),(-0.5,0.5,1),(-0.5,0.5,1),(-0.5,0.5,1),(-0.5,-0.5,1),(-0.5,-0.5,1),(-0.5,-0.5,1)]),
            normal=Normal(vector=[(0,0,-1),(0,1,0),(1,0,0),(0,-1,0),(0,0,-1),(1,0,0),(0,0,1),(0,1,0),(1,0,0),(0,-1,0),(0,0,1),(1,0,0),(-1,0,0),(0,0,-1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,-1),(-1,0,0),(0,0,1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,1)])))])]),
    Transform(DEF='MeterGrid',translation=(0,0,-2),
      children=[
      Group(DEF='Plane',
        children=[
        Shape(bboxSize=(20,20,0),
          appearance=Appearance(DEF='FlatBackdrop',alphaMode='OPAQUE',
            material=PhysicalMaterial(baseTextureMapping='TEXCOORD_0',metallic=0,roughness=0.5,
              baseTexture=ImageTexture(url=["PlainGrid.png","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GltfSampleModels/PlainGrid.png"],
                textureProperties=TextureProperties(magnificationFilter='AVG_PIXEL',minificationFilter='NEAREST_PIXEL_AVG_MIPMAP')))),
          geometry=IndexedTriangleSet(ccw=True,colorPerVertex=True,index=[0,1,3,0,3,2],normalPerVertex=True,solid=True,
            coord=Coordinate(point=[(-10,-10,0),(10,-10,0),(-10,10,0),(10,10,0)]),
            normal=Normal(vector=[(0,0,1),(0,0,1),(0,0,1),(0,0,1)]),
            texCoord=MultiTextureCoordinate(
              texCoord=[
              TextureCoordinate(mapping='TEXCOORD_0',point=[(0.515625,0.515625),(20.515625,0.515625),(0.515625,-19.484375),(20.515625,-19.484375)])])))])]),
    Transform(DEF='CastleEncoded_R1_Sample_1_46_0',translation=(0,6,0),
      children=[
      Group(DEF='CastleEncoded_Block_1_46_0_12',
        children=[
        Shape(bboxCenter=(0,0,0.5),bboxSize=(1,1,1),
          appearance=Appearance(DEF='CastleEncoded_R1_Sample_1_46_0_2',alphaMode='OPAQUE',
            material=PhysicalMaterial(baseColor=(0.100000001490116,0.5,0.899999976158142),metallic=0,roughness=0)),
          geometry=IndexedTriangleSet(ccw=True,colorPerVertex=True,index=[1,14,20,1,20,7,10,6,19,10,19,23,21,18,12,21,12,15,16,3,9,16,9,22,5,2,8,5,8,11,17,13,0,17,0,4],normalPerVertex=True,solid=True,
            coord=Coordinate(point=[(0.5,0.5,0),(0.5,0.5,0),(0.5,0.5,0),(0.5,-0.5,0),(0.5,-0.5,0),(0.5,-0.5,0),(0.5,0.5,1),(0.5,0.5,1),(0.5,0.5,1),(0.5,-0.5,1),(0.5,-0.5,1),(0.5,-0.5,1),(-0.5,0.5,0),(-0.5,0.5,0),(-0.5,0.5,0),(-0.5,-0.5,0),(-0.5,-0.5,0),(-0.5,-0.5,0),(-0.5,0.5,1),(-0.5,0.5,1),(-0.5,0.5,1),(-0.5,-0.5,1),(-0.5,-0.5,1),(-0.5,-0.5,1)]),
            normal=Normal(vector=[(0,0,-1),(0,1,0),(1,0,0),(0,-1,0),(0,0,-1),(1,0,0),(0,0,1),(0,1,0),(1,0,0),(0,-1,0),(0,0,1),(1,0,0),(-1,0,0),(0,0,-1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,-1),(-1,0,0),(0,0,1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,1)])))])]),
    Transform(DEF='CastleEncoded_R1_Sample_1_46_5',translation=(2.5,6,0),
      children=[
      Group(DEF='CastleEncoded_Block_1_46_5_2',
        children=[
        Shape(bboxCenter=(0,0,0.75),bboxSize=(1.5,1.5,1.5),
          appearance=Appearance(DEF='CastleEncoded_R1_Sample_1_46_5_2',alphaMode='OPAQUE',
            material=PhysicalMaterial(baseColor=(0.0316227748990059,0.353553384542465,0.853814959526062),metallic=0,roughness=0)),
          geometry=IndexedTriangleSet(ccw=True,colorPerVertex=True,index=[1,14,20,1,20,7,10,6,19,10,19,23,21,18,12,21,12,15,16,3,9,16,9,22,5,2,8,5,8,11,17,13,0,17,0,4],normalPerVertex=True,solid=True,
            coord=Coordinate(point=[(0.75,0.75,0),(0.75,0.75,0),(0.75,0.75,0),(0.75,-0.75,0),(0.75,-0.75,0),(0.75,-0.75,0),(0.75,0.75,1.5),(0.75,0.75,1.5),(0.75,0.75,1.5),(0.75,-0.75,1.5),(0.75,-0.75,1.5),(0.75,-0.75,1.5),(-0.75,0.75,0),(-0.75,0.75,0),(-0.75,0.75,0),(-0.75,-0.75,0),(-0.75,-0.75,0),(-0.75,-0.75,0),(-0.75,0.75,1.5),(-0.75,0.75,1.5),(-0.75,0.75,1.5),(-0.75,-0.75,1.5),(-0.75,-0.75,1.5),(-0.75,-0.75,1.5)]),
            normal=Normal(vector=[(0,0,-1),(0,1,0),(1,0,0),(0,-1,0),(0,0,-1),(1,0,0),(0,0,1),(0,1,0),(1,0,0),(0,-1,0),(0,0,1),(1,0,0),(-1,0,0),(0,0,-1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,-1),(-1,0,0),(0,0,1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,1)])))])]),
    Transform(DEF='CastleEncoded_R1_Sample_2_46_0',translation=(6,6,0),
      children=[
      Group(DEF='CastleEncoded_Block_2_46_0_2',
        children=[
        Shape(bboxCenter=(0,0,1),bboxSize=(2,2,2),
          appearance=Appearance(DEF='CastleEncoded_R1_Sample_2_46_0_2',alphaMode='OPAQUE',
            material=PhysicalMaterial(baseColor=(0.00999999977648258,0.25,0.810000002384186),metallic=0,roughness=0)),
          geometry=IndexedTriangleSet(ccw=True,colorPerVertex=True,index=[1,14,20,1,20,7,10,6,19,10,19,23,21,18,12,21,12,15,16,3,9,16,9,22,5,2,8,5,8,11,17,13,0,17,0,4],normalPerVertex=True,solid=True,
            coord=Coordinate(point=[(1,1,0),(1,1,0),(1,1,0),(1,-1,0),(1,-1,0),(1,-1,0),(1,1,2),(1,1,2),(1,1,2),(1,-1,2),(1,-1,2),(1,-1,2),(-1,1,0),(-1,1,0),(-1,1,0),(-1,-1,0),(-1,-1,0),(-1,-1,0),(-1,1,2),(-1,1,2),(-1,1,2),(-1,-1,2),(-1,-1,2),(-1,-1,2)]),
            normal=Normal(vector=[(0,0,-1),(0,1,0),(1,0,0),(0,-1,0),(0,0,-1),(1,0,0),(0,0,1),(0,1,0),(1,0,0),(0,-1,0),(0,0,1),(1,0,0),(-1,0,0),(0,0,-1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,-1),(-1,0,0),(0,0,1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,1)])))])]),
    Transform(DEF='CastleEncoded_R1_Sample_0_46_50',translation=(-2,6,0),
      children=[
      Group(DEF='CastleEncoded_Block_0_46_50_2',
        children=[
        Shape(bboxCenter=(0,0,0.25),bboxSize=(0.5,0.5,0.5),
          appearance=Appearance(DEF='CastleEncoded_R1_Sample_0_46_50_2',alphaMode='OPAQUE',
            material=PhysicalMaterial(baseColor=(0.31622776389122,0.70710676908493,0.948683321475983),metallic=0,roughness=0)),
          geometry=IndexedTriangleSet(ccw=True,colorPerVertex=True,index=[1,14,20,1,20,7,10,6,19,10,19,23,21,18,12,21,12,15,16,3,9,16,9,22,5,2,8,5,8,11,17,13,0,17,0,4],normalPerVertex=True,solid=True,
            coord=Coordinate(point=[(0.25,0.25,0),(0.25,0.25,0),(0.25,0.25,0),(0.25,-0.25,0),(0.25,-0.25,0),(0.25,-0.25,0),(0.25,0.25,0.5),(0.25,0.25,0.5),(0.25,0.25,0.5),(0.25,-0.25,0.5),(0.25,-0.25,0.5),(0.25,-0.25,0.5),(-0.25,0.25,0),(-0.25,0.25,0),(-0.25,0.25,0),(-0.25,-0.25,0),(-0.25,-0.25,0),(-0.25,-0.25,0),(-0.25,0.25,0.5),(-0.25,0.25,0.5),(-0.25,0.25,0.5),(-0.25,-0.25,0.5),(-0.25,-0.25,0.5),(-0.25,-0.25,0.5)]),
            normal=Normal(vector=[(0,0,-1),(0,1,0),(1,0,0),(0,-1,0),(0,0,-1),(1,0,0),(0,0,1),(0,1,0),(1,0,0),(0,-1,0),(0,0,1),(1,0,0),(-1,0,0),(0,0,-1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,-1),(-1,0,0),(0,0,1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,1)])))])]),
    Transform(DEF='CastleEncoded_R1_Sample_0_46_25',translation=(-3.5,6,0),
      children=[
      Group(DEF='CastleEncoded_Block_0_46_25_2',
        children=[
        Shape(bboxCenter=(0,0,0.125),bboxSize=(0.25,0.25,0.25),
          appearance=Appearance(DEF='CastleEncoded_R1_Sample_0_46_25_2',alphaMode='OPAQUE',
            material=PhysicalMaterial(baseColor=(0.562341332435608,0.840896427631378,0.974003732204437),metallic=0,roughness=0)),
          geometry=IndexedTriangleSet(ccw=True,colorPerVertex=True,index=[1,14,20,1,20,7,10,6,19,10,19,23,21,18,12,21,12,15,16,3,9,16,9,22,5,2,8,5,8,11,17,13,0,17,0,4],normalPerVertex=True,solid=True,
            coord=Coordinate(point=[(0.125,0.125,0),(0.125,0.125,0),(0.125,0.125,0),(0.125,-0.125,0),(0.125,-0.125,0),(0.125,-0.125,0),(0.125,0.125,0.25),(0.125,0.125,0.25),(0.125,0.125,0.25),(0.125,-0.125,0.25),(0.125,-0.125,0.25),(0.125,-0.125,0.25),(-0.125,0.125,0),(-0.125,0.125,0),(-0.125,0.125,0),(-0.125,-0.125,0),(-0.125,-0.125,0),(-0.125,-0.125,0),(-0.125,0.125,0.25),(-0.125,0.125,0.25),(-0.125,0.125,0.25),(-0.125,-0.125,0.25),(-0.125,-0.125,0.25),(-0.125,-0.125,0.25)]),
            normal=Normal(vector=[(0,0,-1),(0,1,0),(1,0,0),(0,-1,0),(0,0,-1),(1,0,0),(0,0,1),(0,1,0),(1,0,0),(0,-1,0),(0,0,1),(1,0,0),(-1,0,0),(0,0,-1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,-1),(-1,0,0),(0,0,1),(0,1,0),(-1,0,0),(0,-1,0),(0,0,1)])))])])])
)

### X3D model conversion complete ###

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

print('Self-test diagnostics for AttenuationTest.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 AttenuationTest.py load and self-test diagnostics complete.")
