summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile30
-rw-r--r--SConstruct8
-rwxr-xr-xbin/win32kprof.py309
-rw-r--r--configs/default10
-rw-r--r--configs/linux8
-rw-r--r--configs/linux-debug3
-rw-r--r--configs/linux-dri6
-rw-r--r--configs/linux-dri-debug2
-rw-r--r--configs/linux-dri-xcb4
-rw-r--r--configure.ac40
-rw-r--r--docs/envvars.html1
-rw-r--r--docs/install.html4
-rw-r--r--docs/libGL.txt197
-rw-r--r--docs/relnotes-7.7.html62
-rw-r--r--docs/relnotes.html1
-rw-r--r--docs/shading.html9
-rw-r--r--doxygen/gallium.doc7
-rw-r--r--progs/SConscript1
-rw-r--r--progs/demos/copypix.c22
-rw-r--r--progs/demos/cubemap.c21
-rw-r--r--progs/demos/fbo_firecube.c36
-rw-r--r--progs/demos/lodbias.c4
-rw-r--r--progs/demos/morph3d.c3
-rw-r--r--progs/demos/multiarb.c16
-rw-r--r--progs/demos/textures.c2
-rw-r--r--progs/egl/demo1.c24
-rw-r--r--progs/egl/demo2.c9
-rw-r--r--progs/egl/demo3.c28
-rw-r--r--progs/egl/eglgears.c12
-rw-r--r--progs/egl/eglinfo.c3
-rw-r--r--progs/egl/eglscreen.c2
-rw-r--r--progs/egl/egltri.c11
-rw-r--r--progs/egl/peglgears.c12
-rw-r--r--progs/egl/xeglgears.c399
-rw-r--r--progs/fp/add-sat.txt6
-rw-r--r--progs/fp/mov-alias.txt6
-rw-r--r--progs/fp/mul-alias.txt6
-rw-r--r--progs/glsl/multitex.c7
-rw-r--r--progs/glsl/shtest.c2
-rw-r--r--progs/glsl/texaaline.c6
-rw-r--r--progs/glsl/texdemo1.c7
-rw-r--r--progs/objviewer/GreatLakesBiplaneHP.mtl161
-rw-r--r--progs/objviewer/GreatLakesBiplaneHP.obj497539
-rw-r--r--progs/objviewer/Makefile83
-rw-r--r--progs/objviewer/README.txt23
-rw-r--r--progs/objviewer/alpine_down.rgbbin0 -> 2791795 bytes
-rw-r--r--progs/objviewer/alpine_east.rgbbin0 -> 2278190 bytes
-rw-r--r--progs/objviewer/alpine_north.rgbbin0 -> 2372962 bytes
-rw-r--r--progs/objviewer/alpine_south.rgbbin0 -> 2475116 bytes
-rw-r--r--progs/objviewer/alpine_up.rgbbin0 -> 1214881 bytes
-rw-r--r--progs/objviewer/alpine_west.rgbbin0 -> 2701430 bytes
-rw-r--r--progs/objviewer/bobcat.mtl72
-rw-r--r--progs/objviewer/bobcat.obj9251
-rw-r--r--progs/objviewer/buddha.obj149990
-rw-r--r--progs/objviewer/bunny.obj104501
-rw-r--r--progs/objviewer/glm.c1917
-rw-r--r--progs/objviewer/glm.h287
-rw-r--r--progs/objviewer/glmdraw.c455
-rw-r--r--progs/objviewer/objview.c515
-rw-r--r--progs/objviewer/skybox.c187
-rw-r--r--progs/objviewer/skybox.h18
-rw-r--r--progs/perf/.gitignore10
-rw-r--r--progs/perf/Makefile55
-rw-r--r--progs/perf/SConscript32
-rw-r--r--progs/perf/common.c137
-rw-r--r--progs/perf/common.h44
-rw-r--r--progs/perf/copytex.c214
-rw-r--r--progs/perf/drawoverhead.c137
-rw-r--r--progs/perf/fbobind.c153
-rw-r--r--progs/perf/fill.c248
-rw-r--r--progs/perf/genmipmap.c136
-rw-r--r--progs/perf/glmain.c268
-rw-r--r--progs/perf/glmain.h68
-rw-r--r--progs/perf/readpixels.c169
-rw-r--r--progs/perf/swapbuffers.c161
-rw-r--r--progs/perf/teximage.c331
-rw-r--r--progs/perf/vbo.c246
-rw-r--r--progs/perf/vertexrate.c276
-rw-r--r--progs/rbug/Makefile2
-rw-r--r--progs/slang/cltest.c2
-rw-r--r--progs/slang/vstest.c6
-rw-r--r--progs/tests/arbgpuprog.c4
-rw-r--r--progs/tests/getprocaddress.c2
-rw-r--r--progs/tests/getteximage.c20
-rw-r--r--progs/tests/mipmap_limits.c237
-rw-r--r--progs/tests/packedpixels.c79
-rw-r--r--progs/tests/sharedtex.c8
-rw-r--r--progs/tests/texcmp.c17
-rw-r--r--progs/tests/texcomp_image.h2
-rw-r--r--progs/tests/texcompsub.c8
-rw-r--r--progs/tests/zreaddraw.c84
-rw-r--r--progs/trivial/psb_context.c0
-rw-r--r--progs/util/shaderutil.c1
-rw-r--r--progs/xdemos/Makefile3
-rw-r--r--progs/xdemos/corender.c2
-rw-r--r--progs/xdemos/glxpbdemo.c1
-rw-r--r--progs/xdemos/pbinfo.c1
-rw-r--r--scons/crossmingw.py2
-rw-r--r--scons/dxsdk.py15
-rw-r--r--scons/gallium.py28
-rw-r--r--scons/generic.py11
-rw-r--r--scons/llvm.py69
-rw-r--r--scons/winddk.py45
-rw-r--r--src/egl/drivers/demo/demo.c2
-rw-r--r--src/egl/drivers/glx/egl_glx.c903
-rw-r--r--src/egl/drivers/xdri/egl_xdri.c97
-rw-r--r--src/egl/main/eglapi.c237
-rw-r--r--src/egl/main/eglapi.h8
-rw-r--r--src/egl/main/eglconfig.c939
-rw-r--r--src/egl/main/eglconfig.h157
-rw-r--r--src/egl/main/eglconfigutil.c77
-rw-r--r--src/egl/main/eglconfigutil.h13
-rw-r--r--src/egl/main/eglcontext.c40
-rw-r--r--src/egl/main/eglcontext.h3
-rw-r--r--src/egl/main/eglcurrent.c4
-rw-r--r--src/egl/main/eglcurrent.h23
-rw-r--r--src/egl/main/egldisplay.h1
-rw-r--r--src/egl/main/egldriver.c159
-rw-r--r--src/egl/main/eglglobals.c8
-rw-r--r--src/egl/main/eglglobals.h3
-rw-r--r--src/egl/main/egllog.c187
-rw-r--r--src/egl/main/egllog.h11
-rw-r--r--src/egl/main/eglmisc.c3
-rw-r--r--src/egl/main/eglmisc.h2
-rw-r--r--src/egl/main/eglsurface.c27
-rw-r--r--src/egl/main/eglsurface.h2
-rw-r--r--src/gallium/SConscript1
-rw-r--r--src/gallium/auxiliary/cso_cache/cso_context.h2
-rw-r--r--src/gallium/auxiliary/draw/draw_pt_post_vs.c2
-rw-r--r--src/gallium/auxiliary/draw/draw_vs_aos.c30
-rw-r--r--src/gallium/auxiliary/pipebuffer/pb_buffer.h2
-rw-r--r--src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c12
-rw-r--r--src/gallium/auxiliary/pipebuffer/pb_bufmgr.h2
-rw-r--r--src/gallium/auxiliary/pipebuffer/pb_bufmgr_debug.c2
-rw-r--r--src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c1
-rw-r--r--src/gallium/auxiliary/pipebuffer/pb_validate.c2
-rw-r--r--src/gallium/auxiliary/pipebuffer/pb_validate.h2
-rw-r--r--src/gallium/auxiliary/rbug/README4
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_build.c371
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_build.h84
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_dump.c30
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_dump_c.c178
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_exec.c251
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_exec.h13
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_info.c10
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h5
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_parse.c18
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_parse.h4
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_ppc.c26
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_sanity.c5
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_sanity.h2
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_scan.c6
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_scan.h1
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_sse2.c120
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_text.c31
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_ureg.c405
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_ureg.h233
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_util.c127
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_util.h24
-rw-r--r--src/gallium/auxiliary/util/Makefile1
-rw-r--r--src/gallium/auxiliary/util/SConscript2
-rw-r--r--src/gallium/auxiliary/util/u_blit.c174
-rw-r--r--src/gallium/auxiliary/util/u_clear.h16
-rw-r--r--src/gallium/auxiliary/util/u_cpu_detect.c802
-rw-r--r--src/gallium/auxiliary/util/u_cpu_detect.h84
-rw-r--r--src/gallium/auxiliary/util/u_debug.h30
-rw-r--r--src/gallium/auxiliary/util/u_debug_dump.c80
-rw-r--r--src/gallium/auxiliary/util/u_debug_dump.h12
-rw-r--r--src/gallium/auxiliary/util/u_debug_profile.c320
-rw-r--r--src/gallium/auxiliary/util/u_fifo.h94
-rw-r--r--src/gallium/auxiliary/util/u_format.csv10
-rw-r--r--src/gallium/auxiliary/util/u_hash_table.c95
-rw-r--r--src/gallium/auxiliary/util/u_hash_table.h35
-rw-r--r--src/gallium/auxiliary/util/u_keymap.c4
-rw-r--r--src/gallium/auxiliary/util/u_math.h42
-rw-r--r--src/gallium/auxiliary/util/u_mm.c7
-rw-r--r--src/gallium/auxiliary/util/u_network.c6
-rw-r--r--src/gallium/auxiliary/util/u_network.h2
-rw-r--r--src/gallium/auxiliary/util/u_simple_screen.c29
-rw-r--r--src/gallium/auxiliary/util/u_simple_shaders.c20
-rw-r--r--src/gallium/auxiliary/util/u_tile.c58
-rw-r--r--src/gallium/auxiliary/util/u_upload_mgr.c2
-rw-r--r--src/gallium/auxiliary/vl/Makefile13
-rw-r--r--src/gallium/auxiliary/vl/SConscript13
-rw-r--r--src/gallium/auxiliary/vl/vl_bitstream_parser.c167
-rw-r--r--src/gallium/auxiliary/vl/vl_bitstream_parser.h63
-rw-r--r--src/gallium/auxiliary/vl/vl_compositor.c536
-rw-r--r--src/gallium/auxiliary/vl/vl_compositor.h77
-rw-r--r--src/gallium/auxiliary/vl/vl_csc.c206
-rw-r--r--src/gallium/auxiliary/vl/vl_csc.h53
-rw-r--r--src/gallium/auxiliary/vl/vl_mpeg12_mc_renderer.c1660
-rw-r--r--src/gallium/auxiliary/vl/vl_mpeg12_mc_renderer.h121
-rw-r--r--src/gallium/auxiliary/vl/vl_shader_build.c242
-rw-r--r--src/gallium/auxiliary/vl/vl_shader_build.h88
-rw-r--r--src/gallium/drivers/cell/ppu/cell_gen_fp.c18
-rw-r--r--src/gallium/drivers/cell/ppu/cell_screen.c4
-rw-r--r--src/gallium/drivers/cell/ppu/cell_texture.c18
-rw-r--r--src/gallium/drivers/cell/spu/spu_exec.c43
-rw-r--r--src/gallium/drivers/cell/spu/spu_util.c96
-rw-r--r--src/gallium/drivers/i915/Makefile (renamed from src/gallium/drivers/i915simple/Makefile)2
-rw-r--r--src/gallium/drivers/i915/SConscript (renamed from src/gallium/drivers/i915simple/SConscript)6
-rw-r--r--src/gallium/drivers/i915/i915_batch.h (renamed from src/gallium/drivers/i915simple/i915_batch.h)0
-rw-r--r--src/gallium/drivers/i915/i915_blit.c (renamed from src/gallium/drivers/i915simple/i915_blit.c)0
-rw-r--r--src/gallium/drivers/i915/i915_blit.h (renamed from src/gallium/drivers/i915simple/i915_blit.h)0
-rw-r--r--src/gallium/drivers/i915/i915_buffer.c (renamed from src/gallium/drivers/i915simple/i915_buffer.c)0
-rw-r--r--src/gallium/drivers/i915/i915_buffer.h (renamed from src/gallium/drivers/i915simple/i915_buffer.h)0
-rw-r--r--src/gallium/drivers/i915/i915_clear.c (renamed from src/gallium/drivers/i915simple/i915_clear.c)0
-rw-r--r--src/gallium/drivers/i915/i915_context.c (renamed from src/gallium/drivers/i915simple/i915_context.c)17
-rw-r--r--src/gallium/drivers/i915/i915_context.h (renamed from src/gallium/drivers/i915simple/i915_context.h)0
-rw-r--r--src/gallium/drivers/i915/i915_debug.c (renamed from src/gallium/drivers/i915simple/i915_debug.c)3
-rw-r--r--src/gallium/drivers/i915/i915_debug.h (renamed from src/gallium/drivers/i915simple/i915_debug.h)0
-rw-r--r--src/gallium/drivers/i915/i915_debug_fp.c (renamed from src/gallium/drivers/i915simple/i915_debug_fp.c)0
-rw-r--r--src/gallium/drivers/i915/i915_flush.c (renamed from src/gallium/drivers/i915simple/i915_flush.c)0
-rw-r--r--src/gallium/drivers/i915/i915_fpc.h (renamed from src/gallium/drivers/i915simple/i915_fpc.h)0
-rw-r--r--src/gallium/drivers/i915/i915_fpc_emit.c (renamed from src/gallium/drivers/i915simple/i915_fpc_emit.c)0
-rw-r--r--src/gallium/drivers/i915/i915_fpc_translate.c (renamed from src/gallium/drivers/i915simple/i915_fpc_translate.c)35
-rw-r--r--src/gallium/drivers/i915/i915_prim_emit.c (renamed from src/gallium/drivers/i915simple/i915_prim_emit.c)0
-rw-r--r--src/gallium/drivers/i915/i915_prim_vbuf.c (renamed from src/gallium/drivers/i915simple/i915_prim_vbuf.c)201
-rw-r--r--src/gallium/drivers/i915/i915_reg.h (renamed from src/gallium/drivers/i915simple/i915_reg.h)0
-rw-r--r--src/gallium/drivers/i915/i915_screen.c (renamed from src/gallium/drivers/i915simple/i915_screen.c)5
-rw-r--r--src/gallium/drivers/i915/i915_screen.h (renamed from src/gallium/drivers/i915simple/i915_screen.h)0
-rw-r--r--src/gallium/drivers/i915/i915_state.c (renamed from src/gallium/drivers/i915simple/i915_state.c)16
-rw-r--r--src/gallium/drivers/i915/i915_state.h (renamed from src/gallium/drivers/i915simple/i915_state.h)0
-rw-r--r--src/gallium/drivers/i915/i915_state_derived.c (renamed from src/gallium/drivers/i915simple/i915_state_derived.c)0
-rw-r--r--src/gallium/drivers/i915/i915_state_dynamic.c (renamed from src/gallium/drivers/i915simple/i915_state_dynamic.c)0
-rw-r--r--src/gallium/drivers/i915/i915_state_emit.c (renamed from src/gallium/drivers/i915simple/i915_state_emit.c)0
-rw-r--r--src/gallium/drivers/i915/i915_state_immediate.c (renamed from src/gallium/drivers/i915simple/i915_state_immediate.c)0
-rw-r--r--src/gallium/drivers/i915/i915_state_inlines.h (renamed from src/gallium/drivers/i915simple/i915_state_inlines.h)0
-rw-r--r--src/gallium/drivers/i915/i915_state_sampler.c (renamed from src/gallium/drivers/i915simple/i915_state_sampler.c)0
-rw-r--r--src/gallium/drivers/i915/i915_surface.c (renamed from src/gallium/drivers/i915simple/i915_surface.c)0
-rw-r--r--src/gallium/drivers/i915/i915_texture.c (renamed from src/gallium/drivers/i915simple/i915_texture.c)51
-rw-r--r--src/gallium/drivers/i915/i915_texture.h (renamed from src/gallium/drivers/i915simple/i915_texture.h)0
-rw-r--r--src/gallium/drivers/i915/intel_batchbuffer.h (renamed from src/gallium/drivers/i915simple/intel_batchbuffer.h)0
-rw-r--r--src/gallium/drivers/i915/intel_winsys.h (renamed from src/gallium/drivers/i915simple/intel_winsys.h)17
-rw-r--r--src/gallium/drivers/i965simple/Makefile52
-rw-r--r--src/gallium/drivers/i965simple/SConscript54
-rw-r--r--src/gallium/drivers/i965simple/brw_batch.h59
-rw-r--r--src/gallium/drivers/i965simple/brw_blit.c218
-rw-r--r--src/gallium/drivers/i965simple/brw_blit.h33
-rw-r--r--src/gallium/drivers/i965simple/brw_cc.c269
-rw-r--r--src/gallium/drivers/i965simple/brw_clip.c206
-rw-r--r--src/gallium/drivers/i965simple/brw_clip.h170
-rw-r--r--src/gallium/drivers/i965simple/brw_clip_line.c245
-rw-r--r--src/gallium/drivers/i965simple/brw_clip_point.c47
-rw-r--r--src/gallium/drivers/i965simple/brw_clip_state.c93
-rw-r--r--src/gallium/drivers/i965simple/brw_clip_tri.c566
-rw-r--r--src/gallium/drivers/i965simple/brw_clip_unfilled.c477
-rw-r--r--src/gallium/drivers/i965simple/brw_clip_util.c351
-rw-r--r--src/gallium/drivers/i965simple/brw_context.c139
-rw-r--r--src/gallium/drivers/i965simple/brw_context.h684
-rw-r--r--src/gallium/drivers/i965simple/brw_curbe.c369
-rw-r--r--src/gallium/drivers/i965simple/brw_defines.h870
-rw-r--r--src/gallium/drivers/i965simple/brw_draw.c226
-rw-r--r--src/gallium/drivers/i965simple/brw_draw.h55
-rw-r--r--src/gallium/drivers/i965simple/brw_draw_upload.c300
-rw-r--r--src/gallium/drivers/i965simple/brw_eu.c130
-rw-r--r--src/gallium/drivers/i965simple/brw_eu.h888
-rw-r--r--src/gallium/drivers/i965simple/brw_eu_debug.c90
-rw-r--r--src/gallium/drivers/i965simple/brw_eu_emit.c1080
-rw-r--r--src/gallium/drivers/i965simple/brw_eu_util.c126
-rw-r--r--src/gallium/drivers/i965simple/brw_flush.c73
-rw-r--r--src/gallium/drivers/i965simple/brw_gs.c196
-rw-r--r--src/gallium/drivers/i965simple/brw_gs.h75
-rw-r--r--src/gallium/drivers/i965simple/brw_gs_emit.c148
-rw-r--r--src/gallium/drivers/i965simple/brw_gs_state.c90
-rw-r--r--src/gallium/drivers/i965simple/brw_misc_state.c488
-rw-r--r--src/gallium/drivers/i965simple/brw_reg.h76
-rw-r--r--src/gallium/drivers/i965simple/brw_screen.c246
-rw-r--r--src/gallium/drivers/i965simple/brw_sf.c351
-rw-r--r--src/gallium/drivers/i965simple/brw_sf.h122
-rw-r--r--src/gallium/drivers/i965simple/brw_sf_emit.c382
-rw-r--r--src/gallium/drivers/i965simple/brw_sf_state.c181
-rw-r--r--src/gallium/drivers/i965simple/brw_shader_info.c48
-rw-r--r--src/gallium/drivers/i965simple/brw_state.c469
-rw-r--r--src/gallium/drivers/i965simple/brw_state.h151
-rw-r--r--src/gallium/drivers/i965simple/brw_state_batch.c113
-rw-r--r--src/gallium/drivers/i965simple/brw_state_cache.c443
-rw-r--r--src/gallium/drivers/i965simple/brw_state_pool.c138
-rw-r--r--src/gallium/drivers/i965simple/brw_state_upload.c202
-rw-r--r--src/gallium/drivers/i965simple/brw_structs.h1348
-rw-r--r--src/gallium/drivers/i965simple/brw_surface.c126
-rw-r--r--src/gallium/drivers/i965simple/brw_tex_layout.c380
-rw-r--r--src/gallium/drivers/i965simple/brw_tex_layout.h44
-rw-r--r--src/gallium/drivers/i965simple/brw_urb.c186
-rw-r--r--src/gallium/drivers/i965simple/brw_util.c104
-rw-r--r--src/gallium/drivers/i965simple/brw_util.h43
-rw-r--r--src/gallium/drivers/i965simple/brw_vs.c120
-rw-r--r--src/gallium/drivers/i965simple/brw_vs.h82
-rw-r--r--src/gallium/drivers/i965simple/brw_vs_emit.c1330
-rw-r--r--src/gallium/drivers/i965simple/brw_vs_state.c103
-rw-r--r--src/gallium/drivers/i965simple/brw_winsys.h209
-rw-r--r--src/gallium/drivers/i965simple/brw_wm.c209
-rw-r--r--src/gallium/drivers/i965simple/brw_wm.h142
-rw-r--r--src/gallium/drivers/i965simple/brw_wm_decl.c392
-rw-r--r--src/gallium/drivers/i965simple/brw_wm_glsl.c1076
-rw-r--r--src/gallium/drivers/i965simple/brw_wm_iz.c214
-rw-r--r--src/gallium/drivers/i965simple/brw_wm_sampler_state.c275
-rw-r--r--src/gallium/drivers/i965simple/brw_wm_state.c195
-rw-r--r--src/gallium/drivers/i965simple/brw_wm_surface_state.c305
-rw-r--r--src/gallium/drivers/llvmpipe/.gitignore1
-rw-r--r--src/gallium/drivers/llvmpipe/Makefile15
-rw-r--r--src/gallium/drivers/llvmpipe/README23
-rw-r--r--src/gallium/drivers/llvmpipe/SConscript21
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_alpha.c2
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_alpha.h4
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_arit.c652
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_arit.h62
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_blend.h6
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c2
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_blend_soa.c2
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_const.c30
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_const.h32
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_conv.c265
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_conv.h14
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_debug.c17
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_debug.h4
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_depth.c19
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_depth.h6
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_flow.c410
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_flow.h42
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_format.h84
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_format_aos.c213
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_format_query.c72
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_format_soa.c149
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_interp.c32
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_interp.h2
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_logic.c25
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_logic.h4
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_misc.cpp61
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_misc.h56
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_pack.c418
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_pack.h95
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_sample.c190
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_sample.h155
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_sample_soa.c595
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_struct.c21
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_struct.h12
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_swizzle.c21
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_swizzle.h6
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_tgsi.h39
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_tgsi_soa.c483
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_type.c47
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_type.h221
-rw-r--r--src/gallium/drivers/llvmpipe/lp_clear.c1
-rw-r--r--src/gallium/drivers/llvmpipe/lp_context.c37
-rw-r--r--src/gallium/drivers/llvmpipe/lp_context.h8
-rw-r--r--src/gallium/drivers/llvmpipe/lp_draw_arrays.c50
-rw-r--r--src/gallium/drivers/llvmpipe/lp_flush.c8
-rw-r--r--src/gallium/drivers/llvmpipe/lp_jit.c61
-rw-r--r--src/gallium/drivers/llvmpipe/lp_jit.h30
-rw-r--r--src/gallium/drivers/llvmpipe/lp_prim_setup.c190
-rw-r--r--src/gallium/drivers/llvmpipe/lp_prim_setup.h85
-rw-r--r--src/gallium/drivers/llvmpipe/lp_prim_vbuf.c107
-rw-r--r--src/gallium/drivers/llvmpipe/lp_prim_vbuf.h4
-rw-r--r--src/gallium/drivers/llvmpipe/lp_screen.c9
-rw-r--r--src/gallium/drivers/llvmpipe/lp_setup.c77
-rw-r--r--src/gallium/drivers/llvmpipe/lp_state.h7
-rw-r--r--src/gallium/drivers/llvmpipe/lp_state_blend.c2
-rw-r--r--src/gallium/drivers/llvmpipe/lp_state_derived.c80
-rw-r--r--src/gallium/drivers/llvmpipe/lp_state_fs.c298
-rw-r--r--src/gallium/drivers/llvmpipe/lp_state_sampler.c10
-rw-r--r--src/gallium/drivers/llvmpipe/lp_state_surface.c5
-rw-r--r--src/gallium/drivers/llvmpipe/lp_test.h40
-rw-r--r--src/gallium/drivers/llvmpipe/lp_test_blend.c59
-rw-r--r--src/gallium/drivers/llvmpipe/lp_test_conv.c85
-rw-r--r--src/gallium/drivers/llvmpipe/lp_test_format.c94
-rw-r--r--src/gallium/drivers/llvmpipe/lp_test_main.c48
-rw-r--r--src/gallium/drivers/llvmpipe/lp_tex_cache.c2
-rw-r--r--src/gallium/drivers/llvmpipe/lp_tex_sample.h23
-rw-r--r--src/gallium/drivers/llvmpipe/lp_tex_sample_c.c (renamed from src/gallium/drivers/llvmpipe/lp_tex_sample.c)133
-rw-r--r--src/gallium/drivers/llvmpipe/lp_tex_sample_llvm.c196
-rw-r--r--src/gallium/drivers/llvmpipe/lp_texture.c28
-rw-r--r--src/gallium/drivers/llvmpipe/lp_tile_cache.c124
-rw-r--r--src/gallium/drivers/llvmpipe/lp_tile_cache.h37
-rw-r--r--src/gallium/drivers/llvmpipe/lp_tile_soa.c931
-rw-r--r--src/gallium/drivers/llvmpipe/lp_tile_soa.h16
-rw-r--r--src/gallium/drivers/llvmpipe/lp_tile_soa.py278
-rw-r--r--src/gallium/drivers/nouveau/Makefile3
-rw-r--r--src/gallium/drivers/nouveau/nouveau_context.c41
-rw-r--r--src/gallium/drivers/nouveau/nouveau_context.h11
-rw-r--r--src/gallium/drivers/nv04/nv04_context.c28
-rw-r--r--src/gallium/drivers/nv04/nv04_context.h1
-rw-r--r--src/gallium/drivers/nv04/nv04_screen.c2
-rw-r--r--src/gallium/drivers/nv04/nv04_surface_2d.c159
-rw-r--r--src/gallium/drivers/nv04/nv04_transfer.c26
-rw-r--r--src/gallium/drivers/nv10/nv10_context.c29
-rw-r--r--src/gallium/drivers/nv10/nv10_context.h1
-rw-r--r--src/gallium/drivers/nv10/nv10_prim_vbuf.c4
-rw-r--r--src/gallium/drivers/nv10/nv10_screen.c2
-rw-r--r--src/gallium/drivers/nv10/nv10_state_emit.c3
-rw-r--r--src/gallium/drivers/nv10/nv10_transfer.c26
-rw-r--r--src/gallium/drivers/nv20/nv20_context.c32
-rw-r--r--src/gallium/drivers/nv20/nv20_context.h1
-rw-r--r--src/gallium/drivers/nv20/nv20_screen.c2
-rw-r--r--src/gallium/drivers/nv20/nv20_state_emit.c3
-rw-r--r--src/gallium/drivers/nv20/nv20_transfer.c26
-rw-r--r--src/gallium/drivers/nv30/nv30_context.c30
-rw-r--r--src/gallium/drivers/nv30/nv30_context.h1
-rw-r--r--src/gallium/drivers/nv30/nv30_fragprog.c56
-rw-r--r--src/gallium/drivers/nv30/nv30_fragtex.c13
-rw-r--r--src/gallium/drivers/nv30/nv30_miptree.c8
-rw-r--r--src/gallium/drivers/nv30/nv30_screen.c24
-rw-r--r--src/gallium/drivers/nv30/nv30_state_fb.c62
-rw-r--r--src/gallium/drivers/nv30/nv30_transfer.c26
-rw-r--r--src/gallium/drivers/nv40/nv40_context.c30
-rw-r--r--src/gallium/drivers/nv40/nv40_context.h1
-rw-r--r--src/gallium/drivers/nv40/nv40_fragprog.c47
-rw-r--r--src/gallium/drivers/nv40/nv40_fragtex.c1
-rw-r--r--src/gallium/drivers/nv40/nv40_miptree.c3
-rw-r--r--src/gallium/drivers/nv40/nv40_screen.c2
-rw-r--r--src/gallium/drivers/nv40/nv40_state_fb.c3
-rw-r--r--src/gallium/drivers/nv40/nv40_transfer.c26
-rw-r--r--src/gallium/drivers/nv40/nv40_vertprog.c41
-rw-r--r--src/gallium/drivers/nv50/nv50_context.c40
-rw-r--r--src/gallium/drivers/nv50/nv50_context.h35
-rw-r--r--src/gallium/drivers/nv50/nv50_miptree.c79
-rw-r--r--src/gallium/drivers/nv50/nv50_program.c2299
-rw-r--r--src/gallium/drivers/nv50/nv50_program.h35
-rw-r--r--src/gallium/drivers/nv50/nv50_screen.c78
-rw-r--r--src/gallium/drivers/nv50/nv50_state.c32
-rw-r--r--src/gallium/drivers/nv50/nv50_state_validate.c136
-rw-r--r--src/gallium/drivers/nv50/nv50_surface.c6
-rw-r--r--src/gallium/drivers/nv50/nv50_tex.c220
-rw-r--r--src/gallium/drivers/nv50/nv50_texture.h15
-rw-r--r--src/gallium/drivers/nv50/nv50_transfer.c179
-rw-r--r--src/gallium/drivers/nv50/nv50_vbo.c413
-rw-r--r--src/gallium/drivers/r300/Makefile9
-rw-r--r--src/gallium/drivers/r300/SConscript10
-rw-r--r--src/gallium/drivers/r300/r300_chipset.c3
-rw-r--r--src/gallium/drivers/r300/r300_chipset.h6
-rw-r--r--src/gallium/drivers/r300/r300_clear.c3
-rw-r--r--src/gallium/drivers/r300/r300_clear.h4
-rw-r--r--src/gallium/drivers/r300/r300_context.c153
-rw-r--r--src/gallium/drivers/r300/r300_context.h140
-rw-r--r--src/gallium/drivers/r300/r300_cs.h53
-rw-r--r--src/gallium/drivers/r300/r300_debug.c91
-rw-r--r--src/gallium/drivers/r300/r300_emit.c453
-rw-r--r--src/gallium/drivers/r300/r300_emit.h31
-rw-r--r--src/gallium/drivers/r300/r300_flush.c27
-rw-r--r--src/gallium/drivers/r300/r300_flush.h7
-rw-r--r--src/gallium/drivers/r300/r300_fs.c14
-rw-r--r--src/gallium/drivers/r300/r300_fs.h14
-rw-r--r--src/gallium/drivers/r300/r300_query.c73
-rw-r--r--src/gallium/drivers/r300/r300_query.h4
-rw-r--r--src/gallium/drivers/r300/r300_reg.h51
-rw-r--r--src/gallium/drivers/r300/r300_render.c425
-rw-r--r--src/gallium/drivers/r300/r300_render.h59
-rw-r--r--src/gallium/drivers/r300/r300_screen.c160
-rw-r--r--src/gallium/drivers/r300/r300_screen.h5
-rw-r--r--src/gallium/drivers/r300/r300_shader_inlines.h47
-rw-r--r--src/gallium/drivers/r300/r300_state.c251
-rw-r--r--src/gallium/drivers/r300/r300_state_derived.c318
-rw-r--r--src/gallium/drivers/r300/r300_state_derived.h8
-rw-r--r--src/gallium/drivers/r300/r300_state_inlines.h192
-rw-r--r--src/gallium/drivers/r300/r300_state_invariant.c13
-rw-r--r--src/gallium/drivers/r300/r300_state_invariant.h6
-rw-r--r--src/gallium/drivers/r300/r300_surface.c372
-rw-r--r--src/gallium/drivers/r300/r300_surface.h124
-rw-r--r--src/gallium/drivers/r300/r300_texture.c204
-rw-r--r--src/gallium/drivers/r300/r300_texture.h43
-rw-r--r--src/gallium/drivers/r300/r300_tgsi_to_rc.c306
-rw-r--r--src/gallium/drivers/r300/r300_vbo.c132
-rw-r--r--src/gallium/drivers/r300/r300_vbo.h (renamed from src/gallium/drivers/r300/r5xx_fs.h)22
-rw-r--r--src/gallium/drivers/r300/r300_vs.c98
-rw-r--r--src/gallium/drivers/r300/r300_winsys.h9
-rw-r--r--src/gallium/drivers/r300/r3xx_fs.c74
-rw-r--r--src/gallium/drivers/r300/r3xx_fs.h32
-rw-r--r--src/gallium/drivers/r300/r5xx_fs.c125
-rw-r--r--src/gallium/drivers/softpipe/Makefile17
-rw-r--r--src/gallium/drivers/softpipe/SConscript13
-rw-r--r--src/gallium/drivers/softpipe/sp_clear.c2
-rw-r--r--src/gallium/drivers/softpipe/sp_clear.h1
-rw-r--r--src/gallium/drivers/softpipe/sp_context.c122
-rw-r--r--src/gallium/drivers/softpipe/sp_context.h69
-rw-r--r--src/gallium/drivers/softpipe/sp_flush.c25
-rw-r--r--src/gallium/drivers/softpipe/sp_fs_exec.c85
-rw-r--r--src/gallium/drivers/softpipe/sp_fs_llvm.c205
-rw-r--r--src/gallium/drivers/softpipe/sp_fs_sse.c77
-rw-r--r--src/gallium/drivers/softpipe/sp_prim_setup.c190
-rw-r--r--src/gallium/drivers/softpipe/sp_prim_setup.h85
-rw-r--r--src/gallium/drivers/softpipe/sp_prim_vbuf.c271
-rw-r--r--src/gallium/drivers/softpipe/sp_prim_vbuf.h4
-rw-r--r--src/gallium/drivers/softpipe/sp_quad.h6
-rw-r--r--src/gallium/drivers/softpipe/sp_quad_alpha_test.c108
-rw-r--r--src/gallium/drivers/softpipe/sp_quad_blend.c1409
-rw-r--r--src/gallium/drivers/softpipe/sp_quad_bufloop.c74
-rw-r--r--src/gallium/drivers/softpipe/sp_quad_colormask.c116
-rw-r--r--src/gallium/drivers/softpipe/sp_quad_coverage.c94
-rw-r--r--src/gallium/drivers/softpipe/sp_quad_depth_test.c903
-rw-r--r--src/gallium/drivers/softpipe/sp_quad_earlyz.c88
-rw-r--r--src/gallium/drivers/softpipe/sp_quad_fs.c105
-rw-r--r--src/gallium/drivers/softpipe/sp_quad_output.c103
-rw-r--r--src/gallium/drivers/softpipe/sp_quad_pipe.c89
-rw-r--r--src/gallium/drivers/softpipe/sp_quad_pipe.h4
-rw-r--r--src/gallium/drivers/softpipe/sp_quad_stencil.c352
-rw-r--r--src/gallium/drivers/softpipe/sp_quad_stipple.c22
-rw-r--r--src/gallium/drivers/softpipe/sp_screen.c8
-rw-r--r--src/gallium/drivers/softpipe/sp_setup.c541
-rw-r--r--src/gallium/drivers/softpipe/sp_setup.h12
-rw-r--r--src/gallium/drivers/softpipe/sp_state.h1
-rw-r--r--src/gallium/drivers/softpipe/sp_state_blend.c4
-rw-r--r--src/gallium/drivers/softpipe/sp_state_derived.c133
-rw-r--r--src/gallium/drivers/softpipe/sp_state_fs.c18
-rw-r--r--src/gallium/drivers/softpipe/sp_state_sampler.c127
-rw-r--r--src/gallium/drivers/softpipe/sp_state_surface.c54
-rw-r--r--src/gallium/drivers/softpipe/sp_tex_sample.c2506
-rw-r--r--src/gallium/drivers/softpipe/sp_tex_sample.h123
-rw-r--r--src/gallium/drivers/softpipe/sp_tex_tile_cache.c273
-rw-r--r--src/gallium/drivers/softpipe/sp_tex_tile_cache.h155
-rw-r--r--src/gallium/drivers/softpipe/sp_texture.c149
-rw-r--r--src/gallium/drivers/softpipe/sp_texture.h23
-rw-r--r--src/gallium/drivers/softpipe/sp_tile_cache.c276
-rw-r--r--src/gallium/drivers/softpipe/sp_tile_cache.h88
-rw-r--r--src/gallium/drivers/softpipe/sp_video_context.c304
-rw-r--r--src/gallium/drivers/softpipe/sp_video_context.h (renamed from src/gallium/state_trackers/wgl/shared/stw_winsys.h)62
-rw-r--r--src/gallium/drivers/svga/Makefile60
-rw-r--r--src/gallium/drivers/svga/SConscript72
-rw-r--r--src/gallium/drivers/svga/include/README3
-rw-r--r--src/gallium/drivers/svga/include/svga3d_caps.h139
-rw-r--r--src/gallium/drivers/svga/include/svga3d_reg.h1793
-rw-r--r--src/gallium/drivers/svga/include/svga3d_shaderdefs.h519
-rw-r--r--src/gallium/drivers/svga/include/svga_escape.h89
-rw-r--r--src/gallium/drivers/svga/include/svga_overlay.h201
-rw-r--r--src/gallium/drivers/svga/include/svga_reg.h1346
-rw-r--r--src/gallium/drivers/svga/include/svga_types.h46
-rw-r--r--src/gallium/drivers/svga/svga_cmd.c1427
-rw-r--r--src/gallium/drivers/svga/svga_cmd.h235
-rw-r--r--src/gallium/drivers/svga/svga_context.c271
-rw-r--r--src/gallium/drivers/svga/svga_context.h448
-rw-r--r--src/gallium/drivers/svga/svga_debug.h75
-rw-r--r--src/gallium/drivers/svga/svga_draw.c377
-rw-r--r--src/gallium/drivers/svga/svga_draw.h83
-rw-r--r--src/gallium/drivers/svga/svga_draw_arrays.c297
-rw-r--r--src/gallium/drivers/svga/svga_draw_elements.c255
-rw-r--r--src/gallium/drivers/svga/svga_draw_private.h158
-rw-r--r--src/gallium/drivers/svga/svga_hw_reg.h42
-rw-r--r--src/gallium/drivers/svga/svga_pipe_blend.c246
-rw-r--r--src/gallium/drivers/svga/svga_pipe_blit.c92
-rw-r--r--src/gallium/drivers/svga/svga_pipe_clear.c125
-rw-r--r--src/gallium/drivers/svga/svga_pipe_constants.c74
-rw-r--r--src/gallium/drivers/svga/svga_pipe_depthstencil.c153
-rw-r--r--src/gallium/drivers/svga/svga_pipe_draw.c261
-rw-r--r--src/gallium/drivers/svga/svga_pipe_flush.c71
-rw-r--r--src/gallium/drivers/svga/svga_pipe_fs.c124
-rw-r--r--src/gallium/drivers/svga/svga_pipe_misc.c187
-rw-r--r--src/gallium/drivers/svga/svga_pipe_query.c267
-rw-r--r--src/gallium/drivers/svga/svga_pipe_rasterizer.c250
-rw-r--r--src/gallium/drivers/svga/svga_pipe_sampler.c243
-rw-r--r--src/gallium/drivers/svga/svga_pipe_vertex.c115
-rw-r--r--src/gallium/drivers/svga/svga_pipe_vs.c189
-rw-r--r--src/gallium/drivers/svga/svga_screen.c440
-rw-r--r--src/gallium/drivers/svga/svga_screen.h95
-rw-r--r--src/gallium/drivers/svga/svga_screen_buffer.c824
-rw-r--r--src/gallium/drivers/svga/svga_screen_buffer.h190
-rw-r--r--src/gallium/drivers/svga/svga_screen_cache.c338
-rw-r--r--src/gallium/drivers/svga/svga_screen_cache.h144
-rw-r--r--src/gallium/drivers/svga/svga_screen_texture.c1088
-rw-r--r--src/gallium/drivers/svga/svga_screen_texture.h187
-rw-r--r--src/gallium/drivers/svga/svga_state.c278
-rw-r--r--src/gallium/drivers/svga/svga_state.h95
-rw-r--r--src/gallium/drivers/svga/svga_state_constants.c239
-rw-r--r--src/gallium/drivers/svga/svga_state_framebuffer.c458
-rw-r--r--src/gallium/drivers/svga/svga_state_fs.c282
-rw-r--r--src/gallium/drivers/svga/svga_state_need_swtnl.c200
-rw-r--r--src/gallium/drivers/svga/svga_state_rss.c268
-rw-r--r--src/gallium/drivers/svga/svga_state_tss.c279
-rw-r--r--src/gallium/drivers/svga/svga_state_vdecl.c182
-rw-r--r--src/gallium/drivers/svga/svga_state_vs.c239
-rw-r--r--src/gallium/drivers/svga/svga_swtnl.h52
-rw-r--r--src/gallium/drivers/svga/svga_swtnl_backend.c349
-rw-r--r--src/gallium/drivers/svga/svga_swtnl_draw.c170
-rw-r--r--src/gallium/drivers/svga/svga_swtnl_private.h93
-rw-r--r--src/gallium/drivers/svga/svga_swtnl_state.c242
-rw-r--r--src/gallium/drivers/svga/svga_tgsi.c280
-rw-r--r--src/gallium/drivers/svga/svga_tgsi.h139
-rw-r--r--src/gallium/drivers/svga/svga_tgsi_decl_sm20.c280
-rw-r--r--src/gallium/drivers/svga/svga_tgsi_decl_sm30.c385
-rw-r--r--src/gallium/drivers/svga/svga_tgsi_emit.h345
-rw-r--r--src/gallium/drivers/svga/svga_tgsi_insn.c2716
-rw-r--r--src/gallium/drivers/svga/svga_winsys.h299
-rw-r--r--src/gallium/drivers/svga/svgadump/svga_dump.c1736
-rw-r--r--src/gallium/drivers/svga/svgadump/svga_dump.h34
-rwxr-xr-xsrc/gallium/drivers/svga/svgadump/svga_dump.py329
-rw-r--r--src/gallium/drivers/svga/svgadump/svga_shader.h220
-rw-r--r--src/gallium/drivers/svga/svgadump/svga_shader_dump.c654
-rw-r--r--src/gallium/drivers/svga/svgadump/svga_shader_dump.h42
-rw-r--r--src/gallium/drivers/svga/svgadump/svga_shader_op.c168
-rw-r--r--src/gallium/drivers/svga/svgadump/svga_shader_op.h46
-rw-r--r--src/gallium/drivers/trace/tr_context.c10
-rw-r--r--src/gallium/drivers/trace/tr_drm.c4
-rw-r--r--src/gallium/drivers/trace/tr_rbug.c2
-rw-r--r--src/gallium/drivers/trace/tr_screen.c5
-rw-r--r--src/gallium/include/pipe/p_compiler.h6
-rw-r--r--src/gallium/include/pipe/p_config.h18
-rw-r--r--src/gallium/include/pipe/p_context.h3
-rw-r--r--src/gallium/include/pipe/p_defines.h118
-rw-r--r--src/gallium/include/pipe/p_format.h18
-rw-r--r--src/gallium/include/pipe/p_inlines.h44
-rw-r--r--src/gallium/include/pipe/p_screen.h16
-rw-r--r--src/gallium/include/pipe/p_shader_tokens.h161
-rw-r--r--src/gallium/include/pipe/p_state.h25
-rw-r--r--src/gallium/include/pipe/p_video_context.h121
-rw-r--r--src/gallium/include/pipe/p_video_state.h184
-rw-r--r--src/gallium/state_trackers/dri/dri_drawable.c32
-rw-r--r--src/gallium/state_trackers/dri/dri_extensions.c21
-rw-r--r--src/gallium/state_trackers/dri/dri_screen.c5
-rw-r--r--src/gallium/state_trackers/egl/egl_context.c74
-rw-r--r--src/gallium/state_trackers/egl/egl_surface.c136
-rw-r--r--src/gallium/state_trackers/egl/egl_tracker.c8
-rw-r--r--src/gallium/state_trackers/egl/egl_tracker.h2
-rw-r--r--src/gallium/state_trackers/g3dvl/Makefile21
-rw-r--r--src/gallium/state_trackers/g3dvl/vl_basic_csc.c714
-rw-r--r--src/gallium/state_trackers/g3dvl/vl_basic_csc.h13
-rw-r--r--src/gallium/state_trackers/g3dvl/vl_context.c205
-rw-r--r--src/gallium/state_trackers/g3dvl/vl_context.h73
-rw-r--r--src/gallium/state_trackers/g3dvl/vl_csc.h53
-rw-r--r--src/gallium/state_trackers/g3dvl/vl_defs.h11
-rw-r--r--src/gallium/state_trackers/g3dvl/vl_display.c48
-rw-r--r--src/gallium/state_trackers/g3dvl/vl_display.h29
-rw-r--r--src/gallium/state_trackers/g3dvl/vl_r16snorm_mc_buf.c1155
-rw-r--r--src/gallium/state_trackers/g3dvl/vl_r16snorm_mc_buf.h18
-rw-r--r--src/gallium/state_trackers/g3dvl/vl_r16snorm_mc_buf_shaders.inc1185
-rw-r--r--src/gallium/state_trackers/g3dvl/vl_render.h38
-rw-r--r--src/gallium/state_trackers/g3dvl/vl_screen.c115
-rw-r--r--src/gallium/state_trackers/g3dvl/vl_screen.h63
-rw-r--r--src/gallium/state_trackers/g3dvl/vl_shader_build.c215
-rw-r--r--src/gallium/state_trackers/g3dvl/vl_shader_build.h61
-rw-r--r--src/gallium/state_trackers/g3dvl/vl_surface.c242
-rw-r--r--src/gallium/state_trackers/g3dvl/vl_surface.h86
-rw-r--r--src/gallium/state_trackers/g3dvl/vl_types.h115
-rw-r--r--src/gallium/state_trackers/g3dvl/vl_util.c16
-rw-r--r--src/gallium/state_trackers/g3dvl/vl_util.h6
-rwxr-xr-xsrc/gallium/state_trackers/python/retrace/interpreter.py4
-rw-r--r--src/gallium/state_trackers/python/st_softpipe_winsys.c1
-rw-r--r--src/gallium/state_trackers/vega/arc.c6
-rw-r--r--src/gallium/state_trackers/vega/bezier.c7
-rw-r--r--src/gallium/state_trackers/vega/renderer.c16
-rw-r--r--src/gallium/state_trackers/vega/st_inlines.h3
-rw-r--r--src/gallium/state_trackers/vega/vg_context.c4
-rw-r--r--src/gallium/state_trackers/vega/vg_tracker.c24
-rw-r--r--src/gallium/state_trackers/wgl/SConscript25
-rw-r--r--src/gallium/state_trackers/wgl/opengl32.def1
-rw-r--r--src/gallium/state_trackers/wgl/opengl32.mingw.def1
-rw-r--r--src/gallium/state_trackers/wgl/shared/stw_context.c382
-rw-r--r--src/gallium/state_trackers/wgl/shared/stw_public.h73
-rw-r--r--src/gallium/state_trackers/wgl/stw_context.c (renamed from src/gallium/state_trackers/wgl/icd/stw_icd.c)478
-rw-r--r--src/gallium/state_trackers/wgl/stw_context.h (renamed from src/gallium/state_trackers/wgl/shared/stw_context.h)8
-rw-r--r--src/gallium/state_trackers/wgl/stw_device.c (renamed from src/gallium/state_trackers/wgl/shared/stw_device.c)77
-rw-r--r--src/gallium/state_trackers/wgl/stw_device.h (renamed from src/gallium/state_trackers/wgl/shared/stw_device.h)9
-rw-r--r--src/gallium/state_trackers/wgl/stw_ext_extensionsstring.c (renamed from src/gallium/state_trackers/wgl/shared/stw_extensionsstring.c)0
-rw-r--r--src/gallium/state_trackers/wgl/stw_ext_gallium.c (renamed from src/gallium/state_trackers/wgl/shared/stw_extgallium.c)2
-rw-r--r--src/gallium/state_trackers/wgl/stw_ext_gallium.h (renamed from src/gallium/state_trackers/wgl/shared/stw_extgallium.h)0
-rw-r--r--src/gallium/state_trackers/wgl/stw_ext_pixelformat.c (renamed from src/gallium/state_trackers/wgl/shared/stw_arbpixelformat.c)1
-rw-r--r--src/gallium/state_trackers/wgl/stw_ext_swapinterval.c (renamed from src/gallium/state_trackers/wgl/shared/stw_extswapinterval.c)0
-rw-r--r--src/gallium/state_trackers/wgl/stw_framebuffer.c (renamed from src/gallium/state_trackers/wgl/shared/stw_framebuffer.c)189
-rw-r--r--src/gallium/state_trackers/wgl/stw_framebuffer.h (renamed from src/gallium/state_trackers/wgl/shared/stw_framebuffer.h)17
-rw-r--r--src/gallium/state_trackers/wgl/stw_getprocaddress.c (renamed from src/gallium/state_trackers/wgl/shared/stw_getprocaddress.c)7
-rw-r--r--src/gallium/state_trackers/wgl/stw_icd.h (renamed from src/gallium/state_trackers/wgl/icd/stw_icd.h)114
-rw-r--r--src/gallium/state_trackers/wgl/stw_pixelformat.c (renamed from src/gallium/state_trackers/wgl/shared/stw_pixelformat.c)67
-rw-r--r--src/gallium/state_trackers/wgl/stw_pixelformat.h (renamed from src/gallium/state_trackers/wgl/shared/stw_pixelformat.h)11
-rw-r--r--src/gallium/state_trackers/wgl/stw_tls.c (renamed from src/gallium/state_trackers/wgl/shared/stw_tls.c)0
-rw-r--r--src/gallium/state_trackers/wgl/stw_tls.h (renamed from src/gallium/state_trackers/wgl/shared/stw_tls.h)0
-rw-r--r--src/gallium/state_trackers/wgl/stw_wgl.c (renamed from src/gallium/state_trackers/wgl/wgl/stw_wgl.c)63
-rw-r--r--src/gallium/state_trackers/wgl/stw_wgl.h (renamed from src/gallium/state_trackers/wgl/wgl/stw_wgl.h)0
-rw-r--r--src/gallium/state_trackers/wgl/stw_winsys.h109
-rw-r--r--src/gallium/state_trackers/xorg/Makefile5
-rw-r--r--src/gallium/state_trackers/xorg/SConscript7
-rw-r--r--src/gallium/state_trackers/xorg/xorg_composite.c791
-rw-r--r--src/gallium/state_trackers/xorg/xorg_composite.h11
-rw-r--r--src/gallium/state_trackers/xorg/xorg_crtc.c222
-rw-r--r--src/gallium/state_trackers/xorg/xorg_dri2.c110
-rw-r--r--src/gallium/state_trackers/xorg/xorg_driver.c607
-rw-r--r--src/gallium/state_trackers/xorg/xorg_exa.c752
-rw-r--r--src/gallium/state_trackers/xorg/xorg_exa.h52
-rw-r--r--src/gallium/state_trackers/xorg/xorg_exa_tgsi.c338
-rw-r--r--src/gallium/state_trackers/xorg/xorg_exa_tgsi.h24
-rw-r--r--src/gallium/state_trackers/xorg/xorg_output.c133
-rw-r--r--src/gallium/state_trackers/xorg/xorg_renderer.c699
-rw-r--r--src/gallium/state_trackers/xorg/xorg_renderer.h95
-rw-r--r--src/gallium/state_trackers/xorg/xorg_tracker.h53
-rw-r--r--src/gallium/state_trackers/xorg/xorg_xv.c714
-rw-r--r--src/gallium/state_trackers/xorg/xvmc/Makefile16
-rw-r--r--src/gallium/state_trackers/xorg/xvmc/SConscript27
-rw-r--r--src/gallium/state_trackers/xorg/xvmc/attributes.c46
-rw-r--r--src/gallium/state_trackers/xorg/xvmc/block.c (renamed from src/gallium/drivers/softpipe/sp_quad_occlusion.c)83
-rw-r--r--src/gallium/state_trackers/xorg/xvmc/context.c252
-rw-r--r--src/gallium/state_trackers/xorg/xvmc/subpicture.c195
-rw-r--r--src/gallium/state_trackers/xorg/xvmc/surface.c409
-rw-r--r--src/gallium/state_trackers/xorg/xvmc/tests/.gitignore (renamed from src/xvmc/tests/.gitignore)0
-rw-r--r--src/gallium/state_trackers/xorg/xvmc/tests/Makefile28
-rw-r--r--src/gallium/state_trackers/xorg/xvmc/tests/test_blocks.c (renamed from src/xvmc/tests/test_blocks.c)27
-rw-r--r--src/gallium/state_trackers/xorg/xvmc/tests/test_context.c (renamed from src/xvmc/tests/test_context.c)27
-rw-r--r--src/gallium/state_trackers/xorg/xvmc/tests/test_rendering.c (renamed from src/xvmc/tests/test_rendering.c)30
-rw-r--r--src/gallium/state_trackers/xorg/xvmc/tests/test_surface.c (renamed from src/xvmc/tests/test_surface.c)46
-rw-r--r--src/gallium/state_trackers/xorg/xvmc/tests/testlib.c (renamed from src/xvmc/tests/testlib.c)27
-rw-r--r--src/gallium/state_trackers/xorg/xvmc/tests/testlib.h (renamed from src/gallium/include/pipe/p_error.h)66
-rw-r--r--src/gallium/state_trackers/xorg/xvmc/tests/xvmc_bench.c (renamed from src/xvmc/tests/xvmc_bench.c)29
-rw-r--r--src/gallium/state_trackers/xorg/xvmc/xvmc_private.h (renamed from src/gallium/drivers/i965simple/brw_screen.h)60
-rw-r--r--src/gallium/winsys/drm/SConscript5
-rw-r--r--src/gallium/winsys/drm/intel/dri/Makefile2
-rw-r--r--src/gallium/winsys/drm/intel/dri/SConscript5
-rw-r--r--src/gallium/winsys/drm/intel/egl/Makefile2
-rw-r--r--src/gallium/winsys/drm/intel/gem/intel_drm_api.c13
-rw-r--r--src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c62
-rw-r--r--src/gallium/winsys/drm/intel/gem/intel_drm_buffer.c22
-rw-r--r--src/gallium/winsys/drm/intel/gem/intel_drm_winsys.h2
-rw-r--r--src/gallium/winsys/drm/intel/xorg/Makefile2
-rw-r--r--src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c11
-rw-r--r--src/gallium/winsys/drm/nouveau/xorg/Makefile61
-rw-r--r--src/gallium/winsys/drm/nouveau/xorg/nouveau_xorg.c149
-rw-r--r--src/gallium/winsys/drm/radeon/core/radeon_buffer.c64
-rw-r--r--src/gallium/winsys/drm/radeon/core/radeon_drm.c39
-rw-r--r--src/gallium/winsys/drm/radeon/core/radeon_drm.h1
-rw-r--r--src/gallium/winsys/drm/radeon/core/radeon_r300.c35
-rw-r--r--src/gallium/winsys/drm/radeon/xorg/Makefile2
-rw-r--r--src/gallium/winsys/drm/vmware/Makefile12
-rw-r--r--src/gallium/winsys/drm/vmware/SConscript11
-rw-r--r--src/gallium/winsys/drm/vmware/core/Makefile35
-rw-r--r--src/gallium/winsys/drm/vmware/core/SConscript39
-rw-r--r--src/gallium/winsys/drm/vmware/core/vmw_buffer.c274
-rw-r--r--src/gallium/winsys/drm/vmware/core/vmw_buffer.h65
-rw-r--r--src/gallium/winsys/drm/vmware/core/vmw_context.c297
-rw-r--r--src/gallium/winsys/drm/vmware/core/vmw_context.h59
-rw-r--r--src/gallium/winsys/drm/vmware/core/vmw_fence.c108
-rw-r--r--src/gallium/winsys/drm/vmware/core/vmw_fence.h59
-rw-r--r--src/gallium/winsys/drm/vmware/core/vmw_screen.c74
-rw-r--r--src/gallium/winsys/drm/vmware/core/vmw_screen.h134
-rw-r--r--src/gallium/winsys/drm/vmware/core/vmw_screen_dri.c371
-rw-r--r--src/gallium/winsys/drm/vmware/core/vmw_screen_ioctl.c504
-rw-r--r--src/gallium/winsys/drm/vmware/core/vmw_screen_pools.c79
-rw-r--r--src/gallium/winsys/drm/vmware/core/vmw_screen_svga.c295
-rw-r--r--src/gallium/winsys/drm/vmware/core/vmw_surface.c61
-rw-r--r--src/gallium/winsys/drm/vmware/core/vmw_surface.h79
-rw-r--r--src/gallium/winsys/drm/vmware/core/vmwgfx_drm.h538
-rw-r--r--src/gallium/winsys/drm/vmware/dri/Makefile18
-rw-r--r--src/gallium/winsys/drm/vmware/dri/SConscript62
-rw-r--r--src/gallium/winsys/drm/vmware/egl/Makefile18
-rw-r--r--src/gallium/winsys/drm/vmware/xorg/Makefile71
-rw-r--r--src/gallium/winsys/drm/vmware/xorg/SConscript54
-rw-r--r--src/gallium/winsys/drm/vmware/xorg/vmw_driver.h90
-rw-r--r--src/gallium/winsys/drm/vmware/xorg/vmw_hook.h39
-rw-r--r--src/gallium/winsys/drm/vmware/xorg/vmw_ioctl.c157
-rw-r--r--src/gallium/winsys/drm/vmware/xorg/vmw_screen.c154
-rw-r--r--src/gallium/winsys/drm/vmware/xorg/vmw_video.c1023
-rw-r--r--src/gallium/winsys/drm/vmware/xorg/vmw_xorg.c152
-rw-r--r--src/gallium/winsys/g3dvl/Makefile11
-rw-r--r--src/gallium/winsys/g3dvl/vl_winsys.h49
-rw-r--r--src/gallium/winsys/g3dvl/xlib/Makefile74
-rw-r--r--src/gallium/winsys/g3dvl/xlib/xsp_winsys.c332
-rw-r--r--src/gallium/winsys/g3dvl/xsp_winsys.c290
-rw-r--r--src/gallium/winsys/gdi/SConscript74
-rw-r--r--src/gallium/winsys/gdi/gdi_llvmpipe_winsys.c288
-rw-r--r--src/gallium/winsys/gdi/gdi_softpipe_winsys.c15
-rw-r--r--src/gallium/winsys/xlib/Makefile3
-rw-r--r--src/gallium/winsys/xlib/SConscript11
-rw-r--r--src/gallium/winsys/xlib/xlib.c9
-rw-r--r--src/gallium/winsys/xlib/xlib.h1
-rw-r--r--src/gallium/winsys/xlib/xlib_brw.h30
-rw-r--r--src/gallium/winsys/xlib/xlib_brw_aub.c399
-rw-r--r--src/gallium/winsys/xlib/xlib_brw_aub.h114
-rw-r--r--src/gallium/winsys/xlib/xlib_brw_context.c209
-rw-r--r--src/gallium/winsys/xlib/xlib_brw_screen.c469
-rw-r--r--src/gallium/winsys/xlib/xlib_softpipe.c98
-rw-r--r--src/glx/x11/glxextensions.c5
-rw-r--r--src/glx/x11/glxextensions.h5
-rw-r--r--src/glx/x11/indirect.c66
-rw-r--r--src/glx/x11/indirect.h3
-rw-r--r--src/glx/x11/indirect_init.c12
-rw-r--r--src/mesa/Makefile6
-rw-r--r--src/mesa/SConscript3
-rw-r--r--src/mesa/drivers/common/driverfuncs.c37
-rw-r--r--src/mesa/drivers/common/meta.c1512
-rw-r--r--src/mesa/drivers/common/meta.h109
-rw-r--r--src/mesa/drivers/dri/Makefile.template28
-rw-r--r--src/mesa/drivers/dri/common/drirenderbuffer.c72
-rw-r--r--src/mesa/drivers/dri/common/drirenderbuffer.h5
-rw-r--r--src/mesa/drivers/dri/common/extension_helper.h6609
-rw-r--r--src/mesa/drivers/dri/common/spantmp2.h154
-rw-r--r--src/mesa/drivers/dri/common/texmem.c64
-rw-r--r--src/mesa/drivers/dri/common/texmem.h21
-rw-r--r--src/mesa/drivers/dri/common/utils.c94
-rw-r--r--src/mesa/drivers/dri/common/utils.h32
-rw-r--r--src/mesa/drivers/dri/fb/Makefile2
-rw-r--r--src/mesa/drivers/dri/fb/fb_dri.c4
-rw-r--r--src/mesa/drivers/dri/fb/fb_egl.c4
-rw-r--r--src/mesa/drivers/dri/ffb/Makefile1
-rw-r--r--src/mesa/drivers/dri/ffb/ffb_tex.c18
-rw-r--r--src/mesa/drivers/dri/ffb/ffb_xmesa.c8
-rw-r--r--src/mesa/drivers/dri/gamma/Makefile1
-rw-r--r--src/mesa/drivers/dri/gamma/gamma_tex.c13
-rw-r--r--src/mesa/drivers/dri/glcore/Makefile84
-rw-r--r--src/mesa/drivers/dri/i810/Makefile1
-rw-r--r--src/mesa/drivers/dri/i810/i810context.c2
-rw-r--r--src/mesa/drivers/dri/i810/i810screen.c10
-rw-r--r--src/mesa/drivers/dri/i810/i810tex.c19
-rw-r--r--src/mesa/drivers/dri/i810/i810texmem.c60
-rw-r--r--src/mesa/drivers/dri/i810/i810texstate.c3
-rw-r--r--src/mesa/drivers/dri/i915/Makefile2
-rw-r--r--src/mesa/drivers/dri/i915/i830_texblend.c1
-rw-r--r--src/mesa/drivers/dri/i915/i830_texstate.c5
-rw-r--r--src/mesa/drivers/dri/i915/i830_vtbl.c16
-rw-r--r--src/mesa/drivers/dri/i915/i915_context.c5
-rw-r--r--src/mesa/drivers/dri/i915/i915_context.h15
-rw-r--r--src/mesa/drivers/dri/i915/i915_fragprog.c235
-rw-r--r--src/mesa/drivers/dri/i915/i915_program.c31
-rw-r--r--src/mesa/drivers/dri/i915/i915_program.h5
-rw-r--r--src/mesa/drivers/dri/i915/i915_reg.h6
-rw-r--r--src/mesa/drivers/dri/i915/i915_texstate.c36
-rw-r--r--src/mesa/drivers/dri/i915/i915_vtbl.c16
l---------src/mesa/drivers/dri/i915/intel_generatemipmap.c1
-rw-r--r--src/mesa/drivers/dri/i915/intel_tris.c3
-rw-r--r--src/mesa/drivers/dri/i965/Makefile2
-rw-r--r--src/mesa/drivers/dri/i965/brw_cc.c17
-rw-r--r--src/mesa/drivers/dri/i965/brw_clip.c2
-rw-r--r--src/mesa/drivers/dri/i965/brw_clip.h2
-rw-r--r--src/mesa/drivers/dri/i965/brw_clip_state.c11
-rw-r--r--src/mesa/drivers/dri/i965/brw_context.c1
-rw-r--r--src/mesa/drivers/dri/i965/brw_context.h38
-rw-r--r--src/mesa/drivers/dri/i965/brw_curbe.c2
-rw-r--r--src/mesa/drivers/dri/i965/brw_defines.h16
-rw-r--r--src/mesa/drivers/dri/i965/brw_draw.c21
-rw-r--r--src/mesa/drivers/dri/i965/brw_draw_upload.c6
-rw-r--r--src/mesa/drivers/dri/i965/brw_eu.h10
-rw-r--r--src/mesa/drivers/dri/i965/brw_eu_emit.c3
-rw-r--r--src/mesa/drivers/dri/i965/brw_gs.h2
-rw-r--r--src/mesa/drivers/dri/i965/brw_gs_state.c5
-rw-r--r--src/mesa/drivers/dri/i965/brw_misc_state.c10
-rw-r--r--src/mesa/drivers/dri/i965/brw_sf.c8
-rw-r--r--src/mesa/drivers/dri/i965/brw_sf.h8
-rw-r--r--src/mesa/drivers/dri/i965/brw_sf_emit.c22
-rw-r--r--src/mesa/drivers/dri/i965/brw_sf_state.c3
-rw-r--r--src/mesa/drivers/dri/i965/brw_state.h9
-rw-r--r--src/mesa/drivers/dri/i965/brw_state_cache.c80
-rw-r--r--src/mesa/drivers/dri/i965/brw_state_upload.c5
-rw-r--r--src/mesa/drivers/dri/i965/brw_tex.c32
-rw-r--r--src/mesa/drivers/dri/i965/brw_util.c2
-rw-r--r--src/mesa/drivers/dri/i965/brw_util.h2
-rw-r--r--src/mesa/drivers/dri/i965/brw_vs.c2
-rw-r--r--src/mesa/drivers/dri/i965/brw_vs_emit.c98
-rw-r--r--src/mesa/drivers/dri/i965/brw_vs_state.c37
-rw-r--r--src/mesa/drivers/dri/i965/brw_vs_surface_state.c8
-rw-r--r--src/mesa/drivers/dri/i965/brw_vtbl.c29
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm.c39
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm.h167
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm_emit.c770
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm_fp.c68
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm_glsl.c1276
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm_pass0.c7
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm_pass1.c6
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm_pass2.c4
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm_sampler_state.c21
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm_state.c9
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm_surface_state.c60
l---------src/mesa/drivers/dri/i965/intel_generatemipmap.c1
-rw-r--r--src/mesa/drivers/dri/intel/intel_batchbuffer.c39
-rw-r--r--src/mesa/drivers/dri/intel/intel_batchbuffer.h14
-rw-r--r--src/mesa/drivers/dri/intel/intel_blit.c11
-rw-r--r--src/mesa/drivers/dri/intel/intel_buffer_objects.c28
-rw-r--r--src/mesa/drivers/dri/intel/intel_buffers.c27
-rw-r--r--src/mesa/drivers/dri/intel/intel_buffers.h2
-rw-r--r--src/mesa/drivers/dri/intel/intel_clear.c6
-rw-r--r--src/mesa/drivers/dri/intel/intel_context.c44
-rw-r--r--src/mesa/drivers/dri/intel/intel_context.h47
-rw-r--r--src/mesa/drivers/dri/intel/intel_depthtmp.h10
-rw-r--r--src/mesa/drivers/dri/intel/intel_extensions.c42
-rw-r--r--src/mesa/drivers/dri/intel/intel_extensions.h2
-rw-r--r--src/mesa/drivers/dri/intel/intel_fbo.c179
-rw-r--r--src/mesa/drivers/dri/intel/intel_fbo.h5
-rw-r--r--src/mesa/drivers/dri/intel/intel_generatemipmap.c304
-rw-r--r--src/mesa/drivers/dri/intel/intel_mipmap_tree.c56
-rw-r--r--src/mesa/drivers/dri/intel/intel_mipmap_tree.h3
-rw-r--r--src/mesa/drivers/dri/intel/intel_pixel.c14
-rw-r--r--src/mesa/drivers/dri/intel/intel_pixel.h2
-rw-r--r--src/mesa/drivers/dri/intel/intel_pixel_bitmap.c11
-rw-r--r--src/mesa/drivers/dri/intel/intel_pixel_copy.c4
-rw-r--r--src/mesa/drivers/dri/intel/intel_pixel_draw.c10
-rw-r--r--src/mesa/drivers/dri/intel/intel_pixel_read.c16
-rw-r--r--src/mesa/drivers/dri/intel/intel_regions.c3
-rw-r--r--src/mesa/drivers/dri/intel/intel_screen.c48
-rw-r--r--src/mesa/drivers/dri/intel/intel_span.c233
-rw-r--r--src/mesa/drivers/dri/intel/intel_span.h2
-rw-r--r--src/mesa/drivers/dri/intel/intel_spantmp.h6
-rw-r--r--src/mesa/drivers/dri/intel/intel_tex.c50
-rw-r--r--src/mesa/drivers/dri/intel/intel_tex.h10
-rw-r--r--src/mesa/drivers/dri/intel/intel_tex_copy.c55
-rw-r--r--src/mesa/drivers/dri/intel/intel_tex_format.c87
-rw-r--r--src/mesa/drivers/dri/intel/intel_tex_image.c153
-rw-r--r--src/mesa/drivers/dri/intel/intel_tex_layout.h2
-rw-r--r--src/mesa/drivers/dri/intel/intel_tex_obj.h1
-rw-r--r--src/mesa/drivers/dri/intel/intel_tex_subimage.c31
-rw-r--r--src/mesa/drivers/dri/intel/intel_tex_validate.c67
-rw-r--r--src/mesa/drivers/dri/mach64/Makefile1
-rw-r--r--src/mesa/drivers/dri/mach64/mach64_context.c2
-rw-r--r--src/mesa/drivers/dri/mach64/mach64_screen.c22
-rw-r--r--src/mesa/drivers/dri/mach64/mach64_span.c14
-rw-r--r--src/mesa/drivers/dri/mach64/mach64_tex.c36
-rw-r--r--src/mesa/drivers/dri/mach64/mach64_texmem.c27
-rw-r--r--src/mesa/drivers/dri/mach64/mach64_texstate.c5
-rw-r--r--src/mesa/drivers/dri/mga/Makefile1
-rw-r--r--src/mesa/drivers/dri/mga/mga_texstate.c23
-rw-r--r--src/mesa/drivers/dri/mga/mga_xmesa.c32
-rw-r--r--src/mesa/drivers/dri/mga/mgaspan.c20
-rw-r--r--src/mesa/drivers/dri/mga/mgatex.c59
-rw-r--r--src/mesa/drivers/dri/mga/mgatexmem.c2
-rw-r--r--src/mesa/drivers/dri/r128/Makefile1
-rw-r--r--src/mesa/drivers/dri/r128/r128_context.c4
-rw-r--r--src/mesa/drivers/dri/r128/r128_screen.c24
-rw-r--r--src/mesa/drivers/dri/r128/r128_span.c18
-rw-r--r--src/mesa/drivers/dri/r128/r128_tex.c9
-rw-r--r--src/mesa/drivers/dri/r128/r128_texmem.c9
-rw-r--r--src/mesa/drivers/dri/r128/r128_texstate.c5
-rw-r--r--src/mesa/drivers/dri/r200/Makefile4
-rw-r--r--src/mesa/drivers/dri/r200/r200_context.c16
-rw-r--r--src/mesa/drivers/dri/r200/r200_state_init.c12
-rw-r--r--src/mesa/drivers/dri/r200/r200_tcl.c15
-rw-r--r--src/mesa/drivers/dri/r200/r200_tex.c22
-rw-r--r--src/mesa/drivers/dri/r200/r200_texstate.c36
-rw-r--r--src/mesa/drivers/dri/r300/Makefile16
-rw-r--r--src/mesa/drivers/dri/r300/compiler/Makefile9
-rwxr-xr-xsrc/mesa/drivers/dri/r300/compiler/SConscript37
-rw-r--r--src/mesa/drivers/dri/r300/compiler/r300_fragprog.c170
-rw-r--r--src/mesa/drivers/dri/r300/compiler/r300_fragprog.h5
-rw-r--r--src/mesa/drivers/dri/r300/compiler/r300_fragprog_emit.c161
-rw-r--r--src/mesa/drivers/dri/r300/compiler/r300_fragprog_swizzle.c107
-rw-r--r--src/mesa/drivers/dri/r300/compiler/r300_fragprog_swizzle.h12
-rw-r--r--src/mesa/drivers/dri/r300/compiler/r3xx_fragprog.c122
-rw-r--r--src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c413
-rw-r--r--src/mesa/drivers/dri/r300/compiler/r3xx_vertprog_dump.c2
-rw-r--r--src/mesa/drivers/dri/r300/compiler/r500_fragprog.c250
-rw-r--r--src/mesa/drivers/dri/r300/compiler/r500_fragprog.h14
-rw-r--r--src/mesa/drivers/dri/r300/compiler/r500_fragprog_emit.c321
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_code.c14
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_code.h25
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_compiler.c175
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_compiler.h57
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_dataflow.c162
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_dataflow.h59
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_dataflow_deadcode.c295
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_dataflow_swizzles.c102
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_nqssadce.c294
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_nqssadce.h91
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_opcodes.c429
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_opcodes.h235
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_pair_regalloc.c350
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_pair_schedule.c501
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_pair_translate.c253
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_program.c153
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_program.h166
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_program_alu.c643
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_program_alu.h10
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_program_constants.h147
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_program_pair.c896
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_program_pair.h129
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_program_print.c300
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_swizzle.h57
-rw-r--r--src/mesa/drivers/dri/r300/r300_cmdbuf.c43
-rw-r--r--src/mesa/drivers/dri/r300/r300_context.c16
-rw-r--r--src/mesa/drivers/dri/r300/r300_context.h5
-rw-r--r--src/mesa/drivers/dri/r300/r300_emit.h1
-rw-r--r--src/mesa/drivers/dri/r300/r300_fragprog_common.c7
-rw-r--r--src/mesa/drivers/dri/r300/r300_reg.h12
-rw-r--r--src/mesa/drivers/dri/r300/r300_render.c2
-rw-r--r--src/mesa/drivers/dri/r300/r300_state.c44
-rw-r--r--src/mesa/drivers/dri/r300/r300_tex.c31
-rw-r--r--src/mesa/drivers/dri/r300/r300_texstate.c37
-rw-r--r--src/mesa/drivers/dri/r300/r300_vertprog.c26
-rw-r--r--src/mesa/drivers/dri/r300/radeon_context.h14
-rw-r--r--src/mesa/drivers/dri/r300/radeon_mesa_to_rc.c223
-rw-r--r--src/mesa/drivers/dri/r300/radeon_mesa_to_rc.h36
-rw-r--r--src/mesa/drivers/dri/r600/Makefile5
-rw-r--r--src/mesa/drivers/dri/r600/r600_context.c282
-rw-r--r--src/mesa/drivers/dri/r600/r600_context.h60
-rw-r--r--src/mesa/drivers/dri/r600/r600_reg_r6xx.h6
-rw-r--r--src/mesa/drivers/dri/r600/r600_reg_r7xx.h2
-rw-r--r--src/mesa/drivers/dri/r600/r600_tex.c24
-rw-r--r--src/mesa/drivers/dri/r600/r600_texstate.c136
-rw-r--r--src/mesa/drivers/dri/r600/r700_assembler.c481
-rw-r--r--src/mesa/drivers/dri/r600/r700_assembler.h11
-rw-r--r--src/mesa/drivers/dri/r600/r700_chip.c150
-rw-r--r--src/mesa/drivers/dri/r600/r700_fragprog.c27
-rw-r--r--src/mesa/drivers/dri/r600/r700_render.c811
-rw-r--r--src/mesa/drivers/dri/r600/r700_shader.c90
-rw-r--r--src/mesa/drivers/dri/r600/r700_shader.h2
-rw-r--r--src/mesa/drivers/dri/r600/r700_state.c118
-rw-r--r--src/mesa/drivers/dri/r600/r700_state.h1
-rw-r--r--src/mesa/drivers/dri/r600/r700_vertprog.c230
-rw-r--r--src/mesa/drivers/dri/r600/r700_vertprog.h15
l---------src/mesa/drivers/dri/r600/radeon_buffer_objects.c1
l---------src/mesa/drivers/dri/r600/radeon_buffer_objects.h1
-rw-r--r--src/mesa/drivers/dri/radeon/Makefile4
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_bo_drm.h13
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_buffer_objects.c5
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_common.c7
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_common.h2
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_common_context.c19
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_common_context.h5
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_context.c6
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_fbo.c186
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_mipmap_tree.c540
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_mipmap_tree.h31
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_queryobj.c56
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_screen.c133
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_span.c244
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_state_init.c14
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_tex.c19
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_texstate.c69
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_texture.c629
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_texture.h23
-rw-r--r--src/mesa/drivers/dri/s3v/Makefile36
-rw-r--r--src/mesa/drivers/dri/s3v/s3v_common.h83
-rw-r--r--src/mesa/drivers/dri/s3v/s3v_context.c260
-rw-r--r--src/mesa/drivers/dri/s3v/s3v_context.h443
-rw-r--r--src/mesa/drivers/dri/s3v/s3v_dd.c90
-rw-r--r--src/mesa/drivers/dri/s3v/s3v_dri.h143
-rw-r--r--src/mesa/drivers/dri/s3v/s3v_inithw.c79
-rw-r--r--src/mesa/drivers/dri/s3v/s3v_lock.c62
-rw-r--r--src/mesa/drivers/dri/s3v/s3v_lock.h99
-rw-r--r--src/mesa/drivers/dri/s3v/s3v_macros.h230
-rw-r--r--src/mesa/drivers/dri/s3v/s3v_regs.h367
-rw-r--r--src/mesa/drivers/dri/s3v/s3v_render.c203
-rw-r--r--src/mesa/drivers/dri/s3v/s3v_screen.c99
-rw-r--r--src/mesa/drivers/dri/s3v/s3v_screen.h39
-rw-r--r--src/mesa/drivers/dri/s3v/s3v_span.c219
-rw-r--r--src/mesa/drivers/dri/s3v/s3v_state.c888
-rw-r--r--src/mesa/drivers/dri/s3v/s3v_tex.c559
-rw-r--r--src/mesa/drivers/dri/s3v/s3v_tex.h28
-rw-r--r--src/mesa/drivers/dri/s3v/s3v_texmem.c582
-rw-r--r--src/mesa/drivers/dri/s3v/s3v_texstate.c300
-rw-r--r--src/mesa/drivers/dri/s3v/s3v_tris.c850
-rw-r--r--src/mesa/drivers/dri/s3v/s3v_tris.h11
-rw-r--r--src/mesa/drivers/dri/s3v/s3v_tritmp.h958
-rw-r--r--src/mesa/drivers/dri/s3v/s3v_vb.c339
-rw-r--r--src/mesa/drivers/dri/s3v/s3v_vb.h39
-rw-r--r--src/mesa/drivers/dri/s3v/s3v_xmesa.c341
-rw-r--r--src/mesa/drivers/dri/s3v/s3virgetri.h383
-rw-r--r--src/mesa/drivers/dri/savage/Makefile1
-rw-r--r--src/mesa/drivers/dri/savage/savage_xmesa.c28
-rw-r--r--src/mesa/drivers/dri/savage/savagespan.c18
-rw-r--r--src/mesa/drivers/dri/savage/savagetex.c150
-rw-r--r--src/mesa/drivers/dri/sis/Makefile1
-rw-r--r--src/mesa/drivers/dri/sis/sis_context.c6
-rw-r--r--src/mesa/drivers/dri/sis/sis_dd.c9
-rw-r--r--src/mesa/drivers/dri/sis/sis_screen.c12
-rw-r--r--src/mesa/drivers/dri/sis/sis_span.c20
-rw-r--r--src/mesa/drivers/dri/sis/sis_tex.c65
-rw-r--r--src/mesa/drivers/dri/sis/sis_texstate.c1
-rw-r--r--src/mesa/drivers/dri/swrast/Makefile1
-rw-r--r--src/mesa/drivers/dri/swrast/swrast.c96
-rw-r--r--src/mesa/drivers/dri/tdfx/Makefile2
-rw-r--r--src/mesa/drivers/dri/tdfx/tdfx_context.c6
-rw-r--r--src/mesa/drivers/dri/tdfx/tdfx_screen.c26
-rw-r--r--src/mesa/drivers/dri/tdfx/tdfx_state.c1
-rw-r--r--src/mesa/drivers/dri/tdfx/tdfx_tex.c373
-rw-r--r--src/mesa/drivers/dri/trident/Makefile26
-rw-r--r--src/mesa/drivers/dri/trident/trident_context.c465
-rw-r--r--src/mesa/drivers/dri/trident/trident_context.h242
-rw-r--r--src/mesa/drivers/dri/trident/trident_dd.c110
-rw-r--r--src/mesa/drivers/dri/trident/trident_dri.h28
-rw-r--r--src/mesa/drivers/dri/trident/trident_lock.h11
-rw-r--r--src/mesa/drivers/dri/trident/trident_state.c548
-rw-r--r--src/mesa/drivers/dri/trident/trident_tris.c1125
-rw-r--r--src/mesa/drivers/dri/trident/trident_vb.c434
-rw-r--r--src/mesa/drivers/dri/unichrome/Makefile1
-rw-r--r--src/mesa/drivers/dri/unichrome/via_context.c9
-rw-r--r--src/mesa/drivers/dri/unichrome/via_ioctl.c2
-rw-r--r--src/mesa/drivers/dri/unichrome/via_screen.c28
-rw-r--r--src/mesa/drivers/dri/unichrome/via_span.c21
-rw-r--r--src/mesa/drivers/dri/unichrome/via_tex.c121
-rw-r--r--src/mesa/drivers/glide/fxddtex.c223
-rw-r--r--src/mesa/drivers/glide/fxsetup.c3
-rw-r--r--src/mesa/drivers/osmesa/osmesa.c24
-rw-r--r--src/mesa/drivers/windows/gdi/mesa.def19
-rw-r--r--src/mesa/drivers/windows/gdi/wmesa.c5
-rw-r--r--src/mesa/drivers/windows/gldirect/mesasw/gld_wgl_mesasw.c26
-rw-r--r--src/mesa/drivers/windows/icd/mesa.def18
-rw-r--r--src/mesa/drivers/x11/xm_api.c75
-rw-r--r--src/mesa/drivers/x11/xm_buffer.c8
-rw-r--r--src/mesa/drivers/x11/xm_dd.c21
-rw-r--r--src/mesa/glapi/ARB_depth_clamp.xml12
-rw-r--r--src/mesa/glapi/ARB_draw_elements_base_vertex.xml40
-rw-r--r--src/mesa/glapi/ARB_framebuffer_object.xml34
-rw-r--r--src/mesa/glapi/EXT_framebuffer_object.xml40
-rw-r--r--src/mesa/glapi/EXT_packed_depth_stencil.xml18
-rw-r--r--src/mesa/glapi/EXT_provoking_vertex.xml13
-rw-r--r--src/mesa/glapi/EXT_texture_array.xml1
-rw-r--r--src/mesa/glapi/Makefile22
-rw-r--r--src/mesa/glapi/dispatch.h3964
-rw-r--r--src/mesa/glapi/gl_API.xml29
-rw-r--r--src/mesa/glapi/gl_offsets.py7
-rw-r--r--src/mesa/glapi/gl_table.py11
-rw-r--r--src/mesa/glapi/glapidispatch.h4007
-rw-r--r--src/mesa/glapi/glapioffsets.h450
-rw-r--r--src/mesa/glapi/glapitable.h439
-rw-r--r--src/mesa/glapi/glapitemp.h230
-rw-r--r--src/mesa/glapi/glprocs.h1158
-rw-r--r--src/mesa/glapi/mesadef.py18
-rw-r--r--src/mesa/glapi/remap_helper.py218
-rw-r--r--src/mesa/main/accum.c16
-rw-r--r--src/mesa/main/accum.h39
-rw-r--r--src/mesa/main/api_arrayelt.c19
-rw-r--r--src/mesa/main/api_arrayelt.h47
-rw-r--r--src/mesa/main/api_exec.c224
-rw-r--r--src/mesa/main/api_loopback.c7
-rw-r--r--src/mesa/main/api_loopback.h16
-rw-r--r--src/mesa/main/api_noop.c110
-rw-r--r--src/mesa/main/api_noop.h16
-rw-r--r--src/mesa/main/api_validate.c63
-rw-r--r--src/mesa/main/api_validate.h4
-rw-r--r--src/mesa/main/attrib.c24
-rw-r--r--src/mesa/main/attrib.h38
-rw-r--r--src/mesa/main/blend.c6
-rw-r--r--src/mesa/main/bufferobj.c111
-rw-r--r--src/mesa/main/buffers.c55
-rw-r--r--src/mesa/main/colormac.h20
-rw-r--r--src/mesa/main/colortab.c57
-rw-r--r--src/mesa/main/colortab.h71
-rw-r--r--src/mesa/main/compiler.h3
-rw-r--r--src/mesa/main/config.h2
-rw-r--r--src/mesa/main/context.c78
-rw-r--r--src/mesa/main/convolve.c56
-rw-r--r--src/mesa/main/convolve.h118
-rw-r--r--src/mesa/main/dd.h63
-rw-r--r--src/mesa/main/debug.c243
-rw-r--r--src/mesa/main/debug.h11
-rw-r--r--src/mesa/main/depth.c4
-rw-r--r--src/mesa/main/depthstencil.c344
-rw-r--r--src/mesa/main/dispatch.c2
-rw-r--r--src/mesa/main/dlist.c677
-rw-r--r--src/mesa/main/dlist.h84
-rw-r--r--src/mesa/main/drawpix.c26
-rw-r--r--src/mesa/main/drawpix.h35
-rw-r--r--src/mesa/main/enable.c39
-rw-r--r--src/mesa/main/enums.c5282
-rw-r--r--src/mesa/main/eval.c61
-rw-r--r--src/mesa/main/eval.h84
-rw-r--r--src/mesa/main/execmem.c7
-rw-r--r--src/mesa/main/extensions.c19
-rw-r--r--src/mesa/main/fbobject.c480
-rw-r--r--src/mesa/main/feedback.c39
-rw-r--r--src/mesa/main/feedback.h62
-rw-r--r--src/mesa/main/ffvertex_prog.c2
-rw-r--r--src/mesa/main/formats.c1158
-rw-r--r--src/mesa/main/formats.h185
-rw-r--r--src/mesa/main/framebuffer.c70
-rw-r--r--src/mesa/main/get.c16
-rw-r--r--src/mesa/main/get_gen.py4
-rw-r--r--src/mesa/main/histogram.c45
-rw-r--r--src/mesa/main/histogram.h48
-rw-r--r--src/mesa/main/light.c2
-rw-r--r--src/mesa/main/mfeatures.h48
-rw-r--r--src/mesa/main/mipmap.c78
-rw-r--r--src/mesa/main/mtypes.h188
-rw-r--r--src/mesa/main/pixel.c40
-rw-r--r--src/mesa/main/pixel.h47
-rw-r--r--src/mesa/main/queryobj.c48
-rw-r--r--src/mesa/main/queryobj.h59
-rw-r--r--src/mesa/main/rastpos.c162
-rw-r--r--src/mesa/main/rastpos.h163
-rw-r--r--src/mesa/main/rbadaptors.c18
-rw-r--r--src/mesa/main/remap.c216
-rw-r--r--src/mesa/main/remap.h87
-rw-r--r--src/mesa/main/remap_helper.h5891
-rw-r--r--src/mesa/main/renderbuffer.c255
-rw-r--r--src/mesa/main/shaders.c41
-rw-r--r--src/mesa/main/shared.c4
-rw-r--r--src/mesa/main/state.c4
-rw-r--r--src/mesa/main/texcompress.c275
-rw-r--r--src/mesa/main/texcompress.h34
-rw-r--r--src/mesa/main/texcompress_fxt1.c122
-rw-r--r--src/mesa/main/texcompress_fxt1.h59
-rw-r--r--src/mesa/main/texcompress_s3tc.c297
-rw-r--r--src/mesa/main/texcompress_s3tc.h106
-rw-r--r--src/mesa/main/texenvprogram.c2
-rw-r--r--src/mesa/main/texfetch.c693
-rw-r--r--src/mesa/main/texfetch.h40
-rw-r--r--src/mesa/main/texfetch_tmp.h (renamed from src/mesa/main/texformat_tmp.h)286
-rw-r--r--src/mesa/main/texformat.c1783
-rw-r--r--src/mesa/main/texformat.h264
-rw-r--r--src/mesa/main/texgen.c43
-rw-r--r--src/mesa/main/texgen.h43
-rw-r--r--src/mesa/main/texgetimage.c807
-rw-r--r--src/mesa/main/teximage.c1137
-rw-r--r--src/mesa/main/teximage.h3
-rw-r--r--src/mesa/main/texobj.c13
-rw-r--r--src/mesa/main/texparam.c92
-rw-r--r--src/mesa/main/texrender.c47
-rw-r--r--src/mesa/main/texstate.c20
-rw-r--r--src/mesa/main/texstore.c1402
-rw-r--r--src/mesa/main/texstore.h77
-rw-r--r--src/mesa/main/varray.c102
-rw-r--r--src/mesa/main/varray.h15
-rw-r--r--src/mesa/main/version.h8
-rw-r--r--src/mesa/main/vtxfmt.c32
-rw-r--r--src/mesa/main/vtxfmt.h28
-rw-r--r--src/mesa/main/vtxfmt_tmp.h42
-rw-r--r--src/mesa/math/m_clip_tmp.h44
-rw-r--r--src/mesa/math/m_debug_clip.c31
-rw-r--r--src/mesa/math/m_xform.h6
-rw-r--r--src/mesa/shader/lex.yy.c1822
-rw-r--r--src/mesa/shader/prog_instruction.h1
-rw-r--r--src/mesa/shader/prog_optimize.c256
-rw-r--r--src/mesa/shader/prog_print.c13
-rw-r--r--src/mesa/shader/program.c7
-rw-r--r--src/mesa/shader/program_lexer.l187
-rw-r--r--src/mesa/shader/program_parse.tab.c2524
-rw-r--r--src/mesa/shader/program_parse.tab.h174
-rw-r--r--src/mesa/shader/program_parse.y486
-rw-r--r--src/mesa/shader/program_parse_extra.c126
-rw-r--r--src/mesa/shader/program_parser.h30
-rw-r--r--src/mesa/shader/programopt.c95
-rw-r--r--src/mesa/shader/programopt.h7
-rw-r--r--src/mesa/shader/shader_api.c63
-rw-r--r--src/mesa/shader/slang/slang_codegen.c2
-rw-r--r--src/mesa/shader/slang/slang_compile.c10
-rw-r--r--src/mesa/shader/slang/slang_emit.c124
-rw-r--r--src/mesa/shader/slang/slang_link.c25
-rw-r--r--src/mesa/shader/slang/slang_vartable.c4
-rw-r--r--src/mesa/sources.mak5
-rw-r--r--src/mesa/sparc/clip.S3
-rw-r--r--src/mesa/sparc/glapi_sparc.S119
-rw-r--r--src/mesa/sparc/sparc.c6
-rw-r--r--src/mesa/state_tracker/st_atom.c8
-rw-r--r--src/mesa/state_tracker/st_atom_constbuf.c3
-rw-r--r--src/mesa/state_tracker/st_atom_depth.c4
-rw-r--r--src/mesa/state_tracker/st_atom_framebuffer.c16
-rw-r--r--src/mesa/state_tracker/st_atom_pixeltransfer.c3
-rw-r--r--src/mesa/state_tracker/st_atom_sampler.c2
-rw-r--r--src/mesa/state_tracker/st_atom_shader.c2
-rw-r--r--src/mesa/state_tracker/st_cb_accum.c13
-rw-r--r--src/mesa/state_tracker/st_cb_bitmap.c15
-rw-r--r--src/mesa/state_tracker/st_cb_blit.c58
-rw-r--r--src/mesa/state_tracker/st_cb_bufferobjects.c3
-rw-r--r--src/mesa/state_tracker/st_cb_clear.c26
-rw-r--r--src/mesa/state_tracker/st_cb_drawpixels.c90
-rw-r--r--src/mesa/state_tracker/st_cb_fbo.c33
-rw-r--r--src/mesa/state_tracker/st_cb_program.c9
-rw-r--r--src/mesa/state_tracker/st_cb_readpixels.c4
-rw-r--r--src/mesa/state_tracker/st_cb_texture.c213
-rw-r--r--src/mesa/state_tracker/st_context.c6
-rw-r--r--src/mesa/state_tracker/st_debug.c28
-rw-r--r--src/mesa/state_tracker/st_debug.h36
-rw-r--r--src/mesa/state_tracker/st_draw.c18
-rw-r--r--src/mesa/state_tracker/st_extensions.c1
-rw-r--r--src/mesa/state_tracker/st_format.c189
-rw-r--r--src/mesa/state_tracker/st_format.h15
-rw-r--r--src/mesa/state_tracker/st_gen_mipmap.c4
-rw-r--r--src/mesa/state_tracker/st_mesa_to_tgsi.c1514
-rw-r--r--src/mesa/state_tracker/st_mesa_to_tgsi.h9
-rw-r--r--src/mesa/state_tracker/st_program.c154
-rw-r--r--src/mesa/state_tracker/st_texture.c31
-rw-r--r--src/mesa/swrast/s_clear.c8
-rw-r--r--src/mesa/swrast/s_depth.c50
-rw-r--r--src/mesa/swrast/s_depth.h2
-rw-r--r--src/mesa/swrast/s_fragprog.c12
-rw-r--r--src/mesa/swrast/s_imaging.c196
-rw-r--r--src/mesa/swrast/s_readpix.c34
-rw-r--r--src/mesa/swrast/s_span.c11
-rw-r--r--src/mesa/swrast/s_texfilter.c64
-rw-r--r--src/mesa/swrast/s_texstore.c601
-rw-r--r--src/mesa/swrast/s_triangle.c193
-rw-r--r--src/mesa/swrast/swrast.h54
-rw-r--r--src/mesa/tnl/t_context.c2
-rw-r--r--src/mesa/tnl/t_context.h4
-rw-r--r--src/mesa/tnl/t_draw.c58
-rw-r--r--src/mesa/tnl/t_rasterpos.c25
-rw-r--r--src/mesa/tnl/t_vb_program.c16
-rw-r--r--src/mesa/tnl/t_vb_vertex.c24
-rw-r--r--src/mesa/vbo/vbo.h1
-rw-r--r--src/mesa/vbo/vbo_exec.h22
-rw-r--r--src/mesa/vbo/vbo_exec_api.c164
-rw-r--r--src/mesa/vbo/vbo_exec_array.c203
-rw-r--r--src/mesa/vbo/vbo_exec_draw.c6
-rw-r--r--src/mesa/vbo/vbo_rebase.c18
-rw-r--r--src/mesa/vbo/vbo_save_api.c65
-rw-r--r--src/mesa/vbo/vbo_split.c8
-rw-r--r--src/mesa/vbo/vbo_split_copy.c52
-rw-r--r--src/mesa/x86-64/glapi_x86-64.S2225
-rw-r--r--src/mesa/x86/glapi_x86.S139
-rw-r--r--src/mesa/x86/read_rgba_span_x86.S2
-rw-r--r--src/mesa/x86/x86_xform.c9
-rw-r--r--src/xvmc/Makefile73
-rw-r--r--src/xvmc/attributes.c20
-rw-r--r--src/xvmc/block.c79
-rw-r--r--src/xvmc/context.c207
-rw-r--r--src/xvmc/subpicture.c215
-rw-r--r--src/xvmc/surface.c355
-rw-r--r--src/xvmc/tests/Makefile27
-rw-r--r--src/xvmc/tests/testlib.h42
-rw-r--r--windows/VC7/mesa/mesa/mesa.vcproj20
-rw-r--r--windows/VC8/mesa/mesa/mesa.vcproj26
1290 files changed, 870492 insertions, 88983 deletions
diff --git a/Makefile b/Makefile
index 8327943b084..bd793e7a06a 100644
--- a/Makefile
+++ b/Makefile
@@ -182,7 +182,7 @@ ultrix-gcc:
# Rules for making release tarballs
-VERSION=7.6.1
+VERSION=7.7-devel
DIRECTORY = Mesa-$(VERSION)
LIB_NAME = MesaLib-$(VERSION)
DEMO_NAME = MesaDemos-$(VERSION)
@@ -415,6 +415,12 @@ DEMO_FILES = \
$(DIRECTORY)/progs/demos/README \
$(DIRECTORY)/progs/fbdev/Makefile \
$(DIRECTORY)/progs/fbdev/glfbdevtest.c \
+ $(DIRECTORY)/progs/objviewer/*.[ch] \
+ $(DIRECTORY)/progs/objviewer/*.obj \
+ $(DIRECTORY)/progs/objviewer/*.mtl \
+ $(DIRECTORY)/progs/objviewer/*.rgb \
+ $(DIRECTORY)/progs/objviewer/Makefile \
+ $(DIRECTORY)/progs/objviewer/README.txt \
$(DIRECTORY)/progs/osdemos/Makefile \
$(DIRECTORY)/progs/osdemos/*.c \
$(DIRECTORY)/progs/xdemos/Makefile* \
@@ -496,9 +502,11 @@ rm_depend:
touch $$dep ; \
done
-lib_gz:
- rm -f configs/current ; \
- rm -f configs/autoconf ; \
+rm_config:
+ rm -f configs/current
+ rm -f configs/autoconf
+
+lib_gz: rm_config
cd .. ; \
tar -cf $(LIB_NAME).tar $(LIB_FILES) ; \
gzip $(LIB_NAME).tar ; \
@@ -516,9 +524,7 @@ glut_gz:
gzip $(GLUT_NAME).tar ; \
mv $(GLUT_NAME).tar.gz $(DIRECTORY)
-lib_bz2:
- rm -f configs/current ; \
- rm -f configs/autoconf ; \
+lib_bz2: rm_config
cd .. ; \
tar -cf $(LIB_NAME).tar $(LIB_FILES) ; \
bzip2 $(LIB_NAME).tar ; \
@@ -536,9 +542,7 @@ glut_bz2:
bzip2 $(GLUT_NAME).tar ; \
mv $(GLUT_NAME).tar.bz2 $(DIRECTORY)
-lib_zip:
- rm -f configs/current ; \
- rm -f configs/autoconf ; \
+lib_zip: rm_config
rm -f $(LIB_NAME).zip ; \
cd .. ; \
zip -qr $(LIB_NAME).zip $(LIB_FILES) ; \
@@ -567,5 +571,7 @@ md5:
@-md5sum $(GLUT_NAME).tar.bz2
@-md5sum $(GLUT_NAME).zip
-.PHONY: tarballs rm_depend lib_gz demo_gz glut_gz lib_bz2 demo_bz2 \
- glut_bz2 lib_zip demo_zip glut_zip md5
+.PHONY: tarballs rm_depend rm_config md5 \
+ lib_gz demo_gz glut_gz \
+ lib_bz2 demo_bz2 glut_bz2 \
+ lib_zip demo_zip glut_zip
diff --git a/SConstruct b/SConstruct
index e9baab0947b..f43c10cecb3 100644
--- a/SConstruct
+++ b/SConstruct
@@ -32,10 +32,10 @@ import common
default_statetrackers = 'mesa'
if common.default_platform in ('linux', 'freebsd', 'darwin'):
- default_drivers = 'softpipe,failover,i915simple,trace,identity,llvmpipe'
+ default_drivers = 'softpipe,failover,svga,i915,trace,identity,llvmpipe'
default_winsys = 'xlib'
elif common.default_platform in ('winddk',):
- default_drivers = 'softpipe,i915simple,trace,identity'
+ default_drivers = 'softpipe,svga,i915,trace,identity'
default_winsys = 'all'
else:
default_drivers = 'all'
@@ -46,9 +46,9 @@ common.AddOptions(opts)
opts.Add(ListVariable('statetrackers', 'state trackers to build', default_statetrackers,
['mesa', 'python', 'xorg']))
opts.Add(ListVariable('drivers', 'pipe drivers to build', default_drivers,
- ['softpipe', 'failover', 'i915simple', 'i965simple', 'cell', 'trace', 'r300', 'identity', 'llvmpipe']))
+ ['softpipe', 'failover', 'svga', 'i915', 'cell', 'trace', 'r300', 'identity', 'llvmpipe']))
opts.Add(ListVariable('winsys', 'winsys drivers to build', default_winsys,
- ['xlib', 'intel', 'gdi', 'radeon']))
+ ['xlib', 'vmware', 'intel', 'gdi', 'radeon']))
opts.Add(EnumVariable('MSVS_VERSION', 'MS Visual C++ version', None, allowed_values=('7.1', '8.0', '9.0')))
diff --git a/bin/win32kprof.py b/bin/win32kprof.py
deleted file mode 100755
index c36317d23ae..00000000000
--- a/bin/win32kprof.py
+++ /dev/null
@@ -1,309 +0,0 @@
-#!/usr/bin/env python
-##########################################################################
-#
-# Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
-# All Rights Reserved.
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sub license, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice (including the
-# next paragraph) shall be included in all copies or substantial portions
-# of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-# IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
-# ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-##########################################################################
-
-
-import sys
-import optparse
-import re
-import struct
-
-from gprof2dot import Call, Function, Profile
-from gprof2dot import CALLS, SAMPLES, TIME, TIME_RATIO, TOTAL_TIME, TOTAL_TIME_RATIO
-from gprof2dot import DotWriter, TEMPERATURE_COLORMAP
-
-
-__version__ = '0.1'
-
-
-class ParseError(Exception):
- pass
-
-
-class MsvcDemangler:
- # http://www.kegel.com/mangle.html
-
- def __init__(self, symbol):
- self._symbol = symbol
- self._pos = 0
-
- def lookahead(self):
- return self._symbol[self._pos]
-
- def consume(self):
- ret = self.lookahead()
- self._pos += 1
- return ret
-
- def match(self, c):
- if self.lookahead() != c:
- raise ParseError
- self.consume()
-
- def parse(self):
- self.match('?')
- name = self.parse_name()
- qualifications = self.parse_qualifications()
- return '::'.join(qualifications + [name])
-
- def parse_name(self):
- if self.lookahead() == '?':
- return self.consume() + self.consume()
- else:
- name = self.parse_id()
- self.match('@')
- return name
-
- def parse_qualifications(self):
- qualifications = []
- while self.lookahead() != '@':
- name = self.parse_id()
- qualifications.append(name)
- self.match('@')
- return qualifications
-
- def parse_id(self):
- s = ''
- while True:
- c = self.lookahead()
- if c.isalnum() or c in '_':
- s += c
- self.consume()
- else:
- break
- return s
-
-
-def demangle(name):
- if name.startswith('_'):
- name = name[1:]
- idx = name.rfind('@')
- if idx != -1 and name[idx+1:].isdigit():
- name = name[:idx]
- return name
- if name.startswith('?'):
- demangler = MsvcDemangler(name)
- return demangler.parse()
- return name
-
-
-class Reader:
-
- def __init__(self):
- self.symbols = []
- self.symbol_cache = {}
- self.base_addr = None
-
- def read_map(self, mapfile):
- # See http://msdn.microsoft.com/en-us/library/k7xkk3e2.aspx
- last_addr = 0
- last_name = 0
- for line in file(mapfile, "rt"):
- fields = line.split()
- try:
- section_offset, name, addr, type, lib_object = fields
- except ValueError:
- continue
- if type != 'f':
- continue
- section, offset = section_offset.split(':')
- addr = int(offset, 16)
- self.symbols.append((addr, name))
- last_addr = addr
- last_name = name
-
- # sort symbols
- self.symbols.sort(key = lambda (addr, name): addr)
-
- def lookup_addr(self, addr):
- try:
- return self.symbol_cache[addr]
- except KeyError:
- pass
-
- tolerance = 4196
- s, e = 0, len(self.symbols)
- while s != e:
- i = (s + e)//2
- start_addr, name = self.symbols[i]
- try:
- end_addr, next_name = self.symbols[i + 1]
- except IndexError:
- end_addr = start_addr + tolerance
- if addr < start_addr:
- e = i
- continue
- if addr == end_addr:
- return next_name, addr - start_addr
- if addr > end_addr:
- s = i
- continue
- return name, addr - start_addr
- raise ValueError
-
- def lookup_symbol(self, name):
- for symbol_addr, symbol_name in self.symbols:
- if name == symbol_name:
- return symbol_addr
- return 0
-
- def read_data(self, data):
- profile = Profile()
-
- fp = file(data, "rb")
- entry_format = "IIII"
- entry_size = struct.calcsize(entry_format)
- caller = None
- caller_stack = []
- while True:
- entry = fp.read(entry_size)
- if len(entry) < entry_size:
- break
- caller_addr, callee_addr, samples_lo, samples_hi = struct.unpack(entry_format, entry)
- if caller_addr == 0 and callee_addr == 0:
- continue
-
- if self.base_addr is None:
- ref_addr = self.lookup_symbol('___debug_profile_reference@0')
- if ref_addr:
- self.base_addr = (caller_addr - ref_addr) & ~(options.align - 1)
- else:
- self.base_addr = 0
- sys.stderr.write('Base addr: %08x\n' % self.base_addr)
-
- samples = (samples_hi << 32) | samples_lo
-
- try:
- caller_raddr = caller_addr - self.base_addr
- caller_sym, caller_ofs = self.lookup_addr(caller_raddr)
-
- try:
- caller = profile.functions[caller_sym]
- except KeyError:
- caller_name = demangle(caller_sym)
- caller = Function(caller_sym, caller_name)
- profile.add_function(caller)
- caller[CALLS] = 0
- caller[SAMPLES] = 0
- except ValueError:
- caller = None
-
- if not callee_addr:
- if caller:
- caller[SAMPLES] += samples
- else:
- callee_raddr = callee_addr - self.base_addr
- callee_sym, callee_ofs = self.lookup_addr(callee_raddr)
-
- try:
- callee = profile.functions[callee_sym]
- except KeyError:
- callee_name = demangle(callee_sym)
- callee = Function(callee_sym, callee_name)
- profile.add_function(callee)
- callee[CALLS] = samples
- callee[SAMPLES] = 0
- else:
- callee[CALLS] += samples
-
- if caller is not None:
- try:
- call = caller.calls[callee.id]
- except KeyError:
- call = Call(callee.id)
- call[CALLS] = samples
- caller.add_call(call)
- else:
- call[CALLS] += samples
-
- if options.verbose:
- if not callee_addr:
- sys.stderr.write('%s+%u: %u\n' % (caller_sym, caller_ofs, samples))
- else:
- sys.stderr.write('%s+%u -> %s+%u: %u\n' % (caller_sym, caller_ofs, callee_sym, callee_ofs, samples))
-
- # compute derived data
- profile.validate()
- profile.find_cycles()
- profile.aggregate(SAMPLES)
- profile.ratio(TIME_RATIO, SAMPLES)
- profile.call_ratios(CALLS)
- profile.integrate(TOTAL_TIME_RATIO, TIME_RATIO)
-
- return profile
-
-
-def main():
- parser = optparse.OptionParser(
- usage="\n\t%prog [options] [file] ...",
- version="%%prog %s" % __version__)
- parser.add_option(
- '-a', '--align', metavar='NUMBER',
- type="int", dest="align", default=16,
- help="section alignment")
- parser.add_option(
- '-m', '--map', metavar='FILE',
- type="string", dest="map",
- help="map file")
- parser.add_option(
- '-b', '--base', metavar='FILE',
- type="string", dest="base",
- help="base addr")
- parser.add_option(
- '-n', '--node-thres', metavar='PERCENTAGE',
- type="float", dest="node_thres", default=0.5,
- help="eliminate nodes below this threshold [default: %default]")
- parser.add_option(
- '-e', '--edge-thres', metavar='PERCENTAGE',
- type="float", dest="edge_thres", default=0.1,
- help="eliminate edges below this threshold [default: %default]")
- parser.add_option(
- '-v', '--verbose',
- action="count",
- dest="verbose", default=0,
- help="verbose output")
-
- global options
- (options, args) = parser.parse_args(sys.argv[1:])
-
- reader = Reader()
- if options.base is not None:
- reader.base_addr = int(options.base, 16)
- if options.map is not None:
- reader.read_map(options.map)
- for arg in args:
- profile = reader.read_data(arg)
- profile.prune(options.node_thres/100.0, options.edge_thres/100.0)
- output = sys.stdout
- dot = DotWriter(output)
- colormap = TEMPERATURE_COLORMAP
- dot.graph(profile, colormap)
-
-
-if __name__ == '__main__':
- main()
-
diff --git a/configs/default b/configs/default
index 0bdc4c86b88..9af816cf9bc 100644
--- a/configs/default
+++ b/configs/default
@@ -9,8 +9,8 @@ CONFIG_NAME = default
# Version info
MESA_MAJOR=7
-MESA_MINOR=6
-MESA_TINY=1
+MESA_MINOR=7
+MESA_TINY=0
MESA_VERSION = $(MESA_MAJOR).$(MESA_MINOR).$(MESA_TINY)
# external projects. This should be useless now that we use libdrm.
@@ -87,16 +87,16 @@ SRC_DIRS = mesa gallium egl gallium/winsys glu glut/glx glew glw
GLU_DIRS = sgi
DRIVER_DIRS = x11 osmesa
# Which subdirs under $(TOP)/progs/ to enter:
-PROGRAM_DIRS = demos redbook samples glsl xdemos
+PROGRAM_DIRS = demos redbook samples glsl objviewer xdemos
# EGL directories
EGL_DRIVERS_DIRS = demo
# Gallium directories and
GALLIUM_DIRS = auxiliary drivers state_trackers
-GALLIUM_AUXILIARY_DIRS = rbug draw translate cso_cache pipebuffer tgsi sct rtasm util indices
+GALLIUM_AUXILIARY_DIRS = rbug draw translate cso_cache pipebuffer tgsi sct rtasm util indices vl
GALLIUM_AUXILIARIES = $(foreach DIR,$(GALLIUM_AUXILIARY_DIRS),$(TOP)/src/gallium/auxiliary/$(DIR)/lib$(DIR).a)
-GALLIUM_DRIVERS_DIRS = softpipe i915simple failover trace identity
+GALLIUM_DRIVERS_DIRS = softpipe failover svga i915 trace identity
GALLIUM_DRIVERS = $(foreach DIR,$(GALLIUM_DRIVERS_DIRS),$(TOP)/src/gallium/drivers/$(DIR)/lib$(DIR).a)
GALLIUM_WINSYS_DIRS = xlib egl_xlib
GALLIUM_WINSYS_DRM_DIRS =
diff --git a/configs/linux b/configs/linux
index 73a6b61b2f6..c60f0d8ac3b 100644
--- a/configs/linux
+++ b/configs/linux
@@ -23,11 +23,11 @@ DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE \
X11_INCLUDES = -I/usr/X11R6/include
CFLAGS = -Wall -Wmissing-prototypes -Wdeclaration-after-statement \
- $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) \
- $(DEFINES) $(ASM_FLAGS) $(X11_INCLUDES) -std=c99 -ffast-math
+ -Wpointer-arith $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) \
+ $(DEFINES) $(ASM_FLAGS) $(X11_INCLUDES) -std=c99 -ffast-math
-CXXFLAGS = -Wall $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
- $(X11_INCLUDES)
+CXXFLAGS = -Wall -Wpointer-arith $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) \
+ $(DEFINES) $(X11_INCLUDES)
# Work around aliasing bugs - developers should comment this out
CFLAGS += -fno-strict-aliasing
diff --git a/configs/linux-debug b/configs/linux-debug
index bc6d2336fc3..8b0b3126db6 100644
--- a/configs/linux-debug
+++ b/configs/linux-debug
@@ -4,5 +4,6 @@ include $(TOP)/configs/linux
CONFIG_NAME = linux-debug
-OPT_FLAGS = -g -ansi -pedantic
+OPT_FLAGS = -g
+CFLAGS += -ansi -pedantic
DEFINES += -DDEBUG -DDEBUG_MATH
diff --git a/configs/linux-dri b/configs/linux-dri
index 0998ba8549d..0802543347a 100644
--- a/configs/linux-dri
+++ b/configs/linux-dri
@@ -60,8 +60,8 @@ EGL_DRIVERS_DIRS = demo glx
DRIVER_DIRS = dri
WINDOW_SYSTEM = dri
GALLIUM_WINSYS_DIRS = drm
-GALLIUM_WINSYS_DRM_DIRS = intel
+GALLIUM_WINSYS_DRM_DIRS = vmware intel
GALLIUM_STATE_TRACKERS_DIRS = egl
-DRI_DIRS = i810 i915 i965 mach64 mga r128 r200 r300 radeon s3v \
- savage sis tdfx trident unichrome ffb swrast
+DRI_DIRS = i810 i915 i965 mach64 mga r128 r200 r300 radeon \
+ savage sis tdfx unichrome ffb swrast
diff --git a/configs/linux-dri-debug b/configs/linux-dri-debug
index c3a458459d8..0dbf428830a 100644
--- a/configs/linux-dri-debug
+++ b/configs/linux-dri-debug
@@ -11,6 +11,6 @@ ARCH_FLAGS = -DDEBUG
#DRI_DIRS = i915tex i915
#DRI_DIRS = i965
#DRI_DIRS = radeon r200 r300
-#DRI_DIRS = unichrome sis trident
+#DRI_DIRS = unichrome sis
#DRI_DIRS = i810 mga r128 tdfx
diff --git a/configs/linux-dri-xcb b/configs/linux-dri-xcb
index e9c15a82e42..827fb973308 100644
--- a/configs/linux-dri-xcb
+++ b/configs/linux-dri-xcb
@@ -68,5 +68,5 @@ WINDOW_SYSTEM=dri
# gamma are missing because they have not been converted to use the new
# interface.
-DRI_DIRS = i810 i915 mach64 mga r128 r200 r300 radeon s3v \
- savage sis tdfx trident unichrome ffb
+DRI_DIRS = i810 i915 mach64 mga r128 r200 r300 radeon \
+ savage sis tdfx unichrome ffb
diff --git a/configure.ac b/configure.ac
index 5fe3a944967..25e4321510f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -18,7 +18,7 @@ AC_CONFIG_AUX_DIR([bin])
AC_CANONICAL_HOST
dnl Versions for external dependencies
-LIBDRM_REQUIRED=2.4.3
+LIBDRM_REQUIRED=2.4.15
DRI2PROTO_REQUIRED=1.99.3
dnl Check for progs
@@ -419,7 +419,7 @@ WINDOW_SYSTEM=""
GALLIUM_DIRS="auxiliary drivers state_trackers"
GALLIUM_WINSYS_DIRS=""
GALLIUM_WINSYS_DRM_DIRS=""
-GALLIUM_AUXILIARY_DIRS="rbug draw translate cso_cache pipebuffer tgsi sct rtasm util indices"
+GALLIUM_AUXILIARY_DIRS="rbug draw translate cso_cache pipebuffer tgsi sct rtasm util indices vl"
GALLIUM_DRIVERS_DIRS="softpipe failover trace identity"
GALLIUM_STATE_TRACKERS_DIRS=""
@@ -775,8 +775,8 @@ if test "$mesa_driver" = dri; then
# default drivers
if test "x$DRI_DIRS" = "xyes"; then
- DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon s3v \
- savage sis tdfx trident unichrome ffb swrast"
+ DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon \
+ savage sis tdfx unichrome ffb swrast"
fi
DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
@@ -1143,7 +1143,14 @@ yes)
GALLIUM_STATE_TRACKERS_DIRS=glx
;;
dri)
- test "x$enable_egl" = xyes && GALLIUM_STATE_TRACKERS_DIRS=egl
+ GALLIUM_STATE_TRACKERS_DIRS="dri"
+ if test "x$enable_egl" = xyes; then
+ GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS egl"
+ fi
+ # Have only tested st/xorg on 1.6.0 servers
+ PKG_CHECK_MODULES(XORG, [xorg-server >= 1.6.0],
+ HAVE_XORG="yes"; GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg",
+ HAVE_XORG="no")
;;
esac
;;
@@ -1190,16 +1197,31 @@ AC_ARG_WITH([max-height],
)
dnl
+dnl Gallium SVGA configuration
+dnl
+AC_ARG_ENABLE([gallium-svga],
+ [AS_HELP_STRING([--disable-gallium-svga],
+ [build gallium SVGA @<:@default=enabled@:>@])],
+ [enable_gallium_svga="$enableval"],
+ [enable_gallium_svga=yes])
+if test "x$enable_gallium_svga" = xyes; then
+ GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS vmware"
+ GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga"
+fi
+
+dnl
dnl Gallium Intel configuration
dnl
AC_ARG_ENABLE([gallium-intel],
- [AS_HELP_STRING([--disable-gallium-intel],
- [build gallium intel @<:@default=enabled@:>@])],
+ [AS_HELP_STRING([--enable-gallium-intel],
+ [build gallium intel @<:@default=disabled@:>@])],
[enable_gallium_intel="$enableval"],
- [enable_gallium_intel=yes])
+ [enable_gallium_intel=auto])
if test "x$enable_gallium_intel" = xyes; then
GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS intel"
- GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915simple"
+ GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915"
+elif test "x$enable_gallium_intel" = xauto; then
+ GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915"
fi
dnl
diff --git a/docs/envvars.html b/docs/envvars.html
index 6d7a321da9f..b2c0e01ee32 100644
--- a/docs/envvars.html
+++ b/docs/envvars.html
@@ -28,6 +28,7 @@ Setting this variable automatically sets the MESA_TEX_PROG variable as well.
<li>MESA_EXTENSION_OVERRIDE - can be used to enable/disable extensions.
A value such as "GL_EXT_foo -GL_EXT_bar" will enable the GL_EXT_foo extension
and disable the GL_EXT_bar extension.
+<li>MESA_GLSL - <a href="shading.html#envvars">shading language options</a>
</ul>
<p>
diff --git a/docs/install.html b/docs/install.html
index 953d2094d5b..8c24cee7a3e 100644
--- a/docs/install.html
+++ b/docs/install.html
@@ -35,14 +35,14 @@
<h3>1.1 Prerequisites for DRI and hardware acceleration</h3>
<p>
-The following are required for DRI-based hardware acceleration with Mesa 7.3:
+The following are required for DRI-based hardware acceleration with Mesa:
</p>
<ul>
<li><a href="http://xorg.freedesktop.org/releases/individual/proto/">dri2proto</a> version 1.99.3 or later
<li>Linux 2.6.28
<li><a href="http://dri.freedesktop.org/libdrm/" target="_parent">libDRM</a>
-version 2.4.3 or later
+version 2.4.15 or later
<li>Xorg server version 1.5 or later
</ul>
</p>
diff --git a/docs/libGL.txt b/docs/libGL.txt
new file mode 100644
index 00000000000..cb988404370
--- /dev/null
+++ b/docs/libGL.txt
@@ -0,0 +1,197 @@
+
+
+
+Introduction
+------------
+
+This document describes the implementation of the XFree86 4.0 libGL.so
+library defined by the Linux/OpenGL Base specification found at
+http://reality.sgi.com/opengl/linux/linuxbase.html.
+
+The documentation is divided into two sections:
+ User's Guide
+ Driver Developer's Guide
+
+Author: Brian Paul (brian@precisioninsight.com)
+Date: February 2000
+
+
+
+User's Guide
+------------
+
+Using libGL.so
+
+The libGL.so library defines the gl- and glX-prefixed functions needed to
+run OpenGL programs. OpenGL client applications should link with the
+-lGL option to use it.
+
+libGL.so serves two primary functions: GLX protocol generation for indirect
+rendering and loading/management of hardware drivers for direct rendering.
+
+When libGL.so initializes itself it uses the DRI to determine the
+appropriate hardware driver for each screen on the local X display.
+The hardware drivers are expected to be in the /usr/X11R6/lib/modules/dri/
+directory. Drivers are named with the convention <name>_dri.so where
+<name> is a driver such as "tdfx", "i810", "gamma", etc.
+
+The LIBGL_DRIVERS_DIR environment variable may be used to specify a
+different DRI modules directory, overriding /usr/X11R6/lib/modules/dri/.
+This environment variable is ignored in setuid programs for security
+reasons.
+
+When libGL.so is unable to locate appropriate hardware drivers it will
+fall back to using indirect GLX rendering.
+
+To aid in solving problems, libGL.so will print diagnostic messages to
+stderr if the LIBGL_DEBUG environment variable is defined.
+
+libGL.so is thread safe. The overhead of thread safety for common,
+single-thread clients is negligible. However, the overhead of thread
+safety for multi-threaded clients is significant. Each GL API call
+requires two calls to pthread_get_specific() which can noticably
+impact performance. Warning: libGL.so is thread safe but individual
+DRI drivers may not be. Please consult the documentation for a driver
+to learn if it is thread safe.
+
+
+
+Indirect Rendering
+
+You can force indirect rendering mode by setting the LIBGL_ALWAYS_INDIRECT
+environment variable. Hardware acceleration will not be used.
+
+
+
+libGL.so Extensibility
+
+libGL.so is designed to be extended without upgrading. That is,
+drivers may install new OpenGL extension functions into libGL.so
+without requiring libGL.so to be replaced. Clients of libGL.so should
+use the glXGetProcAddressEXT() function to obtain the address of
+functions by name. For more details of GLX_ARB_get_proc_address see
+http://oss.sgi.com/projects/ogl-sample/registry/ARB/get_proc_address.spec
+
+libGL.so is also designed with flexibility such that it may be used
+with many generations of hardware drivers to come.
+
+
+
+
+Driver Developer's Guide
+------------------------
+
+This section describes the requirements to make an XFree86 4.0
+libGL.so-compatible hardware driver. It is not intended for end
+users of libGL.so.
+
+
+XFree86 source files
+
+libGL.so is built inside XFree86 with sources found in xc/lib/GL/.
+Specifically, libGL.so is built from:
+
+ xc/lib/GL/glx/*.c
+ xc/lib/dri/XF86dri.c
+ xc/lib/dri/dri_glx.c
+ xc/lib/GL/mesa/src/glapi.c
+ xc/lib/GL/mesa/src/glapitemp.h
+ xc/lib/GL/mesa/src/glapitable.h
+ xc/lib/GL/mesa/src/glapioffsets.h
+ xc/lib/GL/mesa/src/glapinoop.c
+ xc/lib/GL/mesa/src/glheader.h
+ xc/lib/GL/mesa/src/glthread.c
+ xc/lib/GL/mesa/src/glthread.h
+ xc/lib/GL/mesa/src/X86/glapi_x86.S
+ xc/lib/GL/mesa/src/X86/assyntax.h
+
+Understand that the mesa/src/gl*.[ch] files are not tied to Mesa. They
+have no dependencies on the rest of Mesa and are designed to be reusable
+in a number of projects.
+
+The glapi_x86.X and assyntax.h files implement x86-optimized dispatch
+of GL functions. They are not required; C-based dispatch can be used
+instead, with a slight performance penalty.
+
+
+
+Driver loading and binding
+
+When libGL.so initializes itself (via the __glXInitialize function) a
+call is made to driCreateDisplay(). This function uses DRI facilities
+to determine the driver file appropriate for each screen on the local
+display. Each screen's driver is then opened with dlopen() and asked
+for its __driCreateScreen() function. The pointers to the __driCreateScreen()
+functions are kept in an array, indexed by screen number, in the
+__DRIdisplayRec struct.
+
+When a driver's __driCreateScreen() function is called, it must initialize
+a __DRIscreenRec struct. This struct acts as the root of a tree of
+function pointers which are called to create and destroy contexts and
+drawables and perform all the operations needed by the GLX interface.
+See the xc/lib/GL/glx/glxclient.h file for details.
+
+
+
+Dynamic Extension Function Registration
+
+In order to provide forward compatibility with future drivers, libGL.so
+allows drivers to register new OpenGL extension functions which weren't
+known when libGL.so was built.
+
+The register_extensions() function in xc/lib/GL/dri/dri_glx.c is called
+as soon as libGL.so is loaded. This is done with gcc's constructor
+attribute. This mechanism will likely have to be changed for other compilers.
+
+register_extensions() loops over all local displays and screens, determines
+the DRI driver for each, and calls the driver's __driRegisterExtensions()
+function, if present.
+
+The __driRegisterExtensions() function can add new entrypoints to libGL
+by calling:
+
+ GLboolean _glapi_add_entrypoint(const char *funcName, GLuint offset)
+
+The parameters are the name of the function (such as "glFoobarEXT") and the
+offset of the dispatch slot in the API dispatch table. The return value
+indicates success (GL_TRUE) or failure (GL_FALSE).
+
+_glapi_add_entrypoint() will synthesize entrypoint code in assembly
+language. Assembly languages is required since parameter passing
+can't be handled correctly using a C-based solution.
+
+The address of the new entrypoint is obtained by calling the
+glXGetProcAddressARB() function.
+
+The dispatch offset number MUST be a number allocated by SGI in the same
+manner in which new GL_* constants are allocated. Using an arbitrary
+offset number will result in many problems.
+
+
+
+Dispatch Management
+
+When a GL context is made current, the driver must install its dispatch
+table as the current dispatch table. This is done by calling
+
+ void _glapi_set_dispatch(struct _glapi_table *dispatch);
+
+This will install the named dispatch table for the calling thread.
+The current dispatch table for a thread can be obtained by calling
+
+ struct _glapi_table *_glapi_get_dispatch(void);
+
+For higher performance in the common single-thread case, the global
+variable _glapi_Dispatch will point to the current dispatch table.
+This variable will be NULL when in multi-thread mode.
+
+
+
+Context Management
+
+libGL.so uses the XFree86 xthreads package to manage a thread-specific
+current context pointer. See __glXGet/SetCurrentContext() in glext.c
+
+Drivers may use the _glapi_set/get_context() functions to maintain
+a private thread-specific context pointer.
+
diff --git a/docs/relnotes-7.7.html b/docs/relnotes-7.7.html
new file mode 100644
index 00000000000..8c8f763b6f2
--- /dev/null
+++ b/docs/relnotes-7.7.html
@@ -0,0 +1,62 @@
+<HTML>
+
+<TITLE>Mesa Release Notes</TITLE>
+
+<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
+
+<BODY>
+
+<body bgcolor="#eeeeee">
+
+<H1>Mesa 7.7 Release Notes / date TBD</H1>
+
+<p>
+Mesa 7.7 is a new development release.
+People who are concerned with stability and reliability should stick
+with a previous release or wait for Mesa 7.7.1.
+</p>
+<p>
+Mesa 7.7 implements the OpenGL 2.1 API, but the version reported by
+glGetString(GL_VERSION) depends on the particular driver being used.
+Some drivers don't support all the features required in OpenGL 2.1.
+</p>
+<p>
+See the <a href="install.html">Compiling/Installing page</a> for prerequisites
+for DRI hardware acceleration.
+</p>
+
+
+<h2>MD5 checksums</h2>
+<pre>
+tbd
+</pre>
+
+
+<h2>New features</h2>
+<ul>
+<li>VMware "SVGA" Gallium driver. This is a Gallium3D driver which targets the
+ VMware virtual graphics device. It allows Linux OpenGL guest applications
+ to utilize the 3D graphics hardware of the host operating system.
+<li>GL_ARB_draw_elements_base_vertex (supported in Intel i965 and software drivers)</li>
+<li>GL_ARB_depth_clamp (supported in Intel i965 DRI and software drivers)</li>
+<li>GL_NV_depth_clamp (supported in Intel i965 DRI and software drivers)</li>
+<li>GL_ARB_provoking_vertex (same as GL_EXT_provoking_vertex)</li>
+<li>Wavefront .obj file loader/viewer demo (progs/demos/objviewer)
+</ul>
+
+
+<h2>Bug fixes</h2>
+<ul>
+<li>Many assorted i965 driver fixes.
+<li>Many r300-gallium driver fixes; this driver is now considered unstable-quality instead of experimental-quality.
+</ul>
+
+
+<h2>Changes</h2>
+<ul>
+<li>New Mesa texture/surface format infrastructure
+<li>Removed some unused Mesa device driver hooks
+</ul>
+
+</body>
+</html>
diff --git a/docs/relnotes.html b/docs/relnotes.html
index d8cbc791eb7..b301ee046a7 100644
--- a/docs/relnotes.html
+++ b/docs/relnotes.html
@@ -13,6 +13,7 @@ The release notes summarize what's new or changed in each Mesa release.
</p>
<UL>
+<LI><A HREF="relnotes-7.7.html">7.7 release notes</A>
<LI><A HREF="relnotes-7.6.1.html">7.6.1 release notes</A>
<LI><A HREF="relnotes-7.6.html">7.6 release notes</A>
<LI><A HREF="relnotes-7.5.2.html">7.5.2 release notes</A>
diff --git a/docs/shading.html b/docs/shading.html
index 77c86be3aa6..bd02335a803 100644
--- a/docs/shading.html
+++ b/docs/shading.html
@@ -39,7 +39,8 @@ Contents
<p>
The <b>MESA_GLSL</b> environment variable can be set to a comma-separated
-list of keywords to control some aspects of the GLSL compiler:
+list of keywords to control some aspects of the GLSL compiler and shader
+execution. These are generally used for debugging.
</p>
<ul>
<li>dump - print GLSL shader code to stdout at link time
@@ -49,6 +50,12 @@ list of keywords to control some aspects of the GLSL compiler:
<li>nopt - disable compiler optimizations
<li>opt - force compiler optimizations
<li>uniform - print message to stdout when glUniform is called
+<li>nopvert - force vertex shaders to be a simple shader that just transforms
+ the vertex position with ftransform() and passes through the color and
+ texcoord[0] attributes.
+<li>nopfrag - force fragment shader to be a simple shader that passes
+ through the color attribute.
+<li>useprog - log glUseProgram calls to stderr
</ul>
<p>
Example: export MESA_GLSL=dump,nopt
diff --git a/doxygen/gallium.doc b/doxygen/gallium.doc
index 4c1434460e9..f0ff36075a5 100644
--- a/doxygen/gallium.doc
+++ b/doxygen/gallium.doc
@@ -33,8 +33,7 @@
- Pipe drivers:
- \ref softpipe
- - \ref i915simple
- - Simple 965 driver (brw_context.h, brw_winsys.h)
+ - \ref i915g
- Cell driver (cell_context.h, cell_winsys.h)
- \ref failover
@@ -120,7 +119,7 @@
\sa sp_winsys.h
*/
-/** \page i915simple Simple i915 Driver
+/** \page i915g i915 Driver
The i915 Gallium3D Driver is an initial hardware driver implementation within
the Gallium3D driver architecture. We expect that once complete this driver
@@ -163,7 +162,7 @@
The Draw module is effectively the part of \ref softpipe which is concerned with
vertex processing, split off into a separate module so that it can be reused
by drivers for rasterization-only hardware. As such it is also instantiated
- by the \ref i915simple driver.
+ by the \ref i915g driver.
Additionally, there are cases in the Mesa OpenGL state_tracker where it is
required to obtain transformed vertices and yet it is anticipated that using
diff --git a/progs/SConscript b/progs/SConscript
index 620dd30e69c..66eaf9e5410 100644
--- a/progs/SConscript
+++ b/progs/SConscript
@@ -10,4 +10,5 @@ SConscript([
'vpglsl/SConscript',
'fp/SConscript',
'wgl/SConscript',
+ 'perf/SConscript',
])
diff --git a/progs/demos/copypix.c b/progs/demos/copypix.c
index 51435acfa0f..a13339ea62f 100644
--- a/progs/demos/copypix.c
+++ b/progs/demos/copypix.c
@@ -26,6 +26,7 @@ static int Scissor = 0;
static float Xzoom, Yzoom;
static GLboolean DrawFront = GL_FALSE;
static GLboolean Dither = GL_TRUE;
+static GLboolean Invert = GL_FALSE;
static void Reset( void )
@@ -59,6 +60,15 @@ static void Display( void )
if (Scissor)
glEnable(GL_SCISSOR_TEST);
+ if (Invert) {
+ glPixelTransferf(GL_RED_SCALE, -1.0);
+ glPixelTransferf(GL_GREEN_SCALE, -1.0);
+ glPixelTransferf(GL_BLUE_SCALE, -1.0);
+ glPixelTransferf(GL_RED_BIAS, 1.0);
+ glPixelTransferf(GL_GREEN_BIAS, 1.0);
+ glPixelTransferf(GL_BLUE_BIAS, 1.0);
+ }
+
/* draw copy */
glPixelZoom(Xzoom, Yzoom);
glWindowPos2iARB(Xpos, Ypos);
@@ -67,6 +77,15 @@ static void Display( void )
glDisable(GL_SCISSOR_TEST);
+ if (Invert) {
+ glPixelTransferf(GL_RED_SCALE, 1.0);
+ glPixelTransferf(GL_GREEN_SCALE, 1.0);
+ glPixelTransferf(GL_BLUE_SCALE, 1.0);
+ glPixelTransferf(GL_RED_BIAS, 0.0);
+ glPixelTransferf(GL_GREEN_BIAS, 0.0);
+ glPixelTransferf(GL_BLUE_BIAS, 0.0);
+ }
+
if (DrawFront)
glFinish();
else
@@ -105,6 +124,9 @@ static void Key( unsigned char key, int x, int y )
else
glDisable(GL_DITHER);
break;
+ case 'i':
+ Invert = !Invert;
+ break;
case 's':
Scissor = !Scissor;
break;
diff --git a/progs/demos/cubemap.c b/progs/demos/cubemap.c
index 0df5ff09c33..20332b1d960 100644
--- a/progs/demos/cubemap.c
+++ b/progs/demos/cubemap.c
@@ -58,6 +58,9 @@ static GLint ClampIndex = 0;
static GLboolean supportFBO = GL_FALSE;
static GLboolean supportSeamless = GL_FALSE;
static GLboolean seamless = GL_FALSE;
+static GLuint TexObj = 0;
+static GLint T0 = 0;
+static GLint Frames = 0;
static struct {
@@ -282,6 +285,20 @@ static void draw( void )
glPopMatrix();
glutSwapBuffers();
+
+ Frames++;
+
+ {
+ GLint t = glutGet(GLUT_ELAPSED_TIME);
+ if (t - T0 >= 5000) {
+ GLfloat seconds = (t - T0) / 1000.0;
+ GLfloat fps = Frames / seconds;
+ printf("%d frames in %6.3f seconds = %6.3f FPS\n", Frames, seconds, fps);
+ fflush(stdout);
+ T0 = t;
+ Frames = 0;
+ }
+ }
}
@@ -543,6 +560,10 @@ static void init( GLboolean useImageFiles )
printf("GL_RENDERER: %s\n", (char *) glGetString(GL_RENDERER));
+
+ glGenTextures(1, &TexObj);
+ glBindTexture(GL_TEXTURE_CUBE_MAP_ARB, TexObj);
+
if (useImageFiles) {
load_envmaps();
}
diff --git a/progs/demos/fbo_firecube.c b/progs/demos/fbo_firecube.c
index 4e42924a09e..b3f7e00e5af 100644
--- a/progs/demos/fbo_firecube.c
+++ b/progs/demos/fbo_firecube.c
@@ -938,7 +938,14 @@ reshape(int width, int height)
static void
init_fbotexture()
{
+ static const GLenum depthFormats[] = {
+ GL_DEPTH_COMPONENT,
+ GL_DEPTH_COMPONENT16,
+ GL_DEPTH_COMPONENT32
+ };
+ static int numDepthFormats = sizeof(depthFormats) / sizeof(depthFormats[0]);
GLint i;
+ GLenum stat;
/* gen framebuffer id, delete it, do some assertions, just for testing */
glGenFramebuffersEXT(1, &MyFB);
@@ -969,18 +976,31 @@ init_fbotexture()
/* make depth renderbuffer */
glGenRenderbuffersEXT(1, &DepthRB);
glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, DepthRB);
- glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT16,
- TexWidth, TexHeight);
- CheckError(__LINE__);
+ /* we may have to try several formats */
+ for (i = 0; i < numDepthFormats; i++) {
+ glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, depthFormats[i],
+ TexWidth, TexHeight);
+ CheckError(__LINE__);
+
+ glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT,
+ GL_RENDERBUFFER_EXT, DepthRB);
+ CheckError(__LINE__);
+ stat = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
+ if (stat == GL_FRAMEBUFFER_COMPLETE_EXT) {
+ break;
+ }
+ }
+
+ if (stat != GL_FRAMEBUFFER_COMPLETE_EXT) {
+ fprintf(stderr, "Error: unable to get usable FBO combination!\n");
+ exit(1);
+ }
+
glGetRenderbufferParameterivEXT(GL_RENDERBUFFER_EXT,
- GL_RENDERBUFFER_DEPTH_SIZE_EXT, &i);
+ GL_RENDERBUFFER_DEPTH_SIZE_EXT, &i);
CheckError(__LINE__);
printf("Depth renderbuffer size = %d bits\n", i);
- /* attach DepthRB to MyFB */
- glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT,
- GL_RENDERBUFFER_EXT, DepthRB);
- CheckError(__LINE__);
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
/*
diff --git a/progs/demos/lodbias.c b/progs/demos/lodbias.c
index 30b1ed13d5f..8d39bd605a7 100644
--- a/progs/demos/lodbias.c
+++ b/progs/demos/lodbias.c
@@ -43,6 +43,7 @@ static GLboolean Anim = GL_TRUE;
static GLint Bias = 0, BiasStepSign = +1; /* ints avoid fp precision problem */
static GLint BiasMin = -400, BiasMax = 400;
static int win = 0;
+static GLuint TexObj = 0;
static void
@@ -214,6 +215,9 @@ static void Init( void )
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+ glGenTextures(1, &TexObj);
+ glBindTexture(GL_TEXTURE_2D, TexObj);
+
if (glutExtensionSupported("GL_SGIS_generate_mipmap")) {
/* test auto mipmap generation */
GLint width, height, i;
diff --git a/progs/demos/morph3d.c b/progs/demos/morph3d.c
index 6aca8270ff5..01a06aba0ff 100644
--- a/progs/demos/morph3d.c
+++ b/progs/demos/morph3d.c
@@ -887,5 +887,6 @@ int main(int argc, char **argv)
glutIdleFunc( idle_ );
glutDisplayFunc( draw );
glutMainLoop();
-
+
+ return 0;
}
diff --git a/progs/demos/multiarb.c b/progs/demos/multiarb.c
index 85c4e3a266c..3d89d3a13e9 100644
--- a/progs/demos/multiarb.c
+++ b/progs/demos/multiarb.c
@@ -27,6 +27,8 @@
#define ANIMATE 10
#define QUIT 100
+static GLint T0 = 0;
+static GLint Frames = 0;
static GLboolean Animate = GL_TRUE;
static GLint NumUnits = 1;
static GLboolean TexEnabled[8];
@@ -105,6 +107,20 @@ static void Display( void )
glPopMatrix();
glutSwapBuffers();
+
+ Frames++;
+
+ {
+ GLint t = glutGet(GLUT_ELAPSED_TIME);
+ if (t - T0 >= 5000) {
+ GLfloat seconds = (t - T0) / 1000.0;
+ GLfloat fps = Frames / seconds;
+ printf("%d frames in %6.3f seconds = %6.3f FPS\n", Frames, seconds, fps);
+ fflush(stdout);
+ T0 = t;
+ Frames = 0;
+ }
+ }
}
diff --git a/progs/demos/textures.c b/progs/demos/textures.c
index b7bf135d219..d94154a2008 100644
--- a/progs/demos/textures.c
+++ b/progs/demos/textures.c
@@ -57,7 +57,7 @@ Idle(void)
{
Xrot = glutGet(GLUT_ELAPSED_TIME) * 0.02;
Yrot = glutGet(GLUT_ELAPSED_TIME) * 0.04;
- //Zrot += 2.0;
+ /*Zrot += 2.0;*/
glutPostRedisplay();
}
diff --git a/progs/egl/demo1.c b/progs/egl/demo1.c
index 49b66245388..34a516e72fc 100644
--- a/progs/egl/demo1.c
+++ b/progs/egl/demo1.c
@@ -34,14 +34,9 @@ TestScreens(EGLDisplay dpy)
* Print table of all available configurations.
*/
static void
-PrintConfigs(EGLDisplay d)
+PrintConfigs(EGLDisplay d, EGLConfig *configs, EGLint numConfigs)
{
- EGLConfig *configs;
- EGLint numConfigs, i;
-
- eglGetConfigs(d, NULL, 0, &numConfigs);
- configs = malloc(sizeof(*configs) *numConfigs);
- eglGetConfigs(d, configs, numConfigs, &numConfigs);
+ EGLint i;
printf("Configurations:\n");
printf(" bf lv d st colorbuffer dp st supported \n");
@@ -83,7 +78,6 @@ PrintConfigs(EGLDisplay d)
red, green, blue, alpha,
depth, stencil, surfString);
}
- free(configs);
}
@@ -94,7 +88,8 @@ main(int argc, char *argv[])
int maj, min;
EGLContext ctx;
EGLSurface pbuffer;
- EGLConfig configs[10];
+ EGLConfig *configs;
+ EGLint numConfigs;
EGLBoolean b;
const EGLint pbufAttribs[] = {
EGL_WIDTH, 500,
@@ -102,10 +97,7 @@ main(int argc, char *argv[])
EGL_NONE
};
- /*
EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
- */
- EGLDisplay d = eglGetDisplay((EGLNativeDisplayType) "!EGL_i915");
assert(d);
if (!eglInitialize(d, &maj, &min)) {
@@ -116,7 +108,11 @@ main(int argc, char *argv[])
printf("EGL version = %d.%d\n", maj, min);
printf("EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR));
- PrintConfigs(d);
+ eglGetConfigs(d, NULL, 0, &numConfigs);
+ configs = malloc(sizeof(*configs) *numConfigs);
+ eglGetConfigs(d, configs, numConfigs, &numConfigs);
+
+ PrintConfigs(d, configs, numConfigs);
ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL);
if (ctx == EGL_NO_CONTEXT) {
@@ -130,6 +126,8 @@ main(int argc, char *argv[])
return 0;
}
+ free(configs);
+
b = eglMakeCurrent(d, pbuffer, pbuffer, ctx);
if (!b) {
printf("make current failed\n");
diff --git a/progs/egl/demo2.c b/progs/egl/demo2.c
index d7283e13bd3..3994656721f 100644
--- a/progs/egl/demo2.c
+++ b/progs/egl/demo2.c
@@ -7,6 +7,7 @@
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include <unistd.h>
#include <EGL/egl.h>
@@ -119,10 +120,7 @@ main(int argc, char *argv[])
EGLScreenMESA screen;
EGLint count;
- /*
EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
- */
- EGLDisplay d = eglGetDisplay((EGLNativeDisplayType) "!EGL_i915");
assert(d);
if (!eglInitialize(d, &maj, &min)) {
@@ -132,6 +130,11 @@ main(int argc, char *argv[])
printf("EGL version = %d.%d\n", maj, min);
printf("EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR));
+ if (!strstr(eglQueryString(d, EGL_EXTENSIONS),
+ "EGL_MESA_screen_surface")) {
+ printf("EGL_MESA_screen_surface is not supported\n");
+ exit(1);
+ }
eglGetConfigs(d, configs, 10, &numConfigs);
printf("Got %d EGL configs:\n", numConfigs);
diff --git a/progs/egl/demo3.c b/progs/egl/demo3.c
index daab62d1738..0665fd0516e 100644
--- a/progs/egl/demo3.c
+++ b/progs/egl/demo3.c
@@ -11,6 +11,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <unistd.h>
@@ -551,15 +552,6 @@ write_ppm(const char *filename, const GLubyte *buffer, int width, int height)
}
}
-#include "../../src/egl/main/egldisplay.h"
-
-typedef struct fb_display
-{
- _EGLDisplay Base; /* base class/object */
- void *pFB;
-} fbDisplay;
-
-
int
main(int argc, char *argv[])
{
@@ -571,16 +563,14 @@ main(int argc, char *argv[])
EGLModeMESA mode;
EGLint numConfigs, count;
EGLBoolean b;
+ const GLubyte *bitmap;
const EGLint screenAttribs[] = {
EGL_WIDTH, 1024,
EGL_HEIGHT, 768,
EGL_NONE
};
- /*
EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
- */
- EGLDisplay d = eglGetDisplay("!EGL_i915");
assert(d);
if (!eglInitialize(d, &maj, &min)) {
@@ -590,6 +580,11 @@ main(int argc, char *argv[])
printf("EGL version = %d.%d\n", maj, min);
printf("EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR));
+ if (!strstr(eglQueryString(d, EGL_EXTENSIONS),
+ "EGL_MESA_screen_surface")) {
+ printf("EGL_MESA_screen_surface is not supported\n");
+ exit(1);
+ }
eglGetConfigs(d, configs, 10, &numConfigs);
eglGetScreensMESA(d, &screen, 1, &count);
@@ -620,17 +615,24 @@ main(int argc, char *argv[])
Init();
Reshape(1024, 768);
+ /* some drivers crash when rendering to front buffer */
+#if 0
glDrawBuffer( GL_FRONT );
glClearColor( 0, 1.0, 0, 1);
glClear( GL_COLOR_BUFFER_BIT );
+#endif
doubleBuffer = 1;
glDrawBuffer( GL_BACK );
Draw(d, screen_surf);
+ sleep(2);
- write_ppm("dump.ppm", ((struct fb_display *)_eglLookupDisplay(d))->pFB, 1024, 768);
+ /* TODO EGL_KHR_lock_surface */
+ bitmap = NULL;
+ if (bitmap)
+ write_ppm("dump.ppm", bitmap, 1024, 768);
eglDestroySurface(d, screen_surf);
eglDestroyContext(d, ctx);
diff --git a/progs/egl/eglgears.c b/progs/egl/eglgears.c
index 31346d95230..052d0f9e25d 100644
--- a/progs/egl/eglgears.c
+++ b/progs/egl/eglgears.c
@@ -274,10 +274,10 @@ draw(void)
static void
reshape(int width, int height)
{
- glViewport(0, 0, (GLint) width, (GLint) height);
-
GLfloat h = (GLfloat) height / (GLfloat) width;
+ glViewport(0, 0, (GLint) width, (GLint) height);
+
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(-1.0, 1.0, -h, h, 5.0, 60.0);
@@ -333,6 +333,8 @@ static void run_gears(EGLDisplay dpy, EGLSurface surf, int ttr)
double st = current_time();
double ct = st;
int frames = 0;
+ GLfloat seconds, fps;
+
while (ct - st < ttr)
{
double tt = current_time();
@@ -352,8 +354,8 @@ static void run_gears(EGLDisplay dpy, EGLSurface surf, int ttr)
frames++;
}
- GLfloat seconds = ct - st;
- GLfloat fps = frames / seconds;
+ seconds = ct - st;
+ fps = frames / seconds;
printf("%d frames in %3.1f seconds = %6.3f FPS\n", frames, seconds, fps);
}
@@ -388,7 +390,7 @@ main(int argc, char *argv[])
}
/* DBR : Create EGL context/surface etc */
- d = eglGetDisplay((EGLNativeDisplayType)"!EGL_i915");
+ d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
assert(d);
if (!eglInitialize(d, &maj, &min)) {
diff --git a/progs/egl/eglinfo.c b/progs/egl/eglinfo.c
index feae954b75a..4486916e958 100644
--- a/progs/egl/eglinfo.c
+++ b/progs/egl/eglinfo.c
@@ -147,8 +147,7 @@ int
main(int argc, char *argv[])
{
int maj, min;
- //EGLDisplay d = eglGetDisplay((EGLNativeDisplayType)"!EGL_i915");
- EGLDisplay d = eglGetDisplay((EGLNativeDisplayType)"!EGL_i915");
+ EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
if (!eglInitialize(d, &maj, &min)) {
printf("eglinfo: eglInitialize failed\n");
diff --git a/progs/egl/eglscreen.c b/progs/egl/eglscreen.c
index c0b5a210a4a..47b3ce3366f 100644
--- a/progs/egl/eglscreen.c
+++ b/progs/egl/eglscreen.c
@@ -55,7 +55,7 @@ main(int argc, char *argv[])
EGLint count, chosenMode;
EGLint width = 0, height = 0;
- d = eglGetDisplay((EGLNativeDisplayType)"!EGL_i915");
+ d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
assert(d);
if (!eglInitialize(d, &maj, &min)) {
diff --git a/progs/egl/egltri.c b/progs/egl/egltri.c
index 44096d94a27..9bbc3cddaf1 100644
--- a/progs/egl/egltri.c
+++ b/progs/egl/egltri.c
@@ -127,12 +127,11 @@ static void run(EGLDisplay dpy, EGLSurface surf, int ttr)
double st = current_time();
double ct = st;
int frames = 0;
+ GLfloat seconds, fps;
while (ct - st < ttr)
{
- double tt = current_time();
- double dt = tt - ct;
- ct = tt;
+ ct = current_time();
draw();
@@ -141,8 +140,8 @@ static void run(EGLDisplay dpy, EGLSurface surf, int ttr)
frames++;
}
- GLfloat seconds = ct - st;
- GLfloat fps = frames / seconds;
+ seconds = ct - st;
+ fps = frames / seconds;
printf("%d frames in %3.1f seconds = %6.3f FPS\n", frames, seconds, fps);
}
@@ -174,7 +173,7 @@ int main(int argc, char *argv[])
}
/* DBR : Create EGL context/surface etc */
- d = eglGetDisplay((EGLNativeDisplayType)"!EGL_i915");
+ d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
assert(d);
if (!eglInitialize(d, &maj, &min)) {
diff --git a/progs/egl/peglgears.c b/progs/egl/peglgears.c
index bac16453c16..212d1acf692 100644
--- a/progs/egl/peglgears.c
+++ b/progs/egl/peglgears.c
@@ -274,10 +274,10 @@ draw(void)
static void
reshape(int width, int height)
{
- glViewport(0, 0, (GLint) width, (GLint) height);
-
GLfloat h = (GLfloat) height / (GLfloat) width;
+ glViewport(0, 0, (GLint) width, (GLint) height);
+
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(-1.0, 1.0, -h, h, 5.0, 60.0);
@@ -333,6 +333,8 @@ static void run_gears(EGLDisplay dpy, EGLSurface surf, int ttr)
double st = current_time();
double ct = st;
int frames = 0;
+ GLfloat seconds, fps;
+
while (ct - st < ttr)
{
double tt = current_time();
@@ -352,8 +354,8 @@ static void run_gears(EGLDisplay dpy, EGLSurface surf, int ttr)
frames++;
}
- GLfloat seconds = ct - st;
- GLfloat fps = frames / seconds;
+ seconds = ct - st;
+ fps = frames / seconds;
printf("%d frames in %3.1f seconds = %6.3f FPS\n", frames, seconds, fps);
}
@@ -385,7 +387,7 @@ main(int argc, char *argv[])
}
/* DBR : Create EGL context/surface etc */
- d = eglGetDisplay((EGLNativeDisplayType)"!EGL_i915");
+ d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
assert(d);
if (!eglInitialize(d, &major, &minor)) {
diff --git a/progs/egl/xeglgears.c b/progs/egl/xeglgears.c
index 72ed0052832..614a6256037 100644
--- a/progs/egl/xeglgears.c
+++ b/progs/egl/xeglgears.c
@@ -95,9 +95,6 @@ static GLfloat view_rotx = 20.0, view_roty = 30.0, view_rotz = 0.0;
static GLint gear1, gear2, gear3;
static GLfloat angle = 0.0;
-static GLboolean fullscreen = GL_FALSE; /* Create a single fullscreen window */
-
-
/*
*
* Draw a gear wheel. You'll probably want to call this function when
@@ -327,122 +324,235 @@ init(void)
}
-/*
- * Create an RGB, double-buffered X window.
- * Return the window and context handles.
- */
-static void
-make_x_window(Display *x_dpy, EGLDisplay egl_dpy,
- const char *name,
- int x, int y, int width, int height,
- Window *winRet,
- EGLContext *ctxRet,
- EGLSurface *surfRet)
-{
- static const EGLint attribs[] = {
- EGL_RED_SIZE, 1,
- EGL_GREEN_SIZE, 1,
- EGL_BLUE_SIZE, 1,
- /*EGL_DOUBLEBUFFER,*/
- EGL_DEPTH_SIZE, 1,
- EGL_NONE
- };
+struct egl_manager {
+ EGLNativeDisplayType xdpy;
+ EGLNativeWindowType xwin;
+ EGLNativePixmapType xpix;
- int scrnum;
- XSetWindowAttributes attr;
- unsigned long mask;
- Window root;
- Window win;
- XVisualInfo *visInfo, visTemplate;
- int num_visuals;
+ EGLDisplay dpy;
+ EGLConfig conf;
EGLContext ctx;
- EGLConfig config;
- EGLint num_configs, vid;
- scrnum = DefaultScreen( x_dpy );
- root = RootWindow( x_dpy, scrnum );
+ EGLSurface win;
+ EGLSurface pix;
+ EGLSurface pbuf;
- if (fullscreen) {
- x = 0; y = 0;
- width = DisplayWidth( x_dpy, scrnum );
- height = DisplayHeight( x_dpy, scrnum );
+ EGLBoolean verbose;
+ EGLint major, minor;
+};
+
+static struct egl_manager *
+egl_manager_new(EGLNativeDisplayType xdpy, const EGLint *attrib_list,
+ EGLBoolean verbose)
+{
+ struct egl_manager *eman;
+ const char *ver;
+ EGLint num_conf;
+
+ eman = calloc(1, sizeof(*eman));
+ if (!eman)
+ return NULL;
+
+ eman->verbose = verbose;
+ eman->xdpy = xdpy;
+
+ eman->dpy = eglGetDisplay(eman->xdpy);
+ if (eman->dpy == EGL_NO_DISPLAY) {
+ printf("eglGetDisplay() failed\n");
+ free(eman);
+ return NULL;
}
- if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs)) {
- printf("Error: couldn't get an EGL visual config\n");
- exit(1);
+ if (!eglInitialize(eman->dpy, &eman->major, &eman->minor)) {
+ printf("eglInitialize() failed\n");
+ free(eman);
+ return NULL;
}
- if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) {
- printf("Error: eglGetConfigAttrib() failed\n");
- exit(1);
+ ver = eglQueryString(eman->dpy, EGL_VERSION);
+ printf("EGL_VERSION = %s\n", ver);
+
+ if (!eglChooseConfig(eman->dpy, attrib_list, &eman->conf, 1, &num_conf) ||
+ !num_conf) {
+ printf("eglChooseConfig() failed\n");
+ eglTerminate(eman->dpy);
+ free(eman);
+ return NULL;
}
- /* The X window visual must match the EGL config */
- visTemplate.visualid = vid;
- visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals);
- if (!visInfo) {
- printf("Error: couldn't get X visual\n");
- exit(1);
+ eman->ctx = eglCreateContext(eman->dpy, eman->conf, EGL_NO_CONTEXT, NULL);
+ if (eman->ctx == EGL_NO_CONTEXT) {
+ printf("eglCreateContext() failed\n");
+ eglTerminate(eman->dpy);
+ free(eman);
+ return NULL;
+ }
+
+ return eman;
+}
+
+static EGLBoolean
+egl_manager_create_window(struct egl_manager *eman, const char *name,
+ EGLint w, EGLint h, EGLBoolean need_surface,
+ EGLBoolean fullscreen, const EGLint *attrib_list)
+{
+ XVisualInfo vinfo_template, *vinfo = NULL;
+ EGLint val, num_vinfo;
+ Window root;
+ XSetWindowAttributes attrs;
+ unsigned long mask;
+ EGLint x = 0, y = 0;
+
+ if (!eglGetConfigAttrib(eman->dpy, eman->conf,
+ EGL_NATIVE_VISUAL_ID, &val)) {
+ printf("eglGetConfigAttrib() failed\n");
+ return EGL_FALSE;
+ }
+ if (val) {
+ vinfo_template.visualid = (VisualID) val;
+ vinfo = XGetVisualInfo(eman->xdpy, VisualIDMask, &vinfo_template, &num_vinfo);
+ }
+ /* try harder if window surface is not needed */
+ if (!vinfo && !need_surface &&
+ eglGetConfigAttrib(eman->dpy, eman->conf, EGL_BUFFER_SIZE, &val)) {
+ if (val == 32)
+ val = 24;
+ vinfo_template.depth = val;
+ vinfo = XGetVisualInfo(eman->xdpy, VisualDepthMask, &vinfo_template, &num_vinfo);
+ }
+
+ if (!vinfo) {
+ printf("XGetVisualInfo() failed\n");
+ return EGL_FALSE;
+ }
+
+ root = DefaultRootWindow(eman->xdpy);
+ if (fullscreen) {
+ x = y = 0;
+ w = DisplayWidth(eman->xdpy, DefaultScreen(eman->xdpy));
+ h = DisplayHeight(eman->xdpy, DefaultScreen(eman->xdpy));
}
/* window attributes */
- attr.background_pixel = 0;
- attr.border_pixel = 0;
- attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone);
- attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask;
- attr.override_redirect = fullscreen;
+ attrs.background_pixel = 0;
+ attrs.border_pixel = 0;
+ attrs.colormap = XCreateColormap(eman->xdpy, root, vinfo->visual, AllocNone);
+ attrs.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask;
+ attrs.override_redirect = fullscreen;
mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask | CWOverrideRedirect;
- win = XCreateWindow( x_dpy, root, 0, 0, width, height,
- 0, visInfo->depth, InputOutput,
- visInfo->visual, mask, &attr );
+ eman->xwin = XCreateWindow(eman->xdpy, root, x, y, w, h,
+ 0, vinfo->depth, InputOutput,
+ vinfo->visual, mask, &attrs);
+ XFree(vinfo);
/* set hints and properties */
{
XSizeHints sizehints;
sizehints.x = x;
sizehints.y = y;
- sizehints.width = width;
- sizehints.height = height;
+ sizehints.width = w;
+ sizehints.height = h;
sizehints.flags = USSize | USPosition;
- XSetNormalHints(x_dpy, win, &sizehints);
- XSetStandardProperties(x_dpy, win, name, name,
- None, (char **)NULL, 0, &sizehints);
+ XSetNormalHints(eman->xdpy, eman->xwin, &sizehints);
+ XSetStandardProperties(eman->xdpy, eman->xwin, name, name,
+ None, (char **)NULL, 0, &sizehints);
}
- eglBindAPI(EGL_OPENGL_API);
+ if (need_surface) {
+ eman->win = eglCreateWindowSurface(eman->dpy, eman->conf,
+ eman->xwin, attrib_list);
+ if (eman->win == EGL_NO_SURFACE) {
+ printf("eglCreateWindowSurface() failed\n");
+ XDestroyWindow(eman->xdpy, eman->xwin);
+ eman->xwin = None;
+ return EGL_FALSE;
+ }
+ }
+
+ XMapWindow(eman->xdpy, eman->xwin);
+
+ return EGL_TRUE;
+}
- ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL );
- if (!ctx) {
- printf("Error: glXCreateContext failed\n");
- exit(1);
+static EGLBoolean
+egl_manager_create_pixmap(struct egl_manager *eman, EGLNativeWindowType xwin,
+ EGLBoolean need_surface, const EGLint *attrib_list)
+{
+ XWindowAttributes attrs;
+
+ if (!XGetWindowAttributes(eman->xdpy, xwin, &attrs)) {
+ printf("XGetWindowAttributes() failed\n");
+ return EGL_FALSE;
+ }
+
+ eman->xpix = XCreatePixmap(eman->xdpy, xwin,
+ attrs.width, attrs.height, attrs.depth);
+
+ if (need_surface) {
+ eman->pix = eglCreatePixmapSurface(eman->dpy, eman->conf,
+ eman->xpix, attrib_list);
+ if (eman->pix == EGL_NO_SURFACE) {
+ printf("eglCreatePixmapSurface() failed\n");
+ XFreePixmap(eman->xdpy, eman->xpix);
+ eman->xpix = None;
+ return EGL_FALSE;
+ }
}
- *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL);
+ return EGL_TRUE;
+}
- XFree(visInfo);
+static EGLBoolean
+egl_manager_create_pbuffer(struct egl_manager *eman, const EGLint *attrib_list)
+{
+ eman->pbuf = eglCreatePbufferSurface(eman->dpy, eman->conf, attrib_list);
+ if (eman->pbuf == EGL_NO_SURFACE) {
+ printf("eglCreatePbufferSurface() failed\n");
+ return EGL_FALSE;
+ }
- *winRet = win;
- *ctxRet = ctx;
+ return EGL_TRUE;
}
+static void
+egl_manager_destroy(struct egl_manager *eman)
+{
+ eglMakeCurrent(eman->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
+ eglTerminate(eman->dpy);
+
+ if (eman->xwin != None)
+ XDestroyWindow(eman->xdpy, eman->xwin);
+ if (eman->xpix != None)
+ XFreePixmap(eman->xdpy, eman->xpix);
+
+ free(eman);
+}
static void
-event_loop(Display *dpy, Window win,
- EGLDisplay egl_dpy, EGLSurface egl_surf)
+event_loop(struct egl_manager *eman, EGLint surface_type, EGLint w, EGLint h)
{
+ GC gc = XCreateGC(eman->xdpy, eman->xwin, 0, NULL);
+ EGLint orig_w = w, orig_h = h;
+
+ if (surface_type == EGL_PBUFFER_BIT)
+ printf("there will be no screen update if "
+ "eglCopyBuffers() is not implemented\n");
+
while (1) {
- while (XPending(dpy) > 0) {
+ while (XPending(eman->xdpy) > 0) {
XEvent event;
- XNextEvent(dpy, &event);
+ XNextEvent(eman->xdpy, &event);
switch (event.type) {
- case Expose:
+ case Expose:
/* we'll redraw below */
- break;
- case ConfigureNotify:
- reshape(event.xconfigure.width, event.xconfigure.height);
- break;
+ break;
+ case ConfigureNotify:
+ w = event.xconfigure.width;
+ h = event.xconfigure.height;
+ if (surface_type == EGL_WINDOW_BIT)
+ reshape(w, h);
+ break;
case KeyPress:
{
char buffer[10];
@@ -476,6 +586,7 @@ event_loop(Display *dpy, Window win,
static int frames = 0;
static double tRot0 = -1.0, tRate0 = -1.0;
double dt, t = current_time();
+ int x, y;
if (tRot0 < 0.0)
tRot0 = t;
dt = t - tRot0;
@@ -487,7 +598,25 @@ event_loop(Display *dpy, Window win,
angle -= 3600.0;
draw();
- eglSwapBuffers(egl_dpy, egl_surf);
+ switch (surface_type) {
+ case EGL_WINDOW_BIT:
+ eglSwapBuffers(eman->dpy, eman->win);
+ break;
+ case EGL_PBUFFER_BIT:
+ eglWaitClient();
+ if (!eglCopyBuffers(eman->xdpy, eman->pbuf, eman->xpix))
+ break;
+ /* fall through */
+ case EGL_PIXMAP_BIT:
+ eglWaitClient();
+ for (x = 0; x < w; x += orig_w) {
+ for (y = 0; y < h; y += orig_h) {
+ XCopyArea(eman->xdpy, eman->xpix, eman->xwin, gc,
+ 0, 0, orig_w, orig_h, x, y);
+ }
+ }
+ break;
+ }
frames++;
@@ -503,6 +632,8 @@ event_loop(Display *dpy, Window win,
}
}
}
+
+ XFreeGC(eman->xdpy, gc);
}
@@ -513,6 +644,8 @@ usage(void)
printf(" -display <displayname> set the display to run on\n");
printf(" -fullscreen run in fullscreen mode\n");
printf(" -info display OpenGL renderer info\n");
+ printf(" -pixmap use pixmap surface\n");
+ printf(" -pbuffer use pbuffer surface\n");
}
@@ -521,15 +654,23 @@ main(int argc, char *argv[])
{
const int winWidth = 300, winHeight = 300;
Display *x_dpy;
- Window win;
- EGLSurface egl_surf;
- EGLContext egl_ctx;
- EGLDisplay egl_dpy;
char *dpyName = NULL;
+ struct egl_manager *eman;
+ EGLint attribs[] = {
+ EGL_SURFACE_TYPE, 0, /* filled later */
+ EGL_RED_SIZE, 1,
+ EGL_GREEN_SIZE, 1,
+ EGL_BLUE_SIZE, 1,
+ EGL_DEPTH_SIZE, 1,
+ EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT,
+ EGL_NONE
+ };
+ char win_title[] = "xeglgears (window/pixmap/pbuffer)";
+ EGLint surface_type = EGL_WINDOW_BIT;
GLboolean printInfo = GL_FALSE;
- EGLint egl_major, egl_minor;
+ GLboolean fullscreen = GL_FALSE;
+ EGLBoolean ret;
int i;
- const char *s;
for (i = 1; i < argc; i++) {
if (strcmp(argv[i], "-display") == 0) {
@@ -542,12 +683,21 @@ main(int argc, char *argv[])
else if (strcmp(argv[i], "-fullscreen") == 0) {
fullscreen = GL_TRUE;
}
+ else if (strcmp(argv[i], "-pixmap") == 0) {
+ surface_type = EGL_PIXMAP_BIT;
+ }
+ else if (strcmp(argv[i], "-pbuffer") == 0) {
+ surface_type = EGL_PBUFFER_BIT;
+ }
else {
usage();
return -1;
}
}
+ /* set surface type */
+ attribs[1] = surface_type;
+
x_dpy = XOpenDisplay(dpyName);
if (!x_dpy) {
printf("Error: couldn't open display %s\n",
@@ -555,26 +705,60 @@ main(int argc, char *argv[])
return -1;
}
- egl_dpy = eglGetDisplay(x_dpy);
- if (!egl_dpy) {
- printf("Error: eglGetDisplay() failed\n");
- return -1;
- }
+ eglBindAPI(EGL_OPENGL_API);
- if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) {
- printf("Error: eglInitialize() failed\n");
+ eman = egl_manager_new(x_dpy, attribs, printInfo);
+ if (!eman) {
+ XCloseDisplay(x_dpy);
return -1;
}
- s = eglQueryString(egl_dpy, EGL_VERSION);
- printf("EGL_VERSION = %s\n", s);
-
- make_x_window(x_dpy, egl_dpy,
- "glxgears", 0, 0, winWidth, winHeight,
- &win, &egl_ctx, &egl_surf);
+ snprintf(win_title, sizeof(win_title), "xeglgears (%s)",
+ (surface_type == EGL_WINDOW_BIT) ? "window" :
+ (surface_type == EGL_PIXMAP_BIT) ? "pixmap" : "pbuffer");
+
+ /* create surface(s) */
+ switch (surface_type) {
+ case EGL_WINDOW_BIT:
+ ret = egl_manager_create_window(eman, win_title, winWidth, winHeight,
+ EGL_TRUE, fullscreen, NULL);
+ if (ret)
+ ret = eglMakeCurrent(eman->dpy, eman->win, eman->win, eman->ctx);
+ break;
+ case EGL_PIXMAP_BIT:
+ ret = (egl_manager_create_window(eman, win_title, winWidth, winHeight,
+ EGL_FALSE, fullscreen, NULL) &&
+ egl_manager_create_pixmap(eman, eman->xwin,
+ EGL_TRUE, NULL));
+ if (ret)
+ ret = eglMakeCurrent(eman->dpy, eman->pix, eman->pix, eman->ctx);
+ break;
+ case EGL_PBUFFER_BIT:
+ {
+ EGLint pbuf_attribs[] = {
+ EGL_WIDTH, winWidth,
+ EGL_HEIGHT, winHeight,
+ EGL_NONE
+ };
+ ret = (egl_manager_create_window(eman, win_title, winWidth, winHeight,
+ EGL_FALSE, fullscreen, NULL) &&
+ egl_manager_create_pixmap(eman, eman->xwin,
+ EGL_FALSE, NULL) &&
+ egl_manager_create_pbuffer(eman, pbuf_attribs));
+ if (ret)
+ ret = eglMakeCurrent(eman->dpy, eman->pbuf, eman->pbuf, eman->ctx);
+ }
+ break;
+ default:
+ ret = EGL_FALSE;
+ break;
+ }
- XMapWindow(x_dpy, win);
- eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx);
+ if (!ret) {
+ egl_manager_destroy(eman);
+ XCloseDisplay(x_dpy);
+ return -1;
+ }
if (printInfo) {
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
@@ -590,18 +774,13 @@ main(int argc, char *argv[])
*/
reshape(winWidth, winHeight);
- event_loop(x_dpy, win, egl_dpy, egl_surf);
+ event_loop(eman, surface_type, winWidth, winHeight);
glDeleteLists(gear1, 1);
glDeleteLists(gear2, 1);
glDeleteLists(gear3, 1);
- eglDestroyContext(egl_dpy, egl_ctx);
- eglDestroySurface(egl_dpy, egl_surf);
- eglTerminate(egl_dpy);
-
-
- XDestroyWindow(x_dpy, win);
+ egl_manager_destroy(eman);
XCloseDisplay(x_dpy);
return 0;
diff --git a/progs/fp/add-sat.txt b/progs/fp/add-sat.txt
new file mode 100644
index 00000000000..2253efb0855
--- /dev/null
+++ b/progs/fp/add-sat.txt
@@ -0,0 +1,6 @@
+!!ARBfp1.0
+TEMP R0;
+MOV R0, fragment.color;
+ADD_SAT R0, R0, R0;
+MUL result.color, {0.5}.x, R0;
+END
diff --git a/progs/fp/mov-alias.txt b/progs/fp/mov-alias.txt
new file mode 100644
index 00000000000..5f04e9c76e2
--- /dev/null
+++ b/progs/fp/mov-alias.txt
@@ -0,0 +1,6 @@
+!!ARBfp1.0
+TEMP R0;
+MOV R0, fragment.color;
+MOV R0, R0.zyxw;
+MOV result.color, R0;
+END
diff --git a/progs/fp/mul-alias.txt b/progs/fp/mul-alias.txt
new file mode 100644
index 00000000000..cf7d359e780
--- /dev/null
+++ b/progs/fp/mul-alias.txt
@@ -0,0 +1,6 @@
+!!ARBfp1.0
+TEMP R0;
+MOV R0, fragment.color;
+MUL R0, R0.zyxw, fragment.color;
+MOV result.color, R0;
+END
diff --git a/progs/glsl/multitex.c b/progs/glsl/multitex.c
index bf46fd5210e..49b32253eed 100644
--- a/progs/glsl/multitex.c
+++ b/progs/glsl/multitex.c
@@ -369,12 +369,9 @@ InitPrograms(void)
static void
InitGL(void)
{
- const char *version = (const char *) glGetString(GL_VERSION);
+ if (!ShadersSupported())
+ exit(1);
- if (version[0] != '2' || version[1] != '.') {
- printf("Warning: this program expects OpenGL 2.0\n");
- /*exit(1);*/
- }
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
printf("Usage:\n");
printf(" a - toggle arrays vs. immediate mode rendering\n");
diff --git a/progs/glsl/shtest.c b/progs/glsl/shtest.c
index 628a7dd5b98..9d76e018e37 100644
--- a/progs/glsl/shtest.c
+++ b/progs/glsl/shtest.c
@@ -627,7 +627,7 @@ Init(void)
NumAttribs = GetAttribs(Program, Attribs);
PrintAttribs(Attribs);
- //assert(glGetError() == 0);
+ /*assert(glGetError() == 0);*/
glClearColor(0.4f, 0.4f, 0.8f, 0.0f);
diff --git a/progs/glsl/texaaline.c b/progs/glsl/texaaline.c
index 2e4f932ad60..4ad5a761c67 100644
--- a/progs/glsl/texaaline.c
+++ b/progs/glsl/texaaline.c
@@ -310,8 +310,10 @@ MakeMipmap(void)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LOD, 4);
- ////glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 5);
+ /*
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LOD, 4);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 5);
+ */
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
#undef SZ
diff --git a/progs/glsl/texdemo1.c b/progs/glsl/texdemo1.c
index 5b1913a722b..2076e6aef94 100644
--- a/progs/glsl/texdemo1.c
+++ b/progs/glsl/texdemo1.c
@@ -400,11 +400,8 @@ InitPrograms(void)
static void
Init(GLboolean useImageFiles)
{
- const char *version = (const char *) glGetString(GL_VERSION);
-
- if (version[0] != '2' || version[1] != '.') {
- printf("Warning: this program expects OpenGL 2.0\n");
- /*exit(1);*/
+ if (!ShadersSupported()) {
+ exit(1);
}
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
diff --git a/progs/objviewer/GreatLakesBiplaneHP.mtl b/progs/objviewer/GreatLakesBiplaneHP.mtl
new file mode 100644
index 00000000000..42552c500d4
--- /dev/null
+++ b/progs/objviewer/GreatLakesBiplaneHP.mtl
@@ -0,0 +1,161 @@
+# Exported from Wings 3D 0.99.03
+
+# Top flaps
+newmtl BottomWing
+Ns 100.0
+d 1.0
+illum 2
+Kd 1.0 0.0 0.0
+Ka 1.0 1.0 1.0
+Ks 1.0 1.0 1.0
+Ke 0.0 0.0 0.0
+map_Kd TopBotMap.rgb
+
+newmtl CompBall_auv
+Ns 100.0
+d 1.0
+illum 2
+Kd 1.0 1.0 1.0
+Ka 1.0 1.0 1.0
+Ks 1.0 1.0 1.0
+Ke 0.0 0.0 0.0
+map_Kd CompBall_auv.rgb
+
+newmtl EngMat1
+Ns 100.0
+d 1.0
+illum 2
+Kd 0.334 0.334 0.334
+Ka 1.0 1.0 1.0
+Ks 1.0 1.0 1.0
+Ke 0.0 0.0 0.0
+
+newmtl EngMat2
+Ns 100.0
+d 1.0
+illum 2
+Kd 0.78688 0.78688 0.78688
+Ka 1.0 1.0 1.0
+Ks 1.0 1.0 1.0
+Ke 0.0 0.0 0.0
+
+newmtl Fuselage_auv
+Ns 100.0
+d 1.0
+illum 2
+Kd 1.0 1.0 1.0
+Ka 0.0 0.0 0.0
+Ks 1.0 1.0 1.0
+Ke 0.0 0.0 0.0
+map_Kd SidesMap.rgb
+
+newmtl Glass
+Ns 100.0
+d 0.5
+illum 2
+#Kd 0.5533333333333333 1.0 1.0
+Kd 1.0 1.0 1.0
+#Ka 0.37333333333333335 0.68 1.0
+Ka 0.0 0.0 0.0
+Ks 1.0 1.0 1.0
+Ke 0.0 0.0 0.0
+
+newmtl Grip
+Ns 100.0
+d 1.0
+illum 2
+Kd 0.47386 0.47386 0.47386
+Ka 0.6203799999999999 0.6203799999999999 0.6203799999999999
+Ks 1.0 1.0 1.0
+Ke 0.0 0.0 0.0
+
+newmtl Interior
+Ns 100.0
+d 1.0
+illum 2
+Kd 0.70696 0.70696 0.70696
+Ka 1.0 1.0 1.0
+Ks 1.0 1.0 1.0
+Ke 0.0 0.0 0.0
+
+newmtl Prop
+Ns 100.0
+d 1.0
+illum 2
+Kd 1.0 1.0 0.6266666666666667
+Ka 1.0 1.0 1.0
+Ks 1.0 1.0 1.0
+Ke 0.0 0.0 0.0
+map_Kd PropMap.rgb
+
+# Rudder
+newmtl Sides
+Ns 100.0
+d 1.0
+illum 2
+Kd 1.0 0.0 0.0
+Ka 1.0 1.0 1.0
+Ks 1.0 1.0 1.0
+Ke 0.0 0.0 0.0
+map_Kd SidesMap.rgb
+
+newmtl TailHoriz
+Ns 100.0
+d 1.0
+illum 2
+Kd 1.0 0.0 0.0
+Ka 1.0 1.0 1.0
+Ks 1.0 1.0 1.0
+Ke 0.0 0.0 0.0
+map_Kd TopBotMap.rgb
+
+# Top wing, bot wing, fuselage
+newmtl TopWing
+Ns 100.0
+d 1.0
+illum 2
+Kd 1.0 1.0 1.0
+Ka 1.0 1.0 1.0
+Ks 1.0 1.0 1.0
+Ke 0.0 0.0 0.0
+map_Kd TopBotMap.rgb
+
+newmtl Wheels
+Ns 100.0
+d 1.0
+illum 2
+Kd 0.0 0.0 0.0
+Ka 0.0 0.0 0.0
+Ks 1.0 1.0 1.0
+Ke 0.0 0.0 0.0
+map_Kd WheelsMap.rgb
+
+newmtl cylinder58_auv
+Ns 100.0
+d 1.0
+illum 2
+Kd 1.0 1.0 1.0
+Ka 1.0 1.0 1.0
+Ks 1.0 1.0 1.0
+Ke 0.0 0.0 0.0
+map_Kd cylinder58_auv.rgb
+
+newmtl default
+Ns 100.0
+d 1.0
+illum 2
+Kd 0.0 1.0 1.0
+Ka 0.0 1.0 1.0
+Ks 0.0 1.0 1.0
+Ke 0.0 0.0 0.0
+
+newmtl gage_auv
+Ns 100.0
+d 1.0
+illum 2
+Kd 1.0 1.0 1.0
+Ka 1.0 1.0 1.0
+Ks 1.0 1.0 1.0
+Ke 0.0 0.0 0.0
+map_Kd gage_auv.rgb
+
diff --git a/progs/objviewer/GreatLakesBiplaneHP.obj b/progs/objviewer/GreatLakesBiplaneHP.obj
new file mode 100644
index 00000000000..e6299d83722
--- /dev/null
+++ b/progs/objviewer/GreatLakesBiplaneHP.obj
@@ -0,0 +1,497539 @@
+# Exported from Wings 3D 0.99.03
+mtllib GreatLakesBiplaneHP.mtl
+o RPM_needle
+#116 vertices, 111 faces
+v 0.17328752 0.36270928 -1.1296818e-2
+v 0.17308123 0.36374638 -1.1303110e-2
+v 0.17249375 0.36462559 -1.1308443e-2
+v 0.17161452 0.36521306 -1.1312007e-2
+v 0.17057740 0.36541935 -1.1313259e-2
+v 0.16954029 0.36521306 -1.1312007e-2
+v 0.16866106 0.36462559 -1.1308443e-2
+v 0.16807358 0.36374638 -1.1303110e-2
+v 0.16786729 0.36270928 -1.1296818e-2
+v 0.16807358 0.36167218 -1.1290526e-2
+v 0.16866106 0.36079297 -1.1285193e-2
+v 0.16954029 0.36020550 -1.1281629e-2
+v 0.17057740 0.35999921 -1.1280377e-2
+v 0.17161452 0.36020550 -1.1281629e-2
+v 0.17249375 0.36079297 -1.1285193e-2
+v 0.17308123 0.36167218 -1.1290526e-2
+v 0.17328752 0.36271261 -1.0747605e-2
+v 0.17308123 0.36374971 -1.0753896e-2
+v 0.17249375 0.36462892 -1.0759230e-2
+v 0.17161452 0.36521639 -1.0762794e-2
+v 0.16954029 0.36521639 -1.0762794e-2
+v 0.16866106 0.36462892 -1.0759230e-2
+v 0.16807358 0.36374971 -1.0753896e-2
+v 0.16786729 0.36271261 -1.0747605e-2
+v 0.16807358 0.36167551 -1.0741313e-2
+v 0.16866106 0.36079630 -1.0735980e-2
+v 0.16954029 0.36020884 -1.0732416e-2
+v 0.17057740 0.36000254 -1.0731164e-2
+v 0.17161452 0.36020884 -1.0732416e-2
+v 0.17249375 0.36079630 -1.0735980e-2
+v 0.17308123 0.36167551 -1.0741313e-2
+v 0.17265057 0.36356800 -1.1302027e-2
+v 0.17282138 0.36270928 -1.1296818e-2
+v 0.17265057 0.36185056 -1.1291609e-2
+v 0.17216414 0.36112258 -1.1287192e-2
+v 0.17143614 0.36063615 -1.1284241e-2
+v 0.17057740 0.36046534 -1.1283205e-2
+v 0.16971867 0.36063615 -1.1284241e-2
+v 0.16899067 0.36112258 -1.1287192e-2
+v 0.16850424 0.36185056 -1.1291609e-2
+v 0.16833343 0.36270928 -1.1296818e-2
+v 0.16850424 0.36356800 -1.1302027e-2
+v 0.16899067 0.36429598 -1.1306444e-2
+v 0.16971867 0.36478241 -1.1309395e-2
+v 0.17057740 0.36495322 -1.1310431e-2
+v 0.17143614 0.36478241 -1.1309395e-2
+v 0.17216414 0.36429598 -1.1306444e-2
+v 0.17057740 0.36270928 -1.1296818e-2
+v 0.17057740 0.37458759 -1.1368878e-2
+v 0.17126190 0.37459092 -1.0819665e-2
+v 0.17126190 0.37458759 -1.1368878e-2
+v 0.16989291 0.37458759 -1.1368878e-2
+v 0.16989291 0.37459092 -1.0819665e-2
+v 0.17057740 0.37745258 -1.1386258e-2
+v 0.17126190 0.37745592 -1.0837045e-2
+v 0.17126190 0.37745258 -1.1386258e-2
+v 0.16989291 0.37745258 -1.1386258e-2
+v 0.16989291 0.37745592 -1.0837045e-2
+v 0.17057740 0.38142563 -1.1410361e-2
+v 0.17057740 0.38142896 -1.0861148e-2
+v 0.17032435 0.38142563 -1.1410361e-2
+v 0.17032435 0.38142896 -1.0861148e-2
+v 0.17083046 0.38142896 -1.0861148e-2
+v 0.17083046 0.38142563 -1.1410361e-2
+v 0.17057740 0.37969045 -1.1399834e-2
+v 0.16941855 0.37974402 -1.1400159e-2
+v 0.16941855 0.37974735 -1.0850946e-2
+v 0.17173626 0.37974735 -1.0850946e-2
+v 0.17173626 0.37974402 -1.1400159e-2
+v 0.17108287 0.38058483 -1.1405260e-2
+v 0.17108287 0.38058816 -1.0856047e-2
+v 0.17007194 0.38058816 -1.0856047e-2
+v 0.17007194 0.38058483 -1.1405260e-2
+v 0.17057740 0.38055804 -1.1405097e-2
+v 0.17216834 0.37896774 -1.1395450e-2
+v 0.17212201 0.37842134 -1.1392135e-2
+v 0.17216834 0.37897107 -1.0846237e-2
+v 0.17212201 0.37842467 -1.0842922e-2
+v 0.16898647 0.37897107 -1.0846237e-2
+v 0.16903280 0.37842467 -1.0842922e-2
+v 0.16898647 0.37896774 -1.1395450e-2
+v 0.16903280 0.37842134 -1.1392135e-2
+v 0.17057740 0.37898810 -1.1395573e-2
+v 0.17057740 0.37832709 -1.1391563e-2
+v 0.16989291 0.36580673 -1.0766375e-2
+v 0.16989291 0.36580340 -1.1315588e-2
+v 0.17126190 0.36580340 -1.1315588e-2
+v 0.17126190 0.36580673 -1.0766375e-2
+v 0.17057740 0.36590655 -1.1316214e-2
+v 0.16989291 0.36580507 -1.1040982e-2
+v 0.17126190 0.36580507 -1.1040982e-2
+v 0.16903280 0.37842301 -1.1117529e-2
+v 0.17212201 0.37842301 -1.1117529e-2
+v 0.17108287 0.38058649 -1.1130653e-2
+v 0.17007194 0.38058649 -1.1130653e-2
+v 0.17173626 0.37974569 -1.1125553e-2
+v 0.16941855 0.37974569 -1.1125553e-2
+v 0.16989291 0.37745425 -1.1111652e-2
+v 0.17126190 0.37745425 -1.1111652e-2
+v 0.16989291 0.37458925 -1.1094271e-2
+v 0.17126190 0.37458925 -1.1094271e-2
+v 0.17308123 0.36167385 -1.1015920e-2
+v 0.17249375 0.36079464 -1.1010586e-2
+v 0.17161452 0.36020717 -1.1007022e-2
+v 0.17057740 0.36000088 -1.1005771e-2
+v 0.16954029 0.36020717 -1.1007022e-2
+v 0.16866106 0.36079464 -1.1010586e-2
+v 0.16807358 0.36167385 -1.1015920e-2
+v 0.16786729 0.36271095 -1.1022211e-2
+v 0.16807358 0.36374804 -1.1028503e-2
+v 0.16866106 0.36462725 -1.1033837e-2
+v 0.16954029 0.36521472 -1.1037401e-2
+v 0.17161452 0.36521472 -1.1037401e-2
+v 0.17249375 0.36462725 -1.1033837e-2
+v 0.17308123 0.36374804 -1.1028503e-2
+v 0.17328752 0.36271095 -1.1022211e-2
+vt 4.5181610e-2 0.19645560
+vt 4.5181610e-2 0.19645560
+vt 4.5181610e-2 0.19645560
+vt 5.6696657e-2 0.25434565
+vt 5.6696657e-2 0.13856555
+vt 5.6696657e-2 0.25434565
+vt 5.6696657e-2 0.13856555
+vt 5.6696657e-2 0.25434565
+vt 7.1200736e-2 0.19645560
+vt 8.0735195e-2 0.14852264
+vt 8.0735195e-2 0.24438856
+vt 8.9488736e-2 0.30342247
+vt 8.9488736e-2 0.30342247
+vt 8.9488736e-2 8.9488736e-2
+vt 0.10788704 0.28502417
+vt 0.10788704 0.10788704
+vt 0.13856555 0.33621455
+vt 0.13856555 5.6696657e-2
+vt 0.13856555 0.33621455
+vt 0.13856555 5.6696657e-2
+vt 0.14852264 8.0735195e-2
+vt 0.14852264 0.31217601
+vt 0.19645560 0.34772960
+vt 0.19645560 4.5181610e-2
+vt 0.19645560 0.19645560
+vt 0.19645560 0.32171047
+vt 0.19645560 0.34772960
+vt 0.19645560 4.5181610e-2
+vt 0.19645560 7.1200736e-2
+vt 0.19645560 4.5181610e-2
+vt 0.24438856 0.31217601
+vt 0.24438856 8.0735195e-2
+vt 0.25434565 5.6696657e-2
+vt 0.25434565 0.33621455
+vt 0.25434565 5.6696657e-2
+vt 0.28502417 0.10788704
+vt 0.28502417 0.28502417
+vt 0.29156447 0.34559794
+vt 0.29156447 0.34559794
+vt 0.30342247 8.9488736e-2
+vt 0.30342247 8.9488736e-2
+vt 0.30342247 0.30342247
+vt 0.31217601 0.24438856
+vt 0.31217601 0.14852264
+vt 0.32171047 0.19645560
+vt 0.32265239 0.32265239
+vt 0.33621455 0.13856555
+vt 0.33621455 0.13856555
+vt 0.33621455 0.25434565
+vt 0.34559794 0.29156447
+vt 0.34559794 0.29156447
+vt 0.34772960 0.19645560
+vt 0.34772960 0.19645560
+vt 0.63827795 0.69231142
+vt 0.63827795 0.69231142
+vt 0.66529468 0.66529468
+vt 0.69231142 0.63827795
+vt 0.69231142 0.63827795
+vt 0.75135991 0.80539338
+vt 0.75135991 0.80539338
+vt 0.75564880 0.87757861
+vt 0.75564880 0.87757861
+vt 0.77538672 0.90097336
+vt 0.77837665 0.77837665
+vt 0.80539338 0.75135991
+vt 0.80539338 0.75135991
+vt 0.81289345 0.81289345
+vt 0.82308087 0.91455951
+vt 0.83898386 0.83898386
+vt 0.86670560 0.86670560
+vt 0.87757861 0.75564880
+vt 0.87757861 0.75564880
+vt 0.88205652 0.92195728
+vt 0.90094960 0.90094960
+vt 0.90097336 0.77538672
+vt 0.91455951 0.82308087
+vt 0.92195728 0.88205652
+vt 0.92520560 0.94518161
+vt 0.93519360 0.93519360
+vt 0.94518161 0.92520560
+vn 0.70021451 -4.3309921e-3 -0.71391938
+vn 0.64691385 0.26362457 -0.71554494
+vn 0.49512643 0.49078632 -0.71692301
+vn 0.39514579 0.37054157 -0.84057049
+vn -2.9952287e-17 -6.0663885e-3 -0.99998160
+vn -0.54150447 0.43814436 -0.71749734
+vn -0.49512643 0.49078632 -0.71692301
+vn -0.64691385 0.26362457 -0.71554494
+vn -0.70021451 -4.3309921e-3 -0.71391938
+vn -0.64691385 -0.27228655 -0.71229383
+vn -0.49512643 -0.49944831 -0.71091575
+vn -0.26796049 -0.65123294 -0.70999495
+vn -4.2767824e-17 -0.70453261 -0.70967161
+vn 0.26796049 -0.65123294 -0.70999495
+vn 0.49512643 -0.49944831 -0.71091575
+vn 0.64691385 -0.27228655 -0.71229383
+vn -1.1584207e-15 -6.0663885e-3 -0.99998160
+vn -1.4579436e-15 -6.0663885e-3 -0.99998160
+vn -1.9970848e-15 -6.0663885e-3 -0.99998160
+vn -8.3340636e-16 -6.0663885e-3 -0.99998160
+vn -3.4612301e-17 -6.0663885e-3 -0.99998160
+vn -2.9952287e-17 -6.0663885e-3 -0.99998160
+vn -1.0316130e-17 -6.0663885e-3 -0.99998160
+vn 8.7833479e-16 -6.0663885e-3 -0.99998160
+vn 1.9970848e-15 -6.0663885e-3 -0.99998160
+vn 1.3980390e-15 -6.0663885e-3 -0.99998160
+vn 1.2183253e-15 -6.0663885e-3 -0.99998160
+vn -3.7480203e-16 -6.0663885e-3 -0.99998160
+vn -1.2735699e-15 -6.0663885e-3 -0.99998160
+vn -2.9952287e-17 -6.0663885e-3 -0.99998160
+vn 1.2286414e-15 -6.0663885e-3 -0.99998160
+vn 4.1973046e-16 -6.0663885e-3 -0.99998160
+vn 3.0814879e-30 -6.0663885e-3 -0.99998160
+vn 1.0846837e-30 -6.0663885e-3 -0.99998160
+vn 0.70710678 -4.2895845e-3 -0.70709377
+vn -0.70710678 -4.2895845e-3 -0.70709377
+vn -4.3202461e-30 -6.0663885e-3 -0.99998160
+vn 0.63839385 -0.24692867 -0.72902643
+vn -0.63839385 -0.24692867 -0.72902643
+vn 0.0000000e+0 0.70280419 -0.71138335
+vn -0.50655174 0.67772518 -0.53300462
+vn 0.50655174 0.67772518 -0.53300462
+vn 3.6562078e-17 -6.0663885e-3 -0.99998160
+vn -0.58895471 0.38514938 -0.71048738
+vn 0.58895471 0.38514938 -0.71048738
+vn 0.62306059 0.31697545 -0.71506787
+vn -0.62306059 0.31697545 -0.71506787
+vn 3.6562078e-17 -6.0663885e-3 -0.99998160
+vn 0.67576857 0.14081785 -0.72353795
+vn 0.63259624 -0.27582558 -0.72370039
+vn -0.78181672 0.24960262 -0.57136779
+vn -0.63259624 -0.27582558 -0.72370039
+vn -6.0150644e-30 -6.0663885e-3 -0.99998160
+vn -8.8253814e-30 -6.0663885e-3 -0.99998160
+vn -0.66902274 0.18022153 -0.72106086
+vn 0.66902274 0.18022153 -0.72106086
+vn 6.3108872e-30 -6.0663885e-3 -0.99998160
+vn -0.96397989 0.26597023 -1.6135084e-3
+vn 0.96397989 0.26597023 -1.6135084e-3
+vn -0.91897790 -0.39430177 2.3920318e-3
+vn 0.91897790 -0.39430177 2.3920318e-3
+vn 0.88877883 0.45832790 -2.7804463e-3
+vn -0.88877883 0.45832790 -2.7804463e-3
+vn 0.83412578 0.55156413 -3.3460639e-3
+vn -0.83412578 0.55156413 -3.3460639e-3
+vn -0.93482641 -0.35509850 2.1542051e-3
+vn 0.93482641 -0.35509850 2.1542051e-3
+vn -1.00000000 -1.4531198e-14 0.0000000e+0
+vn 1.00000000 -1.4531198e-14 0.0000000e+0
+vn 0.92387953 -0.38267639 2.3215064e-3
+vn 0.70710678 -0.70709377 4.2895845e-3
+vn 0.38268343 -0.92386253 5.6046122e-3
+vn 7.0748349e-18 -0.99998160 6.0663885e-3
+vn -0.38268343 -0.92386253 5.6046122e-3
+vn -0.70710678 -0.70709377 4.2895845e-3
+vn -0.92387953 -0.38267639 2.3215064e-3
+vn -1.00000000 -3.4029956e-15 2.0727055e-17
+vn -0.92387953 0.38267639 -2.3215064e-3
+vn -0.70710678 0.70709377 -4.2895845e-3
+vn -0.72477456 0.68897341 -4.1796573e-3
+vn 0.72477456 0.68897341 -4.1796573e-3
+vn 0.70710678 0.70709377 -4.2895845e-3
+vn 0.92387953 0.38267639 -2.3215064e-3
+vn 1.00000000 -3.4100704e-15 1.1917062e-14
+vn 1.00000000 -2.6318386e-15 1.3707493e-17
+vn 1.00000000 -2.6318386e-15 1.3707493e-17
+vn 0.92387953 0.38267639 -2.3215064e-3
+vn 0.92387953 0.38267639 -2.3215064e-3
+vn 0.70710678 0.70709377 -4.2895845e-3
+vn 0.70710678 0.70709377 -4.2895845e-3
+vn 0.72477456 0.68897341 -4.1796573e-3
+vn 0.72477456 0.68897341 -4.1796573e-3
+vn -0.72477456 0.68897341 -4.1796573e-3
+vn -0.72477456 0.68897341 -4.1796573e-3
+vn -0.70710678 0.70709377 -4.2895845e-3
+vn -0.70710678 0.70709377 -4.2895845e-3
+vn -0.92387953 0.38267639 -2.3215064e-3
+vn -0.92387953 0.38267639 -2.3215064e-3
+vn -1.00000000 -2.6176889e-15 2.3806377e-14
+vn -1.00000000 -2.6176889e-15 2.3806377e-14
+vn -0.92387953 -0.38267639 2.3215064e-3
+vn -0.92387953 -0.38267639 2.3215064e-3
+vn -0.70710678 -0.70709377 4.2895845e-3
+vn -0.70710678 -0.70709377 4.2895845e-3
+vn -0.38268343 -0.92386253 5.6046122e-3
+vn -0.38268343 -0.92386253 5.6046122e-3
+vn 1.4149670e-17 -0.99998160 6.0663885e-3
+vn 1.4149670e-17 -0.99998160 6.0663885e-3
+vn 0.38268343 -0.92386253 5.6046122e-3
+vn 0.38268343 -0.92386253 5.6046122e-3
+vn 0.70710678 -0.70709377 4.2895845e-3
+vn 0.70710678 -0.70709377 4.2895845e-3
+vn 0.92387953 -0.38267639 2.3215064e-3
+vn 0.92387953 -0.38267639 2.3215064e-3
+vn 1.00000000 -1.4531198e-14 0.0000000e+0
+vn 1.00000000 -1.4531198e-14 0.0000000e+0
+vn -1.00000000 -1.4531198e-14 0.0000000e+0
+vn -1.00000000 -1.4531198e-14 0.0000000e+0
+vn 0.93482641 -0.35509850 2.1542051e-3
+vn 0.93482641 -0.35509850 2.1542051e-3
+vn -0.93482641 -0.35509850 2.1542051e-3
+vn -0.93482641 -0.35509850 2.1542051e-3
+vn 0.0000000e+0 0.99998160 -6.0663885e-3
+vn 0.0000000e+0 0.99998160 -6.0663885e-3
+vn -0.77242078 0.63509943 -3.8528308e-3
+vn -0.77242078 0.63509943 -3.8528308e-3
+vn -0.77242078 0.63509943 -3.8528308e-3
+vn 0.77242078 0.63509943 -3.8528308e-3
+vn 0.77242078 0.63509943 -3.8528308e-3
+vn 0.77242078 0.63509943 -3.8528308e-3
+vn -0.83412578 0.55156413 -3.3460639e-3
+vn -0.83412578 0.55156413 -3.3460639e-3
+vn 0.83412578 0.55156413 -3.3460639e-3
+vn 0.83412578 0.55156413 -3.3460639e-3
+vn 0.88877883 0.45832790 -2.7804463e-3
+vn 0.88877883 0.45832790 -2.7804463e-3
+vn -0.88877883 0.45832790 -2.7804463e-3
+vn -0.88877883 0.45832790 -2.7804463e-3
+vn 0.97768459 0.21007430 -1.2744158e-3
+vn 0.97768459 0.21007430 -1.2744158e-3
+vn 0.97768459 0.21007430 -1.2744158e-3
+vn 0.97768459 0.21007430 -1.2744158e-3
+vn 0.91897790 -0.39430177 2.3920318e-3
+vn 0.91897790 -0.39430177 2.3920318e-3
+vn -0.99392690 0.11004030 -6.6755950e-4
+vn -0.99392690 0.11004030 -6.6755950e-4
+vn -0.99392690 0.11004030 -6.6755950e-4
+vn -0.91897790 -0.39430177 2.3920318e-3
+vn -0.91897790 -0.39430177 2.3920318e-3
+vn -0.93556933 0.35313658 -2.1423031e-3
+vn -0.93556933 0.35313658 -2.1423031e-3
+vn -0.93556933 0.35313658 -2.1423031e-3
+vn 0.96397989 0.26597023 -1.6135084e-3
+vn 0.96397989 0.26597023 -1.6135084e-3
+g RPM_needle
+usemtl cylinder58_auv
+f 1/12/1 33/15/18 32/22/17 2/19/2
+f 1/12/1 116/12/84 102/6/70 16/4/16
+f 2/19/2 32/22/17 47/26/32 3/27/3
+f 2/19/2 115/17/83 116/12/84 1/12/1
+f 3/27/3 47/26/32 46/31/31 4/34/4
+f 3/27/3 114/23/82 115/17/83 2/19/2
+f 4/34/4 46/31/31 45/37/30 5/42/5
+f 4/34/4 87/39/56 91/39/59 113/34/81
+f 4/34/4 113/34/81 114/23/82 3/27/3
+f 5/42/5 45/37/30 44/43/29 6/49/6
+f 5/42/5 89/46/57 87/39/56 4/34/4
+f 6/49/6 44/43/29 43/45/28 7/53/7
+f 6/49/6 86/51/55 89/46/57 5/42/5
+f 6/49/6 90/51/58 86/51/55
+f 7/53/7 43/45/28 42/44/27 8/48/8
+f 7/53/7 111/52/79 112/49/80 6/49/6
+f 8/48/8 42/44/27 41/36/26 9/40/9
+f 8/48/8 110/47/78 111/52/79 7/53/7
+f 9/40/9 41/36/26 40/32/25 10/33/10
+f 9/40/9 109/40/77 110/47/78 8/48/8
+f 10/33/10 40/32/25 39/29/24 11/24/11
+f 10/33/10 108/33/76 109/40/77 9/40/9
+f 11/24/11 39/29/24 38/21/23 12/18/12
+f 11/24/11 107/28/75 108/33/76 10/33/10
+f 12/18/12 38/21/23 37/16/22 13/14/13
+f 12/18/12 106/20/74 107/28/75 11/24/11
+f 13/14/13 37/16/22 36/10/21 14/5/14
+f 13/14/13 105/14/73 106/20/74 12/18/12
+f 14/5/14 36/10/21 35/9/20 15/1/15
+f 14/5/14 104/7/72 105/14/73 13/14/13
+f 15/1/15 35/9/20 34/11/19 16/4/16
+f 15/1/15 103/2/71 104/7/72 14/5/14
+f 16/4/16 34/11/19 33/15/18 1/12/1
+f 16/4/16 102/6/70 103/2/71 15/1/15
+f 17/13/86 116/12/84 115/17/83 18/19/88
+f 18/19/87 115/17/83 114/23/82 19/23/90
+f 19/23/89 114/23/82 113/34/81 20/34/92
+f 20/34/91 113/34/81 91/39/59 88/38/153
+f 21/49/93 112/49/80 111/52/79 22/52/96
+f 22/52/95 111/52/79 110/47/78 23/48/98
+f 23/48/97 110/47/78 109/40/77 24/41/100
+f 24/41/99 109/40/77 108/33/76 25/35/102
+f 25/35/101 108/33/76 107/28/75 26/30/104
+f 26/30/103 107/28/75 106/20/74 27/20/106
+f 27/20/105 106/20/74 105/14/73 28/14/108
+f 28/14/107 105/14/73 104/7/72 29/7/110
+f 29/7/109 104/7/72 103/2/71 30/3/112
+f 30/3/111 103/2/71 102/6/70 31/8/114
+f 31/8/113 102/6/70 116/12/84 17/13/85
+f 32/22/17 48/25/33 47/26/32
+f 33/15/18 48/25/33 32/22/17
+f 34/11/19 48/25/33 33/15/18
+f 35/9/20 48/25/33 34/11/19
+f 36/10/21 48/25/33 35/9/20
+f 37/16/22 48/25/33 36/10/21
+f 38/21/23 48/25/33 37/16/22
+f 39/29/24 48/25/33 38/21/23
+f 40/32/25 48/25/33 39/29/24
+f 41/36/26 48/25/33 40/32/25
+f 42/44/27 48/25/33 41/36/26
+f 43/45/28 48/25/33 42/44/27
+f 44/43/29 48/25/33 43/45/28
+f 45/37/30 48/25/33 44/43/29
+f 46/31/31 48/25/33 45/37/30
+f 47/26/32 48/25/33 46/31/31
+f 49/56/34 52/58/36 57/66/39 54/64/37
+f 49/56/34 89/46/57 86/51/55 52/58/36
+f 50/54/116 101/54/69 99/59/67 55/59/120
+f 51/55/35 56/60/38 99/59/67 101/54/69
+f 51/55/35 87/39/56 89/46/57 49/56/34
+f 52/58/36 100/57/68 98/65/66 57/66/39
+f 53/57/118 58/65/121 98/65/66 100/57/68
+f 54/64/37 56/60/38 51/55/35 49/56/34
+f 54/64/37 57/66/39 82/72/52 84/67/54
+f 55/59/119 99/59/67 93/61/61 78/62/143
+f 56/60/38 76/62/50 93/61/61 99/59/67
+f 57/66/39 98/65/66 92/71/60 82/72/52
+f 58/65/122 80/72/148 92/71/60 98/65/66
+f 59/79/40 61/80/41 62/80/125 60/79/123
+f 59/79/40 74/74/48 73/77/47 61/80/41
+f 60/79/124 63/78/128 64/78/42 59/79/40
+f 61/80/41 73/77/47 95/77/63 62/80/126
+f 62/80/127 95/77/63 72/77/138
+f 63/78/130 94/73/62 70/73/46 64/78/42
+f 64/78/42 70/73/46 74/74/48 59/79/40
+f 65/70/43 66/76/44 73/77/47 74/74/48
+f 65/70/43 83/69/53 81/75/51 66/76/44
+f 66/76/44 81/75/51 97/76/65
+f 66/76/44 97/76/65 95/77/63 73/77/47
+f 67/76/131 97/76/65 81/75/51 79/75/145
+f 68/68/134 77/63/141 96/68/64
+f 68/68/133 96/68/64 94/73/62 71/73/135
+f 69/68/45 75/63/49 83/69/53 65/70/43
+f 69/68/45 96/68/64 77/63/139 75/63/49
+f 70/73/46 94/73/62 96/68/64 69/68/45
+f 71/73/136 94/73/62 63/78/129
+f 72/77/137 95/77/63 97/76/65 67/76/132
+f 74/74/48 70/73/46 69/68/45 65/70/43
+f 75/63/49 77/63/142 93/61/61 76/62/50
+f 76/62/50 84/67/54 83/69/53 75/63/49
+f 78/62/144 93/61/61 77/63/140
+f 79/75/147 92/71/60 80/72/149
+f 81/75/51 83/69/53 84/67/54 82/72/52
+f 82/72/52 92/71/60 79/75/146 81/75/51
+f 84/67/54 76/62/50 56/60/38 54/64/37
+f 85/50/152 112/49/80 21/49/94
+f 86/51/55 90/51/58 100/57/68 52/58/36
+f 88/38/154 91/39/59 101/54/69 50/54/115
+f 100/57/68 90/51/58 85/50/150 53/57/117
+f 101/54/69 91/39/59 87/39/56 51/55/35
+f 112/49/80 85/50/151 90/51/58 6/49/6
+o Oil_Needle
+#116 vertices, 111 faces
+v 0.10335588 0.33168440 -1.1113903e-2
+v 0.10314959 0.33272150 -1.1120194e-2
+v 0.10256211 0.33360071 -1.1125528e-2
+v 0.10168288 0.33418818 -1.1129092e-2
+v 0.10064577 0.33439447 -1.1130343e-2
+v 9.9608649e-2 0.33418818 -1.1129092e-2
+v 9.8729424e-2 0.33360071 -1.1125528e-2
+v 9.8141945e-2 0.33272150 -1.1120194e-2
+v 9.7935649e-2 0.33168440 -1.1113903e-2
+v 9.8141945e-2 0.33064731 -1.1107611e-2
+v 9.8729424e-2 0.32976810 -1.1102278e-2
+v 9.9608649e-2 0.32918063 -1.1098714e-2
+v 0.10064577 0.32897434 -1.1097462e-2
+v 0.10168288 0.32918063 -1.1098714e-2
+v 0.10256211 0.32976810 -1.1102278e-2
+v 0.10314959 0.33064731 -1.1107611e-2
+v 0.10335588 0.33168774 -1.0564690e-2
+v 0.10314959 0.33272483 -1.0570981e-2
+v 0.10256211 0.33360404 -1.0576315e-2
+v 0.10168288 0.33419151 -1.0579879e-2
+v 9.9608649e-2 0.33419151 -1.0579879e-2
+v 9.8729424e-2 0.33360404 -1.0576315e-2
+v 9.8141945e-2 0.33272483 -1.0570981e-2
+v 9.7935649e-2 0.33168774 -1.0564690e-2
+v 9.8141945e-2 0.33065064 -1.0558398e-2
+v 9.8729424e-2 0.32977143 -1.0553064e-2
+v 9.9608649e-2 0.32918396 -1.0549500e-2
+v 0.10064577 0.32897767 -1.0548249e-2
+v 0.10168288 0.32918396 -1.0549500e-2
+v 0.10256211 0.32977143 -1.0553064e-2
+v 0.10314959 0.33065064 -1.0558398e-2
+v 0.10271893 0.33254312 -1.1119112e-2
+v 0.10288974 0.33168440 -1.1113903e-2
+v 0.10271893 0.33082569 -1.1108693e-2
+v 0.10223250 0.33009770 -1.1104277e-2
+v 0.10150450 0.32961128 -1.1101326e-2
+v 0.10064577 0.32944047 -1.1100290e-2
+v 9.9787034e-2 0.32961128 -1.1101326e-2
+v 9.9059035e-2 0.33009770 -1.1104277e-2
+v 9.8572602e-2 0.33082569 -1.1108693e-2
+v 9.8401789e-2 0.33168440 -1.1113903e-2
+v 9.8572602e-2 0.33254312 -1.1119112e-2
+v 9.9059035e-2 0.33327111 -1.1123529e-2
+v 9.9787034e-2 0.33375753 -1.1126479e-2
+v 0.10064577 0.33392834 -1.1127516e-2
+v 0.10150450 0.33375753 -1.1126479e-2
+v 0.10223250 0.33327111 -1.1123529e-2
+v 0.10064577 0.33168440 -1.1113903e-2
+v 0.10064577 0.34356271 -1.1185963e-2
+v 0.10133026 0.34356604 -1.0636749e-2
+v 0.10133026 0.34356271 -1.1185963e-2
+v 9.9961269e-2 0.34356271 -1.1185963e-2
+v 9.9961269e-2 0.34356604 -1.0636749e-2
+v 0.10064577 0.34642771 -1.1203343e-2
+v 0.10133026 0.34643104 -1.0654130e-2
+v 0.10133026 0.34642771 -1.1203343e-2
+v 9.9961269e-2 0.34642771 -1.1203343e-2
+v 9.9961269e-2 0.34643104 -1.0654130e-2
+v 0.10064577 0.35040076 -1.1227446e-2
+v 0.10064577 0.35040409 -1.0678232e-2
+v 0.10039271 0.35040076 -1.1227446e-2
+v 0.10039271 0.35040409 -1.0678232e-2
+v 0.10089882 0.35040409 -1.0678232e-2
+v 0.10089882 0.35040076 -1.1227446e-2
+v 0.10064577 0.34866557 -1.1216919e-2
+v 9.9486913e-2 0.34871915 -1.1217244e-2
+v 9.9486913e-2 0.34872248 -1.0668031e-2
+v 0.10180462 0.34872248 -1.0668031e-2
+v 0.10180462 0.34871915 -1.1217244e-2
+v 0.10115123 0.34955995 -1.1222345e-2
+v 0.10115123 0.34956328 -1.0673132e-2
+v 0.10014030 0.34956328 -1.0673132e-2
+v 0.10014030 0.34955995 -1.1222345e-2
+v 0.10064577 0.34953316 -1.1222182e-2
+v 0.10223670 0.34794286 -1.1212535e-2
+v 0.10219038 0.34739647 -1.1209220e-2
+v 0.10223670 0.34794619 -1.0663322e-2
+v 0.10219038 0.34739980 -1.0660007e-2
+v 9.9054832e-2 0.34794619 -1.0663322e-2
+v 9.9101157e-2 0.34739980 -1.0660007e-2
+v 9.9054832e-2 0.34794286 -1.1212535e-2
+v 9.9101157e-2 0.34739647 -1.1209220e-2
+v 0.10064577 0.34796323 -1.1212658e-2
+v 0.10064577 0.34730221 -1.1208648e-2
+v 9.9961269e-2 0.33478186 -1.0583460e-2
+v 9.9961269e-2 0.33477853 -1.1132673e-2
+v 0.10133026 0.33477853 -1.1132673e-2
+v 0.10133026 0.33478186 -1.0583460e-2
+v 0.10064577 0.33488167 -1.1133299e-2
+v 9.9961269e-2 0.33478019 -1.0858067e-2
+v 0.10133026 0.33478019 -1.0858067e-2
+v 9.9101157e-2 0.34739813 -1.0934613e-2
+v 0.10219038 0.34739813 -1.0934613e-2
+v 0.10115123 0.34956162 -1.0947738e-2
+v 0.10014030 0.34956162 -1.0947738e-2
+v 0.10180462 0.34872081 -1.0942638e-2
+v 9.9486913e-2 0.34872081 -1.0942638e-2
+v 9.9961269e-2 0.34642937 -1.0928736e-2
+v 0.10133026 0.34642937 -1.0928736e-2
+v 9.9961269e-2 0.34356438 -1.0911356e-2
+v 0.10133026 0.34356438 -1.0911356e-2
+v 0.10314959 0.33064897 -1.0833005e-2
+v 0.10256211 0.32976976 -1.0827671e-2
+v 0.10168288 0.32918229 -1.0824107e-2
+v 0.10064577 0.32897600 -1.0822856e-2
+v 9.9608649e-2 0.32918229 -1.0824107e-2
+v 9.8729424e-2 0.32976976 -1.0827671e-2
+v 9.8141945e-2 0.33064897 -1.0833005e-2
+v 9.7935649e-2 0.33168607 -1.0839296e-2
+v 9.8141945e-2 0.33272317 -1.0845588e-2
+v 9.8729424e-2 0.33360238 -1.0850922e-2
+v 9.9608649e-2 0.33418985 -1.0854485e-2
+v 0.10168288 0.33418985 -1.0854485e-2
+v 0.10256211 0.33360238 -1.0850922e-2
+v 0.10314959 0.33272317 -1.0845588e-2
+v 0.10335588 0.33168607 -1.0839296e-2
+vt 4.5181610e-2 0.19645560
+vt 4.5181610e-2 0.19645560
+vt 4.5181610e-2 0.19645560
+vt 5.6696657e-2 0.25434565
+vt 5.6696657e-2 0.13856555
+vt 5.6696657e-2 0.25434565
+vt 5.6696657e-2 0.13856555
+vt 5.6696657e-2 0.25434565
+vt 7.1200736e-2 0.19645560
+vt 8.0735195e-2 0.14852264
+vt 8.0735195e-2 0.24438856
+vt 8.9488736e-2 0.30342247
+vt 8.9488736e-2 0.30342247
+vt 8.9488736e-2 8.9488736e-2
+vt 0.10788704 0.28502417
+vt 0.10788704 0.10788704
+vt 0.13856555 0.33621455
+vt 0.13856555 5.6696657e-2
+vt 0.13856555 0.33621455
+vt 0.13856555 5.6696657e-2
+vt 0.14852264 8.0735195e-2
+vt 0.14852264 0.31217601
+vt 0.19645560 0.34772960
+vt 0.19645560 4.5181610e-2
+vt 0.19645560 0.19645560
+vt 0.19645560 0.32171047
+vt 0.19645560 0.34772960
+vt 0.19645560 4.5181610e-2
+vt 0.19645560 7.1200736e-2
+vt 0.19645560 4.5181610e-2
+vt 0.24438856 0.31217601
+vt 0.24438856 8.0735195e-2
+vt 0.25434565 5.6696657e-2
+vt 0.25434565 0.33621455
+vt 0.25434565 5.6696657e-2
+vt 0.28502417 0.10788704
+vt 0.28502417 0.28502417
+vt 0.29156447 0.34559794
+vt 0.29156447 0.34559794
+vt 0.30342247 8.9488736e-2
+vt 0.30342247 8.9488736e-2
+vt 0.30342247 0.30342247
+vt 0.31217601 0.24438856
+vt 0.31217601 0.14852264
+vt 0.32171047 0.19645560
+vt 0.32265239 0.32265239
+vt 0.33621455 0.13856555
+vt 0.33621455 0.13856555
+vt 0.33621455 0.25434565
+vt 0.34559794 0.29156447
+vt 0.34559794 0.29156447
+vt 0.34772960 0.19645560
+vt 0.34772960 0.19645560
+vt 0.63827795 0.69231142
+vt 0.63827795 0.69231142
+vt 0.66529468 0.66529468
+vt 0.69231142 0.63827795
+vt 0.69231142 0.63827795
+vt 0.75135991 0.80539338
+vt 0.75135991 0.80539338
+vt 0.75564880 0.87757861
+vt 0.75564880 0.87757861
+vt 0.77538672 0.90097336
+vt 0.77837665 0.77837665
+vt 0.80539338 0.75135991
+vt 0.80539338 0.75135991
+vt 0.81289345 0.81289345
+vt 0.82308087 0.91455951
+vt 0.83898386 0.83898386
+vt 0.86670560 0.86670560
+vt 0.87757861 0.75564880
+vt 0.87757861 0.75564880
+vt 0.88205652 0.92195728
+vt 0.90094960 0.90094960
+vt 0.90097336 0.77538672
+vt 0.91455951 0.82308087
+vt 0.92195728 0.88205652
+vt 0.92520560 0.94518161
+vt 0.93519360 0.93519360
+vt 0.94518161 0.92520560
+vn 0.70021451 -4.3309921e-3 -0.71391938
+vn 0.64691385 0.26362457 -0.71554494
+vn 0.49512643 0.49078632 -0.71692301
+vn 0.39514579 0.37054157 -0.84057049
+vn -2.9952287e-17 -6.0663885e-3 -0.99998160
+vn -0.54150447 0.43814436 -0.71749734
+vn -0.49512643 0.49078632 -0.71692301
+vn -0.64691385 0.26362457 -0.71554494
+vn -0.70021451 -4.3309921e-3 -0.71391938
+vn -0.64691385 -0.27228655 -0.71229383
+vn -0.49512643 -0.49944831 -0.71091575
+vn -0.26796049 -0.65123294 -0.70999495
+vn -3.9631216e-16 -0.70453261 -0.70967161
+vn 0.26796049 -0.65123294 -0.70999495
+vn 0.49512643 -0.49944831 -0.71091575
+vn 0.64691385 -0.27228655 -0.71229383
+vn -5.9904574e-16 -6.0663885e-3 -0.99998160
+vn -1.3381344e-15 -6.0663885e-3 -0.99998160
+vn -1.4976144e-15 -6.0663885e-3 -0.99998160
+vn -1.2681130e-15 -6.0663885e-3 -0.99998160
+vn -1.4333486e-15 -6.0663885e-3 -0.99998160
+vn 5.0832225e-29 -6.0663885e-3 -0.99998160
+vn 1.4633009e-15 -6.0663885e-3 -0.99998160
+vn 1.2980653e-15 -6.0663885e-3 -0.99998160
+vn 1.5575189e-15 -6.0663885e-3 -0.99998160
+vn 1.4579436e-15 -6.0663885e-3 -0.99998160
+vn 6.5895031e-16 -6.0663885e-3 -0.99998160
+vn 6.0430342e-16 -6.0663885e-3 -0.99998160
+vn -1.8457296e-16 -6.0663885e-3 -0.99998160
+vn -2.9952287e-17 -6.0663885e-3 -0.99998160
+vn 1.3964453e-16 -6.0663885e-3 -0.99998160
+vn -6.1927956e-16 -6.0663885e-3 -0.99998160
+vn 2.0103627e-29 -6.0663885e-3 -0.99998160
+vn 6.4341468e-30 -6.0663885e-3 -0.99998160
+vn 0.70710678 -4.2895845e-3 -0.70709377
+vn -0.70710678 -4.2895845e-3 -0.70709377
+vn 2.6286898e-17 -6.0663885e-3 -0.99998160
+vn 0.63839385 -0.24692867 -0.72902643
+vn -0.63839385 -0.24692867 -0.72902643
+vn -3.7318810e-27 0.70280419 -0.71138335
+vn -0.50655174 0.67772518 -0.53300462
+vn 0.50655174 0.67772518 -0.53300462
+vn -5.5220263e-30 -6.0663885e-3 -0.99998160
+vn -0.58895471 0.38514938 -0.71048738
+vn 0.58895471 0.38514938 -0.71048738
+vn 0.62306059 0.31697545 -0.71506787
+vn -0.62306059 0.31697545 -0.71506787
+vn 3.3822411e-29 -6.0663885e-3 -0.99998160
+vn 0.67576857 0.14081785 -0.72353795
+vn 0.63259624 -0.27582558 -0.72370039
+vn -0.78181672 0.24960262 -0.57136779
+vn -0.63259624 -0.27582558 -0.72370039
+vn -6.6560139e-30 -6.0663885e-3 -0.99998160
+vn 2.6286898e-17 -6.0663885e-3 -0.99998160
+vn -0.66902274 0.18022153 -0.72106086
+vn 0.66902274 0.18022153 -0.72106086
+vn 1.3952977e-29 -6.0663885e-3 -0.99998160
+vn -0.96397989 0.26597023 -1.6135084e-3
+vn 0.96397989 0.26597023 -1.6135084e-3
+vn -0.91897790 -0.39430177 2.3920318e-3
+vn 0.91897790 -0.39430177 2.3920318e-3
+vn 0.88877883 0.45832790 -2.7804463e-3
+vn -0.88877883 0.45832790 -2.7804463e-3
+vn 0.83412578 0.55156413 -3.3460639e-3
+vn -0.83412578 0.55156413 -3.3460639e-3
+vn -0.93482641 -0.35509850 2.1542051e-3
+vn 0.93482641 -0.35509850 2.1542051e-3
+vn -1.00000000 -1.4531198e-14 -1.4230830e-14
+vn 1.00000000 -1.2109332e-14 8.6126986e-15
+vn 0.92387953 -0.38267639 2.3215064e-3
+vn 0.70710678 -0.70709377 4.2895845e-3
+vn 0.38268343 -0.92386253 5.6046122e-3
+vn -1.1319736e-15 -0.99998160 6.0663885e-3
+vn -0.38268343 -0.92386253 5.6046122e-3
+vn -0.70710678 -0.70709377 4.2895845e-3
+vn -0.92387953 -0.38267639 2.3215064e-3
+vn -1.00000000 -2.2710220e-15 5.9619855e-15
+vn -0.92387953 0.38267639 -2.3215064e-3
+vn -0.70710678 0.70709377 -4.2895845e-3
+vn -0.72477456 0.68897341 -4.1796573e-3
+vn 0.72477456 0.68897341 -4.1796573e-3
+vn 0.70710678 0.70709377 -4.2895845e-3
+vn 0.92387953 0.38267639 -2.3215064e-3
+vn 1.00000000 -2.2710220e-15 -5.9343494e-15
+vn 1.00000000 0.0000000e+0 -1.1896335e-14
+vn 1.00000000 0.0000000e+0 -1.1896335e-14
+vn 0.92387953 0.38267639 -2.3215064e-3
+vn 0.92387953 0.38267639 -2.3215064e-3
+vn 0.70710678 0.70709377 -4.2895845e-3
+vn 0.70710678 0.70709377 -4.2895845e-3
+vn 0.72477456 0.68897341 -4.1796573e-3
+vn 0.72477456 0.68897341 -4.1796573e-3
+vn -0.72477456 0.68897341 -4.1796573e-3
+vn -0.72477456 0.68897341 -4.1796573e-3
+vn -0.70710678 0.70709377 -4.2895845e-3
+vn -0.70710678 0.70709377 -4.2895845e-3
+vn -0.92387953 0.38267639 -2.3215064e-3
+vn -0.92387953 0.38267639 -2.3215064e-3
+vn -1.00000000 0.0000000e+0 0.0000000e+0
+vn -1.00000000 0.0000000e+0 0.0000000e+0
+vn -0.92387953 -0.38267639 2.3215064e-3
+vn -0.92387953 -0.38267639 2.3215064e-3
+vn -0.70710678 -0.70709377 4.2895845e-3
+vn -0.70710678 -0.70709377 4.2895845e-3
+vn -0.38268343 -0.92386253 5.6046122e-3
+vn -0.38268343 -0.92386253 5.6046122e-3
+vn -1.6979604e-15 -0.99998160 6.0663885e-3
+vn -1.6979604e-15 -0.99998160 6.0663885e-3
+vn 0.38268343 -0.92386253 5.6046122e-3
+vn 0.38268343 -0.92386253 5.6046122e-3
+vn 0.70710678 -0.70709377 4.2895845e-3
+vn 0.70710678 -0.70709377 4.2895845e-3
+vn 0.92387953 -0.38267639 2.3215064e-3
+vn 0.92387953 -0.38267639 2.3215064e-3
+vn 1.00000000 -1.2109332e-14 1.7225397e-14
+vn 1.00000000 -1.2109332e-14 1.7225397e-14
+vn -1.00000000 -1.4531198e-14 -1.7225397e-14
+vn -1.00000000 -1.4531198e-14 -1.7225397e-14
+vn 0.93482641 -0.35509850 2.1542051e-3
+vn 0.93482641 -0.35509850 2.1542051e-3
+vn -0.93482641 -0.35509850 2.1542051e-3
+vn -0.93482641 -0.35509850 2.1542051e-3
+vn -5.3453215e-27 0.99998160 -6.0663885e-3
+vn -5.3453215e-27 0.99998160 -6.0663885e-3
+vn -0.77242078 0.63509943 -3.8528308e-3
+vn -0.77242078 0.63509943 -3.8528308e-3
+vn -0.77242078 0.63509943 -3.8528308e-3
+vn 0.77242078 0.63509943 -3.8528308e-3
+vn 0.77242078 0.63509943 -3.8528308e-3
+vn 0.77242078 0.63509943 -3.8528308e-3
+vn -0.83412578 0.55156413 -3.3460639e-3
+vn -0.83412578 0.55156413 -3.3460639e-3
+vn 0.83412578 0.55156413 -3.3460639e-3
+vn 0.83412578 0.55156413 -3.3460639e-3
+vn 0.88877883 0.45832790 -2.7804463e-3
+vn 0.88877883 0.45832790 -2.7804463e-3
+vn -0.88877883 0.45832790 -2.7804463e-3
+vn -0.88877883 0.45832790 -2.7804463e-3
+vn 0.97768459 0.21007430 -1.2744158e-3
+vn 0.97768459 0.21007430 -1.2744158e-3
+vn 0.97768459 0.21007430 -1.2744158e-3
+vn 0.97768459 0.21007430 -1.2744158e-3
+vn 0.91897790 -0.39430177 2.3920318e-3
+vn 0.91897790 -0.39430177 2.3920318e-3
+vn -0.99392690 0.11004030 -6.6755950e-4
+vn -0.99392690 0.11004030 -6.6755950e-4
+vn -0.99392690 0.11004030 -6.6755950e-4
+vn -0.91897790 -0.39430177 2.3920318e-3
+vn -0.91897790 -0.39430177 2.3920318e-3
+vn -0.93556933 0.35313658 -2.1423031e-3
+vn -0.93556933 0.35313658 -2.1423031e-3
+vn -0.93556933 0.35313658 -2.1423031e-3
+vn 0.96397989 0.26597023 -1.6135084e-3
+vn 0.96397989 0.26597023 -1.6135084e-3
+g Oil_Needle
+usemtl cylinder58_auv
+f 117/92/155 149/95/172 148/102/171 118/99/156
+f 117/92/155 232/92/238 218/86/224 132/84/170
+f 118/99/156 148/102/171 163/106/186 119/107/157
+f 118/99/156 231/97/237 232/92/238 117/92/155
+f 119/107/157 163/106/186 162/111/185 120/114/158
+f 119/107/157 230/103/236 231/97/237 118/99/156
+f 120/114/158 162/111/185 161/117/184 121/122/159
+f 120/114/158 203/119/210 207/119/213 229/114/235
+f 120/114/158 229/114/235 230/103/236 119/107/157
+f 121/122/159 161/117/184 160/123/183 122/129/160
+f 121/122/159 205/126/211 203/119/210 120/114/158
+f 122/129/160 160/123/183 159/125/182 123/133/161
+f 122/129/160 202/131/209 205/126/211 121/122/159
+f 122/129/160 206/131/212 202/131/209
+f 123/133/161 159/125/182 158/124/181 124/128/162
+f 123/133/161 227/132/233 228/129/234 122/129/160
+f 124/128/162 158/124/181 157/116/180 125/120/163
+f 124/128/162 226/127/232 227/132/233 123/133/161
+f 125/120/163 157/116/180 156/112/179 126/113/164
+f 125/120/163 225/120/231 226/127/232 124/128/162
+f 126/113/164 156/112/179 155/109/178 127/104/165
+f 126/113/164 224/113/230 225/120/231 125/120/163
+f 127/104/165 155/109/178 154/101/177 128/98/166
+f 127/104/165 223/108/229 224/113/230 126/113/164
+f 128/98/166 154/101/177 153/96/176 129/94/167
+f 128/98/166 222/100/228 223/108/229 127/104/165
+f 129/94/167 153/96/176 152/90/175 130/85/168
+f 129/94/167 221/94/227 222/100/228 128/98/166
+f 130/85/168 152/90/175 151/89/174 131/81/169
+f 130/85/168 220/87/226 221/94/227 129/94/167
+f 131/81/169 151/89/174 150/91/173 132/84/170
+f 131/81/169 219/82/225 220/87/226 130/85/168
+f 132/84/170 150/91/173 149/95/172 117/92/155
+f 132/84/170 218/86/224 219/82/225 131/81/169
+f 133/93/240 232/92/238 231/97/237 134/99/242
+f 134/99/241 231/97/237 230/103/236 135/103/244
+f 135/103/243 230/103/236 229/114/235 136/114/246
+f 136/114/245 229/114/235 207/119/213 204/118/307
+f 137/129/247 228/129/234 227/132/233 138/132/250
+f 138/132/249 227/132/233 226/127/232 139/128/252
+f 139/128/251 226/127/232 225/120/231 140/121/254
+f 140/121/253 225/120/231 224/113/230 141/115/256
+f 141/115/255 224/113/230 223/108/229 142/110/258
+f 142/110/257 223/108/229 222/100/228 143/100/260
+f 143/100/259 222/100/228 221/94/227 144/94/262
+f 144/94/261 221/94/227 220/87/226 145/87/264
+f 145/87/263 220/87/226 219/82/225 146/83/266
+f 146/83/265 219/82/225 218/86/224 147/88/268
+f 147/88/267 218/86/224 232/92/238 133/93/239
+f 148/102/171 164/105/187 163/106/186
+f 149/95/172 164/105/187 148/102/171
+f 150/91/173 164/105/187 149/95/172
+f 151/89/174 164/105/187 150/91/173
+f 152/90/175 164/105/187 151/89/174
+f 153/96/176 164/105/187 152/90/175
+f 154/101/177 164/105/187 153/96/176
+f 155/109/178 164/105/187 154/101/177
+f 156/112/179 164/105/187 155/109/178
+f 157/116/180 164/105/187 156/112/179
+f 158/124/181 164/105/187 157/116/180
+f 159/125/182 164/105/187 158/124/181
+f 160/123/183 164/105/187 159/125/182
+f 161/117/184 164/105/187 160/123/183
+f 162/111/185 164/105/187 161/117/184
+f 163/106/186 164/105/187 162/111/185
+f 165/136/188 168/138/190 173/146/193 170/144/191
+f 165/136/188 205/126/211 202/131/209 168/138/190
+f 166/134/270 217/134/223 215/139/221 171/139/274
+f 167/135/189 172/140/192 215/139/221 217/134/223
+f 167/135/189 203/119/210 205/126/211 165/136/188
+f 168/138/190 216/137/222 214/145/220 173/146/193
+f 169/137/272 174/145/275 214/145/220 216/137/222
+f 170/144/191 172/140/192 167/135/189 165/136/188
+f 170/144/191 173/146/193 198/152/206 200/147/208
+f 171/139/273 215/139/221 209/141/215 194/142/297
+f 172/140/192 192/142/204 209/141/215 215/139/221
+f 173/146/193 214/145/220 208/151/214 198/152/206
+f 174/145/276 196/152/302 208/151/214 214/145/220
+f 175/159/194 177/160/195 178/160/279 176/159/277
+f 175/159/194 190/154/202 189/157/201 177/160/195
+f 176/159/278 179/158/282 180/158/196 175/159/194
+f 177/160/195 189/157/201 211/157/217 178/160/280
+f 178/160/281 211/157/217 188/157/292
+f 179/158/284 210/153/216 186/153/200 180/158/196
+f 180/158/196 186/153/200 190/154/202 175/159/194
+f 181/150/197 182/156/198 189/157/201 190/154/202
+f 181/150/197 199/149/207 197/155/205 182/156/198
+f 182/156/198 197/155/205 213/156/219
+f 182/156/198 213/156/219 211/157/217 189/157/201
+f 183/156/285 213/156/219 197/155/205 195/155/299
+f 184/148/288 193/143/295 212/148/218
+f 184/148/287 212/148/218 210/153/216 187/153/289
+f 185/148/199 191/143/203 199/149/207 181/150/197
+f 185/148/199 212/148/218 193/143/293 191/143/203
+f 186/153/200 210/153/216 212/148/218 185/148/199
+f 187/153/290 210/153/216 179/158/283
+f 188/157/291 211/157/217 213/156/219 183/156/286
+f 190/154/202 186/153/200 185/148/199 181/150/197
+f 191/143/203 193/143/296 209/141/215 192/142/204
+f 192/142/204 200/147/208 199/149/207 191/143/203
+f 194/142/298 209/141/215 193/143/294
+f 195/155/301 208/151/214 196/152/303
+f 197/155/205 199/149/207 200/147/208 198/152/206
+f 198/152/206 208/151/214 195/155/300 197/155/205
+f 200/147/208 192/142/204 172/140/192 170/144/191
+f 201/130/306 228/129/234 137/129/248
+f 202/131/209 206/131/212 216/137/222 168/138/190
+f 204/118/308 207/119/213 217/134/223 166/134/269
+f 216/137/222 206/131/212 201/130/304 169/137/271
+f 217/134/223 207/119/213 203/119/210 167/135/189
+f 228/129/234 201/130/305 206/131/212 122/129/160
+o Temp_Needle
+#116 vertices, 111 faces
+v 0.10380410 0.39421600 -1.1576955e-2
+v 0.10359780 0.39525310 -1.1583247e-2
+v 0.10301032 0.39613231 -1.1588581e-2
+v 0.10213110 0.39671978 -1.1592144e-2
+v 0.10109398 0.39692607 -1.1593396e-2
+v 0.10005686 0.39671978 -1.1592144e-2
+v 9.9177639e-2 0.39613231 -1.1588581e-2
+v 9.8590159e-2 0.39525310 -1.1583247e-2
+v 9.8383864e-2 0.39421600 -1.1576955e-2
+v 9.8590159e-2 0.39317891 -1.1570664e-2
+v 9.9177639e-2 0.39229970 -1.1565330e-2
+v 0.10005686 0.39171223 -1.1561766e-2
+v 0.10109398 0.39150594 -1.1560515e-2
+v 0.10213110 0.39171223 -1.1561766e-2
+v 0.10301032 0.39229970 -1.1565330e-2
+v 0.10359780 0.39317891 -1.1570664e-2
+v 0.10380410 0.39421933 -1.1027742e-2
+v 0.10359780 0.39525643 -1.1034034e-2
+v 0.10301032 0.39613564 -1.1039367e-2
+v 0.10213110 0.39672311 -1.1042931e-2
+v 0.10005686 0.39672311 -1.1042931e-2
+v 9.9177639e-2 0.39613564 -1.1039367e-2
+v 9.8590159e-2 0.39525643 -1.1034034e-2
+v 9.8383864e-2 0.39421933 -1.1027742e-2
+v 9.8590159e-2 0.39318224 -1.1021451e-2
+v 9.9177639e-2 0.39230303 -1.1016117e-2
+v 0.10005686 0.39171556 -1.1012553e-2
+v 0.10109398 0.39150927 -1.1011301e-2
+v 0.10213110 0.39171556 -1.1012553e-2
+v 0.10301032 0.39230303 -1.1016117e-2
+v 0.10359780 0.39318224 -1.1021451e-2
+v 0.10316714 0.39507472 -1.1582165e-2
+v 0.10333796 0.39421600 -1.1576955e-2
+v 0.10316714 0.39335729 -1.1571746e-2
+v 0.10268071 0.39262930 -1.1567330e-2
+v 0.10195271 0.39214288 -1.1564379e-2
+v 0.10109398 0.39197207 -1.1563342e-2
+v 0.10023525 0.39214288 -1.1564379e-2
+v 9.9507250e-2 0.39262930 -1.1567330e-2
+v 9.9020817e-2 0.39335729 -1.1571746e-2
+v 9.8850004e-2 0.39421600 -1.1576955e-2
+v 9.9020817e-2 0.39507472 -1.1582165e-2
+v 9.9507250e-2 0.39580270 -1.1586581e-2
+v 0.10023525 0.39628913 -1.1589532e-2
+v 0.10109398 0.39645994 -1.1590568e-2
+v 0.10195271 0.39628913 -1.1589532e-2
+v 0.10268071 0.39580270 -1.1586581e-2
+v 0.10109398 0.39421600 -1.1576955e-2
+v 0.10109398 0.40609431 -1.1649015e-2
+v 0.10177848 0.40609764 -1.1099802e-2
+v 0.10177848 0.40609431 -1.1649015e-2
+v 0.10040948 0.40609431 -1.1649015e-2
+v 0.10040948 0.40609764 -1.1099802e-2
+v 0.10109398 0.40895931 -1.1666396e-2
+v 0.10177848 0.40896264 -1.1117182e-2
+v 0.10177848 0.40895931 -1.1666396e-2
+v 0.10040948 0.40895931 -1.1666396e-2
+v 0.10040948 0.40896264 -1.1117182e-2
+v 0.10109398 0.41293235 -1.1690498e-2
+v 0.10109398 0.41293569 -1.1141285e-2
+v 0.10084092 0.41293235 -1.1690498e-2
+v 0.10084092 0.41293569 -1.1141285e-2
+v 0.10134704 0.41293569 -1.1141285e-2
+v 0.10134704 0.41293235 -1.1690498e-2
+v 0.10109398 0.41119717 -1.1679972e-2
+v 9.9935128e-2 0.41125075 -1.1680297e-2
+v 9.9935128e-2 0.41125408 -1.1131083e-2
+v 0.10225283 0.41125408 -1.1131083e-2
+v 0.10225283 0.41125075 -1.1680297e-2
+v 0.10159944 0.41209155 -1.1685397e-2
+v 0.10159944 0.41209488 -1.1136184e-2
+v 0.10058852 0.41209488 -1.1136184e-2
+v 0.10058852 0.41209155 -1.1685397e-2
+v 0.10109398 0.41206476 -1.1685235e-2
+v 0.10268491 0.41047446 -1.1675587e-2
+v 0.10263859 0.40992806 -1.1672273e-2
+v 0.10268491 0.41047779 -1.1126374e-2
+v 0.10263859 0.40993140 -1.1123059e-2
+v 9.9503047e-2 0.41047779 -1.1126374e-2
+v 9.9549371e-2 0.40993140 -1.1123059e-2
+v 9.9503047e-2 0.41047446 -1.1675587e-2
+v 9.9549371e-2 0.40992806 -1.1672273e-2
+v 0.10109398 0.41049483 -1.1675711e-2
+v 0.10109398 0.40983381 -1.1671701e-2
+v 0.10040948 0.39731346 -1.1046513e-2
+v 0.10040948 0.39731013 -1.1595726e-2
+v 0.10177848 0.39731013 -1.1595726e-2
+v 0.10177848 0.39731346 -1.1046513e-2
+v 0.10109398 0.39741327 -1.1596352e-2
+v 0.10040948 0.39731179 -1.1321119e-2
+v 0.10177848 0.39731179 -1.1321119e-2
+v 9.9549371e-2 0.40992973 -1.1397666e-2
+v 0.10263859 0.40992973 -1.1397666e-2
+v 0.10159944 0.41209322 -1.1410791e-2
+v 0.10058852 0.41209322 -1.1410791e-2
+v 0.10225283 0.41125241 -1.1405690e-2
+v 9.9935128e-2 0.41125241 -1.1405690e-2
+v 0.10040948 0.40896097 -1.1391789e-2
+v 0.10177848 0.40896097 -1.1391789e-2
+v 0.10040948 0.40609598 -1.1374408e-2
+v 0.10177848 0.40609598 -1.1374408e-2
+v 0.10359780 0.39318057 -1.1296057e-2
+v 0.10301032 0.39230136 -1.1290723e-2
+v 0.10213110 0.39171389 -1.1287160e-2
+v 0.10109398 0.39150760 -1.1285908e-2
+v 0.10005686 0.39171389 -1.1287160e-2
+v 9.9177639e-2 0.39230136 -1.1290723e-2
+v 9.8590159e-2 0.39318057 -1.1296057e-2
+v 9.8383864e-2 0.39421767 -1.1302349e-2
+v 9.8590159e-2 0.39525477 -1.1308640e-2
+v 9.9177639e-2 0.39613398 -1.1313974e-2
+v 0.10005686 0.39672144 -1.1317538e-2
+v 0.10213110 0.39672144 -1.1317538e-2
+v 0.10301032 0.39613398 -1.1313974e-2
+v 0.10359780 0.39525477 -1.1308640e-2
+v 0.10380410 0.39421767 -1.1302349e-2
+vt 4.5181610e-2 0.19645560
+vt 4.5181610e-2 0.19645560
+vt 4.5181610e-2 0.19645560
+vt 5.6696657e-2 0.25434565
+vt 5.6696657e-2 0.13856555
+vt 5.6696657e-2 0.25434565
+vt 5.6696657e-2 0.13856555
+vt 5.6696657e-2 0.25434565
+vt 7.1200736e-2 0.19645560
+vt 8.0735195e-2 0.14852264
+vt 8.0735195e-2 0.24438856
+vt 8.9488736e-2 0.30342247
+vt 8.9488736e-2 0.30342247
+vt 8.9488736e-2 8.9488736e-2
+vt 0.10788704 0.28502417
+vt 0.10788704 0.10788704
+vt 0.13856555 0.33621455
+vt 0.13856555 5.6696657e-2
+vt 0.13856555 0.33621455
+vt 0.13856555 5.6696657e-2
+vt 0.14852264 8.0735195e-2
+vt 0.14852264 0.31217601
+vt 0.19645560 0.34772960
+vt 0.19645560 4.5181610e-2
+vt 0.19645560 0.19645560
+vt 0.19645560 0.32171047
+vt 0.19645560 0.34772960
+vt 0.19645560 4.5181610e-2
+vt 0.19645560 7.1200736e-2
+vt 0.19645560 4.5181610e-2
+vt 0.24438856 0.31217601
+vt 0.24438856 8.0735195e-2
+vt 0.25434565 5.6696657e-2
+vt 0.25434565 0.33621455
+vt 0.25434565 5.6696657e-2
+vt 0.28502417 0.10788704
+vt 0.28502417 0.28502417
+vt 0.29156447 0.34559794
+vt 0.29156447 0.34559794
+vt 0.30342247 8.9488736e-2
+vt 0.30342247 8.9488736e-2
+vt 0.30342247 0.30342247
+vt 0.31217601 0.24438856
+vt 0.31217601 0.14852264
+vt 0.32171047 0.19645560
+vt 0.32265239 0.32265239
+vt 0.33621455 0.13856555
+vt 0.33621455 0.13856555
+vt 0.33621455 0.25434565
+vt 0.34559794 0.29156447
+vt 0.34559794 0.29156447
+vt 0.34772960 0.19645560
+vt 0.34772960 0.19645560
+vt 0.63827795 0.69231142
+vt 0.63827795 0.69231142
+vt 0.66529468 0.66529468
+vt 0.69231142 0.63827795
+vt 0.69231142 0.63827795
+vt 0.75135991 0.80539338
+vt 0.75135991 0.80539338
+vt 0.75564880 0.87757861
+vt 0.75564880 0.87757861
+vt 0.77538672 0.90097336
+vt 0.77837665 0.77837665
+vt 0.80539338 0.75135991
+vt 0.80539338 0.75135991
+vt 0.81289345 0.81289345
+vt 0.82308087 0.91455951
+vt 0.83898386 0.83898386
+vt 0.86670560 0.86670560
+vt 0.87757861 0.75564880
+vt 0.87757861 0.75564880
+vt 0.88205652 0.92195728
+vt 0.90094960 0.90094960
+vt 0.90097336 0.77538672
+vt 0.91455951 0.82308087
+vt 0.92195728 0.88205652
+vt 0.92520560 0.94518161
+vt 0.93519360 0.93519360
+vt 0.94518161 0.92520560
+vn 0.70021451 -4.3309921e-3 -0.71391938
+vn 0.64691385 0.26362457 -0.71554494
+vn 0.49512643 0.49078632 -0.71692301
+vn 0.39514579 0.37054157 -0.84057049
+vn -2.9952287e-17 -6.0663885e-3 -0.99998160
+vn -0.54150447 0.43814436 -0.71749734
+vn -0.49512643 0.49078632 -0.71692301
+vn -0.64691385 0.26362457 -0.71554494
+vn -0.70021451 -4.3309921e-3 -0.71391938
+vn -0.64691385 -0.27228655 -0.71229383
+vn -0.49512643 -0.49944831 -0.71091575
+vn -0.26796049 -0.65123294 -0.70999495
+vn -9.9078040e-16 -0.70453261 -0.70967161
+vn 0.26796049 -0.65123294 -0.70999495
+vn 0.49512643 -0.49944831 -0.71091575
+vn 0.64691385 -0.27228655 -0.71229383
+vn -8.3866404e-16 -6.0663885e-3 -0.99998160
+vn -1.6376573e-15 -6.0663885e-3 -0.99998160
+vn -2.0569893e-15 -6.0663885e-3 -0.99998160
+vn -1.0633062e-15 -6.0663885e-3 -0.99998160
+vn -1.2466838e-16 -6.0663885e-3 -0.99998160
+vn 1.6516775e-29 -6.0663885e-3 -0.99998160
+vn 7.9739952e-17 -6.0663885e-3 -0.99998160
+vn 1.0782823e-15 -6.0663885e-3 -0.99998160
+vn 2.1168939e-15 -6.0663885e-3 -0.99998160
+vn 1.6376573e-15 -6.0663885e-3 -0.99998160
+vn 7.7875946e-16 -6.0663885e-3 -0.99998160
+vn -2.4487597e-16 -6.0663885e-3 -0.99998160
+vn -6.4417339e-16 -6.0663885e-3 -0.99998160
+vn -2.9952287e-17 -6.0663885e-3 -0.99998160
+vn 6.2919725e-16 -6.0663885e-3 -0.99998160
+vn 1.9994754e-16 -6.0663885e-3 -0.99998160
+vn 2.9372743e-29 -6.0663885e-3 -0.99998160
+vn 3.6608076e-30 -6.0663885e-3 -0.99998160
+vn 0.70710678 -4.2895845e-3 -0.70709377
+vn -0.70710678 -4.2895845e-3 -0.70709377
+vn 6.4094949e-31 -6.0663885e-3 -0.99998160
+vn 0.63839385 -0.24692867 -0.72902643
+vn -0.63839385 -0.24692867 -0.72902643
+vn -3.7510556e-27 0.70280419 -0.71138335
+vn -0.50655174 0.67772518 -0.53300462
+vn 0.50655174 0.67772518 -0.53300462
+vn -2.0954118e-30 -6.0663885e-3 -0.99998160
+vn -0.58895471 0.38514938 -0.71048738
+vn 0.58895471 0.38514938 -0.71048738
+vn 0.62306059 0.31697545 -0.71506787
+vn -0.62306059 0.31697545 -0.71506787
+vn 2.3024878e-29 -6.0663885e-3 -0.99998160
+vn 0.67576857 0.14081785 -0.72353795
+vn 0.63259624 -0.27582558 -0.72370039
+vn -0.78181672 0.24960262 -0.57136779
+vn -0.63259624 -0.27582558 -0.72370039
+vn -1.1438483e-29 -6.0663885e-3 -0.99998160
+vn -4.4866464e-30 -6.0663885e-3 -0.99998160
+vn -0.66902274 0.18022153 -0.72106086
+vn 0.66902274 0.18022153 -0.72106086
+vn 8.9239890e-30 -6.0663885e-3 -0.99998160
+vn -0.96397989 0.26597023 -1.6135084e-3
+vn 0.96397989 0.26597023 -1.6135084e-3
+vn -0.91897790 -0.39430177 2.3920318e-3
+vn 0.91897790 -0.39430177 2.3920318e-3
+vn 0.88877883 0.45832790 -2.7804463e-3
+vn -0.88877883 0.45832790 -2.7804463e-3
+vn 0.83412578 0.55156413 -3.3460639e-3
+vn -0.83412578 0.55156413 -3.3460639e-3
+vn -0.93482641 -0.35509850 2.1542051e-3
+vn 0.93482641 -0.35509850 2.1542051e-3
+vn -1.00000000 -1.4531198e-14 0.0000000e+0
+vn 1.00000000 -1.2109332e-14 -8.6126986e-15
+vn 0.92387953 -0.38267639 2.3215064e-3
+vn 0.70710678 -0.70709377 4.2895845e-3
+vn 0.38268343 -0.92386253 5.6046122e-3
+vn -9.8340205e-16 -0.99998160 6.0663885e-3
+vn -0.38268343 -0.92386253 5.6046122e-3
+vn -0.70710678 -0.70709377 4.2895845e-3
+vn -0.92387953 -0.38267639 2.3215064e-3
+vn -1.00000000 -3.2402744e-15 5.9689497e-15
+vn -0.92387953 0.38267639 -2.3215064e-3
+vn -0.70710678 0.70709377 -4.2895845e-3
+vn -0.72477456 0.68897341 -4.1796573e-3
+vn 0.72477456 0.68897341 -4.1796573e-3
+vn 0.70710678 0.70709377 -4.2895845e-3
+vn 0.92387953 0.38267639 -2.3215064e-3
+vn 1.00000000 -3.2402744e-15 5.9689497e-15
+vn 1.00000000 7.0748349e-16 2.2108859e-19
+vn 1.00000000 7.0748349e-16 2.2108859e-19
+vn 0.92387953 0.38267639 -2.3215064e-3
+vn 0.92387953 0.38267639 -2.3215064e-3
+vn 0.70710678 0.70709377 -4.2895845e-3
+vn 0.70710678 0.70709377 -4.2895845e-3
+vn 0.72477456 0.68897341 -4.1796573e-3
+vn 0.72477456 0.68897341 -4.1796573e-3
+vn -0.72477456 0.68897341 -4.1796573e-3
+vn -0.72477456 0.68897341 -4.1796573e-3
+vn -0.70710678 0.70709377 -4.2895845e-3
+vn -0.70710678 0.70709377 -4.2895845e-3
+vn -0.92387953 0.38267639 -2.3215064e-3
+vn -0.92387953 0.38267639 -2.3215064e-3
+vn -1.00000000 7.0748349e-16 1.1896556e-14
+vn -1.00000000 7.0748349e-16 1.1896556e-14
+vn -0.92387953 -0.38267639 2.3215064e-3
+vn -0.92387953 -0.38267639 2.3215064e-3
+vn -0.70710678 -0.70709377 4.2895845e-3
+vn -0.70710678 -0.70709377 4.2895845e-3
+vn -0.38268343 -0.92386253 5.6046122e-3
+vn -0.38268343 -0.92386253 5.6046122e-3
+vn -5.5183712e-16 -0.99998160 6.0663885e-3
+vn -5.5183712e-16 -0.99998160 6.0663885e-3
+vn 0.38268343 -0.92386253 5.6046122e-3
+vn 0.38268343 -0.92386253 5.6046122e-3
+vn 0.70710678 -0.70709377 4.2895845e-3
+vn 0.70710678 -0.70709377 4.2895845e-3
+vn 0.92387953 -0.38267639 2.3215064e-3
+vn 0.92387953 -0.38267639 2.3215064e-3
+vn 1.00000000 -1.2109332e-14 0.0000000e+0
+vn 1.00000000 -1.2109332e-14 0.0000000e+0
+vn -1.00000000 -1.4531198e-14 0.0000000e+0
+vn -1.00000000 -1.4531198e-14 0.0000000e+0
+vn 0.93482641 -0.35509850 2.1542051e-3
+vn 0.93482641 -0.35509850 2.1542051e-3
+vn -0.93482641 -0.35509850 2.1542051e-3
+vn -0.93482641 -0.35509850 2.1542051e-3
+vn -5.3453215e-27 0.99998160 -6.0663885e-3
+vn -5.3453215e-27 0.99998160 -6.0663885e-3
+vn -0.77242078 0.63509943 -3.8528308e-3
+vn -0.77242078 0.63509943 -3.8528308e-3
+vn -0.77242078 0.63509943 -3.8528308e-3
+vn 0.77242078 0.63509943 -3.8528308e-3
+vn 0.77242078 0.63509943 -3.8528308e-3
+vn 0.77242078 0.63509943 -3.8528308e-3
+vn -0.83412578 0.55156413 -3.3460639e-3
+vn -0.83412578 0.55156413 -3.3460639e-3
+vn 0.83412578 0.55156413 -3.3460639e-3
+vn 0.83412578 0.55156413 -3.3460639e-3
+vn 0.88877883 0.45832790 -2.7804463e-3
+vn 0.88877883 0.45832790 -2.7804463e-3
+vn -0.88877883 0.45832790 -2.7804463e-3
+vn -0.88877883 0.45832790 -2.7804463e-3
+vn 0.97768459 0.21007430 -1.2744158e-3
+vn 0.97768459 0.21007430 -1.2744158e-3
+vn 0.97768459 0.21007430 -1.2744158e-3
+vn 0.97768459 0.21007430 -1.2744158e-3
+vn 0.91897790 -0.39430177 2.3920318e-3
+vn 0.91897790 -0.39430177 2.3920318e-3
+vn -0.99392690 0.11004030 -6.6755950e-4
+vn -0.99392690 0.11004030 -6.6755950e-4
+vn -0.99392690 0.11004030 -6.6755950e-4
+vn -0.91897790 -0.39430177 2.3920318e-3
+vn -0.91897790 -0.39430177 2.3920318e-3
+vn -0.93556933 0.35313658 -2.1423031e-3
+vn -0.93556933 0.35313658 -2.1423031e-3
+vn -0.93556933 0.35313658 -2.1423031e-3
+vn 0.96397989 0.26597023 -1.6135084e-3
+vn 0.96397989 0.26597023 -1.6135084e-3
+g Temp_Needle
+usemtl cylinder58_auv
+f 233/172/309 265/175/326 264/182/325 234/179/310
+f 233/172/309 348/172/392 334/166/378 248/164/324
+f 234/179/310 264/182/325 279/186/340 235/187/311
+f 234/179/310 347/177/391 348/172/392 233/172/309
+f 235/187/311 279/186/340 278/191/339 236/194/312
+f 235/187/311 346/183/390 347/177/391 234/179/310
+f 236/194/312 278/191/339 277/197/338 237/202/313
+f 236/194/312 319/199/364 323/199/367 345/194/389
+f 236/194/312 345/194/389 346/183/390 235/187/311
+f 237/202/313 277/197/338 276/203/337 238/209/314
+f 237/202/313 321/206/365 319/199/364 236/194/312
+f 238/209/314 276/203/337 275/205/336 239/213/315
+f 238/209/314 318/211/363 321/206/365 237/202/313
+f 238/209/314 322/211/366 318/211/363
+f 239/213/315 275/205/336 274/204/335 240/208/316
+f 239/213/315 343/212/387 344/209/388 238/209/314
+f 240/208/316 274/204/335 273/196/334 241/200/317
+f 240/208/316 342/207/386 343/212/387 239/213/315
+f 241/200/317 273/196/334 272/192/333 242/193/318
+f 241/200/317 341/200/385 342/207/386 240/208/316
+f 242/193/318 272/192/333 271/189/332 243/184/319
+f 242/193/318 340/193/384 341/200/385 241/200/317
+f 243/184/319 271/189/332 270/181/331 244/178/320
+f 243/184/319 339/188/383 340/193/384 242/193/318
+f 244/178/320 270/181/331 269/176/330 245/174/321
+f 244/178/320 338/180/382 339/188/383 243/184/319
+f 245/174/321 269/176/330 268/170/329 246/165/322
+f 245/174/321 337/174/381 338/180/382 244/178/320
+f 246/165/322 268/170/329 267/169/328 247/161/323
+f 246/165/322 336/167/380 337/174/381 245/174/321
+f 247/161/323 267/169/328 266/171/327 248/164/324
+f 247/161/323 335/162/379 336/167/380 246/165/322
+f 248/164/324 266/171/327 265/175/326 233/172/309
+f 248/164/324 334/166/378 335/162/379 247/161/323
+f 249/173/394 348/172/392 347/177/391 250/179/396
+f 250/179/395 347/177/391 346/183/390 251/183/398
+f 251/183/397 346/183/390 345/194/389 252/194/400
+f 252/194/399 345/194/389 323/199/367 320/198/461
+f 253/209/401 344/209/388 343/212/387 254/212/404
+f 254/212/403 343/212/387 342/207/386 255/208/406
+f 255/208/405 342/207/386 341/200/385 256/201/408
+f 256/201/407 341/200/385 340/193/384 257/195/410
+f 257/195/409 340/193/384 339/188/383 258/190/412
+f 258/190/411 339/188/383 338/180/382 259/180/414
+f 259/180/413 338/180/382 337/174/381 260/174/416
+f 260/174/415 337/174/381 336/167/380 261/167/418
+f 261/167/417 336/167/380 335/162/379 262/163/420
+f 262/163/419 335/162/379 334/166/378 263/168/422
+f 263/168/421 334/166/378 348/172/392 249/173/393
+f 264/182/325 280/185/341 279/186/340
+f 265/175/326 280/185/341 264/182/325
+f 266/171/327 280/185/341 265/175/326
+f 267/169/328 280/185/341 266/171/327
+f 268/170/329 280/185/341 267/169/328
+f 269/176/330 280/185/341 268/170/329
+f 270/181/331 280/185/341 269/176/330
+f 271/189/332 280/185/341 270/181/331
+f 272/192/333 280/185/341 271/189/332
+f 273/196/334 280/185/341 272/192/333
+f 274/204/335 280/185/341 273/196/334
+f 275/205/336 280/185/341 274/204/335
+f 276/203/337 280/185/341 275/205/336
+f 277/197/338 280/185/341 276/203/337
+f 278/191/339 280/185/341 277/197/338
+f 279/186/340 280/185/341 278/191/339
+f 281/216/342 284/218/344 289/226/347 286/224/345
+f 281/216/342 321/206/365 318/211/363 284/218/344
+f 282/214/424 333/214/377 331/219/375 287/219/428
+f 283/215/343 288/220/346 331/219/375 333/214/377
+f 283/215/343 319/199/364 321/206/365 281/216/342
+f 284/218/344 332/217/376 330/225/374 289/226/347
+f 285/217/426 290/225/429 330/225/374 332/217/376
+f 286/224/345 288/220/346 283/215/343 281/216/342
+f 286/224/345 289/226/347 314/232/360 316/227/362
+f 287/219/427 331/219/375 325/221/369 310/222/451
+f 288/220/346 308/222/358 325/221/369 331/219/375
+f 289/226/347 330/225/374 324/231/368 314/232/360
+f 290/225/430 312/232/456 324/231/368 330/225/374
+f 291/239/348 293/240/349 294/240/433 292/239/431
+f 291/239/348 306/234/356 305/237/355 293/240/349
+f 292/239/432 295/238/436 296/238/350 291/239/348
+f 293/240/349 305/237/355 327/237/371 294/240/434
+f 294/240/435 327/237/371 304/237/446
+f 295/238/438 326/233/370 302/233/354 296/238/350
+f 296/238/350 302/233/354 306/234/356 291/239/348
+f 297/230/351 298/236/352 305/237/355 306/234/356
+f 297/230/351 315/229/361 313/235/359 298/236/352
+f 298/236/352 313/235/359 329/236/373
+f 298/236/352 329/236/373 327/237/371 305/237/355
+f 299/236/439 329/236/373 313/235/359 311/235/453
+f 300/228/442 309/223/449 328/228/372
+f 300/228/441 328/228/372 326/233/370 303/233/443
+f 301/228/353 307/223/357 315/229/361 297/230/351
+f 301/228/353 328/228/372 309/223/447 307/223/357
+f 302/233/354 326/233/370 328/228/372 301/228/353
+f 303/233/444 326/233/370 295/238/437
+f 304/237/445 327/237/371 329/236/373 299/236/440
+f 306/234/356 302/233/354 301/228/353 297/230/351
+f 307/223/357 309/223/450 325/221/369 308/222/358
+f 308/222/358 316/227/362 315/229/361 307/223/357
+f 310/222/452 325/221/369 309/223/448
+f 311/235/455 324/231/368 312/232/457
+f 313/235/359 315/229/361 316/227/362 314/232/360
+f 314/232/360 324/231/368 311/235/454 313/235/359
+f 316/227/362 308/222/358 288/220/346 286/224/345
+f 317/210/460 344/209/388 253/209/402
+f 318/211/363 322/211/366 332/217/376 284/218/344
+f 320/198/462 323/199/367 333/214/377 282/214/423
+f 332/217/376 322/211/366 317/210/458 285/217/425
+f 333/214/377 323/199/367 319/199/364 283/215/343
+f 344/209/388 317/210/459 322/211/366 238/209/314
+o Altimeter1000s
+#116 vertices, 111 faces
+v -0.12074920 0.34475285 -1.1491499e-2
+v -0.12106953 0.34636325 -1.1501268e-2
+v -0.12198177 0.34772848 -1.1509550e-2
+v -0.12334702 0.34864070 -1.1515084e-2
+v -0.12495745 0.34896103 -1.1517028e-2
+v -0.12656788 0.34864070 -1.1515084e-2
+v -0.12793314 0.34772848 -1.1509550e-2
+v -0.12884537 0.34636325 -1.1501268e-2
+v -0.12916571 0.34475285 -1.1491499e-2
+v -0.12884537 0.34314245 -1.1481729e-2
+v -0.12793314 0.34177722 -1.1473447e-2
+v -0.12656788 0.34086500 -1.1467913e-2
+v -0.12495745 0.34054467 -1.1465970e-2
+v -0.12334702 0.34086500 -1.1467913e-2
+v -0.12198177 0.34177722 -1.1473447e-2
+v -0.12106953 0.34314245 -1.1481729e-2
+v -0.12074920 0.34475802 -1.0638683e-2
+v -0.12106953 0.34636842 -1.0648453e-2
+v -0.12198177 0.34773366 -1.0656735e-2
+v -0.12334702 0.34864587 -1.0662269e-2
+v -0.12656788 0.34864587 -1.0662269e-2
+v -0.12793314 0.34773366 -1.0656735e-2
+v -0.12884537 0.34636842 -1.0648453e-2
+v -0.12916571 0.34475802 -1.0638683e-2
+v -0.12884537 0.34314762 -1.0628914e-2
+v -0.12793314 0.34178239 -1.0620632e-2
+v -0.12656788 0.34087017 -1.0615098e-2
+v -0.12495745 0.34054984 -1.0613154e-2
+v -0.12334702 0.34087017 -1.0615098e-2
+v -0.12198177 0.34178239 -1.0620632e-2
+v -0.12106953 0.34314762 -1.0628914e-2
+v -0.12173825 0.34608626 -1.1499588e-2
+v -0.12147302 0.34475285 -1.1491499e-2
+v -0.12173825 0.34341944 -1.1483410e-2
+v -0.12249358 0.34228903 -1.1476552e-2
+v -0.12362402 0.34153371 -1.1471970e-2
+v -0.12495745 0.34126848 -1.1470361e-2
+v -0.12629089 0.34153371 -1.1471970e-2
+v -0.12742132 0.34228903 -1.1476552e-2
+v -0.12817665 0.34341944 -1.1483410e-2
+v -0.12844189 0.34475285 -1.1491499e-2
+v -0.12817665 0.34608626 -1.1499588e-2
+v -0.12742132 0.34721667 -1.1506446e-2
+v -0.12629089 0.34797199 -1.1511028e-2
+v -0.12495745 0.34823722 -1.1512637e-2
+v -0.12362402 0.34797199 -1.1511028e-2
+v -0.12249358 0.34721667 -1.1506446e-2
+v -0.12495745 0.34475285 -1.1491499e-2
+v -0.12495745 0.35389659 -1.1546969e-2
+v -0.12389457 0.35390177 -1.0694154e-2
+v -0.12389457 0.35389659 -1.1546969e-2
+v -0.12602034 0.35389659 -1.1546969e-2
+v -0.12602034 0.35390177 -1.0694154e-2
+v -0.12495745 0.35834535 -1.1573958e-2
+v -0.12310803 0.35835052 -1.0721142e-2
+v -0.12310803 0.35834535 -1.1573958e-2
+v -0.12680687 0.35834535 -1.1573958e-2
+v -0.12680687 0.35835052 -1.0721142e-2
+v -0.12495745 0.36451468 -1.1611384e-2
+v -0.12495745 0.36451985 -1.0758568e-2
+v -0.12535040 0.36451468 -1.1611384e-2
+v -0.12535040 0.36451985 -1.0758568e-2
+v -0.12456451 0.36451985 -1.0758568e-2
+v -0.12456451 0.36451468 -1.1611384e-2
+v -0.12495745 0.36182029 -1.1595038e-2
+v -0.12675691 0.36190348 -1.1595543e-2
+v -0.12675691 0.36190866 -1.0742728e-2
+v -0.12315799 0.36190866 -1.0742728e-2
+v -0.12315799 0.36190348 -1.1595543e-2
+v -0.12417257 0.36320908 -1.1603464e-2
+v -0.12417257 0.36321425 -1.0750648e-2
+v -0.12574233 0.36321425 -1.0750648e-2
+v -0.12574233 0.36320908 -1.1603464e-2
+v -0.12495745 0.36316748 -1.1603211e-2
+v -0.12248706 0.36069807 -1.1588230e-2
+v -0.12255899 0.35984963 -1.1583083e-2
+v -0.12248706 0.36070324 -1.0735415e-2
+v -0.12255899 0.35985480 -1.0730268e-2
+v -0.12742785 0.36070324 -1.0735415e-2
+v -0.12735591 0.35985480 -1.0730268e-2
+v -0.12742785 0.36069807 -1.1588230e-2
+v -0.12735591 0.35984963 -1.1583083e-2
+v -0.12495745 0.36072969 -1.1588422e-2
+v -0.12495745 0.35970327 -1.1582196e-2
+v -0.12602034 0.34956256 -1.0667830e-2
+v -0.12602034 0.34955739 -1.1520646e-2
+v -0.12389457 0.34955739 -1.1520646e-2
+v -0.12389457 0.34956256 -1.0667830e-2
+v -0.12495745 0.34971755 -1.1521617e-2
+v -0.12602034 0.34955997 -1.1094238e-2
+v -0.12389457 0.34955997 -1.1094238e-2
+v -0.12735591 0.35985222 -1.1156676e-2
+v -0.12255899 0.35985222 -1.1156676e-2
+v -0.12417257 0.36321167 -1.1177056e-2
+v -0.12574233 0.36321167 -1.1177056e-2
+v -0.12315799 0.36190607 -1.1169135e-2
+v -0.12675691 0.36190607 -1.1169135e-2
+v -0.12680687 0.35834793 -1.1147550e-2
+v -0.12310803 0.35834793 -1.1147550e-2
+v -0.12602034 0.35389918 -1.1120562e-2
+v -0.12389457 0.35389918 -1.1120562e-2
+v -0.12106953 0.34314504 -1.1055322e-2
+v -0.12198177 0.34177981 -1.1047039e-2
+v -0.12334702 0.34086759 -1.1041505e-2
+v -0.12495745 0.34054726 -1.1039562e-2
+v -0.12656788 0.34086759 -1.1041505e-2
+v -0.12793314 0.34177981 -1.1047039e-2
+v -0.12884537 0.34314504 -1.1055322e-2
+v -0.12916571 0.34475544 -1.1065091e-2
+v -0.12884537 0.34636584 -1.1074861e-2
+v -0.12793314 0.34773107 -1.1083143e-2
+v -0.12656788 0.34864329 -1.1088677e-2
+v -0.12334702 0.34864329 -1.1088677e-2
+v -0.12198177 0.34773107 -1.1083143e-2
+v -0.12106953 0.34636584 -1.1074861e-2
+v -0.12074920 0.34475544 -1.1065091e-2
+vn 0.70021451 -4.3309921e-3 -0.71391938
+vn 0.64691385 0.26362457 -0.71554494
+vn 0.49512643 0.49078632 -0.71692301
+vn 0.39514579 0.37054157 -0.84057049
+vn -1.2727124e-17 -6.0663885e-3 -0.99998160
+vn -0.54150447 0.43814436 -0.71749734
+vn -0.49512643 0.49078632 -0.71692301
+vn -0.64691385 0.26362457 -0.71554494
+vn -0.70021451 -4.3309921e-3 -0.71391938
+vn -0.64691385 -0.27228655 -0.71229383
+vn -0.49512643 -0.49944831 -0.71091575
+vn -0.26796049 -0.65123294 -0.70999495
+vn -6.8156023e-16 -0.70453261 -0.70967161
+vn 0.26796049 -0.65123294 -0.70999495
+vn 0.49512643 -0.49944831 -0.71091575
+vn 0.64691385 -0.27228655 -0.71229383
+vn 1.6452890e-17 -6.0663885e-3 -0.99998160
+vn 0.0000000e+0 -6.0663885e-3 -0.99998160
+vn -6.5435086e-16 -6.0663885e-3 -0.99998160
+vn -1.4906750e-16 -6.0663885e-3 -0.99998160
+vn 4.8463462e-16 -6.0663885e-3 -0.99998160
+vn -1.2422292e-17 -6.0663885e-3 -0.99998160
+vn -4.7221233e-16 -6.0663885e-3 -0.99998160
+vn 5.9627000e-16 -6.0663885e-3 -0.99998160
+vn 1.2754654e-15 -6.0663885e-3 -0.99998160
+vn 1.9875667e-16 -6.0663885e-3 -0.99998160
+vn 8.3916931e-18 -6.0663885e-3 -0.99998160
+vn -9.5347735e-17 -6.0663885e-3 -0.99998160
+vn -5.3029319e-16 -6.0663885e-3 -0.99998160
+vn 1.2422292e-17 -6.0663885e-3 -0.99998160
+vn 5.5513778e-16 -6.0663885e-3 -0.99998160
+vn 1.3261461e-16 -6.0663885e-3 -0.99998160
+vn -1.0846837e-30 -6.0663885e-3 -0.99998160
+vn -7.7406976e-30 -6.0663885e-3 -0.99998160
+vn 0.70305092 -6.5966596e-2 -0.70807331
+vn -0.70305092 -6.5966596e-2 -0.70807331
+vn -2.9705543e-30 -6.0663885e-3 -0.99998160
+vn 0.68157979 -0.18741498 -0.70733628
+vn -0.68157979 -0.18741498 -0.70733628
+vn -2.0357933e-27 0.70280419 -0.71138335
+vn -0.50655174 0.67772518 -0.53300462
+vn 0.50655174 0.67772518 -0.53300462
+vn -4.7454914e-31 -6.0663885e-3 -0.99998160
+vn -0.58895471 0.38514938 -0.71048738
+vn 0.58895471 0.38514938 -0.71048738
+vn 0.62306059 0.31697545 -0.71506787
+vn -0.62306059 0.31697545 -0.71506787
+vn -7.4202229e-30 -6.0663885e-3 -0.99998160
+vn 0.78181672 0.24960262 -0.57136779
+vn 0.68742779 -0.15605731 -0.70928778
+vn -0.78181672 0.24960262 -0.57136779
+vn -0.68742779 -0.15605731 -0.70928778
+vn -2.7610132e-30 -6.0663885e-3 -0.99998160
+vn -1.3312028e-30 -6.0663885e-3 -0.99998160
+vn -0.66902274 0.18022153 -0.72106086
+vn 0.66902274 0.18022153 -0.72106086
+vn -2.5149416e-17 -6.0663885e-3 -0.99998160
+vn -0.96397989 0.26597023 -1.6135084e-3
+vn 0.96397989 0.26597023 -1.6135084e-3
+vn -0.97648995 -0.21555895 1.3076884e-3
+vn 0.97648995 -0.21555895 1.3076884e-3
+vn 0.88877883 0.45832790 -2.7804463e-3
+vn -0.88877883 0.45832790 -2.7804463e-3
+vn 0.83412578 0.55156413 -3.3460639e-3
+vn -0.83412578 0.55156413 -3.3460639e-3
+vn -0.96575139 -0.25946439 1.5740407e-3
+vn 0.96575139 -0.25946439 1.5740407e-3
+vn -0.99617487 -8.7380454e-2 5.3009354e-4
+vn 0.99617487 -8.7380454e-2 5.3009354e-4
+vn 0.92387953 -0.38267639 2.3215064e-3
+vn 0.70710678 -0.70709377 4.2895845e-3
+vn 0.38268343 -0.92386253 5.6046122e-3
+vn -8.2775568e-16 -0.99998160 6.0663885e-3
+vn -0.38268343 -0.92386253 5.6046122e-3
+vn -0.70710678 -0.70709377 4.2895845e-3
+vn -0.92387953 -0.38267639 2.3215064e-3
+vn -1.00000000 -2.9077571e-15 1.7189638e-17
+vn -0.92387953 0.38267639 -2.3215064e-3
+vn -0.70710678 0.70709377 -4.2895845e-3
+vn -0.72477456 0.68897341 -4.1796573e-3
+vn 0.72477456 0.68897341 -4.1796573e-3
+vn 0.70710678 0.70709377 -4.2895845e-3
+vn 0.92387953 0.38267639 -2.3215064e-3
+vn 1.00000000 -2.9148320e-15 1.7189638e-17
+vn 1.00000000 -5.8296639e-15 3.4379276e-17
+vn 1.00000000 -5.8296639e-15 3.4379276e-17
+vn 0.92387953 0.38267639 -2.3215064e-3
+vn 0.92387953 0.38267639 -2.3215064e-3
+vn 0.70710678 0.70709377 -4.2895845e-3
+vn 0.70710678 0.70709377 -4.2895845e-3
+vn 0.72477456 0.68897341 -4.1796573e-3
+vn 0.72477456 0.68897341 -4.1796573e-3
+vn -0.72477456 0.68897341 -4.1796573e-3
+vn -0.72477456 0.68897341 -4.1796573e-3
+vn -0.70710678 0.70709377 -4.2895845e-3
+vn -0.70710678 0.70709377 -4.2895845e-3
+vn -0.92387953 0.38267639 -2.3215064e-3
+vn -0.92387953 0.38267639 -2.3215064e-3
+vn -1.00000000 -5.6740176e-15 -9.8332467e-15
+vn -1.00000000 -5.6740176e-15 -9.8332467e-15
+vn -0.92387953 -0.38267639 2.3215064e-3
+vn -0.92387953 -0.38267639 2.3215064e-3
+vn -0.70710678 -0.70709377 4.2895845e-3
+vn -0.70710678 -0.70709377 4.2895845e-3
+vn -0.38268343 -0.92386253 5.6046122e-3
+vn -0.38268343 -0.92386253 5.6046122e-3
+vn -7.0748349e-16 -0.99998160 6.0663885e-3
+vn -7.0748349e-16 -0.99998160 6.0663885e-3
+vn 0.38268343 -0.92386253 5.6046122e-3
+vn 0.38268343 -0.92386253 5.6046122e-3
+vn 0.70710678 -0.70709377 4.2895845e-3
+vn 0.70710678 -0.70709377 4.2895845e-3
+vn 0.92387953 -0.38267639 2.3215064e-3
+vn 0.92387953 -0.38267639 2.3215064e-3
+vn 0.99617487 -8.7380454e-2 5.3009354e-4
+vn 0.99617487 -8.7380454e-2 5.3009354e-4
+vn -0.99617487 -8.7380454e-2 5.3009354e-4
+vn -0.99617487 -8.7380454e-2 5.3009354e-4
+vn 0.96575139 -0.25946439 1.5740407e-3
+vn 0.96575139 -0.25946439 1.5740407e-3
+vn -0.96575139 -0.25946439 1.5740407e-3
+vn -0.96575139 -0.25946439 1.5740407e-3
+vn -2.8651428e-27 0.99998160 -6.0663885e-3
+vn -2.8651428e-27 0.99998160 -6.0663885e-3
+vn -0.77242078 0.63509943 -3.8528308e-3
+vn -0.77242078 0.63509943 -3.8528308e-3
+vn -0.77242078 0.63509943 -3.8528308e-3
+vn 0.77242078 0.63509943 -3.8528308e-3
+vn 0.77242078 0.63509943 -3.8528308e-3
+vn 0.77242078 0.63509943 -3.8528308e-3
+vn -0.83412578 0.55156413 -3.3460639e-3
+vn -0.83412578 0.55156413 -3.3460639e-3
+vn 0.83412578 0.55156413 -3.3460639e-3
+vn 0.83412578 0.55156413 -3.3460639e-3
+vn 0.88877883 0.45832790 -2.7804463e-3
+vn 0.88877883 0.45832790 -2.7804463e-3
+vn -0.88877883 0.45832790 -2.7804463e-3
+vn -0.88877883 0.45832790 -2.7804463e-3
+vn 0.99392690 0.11004030 -6.6755950e-4
+vn 0.99392690 0.11004030 -6.6755950e-4
+vn 0.99392690 0.11004030 -6.6755950e-4
+vn 0.97648995 -0.21555895 1.3076884e-3
+vn 0.97648995 -0.21555895 1.3076884e-3
+vn -0.99392690 0.11004030 -6.6755950e-4
+vn -0.99392690 0.11004030 -6.6755950e-4
+vn -0.99392690 0.11004030 -6.6755950e-4
+vn -0.97648995 -0.21555895 1.3076884e-3
+vn -0.97648995 -0.21555895 1.3076884e-3
+vn -0.93556933 0.35313658 -2.1423031e-3
+vn -0.93556933 0.35313658 -2.1423031e-3
+vn -0.93556933 0.35313658 -2.1423031e-3
+vn 0.96397989 0.26597023 -1.6135084e-3
+vn 0.96397989 0.26597023 -1.6135084e-3
+g Altimeter1000s
+usemtl default
+f 349//463 381//480 380//479 350//464
+f 349//463 464//546 450//532 364//478
+f 350//464 380//479 395//494 351//465
+f 350//464 463//545 464//546 349//463
+f 351//465 395//494 394//493 352//466
+f 351//465 462//544 463//545 350//464
+f 352//466 394//493 393//492 353//467
+f 352//466 435//518 439//521 461//543
+f 352//466 461//543 462//544 351//465
+f 353//467 393//492 392//491 354//468
+f 353//467 437//519 435//518 352//466
+f 354//468 392//491 391//490 355//469
+f 354//468 434//517 437//519 353//467
+f 354//468 438//520 434//517
+f 355//469 391//490 390//489 356//470
+f 355//469 459//541 460//542 354//468
+f 356//470 390//489 389//488 357//471
+f 356//470 458//540 459//541 355//469
+f 357//471 389//488 388//487 358//472
+f 357//471 457//539 458//540 356//470
+f 358//472 388//487 387//486 359//473
+f 358//472 456//538 457//539 357//471
+f 359//473 387//486 386//485 360//474
+f 359//473 455//537 456//538 358//472
+f 360//474 386//485 385//484 361//475
+f 360//474 454//536 455//537 359//473
+f 361//475 385//484 384//483 362//476
+f 361//475 453//535 454//536 360//474
+f 362//476 384//483 383//482 363//477
+f 362//476 452//534 453//535 361//475
+f 363//477 383//482 382//481 364//478
+f 363//477 451//533 452//534 362//476
+f 364//478 382//481 381//480 349//463
+f 364//478 450//532 451//533 363//477
+f 365//548 464//546 463//545 366//550
+f 366//549 463//545 462//544 367//552
+f 367//551 462//544 461//543 368//554
+f 368//553 461//543 439//521 436//614
+f 369//555 460//542 459//541 370//558
+f 370//557 459//541 458//540 371//560
+f 371//559 458//540 457//539 372//562
+f 372//561 457//539 456//538 373//564
+f 373//563 456//538 455//537 374//566
+f 374//565 455//537 454//536 375//568
+f 375//567 454//536 453//535 376//570
+f 376//569 453//535 452//534 377//572
+f 377//571 452//534 451//533 378//574
+f 378//573 451//533 450//532 379//576
+f 379//575 450//532 464//546 365//547
+f 380//479 396//495 395//494
+f 381//480 396//495 380//479
+f 382//481 396//495 381//480
+f 383//482 396//495 382//481
+f 384//483 396//495 383//482
+f 385//484 396//495 384//483
+f 386//485 396//495 385//484
+f 387//486 396//495 386//485
+f 388//487 396//495 387//486
+f 389//488 396//495 388//487
+f 390//489 396//495 389//488
+f 391//490 396//495 390//489
+f 392//491 396//495 391//490
+f 393//492 396//495 392//491
+f 394//493 396//495 393//492
+f 395//494 396//495 394//493
+f 397//496 400//498 405//501 402//499
+f 397//496 437//519 434//517 400//498
+f 398//578 449//531 447//529 403//582
+f 399//497 404//500 447//529 449//531
+f 399//497 435//518 437//519 397//496
+f 400//498 448//530 446//528 405//501
+f 401//580 406//583 446//528 448//530
+f 402//499 404//500 399//497 397//496
+f 402//499 405//501 430//514 432//516
+f 403//581 447//529 441//523 426//604
+f 404//500 424//512 441//523 447//529
+f 405//501 446//528 440//522 430//514
+f 406//584 428//609 440//522 446//528
+f 407//502 409//503 410//587 408//585
+f 407//502 422//510 421//509 409//503
+f 408//586 411//590 412//504 407//502
+f 409//503 421//509 443//525 410//588
+f 410//589 443//525 420//600
+f 411//592 442//524 418//508 412//504
+f 412//504 418//508 422//510 407//502
+f 413//505 414//506 421//509 422//510
+f 413//505 431//515 429//513 414//506
+f 414//506 429//513 445//527
+f 414//506 445//527 443//525 421//509
+f 415//593 445//527 429//513 427//606
+f 416//596 425//602 423//511 444//526
+f 416//595 444//526 442//524 419//597
+f 417//507 423//511 431//515 413//505
+f 417//507 444//526 423//511
+f 418//508 442//524 444//526 417//507
+f 419//598 442//524 411//591
+f 420//599 443//525 445//527 415//594
+f 422//510 418//508 417//507 413//505
+f 423//511 425//603 441//523 424//512
+f 424//512 432//516 431//515 423//511
+f 426//605 441//523 425//601
+f 427//608 440//522 428//610
+f 429//513 431//515 432//516 430//514
+f 430//514 440//522 427//607 429//513
+f 432//516 424//512 404//500 402//499
+f 433//613 460//542 369//556
+f 434//517 438//520 448//530 400//498
+f 436//615 439//521 449//531 398//577
+f 448//530 438//520 433//611 401//579
+f 449//531 439//521 435//518 399//497
+f 460//542 433//612 438//520 354//468
+o Altimeter100s
+#116 vertices, 111 faces
+v -0.12074920 0.34474768 -1.2344314e-2
+v -0.12106953 0.34635808 -1.2354084e-2
+v -0.12198177 0.34772331 -1.2362366e-2
+v -0.12334702 0.34863553 -1.2367900e-2
+v -0.12495745 0.34895585 -1.2369843e-2
+v -0.12656788 0.34863553 -1.2367900e-2
+v -0.12793314 0.34772331 -1.2362366e-2
+v -0.12884537 0.34635808 -1.2354084e-2
+v -0.12916571 0.34474768 -1.2344314e-2
+v -0.12884537 0.34313728 -1.2334545e-2
+v -0.12793314 0.34177204 -1.2326263e-2
+v -0.12656788 0.34085983 -1.2320729e-2
+v -0.12495745 0.34053950 -1.2318785e-2
+v -0.12334702 0.34085983 -1.2320729e-2
+v -0.12198177 0.34177204 -1.2326263e-2
+v -0.12106953 0.34313728 -1.2334545e-2
+v -0.12074920 0.34475285 -1.1491499e-2
+v -0.12106953 0.34636325 -1.1501268e-2
+v -0.12198177 0.34772848 -1.1509550e-2
+v -0.12334702 0.34864070 -1.1515084e-2
+v -0.12656788 0.34864070 -1.1515084e-2
+v -0.12793314 0.34772848 -1.1509550e-2
+v -0.12884537 0.34636325 -1.1501268e-2
+v -0.12916571 0.34475285 -1.1491499e-2
+v -0.12884537 0.34314245 -1.1481729e-2
+v -0.12793314 0.34177722 -1.1473447e-2
+v -0.12656788 0.34086500 -1.1467913e-2
+v -0.12495745 0.34054467 -1.1465970e-2
+v -0.12334702 0.34086500 -1.1467913e-2
+v -0.12198177 0.34177722 -1.1473447e-2
+v -0.12106953 0.34314245 -1.1481729e-2
+v -0.12173825 0.34608109 -1.2352403e-2
+v -0.12147302 0.34474768 -1.2344314e-2
+v -0.12173825 0.34341426 -1.2336225e-2
+v -0.12249358 0.34228385 -1.2329368e-2
+v -0.12362402 0.34152854 -1.2324785e-2
+v -0.12495745 0.34126330 -1.2323176e-2
+v -0.12629089 0.34152854 -1.2324785e-2
+v -0.12742132 0.34228385 -1.2329368e-2
+v -0.12817665 0.34341426 -1.2336225e-2
+v -0.12844189 0.34474768 -1.2344314e-2
+v -0.12817665 0.34608109 -1.2352403e-2
+v -0.12742132 0.34721150 -1.2359261e-2
+v -0.12629089 0.34796682 -1.2363843e-2
+v -0.12495745 0.34823205 -1.2365452e-2
+v -0.12362402 0.34796682 -1.2363843e-2
+v -0.12249358 0.34721150 -1.2359261e-2
+v -0.12495745 0.34474768 -1.2344314e-2
+v -0.12495745 0.36319225 -1.2456208e-2
+v -0.12389457 0.36319743 -1.1603393e-2
+v -0.12389457 0.36319225 -1.2456208e-2
+v -0.12602034 0.36319225 -1.2456208e-2
+v -0.12602034 0.36319743 -1.1603393e-2
+v -0.12495745 0.36764101 -1.2483197e-2
+v -0.12389457 0.36764618 -1.1630381e-2
+v -0.12389457 0.36764101 -1.2483197e-2
+v -0.12602034 0.36764101 -1.2483197e-2
+v -0.12602034 0.36764618 -1.1630381e-2
+v -0.12495745 0.37381033 -1.2520623e-2
+v -0.12495745 0.37381551 -1.1667807e-2
+v -0.12535040 0.37381033 -1.2520623e-2
+v -0.12535040 0.37381551 -1.1667807e-2
+v -0.12456451 0.37381551 -1.1667807e-2
+v -0.12456451 0.37381033 -1.2520623e-2
+v -0.12495745 0.37111595 -1.2504277e-2
+v -0.12675691 0.37119914 -1.2504782e-2
+v -0.12675691 0.37120431 -1.1651967e-2
+v -0.12315799 0.37120431 -1.1651967e-2
+v -0.12315799 0.37119914 -1.2504782e-2
+v -0.12417257 0.37250474 -1.2512703e-2
+v -0.12417257 0.37250991 -1.1659887e-2
+v -0.12574233 0.37250991 -1.1659887e-2
+v -0.12574233 0.37250474 -1.2512703e-2
+v -0.12495745 0.37246314 -1.2512450e-2
+v -0.12248706 0.36999373 -1.2497469e-2
+v -0.12255899 0.36914529 -1.2492322e-2
+v -0.12248706 0.36999890 -1.1644654e-2
+v -0.12255899 0.36915046 -1.1639507e-2
+v -0.12742785 0.36999890 -1.1644654e-2
+v -0.12735591 0.36915046 -1.1639507e-2
+v -0.12742785 0.36999373 -1.2497469e-2
+v -0.12735591 0.36914529 -1.2492322e-2
+v -0.12495745 0.37002535 -1.2497661e-2
+v -0.12495745 0.36899893 -1.2491435e-2
+v -0.12602034 0.34955739 -1.1520646e-2
+v -0.12602034 0.34955221 -1.2373461e-2
+v -0.12389457 0.34955221 -1.2373461e-2
+v -0.12389457 0.34955739 -1.1520646e-2
+v -0.12495745 0.34971238 -1.2374433e-2
+v -0.12602034 0.34955480 -1.1947053e-2
+v -0.12389457 0.34955480 -1.1947053e-2
+v -0.12735591 0.36914787 -1.2065915e-2
+v -0.12255899 0.36914787 -1.2065915e-2
+v -0.12417257 0.37250732 -1.2086295e-2
+v -0.12574233 0.37250732 -1.2086295e-2
+v -0.12315799 0.37120173 -1.2078374e-2
+v -0.12675691 0.37120173 -1.2078374e-2
+v -0.12602034 0.36764359 -1.2056789e-2
+v -0.12389457 0.36764359 -1.2056789e-2
+v -0.12602034 0.36319484 -1.2029801e-2
+v -0.12389457 0.36319484 -1.2029801e-2
+v -0.12106953 0.34313986 -1.1908137e-2
+v -0.12198177 0.34177463 -1.1899855e-2
+v -0.12334702 0.34086241 -1.1894321e-2
+v -0.12495745 0.34054208 -1.1892378e-2
+v -0.12656788 0.34086241 -1.1894321e-2
+v -0.12793314 0.34177463 -1.1899855e-2
+v -0.12884537 0.34313986 -1.1908137e-2
+v -0.12916571 0.34475026 -1.1917907e-2
+v -0.12884537 0.34636066 -1.1927676e-2
+v -0.12793314 0.34772589 -1.1935958e-2
+v -0.12656788 0.34863811 -1.1941492e-2
+v -0.12334702 0.34863811 -1.1941492e-2
+v -0.12198177 0.34772589 -1.1935958e-2
+v -0.12106953 0.34636066 -1.1927676e-2
+v -0.12074920 0.34475026 -1.1917907e-2
+vt 4.5181610e-2 0.19645560
+vt 4.5181610e-2 0.19645560
+vt 4.5181610e-2 0.19645560
+vt 5.6696657e-2 0.25434565
+vt 5.6696657e-2 0.13856555
+vt 5.6696657e-2 0.25434565
+vt 5.6696657e-2 0.13856555
+vt 5.6696657e-2 0.25434565
+vt 7.1200736e-2 0.19645560
+vt 8.0735195e-2 0.14852264
+vt 8.0735195e-2 0.24438856
+vt 8.9488736e-2 0.30342247
+vt 8.9488736e-2 0.30342247
+vt 8.9488736e-2 8.9488736e-2
+vt 0.10788704 0.28502417
+vt 0.10788704 0.10788704
+vt 0.13856555 0.33621455
+vt 0.13856555 5.6696657e-2
+vt 0.13856555 0.33621455
+vt 0.13856555 5.6696657e-2
+vt 0.14852264 8.0735195e-2
+vt 0.14852264 0.31217601
+vt 0.19645560 0.34772960
+vt 0.19645560 4.5181610e-2
+vt 0.19645560 0.19645560
+vt 0.19645560 0.32171047
+vt 0.19645560 0.34772960
+vt 0.19645560 4.5181610e-2
+vt 0.19645560 7.1200736e-2
+vt 0.19645560 4.5181610e-2
+vt 0.24438856 0.31217601
+vt 0.24438856 8.0735195e-2
+vt 0.25434565 5.6696657e-2
+vt 0.25434565 0.33621455
+vt 0.25434565 5.6696657e-2
+vt 0.28502417 0.10788704
+vt 0.28502417 0.28502417
+vt 0.29156447 0.34559794
+vt 0.29156447 0.34559794
+vt 0.30342247 8.9488736e-2
+vt 0.30342247 8.9488736e-2
+vt 0.30342247 0.30342247
+vt 0.31217601 0.24438856
+vt 0.31217601 0.14852264
+vt 0.32171047 0.19645560
+vt 0.32265239 0.32265239
+vt 0.33621455 0.13856555
+vt 0.33621455 0.13856555
+vt 0.33621455 0.25434565
+vt 0.34559794 0.29156447
+vt 0.34559794 0.29156447
+vt 0.34772960 0.19645560
+vt 0.34772960 0.19645560
+vt 0.63827795 0.69231142
+vt 0.63827795 0.69231142
+vt 0.66529468 0.66529468
+vt 0.69231142 0.63827795
+vt 0.69231142 0.63827795
+vt 0.75135991 0.80539338
+vt 0.75135991 0.80539338
+vt 0.75564880 0.87757861
+vt 0.75564880 0.87757861
+vt 0.77538672 0.90097336
+vt 0.77837665 0.77837665
+vt 0.80539338 0.75135991
+vt 0.80539338 0.75135991
+vt 0.81289345 0.81289345
+vt 0.82308087 0.91455951
+vt 0.83898386 0.83898386
+vt 0.86670560 0.86670560
+vt 0.87757861 0.75564880
+vt 0.87757861 0.75564880
+vt 0.88205652 0.92195728
+vt 0.90094960 0.90094960
+vt 0.90097336 0.77538672
+vt 0.91455951 0.82308087
+vt 0.92195728 0.88205652
+vt 0.92520560 0.94518161
+vt 0.93519360 0.93519360
+vt 0.94518161 0.92520560
+vn 0.70021451 -4.3309921e-3 -0.71391938
+vn 0.64691385 0.26362457 -0.71554494
+vn 0.49512643 0.49078632 -0.71692301
+vn 0.39514579 0.37054157 -0.84057049
+vn 2.5149416e-17 -6.0663885e-3 -0.99998160
+vn -0.54150447 0.43814436 -0.71749734
+vn -0.49512643 0.49078632 -0.71692301
+vn -0.64691385 0.26362457 -0.71554494
+vn -0.70021451 -4.3309921e-3 -0.71391938
+vn -0.64691385 -0.27228655 -0.71229383
+vn -0.49512643 -0.49944831 -0.71091575
+vn -0.26796049 -0.65123294 -0.70999495
+vn -1.3177379e-15 -0.70453261 -0.70967161
+vn 0.26796049 -0.65123294 -0.70999495
+vn 0.49512643 -0.49944831 -0.71091575
+vn 0.64691385 -0.27228655 -0.71229383
+vn -7.2921511e-16 -6.0663885e-3 -0.99998160
+vn -1.3254851e-15 -6.0663885e-3 -0.99998160
+vn -2.0788838e-15 -6.0663885e-3 -0.99998160
+vn -8.6956042e-16 -6.0663885e-3 -0.99998160
+vn 3.8517367e-16 -6.0663885e-3 -0.99998160
+vn -9.2198118e-30 -6.0663885e-3 -0.99998160
+vn -3.8517367e-16 -6.0663885e-3 -0.99998160
+vn 8.9440500e-16 -6.0663885e-3 -0.99998160
+vn 2.1037284e-15 -6.0663885e-3 -0.99998160
+vn 1.3254851e-15 -6.0663885e-3 -0.99998160
+vn 7.2921511e-16 -6.0663885e-3 -0.99998160
+vn 5.3719766e-17 -6.0663885e-3 -0.99998160
+vn -7.5809029e-16 -6.0663885e-3 -0.99998160
+vn -7.5927862e-30 -6.0663885e-3 -0.99998160
+vn 7.4566800e-16 -6.0663885e-3 -0.99998160
+vn -6.6142057e-17 -6.0663885e-3 -0.99998160
+vn -5.0536402e-31 -6.0663885e-3 -0.99998160
+vn -1.3188768e-30 -6.0663885e-3 -0.99998160
+vn 0.70710678 -4.2895845e-3 -0.70709377
+vn -0.70710678 -4.2895845e-3 -0.70709377
+vn -7.3031263e-31 -6.0663885e-3 -0.99998160
+vn 0.63839385 -0.24692867 -0.72902643
+vn -0.63839385 -0.24692867 -0.72902643
+vn -3.0241609e-27 0.70280419 -0.71138335
+vn -0.50655174 0.67772518 -0.53300462
+vn 0.50655174 0.67772518 -0.53300462
+vn -2.0214561e-30 -6.0663885e-3 -0.99998160
+vn -0.58895471 0.38514938 -0.71048738
+vn 0.58895471 0.38514938 -0.71048738
+vn 0.62306059 0.31697545 -0.71506787
+vn -0.62306059 0.31697545 -0.71506787
+vn 1.2325952e-29 -6.0663885e-3 -0.99998160
+vn 0.78181672 0.24960262 -0.57136779
+vn 0.63259624 -0.27582558 -0.72370039
+vn -0.78181672 0.24960262 -0.57136779
+vn -0.63259624 -0.27582558 -0.72370039
+vn -1.3805066e-29 -6.0663885e-3 -0.99998160
+vn -1.0649622e-29 -6.0663885e-3 -0.99998160
+vn -0.66902274 0.18022153 -0.72106086
+vn 0.66902274 0.18022153 -0.72106086
+vn 2.5149416e-17 -6.0663885e-3 -0.99998160
+vn -0.96397989 0.26597023 -1.6135084e-3
+vn 0.96397989 0.26597023 -1.6135084e-3
+vn -0.91897790 -0.39430177 2.3920318e-3
+vn 0.91897790 -0.39430177 2.3920318e-3
+vn 0.88877883 0.45832790 -2.7804463e-3
+vn -0.88877883 0.45832790 -2.7804463e-3
+vn 0.83412578 0.55156413 -3.3460639e-3
+vn -0.83412578 0.55156413 -3.3460639e-3
+vn -0.93482641 -0.35509850 2.1542051e-3
+vn 0.93482641 -0.35509850 2.1542051e-3
+vn -1.00000000 -1.2477455e-14 4.6600823e-15
+vn 1.00000000 -1.2477455e-14 -2.4839100e-15
+vn 0.92387953 -0.38267639 2.3215064e-3
+vn 0.70710678 -0.70709377 4.2895845e-3
+vn 0.38268343 -0.92386253 5.6046122e-3
+vn -1.6555114e-15 -0.99998160 6.0663885e-3
+vn -0.38268343 -0.92386253 5.6046122e-3
+vn -0.70710678 -0.70709377 4.2895845e-3
+vn -0.92387953 -0.38267639 2.3215064e-3
+vn -1.00000000 -4.0680301e-15 2.2827397e-17
+vn -0.92387953 0.38267639 -2.3215064e-3
+vn -0.70710678 0.70709377 -4.2895845e-3
+vn -0.72477456 0.68897341 -4.1796573e-3
+vn 0.72477456 0.68897341 -4.1796573e-3
+vn 0.70710678 0.70709377 -4.2895845e-3
+vn 0.92387953 0.38267639 -2.3215064e-3
+vn 1.00000000 -3.9406830e-15 2.2937941e-17
+vn 1.00000000 -5.6881672e-15 -1.9700873e-14
+vn 1.00000000 -5.6881672e-15 -1.9700873e-14
+vn 0.92387953 0.38267639 -2.3215064e-3
+vn 0.92387953 0.38267639 -2.3215064e-3
+vn 0.70710678 0.70709377 -4.2895845e-3
+vn 0.70710678 0.70709377 -4.2895845e-3
+vn 0.72477456 0.68897341 -4.1796573e-3
+vn 0.72477456 0.68897341 -4.1796573e-3
+vn -0.72477456 0.68897341 -4.1796573e-3
+vn -0.72477456 0.68897341 -4.1796573e-3
+vn -0.70710678 0.70709377 -4.2895845e-3
+vn -0.70710678 0.70709377 -4.2895845e-3
+vn -0.92387953 0.38267639 -2.3215064e-3
+vn -0.92387953 0.38267639 -2.3215064e-3
+vn -1.00000000 -5.9428613e-15 -9.8334678e-15
+vn -1.00000000 -5.9428613e-15 -9.8334678e-15
+vn -0.92387953 -0.38267639 2.3215064e-3
+vn -0.92387953 -0.38267639 2.3215064e-3
+vn -0.70710678 -0.70709377 4.2895845e-3
+vn -0.70710678 -0.70709377 4.2895845e-3
+vn -0.38268343 -0.92386253 5.6046122e-3
+vn -0.38268343 -0.92386253 5.6046122e-3
+vn -1.4291166e-15 -0.99998160 6.0663885e-3
+vn -1.4291166e-15 -0.99998160 6.0663885e-3
+vn 0.38268343 -0.92386253 5.6046122e-3
+vn 0.38268343 -0.92386253 5.6046122e-3
+vn 0.70710678 -0.70709377 4.2895845e-3
+vn 0.70710678 -0.70709377 4.2895845e-3
+vn 0.92387953 -0.38267639 2.3215064e-3
+vn 0.92387953 -0.38267639 2.3215064e-3
+vn 1.00000000 -1.2477455e-14 -4.9678200e-15
+vn 1.00000000 -1.2477455e-14 -4.9678200e-15
+vn -1.00000000 -1.2477455e-14 0.0000000e+0
+vn -1.00000000 -1.2477455e-14 0.0000000e+0
+vn 0.93482641 -0.35509850 2.1542051e-3
+vn 0.93482641 -0.35509850 2.1542051e-3
+vn -0.93482641 -0.35509850 2.1542051e-3
+vn -0.93482641 -0.35509850 2.1542051e-3
+vn -4.2977142e-27 0.99998160 -6.0663885e-3
+vn -4.2977142e-27 0.99998160 -6.0663885e-3
+vn -0.77242078 0.63509943 -3.8528308e-3
+vn -0.77242078 0.63509943 -3.8528308e-3
+vn -0.77242078 0.63509943 -3.8528308e-3
+vn 0.77242078 0.63509943 -3.8528308e-3
+vn 0.77242078 0.63509943 -3.8528308e-3
+vn 0.77242078 0.63509943 -3.8528308e-3
+vn -0.83412578 0.55156413 -3.3460639e-3
+vn -0.83412578 0.55156413 -3.3460639e-3
+vn 0.83412578 0.55156413 -3.3460639e-3
+vn 0.83412578 0.55156413 -3.3460639e-3
+vn 0.88877883 0.45832790 -2.7804463e-3
+vn 0.88877883 0.45832790 -2.7804463e-3
+vn -0.88877883 0.45832790 -2.7804463e-3
+vn -0.88877883 0.45832790 -2.7804463e-3
+vn 0.99392690 0.11004030 -6.6755950e-4
+vn 0.99392690 0.11004030 -6.6755950e-4
+vn 0.99392690 0.11004030 -6.6755950e-4
+vn 0.91897790 -0.39430177 2.3920318e-3
+vn 0.91897790 -0.39430177 2.3920318e-3
+vn -0.99392690 0.11004030 -6.6755950e-4
+vn -0.99392690 0.11004030 -6.6755950e-4
+vn -0.99392690 0.11004030 -6.6755950e-4
+vn -0.91897790 -0.39430177 2.3920318e-3
+vn -0.91897790 -0.39430177 2.3920318e-3
+vn -0.93556933 0.35313658 -2.1423031e-3
+vn -0.93556933 0.35313658 -2.1423031e-3
+vn -0.93556933 0.35313658 -2.1423031e-3
+vn 0.96397989 0.26597023 -1.6135084e-3
+vn 0.96397989 0.26597023 -1.6135084e-3
+g Altimeter100s
+usemtl cylinder58_auv
+f 465/252/616 497/255/633 496/262/632 466/259/617
+f 465/252/616 580/252/699 566/246/685 480/244/631
+f 466/259/617 496/262/632 511/266/647 467/267/618
+f 466/259/617 579/257/698 580/252/699 465/252/616
+f 467/267/618 511/266/647 510/271/646 468/274/619
+f 467/267/618 578/263/697 579/257/698 466/259/617
+f 468/274/619 510/271/646 509/277/645 469/282/620
+f 468/274/619 551/279/671 555/279/674 577/274/696
+f 468/274/619 577/274/696 578/263/697 467/267/618
+f 469/282/620 509/277/645 508/283/644 470/289/621
+f 469/282/620 553/286/672 551/279/671 468/274/619
+f 470/289/621 508/283/644 507/285/643 471/293/622
+f 470/289/621 550/291/670 553/286/672 469/282/620
+f 470/289/621 554/291/673 550/291/670
+f 471/293/622 507/285/643 506/284/642 472/288/623
+f 471/293/622 575/292/694 576/289/695 470/289/621
+f 472/288/623 506/284/642 505/276/641 473/280/624
+f 472/288/623 574/287/693 575/292/694 471/293/622
+f 473/280/624 505/276/641 504/272/640 474/273/625
+f 473/280/624 573/280/692 574/287/693 472/288/623
+f 474/273/625 504/272/640 503/269/639 475/264/626
+f 474/273/625 572/273/691 573/280/692 473/280/624
+f 475/264/626 503/269/639 502/261/638 476/258/627
+f 475/264/626 571/268/690 572/273/691 474/273/625
+f 476/258/627 502/261/638 501/256/637 477/254/628
+f 476/258/627 570/260/689 571/268/690 475/264/626
+f 477/254/628 501/256/637 500/250/636 478/245/629
+f 477/254/628 569/254/688 570/260/689 476/258/627
+f 478/245/629 500/250/636 499/249/635 479/241/630
+f 478/245/629 568/247/687 569/254/688 477/254/628
+f 479/241/630 499/249/635 498/251/634 480/244/631
+f 479/241/630 567/242/686 568/247/687 478/245/629
+f 480/244/631 498/251/634 497/255/633 465/252/616
+f 480/244/631 566/246/685 567/242/686 479/241/630
+f 481/253/701 580/252/699 579/257/698 482/259/703
+f 482/259/702 579/257/698 578/263/697 483/263/705
+f 483/263/704 578/263/697 577/274/696 484/274/707
+f 484/274/706 577/274/696 555/279/674 552/278/767
+f 485/289/708 576/289/695 575/292/694 486/292/711
+f 486/292/710 575/292/694 574/287/693 487/288/713
+f 487/288/712 574/287/693 573/280/692 488/281/715
+f 488/281/714 573/280/692 572/273/691 489/275/717
+f 489/275/716 572/273/691 571/268/690 490/270/719
+f 490/270/718 571/268/690 570/260/689 491/260/721
+f 491/260/720 570/260/689 569/254/688 492/254/723
+f 492/254/722 569/254/688 568/247/687 493/247/725
+f 493/247/724 568/247/687 567/242/686 494/243/727
+f 494/243/726 567/242/686 566/246/685 495/248/729
+f 495/248/728 566/246/685 580/252/699 481/253/700
+f 496/262/632 512/265/648 511/266/647
+f 497/255/633 512/265/648 496/262/632
+f 498/251/634 512/265/648 497/255/633
+f 499/249/635 512/265/648 498/251/634
+f 500/250/636 512/265/648 499/249/635
+f 501/256/637 512/265/648 500/250/636
+f 502/261/638 512/265/648 501/256/637
+f 503/269/639 512/265/648 502/261/638
+f 504/272/640 512/265/648 503/269/639
+f 505/276/641 512/265/648 504/272/640
+f 506/284/642 512/265/648 505/276/641
+f 507/285/643 512/265/648 506/284/642
+f 508/283/644 512/265/648 507/285/643
+f 509/277/645 512/265/648 508/283/644
+f 510/271/646 512/265/648 509/277/645
+f 511/266/647 512/265/648 510/271/646
+f 513/296/649 516/298/651 521/306/654 518/304/652
+f 513/296/649 553/286/672 550/291/670 516/298/651
+f 514/294/731 565/294/684 563/299/682 519/299/735
+f 515/295/650 520/300/653 563/299/682 565/294/684
+f 515/295/650 551/279/671 553/286/672 513/296/649
+f 516/298/651 564/297/683 562/305/681 521/306/654
+f 517/297/733 522/305/736 562/305/681 564/297/683
+f 518/304/652 520/300/653 515/295/650 513/296/649
+f 518/304/652 521/306/654 546/312/667 548/307/669
+f 519/299/734 563/299/682 557/301/676 542/302/757
+f 520/300/653 540/302/665 557/301/676 563/299/682
+f 521/306/654 562/305/681 556/311/675 546/312/667
+f 522/305/737 544/312/762 556/311/675 562/305/681
+f 523/319/655 525/320/656 526/320/740 524/319/738
+f 523/319/655 538/314/663 537/317/662 525/320/656
+f 524/319/739 527/318/743 528/318/657 523/319/655
+f 525/320/656 537/317/662 559/317/678 526/320/741
+f 526/320/742 559/317/678 536/317/753
+f 527/318/745 558/313/677 534/313/661 528/318/657
+f 528/318/657 534/313/661 538/314/663 523/319/655
+f 529/310/658 530/316/659 537/317/662 538/314/663
+f 529/310/658 547/309/668 545/315/666 530/316/659
+f 530/316/659 545/315/666 561/316/680
+f 530/316/659 561/316/680 559/317/678 537/317/662
+f 531/316/746 561/316/680 545/315/666 543/315/759
+f 532/308/749 541/303/755 539/303/664 560/308/679
+f 532/308/748 560/308/679 558/313/677 535/313/750
+f 533/308/660 539/303/664 547/309/668 529/310/658
+f 533/308/660 560/308/679 539/303/664
+f 534/313/661 558/313/677 560/308/679 533/308/660
+f 535/313/751 558/313/677 527/318/744
+f 536/317/752 559/317/678 561/316/680 531/316/747
+f 538/314/663 534/313/661 533/308/660 529/310/658
+f 539/303/664 541/303/756 557/301/676 540/302/665
+f 540/302/665 548/307/669 547/309/668 539/303/664
+f 542/302/758 557/301/676 541/303/754
+f 543/315/761 556/311/675 544/312/763
+f 545/315/666 547/309/668 548/307/669 546/312/667
+f 546/312/667 556/311/675 543/315/760 545/315/666
+f 548/307/669 540/302/665 520/300/653 518/304/652
+f 549/290/766 576/289/695 485/289/709
+f 550/291/670 554/291/673 564/297/683 516/298/651
+f 552/278/768 555/279/674 565/294/684 514/294/730
+f 564/297/683 554/291/673 549/290/764 517/297/732
+f 565/294/684 555/279/674 551/279/671 515/295/650
+f 576/289/695 549/290/765 554/291/673 470/289/621
+o JoyStick
+#137 vertices, 135 faces
+v -8.6274083e-3 9.6264941e-2 -9.9467197e-2
+v -5.8460012e-3 0.17274489 -8.8805800e-2
+v 5.8460012e-3 0.17274489 -8.8805800e-2
+v 8.6274083e-3 9.6264941e-2 -9.9467197e-2
+v -8.6274083e-3 9.9802239e-2 -0.11952821
+v -5.8460012e-3 0.17519103 -0.10267854
+v 5.8460012e-3 0.17519103 -0.10267854
+v 8.6274083e-3 9.9802239e-2 -0.11952821
+v 7.6381396e-3 0.17009139 -0.10622421
+v 8.5150067e-3 0.10691995 -0.11843580
+v -7.6381396e-3 0.17009139 -0.10622421
+v -8.5150067e-3 0.10691995 -0.11843580
+v 8.5150067e-3 0.10335702 -9.8229428e-2
+v 7.6381396e-3 0.16689537 -8.8098667e-2
+v -7.6381396e-3 0.16689537 -8.8098667e-2
+v -8.5150067e-3 0.10335702 -9.8229428e-2
+v 6.1143682e-3 0.15802823 -0.10921078
+v 6.2396350e-3 0.11714492 -0.11657286
+v -6.1143682e-3 0.15802823 -0.10921078
+v -6.2396350e-3 0.11714492 -0.11657286
+v 6.2396350e-3 0.11453407 -0.10176601
+v 6.1143682e-3 0.15546980 -9.4701194e-2
+v -6.1143682e-3 0.15546980 -9.4701194e-2
+v -6.2396350e-3 0.11453407 -0.10176601
+v 6.8452769e-3 9.6259314e-2 -0.10508302
+v -6.8452769e-3 9.6259314e-2 -0.10508302
+v -6.8452769e-3 9.8627826e-2 -0.11851552
+v 6.8452769e-3 9.8627826e-2 -0.11851552
+v 5.4914356e-3 8.6185382e-2 -0.10886825
+v -5.4914356e-3 8.6185382e-2 -0.10886825
+v -5.4914356e-3 8.7992066e-2 -0.11911447
+v 5.4914356e-3 8.7992066e-2 -0.11911447
+v -8.8942353e-3 9.9446400e-2 -9.8001075e-2
+v 0.0000000e+0 9.5675391e-2 -9.6123694e-2
+v -1.1503211e-2 9.8033590e-2 -0.10949770
+v 0.0000000e+0 0.17302763 -8.6252734e-2
+v -7.8921016e-3 0.17467878 -9.5616834e-2
+v 7.8921016e-3 0.17028591 -8.6736174e-2
+v 7.8921016e-3 0.17467878 -9.5616834e-2
+v 1.1503211e-2 9.8033590e-2 -0.10949770
+v -8.8942353e-3 0.10316801 -0.11910737
+v 0.0000000e+0 0.10039179 -0.12287171
+v 0.0000000e+0 0.17632992 -0.10498093
+v 7.8921016e-3 0.17358819 -0.10546437
+v 6.8762539e-3 0.16691223 -0.10721453
+v 8.8942353e-3 0.10316801 -0.11910737
+v -7.8921016e-3 0.17358819 -0.10546437
+v -7.3773208e-3 0.10927909 -0.11798982
+v 8.8942353e-3 9.9446400e-2 -9.8001075e-2
+v 6.8762539e-3 0.16403501 -9.0896971e-2
+v -7.8921016e-3 0.17028591 -8.6736174e-2
+v -7.3773208e-3 0.10619221 -0.10048321
+v -1.0184186e-2 0.16849338 -9.7161437e-2
+v 1.0184186e-2 0.16849338 -9.7161437e-2
+v 1.1353342e-2 0.10513848 -0.10833261
+v 0.0000000e+0 0.17062406 -0.10924513
+v 0.0000000e+0 0.10276319 -9.4861699e-2
+v -1.1353342e-2 0.10513848 -0.10833261
+v 0.0000000e+0 0.16636270 -8.5077743e-2
+v 0.0000000e+0 0.10751377 -0.12180353
+v 5.8604063e-3 0.13741688 -0.11298837
+v 7.3773208e-3 0.10927909 -0.11798982
+v -6.8762539e-3 0.16691223 -0.10721453
+v -5.8604063e-3 0.13741688 -0.11298837
+v 7.3773208e-3 0.10619221 -0.10048321
+v 5.8604063e-3 0.13496471 -9.9081442e-2
+v -6.8762539e-3 0.16403501 -9.0896971e-2
+v -5.8604063e-3 0.13496471 -9.9081442e-2
+v 0.0000000e+0 0.11409893 -9.9298207e-2
+v 0.0000000e+0 0.15504339 -9.2282930e-2
+v 8.3195133e-3 0.11583949 -0.10916944
+v 0.0000000e+0 0.11758006 -0.11904067
+v 8.1524910e-3 0.15674901 -0.10195599
+v 0.0000000e+0 0.15845463 -0.11162904
+v -8.1524910e-3 0.15674901 -0.10195599
+v -8.3195133e-3 0.11583949 -0.10916944
+v 0.0000000e+0 9.5864562e-2 -0.10284427
+v 7.8269271e-3 9.5617225e-2 -0.10229684
+v -9.1270358e-3 9.7443570e-2 -0.11179927
+v -7.8269271e-3 9.5617225e-2 -0.10229684
+v 0.0000000e+0 9.9022577e-2 -0.12075426
+v -7.8269271e-3 9.8601589e-2 -0.11922201
+v 9.1270358e-3 9.7443570e-2 -0.11179927
+v 7.8269271e-3 9.8601589e-2 -0.11922201
+v 0.0000000e+0 8.5884268e-2 -0.10716055
+v 6.0349427e-3 9.6947272e-2 -0.10641875
+v -7.3219142e-3 8.7088724e-2 -0.11399136
+v -6.0349427e-3 9.6947272e-2 -0.10641875
+v 0.0000000e+0 8.8293180e-2 -0.12082217
+v -6.0349427e-3 9.8942714e-2 -0.11773547
+v 7.3219142e-3 8.7088724e-2 -0.11399136
+v 6.0349427e-3 9.8942714e-2 -0.11773547
+v 5.5757799e-3 -1.4766476e-2 -0.12659783
+v -5.5757799e-3 -1.4766476e-2 -0.12659783
+v -5.5757799e-3 -1.2935523e-2 -0.13698168
+v 5.5757799e-3 -1.2935523e-2 -0.13698168
+v 0.0000000e+0 9.8826131e-2 -9.4483359e-2
+v 1.1858980e-2 0.10130720 -0.10855422
+v 0.0000000e+0 0.17559268 -9.5455687e-2
+v 0.0000000e+0 0.17413858 -0.10858574
+v -1.0522802e-2 0.17193705 -9.6100274e-2
+v 0.0000000e+0 0.16973553 -8.3614808e-2
+v 1.0522802e-2 0.17193705 -9.6100274e-2
+v 0.0000000e+0 0.10378828 -0.12262508
+v -1.1858980e-2 0.10130720 -0.10855422
+v 7.8138751e-3 0.13619079 -0.10603490
+v -7.8138751e-3 0.13619079 -0.10603490
+v 0.0000000e+0 0.13455602 -9.6763621e-2
+v 0.0000000e+0 0.13782557 -0.11530619
+v 0.0000000e+0 0.10567773 -9.7565441e-2
+v 0.0000000e+0 0.16355547 -8.8177377e-2
+v 9.8364278e-3 0.10773565 -0.10923651
+v 0.0000000e+0 0.10979358 -0.12090759
+v 9.1683386e-3 0.16547362 -9.9055752e-2
+v 0.0000000e+0 0.16739177 -0.10993413
+v -9.1683386e-3 0.16547362 -9.9055752e-2
+v -9.8364278e-3 0.10773565 -0.10923651
+v 0.0000000e+0 9.5119831e-2 -9.9475978e-2
+v -1.0435903e-2 9.7109407e-2 -0.11075943
+v 0.0000000e+0 9.9098983e-2 -0.12204287
+v 1.0435903e-2 9.7109407e-2 -0.11075943
+v 0.0000000e+0 9.6614698e-2 -0.10453263
+v -8.0465903e-3 9.7944993e-2 -0.11207711
+v 0.0000000e+0 9.9275288e-2 -0.11962158
+v 8.0465903e-3 9.7944993e-2 -0.11207711
+v 0.0000000e+0 -1.5071635e-2 -0.12486719
+v -7.4343732e-3 -1.3850999e-2 -0.13178976
+v 0.0000000e+0 -1.2630364e-2 -0.13871232
+v 7.4343732e-3 -1.3850999e-2 -0.13178976
+v 7.4343732e-3 -0.27859264 -0.17847085
+v 5.5757799e-3 -0.27950812 -0.17327893
+v 0.0000000e+0 -0.27981328 -0.17154829
+v -5.5757799e-3 -0.27950812 -0.17327893
+v -7.4343732e-3 -0.27859264 -0.17847085
+v -5.5757799e-3 -0.27767717 -0.18366278
+v 0.0000000e+0 -0.27737201 -0.18539342
+v 5.5757799e-3 -0.27767717 -0.18366278
+vn -0.60126209 -0.70382519 0.37830411
+vn -0.37108774 0.80572296 0.46163233
+vn 0.37108774 0.80572296 0.46163233
+vn 0.60126209 -0.70382519 0.37830411
+vn -0.68282719 -0.27575236 -0.67654096
+vn -0.37108774 0.91501947 -0.15821901
+vn 0.37108774 0.91501947 -0.15821901
+vn 0.68282719 -0.27575236 -0.67654096
+vn 0.74288464 6.0803660e-2 -0.66665233
+vn 0.72283881 0.31867503 -0.61314784
+vn -0.74288464 6.0803660e-2 -0.66665233
+vn -0.72283881 0.31867503 -0.61314784
+vn 0.65787114 0.40245340 0.63658214
+vn 0.70512099 -0.46446251 0.53579750
+vn -0.70512099 -0.46446251 0.53579750
+vn -0.65787114 0.40245340 0.63658214
+vn 0.74525730 9.8055866e-2 -0.65952756
+vn 0.74352269 0.17570105 -0.64521559
+vn -0.74525730 9.8055866e-2 -0.65952756
+vn -0.74352269 0.17570105 -0.64521559
+vn 0.73637057 6.4763064e-2 0.67347170
+vn 0.74128514 -0.24048507 0.62662849
+vn -0.74128514 -0.24048507 0.62662849
+vn -0.73637057 6.4763064e-2 0.67347170
+vn -0.12960214 -0.95162100 -0.27860501
+vn 0.12960214 -0.95162100 -0.27860501
+vn 0.18090825 -0.98346415 8.3942951e-3
+vn -0.18090825 -0.98346415 8.3942951e-3
+vn 0.69530130 -0.15840938 0.70104391
+vn -0.69530130 -0.15840938 0.70104391
+vn -0.69530130 9.0915017e-2 -0.71294499
+vn 0.69530130 9.0915017e-2 -0.71294499
+vn -0.74857297 -0.11606922 0.65281425
+vn 2.0926675e-16 -0.81197762 0.58368857
+vn -0.90054515 -0.42530797 -9.0175199e-2
+vn 1.5585606e-15 0.85517492 0.51833951
+vn -0.41589189 0.89559802 0.15791809
+vn 0.70147091 0.25411032 0.66585773
+vn 0.41589189 0.89559802 0.15791809
+vn 0.90054515 -0.42530797 -9.0175199e-2
+vn -0.74425189 0.10764311 -0.65916772
+vn -1.3063747e-15 -0.21821482 -0.97590076
+vn 9.5572115e-16 0.98088412 -0.19459276
+vn 0.67596890 0.53426521 -0.50756943
+vn 0.74273061 5.8451010e-2 -0.66703428
+vn 0.74425189 0.10764311 -0.65916772
+vn -0.67596890 0.53426521 -0.50756943
+vn -0.71993528 0.33382573 -0.60848466
+vn 0.74857297 -0.11606922 0.65281425
+vn 0.70105977 -0.47851276 0.52871613
+vn -0.70147091 0.25411032 0.66585773
+vn -0.64170313 0.44244117 0.62646860
+vn -0.98108395 -0.18984801 -3.7841903e-2
+vn 0.98108395 -0.18984801 -3.7841903e-2
+vn 0.94123331 0.33398526 5.0335953e-2
+vn -1.6451094e-16 0.19645436 -0.98051297
+vn -6.9230061e-17 0.41579424 0.90945871
+vn -0.94123331 0.33398526 5.0335953e-2
+vn -2.7120371e-16 -0.58473025 0.81122779
+vn 2.9960051e-16 0.29155523 -0.95655400
+vn 0.74554413 0.12040517 -0.65548955
+vn 0.71993528 0.33382573 -0.60848466
+vn -0.74273061 5.8451010e-2 -0.66703428
+vn -0.74554413 0.12040517 -0.65548955
+vn 0.64170313 0.44244117 0.62646860
+vn 0.74565609 -0.11078060 0.65705757
+vn -0.70105977 -0.47851276 0.52871613
+vn -0.74565609 -0.11078060 0.65705757
+vn -1.2066185e-16 4.0587681e-2 0.99917598
+vn -6.0074295e-17 -0.32655382 0.94517861
+vn 0.99439778 0.10428176 1.7273605e-2
+vn -5.9833657e-17 0.20735351 -0.97826608
+vn 0.99797808 -6.2488852e-2 -1.1614666e-2
+vn 1.1964214e-16 0.18090880 -0.98349988
+vn -0.99797808 -6.2488852e-2 -1.1614666e-2
+vn -0.99439778 0.10428176 1.7273605e-2
+vn 1.1878338e-16 -0.94871310 -0.31613834
+vn 0.16547279 -0.98469022 -5.4808036e-2
+vn 0.24173691 -0.95730192 -0.15854431
+vn -0.16547279 -0.98469022 -5.4808036e-2
+vn -4.0137012e-16 -0.99560046 9.3700181e-2
+vn -0.25948031 -0.88146969 -0.39456451
+vn -0.24173691 -0.95730192 -0.15854431
+vn 0.25948031 -0.88146969 -0.39456451
+vn -4.3682708e-17 -0.20521605 0.97871670
+vn 0.34927225 -0.90734068 0.23396963
+vn -0.99947165 -3.2008902e-2 -5.6440331e-3
+vn -0.34927225 -0.90734068 0.23396963
+vn 0.0000000e+0 0.14190082 -0.98988088
+vn -0.32441895 -0.80974395 -0.48894486
+vn 0.99947165 -3.2008902e-2 -5.6440331e-3
+vn 0.32441895 -0.80974395 -0.48894486
+vn 0.69522392 -0.12429390 0.70796520
+vn -0.69522392 -0.12429390 0.70796520
+vn -0.69522392 0.12534030 -0.70778069
+vn 0.69522392 0.12534030 -0.70778069
+vn 2.0124831e-16 -0.18656069 0.98244344
+vn 0.99995599 9.3587280e-3 6.5836208e-4
+vn 2.4056169e-15 0.98480775 0.17364818
+vn -2.2992441e-16 0.61186762 -0.79096018
+vn -0.92854132 0.36566934 6.4007474e-2
+vn -3.1688184e-16 0.18711448 0.98233811
+vn 0.92854132 0.36566934 6.4007474e-2
+vn -4.3422731e-16 0.14932145 -0.98878871
+vn -0.99995599 9.3587280e-3 6.5836208e-4
+vn 0.99999118 4.1407714e-3 6.9844477e-4
+vn -0.99999118 4.1407714e-3 6.9844477e-4
+vn 2.9937504e-17 -0.16848312 0.98570454
+vn -2.9910325e-17 0.17844285 -0.98395028
+vn -1.2833910e-16 0.46225430 0.88674741
+vn -1.4994647e-16 -0.60059818 0.79955102
+vn 0.93153407 0.35957064 5.4343525e-2
+vn 2.9937772e-16 0.30026670 -0.95385529
+vn 0.97942688 -0.19791117 -3.9422711e-2
+vn 1.3459809e-16 0.19741508 -0.98031999
+vn -0.97942688 -0.19791117 -3.9422711e-2
+vn -0.93153407 0.35957064 5.4343525e-2
+vn 3.5533333e-17 -0.99974448 -2.2604962e-2
+vn -0.32556957 -0.92931742 -0.17428017
+vn -1.3604177e-15 -0.85711734 -0.51512121
+vn 0.32556957 -0.92931742 -0.17428017
+vn 1.3360038e-16 -0.91037264 0.41378938
+vn -0.50455545 -0.85197911 -0.13984062
+vn 0.0000000e+0 -0.76851097 -0.63983661
+vn 0.50455545 -0.85197911 -0.13984062
+vn -5.8205459e-17 -0.17319261 0.98488797
+vn -0.99999985 5.3187684e-4 9.3784237e-5
+vn 0.0000000e+0 0.17410371 -0.98472732
+vn 0.99999985 5.3187684e-4 9.3784237e-5
+vn 1.00000000 0.0000000e+0 1.4714931e-16
+vn 1.00000000 0.0000000e+0 1.4714931e-16
+vn 0.0000000e+0 -0.98480775 -0.17364818
+vn 0.69512233 -0.12483419 0.70796989
+vn 0.69512233 -0.12483419 0.70796989
+vn -1.3831171e-15 -0.98480775 -0.17364818
+vn -1.3831171e-15 -0.98480775 -0.17364818
+vn -1.3831171e-15 -0.98480775 -0.17364818
+vn -2.9101486e-17 -0.17364818 0.98480775
+vn -2.9101486e-17 -0.17364818 0.98480775
+vn -1.3831171e-15 -0.98480775 -0.17364818
+vn 0.0000000e+0 -0.98480775 -0.17364818
+vn -0.69512233 -0.12483419 0.70796989
+vn -0.69512233 -0.12483419 0.70796989
+vn 0.0000000e+0 -0.98480775 -0.17364818
+vn -1.00000000 0.0000000e+0 1.1771945e-16
+vn -1.00000000 0.0000000e+0 1.1771945e-16
+vn -1.3831171e-15 -0.98480775 -0.17364818
+vn -0.69512233 0.12483419 -0.70796989
+vn -0.69512233 0.12483419 -0.70796989
+vn -1.3831171e-15 -0.98480775 -0.17364818
+vn 0.0000000e+0 0.17364818 -0.98480775
+vn 0.0000000e+0 0.17364818 -0.98480775
+vn -1.3831171e-15 -0.98480775 -0.17364818
+vn -1.3831171e-15 -0.98480775 -0.17364818
+vn 0.69512233 0.12483419 -0.70796989
+vn 0.69512233 0.12483419 -0.70796989
+vn 0.0000000e+0 -0.98480775 -0.17364818
+g JoyStick
+usemtl Grip
+f 581//769 614//802 677//865 613//801
+f 581//769 660//848 698//886 614//802
+f 582//770 631//819 682//870 616//804
+f 583//771 616//804 682//870 618//806
+f 584//772 614//802 698//886 658//846
+f 584//772 629//817 677//865 614//802
+f 584//772 658//846 701//889 620//808
+f 585//773 615//803 685//873 621//809
+f 586//774 617//805 679//867 623//811
+f 586//774 627//815 681//869 617//805
+f 587//775 619//807 683//871 624//812
+f 587//775 623//811 679//867 619//807
+f 588//776 620//808 701//889 664//852
+f 588//776 626//814 678//866 620//808
+f 589//777 624//812 683//871 634//822
+f 589//777 634//822 694//882 625//813
+f 589//777 636//824 680//868 624//812
+f 590//778 635//823 678//866 626//814
+f 590//778 642//830 692//880 635//823
+f 591//779 633//821 681//869 627//815
+f 591//779 643//831 696//884 633//821
+f 592//780 621//809 685//873 638//826
+f 592//780 638//826 697//885 628//816
+f 592//780 640//828 684//872 621//809
+f 593//781 637//825 677//865 629//817
+f 593//781 645//833 690//878 637//825
+f 594//782 618//806 682//870 639//827
+f 594//782 634//822 683//871 618//806
+f 594//782 639//827 691//879 630//818
+f 595//783 639//827 682//870 631//819
+f 595//783 647//835 691//879 639//827
+f 596//784 613//801 677//865 637//825
+f 596//784 637//825 690//878 632//820
+f 596//784 638//826 685//873 613//801
+f 597//785 653//841 686//874 641//829
+f 598//786 641//829 686//874 651//839
+f 598//786 651//839 692//880 642//830
+f 598//786 652//840 689//877 641//829
+f 599//787 644//832 687//875 655//843
+f 599//787 654//842 689//877 644//832
+f 599//787 655//843 696//884 643//831
+f 600//788 656//844 687//875 644//832
+f 601//789 646//834 688//876 649//837
+f 601//789 649//837 690//878 645//833
+f 601//789 651//839 686//874 646//834
+f 602//790 650//838 688//876 646//834
+f 603//791 648//836 688//876 650//838
+f 603//791 650//838 691//879 647//835
+f 603//791 655//843 687//875 648//836
+f 604//792 649//837 688//876 648//836
+f 605//793 657//845 702//890 666//854
+f 605//793 658//846 698//886 657//845
+f 605//793 666//854 705//893 663//851
+f 606//794 659//847 703//891 668//856
+f 606//794 660//848 699//887 659//847
+f 606//794 668//856 702//890 657//845
+f 607//795 661//849 704//892 670//858
+f 607//795 662//850 700//888 661//849
+f 607//795 670//858 703//891 659//847
+f 608//796 663//851 705//893 672//860
+f 608//796 664//852 701//889 663//851
+f 608//796 672//860 704//892 661//849
+f 613//801 685//873 615//803 581//769
+f 615//803 699//887 660//848 581//769
+f 616//804 679//867 617//805 582//770
+f 617//805 681//869 631//819 582//770
+f 618//806 683//871 619//807 583//771
+f 619//807 679//867 616//804 583//771
+f 620//808 678//866 629//817 584//772
+f 621//809 684//872 622//810 585//773
+f 622//810 684//872 626//814 588//776
+f 622//810 700//888 662//850 585//773
+f 623//811 680//868 627//815 586//774
+f 624//812 680//868 623//811 587//775
+f 625//813 694//882 653//841 597//785
+f 625//813 695//883 636//824 589//777
+f 626//814 684//872 640//828 590//778
+f 627//815 680//868 636//824 591//779
+f 628//816 693//881 640//828 592//780
+f 628//816 697//885 656//844 600//788
+f 629//817 678//866 635//823 593//781
+f 630//818 691//879 650//838 602//790
+f 630//818 694//882 634//822 594//782
+f 631//819 681//869 633//821 595//783
+f 632//820 690//878 649//837 604//792
+f 632//820 697//885 638//826 596//784
+f 633//821 696//884 647//835 595//783
+f 635//823 692//880 645//833 593//781
+f 636//824 695//883 643//831 591//779
+f 640//828 693//881 642//830 590//778
+f 641//829 689//877 654//842 597//785
+f 642//830 693//881 652//840 598//786
+f 643//831 695//883 654//842 599//787
+f 644//832 689//877 652//840 600//788
+f 645//833 692//880 651//839 601//789
+f 646//834 686//874 653//841 602//790
+f 647//835 696//884 655//843 603//791
+f 648//836 687//875 656//844 604//792
+f 652//840 693//881 628//816 600//788
+f 653//841 694//882 630//818 602//790
+f 654//842 695//883 625//813 597//785
+f 656//844 697//885 632//820 604//792
+f 657//845 698//886 660//848 606//794
+f 659//847 699//887 662//850 607//795
+f 661//849 700//888 664//852 608//796
+f 662//850 699//887 615//803 585//773
+f 663//851 701//889 658//846 605//793
+f 664//852 700//888 622//810 588//776
+usemtl default
+f 609//797 665//853 706//894 673//861
+f 609//797 666//854 702//890 665//853
+f 609//797 673//861 709//897 671//859
+f 610//798 667//855 707//895 674//862
+f 610//798 668//856 703//891 667//855
+f 610//798 674//862 706//894 665//853
+f 611//799 669//857 708//896 675//863
+f 611//799 670//858 704//892 669//857
+f 611//799 675//863 707//895 667//855
+f 612//800 671//859 709//897 676//864
+f 612//800 672//860 705//893 671//859
+f 612//800 676//864 708//896 669//857
+f 665//853 702//890 668//856 610//798
+f 667//855 703//891 670//858 611//799
+f 669//857 704//892 672//860 612//800
+f 671//859 705//893 666//854 609//797
+f 673//861 711//901 710//898 709//897
+f 674//862 713//910 712//907 706//894
+f 675//863 715//916 714//914 707//895
+f 676//864 717//923 716//920 708//896
+f 706//894 712//906 711//902 673//861
+f 707//895 714//913 713//911 674//862
+f 708//896 716//919 715//917 675//863
+f 709//897 710//899 717//924 676//864
+f 711//904 716//922 717//925 710//900
+f 712//908 715//918 716//921 711//903
+f 713//909 714//912 715//915 712//905
+o FrontSeat
+#292 vertices, 288 faces
+v -0.16507423 4.3515009e-2 0.43030578
+v -0.16507423 0.12372296 0.43030578
+v 0.16507423 0.12372296 0.43030578
+v 0.16507423 4.3515009e-2 0.43030578
+v -0.16507423 4.3515009e-2 0.19741531
+v -0.16507423 0.12372296 0.19741531
+v 0.16507423 0.12372296 0.19741531
+v 0.16507423 4.3515009e-2 0.19741531
+v 0.16847265 8.3618987e-2 0.15417368
+v -0.16847265 8.3618987e-2 0.15417368
+v 0.16847265 8.3618987e-2 0.45316507
+v -0.16847265 8.3618987e-2 0.45316507
+v -0.18538911 8.3618987e-2 0.35744129
+v 0.18538911 8.3618987e-2 0.35744129
+v 0.17780453 3.8502012e-2 0.35817521
+v 0.17780453 0.12873596 0.35817521
+v -0.17780453 0.12873596 0.35817521
+v -0.17780453 3.8502012e-2 0.35817521
+v 0.10111893 0.13518124 0.35832200
+v -0.10111893 0.13518124 0.35832200
+v -0.10111893 3.2056730e-2 0.35832200
+v 0.10111893 3.2056730e-2 0.35832200
+v 9.9472124e-2 8.3618987e-2 0.12206277
+v -9.9472124e-2 8.3618987e-2 0.12206277
+v 9.9472124e-2 8.3618987e-2 0.46376721
+v -9.9472124e-2 8.3618987e-2 0.46376721
+v 9.9746592e-2 0.12873596 0.17912698
+v -9.9746592e-2 0.12873596 0.17912698
+v -9.9746592e-2 3.8502012e-2 0.17912698
+v 9.9746592e-2 3.8502012e-2 0.17912698
+v 9.9746592e-2 0.12873596 0.43320243
+v -9.9746592e-2 0.12873596 0.43320243
+v 9.9746592e-2 3.8502012e-2 0.43320243
+v -9.9746592e-2 3.8502012e-2 0.43320243
+v -0.16847265 5.7837859e-2 0.44494516
+v -0.14956144 3.8502012e-2 0.43320243
+v -0.17396199 3.8502012e-2 0.40961591
+v -0.14956144 0.12873596 0.43320243
+v -0.17396199 0.12873596 0.40961591
+v 0.16847265 0.10940012 0.44494516
+v 0.17396199 0.12873596 0.40961591
+v 0.17396199 3.8502012e-2 0.40961591
+v -0.16847265 5.7837859e-2 0.16444857
+v -0.14956144 3.8502012e-2 0.17912698
+v -0.14956144 0.12873596 0.17912698
+v 0.16847265 0.10940012 0.16444857
+v 0.16847265 5.7837859e-2 0.16444857
+v -0.16847265 0.10940012 0.16444857
+v 0.16847265 5.7837859e-2 0.44494516
+v -0.16847265 0.10940012 0.44494516
+v -0.14846358 8.3618987e-2 0.46376721
+v 0.18099764 8.3618987e-2 0.42135864
+v -0.14846358 8.3618987e-2 0.12206277
+v -0.18099764 8.3618987e-2 0.42135864
+v -0.18099764 8.3618987e-2 0.25050642
+v 0.18099764 8.3618987e-2 0.25050642
+v 0.17396199 3.8502012e-2 0.26518483
+v 0.17396199 0.12873596 0.26518483
+v -0.17396199 0.12873596 0.26518483
+v -0.17396199 3.8502012e-2 0.26518483
+v 0.18538911 5.7837859e-2 0.35773486
+v 0.15505079 3.2056730e-2 0.35832200
+v -0.15505079 0.13518124 0.35832200
+v -0.18538911 0.10940012 0.35773486
+v 0.18538911 0.10940012 0.35773486
+v -0.18538911 5.7837859e-2 0.35773486
+v 0.15505079 0.13518124 0.35832200
+v 0.0000000e+0 0.13518124 0.35832200
+v -0.15505079 3.2056730e-2 0.35832200
+v 0.0000000e+0 3.2056730e-2 0.35832200
+v 0.14846358 8.3618987e-2 0.12206277
+v 0.0000000e+0 8.3618987e-2 0.12206277
+v 0.14846358 8.3618987e-2 0.46376721
+v 0.0000000e+0 8.3618987e-2 0.46376721
+v 0.14956144 0.12873596 0.17912698
+v 0.0000000e+0 0.12873596 0.17912698
+v 0.0000000e+0 3.8502012e-2 0.17912698
+v 0.14956144 3.8502012e-2 0.17912698
+v 0.14956144 0.12873596 0.43320243
+v 0.0000000e+0 0.12873596 0.43320243
+v 0.14956144 3.8502012e-2 0.43320243
+v 0.0000000e+0 3.8502012e-2 0.43320243
+v 9.9472124e-2 5.7837859e-2 0.45437303
+v 0.10056999 3.2056730e-2 0.40726736
+v 9.9472124e-2 0.10940012 0.13380550
+v 9.9472124e-2 0.10940012 0.45437303
+v -0.10056999 3.2056730e-2 0.40726736
+v 0.10056999 0.13518124 0.40726736
+v -0.10056999 3.2056730e-2 0.26812051
+v -9.9472124e-2 5.7837859e-2 0.13380550
+v -9.9472124e-2 5.7837859e-2 0.45437303
+v 0.10056999 3.2056730e-2 0.26812051
+v -9.9472124e-2 0.10940012 0.45437303
+v 0.10056999 0.13518124 0.26812051
+v 9.9472124e-2 5.7837859e-2 0.13380550
+v -0.10056999 0.13518124 0.26812051
+v -0.10056999 0.13518124 0.40726736
+v -9.9472124e-2 0.10940012 0.13380550
+v -0.14846358 5.7837859e-2 0.45437303
+v 0.18099764 5.7837859e-2 0.41666154
+v 0.15285505 3.2056730e-2 0.40726736
+v -0.15285505 0.13518124 0.40726736
+v -0.14846358 0.10940012 0.13380550
+v -0.18099764 0.10940012 0.41666154
+v 0.14846358 0.10940012 0.45437303
+v 0.18099764 0.10940012 0.25637778
+v 0.14846358 5.7837859e-2 0.13380550
+v -0.18099764 5.7837859e-2 0.25637778
+v 0.18099764 5.7837859e-2 0.25637778
+v -0.15285505 3.2056730e-2 0.26812051
+v 0.15285505 0.13518124 0.26812051
+v -0.18099764 0.10940012 0.25637778
+v 0.18099764 0.10940012 0.41666154
+v -0.18099764 5.7837859e-2 0.41666154
+v 0.14846358 5.7837859e-2 0.45437303
+v -0.15285505 3.2056730e-2 0.40726736
+v 0.15285505 0.13518124 0.40726736
+v 0.14846358 0.10940012 0.13380550
+v -0.14846358 0.10940012 0.45437303
+v -0.14846358 5.7837859e-2 0.13380550
+v 0.15285505 3.2056730e-2 0.26812051
+v -0.15285505 0.13518124 0.26812051
+v 0.0000000e+0 5.7837859e-2 0.45437303
+v 0.0000000e+0 0.10940012 0.13380550
+v 0.0000000e+0 3.2056730e-2 0.40726736
+v 0.0000000e+0 0.13518124 0.40726736
+v 0.0000000e+0 5.7837859e-2 0.13380550
+v 0.0000000e+0 3.2056730e-2 0.26812051
+v 0.0000000e+0 0.10940012 0.45437303
+v 0.0000000e+0 0.13518124 0.26812051
+v -0.15946613 0.40586910 0.14116622
+v -0.15946613 0.40268430 5.9850879e-2
+v 0.15946613 0.40268430 5.9850879e-2
+v 0.15946613 0.40586910 0.14116622
+v -0.15946613 0.16598987 0.15736890
+v -0.15946613 0.16280507 7.6053561e-2
+v 0.15946613 0.16280507 7.6053561e-2
+v 0.15946613 0.16598987 0.15736890
+v 0.16274909 0.11962688 0.11973527
+v -0.16274909 0.11962688 0.11973527
+v 0.16274909 0.42552793 9.9073132e-2
+v -0.16274909 0.42552793 9.9073132e-2
+v -0.17909085 0.32547854 0.10583098
+v 0.17909085 0.32547854 0.10583098
+v 0.17176394 0.33017681 0.15137452
+v 0.17176394 0.32656287 5.9896860e-2
+v -0.17176394 0.32656287 5.9896860e-2
+v -0.17176394 0.33017681 0.15137452
+v 0.11274304 0.34135809 5.2345960e-2
+v -0.11274304 0.34135809 5.2345960e-2
+v -0.11274304 0.34520966 0.15691068
+v 0.11274304 0.34520966 0.15691068
+v 0.11115218 8.7790819e-2 0.12188564
+v -0.11115218 8.7790819e-2 0.12188564
+v 0.11115218 0.45731338 9.6926179e-2
+v -0.11115218 0.45731338 9.6926179e-2
+v 0.11141732 0.14781556 7.1970377e-2
+v -0.11141732 0.14781556 7.1970377e-2
+v -0.11141732 0.15118568 0.16346451
+v 0.11141732 0.15118568 0.16346451
+v 0.11141732 0.42257525 5.3411688e-2
+v -0.11141732 0.42257525 5.3411688e-2
+v 0.11141732 0.42594538 0.14490582
+v -0.11141732 0.42594538 0.14490582
+v -4.3368087e-19 0.44087731 0.14389724
+v -4.3368087e-19 0.43770185 5.2389959e-2
+v -4.3368087e-19 0.15429112 0.16325475
+v -4.3368087e-19 0.15111566 7.1747471e-2
+v -4.3368087e-19 0.47376534 9.5814928e-2
+v -4.3368087e-19 8.8337410e-2 0.12184872
+v 4.3368087e-19 0.35664222 0.15613847
+v -4.3368087e-19 0.35301312 5.1558719e-2
+v -0.16274909 0.41815210 0.12577755
+v -0.14448036 0.41518050 0.14563293
+v -0.16805194 0.38272105 0.14782541
+v -0.14448036 0.41167003 5.4148283e-2
+v -0.16805194 0.37910711 5.6347751e-2
+v 0.16274909 0.41608403 7.3504803e-2
+v 0.16805194 0.37910711 5.6347751e-2
+v 0.16805194 0.38272105 0.14782541
+v -0.16274909 0.13117325 0.14516159
+v -0.14448036 0.14894688 0.16361573
+v -0.14448036 0.14543641 7.2131076e-2
+v 0.16274909 0.12910519 9.2888836e-2
+v 0.16274909 0.13117325 0.14516159
+v -0.16274909 0.12910519 9.2888836e-2
+v 0.16274909 0.41815210 0.12577755
+v -0.16274909 0.41608403 7.3504803e-2
+v -0.14341979 0.44545266 9.7727313e-2
+v 0.17484856 0.39024042 0.10145663
+v -0.14341979 8.7396766e-2 0.12191226
+v -0.17484856 0.39024042 0.10145663
+v -0.17484856 0.21713075 0.11314935
+v 0.17484856 0.21713075 0.11314935
+v 0.16805194 0.23517662 0.15779133
+v 0.16805194 0.23156268 6.6313664e-2
+v -0.16805194 0.23156268 6.6313664e-2
+v -0.16805194 0.23517662 0.15779133
+v 0.17909085 0.32682037 0.13194657
+v 0.14978321 0.33696759 0.15746739
+v -0.14978321 0.33295563 5.2913505e-2
+v -0.17909085 0.32473161 7.9675217e-2
+v 0.17909085 0.32473161 7.9675217e-2
+v -0.17909085 0.32682037 0.13194657
+v 0.14978321 0.33295563 5.2913505e-2
+v -6.0237788e-2 0.34921846 5.1815030e-2
+v -0.14978321 0.33696759 0.15746739
+v 6.0237788e-2 0.35291999 0.15638989
+v 0.14341979 8.7396766e-2 0.12191226
+v -6.0237788e-2 8.8159450e-2 0.12186074
+v 0.14341979 0.44545266 9.7727313e-2
+v -6.0237788e-2 0.46840889 9.6176731e-2
+v 0.14448036 0.14543641 7.2131076e-2
+v -6.0237788e-2 0.15004121 7.1820045e-2
+v -6.0237788e-2 0.15328005 0.16332304
+v 0.14448036 0.14894688 0.16361573
+v 0.14448036 0.41167003 5.4148283e-2
+v -6.0237788e-2 0.43277691 5.2722615e-2
+v 0.14448036 0.41518050 0.14563293
+v -6.0237788e-2 0.43601575 0.14422561
+v 0.11115218 0.44811731 0.12375355
+v 0.11221275 0.39813966 0.15333552
+v 0.11115218 9.9526630e-2 9.4886724e-2
+v 0.11115218 0.44619152 7.1471187e-2
+v -0.11221275 0.39813966 0.15333552
+v 0.11221275 0.39428809 4.8770794e-2
+v -0.11221275 0.24766489 0.16349936
+v -0.11115218 0.10145242 0.14716908
+v -0.11115218 0.44811731 0.12375355
+v 0.11221275 0.24766489 0.16349936
+v -0.11115218 0.44619152 7.1471187e-2
+v 0.11221275 0.24381331 5.8934638e-2
+v 0.11115218 0.10145242 0.14716908
+v -0.11221275 0.24381331 5.8934638e-2
+v -0.11221275 0.39428809 4.8770794e-2
+v -0.11115218 9.9526630e-2 9.4886724e-2
+v 6.0237788e-2 0.43601575 0.14422561
+v 6.0237788e-2 0.43277691 5.2722615e-2
+v 6.0237788e-2 0.15328005 0.16332304
+v 6.0237788e-2 0.15004121 7.1820045e-2
+v 6.0237788e-2 0.46840889 9.6176731e-2
+v 6.0237788e-2 8.8159450e-2 0.12186074
+v -6.0237788e-2 0.35291999 0.15638989
+v 6.0237788e-2 0.34921846 5.1815030e-2
+v 0.0000000e+0 0.46407638 0.12267559
+v 0.0000000e+0 0.10067543 9.4809128e-2
+v 0.0000000e+0 0.41185048 0.15240942
+v 0.0000000e+0 0.40822139 4.7829667e-2
+v 0.0000000e+0 0.10248998 0.14709900
+v 0.0000000e+0 0.25489881 0.16301074
+v 0.0000000e+0 0.46226183 7.0385716e-2
+v 0.0000000e+0 0.25126972 5.8430994e-2
+v -0.14341979 0.43661193 0.12453068
+v 0.17484856 0.38652564 0.12791377
+v 0.14766207 0.38825512 0.15400317
+v -0.14766207 0.38424316 4.9449281e-2
+v -0.14341979 9.8698425e-2 9.4942666e-2
+v -0.17484856 0.38443688 7.5642415e-2
+v 0.14341979 0.43460595 7.2253737e-2
+v 0.17484856 0.22203531 8.6611855e-2
+v 0.14341979 0.10070441 0.14721961
+v -0.17484856 0.22412407 0.13888321
+v 0.17484856 0.22412407 0.13888321
+v -0.14766207 0.24244973 0.16385162
+v 0.14766207 0.23843777 5.9297730e-2
+v -0.17484856 0.22203531 8.6611855e-2
+v 0.17484856 0.38443688 7.5642415e-2
+v -0.17484856 0.38652564 0.12791377
+v 0.14341979 0.43661193 0.12453068
+v -0.14766207 0.38825512 0.15400317
+v 0.14766207 0.38424316 4.9449281e-2
+v 0.14341979 9.8698425e-2 9.4942666e-2
+v -0.14341979 0.43460595 7.2253737e-2
+v -0.14341979 0.10070441 0.14721961
+v 0.14766207 0.24244973 0.16385162
+v -0.14766207 0.23843777 5.9297730e-2
+v 6.0237788e-2 0.45888040 0.12302655
+v 6.0237788e-2 0.10030140 9.4834392e-2
+v -6.0237788e-2 0.40738650 0.15271094
+v 6.0237788e-2 0.40368496 4.8136081e-2
+v -6.0237788e-2 0.10215217 0.14712182
+v 6.0237788e-2 0.25254358 0.16316983
+v -6.0237788e-2 0.45702964 7.0739125e-2
+v -6.0237788e-2 0.24884205 5.8594971e-2
+v -6.0237788e-2 0.45888040 0.12302655
+v -6.0237788e-2 0.10030140 9.4834392e-2
+v 6.0237788e-2 0.40738650 0.15271094
+v -6.0237788e-2 0.40368496 4.8136081e-2
+v 6.0237788e-2 0.10215217 0.14712182
+v -6.0237788e-2 0.25254358 0.16316983
+v 6.0237788e-2 0.45702964 7.0739125e-2
+v 6.0237788e-2 0.24884205 5.8594971e-2
+vn -0.48712651 -0.73849068 0.46619662
+vn -0.48712651 0.73849068 0.46619662
+vn 0.48712651 0.73849068 0.46619662
+vn 0.48712651 -0.73849068 0.46619662
+vn -0.62264853 -0.75862303 -0.19183301
+vn -0.62264853 0.75862303 -0.19183301
+vn 0.62264853 0.75862303 -0.19183301
+vn 0.62264853 -0.75862303 -0.19183301
+vn 0.94031752 1.4401947e-17 -0.34029834
+vn -0.94031752 1.4401947e-17 -0.34029834
+vn 0.73615894 -4.5513099e-17 0.67680870
+vn -0.73615894 3.0342066e-17 0.67680870
+vn -0.99989318 1.7375486e-18 1.4616180e-2
+vn 0.99989318 3.0407100e-18 1.4616180e-2
+vn 0.67564141 -0.73715629 1.0453888e-2
+vn 0.67564141 0.73715629 1.0453888e-2
+vn -0.67564141 0.73715629 1.0453888e-2
+vn -0.67564141 -0.73715629 1.0453888e-2
+vn 0.0000000e+0 1.00000000 0.0000000e+0
+vn 0.0000000e+0 1.00000000 0.0000000e+0
+vn 0.0000000e+0 -1.00000000 0.0000000e+0
+vn 0.0000000e+0 -1.00000000 0.0000000e+0
+vn -5.2846590e-18 9.1497212e-17 -1.00000000
+vn 5.0791156e-33 7.6247677e-17 -1.00000000
+vn -1.5230776e-16 1.7724467e-16 1.00000000
+vn -4.6890538e-16 1.3293351e-16 1.00000000
+vn 0.0000000e+0 0.97186389 -0.23554314
+vn -3.1083640e-18 0.97186389 -0.23554314
+vn -2.2577859e-17 -0.97186389 -0.23554314
+vn 0.0000000e+0 -0.97186389 -0.23554314
+vn 0.0000000e+0 0.88145708 0.47226414
+vn -1.1963816e-16 0.88145708 0.47226414
+vn 0.0000000e+0 -0.88145708 0.47226414
+vn 0.0000000e+0 -0.88145708 0.47226414
+vn -0.66256767 -0.42855268 0.61428551
+vn -0.15826145 -0.86218489 0.48123854
+vn -0.62648378 -0.74964662 0.21341983
+vn -0.15826145 0.86218489 0.48123854
+vn -0.62648378 0.74964662 0.21341983
+vn 0.66256767 0.42855268 0.61428551
+vn 0.62648378 0.74964662 0.21341983
+vn 0.62648378 -0.74964662 0.21341983
+vn -0.86908314 -0.39629469 -0.29604900
+vn -0.22922082 -0.94619992 -0.22839335
+vn -0.22922082 0.94619992 -0.22839335
+vn 0.86908314 0.39629469 -0.29604900
+vn 0.86908314 -0.39629469 -0.29604900
+vn -0.86908314 0.39629469 -0.29604900
+vn 0.66256767 -0.42855268 0.61428551
+vn -0.66256767 0.42855268 0.61428551
+vn -0.23199420 7.5212878e-17 0.97271717
+vn 0.97302524 1.6076059e-17 0.23069868
+vn -0.49718350 5.0377636e-17 -0.86764542
+vn -0.97302524 2.2021998e-19 0.23069868
+vn -0.99620110 1.9543925e-18 -8.7082494e-2
+vn 0.99620110 1.9543925e-18 -8.7082494e-2
+vn 0.66772013 -0.74054958 -7.5737277e-2
+vn 0.66772013 0.74054958 -7.5737277e-2
+vn -0.66772013 0.74054958 -7.5737277e-2
+vn -0.66772013 -0.74054958 -7.5737277e-2
+vn 0.98217405 -0.18737161 1.5033640e-2
+vn 0.14207530 -0.98985397 1.9289814e-3
+vn -0.14207530 0.98985397 1.9289814e-3
+vn -0.98217405 0.18737161 1.5033640e-2
+vn 0.98217405 0.18737161 1.5033640e-2
+vn -0.98217405 -0.18737161 1.5033640e-2
+vn 0.14207530 0.98985397 1.9289814e-3
+vn 0.0000000e+0 1.00000000 0.0000000e+0
+vn -0.14207530 -0.98985397 1.9289814e-3
+vn 0.0000000e+0 -1.00000000 0.0000000e+0
+vn 0.49718350 8.3962727e-17 -0.86764542
+vn -5.2846590e-18 9.1497212e-17 -1.00000000
+vn 0.23199420 3.0085151e-17 0.97271717
+vn -7.3985227e-17 1.7724467e-16 1.00000000
+vn 0.22922082 0.94619992 -0.22839335
+vn 0.0000000e+0 0.97186389 -0.23554314
+vn 0.0000000e+0 -0.97186389 -0.23554314
+vn 0.22922082 -0.94619992 -0.22839335
+vn 0.15826145 0.86218489 0.48123854
+vn -3.9163447e-17 0.88145708 0.47226414
+vn 0.15826145 -0.86218489 0.48123854
+vn 0.0000000e+0 -0.88145708 0.47226414
+vn -7.3751929e-17 -0.55639931 0.83091504
+vn 0.0000000e+0 -0.99259267 0.12148992
+vn 1.0630625e-17 0.71559089 -0.69851963
+vn -7.3596519e-17 0.55639931 0.83091504
+vn 0.0000000e+0 -0.99259267 0.12148992
+vn 0.0000000e+0 0.99259267 0.12148992
+vn 0.0000000e+0 -0.99934670 -3.6141096e-2
+vn -3.4203512e-17 -0.71559089 -0.69851963
+vn -2.0652372e-16 -0.55639931 0.83091504
+vn 0.0000000e+0 -0.99934670 -3.6141096e-2
+vn -3.2560866e-16 0.55639931 0.83091504
+vn 0.0000000e+0 0.99934670 -3.6141096e-2
+vn -1.5789131e-17 -0.71559089 -0.69851963
+vn -4.7635891e-17 0.99934670 -3.6141096e-2
+vn -4.0032548e-17 0.99259267 0.12148992
+vn 5.8090012e-17 0.71559089 -0.69851963
+vn -0.19640801 -0.54426503 0.81559762
+vn 0.93924882 -0.24830380 0.23697442
+vn 0.14540677 -0.97911845 0.14207017
+vn -0.14540677 0.97911845 0.14207017
+vn -0.39641245 0.67604946 -0.62113951
+vn -0.93924882 0.24830380 0.23697442
+vn 0.19640801 0.54426503 0.81559762
+vn 0.97227700 0.21648422 -8.8385619e-2
+vn 0.39641245 -0.67604946 -0.62113951
+vn -0.97227700 -0.21648422 -8.8385619e-2
+vn 0.97227700 -0.21648422 -8.8385619e-2
+vn -0.15568142 -0.98680083 -4.4580457e-2
+vn 0.15568142 0.98680083 -4.4580457e-2
+vn -0.97227700 0.21648422 -8.8385619e-2
+vn 0.93924882 0.24830380 0.23697442
+vn -0.93924882 -0.24830380 0.23697442
+vn 0.19640801 -0.54426503 0.81559762
+vn -0.14540677 -0.97911845 0.14207017
+vn 0.14540677 0.97911845 0.14207017
+vn 0.39641245 0.67604946 -0.62113951
+vn -0.19640801 0.54426503 0.81559762
+vn -0.39641245 -0.67604946 -0.62113951
+vn 0.15568142 -0.98680083 -4.4580457e-2
+vn -0.15568142 0.98680083 -4.4580457e-2
+vn 0.0000000e+0 -0.55639931 0.83091504
+vn 0.0000000e+0 0.71559089 -0.69851963
+vn 0.0000000e+0 -0.99259267 0.12148992
+vn 0.0000000e+0 0.99259267 0.12148992
+vn -5.1585060e-18 -0.71559089 -0.69851963
+vn 0.0000000e+0 -0.99934670 -3.6141096e-2
+vn -1.1066488e-16 0.55639931 0.83091504
+vn 0.0000000e+0 0.99934670 -3.6141096e-2
+vn -0.61482081 0.46085862 0.64000368
+vn -0.62505416 0.37824860 -0.68281424
+vn 0.62505416 0.37824860 -0.68281424
+vn 0.61482081 0.46085862 0.64000368
+vn -0.62834297 -0.13593047 0.76596868
+vn -0.62328717 -0.23617201 -0.74547695
+vn 0.62328717 -0.23617201 -0.74547695
+vn 0.62834297 -0.13593047 0.76596868
+vn 0.94396935 -0.32976742 1.3240940e-2
+vn -0.94396935 -0.32976742 1.3240940e-2
+vn 0.84510105 0.53417295 -2.1528341e-2
+vn -0.84510105 0.53417295 -2.1528341e-2
+vn -0.99990320 1.3902358e-2 -5.5555707e-4
+vn 0.99990320 1.3902358e-2 -5.5555707e-4
+vn 0.68772122 5.9063800e-2 0.72356824
+vn 0.68803188 -3.8715341e-2 -0.72464699
+vn -0.68803188 -3.8715341e-2 -0.72464699
+vn -0.68772122 5.9063800e-2 0.72356824
+vn -8.6654130e-16 -6.7391607e-2 -0.99772660
+vn 8.9617595e-16 -6.7391607e-2 -0.99772660
+vn -2.8183116e-16 6.7391607e-2 0.99772660
+vn 2.7741241e-16 6.7391607e-2 0.99772660
+vn -1.4621066e-2 -0.99898169 4.2682751e-2
+vn 1.4621066e-2 -0.99898169 4.2682751e-2
+vn 0.27699577 0.96008187 -3.8937670e-2
+vn -0.27699577 0.96008187 -3.8937670e-2
+vn -1.0474212e-2 -0.28503371 -0.95846026
+vn 1.0474212e-2 -0.28503371 -0.95846026
+vn 1.0012536e-2 -0.15785623 0.98741134
+vn -1.0012536e-2 -0.15785623 0.98741134
+vn 0.12244879 0.39453500 -0.91068569
+vn -0.12244879 0.39453500 -0.91068569
+vn 0.11777587 0.50141008 0.85715621
+vn -0.11777587 0.50141008 0.85715621
+vn -9.0906569e-17 0.49281815 0.87013233
+vn -2.6455484e-16 0.38490383 -0.92295669
+vn 1.6840036e-17 -0.15071939 0.98857659
+vn 1.6171807e-17 -0.27813473 -0.96054207
+vn 0.0000000e+0 0.99921876 -3.9520488e-2
+vn 2.0542242e-16 -0.99913491 4.1586322e-2
+vn 0.0000000e+0 6.7391607e-2 0.99772660
+vn 8.1868356e-18 -6.7391607e-2 -0.99772660
+vn -0.78028506 0.52838140 0.33461669
+vn -0.32010828 0.50235385 0.80322556
+vn -0.67468114 0.24556156 0.69606384
+vn -0.32887885 0.40109954 -0.85496074
+vn -0.68007448 0.15234208 -0.71714056
+vn 0.78791470 0.48552920 -0.37875035
+vn 0.68007448 0.15234208 -0.71714056
+vn 0.67468114 0.24556156 0.69606384
+vn -0.87550627 -0.26166157 0.40622898
+vn -0.22467277 -0.15772072 0.96158532
+vn -0.22131287 -0.28209046 -0.93351250
+vn 0.87046038 -0.31263059 -0.38021158
+vn 0.87550627 -0.26166157 0.40622898
+vn -0.87046038 -0.31263059 -0.38021158
+vn 0.78028506 0.52838140 0.33461669
+vn -0.78791470 0.48552920 -0.37875035
+vn -0.53905876 0.84156948 -3.4299635e-2
+vn 0.97867481 0.20525213 -8.1966366e-3
+vn -0.49897364 -0.86584942 3.6470354e-2
+vn -0.97867481 0.20525213 -8.1966366e-3
+vn -0.99654820 -8.2950397e-2 3.3039087e-3
+vn 0.99654820 -8.2950397e-2 3.3039087e-3
+vn 0.67566597 -2.3371717e-2 0.73683734
+vn 0.67362247 -0.12209510 -0.72892081
+vn -0.67362247 -0.12209510 -0.72892081
+vn -0.67566597 -2.3371717e-2 0.73683734
+vn 0.98381810 2.6347744e-2 0.17722231
+vn 0.14948475 6.8597044e-2 0.98638165
+vn -0.14952849 -6.4664577e-2 -0.98664063
+vn -0.98395520 2.3567265e-3 -0.17840014
+vn 0.98395520 2.3567265e-3 -0.17840014
+vn -0.98381810 2.6347744e-2 0.17722231
+vn 0.14952849 -6.4664577e-2 -0.98664063
+vn 6.5621284e-16 -6.7391607e-2 -0.99772660
+vn -0.14948475 6.8597044e-2 0.98638165
+vn 1.7543427e-16 6.7391607e-2 0.99772660
+vn 0.49897364 -0.86584942 3.6470354e-2
+vn 7.6639759e-3 -0.99909217 4.1905796e-2
+vn 0.53905876 0.84156948 -3.4299635e-2
+vn -0.14954363 0.98797087 -3.9373293e-2
+vn 0.22131287 -0.28209046 -0.93351250
+vn 5.4468859e-3 -0.28014992 -0.95994081
+vn 5.2087324e-3 -0.15280316 0.98824292
+vn 0.22467277 -0.15772072 0.96158532
+vn 0.32887885 0.40109954 -0.85496074
+vn -6.4127094e-2 0.38737918 -0.91968749
+vn 0.32010828 0.50235385 0.80322556
+vn -6.1592531e-2 0.49503928 0.86668476
+vn 0.22085038 0.82086414 0.52669457
+vn 2.8188340e-2 0.18116399 0.98304884
+vn -1.4908494e-2 -0.71873771 -0.69512146
+vn 0.22801092 0.76562179 -0.60152664
+vn -2.8188340e-2 0.18116399 0.98304884
+vn 2.9000974e-2 4.8940053e-2 -0.99838060
+vn 3.0043087e-3 3.3553929e-2 0.99943239
+vn 1.4334490e-2 -0.64122068 0.76722263
+vn -0.22085038 0.82086414 0.52669457
+vn -3.0043087e-3 3.3553929e-2 0.99943239
+vn -0.22801092 0.76562179 -0.60152664
+vn -3.1124732e-3 -0.10101054 -0.99488049
+vn -1.4334490e-2 -0.64122068 0.76722263
+vn 3.1124732e-3 -0.10101054 -0.99488049
+vn -2.9000974e-2 4.8940053e-2 -0.99838060
+vn 1.4908494e-2 -0.71873771 -0.69512146
+vn 6.1592531e-2 0.49503928 0.86668476
+vn 6.4127094e-2 0.38737918 -0.91968749
+vn -5.2087324e-3 -0.15280316 0.98824292
+vn -5.4468859e-3 -0.28014992 -0.95994081
+vn 0.14954363 0.98797087 -3.9373293e-2
+vn -7.6639759e-3 -0.99909217 4.1905796e-2
+vn -1.7985302e-16 6.7391607e-2 0.99772660
+vn -6.4721553e-16 -6.7391607e-2 -0.99772660
+vn -1.2355613e-16 0.83354436 0.55245253
+vn 1.4651301e-16 -0.70919661 -0.70501076
+vn 3.0543157e-17 0.17613344 0.98436630
+vn -2.1820392e-17 4.3712072e-2 -0.99904417
+vn 8.4490474e-17 -0.63151739 0.77536171
+vn 1.3716469e-19 3.4708119e-2 0.99939749
+vn -2.3369485e-16 0.77807338 -0.62817339
+vn 0.0000000e+0 -9.9865493e-2 -0.99500095
+vn -0.45930320 0.75341663 0.47053581
+vn 0.95093276 0.22611938 0.21117981
+vn 0.19712797 0.20326669 0.95907415
+vn -0.19970514 7.4513644e-2 -0.97701872
+vn -0.38715635 -0.64918370 -0.65472932
+vn -0.95329226 0.19718815 -0.22880275
+vn 0.46953410 0.70028359 -0.53771798
+vn 0.97354758 -9.8391023e-2 -0.20621427
+vn 0.39498985 -0.57198694 0.71889774
+vn -0.97447991 -7.0160378e-2 0.21322860
+vn 0.97447991 -7.0160378e-2 0.21322860
+vn -0.15722393 2.3717337e-2 0.98727814
+vn 0.15657167 -0.10907938 -0.98162468
+vn -0.97354758 -9.8391023e-2 -0.20621427
+vn 0.95329226 0.19718815 -0.22880275
+vn -0.95093276 0.22611938 0.21117981
+vn 0.45930320 0.75341663 0.47053581
+vn -0.19712797 0.20326669 0.95907415
+vn 0.19970514 7.4513644e-2 -0.97701872
+vn 0.38715635 -0.64918370 -0.65472932
+vn -0.46953410 0.70028359 -0.53771798
+vn -0.39498985 -0.57198694 0.71889774
+vn 0.15722393 2.3717337e-2 0.98727814
+vn -0.15657167 -0.10907938 -0.98162468
+vn 0.11737129 0.83006116 0.54518113
+vn -7.7309768e-3 -0.71200042 -0.70213648
+vn -1.4739352e-2 0.17734395 0.98403855
+vn 1.5163443e-2 4.4964676e-2 -0.99887349
+vn 7.4421508e-3 -0.63436613 0.77299691
+vn -1.5897619e-3 3.4367275e-2 0.99940801
+vn -0.12148868 0.77460812 -0.62066316
+vn 1.6469737e-3 -0.10020392 -0.99496556
+vn -0.11737129 0.83006116 0.54518113
+vn 7.7309768e-3 -0.71200042 -0.70213648
+vn 1.4739352e-2 0.17734395 0.98403855
+vn -1.5163443e-2 4.4964676e-2 -0.99887349
+vn -7.4421508e-3 -0.63436613 0.77299691
+vn 1.5897619e-3 3.4367275e-2 0.99940801
+vn 0.12148868 0.77460812 -0.62066316
+vn -1.6469737e-3 -0.10020392 -0.99496556
+g FrontSeat
+usemtl default
+f 718//926 753//961 816//1024 752//960
+f 718//926 754//962 833//1041 753//961
+f 719//927 767//975 836//1044 755//963
+f 720//928 796//1004 822//1030 757//965
+f 721//929 798//1006 818//1026 759//967
+f 722//930 777//985 825//1033 760//968
+f 723//931 776//984 839//1047 762//970
+f 724//932 775//983 823//1031 763//971
+f 724//932 792//1000 828//1036 775//983
+f 725//933 795//1003 824//1032 764//972
+f 726//934 773//981 826//1034 764//972
+f 726//934 788//996 835//1043 763//971
+f 727//935 772//980 829//1037 765//973
+f 728//936 790//998 832//1040 766//974
+f 729//937 752//960 816//1024 768//976
+f 729//937 768//976 836//1044 767//975
+f 730//938 771//979 821//1029 781//989
+f 730//938 781//989 829//1037 772//980
+f 731//939 769//977 817//1025 778//986
+f 731//939 778//986 826//1034 773//981
+f 732//940 759//967 818//1026 779//987
+f 732//940 778//986 817//1025 759//967
+f 732//940 779//987 838//1046 774//982
+f 733//941 782//990 823//1031 775//983
+f 733//941 784//992 834//1042 758//966
+f 734//942 756//964 819//1027 780//988
+f 734//942 780//988 839//1047 776//984
+f 734//942 781//989 821//1029 756//964
+f 735//943 783//991 825//1033 777//985
+f 735//943 786//994 833//1041 754//962
+f 736//944 805//1013 834//1042 784//992
+f 737//945 780//988 819//1027 814//1022
+f 737//945 813//1021 839//1047 780//988
+f 737//945 814//1022 843//1051 785//993
+f 738//946 804//1012 833//1041 786//994
+f 739//947 779//987 818//1026 801//1009
+f 739//947 801//1009 842//1050 787//995
+f 739//947 809//1017 838//1046 779//987
+f 740//948 802//1010 835//1043 788//996
+f 741//949 770//978 820//1028 815//1023
+f 741//949 807//1015 837//1045 770//978
+f 741//949 815//1023 841//1049 789//997
+f 742//950 800//1008 832//1040 790//998
+f 743//951 768//976 816//1024 808//1016
+f 743//951 808//1016 840//1048 791//999
+f 743//951 810//1018 836//1044 768//976
+f 744//952 811//1019 828//1036 792//1000
+f 745//953 762//970 839//1047 813//1021
+f 745//953 813//1021 847//1055 793//1001
+f 745//953 815//1023 820//1028 762//970
+f 746//954 761//969 837//1045 807//1015
+f 746//954 806//1014 827//1035 761//969
+f 746//954 807//1015 844//1052 794//1002
+f 747//955 812//1020 824//1032 795//1003
+f 748//956 803//1011 822//1030 796//1004
+f 749//957 755//963 836//1044 810//1018
+f 749//957 810//1018 846//1054 797//1005
+f 749//957 814//1022 819//1027 755//963
+f 750//958 801//1009 818//1026 798//1006
+f 751//959 753//961 833//1041 804//1012
+f 751//959 804//1012 842//1050 799//1007
+f 751//959 808//1016 816//1024 753//961
+f 752//960 831//1039 754//962 718//926
+f 754//962 831//1039 783//991 735//943
+f 755//963 819//1027 756//964 719//927
+f 756//964 821//1029 767//975 719//927
+f 757//965 822//1030 790//998 728//936
+f 757//965 830//1038 758//966 720//928
+f 758//966 830//1038 782//990 733//941
+f 758//966 834//1042 796//1004 720//928
+f 759//967 817//1025 766//974 721//929
+f 760//968 825//1033 772//980 727//935
+f 760//968 837//1045 761//969 722//930
+f 761//969 827//1035 777//985 722//930
+f 762//970 820//1028 765//973 723//931
+f 763//971 823//1031 773//981 726//934
+f 763//971 835//1043 792//1000 724//932
+f 764//972 824//1032 788//996 726//934
+f 764//972 826//1034 774//982 725//933
+f 765//973 820//1028 770//978 727//935
+f 765//973 829//1037 776//984 723//931
+f 766//974 817//1025 769//977 728//936
+f 766//974 832//1040 798//1006 721//929
+f 767//975 821//1029 771//979 729//937
+f 769//977 830//1038 757//965 728//936
+f 770//978 837//1045 760//968 727//935
+f 771//979 831//1039 752//960 729//937
+f 772//980 825//1033 783//991 730//938
+f 773//981 823//1031 782//990 731//939
+f 774//982 826//1034 778//986 732//940
+f 774//982 838//1046 795//1003 725//933
+f 775//983 828//1036 784//992 733//941
+f 776//984 829//1037 781//989 734//942
+f 777//985 827//1035 786//994 735//943
+f 782//990 830//1038 769//977 731//939
+f 783//991 831//1039 771//979 730//938
+f 784//992 828//1036 811//1019 736//944
+f 785//993 843//1051 805//1013 736//944
+f 785//993 847//1055 813//1021 737//945
+f 786//994 827//1035 806//1014 738//946
+f 787//995 842//1050 804//1012 738//946
+f 787//995 845//1053 809//1017 739//947
+f 788//996 824//1032 812//1020 740//948
+f 789//997 841//1049 802//1010 740//948
+f 789//997 844//1052 807//1015 741//949
+f 790//998 822//1030 803//1011 742//950
+f 791//999 840//1048 800//1008 742//950
+f 791//999 846//1054 810//1018 743//951
+f 792//1000 835//1043 802//1010 744//952
+f 793//1001 841//1049 815//1023 745//953
+f 793//1001 847//1055 811//1019 744//952
+f 794//1002 844//1052 812//1020 747//955
+f 794//1002 845//1053 806//1014 746//954
+f 795//1003 838//1046 809//1017 747//955
+f 796//1004 834//1042 805//1013 748//956
+f 797//1005 843//1051 814//1022 749//957
+f 797//1005 846//1054 803//1011 748//956
+f 798//1006 832//1040 800//1008 750//958
+f 799//1007 840//1048 808//1016 751//959
+f 799//1007 842//1050 801//1009 750//958
+f 800//1008 840//1048 799//1007 750//958
+f 802//1010 841//1049 793//1001 744//952
+f 803//1011 846//1054 791//999 742//950
+f 805//1013 843//1051 797//1005 748//956
+f 806//1014 845//1053 787//995 738//946
+f 809//1017 845//1053 794//1002 747//955
+f 811//1019 847//1055 785//993 736//944
+f 812//1020 844//1052 789//997 740//948
+f 848//1056 891//1099 970//1178 890//1098
+f 848//1056 892//1100 987//1195 891//1099
+f 849//1057 905//1113 990//1198 893//1101
+f 850//1058 934//1142 976//1184 895//1103
+f 851//1059 936//1144 972//1180 897//1105
+f 852//1060 915//1123 979//1187 898//1106
+f 853//1061 914//1122 993//1201 900//1108
+f 854//1062 913//1121 977//1185 901//1109
+f 854//1062 930//1138 982//1190 913//1121
+f 855//1063 933//1141 978//1186 902//1110
+f 856//1064 911//1119 980//1188 902//1110
+f 856//1064 926//1134 989//1197 901//1109
+f 857//1065 910//1118 983//1191 903//1111
+f 858//1066 928//1136 986//1194 904//1112
+f 859//1067 890//1098 970//1178 906//1114
+f 859//1067 906//1114 990//1198 905//1113
+f 860//1068 909//1117 975//1183 919//1127
+f 860//1068 919//1127 983//1191 910//1118
+f 861//1069 907//1115 971//1179 916//1124
+f 861//1069 916//1124 980//1188 911//1119
+f 862//1070 897//1105 972//1180 917//1125
+f 862//1070 916//1124 971//1179 897//1105
+f 862//1070 917//1125 992//1200 912//1120
+f 863//1071 920//1128 977//1185 913//1121
+f 863//1071 922//1130 988//1196 896//1104
+f 864//1072 894//1102 973//1181 918//1126
+f 864//1072 918//1126 993//1201 914//1122
+f 864//1072 919//1127 975//1183 894//1102
+f 865//1073 921//1129 979//1187 915//1123
+f 865//1073 924//1132 987//1195 892//1100
+f 866//1074 943//1151 988//1196 922//1130
+f 866//1074 961//1169 997//1205 943//1151
+f 867//1075 918//1126 973//1181 952//1160
+f 867//1075 951//1159 993//1201 918//1126
+f 867//1075 952//1160 1005//1213 923//1131
+f 868//1076 942//1150 987//1195 924//1132
+f 868//1076 960//1168 996//1204 942//1150
+f 869//1077 917//1125 972//1180 939//1147
+f 869//1077 939//1147 1004//1212 925//1133
+f 869//1077 947//1155 992//1200 917//1125
+f 870//1078 940//1148 989//1197 926//1134
+f 870//1078 959//1167 995//1203 940//1148
+f 871//1079 908//1116 974//1182 953//1161
+f 871//1079 945//1153 991//1199 908//1116
+f 871//1079 953//1161 1003//1211 927//1135
+f 872//1080 938//1146 986//1194 928//1136
+f 872//1080 958//1166 994//1202 938//1146
+f 873//1081 906//1114 970//1178 946//1154
+f 873//1081 946//1154 1002//1210 929//1137
+f 873//1081 948//1156 990//1198 906//1114
+f 874//1082 949//1157 982//1190 930//1138
+f 874//1082 957//1165 1009//1217 949//1157
+f 875//1083 900//1108 993//1201 951//1159
+f 875//1083 951//1159 1001//1209 931//1139
+f 875//1083 953//1161 974//1182 900//1108
+f 876//1084 899//1107 991//1199 945//1153
+f 876//1084 944//1152 981//1189 899//1107
+f 876//1084 945//1153 998//1206 932//1140
+f 877//1085 950//1158 978//1186 933//1141
+f 877//1085 956//1164 1006//1214 950//1158
+f 878//1086 941//1149 976//1184 934//1142
+f 878//1086 955//1163 1008//1216 941//1149
+f 879//1087 893//1101 990//1198 948//1156
+f 879//1087 948//1156 1000//1208 935//1143
+f 879//1087 952//1160 973//1181 893//1101
+f 880//1088 939//1147 972//1180 936//1144
+f 880//1088 954//1162 1004//1212 939//1147
+f 881//1089 891//1099 987//1195 942//1150
+f 881//1089 942//1150 996//1204 937//1145
+f 881//1089 946//1154 970//1178 891//1099
+f 882//1090 937//1145 996//1204 964//1172
+f 882//1090 964//1172 1004//1212 954//1162
+f 883//1091 935//1143 1000//1208 968//1176
+f 883//1091 968//1176 1008//1216 955//1163
+f 884//1092 932//1140 998//1206 966//1174
+f 884//1092 966//1174 1006//1214 956//1164
+f 885//1093 931//1139 1001//1209 969//1177
+f 885//1093 969//1177 1009//1217 957//1165
+f 886//1094 962//1170 994//1202 958//1166
+f 886//1094 968//1176 1000//1208 929//1137
+f 887//1095 963//1171 995//1203 959//1167
+f 887//1095 966//1174 998//1206 927//1135
+f 888//1096 964//1172 996//1204 960//1168
+f 888//1096 967//1175 999//1207 925//1133
+f 889//1097 965//1173 997//1205 961//1169
+f 889//1097 969//1177 1001//1209 923//1131
+f 890//1098 985//1193 892//1100 848//1056
+f 892//1100 985//1193 921//1129 865//1073
+f 893//1101 973//1181 894//1102 849//1057
+f 894//1102 975//1183 905//1113 849//1057
+f 895//1103 976//1184 928//1136 858//1066
+f 895//1103 984//1192 896//1104 850//1058
+f 896//1104 984//1192 920//1128 863//1071
+f 896//1104 988//1196 934//1142 850//1058
+f 897//1105 971//1179 904//1112 851//1059
+f 898//1106 979//1187 910//1118 857//1065
+f 898//1106 991//1199 899//1107 852//1060
+f 899//1107 981//1189 915//1123 852//1060
+f 900//1108 974//1182 903//1111 853//1061
+f 901//1109 977//1185 911//1119 856//1064
+f 901//1109 989//1197 930//1138 854//1062
+f 902//1110 978//1186 926//1134 856//1064
+f 902//1110 980//1188 912//1120 855//1063
+f 903//1111 974//1182 908//1116 857//1065
+f 903//1111 983//1191 914//1122 853//1061
+f 904//1112 971//1179 907//1115 858//1066
+f 904//1112 986//1194 936//1144 851//1059
+f 905//1113 975//1183 909//1117 859//1067
+f 907//1115 984//1192 895//1103 858//1066
+f 908//1116 991//1199 898//1106 857//1065
+f 909//1117 985//1193 890//1098 859//1067
+f 910//1118 979//1187 921//1129 860//1068
+f 911//1119 977//1185 920//1128 861//1069
+f 912//1120 980//1188 916//1124 862//1070
+f 912//1120 992//1200 933//1141 855//1063
+f 913//1121 982//1190 922//1130 863//1071
+f 914//1122 983//1191 919//1127 864//1072
+f 915//1123 981//1189 924//1132 865//1073
+f 920//1128 984//1192 907//1115 861//1069
+f 921//1129 985//1193 909//1117 860//1068
+f 922//1130 982//1190 949//1157 866//1074
+f 923//1131 1001//1209 951//1159 867//1075
+f 923//1131 1005//1213 965//1173 889//1097
+f 924//1132 981//1189 944//1152 868//1076
+f 925//1133 999//1207 947//1155 869//1077
+f 925//1133 1004//1212 964//1172 888//1096
+f 926//1134 978//1186 950//1158 870//1078
+f 927//1135 998//1206 945//1153 871//1079
+f 927//1135 1003//1211 963//1171 887//1095
+f 928//1136 976//1184 941//1149 872//1080
+f 929//1137 1000//1208 948//1156 873//1081
+f 929//1137 1002//1210 962//1170 886//1094
+f 930//1138 989//1197 940//1148 874//1082
+f 931//1139 1003//1211 953//1161 875//1083
+f 932//1140 1007//1215 944//1152 876//1084
+f 933//1141 992//1200 947//1155 877//1085
+f 934//1142 988//1196 943//1151 878//1086
+f 935//1143 1005//1213 952//1160 879//1087
+f 936//1144 986//1194 938//1146 880//1088
+f 937//1145 1002//1210 946//1154 881//1089
+f 938//1146 994//1202 954//1162 880//1088
+f 940//1148 995//1203 957//1165 874//1082
+f 941//1149 1008//1216 958//1166 872//1080
+f 943//1151 997//1205 955//1163 878//1086
+f 944//1152 1007//1215 960//1168 868//1076
+f 947//1155 999//1207 956//1164 877//1085
+f 949//1157 1009//1217 961//1169 866//1074
+f 950//1158 1006//1214 959//1167 870//1078
+f 954//1162 994//1202 962//1170 882//1090
+f 955//1163 997//1205 965//1173 883//1091
+f 956//1164 999//1207 967//1175 884//1092
+f 957//1165 995//1203 963//1171 885//1093
+f 958//1166 1008//1216 968//1176 886//1094
+f 959//1167 1006//1214 966//1174 887//1095
+f 960//1168 1007//1215 967//1175 888//1096
+f 961//1169 1009//1217 969//1177 889//1097
+f 962//1170 1002//1210 937//1145 882//1090
+f 963//1171 1003//1211 931//1139 885//1093
+f 965//1173 1005//1213 935//1143 883//1091
+f 967//1175 1007//1215 932//1140 884//1092
+o RearSeat
+#292 vertices, 288 faces
+v -0.16507423 1.1420424e-2 -0.22605576
+v -0.16507423 9.1628379e-2 -0.22605576
+v 0.16507423 9.1628379e-2 -0.22605576
+v 0.16507423 1.1420424e-2 -0.22605576
+v -0.16507423 1.1420424e-2 -0.45894623
+v -0.16507423 9.1628379e-2 -0.45894623
+v 0.16507423 9.1628379e-2 -0.45894623
+v 0.16507423 1.1420424e-2 -0.45894623
+v 0.16847265 5.1524402e-2 -0.50218785
+v -0.16847265 5.1524402e-2 -0.50218785
+v 0.16847265 5.1524402e-2 -0.20319647
+v -0.16847265 5.1524402e-2 -0.20319647
+v -0.18538911 5.1524402e-2 -0.29892024
+v 0.18538911 5.1524402e-2 -0.29892024
+v 0.17780453 6.4074271e-3 -0.29818632
+v 0.17780453 9.6641376e-2 -0.29818632
+v -0.17780453 9.6641376e-2 -0.29818632
+v -0.17780453 6.4074271e-3 -0.29818632
+v 0.10111893 0.10308666 -0.29803954
+v -0.10111893 0.10308666 -0.29803954
+v -0.10111893 -3.7854927e-5 -0.29803954
+v 0.10111893 -3.7854927e-5 -0.29803954
+v 9.9472124e-2 5.1524402e-2 -0.53429876
+v -9.9472124e-2 5.1524402e-2 -0.53429876
+v 9.9472124e-2 5.1524402e-2 -0.19259432
+v -9.9472124e-2 5.1524402e-2 -0.19259432
+v 9.9746592e-2 9.6641376e-2 -0.47723455
+v -9.9746592e-2 9.6641376e-2 -0.47723455
+v -9.9746592e-2 6.4074271e-3 -0.47723455
+v 9.9746592e-2 6.4074271e-3 -0.47723455
+v 9.9746592e-2 9.6641376e-2 -0.22315911
+v -9.9746592e-2 9.6641376e-2 -0.22315911
+v 9.9746592e-2 6.4074271e-3 -0.22315911
+v -9.9746592e-2 6.4074271e-3 -0.22315911
+v -0.16847265 2.5743273e-2 -0.21141638
+v -0.14956144 6.4074271e-3 -0.22315911
+v -0.17396199 6.4074271e-3 -0.24674563
+v -0.14956144 9.6641376e-2 -0.22315911
+v -0.17396199 9.6641376e-2 -0.24674563
+v 0.16847265 7.7305530e-2 -0.21141638
+v 0.17396199 9.6641376e-2 -0.24674563
+v 0.17396199 6.4074271e-3 -0.24674563
+v -0.16847265 2.5743273e-2 -0.49191296
+v -0.14956144 6.4074271e-3 -0.47723455
+v -0.14956144 9.6641376e-2 -0.47723455
+v 0.16847265 7.7305530e-2 -0.49191296
+v 0.16847265 2.5743273e-2 -0.49191296
+v -0.16847265 7.7305530e-2 -0.49191296
+v 0.16847265 2.5743273e-2 -0.21141638
+v -0.16847265 7.7305530e-2 -0.21141638
+v -0.14846358 5.1524402e-2 -0.19259432
+v 0.18099764 5.1524402e-2 -0.23500290
+v -0.14846358 5.1524402e-2 -0.53429876
+v -0.18099764 5.1524402e-2 -0.23500290
+v -0.18099764 5.1524402e-2 -0.40585512
+v 0.18099764 5.1524402e-2 -0.40585512
+v 0.17396199 6.4074271e-3 -0.39117671
+v 0.17396199 9.6641376e-2 -0.39117671
+v -0.17396199 9.6641376e-2 -0.39117671
+v -0.17396199 6.4074271e-3 -0.39117671
+v 0.18538911 2.5743273e-2 -0.29862668
+v 0.15505079 -3.7854927e-5 -0.29803954
+v -0.15505079 0.10308666 -0.29803954
+v -0.18538911 7.7305530e-2 -0.29862668
+v 0.18538911 7.7305530e-2 -0.29862668
+v -0.18538911 2.5743273e-2 -0.29862668
+v 0.15505079 0.10308666 -0.29803954
+v 0.0000000e+0 0.10308666 -0.29803954
+v -0.15505079 -3.7854927e-5 -0.29803954
+v 0.0000000e+0 -3.7854927e-5 -0.29803954
+v 0.14846358 5.1524402e-2 -0.53429876
+v 0.0000000e+0 5.1524402e-2 -0.53429876
+v 0.14846358 5.1524402e-2 -0.19259432
+v 0.0000000e+0 5.1524402e-2 -0.19259432
+v 0.14956144 9.6641376e-2 -0.47723455
+v 0.0000000e+0 9.6641376e-2 -0.47723455
+v 0.0000000e+0 6.4074271e-3 -0.47723455
+v 0.14956144 6.4074271e-3 -0.47723455
+v 0.14956144 9.6641376e-2 -0.22315911
+v 0.0000000e+0 9.6641376e-2 -0.22315911
+v 0.14956144 6.4074271e-3 -0.22315911
+v 0.0000000e+0 6.4074271e-3 -0.22315911
+v 9.9472124e-2 2.5743273e-2 -0.20198851
+v 0.10056999 -3.7854927e-5 -0.24909418
+v 9.9472124e-2 7.7305530e-2 -0.52255603
+v 9.9472124e-2 7.7305530e-2 -0.20198851
+v -0.10056999 -3.7854927e-5 -0.24909418
+v 0.10056999 0.10308666 -0.24909418
+v -0.10056999 -3.7854927e-5 -0.38824103
+v -9.9472124e-2 2.5743273e-2 -0.52255603
+v -9.9472124e-2 2.5743273e-2 -0.20198851
+v 0.10056999 -3.7854927e-5 -0.38824103
+v -9.9472124e-2 7.7305530e-2 -0.20198851
+v 0.10056999 0.10308666 -0.38824103
+v 9.9472124e-2 2.5743273e-2 -0.52255603
+v -0.10056999 0.10308666 -0.38824103
+v -0.10056999 0.10308666 -0.24909418
+v -9.9472124e-2 7.7305530e-2 -0.52255603
+v -0.14846358 2.5743273e-2 -0.20198851
+v 0.18099764 2.5743273e-2 -0.23969999
+v 0.15285505 -3.7854927e-5 -0.24909418
+v -0.15285505 0.10308666 -0.24909418
+v -0.14846358 7.7305530e-2 -0.52255603
+v -0.18099764 7.7305530e-2 -0.23969999
+v 0.14846358 7.7305530e-2 -0.20198851
+v 0.18099764 7.7305530e-2 -0.39998376
+v 0.14846358 2.5743273e-2 -0.52255603
+v -0.18099764 2.5743273e-2 -0.39998376
+v 0.18099764 2.5743273e-2 -0.39998376
+v -0.15285505 -3.7854927e-5 -0.38824103
+v 0.15285505 0.10308666 -0.38824103
+v -0.18099764 7.7305530e-2 -0.39998376
+v 0.18099764 7.7305530e-2 -0.23969999
+v -0.18099764 2.5743273e-2 -0.23969999
+v 0.14846358 2.5743273e-2 -0.20198851
+v -0.15285505 -3.7854927e-5 -0.24909418
+v 0.15285505 0.10308666 -0.24909418
+v 0.14846358 7.7305530e-2 -0.52255603
+v -0.14846358 7.7305530e-2 -0.20198851
+v -0.14846358 2.5743273e-2 -0.52255603
+v 0.15285505 -3.7854927e-5 -0.38824103
+v -0.15285505 0.10308666 -0.38824103
+v 0.0000000e+0 2.5743273e-2 -0.20198851
+v 0.0000000e+0 7.7305530e-2 -0.52255603
+v 0.0000000e+0 -3.7854927e-5 -0.24909418
+v 0.0000000e+0 0.10308666 -0.24909418
+v 0.0000000e+0 2.5743273e-2 -0.52255603
+v 0.0000000e+0 -3.7854927e-5 -0.38824103
+v 0.0000000e+0 7.7305530e-2 -0.20198851
+v 0.0000000e+0 0.10308666 -0.38824103
+v -0.15946613 0.37471828 -0.49610512
+v -0.15946613 0.37165165 -0.57742047
+v 0.15946613 0.37165165 -0.57742047
+v 0.15946613 0.37471828 -0.49610512
+v -0.15946613 0.14373917 -0.47990244
+v -0.15946613 0.14067253 -0.56121778
+v 0.15946613 0.14067253 -0.56121778
+v 0.15946613 0.14373917 -0.47990244
+v 0.16274909 9.9096359e-2 -0.51753608
+v -0.16274909 9.9096359e-2 -0.51753608
+v 0.16274909 0.39364773 -0.53819821
+v -0.16274909 0.39364773 -0.53819821
+v -0.17909085 0.29731042 -0.53144036
+v 0.17909085 0.29731042 -0.53144036
+v 0.17176394 0.30183437 -0.48589682
+v 0.17176394 0.29835451 -0.57737449
+v -0.17176394 0.29835451 -0.57737449
+v -0.17176394 0.30183437 -0.48589682
+v 0.11274304 0.31260079 -0.58492539
+v -0.11274304 0.31260079 -0.58492539
+v -0.11274304 0.31630946 -0.48036066
+v 0.11274304 0.31630946 -0.48036066
+v 0.11115218 6.8441496e-2 -0.51538570
+v -0.11115218 6.8441496e-2 -0.51538570
+v 0.11115218 0.42425385 -0.54034517
+v -0.11115218 0.42425385 -0.54034517
+v 0.11141732 0.12623917 -0.56530097
+v -0.11141732 0.12623917 -0.56530097
+v -0.11141732 0.12948425 -0.47380684
+v 0.11141732 0.12948425 -0.47380684
+v 0.11141732 0.39080460 -0.58385966
+v -0.11141732 0.39080460 -0.58385966
+v 0.11141732 0.39404968 -0.49236553
+v -0.11141732 0.39404968 -0.49236553
+v -4.3368087e-19 0.40842760 -0.49337411
+v -4.3368087e-19 0.40536996 -0.58488139
+v -4.3368087e-19 0.13247447 -0.47401659
+v -4.3368087e-19 0.12941683 -0.56552387
+v -4.3368087e-19 0.44009541 -0.54145642
+v -4.3368087e-19 6.8967807e-2 -0.51542262
+v 4.3368087e-19 0.32731784 -0.48113288
+v -4.3368087e-19 0.32382339 -0.58571263
+v -0.16274909 0.38654555 -0.51149379
+v -0.14448036 0.38368421 -0.49163841
+v -0.16805194 0.35242909 -0.48944593
+v -0.14448036 0.38030399 -0.58312306
+v -0.16805194 0.34894923 -0.58092359
+v 0.16274909 0.38455421 -0.56376654
+v 0.16805194 0.34894923 -0.58092359
+v 0.16805194 0.35242909 -0.48944593
+v -0.16274909 0.11021433 -0.49210976
+v -0.14448036 0.12732852 -0.47365562
+v -0.14448036 0.12394830 -0.56514027
+v 0.16274909 0.10822300 -0.54438251
+v 0.16274909 0.11021433 -0.49210976
+v -0.16274909 0.10822300 -0.54438251
+v 0.16274909 0.38654555 -0.51149379
+v -0.16274909 0.38455421 -0.56376654
+v -0.14341979 0.41283319 -0.53954403
+v 0.17484856 0.35966946 -0.53581471
+v -0.14341979 6.8062062e-2 -0.51535909
+v -0.17484856 0.35966946 -0.53581471
+v -0.17484856 0.19298260 -0.52412199
+v 0.17484856 0.19298260 -0.52412199
+v 0.16805194 0.21035892 -0.47948002
+v 0.16805194 0.20687906 -0.57095768
+v -0.16805194 0.20687906 -0.57095768
+v -0.16805194 0.21035892 -0.47948002
+v 0.17909085 0.29860246 -0.50532478
+v 0.14978321 0.30837319 -0.47980395
+v -0.14978321 0.30451009 -0.58435784
+v -0.17909085 0.29659119 -0.55759613
+v 0.17909085 0.29659119 -0.55759613
+v -0.17909085 0.29860246 -0.50532478
+v 0.14978321 0.30451009 -0.58435784
+v -6.0237788e-2 0.32016952 -0.58545632
+v -0.14978321 0.30837319 -0.47980395
+v 6.0237788e-2 0.32373372 -0.48088146
+v 0.14341979 6.8062062e-2 -0.51535909
+v -6.0237788e-2 6.8796450e-2 -0.51541060
+v 0.14341979 0.41283319 -0.53954403
+v -6.0237788e-2 0.43493769 -0.54109461
+v 0.14448036 0.12394830 -0.56514027
+v -6.0237788e-2 0.12838224 -0.56545130
+v -6.0237788e-2 0.13150091 -0.47394830
+v 0.14448036 0.12732852 -0.47365562
+v 0.14448036 0.38030399 -0.58312306
+v -6.0237788e-2 0.40062775 -0.58454873
+v 0.14448036 0.38368421 -0.49163841
+v -6.0237788e-2 0.40374642 -0.49304573
+v 0.11115218 0.41539898 -0.51351780
+v 0.11221275 0.36727563 -0.48393583
+v 0.11115218 7.9741879e-2 -0.54238462
+v 0.11115218 0.41354464 -0.56580016
+v -0.11221275 0.36727563 -0.48393583
+v 0.11221275 0.36356696 -0.58850055
+v -0.11221275 0.22238384 -0.47377199
+v -0.11115218 8.1596214e-2 -0.49010226
+v -0.11115218 0.41539898 -0.51351780
+v 0.11221275 0.22238384 -0.47377199
+v -0.11115218 0.41354464 -0.56580016
+v 0.11221275 0.21867517 -0.57833671
+v 0.11115218 8.1596214e-2 -0.49010226
+v -0.11221275 0.21867517 -0.57833671
+v -0.11221275 0.36356696 -0.58850055
+v -0.11115218 7.9741879e-2 -0.54238462
+v 6.0237788e-2 0.40374642 -0.49304573
+v 6.0237788e-2 0.40062775 -0.58454873
+v 6.0237788e-2 0.13150091 -0.47394830
+v 6.0237788e-2 0.12838224 -0.56545130
+v 6.0237788e-2 0.43493769 -0.54109461
+v 6.0237788e-2 6.8796450e-2 -0.51541060
+v -6.0237788e-2 0.32373372 -0.48088146
+v 6.0237788e-2 0.32016952 -0.58545632
+v 0.0000000e+0 0.43076593 -0.51459576
+v 0.0000000e+0 8.0848056e-2 -0.54246222
+v 0.0000000e+0 0.38047774 -0.48486193
+v 0.0000000e+0 0.37698330 -0.58944168
+v 0.0000000e+0 8.2595280e-2 -0.49017234
+v 0.0000000e+0 0.22934937 -0.47426060
+v 0.0000000e+0 0.42901871 -0.56688563
+v 0.0000000e+0 0.22585492 -0.57884035
+v -0.14341979 0.40432048 -0.51274066
+v 0.17484856 0.35609252 -0.50935758
+v 0.14766207 0.35775783 -0.48326818
+v -0.14766207 0.35389472 -0.58782206
+v -0.14341979 7.8944402e-2 -0.54232868
+v -0.17484856 0.35408125 -0.56162893
+v 0.14341979 0.40238892 -0.56501761
+v 0.17484856 0.19770518 -0.55065949
+v 0.14341979 8.0875957e-2 -0.49005174
+v -0.17484856 0.19971645 -0.49838814
+v 0.17484856 0.19971645 -0.49838814
+v -0.14766207 0.21736218 -0.47341973
+v 0.14766207 0.21349907 -0.57797362
+v -0.17484856 0.19770518 -0.55065949
+v 0.17484856 0.35408125 -0.56162893
+v -0.17484856 0.35609252 -0.50935758
+v 0.14341979 0.40432048 -0.51274066
+v -0.14766207 0.35775783 -0.48326818
+v 0.14766207 0.35389472 -0.58782206
+v 0.14341979 7.8944402e-2 -0.54232868
+v -0.14341979 0.40238892 -0.56501761
+v -0.14341979 8.0875957e-2 -0.49005174
+v 0.14766207 0.21736218 -0.47341973
+v -0.14766207 0.21349907 -0.57797362
+v 6.0237788e-2 0.42576274 -0.51424479
+v 6.0237788e-2 8.0487906e-2 -0.54243695
+v -6.0237788e-2 0.37617938 -0.48456041
+v 6.0237788e-2 0.37261519 -0.58913526
+v -6.0237788e-2 8.2270003e-2 -0.49014952
+v 6.0237788e-2 0.22708152 -0.47410152
+v -6.0237788e-2 0.42398064 -0.56653222
+v -6.0237788e-2 0.22351733 -0.57867637
+v -6.0237788e-2 0.42576274 -0.51424479
+v -6.0237788e-2 8.0487906e-2 -0.54243695
+v 6.0237788e-2 0.37617938 -0.48456041
+v -6.0237788e-2 0.37261519 -0.58913526
+v 6.0237788e-2 8.2270003e-2 -0.49014952
+v -6.0237788e-2 0.22708152 -0.47410152
+v 6.0237788e-2 0.42398064 -0.56653222
+v 6.0237788e-2 0.22351733 -0.57867637
+vn -0.48712651 -0.73849068 0.46619662
+vn -0.48712651 0.73849068 0.46619662
+vn 0.48712651 0.73849068 0.46619662
+vn 0.48712651 -0.73849068 0.46619662
+vn -0.62264853 -0.75862303 -0.19183301
+vn -0.62264853 0.75862303 -0.19183301
+vn 0.62264853 0.75862303 -0.19183301
+vn 0.62264853 -0.75862303 -0.19183301
+vn 0.94031752 7.2009734e-18 -0.34029834
+vn -0.94031752 1.4401947e-17 -0.34029834
+vn 0.73615894 -3.0342066e-17 0.67680870
+vn -0.73615894 1.5171033e-17 0.67680870
+vn -0.99989318 1.0859679e-18 1.4616180e-2
+vn 0.99989318 8.6877429e-19 1.4616180e-2
+vn 0.67564141 -0.73715629 1.0453888e-2
+vn 0.67564141 0.73715629 1.0453888e-2
+vn -0.67564141 0.73715629 1.0453888e-2
+vn -0.67564141 -0.73715629 1.0453888e-2
+vn 0.0000000e+0 1.00000000 0.0000000e+0
+vn 0.0000000e+0 1.00000000 0.0000000e+0
+vn 0.0000000e+0 -1.00000000 0.0000000e+0
+vn 0.0000000e+0 -1.00000000 0.0000000e+0
+vn 2.1459918e-17 0.0000000e+0 -1.00000000
+vn -1.0729959e-17 0.0000000e+0 -1.00000000
+vn -1.0778151e-16 3.1017818e-16 1.00000000
+vn 9.9774205e-17 -3.1017818e-16 1.00000000
+vn 1.2644198e-16 0.97186389 -0.23554314
+vn -1.1524406e-16 0.97186389 -0.23554314
+vn -1.4693980e-17 -0.97186389 -0.23554314
+vn 8.5630438e-18 -0.97186389 -0.23554314
+vn 0.0000000e+0 0.88145708 0.47226414
+vn -3.1830362e-19 0.88145708 0.47226414
+vn -6.2990784e-17 -0.88145708 0.47226414
+vn -3.4912162e-17 -0.88145708 0.47226414
+vn -0.66256767 -0.42855268 0.61428551
+vn -0.15826145 -0.86218489 0.48123854
+vn -0.62648378 -0.74964662 0.21341983
+vn -0.15826145 0.86218489 0.48123854
+vn -0.62648378 0.74964662 0.21341983
+vn 0.66256767 0.42855268 0.61428551
+vn 0.62648378 0.74964662 0.21341983
+vn 0.62648378 -0.74964662 0.21341983
+vn -0.86908314 -0.39629469 -0.29604900
+vn -0.22922082 -0.94619992 -0.22839335
+vn -0.22922082 0.94619992 -0.22839335
+vn 0.86908314 0.39629469 -0.29604900
+vn 0.86908314 -0.39629469 -0.29604900
+vn -0.86908314 0.39629469 -0.29604900
+vn 0.66256767 -0.42855268 0.61428551
+vn -0.66256767 0.42855268 0.61428551
+vn -0.23199420 -3.7606439e-16 0.97271717
+vn 0.97302524 -4.7347296e-17 0.23069868
+vn -0.49718350 -1.6792545e-17 -0.86764542
+vn -0.97302524 9.0069972e-17 0.23069868
+vn -0.99620110 9.1204985e-18 -8.7082494e-2
+vn 0.99620110 3.4744756e-18 -8.7082494e-2
+vn 0.66772013 -0.74054958 -7.5737277e-2
+vn 0.66772013 0.74054958 -7.5737277e-2
+vn -0.66772013 0.74054958 -7.5737277e-2
+vn -0.66772013 -0.74054958 -7.5737277e-2
+vn 0.98217405 -0.18737161 1.5033640e-2
+vn 0.14207530 -0.98985397 1.9289814e-3
+vn -0.14207530 0.98985397 1.9289814e-3
+vn -0.98217405 0.18737161 1.5033640e-2
+vn 0.98217405 0.18737161 1.5033640e-2
+vn -0.98217405 -0.18737161 1.5033640e-2
+vn 0.14207530 0.98985397 1.9289814e-3
+vn 0.0000000e+0 1.00000000 0.0000000e+0
+vn -0.14207530 -0.98985397 1.9289814e-3
+vn 0.0000000e+0 -1.00000000 0.0000000e+0
+vn 0.49718350 1.6792545e-17 -0.86764542
+vn 0.0000000e+0 0.0000000e+0 -1.00000000
+vn 0.23199420 3.1589409e-16 0.97271717
+vn -2.6423295e-18 0.0000000e+0 1.00000000
+vn 0.22922082 0.94619992 -0.22839335
+vn 1.1197918e-17 0.97186389 -0.23554314
+vn -4.8647169e-19 -0.97186389 -0.23554314
+vn 0.22922082 -0.94619992 -0.22839335
+vn 0.15826145 0.86218489 0.48123854
+vn 3.9163447e-17 0.88145708 0.47226414
+vn 0.15826145 -0.86218489 0.48123854
+vn -2.8148728e-17 -0.88145708 0.47226414
+vn -1.2122072e-16 -0.55639931 0.83091504
+vn -8.9268809e-18 -0.99259267 0.12148992
+vn 1.0464667e-16 0.71559089 -0.69851963
+vn -3.6798259e-17 0.55639931 0.83091504
+vn -8.5873589e-18 -0.99259267 0.12148992
+vn 0.0000000e+0 0.99259267 0.12148992
+vn -8.9317297e-18 -0.99934670 -3.6141096e-2
+vn -5.9716251e-18 -0.71559089 -0.69851963
+vn 8.1730356e-18 -0.55639931 0.83091504
+vn 8.4515897e-18 -0.99934670 -3.6141096e-2
+vn 6.1965781e-17 0.55639931 0.83091504
+vn 4.6712447e-17 0.99934670 -3.6141096e-2
+vn 0.0000000e+0 -0.71559089 -0.69851963
+vn -4.6712447e-17 0.99934670 -3.6141096e-2
+vn 0.0000000e+0 0.99259267 0.12148992
+vn -8.2325893e-17 0.71559089 -0.69851963
+vn -0.19640801 -0.54426503 0.81559762
+vn 0.93924882 -0.24830380 0.23697442
+vn 0.14540677 -0.97911845 0.14207017
+vn -0.14540677 0.97911845 0.14207017
+vn -0.39641245 0.67604946 -0.62113951
+vn -0.93924882 0.24830380 0.23697442
+vn 0.19640801 0.54426503 0.81559762
+vn 0.97227700 0.21648422 -8.8385619e-2
+vn 0.39641245 -0.67604946 -0.62113951
+vn -0.97227700 -0.21648422 -8.8385619e-2
+vn 0.97227700 -0.21648422 -8.8385619e-2
+vn -0.15568142 -0.98680083 -4.4580457e-2
+vn 0.15568142 0.98680083 -4.4580457e-2
+vn -0.97227700 0.21648422 -8.8385619e-2
+vn 0.93924882 0.24830380 0.23697442
+vn -0.93924882 -0.24830380 0.23697442
+vn 0.19640801 -0.54426503 0.81559762
+vn -0.14540677 -0.97911845 0.14207017
+vn 0.14540677 0.97911845 0.14207017
+vn 0.39641245 0.67604946 -0.62113951
+vn -0.19640801 0.54426503 0.81559762
+vn -0.39641245 -0.67604946 -0.62113951
+vn 0.15568142 -0.98680083 -4.4580457e-2
+vn -0.15568142 0.98680083 -4.4580457e-2
+vn -6.1326799e-17 -0.55639931 0.83091504
+vn 1.1846963e-17 0.71559089 -0.69851963
+vn 0.0000000e+0 -0.99259267 0.12148992
+vn 0.0000000e+0 0.99259267 0.12148992
+vn 0.0000000e+0 -0.71559089 -0.69851963
+vn -4.8013992e-19 -0.99934670 -3.6141096e-2
+vn 6.9764202e-17 0.55639931 0.83091504
+vn 0.0000000e+0 0.99934670 -3.6141096e-2
+vn -0.60989723 0.47421647 0.63493631
+vn -0.62160035 0.39017925 -0.67924454
+vn 0.62160035 0.39017925 -0.67924454
+vn 0.60989723 0.47421647 0.63493631
+vn -0.62791324 -0.14095140 0.76541340
+vn -0.62203343 -0.24454863 -0.74382147
+vn 0.62203343 -0.24454863 -0.74382147
+vn 0.62791324 -0.14095140 0.76541340
+vn 0.94032500 -0.34002125 1.3207645e-2
+vn -0.94032500 -0.34002125 1.3207645e-2
+vn 0.83664675 0.54732735 -2.1330437e-2
+vn -0.83664675 0.54732735 -2.1330437e-2
+vn -0.99989566 1.4434636e-2 -5.5542949e-4
+vn 0.99989566 1.4434636e-2 -5.5542949e-4
+vn 0.68763208 6.1325927e-2 0.72346475
+vn 0.68799870 -4.0202597e-2 -0.72459750
+vn -0.68799870 -4.0202597e-2 -0.72459750
+vn -0.68763208 6.1325927e-2 0.72346475
+vn -8.4115768e-16 -6.9975868e-2 -0.99754868
+vn 1.3059084e-15 -6.9975868e-2 -0.99754868
+vn -7.3867731e-16 6.9975868e-2 0.99754868
+vn 4.7570939e-16 6.9975868e-2 0.99754868
+vn -1.4078672e-2 -0.99903177 4.1681086e-2
+vn 1.4078672e-2 -0.99903177 4.1681086e-2
+vn 0.26754353 0.96279778 -3.7959152e-2
+vn -0.26754353 0.96279778 -3.7959152e-2
+vn -1.0427310e-2 -0.29458145 -0.95556948
+vn 1.0427310e-2 -0.29458145 -0.95556948
+vn 9.9951195e-3 -0.16346865 0.98649790
+vn -9.9951195e-3 -0.16346865 0.98649790
+vn 0.12130660 0.40578166 -0.90588407
+vn -0.12130660 0.40578166 -0.90588407
+vn 0.11619997 0.51419063 0.84976795
+vn -0.11619997 0.51419063 0.84976795
+vn 2.3194717e-17 0.50550767 0.86282211
+vn -2.1482723e-17 0.39596480 -0.91826569
+vn -3.4862317e-17 -0.15610907 0.98773982
+vn 1.7993883e-17 -0.28752307 -0.95777371
+vn -7.4664946e-18 0.99926063 -3.8447186e-2
+vn 0.0000000e+0 -0.99917368 4.0644365e-2
+vn 1.7726201e-17 6.9975868e-2 0.99754868
+vn -8.5007755e-18 -6.9975868e-2 -0.99754868
+vn -0.77262569 0.54189830 0.33075034
+vn -0.31667322 0.51557986 0.79617553
+vn -0.67309142 0.25405175 0.69455428
+vn -0.32650797 0.41287553 -0.85025075
+vn -0.67937162 0.15780517 -0.71662523
+vn 0.78132024 0.49879263 -0.37515943
+vn 0.67937162 0.15780517 -0.71662523
+vn 0.67309142 0.25405175 0.69455428
+vn -0.87330423 -0.27037787 0.40525983
+vn -0.22445692 -0.16338510 0.96068954
+vn -0.22063710 -0.29165514 -0.93072904
+vn 0.86743061 -0.32272965 -0.37869475
+vn 0.87330423 -0.27037787 0.40525983
+vn -0.86743061 -0.32272965 -0.37869475
+vn 0.77262569 0.54189830 0.33075034
+vn -0.78132024 0.49879263 -0.37515943
+vn -0.52573220 0.84998564 -3.3616554e-2
+vn 0.97712571 0.21250521 -8.1776881e-3
+vn -0.48996637 -0.87100994 3.5702232e-2
+vn -0.97712571 0.21250521 -8.1776881e-3
+vn -0.99628008 -8.6110964e-2 3.3030646e-3
+vn 0.99628008 -8.6110964e-2 3.3030646e-3
+vn 0.67563564 -2.4266016e-2 0.73683623
+vn 0.67323683 -0.12670707 -0.72848987
+vn -0.67323683 -0.12670707 -0.72848987
+vn -0.67563564 -2.4266016e-2 0.73683623
+vn 0.98379193 2.7356131e-2 0.17721479
+vn 0.14945619 7.1226609e-2 0.98619958
+vn -0.14950616 -6.7144748e-2 -0.98647833
+vn -0.98395483 2.4468444e-3 -0.17840095
+vn 0.98395483 2.4468444e-3 -0.17840095
+vn -0.98379193 2.7356131e-2 0.17721479
+vn 0.14950616 -6.7144748e-2 -0.98647833
+vn 9.8404523e-16 -6.9975868e-2 -0.99754868
+vn -0.14945619 7.1226609e-2 0.98619958
+vn -8.6936063e-17 6.9975868e-2 0.99754868
+vn 0.48996637 -0.87100994 3.5702232e-2
+vn 7.3795535e-3 -0.99913409 4.0946438e-2
+vn 0.52573220 0.84998564 -3.3616554e-2
+vn -0.14414763 0.98881366 -3.8327697e-2
+vn 0.22063710 -0.29165514 -0.93072904
+vn 5.4234893e-3 -0.28958534 -0.95713683
+vn 5.2002748e-3 -0.15825825 0.98738406
+vn 0.22445692 -0.16338510 0.96068954
+vn 0.32650797 0.41287553 -0.85025075
+vn -6.3543415e-2 0.39848553 -0.91497077
+vn 0.31667322 0.51557986 0.79617553
+vn -6.0782339e-2 0.50774968 0.85935777
+vn 0.21497703 0.82999390 0.51467952
+vn 2.8106720e-2 0.18771653 0.98182102
+vn -1.4623481e-2 -0.72855927 -0.68482665
+vn 0.22264843 0.77629654 -0.58973839
+vn -2.8106720e-2 0.18771653 0.98182102
+vn 2.8984906e-2 5.0767155e-2 -0.99828982
+vn 3.0044437e-3 3.4842155e-2 0.99938831
+vn 1.4116673e-2 -0.65152368 0.75849694
+vn -0.21497703 0.82999390 0.51467952
+vn -3.0044437e-3 3.4842155e-2 0.99938831
+vn -0.22264843 0.77629654 -0.58973839
+vn -3.1103921e-3 -0.10485141 -0.99448304
+vn -1.4116673e-2 -0.65152368 0.75849694
+vn 3.1103921e-3 -0.10485141 -0.99448304
+vn -2.8984906e-2 5.0767155e-2 -0.99828982
+vn 1.4623481e-2 -0.72855927 -0.68482665
+vn 6.0782339e-2 0.50774968 0.85935777
+vn 6.3543415e-2 0.39848553 -0.91497077
+vn -5.2002748e-3 -0.15825825 0.98738406
+vn -5.4234893e-3 -0.28958534 -0.95713683
+vn 0.14414763 0.98881366 -3.8327697e-2
+vn -7.3795535e-3 -0.99913409 4.0946438e-2
+vn 4.2869698e-17 6.9975868e-2 0.99754868
+vn -9.8252769e-16 -6.9975868e-2 -0.99754868
+vn 2.3255664e-17 0.84193379 0.53958085
+vn 9.2574592e-18 -0.71919082 -0.69481261
+vn 5.2382642e-18 0.18253232 0.98319985
+vn -1.1352064e-17 4.5349240e-2 -0.99897119
+vn -3.7847901e-17 -0.64188840 0.76679807
+vn 9.6841200e-18 3.6040764e-2 0.99935032
+vn -2.1557372e-17 0.78807806 -0.61557531
+vn 9.2752402e-18 -0.10366438 -0.99461234
+vn -0.44985487 0.76487457 0.46108295
+vn 0.94915066 0.23399129 0.21062073
+vn 0.19666513 0.21049106 0.95760970
+vn -0.19958354 7.7253043e-2 -0.97683078
+vn -0.38300049 -0.66051178 -0.64578233
+vn -0.95192391 0.20417659 -0.22836986
+vn 0.46110036 0.71277318 -0.52852706
+vn 0.97318567 -0.10212507 -0.20610705
+vn 0.39183347 -0.58332229 0.71147849
+vn -0.97429111 -7.2838795e-2 0.21319322
+vn 0.97429111 -7.2838795e-2 0.21319322
+vn -0.15722187 2.4628006e-2 0.98725617
+vn 0.15648542 -0.11321658 -0.98116987
+vn -0.97318567 -0.10212507 -0.20610705
+vn 0.95192391 0.20417659 -0.22836986
+vn -0.94915066 0.23399129 0.21062073
+vn 0.44985487 0.76487457 0.46108295
+vn -0.19666513 0.21049106 0.95760970
+vn 0.19958354 7.7253043e-2 -0.97683078
+vn 0.38300049 -0.66051178 -0.64578233
+vn -0.46110036 0.71277318 -0.52852706
+vn -0.39183347 -0.58332229 0.71147849
+vn 0.15722187 2.4628006e-2 0.98725617
+vn -0.15648542 -0.11321658 -0.98116987
+vn 0.11415651 0.83865773 0.53256127
+vn -7.5854556e-3 -0.72194462 -0.69190926
+vn -1.4698783e-2 0.18378005 0.98285749
+vn 1.5156088e-2 4.6647496e-2 -0.99879643
+vn 7.3309736e-3 -0.64471778 0.76438554
+vn -1.5898299e-3 3.5686803e-2 0.99936176
+vn -0.11853975 0.78480137 -0.60830513
+vn 1.6458959e-3 -0.10401522 -0.99457434
+vn -0.11415651 0.83865773 0.53256127
+vn 7.5854556e-3 -0.72194462 -0.69190926
+vn 1.4698783e-2 0.18378005 0.98285749
+vn -1.5156088e-2 4.6647496e-2 -0.99879643
+vn -7.3309736e-3 -0.64471778 0.76438554
+vn 1.5898299e-3 3.5686803e-2 0.99936176
+vn 0.11853975 0.78480137 -0.60830513
+vn -1.6458959e-3 -0.10401522 -0.99457434
+g RearSeat
+usemtl default
+f 1010//1218 1045//1253 1108//1316 1044//1252
+f 1010//1218 1046//1254 1125//1333 1045//1253
+f 1011//1219 1059//1267 1128//1336 1047//1255
+f 1012//1220 1088//1296 1114//1322 1049//1257
+f 1013//1221 1090//1298 1110//1318 1051//1259
+f 1014//1222 1069//1277 1117//1325 1052//1260
+f 1015//1223 1068//1276 1131//1339 1054//1262
+f 1016//1224 1067//1275 1115//1323 1055//1263
+f 1016//1224 1084//1292 1120//1328 1067//1275
+f 1017//1225 1087//1295 1116//1324 1056//1264
+f 1018//1226 1065//1273 1118//1326 1056//1264
+f 1018//1226 1080//1288 1127//1335 1055//1263
+f 1019//1227 1064//1272 1121//1329 1057//1265
+f 1020//1228 1082//1290 1124//1332 1058//1266
+f 1021//1229 1044//1252 1108//1316 1060//1268
+f 1021//1229 1060//1268 1128//1336 1059//1267
+f 1022//1230 1063//1271 1113//1321 1073//1281
+f 1022//1230 1073//1281 1121//1329 1064//1272
+f 1023//1231 1061//1269 1109//1317 1070//1278
+f 1023//1231 1070//1278 1118//1326 1065//1273
+f 1024//1232 1051//1259 1110//1318 1071//1279
+f 1024//1232 1070//1278 1109//1317 1051//1259
+f 1024//1232 1071//1279 1130//1338 1066//1274
+f 1025//1233 1074//1282 1115//1323 1067//1275
+f 1025//1233 1076//1284 1126//1334 1050//1258
+f 1026//1234 1048//1256 1111//1319 1072//1280
+f 1026//1234 1072//1280 1131//1339 1068//1276
+f 1026//1234 1073//1281 1113//1321 1048//1256
+f 1027//1235 1075//1283 1117//1325 1069//1277
+f 1027//1235 1078//1286 1125//1333 1046//1254
+f 1028//1236 1097//1305 1126//1334 1076//1284
+f 1029//1237 1072//1280 1111//1319 1106//1314
+f 1029//1237 1105//1313 1131//1339 1072//1280
+f 1029//1237 1106//1314 1135//1343 1077//1285
+f 1030//1238 1096//1304 1125//1333 1078//1286
+f 1031//1239 1071//1279 1110//1318 1093//1301
+f 1031//1239 1093//1301 1134//1342 1079//1287
+f 1031//1239 1101//1309 1130//1338 1071//1279
+f 1032//1240 1094//1302 1127//1335 1080//1288
+f 1033//1241 1062//1270 1112//1320 1107//1315
+f 1033//1241 1099//1307 1129//1337 1062//1270
+f 1033//1241 1107//1315 1133//1341 1081//1289
+f 1034//1242 1092//1300 1124//1332 1082//1290
+f 1035//1243 1060//1268 1108//1316 1100//1308
+f 1035//1243 1100//1308 1132//1340 1083//1291
+f 1035//1243 1102//1310 1128//1336 1060//1268
+f 1036//1244 1103//1311 1120//1328 1084//1292
+f 1037//1245 1054//1262 1131//1339 1105//1313
+f 1037//1245 1105//1313 1139//1347 1085//1293
+f 1037//1245 1107//1315 1112//1320 1054//1262
+f 1038//1246 1053//1261 1129//1337 1099//1307
+f 1038//1246 1098//1306 1119//1327 1053//1261
+f 1038//1246 1099//1307 1136//1344 1086//1294
+f 1039//1247 1104//1312 1116//1324 1087//1295
+f 1040//1248 1095//1303 1114//1322 1088//1296
+f 1041//1249 1047//1255 1128//1336 1102//1310
+f 1041//1249 1102//1310 1138//1346 1089//1297
+f 1041//1249 1106//1314 1111//1319 1047//1255
+f 1042//1250 1093//1301 1110//1318 1090//1298
+f 1043//1251 1045//1253 1125//1333 1096//1304
+f 1043//1251 1096//1304 1134//1342 1091//1299
+f 1043//1251 1100//1308 1108//1316 1045//1253
+f 1044//1252 1123//1331 1046//1254 1010//1218
+f 1046//1254 1123//1331 1075//1283 1027//1235
+f 1047//1255 1111//1319 1048//1256 1011//1219
+f 1048//1256 1113//1321 1059//1267 1011//1219
+f 1049//1257 1114//1322 1082//1290 1020//1228
+f 1049//1257 1122//1330 1050//1258 1012//1220
+f 1050//1258 1122//1330 1074//1282 1025//1233
+f 1050//1258 1126//1334 1088//1296 1012//1220
+f 1051//1259 1109//1317 1058//1266 1013//1221
+f 1052//1260 1117//1325 1064//1272 1019//1227
+f 1052//1260 1129//1337 1053//1261 1014//1222
+f 1053//1261 1119//1327 1069//1277 1014//1222
+f 1054//1262 1112//1320 1057//1265 1015//1223
+f 1055//1263 1115//1323 1065//1273 1018//1226
+f 1055//1263 1127//1335 1084//1292 1016//1224
+f 1056//1264 1116//1324 1080//1288 1018//1226
+f 1056//1264 1118//1326 1066//1274 1017//1225
+f 1057//1265 1112//1320 1062//1270 1019//1227
+f 1057//1265 1121//1329 1068//1276 1015//1223
+f 1058//1266 1109//1317 1061//1269 1020//1228
+f 1058//1266 1124//1332 1090//1298 1013//1221
+f 1059//1267 1113//1321 1063//1271 1021//1229
+f 1061//1269 1122//1330 1049//1257 1020//1228
+f 1062//1270 1129//1337 1052//1260 1019//1227
+f 1063//1271 1123//1331 1044//1252 1021//1229
+f 1064//1272 1117//1325 1075//1283 1022//1230
+f 1065//1273 1115//1323 1074//1282 1023//1231
+f 1066//1274 1118//1326 1070//1278 1024//1232
+f 1066//1274 1130//1338 1087//1295 1017//1225
+f 1067//1275 1120//1328 1076//1284 1025//1233
+f 1068//1276 1121//1329 1073//1281 1026//1234
+f 1069//1277 1119//1327 1078//1286 1027//1235
+f 1074//1282 1122//1330 1061//1269 1023//1231
+f 1075//1283 1123//1331 1063//1271 1022//1230
+f 1076//1284 1120//1328 1103//1311 1028//1236
+f 1077//1285 1135//1343 1097//1305 1028//1236
+f 1077//1285 1139//1347 1105//1313 1029//1237
+f 1078//1286 1119//1327 1098//1306 1030//1238
+f 1079//1287 1134//1342 1096//1304 1030//1238
+f 1079//1287 1137//1345 1101//1309 1031//1239
+f 1080//1288 1116//1324 1104//1312 1032//1240
+f 1081//1289 1133//1341 1094//1302 1032//1240
+f 1081//1289 1136//1344 1099//1307 1033//1241
+f 1082//1290 1114//1322 1095//1303 1034//1242
+f 1083//1291 1132//1340 1092//1300 1034//1242
+f 1083//1291 1138//1346 1102//1310 1035//1243
+f 1084//1292 1127//1335 1094//1302 1036//1244
+f 1085//1293 1133//1341 1107//1315 1037//1245
+f 1085//1293 1139//1347 1103//1311 1036//1244
+f 1086//1294 1136//1344 1104//1312 1039//1247
+f 1086//1294 1137//1345 1098//1306 1038//1246
+f 1087//1295 1130//1338 1101//1309 1039//1247
+f 1088//1296 1126//1334 1097//1305 1040//1248
+f 1089//1297 1135//1343 1106//1314 1041//1249
+f 1089//1297 1138//1346 1095//1303 1040//1248
+f 1090//1298 1124//1332 1092//1300 1042//1250
+f 1091//1299 1132//1340 1100//1308 1043//1251
+f 1091//1299 1134//1342 1093//1301 1042//1250
+f 1092//1300 1132//1340 1091//1299 1042//1250
+f 1094//1302 1133//1341 1085//1293 1036//1244
+f 1095//1303 1138//1346 1083//1291 1034//1242
+f 1097//1305 1135//1343 1089//1297 1040//1248
+f 1098//1306 1137//1345 1079//1287 1030//1238
+f 1101//1309 1137//1345 1086//1294 1039//1247
+f 1103//1311 1139//1347 1077//1285 1028//1236
+f 1104//1312 1136//1344 1081//1289 1032//1240
+f 1140//1348 1183//1391 1262//1470 1182//1390
+f 1140//1348 1184//1392 1279//1487 1183//1391
+f 1141//1349 1197//1405 1282//1490 1185//1393
+f 1142//1350 1226//1434 1268//1476 1187//1395
+f 1143//1351 1228//1436 1264//1472 1189//1397
+f 1144//1352 1207//1415 1271//1479 1190//1398
+f 1145//1353 1206//1414 1285//1493 1192//1400
+f 1146//1354 1205//1413 1269//1477 1193//1401
+f 1146//1354 1222//1430 1274//1482 1205//1413
+f 1147//1355 1225//1433 1270//1478 1194//1402
+f 1148//1356 1203//1411 1272//1480 1194//1402
+f 1148//1356 1218//1426 1281//1489 1193//1401
+f 1149//1357 1202//1410 1275//1483 1195//1403
+f 1150//1358 1220//1428 1278//1486 1196//1404
+f 1151//1359 1182//1390 1262//1470 1198//1406
+f 1151//1359 1198//1406 1282//1490 1197//1405
+f 1152//1360 1201//1409 1267//1475 1211//1419
+f 1152//1360 1211//1419 1275//1483 1202//1410
+f 1153//1361 1199//1407 1263//1471 1208//1416
+f 1153//1361 1208//1416 1272//1480 1203//1411
+f 1154//1362 1189//1397 1264//1472 1209//1417
+f 1154//1362 1208//1416 1263//1471 1189//1397
+f 1154//1362 1209//1417 1284//1492 1204//1412
+f 1155//1363 1212//1420 1269//1477 1205//1413
+f 1155//1363 1214//1422 1280//1488 1188//1396
+f 1156//1364 1186//1394 1265//1473 1210//1418
+f 1156//1364 1210//1418 1285//1493 1206//1414
+f 1156//1364 1211//1419 1267//1475 1186//1394
+f 1157//1365 1213//1421 1271//1479 1207//1415
+f 1157//1365 1216//1424 1279//1487 1184//1392
+f 1158//1366 1235//1443 1280//1488 1214//1422
+f 1158//1366 1253//1461 1289//1497 1235//1443
+f 1159//1367 1210//1418 1265//1473 1244//1452
+f 1159//1367 1243//1451 1285//1493 1210//1418
+f 1159//1367 1244//1452 1297//1505 1215//1423
+f 1160//1368 1234//1442 1279//1487 1216//1424
+f 1160//1368 1252//1460 1288//1496 1234//1442
+f 1161//1369 1209//1417 1264//1472 1231//1439
+f 1161//1369 1231//1439 1296//1504 1217//1425
+f 1161//1369 1239//1447 1284//1492 1209//1417
+f 1162//1370 1232//1440 1281//1489 1218//1426
+f 1162//1370 1251//1459 1287//1495 1232//1440
+f 1163//1371 1200//1408 1266//1474 1245//1453
+f 1163//1371 1237//1445 1283//1491 1200//1408
+f 1163//1371 1245//1453 1295//1503 1219//1427
+f 1164//1372 1230//1438 1278//1486 1220//1428
+f 1164//1372 1250//1458 1286//1494 1230//1438
+f 1165//1373 1198//1406 1262//1470 1238//1446
+f 1165//1373 1238//1446 1294//1502 1221//1429
+f 1165//1373 1240//1448 1282//1490 1198//1406
+f 1166//1374 1241//1449 1274//1482 1222//1430
+f 1166//1374 1249//1457 1301//1509 1241//1449
+f 1167//1375 1192//1400 1285//1493 1243//1451
+f 1167//1375 1243//1451 1293//1501 1223//1431
+f 1167//1375 1245//1453 1266//1474 1192//1400
+f 1168//1376 1191//1399 1283//1491 1237//1445
+f 1168//1376 1236//1444 1273//1481 1191//1399
+f 1168//1376 1237//1445 1290//1498 1224//1432
+f 1169//1377 1242//1450 1270//1478 1225//1433
+f 1169//1377 1248//1456 1298//1506 1242//1450
+f 1170//1378 1233//1441 1268//1476 1226//1434
+f 1170//1378 1247//1455 1300//1508 1233//1441
+f 1171//1379 1185//1393 1282//1490 1240//1448
+f 1171//1379 1240//1448 1292//1500 1227//1435
+f 1171//1379 1244//1452 1265//1473 1185//1393