diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /graphics/sketch/Data |
Initial commit
Diffstat (limited to 'graphics/sketch/Data')
-rw-r--r-- | graphics/sketch/Data/2tori.sk | 35 | ||||
-rw-r--r-- | graphics/sketch/Data/buggy.sk | 256 | ||||
-rw-r--r-- | graphics/sketch/Data/bunny.sk | 961 | ||||
-rw-r--r-- | graphics/sketch/Data/cone.sk | 134 | ||||
-rw-r--r-- | graphics/sketch/Data/hand.sk | 387 | ||||
-rw-r--r-- | graphics/sketch/Data/test.sk | 84 |
6 files changed, 1857 insertions, 0 deletions
diff --git a/graphics/sketch/Data/2tori.sk b/graphics/sketch/Data/2tori.sk new file mode 100644 index 0000000000..d5ca168163 --- /dev/null +++ b/graphics/sketch/Data/2tori.sk @@ -0,0 +1,35 @@ +# origin +def O (0,0,0) +def s1 [fillcolor=red] +def s2 [linewidth=.2pt,linestyle=dotted] + +def sweeptorus { + def N 80 + put { translate([1,0,0]) } { + sweep[s1,s2]{N, rotate(360/N, (-1,0,0), [0,1,0]) } { + line(0,-1,0)(1,-1,0)(1,1,0)(0,1,0)(0,-1,0) + } + } +} + +def tori { + put { translate([-2.2,0,0]) } {sweeptorus} + put { rotate(-30, (O), [0,0,1]) then translate([2.2,.5,0]) } {sweeptorus} +} + +def sceneProjection { + + put { rotate(20, (O), [0,0,1]) then + rotate(30, (O), [1,0,0]) then + translate([0,0,-10]) then + perspective(7) } {tori} +} + +{sceneProjection} + +global { + language tikz,context + set [linewidth=.1pt] + picturebox (-2,-2)(2,2) + frame +} diff --git a/graphics/sketch/Data/buggy.sk b/graphics/sketch/Data/buggy.sk new file mode 100644 index 0000000000..f3dcbe7401 --- /dev/null +++ b/graphics/sketch/Data/buggy.sk @@ -0,0 +1,256 @@ +def O (0,0,0) +def I [1,0,0] +def J [0,1,0] +def K [0,0,1] +def cornerRad 0.1 +def tireRad 0.5 +def wheelWidth .4 +def nArcSegs 3 +def nTireSegs 20 +def nAxleSegs 6 +def axleRad .05 +def robotWidth 1.5 +def robotLength 2.5 +def bodyWidth .5 +def bodyHeight .4 +def steeringGamma .2 +def leftSteeringAngle atan2(2 * robotLength * steeringGamma, 2 - robotWidth * steeringGamma) +def rightSteeringAngle atan2(2 * robotLength * steeringGamma, 2 + robotWidth * steeringGamma) + +def wheelRad tireRad - cornerRad +def wheelXofs wheelWidth/2 - cornerRad + +def rightArc put { + translate([ wheelXofs, wheelRad, 0]) +} sweep { nArcSegs, rotate(90 / nArcSegs) } (cornerRad,0) + +def leftArc put { + translate([-wheelXofs, wheelRad, 0]) +} sweep { nArcSegs, rotate(90 / nArcSegs) } (0,cornerRad) + +def tread line(wheelXofs, tireRad)(-wheelXofs, tireRad) + +def hubPlate sweep[fillcolor=lightgray] { nTireSegs<>, rotate(-360 / nTireSegs, (O), [I]) } (0,wheelRad) + +def tire sweep[fillcolor=lightgray]{ nTireSegs, rotate(360 / nTireSegs, (O), -[I]) } { + {leftArc} + {rightArc} + {tread} +} + +def wheel { + def leftHubPlate put { translate( [-wheelWidth/2, 0, 0] ) } {hubPlate} + def rightHubPlate put { rotate(180, (O), [K]) } {leftHubPlate} + {rightHubPlate} + {leftHubPlate} + {tire} +} + +def axle sweep[fillcolor=darkgray]{ nAxleSegs, rotate(360 / nAxleSegs, (O), -[I]) } + line (robotWidth/2, axleRad)(-robotWidth/2, axleRad) + +def leftSteerableWheel put { + rotate(leftSteeringAngle, (O), [J]) then + translate( [-robotWidth/2, 0, 0] ) +} {wheel} + +def rightSteerableWheel put { + rotate(rightSteeringAngle, (O), [J]) then + translate( [robotWidth/2, 0, 0] ) +} {wheel} + +def steerableAxleAssembly { + {leftSteerableWheel} + {rightSteerableWheel} + {axle} +} + +def fixedAxleAssembly { + put { translate( [-robotWidth/2, 0, 0] ) } {wheel} + put { translate( [ robotWidth/2, 0, 0] ) } {wheel} + {axle} +} + +def bodyopts [fillcolor=white] + +def bodyCorner # first octant "rounded corner" + sweep [bodyopts]{ nArcSegs, rotate(90 / nArcSegs, (O), [I]) } + sweep { nArcSegs, rotate(90 / nArcSegs, (O),-[K]) } (0,cornerRad) + +def zBodyEdge + sweep [bodyopts] { 1, translate([K]) } + sweep { nArcSegs, rotate(90 / nArcSegs, (O), -[K]) } (0,cornerRad,0) + +def xBodyEdge # positive y-z quadrant about x axis quarter-pipe of unit length + sweep [bodyopts] { 1, translate([I]) } + sweep { nArcSegs, rotate(90 / nArcSegs, (O), -[I]) } (0,0,cornerRad) + +def body { + def xOfs bodyWidth/2 - cornerRad + def yOfs bodyHeight/2 - cornerRad + def zOfs robotLength/2 + cornerRad + def posZend { + # 4 corners + put { translate([ xOfs, yOfs, zOfs]) } {bodyCorner} + put { rotate(90, (O), [K]) then + translate([-xOfs, yOfs, zOfs]) } {bodyCorner} + put { rotate(180, (O), [K]) then + translate([-xOfs, -yOfs, zOfs]) } {bodyCorner} + put { rotate(270, (O), [K]) then + translate([ xOfs, -yOfs, zOfs]) } {bodyCorner} + # 4 edges + put { scale([2*xOfs, 1, 1]) then + translate([-xOfs, yOfs, zOfs]) } {xBodyEdge} + put { scale([2*yOfs, 1, 1]) then + rotate(90, (O), [K]) then + translate([-xOfs,-yOfs, zOfs]) } {xBodyEdge} + put { scale([2*xOfs, 1, 1]) then + rotate(180, (O), [K]) then + translate([ xOfs,-yOfs, zOfs]) } {xBodyEdge} + put { scale([2*yOfs, 1, 1]) then + rotate(270, (O), [K]) then + translate([ xOfs, yOfs, zOfs]) } {xBodyEdge} + def z zOfs + cornerRad + polygon[bodyopts](xOfs,yOfs,z)(-xOfs,yOfs,z)(-xOfs,-yOfs,z)(xOfs,-yOfs,z) + } + def top { + put { scale([1,1,2*zOfs]) then + translate([xOfs, yOfs, -zOfs]) } {zBodyEdge} + put { scale([1,1,2*zOfs]) then + rotate(90) then + translate([-xOfs, yOfs, -zOfs]) } {zBodyEdge} + def y bodyHeight/2 + polygon[bodyopts](xOfs,y,zOfs)(xOfs,y,-zOfs)(-xOfs,y,-zOfs)(-xOfs,y,zOfs) + } + def posXside { + def x bodyWidth/2 + polygon[bodyopts](x,yOfs,zOfs)(x,-yOfs,zOfs)(x,-yOfs,-zOfs)(x,yOfs,-zOfs) + } + + # ends of the body + {posZend} + put { rotate(180, (O), [I]) } {posZend} + + {top} + {posXside} + + # bottom and negative X side + put { rotate(180) } { + {top} + {posXside} + } +} + +def robot { + {fixedAxleAssembly} + put { translate([0, 0, -robotLength]) } {steerableAxleAssembly} + put { translate([0, 0, -robotLength/2]) } {body} +} + +def centerXform + translate(robotLength/2 * [K]) + then rotate(90, (O), [J]) + +def winWidth + <zoomed_in> 0.6 + <zoomed_out> 1.5 + <> 1 + +def foreshorteningFactor + <fish_eye> .3 + <parallel> 30 + <> 1 # base + +def pai 8 +def panAngle + <vai> -pai + <vaii> -pai + <vaiii> -pai + <vaiv> pai + <vav> 0 + <vavi> -pai + <vavii> pai + <vaviii> pai + <vaix> pai + <> 0 + +def panAxis + <vai> [-1,-1,0] + <vaii> [-1,0,0] + <vaiii> [-1,1,0] + <vaiv> [0,1,0] + <vav> [0,1,0] + <vavi> [0,1,0] + <vavii> [-1,1,0] + <vaviii> [-1,0,0] + <vaix> [-1,-1,0] + <> [0,1,0] + +def eyeAxis [10,7,10] +def eyeI (O) + .5 * foreshorteningFactor * [eyeAxis] +def dvI (O) - (eyeI) + +def upRot + <tilt_left> -20 + <tilt_right> 20 + <> 0 + +def up [0,1,0] then rotate(upRot, (O), -[eyeAxis]) + +def viewXformI + <parallel> + view ((eyeI), [dvI], [up]) + then rotate(-panAngle, (O), [panAxis]) + then perspective(|[dvI]|) + then scale(1.5/winWidth) + then scale([1,1,1000]) + <> view ((eyeI), [dvI], [up]) + then rotate(-panAngle, (O), [panAxis]) + then perspective(|[dvI]|) + then scale(1.5/winWidth) + +def dashframe { + line[linestyle=dashed](-1,-1, 1)( 1,-1, 1)(1,1, 1)(-1,1, 1)(-1,-1, 1) + line[linestyle=dashed](-1,-1,-1)( 1,-1,-1)(1,1,-1)(-1,1,-1)(-1,-1,-1) + line[linestyle=dashed](-1,-1, 1)(-1,-1,-1) + line[linestyle=dashed]( 1,-1, 1)( 1,-1,-1) + line[linestyle=dashed]( 1, 1, 1)( 1, 1,-1) + line[linestyle=dashed](-1, 1, 1)(-1, 1,-1) +} + +def floor_grid { + def opts [linewidth=.2pt] + def nX 7 + def nZ 5 + def dx (robotLength+tireRad*2) + 2 + def dz (robotWidth+wheelWidth) + 2 + def y -tireRad-.001 + + repeat { nX+1, translate([dx/nX,0,0]) } line[opts](-dx/2,y,-dz/2)(-dx/2,y,dz/2) + repeat { nZ+1, translate([0,0,dz/nZ]) } line[opts](-dx/2,y,-dz/2)(dx/2,y,-dz/2) +} + +put { [[viewXformI]] } { + put { [[centerXform]] } {robot} + {floor_grid} +# put { scale([(robotLength+tireRad*2)/2, tireRad, (robotWidth+wheelWidth)/2]) } {dashframe} +} + +#def frameOfs 2 +#put { [[viewXformI]] then translate(-frameOfs * [I]) } {robot} +#put { [[viewXformI]] then translate(frameOfs * [I]) } {robot} +#put { [[simpleViewXform]] then translate(2*frameOfs * [I]) } {robot} + + +global { + set [linewidth=.3pt] + + % set up a bounding box + def w 3 + def ar 3/2.2 + def cbp1 (-w,-w/ar,0) + def cbp2 (w,w/ar,0) + + picturebox [.5] (cbp1)(cbp2) + frame +} diff --git a/graphics/sketch/Data/bunny.sk b/graphics/sketch/Data/bunny.sk new file mode 100644 index 0000000000..2015c1a853 --- /dev/null +++ b/graphics/sketch/Data/bunny.sk @@ -0,0 +1,961 @@ +def bunny { + polygon(-0.024861,0.122913,0.024543)(-0.029876,0.124252,0.020967)(-0.030720,0.117989,0.030617) + polygon(-0.069870,0.168536,-0.031332)(-0.077145,0.167706,-0.029880)(-0.070211,0.165303,-0.019466) + polygon(-0.042962,0.043024,-0.017629)(-0.042721,0.034356,-0.019130)(-0.051293,0.034227,-0.012901) + polygon(-0.028499,0.090492,-0.029085)(-0.031564,0.095933,-0.023680)(-0.029013,0.106719,-0.020748) + polygon(-0.017634,0.127605,0.017937)(-0.019276,0.119853,0.032806)(-0.014179,0.126270,0.026642) + polygon(-0.017634,0.127605,0.017937)(-0.029568,0.126072,0.014634)(-0.029876,0.124252,0.020967) + polygon(-0.005907,0.127934,0.027462)(-0.019276,0.119853,0.032806)(-0.006185,0.122729,0.034787) + polygon(-0.056250,0.135013,0.033045)(-0.047913,0.129301,0.026965)(-0.043539,0.130014,0.017533) + polygon(0.017440,0.127694,0.018535)(0.005822,0.128060,0.027902)(0.014434,0.127081,0.026297) + polygon(-0.027772,0.038256,0.032287)(-0.033075,0.035522,0.029224)(-0.035244,0.035057,0.017826) + polygon(-0.029876,0.124252,0.020967)(-0.043539,0.130014,0.017533)(-0.038891,0.123761,0.024978) + polygon(-0.006001,0.130398,0.017899)(-0.017634,0.127605,0.017937)(-0.014179,0.126270,0.026642) + polygon(-0.005907,0.127934,0.027462)(-0.014179,0.126270,0.026642)(-0.019276,0.119853,0.032806) + polygon(-0.089811,0.132401,0.007057)(-0.085027,0.146034,0.005860)(-0.085698,0.136903,0.001921) + polygon(-0.051632,0.145001,0.018480)(-0.056395,0.154565,0.016878)(-0.057352,0.144989,0.031520) + polygon(0.005955,0.131024,0.017825)(-0.005907,0.127934,0.027462)(0.005822,0.128060,0.027902) + polygon(-0.078792,0.070777,0.006856)(-0.078488,0.070528,0.017446)(-0.084526,0.080057,0.005307) + polygon(-0.062285,0.162360,-0.039629)(-0.068261,0.170398,-0.043700)(-0.069870,0.168536,-0.031332) + polygon(-0.067493,0.128392,-0.008635)(-0.080391,0.129634,-0.004698)(-0.067968,0.142877,-0.007576) + polygon(0.005975,0.130858,0.005795)(-0.006001,0.130398,0.017899)(0.005955,0.131024,0.017825) + polygon(-0.068855,0.122052,0.051757)(-0.070652,0.130630,0.050250)(-0.077978,0.132550,0.051349) + polygon(-0.078061,0.120653,0.051400)(-0.068855,0.122052,0.051757)(-0.077978,0.132550,0.051349) + polygon(-0.077978,0.132550,0.051349)(-0.066613,0.133021,0.044704)(-0.079789,0.143760,0.042699) + polygon(-0.066613,0.133021,0.044704)(-0.068301,0.144828,0.041369)(-0.079789,0.143760,0.042699) + polygon(-0.078488,0.070528,0.017446)(-0.084426,0.079771,0.018633)(-0.084526,0.080057,0.005307) + polygon(-0.005931,0.130215,0.005954)(-0.017634,0.127605,0.017937)(-0.006001,0.130398,0.017899) + polygon(0.005822,0.128060,0.027902)(-0.005907,0.127934,0.027462)(-0.006185,0.122729,0.034787) + polygon(-0.014219,0.174013,-0.025981)(-0.009671,0.173225,-0.026495)(-0.010666,0.167541,-0.019901) + polygon(0.005698,0.105890,0.043551)(0.006786,0.115841,0.038808)(-0.005982,0.115409,0.040203) + polygon(-0.017634,0.127605,0.017937)(-0.029876,0.124252,0.020967)(-0.024861,0.122913,0.024543) + polygon(0.014788,0.090975,0.050966)(0.018544,0.094811,0.047759)(0.005698,0.105890,0.043551) + polygon(-0.017357,0.127613,0.005269)(-0.029568,0.126072,0.014634)(-0.017634,0.127605,0.017937) + polygon(-0.056637,0.047018,0.030581)(-0.053091,0.056740,0.029396)(-0.057276,0.043243,0.042862) + polygon(-0.047309,0.145156,0.006885)(-0.051632,0.145001,0.018480)(-0.049353,0.139298,0.014796) + polygon(-0.091145,0.118816,0.029844)(-0.090486,0.118611,0.041215)(-0.091206,0.131415,0.029531) + polygon(0.005179,0.093174,0.053587)(0.014788,0.090975,0.050966)(0.005698,0.105890,0.043551) + polygon(-0.084426,0.079771,0.018633)(-0.088852,0.090972,0.017903)(-0.084526,0.080057,0.005307) + polygon(-0.017513,0.162126,-0.014549)(-0.017841,0.170484,-0.018114)(-0.010666,0.167541,-0.019901) + polygon(0.029727,0.042550,0.030498)(0.043267,0.045829,0.027825)(0.033664,0.054054,0.035084) + polygon(-0.067953,0.041859,0.006684)(-0.056628,0.054703,0.007446)(-0.059413,0.047138,0.006285) + polygon(-0.055677,0.093521,0.044207)(-0.068686,0.092370,0.042198)(-0.068308,0.080332,0.040711) + polygon(-0.055677,0.093521,0.044207)(-0.067874,0.106952,0.040372)(-0.068686,0.092370,0.042198) + polygon(-0.055677,0.093521,0.044207)(-0.055496,0.103898,0.041141)(-0.067874,0.106952,0.040372) + polygon(0.006398,0.043701,0.046826)(0.003768,0.047755,0.050204)(-0.006597,0.042729,0.046939) + polygon(0.006398,0.043701,0.046826)(0.005294,0.055680,0.053288)(0.003768,0.047755,0.050204) + polygon(-0.055894,0.079259,0.043534)(-0.055677,0.093521,0.044207)(-0.068308,0.080332,0.040711) + polygon(-0.017357,0.127613,0.005269)(-0.017634,0.127605,0.017937)(-0.005931,0.130215,0.005954) + polygon(-0.005974,0.105897,0.044067)(0.005698,0.105890,0.043551)(-0.005982,0.115409,0.040203) + polygon(0.007087,0.067322,0.055337)(0.007065,0.081192,0.055819)(-0.006072,0.067710,0.056450) + polygon(-0.017357,0.127613,0.005269)(-0.031222,0.126304,0.005149)(-0.029568,0.126072,0.014634) + polygon(0.006786,0.115841,0.038808)(0.005960,0.122504,0.034627)(-0.006185,0.122729,0.034787) + polygon(0.003768,0.047755,0.050204)(0.005294,0.055680,0.053288)(-0.005626,0.056504,0.053882) + polygon(-0.006597,0.042729,0.046939)(0.003768,0.047755,0.050204)(-0.005626,0.056504,0.053882) + polygon(-0.042538,0.155441,-0.007494)(-0.037956,0.161954,-0.012802)(-0.029483,0.158293,-0.006193) + polygon(-0.088852,0.090972,0.017903)(-0.088258,0.089869,0.006966)(-0.084526,0.080057,0.005307) + polygon(-0.019276,0.119853,0.032806)(-0.024861,0.122913,0.024543)(-0.030720,0.117989,0.030617) + polygon(0.038180,0.105121,0.026695)(0.040087,0.105210,0.017342)(0.037043,0.110443,0.020723) + polygon(-0.080391,0.129634,-0.004698)(-0.078703,0.144274,-0.003891)(-0.067968,0.142877,-0.007576) + polygon(-0.017614,0.038606,-0.005845)(-0.029913,0.038391,-0.005827)(-0.017781,0.038255,-0.015450) + polygon(0.007496,0.098350,0.048826)(0.005698,0.105890,0.043551)(0.005179,0.093174,0.053587) + polygon(0.005960,0.122504,0.034627)(0.006786,0.115841,0.038808)(0.018870,0.119862,0.032409) + polygon(-0.017634,0.127605,0.017937)(-0.024861,0.122913,0.024543)(-0.019276,0.119853,0.032806) + polygon(-0.042712,0.042165,0.042700)(-0.056637,0.047018,0.030581)(-0.057276,0.043243,0.042862) + polygon(-0.043198,0.055578,0.039084)(-0.053091,0.056740,0.029396)(-0.056637,0.047018,0.030581) + polygon(0.017521,0.055211,-0.027276)(0.017565,0.067934,-0.028939)(0.031738,0.067998,-0.018353) + polygon(-0.043677,0.078916,0.042886)(-0.055894,0.079259,0.043534)(-0.054531,0.071460,0.039704) + polygon(-0.043677,0.078916,0.042886)(-0.043192,0.092115,0.043269)(-0.055677,0.093521,0.044207) + polygon(-0.055894,0.079259,0.043534)(-0.043677,0.078916,0.042886)(-0.055677,0.093521,0.044207) + polygon(-0.044164,0.104918,0.040171)(-0.055496,0.103898,0.041141)(-0.055677,0.093521,0.044207) + polygon(-0.043192,0.092115,0.043269)(-0.044164,0.104918,0.040171)(-0.055677,0.093521,0.044207) + polygon(-0.044164,0.104918,0.040171)(-0.056185,0.111277,0.037371)(-0.055496,0.103898,0.041141) + polygon(-0.044164,0.104918,0.040171)(-0.043459,0.117191,0.031704)(-0.053940,0.118566,0.035373) + polygon(-0.056185,0.111277,0.037371)(-0.044164,0.104918,0.040171)(-0.053940,0.118566,0.035373) + polygon(0.043267,0.045829,0.027825)(0.042771,0.056035,0.031559)(0.033664,0.054054,0.035084) + polygon(-0.042712,0.042165,0.042700)(-0.043198,0.055578,0.039084)(-0.056637,0.047018,0.030581) + polygon(0.005975,0.130858,0.005795)(-0.005931,0.130215,0.005954)(-0.006001,0.130398,0.017899) + polygon(-0.054531,0.071460,0.039704)(-0.043104,0.067439,0.040774)(-0.043677,0.078916,0.042886) + polygon(-0.044164,0.104918,0.040171)(-0.040984,0.110496,0.037088)(-0.043459,0.117191,0.031704) + polygon(-0.042538,0.155441,-0.007494)(-0.029483,0.158293,-0.006193)(-0.031470,0.157066,0.000976) + polygon(-0.044010,0.167035,0.002319)(-0.036487,0.171225,0.000545)(-0.043642,0.169438,-0.005502) + polygon(-0.029624,0.054319,0.039895)(-0.043198,0.055578,0.039084)(-0.042712,0.042165,0.042700) + polygon(-0.033181,0.045074,0.045115)(-0.029624,0.054319,0.039895)(-0.042712,0.042165,0.042700) + polygon(-0.029624,0.054319,0.039895)(-0.043104,0.067439,0.040774)(-0.043198,0.055578,0.039084) + polygon(-0.031292,0.079830,0.043494)(-0.043677,0.078916,0.042886)(-0.043104,0.067439,0.040774) + polygon(-0.029307,0.068073,0.041016)(-0.031292,0.079830,0.043494)(-0.043104,0.067439,0.040774) + polygon(-0.031292,0.079830,0.043494)(-0.029863,0.094012,0.044480)(-0.043192,0.092115,0.043269) + polygon(-0.043677,0.078916,0.042886)(-0.031292,0.079830,0.043494)(-0.043192,0.092115,0.043269) + polygon(-0.029863,0.094012,0.044480)(-0.044164,0.104918,0.040171)(-0.043192,0.092115,0.043269) + polygon(-0.029863,0.094012,0.044480)(-0.030180,0.106322,0.039975)(-0.044164,0.104918,0.040171) + polygon(-0.044164,0.104918,0.040171)(-0.030720,0.117989,0.030617)(-0.040984,0.110496,0.037088) + polygon(-0.040984,0.110496,0.037088)(-0.030720,0.117989,0.030617)(-0.043459,0.117191,0.031704) + polygon(-0.006000,0.079455,0.057801)(0.007065,0.081192,0.055819)(-0.005981,0.094031,0.054264) + polygon(-0.029307,0.068073,0.041016)(-0.043104,0.067439,0.040774)(-0.029624,0.054319,0.039895) + polygon(0.040463,0.105142,0.006410)(0.038734,0.102161,-0.004631)(0.037011,0.110397,0.002653) + polygon(-0.032005,0.110468,0.037044)(-0.030720,0.117989,0.030617)(-0.044164,0.104918,0.040171) + polygon(-0.030180,0.106322,0.039975)(-0.032005,0.110468,0.037044)(-0.044164,0.104918,0.040171) + polygon(-0.036487,0.171225,0.000545)(-0.031675,0.170395,-0.006350)(-0.043642,0.169438,-0.005502) + polygon(0.005955,0.131024,0.017825)(-0.006001,0.130398,0.017899)(-0.005907,0.127934,0.027462) + polygon(-0.006001,0.130398,0.017899)(-0.014179,0.126270,0.026642)(-0.005907,0.127934,0.027462) + polygon(0.007065,0.081192,0.055819)(-0.006000,0.079455,0.057801)(-0.006072,0.067710,0.056450) + polygon(-0.005982,0.115409,0.040203)(0.006786,0.115841,0.038808)(-0.006185,0.122729,0.034787) + polygon(0.018854,0.106293,0.041690)(0.006786,0.115841,0.038808)(0.005698,0.105890,0.043551) + polygon(-0.030180,0.106322,0.039975)(-0.030720,0.117989,0.030617)(-0.032005,0.110468,0.037044) + polygon(-0.029280,0.041775,0.051397)(-0.029624,0.054319,0.039895)(-0.033181,0.045074,0.045115) + polygon(-0.044677,0.131204,0.005705)(-0.050152,0.140326,0.002588)(-0.047309,0.145156,0.006885) + polygon(0.041907,0.091639,-0.005569)(0.035808,0.095859,-0.012033)(0.033271,0.108498,-0.007432) + polygon(-0.056395,0.154565,0.016878)(-0.057447,0.152576,0.028451)(-0.057352,0.144989,0.031520) + polygon(-0.053091,0.056740,0.029396)(-0.054004,0.055543,0.017767)(-0.057350,0.043155,0.020023) + polygon(-0.021412,0.054698,0.044641)(-0.029624,0.054319,0.039895)(-0.029280,0.041775,0.051397) + polygon(-0.017732,0.042386,0.051684)(-0.021412,0.054698,0.044641)(-0.029280,0.041775,0.051397) + polygon(-0.018288,0.108329,0.041510)(-0.030180,0.106322,0.039975)(-0.029863,0.094012,0.044480) + polygon(-0.019129,0.098595,0.045668)(-0.018288,0.108329,0.041510)(-0.029863,0.094012,0.044480) + polygon(-0.019276,0.119853,0.032806)(-0.030720,0.117989,0.030617)(-0.030180,0.106322,0.039975) + polygon(-0.018288,0.108329,0.041510)(-0.019276,0.119853,0.032806)(-0.030180,0.106322,0.039975) + polygon(0.020595,0.087113,0.049232)(0.014788,0.090975,0.050966)(0.017942,0.079275,0.051886) + polygon(0.005955,0.131024,0.017825)(0.017440,0.127694,0.018535)(0.017210,0.127663,0.005126) + polygon(-0.017732,0.042386,0.051684)(-0.017319,0.043794,0.043270)(-0.021412,0.054698,0.044641) + polygon(-0.067218,0.156155,0.017886)(-0.079569,0.152875,0.029931)(-0.066633,0.153831,0.030870) + polygon(-0.088322,0.105757,0.017298)(-0.085423,0.105386,0.003395)(-0.088229,0.106066,0.008468) + polygon(0.005822,0.128060,0.027902)(-0.006185,0.122729,0.034787)(0.005960,0.122504,0.034627) + polygon(0.005975,0.130858,0.005795)(0.005955,0.131024,0.017825)(0.017210,0.127663,0.005126) + polygon(-0.029483,0.158293,-0.006193)(-0.017513,0.162126,-0.014549)(-0.020614,0.159773,-0.007175) + polygon(0.056738,0.054222,0.005125)(0.055420,0.068638,0.005897)(0.057475,0.068222,0.017143) + polygon(-0.088322,0.105757,0.017298)(-0.088229,0.106066,0.008468)(-0.085423,0.105386,0.003395) + polygon(0.058159,0.055002,0.018025)(0.056738,0.054222,0.005125)(0.057475,0.068222,0.017143) + polygon(0.017440,0.127694,0.018535)(0.005955,0.131024,0.017825)(0.005822,0.128060,0.027902) + polygon(-0.014317,0.116971,0.037836)(-0.019276,0.119853,0.032806)(-0.018288,0.108329,0.041510) + polygon(0.018544,0.094811,0.047759)(0.018854,0.106293,0.041690)(0.005698,0.105890,0.043551) + polygon(0.005294,0.055680,0.053288)(0.007087,0.067322,0.055337)(-0.006072,0.067710,0.056450) + polygon(-0.055659,0.043287,-0.007588)(-0.042962,0.043024,-0.017629)(-0.055548,0.033682,-0.006190) + polygon(-0.005626,0.056504,0.053882)(0.005294,0.055680,0.053288)(-0.006072,0.067710,0.056450) + polygon(-0.017319,0.043794,0.043270)(-0.016149,0.057436,0.050904)(-0.021412,0.054698,0.044641) + polygon(-0.029558,0.161783,-0.014337)(-0.017513,0.162126,-0.014549)(-0.029483,0.158293,-0.006193) + polygon(-0.017732,0.042386,0.051684)(-0.006597,0.042729,0.046939)(-0.017319,0.043794,0.043270) + polygon(-0.006597,0.042729,0.046939)(-0.005626,0.056504,0.053882)(-0.016149,0.057436,0.050904) + polygon(-0.017319,0.043794,0.043270)(-0.006597,0.042729,0.046939)(-0.016149,0.057436,0.050904) + polygon(-0.005626,0.056504,0.053882)(-0.006072,0.067710,0.056450)(-0.016920,0.068217,0.053150) + polygon(-0.016149,0.057436,0.050904)(-0.005626,0.056504,0.053882)(-0.016920,0.068217,0.053150) + polygon(-0.006072,0.067710,0.056450)(-0.006000,0.079455,0.057801)(-0.018575,0.078970,0.055735) + polygon(-0.016920,0.068217,0.053150)(-0.006072,0.067710,0.056450)(-0.018575,0.078970,0.055735) + polygon(-0.005981,0.094031,0.054264)(-0.017288,0.092177,0.053621)(-0.018575,0.078970,0.055735) + polygon(-0.006000,0.079455,0.057801)(-0.005981,0.094031,0.054264)(-0.018575,0.078970,0.055735) + polygon(-0.005974,0.105897,0.044067)(-0.005982,0.115409,0.040203)(-0.018288,0.108329,0.041510) + polygon(-0.005982,0.115409,0.040203)(-0.014317,0.116971,0.037836)(-0.018288,0.108329,0.041510) + polygon(-0.006185,0.122729,0.034787)(-0.019276,0.119853,0.032806)(-0.014317,0.116971,0.037836) + polygon(-0.005982,0.115409,0.040203)(-0.006185,0.122729,0.034787)(-0.014317,0.116971,0.037836) + polygon(0.005179,0.093174,0.053587)(0.005698,0.105890,0.043551)(0.007496,0.098350,0.048826) + polygon(-0.042280,0.069994,-0.016146)(-0.041251,0.079138,-0.019775)(-0.032806,0.066464,-0.019522) + polygon(0.025745,0.045914,0.038119)(0.018422,0.042318,0.042477)(0.029727,0.042550,0.030498) + polygon(0.007065,0.081192,0.055819)(0.005179,0.093174,0.053587)(-0.005981,0.094031,0.054264) + polygon(-0.053091,0.056740,0.029396)(-0.056637,0.047018,0.030581)(-0.057276,0.043243,0.042862) + polygon(0.053892,0.055755,0.026624)(0.053458,0.065638,0.026434)(0.042372,0.067256,0.029580) + polygon(0.042771,0.056035,0.031559)(0.053892,0.055755,0.026624)(0.042372,0.067256,0.029580) + polygon(0.041823,0.067520,-0.005516)(0.042272,0.079555,-0.005795)(0.047541,0.071217,0.005426) + polygon(0.006398,0.043701,0.046826)(0.018422,0.042318,0.042477)(0.018642,0.053603,0.046215) + polygon(0.030675,0.044512,-0.006180)(0.029824,0.035914,0.004890)(0.017479,0.035213,-0.005929) + polygon(-0.041679,0.042028,-0.009997)(-0.055659,0.043287,-0.007588)(-0.055029,0.056656,-0.005314) + polygon(-0.023332,0.181239,-0.011289)(-0.029404,0.179030,-0.007880)(-0.031675,0.170395,-0.006350) + polygon(0.018642,0.053603,0.046215)(0.014578,0.058577,0.050169)(0.005294,0.055680,0.053288) + polygon(0.041907,0.091639,-0.005569)(0.038734,0.102161,-0.004631)(0.044705,0.092788,0.005076) + polygon(0.043693,0.041197,0.017720)(0.051287,0.046396,0.005805)(0.053250,0.047590,0.018190) + polygon(-0.047309,0.145156,0.006885)(-0.043446,0.156050,0.006158)(-0.051632,0.145001,0.018480) + polygon(0.017942,0.079275,0.051886)(0.014788,0.090975,0.050966)(0.007065,0.081192,0.055819) + polygon(-0.066904,0.115717,0.047348)(-0.068855,0.122052,0.051757)(-0.067874,0.106952,0.040372) + polygon(-0.066613,0.133021,0.044704)(-0.070652,0.130630,0.050250)(-0.068855,0.122052,0.051757) + polygon(0.058159,0.055002,0.018025)(0.053892,0.055755,0.026624)(0.053250,0.047590,0.018190) + polygon(-0.066613,0.133021,0.044704)(-0.068855,0.122052,0.051757)(-0.066904,0.115717,0.047348) + polygon(0.029878,0.067994,0.041917)(0.021052,0.068116,0.048435)(0.018642,0.053603,0.046215) + polygon(0.041907,0.091639,-0.005569)(0.044705,0.092788,0.005076)(0.045939,0.079631,0.005796) + polygon(-0.017841,0.170484,-0.018114)(-0.031675,0.170395,-0.006350)(-0.019880,0.166404,-0.011270) + polygon(-0.044677,0.131204,0.005705)(-0.047309,0.145156,0.006885)(-0.049353,0.139298,0.014796) + polygon(-0.059436,0.119905,0.039976)(-0.066904,0.115717,0.047348)(-0.067874,0.106952,0.040372) + polygon(-0.059436,0.119905,0.039976)(-0.066613,0.133021,0.044704)(-0.066904,0.115717,0.047348) + polygon(0.025745,0.045914,0.038119)(0.033664,0.054054,0.035084)(0.028623,0.056876,0.040764) + polygon(-0.059436,0.119905,0.039976)(-0.059511,0.128352,0.039963)(-0.066613,0.133021,0.044704) + polygon(-0.059511,0.128352,0.039963)(-0.059436,0.119905,0.039976)(-0.066613,0.133021,0.044704) + polygon(-0.059436,0.119905,0.039976)(-0.059511,0.128352,0.039963)(-0.066613,0.133021,0.044704) + polygon(-0.031675,0.170395,-0.006350)(-0.036487,0.171225,0.000545)(-0.044010,0.167035,0.002319) + polygon(0.036725,0.091818,0.036625)(0.033051,0.107034,0.031954)(0.030014,0.093279,0.042148) + polygon(-0.056185,0.111277,0.037371)(-0.059436,0.119905,0.039976)(-0.067874,0.106952,0.040372) + polygon(-0.053940,0.118566,0.035373)(-0.056185,0.111277,0.037371)(-0.067874,0.106952,0.040372) + polygon(-0.056250,0.135013,0.033045)(-0.066613,0.133021,0.044704)(-0.059511,0.128352,0.039963) + polygon(-0.057352,0.144989,0.031520)(-0.068301,0.144828,0.041369)(-0.066613,0.133021,0.044704) + polygon(-0.056250,0.135013,0.033045)(-0.057352,0.144989,0.031520)(-0.066613,0.133021,0.044704) + polygon(-0.020233,0.181846,-0.018327)(-0.023332,0.181239,-0.011289)(-0.029404,0.179030,-0.007880) + polygon(-0.020233,0.181846,-0.018327)(-0.023332,0.181239,-0.011289)(-0.031675,0.170395,-0.006350) + polygon(0.052037,0.055073,-0.002482)(0.041463,0.045630,-0.003545)(0.042805,0.055329,-0.006047) + polygon(-0.056185,0.111277,0.037371)(-0.053940,0.118566,0.035373)(-0.059436,0.119905,0.039976) + polygon(0.018854,0.106293,0.041690)(0.027238,0.103156,0.039706)(0.025003,0.110611,0.036846) + polygon(-0.042712,0.042165,0.042700)(-0.057276,0.043243,0.042862)(-0.056947,0.034942,0.042372) + polygon(-0.020233,0.181846,-0.018327)(-0.029404,0.179030,-0.007880)(-0.023332,0.181239,-0.011289) + polygon(-0.017841,0.170484,-0.018114)(-0.019880,0.166404,-0.011270)(-0.020614,0.159773,-0.007175) + polygon(-0.059436,0.119905,0.039976)(-0.053940,0.118566,0.035373)(-0.059511,0.128352,0.039963) + polygon(-0.053940,0.118566,0.035373)(-0.056250,0.135013,0.033045)(-0.059511,0.128352,0.039963) + polygon(-0.056830,0.146392,-0.002643)(-0.046987,0.147434,-0.002225)(-0.050152,0.140326,0.002588) + polygon(0.028623,0.056876,0.040764)(0.018642,0.053603,0.046215)(0.018422,0.042318,0.042477) + polygon(0.020595,0.087113,0.049232)(0.018544,0.094811,0.047759)(0.014788,0.090975,0.050966) + polygon(0.018642,0.053603,0.046215)(0.005294,0.055680,0.053288)(0.006398,0.043701,0.046826) + polygon(-0.017841,0.170484,-0.018114)(-0.020233,0.181846,-0.018327)(-0.031675,0.170395,-0.006350) + polygon(0.051287,0.046396,0.005805)(0.056738,0.054222,0.005125)(0.058159,0.055002,0.018025) + polygon(0.030014,0.093279,0.042148)(0.018544,0.094811,0.047759)(0.020595,0.087113,0.049232) + polygon(0.053250,0.047590,0.018190)(0.051287,0.046396,0.005805)(0.058159,0.055002,0.018025) + polygon(0.033051,0.107034,0.031954)(0.018870,0.119862,0.032409)(0.025003,0.110611,0.036846) + polygon(0.030014,0.093279,0.042148)(0.020595,0.087113,0.049232)(0.017942,0.079275,0.051886) + polygon(0.030014,0.093279,0.042148)(0.027238,0.103156,0.039706)(0.018854,0.106293,0.041690) + polygon(0.030684,0.079546,0.043151)(0.030014,0.093279,0.042148)(0.017942,0.079275,0.051886) + polygon(0.037189,0.079248,0.036794)(0.036725,0.091818,0.036625)(0.030684,0.079546,0.043151) + polygon(-0.053940,0.118566,0.035373)(-0.047913,0.129301,0.026965)(-0.056250,0.135013,0.033045) + polygon(0.044705,0.092788,0.005076)(0.044262,0.093453,0.017642)(0.046032,0.079369,0.017769) + polygon(0.042272,0.079555,-0.005795)(0.041907,0.091639,-0.005569)(0.045939,0.079631,0.005796) + polygon(0.036725,0.091818,0.036625)(0.030014,0.093279,0.042148)(0.030684,0.079546,0.043151) + polygon(0.015029,0.067736,0.052067)(0.017942,0.079275,0.051886)(0.007065,0.081192,0.055819) + polygon(0.044705,0.092788,0.005076)(0.038734,0.102161,-0.004631)(0.040463,0.105142,0.006410) + polygon(0.030014,0.093279,0.042148)(0.033051,0.107034,0.031954)(0.027238,0.103156,0.039706) + polygon(-0.020614,0.159773,-0.007175)(-0.031675,0.170395,-0.006350)(-0.029483,0.158293,-0.006193) + polygon(0.007087,0.067322,0.055337)(0.015029,0.067736,0.052067)(0.007065,0.081192,0.055819) + polygon(-0.043459,0.117191,0.031704)(-0.047913,0.129301,0.026965)(-0.053940,0.118566,0.035373) + polygon(-0.010726,0.179662,-0.027747)(-0.010666,0.167541,-0.019901)(-0.009671,0.173225,-0.026495) + polygon(-0.026186,0.056884,-0.028269)(-0.029902,0.042603,-0.028318)(-0.030738,0.056331,-0.018517) + polygon(0.005294,0.055680,0.053288)(0.014578,0.058577,0.050169)(0.015029,0.067736,0.052067) + polygon(-0.031564,0.095933,-0.023680)(-0.041802,0.105934,-0.019869)(-0.029013,0.106719,-0.020748) + polygon(0.028623,0.056876,0.040764)(0.029878,0.067994,0.041917)(0.018642,0.053603,0.046215) + polygon(-0.090925,0.146050,0.019038)(-0.085027,0.146034,0.005860)(-0.089811,0.132401,0.007057) + polygon(0.040463,0.105142,0.006410)(0.040087,0.105210,0.017342)(0.044262,0.093453,0.017642) + polygon(0.057475,0.068222,0.017143)(0.053458,0.065638,0.026434)(0.053892,0.055755,0.026624) + polygon(0.058159,0.055002,0.018025)(0.057475,0.068222,0.017143)(0.053892,0.055755,0.026624) + polygon(-0.017841,0.170484,-0.018114)(-0.010666,0.167541,-0.019901)(-0.020233,0.181846,-0.018327) + polygon(-0.043446,0.156050,0.006158)(-0.055925,0.157606,0.006565)(-0.051632,0.145001,0.018480) + polygon(0.036836,0.067849,0.036641)(0.037189,0.079248,0.036794)(0.029878,0.067994,0.041917) + polygon(-0.070233,0.154262,-0.031240)(-0.061862,0.158417,-0.029303)(-0.068497,0.148194,-0.028726) + polygon(0.029727,0.042550,0.030498)(0.033664,0.054054,0.035084)(0.025745,0.045914,0.038119) + polygon(0.041937,0.079591,0.029591)(0.041234,0.092173,0.028560)(0.036725,0.091818,0.036625) + polygon(0.037189,0.079248,0.036794)(0.041937,0.079591,0.029591)(0.036725,0.091818,0.036625) + polygon(0.015029,0.067736,0.052067)(0.007087,0.067322,0.055337)(0.005294,0.055680,0.053288) + polygon(0.046032,0.079369,0.017769)(0.041937,0.079591,0.029591)(0.046369,0.071513,0.021675) + polygon(0.036725,0.091818,0.036625)(0.041234,0.092173,0.028560)(0.033051,0.107034,0.031954) + polygon(0.041937,0.079591,0.029591)(0.037189,0.079248,0.036794)(0.036836,0.067849,0.036641) + polygon(0.045939,0.079631,0.005796)(0.044705,0.092788,0.005076)(0.046032,0.079369,0.017769) + polygon(0.038734,0.102161,-0.004631)(0.033271,0.108498,-0.007432)(0.037011,0.110397,0.002653) + polygon(0.043267,0.045829,0.027825)(0.053892,0.055755,0.026624)(0.042771,0.056035,0.031559) + polygon(0.014578,0.058577,0.050169)(0.018642,0.053603,0.046215)(0.015029,0.067736,0.052067) + polygon(-0.056185,0.111277,0.037371)(-0.053940,0.118566,0.035373)(-0.067874,0.106952,0.040372) + polygon(0.042372,0.067256,0.029580)(0.036836,0.067849,0.036641)(0.033664,0.054054,0.035084) + polygon(0.041234,0.092173,0.028560)(0.038180,0.105121,0.026695)(0.033051,0.107034,0.031954) + polygon(0.042372,0.067256,0.029580)(0.041937,0.079591,0.029591)(0.036836,0.067849,0.036641) + polygon(0.042771,0.056035,0.031559)(0.042372,0.067256,0.029580)(0.033664,0.054054,0.035084) + polygon(-0.010666,0.167541,-0.019901)(-0.010726,0.179662,-0.027747)(-0.020233,0.181846,-0.018327) + polygon(0.015029,0.067736,0.052067)(0.021052,0.068116,0.048435)(0.017942,0.079275,0.051886) + polygon(-0.067711,0.092892,-0.016881)(-0.075666,0.091182,-0.013697)(-0.079547,0.104194,-0.006203) + polygon(0.019135,0.042782,-0.019210)(0.022619,0.040605,-0.007935)(0.017479,0.035213,-0.005929) + polygon(0.037189,0.079248,0.036794)(0.030684,0.079546,0.043151)(0.029878,0.067994,0.041917) + polygon(0.033051,0.107034,0.031954)(0.025003,0.110611,0.036846)(0.027238,0.103156,0.039706) + polygon(-0.088322,0.105757,0.017298)(-0.088229,0.106066,0.008468)(-0.088258,0.089869,0.006966) + polygon(-0.019880,0.166404,-0.011270)(-0.031675,0.170395,-0.006350)(-0.020614,0.159773,-0.007175) + polygon(-0.020233,0.181846,-0.018327)(-0.010726,0.179662,-0.027747)(-0.014752,0.181897,-0.026278) + polygon(0.046369,0.071513,0.021675)(0.041937,0.079591,0.029591)(0.042372,0.067256,0.029580) + polygon(0.018854,0.106293,0.041690)(0.018870,0.119862,0.032409)(0.006786,0.115841,0.038808) + polygon(0.042272,0.079555,-0.005795)(0.045939,0.079631,0.005796)(0.047541,0.071217,0.005426) + polygon(0.043554,0.041110,0.005799)(0.029824,0.035914,0.004890)(0.041463,0.045630,-0.003545) + polygon(0.014788,0.090975,0.050966)(0.005179,0.093174,0.053587)(0.007065,0.081192,0.055819) + polygon(-0.091451,0.134136,0.017103)(-0.090925,0.146050,0.019038)(-0.089811,0.132401,0.007057) + polygon(0.025003,0.110611,0.036846)(0.018870,0.119862,0.032409)(0.018854,0.106293,0.041690) + polygon(0.025745,0.045914,0.038119)(0.028623,0.056876,0.040764)(0.018422,0.042318,0.042477) + polygon(-0.055451,0.132420,-0.004854)(-0.050152,0.140326,0.002588)(-0.044677,0.131204,0.005705) + polygon(0.030684,0.079546,0.043151)(0.017942,0.079275,0.051886)(0.021052,0.068116,0.048435) + polygon(-0.031675,0.170395,-0.006350)(-0.044010,0.167035,0.002319)(-0.043446,0.156050,0.006158) + polygon(-0.020614,0.159773,-0.007175)(-0.017513,0.162126,-0.014549)(-0.017841,0.170484,-0.018114) + polygon(0.018642,0.053603,0.046215)(0.021052,0.068116,0.048435)(0.015029,0.067736,0.052067) + polygon(0.036836,0.067849,0.036641)(0.029878,0.067994,0.041917)(0.028623,0.056876,0.040764) + polygon(0.033664,0.054054,0.035084)(0.036836,0.067849,0.036641)(0.028623,0.056876,0.040764) + polygon(0.030014,0.093279,0.042148)(0.018854,0.106293,0.041690)(0.018544,0.094811,0.047759) + polygon(0.027314,0.117965,0.028619)(0.018870,0.119862,0.032409)(0.033051,0.107034,0.031954) + polygon(-0.029483,0.158293,-0.006193)(-0.043446,0.156050,0.006158)(-0.031470,0.157066,0.000976) + polygon(-0.029483,0.158293,-0.006193)(-0.031675,0.170395,-0.006350)(-0.043446,0.156050,0.006158) + polygon(0.052037,0.055073,-0.002482)(0.056738,0.054222,0.005125)(0.051287,0.046396,0.005805) + polygon(0.041463,0.045630,-0.003545)(0.052037,0.055073,-0.002482)(0.051287,0.046396,0.005805) + polygon(-0.037956,0.161954,-0.012802)(-0.037704,0.167987,-0.013039)(-0.029558,0.161783,-0.014337) + polygon(0.029878,0.067994,0.041917)(0.030684,0.079546,0.043151)(0.021052,0.068116,0.048435) + polygon(-0.067874,0.106952,0.040372)(-0.055496,0.103898,0.041141)(-0.056185,0.111277,0.037371) + polygon(-0.017614,0.038606,-0.005845)(-0.028473,0.038149,0.004419)(-0.029913,0.038391,-0.005827) + polygon(-0.088852,0.090972,0.017903)(-0.088322,0.105757,0.017298)(-0.088258,0.089869,0.006966) + polygon(-0.043446,0.156050,0.006158)(-0.046987,0.147434,-0.002225)(-0.042538,0.155441,-0.007494) + polygon(-0.076377,0.157221,-0.016889)(-0.077145,0.167706,-0.029880)(-0.076426,0.161707,-0.029752) + polygon(-0.041316,0.090692,-0.022588)(-0.035514,0.081801,-0.022689)(-0.041251,0.079138,-0.019775) + polygon(-0.068096,0.156721,-0.042617)(-0.061862,0.158417,-0.029303)(-0.070233,0.154262,-0.031240) + polygon(-0.062285,0.162360,-0.039629)(-0.069870,0.168536,-0.031332)(-0.061862,0.158417,-0.029303) + polygon(-0.042903,0.056190,-0.011304)(-0.042280,0.069994,-0.016146)(-0.034669,0.057124,-0.011495) + polygon(-0.079789,0.143760,0.042699)(-0.089332,0.142745,0.029033)(-0.088526,0.137839,0.039396) + polygon(-0.062285,0.162360,-0.039629)(-0.061862,0.158417,-0.029303)(-0.068096,0.156721,-0.042617) + polygon(-0.090486,0.118611,0.041215)(-0.089330,0.128309,0.042802)(-0.091206,0.131415,0.029531) + polygon(0.026038,0.047590,-0.016579)(0.030675,0.044512,-0.006180)(0.022619,0.040605,-0.007935) + polygon(-0.088258,0.089869,0.006966)(-0.088229,0.106066,0.008468)(-0.085423,0.105386,0.003395) + polygon(-0.082422,0.095112,0.031088)(-0.084426,0.079771,0.018633)(-0.080603,0.081447,0.030652) + polygon(-0.033075,0.035522,0.029224)(-0.042802,0.035157,0.041687)(-0.041940,0.034370,0.029967) + polygon(-0.091451,0.134136,0.017103)(-0.089811,0.132401,0.007057)(-0.090687,0.120305,0.006680) + polygon(0.005820,0.106226,-0.020897)(-0.005971,0.106138,-0.022228)(-0.005887,0.116622,-0.016005) + polygon(-0.067968,0.142877,-0.007576)(-0.069595,0.146412,-0.018032)(-0.062509,0.149934,-0.015032) + polygon(-0.093147,0.119067,0.017995)(-0.091451,0.134136,0.017103)(-0.090687,0.120305,0.006680) + polygon(-0.043539,0.130014,0.017533)(-0.044677,0.131204,0.005705)(-0.049353,0.139298,0.014796) + polygon(0.016214,0.035847,-0.016213)(0.019135,0.042782,-0.019210)(0.017479,0.035213,-0.005929) + polygon(-0.081872,0.107166,0.031016)(-0.088322,0.105757,0.017298)(-0.085586,0.106840,0.021729) + polygon(-0.081872,0.107166,0.031016)(-0.091145,0.118816,0.029844)(-0.088322,0.105757,0.017298) + polygon(-0.010666,0.167541,-0.019901)(-0.017841,0.170484,-0.018114)(-0.017513,0.162126,-0.014549) + polygon(-0.086915,0.094416,0.002931)(-0.088258,0.089869,0.006966)(-0.085423,0.105386,0.003395) + polygon(-0.085698,0.136903,0.001921)(-0.078703,0.144274,-0.003891)(-0.080391,0.129634,-0.004698) + polygon(0.038146,0.088106,-0.013868)(0.041907,0.091639,-0.005569)(0.042272,0.079555,-0.005795) + polygon(0.031738,0.067998,-0.018353)(0.041823,0.067520,-0.005516)(0.042805,0.055329,-0.006047) + polygon(0.041823,0.067520,-0.005516)(0.031684,0.078509,-0.019208)(0.042272,0.079555,-0.005795) + polygon(-0.085423,0.105386,0.003395)(-0.088229,0.106066,0.008468)(-0.086992,0.113518,0.004104) + polygon(0.005243,0.039134,-0.021947)(0.019135,0.042782,-0.019210)(0.016214,0.035847,-0.016213) + polygon(-0.093147,0.119067,0.017995)(-0.091145,0.118816,0.029844)(-0.091451,0.134136,0.017103) + polygon(0.041907,0.091639,-0.005569)(0.033271,0.108498,-0.007432)(0.038734,0.102161,-0.004631) + polygon(-0.091145,0.118816,0.029844)(-0.091206,0.131415,0.029531)(-0.091451,0.134136,0.017103) + polygon(0.019325,0.035832,0.031321)(0.029727,0.042550,0.030498)(0.018422,0.042318,0.042477) + polygon(0.044705,0.092788,0.005076)(0.040463,0.105142,0.006410)(0.044262,0.093453,0.017642) + polygon(-0.091206,0.131415,0.029531)(-0.089332,0.142745,0.029033)(-0.091451,0.134136,0.017103) + polygon(-0.061796,0.155741,-0.020792)(-0.064082,0.159391,-0.016910)(-0.062509,0.149934,-0.015032) + polygon(0.029518,0.056056,-0.017587)(0.021812,0.051587,-0.023649)(0.017521,0.055211,-0.027276) + polygon(0.041823,0.067520,-0.005516)(0.031738,0.067998,-0.018353)(0.031684,0.078509,-0.019208) + polygon(-0.069595,0.146412,-0.018032)(-0.061796,0.155741,-0.020792)(-0.062509,0.149934,-0.015032) + polygon(-0.091451,0.134136,0.017103)(-0.089332,0.142745,0.029033)(-0.090925,0.146050,0.019038) + polygon(-0.068096,0.156721,-0.042617)(-0.068261,0.170398,-0.043700)(-0.062285,0.162360,-0.039629) + polygon(-0.070233,0.154262,-0.031240)(-0.064082,0.159391,-0.016910)(-0.061796,0.155741,-0.020792) + polygon(-0.088229,0.106066,0.008468)(-0.088322,0.105757,0.017298)(-0.090687,0.120305,0.006680) + polygon(-0.068497,0.148194,-0.028726)(-0.061862,0.158417,-0.029303)(-0.069595,0.146412,-0.018032) + polygon(-0.088322,0.105757,0.017298)(-0.093147,0.119067,0.017995)(-0.090687,0.120305,0.006680) + polygon(0.031684,0.078509,-0.019208)(0.037945,0.081717,-0.014155)(0.042272,0.079555,-0.005795) + polygon(0.037945,0.081717,-0.014155)(0.038146,0.088106,-0.013868)(0.042272,0.079555,-0.005795) + polygon(-0.061862,0.158417,-0.029303)(-0.070233,0.154262,-0.031240)(-0.061796,0.155741,-0.020792) + polygon(-0.061862,0.158417,-0.029303)(-0.061796,0.155741,-0.020792)(-0.069595,0.146412,-0.018032) + polygon(0.029518,0.056056,-0.017587)(0.031738,0.067998,-0.018353)(0.034113,0.054178,-0.009483) + polygon(0.005243,0.039134,-0.021947)(0.016214,0.035847,-0.016213)(0.005600,0.034660,-0.017932) + polygon(-0.086992,0.113518,0.004104)(-0.088229,0.106066,0.008468)(-0.090687,0.120305,0.006680) + polygon(-0.056637,0.047018,0.030581)(-0.053091,0.056740,0.029396)(-0.057350,0.043155,0.020023) + polygon(-0.017873,0.038317,0.005995)(-0.028473,0.038149,0.004419)(-0.017614,0.038606,-0.005845) + polygon(-0.070211,0.165303,-0.019466)(-0.077145,0.167706,-0.029880)(-0.076377,0.157221,-0.016889) + polygon(0.029518,0.056056,-0.017587)(0.034113,0.054178,-0.009483)(0.030675,0.044512,-0.006180) + polygon(-0.042538,0.155441,-0.007494)(-0.031470,0.157066,0.000976)(-0.043446,0.156050,0.006158) + polygon(-0.064082,0.159391,-0.016910)(-0.068870,0.157773,-0.006876)(-0.067968,0.142877,-0.007576) + polygon(-0.062509,0.149934,-0.015032)(-0.064082,0.159391,-0.016910)(-0.067968,0.142877,-0.007576) + polygon(-0.031548,0.034302,-0.028408)(-0.041784,0.035760,-0.026411)(-0.038391,0.041922,-0.026404) + polygon(0.026038,0.047590,-0.016579)(0.029518,0.056056,-0.017587)(0.030675,0.044512,-0.006180) + polygon(0.031738,0.067998,-0.018353)(0.042805,0.055329,-0.006047)(0.034113,0.054178,-0.009483) + polygon(0.044262,0.093453,0.017642)(0.041234,0.092173,0.028560)(0.041937,0.079591,0.029591) + polygon(0.046032,0.079369,0.017769)(0.044262,0.093453,0.017642)(0.041937,0.079591,0.029591) + polygon(0.044262,0.093453,0.017642)(0.040087,0.105210,0.017342)(0.041234,0.092173,0.028560) + polygon(0.040087,0.105210,0.017342)(0.038180,0.105121,0.026695)(0.041234,0.092173,0.028560) + polygon(-0.051632,0.145001,0.018480)(-0.057352,0.144989,0.031520)(-0.056250,0.135013,0.033045) + polygon(-0.066442,0.159957,-0.053371)(-0.062004,0.167422,-0.052716)(-0.068261,0.170398,-0.043700) + polygon(0.019135,0.042782,-0.019210)(0.026038,0.047590,-0.016579)(0.022619,0.040605,-0.007935) + polygon(-0.068096,0.156721,-0.042617)(-0.066442,0.159957,-0.053371)(-0.068261,0.170398,-0.043700) + polygon(-0.062004,0.167422,-0.052716)(-0.065699,0.171007,-0.056644)(-0.068261,0.170398,-0.043700) + polygon(-0.051293,0.034227,-0.012901)(-0.055548,0.033682,-0.006190)(-0.042962,0.043024,-0.017629) + polygon(-0.066442,0.159957,-0.053371)(-0.065699,0.171007,-0.056644)(-0.062004,0.167422,-0.052716) + polygon(-0.070233,0.154262,-0.031240)(-0.068497,0.148194,-0.028726)(-0.070543,0.149897,-0.038732) + polygon(-0.043539,0.130014,0.017533)(-0.049353,0.139298,0.014796)(-0.051632,0.145001,0.018480) + polygon(-0.067397,0.155256,0.005814)(-0.076171,0.155559,-0.005927)(-0.078994,0.153984,0.006519) + polygon(-0.056395,0.154565,0.016878)(-0.066633,0.153831,0.030870)(-0.057447,0.152576,0.028451) + polygon(-0.068301,0.144828,0.041369)(-0.057352,0.144989,0.031520)(-0.066633,0.153831,0.030870) + polygon(-0.055925,0.157606,0.006565)(-0.056395,0.154565,0.016878)(-0.051632,0.145001,0.018480) + polygon(-0.070211,0.165303,-0.019466)(-0.068870,0.157773,-0.006876)(-0.064082,0.159391,-0.016910) + polygon(0.057475,0.068222,0.017143)(0.042372,0.067256,0.029580)(0.053458,0.065638,0.026434) + polygon(0.057475,0.068222,0.017143)(0.046369,0.071513,0.021675)(0.042372,0.067256,0.029580) + polygon(-0.070233,0.154262,-0.031240)(-0.070543,0.149897,-0.038732)(-0.068096,0.156721,-0.042617) + polygon(0.057475,0.068222,0.017143)(0.046032,0.079369,0.017769)(0.046369,0.071513,0.021675) + polygon(0.047541,0.071217,0.005426)(0.057475,0.068222,0.017143)(0.055420,0.068638,0.005897) + polygon(-0.081736,0.154390,0.017733)(-0.090925,0.146050,0.019038)(-0.079569,0.152875,0.029931) + polygon(-0.079569,0.152875,0.029931)(-0.090925,0.146050,0.019038)(-0.089332,0.142745,0.029033) + polygon(0.045939,0.079631,0.005796)(0.046032,0.079369,0.017769)(0.057475,0.068222,0.017143) + polygon(0.047541,0.071217,0.005426)(0.045939,0.079631,0.005796)(0.057475,0.068222,0.017143) + polygon(-0.057447,0.152576,0.028451)(-0.066633,0.153831,0.030870)(-0.057352,0.144989,0.031520) + polygon(-0.079352,0.079856,-0.006406)(-0.073582,0.077703,-0.012202)(-0.068141,0.080123,-0.016428) + polygon(-0.044096,0.127453,-0.003279)(-0.044677,0.131204,0.005705)(-0.031222,0.126304,0.005149) + polygon(-0.044677,0.131204,0.005705)(-0.043539,0.130014,0.017533)(-0.031222,0.126304,0.005149) + polygon(-0.056395,0.154565,0.016878)(-0.067218,0.156155,0.017886)(-0.066633,0.153831,0.030870) + polygon(-0.043539,0.130014,0.017533)(-0.029568,0.126072,0.014634)(-0.031222,0.126304,0.005149) + polygon(-0.044096,0.127453,-0.003279)(-0.031222,0.126304,0.005149)(-0.030588,0.122384,-0.006358) + polygon(-0.043539,0.130014,0.017533)(-0.051632,0.145001,0.018480)(-0.056250,0.135013,0.033045) + polygon(-0.068261,0.170398,-0.043700)(-0.076398,0.171291,-0.041102)(-0.069870,0.168536,-0.031332) + polygon(-0.029568,0.126072,0.014634)(-0.043539,0.130014,0.017533)(-0.029876,0.124252,0.020967) + polygon(-0.070211,0.165303,-0.019466)(-0.064082,0.159391,-0.016910)(-0.070233,0.154262,-0.031240) + polygon(-0.069870,0.168536,-0.031332)(-0.070211,0.165303,-0.019466)(-0.070233,0.154262,-0.031240) + polygon(-0.029404,0.179030,-0.007880)(-0.043642,0.169438,-0.005502)(-0.031675,0.170395,-0.006350) + polygon(-0.078994,0.153984,0.006519)(-0.081736,0.154390,0.017733)(-0.067218,0.156155,0.017886) + polygon(-0.068261,0.170398,-0.043700)(-0.076053,0.177651,-0.047146)(-0.076398,0.171291,-0.041102) + polygon(-0.038891,0.123761,0.024978)(-0.047913,0.129301,0.026965)(-0.043459,0.117191,0.031704) + polygon(-0.068870,0.157773,-0.006876)(-0.070211,0.165303,-0.019466)(-0.076377,0.157221,-0.016889) + polygon(-0.068301,0.144828,0.041369)(-0.079569,0.152875,0.029931)(-0.079789,0.143760,0.042699) + polygon(-0.066633,0.153831,0.030870)(-0.079569,0.152875,0.029931)(-0.068301,0.144828,0.041369) + polygon(0.037043,0.110443,0.020723)(0.030419,0.118572,0.018807)(0.033051,0.107034,0.031954) + polygon(-0.018402,0.122219,-0.007751)(-0.031222,0.126304,0.005149)(-0.017357,0.127613,0.005269) + polygon(0.040087,0.105210,0.017342)(0.030419,0.118572,0.018807)(0.037043,0.110443,0.020723) + polygon(-0.043539,0.130014,0.017533)(-0.047913,0.129301,0.026965)(-0.038891,0.123761,0.024978) + polygon(-0.078994,0.153984,0.006519)(-0.085027,0.146034,0.005860)(-0.081736,0.154390,0.017733) + polygon(-0.085027,0.146034,0.005860)(-0.090925,0.146050,0.019038)(-0.081736,0.154390,0.017733) + polygon(0.040463,0.105142,0.006410)(0.030417,0.118495,0.005738)(0.040087,0.105210,0.017342) + polygon(0.030417,0.118495,0.005738)(0.030419,0.118572,0.018807)(0.040087,0.105210,0.017342) + polygon(-0.071968,0.177848,-0.047460)(-0.068261,0.170398,-0.043700)(-0.069226,0.178922,-0.054274) + polygon(0.030419,0.118572,0.018807)(0.027314,0.117965,0.028619)(0.033051,0.107034,0.031954) + polygon(-0.030720,0.117989,0.030617)(-0.038891,0.123761,0.024978)(-0.043459,0.117191,0.031704) + polygon(-0.029876,0.124252,0.020967)(-0.038891,0.123761,0.024978)(-0.030720,0.117989,0.030617) + polygon(0.037011,0.110397,0.002653)(0.030417,0.118495,0.005738)(0.040463,0.105142,0.006410) + polygon(-0.071968,0.177848,-0.047460)(-0.076053,0.177651,-0.047146)(-0.068261,0.170398,-0.043700) + polygon(-0.069226,0.178922,-0.054274)(-0.068261,0.170398,-0.043700)(-0.065699,0.171007,-0.056644) + polygon(0.033271,0.108498,-0.007432)(0.030417,0.118495,0.005738)(0.037011,0.110397,0.002653) + polygon(-0.078994,0.153984,0.006519)(-0.067218,0.156155,0.017886)(-0.067397,0.155256,0.005814) + polygon(-0.067218,0.156155,0.017886)(-0.081736,0.154390,0.017733)(-0.079569,0.152875,0.029931) + polygon(-0.064427,0.041459,0.030448)(-0.056637,0.047018,0.030581)(-0.057350,0.043155,0.020023) + polygon(-0.067397,0.155256,0.005814)(-0.067218,0.156155,0.017886)(-0.056395,0.154565,0.016878) + polygon(0.017440,0.127694,0.018535)(0.027314,0.117965,0.028619)(0.030419,0.118572,0.018807) + polygon(0.017440,0.127694,0.018535)(0.018870,0.119862,0.032409)(0.027314,0.117965,0.028619) + polygon(0.005698,0.105890,0.043551)(-0.005981,0.094031,0.054264)(0.005179,0.093174,0.053587) + polygon(-0.067397,0.155256,0.005814)(-0.056395,0.154565,0.016878)(-0.055925,0.157606,0.006565) + polygon(-0.068870,0.157773,-0.006876)(-0.076171,0.155559,-0.005927)(-0.067397,0.155256,0.005814) + polygon(0.017210,0.127663,0.005126)(0.017440,0.127694,0.018535)(0.030419,0.118572,0.018807) + polygon(0.030417,0.118495,0.005738)(0.017210,0.127663,0.005126)(0.030419,0.118572,0.018807) + polygon(-0.071968,0.177848,-0.047460)(-0.069226,0.178922,-0.054274)(-0.076053,0.177651,-0.047146) + polygon(0.017440,0.127694,0.018535)(0.014434,0.127081,0.026297)(0.018870,0.119862,0.032409) + polygon(-0.064284,0.039642,0.039624)(-0.057276,0.043243,0.042862)(-0.064427,0.041459,0.030448) + polygon(0.017210,0.127663,0.005126)(0.030417,0.118495,0.005738)(0.028574,0.116909,-0.003918) + polygon(0.014434,0.127081,0.026297)(0.005960,0.122504,0.034627)(0.018870,0.119862,0.032409) + polygon(-0.005974,0.105897,0.044067)(-0.019129,0.098595,0.045668)(-0.005981,0.094031,0.054264) + polygon(-0.005981,0.094031,0.054264)(-0.019129,0.098595,0.045668)(-0.017288,0.092177,0.053621) + polygon(0.014434,0.127081,0.026297)(0.005822,0.128060,0.027902)(0.005960,0.122504,0.034627) + polygon(0.033051,0.107034,0.031954)(0.038180,0.105121,0.026695)(0.037043,0.110443,0.020723) + polygon(-0.025482,0.079870,0.051055)(-0.025420,0.088662,0.050383)(-0.031292,0.079830,0.043494) + polygon(-0.076053,0.177651,-0.047146)(-0.069226,0.178922,-0.054274)(-0.076027,0.175704,-0.050694) + polygon(-0.046987,0.147434,-0.002225)(-0.043446,0.156050,0.006158)(-0.047309,0.145156,0.006885) + polygon(-0.021412,0.054698,0.044641)(-0.016920,0.068217,0.053150)(-0.023383,0.065642,0.045098) + polygon(-0.056117,0.065433,0.034198)(-0.043104,0.067439,0.040774)(-0.048809,0.066013,0.037396) + polygon(0.028574,0.116909,-0.003918)(0.018975,0.121506,-0.006946)(0.017210,0.127663,0.005126) + polygon(-0.037956,0.161954,-0.012802)(-0.042538,0.155441,-0.007494)(-0.043642,0.169438,-0.005502) + polygon(-0.055659,0.043287,-0.007588)(-0.066406,0.034365,-0.004167)(-0.065679,0.040833,-0.004018) + polygon(-0.017288,0.092177,0.053621)(-0.029863,0.094012,0.044480)(-0.025420,0.088662,0.050383) + polygon(-0.068870,0.157773,-0.006876)(-0.076377,0.157221,-0.016889)(-0.076171,0.155559,-0.005927) + polygon(-0.021412,0.054698,0.044641)(-0.016149,0.057436,0.050904)(-0.016920,0.068217,0.053150) + polygon(-0.031292,0.079830,0.043494)(-0.018575,0.078970,0.055735)(-0.025482,0.079870,0.051055) + polygon(-0.025482,0.079870,0.051055)(-0.018575,0.078970,0.055735)(-0.017288,0.092177,0.053621) + polygon(-0.043642,0.169438,-0.005502)(-0.037704,0.167987,-0.013039)(-0.037956,0.161954,-0.012802) + polygon(-0.029624,0.054319,0.039895)(-0.021412,0.054698,0.044641)(-0.029307,0.068073,0.041016) + polygon(-0.021412,0.054698,0.044641)(-0.023383,0.065642,0.045098)(-0.029307,0.068073,0.041016) + polygon(-0.066613,0.133021,0.044704)(-0.077978,0.132550,0.051349)(-0.070652,0.130630,0.050250) + polygon(-0.048004,0.056366,0.036266)(-0.043104,0.067439,0.040774)(-0.056117,0.065433,0.034198) + polygon(-0.053091,0.056740,0.029396)(-0.048004,0.056366,0.036266)(-0.056117,0.065433,0.034198) + polygon(-0.068686,0.092370,0.042198)(-0.076270,0.091225,0.038342)(-0.068308,0.080332,0.040711) + polygon(-0.084852,0.134078,0.047018)(-0.077978,0.132550,0.051349)(-0.079789,0.143760,0.042699) + polygon(-0.083306,0.115643,0.046828)(-0.078061,0.120653,0.051400)(-0.090486,0.118611,0.041215) + polygon(-0.016920,0.068217,0.053150)(-0.018575,0.078970,0.055735)(-0.031292,0.079830,0.043494) + polygon(-0.078061,0.120653,0.051400)(-0.089330,0.128309,0.042802)(-0.090486,0.118611,0.041215) + polygon(-0.017288,0.092177,0.053621)(-0.019129,0.098595,0.045668)(-0.029863,0.094012,0.044480) + polygon(-0.053091,0.056740,0.029396)(-0.043198,0.055578,0.039084)(-0.048004,0.056366,0.036266) + polygon(-0.068308,0.080332,0.040711)(-0.076270,0.091225,0.038342)(-0.080603,0.081447,0.030652) + polygon(0.031014,0.093070,-0.017798)(0.017700,0.105983,-0.018614)(0.020267,0.092861,-0.023736) + polygon(-0.025420,0.088662,0.050383)(-0.029863,0.094012,0.044480)(-0.031292,0.079830,0.043494) + polygon(-0.034669,0.057124,-0.011495)(-0.030738,0.056331,-0.018517)(-0.032229,0.044659,-0.016750) + polygon(-0.078061,0.120653,0.051400)(-0.077978,0.132550,0.051349)(-0.084852,0.134078,0.047018) + polygon(-0.089330,0.128309,0.042802)(-0.078061,0.120653,0.051400)(-0.084852,0.134078,0.047018) + polygon(-0.025482,0.079870,0.051055)(-0.017288,0.092177,0.053621)(-0.025420,0.088662,0.050383) + polygon(-0.032229,0.044659,-0.016750)(-0.042903,0.056190,-0.011304)(-0.034669,0.057124,-0.011495) + polygon(-0.065054,0.035326,0.016224)(-0.067953,0.041859,0.006684)(-0.067600,0.034030,0.005905) + polygon(-0.064284,0.039642,0.039624)(-0.064427,0.041459,0.030448)(-0.064768,0.035079,0.029448) + polygon(-0.084426,0.079771,0.018633)(-0.082422,0.095112,0.031088)(-0.088852,0.090972,0.017903) + polygon(-0.064320,0.035226,0.038791)(-0.064284,0.039642,0.039624)(-0.064768,0.035079,0.029448) + polygon(-0.023383,0.065642,0.045098)(-0.016920,0.068217,0.053150)(-0.031292,0.079830,0.043494) + polygon(-0.037956,0.161954,-0.012802)(-0.029558,0.161783,-0.014337)(-0.029483,0.158293,-0.006193) + polygon(-0.005974,0.105897,0.044067)(-0.005981,0.094031,0.054264)(0.005698,0.105890,0.043551) + polygon(-0.084852,0.134078,0.047018)(-0.079789,0.143760,0.042699)(-0.088526,0.137839,0.039396) + polygon(-0.063463,0.041432,0.014205)(-0.067953,0.041859,0.006684)(-0.065054,0.035326,0.016224) + polygon(-0.076270,0.091225,0.038342)(-0.068686,0.092370,0.042198)(-0.082422,0.095112,0.031088) + polygon(-0.037704,0.167987,-0.013039)(-0.029852,0.170905,-0.016561)(-0.029558,0.161783,-0.014337) + polygon(-0.084827,0.148987,0.032770)(-0.079569,0.152875,0.029931)(-0.089332,0.142745,0.029033) + polygon(-0.029307,0.068073,0.041016)(-0.023383,0.065642,0.045098)(-0.031292,0.079830,0.043494) + polygon(-0.063463,0.041432,0.014205)(-0.059413,0.047138,0.006285)(-0.067953,0.041859,0.006684) + polygon(-0.048004,0.056366,0.036266)(-0.043198,0.055578,0.039084)(-0.043104,0.067439,0.040774) + polygon(-0.082422,0.095112,0.031088)(-0.068686,0.092370,0.042198)(-0.081872,0.107166,0.031016) + polygon(-0.043446,0.156050,0.006158)(-0.052819,0.162649,0.002967)(-0.055925,0.157606,0.006565) + polygon(-0.063463,0.041432,0.014205)(-0.057350,0.043155,0.020023)(-0.059413,0.047138,0.006285) + polygon(-0.029393,0.178536,-0.014556)(-0.020233,0.181846,-0.018327)(-0.029852,0.170905,-0.016561) + polygon(-0.017909,0.038590,0.029617)(-0.017319,0.043794,0.043270)(-0.027772,0.038256,0.032287) + polygon(-0.079789,0.143760,0.042699)(-0.084827,0.148987,0.032770)(-0.089332,0.142745,0.029033) + polygon(-0.028499,0.090492,-0.029085)(-0.030973,0.079470,-0.031248)(-0.035514,0.081801,-0.022689) + polygon(-0.056830,0.146392,-0.002643)(-0.055451,0.132420,-0.004854)(-0.067968,0.142877,-0.007576) + polygon(-0.057350,0.043155,0.020023)(-0.063463,0.041432,0.014205)(-0.065054,0.035326,0.016224) + polygon(-0.057350,0.043155,0.020023)(-0.056628,0.054703,0.007446)(-0.059413,0.047138,0.006285) + polygon(-0.084852,0.134078,0.047018)(-0.088526,0.137839,0.039396)(-0.089330,0.128309,0.042802) + polygon(-0.080603,0.081447,0.030652)(-0.076270,0.091225,0.038342)(-0.082422,0.095112,0.031088) + polygon(-0.052819,0.162649,0.002967)(-0.043446,0.156050,0.006158)(-0.044010,0.167035,0.002319) + polygon(-0.057350,0.043155,0.020023)(-0.054004,0.055543,0.017767)(-0.056628,0.054703,0.007446) + polygon(0.029518,0.056056,-0.017587)(0.017521,0.055211,-0.027276)(0.021812,0.051587,-0.023649) + polygon(-0.065699,0.171007,-0.056644)(-0.076027,0.175704,-0.050694)(-0.069226,0.178922,-0.054274) + polygon(-0.068261,0.170398,-0.043700)(-0.076398,0.171291,-0.041102)(-0.065699,0.171007,-0.056644) + polygon(-0.065699,0.171007,-0.056644)(-0.076398,0.171291,-0.041102)(-0.076027,0.175704,-0.050694) + polygon(-0.076027,0.175704,-0.050694)(-0.076398,0.171291,-0.041102)(-0.076053,0.177651,-0.047146) + polygon(-0.066442,0.159957,-0.053371)(-0.068261,0.170398,-0.043700)(-0.065699,0.171007,-0.056644) + polygon(-0.017789,0.115911,-0.015784)(-0.017795,0.106289,-0.021777)(-0.029399,0.115917,-0.014707) + polygon(-0.066442,0.159957,-0.053371)(-0.068096,0.156721,-0.042617)(-0.068261,0.170398,-0.043700) + polygon(-0.041251,0.079138,-0.019775)(-0.035514,0.081801,-0.022689)(-0.032806,0.066464,-0.019522) + polygon(-0.068096,0.156721,-0.042617)(-0.076398,0.171291,-0.041102)(-0.068261,0.170398,-0.043700) + polygon(-0.005791,0.128077,-0.002851)(0.006266,0.128047,-0.003171)(-0.007625,0.123273,-0.009816) + polygon(-0.070233,0.154262,-0.031240)(-0.068096,0.156721,-0.042617)(-0.070543,0.149897,-0.038732) + polygon(-0.068096,0.156721,-0.042617)(-0.069870,0.168536,-0.031332)(-0.076398,0.171291,-0.041102) + polygon(-0.000386,0.035146,0.013417)(0.005360,0.034596,0.017987)(-0.005898,0.038178,0.017706) + polygon(-0.070233,0.154262,-0.031240)(-0.076426,0.161707,-0.029752)(-0.068096,0.156721,-0.042617) + polygon(-0.068096,0.156721,-0.042617)(-0.076426,0.161707,-0.029752)(-0.069870,0.168536,-0.031332) + polygon(-0.076426,0.161707,-0.029752)(-0.077145,0.167706,-0.029880)(-0.076398,0.171291,-0.041102) + polygon(-0.069870,0.168536,-0.031332)(-0.076426,0.161707,-0.029752)(-0.076398,0.171291,-0.041102) + polygon(-0.029393,0.178536,-0.014556)(-0.029404,0.179030,-0.007880)(-0.020233,0.181846,-0.018327) + polygon(0.007026,0.097842,-0.024605)(0.005820,0.106226,-0.020897)(0.005310,0.093313,-0.030185) + polygon(-0.042962,0.043024,-0.017629)(-0.041784,0.035760,-0.026411)(-0.042721,0.034356,-0.019130) + polygon(-0.042962,0.043024,-0.017629)(-0.038391,0.041922,-0.026404)(-0.041784,0.035760,-0.026411) + polygon(-0.030738,0.056331,-0.018517)(-0.032806,0.066464,-0.019522)(-0.029079,0.067426,-0.029052) + polygon(-0.026186,0.056884,-0.028269)(-0.030738,0.056331,-0.018517)(-0.029079,0.067426,-0.029052) + polygon(-0.032806,0.066464,-0.019522)(-0.035514,0.081801,-0.022689)(-0.030973,0.079470,-0.031248) + polygon(-0.029079,0.067426,-0.029052)(-0.032806,0.066464,-0.019522)(-0.030973,0.079470,-0.031248) + polygon(-0.030973,0.079470,-0.031248)(-0.041251,0.079138,-0.019775)(-0.035514,0.081801,-0.022689) + polygon(-0.005791,0.128077,-0.002851)(-0.007625,0.123273,-0.009816)(-0.018402,0.122219,-0.007751) + polygon(-0.069595,0.146412,-0.018032)(-0.076377,0.157221,-0.016889)(-0.070233,0.154262,-0.031240) + polygon(-0.070233,0.154262,-0.031240)(-0.076377,0.157221,-0.016889)(-0.076426,0.161707,-0.029752) + polygon(-0.089330,0.128309,0.042802)(-0.088526,0.137839,0.039396)(-0.089332,0.142745,0.029033) + polygon(0.007534,0.035560,-0.006501)(0.001035,0.037592,0.000952)(0.004304,0.038402,-0.007175) + polygon(-0.032229,0.044659,-0.016750)(-0.042962,0.043024,-0.017629)(-0.042903,0.056190,-0.011304) + polygon(-0.091206,0.131415,0.029531)(-0.089330,0.128309,0.042802)(-0.089332,0.142745,0.029033) + polygon(-0.056628,0.054703,0.007446)(-0.067953,0.041859,0.006684)(-0.059413,0.047138,0.006285) + polygon(-0.041316,0.090692,-0.022588)(-0.041802,0.105934,-0.019869)(-0.031564,0.095933,-0.023680) + polygon(-0.028499,0.090492,-0.029085)(-0.041316,0.090692,-0.022588)(-0.031564,0.095933,-0.023680) + polygon(-0.005887,0.116622,-0.016005)(-0.005971,0.106138,-0.022228)(-0.017789,0.115911,-0.015784) + polygon(-0.042962,0.043024,-0.017629)(-0.032229,0.044659,-0.016750)(-0.030738,0.056331,-0.018517) + polygon(-0.079352,0.079856,-0.006406)(-0.082427,0.092813,-0.005560)(-0.075666,0.091182,-0.013697) + polygon(-0.068141,0.080123,-0.016428)(-0.079352,0.079856,-0.006406)(-0.075666,0.091182,-0.013697) + polygon(-0.082427,0.092813,-0.005560)(-0.079547,0.104194,-0.006203)(-0.075666,0.091182,-0.013697) + polygon(-0.073582,0.077703,-0.012202)(-0.079352,0.079856,-0.006406)(-0.068141,0.080123,-0.016428) + polygon(-0.067968,0.142877,-0.007576)(-0.078703,0.144274,-0.003891)(-0.076377,0.157221,-0.016889) + polygon(-0.069595,0.146412,-0.018032)(-0.067968,0.142877,-0.007576)(-0.076377,0.157221,-0.016889) + polygon(-0.078703,0.144274,-0.003891)(-0.076171,0.155559,-0.005927)(-0.076377,0.157221,-0.016889) + polygon(-0.043642,0.169438,-0.005502)(-0.029852,0.170905,-0.016561)(-0.031675,0.170395,-0.006350) + polygon(-0.043642,0.169438,-0.005502)(-0.029404,0.179030,-0.007880)(-0.029852,0.170905,-0.016561) + polygon(0.015162,0.126104,-0.002664)(0.018975,0.121506,-0.006946)(0.005327,0.123661,-0.009971) + polygon(0.006266,0.128047,-0.003171)(0.015162,0.126104,-0.002664)(0.005327,0.123661,-0.009971) + polygon(-0.088322,0.105757,0.017298)(-0.081872,0.107166,0.031016)(-0.085586,0.106840,0.021729) + polygon(-0.037704,0.167987,-0.013039)(-0.043642,0.169438,-0.005502)(-0.029852,0.170905,-0.016561) + polygon(-0.017761,0.034332,-0.025914)(-0.031548,0.034302,-0.028408)(-0.029902,0.042603,-0.028318) + polygon(-0.035514,0.081801,-0.022689)(-0.041316,0.090692,-0.022588)(-0.028499,0.090492,-0.029085) + polygon(0.018975,0.121506,-0.006946)(0.016118,0.115630,-0.014545)(0.007325,0.118243,-0.015301) + polygon(0.005327,0.123661,-0.009971)(0.018975,0.121506,-0.006946)(0.007325,0.118243,-0.015301) + polygon(0.020267,0.092861,-0.023736)(0.016864,0.089935,-0.026910)(0.017700,0.105983,-0.018614) + polygon(-0.069870,0.168536,-0.031332)(-0.070233,0.154262,-0.031240)(-0.061862,0.158417,-0.029303) + polygon(-0.068763,0.068669,-0.006549)(-0.077369,0.073257,-0.004098)(-0.079352,0.079856,-0.006406) + polygon(-0.081131,0.117972,-0.003595)(-0.072373,0.110057,-0.009433)(-0.079547,0.104194,-0.006203) + polygon(-0.053255,0.157456,-0.002819)(-0.043642,0.169438,-0.005502)(-0.042538,0.155441,-0.007494) + polygon(-0.019333,0.097925,-0.024792)(-0.018412,0.094806,-0.030743)(-0.017795,0.106289,-0.021777) + polygon(-0.032229,0.044659,-0.016750)(-0.030738,0.056331,-0.018517)(-0.029902,0.042603,-0.028318) + polygon(-0.059413,0.047138,0.006285)(-0.055659,0.043287,-0.007588)(-0.065679,0.040833,-0.004018) + polygon(-0.059413,0.047138,0.006285)(-0.056628,0.054703,0.007446)(-0.055659,0.043287,-0.007588) + polygon(-0.056628,0.054703,0.007446)(-0.055029,0.056656,-0.005314)(-0.055659,0.043287,-0.007588) + polygon(-0.073050,0.065420,0.005529)(-0.078792,0.070777,0.006856)(-0.077369,0.073257,-0.004098) + polygon(-0.068763,0.068669,-0.006549)(-0.073050,0.065420,0.005529)(-0.077369,0.073257,-0.004098) + polygon(-0.078792,0.070777,0.006856)(-0.084526,0.080057,0.005307)(-0.079352,0.079856,-0.006406) + polygon(-0.077369,0.073257,-0.004098)(-0.078792,0.070777,0.006856)(-0.079352,0.079856,-0.006406) + polygon(-0.084526,0.080057,0.005307)(-0.088258,0.089869,0.006966)(-0.082427,0.092813,-0.005560) + polygon(-0.079352,0.079856,-0.006406)(-0.084526,0.080057,0.005307)(-0.082427,0.092813,-0.005560) + polygon(-0.088258,0.089869,0.006966)(-0.086915,0.094416,0.002931)(-0.082427,0.092813,-0.005560) + polygon(-0.086915,0.094416,0.002931)(-0.085423,0.105386,0.003395)(-0.082427,0.092813,-0.005560) + polygon(-0.085423,0.105386,0.003395)(-0.079547,0.104194,-0.006203)(-0.082427,0.092813,-0.005560) + polygon(-0.085423,0.105386,0.003395)(-0.081131,0.117972,-0.003595)(-0.079547,0.104194,-0.006203) + polygon(-0.085423,0.105386,0.003395)(-0.090687,0.120305,0.006680)(-0.081131,0.117972,-0.003595) + polygon(-0.090687,0.120305,0.006680)(-0.089811,0.132401,0.007057)(-0.081131,0.117972,-0.003595) + polygon(-0.089811,0.132401,0.007057)(-0.080391,0.129634,-0.004698)(-0.081131,0.117972,-0.003595) + polygon(-0.089811,0.132401,0.007057)(-0.085698,0.136903,0.001921)(-0.080391,0.129634,-0.004698) + polygon(-0.085698,0.136903,0.001921)(-0.085027,0.146034,0.005860)(-0.078703,0.144274,-0.003891) + polygon(-0.085027,0.146034,0.005860)(-0.078994,0.153984,0.006519)(-0.078703,0.144274,-0.003891) + polygon(-0.078994,0.153984,0.006519)(-0.076171,0.155559,-0.005927)(-0.078703,0.144274,-0.003891) + polygon(-0.055925,0.157606,0.006565)(-0.052819,0.162649,0.002967)(-0.053255,0.157456,-0.002819) + polygon(-0.052819,0.162649,0.002967)(-0.044010,0.167035,0.002319)(-0.043642,0.169438,-0.005502) + polygon(-0.053255,0.157456,-0.002819)(-0.052819,0.162649,0.002967)(-0.043642,0.169438,-0.005502) + polygon(-0.064427,0.041459,0.030448)(-0.057276,0.043243,0.042862)(-0.056637,0.047018,0.030581) + polygon(-0.067953,0.041859,0.006684)(-0.056628,0.054703,0.007446)(-0.059413,0.047138,0.006285) + polygon(-0.042280,0.069994,-0.016146)(-0.032806,0.066464,-0.019522)(-0.030738,0.056331,-0.018517) + polygon(-0.034669,0.057124,-0.011495)(-0.042280,0.069994,-0.016146)(-0.030738,0.056331,-0.018517) + polygon(-0.085423,0.105386,0.003395)(-0.086992,0.113518,0.004104)(-0.090687,0.120305,0.006680) + polygon(-0.088852,0.090972,0.017903)(-0.082422,0.095112,0.031088)(-0.081872,0.107166,0.031016) + polygon(-0.059413,0.047138,0.006285)(-0.056628,0.054703,0.007446)(-0.067953,0.041859,0.006684) + polygon(-0.055451,0.132420,-0.004854)(-0.056830,0.146392,-0.002643)(-0.050152,0.140326,0.002588) + polygon(-0.005971,0.106138,-0.022228)(0.005310,0.093313,-0.030185)(-0.006321,0.093165,-0.032893) + polygon(0.031014,0.093070,-0.017798)(0.038146,0.088106,-0.013868)(0.031684,0.078509,-0.019208) + polygon(0.051487,0.063728,-0.001748)(0.055420,0.068638,0.005897)(0.052037,0.055073,-0.002482) + polygon(-0.067953,0.041859,0.006684)(-0.059413,0.047138,0.006285)(-0.065679,0.040833,-0.004018) + polygon(-0.014889,0.126068,-0.002521)(-0.005791,0.128077,-0.002851)(-0.018402,0.122219,-0.007751) + polygon(-0.005971,0.106138,-0.022228)(0.005820,0.106226,-0.020897)(0.005310,0.093313,-0.030185) + polygon(0.018975,0.121506,-0.006946)(0.017700,0.105983,-0.018614)(0.016118,0.115630,-0.014545) + polygon(0.035808,0.095859,-0.012033)(0.041907,0.091639,-0.005569)(0.031014,0.093070,-0.017798) + polygon(0.038734,0.102161,-0.004631)(0.033271,0.108498,-0.007432)(0.031014,0.093070,-0.017798) + polygon(0.028578,0.105181,-0.014238)(0.033271,0.108498,-0.007432)(0.031014,0.093070,-0.017798) + polygon(-0.027154,0.035161,0.050927)(-0.029280,0.041775,0.051397)(-0.030783,0.034760,0.043296) + polygon(0.033271,0.108498,-0.007432)(0.028578,0.105181,-0.014238)(0.017700,0.105983,-0.018614) + polygon(0.033271,0.108498,-0.007432)(0.038734,0.102161,-0.004631)(0.031014,0.093070,-0.017798) + polygon(-0.029902,0.042603,-0.028318)(-0.038391,0.041922,-0.026404)(-0.042962,0.043024,-0.017629) + polygon(0.017210,0.127663,0.005126)(0.018975,0.121506,-0.006946)(0.015162,0.126104,-0.002664) + polygon(0.006266,0.128047,-0.003171)(0.005327,0.123661,-0.009971)(-0.007625,0.123273,-0.009816) + polygon(0.033271,0.108498,-0.007432)(0.018975,0.121506,-0.006946)(0.028574,0.116909,-0.003918) + polygon(-0.029852,0.170905,-0.016561)(-0.043642,0.169438,-0.005502)(-0.031675,0.170395,-0.006350) + polygon(0.017700,0.105983,-0.018614)(0.028578,0.105181,-0.014238)(0.031014,0.093070,-0.017798) + polygon(0.005820,0.106226,-0.020897)(0.007026,0.097842,-0.024605)(0.005310,0.093313,-0.030185) + polygon(0.005975,0.130858,0.005795)(0.017210,0.127663,0.005126)(0.006266,0.128047,-0.003171) + polygon(0.033271,0.108498,-0.007432)(0.035808,0.095859,-0.012033)(0.031014,0.093070,-0.017798) + polygon(-0.067397,0.155256,0.005814)(-0.067968,0.142877,-0.007576)(-0.068870,0.157773,-0.006876) + polygon(-0.031222,0.126304,0.005149)(-0.018402,0.122219,-0.007751)(-0.030588,0.122384,-0.006358) + polygon(-0.067397,0.155256,0.005814)(-0.056830,0.146392,-0.002643)(-0.067968,0.142877,-0.007576) + polygon(0.018975,0.121506,-0.006946)(0.033271,0.108498,-0.007432)(0.017700,0.105983,-0.018614) + polygon(-0.056830,0.146392,-0.002643)(-0.067397,0.155256,0.005814)(-0.055925,0.157606,0.006565) + polygon(-0.006321,0.093165,-0.032893)(-0.014448,0.087927,-0.038030)(-0.018412,0.094806,-0.030743) + polygon(-0.053255,0.157456,-0.002819)(-0.056830,0.146392,-0.002643)(-0.055925,0.157606,0.006565) + polygon(-0.032229,0.044659,-0.016750)(-0.042962,0.043024,-0.017629)(-0.030738,0.056331,-0.018517) + polygon(-0.018412,0.094806,-0.030743)(-0.019333,0.097925,-0.024792)(-0.017795,0.106289,-0.021777) + polygon(-0.014448,0.087927,-0.038030)(-0.019304,0.081013,-0.038432)(-0.018412,0.094806,-0.030743) + polygon(-0.018402,0.122219,-0.007751)(-0.007625,0.123273,-0.009816)(-0.017789,0.115911,-0.015784) + polygon(-0.054945,0.106348,-0.018562)(-0.066462,0.104777,-0.014858)(-0.066435,0.117198,-0.009872) + polygon(-0.055219,0.117461,-0.013374)(-0.054945,0.106348,-0.018562)(-0.066435,0.117198,-0.009872) + polygon(-0.029399,0.115917,-0.014707)(-0.017795,0.106289,-0.021777)(-0.029013,0.106719,-0.020748) + polygon(-0.017841,0.170484,-0.018114)(-0.014219,0.174013,-0.025981)(-0.010666,0.167541,-0.019901) + polygon(0.016864,0.089935,-0.026910)(0.031014,0.093070,-0.017798)(0.016192,0.080479,-0.029217) + polygon(0.016118,0.115630,-0.014545)(0.017700,0.105983,-0.018614)(0.007325,0.118243,-0.015301) + polygon(0.007325,0.118243,-0.015301)(0.017700,0.105983,-0.018614)(0.005820,0.106226,-0.020897) + polygon(-0.005931,0.130215,0.005954)(0.006266,0.128047,-0.003171)(-0.005791,0.128077,-0.002851) + polygon(-0.018402,0.122219,-0.007751)(-0.017789,0.115911,-0.015784)(-0.029399,0.115917,-0.014707) + polygon(-0.030588,0.122384,-0.006358)(-0.018402,0.122219,-0.007751)(-0.029399,0.115917,-0.014707) + polygon(0.031014,0.093070,-0.017798)(0.024914,0.082516,-0.024588)(0.016192,0.080479,-0.029217) + polygon(-0.017357,0.127613,0.005269)(-0.014889,0.126068,-0.002521)(-0.018402,0.122219,-0.007751) + polygon(-0.017316,0.043267,-0.028291)(-0.005189,0.043046,-0.027333)(-0.017761,0.034332,-0.025914) + polygon(-0.005971,0.106138,-0.022228)(-0.017795,0.106289,-0.021777)(-0.017789,0.115911,-0.015784) + polygon(-0.007625,0.123273,-0.009816)(-0.005887,0.116622,-0.016005)(-0.017789,0.115911,-0.015784) + polygon(-0.031548,0.034302,-0.028408)(-0.038391,0.041922,-0.026404)(-0.029902,0.042603,-0.028318) + polygon(0.015162,0.126104,-0.002664)(0.006266,0.128047,-0.003171)(0.017210,0.127663,0.005126) + polygon(0.041907,0.091639,-0.005569)(0.038146,0.088106,-0.013868)(0.031014,0.093070,-0.017798) + polygon(-0.040957,0.117168,-0.014581)(-0.055219,0.117461,-0.013374)(-0.055218,0.122506,-0.009465) + polygon(-0.055219,0.117461,-0.013374)(-0.040957,0.117168,-0.014581)(-0.055218,0.122506,-0.009465) + polygon(-0.007625,0.123273,-0.009816)(0.005327,0.123661,-0.009971)(-0.005887,0.116622,-0.016005) + polygon(-0.032229,0.044659,-0.016750)(-0.029902,0.042603,-0.028318)(-0.042962,0.043024,-0.017629) + polygon(-0.044096,0.127453,-0.003279)(-0.041252,0.123196,-0.009581)(-0.055218,0.122506,-0.009465) + polygon(-0.055451,0.132420,-0.004854)(-0.044096,0.127453,-0.003279)(-0.055218,0.122506,-0.009465) + polygon(-0.040957,0.117168,-0.014581)(-0.041802,0.105934,-0.019869)(-0.055219,0.117461,-0.013374) + polygon(-0.041802,0.105934,-0.019869)(-0.054945,0.106348,-0.018562)(-0.055219,0.117461,-0.013374) + polygon(-0.005931,0.130215,0.005954)(-0.005791,0.128077,-0.002851)(-0.014889,0.126068,-0.002521) + polygon(-0.018412,0.094806,-0.030743)(-0.028499,0.090492,-0.029085)(-0.029013,0.106719,-0.020748) + polygon(0.051487,0.063728,-0.001748)(0.042805,0.055329,-0.006047)(0.041823,0.067520,-0.005516) + polygon(-0.017357,0.127613,0.005269)(-0.005931,0.130215,0.005954)(-0.014889,0.126068,-0.002521) + polygon(-0.044096,0.127453,-0.003279)(-0.055451,0.132420,-0.004854)(-0.044677,0.131204,0.005705) + polygon(-0.040957,0.117168,-0.014581)(-0.055219,0.117461,-0.013374)(-0.055218,0.122506,-0.009465) + polygon(-0.041252,0.123196,-0.009581)(-0.040957,0.117168,-0.014581)(-0.055218,0.122506,-0.009465) + polygon(-0.017795,0.106289,-0.021777)(-0.018412,0.094806,-0.030743)(-0.029013,0.106719,-0.020748) + polygon(-0.029852,0.170905,-0.016561)(-0.029404,0.179030,-0.007880)(-0.029393,0.178536,-0.014556) + polygon(0.055420,0.068638,0.005897)(0.056738,0.054222,0.005125)(0.052037,0.055073,-0.002482) + polygon(0.030417,0.118495,0.005738)(0.033271,0.108498,-0.007432)(0.028574,0.116909,-0.003918) + polygon(-0.005931,0.130215,0.005954)(0.005975,0.130858,0.005795)(0.006266,0.128047,-0.003171) + polygon(0.031014,0.093070,-0.017798)(0.020267,0.092861,-0.023736)(0.017700,0.105983,-0.018614) + polygon(-0.069870,0.168536,-0.031332)(-0.076398,0.171291,-0.041102)(-0.077145,0.167706,-0.029880) + polygon(-0.055659,0.043287,-0.007588)(-0.055548,0.033682,-0.006190)(-0.066406,0.034365,-0.004167) + polygon(0.005327,0.123661,-0.009971)(0.007325,0.118243,-0.015301)(-0.005887,0.116622,-0.016005) + polygon(0.017700,0.105983,-0.018614)(0.016864,0.089935,-0.026910)(0.005310,0.093313,-0.030185) + polygon(0.005820,0.106226,-0.020897)(0.017700,0.105983,-0.018614)(0.005310,0.093313,-0.030185) + polygon(-0.005971,0.106138,-0.022228)(-0.006321,0.093165,-0.032893)(-0.017795,0.106289,-0.021777) + polygon(0.051487,0.063728,-0.001748)(0.041823,0.067520,-0.005516)(0.047541,0.071217,0.005426) + polygon(0.055420,0.068638,0.005897)(0.051487,0.063728,-0.001748)(0.047541,0.071217,0.005426) + polygon(0.052037,0.055073,-0.002482)(0.042805,0.055329,-0.006047)(0.051487,0.063728,-0.001748) + polygon(-0.035244,0.035057,0.017826)(-0.033075,0.035522,0.029224)(-0.041940,0.034370,0.029967) + polygon(-0.006321,0.093165,-0.032893)(-0.018412,0.094806,-0.030743)(-0.017795,0.106289,-0.021777) + polygon(-0.030588,0.122384,-0.006358)(-0.041252,0.123196,-0.009581)(-0.044096,0.127453,-0.003279) + polygon(-0.041252,0.123196,-0.009581)(-0.030588,0.122384,-0.006358)(-0.040957,0.117168,-0.014581) + polygon(-0.030588,0.122384,-0.006358)(-0.029399,0.115917,-0.014707)(-0.040957,0.117168,-0.014581) + polygon(-0.029013,0.106719,-0.020748)(-0.041802,0.105934,-0.019869)(-0.040957,0.117168,-0.014581) + polygon(-0.029399,0.115917,-0.014707)(-0.029013,0.106719,-0.020748)(-0.040957,0.117168,-0.014581) + polygon(-0.024899,0.081500,-0.037108)(-0.028499,0.090492,-0.029085)(-0.018412,0.094806,-0.030743) + polygon(-0.056973,0.065163,-0.009582)(-0.055586,0.072298,-0.016122)(-0.042280,0.069994,-0.016146) + polygon(-0.030973,0.079470,-0.031248)(-0.035514,0.081801,-0.022689)(-0.041251,0.079138,-0.019775) + polygon(0.041463,0.045630,-0.003545)(0.030675,0.044512,-0.006180)(0.042805,0.055329,-0.006047) + polygon(0.030675,0.044512,-0.006180)(0.034113,0.054178,-0.009483)(0.042805,0.055329,-0.006047) + polygon(-0.041251,0.079138,-0.019775)(-0.054525,0.080848,-0.020171)(-0.041316,0.090692,-0.022588) + polygon(-0.053255,0.157456,-0.002819)(-0.042538,0.155441,-0.007494)(-0.046987,0.147434,-0.002225) + polygon(-0.063788,0.071270,-0.013853)(-0.055586,0.072298,-0.016122)(-0.056973,0.065163,-0.009582) + polygon(-0.068763,0.068669,-0.006549)(-0.063788,0.071270,-0.013853)(-0.056973,0.065163,-0.009582) + polygon(-0.029404,0.179030,-0.007880)(-0.023332,0.181239,-0.011289)(-0.020233,0.181846,-0.018327) + polygon(-0.063788,0.071270,-0.013853)(-0.068141,0.080123,-0.016428)(-0.055586,0.072298,-0.016122) + polygon(-0.068763,0.068669,-0.006549)(-0.056973,0.065163,-0.009582)(-0.055029,0.056656,-0.005314) + polygon(-0.055366,0.091983,-0.021178)(-0.054945,0.106348,-0.018562)(-0.041802,0.105934,-0.019869) + polygon(-0.072373,0.110057,-0.009433)(-0.081131,0.117972,-0.003595)(-0.066435,0.117198,-0.009872) + polygon(-0.042280,0.069994,-0.016146)(-0.054525,0.080848,-0.020171)(-0.041251,0.079138,-0.019775) + polygon(0.016864,0.089935,-0.026910)(0.020267,0.092861,-0.023736)(0.031014,0.093070,-0.017798) + polygon(0.031014,0.093070,-0.017798)(0.031684,0.078509,-0.019208)(0.024914,0.082516,-0.024588) + polygon(0.041463,0.045630,-0.003545)(0.051287,0.046396,0.005805)(0.043554,0.041110,0.005799) + polygon(0.017479,0.035213,-0.005929)(0.022619,0.040605,-0.007935)(0.030675,0.044512,-0.006180) + polygon(0.019135,0.042782,-0.019210)(0.021812,0.051587,-0.023649)(0.029518,0.056056,-0.017587) + polygon(0.026038,0.047590,-0.016579)(0.019135,0.042782,-0.019210)(0.029518,0.056056,-0.017587) + polygon(0.021812,0.051587,-0.023649)(0.017521,0.055211,-0.027276)(0.029518,0.056056,-0.017587) + polygon(0.016192,0.080479,-0.029217)(0.031684,0.078509,-0.019208)(0.031738,0.067998,-0.018353) + polygon(0.017565,0.067934,-0.028939)(0.016192,0.080479,-0.029217)(0.031738,0.067998,-0.018353) + polygon(0.031684,0.078509,-0.019208)(0.016192,0.080479,-0.029217)(0.024914,0.082516,-0.024588) + polygon(-0.041679,0.042028,-0.009997)(-0.042903,0.056190,-0.011304)(-0.042962,0.043024,-0.017629) + polygon(-0.067711,0.092892,-0.016881)(-0.075666,0.091182,-0.013697)(-0.066462,0.104777,-0.014858) + polygon(-0.068763,0.068669,-0.006549)(-0.068141,0.080123,-0.016428)(-0.063788,0.071270,-0.013853) + polygon(-0.080391,0.129634,-0.004698)(-0.067493,0.128392,-0.008635)(-0.066435,0.117198,-0.009872) + polygon(-0.075666,0.091182,-0.013697)(-0.067711,0.092892,-0.016881)(-0.066462,0.104777,-0.014858) + polygon(0.019135,0.042782,-0.019210)(0.017521,0.055211,-0.027276)(0.021812,0.051587,-0.023649) + polygon(-0.066462,0.104777,-0.014858)(-0.079547,0.104194,-0.006203)(-0.072373,0.110057,-0.009433) + polygon(-0.066406,0.034365,-0.004167)(-0.067953,0.041859,0.006684)(-0.065679,0.040833,-0.004018) + polygon(0.019135,0.042782,-0.019210)(0.021812,0.051587,-0.023649)(0.017521,0.055211,-0.027276) + polygon(0.019135,0.042782,-0.019210)(0.014325,0.047348,-0.025151)(0.021812,0.051587,-0.023649) + polygon(0.021812,0.051587,-0.023649)(0.014325,0.047348,-0.025151)(0.017521,0.055211,-0.027276) + polygon(-0.056830,0.146392,-0.002643)(-0.053255,0.157456,-0.002819)(-0.046987,0.147434,-0.002225) + polygon(-0.081131,0.117972,-0.003595)(-0.080391,0.129634,-0.004698)(-0.066435,0.117198,-0.009872) + polygon(0.017700,0.105983,-0.018614)(0.031014,0.093070,-0.017798)(0.020267,0.092861,-0.023736) + polygon(0.038146,0.088106,-0.013868)(0.037945,0.081717,-0.014155)(0.031684,0.078509,-0.019208) + polygon(-0.055218,0.122506,-0.009465)(-0.055219,0.117461,-0.013374)(-0.066435,0.117198,-0.009872) + polygon(-0.020723,0.067279,-0.036553)(-0.026186,0.056884,-0.028269)(-0.029079,0.067426,-0.029052) + polygon(0.005243,0.039134,-0.021947)(0.006252,0.045962,-0.026378)(0.014325,0.047348,-0.025151) + polygon(0.019135,0.042782,-0.019210)(0.005243,0.039134,-0.021947)(0.014325,0.047348,-0.025151) + polygon(0.014325,0.047348,-0.025151)(0.006252,0.045962,-0.026378)(0.017521,0.055211,-0.027276) + polygon(0.006252,0.045962,-0.026378)(0.006041,0.055507,-0.030431)(0.017521,0.055211,-0.027276) + polygon(0.006041,0.055507,-0.030431)(0.005656,0.067624,-0.032920)(0.017565,0.067934,-0.028939) + polygon(0.017521,0.055211,-0.027276)(0.006041,0.055507,-0.030431)(0.017565,0.067934,-0.028939) + polygon(0.005686,0.079055,-0.033919)(0.016192,0.080479,-0.029217)(0.017565,0.067934,-0.028939) + polygon(0.005656,0.067624,-0.032920)(0.005686,0.079055,-0.033919)(0.017565,0.067934,-0.028939) + polygon(0.005686,0.079055,-0.033919)(0.005310,0.093313,-0.030185)(0.016192,0.080479,-0.029217) + polygon(0.005310,0.093313,-0.030185)(0.016864,0.089935,-0.026910)(0.016192,0.080479,-0.029217) + polygon(-0.056973,0.065163,-0.009582)(-0.042280,0.069994,-0.016146)(-0.042903,0.056190,-0.011304) + polygon(-0.055029,0.056656,-0.005314)(-0.056973,0.065163,-0.009582)(-0.042903,0.056190,-0.011304) + polygon(-0.067711,0.092892,-0.016881)(-0.079547,0.104194,-0.006203)(-0.066462,0.104777,-0.014858) + polygon(-0.066462,0.104777,-0.014858)(-0.072373,0.110057,-0.009433)(-0.066435,0.117198,-0.009872) + polygon(-0.075666,0.091182,-0.013697)(-0.067711,0.092892,-0.016881)(-0.068141,0.080123,-0.016428) + polygon(-0.067493,0.128392,-0.008635)(-0.067968,0.142877,-0.007576)(-0.055451,0.132420,-0.004854) + polygon(-0.018288,0.108329,0.041510)(-0.019129,0.098595,0.045668)(-0.005974,0.105897,0.044067) + polygon(-0.017873,0.038317,0.005995)(-0.026190,0.037759,0.017704)(-0.028473,0.038149,0.004419) + polygon(-0.055029,0.056656,-0.005314)(-0.042903,0.056190,-0.011304)(-0.041679,0.042028,-0.009997) + polygon(-0.042280,0.069994,-0.016146)(-0.055586,0.072298,-0.016122)(-0.054525,0.080848,-0.020171) + polygon(-0.067493,0.128392,-0.008635)(-0.055451,0.132420,-0.004854)(-0.055218,0.122506,-0.009465) + polygon(-0.006902,0.034640,-0.020217)(-0.005189,0.043046,-0.027333)(0.005243,0.039134,-0.021947) + polygon(0.005600,0.034660,-0.017932)(-0.006902,0.034640,-0.020217)(0.005243,0.039134,-0.021947) + polygon(-0.005189,0.043046,-0.027333)(0.006252,0.045962,-0.026378)(0.005243,0.039134,-0.021947) + polygon(0.006252,0.045962,-0.026378)(-0.005189,0.043046,-0.027333)(0.006041,0.055507,-0.030431) + polygon(-0.005189,0.043046,-0.027333)(-0.006134,0.054637,-0.032635)(0.006041,0.055507,-0.030431) + polygon(-0.006134,0.054637,-0.032635)(-0.006845,0.067974,-0.035941)(0.005656,0.067624,-0.032920) + polygon(0.006041,0.055507,-0.030431)(-0.006134,0.054637,-0.032635)(0.005656,0.067624,-0.032920) + polygon(-0.006845,0.067974,-0.035941)(-0.003384,0.080451,-0.036723)(0.005686,0.079055,-0.033919) + polygon(0.005656,0.067624,-0.032920)(-0.006845,0.067974,-0.035941)(0.005686,0.079055,-0.033919) + polygon(-0.006321,0.093165,-0.032893)(0.005310,0.093313,-0.030185)(0.005686,0.079055,-0.033919) + polygon(-0.003384,0.080451,-0.036723)(-0.006321,0.093165,-0.032893)(0.005686,0.079055,-0.033919) + polygon(0.007325,0.118243,-0.015301)(0.005820,0.106226,-0.020897)(-0.005887,0.116622,-0.016005) + polygon(-0.066435,0.117198,-0.009872)(-0.067493,0.128392,-0.008635)(-0.055218,0.122506,-0.009465) + polygon(-0.066406,0.034365,-0.004167)(-0.065679,0.040833,-0.004018)(-0.055659,0.043287,-0.007588) + polygon(-0.067874,0.106952,0.040372)(-0.081872,0.107166,0.031016)(-0.068686,0.092370,0.042198) + polygon(-0.006845,0.067974,-0.035941)(-0.009537,0.079410,-0.037986)(-0.003384,0.080451,-0.036723) + polygon(-0.009537,0.079410,-0.037986)(-0.006321,0.093165,-0.032893)(-0.003384,0.080451,-0.036723) + polygon(-0.066462,0.104777,-0.014858)(-0.054945,0.106348,-0.018562)(-0.055366,0.091983,-0.021178) + polygon(-0.067711,0.092892,-0.016881)(-0.066462,0.104777,-0.014858)(-0.055366,0.091983,-0.021178) + polygon(-0.081872,0.107166,0.031016)(-0.088322,0.105757,0.017298)(-0.088852,0.090972,0.017903) + polygon(-0.019304,0.081013,-0.038432)(-0.014448,0.087927,-0.038030)(-0.006321,0.093165,-0.032893) + polygon(-0.009537,0.079410,-0.037986)(-0.019304,0.081013,-0.038432)(-0.006321,0.093165,-0.032893) + polygon(-0.014752,0.181897,-0.026278)(-0.010726,0.179662,-0.027747)(-0.009671,0.173225,-0.026495) + polygon(-0.014219,0.174013,-0.025981)(-0.014752,0.181897,-0.026278)(-0.009671,0.173225,-0.026495) + polygon(-0.017316,0.043267,-0.028291)(-0.019066,0.054670,-0.031865)(-0.006134,0.054637,-0.032635) + polygon(-0.005189,0.043046,-0.027333)(-0.017316,0.043267,-0.028291)(-0.006134,0.054637,-0.032635) + polygon(-0.006134,0.054637,-0.032635)(-0.019066,0.054670,-0.031865)(-0.006845,0.067974,-0.035941) + polygon(-0.019066,0.054670,-0.031865)(-0.020723,0.067279,-0.036553)(-0.006845,0.067974,-0.035941) + polygon(-0.020723,0.067279,-0.036553)(-0.017572,0.070547,-0.038226)(-0.006845,0.067974,-0.035941) + polygon(-0.017572,0.070547,-0.038226)(-0.019304,0.081013,-0.038432)(-0.009537,0.079410,-0.037986) + polygon(-0.006845,0.067974,-0.035941)(-0.017572,0.070547,-0.038226)(-0.009537,0.079410,-0.037986) + polygon(-0.068141,0.080123,-0.016428)(-0.055366,0.091983,-0.021178)(-0.054525,0.080848,-0.020171) + polygon(-0.054525,0.080848,-0.020171)(-0.055366,0.091983,-0.021178)(-0.041316,0.090692,-0.022588) + polygon(-0.068141,0.080123,-0.016428)(-0.067711,0.092892,-0.016881)(-0.055366,0.091983,-0.021178) + polygon(-0.055659,0.043287,-0.007588)(-0.065679,0.040833,-0.004018)(-0.066406,0.034365,-0.004167) + polygon(-0.067600,0.034030,0.005905)(-0.067953,0.041859,0.006684)(-0.066406,0.034365,-0.004167) + polygon(-0.068141,0.080123,-0.016428)(-0.054525,0.080848,-0.020171)(-0.055586,0.072298,-0.016122) + polygon(-0.030783,0.034760,0.043296)(-0.042802,0.035157,0.041687)(-0.033075,0.035522,0.029224) + polygon(-0.020233,0.181846,-0.018327)(-0.014752,0.181897,-0.026278)(-0.014219,0.174013,-0.025981) + polygon(-0.017841,0.170484,-0.018114)(-0.020233,0.181846,-0.018327)(-0.014219,0.174013,-0.025981) + polygon(-0.041316,0.090692,-0.022588)(-0.055366,0.091983,-0.021178)(-0.041802,0.105934,-0.019869) + polygon(-0.006902,0.034640,-0.020217)(-0.018062,0.035263,-0.019540)(-0.017761,0.034332,-0.025914) + polygon(-0.041679,0.042028,-0.009997)(-0.042962,0.043024,-0.017629)(-0.055659,0.043287,-0.007588) + polygon(-0.064768,0.035079,0.029448)(-0.064427,0.041459,0.030448)(-0.057350,0.043155,0.020023) + polygon(-0.079352,0.079856,-0.006406)(-0.068141,0.080123,-0.016428)(-0.068763,0.068669,-0.006549) + polygon(-0.064768,0.035079,0.029448)(-0.057350,0.043155,0.020023)(-0.065054,0.035326,0.016224) + polygon(-0.017761,0.034332,-0.025914)(-0.029902,0.042603,-0.028318)(-0.017316,0.043267,-0.028291) + polygon(-0.026186,0.056884,-0.028269)(-0.019066,0.054670,-0.031865)(-0.017316,0.043267,-0.028291) + polygon(-0.026186,0.056884,-0.028269)(-0.020723,0.067279,-0.036553)(-0.019066,0.054670,-0.031865) + polygon(-0.029079,0.067426,-0.029052)(-0.020723,0.067279,-0.036553)(-0.019066,0.054670,-0.031865) + polygon(-0.020723,0.067279,-0.036553)(-0.029079,0.067426,-0.029052)(-0.019066,0.054670,-0.031865) + polygon(-0.024899,0.081500,-0.037108)(-0.019304,0.081013,-0.038432)(-0.017572,0.070547,-0.038226) + polygon(-0.020723,0.067279,-0.036553)(-0.024899,0.081500,-0.037108)(-0.017572,0.070547,-0.038226) + polygon(-0.029852,0.170905,-0.016561)(-0.017841,0.170484,-0.018114)(-0.017513,0.162126,-0.014549) + polygon(-0.017841,0.170484,-0.018114)(-0.029852,0.170905,-0.016561)(-0.020233,0.181846,-0.018327) + polygon(-0.018412,0.094806,-0.030743)(-0.019304,0.081013,-0.038432)(-0.024899,0.081500,-0.037108) + polygon(0.043554,0.041110,0.005799)(0.051287,0.046396,0.005805)(0.043693,0.041197,0.017720) + polygon(-0.017513,0.162126,-0.014549)(-0.029558,0.161783,-0.014337)(-0.029852,0.170905,-0.016561) + polygon(-0.029902,0.042603,-0.028318)(-0.026186,0.056884,-0.028269)(-0.017316,0.043267,-0.028291) + polygon(0.017521,0.055211,-0.027276)(0.031738,0.067998,-0.018353)(0.029518,0.056056,-0.017587) + polygon(-0.030973,0.079470,-0.031248)(-0.024899,0.081500,-0.037108)(-0.020723,0.067279,-0.036553) + polygon(-0.029079,0.067426,-0.029052)(-0.030973,0.079470,-0.031248)(-0.020723,0.067279,-0.036553) + polygon(-0.030973,0.079470,-0.031248)(-0.019304,0.081013,-0.038432)(-0.024899,0.081500,-0.037108) + polygon(-0.019304,0.081013,-0.038432)(-0.030973,0.079470,-0.031248)(-0.024899,0.081500,-0.037108) + polygon(-0.030973,0.079470,-0.031248)(-0.028499,0.090492,-0.029085)(-0.024899,0.081500,-0.037108) + polygon(-0.017732,0.042386,0.051684)(-0.029280,0.041775,0.051397)(-0.027154,0.035161,0.050927) + polygon(0.001141,0.037661,0.022341)(-0.005898,0.038178,0.017706)(0.005360,0.034596,0.017987) + polygon(-0.081872,0.107166,0.031016)(-0.067874,0.106952,0.040372)(-0.078418,0.110126,0.041789) + polygon(0.018422,0.042318,0.042477)(0.006398,0.043701,0.046826)(0.005833,0.035108,0.042091) + polygon(0.015243,0.035612,0.041269)(0.018422,0.042318,0.042477)(0.005833,0.035108,0.042091) + polygon(0.018922,0.035108,0.004998)(0.028662,0.035841,0.018750)(0.019322,0.035181,0.019662) + polygon(0.001141,0.037661,0.022341)(0.005501,0.038556,0.029661)(-0.005898,0.038178,0.017706) + polygon(0.005501,0.038556,0.029661)(-0.005966,0.038895,0.029925)(-0.005898,0.038178,0.017706) + polygon(-0.018341,0.035236,0.050794)(-0.017732,0.042386,0.051684)(-0.027154,0.035161,0.050927) + polygon(0.029824,0.035914,0.004890)(0.028662,0.035841,0.018750)(0.018922,0.035108,0.004998) + polygon(-0.035244,0.035057,0.017826)(-0.026190,0.037759,0.017704)(-0.027772,0.038256,0.032287) + polygon(-0.018341,0.035236,0.050794)(-0.027154,0.035161,0.050927)(-0.018083,0.034814,0.045877) + polygon(0.029824,0.035914,0.004890)(0.018922,0.035108,0.004998)(0.017479,0.035213,-0.005929) + polygon(0.019325,0.035832,0.031321)(0.010025,0.035503,0.029656)(0.005501,0.038556,0.029661) + polygon(0.010025,0.035503,0.029656)(0.019325,0.035832,0.031321)(0.005501,0.038556,0.029661) + polygon(-0.088322,0.105757,0.017298)(-0.091145,0.118816,0.029844)(-0.093147,0.119067,0.017995) + polygon(0.017479,0.035213,-0.005929)(0.007534,0.035560,-0.006501)(0.016214,0.035847,-0.016213) + polygon(-0.084827,0.148987,0.032770)(-0.079789,0.143760,0.042699)(-0.079569,0.152875,0.029931) + polygon(-0.000947,0.035737,0.010347)(-0.000386,0.035146,0.013417)(-0.005898,0.038178,0.017706) + polygon(-0.005847,0.038342,0.005908)(-0.017873,0.038317,0.005995)(-0.005939,0.038948,-0.005921) + polygon(0.017479,0.035213,-0.005929)(0.005121,0.034840,0.005585)(0.007534,0.035560,-0.006501) + polygon(0.028662,0.035841,0.018750)(0.019325,0.035832,0.031321)(0.019322,0.035181,0.019662) + polygon(0.004304,0.038402,-0.007175)(-0.005847,0.038342,0.005908)(-0.005939,0.038948,-0.005921) + polygon(0.028662,0.035841,0.018750)(0.029727,0.042550,0.030498)(0.019325,0.035832,0.031321) + polygon(0.019325,0.035832,0.031321)(0.010025,0.035503,0.029656)(0.005360,0.034596,0.017987) + polygon(-0.018083,0.034814,0.045877)(-0.027154,0.035161,0.050927)(-0.030783,0.034760,0.043296) + polygon(0.019325,0.035832,0.031321)(0.018422,0.042318,0.042477)(0.015243,0.035612,0.041269) + polygon(0.005360,0.034596,0.017987)(0.005501,0.038556,0.029661)(0.001141,0.037661,0.022341) + polygon(-0.017909,0.038590,0.029617)(-0.027772,0.038256,0.032287)(-0.017808,0.038196,0.017811) + polygon(0.019322,0.035181,0.019662)(0.019325,0.035832,0.031321)(0.005360,0.034596,0.017987) + polygon(-0.006549,0.035037,0.045396)(-0.006597,0.042729,0.046939)(-0.017732,0.042386,0.051684) + polygon(0.043693,0.041197,0.017720)(0.029727,0.042550,0.030498)(0.033412,0.037618,0.021008) + polygon(-0.017732,0.042386,0.051684)(-0.018341,0.035236,0.050794)(-0.018083,0.034814,0.045877) + polygon(0.004304,0.038402,-0.007175)(-0.005939,0.038948,-0.005921)(-0.006020,0.038124,-0.014518) + polygon(0.005600,0.034660,-0.017932)(0.007534,0.035560,-0.006501)(0.005243,0.039134,-0.021947) + polygon(-0.081872,0.107166,0.031016)(-0.078418,0.110126,0.041789)(-0.091145,0.118816,0.029844) + polygon(-0.091145,0.118816,0.029844)(-0.078418,0.110126,0.041789)(-0.090486,0.118611,0.041215) + polygon(0.005243,0.039134,-0.021947)(0.004304,0.038402,-0.007175)(-0.006020,0.038124,-0.014518) + polygon(0.043693,0.041197,0.017720)(0.033412,0.037618,0.021008)(0.028662,0.035841,0.018750) + polygon(-0.050152,0.140326,0.002588)(-0.046987,0.147434,-0.002225)(-0.047309,0.145156,0.006885) + polygon(-0.006020,0.038124,-0.014518)(-0.017614,0.038606,-0.005845)(-0.017781,0.038255,-0.015450) + polygon(0.041463,0.045630,-0.003545)(0.029824,0.035914,0.004890)(0.030675,0.044512,-0.006180) + polygon(-0.005847,0.038342,0.005908)(-0.017808,0.038196,0.017811)(-0.017873,0.038317,0.005995) + polygon(-0.090486,0.118611,0.041215)(-0.078418,0.110126,0.041789)(-0.083306,0.115643,0.046828) + polygon(0.043267,0.045829,0.027825)(0.029727,0.042550,0.030498)(0.043693,0.041197,0.017720) + polygon(-0.017781,0.038255,-0.015450)(-0.029913,0.038391,-0.005827)(-0.032229,0.044659,-0.016750) + polygon(0.016214,0.035847,-0.016213)(0.007534,0.035560,-0.006501)(0.005600,0.034660,-0.017932) + polygon(-0.006902,0.034640,-0.020217)(0.005600,0.034660,-0.017932)(-0.006020,0.038124,-0.014518) + polygon(-0.005966,0.038895,0.029925)(-0.006597,0.042729,0.046939)(-0.017319,0.043794,0.043270) + polygon(-0.018062,0.035263,-0.019540)(-0.006902,0.034640,-0.020217)(-0.017781,0.038255,-0.015450) + polygon(-0.066904,0.115717,0.047348)(-0.067874,0.106952,0.040372)(-0.068855,0.122052,0.051757) + polygon(-0.070543,0.149897,-0.038732)(-0.068497,0.148194,-0.028726)(-0.070233,0.154262,-0.031240) + polygon(-0.030783,0.034760,0.043296)(-0.033181,0.045074,0.045115)(-0.042712,0.042165,0.042700) + polygon(-0.073050,0.065420,0.005529)(-0.072989,0.065612,0.018169)(-0.078792,0.070777,0.006856) + polygon(-0.078792,0.070777,0.006856)(-0.072989,0.065612,0.018169)(-0.078488,0.070528,0.017446) + polygon(-0.078488,0.070528,0.017446)(-0.077344,0.072723,0.026655)(-0.084426,0.079771,0.018633) + polygon(-0.084426,0.079771,0.018633)(-0.077344,0.072723,0.026655)(-0.080603,0.081447,0.030652) + polygon(-0.005966,0.038895,0.029925)(-0.017808,0.038196,0.017811)(-0.005898,0.038178,0.017706) + polygon(-0.078418,0.110126,0.041789)(-0.078061,0.120653,0.051400)(-0.083306,0.115643,0.046828) + polygon(-0.073050,0.065420,0.005529)(-0.066051,0.061114,0.005855)(-0.072989,0.065612,0.018169) + polygon(-0.066051,0.061114,0.005855)(-0.065540,0.060789,0.017571)(-0.072989,0.065612,0.018169) + polygon(0.018922,0.035108,0.004998)(0.005121,0.034840,0.005585)(0.017479,0.035213,-0.005929) + polygon(-0.068763,0.068669,-0.006549)(-0.066051,0.061114,0.005855)(-0.073050,0.065420,0.005529) + polygon(-0.068801,0.068573,0.030665)(-0.080603,0.081447,0.030652)(-0.077344,0.072723,0.026655) + polygon(-0.072989,0.065612,0.018169)(-0.077344,0.072723,0.026655)(-0.078488,0.070528,0.017446) + polygon(0.005121,0.034840,0.005585)(-0.000947,0.035737,0.010347)(-0.005847,0.038342,0.005908) + polygon(-0.072989,0.065612,0.018169)(-0.068801,0.068573,0.030665)(-0.077344,0.072723,0.026655) + polygon(-0.066904,0.115717,0.047348)(-0.078418,0.110126,0.041789)(-0.067874,0.106952,0.040372) + polygon(-0.078418,0.110126,0.041789)(-0.066904,0.115717,0.047348)(-0.078061,0.120653,0.051400) + polygon(0.043267,0.045829,0.027825)(0.053250,0.047590,0.018190)(0.053892,0.055755,0.026624) + polygon(-0.006597,0.042729,0.046939)(-0.006549,0.035037,0.045396)(0.005833,0.035108,0.042091) + polygon(0.007534,0.035560,-0.006501)(0.005121,0.034840,0.005585)(0.001035,0.037592,0.000952) + polygon(-0.055029,0.056656,-0.005314)(-0.056628,0.054703,0.007446)(-0.068763,0.068669,-0.006549) + polygon(-0.068763,0.068669,-0.006549)(-0.056628,0.054703,0.007446)(-0.066051,0.061114,0.005855) + polygon(-0.005939,0.038948,-0.005921)(-0.017873,0.038317,0.005995)(-0.017614,0.038606,-0.005845) + polygon(0.019325,0.035832,0.031321)(0.015243,0.035612,0.041269)(0.005833,0.035108,0.042091) + polygon(-0.068801,0.068573,0.030665)(-0.068308,0.080332,0.040711)(-0.080603,0.081447,0.030652) + polygon(-0.017808,0.038196,0.017811)(-0.026190,0.037759,0.017704)(-0.017873,0.038317,0.005995) + polygon(-0.006902,0.034640,-0.020217)(-0.006020,0.038124,-0.014518)(-0.017781,0.038255,-0.015450) + polygon(0.010025,0.035503,0.029656)(0.005501,0.038556,0.029661)(0.005360,0.034596,0.017987) + polygon(-0.065540,0.060789,0.017571)(-0.068801,0.068573,0.030665)(-0.072989,0.065612,0.018169) + polygon(-0.030783,0.034760,0.043296)(-0.042712,0.042165,0.042700)(-0.042802,0.035157,0.041687) + polygon(-0.056628,0.054703,0.007446)(-0.054004,0.055543,0.017767)(-0.066051,0.061114,0.005855) + polygon(-0.066051,0.061114,0.005855)(-0.054004,0.055543,0.017767)(-0.065540,0.060789,0.017571) + polygon(-0.055026,0.033620,0.005838)(-0.067600,0.034030,0.005905)(-0.066406,0.034365,-0.004167) + polygon(-0.055548,0.033682,-0.006190)(-0.055026,0.033620,0.005838)(-0.066406,0.034365,-0.004167) + polygon(-0.068801,0.068573,0.030665)(-0.063538,0.071665,0.037946)(-0.068308,0.080332,0.040711) + polygon(0.053250,0.047590,0.018190)(0.043267,0.045829,0.027825)(0.043693,0.041197,0.017720) + polygon(-0.055026,0.033620,0.005838)(-0.065054,0.035326,0.016224)(-0.067600,0.034030,0.005905) + polygon(-0.053091,0.056740,0.029396)(-0.065540,0.060789,0.017571)(-0.054004,0.055543,0.017767) + polygon(-0.053091,0.056740,0.029396)(-0.068801,0.068573,0.030665)(-0.065540,0.060789,0.017571) + polygon(-0.056325,0.033676,0.017527)(-0.065054,0.035326,0.016224)(-0.055026,0.033620,0.005838) + polygon(0.033412,0.037618,0.021008)(0.029727,0.042550,0.030498)(0.028662,0.035841,0.018750) + polygon(-0.053091,0.056740,0.029396)(-0.056117,0.065433,0.034198)(-0.068801,0.068573,0.030665) + polygon(0.004304,0.038402,-0.007175)(0.001035,0.037592,0.000952)(-0.005847,0.038342,0.005908) + polygon(-0.068497,0.148194,-0.028726)(-0.069595,0.146412,-0.018032)(-0.070233,0.154262,-0.031240) + polygon(-0.017761,0.034332,-0.025914)(-0.005189,0.043046,-0.027333)(-0.006902,0.034640,-0.020217) + polygon(-0.042721,0.034356,-0.019130)(-0.055548,0.033682,-0.006190)(-0.051293,0.034227,-0.012901) + polygon(-0.042712,0.042165,0.042700)(-0.056947,0.034942,0.042372)(-0.042802,0.035157,0.041687) + polygon(-0.056117,0.065433,0.034198)(-0.054531,0.071460,0.039704)(-0.068801,0.068573,0.030665) + polygon(-0.068801,0.068573,0.030665)(-0.054531,0.071460,0.039704)(-0.063538,0.071665,0.037946) + polygon(-0.063538,0.071665,0.037946)(-0.054531,0.071460,0.039704)(-0.068308,0.080332,0.040711) + polygon(-0.000386,0.035146,0.013417)(0.005360,0.034596,0.017987)(-0.005898,0.038178,0.017706) + polygon(-0.055430,0.034256,0.029795)(-0.064768,0.035079,0.029448)(-0.065054,0.035326,0.016224) + polygon(-0.056325,0.033676,0.017527)(-0.055430,0.034256,0.029795)(-0.065054,0.035326,0.016224) + polygon(0.005121,0.034840,0.005585)(0.005360,0.034596,0.017987)(-0.000386,0.035146,0.013417) + polygon(-0.054531,0.071460,0.039704)(-0.055894,0.079259,0.043534)(-0.068308,0.080332,0.040711) + polygon(-0.000947,0.035737,0.010347)(0.005121,0.034840,0.005585)(-0.000386,0.035146,0.013417) + polygon(0.005360,0.034596,0.017987)(-0.000386,0.035146,0.013417)(-0.005898,0.038178,0.017706) + polygon(-0.043031,0.034139,-0.005660)(-0.055548,0.033682,-0.006190)(-0.042721,0.034356,-0.019130) + polygon(-0.005847,0.038342,0.005908)(-0.000947,0.035737,0.010347)(-0.005898,0.038178,0.017706) + polygon(-0.042462,0.034314,0.005906)(-0.055026,0.033620,0.005838)(-0.055548,0.033682,-0.006190) + polygon(-0.043031,0.034139,-0.005660)(-0.042462,0.034314,0.005906)(-0.055548,0.033682,-0.006190) + polygon(-0.006597,0.042729,0.046939)(0.005833,0.035108,0.042091)(0.006398,0.043701,0.046826) + polygon(-0.030783,0.034760,0.043296)(-0.029280,0.041775,0.051397)(-0.033181,0.045074,0.045115) + polygon(0.019325,0.035832,0.031321)(0.005833,0.035108,0.042091)(0.010025,0.035503,0.029656) + polygon(0.005243,0.039134,-0.021947)(0.007534,0.035560,-0.006501)(0.004304,0.038402,-0.007175) + polygon(-0.031548,0.034302,-0.028408)(-0.042721,0.034356,-0.019130)(-0.041784,0.035760,-0.026411) + polygon(-0.055430,0.034256,0.029795)(-0.064320,0.035226,0.038791)(-0.064768,0.035079,0.029448) + polygon(-0.005939,0.038948,-0.005921)(-0.017614,0.038606,-0.005845)(-0.006020,0.038124,-0.014518) + polygon(-0.017808,0.038196,0.017811)(-0.027772,0.038256,0.032287)(-0.026190,0.037759,0.017704) + polygon(-0.056947,0.034942,0.042372)(-0.064320,0.035226,0.038791)(-0.055430,0.034256,0.029795) + polygon(0.043554,0.041110,0.005799)(0.028662,0.035841,0.018750)(0.029824,0.035914,0.004890) + polygon(-0.005966,0.038895,0.029925)(-0.017319,0.043794,0.043270)(-0.017909,0.038590,0.029617) + polygon(-0.006549,0.035037,0.045396)(-0.017732,0.042386,0.051684)(-0.018083,0.034814,0.045877) + polygon(-0.031577,0.035849,-0.017967)(-0.042721,0.034356,-0.019130)(-0.031548,0.034302,-0.028408) + polygon(-0.064320,0.035226,0.038791)(-0.056947,0.034942,0.042372)(-0.064284,0.039642,0.039624) + polygon(-0.041679,0.042028,-0.009997)(-0.043031,0.034139,-0.005660)(-0.042721,0.034356,-0.019130) + polygon(-0.031577,0.035849,-0.017967)(-0.041679,0.042028,-0.009997)(-0.042721,0.034356,-0.019130) + polygon(-0.056947,0.034942,0.042372)(-0.057276,0.043243,0.042862)(-0.064284,0.039642,0.039624) + polygon(-0.031577,0.035849,-0.017967)(-0.032229,0.044659,-0.016750)(-0.042721,0.034356,-0.019130) + polygon(-0.032229,0.044659,-0.016750)(-0.031577,0.035849,-0.017967)(-0.042721,0.034356,-0.019130) + polygon(-0.032229,0.044659,-0.016750)(-0.041679,0.042028,-0.009997)(-0.031577,0.035849,-0.017967) + polygon(-0.041679,0.042028,-0.009997)(-0.029913,0.038391,-0.005827)(-0.043031,0.034139,-0.005660) + polygon(-0.066904,0.115717,0.047348)(-0.068855,0.122052,0.051757)(-0.078061,0.120653,0.051400) + polygon(-0.048809,0.066013,0.037396)(-0.054531,0.071460,0.039704)(-0.056117,0.065433,0.034198) + polygon(-0.043104,0.067439,0.040774)(-0.054531,0.071460,0.039704)(-0.048809,0.066013,0.037396) + polygon(-0.029913,0.038391,-0.005827)(-0.041679,0.042028,-0.009997)(-0.032229,0.044659,-0.016750) + polygon(0.043693,0.041197,0.017720)(0.028662,0.035841,0.018750)(0.043554,0.041110,0.005799) + polygon(0.005600,0.034660,-0.017932)(0.005243,0.039134,-0.021947)(-0.006020,0.038124,-0.014518) + polygon(-0.041940,0.034370,0.029967)(-0.056947,0.034942,0.042372)(-0.055430,0.034256,0.029795) + polygon(-0.041940,0.034370,0.029967)(-0.042802,0.035157,0.041687)(-0.056947,0.034942,0.042372) + polygon(-0.005898,0.038178,0.017706)(-0.017808,0.038196,0.017811)(-0.005847,0.038342,0.005908) + polygon(0.001035,0.037592,0.000952)(0.005121,0.034840,0.005585)(-0.005847,0.038342,0.005908) + polygon(-0.018062,0.035263,-0.019540)(-0.031577,0.035849,-0.017967)(-0.031548,0.034302,-0.028408) + polygon(-0.017761,0.034332,-0.025914)(-0.018062,0.035263,-0.019540)(-0.031548,0.034302,-0.028408) + polygon(-0.017781,0.038255,-0.015450)(-0.032229,0.044659,-0.016750)(-0.031577,0.035849,-0.017967) + polygon(-0.018062,0.035263,-0.019540)(-0.017781,0.038255,-0.015450)(-0.031577,0.035849,-0.017967) + polygon(-0.005966,0.038895,0.029925)(-0.017909,0.038590,0.029617)(-0.017808,0.038196,0.017811) + polygon(-0.035244,0.035057,0.017826)(-0.042462,0.034314,0.005906)(-0.034232,0.033759,0.007175) + def p1 (0,.18,0) + def p2 (0,0,0) + def p3 (.05,0,0) + def p4 (0,0,.05) + special|\psline[linecolor=red,linestyle=dashed]#1#2#3 + \psline[linecolor=red,linestyle=dashed]#2#4| + [lay=over](p1)(p2)(p3)(p4) + line[linecolor=red,linewidth=1pt](p1)(p2)(p3) + line[linecolor=red,linewidth=1pt](p2)(p4) +} +put { view( (2,4.5,3) ) then scale(100) } {bunny} +global { set [linewidth=.3pt] } diff --git a/graphics/sketch/Data/cone.sk b/graphics/sketch/Data/cone.sk new file mode 100644 index 0000000000..4978008f32 --- /dev/null +++ b/graphics/sketch/Data/cone.sk @@ -0,0 +1,134 @@ +% truncated cone diagram +% Modified for PGF/TikZ +def O (0,0,0) +def I [1,0,0] +def J [0,1,0] +def K [0,0,1] + +def p0 (1,2) +def p1 (1.5,0) +def N 8 +def seg_rot rotate(360 / N, [J]) +def dx + <labeled> 2 + <> 2.3 +def dy + <labeled> 2 + <> 3.3 +def dz dx + +def basic_cone { + + % draw the cone; this is the easy part! + sweep[cull=false,fill=blue!20,fill opacity=0.8] { N, [[seg_rot]] } line(p0)(p1) + + % draw the axes + def ax (dx,0,0) + def ay (0,dy,0) + def az (0,0,dz) + line[arrows=<->,linewidth=.4pt](ax)(O)(ay) + line[arrows=->,linewidth=.4pt](O)(az) + % repeat dotted as an overlay to hint at the hidden lines + %line[lay=over,linestyle=dotted,linewidth=.4pt](ax)(O)(ay) + % line[lay=over,linestyle=dotted,linewidth=.4pt](O)(az) + % label + special|\path #1 node[below] {$x$} + #2 node[above] {$y$} + #3 node[left] {$z$};| + (ax)(ay)(az) + + % height measurement mark takes too much code! + def c0 (p0) then scale([J]) + def hdim_ref unit((p1) - (O)) then [[seg_rot]]^2 + def h00 (c0) + 1.1 * [hdim_ref] + def h01 (c0) + 1.9 * [hdim_ref] + def h02 (c0) + 1.8 * [hdim_ref] + line(h00)(h01) + def h10 (O) + 1.6 * [hdim_ref] + def h11 (O) + 1.9 * [hdim_ref] + def h12 (O) + 1.8 * [hdim_ref] + line(h10)(h11) + line[arrows=<->](h02)(h12) + def hm2 ((h02)-(O)+(h12)-(O)) / 2 + (O) + special|\node[ann] at #1 {$h$};|(hm2) + + % radius measurement marks + def gap [0,.2,0] + % first r1 + def up1 [0,3.1,0] + def r1 ((p1) then [[seg_rot]]^-2) + [up1] + def r1c (r1) then scale([J]) + def r1t (r1) + [gap] + def r1b ((r1t) then scale([1,0,1])) + [gap] + line[arrows=<->](r1c)(r1) + line(r1b)(r1t) + def r1m ((r1) - (O) + (r1c) - (O)) / 2 + (O) + special |\node[ann] at #1 {$r_1$};|(r1m) + % same drill for r0, but must project down first + def up0 [0,2.7,0] + def r0 ((p0) then scale([1,0,1]) then [[seg_rot]]^-2) + [up0] + def r0c (r0) then scale([J]) + def r0t (r0) + [gap] + def r0b ((p0) then [[seg_rot]]^-2) + [gap] + line[arrows=<->](r0c)(r0) + line(r0b)(r0t) + def r0m ((r0) - (O) + (r0c) - (O)) / 2 + (O) + special |\node[ann] at #1 {$r_0$};|(r0m) +} + +def labeled_cone { + + % the "ghost" of the entire cone + sweep[draw=lightgray,cull=false] { N-1, [[seg_rot]] } + line(p0)(p1) + + % for the highlighted face, we need explicit points + def p00 (p0) then [[seg_rot]]^-1 + def p10 (p1) then [[seg_rot]]^-1 + def p01 (p0) + def p11 (p1) + %polygon[showpoints=true](p00)(p10)(p11)(p01) + polygon[fillcolor=red,dotsep=semitransparent](p00)(p10)(p11)(p01) + % TikZ does not have a showpoints option. Use dots. + dots(p00)(p10)(p11)(p01) + % TikZ special for labels. + special|\fill[black,font=\footnotesize] + #1 node [above] {$P_{00}$} + #2 node [below] {$P_{10}$} + #3 node [above] {$P_{01}$} + #4 node [below] {$P_{11}$};| + (p00)(p10)(p01)(p11) + def mid ((p00)-(O)+(p10)-(O)+(p11)-(O)+(p01)-(O))/4+(O) + % The TikZ arc operation starts at the current point. We therefore + % need to shift it to get mid to be the center of the arc + special|\draw #1+(-60:.25) [yscale=1.3,->] arc(-60:240:.25);| + [lay=over](mid) + def mid_left ((p00)-(O)+(p10)-(O))/2+(O) + def mid_right ((p11)-(O)+(p01)-(O))/2+(O) + special|\path[font=\footnotesize] + #1 node[left] {$j$} + #2 node[right] {$j\hbox{$+$}1$};| + (mid_left)(mid_right) + def top_lbl (p01) then [[seg_rot]]^2 + def bot_lbl (p11) then [[seg_rot]]^2 + special|\path[font=\footnotesize] + #1 node[right] {$i\hbox{$=$}0$} + #2 node[right] {$i\hbox{$=$}1$};| + (top_lbl)(bot_lbl) +} + + + + +def cone + <labeled> {labeled_cone} + <> {basic_cone} + +put { view((10,4,2)) } {cone} + +% Cool trick: lay = under forces this to be output first in the tikz picture block. +special |\tikzstyle{ann} = [fill=white,font=\footnotesize,inner sep=1pt]|[lay=under] + +global { + language tikz +} diff --git a/graphics/sketch/Data/hand.sk b/graphics/sketch/Data/hand.sk new file mode 100644 index 0000000000..9d37eee2f1 --- /dev/null +++ b/graphics/sketch/Data/hand.sk @@ -0,0 +1,387 @@ +% +% Very simple model of my hand +% +% Gene Ressler +% +% In particular, this completely ignores the carpal joints. +% +% Try this with various options to sketch. +% +% -D fist \ +% -D ok > none or one of these +% -D spread / +% +% -D topview \ +% -D frontview > none or one of these +% -D sideview / +% +% -D repeated +% +% I am not responsible for modifications to draw +% obscene gestures. + +% parameterization of model + +% for fingers, 0 is thumb, 1 is index, +% 2 is middle, 3 is ring, 4 is little + +% lateral angle between fingers +def spread_rot + <fist> 0 + <ok> 5 + <spread>10 + <> 0 +% and between thumb and index finger +def spread_rot_0 + <fist> 40 + <ok> 55 + <spread> 55 + <> 25 + +% rotations of finger parts +% distal is the finger tip +% middle is below that +% meta is the knuckle +def distal_0_rot + <fist> 60 + <ok> 45 + <> -10 +def middle_0_rot + <fist> 50 + <ok> 40 + <spread> 0 + <> 10 +def meta_0_rot + <fist> 40 + <ok> 35 + <> 0 + +def distal_1_rot + <fist> 90 + <ok> 54 + <> 0 +def meta_1_rot + <fist> 90 + <ok> 60 + <> 0 + +def distal_2_rot + <fist> 90 + <ok> 30 + <> 0 +def meta_2_rot + <fist> 90 + <ok> 35 + <> 0 + +def distal_3_rot + <fist> 90 + <ok> 30 + <> 0 +def meta_3_rot + <fist> 90 + <ok> 30 + <> 0 + +def distal_4_rot + <fist> 90 + <ok> 30 + <> 0 +def meta_4_rot + <fist> 90 + <ok> 25 + <> 0 + +% end parameters + +% useful stuff +def O (0,0,0) +def I [1,0,0] +def J [0,1,0] +def K [0,0,1] + +% dependent rotations +% fingers have the last two joints wired together +def middle_1_rot distal_1_rot +def middle_2_rot distal_2_rot +def middle_3_rot distal_3_rot +def middle_4_rot distal_4_rot + +% proportions +def proximal_rad .6 +def distal_rad .5 +def distal_len 1.8 +def joint_rad .6 +def joint_gap .7 +def middle_ratio 1.8 +def proximal_distal_ratio proximal_rad / distal_rad + +% primitive segment of a finger is a truncated cone +def segment { + def n_faces 8 + sweep { n_faces<>, rotate(360 / n_faces, [J]) } + line(proximal_rad, 0)(distal_rad, distal_len) +} + +% spheres to connect segments at joints +def joint_sphere { + def n_joint_faces 8 + sweep [fillcolor=lightgray] { n_joint_faces, rotate(360 / n_joint_faces, [J]) } + sweep { n_joint_faces, rotate(180 / n_joint_faces) } + (0, -joint_rad) +} + +% following is five separate definitions for five fingers +% with parameters, this would be much shorter! + +def distal_0 { + put { translate(joint_gap * joint_rad * [J]) + then rotate(distal_0_rot, [I]) + then translate((distal_len + joint_gap * joint_rad) * [J]) } + {segment} + put { rotate(distal_0_rot / 2, [I]) + then translate((distal_len + joint_gap * joint_rad) * [J]) } + {joint_sphere} + put { scale( [J] + proximal_distal_ratio * ([I]+[K]) ) } + {segment} +} + +def finger_0 { + put { translate(joint_gap * joint_rad * [J]) + then rotate(middle_0_rot, [I]) + then translate((middle_ratio * distal_len + joint_gap * joint_rad) * [J]) } + {distal_0} + put { scale(proximal_distal_ratio) + then rotate(middle_0_rot / 2, [I]) + then translate((middle_ratio * distal_len + joint_gap * joint_rad) * [J]) } + {joint_sphere} + put { scale( middle_ratio * [J] + proximal_distal_ratio^2 * ([I]+[K]) ) } + {segment} +} + +def distal_1 { + put { translate(joint_gap * joint_rad * [J]) + then rotate(distal_1_rot, [I]) + then translate((distal_len + joint_gap * joint_rad) * [J]) } + {segment} + put { rotate(distal_1_rot / 2, [I]) + then translate((distal_len + joint_gap * joint_rad) * [J]) } + {joint_sphere} + put { scale( [J] + proximal_distal_ratio * ([I]+[K]) ) } + {segment} +} + +def finger_1 { + put { translate(joint_gap * joint_rad * [J]) + then rotate(middle_1_rot, [I]) + then translate((middle_ratio * distal_len + joint_gap * joint_rad) * [J]) } + {distal_1} + put { scale(proximal_distal_ratio) + then rotate(middle_1_rot / 2, [I]) + then translate((middle_ratio * distal_len + joint_gap * joint_rad) * [J]) } + {joint_sphere} + put { scale( middle_ratio * [J] + proximal_distal_ratio^2 * ([I]+[K]) ) } + {segment} +} + +def distal_2 { + put { translate(joint_gap * joint_rad * [J]) + then rotate(distal_2_rot, [I]) + then translate((distal_len + joint_gap * joint_rad) * [J]) } + {segment} + put { rotate(distal_2_rot / 2, [I]) + then translate((distal_len + joint_gap * joint_rad) * [J]) } + {joint_sphere} + put { scale( [J] + proximal_distal_ratio * ([I]+[K]) ) } + {segment} +} + +def finger_2 { + put { translate(joint_gap * joint_rad * [J]) + then rotate(middle_2_rot, [I]) + then translate((middle_ratio * distal_len + joint_gap * joint_rad) * [J]) } + {distal_2} + put { scale(proximal_distal_ratio) + then rotate(middle_2_rot / 2, [I]) + then translate((middle_ratio * distal_len + joint_gap * joint_rad) * [J]) } + {joint_sphere} + put { scale( middle_ratio * [J] + proximal_distal_ratio^2 * ([I]+[K]) ) } + {segment} +} + +def distal_3 { + put { translate(joint_gap * joint_rad * [J]) + then rotate(distal_3_rot, [I]) + then translate((distal_len + joint_gap * joint_rad) * [J]) } + {segment} + put { rotate(distal_3_rot / 2, [I]) + then translate((distal_len + joint_gap * joint_rad) * [J]) } + {joint_sphere} + put { scale( [J] + proximal_distal_ratio * ([I]+[K]) ) } + {segment} +} + +def finger_3 { + put { translate(joint_gap * joint_rad * [J]) + then rotate(middle_3_rot, [I]) + then translate((middle_ratio * distal_len + joint_gap * joint_rad) * [J]) } + {distal_3} + put { scale(proximal_distal_ratio) + then rotate(middle_3_rot / 2, [I]) + then translate((middle_ratio * distal_len + joint_gap * joint_rad) * [J]) } + {joint_sphere} + put { scale( middle_ratio * [J] + proximal_distal_ratio^2 * ([I]+[K]) ) } + {segment} +} + +def distal_4 { + put { translate(joint_gap * joint_rad * [J]) + then rotate(distal_4_rot, [I]) + then translate((distal_len + joint_gap * joint_rad) * [J]) } + {segment} + put { rotate(distal_4_rot / 2, [I]) + then translate((distal_len + joint_gap * joint_rad) * [J]) } + {joint_sphere} + put { scale( [J] + proximal_distal_ratio * ([I]+[K]) ) } + {segment} +} + +def finger_4 { + put { translate(joint_gap * joint_rad * [J]) + then rotate(middle_4_rot, [I]) + then translate((middle_ratio * distal_len + joint_gap * joint_rad) * [J]) } + {distal_4} + put { scale(proximal_distal_ratio) + then rotate(middle_4_rot / 2, [I]) + then translate((middle_ratio * distal_len + joint_gap * joint_rad) * [J]) } + {joint_sphere} + put { scale( middle_ratio * [J] + proximal_distal_ratio^2 * ([I]+[K]) ) } + {segment} +} + +% points on the palm of the hand +def proximal_0_loc (1.8,-5.5,0) +def proximal_1_loc (1.8,.1,0) +def proximal_2_loc (O) +def proximal_3_loc (-1.8,-.2,0) +def proximal_4_loc (-3.6,-.5,0) +def h5 (proximal_4_loc) + [-.6,-.2] +def h6 (h5) + [1,-5] +def h8 (proximal_0_loc) + [.75,-.5] +def h7 (h8) + [-.6,-.8] +def h6a (h6) + .6 * ((h7) - (h6)) +def h9 (h8) + [-1.9,1] +def h10 (proximal_1_loc) + [.85,-.3] + +def hand { + + % thumb has an extra rotation for opposable-ness! + def opposition_rot rotate(-50, [J]) + def thk_scale_0 1.2 + put { scale([thk_scale_0,.9,thk_scale_0]) % this distorts a little; oh well + then translate((joint_gap * joint_rad) * [J]) + then [[opposition_rot]] + then rotate(meta_0_rot, [I]) + then rotate(-spread_rot_0, [K]) + then translate((proximal_0_loc) - (O)) } + {finger_0} + + put { scale(thk_scale_0 * proximal_distal_ratio^2) + then [[opposition_rot]] + then rotate(meta_0_rot / 2, [I]) + then rotate(-spread_rot_0, [K]) + then translate((proximal_0_loc) - (O)) } + {joint_sphere} + + % index finger + def scale_1 .85 + put { scale(scale_1) + then translate((joint_gap * joint_rad) * [J]) + then rotate(meta_1_rot, [I]) + then rotate(-spread_rot, [K]) + then translate((proximal_1_loc) - (O)) } + {finger_1} + + put { scale(scale_1 * proximal_distal_ratio^2) + then rotate(meta_1_rot / 2, [I]) + then rotate(-spread_rot, [K]) + then translate((proximal_1_loc) - (O)) } + {joint_sphere} + + % middle finger + put { % no scale then + translate((joint_gap * joint_rad) * [J]) + then rotate(meta_2_rot, [I]) + % no spread rotation + then translate((proximal_2_loc) - (O)) } + {finger_2} + + put { scale(proximal_distal_ratio^2) + then rotate(meta_2_rot / 2, [I]) + then rotate(-spread_rot, [K]) + then translate((proximal_2_loc) - (O)) } + {joint_sphere} + + % ring finger + def scale_3 .85 + put { scale(scale_3) + then translate((joint_gap * joint_rad) * [J]) + then rotate(meta_3_rot, [I]) + then rotate(spread_rot, [K]) + then translate((proximal_3_loc) - (O)) } + {finger_3} + + put { scale(scale_3 * proximal_distal_ratio^2) + then rotate(meta_3_rot / 2, [I]) + then rotate(-spread_rot, [K]) + then translate((proximal_3_loc) - (O)) } + {joint_sphere} + + % little finger + def scale_4 .7 + put { scale(scale_4) + then translate((joint_gap * joint_rad) * [J]) + then rotate(meta_4_rot, [I]) + then rotate(2 * spread_rot, [K]) + then translate((proximal_4_loc) - (O)) } + {finger_4} + + put { scale(scale_4 * proximal_distal_ratio^2) + then rotate(meta_4_rot / 2, [I]) + then rotate(-spread_rot, [K]) + then translate((proximal_4_loc) - (O)) } + {joint_sphere} + + % palm is built by sweeping a polygon through a small + % angle in order to make it thicker at the wrist + put { translate(joint_gap * joint_rad * -[J]) } % drop polytope to expose knuckles + sweep { 1, rotate(6, (0,15,0), [I]) } + put { rotate(-3, (0,15,0), [I]) } { + % need two polygons for convexity; the desired shape is concave at the thumb + polygon(proximal_1_loc)(proximal_2_loc)(proximal_3_loc)(proximal_4_loc) + (h5)(h6)(h6a)(h9)(h10) + polygon(h6a)(h7)(h8)(h9) + } +} + +% a few views +def viewxf + <frontview> view((0,0,10)) + <sideview> view((10,0,0)) + <topview> view((0,10,0), (O), -[K]) + <> view((4,3,10)) + +% either a single copy or a repeat to show different angles +def scene + <repeated> + put { [[viewxf]] then scale(.25) } { + def N 4 + repeat { N, rotate(270/N, [3,2,1]), translate(14*[I]) } {hand} + } + <> put { [[viewxf]] then scale(.3) } {hand} + +{scene} + +global { + set [linewidth=.3pt] +} diff --git a/graphics/sketch/Data/test.sk b/graphics/sketch/Data/test.sk new file mode 100644 index 0000000000..b28d7e7eec --- /dev/null +++ b/graphics/sketch/Data/test.sk @@ -0,0 +1,84 @@ +# origin +def O (0,0,0) + +def cube { + polygon[linecolor=blue,fillcolor=red]( 1,-1,-1)( 1, 1,-1)( 1, 1, 1)( 1,-1, 1) + polygon[linecolor=blue,fillcolor=green](-1,-1, 1)(-1, 1, 1)(-1, 1,-1)(-1,-1,-1) + + polygon[linecolor=blue,fillcolor=blue](-1,-1,-1)( 1,-1,-1)( 1,-1, 1)(-1,-1, 1) + polygon[linecolor=blue,fillcolor=yellow](-1, 1, 1)( 1, 1, 1)( 1, 1,-1)(-1, 1,-1) + + polygon[linecolor=blue,fillcolor=cyan](-1,-1, 1)( 1,-1, 1)( 1, 1, 1)(-1, 1, 1) + polygon[linecolor=blue,fillcolor=magenta](-1, 1,-1)( 1, 1,-1)( 1,-1,-1)(-1,-1,-1) +} + +def rawcubes { + {cube} + put { translate([2.5,0,0]) } {cube} + put { translate([0,0,-2.5]) } {cube} + put { translate([0,0,2.5]) } {cube} + put { translate([-2.5,0,0]) } {cube} +} + +def ofs -1.5 +#def ofs -2.1 + +def cubeviews { + put { rotate(0, (O), [0,1,0]) then translate([0,0*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes} + put { rotate(5, (O), [0,1,0]) then translate([0,1*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes} + put { rotate(10, (O), [0,1,0]) then translate([0,2*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes} + put { rotate(15, (O), [0,1,0]) then translate([0,3*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes} + put { rotate(20, (O), [0,1,0]) then translate([0,4*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes} + put { rotate(25, (O), [0,1,0]) then translate([0,5*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes} + put { rotate(30, (O), [0,1,0]) then translate([0,6*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes} + put { rotate(35, (O), [0,1,0]) then translate([0,7*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes} + put { rotate(40, (O), [0,1,0]) then translate([0,8*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes} + put { rotate(45, (O), [0,1,0]) then translate([0,9*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes} + put { rotate(50, (O), [0,1,0]) then translate([0,10*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes} + put { rotate(55, (O), [0,1,0]) then translate([0,11*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes} + put { rotate(60, (O), [0,1,0]) then translate([0,12*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes} + put { rotate(65, (O), [0,1,0]) then translate([0,13*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes} + put { rotate(70, (O), [0,1,0]) then translate([0,14*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes} + put { rotate(75, (O), [0,1,0]) then translate([0,15*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes} + put { rotate(80, (O), [0,1,0]) then translate([0,16*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes} + put { rotate(85, (O), [0,1,0]) then translate([0,17*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes} + put { rotate(90, (O), [0,1,0]) then translate([0,18*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes} +} + +def dstest { + def ts polygon (-1,-1,1)(1,-1,-1)(1,1,-1)(-1,1,1) + {ts} + def ofsv [.2,0,-.1] + put { translate( [ofsv] ) } {ts} + put { translate( 2*[ofsv] ) } {ts} + put { translate( 3*[ofsv] ) } {ts} + put { translate( 4*[ofsv] ) } {ts} + put { translate( 5*[ofsv] ) } {ts} +} + +#put { view((10,2,10), [-1,-2,-5]) } {dstest} +put { scale(1) } {cubeviews} + +def cross { + polygon[fillcolor=red] (-10,-1,-10)(10,-1,10)(10,1,10)(-10,1,-10) + polygon[fillcolor=blue] (-10,-1,10)(10,-1,-10)(10,1,-10)(-10,1,10) +} + +# put { view( (0,5,10) ) then scale(.1) } {cross} + +def edgeon { + polygon[fillcolor=red] (0,0,1)(10,0,1)(10,0,-1)(0,0,-1) + polygon[fillcolor=blue](9,-1,-1.1)(11,-1,-1.1)(11,1,-1.1)(9,1,-1.1) +} +# put { view( (4,.1,10) ) then scale(.3) } {edgeon} + +def linepolyintersect { + polygon[fillcolor=red]( 1,-1,-1)( 1, 1,-1)( 1, 1, 1)( 1,-1, 1) + line[linewidth=1pt](0,0)(2,1,.5) + line[linewidth=1pt](0,0)(2,1,0) + line[linewidth=1pt](0,0)(2,-1,0) + line[linewidth=1pt](0,0)(3,2.99,0) +} +# put { view( (1, 1, 10) ) then scale(3) } {linepolyintersect} + +global { set [linewidth=0pt] } |