From d3685202702edd3db2dc2e129e2d4fe6059cc3ea Mon Sep 17 00:00:00 2001
From: ansgar <ansgar@5a81b35b-ba03-0410-adc8-b2c5c5119f08>
Date: Tue, 13 Apr 2010 12:55:28 +0000
Subject: [PATCH] more work on ambient occlusion; fixed some double precision
 fixes

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@1981 5a81b35b-ba03-0410-adc8-b2c5c5119f08
---
 examples/misc/ambient_occlusion.py   |   10 +
 examples/misc/fragment.face          | 1417 ++++++++++++++++++++++++++
 examples/misc/fragment.vert          |  710 +++++++++++++
 modules/gfx/src/impl/calc_ambient.cc |   64 +-
 modules/gfx/src/vertex_array.cc      |   17 +-
 5 files changed, 2183 insertions(+), 35 deletions(-)
 create mode 100644 examples/misc/ambient_occlusion.py
 create mode 100644 examples/misc/fragment.face
 create mode 100644 examples/misc/fragment.vert

diff --git a/examples/misc/ambient_occlusion.py b/examples/misc/ambient_occlusion.py
new file mode 100644
index 000000000..f9232b77d
--- /dev/null
+++ b/examples/misc/ambient_occlusion.py
@@ -0,0 +1,10 @@
+surf=io.LoadSurface("fragment","msms")
+scene.Add(gfx.Surface("surf",surf))
+scene.CenterOn("surf")
+scene.SetFog(False)
+#scene["surf"].Debug(1)
+scene["surf"].SetColor(gfx.Color(1,1,0))
+scene["surf"].SetMat(0,1,0,0)
+scene.AutoAutoslab(False)
+scene.Autoslab()
+scene["surf"].AmbientOcclusion(True)
diff --git a/examples/misc/fragment.face b/examples/misc/fragment.face
new file mode 100644
index 000000000..8d8051710
--- /dev/null
+++ b/examples/misc/fragment.face
@@ -0,0 +1,1417 @@
+# MSMS solvent excluded surface faces for t.xyz
+#faces  #sphere density probe_r
+   1414      81  0.50  1.50
+     1      5    533  3      3
+   533      5    534  3      3
+   533    534      2  3      3
+     2    534      4  3      3
+     5    535      6  3      5
+     6    535    536  3      5
+   535      8    536  3      5
+   536      8      7  3      5
+     8     11      9  3      7
+     9     11     10  3      7
+    11    537     12  3      8
+    12    537    538  3      8
+   537    539    538  3      8
+   538    539    540  3      8
+   539    541    540  3      8
+   540    541    542  3      8
+   541      1    542  3      8
+   542      1      3  3      8
+    12     14     10  3     10
+    10     14     13  3     10
+    14     17     15  3     12
+    15     17     16  3     12
+    17     20    543  3     14
+   543     20    544  3     14
+   543    544     18  3     14
+    18    544     19  3     14
+    20     23     21  3     16
+    21     23     22  3     16
+    23     26    545  3     18
+   545     26    546  3     18
+   545    546     24  3     18
+    24    546     25  3     18
+    26      3     27  3     19
+    27      3      2  3     19
+    27     29     25  3     21
+    25     29     28  3     21
+    29     32     30  3     23
+    30     32     31  3     23
+    32     35     33  3     25
+    33     35     34  3     25
+    35     38     36  3     27
+    36     38     37  3     27
+    38     41     39  3     29
+    39     41     40  3     29
+    41      4     42  3     30
+    42      4      6  3     30
+    42     44     40  3     32
+    40     44     43  3     32
+    44     47     45  3     34
+    45     47     46  3     34
+    47     50     48  3     36
+    48     50     49  3     36
+    50      7     51  3     37
+    51      7      9  3     37
+    51     53     49  3     39
+    49     53     52  3     39
+    53     13     54  3     40
+    54     13     15  3     40
+    54     56     52  3     42
+    52     56     55  3     42
+    56    547     57  3     44
+    57    547    548  3     44
+   547    549    548  3     44
+   548    549    550  3     44
+   549     59    550  3     44
+   550     59     58  3     44
+    59     62     60  3     46
+    60     62     61  3     46
+    62     65     63  3     48
+    63     65     64  3     48
+    65     16     66  3     49
+    66     16     18  3     49
+    66     68     64  3     51
+    64     68     67  3     51
+    68     71     69  3     53
+    69     71     70  3     53
+    71     74     72  3     55
+    72     74     73  3     55
+    74     77     75  3     57
+    75     77     76  3     57
+    77     19     78  3     58
+    78     19     21  3     58
+    78     22     76  3     59
+    76     22     24  3     59
+    75     80     73  3     61
+    73     80     79  3     61
+    80     83     81  3     63
+    81     83     82  3     63
+    83     28     84  3     64
+    84     28     30  3     64
+    84     86     82  3     66
+    82     86     85  3     66
+    86     89     87  3     68
+    87     89     88  3     68
+    89     92     90  3     70
+    90     92     91  3     70
+    92     31     93  3     71
+    93     31     33  3     71
+    93     95     91  3     73
+    91     95     94  3     73
+    95     98     96  3     75
+    96     98     97  3     75
+    98    101     99  3     77
+    99    101    100  3     77
+   101    104    102  3     79
+   102    104    103  3     79
+   104     34    105  3     80
+   105     34     36  3     80
+   105    107    103  3     82
+   103    107    106  3     82
+   107    551    108  3     83
+   108    551    552  3     83
+   551     37    552  3     83
+   552     37     39  3     83
+   108    110    106  3     85
+   106    110    109  3     85
+   110    113    111  3     87
+   111    113    112  3     87
+   113    116    114  3     89
+   114    116    115  3     89
+   116    119    117  3     91
+   117    119    118  3     91
+   119    122    553  3     93
+   553    122    554  3     93
+   553    554    120  3     93
+   120    554    121  3     93
+   122     43    123  3     94
+   123     43     45  3     94
+   123    125    121  3     96
+   121    125    124  3     96
+   125    128    126  3     98
+   126    128    127  3     98
+   128     46    129  3     99
+   129     46     48  3     99
+   129    131    127  3    101
+   127    131    130  3    101
+   131    134    132  3    103
+   132    134    133  3    103
+   134    137    135  3    105
+   135    137    136  3    105
+   141    138    140  3    107
+   137    142    139  3    108
+   142    145    143  3    110
+   143    145    144  3    110
+   145    148    146  3    112
+   146    148    147  3    112
+   148    151    149  3    114
+   149    151    150  3    114
+   151     55    555  3    115
+   555     55    556  3    115
+   555    556    152  3    115
+   152    556     57  3    115
+   152    557    150  3    117
+   150    557    558  3    117
+   557    559    558  3    117
+   558    559    560  3    117
+   559    154    560  3    117
+   560    154    153  3    117
+   154    157    155  3    119
+   155    157    156  3    119
+   157    160    561  3    121
+   561    160    562  3    121
+   561    562    158  3    121
+   158    562    159  3    121
+   160     58    161  3    122
+   161     58     60  3    122
+   161     61    159  3    123
+   159     61     63  3    123
+   158    163    156  3    125
+   156    163    162  3    125
+   163    166    164  3    127
+   164    166    165  3    127
+   166    169    167  3    129
+   167    169    168  3    129
+   169    172    170  3    131
+   170    172    171  3    131
+   172    175    173  3    133
+   173    175    174  3    133
+   175    563    176  3    135
+   176    563    564  3    135
+   563    178    564  3    135
+   564    178    177  3    135
+   178    181    179  3    137
+   179    181    180  3    137
+   181     67    182  3    138
+   182     67     69  3    138
+   182    184    180  3    140
+   180    184    183  3    140
+   184    187    185  3    142
+   185    187    186  3    142
+   187    190    188  3    144
+   188    190    189  3    144
+   190     70    191  3    145
+   191     70     72  3    145
+   191     79    189  3    146
+   189     79     81  3    146
+   188    193    186  3    148
+   186    193    192  3    148
+   193     85    194  3    149
+   194     85     87  3    149
+   194    196    192  3    151
+   192    196    195  3    151
+   196    199    197  3    153
+   197    199    198  3    153
+   199    202    200  3    155
+   200    202    201  3    155
+   202    565    203  3    157
+   203    565    566  3    157
+   565    205    566  3    157
+   566    205    204  3    157
+   205    208    206  3    159
+   206    208    207  3    159
+   208     88    209  3    160
+   209     88     90  3    160
+   209     94    207  3    161
+   207     94     96  3    161
+   206    211    204  3    163
+   204    211    210  3    163
+   211    214    212  3    165
+   212    214    213  3    165
+   214    217    215  3    167
+   215    217    216  3    167
+   217     97    218  3    168
+   218     97     99  3    168
+   218    100    216  3    169
+   216    100    102  3    169
+   215    220    567  3    171
+   567    220    568  3    171
+   567    568    213  3    171
+   213    568    219  3    171
+   220    223    221  3    173
+   221    223    222  3    173
+   223    226    224  3    175
+   224    226    225  3    175
+   226    229    227  3    177
+   227    229    228  3    177
+   229    109    230  3    178
+   230    109    111  3    178
+   230    232    228  3    180
+   228    232    231  3    180
+   232    235    233  3    182
+   233    235    234  3    182
+   235    112    236  3    183
+   236    112    114  3    183
+   149    234    238  3    184
+   236    147    237  3    185
+   233    240    231  3    187
+   231    240    239  3    187
+   240    243    241  3    189
+   241    243    242  3    189
+   243    165    244  3    190
+   244    165    167  3    190
+   244    246    242  3    192
+   242    246    245  3    192
+   246    249    247  3    194
+   247    249    248  3    194
+   249    252    250  3    196
+   250    252    251  3    196
+   252    168    253  3    197
+   253    168    170  3    197
+   253    255    251  3    199
+   251    255    254  3    199
+   255    258    256  3    201
+   256    258    257  3    201
+   258    261    259  3    203
+   259    261    260  3    203
+   261    171    262  3    204
+   262    171    173  3    204
+   262    264    260  3    206
+   260    264    263  3    206
+   268    265    267  3    208
+   264    269    266  3    209
+   269    272    270  3    211
+   270    272    271  3    211
+   272    275    273  3    213
+   273    275    274  3    213
+   275    278    276  3    215
+   276    278    277  3    215
+   278    569    279  3    217
+   279    569    570  3    217
+   569    281    570  3    217
+   570    281    280  3    217
+   281    284    282  3    219
+   282    284    283  3    219
+   284    174    285  3    220
+   285    174    176  3    220
+   285    287    283  3    222
+   283    287    286  3    222
+   287    571    288  3    224
+   288    571    572  3    224
+   571    573    572  3    224
+   572    573    574  3    224
+   573    290    574  3    224
+   574    290    289  3    224
+   290    274    291  3    225
+   291    274    276  3    225
+   291    293    289  3    227
+   289    293    292  3    227
+   293    277    294  3    228
+   294    277    279  3    228
+   294    575    292  3    230
+   292    575    576  3    230
+   575    296    576  3    230
+   576    296    295  3    230
+   296    280    297  3    231
+   297    280    282  3    231
+   297    286    295  3    232
+   295    286    288  3    232
+   273    577    271  3    233
+   271    577    578  3    233
+   577    579    578  3    233
+   578    579    580  3    233
+   579    177    580  3    233
+   580    177    179  3    233
+   270    299    268  3    235
+   268    299    298  3    235
+   299    183    300  3    236
+   300    183    185  3    236
+   300    302    298  3    238
+   298    302    301  3    238
+   302    195    303  3    239
+   303    195    197  3    239
+   303    198    301  3    240
+   301    198    200  3    240
+   265    257    263  3    241
+   263    257    259  3    241
+   256    305    254  3    243
+   254    305    304  3    243
+   305    581    306  3    245
+   306    581    582  3    245
+   581    308    582  3    245
+   582    308    307  3    245
+   308    201    309  3    246
+   309    201    203  3    246
+   309    311    307  3    248
+   307    311    310  3    248
+   311    210    312  3    249
+   312    210    212  3    249
+   312    583    310  3    251
+   310    583    584  3    251
+   583    585    584  3    251
+   584    585    586  3    251
+   585    314    586  3    251
+   586    314    313  3    251
+   314    219    315  3    252
+   315    219    221  3    252
+   315    304    313  3    253
+   313    304    306  3    253
+   250    317    248  3    255
+   248    317    316  3    255
+   317    222    318  3    256
+   318    222    224  3    256
+   318    225    316  3    257
+   316    225    227  3    257
+   247    239    245  3    258
+   245    239    241  3    258
+   164    153    162  3    259
+   162    153    155  3    259
+   146    320    144  3    261
+   144    320    319  3    261
+   320    323    587  3    263
+   587    323    588  3    263
+   587    588    321  3    263
+   321    588    322  3    263
+   323    326    324  3    265
+   324    326    325  3    265
+   326    329    327  3    267
+   327    329    328  3    267
+   329    332    330  3    269
+   330    332    331  3    269
+   332    115    333  3    270
+   333    115    117  3    270
+   333    118    331  3    271
+   331    118    120  3    271
+   330    335    328  3    273
+   328    335    334  3    273
+   335    589    336  3    275
+   336    589    590  3    275
+   589    338    590  3    275
+   590    338    337  3    275
+   338    591    339  3    277
+   339    591    592  3    277
+   591    341    592  3    277
+   592    341    340  3    277
+   341    124    342  3    278
+   342    124    126  3    278
+   342    344    340  3    280
+   340    344    343  3    280
+   344    130    345  3    281
+   345    130    132  3    281
+   345    347    343  3    283
+   343    347    346  3    283
+   347    350    348  3    285
+   348    350    349  3    285
+   350    593    351  3    287
+   351    593    594  3    287
+   593    353    594  3    287
+   594    353    352  3    287
+   353    356    354  3    289
+   354    356    355  3    289
+   356    133    357  3    290
+   357    133    135  3    290
+   357    136    355  3    291
+   355    136    138  3    291
+   354    359    352  3    293
+   352    359    358  3    293
+   359    362    360  3    295
+   360    362    361  3    295
+   362    365    363  3    297
+   363    365    364  3    297
+   365    368    366  3    299
+   366    368    367  3    299
+   368    371    369  3    301
+   369    371    370  3    301
+   371    374    372  3    303
+   372    374    373  3    303
+   374    322    375  3    304
+   375    322    324  3    304
+   375    377    373  3    306
+   373    377    376  3    306
+   377    380    378  3    308
+   378    380    379  3    308
+   380    383    381  3    310
+   381    383    382  3    310
+   383    325    384  3    311
+   384    325    327  3    311
+   384    334    382  3    312
+   382    334    336  3    312
+   381    386    379  3    314
+   379    386    385  3    314
+   386    389    387  3    316
+   387    389    388  3    316
+   389    392    390  3    318
+   390    392    391  3    318
+   392    337    393  3    319
+   393    337    339  3    319
+   393    346    391  3    320
+   391    346    348  3    320
+   390    349    388  3    321
+   388    349    351  3    321
+   387    395    385  3    323
+   385    395    394  3    323
+   395    595    396  3    324
+   396    595    596  3    324
+   595    358    596  3    324
+   596    358    360  3    324
+   396    398    394  3    326
+   394    398    397  3    326
+   398    597    399  3    328
+   399    597    598  3    328
+   597    401    598  3    328
+   598    401    400  3    328
+   401    361    402  3    329
+   402    361    363  3    329
+   402    404    400  3    331
+   400    404    403  3    331
+   404    407    405  3    333
+   405    407    406  3    333
+   407    410    599  3    335
+   599    410    600  3    335
+   599    600    408  3    335
+   408    600    409  3    335
+   410    413    411  3    337
+   411    413    412  3    337
+   413    364    414  3    338
+   414    364    366  3    338
+   414    416    412  3    340
+   412    416    415  3    340
+   416    419    417  3    342
+   417    419    418  3    342
+   419    367    420  3    343
+   420    367    369  3    343
+   420    601    418  3    345
+   418    601    602  3    345
+   601    422    602  3    345
+   602    422    421  3    345
+   422    425    423  3    347
+   423    425    424  3    347
+   425    428    426  3    349
+   426    428    427  3    349
+   428    370    603  3    350
+   603    370    604  3    350
+   603    604    429  3    350
+   429    604    372  3    350
+   429    431    427  3    352
+   427    431    430  3    352
+   431    434    432  3    354
+   432    434    433  3    354
+   434    437    435  3    356
+   435    437    436  3    356
+   437    376    438  3    357
+   438    376    378  3    357
+   438    440    436  3    359
+   436    440    439  3    359
+   440    397    441  3    360
+   441    397    399  3    360
+   441    443    439  3    362
+   439    443    442  3    362
+   443    446    444  3    364
+   444    446    445  3    364
+   446    605    447  3    366
+   447    605    606  3    366
+   605    607    606  3    366
+   606    607    608  3    366
+   607    449    608  3    366
+   608    449    448  3    366
+   449    403    450  3    367
+   450    403    405  3    367
+   450    452    448  3    369
+   448    452    451  3    369
+   452    406    453  3    370
+   453    406    408  3    370
+   453    455    451  3    372
+   451    455    454  3    372
+   455    458    456  3    374
+   456    458    457  3    374
+   458    461    459  3    376
+   459    461    460  3    376
+   461    609    462  3    378
+   462    609    610  3    378
+   609    464    610  3    378
+   610    464    463  3    378
+   464    611    465  3    380
+   465    611    612  3    380
+   611    467    612  3    380
+   612    467    466  3    380
+   467    470    468  3    382
+   468    470    469  3    382
+   470    409    471  3    383
+   471    409    411  3    383
+   471    473    469  3    385
+   469    473    472  3    385
+   473    415    474  3    386
+   474    415    417  3    386
+   474    476    472  3    388
+   472    476    475  3    388
+   476    479    477  3    390
+   477    479    478  3    390
+   479    613    480  3    392
+   480    613    614  3    392
+   613    482    614  3    392
+   614    482    481  3    392
+   482    421    483  3    393
+   483    421    423  3    393
+   483    485    481  3    395
+   481    485    484  3    395
+   485    488    486  3    397
+   486    488    487  3    397
+   488    491    489  3    399
+   489    491    490  3    399
+   491    424    492  3    400
+   492    424    426  3    400
+   492    430    490  3    401
+   490    430    432  3    401
+   489    494    487  3    403
+   487    494    493  3    403
+   494    497    495  3    405
+   495    497    496  3    405
+   497    433    498  3    406
+   498    433    435  3    406
+   498    500    496  3    408
+   496    500    499  3    408
+   500    442    501  3    409
+   501    442    444  3    409
+   501    503    499  3    411
+   499    503    502  3    411
+   503    445    504  3    412
+   504    445    447  3    412
+   504    615    502  3    413
+   502    615    616  3    413
+   615    454    616  3    413
+   616    454    456  3    413
+   495    506    493  3    415
+   493    506    505  3    415
+   506    457    507  3    416
+   507    457    459  3    416
+   507    509    505  3    418
+   505    509    508  3    418
+   509    512    510  3    420
+   510    512    511  3    420
+   512    460    513  3    421
+   513    460    462  3    421
+   513    515    511  3    423
+   511    515    514  3    423
+   515    463    516  3    424
+   516    463    465  3    424
+   516    518    514  3    426
+   514    518    517  3    426
+   518    521    519  3    428
+   519    521    520  3    428
+   521    466    522  3    429
+   522    466    468  3    429
+   522    475    520  3    430
+   520    475    477  3    430
+   519    524    517  3    432
+   517    524    523  3    432
+   524    478    525  3    433
+   525    478    480  3    433
+   525    527    523  3    435
+   523    527    526  3    435
+   527    484    528  3    436
+   528    484    486  3    436
+   528    508    526  3    437
+   526    508    510  3    437
+   321    141    617  3    438
+   617    141    618  3    438
+   617    618    319  3    438
+   319    618    143  3    438
+   529    620    619  3    439
+   619    620    621  3    439
+   619    621    530  3    439
+   530    621    622  3    439
+   620    623    621  3    439
+   621    623    624  3    439
+   621    624    622  3    439
+   622    624    625  3    439
+   623    626    624  3    439
+   624    626    627  3    439
+   624    627    625  3    439
+   625    627    628  3    439
+   626    629    627  3    439
+   627    629    630  3    439
+   627    630    628  3    439
+   628    630    631  3    439
+   629    632    630  3    439
+   630    632    633  3    439
+   630    633    631  3    439
+   631    633    634  3    439
+   632    529    633  3    439
+   633    529    619  3    439
+   633    619    634  3    439
+   634    619    530  3    439
+   531    635    532  3    440
+   532    635    636  3    440
+   635    637    636  3    440
+   636    637    638  3    440
+   637    639    638  3    440
+   638    639    640  3    440
+   639    641    640  3    440
+   640    641    642  3    440
+   641    643    642  3    440
+   642    643    644  3    440
+   643    531    644  3    440
+   644    531    532  3    440
+     3      1    533  2      1
+     3    533      2  2      1
+     6      4    534  2      2
+     6    534      5  2      2
+     9      7      8  2      4
+    12     10     11  2      6
+    15     13     14  2      9
+    18     16    543  2     11
+   543     16     17  2     11
+    21     19    544  2     13
+    21    544     20  2     13
+    24     22    545  2     15
+   545     22     23  2     15
+    27     25    546  2     17
+    27    546     26  2     17
+    30     28     29  2     20
+    33     31     32  2     22
+    36     34     35  2     24
+    39     37     38  2     26
+    42     40     41  2     28
+    45     43     44  2     31
+    48     46     47  2     33
+    51     49     50  2     35
+    54     52     53  2     38
+   556     55     56  2     41
+   556     56     57  2     41
+    60     58     59  2     43
+    63     61     62  2     45
+    66     64     65  2     47
+    69     67     68  2     50
+    72     70     71  2     52
+    75     73     74  2     54
+    78     76     77  2     56
+    81     79     80  2     60
+    84     82     83  2     62
+    87     85     86  2     65
+    90     88     89  2     67
+    93     91     92  2     69
+    96     94     95  2     72
+    99     97     98  2     74
+   102    100    101  2     76
+   105    103    104  2     78
+   108    106    107  2     81
+   111    109    110  2     84
+   114    112    113  2     86
+   117    115    116  2     88
+   120    118    553  2     90
+   553    118    119  2     90
+   123    121    554  2     92
+   123    554    122  2     92
+   126    124    125  2     95
+   129    127    128  2     97
+   132    130    131  2    100
+   135    133    134  2    102
+   138    136    140  2    104
+   140    136    139  2    104
+   139    136    137  2    104
+   618    141    140  2    106
+   618    140    139  2    106
+   618    139    143  2    106
+   143    139    142  2    106
+   146    144    145  2    109
+   237    147    148  2    111
+   237    148    238  2    111
+   238    148    149  2    111
+   152    150    555  2    113
+   555    150    151  2    113
+   155    153    154  2    116
+   158    156    561  2    118
+   561    156    157  2    118
+   161    159    562  2    120
+   161    562    160  2    120
+   164    162    163  2    124
+   167    165    166  2    126
+   170    168    169  2    128
+   173    171    172  2    130
+   176    174    175  2    132
+   179    177    178  2    134
+   182    180    181  2    136
+   185    183    184  2    139
+   188    186    187  2    141
+   191    189    190  2    143
+   194    192    193  2    147
+   197    195    196  2    150
+   200    198    199  2    152
+   203    201    202  2    154
+   206    204    205  2    156
+   209    207    208  2    158
+   212    210    211  2    162
+   567    213    214  2    164
+   567    214    215  2    164
+   218    216    217  2    166
+   221    219    568  2    170
+   221    568    220  2    170
+   224    222    223  2    172
+   227    225    226  2    174
+   230    228    229  2    176
+   233    231    232  2    179
+   238    234    235  2    181
+   238    235    237  2    181
+   237    235    236  2    181
+   241    239    240  2    186
+   244    242    243  2    188
+   247    245    246  2    191
+   250    248    249  2    193
+   253    251    252  2    195
+   256    254    255  2    198
+   259    257    258  2    200
+   262    260    261  2    202
+   265    263    267  2    205
+   267    263    266  2    205
+   266    263    264  2    205
+   270    268    267  2    207
+   270    267    266  2    207
+   270    266    269  2    207
+   273    271    272  2    210
+   276    274    275  2    212
+   279    277    278  2    214
+   282    280    281  2    216
+   285    283    284  2    218
+   288    286    287  2    221
+   291    289    290  2    223
+   294    292    293  2    226
+   297    295    296  2    229
+   300    298    299  2    234
+   303    301    302  2    237
+   306    304    305  2    242
+   309    307    308  2    244
+   312    310    311  2    247
+   315    313    314  2    250
+   318    316    317  2    254
+   617    319    587  2    260
+   617    587    321  2    260
+   587    319    320  2    260
+   324    322    588  2    262
+   324    588    323  2    262
+   327    325    326  2    264
+   330    328    329  2    266
+   333    331    332  2    268
+   336    334    335  2    272
+   339    337    338  2    274
+   342    340    341  2    276
+   345    343    344  2    279
+   348    346    347  2    282
+   351    349    350  2    284
+   354    352    353  2    286
+   357    355    356  2    288
+   360    358    359  2    292
+   363    361    362  2    294
+   366    364    365  2    296
+   369    367    368  2    298
+   604    370    371  2    300
+   604    371    372  2    300
+   375    373    374  2    302
+   378    376    377  2    305
+   381    379    380  2    307
+   384    382    383  2    309
+   387    385    386  2    313
+   390    388    389  2    315
+   393    391    392  2    317
+   396    394    395  2    322
+   399    397    398  2    325
+   402    400    401  2    327
+   405    403    404  2    330
+   408    406    599  2    332
+   599    406    407  2    332
+   411    409    600  2    334
+   411    600    410  2    334
+   414    412    413  2    336
+   417    415    416  2    339
+   420    418    419  2    341
+   423    421    422  2    344
+   426    424    425  2    346
+   429    427    603  2    348
+   603    427    428  2    348
+   432    430    431  2    351
+   435    433    434  2    353
+   438    436    437  2    355
+   441    439    440  2    358
+   444    442    443  2    361
+   447    445    446  2    363
+   450    448    449  2    365
+   453    451    452  2    368
+   456    454    455  2    371
+   459    457    458  2    373
+   462    460    461  2    375
+   465    463    464  2    377
+   468    466    467  2    379
+   471    469    470  2    381
+   474    472    473  2    384
+   477    475    476  2    387
+   480    478    479  2    389
+   483    481    482  2    391
+   486    484    485  2    394
+   489    487    488  2    396
+   492    490    491  2    398
+   495    493    494  2    402
+   498    496    497  2    404
+   501    499    500  2    407
+   504    502    503  2    410
+   507    505    506  2    414
+   510    508    509  2    417
+   513    511    512  2    419
+   516    514    515  2    422
+   519    517    518  2    425
+   522    520    521  2    427
+   525    523    524  2    431
+   528    526    527  2    434
+   646    645    650  1    441
+   647    646    650  1    441
+   648    647    650  1    441
+   649    648    650  1    441
+   645    649    650  1    441
+   649    645      1  1    441
+   649      1    541  1    441
+   649    541    539  1    441
+   649    539    648  1    441
+   648    539    537  1    441
+   648    537    647  1    441
+   647    537     11  1    441
+   647     11      8  1    441
+   647      8    646  1    441
+   646      8    535  1    441
+   646    535    645  1    441
+   645    535      5  1    441
+   645      5      1  1    441
+     4     41     35  1    442
+     4     35     32  1    442
+     4     32      2  1    442
+     2     32     29  1    442
+     2     29     27  1    442
+    35     41     38  1    442
+     7     50     47  1    443
+     7     47    536  1    443
+   536     47     44  1    443
+   536     44      6  1    443
+     6     44     42  1    443
+    10     13     53  1    444
+    10     53     51  1    444
+    10     51      9  1    444
+     3     26    542  1    445
+   542     26     20  1    445
+   542     20    651  1    445
+   542    651    540  1    445
+   540    651    538  1    445
+   538    651     14  1    445
+   538     14     12  1    445
+    14    651     17  1    445
+    17    651     20  1    445
+    20     26     23  1    445
+    16     65     15  1    446
+    15     65    652  1    446
+    15    652    547  1    446
+    15    547     54  1    446
+    54    547     56  1    446
+   547    652    549  1    446
+   549    652     59  1    446
+    59    652     65  1    446
+    59     65     62  1    446
+    19     77     71  1    447
+    19     71     18  1    447
+    18     71     68  1    447
+    18     68     66  1    447
+    71     77     74  1    447
+    22     78     21  1    448
+    25     28     76  1    449
+    25     76     24  1    449
+    76     28     75  1    449
+    75     28     83  1    449
+    75     83     80  1    449
+    31     92     30  1    450
+    30     92     86  1    450
+    30     86     84  1    450
+    86     92     89  1    450
+    34    104    653  1    451
+    34    653     33  1    451
+    33    653     93  1    451
+    93    653     95  1    451
+    95    653     98  1    451
+    98    653    104  1    451
+    98    104    101  1    451
+   551    107    105  1    452
+   551    105     36  1    452
+   551     36     37  1    452
+    40     43     39  1    453
+    39     43    122  1    453
+    39    122    552  1    453
+   552    122    119  1    453
+   552    119    116  1    453
+   552    116    108  1    453
+   108    116    113  1    453
+   108    113    110  1    453
+    46    128    125  1    454
+    46    125     45  1    454
+    45    125    123  1    454
+    49     52    131  1    455
+    49    131    129  1    455
+    49    129     48  1    455
+   131     52    134  1    455
+   134     52    137  1    455
+   137     52     55  1    455
+   137     55    142  1    455
+   142     55    151  1    455
+   142    151    145  1    455
+   145    151    148  1    455
+   654    655    656  1    456
+   654    656    157  1    456
+   654    157    154  1    456
+   654    154    559  1    456
+   654    559    626  1    456
+   654    626    655  1    456
+   655    626    623  1    456
+   655    623    548  1    456
+   655    548    550  1    456
+   655    550    656  1    456
+   656    550     58  1    456
+   656     58    160  1    456
+   656    160    157  1    456
+   548    623    620  1    456
+   548    620     57  1    456
+    57    620    529  1    456
+    57    529    152  1    456
+   152    529    632  1    456
+   152    632    557  1    456
+   557    632    629  1    456
+   557    629    626  1    456
+   557    626    559  1    456
+    61    161     60  1    457
+    64     67    178  1    458
+    64    178    563  1    458
+    64    563     63  1    458
+    63    563    175  1    458
+    63    175    159  1    458
+   159    175    158  1    458
+   158    175    172  1    458
+   158    172    163  1    458
+   163    172    169  1    458
+   163    169    166  1    458
+   178     67    181  1    458
+    70    190    187  1    459
+    70    187    182  1    459
+    70    182     69  1    459
+   182    187    184  1    459
+    73     79    191  1    460
+    73    191     72  1    460
+    82     85    189  1    461
+    82    189     81  1    461
+   189     85    188  1    461
+   188     85    193  1    461
+    88    208    657  1    462
+    88    657     87  1    462
+    87    657    194  1    462
+   194    657    199  1    462
+   194    199    196  1    462
+   199    657    565  1    462
+   199    565    202  1    462
+   565    657    205  1    462
+   205    657    208  1    462
+    91     94    209  1    463
+    91    209     90  1    463
+    97    217    211  1    464
+    97    211     96  1    464
+    96    211    206  1    464
+    96    206    207  1    464
+   211    217    214  1    464
+   100    218     99  1    465
+   103    106    102  1    466
+   102    106    216  1    466
+   216    106    109  1    466
+   216    109    229  1    466
+   216    229    215  1    466
+   215    229    220  1    466
+   220    229    226  1    466
+   220    226    223  1    466
+   112    235    232  1    467
+   112    232    230  1    467
+   112    230    111  1    467
+   115    332    329  1    468
+   115    329    114  1    468
+   114    329    326  1    468
+   114    326    236  1    468
+   236    326    323  1    468
+   236    323    147  1    468
+   147    323    320  1    468
+   147    320    146  1    468
+   118    333    117  1    469
+   658    659    660  1    470
+   660    659    661  1    470
+   660    661    338  1    470
+   660    338    589  1    470
+   660    589    658  1    470
+   658    589    335  1    470
+   658    335    330  1    470
+   658    330    331  1    470
+   658    331    659  1    470
+   659    331    120  1    470
+   659    120    121  1    470
+   659    121    661  1    470
+   661    121    124  1    470
+   661    124    591  1    470
+   661    591    338  1    470
+   591    124    341  1    470
+   127    130    344  1    471
+   127    344    342  1    471
+   127    342    126  1    471
+   133    356    353  1    472
+   133    353    132  1    472
+   132    353    593  1    472
+   132    593    345  1    472
+   345    593    347  1    472
+   347    593    350  1    472
+   136    357    135  1    473
+   634    530    141  1    474
+   634    141    321  1    474
+   634    321    322  1    474
+   634    322    631  1    474
+   631    322    374  1    474
+   631    374    371  1    474
+   631    371    628  1    474
+   628    371    368  1    474
+   628    368    625  1    474
+   625    368    622  1    474
+   622    368    365  1    474
+   622    365    362  1    474
+   622    362    359  1    474
+   622    359    354  1    474
+   622    354    355  1    474
+   622    355    530  1    474
+   530    355    138  1    474
+   530    138    141  1    474
+   144    319    143  1    475
+   560    153    243  1    476
+   560    243    240  1    476
+   560    240    233  1    476
+   560    233    558  1    476
+   558    233    234  1    476
+   558    234    149  1    476
+   558    149    150  1    476
+   243    153    165  1    476
+   165    153    164  1    476
+   156    162    155  1    477
+   168    252    167  1    478
+   167    252    244  1    478
+   244    252    249  1    478
+   244    249    246  1    478
+   261    258    171  1    479
+   171    258    255  1    479
+   171    255    170  1    479
+   170    255    253  1    479
+   174    284    281  1    480
+   174    281    173  1    480
+   173    281    569  1    480
+   173    569    262  1    480
+   262    569    264  1    480
+   264    569    269  1    480
+   269    569    278  1    480
+   269    278    272  1    480
+   272    278    275  1    480
+   577    273    274  1    481
+   577    274    290  1    481
+   577    290    573  1    481
+   577    573    579  1    481
+   579    573    571  1    481
+   579    571    177  1    481
+   177    571    564  1    481
+   564    571    287  1    481
+   564    287    176  1    481
+   176    287    285  1    481
+   180    183    580  1    482
+   180    580    179  1    482
+   580    183    578  1    482
+   578    183    299  1    482
+   578    299    271  1    482
+   271    299    270  1    482
+   186    192    302  1    483
+   186    302    185  1    483
+   185    302    300  1    483
+   302    192    195  1    483
+   198    303    197  1    484
+   201    308    298  1    485
+   201    298    200  1    485
+   200    298    301  1    485
+   298    308    581  1    485
+   298    581    268  1    485
+   268    581    265  1    485
+   265    581    305  1    485
+   265    305    256  1    485
+   265    256    257  1    485
+   204    210    662  1    486
+   204    662    566  1    486
+   566    662    203  1    486
+   203    662    309  1    486
+   309    662    311  1    486
+   311    662    210  1    486
+   213    219    585  1    487
+   213    585    583  1    487
+   213    583    212  1    487
+   212    583    312  1    487
+   585    219    314  1    487
+   222    317    315  1    488
+   222    315    221  1    488
+   315    317    250  1    488
+   315    250    251  1    488
+   315    251    304  1    488
+   304    251    254  1    488
+   225    318    224  1    489
+   228    231    227  1    490
+   227    231    239  1    490
+   227    239    247  1    490
+   227    247    316  1    490
+   316    247    248  1    490
+   242    245    241  1    491
+   259    260    263  1    492
+   277    293    276  1    493
+   276    293    291  1    493
+   663    664    665  1    494
+   663    665    666  1    494
+   663    667    664  1    494
+   664    667    279  1    494
+   664    279    570  1    494
+   664    570    665  1    494
+   665    570    280  1    494
+   665    280    666  1    494
+   666    280    296  1    494
+   666    296    575  1    494
+   666    575    663  1    494
+   663    575    294  1    494
+   663    294    667  1    494
+   667    294    279  1    494
+   283    286    297  1    495
+   283    297    282  1    495
+   289    292    669  1    496
+   289    669    574  1    496
+   574    669    668  1    496
+   574    668    572  1    496
+   572    668    295  1    496
+   572    295    288  1    496
+   295    668    576  1    496
+   576    668    669  1    496
+   576    669    292  1    496
+   670    671    672  1    497
+   670    672    673  1    497
+   670    674    671  1    497
+   671    674    310  1    497
+   671    310    584  1    497
+   671    584    672  1    497
+   672    584    586  1    497
+   672    586    673  1    497
+   673    586    313  1    497
+   673    313    306  1    497
+   673    306    582  1    497
+   673    582    670  1    497
+   670    582    674  1    497
+   674    582    307  1    497
+   674    307    310  1    497
+   325    383    375  1    498
+   325    375    324  1    498
+   375    383    377  1    498
+   377    383    380  1    498
+   328    334    327  1    499
+   327    334    384  1    499
+   337    392    389  1    500
+   337    389    386  1    500
+   337    386    590  1    500
+   590    386    381  1    500
+   590    381    382  1    500
+   590    382    336  1    500
+   340    343    676  1    501
+   340    676    592  1    501
+   592    676    339  1    501
+   339    676    675  1    501
+   339    675    393  1    501
+   393    675    346  1    501
+   346    675    343  1    501
+   343    675    676  1    501
+   349    390    391  1    502
+   349    391    348  1    502
+   352    358    594  1    503
+   594    358    595  1    503
+   594    595    351  1    503
+   351    595    395  1    503
+   351    395    388  1    503
+   388    395    387  1    503
+   361    401    360  1    504
+   360    401    596  1    504
+   596    401    597  1    504
+   596    597    396  1    504
+   396    597    398  1    504
+   364    413    677  1    505
+   364    677    363  1    505
+   363    677    402  1    505
+   402    677    404  1    505
+   404    677    407  1    505
+   407    677    410  1    505
+   410    677    413  1    505
+   367    419    414  1    506
+   367    414    366  1    506
+   414    419    416  1    506
+   370    428    678  1    507
+   370    678    679  1    507
+   370    679    681  1    507
+   370    681    369  1    507
+   369    681    680  1    507
+   369    680    420  1    507
+   420    680    601  1    507
+   601    680    679  1    507
+   601    679    678  1    507
+   601    678    422  1    507
+   422    678    425  1    507
+   425    678    428  1    507
+   679    680    681  1    507
+   373    376    682  1    508
+   373    682    372  1    508
+   372    682    429  1    508
+   429    682    431  1    508
+   431    682    434  1    508
+   434    682    437  1    508
+   437    682    376  1    508
+   379    385    397  1    509
+   379    397    440  1    509
+   379    440    438  1    509
+   379    438    378  1    509
+   397    385    394  1    509
+   400    403    449  1    510
+   400    449    607  1    510
+   400    607    598  1    510
+   598    607    605  1    510
+   598    605    399  1    510
+   399    605    446  1    510
+   399    446    441  1    510
+   441    446    443  1    510
+   406    452    450  1    511
+   406    450    405  1    511
+   409    470    684  1    512
+   409    684    408  1    512
+   408    684    453  1    512
+   453    684    683  1    512
+   453    683    455  1    512
+   455    683    609  1    512
+   455    609    461  1    512
+   455    461    458  1    512
+   609    683    464  1    512
+   464    683    611  1    512
+   611    683    684  1    512
+   611    684    467  1    512
+   467    684    470  1    512
+   412    415    471  1    513
+   412    471    411  1    513
+   471    415    473  1    513
+   602    421    613  1    514
+   602    613    685  1    514
+   602    685    686  1    514
+   602    686    418  1    514
+   418    686    417  1    514
+   417    686    474  1    514
+   474    686    476  1    514
+   476    686    685  1    514
+   476    685    479  1    514
+   479    685    613  1    514
+   613    421    482  1    514
+   424    491    488  1    515
+   424    488    485  1    515
+   424    485    483  1    515
+   424    483    423  1    515
+   427    430    426  1    516
+   426    430    492  1    516
+   433    497    489  1    517
+   433    489    490  1    517
+   433    490    432  1    517
+   489    497    494  1    517
+   436    439    442  1    518
+   436    442    435  1    518
+   435    442    500  1    518
+   435    500    498  1    518
+   445    503    444  1    519
+   444    503    501  1    519
+   687    688    689  1    520
+   689    688    690  1    520
+   689    690    608  1    520
+   689    608    451  1    520
+   689    451    454  1    520
+   689    454    687  1    520
+   687    454    615  1    520
+   687    615    504  1    520
+   687    504    688  1    520
+   688    504    447  1    520
+   688    447    690  1    520
+   690    447    606  1    520
+   690    606    608  1    520
+   451    608    448  1    520
+   457    506    502  1    521
+   457    502    616  1    521
+   457    616    456  1    521
+   502    506    495  1    521
+   502    495    499  1    521
+   499    495    496  1    521
+   460    512    509  1    522
+   460    509    507  1    522
+   460    507    459  1    522
+   463    515    610  1    523
+   610    515    513  1    523
+   610    513    462  1    523
+   466    521    612  1    524
+   612    521    691  1    524
+   612    691    465  1    524
+   465    691    516  1    524
+   516    691    518  1    524
+   518    691    521  1    524
+   469    472    468  1    525
+   468    472    522  1    525
+   522    472    475  1    525
+   478    524    692  1    526
+   478    692    477  1    526
+   477    692    520  1    526
+   520    692    519  1    526
+   519    692    524  1    526
+   635    531    693  1    527
+   635    693    614  1    527
+   635    614    694  1    527
+   635    694    637  1    527
+   637    694    639  1    527
+   639    694    484  1    527
+   639    484    527  1    527
+   639    527    641  1    527
+   641    527    643  1    527
+   643    527    525  1    527
+   643    525    531  1    527
+   531    525    693  1    527
+   693    525    480  1    527
+   693    480    614  1    527
+   484    694    481  1    527
+   481    694    614  1    527
+   487    493    486  1    528
+   486    493    528  1    528
+   528    493    508  1    528
+   508    493    505  1    528
+   511    514    523  1    529
+   511    523    526  1    529
+   511    526    510  1    529
+   523    514    517  1    529
+   695    696    697  1    530
+   695    697    698  1    530
+   695    698    699  1    530
+   695    699    700  1    530
+   695    700    696  1    530
+   697    696    702  1    530
+   697    702    703  1    530
+   698    697    703  1    530
+   698    703    704  1    530
+   696    700    705  1    530
+   696    705    701  1    530
+   696    701    702  1    530
+   702    701    706  1    530
+   702    706    707  1    530
+   703    702    707  1    530
+   701    705    706  1    530
+   706    705    640  1    530
+   706    640    707  1    530
+   707    640    642  1    530
+   707    642    704  1    530
+   707    704    703  1    530
+   704    642    644  1    530
+   704    644    532  1    530
+   704    532    698  1    530
+   698    532    699  1    530
+   699    532    636  1    530
+   699    636    700  1    530
+   700    636    638  1    530
+   700    638    705  1    530
+   705    638    640  1    530
diff --git a/examples/misc/fragment.vert b/examples/misc/fragment.vert
new file mode 100644
index 000000000..a163db55b
--- /dev/null
+++ b/examples/misc/fragment.vert
@@ -0,0 +1,710 @@
+# MSMS solvent excluded surface vertices for t.xyz
+#vertex #sphere density probe_r
+    707      81  0.50  1.50
+   12.280    32.730    62.515     0.074     0.856    -0.511       0      44  1 
+   13.658    34.798    61.934    -0.844    -0.522    -0.123       0      31  1 
+   12.851    32.671    62.233    -0.306     0.896    -0.323       0      43  1 
+   13.577    34.987    62.380    -0.901    -0.387     0.195       0      31  1 
+   12.185    32.954    63.043     0.027     0.969    -0.247       0      44  1 
+   13.199    33.580    63.457    -0.649     0.552    -0.523       0      41  1 
+   13.623    31.298    65.863    -0.438    -0.589     0.680       0      41  1 
+   12.609    30.673    65.449     0.238    -0.172     0.956       0      44  1 
+   13.667    30.712    65.590    -0.467    -0.198     0.862       0      42  1 
+   13.870    29.338    64.445    -0.366    -0.885     0.289       0      42  1 
+   12.811    29.299    64.304     0.340    -0.859     0.383       0      44  1 
+   13.382    29.240    64.022    -0.041    -0.820     0.571       0      43  1 
+   15.011    29.290    63.139     0.205    -0.909    -0.363       0      42  1 
+   14.524    29.192    62.716     0.530    -0.844    -0.081       0      43  1 
+   16.666    28.583    62.519    -0.898    -0.438     0.050       0      27  1 
+   16.786    29.392    61.329    -0.837    -0.034    -0.546       0      27  1 
+   14.644    30.001    61.526     0.591    -0.440    -0.677       0      43  1 
+   16.627    30.181    59.926    -0.731    -0.560     0.389       0      12  1 
+   16.456    31.590    59.755    -0.854     0.447     0.267       0      12  1 
+   14.441    31.669    61.323     0.489     0.394    -0.778       0      43  1 
+   16.527    32.321    60.802    -0.902    -0.041    -0.431       0      21  1 
+   16.481    32.560    60.918    -0.924     0.079    -0.373       0      21  1 
+   14.395    31.908    61.439     0.466     0.514    -0.720       0      43  1 
+   16.230    33.586    60.729    -0.757    -0.605    -0.247       0      28  1 
+   16.056    33.813    60.812    -0.860    -0.471    -0.198       0      28  1 
+   14.208    32.152    61.528     0.372     0.636    -0.676       0      43  1 
+   14.804    34.360    61.338    -0.025    -0.835    -0.549       0      31  1 
+   16.045    34.218    60.396    -0.866    -0.233    -0.443       0      28  1 
+   14.794    34.727    60.960    -0.032    -0.573    -0.819       0      31  1 
+   15.633    35.069    59.880    -0.591    -0.801    -0.099       0      32  1 
+   14.919    37.225    60.399    -0.948     0.277     0.160       0      32  1 
+   14.191    36.548    61.398    -0.463     0.728    -0.506       0      31  1 
+   14.855    38.279    60.638    -0.905    -0.426     0.000       0      34  1 
+   14.831    38.412    60.920    -0.922    -0.332     0.201       0      34  1 
+   14.167    36.681    61.680    -0.480     0.823    -0.305       0      31  1 
+   14.582    37.081    61.741    -0.756     0.556    -0.346       0      30  1 
+   14.528    36.536    63.331    -0.787     0.243     0.568       0      30  1 
+   14.119    36.191    63.109    -0.514     0.473     0.716       0      31  1 
+   14.409    36.061    64.831    -0.707     0.559    -0.432       0      36  1 
+   14.104    35.317    64.809    -0.887     0.122    -0.445       0      36  1 
+   13.841    35.515    63.089    -0.713    -0.010     0.702       0      31  1 
+   13.512    34.204    64.297    -0.493     0.864    -0.104       0      41  1 
+   13.949    35.213    65.228    -0.978     0.061    -0.198       0      36  1 
+   13.346    34.092    64.748    -0.576     0.808     0.122       0      41  1 
+   13.713    34.719    65.557    -0.821     0.390    -0.417       0      37  1 
+   13.830    32.793    66.996    -0.762    -0.572     0.302       0      37  1 
+   13.463    32.166    66.187    -0.518    -0.155     0.842       0      41  1 
+   13.913    32.247    66.644    -0.818    -0.209     0.537       0      40  1 
+   14.303    31.350    66.420    -0.623    -0.657     0.424       0      40  1 
+   13.853    31.269    65.963    -0.323    -0.603     0.729       0      41  1 
+   13.897    30.683    65.689    -0.352    -0.212     0.912       0      42  1 
+   16.476    30.894    65.629     0.464    -0.885     0.029       0      40  1 
+   16.071    30.227    64.898     0.735    -0.440     0.516       0      42  1 
+   17.725    29.520    64.279    -0.368     0.031     0.929       0      27  1 
+   16.858    31.161    65.711     0.655    -0.752     0.070       0      40  1 
+   18.107    29.787    64.361    -0.177     0.164     0.970       0      27  1 
+   19.017    29.974    64.887    -0.784     0.039     0.620       0      26  1 
+   20.932    28.866    61.970     0.174    -0.516    -0.839       0      26  1 
+   20.022    28.678    61.444     0.781    -0.390    -0.488       0      27  1 
+   20.499    29.133    61.540     0.462    -0.694    -0.552       0      25  1 
+   20.411    29.276    61.325     0.412    -0.611    -0.676       0      25  1 
+   19.928    28.830    61.215     0.734    -0.314    -0.602       0      27  1 
+   20.710    29.354    59.236     0.213    -0.663     0.717       0      13  1 
+   19.152    29.233    58.589    -0.566    -0.724     0.394       0      13  1 
+   18.371    28.709    60.568    -0.045    -0.375    -0.926       0      27  1 
+   17.966    29.604    59.284     0.225    -0.972    -0.070       0      12  1 
+   18.468    30.001    57.311    -0.908    -0.340    -0.245       0      13  1 
+   17.388    30.253    58.205    -0.188    -0.509    -0.840       0      12  1 
+   18.088    30.524    57.411    -0.654    -0.689    -0.311       0      10  1 
+   17.444    32.267    57.791    -0.976     0.182    -0.121       0      10  1 
+   16.845    31.726    58.526    -0.576     0.543    -0.611       0      12  1 
+   17.197    32.170    58.405    -0.811     0.247    -0.530       0      11  1 
+   17.022    32.440    59.191    -0.912     0.403    -0.079       0      11  1 
+   16.687    31.969    59.233    -0.689     0.717    -0.106       0      12  1 
+   16.527    33.781    60.046    -0.582    -0.490    -0.649       0      28  1 
+   16.362    33.572    60.464    -0.680    -0.613    -0.403       0      28  1 
+   16.536    31.780    59.612    -0.796     0.582     0.165       0      12  1 
+   16.623    32.546    60.632    -0.854     0.072    -0.516       0      21  1 
+   17.174    32.650    58.952    -0.824     0.523    -0.216       0      11  1 
+   16.678    33.987    59.810    -0.494    -0.369    -0.788       0      28  1 
+   17.235    33.963    58.094    -0.865    -0.352     0.356       0       4  1 
+   17.191    34.068    58.078    -0.897    -0.277     0.345       0       4  1 
+   16.629    34.103    59.792    -0.522    -0.300    -0.798       0      28  1 
+   16.261    34.946    59.231    -0.277    -0.862    -0.424       0      32  1 
+   17.494    35.365    57.120    -0.681     0.649    -0.339       0       4  1 
+   16.619    36.481    58.098    -0.097    -0.095    -0.991       0      32  1 
+   17.894    36.529    57.052    -0.947    -0.127    -0.294       0       5  1 
+   18.000    37.579    57.230    -0.894     0.398    -0.205       0       5  1 
+   16.725    37.531    58.275    -0.044     0.430    -0.902       0      32  1 
+   16.827    38.171    58.413    -0.112     0.003    -0.994       0      33  1 
+   15.550    38.315    59.227    -0.846     0.086    -0.526       0      33  1 
+   15.367    37.684    59.142    -0.724     0.507    -0.469       0      32  1 
+   15.233    38.667    59.576    -0.635    -0.149    -0.758       0      34  1 
+   17.038    39.856    59.727     0.009     0.971    -0.238       0      33  1 
+   16.570    40.052    60.026     0.321     0.840    -0.437       0      34  1 
+   17.594    39.924    59.540    -0.362     0.925    -0.114       0      35  1 
+   17.999    39.824    60.421    -0.072     0.854     0.516       0      35  1 
+   16.976    39.952    60.907     0.610     0.768     0.192       0      34  1 
+   17.489    39.744    60.707     0.268     0.907     0.325       0      33  1 
+   17.186    38.578    61.825     0.094     0.237     0.967       0      33  1 
+   16.703    38.904    61.911     0.416     0.020     0.909       0      34  1 
+   17.229    37.668    62.476     0.065     0.844     0.533       0      29  1 
+   17.163    37.653    62.505     0.032     0.837     0.547       0      29  1 
+   16.647    38.891    61.935     0.376     0.011     0.927       0      34  1 
+   16.603    37.614    62.870     0.406     0.862     0.303       0      30  1 
+   17.620    36.569    63.250     0.260     0.294     0.920       0      29  1 
+   17.032    36.595    63.571     0.652     0.277     0.706       0      30  1 
+   16.886    36.120    65.068     0.750     0.594    -0.292       0      36  1 
+   17.770    36.352    63.258     0.335     0.186     0.924       0      29  1 
+   17.025    35.918    65.075     0.831     0.475    -0.288       0      36  1 
+   18.056    35.317    63.953     0.145     0.876     0.461       0      23  1 
+   18.276    34.929    64.347     0.302     0.598     0.742       0      23  1 
+   17.268    35.490    65.509     0.974     0.224    -0.033       0      36  1 
+   18.023    35.102    66.568     0.471     0.482    -0.739       0      39  1 
+   16.872    35.727    67.767    -0.351     0.929     0.118       0      39  1 
+   16.001    36.178    66.829     0.229     0.628     0.743       0      36  1 
+   16.300    35.629    67.792     0.030     0.994     0.102       0      38  1 
+   15.918    35.586    67.885    -0.190     0.970     0.155       0      38  1 
+   15.623    36.135    66.921     0.007     0.603     0.798       0      36  1 
+   15.475    36.199    69.349     0.106     0.561    -0.821       0      51  1 
+   15.073    36.164    69.323    -0.095     0.543    -0.834       0      51  1 
+   15.250    36.103    66.897    -0.213     0.584     0.783       0      36  1 
+   15.112    35.676    67.351    -0.121     0.869     0.480       0      37  1 
+   13.820    34.657    69.671    -0.721    -0.210    -0.660       0      51  1 
+   13.859    34.169    67.700    -0.747     0.116     0.654       0      37  1 
+   14.150    33.835    68.676    -0.941     0.338     0.003       0      45  1 
+   14.321    32.449    68.234    -0.840    -0.477    -0.256       0      45  1 
+   14.043    32.678    67.225    -0.655    -0.630     0.417       0      37  1 
+   14.127    32.133    66.873    -0.711    -0.266     0.651       0      40  1 
+   14.895    31.835    68.315    -0.503    -0.839    -0.209       0      45  1 
+   14.744    31.472    66.960    -0.402    -0.597     0.695       0      40  1 
+   15.193    30.679    69.066    -0.702    -0.068    -0.709       0      48  1 
+   16.615    30.450    68.770     0.314    -0.232    -0.920       0      48  1 
+   16.427    31.200    66.610     0.440    -0.733     0.520       0      40  1 
+   17.021    30.854    68.685     0.044    -0.502    -0.864       0      47  1 
+   17.068    30.876    68.676     0.070    -0.489    -0.869       0      47  1 
+   16.477    31.223    66.600     0.464    -0.721     0.515       0      40  1 
+   18.270    30.027    68.389    -0.731     0.077    -0.678       0      56  1 
+   17.112    31.621    67.132     0.754    -0.654     0.062       0      40  1 
+   18.168    30.918    68.184    -0.272     0.030    -0.962       0      56  1 
+   19.086    30.949    68.187    -0.323     0.537    -0.779       0      56  1 
+   17.293    32.145    66.398     0.873    -0.260     0.413       0      40  1 
+   17.512    32.747    67.294     0.727    -0.662    -0.184       0      38  1 
+   17.593    32.883    67.185     0.773    -0.584    -0.247       0      38  1 
+   17.380    32.289    66.281     0.916    -0.188     0.355       0      40  1 
+   18.034    33.259    67.221     0.479    -0.834    -0.272       0      39  1 
+   18.155    33.522    66.885     0.566    -0.646    -0.512       0      39  1 
+   17.523    32.601    65.882     0.987    -0.032     0.156       0      40  1 
+   19.117    32.227    64.656    -0.076     0.217     0.973       0      24  1 
+   19.007    31.655    64.688    -0.131    -0.069     0.989       0      24  1 
+   17.413    32.028    65.914     0.932    -0.318     0.172       0      40  1 
+   19.571    30.842    65.090    -0.507     0.473     0.721       0      26  1 
+   21.044    31.640    61.801     0.888    -0.076    -0.454       0      24  1 
+   21.608    30.828    62.203     0.512     0.465    -0.722       0      26  1 
+   21.134    30.977    61.759     0.827     0.366    -0.426       0      25  1 
+   21.077    30.112    61.469     0.795    -0.131    -0.593       0      25  1 
+   21.547    29.907    61.895     0.481     0.005    -0.877       0      26  1 
+   21.418    30.243    59.389     0.567    -0.219     0.794       0      13  1 
+   21.331    29.994    59.360     0.524    -0.344     0.779       0      13  1 
+   21.460    29.658    61.866     0.438    -0.120    -0.891       0      26  1 
+   20.996    29.877    61.442     0.748    -0.266    -0.609       0      25  1 
+   20.988    30.968    61.520     0.743     0.361    -0.564       0      25  1 
+   21.323    31.154    59.443     0.519     0.237     0.821       0      13  1 
+   20.888    31.631    61.547     0.809    -0.081    -0.582       0      24  1 
+   20.879    31.717    61.526     0.805    -0.038    -0.592       0      24  1 
+   21.314    31.240    59.422     0.515     0.280     0.810       0      13  1 
+   20.641    32.041    60.510     0.963    -0.254     0.085       0      20  1 
+   20.695    32.310    60.349     0.995    -0.096    -0.010       0      20  1 
+   21.372    31.529    59.249     0.544     0.424     0.724       0      13  1 
+   21.257    32.609    59.246     0.621    -0.296     0.726       0       9  1 
+   21.860    32.739    57.976     0.975    -0.219    -0.021       0       9  1 
+   22.021    31.669    57.883     0.868     0.494     0.041       0      13  1 
+   23.139    31.073    57.292     0.123     0.892     0.436       0      16  1 
+   22.596    28.909    58.086    -0.197    -0.381     0.903       0      16  1 
+   21.436    29.342    58.738     0.576    -0.670     0.469       0      13  1 
+   21.982    28.742    58.032     0.212    -0.270     0.939       0      15  1 
+   19.790    28.450    56.587    -0.883    -0.416     0.216       0      15  1 
+   19.245    29.050    57.293    -0.520    -0.816    -0.254       0      13  1 
+   19.408    28.967    56.668    -0.628    -0.761     0.163       0      14  1 
+   18.715    30.043    56.344    -0.975    -0.222     0.001       0      14  1 
+   18.552    30.126    56.969    -0.866    -0.277    -0.416       0      13  1 
+   18.171    30.650    57.069    -0.612    -0.627    -0.482       0      10  1 
+   19.758    32.037    55.459    -0.453     0.774    -0.441       0      14  1 
+   19.214    32.643    56.184    -0.091     0.370    -0.925       0      10  1 
+   19.345    33.708    56.182    -0.178    -0.340    -0.923       0       3  1 
+   19.026    33.751    56.262    -0.361    -0.316    -0.878       0       3  1 
+   18.875    32.688    56.269    -0.260     0.393    -0.882       0      10  1 
+   18.465    33.887    56.316     0.013    -0.407    -0.914       0       4  1 
+   17.286    33.675    57.638    -0.829    -0.558     0.031       0       4  1 
+   17.479    32.438    57.834    -0.958     0.267    -0.100       0      10  1 
+   17.230    32.330    58.445    -0.792     0.339    -0.507       0      11  1 
+   19.165    34.710    56.170    -0.281     0.236    -0.930       0       3  1 
+   18.590    34.750    56.234     0.102     0.210    -0.972       0       4  1 
+   19.191    35.801    56.002    -0.299    -0.491    -0.818       0       5  1 
+   19.319    34.700    56.129    -0.193     0.230    -0.954       0       3  1 
+   19.355    35.789    55.958    -0.217    -0.497    -0.840       0       5  1 
+   19.703    35.237    56.024    -0.449    -0.129    -0.884       0       2  1 
+   19.807    35.295    55.968    -0.397    -0.099    -0.912       0       2  1 
+   19.459    35.848    55.902    -0.165    -0.468    -0.868       0       5  1 
+   20.335    35.258    55.587    -0.749    -0.074    -0.658       0       1  1 
+   21.040    36.303    55.393    -0.335     0.541    -0.772       0       1  1 
+   20.216    36.972    55.694     0.214     0.095    -0.972       0       5  1 
+   20.576    37.518    55.680    -0.026    -0.269    -0.963       0       6  1 
+   18.787    38.739    57.233    -0.921     0.342    -0.186       0       6  1 
+   18.427    38.194    57.247    -0.681     0.706    -0.196       0       5  1 
+   17.765    38.930    58.373    -0.239     0.215    -0.947       0      35  1 
+   17.617    38.773    58.393    -0.345     0.103    -0.933       0      35  1 
+   18.252    38.008    57.270    -0.769     0.613    -0.184       0       5  1 
+   17.064    38.575    58.451     0.023     0.235    -0.972       0      33  1 
+   20.105    39.737    58.552    -0.262     0.841     0.473       0       6  1 
+   18.879    39.773    59.488     0.556     0.817    -0.151       0      35  1 
+   20.588    39.784    59.181    -0.583     0.810     0.054       0       7  1 
+   20.696    38.154    60.608    -0.523    -0.095     0.847       0       7  1 
+   18.974    38.331    60.751     0.624    -0.213     0.751       0      35  1 
+   18.706    37.141    61.678     0.803     0.580     0.134       0      29  1 
+   18.460    37.367    61.885     0.680     0.694     0.237       0      29  1 
+   18.766    38.522    60.926     0.476    -0.076     0.876       0      35  1 
+   18.343    38.296    61.269     0.758     0.074     0.647       0      33  1 
+   21.069    37.090    60.264    -0.316    -0.686     0.655       0       7  1 
+   19.096    36.027    61.317     0.999     0.023    -0.047       0      29  1 
+   20.597    35.818    59.767    -0.002     0.162     0.987       0       2  1 
+   20.584    35.530    59.793    -0.008     0.018     1.000       0       2  1 
+   19.083    35.739    61.343     0.992    -0.121    -0.034       0      29  1 
+   19.140    35.115    61.225     0.954     0.295     0.045       0      28  1 
+   19.136    35.090    61.353     0.953     0.280     0.120       0      28  1 
+   19.080    35.711    61.480     0.990    -0.134     0.035       0      29  1 
+   19.324    34.712    61.803     0.828     0.532    -0.180       0      22  1 
+   19.092    34.909    62.674     0.694     0.645     0.320       0      22  1 
+   18.833    35.921    62.407     0.867    -0.030     0.498       0      29  1 
+   18.954    34.953    63.233     0.786     0.616    -0.053       0      23  1 
+   19.355    34.409    62.808     0.845     0.357     0.397       0      22  1 
+   19.190    34.503    63.354     0.955     0.295     0.033       0      23  1 
+   20.043    33.594    63.106     0.387     0.901     0.198       0      24  1 
+   19.342    32.819    64.425     0.036     0.513     0.858       0      24  1 
+   18.598    33.849    64.468     0.532    -0.173     0.829       0      23  1 
+   18.344    34.022    66.689     0.701    -0.289    -0.652       0      39  1 
+   17.948    33.619    66.101     0.908    -0.397    -0.136       0      39  1 
+   18.472    32.894    64.756     0.528     0.128     0.840       0      24  1 
+   19.542    34.275    61.920     0.953     0.281    -0.113       0      22  1 
+   20.242    33.452    62.161     0.487     0.829    -0.274       0      24  1 
+   19.840    33.713    61.713     0.755     0.655     0.024       0      21  1 
+   19.893    33.650    61.628     0.781     0.624    -0.018       0      21  1 
+   20.295    33.389    62.077     0.513     0.798    -0.317       0      24  1 
+   20.098    33.595    61.022     0.644     0.660     0.386       0      20  1 
+   19.812    33.743    61.591     0.741     0.671    -0.036       0      21  1 
+   20.023    33.682    60.988     0.600     0.711     0.366       0      20  1 
+   19.516    34.304    61.806     0.938     0.297    -0.179       0      22  1 
+   19.431    34.435    61.653     0.889     0.372    -0.267       0      22  1 
+   19.939    33.812    60.837     0.550     0.788     0.277       0      20  1 
+   20.694    35.208    59.770     0.047    -0.143     0.989       0       2  1 
+   21.321    34.576    59.417     0.360    -0.459     0.812       0       2  1 
+   20.521    33.224    60.509     0.893     0.442     0.084       0      20  1 
+   21.083    33.524    59.405     0.518     0.242     0.820       0       9  1 
+   22.161    34.328    58.247     0.780    -0.583     0.227       0       2  1 
+   21.864    33.293    58.318     0.978     0.107     0.180       0       9  1 
+   22.524    34.358    57.706     0.538    -0.603     0.589       0       1  1 
+   22.486    33.949    56.954     0.516    -0.844     0.146       0       1  1 
+   21.827    32.884    57.566     0.956    -0.134    -0.262       0       9  1 
+   22.148    31.743    56.817     0.742     0.627     0.238       0      14  1 
+   22.150    31.738    56.825     0.742     0.625     0.241       0      14  1 
+   21.828    32.880    57.573     0.957    -0.136    -0.257       0       9  1 
+   23.107    31.214    56.889     0.104     0.975     0.199       0      16  1 
+   22.154    31.743    56.797     0.745     0.627     0.228       0      14  1 
+   23.112    31.218    56.863     0.106     0.977     0.184       0      16  1 
+   22.492    33.950    56.935     0.519    -0.844     0.135       0       1  1 
+   22.485    31.525    56.603     0.572     0.813     0.108       0      16  1 
+   22.055    33.416    56.653     0.868    -0.491     0.073       0       1  1 
+   22.538    33.971    56.532     0.546    -0.831    -0.102       0       1  1 
+   23.158    31.239    56.460     0.133     0.990    -0.054       0      16  1 
+   22.204    31.766    56.363     0.769     0.639     0.011       0      14  1 
+   22.080    31.184    55.112     0.707     0.348    -0.615       0      14  1 
+   23.043    30.698    55.296     0.066     0.671    -0.738       0      16  1 
+   22.462    30.666    55.031     0.453     0.693    -0.561       0      15  1 
+   22.814    29.515    54.616     0.628     0.117    -0.769       0      15  1 
+   23.369    29.628    54.910     0.258     0.042    -0.965       0      16  1 
+   23.823    29.210    54.881    -0.045     0.320    -0.946       0      17  1 
+   24.305    29.719    55.213     0.232     0.613    -0.756       0      17  1 
+   23.846    30.131    55.238     0.538     0.338    -0.772       0      16  1 
+   24.871    29.884    55.359    -0.145     0.502    -0.852       0      19  1 
+   24.181    29.066    58.419    -0.528     0.048     0.848       0      19  1 
+   23.174    29.334    58.219     0.143    -0.131     0.981       0      16  1 
+   23.626    28.913    58.226    -0.158     0.150     0.976       0      17  1 
+   23.087    28.340    58.034    -0.468    -0.180     0.865       0      17  1 
+   22.641    28.767    58.028    -0.170    -0.464     0.869       0      16  1 
+   22.030    28.589    57.970     0.237    -0.346     0.908       0      15  1 
+   23.036    28.089    57.929    -0.497    -0.324     0.805       0      17  1 
+   21.977    28.322    57.858     0.210    -0.480     0.852       0      15  1 
+   22.904    27.518    57.770    -0.409     0.056     0.911       0      18  1 
+   23.640    28.380    54.610    -0.000     0.535    -0.845       0      18  1 
+   22.747    29.225    54.547     0.595    -0.028    -0.803       0      15  1 
+   23.760    28.938    54.817    -0.081     0.164    -0.983       0      17  1 
+   24.543    28.143    54.753     0.502     0.404    -0.765       0      18  1 
+   24.650    28.704    54.958     0.431     0.030    -0.902       0      17  1 
+   25.221    28.854    55.100     0.050    -0.070    -0.996       0      19  1 
+   23.837    27.275    57.914     0.109    -0.079     0.991       0      18  1 
+   24.515    27.985    58.260    -0.343    -0.553     0.760       0      19  1 
+   23.955    27.849    58.070     0.031    -0.462     0.886       0      17  1 
+   20.763    34.380    55.625    -0.498    -0.590    -0.635       0       1  1 
+   20.294    32.206    55.388    -0.185     0.859    -0.477       0      14  1 
+   19.849    33.867    56.115     0.112    -0.249    -0.962       0       3  1 
+   20.340    35.124    55.605    -0.747    -0.153    -0.647       0       1  1 
+   19.421    34.619    56.094    -0.134     0.183    -0.974       0       3  1 
+   19.812    35.151    55.988    -0.395    -0.171    -0.903       0       2  1 
+   22.369    34.779    58.395     0.884    -0.358     0.301       0       2  1 
+   22.717    34.777    57.842     0.652    -0.357     0.669       0       1  1 
+   23.497    35.723    58.710     0.132    -0.987     0.091       0       8  1 
+   23.092    37.723    56.534    -0.070     0.013    -0.997       0       8  1 
+   22.341    36.637    55.819     0.430     0.737    -0.521       0       1  1 
+   21.976    37.877    56.139     0.674    -0.089    -0.734       0       6  1 
+   22.885    39.535    57.821    -0.174     0.919    -0.354       0       8  1 
+   21.769    39.688    57.425     0.570     0.817    -0.090       0       6  1 
+   22.176    39.737    58.105     0.299     0.784    -0.544       0       7  1 
+   22.456    36.547    59.969    -0.389    -0.575     0.720       0       8  1 
+   21.766    36.884    60.155     0.071    -0.800     0.595       0       7  1 
+   21.328    35.602    59.653     0.363     0.054     0.930       0       2  1 
+   19.369    34.576    61.670     0.853     0.454    -0.257       0      22  1 
+   20.628    35.358    59.788     0.014    -0.068     0.998       0       2  1 
+   19.181    34.956    61.221     0.979     0.201     0.042       0      28  1 
+   17.610    32.853    67.334     0.783    -0.601    -0.161       0      38  1 
+   18.049    33.231    67.356     0.490    -0.854    -0.176       0      39  1 
+   19.190    31.061    68.229    -0.271     0.593    -0.758       0      56  1 
+   19.785    31.672    68.871     0.026     0.899    -0.437       0      56  1 
+   18.551    33.748    67.898     0.849    -0.485     0.211       0      39  1 
+   19.065    32.348    69.320     0.506     0.448    -0.737       0      52  1 
+   19.049    32.840    69.795     0.496     0.738    -0.457       0      52  1 
+   18.536    34.195    68.330     0.838    -0.165     0.520       0      39  1 
+   18.375    33.606    69.459     0.946     0.227    -0.233       0      46  1 
+   17.564    34.832    69.825     0.540     0.840    -0.050       0      46  1 
+   17.851    35.231    68.639     0.349     0.574     0.741       0      39  1 
+   17.041    35.657    70.282     0.889     0.290    -0.355       0      51  1 
+   15.901    36.208    69.470     0.319     0.566    -0.760       0      51  1 
+   16.888    35.696    67.953    -0.339     0.907     0.251       0      39  1 
+   16.319    35.595    67.999     0.041     0.975     0.220       0      38  1 
+   17.738    34.311    70.966     0.627     0.579     0.521       0      46  1 
+   17.215    35.136    71.423     0.976     0.029     0.216       0      51  1 
+   17.367    34.505    71.476     0.875     0.450     0.181       0      49  1 
+   14.375    33.882    72.656    -0.621     0.139     0.771       0      49  1 
+   14.223    34.513    72.604    -0.520    -0.282     0.806       0      51  1 
+   13.910    33.484    72.523    -0.312     0.404     0.860       0      50  1 
+   13.504    33.462    69.985    -0.565     0.390    -0.727       0      50  1 
+   13.773    34.489    69.793    -0.745    -0.294    -0.599       0      51  1 
+   14.106    33.679    68.789    -0.967     0.246     0.070       0      45  1 
+   13.964    31.862    69.959    -0.278    -0.610    -0.742       0      50  1 
+   14.579    32.032    68.763    -0.689    -0.723     0.055       0      45  1 
+   14.906    30.858    69.473    -0.906     0.059    -0.418       0      48  1 
+   15.019    31.664    72.048     0.381    -0.733     0.563       0      50  1 
+   15.893    30.673    71.427    -0.201    -0.073     0.977       0      48  1 
+   16.218    31.103    71.640    -0.418    -0.359     0.835       0      47  1 
+   16.397    30.957    71.649    -0.315    -0.443     0.839       0      47  1 
+   16.054    30.542    71.434    -0.086    -0.166     0.982       0      48  1 
+   17.139    30.285    72.027    -0.810     0.005     0.587       0      53  1 
+   17.632    29.107    69.684    -0.563    -0.583    -0.585       0      53  1 
+   16.470    29.547    69.455     0.211    -0.877    -0.432       0      48  1 
+   18.049    28.936    69.209    -0.841    -0.469    -0.268       0      56  1 
+   18.244    29.983    68.413    -0.744     0.054    -0.666       0      56  1 
+   16.635    30.432    68.782     0.329    -0.245    -0.912       0      48  1 
+   17.043    30.834    68.698     0.057    -0.514    -0.856       0      47  1 
+   18.650    28.277    70.877    -0.054    -0.998     0.011       0      53  1 
+   19.067    28.106    70.401    -0.332    -0.884     0.328       0      56  1 
+   18.847    27.889    71.864    -0.186    -0.740    -0.647       0      57  1 
+   19.128    27.822    71.899    -0.021    -0.779    -0.627       0      57  1 
+   19.369    28.033    70.439    -0.181    -0.920     0.347       0      56  1 
+   19.766    26.684    72.301    -0.446    -0.021    -0.895       0      60  1 
+   20.372    26.636    72.156    -0.013    -0.055    -0.998       0      60  1 
+   20.086    27.976    70.267     0.177    -0.949     0.261       0      56  1 
+   21.670    27.097    71.125    -0.879    -0.363    -0.311       0      70  1 
+   22.461    27.456    70.035    -0.483    -0.183    -0.856       0      70  1 
+   20.877    28.336    69.177     0.573    -0.769    -0.284       0      56  1 
+   22.860    27.705    69.594    -0.750    -0.348    -0.563       0      72  1 
+   23.367    30.133    70.855    -0.496     0.865     0.068       0      72  1 
+   21.384    30.764    70.438     0.826     0.445     0.346       0      56  1 
+   21.392    31.252    71.796     0.820     0.120    -0.559       0      55  1 
+   20.646    32.009    71.608     0.287     0.661    -0.694       0      55  1 
+   20.500    31.660    70.215     0.384     0.893     0.235       0      56  1 
+   19.730    32.337    70.570     0.897     0.442    -0.002       0      52  1 
+   19.237    31.949    73.024    -0.719     0.618     0.318       0      55  1 
+   18.180    32.271    72.129    -0.015     0.403     0.915       0      52  1 
+   18.761    31.637    72.906    -0.402     0.825     0.397       0      54  1 
+   18.679    31.585    72.925    -0.449     0.795     0.408       0      54  1 
+   18.099    32.219    72.147    -0.063     0.372     0.926       0      52  1 
+   16.982    33.132    72.498     0.682    -0.237     0.692       0      49  1 
+   17.476    33.962    71.762     0.929     0.179     0.324       0      49  1 
+   18.558    32.991    71.463     0.208     0.826     0.523       0      52  1 
+   17.847    33.768    71.252     0.682     0.308     0.664       0      46  1 
+   17.965    30.771    72.899    -0.860     0.327     0.393       0      54  1 
+   16.223    32.265    72.470     0.302    -0.670     0.678       0      49  1 
+   17.569    30.838    72.359    -0.595     0.282     0.753       0      53  1 
+   17.356    30.648    72.230    -0.701     0.187     0.688       0      53  1 
+   16.010    32.075    72.341     0.196    -0.765     0.614       0      49  1 
+   16.601    31.298    71.839    -0.198    -0.247     0.949       0      47  1 
+   16.237    31.129    71.661    -0.407    -0.344     0.846       0      47  1 
+   15.623    31.895    72.152     0.003    -0.855     0.519       0      49  1 
+   15.038    31.689    72.067     0.393    -0.717     0.575       0      50  1 
+   17.922    30.617    72.913    -0.884     0.238     0.401       0      54  1 
+   17.523    30.674    72.374    -0.618     0.200     0.760       0      53  1 
+   17.799    30.117    73.256    -0.802     0.571     0.172       0      57  1 
+   18.133    30.756    73.194    -0.763     0.319     0.562       0      54  1 
+   18.008    30.256    73.534    -0.679     0.653     0.335       0      57  1 
+   17.736    30.050    74.575    -0.498     0.790    -0.358       0      61  1 
+   18.104    27.256    73.832    -0.315    -0.607    -0.729       0      61  1 
+   18.349    27.658    72.844    -0.479    -0.875    -0.071       0      57  1 
+   19.058    26.536    73.160    -0.951    -0.127    -0.281       0      60  1 
+   18.900    26.480    75.377     0.083    -0.996     0.043       0      61  1 
+   19.731    25.880    74.466    -0.471    -0.595     0.651       0      60  1 
+   19.597    26.180    76.148    -0.381    -0.796    -0.470       0      64  1 
+   19.874    26.053    76.189    -0.242    -0.859    -0.450       0      64  1 
+   19.965    25.772    74.500    -0.303    -0.672     0.676       0      60  1 
+   20.599    24.537    76.520    -0.726     0.151    -0.671       0      79  1 
+   21.566    24.149    75.924    -0.242    -0.043    -0.969       0      79  1 
+   20.783    25.444    73.996     0.280    -0.906     0.316       0      60  1 
+   22.006    25.341    74.307    -0.535    -0.838     0.109       0      66  1 
+   22.267    25.751    72.770    -0.405    -0.633    -0.660       0      66  1 
+   21.003    25.790    72.698     0.438    -0.659    -0.612       0      60  1 
+   22.417    26.096    71.766    -0.505    -0.863     0.009       0      70  1 
+   22.687    25.566    72.769    -0.195    -0.725    -0.660       0      66  1 
+   22.837    25.911    71.765    -0.295    -0.955     0.009       0      70  1 
+   23.577    25.281    72.234    -0.788    -0.535    -0.304       0      71  1 
+   24.588    25.605    71.074    -0.282    -0.373    -0.884       0      71  1 
+   23.849    26.235    70.605     0.211    -0.793    -0.571       0      70  1 
+   24.249    26.484    70.165    -0.056    -0.959    -0.277       0      72  1 
+   26.273    28.006    72.766     0.560     0.828    -0.038       0      71  1 
+   25.933    28.885    71.856     0.786     0.242     0.568       0      72  1 
+   25.832    28.482    72.858     0.854     0.511    -0.100       0      69  1 
+   24.158    29.460    73.083     0.017     1.000     0.013       0      69  1 
+   24.259    29.863    72.081    -0.051     0.731     0.681       0      72  1 
+   23.859    29.615    72.521     0.216     0.896     0.387       0      70  1 
+   23.255    29.788    72.071    -0.086     0.983     0.162       0      70  1 
+   23.655    30.037    71.631    -0.352     0.817     0.456       0      72  1 
+   21.635    31.170    72.451     0.994     0.062    -0.091       0      55  1 
+   23.208    29.595    72.646    -0.110     0.887     0.449       0      70  1 
+   21.595    31.007    72.937     0.965    -0.055     0.255       0      55  1 
+   22.581    29.571    73.769     0.309     0.903    -0.299       0      65  1 
+   22.252    29.721    74.388     0.116     0.991     0.065       0      65  1 
+   21.297    31.144    73.499     0.752     0.043     0.657       0      55  1 
+   21.294    30.229    74.389     0.755     0.653     0.064       0      58  1 
+   19.030    30.765    74.459    -0.377     0.921     0.099       0      58  1 
+   19.385    31.597    73.558    -0.614     0.366     0.700       0      55  1 
+   18.926    31.246    73.500    -0.308     0.600     0.738       0      54  1 
+   18.566    30.506    74.370    -0.609     0.791     0.055       0      58  1 
+   18.490    31.003    73.417    -0.558     0.460     0.691       0      54  1 
+   18.116    30.312    74.812    -0.309     0.921    -0.240       0      61  1 
+   19.725    30.464    75.535    -0.029     0.770     0.637       0      58  1 
+   19.275    30.270    75.976     0.271     0.900     0.343       0      61  1 
+   19.386    30.156    76.634     0.197     0.976    -0.096       0      62  1 
+   18.050    29.882    76.907    -0.571     0.819     0.061       0      62  1 
+   17.853    29.979    76.267    -0.440     0.754     0.488       0      61  1 
+   17.509    29.662    77.229    -0.210     0.965    -0.154       0      63  1 
+   18.467    26.162    76.419     0.269    -0.784    -0.559       0      63  1 
+   18.812    26.479    75.457     0.040    -0.996     0.083       0      61  1 
+   19.509    26.180    76.227    -0.425    -0.796    -0.431       0      64  1 
+   18.537    25.982    76.781     0.304    -0.874    -0.378       0      63  1 
+   19.579    26.000    76.589    -0.390    -0.886    -0.250       0      64  1 
+   20.303    24.484    76.921    -0.873     0.124    -0.471       0      79  1 
+   18.913    26.621    78.878     0.492    -0.555     0.671       0      63  1 
+   20.679    25.122    79.018    -0.685     0.444     0.577       0      79  1 
+   19.955    26.638    78.686    -0.202    -0.567     0.799       0      64  1 
+   21.662    27.428    78.567     0.651    -0.172     0.739       0      64  1 
+   22.386    25.912    78.899     0.168     0.839     0.518       0      79  1 
+   23.332    26.346    78.632    -0.462     0.550     0.696       0      74  1 
+   23.572    26.020    78.953    -0.342     0.387     0.856       0      74  1 
+   22.626    25.586    79.220     0.288     0.676     0.678       0      79  1 
+   23.270    25.504    79.235    -0.141     0.731     0.668       0      77  1 
+   22.876    22.313    78.641    -0.338    -0.865     0.371       0      77  1 
+   22.232    22.395    78.625     0.091    -0.920     0.381       0      79  1 
+   23.102    21.898    78.230    -0.488    -0.588     0.644       0      78  1 
+   23.036    22.945    75.846    -0.530     0.066    -0.846       0      78  1 
+   22.159    23.554    75.986     0.055    -0.340    -0.939       0      79  1 
+   22.901    24.226    75.223    -0.440    -0.788    -0.430       0      73  1 
+   22.384    24.757    75.159    -0.745    -0.476    -0.468       0      73  1 
+   21.602    24.125    75.917    -0.224    -0.055    -0.973       0      79  1 
+   22.042    25.317    74.300    -0.517    -0.849     0.105       0      66  1 
+   23.380    24.503    74.656    -0.159    -0.625    -0.764       0      73  1 
+   23.114    25.044    73.758     0.019    -0.986    -0.166       0      66  1 
+   24.004    24.759    73.223    -0.575    -0.796     0.191       0      71  1 
+   24.129    24.273    74.959     0.282    -0.760    -0.586       0      73  1 
+   24.809    24.512    73.550    -0.172    -0.919     0.354       0      71  1 
+   25.397    23.767    75.145    -0.564    -0.423    -0.710       0      76  1 
+   27.063    24.480    75.053     0.626     0.086    -0.775       0      76  1 
+   26.781    25.355    73.441     0.814    -0.498     0.300       0      71  1 
+   28.310    25.917    74.556    -0.206    -0.872    -0.444       0      80  1 
+   27.806    28.566    73.911    -0.457     0.452    -0.766       0      80  1 
+   26.277    28.004    72.797     0.562     0.827    -0.023       0      71  1 
+   25.836    28.480    72.889     0.856     0.510    -0.084       0      69  1 
+   27.184    28.890    75.084    -0.769     0.614    -0.180       0      80  1 
+   25.214    28.803    74.061     0.545     0.672     0.502       0      69  1 
+   25.203    28.707    75.403     0.552     0.736    -0.393       0      68  1 
+   24.277    28.986    75.481    -0.110     0.935    -0.337       0      68  1 
+   24.117    29.133    74.153    -0.004     0.837     0.548       0      69  1 
+   23.148    29.286    74.648     0.642     0.735     0.218       0      65  1 
+   22.755    29.530    73.867     0.411     0.879    -0.242       0      65  1 
+   23.694    29.396    73.312    -0.215     0.968     0.128       0      69  1 
+   23.395    29.552    72.751    -0.016     0.865     0.502       0      70  1 
+   23.709    28.839    76.253    -0.515     0.830     0.214       0      68  1 
+   22.524    29.124    75.498     0.275     0.640     0.718       0      65  1 
+   21.832    29.093    76.795     0.736     0.660    -0.147       0      64  1 
+   21.401    29.396    76.563     0.521     0.812    -0.263       0      64  1 
+   22.123    29.406    75.282     0.039     0.806     0.591       0      65  1 
+   21.154    29.890    75.351     0.685     0.483     0.545       0      58  1 
+   20.561    29.751    76.878     0.101     0.989    -0.105       0      64  1 
+   20.314    30.244    75.666     0.265     0.660     0.703       0      58  1 
+   19.940    29.949    76.757     0.515     0.857    -0.025       0      62  1 
+   19.876    29.116    78.490    -0.241     0.672     0.700       0      64  1 
+   19.297    29.352    78.272     0.145     0.514     0.845       0      62  1 
+   18.835    29.098    78.682     0.453     0.684     0.572       0      63  1 
+   23.962    28.014    77.229    -0.335     0.240     0.911       0      68  1 
+   22.131    28.116    77.950     0.886     0.172     0.430       0      64  1 
+   23.801    27.034    78.014    -0.227     0.894     0.387       0      74  1 
+   25.307    27.815    77.036     0.626     0.099     0.774       0      68  1 
+   25.393    26.799    77.787     0.569     0.776     0.273       0      74  1 
+   26.012    26.567    77.700     0.156     0.930     0.331       0      75  1 
+   25.788    25.000    78.862     0.027     0.030     0.999       0      75  1 
+   25.155    25.132    79.023     0.449    -0.058     0.892       0      74  1 
+   24.852    24.616    79.305     0.651     0.286     0.703       0      77  1 
+   26.112    23.535    78.068     0.214    -0.812     0.543       0      75  1 
+   25.198    23.057    78.462     0.823    -0.493     0.281       0      77  1 
+   25.199    22.570    78.068     0.822    -0.168     0.543       0      78  1 
+   26.320    23.327    77.373     0.334    -0.932     0.144       0      75  1 
+   25.399    22.369    77.400     0.948    -0.293     0.126       0      78  1 
+   26.492    23.186    76.838     0.219    -0.838     0.500       0      76  1 
+   25.375    23.728    75.188    -0.579    -0.451    -0.679       0      76  1 
+   24.204    22.948    75.635     0.201     0.068    -0.977       0      78  1 
+   24.104    24.229    75.006     0.267    -0.786    -0.558       0      73  1 
+   27.464    24.725    77.054     0.991    -0.128    -0.039       0      75  1 
+   27.521    24.443    76.552     0.953     0.060     0.296       0      76  1 
+   28.852    25.874    76.330     0.066    -0.894     0.444       0      80  1 
+   26.099    26.576    77.622     0.207     0.935     0.287       0      75  1 
+   27.400    27.843    76.934    -0.660     0.091     0.745       0      80  1 
+   25.386    27.823    76.966     0.682     0.104     0.724       0      68  1 
+   19.399    29.890    65.258    -0.593    -0.003     0.805       0      26  1 
+   19.033    29.881    67.871    -0.349     0.003    -0.937       0      56  1 
+   30.496    26.916    75.984     0.888    -0.373     0.270       0      80  1 
+   31.610    27.784    76.794     0.145    -0.952    -0.270       0      81  1 
+   13.489    33.538    62.654    -0.732     0.318    -0.603      -3      31  1 
+   13.473    33.577    62.747    -0.832     0.553    -0.049      -3      31  1 
+   11.754    32.408    64.923    -0.189     0.696     0.693      -5      44  1 
+   12.768    33.034    65.337    -0.865     0.279     0.417      -5      41  1 
+   12.122    29.105    62.950    -0.005    -0.956    -0.294      -8      44  1 
+   12.692    29.047    62.668    -0.385    -0.917    -0.106      -8      43  1 
+   11.672    30.062    61.841    -0.230    -0.478    -0.848      -8      44  1 
+   12.243    30.003    61.559    -0.610    -0.438    -0.660      -8      43  1 
+   11.739    31.581    61.659    -0.197     0.282    -0.939      -8      44  1 
+   12.309    31.523    61.377    -0.577     0.321    -0.751      -8      43  1 
+   15.731    30.770    60.921    -0.134    -0.952    -0.274     -14      12  1 
+   15.696    31.058    60.886    -0.348     0.801    -0.487     -14      12  1 
+   15.525    32.813    61.789    -0.287    -0.090    -0.954     -18      28  1 
+   15.487    32.862    61.807    -0.480     0.163    -0.862     -18      28  1 
+   18.622    28.262    64.014     0.080    -0.599     0.797     -44      27  1 
+   19.532    28.449    64.540    -0.526    -0.724     0.446     -44      26  1 
+   19.483    27.763    62.702     0.511    -0.848     0.141     -44      27  1 
+   20.393    27.951    63.228    -0.096    -0.973    -0.210     -44      26  1 
+   15.744    37.243    63.659    -0.088     0.649     0.756     -83      30  1 
+   15.612    36.760    65.155     0.000     0.970    -0.241     -83      36  1 
+   15.489    35.547    68.147     0.096     0.995    -0.020     -93      51  1 
+   15.325    35.533    68.137    -0.263     0.964    -0.043     -93      51  1 
+   18.173    31.320    64.834     0.425     0.154     0.892    -115      26  1 
+   18.034    31.102    64.783    -0.129    -0.713     0.689    -115      26  1 
+   20.844    31.552    64.740     0.130     0.828     0.546    -117      26  1 
+   20.280    32.365    64.338     0.506     0.286     0.814    -117      24  1 
+   21.708    31.546    63.515     0.562     0.825    -0.067    -117      26  1 
+   21.144    32.359    63.113     0.938     0.283     0.201    -117      24  1 
+   20.804    30.214    60.695     0.977    -0.199    -0.077    -121      13  1 
+   20.773    30.126    60.685     0.896    -0.432    -0.104    -121      13  1 
+   20.213    28.745    58.300    -0.035    -0.968     0.249    -135      13  1 
+   20.759    28.145    57.594    -0.399    -0.568     0.720    -135      15  1 
+   19.061    37.745    56.044    -0.364     0.481    -0.798    -157       5  1 
+   19.421    38.290    56.029    -0.604     0.117    -0.788    -157       6  1 
+   19.539    37.367    60.576     0.248     0.430     0.868    -171       7  1 
+   19.688    36.942    60.438     0.604    -0.587     0.539    -171       7  1 
+   23.765    30.930    57.106     0.491     0.808     0.327    -217      16  1 
+   24.788    30.705    57.277    -0.191     0.958     0.213    -217      19  1 
+   21.106    27.366    56.516    -0.225    -0.957     0.181    -224      15  1 
+   22.074    26.606    56.489    -0.870    -0.450     0.199    -224      18  1 
+   21.514    27.845    54.763    -0.021    -0.718    -0.696    -224      15  1 
+   22.463    27.063    54.815    -0.654    -0.197    -0.731    -224      18  1 
+   25.956    27.399    56.643     0.458    -0.878    -0.139    -230      19  1 
+   25.278    26.689    56.296     0.910    -0.405     0.092    -230      18  1 
+   21.194    29.848    54.271    -0.182     0.283    -0.942    -233      15  1 
+   20.812    30.365    54.351     0.073    -0.062    -0.995    -233      14  1 
+   20.007    28.862    54.962    -0.775    -0.209    -0.596    -233      15  1 
+   19.624    29.380    55.043    -0.520    -0.554    -0.650    -233      14  1 
+   23.290    35.462    56.464     0.989     0.046    -0.142    -245       1  1 
+   24.113    36.459    57.228     0.440    -0.619    -0.651    -245       8  1 
+   22.694    39.649    59.694     0.587     0.735     0.339    -251       7  1 
+   23.428    39.443    59.485     0.097     0.873     0.478    -251       8  1 
+   22.500    38.299    60.664     0.479    -0.014     0.878    -251       7  1 
+   23.225    38.029    60.501    -0.004     0.166     0.986    -251       8  1 
+   18.453    32.344    68.501     0.220    -0.262    -0.940    -263      56  1 
+   18.504    32.396    68.556     0.880     0.416    -0.227    -263      56  1 
+   16.016    34.965    72.840     0.376    -0.056     0.925    -275      51  1 
+   16.168    34.334    72.893     0.275     0.365     0.890    -275      49  1 
+   13.312    34.770    71.306    -0.976    -0.154     0.157    -277      51  1 
+   13.088    33.716    71.351    -0.826     0.549     0.127    -277      50  1 
+   16.090    29.519    70.672    -0.060    -0.897     0.438    -287      48  1 
+   17.182    29.074    71.126    -0.788    -0.600     0.136    -287      53  1 
+   17.296    29.126    71.590    -0.732    -0.574     0.368    -324      53  1 
+   17.588    28.678    72.527    -0.926    -0.275    -0.257    -324      57  1 
+   17.482    28.904    73.045    -0.989    -0.143     0.048    -328      57  1 
+   17.171    28.596    74.048    -0.781     0.062    -0.621    -328      61  1 
+   20.849    25.442    75.508    -0.892    -0.452     0.004    -335      79  1 
+   21.153    25.319    75.320     0.033    -0.823    -0.567    -335      79  1 
+   26.076    27.427    70.394     0.858    -0.487    -0.163    -345      72  1 
+   26.416    26.548    71.304     0.631     0.099    -0.769    -345      71  1 
+   22.288    30.114    71.838     0.559     0.766     0.318    -350      55  1 
+   22.199    30.143    71.599     0.282     0.858    -0.428    -350      55  1 
+   16.775    28.821    75.499    -0.979     0.175     0.104    -366      61  1 
+   16.430    28.504    76.461    -0.749     0.386    -0.538    -366      63  1 
+   17.228    27.165    75.116    -0.752    -0.653    -0.088    -366      61  1 
+   16.884    26.848    76.078    -0.523    -0.442    -0.729    -366      63  1 
+   22.388    23.834    79.793     0.169    -0.201     0.965    -378      79  1 
+   23.032    23.751    79.808    -0.260    -0.146     0.955    -378      77  1 
+   21.698    22.429    77.080    -0.176    -0.903    -0.392    -380      79  1 
+   22.619    21.928    76.834    -0.790    -0.569    -0.228    -380      78  1 
+   27.085    26.609    72.393     0.966     0.129    -0.225    -392      71  1 
+   28.614    27.171    73.507    -0.054    -0.246    -0.968    -392      80  1 
+   18.959    27.899    79.243     0.515     0.084     0.853    -413      63  1 
+   20.000    27.916    79.051    -0.179     0.072     0.981    -413      64  1 
+   18.054    31.962    68.403     0.486    -0.008    -0.874    -438      38  1 
+   18.026    31.932    68.392     0.384    -0.118    -0.916    -438      38  1 
+   19.994    29.885    66.674    -0.990    -0.000    -0.139    -439      56  1 
+   19.870    29.066    65.321    -0.357    -0.415     0.837    -439      26  1 
+   20.077    29.742    66.684    -0.495    -0.866    -0.072     439      56  1 
+   19.505    29.056    67.934    -0.114    -0.409    -0.905    -439      56  1 
+   20.813    29.066    65.453     0.114    -0.415     0.902    -439      26  1 
+   20.241    29.742    66.707     0.496    -0.866     0.066     439      56  1 
+   20.447    29.056    68.066     0.358    -0.409    -0.840    -439      56  1 
+   21.284    29.890    65.522     0.349    -0.003     0.937    -439      26  1 
+   20.323    29.885    66.719     0.990     0.000     0.139     439      56  1 
+   20.918    29.881    68.135     0.593     0.003    -0.805    -439      56  1 
+   20.812    30.715    65.459     0.114     0.409     0.905    -439      26  1 
+   20.240    30.029    66.709     0.495     0.866     0.072     439      56  1 
+   20.447    30.705    68.072     0.357     0.415    -0.837    -439      56  1 
+   19.870    30.715    65.327    -0.358     0.409     0.840    -439      26  1 
+   20.076    30.029    66.686    -0.496     0.866    -0.066     439      56  1 
+   19.504    30.705    67.940    -0.114     0.415    -0.902    -439      56  1 
+   30.551    28.024    74.722     0.915     0.181    -0.360    -440      80  1 
+   31.665    28.892    75.533     0.172    -0.398    -0.901    -440      81  1 
+   29.518    29.349    74.722     0.399     0.843    -0.360    -440      80  1 
+   30.632    30.217    75.533    -0.344     0.264    -0.901    -440      81  1 
+   28.431    29.566    75.984    -0.145     0.952     0.270    -440      80  1 
+   29.545    30.434    76.794    -0.888     0.373    -0.270    -440      81  1 
+   28.376    28.458    77.245    -0.172     0.398     0.901    -440      80  1 
+   29.490    29.326    78.056    -0.915    -0.181     0.360    -440      81  1 
+   29.409    27.133    77.245     0.344    -0.264     0.901    -440      80  1 
+   30.523    28.001    78.056    -0.399    -0.843     0.360    -440      81  1 
+   10.718    32.431    63.537    -0.707     0.707     0.000     441      44  1 
+   10.718    31.454    64.882    -0.707     0.219     0.672     441      44  3 
+   10.718    29.873    64.368    -0.707    -0.572     0.416     441      44  3 
+   10.718    29.873    62.706    -0.707    -0.572    -0.416     441      44  3 
+   10.718    31.454    62.192    -0.707     0.219    -0.672     441      44  3 
+   10.132    31.017    63.537    -1.000    -0.000    -0.000     441      44  3 
+   13.463    29.466    61.465    -0.000    -0.707    -0.707     445      43  3 
+   18.461    27.459    62.420    -0.000    -1.000    -0.000     446      27  3 
+   15.421    40.088    60.638    -0.500     0.866     0.000     451      34  3 
+   22.585    29.897    63.648     1.000     0.000     0.000     456      26  3 
+   21.999    28.753    64.479     0.707    -0.572     0.416     456      26  3 
+   21.999    28.753    62.817     0.707    -0.572    -0.416     456      26  3 
+   18.375    37.220    56.294    -0.707     0.219    -0.672     462       5  3 
+   16.677    36.491    70.991     0.707     0.707     0.000     470      51  3 
+   15.263    37.077    70.991    -0.000     1.000     0.000     470      51  3 
+   15.263    36.491    72.405    -0.000     0.707     0.707     470      51  3 
+   13.849    36.491    70.991    -0.707     0.707     0.000     470      51  3 
+   20.629    39.469    56.192    -0.000     0.707    -0.707     486       6  3 
+   26.932    28.980    56.893     1.000     0.000     0.000     494      19  3 
+   26.032    30.539    56.893     0.500     0.866     0.000     494      19  3 
+   26.032    29.759    58.243     0.500     0.433     0.750     494      19  3 
+   26.032    28.201    58.243     0.500    -0.433     0.750     494      19  3 
+   26.032    29.759    55.543     0.500     0.433    -0.750     494      19  3 
+   24.540    25.858    56.130     0.500    -0.866    -0.000     496      18  3 
+   24.540    26.638    54.780     0.500    -0.433    -0.750     496      18  3 
+   25.233    37.697    58.529     1.000     0.000     0.000     497       8  3 
+   24.647    39.111    58.529     0.707     0.707     0.000     497       8  3 
+   24.647    38.134    59.874     0.707     0.219     0.672     497       8  3 
+   24.647    36.553    59.360     0.707    -0.572     0.416     497       8  3 
+   24.647    38.134    57.184     0.707     0.219    -0.672     497       8  3 
+   13.609    32.144    72.347    -0.500    -0.433     0.750     501      50  3 
+   12.809    32.837    71.147    -1.000    -0.000    -0.000     501      50  3 
+   19.690    25.732    72.841    -0.500    -0.701    -0.509     505      60  3 
+   25.774    29.816    70.719     0.707     0.707     0.000     507      72  3 
+   25.774    28.839    69.374     0.707     0.219    -0.672     507      72  3 
+   24.360    26.988    69.305    -0.000    -0.707    -0.707     507      72  3 
+   24.360    28.402    68.719    -0.000     0.000    -1.000     507      72  3 
+   20.944    32.296    72.579     0.500     0.866     0.000     508      55  3 
+   20.636    23.091    78.694    -0.707    -0.572     0.416     512      79  3 
+   20.636    23.091    77.032    -0.707    -0.572    -0.416     512      79  3 
+   26.567    25.207    72.011     0.707    -0.572    -0.416     514      71  3 
+   25.153    24.937    71.428    -0.000    -0.707    -0.707     514      71  3 
+   17.929    27.731    79.537    -0.000    -0.000     1.000     520      63  3 
+   16.515    28.168    78.882    -0.707     0.219     0.672     520      63  3 
+   16.515    26.587    78.368    -0.707    -0.572     0.416     520      63  3 
+   15.929    27.731    77.537    -1.000    -0.000    -0.000     520      63  3 
+   24.683    21.453    77.199     0.500    -0.866    -0.000     524      78  3 
+   26.886    23.378    75.425     0.500    -0.701    -0.509     526      76  3 
+   30.135    26.518    74.612     0.707    -0.572    -0.416     527      80  3 
+   28.721    29.076    74.029    -0.000     0.707    -0.707     527      80  3 
+   33.320    29.688    77.335     1.000     0.000     0.000     530      81  3 
+   32.734    31.102    77.335     0.707     0.707     0.000     530      81  3 
+   32.734    30.125    78.680     0.707     0.219     0.672     530      81  3 
+   32.734    28.544    78.166     0.707    -0.572     0.416     530      81  3 
+   32.734    28.544    76.504     0.707    -0.572    -0.416     530      81  3 
+   32.734    30.125    75.990     0.707     0.219    -0.672     530      81  3 
+   31.320    31.688    77.335    -0.000     1.000     0.000     530      81  3 
+   31.320    31.102    78.749    -0.000     0.707     0.707     530      81  3 
+   31.320    29.688    79.335    -0.000    -0.000     1.000     530      81  3 
+   31.320    28.274    78.749    -0.000    -0.707     0.707     530      81  3 
+   31.320    31.102    75.921    -0.000     0.707    -0.707     530      81  3 
+   29.906    31.102    77.335    -0.707     0.707     0.000     530      81  3 
+   29.906    30.125    78.680    -0.707     0.219     0.672     530      81  3 
diff --git a/modules/gfx/src/impl/calc_ambient.cc b/modules/gfx/src/impl/calc_ambient.cc
index 2de067829..97e9dcfa9 100644
--- a/modules/gfx/src/impl/calc_ambient.cc
+++ b/modules/gfx/src/impl/calc_ambient.cc
@@ -53,12 +53,21 @@ namespace {
 		    -std::numeric_limits<float>::max());
 
     for(EntryList::const_iterator it=elist.begin();it!=elist.end();++it) {
-      minc[0]=std::min(it->v[0],static_cast<float>(minc[0]));
-      minc[1]=std::min(it->v[1],static_cast<float>(minc[1]));
-      minc[2]=std::min(it->v[2],static_cast<float>(minc[2]));
-      maxc[0]=std::max(it->v[0],static_cast<float>(maxc[0]));
-      maxc[1]=std::max(it->v[1],static_cast<float>(maxc[1]));
-      maxc[2]=std::max(it->v[2],static_cast<float>(maxc[2]));
+#if OST_DOUBLE_PRECISION
+      minc[0]=std::min(static_cast<double>(it->v[0]),minc[0]);
+      minc[1]=std::min(static_cast<double>(it->v[1]),minc[1]);
+      minc[2]=std::min(static_cast<double>(it->v[2]),minc[2]);
+      maxc[0]=std::max(static_cast<double>(it->v[0]),maxc[0]);
+      maxc[1]=std::max(static_cast<double>(it->v[1]),maxc[1]);
+      maxc[2]=std::maxstatic_cast<double>((it->v[2]),maxc[2]);
+#else
+      minc[0]=std::min(it->v[0],minc[0]);
+      minc[1]=std::min(it->v[1],minc[1]);
+      minc[2]=std::min(it->v[2],minc[2]);
+      maxc[0]=std::max(it->v[0],maxc[0]);
+      maxc[1]=std::max(it->v[1],maxc[1]);
+      maxc[2]=std::max(it->v[2],maxc[2]);
+#endif
     }
     return std::make_pair(minc,maxc);
   }
@@ -201,15 +210,15 @@ namespace {
       unsigned int stat0=0;
       unsigned int stat1=0;
       unsigned int stat2=0;
+      unsigned int stat3=0;
 
       float cutoff2=cutoff_*cutoff_;
       CMap::iterator mit=cmap_.find(cindex);
       if(mit==cmap_.end()) return;
       for(std::vector<CEntry>::const_iterator eit=mit->second.begin();eit!=mit->second.end();++eit) {
-	
 	geom::Vec3 dir0=(eit->v0-ce.v0); // vector from reference entry to current entry
 	float l2=geom::Length2(dir0);
-	if(l2>cutoff2) {++stat0; continue;} // too far away
+	if(l2>cutoff2 || l2<0.1) {++stat0; continue;} // too far away or too close
 	dir0=geom::Normalize(dir0);
 
 	geom::Vec3 dir1=geom::Normalize(eit->v1-ce.v0); // vector from reference entry to corner 1
@@ -221,27 +230,14 @@ namespace {
 	float a0 = std::min(geom::Dot(dir0,dir1),std::min(geom::Dot(dir0,dir2),geom::Dot(dir0,dir3)));
 	if(eit->type==4) a0=std::min(a0,static_cast<float>(geom::Dot(dir0,dir4)));
 	for(std::vector<RayEntry>::iterator rit=rays_.begin();rit!=rays_.end();++rit) {
-	  /*
-	    this _should_ be <0.0, and it should
-	    count as a hit... why this isnt the case
-	    is a mystery to me... all normal and
-	    difference vector directions appear ok
-	  */
-	  if(geom::Dot(eit->n,rit->v)>0.0) {
-	    // backside, counts as hit
-	    //rit->d2=0.0;
-	    //rit->c=ce.c;
-	    //rit->hit=true;
-	    continue;
-	  }
-	  if(geom::Dot(dir0,rit->v)<a0) {++stat1; continue;} // outside corners
-	  if(rit->d2<l2) {++stat2; continue;} // a closer one was already recorded
+	  if(geom::Dot(ce.n,rit->v)<0.0) { ++stat1; continue;} // facing back
+	  if(geom::Dot(dir0,rit->v)<a0) {++stat2; continue;} // outside corners
+	  if(rit->d2<l2) {++stat3; continue;}
 	  rit->d2=l2;
 	  rit->c=eit->c;
 	  rit->hit=true;
 	}
       }
-      //std::cerr << " " << stat0 << " " << stat1 << " " << stat2 << std::endl;
     }
 
     void calc_all() {
@@ -272,18 +268,20 @@ namespace {
 	  for(std::vector<RayEntry>::iterator rit=rays_.begin();rit!=rays_.end();++rit) {
 	    if(rit->hit) ++hit_count;
 	  }
-	  float ratio=std::min(1.0,1.5-static_cast<float>(hit_count)/static_cast<float>(rays_.size()));
+	  float ratio=1.0-static_cast<float>(hit_count)/static_cast<float>(rays_.size());
 	  //std::cerr << " " << hit_count << " / " << rays_.size() << std::endl;
 
 	  if(lit->type==3) {
-	    entry_accum[tlist[lit->id+0]]+=geom::Vec4(static_cast<Real>(ratio),static_cast<Real>(ratio),static_cast<Real>(ratio),static_cast<Real>(1.0));
-	    entry_accum[tlist[lit->id+1]]+=geom::Vec4(static_cast<Real>(ratio),static_cast<Real>(ratio),static_cast<Real>(ratio),static_cast<Real>(1.0));
-	    entry_accum[tlist[lit->id+2]]+=geom::Vec4(static_cast<Real>(ratio),static_cast<Real>(ratio),static_cast<Real>(ratio),static_cast<Real>(1.0));
+	    // please provide a Vec explicit float ctor in double-precision mode
+	    // instead of typecasting here
+	    entry_accum[tlist[lit->id+0]]+=geom::Vec4(ratio,ratio,ratio,1.0f);
+	    entry_accum[tlist[lit->id+1]]+=geom::Vec4(ratio,ratio,ratio,1.0f);
+	    entry_accum[tlist[lit->id+2]]+=geom::Vec4(ratio,ratio,ratio,1.0f);
 	  } else if(lit->type==4) {
-	    entry_accum[qlist[lit->id+0]]+=geom::Vec4(static_cast<Real>(ratio),static_cast<Real>(ratio),static_cast<Real>(ratio),static_cast<Real>(1.0));
-	    entry_accum[qlist[lit->id+1]]+=geom::Vec4(static_cast<Real>(ratio),static_cast<Real>(ratio),static_cast<Real>(ratio),static_cast<Real>(1.0));
-	    entry_accum[qlist[lit->id+2]]+=geom::Vec4(static_cast<Real>(ratio),static_cast<Real>(ratio),static_cast<Real>(ratio),static_cast<Real>(1.0));
-	    entry_accum[qlist[lit->id+3]]+=geom::Vec4(static_cast<Real>(ratio),static_cast<Real>(ratio),static_cast<Real>(ratio),static_cast<Real>(1.0));
+	    entry_accum[qlist[lit->id+0]]+=geom::Vec4(ratio,ratio,ratio,1.0f);
+	    entry_accum[qlist[lit->id+1]]+=geom::Vec4(ratio,ratio,ratio,1.0f);
+	    entry_accum[qlist[lit->id+2]]+=geom::Vec4(ratio,ratio,ratio,1.0f);
+	    entry_accum[qlist[lit->id+3]]+=geom::Vec4(ratio,ratio,ratio,1.0f);
 	  }
 	}
       }
@@ -314,6 +312,8 @@ namespace {
 void ost::gfx::CalcAmbientTerms(IndexedVertexArray& va)
 {
   AmbientOcclusionBuilder aob(va);
+  LOGN_VERBOSE("building component map");
   aob.build_cmap();
+  LOGN_VERBOSE("calculating ambient terms");
   aob.calc_all();
 }
diff --git a/modules/gfx/src/vertex_array.cc b/modules/gfx/src/vertex_array.cc
index 1c7853f3a..970c09887 100644
--- a/modules/gfx/src/vertex_array.cc
+++ b/modules/gfx/src/vertex_array.cc
@@ -142,6 +142,7 @@ VertexID IndexedVertexArray::Add(const Vec3& vert,
                                  const Color& col) 
 {
   dirty_=true;
+  ambient_dirty_=true;
   entry_list_.push_back(Entry(vert,norm,col));
   return entry_list_.size()-1;
 }
@@ -162,6 +163,7 @@ LineID IndexedVertexArray::AddLine(VertexID id0, VertexID id1)
 {
   assert(id0<entry_list_.size() && id1<entry_list_.size());
   dirty_=true;
+  ambient_dirty_=true;
   line_index_list_.push_back(id0);
   line_index_list_.push_back(id1);
   return line_index_list_.size()-2;
@@ -171,6 +173,7 @@ TriID IndexedVertexArray::AddTri(VertexID id0, VertexID id1, VertexID id2)
 {
   assert(id0<entry_list_.size() && id1<entry_list_.size() && id2<entry_list_.size());
   dirty_=true;
+  ambient_dirty_=true;
   tri_index_list_.push_back(id0);
   tri_index_list_.push_back(id1);
   tri_index_list_.push_back(id2);
@@ -200,6 +203,7 @@ QuadID IndexedVertexArray::AddQuad(VertexID id0, VertexID id1, VertexID id2, Ver
 {
   assert(id0<entry_list_.size() && id1<entry_list_.size() && id2<entry_list_.size() && id3<entry_list_.size());
   dirty_=true;
+  ambient_dirty_=true;
   quad_index_list_.push_back(id0);
   quad_index_list_.push_back(id1);
   quad_index_list_.push_back(id2);
@@ -210,6 +214,7 @@ QuadID IndexedVertexArray::AddQuad(VertexID id0, VertexID id1, VertexID id2, Ver
 void IndexedVertexArray::AddSphere(const SpherePrim& prim, unsigned int detail) 
 {
   dirty_=true;
+  ambient_dirty_=true;
 
   unsigned int level= std::min(VA_SPHERE_MAX_DETAIL,detail);
 
@@ -230,6 +235,7 @@ void IndexedVertexArray::AddSphere(const SpherePrim& prim, unsigned int detail)
 void IndexedVertexArray::AddIcoSphere(const SpherePrim& prim, unsigned int detail) 
 {
   dirty_=true;
+  ambient_dirty_=true;
   
   unsigned int level= std::min(VA_ICO_SPHERE_MAX_DETAIL,detail);
   
@@ -246,6 +252,7 @@ void IndexedVertexArray::AddIcoSphere(const SpherePrim& prim, unsigned int detai
 void IndexedVertexArray::AddCylinder(const CylinderPrim& prim, unsigned int detail)
 {
   dirty_=true;
+  ambient_dirty_=true;
   
   unsigned int level = std::min(VA_CYL_MAX_DETAIL,detail);
   
@@ -349,9 +356,10 @@ void IndexedVertexArray::RenderGL()
   if(dirty_) {
     dirty_=false;
 #if OST_SHADER_SUPPORT_ENABLED
-    if(use_ambient_) {
+    if(ambient_dirty_ && use_ambient_) {
       LOGN_DUMP("re-calculating ambient occlusion terms");
       recalc_ambient_occlusion();
+      ambient_dirty_=false;
     }
 
     LOGN_DUMP("checking buffer object availability");
@@ -602,6 +610,7 @@ void IndexedVertexArray::RenderPov(PovState& pov, const std::string& name)
 void IndexedVertexArray::Clear() 
 {
   dirty_=true;
+  ambient_dirty_=true;
   entry_list_.clear();
   quad_index_list_.clear();
   tri_index_list_.clear();
@@ -625,7 +634,6 @@ void IndexedVertexArray::Clear()
   outline_exp_color_=Color(0,0,0);
   draw_normals_=false;
   use_ambient_=false;
-  ambient_dirty_=true;
   ambient_data_.clear();
 }
 
@@ -1034,6 +1042,7 @@ void IndexedVertexArray::copy(const IndexedVertexArray& va)
   line_index_list_=va.line_index_list_;
   ntentry_list_=va.ntentry_list_;
   dirty_=true;
+  ambient_dirty_=va.ambient_dirty_;
   mode_=va.mode_;
   poly_mode_=va.poly_mode_;
   lighting_=va.lighting_;
@@ -1052,7 +1061,6 @@ void IndexedVertexArray::copy(const IndexedVertexArray& va)
   outline_exp_color_=va.outline_exp_color_;
   draw_normals_=va.draw_normals_;
   use_ambient_=va.use_ambient_;
-  ambient_dirty_=va.ambient_dirty_;
   ambient_data_=va.ambient_data_;
 }
   
@@ -1125,6 +1133,7 @@ bool IndexedVertexArray::prep_buff()
   if(use_ambient_) {
     if(ambient_data_.empty()) {
       LOGN_VERBOSE("ambient data empty");
+      glDisableClientState(GL_TEXTURE_COORD_ARRAY);
     } else {
       glEnableClientState(GL_TEXTURE_COORD_ARRAY);
       glBindBuffer(GL_ARRAY_BUFFER, buffer_id_[VA_AMBIENT_BUFFER]);
@@ -1135,6 +1144,8 @@ bool IndexedVertexArray::prep_buff()
 		   GL_STATIC_DRAW);
       VERTEX_ARRAY_CHECK_GL_ERROR("set ambient buf");
     }
+  } else {
+    glDisableClientState(GL_TEXTURE_COORD_ARRAY);
   }
   
   return true;
-- 
GitLab