You can subscribe to this list here.
| 2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(7) |
Jul
(26) |
Aug
(85) |
Sep
(141) |
Oct
(85) |
Nov
(60) |
Dec
(29) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2008 |
Jan
(38) |
Feb
(78) |
Mar
(10) |
Apr
|
May
|
Jun
|
Jul
(3) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <tre...@us...> - 2007-10-02 02:28:20
|
Revision: 464
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=464&view=rev
Author: trevorolio
Date: 2007-10-01 19:28:24 -0700 (Mon, 01 Oct 2007)
Log Message:
-----------
THIS CHECKIN REQUIRES A DB DROP
Introducing a new world of user configurable body settings. Ditched the old BodyRecord and created three new record types:
BodyDataRecords: hold information about the wadges of data which make up a body's base (e.g. mesh, morphs, textures...)
BodyConfigurationRecords: a user level representation of a body configuration, with a display name and a set of...
BodySettingRecords: morph interpolation values for a given body configuration (e.g. height, 0.9 or chin width, 0.2)
Halfway through documentifying and RESTifying these records. I can smell the day when this is autogenerated from annotated classes.
Added Paths:
-----------
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/sourceArt/chinWidth.obj
Added: maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/sourceArt/chinWidth.obj
===================================================================
--- maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/sourceArt/chinWidth.obj (rev 0)
+++ maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/sourceArt/chinWidth.obj 2007-10-02 02:28:24 UTC (rev 464)
@@ -0,0 +1,2682 @@
+# Blender3D v245 OBJ File: chinWidth.blend
+# www.blender3d.org
+o Mike
+v 0.311142 0.406033 -0.108595
+v 0.303021 0.345360 -0.125835
+v 0.227706 0.341257 -0.128513
+v 0.229273 0.409040 -0.107120
+v 0.294899 0.278192 -0.102832
+v 0.241228 0.253397 -0.120454
+v 0.226139 0.256499 -0.012092
+v 0.294899 0.270102 -0.036757
+v 0.303021 0.323897 0.025088
+v 0.227706 0.318876 0.024398
+v 0.311142 0.395855 0.014442
+v 0.229273 0.394438 0.000494
+v 0.314506 0.428960 -0.051745
+v 0.229922 0.422291 -0.054673
+v 0.032408 0.438193 0.019218
+v 0.000028 0.433348 0.028486
+v 0.000028 0.377973 0.023821
+v 0.049007 0.387226 0.014744
+v 0.041767 0.438606 0.041908
+v 0.000028 0.431574 0.061884
+v 0.028807 0.449185 0.072133
+v 0.000028 0.444615 0.081399
+v 0.020996 0.469902 0.076850
+v 0.000028 0.469598 0.081529
+v 0.012422 0.490974 0.083452
+v 0.000028 0.490011 0.087355
+v 0.009128 0.497154 0.079358
+v 0.000028 0.497166 0.081634
+v 0.012094 0.502695 0.087565
+v 0.000028 0.502377 0.089515
+v 0.020607 0.523745 0.080789
+v 0.000028 0.519527 0.090166
+v 0.014865 0.531088 0.096715
+v 0.000028 0.524749 0.102985
+v 0.013691 0.540315 0.093596
+v 0.000028 0.535999 0.105575
+v 0.006934 0.559235 0.089070
+v 0.000028 0.560304 0.094733
+v 0.014916 0.623913 0.087199
+v 0.000028 0.623913 0.087199
+v 0.000028 0.590254 0.090531
+v 0.010582 0.585735 0.084708
+v 0.030071 0.689433 0.033411
+v 0.000028 0.693038 0.037553
+v 0.000028 0.659557 0.075624
+v 0.022023 0.657368 0.073036
+v 0.030071 0.688165 -0.058547
+v 0.000028 0.691187 -0.060564
+v 0.038780 0.619464 -0.126007
+v 0.000028 0.620930 -0.128730
+v 0.038089 0.555866 -0.119522
+v 0.000028 0.555803 -0.122571
+v 0.030779 0.472175 -0.081673
+v 0.000028 0.472172 -0.082136
+v 0.000028 0.508952 -0.096572
+v 0.037557 0.507394 -0.092203
+v 0.032240 0.437063 -0.080951
+v 0.000028 0.433697 -0.084518
+v 0.009305 0.573542 0.082195
+v 0.000028 0.573009 0.087655
+v 0.026811 0.584435 0.071542
+v 0.040521 0.582635 0.067057
+v 0.049895 0.596475 0.070593
+v 0.028011 0.598325 0.081865
+v 0.047951 0.574371 0.059396
+v 0.057153 0.571919 0.048250
+v 0.039423 0.569399 0.067127
+v 0.048187 0.556122 0.062690
+v 0.026867 0.569700 0.072905
+v 0.025897 0.553701 0.072508
+v 0.018504 0.571587 0.076368
+v 0.013366 0.556996 0.078749
+v 0.022323 0.538583 0.079018
+v 0.032507 0.538061 0.069355
+v 0.053149 0.538678 0.045440
+v 0.069197 0.573117 0.032754
+v 0.059235 0.609482 0.058061
+v 0.032174 0.620979 0.079437
+v 0.022262 0.501677 0.080554
+v 0.038303 0.513808 0.066809
+v 0.032862 0.497765 0.070830
+v 0.046530 0.494389 0.061846
+v 0.020710 0.493805 0.077478
+v 0.047524 0.474128 0.069749
+v 0.019214 0.577472 0.076421
+v 0.010349 0.585259 0.084608
+v 0.053937 0.512055 0.044935
+v 0.056515 0.492857 0.041268
+v 0.060464 0.462052 0.048870
+v 0.049014 0.649793 0.053833
+v 0.073436 0.624977 0.026105
+v 0.079557 0.581437 0.011099
+v 0.067467 0.540893 0.013789
+v 0.064933 0.512990 0.011857
+v 0.063412 0.489249 0.013024
+v 0.052911 0.454943 0.012510
+v 0.053886 0.453386 0.001558
+v 0.077742 0.410787 -0.022260
+v 0.083865 0.431962 -0.044335
+v 0.060751 0.471467 -0.025079
+v 0.059151 0.675975 0.025682
+v 0.058545 0.673868 -0.054165
+v 0.070151 0.610003 -0.105443
+v 0.063792 0.554302 -0.100252
+v 0.058724 0.508456 -0.075485
+v 0.058092 0.473761 -0.057461
+v 0.066169 0.433346 -0.059552
+v 0.081789 0.634172 -0.004684
+v 0.082519 0.635104 -0.051578
+v 0.087981 0.600291 -0.078550
+v 0.078026 0.555455 -0.070254
+v 0.069087 0.512555 -0.043755
+v 0.071182 0.516580 -0.012704
+v 0.075481 0.546017 -0.017103
+v 0.091662 0.553537 -0.029029
+v 0.092180 0.571775 -0.025134
+v 0.077038 0.546506 -0.004031
+v 0.069544 0.520973 -0.005878
+v 0.084231 0.524297 -0.014313
+v 0.076922 0.552023 -0.031426
+v 0.092997 0.553324 -0.037942
+v 0.081448 0.517100 -0.018164
+v 0.085183 0.571371 -0.036702
+v 0.094337 0.576197 -0.039252
+v 0.087750 0.581460 -0.022004
+v 0.086741 0.578605 -0.014305
+v 0.094337 0.587110 -0.022076
+v 0.087812 0.602441 -0.015110
+v 0.000028 0.306033 0.078103
+v 0.098413 0.315753 0.058105
+v 0.000028 0.390553 -0.124096
+v 0.066103 0.392548 -0.118642
+v 0.127275 0.405948 -0.001655
+v 0.133119 0.432021 -0.049028
+v 0.105463 0.420778 -0.094615
+v 0.176177 0.321700 0.039256
+v 0.182500 0.403268 -0.006660
+v 0.183263 0.429829 -0.056155
+v 0.167158 0.411076 -0.096562
+v 0.156244 0.357656 -0.125999
+v 0.071801 0.287852 -0.142860
+v 0.000028 0.288407 -0.148833
+v 0.161383 0.280583 -0.135349
+v 0.000028 0.234817 0.101598
+v 0.088484 0.240522 0.093669
+v 0.183165 0.247821 0.074628
+v 0.219529 0.164758 0.009079
+v 0.220210 0.161960 -0.104152
+v 0.075033 0.180716 -0.154695
+v 0.000028 0.181746 -0.161272
+v 0.162609 0.175029 -0.143446
+v 0.000028 0.122600 0.129090
+v 0.081107 0.138150 0.122447
+v 0.169559 0.175308 0.080912
+v 0.392215 0.398575 -0.103312
+v 0.389599 0.341860 -0.118799
+v 0.363127 0.295690 -0.098197
+v 0.363926 0.288459 -0.038797
+v 0.371429 0.322571 -0.003214
+v 0.393038 0.393851 0.012893
+v 0.393035 0.421282 -0.052218
+v 0.480329 0.382575 -0.108943
+v 0.477818 0.339690 -0.116291
+v 0.476964 0.281307 -0.096437
+v 0.477731 0.274366 -0.039413
+v 0.479842 0.321220 0.003687
+v 0.481119 0.375678 -0.002511
+v 0.481116 0.403009 -0.052303
+v 0.534529 0.383467 -0.103144
+v 0.531846 0.339802 -0.113081
+v 0.530933 0.277408 -0.092400
+v 0.531753 0.279534 -0.038301
+v 0.531875 0.319938 -0.008492
+v 0.535374 0.377030 -0.007050
+v 0.535371 0.407429 -0.052026
+v 0.614205 0.370882 -0.094631
+v 0.611815 0.330580 -0.103040
+v 0.611002 0.272891 -0.089630
+v 0.611732 0.275147 -0.040212
+v 0.613742 0.312186 -0.013477
+v 0.614958 0.366006 -0.012141
+v 0.614955 0.393044 -0.052460
+v 0.697684 0.349483 -0.085306
+v 0.696158 0.323875 -0.094952
+v 0.695639 0.289056 -0.082154
+v 0.696105 0.284930 -0.045352
+v 0.697388 0.306451 -0.017489
+v 0.698164 0.345371 -0.021510
+v 0.698162 0.361660 -0.053638
+v 0.754698 0.333399 -0.077816
+v 0.753286 0.320252 -0.096420
+v 0.752805 0.296102 -0.081030
+v 0.753237 0.292513 -0.048656
+v 0.754424 0.311242 -0.024676
+v 0.755142 0.332518 -0.031850
+v 0.755141 0.337772 -0.056064
+v 0.807592 0.316963 -0.102882
+v 0.806886 0.309287 -0.104776
+v 0.806406 0.294584 -0.088101
+v 0.806837 0.303095 -0.044997
+v 0.790644 0.296553 -0.014002
+v 0.790965 0.316036 -0.012315
+v 0.791362 0.326429 -0.019325
+v 0.809505 0.337968 -0.055003
+v 0.808922 0.330058 -0.094521
+v 0.856666 0.324398 -0.107946
+v 0.856203 0.309974 -0.111118
+v 0.855723 0.301462 -0.090840
+v 0.839287 0.310210 -0.066552
+v 0.840293 0.307497 -0.051713
+v 0.818320 0.322653 -0.003366
+v 0.817355 0.311672 0.007191
+v 0.857701 0.307526 0.022552
+v 0.858060 0.320750 0.012845
+v 0.825749 0.327720 -0.017101
+v 0.822955 0.332172 -0.031065
+v 0.842806 0.337434 -0.069897
+v 0.857983 0.334552 -0.084306
+v 0.857616 0.332506 -0.094534
+v 0.878465 0.326286 -0.111195
+v 0.878262 0.310207 -0.113301
+v 0.877985 0.302192 -0.094581
+v 0.878107 0.307071 -0.081601
+v 0.855289 0.302989 -0.078731
+v 0.857342 0.294860 -0.010075
+v 0.856331 0.302742 -0.020943
+v 0.883379 0.306162 -0.026117
+v 0.879604 0.304083 -0.010124
+v 0.858060 0.328932 -0.015010
+v 0.859335 0.310650 -0.011660
+v 0.879896 0.317261 -0.006545
+v 0.884695 0.328932 -0.015010
+v 0.880023 0.335110 -0.081512
+v 0.885720 0.337257 -0.070783
+v 0.878872 0.316581 -0.087636
+v 0.883185 0.309870 -0.068091
+v 0.884684 0.317452 -0.063753
+v 0.883892 0.311136 -0.054673
+v 0.883766 0.316540 -0.032873
+v 0.882798 0.309195 -0.040030
+v 0.879877 0.329057 -0.101777
+v 0.885809 0.338866 -0.056774
+v 0.884694 0.340475 -0.042764
+v 0.884694 0.335037 -0.025919
+v 0.821182 0.289975 -0.011262
+v 0.857342 0.296060 0.017453
+v 0.817044 0.301665 0.001516
+v 0.911570 0.302867 -0.001241
+v 0.912187 0.313236 0.003461
+v 0.921627 0.301808 0.011660
+v 0.911065 0.291154 0.005491
+v 0.911065 0.291427 0.018073
+v 0.906535 0.317860 -0.113865
+v 0.906365 0.303624 -0.112733
+v 0.908014 0.322962 -0.102199
+v 0.906953 0.311825 -0.092512
+v 0.906088 0.299519 -0.099606
+v 0.941775 0.303009 -0.101606
+v 0.948146 0.291392 -0.105249
+v 0.939086 0.299501 -0.112069
+v 0.965350 0.305935 -0.071314
+v 0.972148 0.298701 -0.074351
+v 0.965218 0.305535 -0.078756
+v 0.841634 0.340336 -0.055388
+v 0.841149 0.335478 -0.037826
+v 0.855977 0.332205 -0.026418
+v 0.966390 0.309162 -0.055292
+v 0.974673 0.299676 -0.047939
+v 0.971513 0.296787 -0.057628
+v 0.964451 0.302563 -0.012991
+v 0.972537 0.294499 -0.017808
+v 0.964126 0.301372 -0.023422
+v 0.823797 0.295120 -0.027878
+v 0.845438 0.304521 -0.030178
+v 0.859012 0.318845 -0.005538
+v 0.894490 0.305101 0.030385
+v 0.895051 0.318576 0.021116
+v 0.885814 0.293930 0.022748
+v 0.885814 0.289052 0.007662
+v 0.886320 0.302423 -0.002559
+v 0.912689 0.306951 -0.066372
+v 0.913581 0.317452 -0.063753
+v 0.912581 0.306612 -0.081599
+v 0.913442 0.316905 -0.084002
+v 0.914497 0.329638 -0.081483
+v 0.914617 0.329435 -0.070742
+v 0.912890 0.309725 -0.039758
+v 0.913712 0.324143 -0.036580
+v 0.912790 0.308982 -0.052521
+v 0.913653 0.318456 -0.059502
+v 0.914706 0.332728 -0.056741
+v 0.914794 0.333791 -0.042728
+v 0.914101 0.307026 -0.010625
+v 0.914373 0.317271 -0.007286
+v 0.913522 0.303222 -0.023223
+v 0.914049 0.316792 -0.026910
+v 0.914768 0.327140 -0.024733
+v 0.914769 0.327838 -0.012102
+v 0.886936 0.318403 0.003433
+v 0.912187 0.310895 0.015093
+v 0.911626 0.301338 0.023150
+v 0.929923 0.302823 -0.092941
+v 0.932783 0.313122 -0.102193
+v 0.926876 0.290615 -0.099559
+v 0.927876 0.294607 -0.112685
+v 0.930554 0.308568 -0.113339
+v 0.943794 0.299756 -0.068410
+v 0.946499 0.308737 -0.063707
+v 0.943642 0.300252 -0.081565
+v 0.946286 0.308221 -0.083956
+v 0.949541 0.315907 -0.080187
+v 0.949614 0.316457 -0.070672
+v 0.948709 0.304082 -0.039728
+v 0.952027 0.315692 -0.036535
+v 0.948492 0.302545 -0.052486
+v 0.950999 0.310100 -0.059457
+v 0.954520 0.318716 -0.056666
+v 0.954779 0.319748 -0.042654
+v 0.942940 0.298888 -0.010096
+v 0.945144 0.308805 -0.006500
+v 0.941910 0.297813 -0.023194
+v 0.944731 0.308346 -0.027607
+v 0.950815 0.313296 -0.025232
+v 0.950934 0.314901 -0.011651
+v 0.947637 0.294064 -0.093913
+v 0.942769 0.283864 -0.099862
+v 0.944379 0.287197 -0.111653
+v 0.965252 0.291031 -0.069455
+v 0.968652 0.297354 -0.065851
+v 0.965150 0.291297 -0.079823
+v 0.968424 0.296990 -0.081691
+v 0.970543 0.293645 -0.040931
+v 0.973292 0.301255 -0.038216
+v 0.970114 0.292405 -0.051736
+v 0.966767 0.309976 -0.043425
+v 0.964109 0.287824 -0.011341
+v 0.967547 0.295527 -0.008501
+v 0.963276 0.287433 -0.022121
+v 0.967088 0.295062 -0.025569
+v 0.211918 0.060508 0.009634
+v 0.212598 0.057791 -0.088298
+v 0.075033 0.068439 -0.157155
+v 0.000028 0.071188 -0.160683
+v 0.162609 0.066391 -0.134785
+v 0.000028 0.018325 0.125006
+v 0.081107 0.033861 0.115662
+v 0.160689 0.047771 0.063222
+v 0.193886 -0.059312 0.010272
+v 0.194515 -0.061973 -0.077289
+v 0.073739 -0.054174 -0.145085
+v 0.000028 -0.050157 -0.148620
+v 0.154668 -0.059717 -0.122697
+v 0.000028 -0.085337 0.102384
+v 0.079352 -0.078306 0.096437
+v 0.152894 -0.064361 0.063819
+v 0.206643 -0.182710 0.006394
+v 0.207307 -0.185366 -0.080232
+v 0.073087 -0.183652 -0.163583
+v 0.000028 -0.181627 -0.176575
+v 0.158533 -0.187001 -0.140772
+v 0.000028 -0.183768 0.089989
+v 0.079013 -0.186118 0.087508
+v 0.156660 -0.188272 0.060982
+v 0.217632 -0.316931 0.008457
+v 0.218306 -0.319549 -0.070898
+v 0.078152 -0.336320 -0.156648
+v 0.009250 -0.309291 -0.164916
+v 0.164005 -0.323822 -0.126342
+v -0.001653 -0.264408 0.086143
+v 0.084163 -0.327601 0.074255
+v 0.162105 -0.325183 0.058479
+v 0.230176 -0.430637 0.005062
+v 0.230914 -0.433306 -0.066731
+v 0.006620 -0.377167 -0.122505
+v 0.083923 -0.441582 -0.135759
+v 0.030954 -0.438307 -0.119357
+v 0.165040 -0.437718 -0.116889
+v -0.002821 -0.332311 0.033739
+v 0.017958 -0.429087 0.007909
+v 0.090503 -0.441802 0.064600
+v 0.162960 -0.439271 0.050326
+v 0.222837 -0.553256 0.008807
+v 0.232208 -0.553787 -0.054626
+v 0.113148 -0.554776 -0.114688
+v 0.048644 -0.553257 -0.101597
+v 0.182910 -0.554391 -0.102225
+v 0.030896 -0.553254 0.020694
+v 0.101988 -0.553988 0.053602
+v 0.164625 -0.553797 0.048133
+v 0.004458 -0.430298 -0.042374
+v 0.015405 -0.553254 -0.044763
+v 0.002147 -0.380715 -0.043301
+v 0.206606 -0.670152 0.018721
+v 0.214418 -0.670689 -0.045876
+v 0.115159 -0.671683 -0.107040
+v 0.062475 -0.670163 -0.093709
+v 0.173319 -0.671297 -0.094348
+v 0.046989 -0.670148 0.030825
+v 0.105855 -0.670879 0.064337
+v 0.158075 -0.670688 0.058767
+v 0.034073 -0.670154 -0.035833
+v 0.198387 -0.790216 0.018314
+v 0.205576 -0.790744 -0.044596
+v 0.114234 -0.791730 -0.104164
+v 0.065752 -0.790211 -0.091181
+v 0.167755 -0.791346 -0.091803
+v 0.052777 -0.790214 0.030102
+v 0.105672 -0.790949 0.062739
+v 0.153727 -0.790758 0.057315
+v 0.041452 -0.790211 -0.034815
+v 0.183272 -0.909319 0.010603
+v 0.189607 -0.909826 -0.048240
+v 0.109122 -0.910791 -0.103956
+v 0.066403 -0.909277 -0.091813
+v 0.156281 -0.910411 -0.092394
+v 0.059015 -0.909321 0.021629
+v 0.101578 -0.910068 0.052156
+v 0.143921 -0.909875 0.047083
+v 0.044992 -0.909296 -0.039091
+v 0.183272 -1.019136 0.007524
+v 0.189607 -1.019634 -0.049842
+v 0.109122 -1.020592 -0.104159
+v 0.066403 -1.019080 -0.092321
+v 0.156281 -1.020214 -0.092888
+v 0.059015 -1.019139 0.018274
+v 0.101578 -1.019890 0.048035
+v 0.143921 -1.019696 0.043088
+v 0.044992 -1.019106 -0.040923
+v 0.173240 -1.123543 0.008080
+v 0.187740 -1.124102 -0.060565
+v 0.109122 -1.125059 -0.114883
+v 0.066403 -1.123548 -0.103045
+v 0.156281 -1.124681 -0.103611
+v 0.063244 -1.123546 0.018830
+v 0.102600 -1.124298 0.048591
+v 0.142476 -1.124104 0.043644
+v 0.048930 -1.123573 -0.051647
+v 0.176846 -1.187160 0.027773
+v 0.187644 -1.214756 -0.059215
+v 0.109122 -1.213050 -0.114414
+v 0.066403 -1.211538 -0.102576
+v 0.156281 -1.215113 -0.103130
+v 0.101578 -1.161543 0.182298
+v 0.065679 -1.176706 0.152622
+v 0.065679 -1.209567 0.152797
+v 0.101578 -1.215162 0.182584
+v 0.143921 -1.161349 0.177352
+v 0.143921 -1.214968 0.177638
+v 0.172564 -1.176703 0.141872
+v 0.172564 -1.217875 0.142092
+v 0.048930 -1.214235 -0.051164
+v 0.061397 -1.187217 0.028251
+v 0.060495 -1.139723 0.075530
+v 0.101578 -1.129409 0.075410
+v 0.060495 -1.215808 0.088571
+v 0.096161 -1.203909 0.025452
+v 0.101578 -1.223975 0.088549
+v 0.143921 -1.129189 0.075425
+v 0.142476 -1.203690 0.025231
+v 0.143921 -1.223755 0.088564
+v 0.177748 -1.139663 0.075534
+v 0.177748 -1.215747 0.088575
+v 0.152486 -1.224410 -0.061332
+v 0.106474 -1.224701 -0.060935
+v 0.019063 0.497120 0.072960
+v 0.028659 0.575952 0.074675
+v 0.037109 0.575812 0.070753
+v -0.311086 0.406033 -0.108594
+v -0.229217 0.409040 -0.107120
+v -0.227650 0.341256 -0.128513
+v -0.302964 0.345360 -0.125835
+v -0.241171 0.253397 -0.120454
+v -0.294843 0.278192 -0.102832
+v -0.226082 0.256499 -0.012092
+v -0.294843 0.270102 -0.036757
+v -0.227650 0.318876 0.024398
+v -0.302964 0.323897 0.025088
+v -0.229217 0.394438 0.000494
+v -0.311086 0.395855 0.014442
+v -0.229866 0.422291 -0.054673
+v -0.314450 0.428960 -0.051745
+v -0.032352 0.438193 0.019218
+v -0.048950 0.387226 0.014744
+v -0.041710 0.438606 0.041908
+v -0.028751 0.449185 0.072133
+v -0.020939 0.469902 0.076850
+v -0.012366 0.490974 0.083452
+v -0.009071 0.497154 0.079358
+v -0.012038 0.502695 0.087565
+v -0.020551 0.523745 0.080789
+v -0.014808 0.531088 0.096715
+v -0.013634 0.540315 0.093596
+v -0.006878 0.559235 0.089070
+v -0.014860 0.623913 0.087199
+v -0.010526 0.585735 0.084708
+v -0.030015 0.689433 0.033411
+v -0.021967 0.657368 0.073036
+v -0.030015 0.688165 -0.058547
+v -0.038724 0.619464 -0.126007
+v -0.037996 0.553636 -0.118622
+v -0.030722 0.472213 -0.074561
+v -0.037500 0.507394 -0.092203
+v -0.032184 0.437063 -0.080951
+v -0.009249 0.573542 0.082195
+v -0.026755 0.584435 0.071542
+v -0.027954 0.598325 0.081865
+v -0.049838 0.596475 0.070593
+v -0.040465 0.582635 0.067057
+v -0.057096 0.571919 0.048250
+v -0.047895 0.574371 0.059396
+v -0.048131 0.556122 0.062690
+v -0.039367 0.569399 0.067127
+v -0.025841 0.553701 0.072508
+v -0.026810 0.569700 0.072905
+v -0.018448 0.571587 0.076368
+v -0.013310 0.556996 0.078749
+v -0.032451 0.538061 0.069355
+v -0.022267 0.538583 0.079018
+v -0.053092 0.538678 0.045440
+v -0.069141 0.573117 0.032754
+v -0.059178 0.609482 0.058061
+v -0.032118 0.620979 0.079437
+v -0.038246 0.513808 0.066809
+v -0.022205 0.501677 0.080554
+v -0.046474 0.494389 0.061846
+v -0.032806 0.497765 0.070830
+v -0.047468 0.474128 0.069749
+v -0.020654 0.493805 0.077478
+v -0.019157 0.577472 0.076421
+v -0.010293 0.585259 0.084608
+v -0.053881 0.512055 0.044935
+v -0.053000 0.492857 0.041268
+v -0.060407 0.462052 0.048870
+v -0.048957 0.649793 0.053833
+v -0.073380 0.624977 0.026105
+v -0.079500 0.581437 0.011099
+v -0.067411 0.540893 0.013789
+v -0.064877 0.512990 0.011857
+v -0.063356 0.489249 0.013024
+v -0.052855 0.454981 0.019622
+v -0.053830 0.453386 0.001558
+v -0.060694 0.471467 -0.025079
+v -0.083809 0.431962 -0.044335
+v -0.077685 0.410787 -0.022260
+v -0.059095 0.675975 0.025682
+v -0.058488 0.673868 -0.054165
+v -0.070095 0.610003 -0.105443
+v -0.063575 0.553309 -0.099924
+v -0.058036 0.473761 -0.057461
+v -0.058667 0.508456 -0.075485
+v -0.066112 0.433346 -0.059552
+v -0.081732 0.634172 -0.004684
+v -0.082463 0.635104 -0.051578
+v -0.087924 0.600291 -0.078550
+v -0.076853 0.551430 -0.068695
+v -0.069030 0.512555 -0.043755
+v -0.071126 0.516580 -0.012704
+v -0.075424 0.546017 -0.017103
+v -0.092124 0.571775 -0.025134
+v -0.091605 0.553537 -0.029029
+v -0.076981 0.546506 -0.004031
+v -0.084175 0.524297 -0.014313
+v -0.069487 0.520973 -0.005878
+v -0.081392 0.517100 -0.018164
+v -0.092941 0.553324 -0.037942
+v -0.076866 0.552023 -0.031426
+v -0.094281 0.576197 -0.039252
+v -0.085126 0.571371 -0.036702
+v -0.087694 0.581460 -0.022004
+v -0.094281 0.587110 -0.022076
+v -0.086685 0.578605 -0.014305
+v -0.087755 0.602441 -0.015110
+v -0.098357 0.315753 0.058105
+v -0.066047 0.392548 -0.118642
+v -0.133063 0.432021 -0.049028
+v -0.127218 0.405948 -0.001655
+v -0.105407 0.420778 -0.094615
+v -0.182443 0.403268 -0.006660
+v -0.176121 0.321700 0.039256
+v -0.167102 0.411076 -0.096562
+v -0.183206 0.429829 -0.056155
+v -0.156187 0.357656 -0.125999
+v -0.071745 0.287852 -0.142860
+v -0.161326 0.280583 -0.135349
+v -0.088427 0.240522 0.093669
+v -0.183108 0.247821 0.074628
+v -0.220153 0.161960 -0.104152
+v -0.219473 0.164758 0.009079
+v -0.074976 0.180716 -0.154695
+v -0.162552 0.175029 -0.143446
+v -0.081050 0.138150 0.122447
+v -0.169503 0.175388 0.095807
+v -0.389543 0.341860 -0.118799
+v -0.392158 0.398575 -0.103312
+v -0.363071 0.295690 -0.098196
+v -0.363870 0.288459 -0.038797
+v -0.371373 0.322571 -0.003214
+v -0.392981 0.393851 0.012893
+v -0.392978 0.421282 -0.052218
+v -0.477762 0.339690 -0.116291
+v -0.480272 0.382575 -0.108943
+v -0.476907 0.281307 -0.096437
+v -0.477675 0.274366 -0.039413
+v -0.479785 0.321220 0.003687
+v -0.481063 0.375678 -0.002511
+v -0.481060 0.403009 -0.052303
+v -0.531790 0.339802 -0.113081
+v -0.534473 0.383467 -0.103144
+v -0.530877 0.277408 -0.092400
+v -0.531697 0.279534 -0.038301
+v -0.531819 0.319938 -0.008492
+v -0.535318 0.377030 -0.007050
+v -0.535315 0.407429 -0.052026
+v -0.611758 0.330580 -0.103040
+v -0.614149 0.370882 -0.094631
+v -0.610945 0.272891 -0.089630
+v -0.611676 0.275147 -0.040212
+v -0.613685 0.312186 -0.013477
+v -0.614901 0.366006 -0.012141
+v -0.614899 0.393044 -0.052460
+v -0.696101 0.323875 -0.094952
+v -0.697627 0.349483 -0.085306
+v -0.695582 0.289056 -0.082154
+v -0.696048 0.284930 -0.045352
+v -0.697331 0.306451 -0.017489
+v -0.698108 0.345371 -0.021510
+v -0.698106 0.361660 -0.053638
+v -0.753229 0.320252 -0.096420
+v -0.754641 0.333399 -0.077816
+v -0.752749 0.296102 -0.081030
+v -0.753180 0.292513 -0.048656
+v -0.754367 0.311242 -0.024676
+v -0.755086 0.332518 -0.031850
+v -0.755084 0.337772 -0.056064
+v -0.806830 0.309287 -0.104776
+v -0.807536 0.316963 -0.102882
+v -0.806349 0.294584 -0.088101
+v -0.806781 0.303095 -0.044997
+v -0.790587 0.296553 -0.014002
+v -0.791306 0.326429 -0.019325
+v -0.790909 0.316036 -0.012315
+v -0.809449 0.337968 -0.055003
+v -0.808866 0.330058 -0.094521
+v -0.856147 0.309974 -0.111118
+v -0.856609 0.324398 -0.107946
+v -0.855666 0.301462 -0.090840
+v -0.840237 0.307497 -0.051713
+v -0.839231 0.310210 -0.066552
+v -0.818264 0.322653 -0.003366
+v -0.858004 0.320750 0.012845
+v -0.857645 0.307526 0.022552
+v -0.817298 0.311672 0.007191
+v -0.822899 0.332171 -0.031065
+v -0.825692 0.327720 -0.017101
+v -0.857559 0.332506 -0.094534
+v -0.857926 0.334552 -0.084306
+v -0.842749 0.337434 -0.069897
+v -0.878409 0.326286 -0.111195
+v -0.878205 0.310207 -0.113301
+v -0.855233 0.302989 -0.078731
+v -0.878051 0.307071 -0.081601
+v -0.877928 0.302192 -0.094581
+v -0.857285 0.294860 -0.010075
+v -0.879547 0.304083 -0.010124
+v -0.883323 0.306162 -0.026117
+v -0.856275 0.302742 -0.020943
+v -0.858004 0.328932 -0.015010
+v -0.884639 0.328932 -0.015010
+v -0.879840 0.317261 -0.006545
+v -0.859278 0.310650 -0.011660
+v -0.879967 0.335110 -0.081512
+v -0.885664 0.337257 -0.070783
+v -0.878816 0.316581 -0.087636
+v -0.883129 0.309870 -0.068091
+v -0.883836 0.311136 -0.054673
+v -0.884627 0.317452 -0.063753
+v -0.883710 0.316540 -0.032873
+v -0.882741 0.309194 -0.040030
+v -0.879821 0.329057 -0.101777
+v -0.885752 0.338866 -0.056774
+v -0.884637 0.340475 -0.042764
+v -0.884638 0.335037 -0.025919
+v -0.821125 0.289975 -0.011262
+v -0.816987 0.301665 0.001516
+v -0.857285 0.296060 0.017453
+v -0.911514 0.302867 -0.001241
+v -0.921571 0.301808 0.011660
+v -0.912130 0.313236 0.003461
+v -0.911008 0.291154 0.005491
+v -0.911008 0.291427 0.018073
+v -0.906309 0.303624 -0.112733
+v -0.906479 0.317860 -0.113865
+v -0.907957 0.322962 -0.102199
+v -0.906896 0.311825 -0.092512
+v -0.906031 0.299519 -0.099606
+v -0.941719 0.303009 -0.101606
+v -0.939030 0.299501 -0.112069
+v -0.948090 0.291392 -0.105249
+v -0.965294 0.305935 -0.071314
+v -0.965162 0.305535 -0.078756
+v -0.972091 0.298701 -0.074351
+v -0.841578 0.340336 -0.055388
+v -0.855921 0.332205 -0.026418
+v -0.841092 0.335478 -0.037826
+v -0.966333 0.309162 -0.055292
+v -0.971457 0.296787 -0.057628
+v -0.974617 0.299676 -0.047939
+v -0.964395 0.302563 -0.012991
+v -0.964069 0.301372 -0.023422
+v -0.972481 0.294499 -0.017808
+v -0.823741 0.295120 -0.027878
+v -0.845382 0.304521 -0.030178
+v -0.858955 0.318845 -0.005538
+v -0.894994 0.318576 0.021116
+v -0.894433 0.305101 0.030385
+v -0.885758 0.293930 0.022748
+v -0.885758 0.289052 0.007662
+v -0.886263 0.302423 -0.002559
+v -0.913524 0.317452 -0.063753
+v -0.912633 0.306951 -0.066372
+v -0.912525 0.306612 -0.081599
+v -0.913386 0.316905 -0.084002
+v -0.914441 0.329638 -0.081483
+v -0.914561 0.329435 -0.070742
+v -0.913656 0.324143 -0.036580
+v -0.912834 0.309725 -0.039758
+v -0.912733 0.308982 -0.052521
+v -0.913596 0.318456 -0.059502
+v -0.914649 0.332728 -0.056741
+v -0.914738 0.333791 -0.042728
+v -0.914316 0.317271 -0.007286
+v -0.914044 0.307026 -0.010625
+v -0.913465 0.303222 -0.023223
+v -0.913992 0.316792 -0.026910
+v -0.914711 0.327140 -0.024733
+v -0.914712 0.327838 -0.012102
+v -0.886880 0.318403 0.003433
+v -0.912130 0.310895 0.015093
+v -0.911569 0.301338 0.023150
+v -0.932726 0.313122 -0.102193
+v -0.929867 0.302823 -0.092941
+v -0.926820 0.290615 -0.099559
+v -0.927820 0.294607 -0.112685
+v -0.930497 0.308568 -0.113339
+v -0.946442 0.308737 -0.063707
+v -0.943737 0.299756 -0.068410
+v -0.943586 0.300252 -0.081565
+v -0.946229 0.308221 -0.083956
+v -0.949484 0.315907 -0.080187
+v -0.949557 0.316457 -0.070672
+v -0.951971 0.315692 -0.036535
+v -0.948652 0.304082 -0.039728
+v -0.948436 0.302545 -0.052486
+v -0.950943 0.310100 -0.059457
+v -0.954463 0.318716 -0.056666
+v -0.954722 0.319748 -0.042654
+v -0.945088 0.308805 -0.006500
+v -0.942883 0.298888 -0.010096
+v -0.941854 0.297813 -0.023194
+v -0.944675 0.308346 -0.027607
+v -0.950759 0.313296 -0.025232
+v -0.950878 0.314901 -0.011651
+v -0.947581 0.294064 -0.093913
+v -0.942713 0.283864 -0.099862
+v -0.944323 0.287197 -0.111653
+v -0.968595 0.297354 -0.065851
+v -0.965195 0.291030 -0.069455
+v -0.965094 0.291297 -0.079823
+v -0.968368 0.296990 -0.081691
+v -0.973236 0.301254 -0.038216
+v -0.970486 0.293645 -0.040931
+v -0.970058 0.292405 -0.051736
+v -0.966710 0.309976 -0.043425
+v -0.967491 0.295527 -0.008501
+v -0.964053 0.287824 -0.011341
+v -0.963219 0.287433 -0.022121
+v -0.967031 0.295062 -0.025569
+v -0.212542 0.057791 -0.088298
+v -0.211862 0.060508 0.009634
+v -0.074976 0.068439 -0.157155
+v -0.162552 0.066391 -0.134785
+v -0.081050 0.033861 0.115662
+v -0.160633 0.047774 0.063700
+v -0.194459 -0.061973 -0.077289
+v -0.193830 -0.059312 0.010272
+v -0.073683 -0.054174 -0.145085
+v -0.154612 -0.059717 -0.122697
+v -0.079296 -0.078306 0.096437
+v -0.152838 -0.064359 0.064297
+v -0.207251 -0.185366 -0.080232
+v -0.206587 -0.182710 0.006394
+v -0.073030 -0.183652 -0.163583
+v -0.158477 -0.187001 -0.140772
+v -0.078957 -0.186118 0.087508
+v -0.156604 -0.188284 0.058716
+v -0.218249 -0.319549 -0.070898
+v -0.217576 -0.316931 0.008457
+v -0.078096 -0.336320 -0.156648
+v -0.163948 -0.323822 -0.126342
+v -0.084106 -0.327601 0.074255
+v -0.162049 -0.325183 0.058479
+v -0.230857 -0.433306 -0.066731
+v -0.230120 -0.430637 0.005062
+v -0.083867 -0.441582 -0.135759
+v -0.164983 -0.437718 -0.116889
+v -0.162904 -0.439271 0.050326
+v -0.090446 -0.441802 0.064600
+v -0.232151 -0.553788 -0.054626
+v -0.222780 -0.553256 0.008807
+v -0.030897 -0.438307 -0.119357
+v -0.048588 -0.553257 -0.101597
+v -0.113091 -0.554776 -0.114688
+v -0.182853 -0.554391 -0.102225
+v -0.101931 -0.553988 0.053602
+v -0.030840 -0.553254 0.020694
+v -0.017902 -0.429087 0.007909
+v -0.164568 -0.553797 0.048133
+v -0.004402 -0.430298 -0.042374
+v -0.015348 -0.553254 -0.044763
+v -0.214362 -0.670689 -0.045876
+v -0.206550 -0.670152 0.018721
+v -0.062418 -0.670163 -0.093709
+v -0.115103 -0.671683 -0.107040
+v -0.173263 -0.671297 -0.094348
+v -0.105799 -0.670879 0.064337
+v -0.046932 -0.670148 0.030825
+v -0.158019 -0.670688 0.058767
+v -0.034017 -0.670154 -0.035833
+v -0.205520 -0.790744 -0.044596
+v -0.198330 -0.790216 0.018314
+v -0.065695 -0.790211 -0.091181
+v -0.114178 -0.791730 -0.104164
+v -0.167699 -0.791346 -0.091803
+v -0.105616 -0.790949 0.062739
+v -0.052721 -0.790214 0.030102
+v -0.153670 -0.790758 0.057315
+v -0.041396 -0.790211 -0.034815
+v -0.189550 -0.909826 -0.048240
+v -0.183215 -0.909319 0.010603
+v -0.066346 -0.909277 -0.091813
+v -0.109066 -0.910791 -0.103956
+v -0.156225 -0.910411 -0.092394
+v -0.101522 -0.910068 0.052156
+v -0.058959 -0.909321 0.021629
+v -0.143864 -0.909875 0.047083
+v -0.044935 -0.909296 -0.039091
+v -0.189550 -1.019634 -0.049842
+v -0.183215 -1.019136 0.007524
+v -0.066346 -1.019080 -0.092321
+v -0.109066 -1.020592 -0.104159
+v -0.156225 -1.020214 -0.092888
+v -0.101522 -1.019890 0.048035
+v -0.058959 -1.019139 0.018274
+v -0.143864 -1.019696 0.043088
+v -0.044935 -1.019106 -0.040923
+v -0.187683 -1.124102 -0.060565
+v -0.173184 -1.123543 0.008080
+v -0.066346 -1.123548 -0.103045
+v -0.109066 -1.125059 -0.114883
+v -0.156225 -1.124681 -0.103611
+v -0.102543 -1.124298 0.048591
+v -0.063187 -1.123546 0.018830
+v -0.142420 -1.124104 0.043644
+v -0.048874 -1.123573 -0.051647
+v -0.187587 -1.214756 -0.059215
+v -0.176789 -1.187160 0.027773
+v -0.066346 -1.211538 -0.102576
+v -0.109066 -1.213050 -0.114414
+v -0.156225 -1.215113 -0.103130
+v -0.101522 -1.161543 0.182298
+v -0.101522 -1.215162 0.182584
+v -0.065622 -1.209567 0.152797
+v -0.065622 -1.176706 0.152622
+v -0.143864 -1.161349 0.177352
+v -0.143864 -1.214969 0.177638
+v -0.172507 -1.176703 0.141872
+v -0.172507 -1.217876 0.142092
+v -0.048874 -1.214235 -0.051164
+v -0.061340 -1.187217 0.028251
+v -0.101522 -1.129409 0.075410
+v -0.060438 -1.139723 0.075530
+v -0.060438 -1.215808 0.088571
+v -0.101522 -1.223975 0.088549
+v -0.096105 -1.203909 0.025452
+v -0.143864 -1.129189 0.075425
+v -0.143864 -1.223755 0.088564
+v -0.142420 -1.203690 0.025231
+v -0.177691 -1.139663 0.075534
+v -0.177691 -1.215747 0.088575
+v -0.152430 -1.224410 -0.061332
+v -0.106418 -1.224701 -0.060935
+v -0.019006 0.497120 0.072960
+v -0.037052 0.575812 0.070753
+v -0.028603 0.575952 0.074675
+usemtl mike.jpg
+f 114 115 116
+f 125 126 127
+f 114 119 115
+f 191 197 198
+f 235 223 222
+f 236 237 238
+f 239 227 240
+f 241 233 235
+f 237 234 242
+f 243 244 239
+f 248 249 250
+f 251 250 252
+f 215 203 211
+f 258 259 260
+f 261 262 263
+f 202 194 201
+f 267 268 269
+f 270 271 272
+f 201 245 247
+f 229 215 275
+f 275 230 229
+f 250 249 300
+f 301 250 300
+f 252 250 301
+f 248 250 251
+f 337 271 270
+f 271 336 338
+f 272 271 339
+f 337 336 271
+f 339 271 338
+f 333 268 335
+f 268 332 334
+f 269 268 334
+f 335 268 267
+f 333 332 268
+f 329 262 261
+f 328 330 262
+f 263 262 331
+f 329 328 262
+f 331 262 330
+f 259 325 326
+f 327 259 326
+f 260 259 327
+f 258 325 259
+f 439 463 442
+f 465 83 81
+f 79 465 81
+f 62 467 65
+f 65 467 67
+f 61 85 466
+f 558 559 560
+f 569 570 571
+f 558 560 562
+f 628 635 636
+f 673 662 661
+f 674 675 676
+f 677 678 665
+f 679 673 671
+f 676 680 672
+f 681 677 682
+f 686 687 688
+f 689 690 687
+f 654 649 640
+f 696 697 698
+f 699 700 701
+f 641 639 632
+f 705 706 707
+f 708 709 710
+f 639 684 683
+f 667 713 654
+f 713 667 670
+f 687 738 688
+f 739 738 687
+f 690 739 687
+f 686 689 687
+f 774 708 710
+f 710 776 775
+f 709 777 710
+f 774 710 775
+f 777 776 710
+f 770 773 707
+f 707 772 771
+f 706 772 707
+f 773 705 707
+f 770 707 771
+f 766 699 701
+f 767 701 768
+f 700 769 701
+f 766 701 767
+f 769 768 701
+f 698 764 763
+f 765 764 698
+f 697 765 698
+f 696 698 763
+f 367 374 798
+f 800 378 369
+f 865 869 890
+f 892 526 528
+f 524 526 892
+f 508 510 893
+f 510 512 893
+f 505 894 529
+f 370 369 378
+f 367 366 374
+f 42 41 60
+f 86 42 60
+f 59 86 60
+f 61 64 42
+f 61 42 86
+f 61 86 85
+f 273 274 226
+f 245 273 226
+f 245 226 225
+f 266 265 216
+f 266 216 215
+f 229 266 215
+f 60 41 495
+f 60 495 530
+f 60 530 504
+f 495 506 505
+f 530 495 505
+f 529 530 505
+f 666 712 711
+f 666 711 683
+f 663 666 683
+f 653 704 703
+f 654 653 703
+f 654 703 667
+f 798 374 804
+f 374 810 804
+f 374 392 818
+f 374 818 810
+f 392 378 816
+f 392 816 818
+f 800 807 816
+f 800 816 378
+f 566 555 556
+f 566 556 557
+f 120 111 123
+f 111 110 123
+f 555 548 550
+f 555 550 556
+f 548 500 502
+f 548 502 550
+f 502 500 55
+f 500 52 55
+f 56 55 51
+f 55 52 51
+f 51 104 56
+f 104 105 56
+f 104 111 105
+f 111 112 105
+f 529 894 515
+f 894 514 515
+f 893 512 514
+f 893 514 894
+f 508 893 505
+f 893 894 505
+f 489 524 488
+f 524 892 488
+f 488 892 528
+f 488 528 487
+f 889 877 876
+f 889 876 888
+f 886 875 877
+f 886 877 889
+f 888 876 885
+f 876 874 885
+f 883 871 875
+f 883 875 886
+f 885 874 880
+f 874 870 880
+f 882 872 883
+f 872 871 883
+f 881 873 882
+f 873 872 882
+f 880 870 873
+f 880 873 881
+f 891 878 884
+f 878 879 884
+f 868 867 891
+f 867 878 891
+f 887 890 891
+f 887 891 884
+f 866 865 887
+f 865 890 887
+f 890 869 891
+f 869 868 891
+f 866 889 888
+f 866 888 857
+f 887 886 889
+f 887 889 866
+f 857 888 863
+f 888 885 863
+f 884 883 887
+f 883 886 887
+f 863 885 861
+f 885 880 861
+f 879 882 884
+f 882 883 884
+f 862 881 879
+f 881 882 879
+f 861 880 881
+f 861 881 862
+f 862 879 864
+f 879 878 864
+f 864 878 867
+f 864 867 858
+f 876 877 875
+f 876 875 874
+f 874 875 870
+f 875 871 870
+f 870 871 873
+f 871 872 873
+f 860 869 865
+f 860 865 856
+f 859 868 860
+f 868 869 860
+f 858 867 859
+f 867 868 859
+f 856 865 866
+f 856 866 857
+f 853 862 855
+f 862 864 855
+f 855 864 849
+f 864 858 849
+f 848 857 854
+f 857 863 854
+f 854 863 852
+f 863 861 852
+f 852 861 862
+f 852 862 853
+f 851 860 856
+f 851 856 847
+f 850 859 860
+f 850 860 851
+f 849 858 850
+f 858 859 850
+f 847 856 857
+f 847 857 848
+f 844 853 846
+f 853 855 846
+f 846 855 840
+f 855 849 840
+f 839 848 854
+f 839 854 845
+f 845 854 843
+f 854 852 843
+f 843 852 844
+f 852 853 844
+f 842 851 847
+f 842 847 838
+f 841 850 851
+f 841 851 842
+f 840 849 841
+f 849 850 841
+f 838 847 848
+f 838 848 839
+f 835 844 837
+f 844 846 837
+f 837 846 831
+f 846 840 831
+f 830 839 836
+f 839 845 836
+f 836 845 834
+f 845 843 834
+f 834 843 835
+f 843 844 835
+f 833 842 838
+f 833 838 829
+f 832 841 842
+f 832 842 833
+f 831 840 832
+f 840 841 832
+f 829 838 839
+f 829 839 830
+f 826 835 837
+f 826 837 828
+f 828 837 822
+f 837 831 822
+f 821 830 827
+f 830 836 827
+f 827 836 825
+f 836 834 825
+f 825 834 835
+f 825 835 826
+f 824 833 829
+f 824 829 820
+f 823 832 833
+f 823 833 824
+f 822 831 823
+f 831 832 823
+f 820 829 821
+f 829 830 821
+f 815 826 828
+f 815 828 819
+f 819 828 811
+f 828 822 811
+f 809 821 817
+f 821 827 817
+f 817 827 814
+f 827 825 814
+f 814 825 826
+f 814 826 815
+f 813 824 820
+f 813 820 808
+f 812 823 824
+f 812 824 813
+f 811 822 812
+f 822 823 812
+f 808 820 809
+f 820 821 809
+f 810 818 819
+f 810 819 811
+f 818 816 819
+f 816 815 819
+f 803 809 806
+f 809 817 806
+f 806 817 814
+f 806 814 807
+f 807 814 815
+f 807 815 816
+f 805 813 802
+f 813 808 802
+f 804 812 805
+f 812 813 805
+f 810 811 804
+f 811 812 804
+f 802 808 803
+f 808 809 803
+f 797 803 801
+f 803 806 801
+f 801 806 807
+f 801 807 800
+f 799 805 796
+f 805 802 796
+f 798 804 805
+f 798 805 799
+f 796 802 803
+f 796 803 797
+f 791 797 795
+f 797 801 795
+f 795 801 800
+f 795 800 794
+f 794 800 369
+f 794 369 361
+f 793 799 790
+f 799 796 790
+f 792 798 793
+f 798 799 793
+f 359 367 792
+f 367 798 792
+f 790 796 791
+f 796 797 791
+f 785 791 789
+f 791 795 789
+f 789 795 788
+f 795 794 788
+f 788 794 353
+f 794 361 353
+f 787 793 790
+f 787 790 784
+f 786 792 787
+f 792 793 787
+f 351 359 786
+f 359 792 786
+f 784 790 791
+f 784 791 785
+f 779 785 783
+f 785 789 783
+f 783 789 782
+f 789 788 782
+f 782 788 345
+f 788 353 345
+f 781 787 778
+f 787 784 778
+f 780 786 781
+f 786 787 781
+f 343 351 780
+f 351 786 780
+f 778 784 779
+f 784 785 779
+f 588 779 783
+f 588 783 592
+f 592 783 591
+f 783 782 591
+f 591 782 152
+f 782 345 152
+f 590 781 587
+f 781 778 587
+f 589 780 590
+f 780 781 590
+f 150 343 589
+f 343 780 589
+f 587 778 588
+f 778 779 588
+f 762 708 757
+f 708 774 757
+f 761 709 708
+f 761 708 762
+f 760 777 709
+f 760 709 761
+f 759 776 777
+f 759 777 760
+f 758 775 776
+f 758 776 759
+f 757 774 758
+f 774 775 758
+f 756 773 751
+f 773 770 751
+f 755 705 773
+f 755 773 756
+f 754 706 705
+f 754 705 755
+f 753 772 706
+f 753 706 754
+f 752 771 753
+f 771 772 753
+f 751 770 752
+f 770 771 752
+f 750 699 745
+f 699 766 745
+f 749 700 699
+f 749 699 750
+f 748 769 700
+f 748 700 749
+f 747 768 769
+f 747 769 748
+f 746 767 768
+f 746 768 747
+f 745 766 746
+f 766 767 746
+f 744 697 696
+f 744 696 740
+f 743 765 697
+f 743 697 744
+f 742 764 765
+f 742 765 743
+f 741 763 742
+f 763 764 742
+f 740 696 741
+f 696 763 741
+f 736 762 757
+f 736 757 731
+f 735 761 762
+f 735 762 736
+f 734 760 735
+f 760 761 735
+f 733 759 760
+f 733 760 734
+f 732 758 759
+f 732 759 733
+f 731 757 732
+f 757 758 732
+f 730 756 725
+f 756 751 725
+f 729 755 756
+f 729 756 730
+f 728 754 755
+f 728 755 729
+f 727 753 754
+f 727 754 728
+f 726 752 727
+f 752 753 727
+f 725 751 726
+f 751 752 726
+f 724 750 719
+f 750 745 719
+f 723 749 724
+f 749 750 724
+f 722 748 749
+f 722 749 723
+f 721 747 748
+f 721 748 722
+f 720 746 721
+f 746 747 721
+f 719 745 720
+f 745 746 720
+f 692 744 693
+f 744 740 693
+f 691 743 744
+f 691 744 692
+f 695 742 743
+f 695 743 691
+f 694 741 695
+f 741 742 695
+f 693 740 694
+f 740 741 694
+f 717 689 718
+f 689 686 718
+f 716 690 717
+f 690 689 717
+f 715 739 690
+f 715 690 716
+f 714 738 739
+f 714 739 715
+f 737 688 714
+f 688 738 714
+f 718 686 688
+f 718 688 737
+f 737 713 718
+f 713 670 718
+f 737 714 650
+f 737 650 713
+f 654 713 649
+f 713 650 649
+f 668 736 731
+f 668 731 669
+f 682 735 668
+f 735 736 668
+f 677 734 735
+f 677 735 682
+f 665 733 734
+f 665 734 677
+f 664 732 665
+f 732 733 665
+f 669 731 732
+f 669 732 664
+f 681 730 725
+f 681 725 677
+f 680 729 730
+f 680 730 681
+f 676 728 729
+f 676 729 680
+f 675 727 728
+f 675 728 676
+f 678 726 727
+f 678 727 675
+f 677 725 726
+f 677 726 678
+f 672 724 676
+f 724 719 676
+f 671 723 672
+f 723 724 672
+f 673 722 671
+f 722 723 671
+f 661 721 673
+f 721 722 673
+f 674 720 721
+f 674 721 661
+f 676 719 720
+f 676 720 674
+f 663 717 718
+f 663 718 670
+f 685 716 717
+f 685 717 663
+f 651 715 716
+f 651 716 685
+f 650 714 651
+f 714 715 651
+f 704 653 702
+f 653 642 702
+f 711 638 639
+f 711 639 683
+f 665 678 666
+f 678 712 666
+f 647 712 678
+f 647 678 675
+f 660 648 674
+f 660 674 661
+f 711 712 647
+f 711 647 638
+f 648 660 646
+f 648 646 637
+f 682 668 667
+f 682 667 703
+f 680 681 702
+f 681 704 702
+f 671 656 655
+f 671 655 679
+f 657 702 642
+f 657 642 643
+f 681 682 703
+f 681 703 704
+f 672 680 657
+f 680 702 657
+f 669 664 670
+f 664 663 670
+f 651 685 652
+f 685 684 652
+f 652 684 641
+f 684 639 641
+f 658 679 645
+f 679 655 645
+f 645 655 643
+f 645 643 636
+f 628 636 643
+f 628 643 629
+f 647 675 674
+f 647 674 648
+f 662 695 659
+f 695 691 659
+f 673 694 662
+f 694 695 662
+f 679 693 673
+f 693 694 673
+f 658 692 693
+f 658 693 679
+f 659 691 692
+f 659 692 658
+f 646 662 644
+f 662 659 644
+f 683 684 663
+f 684 685 663
+f 640 649 641
+f 649 652 641
+f 671 672 656
+f 672 657 656
+f 667 668 669
+f 667 669 670
+f 663 664 666
+f 664 665 666
+f 646 660 661
+f 646 661 662
+f 658 645 659
+f 645 644 659
+f 643 655 657
+f 655 656 657
+f 640 642 653
+f 640 653 654
+f 649 650 652
+f 650 651 652
+f 638 647 648
+f 638 648 637
+f 637 646 635
+f 646 644 635
+f 635 644 636
+f 644 645 636
+f 629 643 642
+f 629 642 634
+f 634 642 640
+f 634 640 633
+f 633 640 632
+f 640 641 632
+f 632 639 631
+f 639 638 631
+f 631 638 630
+f 638 637 630
+f 630 637 628
+f 637 635 628
+f 622 629 634
+f 622 634 627
+f 627 634 626
+f 634 633 626
+f 626 633 625
+f 633 632 625
+f 625 632 631
+f 625 631 624
+f 624 631 623
+f 631 630 623
+f 623 630 621
+f 630 628 621
+f 621 628 629
+f 621 629 622
+f 615 622 627
+f 615 627 620
+f 620 627 619
+f 627 626 619
+f 619 626 618
+f 626 625 618
+f 618 625 624
+f 618 624 617
+f 617 624 623
+f 617 623 616
+f 616 623 614
+f 623 621 614
+f 614 621 622
+f 614 622 615
+f 608 615 620
+f 608 620 613
+f 613 620 612
+f 620 619 612
+f 612 619 611
+f 619 618 611
+f 611 618 610
+f 618 617 610
+f 610 617 616
+f 610 616 609
+f 609 616 614
+f 609 614 607
+f 607 614 615
+f 607 615 608
+f 601 608 606
+f 608 613 606
+f 606 613 612
+f 606 612 605
+f 605 612 611
+f 605 611 604
+f 604 611 603
+f 611 610 603
+f 603 610 609
+f 603 609 602
+f 602 609 607
+f 602 607 600
+f 600 607 601
+f 607 608 601
+f 594 601 606
+f 594 606 599
+f 599 606 598
+f 606 605 598
+f 598 605 604
+f 598 604 597
+f 597 604 603
+f 597 603 596
+f 596 603 602
+f 596 602 595
+f 595 602 593
+f 602 600 593
+f 593 600 601
+f 593 601 594
+f 468 594 481
+f 594 599 481
+f 481 599 598
+f 481 598 479
+f 479 598 597
+f 479 597 477
+f 477 597 596
+f 477 596 475
+f 475 596 473
+f 596 595 473
+f 473 595 471
+f 595 593 471
+f 471 593 468
+f 593 594 468
+f 474 588 586
+f 588 592 586
+f 586 592 585
+f 592 591 585
+f 585 591 144
+f 591 152 144
+f 584 590 472
+f 590 587 472
+f 583 589 584
+f 589 590 584
+f 142 150 583
+f 150 589 583
+f 472 587 474
+f 587 588 474
+f 476 474 579
+f 474 586 579
+f 579 586 573
+f 586 585 573
+f 573 585 129
+f 585 144 129
+f 582 584 470
+f 584 472 470
+f 584 582 583
+f 582 574 583
+f 131 142 583
+f 131 583 574
+f 476 579 478
+f 579 578 478
+f 582 470 469
+f 582 469 580
+f 581 480 578
+f 480 478 578
+f 580 469 581
+f 469 480 581
+f 577 574 582
+f 577 582 580
+f 575 581 578
+f 575 578 576
+f 577 580 575
+f 580 581 575
+f 573 576 579
+f 576 578 579
+f 573 483 576
+f 483 544 576
+f 483 482 544
+f 482 541 544
+f 577 575 543
+f 577 543 551
+f 543 542 549
+f 543 549 551
+f 503 574 551
+f 574 577 551
+f 543 575 544
+f 575 576 544
+f 131 574 503
+f 131 503 58
+f 483 573 129
+f 483 129 17
+f 572 552 553
+f 572 553 554
+f 572 569 571
+f 572 571 536
+f 557 539 538
+f 557 538 563
+f 571 561 536
+f 561 537 536
+f 569 572 568
+f 572 554 568
+f 535 552 572
+f 535 572 536
+f 566 568 555
+f 568 554 555
+f 563 538 537
+f 563 537 561
+f 568 567 569
+f 567 570 569
+f 559 571 570
+f 559 570 567
+f 559 567 565
+f 559 565 560
+f 562 560 565
+f 562 565 564
+f 563 562 557
+f 562 564 557
+f 571 559 558
+f 571 558 561
+f 566 565 568
+f 565 567 568
+f 557 564 566
+f 564 565 566
+f 561 558 562
+f 561 562 563
+f 539 557 542
+f 557 556 542
+f 540 539 541
+f 539 542 541
+f 550 549 556
+f 549 542 556
+f 547 548 554
+f 548 555 554
+f 546 547 553
+f 547 554 553
+f 545 546 552
+f 546 553 552
+f 534 545 535
+f 545 552 535
+f 501 503 549
+f 503 551 549
+f 502 501 550
+f 501 549 550
+f 499 500 547
+f 500 548 547
+f 498 499 546
+f 499 547 546
+f 496 498 545
+f 498 546 545
+f 497 496 534
+f 496 545 534
+f 485 486 527
+f 485 527 533
+f 484 485 533
+f 484 533 540
+f 482 484 540
+f 482 540 541
+f 541 542 543
+f 541 543 544
+f 532 539 540
+f 532 540 533
+f 531 538 532
+f 538 539 532
+f 519 537 538
+f 519 538 531
+f 520 536 537
+f 520 537 519
+f 521 535 520
+f 535 536 520
+f 522 534 521
+f 534 535 521
+f 494 497 522
+f 497 534 522
+f 525 532 533
+f 525 533 527
+f 523 531 525
+f 531 532 525
+f 517 519 523
+f 519 531 523
+f 518 517 490
+f 517 523 490
+f 529 515 504
+f 529 504 530
+f 514 513 516
+f 514 516 515
+f 493 516 492
+f 516 518 492
+f 492 518 491
+f 518 490 491
+f 528 527 486
+f 528 486 487
+f 526 525 527
+f 526 527 528
+f 524 523 526
+f 523 525 526
+f 489 490 524
+f 490 523 524
+f 522 506 494
+f 506 495 494
+f 521 507 522
+f 507 506 522
+f 520 509 521
+f 509 507 521
+f 519 511 509
+f 519 509 520
+f 517 513 511
+f 517 511 519
+f 516 513 518
+f 513 517 518
+f 497 494 45
+f 494 40 45
+f 515 516 504
+f 516 493 504
+f 512 511 513
+f 512 513 514
+f 510 509 511
+f 510 511 512
+f 508 507 510
+f 507 509 510
+f 505 506 508
+f 506 507 508
+f 504 493 60
+f 493 38 60
+f 503 501 54
+f 503 54 58
+f 501 502 54
+f 502 55 54
+f 500 499 52
+f 499 50 52
+f 499 498 50
+f 498 48 50
+f 498 496 48
+f 496 44 48
+f 496 497 44
+f 497 45 44
+f 494 495 41
+f 494 41 40
+f 493 492 38
+f 492 36 38
+f 492 491 36
+f 491 34 36
+f 491 490 32
+f 491 32 34
+f 490 489 32
+f 489 30 32
+f 489 488 28
+f 489 28 30
+f 488 487 28
+f 487 26 28
+f 487 486 24
+f 487 24 26
+f 486 485 22
+f 486 22 24
+f 485 484 20
+f 485 20 22
+f 484 482 16
+f 484 16 20
+f 482 483 17
+f 482 17 16
+f 481 480 468
+f 480 469 468
+f 479 478 481
+f 478 480 481
+f 477 476 478
+f 477 478 479
+f 475 474 476
+f 475 476 477
+f 474 475 472
+f 475 473 472
+f 471 470 473
+f 470 472 473
+f 468 469 471
+f 469 470 471
+f 85 71 466
+f 71 69 466
+f 467 466 69
+f 467 69 67
+f 62 61 467
+f 61 466 467
+f 29 27 79
+f 27 465 79
+f 27 25 83
+f 27 83 465
+f 462 461 449
+f 462 449 450
+f 460 462 450
+f 460 450 448
+f 461 458 449
+f 458 447 449
+f 457 460 448
+f 457 448 446
+f 458 454 447
+f 454 443 447
+f 455 457 445
+f 457 446 445
+f 453 455 444
+f 455 445 444
+f 454 453 444
+f 454 444 443
+f 464 456 451
+f 456 452 451
+f 440 464 441
+f 464 451 441
+f 459 456 464
+f 459 464 463
+f 438 459 439
+f 459 463 439
+f 463 464 442
+f 464 440 442
+f 438 429 461
+f 438 461 462
+f 459 438 462
+f 459 462 460
+f 429 436 461
+f 436 458 461
+f 456 459 457
+f 459 460 457
+f 436 435 458
+f 435 454 458
+f 452 456 455
+f 456 457 455
+f 434 452 453
+f 452 455 453
+f 435 434 453
+f 435 453 454
+f 434 437 452
+f 437 451 452
+f 437 432 441
+f 437 441 451
+f 449 447 448
+f 449 448 450
+f 447 443 448
+f 443 446 448
+f 443 444 446
+f 444 445 446
+f 433 430 439
+f 433 439 442
+f 431 433 440
+f 433 442 440
+f 432 431 441
+f 431 440 441
+f 430 429 438
+f 430 438 439
+f 425 428 434
+f 428 437 434
+f 428 423 437
+f 423 432 437
+f 420 427 429
+f 427 436 429
+f 427 426 436
+f 426 435 436
+f 426 425 434
+f 426 434 435
+f 424 421 430
+f 424 430 433
+f 422 424 433
+f 422 433 431
+f 423 422 432
+f 422 431 432
+f 421 420 429
+f 421 429 430
+f 416 419 425
+f 419 428 425
+f 419 414 428
+f 414 423 428
+f 411 418 427
+f 411 427 420
+f 418 417 427
+f 417 426 427
+f 417 416 426
+f 416 425 426
+f 415 412 421
+f 415 421 424
+f 413 415 424
+f 413 424 422
+f 414 413 423
+f 413 422 423
+f 412 411 420
+f 412 420 421
+f 407 410 416
+f 410 419 416
+f 410 405 419
+f 405 414 419
+f 402 409 411
+f 409 418 411
+f 409 408 418
+f 408 417 418
+f 408 407 417
+f 407 416 417
+f 406 403 412
+f 406 412 415
+f 404 406 415
+f 404 415 413
+f 405 404 414
+f 404 413 414
+f 403 402 411
+f 403 411 412
+f 398 401 410
+f 398 410 407
+f 401 396 410
+f 396 405 410
+f 393 400 402
+f 400 409 402
+f 400 399 409
+f 399 408 409
+f 399 398 407
+f 399 407 408
+f 397 394 403
+f 397 403 406
+f 395 397 406
+f 395 406 404
+f 396 395 405
+f 395 404 405
+f 394 393 403
+f 393 402 403
+f 387 391 401
+f 387 401 398
+f 391 385 401
+f 385 396 401
+f 382 389 393
+f 389 400 393
+f 389 388 400
+f 388 399 400
+f 388 387 398
+f 388 398 399
+f 386 383 394
+f 386 394 397
+f 384 386 397
+f 384 397 395
+f 385 384 396
+f 384 395 396
+f 383 382 394
+f 382 393 394
+f 376 385 391
+f 376 391 390
+f 374 376 390
+f 374 390 392
+f 392 390 379
+f 392 379 378
+f 390 391 379
+f 391 387 379
+f 372 381 382
+f 381 389 382
+f 381 380 388
+f 381 388 389
+f 380 379 387
+f 380 387 388
+f 377 373 386
+f 373 383 386
+f 375 377 384
+f 377 386 384
+f 376 375 385
+f 375 384 385
+f 373 372 383
+f 372 382 383
+f 364 371 372
+f 371 381 372
+f 371 370 380
+f 371 380 381
+f 370 378 379
+f 370 379 380
+f 368 365 377
+f 365 373 377
+f 366 368 377
+f 366 377 375
+f 374 366 375
+f 374 375 376
+f 365 364 372
+f 365 372 373
+f 356 363 364
+f 363 371 364
+f 363 362 370
+f 363 370 371
+f 362 361 369
+f 362 369 370
+f 360 357 368
+f 357 365 368
+f 358 360 366
+f 360 368 366
+f 359 358 367
+f 358 366 367
+f 357 356 365
+f 356 364 365
+f 348 355 356
+f 355 363 356
+f 355 354 363
+f 354 362 363
+f 354 353 362
+f 353 361 362
+f 352 349 357
+f 352 357 360
+f 350 352 358
+f 352 360 358
+f 351 350 359
+f 350 358 359
+f 349 348 356
+f 349 356 357
+f 340 347 348
+f 347 355 348
+f 347 346 355
+f 346 354 355
+f 346 345 354
+f 345 353 354
+f 344 341 352
+f 341 349 352
+f 342 344 350
+f 344 352 350
+f 343 342 351
+f 342 350 351
+f 341 340 349
+f 340 348 349
+f 147 154 340
+f 154 347 340
+f 154 153 347
+f 153 346 347
+f 153 152 346
+f 152 345 346
+f 151 148 344
+f 148 341 344
+f 149 151 342
+f 151 344 342
+f 150 149 343
+f 149 342 343
+f 148 147 341
+f 147 340 341
+f 324 320 270
+f 320 337 270
+f 323 324 270
+f 323 270 272
+f 322 323 272
+f 322 272 339
+f 321 322 339
+f 321 339 338
+f 319 321 338
+f 319 338 336
+f 320 319 337
+f 319 336 337
+f 318 314 335
+f 314 333 335
+f 317 318 335
+f 317 335 267
+f 316 317 267
+f 316 267 269
+f 315 316 269
+f 315 269 334
+f 313 315 332
+f 315 334 332
+f 314 313 333
+f 313 332 333
+f 312 308 261
+f 308 329 261
+f 311 312 261
+f 311 261 263
+f 310 311 263
+f 310 263 331
+f 309 310 331
+f 309 331 330
+f 307 309 330
+f 307 330 328
+f 308 307 329
+f 307 328 329
+f 306 303 258
+f 306 258 260
+f 305 306 260
+f 305 260 327
+f 304 305 327
+f 304 327 326
+f 302 304 325
+f 304 326 325
+f 303 302 258
+f 302 325 258
+f 298 294 320
+f 298 320 324
+f 297 298 324
+f 297 324 323
+f 296 297 322
+f 297 323 322
+f 295 296 322
+f 295 322 321
+f 293 295 321
+f 293 321 319
+f 294 293 320
+f 293 319 320
+f 292 288 318
+f 288 314 318
+f 291 292 318
+f 291 318 317
+f 290 291 317
+f 290 317 316
+f 289 290 316
+f 289 316 315
+f 287 289 313
+f 289 315 313
+f 288 287 314
+f 287 313 314
+f 286 282 312
+f 282 308 312
+f 285 286 311
+f 286 312 311
+f 284 285 311
+f 284 311 310
+f 283 284 310
+f 283 310 309
+f 281 283 307
+f 283 309 307
+f 282 281 308
+f 281 307 308
+f 253 255 306
+f 255 303 306
+f 254 253 306
+f 254 306 305
+f 257 254 305
+f 257 305 304
+f 256 257 302
+f 257 304 302
+f 255 256 303
+f 256 302 303
+f 279 280 251
+f 280 248 251
+f 278 279 252
+f 279 251 252
+f 276 278 252
+f 276 252 301
+f 277 276 301
+f 277 301 300
+f 299 277 249
+f 277 300 249
+f 280 299 249
+f 280 249 248
+f 299 280 275
+f 280 230 275
+f 299 275 214
+f 299 214 277
+f 215 211 275
+f 211 214 275
+f 232 231 294
+f 232 294 298
+f 244 232 297
+f 232 298 297
+f 239 244 297
+f 239 297 296
+f 227 239 296
+f 227 296 295
+f 228 227 293
+f 227 295 293
+f 231 228 293
+f 231 293 294
+f 243 239 288
+f 243 288 292
+f 242 243 292
+f 242 292 291
+f 237 242 291
+f 237 291 290
+f 238 237 290
+f 238 290 289
+f 240 238 289
+f 240 289 287
+f 239 240 287
+f 239 287 288
+f 234 237 286
+f 237 282 286
+f 233 234 285
+f 234 286 285
+f 235 233 284
+f 233 285 284
+f 223 235 283
+f 235 284 283
+f 236 223 283
+f 236 283 281
+f 237 236 281
+f 237 281 282
+f 225 230 280
+f 225 280 279
+f 246 225 279
+f 246 279 278
+f 213 246 278
+f 213 278 276
+f 214 213 277
+f 213 276 277
+f 265 264 216
+f 264 204 216
+f 273 245 201
+f 273 201 200
+f 227 226 240
+f 226 274 240
+f 210 238 240
+f 210 240 274
+f 224 223 236
+f 224 236 209
+f 273 200 210
+f 273 210 274
+f 209 199 208
+f 209 208 224
+f 244 266 229
+f 244 229 232
+f 242 264 243
+f 264 265 243
+f 233 241 219
+f 233 219 218
+f 217 205 204
+f 217 204 264
+f 243 265 266
+f 243 266 244
+f 234 217 242
+f 217 264 242
+f 231 230 228
+f 230 225 228
+f 213 212 246
+f 212 247 246
+f 212 202 247
+f 202 201 247
+f 220 206 241
+f 206 219 241
+f 206 197 205
+f 206 205 219
+f 191 190 205
+f 191 205 197
+f 210 209 236
+f 210 236 238
+f 222 221 257
+f 221 254 257
+f 235 222 256
+f 222 257 256
+f 241 235 255
+f 235 256 255
+f 220 241 255
+f 220 255 253
+f 221 220 253
+f 221 253 254
+f 208 207 222
+f 207 221 222
+f 245 225 247
+f 225 246 247
+f 203 202 211
+f 202 212 211
+f 233 218 234
+f 218 217 234
+f 229 230 231
+f 229 231 232
+f 225 226 228
+f 226 227 228
+f 208 222 223
+f 208 223 224
+f 220 221 206
+f 221 207 206
+f 205 217 219
+f 217 218 219
+f 203 215 216
+f 203 216 204
+f 211 212 214
+f 212 213 214
+f 200 199 209
+f 200 209 210
+f 199 198 208
+f 198 207 208
+f 198 197 207
+f 197 206 207
+f 190 196 204
+f 190 204 205
+f 196 195 203
+f 196 203 204
+f 195 194 203
+f 194 202 203
+f 194 193 201
+f 193 200 201
+f 193 192 200
+f 192 199 200
+f 192 191 199
+f 191 198 199
+f 183 189 196
+f 183 196 190
+f 189 188 196
+f 188 195 196
+f 188 187 195
+f 187 194 195
+f 187 186 193
+f 187 193 194
+f 186 185 193
+f 185 192 193
+f 185 184 192
+f 184 191 192
+f 184 183 190
+f 184 190 191
+f 176 182 189
+f 176 189 183
+f 182 181 189
+f 181 188 189
+f 181 180 188
+f 180 187 188
+f 180 179 186
+f 180 186 187
+f 179 178 185
+f 179 185 186
+f 178 177 185
+f 177 184 185
+f 177 176 183
+f 177 183 184
+f 169 175 182
+f 169 182 176
+f 175 174 182
+f 174 181 182
+f 174 173 181
+f 173 180 181
+f 173 172 180
+f 172 179 180
+f 172 171 178
+f 172 178 179
+f 171 170 177
+f 171 177 178
+f 170 169 176
+f 170 176 177
+f 162 168 169
+f 168 175 169
+f 168 167 174
+f 168 174 175
+f 167 166 173
+f 167 173 174
+f 166 165 173
+f 165 172 173
+f 165 164 171
+f 165 171 172
+f 164 163 170
+f 164 170 171
+f 163 162 170
+f 162 169 170
+f 155 161 168
+f 155 168 162
+f 161 160 168
+f 160 167 168
+f 160 159 166
+f 160 166 167
+f 159 158 165
+f 159 165 166
+f 158 157 164
+f 158 164 165
+f 157 156 164
+f 156 163 164
+f 156 155 162
+f 156 162 163
+f 1 13 155
+f 13 161 155
+f 13 11 160
+f 13 160 161
+f 11 9 159
+f 11 159 160
+f 9 8 158
+f 9 158 159
+f 8 5 158
+f 5 157 158
+f 5 2 157
+f 2 156 157
+f 2 1 156
+f 1 155 156
+f 7 146 147
+f 146 154 147
+f 146 145 154
+f 145 153 154
+f 145 144 153
+f 144 152 153
+f 143 6 151
+f 6 148 151
+f 141 143 149
+f 143 151 149
+f 142 141 150
+f 141 149 150
+f 6 7 148
+f 7 147 148
+f 10 136 7
+f 136 146 7
+f 136 130 146
+f 130 145 146
+f 130 129 145
+f 129 144 145
+f 140 3 143
+f 3 6 143
+f 143 141 140
+f 141 132 140
+f 131 132 141
+f 131 141 142
+f 10 12 136
+f 12 137 136
+f 140 139 4
+f 140 4 3
+f 138 137 14
+f 137 12 14
+f 139 138 4
+f 138 14 4
+f 135 139 140
+f 135 140 132
+f 134 133 137
+f 134 137 138
+f 135 134 139
+f 134 138 139
+f 130 136 133
+f 136 137 133
+f 130 133 18
+f 133 98 18
+f 18 98 15
+f 98 97 15
+f 135 107 99
+f 135 99 134
+f 99 107 106
+f 99 106 100
+f 57 107 132
+f 107 135 132
+f 99 98 134
+f 98 133 134
+f 131 58 57
+f 131 57 132
+f 18 17 129
+f 18 129 130
+f 128 110 109
+f 128 109 108
+f 128 92 126
+f 128 126 125
+f 113 118 94
+f 113 94 95
+f 126 92 117
+f 92 93 117
+f 125 123 128
+f 123 110 128
+f 91 92 128
+f 91 128 108
+f 120 113 112
+f 120 112 111
+f 118 117 93
+f 118 93 94
+f 123 125 124
+f 125 127 124
+f 116 124 127
+f 116 127 126
+f 116 115 121
+f 116 121 124
+f 119 122 121
+f 119 121 115
+f 118 113 119
+f 113 122 119
+f 126 117 114
+f 126 114 116
+f 120 123 121
+f 123 124 121
+f 113 120 122
+f 120 121 122
+f 117 118 119
+f 117 119 114
+f 95 100 113
+f 100 112 113
+f 96 97 95
+f 97 100 95
+f 105 112 106
+f 112 100 106
+f 103 110 104
+f 110 111 104
+f 102 109 103
+f 109 110 103
+f 101 108 102
+f 108 109 102
+f 90 91 101
+f 91 108 101
+f 53 106 57
+f 106 107 57
+f 56 105 53
+f 105 106 53
+f 49 103 51
+f 103 104 51
+f 47 102 49
+f 102 103 49
+f 43 101 47
+f 101 102 47
+f 46 90 43
+f 90 101 43
+f 21 89 84
+f 21 84 23
+f 19 96 89
+f 19 89 21
+f 15 97 96
+f 15 96 19
+f 97 98 99
+f 97 99 100
+f 88 89 96
+f 88 96 95
+f 87 88 94
+f 88 95 94
+f 75 87 94
+f 75 94 93
+f 76 75 93
+f 76 93 92
+f 77 76 91
+f 76 92 91
+f 78 77 90
+f 77 91 90
+f 39 78 46
+f 78 90 46
+f 82 84 89
+f 82 89 88
+f 80 82 87
+f 82 88 87
+f 74 80 75
+f 80 87 75
+f 73 31 74
+f 31 80 74
+f 85 86 59
+f 85 59 71
+f 69 71 72
+f 69 72 70
+f 37 35 72
+f 35 73 72
+f 35 33 73
+f 33 31 73
+f 83 25 23
+f 83 23 84
+f 81 83 84
+f 81 84 82
+f 79 81 80
+f 81 82 80
+f 29 79 31
+f 79 80 31
+f 78 39 64
+f 39 42 64
+f 77 78 63
+f 78 64 63
+f 76 77 66
+f 77 63 66
+f 75 76 66
+f 75 66 68
+f 74 75 68
+f 74 68 70
+f 72 73 70
+f 73 74 70
+f 46 45 39
+f 45 40 39
+f 71 59 72
+f 59 37 72
+f 67 69 70
+f 67 70 68
+f 65 67 68
+f 65 68 66
+f 62 65 63
+f 65 66 63
+f 61 62 64
+f 62 63 64
+f 59 60 37
+f 60 38 37
+f 57 58 54
+f 57 54 53
+f 53 54 55
+f 53 55 56
+f 51 52 49
+f 52 50 49
+f 49 50 47
+f 50 48 47
+f 47 48 43
+f 48 44 43
+f 43 44 46
+f 44 45 46
+f 39 40 41
+f 39 41 42
+f 37 38 35
+f 38 36 35
+f 35 36 33
+f 36 34 33
+f 33 34 32
+f 33 32 31
+f 31 32 29
+f 32 30 29
+f 29 30 28
+f 29 28 27
+f 27 28 25
+f 28 26 25
+f 25 26 24
+f 25 24 23
+f 23 24 22
+f 23 22 21
+f 21 22 20
+f 21 20 19
+f 19 20 16
+f 19 16 15
+f 15 16 17
+f 15 17 18
+f 13 1 14
+f 1 4 14
+f 11 13 12
+f 13 14 12
+f 9 11 12
+f 9 12 10
+f 8 9 10
+f 8 10 7
+f 7 6 8
+f 6 5 8
+f 2 5 3
+f 5 6 3
+f 1 2 4
+f 2 3 4
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ian...@us...> - 2007-10-01 21:55:46
|
Revision: 463
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=463&view=rev
Author: iansmith
Date: 2007-10-01 14:55:49 -0700 (Mon, 01 Oct 2007)
Log Message:
-----------
This commit adds support for running the separate parts of the og system on different machines. Developers should see no visible changes if they add this to their server.xml in tomcat's conf directory:
<Environment name="isSimServer" value="true" type="java.lang.String"/>
<Environment name="isMediaServer" value="true" type="java.lang.String"/>
<Environment name="isWebappServer" value="true" type="java.lang.String"/>
These properties control the obvious servlets. These servlets will return 404 if they are "turned off" via this mechanism.
Modified Paths:
--------------
maven/trunk/ogoglio-appdev/src/main/java/com/ogoglio/appdev/servlet/AbstractRemoteServlet.java
maven/trunk/ogoglio-appdev/src/main/java/com/ogoglio/appdev/servlet/AbstractResourceServlet.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/WebAPIAuthenticator.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/WebAPIClientWire.java
maven/trunk/ogoglio-integration-test/src/test/java/com/ogoglio/client/test/ClientTest.java
maven/trunk/ogoglio-integration-test/src/test/resources/basic-config.properties
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/media/site/MediaServlet.java
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/ServiceInitializationPersistTasks.java
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/SpacePersistTasks.java
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/site/SimServlet.java
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/AccountServlet.java
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/AuthServlet.java
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/AuthenticatedSiteResource.java
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/MessageProxy.java
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/OgoglioServletBase.java
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/SpaceServlet.java
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/TemplateResource.java
maven/trunk/ogoglio-server/src/main/webapp/META-INF/context.xml
maven/trunk/ogoglio-server/src/test/java/com/ogoglio/persist/test/PersistTest.java
Added Paths:
-----------
maven/trunk/ogoglio-appdev/src/main/java/com/ogoglio/appdev/servlet/Four04SiteResource.java
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/WebappServletBase.java
maven/trunk/ogoglio-server/src/main/webapp/WEB-INF/web-all.xml
Modified: maven/trunk/ogoglio-appdev/src/main/java/com/ogoglio/appdev/servlet/AbstractRemoteServlet.java
===================================================================
--- maven/trunk/ogoglio-appdev/src/main/java/com/ogoglio/appdev/servlet/AbstractRemoteServlet.java 2007-10-01 13:57:55 UTC (rev 462)
+++ maven/trunk/ogoglio-appdev/src/main/java/com/ogoglio/appdev/servlet/AbstractRemoteServlet.java 2007-10-01 21:55:49 UTC (rev 463)
@@ -18,7 +18,6 @@
import com.ogoglio.client.WebAPIClientWire;
import com.ogoglio.client.WebAPIDescriptor;
import com.ogoglio.util.ArgumentUtils;
-import com.ogoglio.util.Log;
import com.ogoglio.xml.AuthDocument;
public abstract class AbstractRemoteServlet extends MigratedResourceServlet {
Modified: maven/trunk/ogoglio-appdev/src/main/java/com/ogoglio/appdev/servlet/AbstractResourceServlet.java
===================================================================
--- maven/trunk/ogoglio-appdev/src/main/java/com/ogoglio/appdev/servlet/AbstractResourceServlet.java 2007-10-01 13:57:55 UTC (rev 462)
+++ maven/trunk/ogoglio-appdev/src/main/java/com/ogoglio/appdev/servlet/AbstractResourceServlet.java 2007-10-01 21:55:49 UTC (rev 463)
@@ -65,7 +65,7 @@
protected Context initCtx=null;
protected String baseUrl=null;
- private void initContext() throws NamingException {
+ protected void initContext() throws NamingException {
if (initCtx==null) {
initCtx = new InitialContext();
}
@@ -224,6 +224,9 @@
outputStream.flush();
outputStream.close();
}
+ if (connection.getResponseCode()!=200) {
+ Log.warn("Proxy sending error to client: "+connection.getResponseCode()+" on "+uri);
+ }
response.setStatus(connection.getResponseCode());
Map headers = connection.getHeaderFields();
Added: maven/trunk/ogoglio-appdev/src/main/java/com/ogoglio/appdev/servlet/Four04SiteResource.java
===================================================================
--- maven/trunk/ogoglio-appdev/src/main/java/com/ogoglio/appdev/servlet/Four04SiteResource.java (rev 0)
+++ maven/trunk/ogoglio-appdev/src/main/java/com/ogoglio/appdev/servlet/Four04SiteResource.java 2007-10-01 21:55:49 UTC (rev 463)
@@ -0,0 +1,17 @@
+package com.ogoglio.appdev.servlet;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+public class Four04SiteResource extends SiteResource {
+
+ public Four04SiteResource(String name) {
+ super(name);
+ }
+ public void doGet(HttpServletRequest request, HttpServletResponse response, String[] pathElements) throws ServletException, IOException {
+ response.setStatus(HttpServletResponse.SC_NOT_FOUND);
+ }
+}
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/WebAPIAuthenticator.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/WebAPIAuthenticator.java 2007-10-01 13:57:55 UTC (rev 462)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/WebAPIAuthenticator.java 2007-10-01 21:55:49 UTC (rev 463)
@@ -33,6 +33,7 @@
ArgumentUtils.assertNotEmpty(password);
String body = WebConstants.AUTH_USERNAME_PARAM + "=" + username + "&" + WebConstants.AUTH_PASS_PARAM + "=" + password;
authCookie = wire.getAuthCookieViaPost(serviceDescriptor.getAuthURI(), body, "application/x-www-form-urlencoded");
+ //authCookie = wire.getAuthCookieViaPost(serviceDescriptor.getAuthURI(), body, "text/plain");
if(authCookie == null) {
throw new IOException("Did not get a valid cookie for " + username);
}
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/WebAPIClientWire.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/WebAPIClientWire.java 2007-10-01 13:57:55 UTC (rev 462)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/WebAPIClientWire.java 2007-10-01 21:55:49 UTC (rev 463)
@@ -104,7 +104,8 @@
}
if ("POST".equals(method)) {
connection.setDoOutput(true);
- connection.setRequestProperty("Content-type", "application/x-www-form-urlencoded");
+ //connection.setRequestProperty("Content-type", "application/x-www-form-urlencoded");
+ connection.setRequestProperty("Content-type", "text/plain");
connection.setRequestProperty("Content-length", Integer.toString(body.length()));
OutputStream rawOutStream = connection.getOutputStream();
PrintWriter pw = new PrintWriter(rawOutStream);
Modified: maven/trunk/ogoglio-integration-test/src/test/java/com/ogoglio/client/test/ClientTest.java
===================================================================
--- maven/trunk/ogoglio-integration-test/src/test/java/com/ogoglio/client/test/ClientTest.java 2007-10-01 13:57:55 UTC (rev 462)
+++ maven/trunk/ogoglio-integration-test/src/test/java/com/ogoglio/client/test/ClientTest.java 2007-10-01 21:55:49 UTC (rev 463)
@@ -18,8 +18,10 @@
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
+import java.net.Socket;
import java.net.URI;
import java.net.URISyntaxException;
+import java.net.URLConnection;
import java.text.DateFormat;
import java.text.ParseException;
import java.util.Date;
@@ -81,7 +83,7 @@
URI linkURI1 = null;
- URI serviceURI1 = null;
+ URI serviceURI1 = null, mediaURI, simURI;
WebAPIClientWire wire1 = null;
@@ -94,6 +96,8 @@
fail("couldn't load property set (BASIC)");
}
serviceURI1 = new URI(ps.getKeyFromSet(PropStorage.BASIC_PROPS, "ogoglio.baseUrl"));
+ mediaURI = new URI(ps.getKeyFromSet(PropStorage.BASIC_PROPS, "ogoglio.mediaUrl"));
+ simURI = new URI(ps.getKeyFromSet(PropStorage.BASIC_PROPS, "ogoglio.baseSimUrl"));
linkURI1 = new URI("http://example.com/");
wire1 = new WebAPIClientWire();
descriptor1 = new WebAPIDescriptor(serviceURI1);
@@ -106,6 +110,29 @@
public void tearDown() {
}
+ public void testServersOnAmazon() throws AuthenticationFailedException, IOException {
+ //only run these when we are on the cluster
+ if (serviceURI1.getHost().endsWith("transmutable.com")) {
+ checkCantReachURI(simURI);
+ checkCantReachURI(mediaURI);
+ try {
+ new Socket(serviceURI1.getHost(),3306/*mysql port*/);
+ fail("Shouldn't be able to connect to the MySql server!");
+ } catch (IOException e) {
+ //pass
+ }
+ }
+ }
+
+ private void checkCantReachURI(URI uri) {
+ try {
+ uri.toURL().openConnection();
+ fail("should not be able to see the URI"+uri+"!");
+ } catch (IOException e) {
+ //pass
+ }
+ }
+
public void testAppletsCanBeDownloaded() throws IOException, URISyntaxException {
checkSupportFile("ogoglio-viewer-applet.jar");
checkSupportFile("ogoglio-test-applet.jar");
@@ -210,6 +237,7 @@
WebAPIAuthenticator advancedAuth = new WebAPIAuthenticator(wire1, descriptor1, USERNAME1, PASSWORD1);
WebAPIClient advancedClient = new WebAPIClient(descriptor1, advancedAuth, wire1);
SpaceDocument spaceDocument = advancedClient.createSpace("Susan's Space");
+ assertNotNull(spaceDocument);
checkSpaceDocumentCreateTime(spaceDocument);
assertNotNull(spaceDocument);
@@ -258,7 +286,10 @@
checkGeometryAvailableForSpace(advancedClient, thingDocs, spaceClient1.getSpace());
guestSpaceClient1 = checkGuestCookieOperation(spaceDocument.getSpaceID(), advancedClient, WebConstants.GUEST_COOKIE_PREFIX + "Test_Suite_Guest");
+
checkDeletingSpaceDestroysThings(spaceDocument.getSpaceID(), advancedClient, USERNAME1);
+
+
} finally {
if (spaceClient1 != null) {
spaceClient1.cleanup();
Modified: maven/trunk/ogoglio-integration-test/src/test/resources/basic-config.properties
===================================================================
--- maven/trunk/ogoglio-integration-test/src/test/resources/basic-config.properties 2007-10-01 13:57:55 UTC (rev 462)
+++ maven/trunk/ogoglio-integration-test/src/test/resources/basic-config.properties 2007-10-01 21:55:49 UTC (rev 463)
@@ -2,4 +2,5 @@
ogoglio.testSpaceNumber = ${ogoglio.testSpaceNumber}
ogoglio.baseUrl = ${ogoglio.baseURL}
ogoglio.baseSimUrl = ${ogoglio.baseSimURL}
+ogoglio.mediaUrl = ${ogoglio.mediaURL}
Modified: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/media/site/MediaServlet.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/media/site/MediaServlet.java 2007-10-01 13:57:55 UTC (rev 462)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/media/site/MediaServlet.java 2007-10-01 21:55:49 UTC (rev 463)
@@ -13,6 +13,7 @@
import javax.servlet.http.HttpServletResponse;
import com.ogoglio.appdev.servlet.AbstractResourceServlet;
+import com.ogoglio.appdev.servlet.Four04SiteResource;
import com.ogoglio.appdev.servlet.SiteResource;
import com.ogoglio.client.DecoratedInputStream;
import com.ogoglio.media.FileStore;
@@ -23,28 +24,38 @@
private FileStore fileStore = null;
+ private boolean servletNeeded = true;
+
public void init(ServletConfig config) throws ServletException {
- super.init(config);
- Context envCtx;
- try {
- envCtx = (Context) initCtx.lookup("java:comp/env");
- File mediaDirectory = null;
- try {
- mediaDirectory = new File((String)envCtx.lookup("ogoglio/mediaDirectory"));
- } catch (NamingException e) {
- }
+ Context envCtx;
+ try {
+ initContext();
+ envCtx = (Context) initCtx.lookup("java:comp/env");
+ String useMe = (String) envCtx.lookup("ogoglio/isMediaServer");
+ if ("false".equals(useMe.toLowerCase())) {
+ servletNeeded = false;
+ }
- if (mediaDirectory == null) {
- Log.warn("Not running media service");
- } else {
- fileStore = new FileStore(mediaDirectory.toURI());
- }
- } catch (NamingException e) {
- Log.error("Unable to figure out the initial context due to Naming Exception",e);
- throw new ServletException(e);
- }
+ //has to come AFTER the useMe/servletNeeded above
+ super.init(config);
+ File mediaDirectory = null;
+ try {
+ mediaDirectory = new File((String) envCtx.lookup("ogoglio/mediaDirectory"));
+ } catch (NamingException e) {
+ }
+
+ if (mediaDirectory == null) {
+ Log.warn("Not running media service");
+ } else {
+ fileStore = new FileStore(mediaDirectory.toURI());
+ }
+ } catch (NamingException e) {
+ Log.error("Unable to figure out the initial context due to Naming Exception", e);
+ throw new ServletException(e);
+ }
+
}
public void destroy() {
@@ -52,7 +63,12 @@
}
public SiteResource createBaseResource(ServletConfig servletConfig) {
- return new MediaResource();
+ if (servletNeeded) {
+ return new MediaResource();
+ } else {
+ Log.info("Turning off media servlet, this host doesn't want it.");
+ return new Four04SiteResource("media");
+ }
}
private class MediaResource extends SiteResource {
@@ -62,26 +78,27 @@
}
public void doGet(HttpServletRequest request, HttpServletResponse response, String[] pathElements) throws ServletException, IOException {
- if ((request.getQueryString()!=null) && (request.getQueryString().startsWith("list"))) {
- doList(request,response);
- return;
- }
+ if ((request.getQueryString() != null) && (request.getQueryString().startsWith("list"))) {
+ doList(request, response);
+ return;
+ }
sendStringResponse("I'm a media servlet (" + (fileStore == null ? "inactive" : "active") + ")", "text/plain", response);
}
+
public void doList(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if (fileStore == null) {
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
return;
}
- OutputStream str=response.getOutputStream();
- OutputStreamWriter wr=new OutputStreamWriter(str);
- String[] allNames= fileStore.getAllNames();
- for (int i=0; i<allNames.length;++i) {
- wr.write(allNames[i]+"\n");
+ OutputStream str = response.getOutputStream();
+ OutputStreamWriter wr = new OutputStreamWriter(str);
+ String[] allNames = fileStore.getAllNames();
+ for (int i = 0; i < allNames.length; ++i) {
+ wr.write(allNames[i] + "\n");
}
wr.flush();
wr.close();
- response.setContentType("text/plain");
+ response.setContentType("text/plain");
response.setStatus(HttpServletResponse.SC_OK);
}
}
@@ -107,7 +124,7 @@
if (input.getLength() > -1) {
response.setContentLength((int) input.getLength());
}
- if(input.getMimeType() != null) {
+ if (input.getMimeType() != null) {
response.setContentType(input.getMimeType());
}
StreamUtils.write(input, response.getOutputStream());
Modified: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/ServiceInitializationPersistTasks.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/ServiceInitializationPersistTasks.java 2007-10-01 13:57:55 UTC (rev 462)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/ServiceInitializationPersistTasks.java 2007-10-01 21:55:49 UTC (rev 463)
@@ -14,12 +14,10 @@
package com.ogoglio.persist;
import java.io.IOException;
-import java.net.URI;
import org.hibernate.SessionFactory;
import com.ogoglio.appdev.persist.PersistException;
-import com.ogoglio.client.WebAPIUtil;
public class ServiceInitializationPersistTasks {
@@ -29,34 +27,6 @@
public static final String DEFAULT_DOOR_DISPLAY_NAME = "Default Door";
- public static void DEAD_CODE_initializeLocalSim(URI serviceURI, SessionFactory sessionFactory) throws PersistException {
- SimRecord[] simRecords = SimPersistTasks.findSims(sessionFactory);
- URI ourURI=WebAPIUtil.appendToURI(serviceURI, "sim/");
-
- if (simRecords.length != 0) {
- //the db might have been created on another host (e.g. the amazon case)
- for (int i=0; i<simRecords.length;++i) {
- SimRecord sim=simRecords[i];
- if (LOCAL_SIM_DISPLAY_NAME.equals(sim.getDisplayName())) {
- if (!(ourURI.equals(sim.getSimURI()))) {
- //make it point to us
- sim.setSimURI(ourURI);
- //sim.setActive(true);
- SimPersistTasks.update(sim, sessionFactory);
- } else {
- if (!sim.isActive()) {
- //sim.setActive(true);
- SimPersistTasks.update(sim, sessionFactory);
- }
- }
- }
- }
- SimRecord rec = SimPersistTasks.findSimsBySimURI(ourURI, sessionFactory);
- return;
- }
- SimPersistTasks.createSim(LOCAL_SIM_DISPLAY_NAME, WebAPIUtil.appendToURI(serviceURI, "sim/"), SimRecord.DEFAULT_EVENT_PORT, true, sessionFactory);
- }
-
public static void initializeBootstrapAccount(SessionFactory sessionFactory,String host,String user, String pw, String cookie) throws PersistException, IOException {
AccountRecord accountRec = AccountPersistTasks.findAccountByUsername(user, sessionFactory);
if (accountRec != null) {
Modified: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/SpacePersistTasks.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/SpacePersistTasks.java 2007-10-01 13:57:55 UTC (rev 462)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/SpacePersistTasks.java 2007-10-01 21:55:49 UTC (rev 463)
@@ -13,6 +13,11 @@
limitations under the License. */
package com.ogoglio.persist;
+import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.ProtocolException;
+import java.net.URI;
import java.util.Date;
import java.util.Random;
@@ -22,6 +27,7 @@
import com.ogoglio.appdev.persist.HibernateTask;
import com.ogoglio.appdev.persist.PersistException;
+import com.ogoglio.util.Log;
import com.ogoglio.xml.PossessionDocument;
import com.ogoglio.xml.SpaceDocument;
import com.ogoglio.xml.SpaceMemberDocument;
@@ -34,6 +40,10 @@
public static final Random RANDOM = new Random();
+ private static final long TEST_SIM_INTERVAL_MS = 15000;
+
+ private static long lastTestOfSimServers=0L;
+
public static SpaceRecord updateSpace(final long spaceID, final SpaceDocument spaceDocument, SessionFactory sessionFactory) throws PersistException {
HibernateTask task = new HibernateTask() {
public Object run(Session hibernateSession) {
@@ -71,7 +81,7 @@
}
if (dirty) {
- record=updateRecordAndUpdateModifiedTime(record,hibernateSession,true);
+ record = updateRecordAndUpdateModifiedTime(record, hibernateSession, true);
}
return record;
}
@@ -79,7 +89,16 @@
task.setSessionFactory(sessionFactory);
return (SpaceRecord) task.execute();
}
-
+
+ private static SpaceRecord updateRecordAndUpdateModifiedTime(final SpaceRecord record, SessionFactory sessionFactory, final boolean useUpdate) throws PersistException {
+ HibernateTask task = new HibernateTask() {
+ public Object run(Session hibernateSession) {
+ return updateRecordAndUpdateModifiedTime(record, hibernateSession, useUpdate);
+ }
+ };
+ task.setSessionFactory(sessionFactory);
+ return (SpaceRecord) task.execute();
+ }
private static SpaceRecord updateRecordAndUpdateModifiedTime(SpaceRecord record, Session hibernateSession, boolean useUpdate) {
record.setLastModifiedTime(new Date().getTime());
if (useUpdate) {
@@ -128,7 +147,7 @@
public static void update(final SpaceRecord record, final SessionFactory sessionFactory) throws PersistException {
HibernateTask task = new HibernateTask() {
public Object run(Session hibernateSession) {
- updateRecordAndUpdateModifiedTime(record, hibernateSession,true);
+ updateRecordAndUpdateModifiedTime(record, hibernateSession, true);
return null;
}
};
@@ -136,9 +155,118 @@
task.execute();
}
+ private static SimRecord findSimIfActive(final SpaceRecord spaceRecord, SessionFactory sessionFactory) throws PersistException {
+ HibernateTask task = new HibernateTask() {
+ public Object run(Session hibernateSession) {
+ SimRecord simRecord = null;
+ if (spaceRecord.getSimID() != -1) {
+ Query simQuery = hibernateSession.getNamedQuery(SimPersistTasks.SIM_BY_ID);
+ simQuery.setLong("simID", spaceRecord.getSimID());
+ simRecord = (SimRecord) simQuery.uniqueResult();
+ if (simRecord == null || simRecord.isActive() == false) {
+ spaceRecord.setSimID(-1);
+ updateRecordAndUpdateModifiedTime(spaceRecord, hibernateSession, true);
+ simRecord = null;
+ return null;
+ } else {
+ return simRecord;
+ }
+ } else {
+ return null;
+ }
+ }
+ };
+ task.setSessionFactory(sessionFactory);
+ return (SimRecord) task.execute();
+ }
+
+ private static void markInactive(SimRecord record, SessionFactory sessionFactory) throws PersistException {
+ record.setActive(false);
+ SimPersistTasks.update(record, sessionFactory);
+ }
public static SimRecord findOrAssignSim(final SpaceRecord spaceRecord, SessionFactory sessionFactory) throws PersistException {
+ return findOrAssignSim(spaceRecord, sessionFactory, true);
+ }
+
+ public static void verifyActiveSims(SimRecord[] purportedActive, SessionFactory sessionFactory) throws PersistException {
+ //let's see if they are ok
+ for (int i=0; i<purportedActive.length;++i) {
+ try {
+ URI simURI=purportedActive[i].getSimURI();
+ HttpURLConnection connection = (HttpURLConnection) simURI.toURL().openConnection();
+ connection.setRequestMethod("GET");
+ connection.setAllowUserInteraction(false);
+ if (connection.getResponseCode()!=200) {
+ Log.warn("Can't get a connection to "+simURI+"! Marking inactive!");
+ markInactive(purportedActive[i], sessionFactory);
+ } else {
+ Log.info("Verified connection to "+simURI);
+ }
+ } catch (MalformedURLException e) {
+ Log.warn("Can't understand the URI "+purportedActive[i].getSimURI()+"! Marking inactive!");
+ markInactive(purportedActive[i], sessionFactory);
+ } catch (ProtocolException e) {
+ Log.warn("Can't understand the URI protocol "+purportedActive[i].getSimURI()+"! Marking inactive!");
+ markInactive(purportedActive[i], sessionFactory);
+ } catch (IOException e) {
+ Log.warn("Can't connect to "+purportedActive[i].getSimURI()+"! Marking inactive! IOException:"+e.getMessage());
+ markInactive(purportedActive[i], sessionFactory);
+ }
+ }
+
+ }
+ public static SimRecord findOrAssignSim(final SpaceRecord spaceRecord, SessionFactory sessionFactory, boolean use_network) throws PersistException {
+ SimRecord rec = findSimIfActive(spaceRecord, sessionFactory);
+ SimRecord[] active;
+
+ if (rec!=null) {
+ //assume that if we have a sim ID already assigned we are ok
+ return rec;
+ }
+ active=findAllActiveSims(spaceRecord, sessionFactory);
+ if (active.length==0) {
+ throw new PersistException("Unable to find any active sims!");
+ }
+ //has it been a while?
+ long now=System.currentTimeMillis();
+ if ((now-lastTestOfSimServers<TEST_SIM_INTERVAL_MS) || (!use_network)) {
+ return pickSimRandomly(spaceRecord, sessionFactory, active);
+ }
+ //update the time check
+ lastTestOfSimServers=now;
+
+ verifyActiveSims(active,sessionFactory);
+
+ active=findAllActiveSims(spaceRecord, sessionFactory);
+ if (active.length==0) {
+ throw new PersistException("Unable to find any active sims (after doing a check)!");
+ }
+ return pickSimRandomly(spaceRecord, sessionFactory, active);
+ }
+
+ private static SimRecord pickSimRandomly(final SpaceRecord spaceRecord, SessionFactory sessionFactory, SimRecord[] active) throws PersistException {
+ SimRecord rec;
+ //pick randomly among actives
+ rec = (SimRecord) active[Math.abs(RANDOM.nextInt() % active.length)];
+ spaceRecord.setSimID(rec.getSimID());
+ updateRecordAndUpdateModifiedTime(spaceRecord, sessionFactory, true);
+ return rec;
+ }
+
+ private static SimRecord[] findAllActiveSims(final SpaceRecord spaceRecord, SessionFactory sessionFactory) throws PersistException {
HibernateTask task = new HibernateTask() {
public Object run(Session hibernateSession) {
+ Query simsQuery = hibernateSession.getNamedQuery(SimPersistTasks.SIMS_BY_ACTIVE);
+ simsQuery.setBoolean("active", true);
+ return (SimRecord[]) simsQuery.list().toArray(new SimRecord[0]);
+ }
+ };
+ task.setSessionFactory(sessionFactory);
+ return (SimRecord[]) task.execute();
+ }
+ public static SimRecord findOrAssignSim_OLD_VERSION(final SpaceRecord spaceRecord, SessionFactory sessionFactory) throws PersistException {
+ HibernateTask task = new HibernateTask() {
+ public Object run(Session hibernateSession) {
SimRecord simRecord = null;
if (spaceRecord.getSimID() != -1) {
Query simQuery = hibernateSession.getNamedQuery(SimPersistTasks.SIM_BY_ID);
@@ -146,7 +274,7 @@
simRecord = (SimRecord) simQuery.uniqueResult();
if (simRecord == null || simRecord.isActive() == false) {
spaceRecord.setSimID(-1);
- updateRecordAndUpdateModifiedTime(spaceRecord,hibernateSession,true);
+ updateRecordAndUpdateModifiedTime(spaceRecord, hibernateSession, true);
simRecord = null;
} else {
return simRecord;
@@ -162,7 +290,7 @@
//TODO pick a sim based on load, not at random
simRecord = (SimRecord) sims[Math.abs(RANDOM.nextInt() % sims.length)];
spaceRecord.setSimID(simRecord.getSimID());
- updateRecordAndUpdateModifiedTime(spaceRecord,hibernateSession,true);
+ updateRecordAndUpdateModifiedTime(spaceRecord, hibernateSession, true);
return simRecord;
}
};
@@ -180,7 +308,7 @@
return null;
}
SpaceRecord record = new SpaceRecord(displayName, ownerUsername);
- record=updateRecordAndUpdateModifiedTime(record, hibernateSession, false);
+ record = updateRecordAndUpdateModifiedTime(record, hibernateSession, false);
return record;
}
};
@@ -265,7 +393,7 @@
if (account == null) { //happens for guests, who can never write
return false;
}
- if(account.isFrozen()){ //tsk tsk
+ if (account.isFrozen()) { //tsk tsk
return false;
}
@@ -292,7 +420,7 @@
for (int i = 0; i < members.length; i++) {
if (account.getUsername().equals(members[i].getMemberUsername())) {
- if(members[i].getRole() == SpaceMemberDocument.BUILDER_ROLE || members[i].getRole() == SpaceMemberDocument.EDITOR_ROLE){
+ if (members[i].getRole() == SpaceMemberDocument.BUILDER_ROLE || members[i].getRole() == SpaceMemberDocument.EDITOR_ROLE) {
return Boolean.TRUE;
}
return Boolean.FALSE;
Modified: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/site/SimServlet.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/site/SimServlet.java 2007-10-01 13:57:55 UTC (rev 462)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/site/SimServlet.java 2007-10-01 21:55:49 UTC (rev 463)
@@ -31,6 +31,7 @@
import nanoxml.XMLElement;
import com.ogoglio.appdev.persist.PersistException;
+import com.ogoglio.appdev.servlet.Four04SiteResource;
import com.ogoglio.appdev.servlet.SiteResource;
import com.ogoglio.client.DecoratedInputStream;
import com.ogoglio.media.MediaService;
@@ -71,29 +72,42 @@
private String localIP = null;
+ private boolean servletNeeded = true;
+
public void init(ServletConfig config) throws ServletException {
- super.init(config);
- System.out.println("REALLY IN INIT:"+config.getServletName()+","+config.getServletContext().getServletContextName());
try {
+ initContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
- simURI = new URI((String) envCtx.lookup("ogoglio/baseSimURL"));
+ String useMe = (String) envCtx.lookup("ogoglio/isSimServer");
+ if ("false".equals(useMe.toLowerCase())) {
+ servletNeeded = false;
+ }
- SimRecord simRecord = SimPersistTasks.findSimsBySimURI(simURI, getSessionFactory());
- if (simRecord != null) {
- //error
- Log.warn("Restarting the sim server @ "+simRecord.getSimURI()+" but it was already in the database! Ignored.");
- } else {
- Log.info("Starting up sim @ " +simURI);
- simRecord = SimPersistTasks.createSim(ServiceInitializationPersistTasks.LOCAL_SIM_DISPLAY_NAME, simURI, SimRecord.DEFAULT_EVENT_PORT, true, getSessionFactory());
+ //this has to come AFTER the servletNeeded is initialized
+ super.init(config);
+
+ //don't bother with the sim if nobody wants it
+ if (servletNeeded) {
+ simURI = new URI((String) envCtx.lookup("ogoglio/baseSimURL"));
+ SimRecord simRecord = SimPersistTasks.findSimsBySimURI(simURI, getSessionFactory());
+ if (simRecord != null) {
+ //error
+ Log.warn("Marking sim server active @ " + simRecord.getSimURI() + " [it was already in the database]! Ignored.");
+ simRecord.setActive(true);
+ SimPersistTasks.update(simRecord, getSessionFactory());
+ } else {
+ Log.info("Starting up sim @ " + simURI);
+ simRecord = SimPersistTasks.createSim(ServiceInitializationPersistTasks.LOCAL_SIM_DISPLAY_NAME, simURI, SimRecord.DEFAULT_EVENT_PORT, true, getSessionFactory());
+ }
sim = new Sim(simRecord, getMediaService(), getSessionFactory());
localIP = InetAddress.getByName(simURI.getHost()).getHostAddress();
}
} catch (NamingException e) {
- throw new ServletException("Couldn't find the baseSimURL:"+e.getMessage(),e);
+ throw new ServletException("Couldn't find the baseSimURL:" + e.getMessage(), e);
} catch (Exception e) {
- throw new ServletException("Couldn't start sim servlet:"+e.getMessage(),e);
- }
+ throw new ServletException("Couldn't start sim servlet:" + e.getMessage(), e);
+ }
ScriptContextFactory.setTimedContextAsGlobalContext();
}
@@ -102,16 +116,15 @@
try {
super.destroy();
sim.cleanup();
- SimRecord rec=SimPersistTasks.findSimsBySimURI(simURI, getSessionFactory());
- if (rec==null) {
- System.out.println("FART: CAN'T FIND SIM REC!");
+ SimRecord rec = SimPersistTasks.findSimsBySimURI(simURI, getSessionFactory());
+ if (rec == null) {
+ Log.warn("Destroy: Can't find URI in database during shutdown of sim! URI=" + simURI);
} else {
- System.out.println("FART: DESTROYING SIM REC!");
+ Log.info("Destroy: Removing " + simURI + " from database list of sims.");
SimPersistTasks.delete(rec, getSessionFactory());
}
- Log.info("Cleaned up sim record in database:"+simURI);
} catch (PersistException e) {
- Log.error("Can't clean up Sim record in database:"+e.getMessage(),e);
+ Log.error("Can't clean up Sim record in database:" + e.getMessage(), e);
}
}
@@ -131,7 +144,12 @@
}
public SiteResource createBaseResource(ServletConfig servletConfig) {
- return new SimResource();
+ if (servletNeeded) {
+ return new SimResource();
+ } else {
+ Log.info("Turning off sim servlet, this host doesn't want it.");
+ return new Four04SiteResource("sim");
+ }
}
private class SimResource extends SiteResource {
@@ -251,10 +269,9 @@
public void doGet(HttpServletRequest request, HttpServletResponse response, String[] pathElements) throws ServletException, IOException {
long spaceID = Long.parseLong(pathElements[2]);
try {
-
+
SpaceRecord spaceRecord = SpacePersistTasks.findSpaceBySpaceID(spaceID, getSessionFactory());
if (spaceRecord == null) {
- System.out.println("FART: no space!");
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
return;
}
@@ -265,7 +282,6 @@
return;
}
- System.out.println("FART: authed:"+authedAccount.getUsername());
SpaceSimulator simulator = sim.getOrCreateSpaceSimulator(spaceRecord);
Map settings = simulator.getSettings();
Modified: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/AccountServlet.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/AccountServlet.java 2007-10-01 13:57:55 UTC (rev 462)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/AccountServlet.java 2007-10-01 21:55:49 UTC (rev 463)
@@ -29,6 +29,7 @@
import com.ogoglio.appdev.persist.PersistException;
import com.ogoglio.appdev.servlet.DescendingSiteResource;
+import com.ogoglio.appdev.servlet.Four04SiteResource;
import com.ogoglio.appdev.servlet.SiteResource;
import com.ogoglio.client.WebAPIClientWire;
import com.ogoglio.client.WebAPIUtil;
@@ -65,7 +66,7 @@
import com.ogoglio.xml.ThingDocument;
import com.ogoglio.xml.server.DocumentFactory;
-public class AccountServlet extends OgoglioServletBase {
+public class AccountServlet extends WebappServletBase{
public static final String SECRET_PARAMETER = "secret";
@@ -89,7 +90,12 @@
}
public SiteResource createBaseResource(ServletConfig servletConfig) {
- return new AccountsResource();
+ if (servletNeeded) {
+ return new AccountsResource();
+ } else {
+ Log.info("Turning off account servlet, this host doesn't want it.");
+ return new Four04SiteResource("account");
+ }
}
private class AccountsResource extends AuthenticatedSiteResource {
Modified: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/AuthServlet.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/AuthServlet.java 2007-10-01 13:57:55 UTC (rev 462)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/AuthServlet.java 2007-10-01 21:55:49 UTC (rev 463)
@@ -12,6 +12,7 @@
See the License for the specific language governing permissions and
limitations under the License. */
package com.ogoglio.site;
+
import java.io.IOException;
import java.util.Random;
@@ -24,25 +25,32 @@
import org.hibernate.SessionFactory;
import com.ogoglio.appdev.persist.PersistException;
+import com.ogoglio.appdev.servlet.Four04SiteResource;
import com.ogoglio.appdev.servlet.SiteResource;
import com.ogoglio.persist.AccountPersistTasks;
import com.ogoglio.persist.AccountRecord;
+import com.ogoglio.util.Log;
import com.ogoglio.util.WebConstants;
import com.ogoglio.xml.AccountDocument;
import com.ogoglio.xml.AuthDocument;
-public class AuthServlet extends OgoglioServletBase{
+public class AuthServlet extends WebappServletBase {
public static final String AUTH_DATA_KEY = "authData";
public static final String LOGOUT_PARAM = "logout";
private Random random = new Random();
-
+
//TODO add a way to remove a login cookie from the db when people change their password
public SiteResource createBaseResource(ServletConfig servletConfig) {
- return new AuthResource();
+ if (servletNeeded) {
+ return new AuthResource();
+ } else {
+ Log.info("Turning off auth servlet, this host doesn't want it.");
+ return new Four04SiteResource("account");
+ }
}
public static boolean isGuest(HttpServletRequest request) {
@@ -210,9 +218,9 @@
return;
}
}
-
+
}
-
+
private class GuestResource extends SiteResource {
public GuestResource() {
super("guest");
@@ -223,9 +231,9 @@
Cookie newCookie = new Cookie(WebConstants.AUTH_COOKIE, cookie);
newCookie.setPath("/");
newCookie.setMaxAge(-1);
-
+
response.addCookie(newCookie);
-
+
response.setStatus(HttpServletResponse.SC_OK);
response.setContentType("text/plain");
response.getOutputStream().write(cookie.getBytes());
@@ -236,7 +244,7 @@
public static final String COOKIE_CHARS = "abcdefghijklmnopqrstuvwxyz1234567890";
public static final String[] GUEST_NAMES = { "Moon", "Spoon", "Plume", "Bloom", "Thyme", "Rhyme", "Steel", "Boat", "Vase", "Book", "Screen", "Fenestra", "Farmer", "Door", "Squid", "Rocket", "Picker", "Page", "Lawn", "Food", "Plate", "Bean", "Horse", "Cat", "Fireplace", "Frame", "Chair", "Table", "Sofa", "Stair", "Counter", "Shelf", "Phone", "Robot", "Tree", "Key" };
-
+
private String generateGuestCookie() {
StringBuffer result = new StringBuffer();
result.append(WebConstants.GUEST_COOKIE_PREFIX);
@@ -245,7 +253,7 @@
}
return result.toString();
}
-
+
private String generateAuthCookie(boolean guest) {
StringBuffer result = new StringBuffer(14);
if (guest) {
Modified: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/AuthenticatedSiteResource.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/AuthenticatedSiteResource.java 2007-10-01 13:57:55 UTC (rev 462)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/AuthenticatedSiteResource.java 2007-10-01 21:55:49 UTC (rev 463)
@@ -25,7 +25,6 @@
import com.ogoglio.appdev.servlet.SiteResource;
import com.ogoglio.persist.AccountRecord;
import com.ogoglio.util.ArgumentUtils;
-import com.sun.mail.iap.Argument;
public abstract class AuthenticatedSiteResource extends SiteResource {
Modified: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/MessageProxy.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/MessageProxy.java 2007-10-01 13:57:55 UTC (rev 462)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/MessageProxy.java 2007-10-01 21:55:49 UTC (rev 463)
@@ -16,7 +16,6 @@
import java.io.IOException;
import java.net.URI;
-import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
Modified: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/OgoglioServletBase.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/OgoglioServletBase.java 2007-10-01 13:57:55 UTC (rev 462)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/OgoglioServletBase.java 2007-10-01 21:55:49 UTC (rev 463)
@@ -51,8 +51,8 @@
super.init(config);
}
- private void bailOutOfInit(Exception e) throws ServletException {
- Log.error("Unable to initialize OgoglioServletBase ("+getClass().getName()+"):"+e.getMessage(),e);
+ public void bailOutOfInit(Exception e) throws ServletException {
+ Log.error("Unable to initialize "+getClass().getName()+"):"+e.getMessage(),e);
throw new ServletException(e);
}
public SiteInfo getSiteInfo() {
Modified: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/SpaceServlet.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/SpaceServlet.java 2007-10-01 13:57:55 UTC (rev 462)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/SpaceServlet.java 2007-10-01 21:55:49 UTC (rev 463)
@@ -26,6 +26,7 @@
import com.ogoglio.appdev.persist.PersistException;
import com.ogoglio.appdev.servlet.DescendingSiteResource;
+import com.ogoglio.appdev.servlet.Four04SiteResource;
import com.ogoglio.appdev.servlet.SiteResource;
import com.ogoglio.client.SpaceClient;
import com.ogoglio.client.WebAPIClientWire;
@@ -51,7 +52,7 @@
import com.ogoglio.xml.SpaceSimulatorDocument;
import com.ogoglio.xml.server.DocumentFactory;
-public class SpaceServlet extends OgoglioServletBase {
+public class SpaceServlet extends WebappServletBase{
public static final String MESSAGE_PROXY_KEY = "spaceMessageProxy";
@@ -82,7 +83,12 @@
}
public SiteResource createBaseResource(ServletConfig servletConfig) {
- return new BaseSpaceResource();
+ if (servletNeeded) {
+ return new BaseSpaceResource();
+ } else {
+ Log.info("Turning off space servlet, this host doesn't want it.");
+ return new Four04SiteResource("account");
+ }
}
private class BaseSpaceResource extends AuthenticatedSiteResource {
@@ -481,7 +487,6 @@
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
return;
}
-
SimRecord simRecord = SpacePersistTasks.findOrAssignSim(spaceRecord, getSessionFactory());
if (simRecord == null) {
Log.error("Could not assign a sim to space " + spaceRecord.getSpaceID());
Modified: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/TemplateResource.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/TemplateResource.java 2007-10-01 13:57:55 UTC (rev 462)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/TemplateResource.java 2007-10-01 21:55:49 UTC (rev 463)
@@ -266,6 +266,7 @@
return;
}
long templateID = tid.longValue();
+ Log.info("Reached geometry resource:"+request.getPathInfo()+" user="+usernameParam+", tid="+templateID);
//trying to post to just /template/<TID>/geometry
if (pathElements.length == 5) {
@@ -285,6 +286,7 @@
}
return;
} catch (PersistException e) {
+ Log.info("Got Persist Exception:" +e.getMessage());
handlePersistException(response, e);
return;
}
Added: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/WebappServletBase.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/WebappServletBase.java (rev 0)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/WebappServletBase.java 2007-10-01 21:55:49 UTC (rev 463)
@@ -0,0 +1,27 @@
+package com.ogoglio.site;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
+
+public abstract class WebappServletBase extends OgoglioServletBase {
+
+ protected boolean servletNeeded=true;
+
+ public void init(ServletConfig config) throws ServletException {
+ try {
+ initBaseUrl();
+ Context envCtx = (Context) initCtx.lookup("java:comp/env");
+ String useMe = (String) envCtx.lookup("ogoglio/isWebappServer");
+ if ("false".equals(useMe.toLowerCase())) {
+ servletNeeded=false;
+ }
+ super.init(config);
+ } catch (NamingException e) {
+ bailOutOfInit(e);
+ }
+ }
+
+}
Modified: maven/trunk/ogoglio-server/src/main/webapp/META-INF/context.xml
===================================================================
--- maven/trunk/ogoglio-server/src/main/webapp/META-INF/context.xml 2007-10-01 13:57:55 UTC (rev 462)
+++ maven/trunk/ogoglio-server/src/main/webapp/META-INF/context.xml 2007-10-01 21:55:49 UTC (rev 463)
@@ -14,4 +14,9 @@
<ResourceLink name="ogoglio/okMigrateDB" global="oktoMigrateDB" type="java.lang.String"/>
<ResourceLink name="ogoglio/simsAllowRemoteAccess" global="simsAllowRemoteAccess" type="java.lang.String"/>
<ResourceLink name="ogoglio/mediaDirectory" global="mediaDirectory" type="java.lang.String"/>
+
+ <ResourceLink name="ogoglio/isSimServer" global="isSimServer" type="java.lang.String"/>
+ <ResourceLink name="ogoglio/isMediaServer" global="isMediaServer" type="java.lang.String"/>
+ <ResourceLink name="ogoglio/isWebappServer" global="isWebappServer" type="java.lang.String"/>
+
</Context>
Copied: maven/trunk/ogoglio-server/src/main/webapp/WEB-INF/web-all.xml (from rev 436, maven/trunk/ogoglio-server/src/main/webapp/WEB-INF/web.xml)
===================================================================
--- maven/trunk/ogoglio-server/src/main/webapp/WEB-INF/web-all.xml (rev 0)
+++ maven/trunk/ogoglio-server/src/main/webapp/WEB-INF/web-all.xml 2007-10-01 21:55:49 UTC (rev 463)
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
+ <servlet>
+ <servlet-name>AccountServlet</servlet-name>
+ <servlet-class>com.ogoglio.site.AccountServlet</servlet-class>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+
+ <servlet>
+ <servlet-name>AuthServlet</servlet-name>
+ <servlet-class>com.ogoglio.site.AuthServlet</servlet-class>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+
+ <servlet>
+ <servlet-name>SpaceServlet</servlet-name>
+ <servlet-class>com.ogoglio.site.SpaceServlet</servlet-class>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+
+ <servlet>
+ <servlet-name>MediaServlet</servlet-name>
+ <servlet-class>com.ogoglio.media.site.MediaServlet</servlet-class>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+
+ <servlet>
+ <servlet-name>SimServlet</servlet-name>
+ <servlet-class>com.ogoglio.sim.site.SimServlet</servlet-class>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>AccountServlet</servlet-name>
+ <url-pattern>/account/*</url-pattern>
+ </servlet-mapping>
+
+ <servlet-mapping>
+ <servlet-name>AuthServlet</servlet-name>
+ <url-pattern>/auth/*</url-pattern>
+ </servlet-mapping>
+
+ <servlet-mapping>
+ <servlet-name>SpaceServlet</servlet-name>
+ <url-pattern>/space/*</url-pattern>
+ </servlet-mapping>
+
+ <servlet-mapping>
+ <servlet-name>SimServlet</servlet-name>
+ <url-pattern>/sim/*</url-pattern>
+ </servlet-mapping>
+
+ <servlet-mapping>
+ <servlet-name>MediaServlet</servlet-name>
+ <url-pattern>/media/*</url-pattern>
+ </servlet-mapping>
+
+ <error-page>
+ <error-code>404</error-code>
+ <location>/notFound.html</location>
+ </error-page>
+</web-app>
Modified: maven/trunk/ogoglio-server/src/test/java/com/ogoglio/persist/test/PersistTest.java
===================================================================
--- maven/trunk/ogoglio-server/src/test/java/com/ogoglio/persist/test/PersistTest.java 2007-10-01 13:57:55 UTC (rev 462)
+++ maven/trunk/ogoglio-server/src/test/java/com/ogoglio/persist/test/PersistTest.java 2007-10-01 21:55:49 UTC (rev 463)
@@ -229,8 +229,9 @@
SpaceRecord spaceRecord2 = SpacePersistTasks.findSpaceBySpaceID(spaceRecord1.getSpaceID(), sessionFactory);
assertEquals(spaceRecord1, spaceRecord2);
- SimRecord assignedSimRecord = SpacePersistTasks.findOrAssignSim(spaceRecord2, sessionFactory);
+ SimRecord assignedSimRecord = SpacePersistTasks.findOrAssignSim(spaceRecord2, sessionFactory, false);
assertNotNull(assignedSimRecord);
+ assertTrue(assignedSimRecord.isActive());
//System.out.println("XXX ASSIGNED TO SIM:"
// + assignedSimRecord.getSimID() + ","
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tre...@us...> - 2007-10-01 13:57:59
|
Revision: 462
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=462&view=rev
Author: trevorolio
Date: 2007-10-01 06:57:55 -0700 (Mon, 01 Oct 2007)
Log Message:
-----------
Now the body morphs are arranged in an ADG and applied to the body mesh in depth first order.
This implies that there is only one morph with no parent, and there are no cycles.
Both cases are detected, logged, and fail gracefully.
Modified Paths:
--------------
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DDataManager.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMap.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMapParser.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/SkinLoader.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/obj/LineTokenizer.java
maven/trunk/ogoglio-common/src/test/java/com/ogoglio/viewer/j3d/body/test/MorphTest.java
maven/trunk/ogoglio-common/src/test/resources/sample-art3d/MorphTest1.ogmorph
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DDataManager.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DDataManager.java 2007-10-01 13:57:49 UTC (rev 461)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DDataManager.java 2007-10-01 13:57:55 UTC (rev 462)
@@ -150,9 +150,76 @@
} catch (MorphDeltaMapParseException e) {
throw new IllegalStateException("Trevor didn't implement an error body: " + e);
}
- return new J3DBodyData(array, (Bvh[]) animations.toArray(new Bvh[0]), skinMap, baseTexture, (MorphDeltaMap[])morphDeltas.toArray(new MorphDeltaMap[0]));
+
+ sortMorphDeltas(morphDeltas);
+
+ return new J3DBodyData(array, (Bvh[]) animations.toArray(new Bvh[0]), skinMap, baseTexture, (MorphDeltaMap[]) morphDeltas.toArray(new MorphDeltaMap[0]));
}
+ /**
+ * arranges the morph delta maps in depth first order
+ */
+ private void sortMorphDeltas(Vector morphDeltas) {
+ if(morphDeltas.size() == 0){
+ return;
+ }
+ MorphDeltaMap[] deltas = (MorphDeltaMap[]) morphDeltas.toArray(new MorphDeltaMap[0]);
+
+ HashMap nodeMap = new HashMap();
+ for (int i = 0; i < deltas.length; i++) {
+ nodeMap.put(deltas[i].getName(), new MorphTreeNode(deltas[i]));
+ }
+ MorphTreeNode rootNode = null;
+ for (int i = 0; i < deltas.length; i++) {
+ if(deltas[i].getParentName() == null){
+ if(rootNode == null){
+ rootNode = (MorphTreeNode)nodeMap.get(deltas[i].getName());
+ } else {
+ Log.warn("Found multiple morph delta maps with no parent, adding " + deltas[i].getName() + " to " + rootNode.map.getName());
+ rootNode.children.add(nodeMap.get(deltas[i].getName()));
+ }
+ } else {
+ MorphTreeNode parentNode = (MorphTreeNode)nodeMap.get(deltas[i].getParentName());
+ if(parentNode == null){
+ Log.warn("MorphDeltaMap (" + deltas[i].getName() + ") has unknown parent: " + deltas[i].getParentName() + ", ignoring.");
+ } else {
+ parentNode.children.add(nodeMap.get(deltas[i].getName()));
+ }
+ }
+ }
+ if(rootNode == null){
+ throw new IllegalStateException("Cannot have a morph tree with no root");
+ }
+
+ morphDeltas.clear();
+ serializeMorphTree(0, rootNode, morphDeltas);
+ }
+
+ /**
+ * depth first serialization of the ADG of MorphDeltaMaps
+ */
+ private void serializeMorphTree(int depth, MorphTreeNode node, Vector morphDeltas) {
+ depth++;
+ if(depth > 30){
+ Log.error("Morph tree depth was greater than 30, which probably indicates a cyclic tree. Aborting");
+ return;
+ }
+ for (int i = 0; i < node.children.size(); i++) {
+ serializeMorphTree(depth, (MorphTreeNode)node.children.get(i), morphDeltas);
+ }
+ morphDeltas.add(node.map);
+ }
+
+ private class MorphTreeNode {
+ MorphDeltaMap map = null;
+
+ Vector children = new Vector();
+
+ MorphTreeNode(MorphDeltaMap map) {
+ this.map = map;
+ }
+ }
+
private IndexedTriangleArray generateBodyGeometry(Obj obj) {
int indicesTotal = obj.faceCount() * 3;
int[] coordinateIndices = new int[indicesTotal];
@@ -234,7 +301,7 @@
private void fetchTemplateData(String username, long templateID, J3DTemplateData[] results) {
ArgumentUtils.assertNotNull(username);
ArgumentUtils.assertNotNegative(templateID);
-
+
Obj[] objs = getObjs(username, templateID);
HashMap textures = new HashMap();
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMap.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMap.java 2007-10-01 13:57:49 UTC (rev 461)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMap.java 2007-10-01 13:57:55 UTC (rev 462)
@@ -23,11 +23,14 @@
public class MorphDeltaMap {
String name = null;
+
+ String parentName = null;
Vector ranges = new Vector();
- public MorphDeltaMap(String name) {
+ public MorphDeltaMap(String name, String parentName) {
this.name = name;
+ this.parentName = parentName;
}
public void addRange(Range range) {
@@ -38,6 +41,10 @@
return (Range[]) ranges.toArray(new Range[0]);
}
+ public String getParentName() {
+ return parentName;
+ }
+
public String getName() {
return name;
}
@@ -47,7 +54,7 @@
Vector3f[] deltas = null;
- public Range(int lower,Vector3f[] deltas) {
+ public Range(int lower, Vector3f[] deltas) {
ArgumentUtils.assertNotNegative(lower);
this.lower = lower;
ArgumentUtils.assertNotNull(deltas);
@@ -82,7 +89,10 @@
public String toString() {
StringBuffer result = new StringBuffer();
result.append("# MorphDeltaMap\n");
- result.append(name + "\n\n");
+ result.append("name: " + name + "\n\n");
+ if (parentName != null) {
+ result.append("parent: " + parentName + "\n\n");
+ }
Range[] ranges = getRanges();
for (int i = 0; i < ranges.length; i++) {
result.append(ranges[i].lower);
@@ -94,7 +104,8 @@
}
return result.toString();
}
- private String format(float value){
+
+ private String format(float value) {
Object[] args = { new Float(value) };
return String.format("%f", args);
}
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMapParser.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMapParser.java 2007-10-01 13:57:49 UTC (rev 461)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMapParser.java 2007-10-01 13:57:55 UTC (rev 462)
@@ -29,6 +29,10 @@
private LineTokenizer tokenizer = null;
+ private String name = null;
+
+ private String parentName = null;
+
private MorphDeltaMap map = null;
public MorphDeltaMapParser(InputStream input) {
@@ -43,8 +47,10 @@
while ((tokens = tokenizer.readNextLine()) != null) {
if (tokens.length == 0 || tokens[0].startsWith("#")) {
continue;
- } else if (map == null) {
+ } else if (map == null && tokens[0].equals("name:")) {
parseName(tokens);
+ } else if (map == null && tokens[0].equals("parent:")) {
+ parseParentName(tokens);
} else {
parseRange(tokens);
}
@@ -56,11 +62,25 @@
return map;
}
+ private void parseParentName(String[] tokens) throws MorphDeltaMapParseException {
+ if(tokens.length < 2){
+ throw new MorphDeltaMapParseException("Bad parent name definition: " + LineTokenizer.toString(tokens));
+ }
+ parentName = LineTokenizer.toString(tokens, 1);
+ }
+
private void parseName(String[] tokens) throws MorphDeltaMapParseException {
- map = new MorphDeltaMap(LineTokenizer.toString(tokens));
+ if(tokens.length < 2){
+ throw new MorphDeltaMapParseException("Bad name definition: " + LineTokenizer.toString(tokens));
+ }
+ name = LineTokenizer.toString(tokens, 1);
}
private void parseRange(String[] tokens) throws MorphDeltaMapParseException {
+ if(map == null){
+ map = new MorphDeltaMap(name, parentName);
+ }
+
if(tokens.length < 2){
throw new MorphDeltaMapParseException("Bad range: " + LineTokenizer.toString(tokens));
}
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/SkinLoader.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/SkinLoader.java 2007-10-01 13:57:49 UTC (rev 461)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/SkinLoader.java 2007-10-01 13:57:55 UTC (rev 462)
@@ -41,15 +41,12 @@
public Skin generateSkin() {
float[] vertices = geometry.getCoordRefFloat();
- //TODO make these happen in depth first order of the morph ADG
for (int i = 0; i < morphDeltaMaps.length; i++) {
MorphDeltaMap.Range[] ranges = morphDeltaMaps[i].getRanges();
for (int r = 0; r < ranges.length; r++) {
Vector3f[] deltas = ranges[r].getDeltas();
for (int d = 0; d < deltas.length; d++) {
int index = (ranges[r].getLower() - 1 + d) * 3;
- System.out.println(vertices[index] + "," + vertices[index + 1] + "," + vertices[index + 2]);
- System.out.println("Deltas " + deltas[d].x + "," + deltas[d].y + "," + deltas[d].z);
vertices[index] = vertices[index] + deltas[d].x;
vertices[index + 1] = vertices[index + 1] + deltas[d].y;
vertices[index + 2] = vertices[index + 2] + deltas[d].z;
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/obj/LineTokenizer.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/obj/LineTokenizer.java 2007-10-01 13:57:49 UTC (rev 461)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/obj/LineTokenizer.java 2007-10-01 13:57:55 UTC (rev 462)
@@ -51,8 +51,12 @@
}
public static String toString(String[] tokens) {
+ return toString(tokens, 0);
+ }
+
+ public static String toString(String[] tokens, int startingIndex) {
StringBuffer result = new StringBuffer();
- for (int i = 0; i < tokens.length; i++) {
+ for (int i = startingIndex; i < tokens.length; i++) {
result.append(tokens[i] + " ");
}
return result.toString().trim();
Modified: maven/trunk/ogoglio-common/src/test/java/com/ogoglio/viewer/j3d/body/test/MorphTest.java
===================================================================
--- maven/trunk/ogoglio-common/src/test/java/com/ogoglio/viewer/j3d/body/test/MorphTest.java 2007-10-01 13:57:49 UTC (rev 461)
+++ maven/trunk/ogoglio-common/src/test/java/com/ogoglio/viewer/j3d/body/test/MorphTest.java 2007-10-01 13:57:55 UTC (rev 462)
@@ -16,7 +16,9 @@
public void testMorphDeltaMapParse() throws IOException, MorphDeltaMapParseException {
MorphDeltaMap map1 = new MorphDeltaMapParser(UIConstants.getResource(MORPH1_RESOURCE_PATH)).parse();
- assertNotNull(map1.getName());
+ assertEquals("testMorph1", map1.getName());
+ assertEquals("parentMorph1", map1.getParentName());
+
assertTrue(map1.getName().length() > 0);
assertTrue(map1.getRanges().length > 0);
assertTrue(map1.getRanges()[0].getDeltas().length > 0);
@@ -27,6 +29,7 @@
private void assertMapsEqual(MorphDeltaMap map1, MorphDeltaMap map2) {
assertEquals(map1.getName(), map2.getName());
+ assertEquals(map1.getParentName(), map2.getParentName());
assertEquals(map1.getVertexCount(), map2.getVertexCount());
assertEquals(map1.getRanges().length, map2.getRanges().length);
for (int i = 0; i < map1.getRanges().length; i++) {
Modified: maven/trunk/ogoglio-common/src/test/resources/sample-art3d/MorphTest1.ogmorph
===================================================================
--- maven/trunk/ogoglio-common/src/test/resources/sample-art3d/MorphTest1.ogmorph 2007-10-01 13:57:49 UTC (rev 461)
+++ maven/trunk/ogoglio-common/src/test/resources/sample-art3d/MorphTest1.ogmorph 2007-10-01 13:57:55 UTC (rev 462)
@@ -1,5 +1,6 @@
# MorphDeltaMap
-testMorph1
+name: testMorph1
+parent: parentMorph1
3 0.000000,0.000000,1.733333 0.000000,0.000000,1.600000 0.000000,0.000000,1.466667 0.000000,0.000000,1.333333 0.000000,0.000000,1.200000 0.000000,0.000000,1.066667 0.000000,0.000000,0.933333 0.000000,0.000000,0.800000 0.000000,0.000000,0.666667 0.000000,0.000000,0.533333 0.000000,0.000000,0.400000 0.000000,0.000000,0.266667
18 0.000000,0.000000,0.000000 0.000000,0.000000,0.133334 0.000000,0.000000,0.266667 0.000000,0.000000,0.400000 0.000000,0.000000,0.533334 0.000000,0.000000,0.666667 0.000000,0.000000,0.800000 0.000000,0.000000,0.933334 0.000000,0.000000,1.066667 0.000000,0.000000,1.200000 0.000000,0.000000,1.333334 0.000000,0.000000,1.466667 0.000000,0.000000,1.600000 0.000000,0.000000,1.733334
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tre...@us...> - 2007-10-01 13:57:45
|
Revision: 461
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=461&view=rev
Author: trevorolio
Date: 2007-10-01 06:57:49 -0700 (Mon, 01 Oct 2007)
Log Message:
-----------
Now the body morphs are arranged in an ADG and applied to the body mesh in depth first order.
This implies that there is only one morph with no parent, and there are no cycles.
Both cases are detected, logged, and fail gracefully.
Modified Paths:
--------------
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/geometry/fat.ogmorph
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/geometry/headWidth.ogmorph
maven/trunk/ogoglio-bodies/ogoglio-body-tools/src/main/java/com/ogoglio/util/body/BodyMorphTool.java
Added Paths:
-----------
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/geometry/chinWidth.ogmorph
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/sourceArt/chinWidth.blend
Added: maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/geometry/chinWidth.ogmorph
===================================================================
--- maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/geometry/chinWidth.ogmorph (rev 0)
+++ maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/geometry/chinWidth.ogmorph 2007-10-01 13:57:49 UTC (rev 461)
@@ -0,0 +1,13 @@
+# MorphDeltaMap
+name: Chin Width
+parent: Fat
+
+19 0.009885,0.000000,0.000000
+21 0.006815,0.000000,0.000000
+23 0.004966,0.000000,0.000000
+84 0.011247,0.000000,0.000000
+89 0.014312,0.000000,0.000000
+484 -0.009884,0.000000,0.000000 -0.006815,0.000000,0.000000 -0.004965,0.000000,0.000000
+527 -0.011248,0.000000,0.000000
+533 -0.014312,0.000000,0.000000
+
Modified: maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/geometry/fat.ogmorph
===================================================================
--- maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/geometry/fat.ogmorph 2007-09-28 23:01:11 UTC (rev 460)
+++ maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/geometry/fat.ogmorph 2007-10-01 13:57:49 UTC (rev 461)
@@ -1,5 +1,5 @@
# MorphDeltaMap
-Fat
+name: Fat
345 0.000000,0.000000,0.101537 0.000000,0.000000,0.101537 0.000000,0.000000,0.101537
353 0.000000,0.000000,0.101536 0.000000,0.000000,0.101537 0.000000,0.000000,0.101537
Modified: maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/geometry/headWidth.ogmorph
===================================================================
--- maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/geometry/headWidth.ogmorph 2007-09-28 23:01:11 UTC (rev 460)
+++ maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/geometry/headWidth.ogmorph 2007-10-01 13:57:49 UTC (rev 461)
@@ -1,5 +1,6 @@
# MorphDeltaMap
-Head Width
+name: Head Width
+parent: Fat
15 -0.006293,0.000000,0.000000
19 -0.006191,0.000000,0.000000
Added: maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/sourceArt/chinWidth.blend
===================================================================
(Binary files differ)
Property changes on: maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/sourceArt/chinWidth.blend
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: maven/trunk/ogoglio-bodies/ogoglio-body-tools/src/main/java/com/ogoglio/util/body/BodyMorphTool.java
===================================================================
--- maven/trunk/ogoglio-bodies/ogoglio-body-tools/src/main/java/com/ogoglio/util/body/BodyMorphTool.java 2007-09-28 23:01:11 UTC (rev 460)
+++ maven/trunk/ogoglio-bodies/ogoglio-body-tools/src/main/java/com/ogoglio/util/body/BodyMorphTool.java 2007-10-01 13:57:49 UTC (rev 461)
@@ -21,8 +21,18 @@
return;
}
String name = args[0];
- File baseMeshFile = new File(args[1]);
- File morphMeshFile = new File(args[2]);
+ String parentName = null;
+ File baseMeshFile = null;
+ File morphMeshFile = null;
+ if(args.length == 4){
+ parentName = args[1];
+ baseMeshFile = new File(args[2]);
+ morphMeshFile = new File(args[3]);
+ } else {
+ baseMeshFile = new File(args[1]);
+ morphMeshFile = new File(args[2]);
+ }
+
if (!baseMeshFile.exists() || !morphMeshFile.exists()) {
printHelp();
return;
@@ -32,7 +42,7 @@
Obj baseObj = new ObjParser(new FileInputStream(baseMeshFile)).parse();
Obj morphObj = new ObjParser(new FileInputStream(morphMeshFile)).parse();
- MorphDeltaMap deltaMap = generateDeltaMap(name, baseObj, morphObj);
+ MorphDeltaMap deltaMap = generateDeltaMap(name, parentName, baseObj, morphObj);
System.out.println(deltaMap);
} catch (IOException e) {
@@ -46,11 +56,11 @@
return new Vector3f(point2.x - point1.x, point2.y - point1.y, point2.z - point1.z);
}
- private static final MorphDeltaMap generateDeltaMap(String name, Obj baseObj, Obj morphObj) {
+ private static final MorphDeltaMap generateDeltaMap(String name, String parentName, Obj baseObj, Obj morphObj) {
Point3f[] basePoints = baseObj.getVertices();
Point3f[] morphPoints = morphObj.getVertices();
- MorphDeltaMap map = new MorphDeltaMap(name);
+ MorphDeltaMap map = new MorphDeltaMap(name, parentName);
int lower = -1;
int upper = -1;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tre...@us...> - 2007-09-28 23:01:07
|
Revision: 460
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=460&view=rev
Author: trevorolio
Date: 2007-09-28 16:01:11 -0700 (Fri, 28 Sep 2007)
Log Message:
-----------
Added a couple of morphs to Mike and hooked them up to the skin loader.
Don't get excited, they aren't in any order and they're not connected to any user prefs.
Modified Paths:
--------------
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DBodyData.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DDataManager.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DUserRenderable.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/SkinLoader.java
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DBodyData.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DBodyData.java 2007-09-28 23:01:06 UTC (rev 459)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DBodyData.java 2007-09-28 23:01:11 UTC (rev 460)
@@ -8,6 +8,7 @@
import com.ogoglio.util.ArgumentUtils;
import com.ogoglio.util.BodyConstants;
+import com.ogoglio.viewer.j3d.body.MorphDeltaMap;
import com.ogoglio.viewer.j3d.bvh.Bvh;
import com.ogoglio.viewer.j3d.smap.SkinMap;
@@ -21,8 +22,10 @@
private BufferedImage baseTexture = null;
private Bvh defaultAnimation = null;
+
+ private MorphDeltaMap[] morphDeltaMaps = null;
- public J3DBodyData(IndexedTriangleArray bodyGeometry, Bvh[] animations, SkinMap skinMap, BufferedImage baseTexture) {
+ public J3DBodyData(IndexedTriangleArray bodyGeometry, Bvh[] animations, SkinMap skinMap, BufferedImage baseTexture, MorphDeltaMap[] morphDeltaMaps) {
ArgumentUtils.assertNotNull(bodyGeometry);
this.bodyGeometry = bodyGeometry;
ArgumentUtils.assertNotNull(animations);
@@ -31,7 +34,9 @@
this.skinMap = skinMap;
ArgumentUtils.assertNotNull(baseTexture);
this.baseTexture = baseTexture;
-
+ ArgumentUtils.assertNotNull(morphDeltaMaps);
+ this.morphDeltaMaps = morphDeltaMaps;
+
for (int i = 0; i < animations.length; i++) {
if (animations[i].getName().equals(BodyConstants.DEFAULT_ANIMATION_NAME)) {
defaultAnimation = animations[i];
@@ -104,4 +109,8 @@
public Bvh getDefaultAnimation() {
return defaultAnimation;
}
+
+ public MorphDeltaMap[] getMorphDeltaMaps(){
+ return morphDeltaMaps;
+ }
}
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DDataManager.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DDataManager.java 2007-09-28 23:01:06 UTC (rev 459)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DDataManager.java 2007-09-28 23:01:11 UTC (rev 460)
@@ -37,6 +37,9 @@
import com.ogoglio.util.Log;
import com.ogoglio.util.StreamUtils;
import com.ogoglio.util.UIConstants;
+import com.ogoglio.viewer.j3d.body.MorphDeltaMap;
+import com.ogoglio.viewer.j3d.body.MorphDeltaMapParseException;
+import com.ogoglio.viewer.j3d.body.MorphDeltaMapParser;
import com.ogoglio.viewer.j3d.bvh.Bvh;
import com.ogoglio.viewer.j3d.bvh.BvhParseException;
import com.ogoglio.viewer.j3d.bvh.BvhParser;
@@ -101,6 +104,7 @@
if (bodyData == null) {
throw new IllegalStateException("Trevor didn't implement an error body for an illegible body");
}
+ System.out.println("Morph count: " + bodyData.getMorphDeltaMaps().length);
dataCache.putBodyData(bodyName, bodyData);
return bodyData;
}
@@ -109,6 +113,7 @@
IndexedTriangleArray array = null;
SkinMap skinMap = null;
Vector animations = new Vector();
+ Vector morphDeltas = new Vector();
BufferedImage baseTexture = null;
try {
ZipEntry entry = null;
@@ -121,6 +126,9 @@
} else if (entry.getName().equals("geometry/body.smap")) {
SkinMapParser parser = new SkinMapParser(entryStream);
skinMap = parser.parse();
+ } else if (entry.getName().startsWith("geometry/") && entry.getName().endsWith(".ogmorph")) {
+ MorphDeltaMap deltaMap = new MorphDeltaMapParser(entryStream).parse();
+ morphDeltas.add(deltaMap);
} else if (entry.getName().startsWith("animation/") && entry.getName().indexOf(".bvh") != -1) {
String name = entry.getName().substring("animation/".length(), entry.getName().length() - 4);
BvhParser parser = new BvhParser(name, entryStream);
@@ -139,9 +147,10 @@
throw new IllegalStateException("Trevor didn't implement an error body: " + e);
} catch (BvhParseException e) {
throw new IllegalStateException("Trevor didn't implement an error body: " + e);
+ } catch (MorphDeltaMapParseException e) {
+ throw new IllegalStateException("Trevor didn't implement an error body: " + e);
}
-
- return new J3DBodyData(array, (Bvh[]) animations.toArray(new Bvh[0]), skinMap, baseTexture);
+ return new J3DBodyData(array, (Bvh[]) animations.toArray(new Bvh[0]), skinMap, baseTexture, (MorphDeltaMap[])morphDeltas.toArray(new MorphDeltaMap[0]));
}
private IndexedTriangleArray generateBodyGeometry(Obj obj) {
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DUserRenderable.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DUserRenderable.java 2007-09-28 23:01:06 UTC (rev 459)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DUserRenderable.java 2007-09-28 23:01:11 UTC (rev 460)
@@ -95,7 +95,7 @@
private void initBody() {
bodyGroup.removeAllChildren();
- skin = new SkinLoader((GeometryArray) bodyData.cloneBodyGeometry(), bodyData.getBaseTexture(), user.getBody()).generateSkin();
+ skin = new SkinLoader(bodyData, user.getBody()).generateSkin();
userHeight = skin.getHeight();
skinMap = bodyData.getSkinMap();
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/SkinLoader.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/SkinLoader.java 2007-09-28 23:01:06 UTC (rev 459)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/SkinLoader.java 2007-09-28 23:01:11 UTC (rev 460)
@@ -17,8 +17,10 @@
import java.awt.image.BufferedImage;
import javax.media.j3d.GeometryArray;
+import javax.vecmath.Vector3f;
import com.ogoglio.client.model.Body;
+import com.ogoglio.viewer.j3d.J3DBodyData;
public class SkinLoader {
@@ -28,28 +30,45 @@
private BufferedImage baseImage;
- public SkinLoader(GeometryArray geometry, BufferedImage baseImage, Body body) {
- this.geometry = geometry;
+ private MorphDeltaMap[] morphDeltaMaps = null;
+
+ public SkinLoader(J3DBodyData bodyData, Body body) {
+ this.geometry = bodyData.cloneBodyGeometry();
+ this.morphDeltaMaps = bodyData.getMorphDeltaMaps();
+ this.baseImage = bodyData.getBaseTexture();
this.body = body;
- this.baseImage = baseImage;
}
public Skin generateSkin() {
+ float[] vertices = geometry.getCoordRefFloat();
+ //TODO make these happen in depth first order of the morph ADG
+ for (int i = 0; i < morphDeltaMaps.length; i++) {
+ MorphDeltaMap.Range[] ranges = morphDeltaMaps[i].getRanges();
+ for (int r = 0; r < ranges.length; r++) {
+ Vector3f[] deltas = ranges[r].getDeltas();
+ for (int d = 0; d < deltas.length; d++) {
+ int index = (ranges[r].getLower() - 1 + d) * 3;
+ System.out.println(vertices[index] + "," + vertices[index + 1] + "," + vertices[index + 2]);
+ System.out.println("Deltas " + deltas[d].x + "," + deltas[d].y + "," + deltas[d].z);
+ vertices[index] = vertices[index] + deltas[d].x;
+ vertices[index + 1] = vertices[index + 1] + deltas[d].y;
+ vertices[index + 2] = vertices[index + 2] + deltas[d].z;
+ }
+ }
+ }
+
float maxY = Float.MIN_VALUE;
float minY = Float.MAX_VALUE;
-
- float[] vertices = geometry.getCoordRefFloat();
for (int i = 1; i < vertices.length; i += 3) {
- if(vertices[i] < minY){
+ if (vertices[i] < minY) {
minY = vertices[i];
}
- if(vertices[i] > maxY){
+ if (vertices[i] > maxY) {
maxY = vertices[i];
}
}
-
float heightScale = body.getHeight() / Math.abs(maxY - minY);
- if(Math.abs(heightScale) > 0.1){
+ if (Math.abs(heightScale) > 0.1) {
for (int i = 0; i < vertices.length - 2; i += 3) {
vertices[i] = vertices[i] * heightScale;
vertices[i + 1] = vertices[i + 1] * heightScale;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tre...@us...> - 2007-09-28 23:01:03
|
Revision: 459
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=459&view=rev
Author: trevorolio
Date: 2007-09-28 16:01:06 -0700 (Fri, 28 Sep 2007)
Log Message:
-----------
Added a couple of morphs to Mike and hooked them up to the skin loader.
Don't get excited, they aren't in any order and they're not connected to any user prefs.
Modified Paths:
--------------
maven/trunk/ogoglio-bodies/ogoglio-body-tools/src/main/java/com/ogoglio/util/body/BodyMorphTool.java
Added Paths:
-----------
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/geometry/fat.ogmorph
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/geometry/headWidth.ogmorph
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/sourceArt/fat.blend
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/sourceArt/fat.obj
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/sourceArt/headWidth.blend
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/sourceArt/headWidth.obj
Added: maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/geometry/fat.ogmorph
===================================================================
--- maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/geometry/fat.ogmorph (rev 0)
+++ maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/geometry/fat.ogmorph 2007-09-28 23:01:06 UTC (rev 459)
@@ -0,0 +1,11 @@
+# MorphDeltaMap
+Fat
+
+345 0.000000,0.000000,0.101537 0.000000,0.000000,0.101537 0.000000,0.000000,0.101537
+353 0.000000,0.000000,0.101536 0.000000,0.000000,0.101537 0.000000,0.000000,0.101537
+361 0.000000,0.000000,0.101537 0.000000,0.000000,0.101537 0.000000,0.000000,0.101537
+369 0.000000,0.000000,0.068832
+782 0.000000,0.000000,0.101537 0.000000,0.000000,0.101537
+788 0.000000,0.000000,0.101537 0.000000,0.000000,0.101537
+794 0.000000,0.000000,0.101537 0.000000,0.000000,0.101537
+
Added: maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/geometry/headWidth.ogmorph
===================================================================
--- maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/geometry/headWidth.ogmorph (rev 0)
+++ maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/geometry/headWidth.ogmorph 2007-09-28 23:01:06 UTC (rev 459)
@@ -0,0 +1,33 @@
+# MorphDeltaMap
+Head Width
+
+15 -0.006293,0.000000,0.000000
+19 -0.006191,0.000000,0.000000
+21 -0.004267,0.000000,0.000000
+23 -0.003108,0.000000,0.000000
+25 -0.002406,0.000000,0.000000
+27 -0.001766,0.000000,0.000000
+29 -0.002342,0.000000,0.000000
+31 -0.003998,0.000000,0.000000
+33 -0.002881,0.000000,0.000000
+35 -0.002653,0.000000,0.000000
+37 -0.001338,0.000000,0.000000
+39 -0.002891,0.000000,0.000000
+42 -0.002048,0.000000,0.000000 -0.005839,0.000000,0.000000
+46 -0.004273,0.000000,0.000000 -0.005839,0.000000,0.000000
+49 -0.007533,0.000000,0.000000
+51 -0.007398,0.000000,0.000000
+53 -0.005977,0.000000,0.000000
+56 -0.007295,0.000000,0.000000
+59 -0.001800,0.000000,0.000000
+61 -0.005205,0.000000,0.000000 -0.007871,0.000000,0.000000 -0.009695,0.000000,0.000000 -0.005438,0.000000,0.000000 -0.009316,0.000000,0.000000 -0.011106,0.000000,0.000000 -0.007658,0.000000,0.000000 -0.009362,0.000000,0.000000 -0.005216,0.000000,0.000000 -0.005027,0.000000,0.000000 -0.003589,0.000000,0.000000 -0.002589,0.000000,0.000000 -0.004332,0.000000,0.000000 -0.006312,0.000000,0.000000 -0.010328,0.000000,0.000000 -0.013449,0.000000,0.000000 -0.011512,0.000000,0.000000 -0.006248,0.000000,0.000000 -0.004320,0.000000,0.000000 -0.007440,0.000000,0.000000 -0.006382,0.000000,0.000000 -0.009040,0.000000,0.000000 -0.004018,0.000000,0.000000 -0.007046,0.000000,0.000000 -0.003727,0.000000,0.000000 -0.002003,0.000000,0.000000 -0.010480,0.000000,0.000000 -0.010982,0.000000,0.000000 -0.008967,0.000000,0.000000 -0.009523,0.000000,0.000000 -0.014273,0.000000,0.000000 -0.015464,0.000000,0.000000 -0.013112,0.000000,0.000000 -0.012620,0.000000,0.000000 -0.012323,0.000000,0.000000 -0.010281,0.000000,0.000000 -0.010471,0.000000,0.000000
+100 -0.011806,0.000000,0.000000 -0.011495,0.000000,0.000000 -0.011377,0.000000,0.000000 -0.013634,0.000000,0.000000 -0.012398,0.000000,0.000000 -0.011412,0.000000,0.000000 -0.011289,0.000000,0.000000
+108 -0.015898,0.000000,0.000000 -0.016040,0.000000,0.000000 -0.017103,0.000000,0.000000 -0.015166,0.000000,0.000000 -0.013428,0.000000,0.000000 -0.013835,0.000000,0.000000 -0.014671,0.000000,0.000000 -0.017819,0.000000,0.000000 -0.017919,0.000000,0.000000 -0.014974,0.000000,0.000000 -0.013517,0.000000,0.000000 -0.016373,0.000000,0.000000 -0.014951,0.000000,0.000000 -0.018078,0.000000,0.000000 -0.015832,0.000000,0.000000 -0.016559,0.000000,0.000000 -0.018339,0.000000,0.000000 -0.017057,0.000000,0.000000 -0.016861,0.000000,0.000000 -0.018339,0.000000,0.000000 -0.017070,0.000000,0.000000
+465 -0.003698,0.000000,0.000000 -0.005564,0.000000,0.000000 -0.007208,0.000000,0.000000
+482 0.006303,0.000000,0.000000
+484 0.006200,0.000000,0.000000 0.004277,0.000000,0.000000 0.003117,0.000000,0.000000 0.002415,0.000000,0.000000 0.001774,0.000000,0.000000 0.002352,0.000000,0.000000 0.004008,0.000000,0.000000 0.002890,0.000000,0.000000 0.002662,0.000000,0.000000 0.001348,0.000000,0.000000 0.002900,0.000000,0.000000 0.002058,0.000000,0.000000 0.005848,0.000000,0.000000 0.004283,0.000000,0.000000 0.005848,0.000000,0.000000 0.007542,0.000000,0.000000 0.007401,0.000000,0.000000 0.005985,0.000000,0.000000 0.007304,0.000000,0.000000
+504 0.001809,0.000000,0.000000 0.005214,0.000000,0.000000 0.005447,0.000000,0.000000 0.009703,0.000000,0.000000 0.007881,0.000000,0.000000 0.011115,0.000000,0.000000 0.009326,0.000000,0.000000 0.009372,0.000000,0.000000 0.007667,0.000000,0.000000 0.005036,0.000000,0.000000 0.005225,0.000000,0.000000 0.003599,0.000000,0.000000 0.002599,0.000000,0.000000 0.006322,0.000000,0.000000 0.004341,0.000000,0.000000 0.010336,0.000000,0.000000 0.013459,0.000000,0.000000 0.011520,0.000000,0.000000 0.006258,0.000000,0.000000 0.007449,0.000000,0.000000 0.004329,0.000000,0.000000 0.009050,0.000000,0.000000 0.006391,0.000000,0.000000 0.007055,0.000000,0.000000 0.004028,0.000000,0.000000 0.003736,0.000000,0.000000 0.002012,0.000000,0.000000 0.010490,0.000000,0.000000 0.010319,0.000000,0.000000 0.008976,0.000000,0.000000 0.009532,0.000000,0.000000 0.014283,0.000000,0.000000 0.015473,0.000000,0.000000 0.013122,0.000000,0.000000 0.012629,0.000000,0.000000 0.012333,0.000000,0.000000 0.010291,0.000000,0.000000 0.010481,0.000000,0.000000 0.011815,0.000000,0.000000
+545 0.011504,0.000000,0.000000 0.011386,0.000000,0.000000 0.013644,0.000000,0.000000 0.012375,0.000000,0.000000 0.011298,0.000000,0.000000 0.011421,0.000000,0.000000
+552 0.015907,0.000000,0.000000 0.016050,0.000000,0.000000 0.017111,0.000000,0.000000 0.014959,0.000000,0.000000 0.013436,0.000000,0.000000 0.013845,0.000000,0.000000 0.014680,0.000000,0.000000 0.017929,0.000000,0.000000 0.017827,0.000000,0.000000 0.014983,0.000000,0.000000 0.016383,0.000000,0.000000 0.013525,0.000000,0.000000 0.015841,0.000000,0.000000 0.018087,0.000000,0.000000 0.014961,0.000000,0.000000 0.018348,0.000000,0.000000 0.016567,0.000000,0.000000 0.017067,0.000000,0.000000 0.018348,0.000000,0.000000 0.016871,0.000000,0.000000 0.017078,0.000000,0.000000
+892 0.003707,0.000000,0.000000 0.007217,0.000000,0.000000 0.005574,0.000000,0.000000
+
Added: maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/sourceArt/fat.blend
===================================================================
(Binary files differ)
Property changes on: maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/sourceArt/fat.blend
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/sourceArt/fat.obj
===================================================================
--- maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/sourceArt/fat.obj (rev 0)
+++ maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/sourceArt/fat.obj 2007-09-28 23:01:06 UTC (rev 459)
@@ -0,0 +1,2682 @@
+# Blender3D v245 OBJ File: fat.blend
+# www.blender3d.org
+o Mike
+v 0.311142 0.406033 -0.108595
+v 0.303021 0.345360 -0.125835
+v 0.227706 0.341257 -0.128513
+v 0.229273 0.409040 -0.107120
+v 0.294899 0.278192 -0.102832
+v 0.241228 0.253397 -0.120454
+v 0.226139 0.256499 -0.012092
+v 0.294899 0.270102 -0.036757
+v 0.303021 0.323897 0.025088
+v 0.227706 0.318876 0.024398
+v 0.311142 0.395855 0.014442
+v 0.229273 0.394438 0.000494
+v 0.314506 0.428960 -0.051745
+v 0.229922 0.422291 -0.054673
+v 0.032408 0.438193 0.019218
+v 0.000028 0.433348 0.028486
+v 0.000028 0.377973 0.023821
+v 0.049007 0.387226 0.014744
+v 0.031882 0.438606 0.041908
+v 0.000028 0.431574 0.061884
+v 0.021992 0.449185 0.072133
+v 0.000028 0.444615 0.081399
+v 0.016030 0.469902 0.076850
+v 0.000028 0.469598 0.081529
+v 0.012422 0.490974 0.083452
+v 0.000028 0.490011 0.087355
+v 0.009128 0.497154 0.079358
+v 0.000028 0.497166 0.081634
+v 0.012094 0.502695 0.087565
+v 0.000028 0.502377 0.089515
+v 0.020607 0.523745 0.080789
+v 0.000028 0.519527 0.090166
+v 0.014865 0.531088 0.096715
+v 0.000028 0.524749 0.102985
+v 0.013691 0.540315 0.093596
+v 0.000028 0.535999 0.105575
+v 0.006934 0.559235 0.089070
+v 0.000028 0.560304 0.094733
+v 0.014916 0.623913 0.087199
+v 0.000028 0.623913 0.087199
+v 0.000028 0.590254 0.090531
+v 0.010582 0.585735 0.084708
+v 0.030071 0.689433 0.033411
+v 0.000028 0.693038 0.037553
+v 0.000028 0.659557 0.075624
+v 0.022023 0.657368 0.073036
+v 0.030071 0.688165 -0.058547
+v 0.000028 0.691187 -0.060564
+v 0.038780 0.619464 -0.126007
+v 0.000028 0.620930 -0.128730
+v 0.038089 0.555866 -0.119522
+v 0.000028 0.555803 -0.122571
+v 0.030779 0.472175 -0.081673
+v 0.000028 0.472172 -0.082136
+v 0.000028 0.508952 -0.096572
+v 0.037557 0.507394 -0.092203
+v 0.032240 0.437063 -0.080951
+v 0.000028 0.433697 -0.084518
+v 0.009305 0.573542 0.082195
+v 0.000028 0.573009 0.087655
+v 0.026811 0.584435 0.071542
+v 0.040521 0.582635 0.067057
+v 0.049895 0.596475 0.070593
+v 0.028011 0.598325 0.081865
+v 0.047951 0.574371 0.059396
+v 0.057153 0.571919 0.048250
+v 0.039423 0.569399 0.067127
+v 0.048187 0.556122 0.062690
+v 0.026867 0.569700 0.072905
+v 0.025897 0.553701 0.072508
+v 0.018504 0.571587 0.076368
+v 0.013366 0.556996 0.078749
+v 0.022323 0.538583 0.079018
+v 0.032507 0.538061 0.069355
+v 0.053149 0.538678 0.045440
+v 0.069197 0.573117 0.032754
+v 0.059235 0.609482 0.058061
+v 0.032174 0.620979 0.079437
+v 0.022262 0.501677 0.080554
+v 0.038303 0.513808 0.066809
+v 0.032862 0.497765 0.070830
+v 0.046530 0.494389 0.061846
+v 0.020710 0.493805 0.077478
+v 0.036277 0.474128 0.069749
+v 0.019214 0.577472 0.076421
+v 0.010349 0.585259 0.084608
+v 0.053937 0.512055 0.044935
+v 0.056515 0.492857 0.041268
+v 0.046152 0.462052 0.048870
+v 0.049014 0.649793 0.053833
+v 0.073436 0.624977 0.026105
+v 0.079557 0.581437 0.011099
+v 0.067467 0.540893 0.013789
+v 0.064933 0.512990 0.011857
+v 0.063412 0.489249 0.013024
+v 0.052911 0.454943 0.012510
+v 0.053886 0.453386 0.001558
+v 0.077742 0.410787 -0.022260
+v 0.083865 0.431962 -0.044335
+v 0.060751 0.471467 -0.025079
+v 0.059151 0.675975 0.025682
+v 0.058545 0.673868 -0.054165
+v 0.070151 0.610003 -0.105443
+v 0.063792 0.554302 -0.100252
+v 0.058724 0.508456 -0.075485
+v 0.058092 0.473761 -0.057461
+v 0.066169 0.433346 -0.059552
+v 0.081789 0.634172 -0.004684
+v 0.082519 0.635104 -0.051578
+v 0.087981 0.600291 -0.078550
+v 0.078026 0.555455 -0.070254
+v 0.069087 0.512555 -0.043755
+v 0.071182 0.516580 -0.012704
+v 0.075481 0.546017 -0.017103
+v 0.091662 0.553537 -0.029029
+v 0.092180 0.571775 -0.025134
+v 0.077038 0.546506 -0.004031
+v 0.069544 0.520973 -0.005878
+v 0.084231 0.524297 -0.014313
+v 0.076922 0.552023 -0.031426
+v 0.092997 0.553324 -0.037942
+v 0.081448 0.517100 -0.018164
+v 0.085183 0.571371 -0.036702
+v 0.094337 0.576197 -0.039252
+v 0.087750 0.581460 -0.022004
+v 0.086741 0.578605 -0.014305
+v 0.094337 0.587110 -0.022076
+v 0.087812 0.602441 -0.015110
+v 0.000028 0.306033 0.078103
+v 0.098413 0.315753 0.058105
+v 0.000028 0.390553 -0.124096
+v 0.066103 0.392548 -0.118642
+v 0.127275 0.405948 -0.001655
+v 0.133119 0.432021 -0.049028
+v 0.105463 0.420778 -0.094615
+v 0.176177 0.321700 0.039256
+v 0.182500 0.403268 -0.006660
+v 0.183263 0.429829 -0.056155
+v 0.167158 0.411076 -0.096562
+v 0.156244 0.357656 -0.125999
+v 0.071801 0.287852 -0.142860
+v 0.000028 0.288407 -0.148833
+v 0.161383 0.280583 -0.135349
+v 0.000028 0.234817 0.101598
+v 0.088484 0.240522 0.093669
+v 0.183165 0.247821 0.074628
+v 0.219529 0.164758 0.009079
+v 0.220210 0.161960 -0.104152
+v 0.075033 0.180716 -0.154695
+v 0.000028 0.181746 -0.161272
+v 0.162609 0.175029 -0.143446
+v 0.000028 0.122600 0.129090
+v 0.081107 0.138150 0.122447
+v 0.169559 0.175308 0.080912
+v 0.392215 0.398575 -0.103312
+v 0.389599 0.341860 -0.118799
+v 0.363127 0.295690 -0.098197
+v 0.363926 0.288459 -0.038797
+v 0.371429 0.322571 -0.003214
+v 0.393038 0.393851 0.012893
+v 0.393035 0.421282 -0.052218
+v 0.480329 0.382575 -0.108943
+v 0.477818 0.339690 -0.116291
+v 0.476964 0.281307 -0.096437
+v 0.477731 0.274366 -0.039413
+v 0.479842 0.321220 0.003687
+v 0.481119 0.375678 -0.002511
+v 0.481116 0.403009 -0.052303
+v 0.534529 0.383467 -0.103144
+v 0.531846 0.339802 -0.113081
+v 0.530933 0.277408 -0.092400
+v 0.531753 0.279534 -0.038301
+v 0.531875 0.319938 -0.008492
+v 0.535374 0.377030 -0.007050
+v 0.535371 0.407429 -0.052026
+v 0.614205 0.370882 -0.094631
+v 0.611815 0.330580 -0.103040
+v 0.611002 0.272891 -0.089630
+v 0.611732 0.275147 -0.040212
+v 0.613742 0.312186 -0.013477
+v 0.614958 0.366006 -0.012141
+v 0.614955 0.393044 -0.052460
+v 0.697684 0.349483 -0.085306
+v 0.696158 0.323875 -0.094952
+v 0.695639 0.289056 -0.082154
+v 0.696105 0.284930 -0.045352
+v 0.697388 0.306451 -0.017489
+v 0.698164 0.345371 -0.021510
+v 0.698162 0.361660 -0.053638
+v 0.754698 0.333399 -0.077816
+v 0.753286 0.320252 -0.096420
+v 0.752805 0.296102 -0.081030
+v 0.753237 0.292513 -0.048656
+v 0.754424 0.311242 -0.024676
+v 0.755142 0.332518 -0.031850
+v 0.755141 0.337772 -0.056064
+v 0.807592 0.316963 -0.102882
+v 0.806886 0.309287 -0.104776
+v 0.806406 0.294584 -0.088101
+v 0.806837 0.303095 -0.044997
+v 0.790644 0.296553 -0.014002
+v 0.790965 0.316036 -0.012315
+v 0.791362 0.326429 -0.019325
+v 0.809505 0.337968 -0.055003
+v 0.808922 0.330058 -0.094521
+v 0.856666 0.324398 -0.107946
+v 0.856203 0.309974 -0.111118
+v 0.855723 0.301462 -0.090840
+v 0.839287 0.310210 -0.066552
+v 0.840293 0.307497 -0.051713
+v 0.818320 0.322653 -0.003366
+v 0.817355 0.311672 0.007191
+v 0.857701 0.307526 0.022552
+v 0.858060 0.320750 0.012845
+v 0.825749 0.327720 -0.017101
+v 0.822955 0.332172 -0.031065
+v 0.842806 0.337434 -0.069897
+v 0.857983 0.334552 -0.084306
+v 0.857616 0.332506 -0.094534
+v 0.878465 0.326286 -0.111195
+v 0.878262 0.310207 -0.113301
+v 0.877985 0.302192 -0.094581
+v 0.878107 0.307071 -0.081601
+v 0.855289 0.302989 -0.078731
+v 0.857342 0.294860 -0.010075
+v 0.856331 0.302742 -0.020943
+v 0.883379 0.306162 -0.026117
+v 0.879604 0.304083 -0.010124
+v 0.858060 0.328932 -0.015010
+v 0.859335 0.310650 -0.011660
+v 0.879896 0.317261 -0.006545
+v 0.884695 0.328932 -0.015010
+v 0.880023 0.335110 -0.081512
+v 0.885720 0.337257 -0.070783
+v 0.878872 0.316581 -0.087636
+v 0.883185 0.309870 -0.068091
+v 0.884684 0.317452 -0.063753
+v 0.883892 0.311136 -0.054673
+v 0.883766 0.316540 -0.032873
+v 0.882798 0.309195 -0.040030
+v 0.879877 0.329057 -0.101777
+v 0.885809 0.338866 -0.056774
+v 0.884694 0.340475 -0.042764
+v 0.884694 0.335037 -0.025919
+v 0.821182 0.289975 -0.011262
+v 0.857342 0.296060 0.017453
+v 0.817044 0.301665 0.001516
+v 0.911570 0.302867 -0.001241
+v 0.912187 0.313236 0.003461
+v 0.921627 0.301808 0.011660
+v 0.911065 0.291154 0.005491
+v 0.911065 0.291427 0.018073
+v 0.906535 0.317860 -0.113865
+v 0.906365 0.303624 -0.112733
+v 0.908014 0.322962 -0.102199
+v 0.906953 0.311825 -0.092512
+v 0.906088 0.299519 -0.099606
+v 0.941775 0.303009 -0.101606
+v 0.948146 0.291392 -0.105249
+v 0.939086 0.299501 -0.112069
+v 0.965350 0.305935 -0.071314
+v 0.972148 0.298701 -0.074351
+v 0.965218 0.305535 -0.078756
+v 0.841634 0.340336 -0.055388
+v 0.841149 0.335478 -0.037826
+v 0.855977 0.332205 -0.026418
+v 0.966390 0.309162 -0.055292
+v 0.974673 0.299676 -0.047939
+v 0.971513 0.296787 -0.057628
+v 0.964451 0.302563 -0.012991
+v 0.972537 0.294499 -0.017808
+v 0.964126 0.301372 -0.023422
+v 0.823797 0.295120 -0.027878
+v 0.845438 0.304521 -0.030178
+v 0.859012 0.318845 -0.005538
+v 0.894490 0.305101 0.030385
+v 0.895051 0.318576 0.021116
+v 0.885814 0.293930 0.022748
+v 0.885814 0.289052 0.007662
+v 0.886320 0.302423 -0.002559
+v 0.912689 0.306951 -0.066372
+v 0.913581 0.317452 -0.063753
+v 0.912581 0.306612 -0.081599
+v 0.913442 0.316905 -0.084002
+v 0.914497 0.329638 -0.081483
+v 0.914617 0.329435 -0.070742
+v 0.912890 0.309725 -0.039758
+v 0.913712 0.324143 -0.036580
+v 0.912790 0.308982 -0.052521
+v 0.913653 0.318456 -0.059502
+v 0.914706 0.332728 -0.056741
+v 0.914794 0.333791 -0.042728
+v 0.914101 0.307026 -0.010625
+v 0.914373 0.317271 -0.007286
+v 0.913522 0.303222 -0.023223
+v 0.914049 0.316792 -0.026910
+v 0.914768 0.327140 -0.024733
+v 0.914769 0.327838 -0.012102
+v 0.886936 0.318403 0.003433
+v 0.912187 0.310895 0.015093
+v 0.911626 0.301338 0.023150
+v 0.929923 0.302823 -0.092941
+v 0.932783 0.313122 -0.102193
+v 0.926876 0.290615 -0.099559
+v 0.927876 0.294607 -0.112685
+v 0.930554 0.308568 -0.113339
+v 0.943794 0.299756 -0.068410
+v 0.946499 0.308737 -0.063707
+v 0.943642 0.300252 -0.081565
+v 0.946286 0.308221 -0.083956
+v 0.949541 0.315907 -0.080187
+v 0.949614 0.316457 -0.070672
+v 0.948709 0.304082 -0.039728
+v 0.952027 0.315692 -0.036535
+v 0.948492 0.302545 -0.052486
+v 0.950999 0.310100 -0.059457
+v 0.954520 0.318716 -0.056666
+v 0.954779 0.319748 -0.042654
+v 0.942940 0.298888 -0.010096
+v 0.945144 0.308805 -0.006500
+v 0.941910 0.297813 -0.023194
+v 0.944731 0.308346 -0.027607
+v 0.950815 0.313296 -0.025232
+v 0.950934 0.314901 -0.011651
+v 0.947637 0.294064 -0.093913
+v 0.942769 0.283864 -0.099862
+v 0.944379 0.287197 -0.111653
+v 0.965252 0.291031 -0.069455
+v 0.968652 0.297354 -0.065851
+v 0.965150 0.291297 -0.079823
+v 0.968424 0.296990 -0.081691
+v 0.970543 0.293645 -0.040931
+v 0.973292 0.301255 -0.038216
+v 0.970114 0.292405 -0.051736
+v 0.966767 0.309976 -0.043425
+v 0.964109 0.287824 -0.011341
+v 0.967547 0.295527 -0.008501
+v 0.963276 0.287433 -0.022121
+v 0.967088 0.295062 -0.025569
+v 0.211918 0.060508 0.009634
+v 0.212598 0.057791 -0.088298
+v 0.075033 0.068439 -0.157155
+v 0.000028 0.071188 -0.160683
+v 0.162609 0.066391 -0.134785
+v 0.000028 0.018325 0.226543
+v 0.081107 0.033861 0.217199
+v 0.160689 0.047771 0.164759
+v 0.193886 -0.059312 0.010272
+v 0.194515 -0.061973 -0.077289
+v 0.073739 -0.054174 -0.145085
+v 0.000028 -0.050157 -0.148620
+v 0.154668 -0.059717 -0.122697
+v 0.000028 -0.085337 0.203920
+v 0.079352 -0.078306 0.197974
+v 0.152894 -0.064361 0.165356
+v 0.206643 -0.182710 0.006394
+v 0.207307 -0.185366 -0.080232
+v 0.073087 -0.183652 -0.163583
+v 0.000028 -0.181627 -0.176575
+v 0.158533 -0.187001 -0.140772
+v 0.000028 -0.183768 0.191526
+v 0.079013 -0.186118 0.189045
+v 0.156660 -0.188272 0.162519
+v 0.217632 -0.316931 0.008457
+v 0.218306 -0.319549 -0.070898
+v 0.078152 -0.336320 -0.156648
+v 0.009250 -0.309291 -0.164916
+v 0.164005 -0.323822 -0.126342
+v -0.001653 -0.264408 0.154975
+v 0.084163 -0.327601 0.074255
+v 0.162105 -0.325183 0.058479
+v 0.230176 -0.430637 0.005062
+v 0.230914 -0.433306 -0.066731
+v 0.006620 -0.377167 -0.122505
+v 0.083923 -0.441582 -0.135759
+v 0.030954 -0.438307 -0.119357
+v 0.165040 -0.437718 -0.116889
+v -0.002821 -0.332311 0.033739
+v 0.017958 -0.429087 0.007909
+v 0.090503 -0.441802 0.064600
+v 0.162960 -0.439271 0.050326
+v 0.222837 -0.553256 0.008807
+v 0.232208 -0.553787 -0.054626
+v 0.113148 -0.554776 -0.114688
+v 0.048644 -0.553257 -0.101597
+v 0.182910 -0.554391 -0.102225
+v 0.030896 -0.553254 0.020694
+v 0.101988 -0.553988 0.053602
+v 0.164625 -0.553797 0.048133
+v 0.004458 -0.430298 -0.042374
+v 0.015405 -0.553254 -0.044763
+v 0.002147 -0.380715 -0.043301
+v 0.206606 -0.670152 0.018721
+v 0.214418 -0.670689 -0.045876
+v 0.115159 -0.671683 -0.107040
+v 0.062475 -0.670163 -0.093709
+v 0.173319 -0.671297 -0.094348
+v 0.046989 -0.670148 0.030825
+v 0.105855 -0.670879 0.064337
+v 0.158075 -0.670688 0.058767
+v 0.034073 -0.670154 -0.035833
+v 0.198387 -0.790216 0.018314
+v 0.205576 -0.790744 -0.044596
+v 0.114234 -0.791730 -0.104164
+v 0.065752 -0.790211 -0.091181
+v 0.167755 -0.791346 -0.091803
+v 0.052777 -0.790214 0.030102
+v 0.105672 -0.790949 0.062739
+v 0.153727 -0.790758 0.057315
+v 0.041452 -0.790211 -0.034815
+v 0.183272 -0.909319 0.010603
+v 0.189607 -0.909826 -0.048240
+v 0.109122 -0.910791 -0.103956
+v 0.066403 -0.909277 -0.091813
+v 0.156281 -0.910411 -0.092394
+v 0.059015 -0.909321 0.021629
+v 0.101578 -0.910068 0.052156
+v 0.143921 -0.909875 0.047083
+v 0.044992 -0.909296 -0.039091
+v 0.183272 -1.019136 0.007524
+v 0.189607 -1.019634 -0.049842
+v 0.109122 -1.020592 -0.104159
+v 0.066403 -1.019080 -0.092321
+v 0.156281 -1.020214 -0.092888
+v 0.059015 -1.019139 0.018274
+v 0.101578 -1.019890 0.048035
+v 0.143921 -1.019696 0.043088
+v 0.044992 -1.019106 -0.040923
+v 0.173240 -1.123543 0.008080
+v 0.187740 -1.124102 -0.060565
+v 0.109122 -1.125059 -0.114883
+v 0.066403 -1.123548 -0.103045
+v 0.156281 -1.124681 -0.103611
+v 0.063244 -1.123546 0.018830
+v 0.102600 -1.124298 0.048591
+v 0.142476 -1.124104 0.043644
+v 0.048930 -1.123573 -0.051647
+v 0.176846 -1.187160 0.027773
+v 0.187644 -1.214756 -0.059215
+v 0.109122 -1.213050 -0.114414
+v 0.066403 -1.211538 -0.102576
+v 0.156281 -1.215113 -0.103130
+v 0.101578 -1.161543 0.182298
+v 0.065679 -1.176706 0.152622
+v 0.065679 -1.209567 0.152797
+v 0.101578 -1.215162 0.182584
+v 0.143921 -1.161349 0.177352
+v 0.143921 -1.214968 0.177638
+v 0.172564 -1.176703 0.141872
+v 0.172564 -1.217875 0.142092
+v 0.048930 -1.214235 -0.051164
+v 0.061397 -1.187217 0.028251
+v 0.060495 -1.139723 0.075530
+v 0.101578 -1.129409 0.075410
+v 0.060495 -1.215808 0.088571
+v 0.096161 -1.203909 0.025452
+v 0.101578 -1.223975 0.088549
+v 0.143921 -1.129189 0.075425
+v 0.142476 -1.203690 0.025231
+v 0.143921 -1.223755 0.088564
+v 0.177748 -1.139663 0.075534
+v 0.177748 -1.215747 0.088575
+v 0.152486 -1.224410 -0.061332
+v 0.106474 -1.224701 -0.060935
+v 0.019063 0.497120 0.072960
+v 0.028659 0.575952 0.074675
+v 0.037109 0.575812 0.070753
+v -0.311086 0.406033 -0.108594
+v -0.229217 0.409040 -0.107120
+v -0.227650 0.341256 -0.128513
+v -0.302964 0.345360 -0.125835
+v -0.241171 0.253397 -0.120454
+v -0.294843 0.278192 -0.102832
+v -0.226082 0.256499 -0.012092
+v -0.294843 0.270102 -0.036757
+v -0.227650 0.318876 0.024398
+v -0.302964 0.323897 0.025088
+v -0.229217 0.394438 0.000494
+v -0.311086 0.395855 0.014442
+v -0.229866 0.422291 -0.054673
+v -0.314450 0.428960 -0.051745
+v -0.032352 0.438193 0.019218
+v -0.048950 0.387226 0.014744
+v -0.031826 0.438606 0.041908
+v -0.021936 0.449185 0.072133
+v -0.015974 0.469902 0.076850
+v -0.012366 0.490974 0.083452
+v -0.009071 0.497154 0.079358
+v -0.012038 0.502695 0.087565
+v -0.020551 0.523745 0.080789
+v -0.014808 0.531088 0.096715
+v -0.013634 0.540315 0.093596
+v -0.006878 0.559235 0.089070
+v -0.014860 0.623913 0.087199
+v -0.010526 0.585735 0.084708
+v -0.030015 0.689433 0.033411
+v -0.021967 0.657368 0.073036
+v -0.030015 0.688165 -0.058547
+v -0.038724 0.619464 -0.126007
+v -0.037996 0.553636 -0.118622
+v -0.030722 0.472213 -0.074561
+v -0.037500 0.507394 -0.092203
+v -0.032184 0.437063 -0.080951
+v -0.009249 0.573542 0.082195
+v -0.026755 0.584435 0.071542
+v -0.027954 0.598325 0.081865
+v -0.049838 0.596475 0.070593
+v -0.040465 0.582635 0.067057
+v -0.057096 0.571919 0.048250
+v -0.047895 0.574371 0.059396
+v -0.048131 0.556122 0.062690
+v -0.039367 0.569399 0.067127
+v -0.025841 0.553701 0.072508
+v -0.026810 0.569700 0.072905
+v -0.018448 0.571587 0.076368
+v -0.013310 0.556996 0.078749
+v -0.032451 0.538061 0.069355
+v -0.022267 0.538583 0.079018
+v -0.053092 0.538678 0.045440
+v -0.069141 0.573117 0.032754
+v -0.059178 0.609482 0.058061
+v -0.032118 0.620979 0.079437
+v -0.038246 0.513808 0.066809
+v -0.022205 0.501677 0.080554
+v -0.046474 0.494389 0.061846
+v -0.032806 0.497765 0.070830
+v -0.036220 0.474128 0.069749
+v -0.020654 0.493805 0.077478
+v -0.019157 0.577472 0.076421
+v -0.010293 0.585259 0.084608
+v -0.053881 0.512055 0.044935
+v -0.053000 0.492857 0.041268
+v -0.046095 0.462052 0.048870
+v -0.048957 0.649793 0.053833
+v -0.073380 0.624977 0.026105
+v -0.079500 0.581437 0.011099
+v -0.067411 0.540893 0.013789
+v -0.064877 0.512990 0.011857
+v -0.063356 0.489249 0.013024
+v -0.052855 0.454981 0.019622
+v -0.053830 0.453386 0.001558
+v -0.060694 0.471467 -0.025079
+v -0.083809 0.431962 -0.044335
+v -0.077685 0.410787 -0.022260
+v -0.059095 0.675975 0.025682
+v -0.058488 0.673868 -0.054165
+v -0.070095 0.610003 -0.105443
+v -0.063575 0.553309 -0.099924
+v -0.058036 0.473761 -0.057461
+v -0.058667 0.508456 -0.075485
+v -0.066112 0.433346 -0.059552
+v -0.081732 0.634172 -0.004684
+v -0.082463 0.635104 -0.051578
+v -0.087924 0.600291 -0.078550
+v -0.076853 0.551430 -0.068695
+v -0.069030 0.512555 -0.043755
+v -0.071126 0.516580 -0.012704
+v -0.075424 0.546017 -0.017103
+v -0.092124 0.571775 -0.025134
+v -0.091605 0.553537 -0.029029
+v -0.076981 0.546506 -0.004031
+v -0.084175 0.524297 -0.014313
+v -0.069487 0.520973 -0.005878
+v -0.081392 0.517100 -0.018164
+v -0.092941 0.553324 -0.037942
+v -0.076866 0.552023 -0.031426
+v -0.094281 0.576197 -0.039252
+v -0.085126 0.571371 -0.036702
+v -0.087694 0.581460 -0.022004
+v -0.094281 0.587110 -0.022076
+v -0.086685 0.578605 -0.014305
+v -0.087755 0.602441 -0.015110
+v -0.098357 0.315753 0.058105
+v -0.066047 0.392548 -0.118642
+v -0.133063 0.432021 -0.049028
+v -0.127218 0.405948 -0.001655
+v -0.105407 0.420778 -0.094615
+v -0.182443 0.403268 -0.006660
+v -0.176121 0.321700 0.039256
+v -0.167102 0.411076 -0.096562
+v -0.183206 0.429829 -0.056155
+v -0.156187 0.357656 -0.125999
+v -0.071745 0.287852 -0.142860
+v -0.161326 0.280583 -0.135349
+v -0.088427 0.240522 0.093669
+v -0.183108 0.247821 0.074628
+v -0.220153 0.161960 -0.104152
+v -0.219473 0.164758 0.009079
+v -0.074976 0.180716 -0.154695
+v -0.162552 0.175029 -0.143446
+v -0.081050 0.138150 0.122447
+v -0.169503 0.175388 0.095807
+v -0.389543 0.341860 -0.118799
+v -0.392158 0.398575 -0.103312
+v -0.363071 0.295690 -0.098196
+v -0.363870 0.288459 -0.038797
+v -0.371373 0.322571 -0.003214
+v -0.392981 0.393851 0.012893
+v -0.392978 0.421282 -0.052218
+v -0.477762 0.339690 -0.116291
+v -0.480272 0.382575 -0.108943
+v -0.476907 0.281307 -0.096437
+v -0.477675 0.274366 -0.039413
+v -0.479785 0.321220 0.003687
+v -0.481063 0.375678 -0.002511
+v -0.481060 0.403009 -0.052303
+v -0.531790 0.339802 -0.113081
+v -0.534473 0.383467 -0.103144
+v -0.530877 0.277408 -0.092400
+v -0.531697 0.279534 -0.038301
+v -0.531819 0.319938 -0.008492
+v -0.535318 0.377030 -0.007050
+v -0.535315 0.407429 -0.052026
+v -0.611758 0.330580 -0.103040
+v -0.614149 0.370882 -0.094631
+v -0.610945 0.272891 -0.089630
+v -0.611676 0.275147 -0.040212
+v -0.613685 0.312186 -0.013477
+v -0.614901 0.366006 -0.012141
+v -0.614899 0.393044 -0.052460
+v -0.696101 0.323875 -0.094952
+v -0.697627 0.349483 -0.085306
+v -0.695582 0.289056 -0.082154
+v -0.696048 0.284930 -0.045352
+v -0.697331 0.306451 -0.017489
+v -0.698108 0.345371 -0.021510
+v -0.698106 0.361660 -0.053638
+v -0.753229 0.320252 -0.096420
+v -0.754641 0.333399 -0.077816
+v -0.752749 0.296102 -0.081030
+v -0.753180 0.292513 -0.048656
+v -0.754367 0.311242 -0.024676
+v -0.755086 0.332518 -0.031850
+v -0.755084 0.337772 -0.056064
+v -0.806830 0.309287 -0.104776
+v -0.807536 0.316963 -0.102882
+v -0.806349 0.294584 -0.088101
+v -0.806781 0.303095 -0.044997
+v -0.790587 0.296553 -0.014002
+v -0.791306 0.326429 -0.019325
+v -0.790909 0.316036 -0.012315
+v -0.809449 0.337968 -0.055003
+v -0.808866 0.330058 -0.094521
+v -0.856147 0.309974 -0.111118
+v -0.856609 0.324398 -0.107946
+v -0.855666 0.301462 -0.090840
+v -0.840237 0.307497 -0.051713
+v -0.839231 0.310210 -0.066552
+v -0.818264 0.322653 -0.003366
+v -0.858004 0.320750 0.012845
+v -0.857645 0.307526 0.022552
+v -0.817298 0.311672 0.007191
+v -0.822899 0.332171 -0.031065
+v -0.825692 0.327720 -0.017101
+v -0.857559 0.332506 -0.094534
+v -0.857926 0.334552 -0.084306
+v -0.842749 0.337434 -0.069897
+v -0.878409 0.326286 -0.111195
+v -0.878205 0.310207 -0.113301
+v -0.855233 0.302989 -0.078731
+v -0.878051 0.307071 -0.081601
+v -0.877928 0.302192 -0.094581
+v -0.857285 0.294860 -0.010075
+v -0.879547 0.304083 -0.010124
+v -0.883323 0.306162 -0.026117
+v -0.856275 0.302742 -0.020943
+v -0.858004 0.328932 -0.015010
+v -0.884639 0.328932 -0.015010
+v -0.879840 0.317261 -0.006545
+v -0.859278 0.310650 -0.011660
+v -0.879967 0.335110 -0.081512
+v -0.885664 0.337257 -0.070783
+v -0.878816 0.316581 -0.087636
+v -0.883129 0.309870 -0.068091
+v -0.883836 0.311136 -0.054673
+v -0.884627 0.317452 -0.063753
+v -0.883710 0.316540 -0.032873
+v -0.882741 0.309194 -0.040030
+v -0.879821 0.329057 -0.101777
+v -0.885752 0.338866 -0.056774
+v -0.884637 0.340475 -0.042764
+v -0.884638 0.335037 -0.025919
+v -0.821125 0.289975 -0.011262
+v -0.816987 0.301665 0.001516
+v -0.857285 0.296060 0.017453
+v -0.911514 0.302867 -0.001241
+v -0.921571 0.301808 0.011660
+v -0.912130 0.313236 0.003461
+v -0.911008 0.291154 0.005491
+v -0.911008 0.291427 0.018073
+v -0.906309 0.303624 -0.112733
+v -0.906479 0.317860 -0.113865
+v -0.907957 0.322962 -0.102199
+v -0.906896 0.311825 -0.092512
+v -0.906031 0.299519 -0.099606
+v -0.941719 0.303009 -0.101606
+v -0.939030 0.299501 -0.112069
+v -0.948090 0.291392 -0.105249
+v -0.965294 0.305935 -0.071314
+v -0.965162 0.305535 -0.078756
+v -0.972091 0.298701 -0.074351
+v -0.841578 0.340336 -0.055388
+v -0.855921 0.332205 -0.026418
+v -0.841092 0.335478 -0.037826
+v -0.966333 0.309162 -0.055292
+v -0.971457 0.296787 -0.057628
+v -0.974617 0.299676 -0.047939
+v -0.964395 0.302563 -0.012991
+v -0.964069 0.301372 -0.023422
+v -0.972481 0.294499 -0.017808
+v -0.823741 0.295120 -0.027878
+v -0.845382 0.304521 -0.030178
+v -0.858955 0.318845 -0.005538
+v -0.894994 0.318576 0.021116
+v -0.894433 0.305101 0.030385
+v -0.885758 0.293930 0.022748
+v -0.885758 0.289052 0.007662
+v -0.886263 0.302423 -0.002559
+v -0.913524 0.317452 -0.063753
+v -0.912633 0.306951 -0.066372
+v -0.912525 0.306612 -0.081599
+v -0.913386 0.316905 -0.084002
+v -0.914441 0.329638 -0.081483
+v -0.914561 0.329435 -0.070742
+v -0.913656 0.324143 -0.036580
+v -0.912834 0.309725 -0.039758
+v -0.912733 0.308982 -0.052521
+v -0.913596 0.318456 -0.059502
+v -0.914649 0.332728 -0.056741
+v -0.914738 0.333791 -0.042728
+v -0.914316 0.317271 -0.007286
+v -0.914044 0.307026 -0.010625
+v -0.913465 0.303222 -0.023223
+v -0.913992 0.316792 -0.026910
+v -0.914711 0.327140 -0.024733
+v -0.914712 0.327838 -0.012102
+v -0.886880 0.318403 0.003433
+v -0.912130 0.310895 0.015093
+v -0.911569 0.301338 0.023150
+v -0.932726 0.313122 -0.102193
+v -0.929867 0.302823 -0.092941
+v -0.926820 0.290615 -0.099559
+v -0.927820 0.294607 -0.112685
+v -0.930497 0.308568 -0.113339
+v -0.946442 0.308737 -0.063707
+v -0.943737 0.299756 -0.068410
+v -0.943586 0.300252 -0.081565
+v -0.946229 0.308221 -0.083956
+v -0.949484 0.315907 -0.080187
+v -0.949557 0.316457 -0.070672
+v -0.951971 0.315692 -0.036535
+v -0.948652 0.304082 -0.039728
+v -0.948436 0.302545 -0.052486
+v -0.950943 0.310100 -0.059457
+v -0.954463 0.318716 -0.056666
+v -0.954722 0.319748 -0.042654
+v -0.945088 0.308805 -0.006500
+v -0.942883 0.298888 -0.010096
+v -0.941854 0.297813 -0.023194
+v -0.944675 0.308346 -0.027607
+v -0.950759 0.313296 -0.025232
+v -0.950878 0.314901 -0.011651
+v -0.947581 0.294064 -0.093913
+v -0.942713 0.283864 -0.099862
+v -0.944323 0.287197 -0.111653
+v -0.968595 0.297354 -0.065851
+v -0.965195 0.291030 -0.069455
+v -0.965094 0.291297 -0.079823
+v -0.968368 0.296990 -0.081691
+v -0.973236 0.301254 -0.038216
+v -0.970486 0.293645 -0.040931
+v -0.970058 0.292405 -0.051736
+v -0.966710 0.309976 -0.043425
+v -0.967491 0.295527 -0.008501
+v -0.964053 0.287824 -0.011341
+v -0.963219 0.287433 -0.022121
+v -0.967031 0.295062 -0.025569
+v -0.212542 0.057791 -0.088298
+v -0.211862 0.060508 0.009634
+v -0.074976 0.068439 -0.157155
+v -0.162552 0.066391 -0.134785
+v -0.081050 0.033861 0.217199
+v -0.160633 0.047774 0.165237
+v -0.194459 -0.061973 -0.077289
+v -0.193830 -0.059312 0.010272
+v -0.073683 -0.054174 -0.145085
+v -0.154612 -0.059717 -0.122697
+v -0.079296 -0.078306 0.197974
+v -0.152838 -0.064359 0.165834
+v -0.207251 -0.185366 -0.080232
+v -0.206587 -0.182710 0.006394
+v -0.073030 -0.183652 -0.163583
+v -0.158477 -0.187001 -0.140772
+v -0.078957 -0.186118 0.189045
+v -0.156604 -0.188284 0.160253
+v -0.218249 -0.319549 -0.070898
+v -0.217576 -0.316931 0.008457
+v -0.078096 -0.336320 -0.156648
+v -0.163948 -0.323822 -0.126342
+v -0.084106 -0.327601 0.074255
+v -0.162049 -0.325183 0.058479
+v -0.230857 -0.433306 -0.066731
+v -0.230120 -0.430637 0.005062
+v -0.083867 -0.441582 -0.135759
+v -0.164983 -0.437718 -0.116889
+v -0.162904 -0.439271 0.050326
+v -0.090446 -0.441802 0.064600
+v -0.232151 -0.553788 -0.054626
+v -0.222780 -0.553256 0.008807
+v -0.030897 -0.438307 -0.119357
+v -0.048588 -0.553257 -0.101597
+v -0.113091 -0.554776 -0.114688
+v -0.182853 -0.554391 -0.102225
+v -0.101931 -0.553988 0.053602
+v -0.030840 -0.553254 0.020694
+v -0.017902 -0.429087 0.007909
+v -0.164568 -0.553797 0.048133
+v -0.004402 -0.430298 -0.042374
+v -0.015348 -0.553254 -0.044763
+v -0.214362 -0.670689 -0.045876
+v -0.206550 -0.670152 0.018721
+v -0.062418 -0.670163 -0.093709
+v -0.115103 -0.671683 -0.107040
+v -0.173263 -0.671297 -0.094348
+v -0.105799 -0.670879 0.064337
+v -0.046932 -0.670148 0.030825
+v -0.158019 -0.670688 0.058767
+v -0.034017 -0.670154 -0.035833
+v -0.205520 -0.790744 -0.044596
+v -0.198330 -0.790216 0.018314
+v -0.065695 -0.790211 -0.091181
+v -0.114178 -0.791730 -0.104164
+v -0.167699 -0.791346 -0.091803
+v -0.105616 -0.790949 0.062739
+v -0.052721 -0.790214 0.030102
+v -0.153670 -0.790758 0.057315
+v -0.041396 -0.790211 -0.034815
+v -0.189550 -0.909826 -0.048240
+v -0.183215 -0.909319 0.010603
+v -0.066346 -0.909277 -0.091813
+v -0.109066 -0.910791 -0.103956
+v -0.156225 -0.910411 -0.092394
+v -0.101522 -0.910068 0.052156
+v -0.058959 -0.909321 0.021629
+v -0.143864 -0.909875 0.047083
+v -0.044935 -0.909296 -0.039091
+v -0.189550 -1.019634 -0.049842
+v -0.183215 -1.019136 0.007524
+v -0.066346 -1.019080 -0.092321
+v -0.109066 -1.020592 -0.104159
+v -0.156225 -1.020214 -0.092888
+v -0.101522 -1.019890 0.048035
+v -0.058959 -1.019139 0.018274
+v -0.143864 -1.019696 0.043088
+v -0.044935 -1.019106 -0.040923
+v -0.187683 -1.124102 -0.060565
+v -0.173184 -1.123543 0.008080
+v -0.066346 -1.123548 -0.103045
+v -0.109066 -1.125059 -0.114883
+v -0.156225 -1.124681 -0.103611
+v -0.102543 -1.124298 0.048591
+v -0.063187 -1.123546 0.018830
+v -0.142420 -1.124104 0.043644
+v -0.048874 -1.123573 -0.051647
+v -0.187587 -1.214756 -0.059215
+v -0.176789 -1.187160 0.027773
+v -0.066346 -1.211538 -0.102576
+v -0.109066 -1.213050 -0.114414
+v -0.156225 -1.215113 -0.103130
+v -0.101522 -1.161543 0.182298
+v -0.101522 -1.215162 0.182584
+v -0.065622 -1.209567 0.152797
+v -0.065622 -1.176706 0.152622
+v -0.143864 -1.161349 0.177352
+v -0.143864 -1.214969 0.177638
+v -0.172507 -1.176703 0.141872
+v -0.172507 -1.217876 0.142092
+v -0.048874 -1.214235 -0.051164
+v -0.061340 -1.187217 0.028251
+v -0.101522 -1.129409 0.075410
+v -0.060438 -1.139723 0.075530
+v -0.060438 -1.215808 0.088571
+v -0.101522 -1.223975 0.088549
+v -0.096105 -1.203909 0.025452
+v -0.143864 -1.129189 0.075425
+v -0.143864 -1.223755 0.088564
+v -0.142420 -1.203690 0.025231
+v -0.177691 -1.139663 0.075534
+v -0.177691 -1.215747 0.088575
+v -0.152430 -1.224410 -0.061332
+v -0.106418 -1.224701 -0.060935
+v -0.019006 0.497120 0.072960
+v -0.037052 0.575812 0.070753
+v -0.028603 0.575952 0.074675
+usemtl mike.jpg
+f 114 115 116
+f 125 126 127
+f 114 119 115
+f 191 197 198
+f 235 223 222
+f 236 237 238
+f 239 227 240
+f 241 233 235
+f 237 234 242
+f 243 244 239
+f 248 249 250
+f 251 250 252
+f 215 203 211
+f 258 259 260
+f 261 262 263
+f 202 194 201
+f 267 268 269
+f 270 271 272
+f 201 245 247
+f 229 215 275
+f 275 230 229
+f 250 249 300
+f 301 250 300
+f 252 250 301
+f 248 250 251
+f 337 271 270
+f 271 336 338
+f 272 271 339
+f 337 336 271
+f 339 271 338
+f 333 268 335
+f 268 332 334
+f 269 268 334
+f 335 268 267
+f 333 332 268
+f 329 262 261
+f 328 330 262
+f 263 262 331
+f 329 328 262
+f 331 262 330
+f 259 325 326
+f 327 259 326
+f 260 259 327
+f 258 325 259
+f 439 463 442
+f 465 83 81
+f 79 465 81
+f 62 467 65
+f 65 467 67
+f 61 85 466
+f 558 559 560
+f 569 570 571
+f 558 560 562
+f 628 635 636
+f 673 662 661
+f 674 675 676
+f 677 678 665
+f 679 673 671
+f 676 680 672
+f 681 677 682
+f 686 687 688
+f 689 690 687
+f 654 649 640
+f 696 697 698
+f 699 700 701
+f 641 639 632
+f 705 706 707
+f 708 709 710
+f 639 684 683
+f 667 713 654
+f 713 667 670
+f 687 738 688
+f 739 738 687
+f 690 739 687
+f 686 689 687
+f 774 708 710
+f 710 776 775
+f 709 777 710
+f 774 710 775
+f 777 776 710
+f 770 773 707
+f 707 772 771
+f 706 772 707
+f 773 705 707
+f 770 707 771
+f 766 699 701
+f 767 701 768
+f 700 769 701
+f 766 701 767
+f 769 768 701
+f 698 764 763
+f 765 764 698
+f 697 765 698
+f 696 698 763
+f 367 374 798
+f 800 378 369
+f 865 869 890
+f 892 526 528
+f 524 526 892
+f 508 510 893
+f 510 512 893
+f 505 894 529
+f 370 369 378
+f 367 366 374
+f 42 41 60
+f 86 42 60
+f 59 86 60
+f 61 64 42
+f 61 42 86
+f 61 86 85
+f 273 274 226
+f 245 273 226
+f 245 226 225
+f 266 265 216
+f 266 216 215
+f 229 266 215
+f 60 41 495
+f 60 495 530
+f 60 530 504
+f 495 506 505
+f 530 495 505
+f 529 530 505
+f 666 712 711
+f 666 711 683
+f 663 666 683
+f 653 704 703
+f 654 653 703
+f 654 703 667
+f 798 374 804
+f 374 810 804
+f 374 392 818
+f 374 818 810
+f 392 378 816
+f 392 816 818
+f 800 807 816
+f 800 816 378
+f 566 555 556
+f 566 556 557
+f 120 111 123
+f 111 110 123
+f 555 548 550
+f 555 550 556
+f 548 500 502
+f 548 502 550
+f 502 500 55
+f 500 52 55
+f 56 55 51
+f 55 52 51
+f 51 104 56
+f 104 105 56
+f 104 111 105
+f 111 112 105
+f 529 894 515
+f 894 514 515
+f 893 512 514
+f 893 514 894
+f 508 893 505
+f 893 894 505
+f 489 524 488
+f 524 892 488
+f 488 892 528
+f 488 528 487
+f 889 877 876
+f 889 876 888
+f 886 875 877
+f 886 877 889
+f 888 876 885
+f 876 874 885
+f 883 871 875
+f 883 875 886
+f 885 874 880
+f 874 870 880
+f 882 872 883
+f 872 871 883
+f 881 873 882
+f 873 872 882
+f 880 870 873
+f 880 873 881
+f 891 878 884
+f 878 879 884
+f 868 867 891
+f 867 878 891
+f 887 890 891
+f 887 891 884
+f 866 865 887
+f 865 890 887
+f 890 869 891
+f 869 868 891
+f 866 889 888
+f 866 888 857
+f 887 886 889
+f 887 889 866
+f 857 888 863
+f 888 885 863
+f 884 883 887
+f 883 886 887
+f 863 885 861
+f 885 880 861
+f 879 882 884
+f 882 883 884
+f 862 881 879
+f 881 882 879
+f 861 880 881
+f 861 881 862
+f 862 879 864
+f 879 878 864
+f 864 878 867
+f 864 867 858
+f 876 877 875
+f 876 875 874
+f 874 875 870
+f 875 871 870
+f 870 871 873
+f 871 872 873
+f 860 869 865
+f 860 865 856
+f 859 868 860
+f 868 869 860
+f 858 867 859
+f 867 868 859
+f 856 865 866
+f 856 866 857
+f 853 862 855
+f 862 864 855
+f 855 864 849
+f 864 858 849
+f 848 857 854
+f 857 863 854
+f 854 863 852
+f 863 861 852
+f 852 861 862
+f 852 862 853
+f 851 860 856
+f 851 856 847
+f 850 859 860
+f 850 860 851
+f 849 858 850
+f 858 859 850
+f 847 856 857
+f 847 857 848
+f 844 853 846
+f 853 855 846
+f 846 855 840
+f 855 849 840
+f 839 848 854
+f 839 854 845
+f 845 854 843
+f 854 852 843
+f 843 852 844
+f 852 853 844
+f 842 851 847
+f 842 847 838
+f 841 850 851
+f 841 851 842
+f 840 849 841
+f 849 850 841
+f 838 847 848
+f 838 848 839
+f 835 844 837
+f 844 846 837
+f 837 846 831
+f 846 840 831
+f 830 839 836
+f 839 845 836
+f 836 845 834
+f 845 843 834
+f 834 843 835
+f 843 844 835
+f 833 842 838
+f 833 838 829
+f 832 841 842
+f 832 842 833
+f 831 840 832
+f 840 841 832
+f 829 838 839
+f 829 839 830
+f 826 835 837
+f 826 837 828
+f 828 837 822
+f 837 831 822
+f 821 830 827
+f 830 836 827
+f 827 836 825
+f 836 834 825
+f 825 834 835
+f 825 835 826
+f 824 833 829
+f 824 829 820
+f 823 832 833
+f 823 833 824
+f 822 831 823
+f 831 832 823
+f 820 829 821
+f 829 830 821
+f 815 826 828
+f 815 828 819
+f 819 828 811
+f 828 822 811
+f 809 821 817
+f 821 827 817
+f 817 827 814
+f 827 825 814
+f 814 825 826
+f 814 826 815
+f 813 824 820
+f 813 820 808
+f 812 823 824
+f 812 824 813
+f 811 822 812
+f 822 823 812
+f 808 820 809
+f 820 821 809
+f 810 818 819
+f 810 819 811
+f 818 816 819
+f 816 815 819
+f 803 809 806
+f 809 817 806
+f 806 817 814
+f 806 814 807
+f 807 814 815
+f 807 815 816
+f 805 813 802
+f 813 808 802
+f 804 812 805
+f 812 813 805
+f 810 811 804
+f 811 812 804
+f 802 808 803
+f 808 809 803
+f 797 803 801
+f 803 806 801
+f 801 806 807
+f 801 807 800
+f 799 805 796
+f 805 802 796
+f 798 804 805
+f 798 805 799
+f 796 802 803
+f 796 803 797
+f 791 797 795
+f 797 801 795
+f 795 801 800
+f 795 800 794
+f 794 800 369
+f 794 369 361
+f 793 799 790
+f 799 796 790
+f 792 798 793
+f 798 799 793
+f 359 367 792
+f 367 798 792
+f 790 796 791
+f 796 797 791
+f 785 791 789
+f 791 795 789
+f 789 795 788
+f 795 794 788
+f 788 794 353
+f 794 361 353
+f 787 793 790
+f 787 790 784
+f 786 792 787
+f 792 793 787
+f 351 359 786
+f 359 792 786
+f 784 790 791
+f 784 791 785
+f 779 785 783
+f 785 789 783
+f 783 789 782
+f 789 788 782
+f 782 788 345
+f 788 353 345
+f 781 787 778
+f 787 784 778
+f 780 786 781
+f 786 787 781
+f 343 351 780
+f 351 786 780
+f 778 784 779
+f 784 785 779
+f 588 779 783
+f 588 783 592
+f 592 783 591
+f 783 782 591
+f 591 782 152
+f 782 345 152
+f 590 781 587
+f 781 778 587
+f 589 780 590
+f 780 781 590
+f 150 343 589
+f 343 780 589
+f 587 778 588
+f 778 779 588
+f 762 708 757
+f 708 774 757
+f 761 709 708
+f 761 708 762
+f 760 777 709
+f 760 709 761
+f 759 776 777
+f 759 777 760
+f 758 775 776
+f 758 776 759
+f 757 774 758
+f 774 775 758
+f 756 773 751
+f 773 770 751
+f 755 705 773
+f 755 773 756
+f 754 706 705
+f 754 705 755
+f 753 772 706
+f 753 706 754
+f 752 771 753
+f 771 772 753
+f 751 770 752
+f 770 771 752
+f 750 699 745
+f 699 766 745
+f 749 700 699
+f 749 699 750
+f 748 769 700
+f 748 700 749
+f 747 768 769
+f 747 769 748
+f 746 767 768
+f 746 768 747
+f 745 766 746
+f 766 767 746
+f 744 697 696
+f 744 696 740
+f 743 765 697
+f 743 697 744
+f 742 764 765
+f 742 765 743
+f 741 763 742
+f 763 764 742
+f 740 696 741
+f 696 763 741
+f 736 762 757
+f 736 757 731
+f 735 761 762
+f 735 762 736
+f 734 760 735
+f 760 761 735
+f 733 759 760
+f 733 760 734
+f 732 758 759
+f 732 759 733
+f 731 757 732
+f 757 758 732
+f 730 756 725
+f 756 751 725
+f 729 755 756
+f 729 756 730
+f 728 754 755
+f 728 755 729
+f 727 753 754
+f 727 754 728
+f 726 752 727
+f 752 753 727
+f 725 751 726
+f 751 752 726
+f 724 750 719
+f 750 745 719
+f 723 749 724
+f 749 750 724
+f 722 748 749
+f 722 749 723
+f 721 747 748
+f 721 748 722
+f 720 746 721
+f 746 747 721
+f 719 745 720
+f 745 746 720
+f 692 744 693
+f 744 740 693
+f 691 743 744
+f 691 744 692
+f 695 742 743
+f 695 743 691
+f 694 741 695
+f 741 742 695
+f 693 740 694
+f 740 741 694
+f 717 689 718
+f 689 686 718
+f 716 690 717
+f 690 689 717
+f 715 739 690
+f 715 690 716
+f 714 738 739
+f 714 739 715
+f 737 688 714
+f 688 738 714
+f 718 686 688
+f 718 688 737
+f 737 713 718
+f 713 670 718
+f 737 714 650
+f 737 650 713
+f 654 713 649
+f 713 650 649
+f 668 736 731
+f 668 731 669
+f 682 735 668
+f 735 736 668
+f 677 734 735
+f 677 735 682
+f 665 733 734
+f 665 734 677
+f 664 732 665
+f 732 733 665
+f 669 731 732
+f 669 732 664
+f 681 730 725
+f 681 725 677
+f 680 729 730
+f 680 730 681
+f 676 728 729
+f 676 729 680
+f 675 727 728
+f 675 728 676
+f 678 726 727
+f 678 727 675
+f 677 725 726
+f 677 726 678
+f 672 724 676
+f 724 719 676
+f 671 723 672
+f 723 724 672
+f 673 722 671
+f 722 723 671
+f 661 721 673
+f 721 722 673
+f 674 720 721
+f 674 721 661
+f 676 719 720
+f 676 720 674
+f 663 717 718
+f 663 718 670
+f 685 716 717
+f 685 717 663
+f 651 715 716
+f 651 716 685
+f 650 714 651
+f 714 715 651
+f 704 653 702
+f 653 642 702
+f 711 638 639
+f 711 639 683
+f 665 678 666
+f 678 712 666
+f 647 712 678
+f 647 678 675
+f 660 648 674
+f 660 674 661
+f 711 712 647
+f 711 647 638
+f 648 660 646
+f 648 646 637
+f 682 668 667
+f 682 667 703
+f 680 681 702
+f 681 704 702
+f 671 656 655
+f 671 655 679
+f 657 702 642
+f 657 642 643
+f 681 682 703
+f 681 703 704
+f 672 680 657
+f 680 702 657
+f 669 664 670
+f 664 663 670
+f 651 685 652
+f 685 684 652
+f 652 684 641
+f 684 639 641
+f 658 679 645
+f 679 655 645
+f 645 655 643
+f 645 643 636
+f 628 636 643
+f 628 643 629
+f 647 675 674
+f 647 674 648
+f 662 695 659
+f 695 691 659
+f 673 694 662
+f 694 695 662
+f 679 693 673
+f 693 694 673
+f 658 692 693
+f 658 693 679
+f 659 691 692
+f 659 692 658
+f 646 662 644
+f 662 659 644
+f 683 684 663
+f 684 685 663
+f 640 649 641
+f 649 652 641
+f 671 672 656
+f 672 657 656
+f 667 668 669
+f 667 669 670
+f 663 664 666
+f 664 665 666
+f 646 660 661
+f 646 661 662
+f 658 645 659
+f 645 644 659
+f 643 655 657
+f 655 656 657
+f 640 642 653
+f 640 653 654
+f 649 650 652
+f 650 651 652
+f 638 647 648
+f 638 648 637
+f 637 646 635
+f 646 644 635
+f 635 644 636
+f 644 645 636
+f 629 643 642
+f 629 642 634
+f 634 642 640
+f 634 640 633
+f 633 640 632
+f 640 641 632
+f 632 639 631
+f 639 638 631
+f 631 638 630
+f 638 637 630
+f 630 637 628
+f 637 635 628
+f 622 629 634
+f 622 634 627
+f 627 634 626
+f 634 633 626
+f 626 633 625
+f 633 632 625
+f 625 632 631
+f 625 631 624
+f 624 631 623
+f 631 630 623
+f 623 630 621
+f 630 628 621
+f 621 628 629
+f 621 629 622
+f 615 622 627
+f 615 627 620
+f 620 627 619
+f 627 626 619
+f 619 626 618
+f 626 625 618
+f 618 625 624
+f 618 624 617
+f 617 624 623
+f 617 623 616
+f 616 623 614
+f 623 621 614
+f 614 621 622
+f 614 622 615
+f 608 615 620
+f 608 620 613
+f 613 620 612
+f 620 619 612
+f 612 619 611
+f 619 618 611
+f 611 618 610
+f 618 617 610
+f 610 617 616
+f 610 616 609
+f 609 616 614
+f 609 614 607
+f 607 614 615
+f 607 615 608
+f 601 608 606
+f 608 613 606
+f 606 613 612
+f 606 612 605
+f 605 612 611
+f 605 611 604
+f 604 611 603
+f 611 610 603
+f 603 610 609
+f 603 609 602
+f 602 609 607
+f 602 607 600
+f 600 607 601
+f 607 608 601
+f 594 601 606
+f 594 606 599
+f 599 606 598
+f 606 605 598
+f 598 605 604
+f 598 604 597
+f 597 604 603
+f 597 603 596
+f 596 603 602
+f 596 602 595
+f 595 602 593
+f 602 600 593
+f 593 600 601
+f 593 601 594
+f 468 594 481
+f 594 599 481
+f 481 599 598
+f 481 598 479
+f 479 598 597
+f 479 597 477
+f 477 597 596
+f 477 596 475
+f 475 596 473
+f 596 595 473
+f 473 595 471
+f 595 593 471
+f 471 593 468
+f 593 594 468
+f 474 588 586
+f 588 592 586
+f 586 592 585
+f 592 591 585
+f 585 591 144
+f 591 152 144
+f 584 590 472
+f 590 587 472
+f 583 589 584
+f 589 590 584
+f 142 150 583
+f 150 589 583
+f 472 587 474
+f 587 588 474
+f 476 474 579
+f 474 586 579
+f 579 586 573
+f 586 585 573
+f 573 585 129
+f 585 144 129
+f 582 584 470
+f 584 472 470
+f 584 582 583
+f 582 574 583
+f 131 142 583
+f 131 583 574
+f 476 579 478
+f 579 578 478
+f 582 470 469
+f 582 469 580
+f 581 480 578
+f 480 478 578
+f 580 469 581
+f 469 480 581
+f 577 574 582
+f 577 582 580
+f 575 581 578
+f 575 578 576
+f 577 580 575
+f 580 581 575
+f 573 576 579
+f 576 578 579
+f 573 483 576
+f 483 544 576
+f 483 482 544
+f 482 541 544
+f 577 575 543
+f 577 543 551
+f 543 542 549
+f 543 549 551
+f 503 574 551
+f 574 577 551
+f 543 575 544
+f 575 576 544
+f 131 574 503
+f 131 503 58
+f 483 573 129
+f 483 129 17
+f 572 552 553
+f 572 553 554
+f 572 569 571
+f 572 571 536
+f 557 539 538
+f 557 538 563
+f 571 561 536
+f 561 537 536
+f 569 572 568
+f 572 554 568
+f 535 552 572
+f 535 572 536
+f 566 568 555
+f 568 554 555
+f 563 538 537
+f 563 537 561
+f 568 567 569
+f 567 570 569
+f 559 571 570
+f 559 570 567
+f 559 567 565
+f 559 565 560
+f 562 560 565
+f 562 565 564
+f 563 562 557
+f 562 564 557
+f 571 559 558
+f 571 558 561
+f 566 565 568
+f 565 567 568
+f 557 564 566
+f 564 565 566
+f 561 558 562
+f 561 562 563
+f 539 557 542
+f 557 556 542
+f 540 539 541
+f 539 542 541
+f 550 549 556
+f 549 542 556
+f 547 548 554
+f 548 555 554
+f 546 547 553
+f 547 554 553
+f 545 546 552
+f 546 553 552
+f 534 545 535
+f 545 552 535
+f 501 503 549
+f 503 551 549
+f 502 501 550
+f 501 549 550
+f 499 500 547
+f 500 548 547
+f 498 499 546
+f 499 547 546
+f 496 498 545
+f 498 546 545
+f 497 496 534
+f 496 545 534
+f 485 486 527
+f 485 527 533
+f 484 485 533
+f 484 533 540
+f 482 484 540
+f 482 540 541
+f 541 542 543
+f 541 543 544
+f 532 539 540
+f 532 540 533
+f 531 538 532
+f 538 539 532
+f 519 537 538
+f 519 538 531
+f 520 536 537
+f 520 537 519
+f 521 535 520
+f 535 536 520
+f 522 534 521
+f 534 535 521
+f 494 497 522
+f 497 534 522
+f 525 532 533
+f 525 533 527
+f 523 531 525
+f 531 532 525
+f 517 519 523
+f 519 531 523
+f 518 517 490
+f 517 523 490
+f 529 515 504
+f 529 504 530
+f 514 513 516
+f 514 516 515
+f 493 516 492
+f 516 518 492
+f 492 518 491
+f 518 490 491
+f 528 527 486
+f 528 486 487
+f 526 525 527
+f 526 527 528
+f 524 523 526
+f 523 525 526
+f 489 490 524
+f 490 523 524
+f 522 506 494
+f 506 495 494
+f 521 507 522
+f 507 506 522
+f 520 509 521
+f 509 507 521
+f 519 511 509
+f 519 509 520
+f 517 513 511
+f 517 511 519
+f 516 513 518
+f 513 517 518
+f 497 494 45
+f 494 40 45
+f 515 516 504
+f 516 493 504
+f 512 511 513
+f 512 513 514
+f 510 509 511
+f 510 511 512
+f 508 507 510
+f 507 509 510
+f 505 506 508
+f 506 507 508
+f 504 493 60
+f 493 38 60
+f 503 501 54
+f 503 54 58
+f 501 502 54
+f 502 55 54
+f 500 499 52
+f 499 50 52
+f 499 498 50
+f 498 48 50
+f 498 496 48
+f 496 44 48
+f 496 497 44
+f 497 45 44
+f 494 495 41
+f 494 41 40
+f 493 492 38
+f 492 36 38
+f 492 491 36
+f 491 34 36
+f 491 490 32
+f 491 32 34
+f 490 489 32
+f 489 30 32
+f 489 488 28
+f 489 28 30
+f 488 487 28
+f 487 26 28
+f 487 486 24
+f 487 24 26
+f 486 485 22
+f 486 22 24
+f 485 484 20
+f 485 20 22
+f 484 482 16
+f 484 16 20
+f 482 483 17
+f 482 17 16
+f 481 480 468
+f 480 469 468
+f 479 478 481
+f 478 480 481
+f 477 476 478
+f 477 478 479
+f 475 474 476
+f 475 476 477
+f 474 475 472
+f 475 473 472
+f 471 470 473
+f 470 472 473
+f 468 469 471
+f 469 470 471
+f 85 71 466
+f 71 69 466
+f 467 466 69
+f 467 69 67
+f 62 61 467
+f 61 466 467
+f 29 27 79
+f 27 465 79
+f 27 25 83
+f 27 83 465
+f 462 461 449
+f 462 449 450
+f 460 462 450
+f 460 450 448
+f 461 458 449
+f 458 447 449
+f 457 460 448
+f 457 448 446
+f 458 454 447
+f 454 443 447
+f 455 457 445
+f 457 446 445
+f 453 455 444
+f 455 445 444
+f 454 453 444
+f 454 444 443
+f 464 456 451
+f 456 452 451
+f 440 464 441
+f 464 451 441
+f 459 456 464
+f 459 464 463
+f 438 459 439
+f 459 463 439
+f 463 464 442
+f 464 440 442
+f 438 429 461
+f 438 461 462
+f 459 438 462
+f 459 462 460
+f 429 436 461
+f 436 458 461
+f 456 459 457
+f 459 460 457
+f 436 435 458
+f 435 454 458
+f 452 456 455
+f 456 457 455
+f 434 452 453
+f 452 455 453
+f 435 434 453
+f 435 453 454
+f 434 437 452
+f 437 451 452
+f 437 432 441
+f 437 441 451
+f 449 447 448
+f 449 448 450
+f 447 443 448
+f 443 446 448
+f 443 444 446
+f 444 445 446
+f 433 430 439
+f 433 439 442
+f 431 433 440
+f 433 442 440
+f 432 431 441
+f 431 440 441
+f 430 429 438
+f 430 438 439
+f 425 428 434
+f 428 437 434
+f 428 423 437
+f 423 432 437
+f 420 427 429
+f 427 436 429
+f 427 426 436
+f 426 435 436
+f 426 425 434
+f 426 434 435
+f 424 421 430
+f 424 430 433
+f 422 424 433
+f 422 433 431
+f 423 422 432
+f 422 431 432
+f 421 420 429
+f 421 429 430
+f 416 419 425
+f 419 428 425
+f 419 414 428
+f 414 423 428
+f 411 418 427
+f 411 427 420
+f 418 417 427
+f 417 426 427
+f 417 416 426
+f 416 425 426
+f 415 412 421
+f 415 421 424
+f 413 415 424
+f 413 424 422
+f 414 413 423
+f 413 422 423
+f 412 411 420
+f 412 420 421
+f 407 410 416
+f 410 419 416
+f 410 405 419
+f 405 414 419
+f 402 409 411
+f 409 418 411
+f 409 408 418
+f 408 417 418
+f 408 407 417
+f 407 416 417
+f 406 403 412
+f 406 412 415
+f 404 406 415
+f 404 415 413
+f 405 404 414
+f 404 413 414
+f 403 402 411
+f 403 411 412
+f 398 401 410
+f 398 410 407
+f 401 396 410
+f 396 405 410
+f 393 400 402
+f 400 409 402
+f 400 399 409
+f 399 408 409
+f 399 398 407
+f 399 407 408
+f 397 394 403
+f 397 403 406
+f 395 397 406
+f 395 406 404
+f 396 395 405
+f 395 404 405
+f 394 393 403
+f 393 402 403
+f 387 391 401
+f 387 401 398
+f 391 385 401
+f 385 396 401
+f 382 389 393
+f 389 400 393
+f 389 388 400
+f 388 399 400
+f 388 387 398
+f 388 398 399
+f 386 383 394
+f 386 394 397
+f 384 386 397
+f 384 397 395
+f 385 384 396
+f 384 395 396
+f 383 382 394
+f 382 393 394
+f 376 385 391
+f 376 391 390
+f 374 376 390
+f 374 390 392
+f 392 390 379
+f 392 379 378
+f 390 391 379
+f 391 387 379
+f 372 381 382
+f 381 389 382
+f 381 380 388
+f 381 388 389
+f 380 379 387
+f 380 387 388
+f 377 373 386
+f 373 383 386
+f 375 377 384
+f 377 386 384
+f 376 375 385
+f 375 384 385
+f 373 372 383
+f 372 382 383
+f 364 371 372
+f 371 381 372
+f 371 370 380
+f 371 380 381
+f 370 378 379
+f 370 379 380
+f 368 365 377
+f 365 373 377
+f 366 368 377
+f 366 377 375
+f 374 366 375
+f 374 375 376
+f 365 364 372
+f 365 372 373
+f 356 363 364
+f 363 371 364
+f 363 362 370
+f 363 370 371
+f 362 361 369
+f 362 369 370
+f 360 357 368
+f 357 365 368
+f 358 360 366
+f 360 368 366
+f 359 358 367
+f 358 366 367
+f 357 356 365
+f 356 364 365
+f 348 355 356
+f 355 363 356
+f 355 354 363
+f 354 362 363
+f 354 353 362
+f 353 361 362
+f 352 349 357
+f 352 357 360
+f 350 352 358
+f 352 360 358
+f 351 350 359
+f 350 358 359
+f 349 348 356
+f 349 356 357
+f 340 347 348
+f 347 355 348
+f 347 346 355
+f 346 354 355
+f 346 345 354
+f 345 353 354
+f 344 341 352
+f 341 349 352
+f 342 344 350
+f 344 352 350
+f 343 342 351
+f 342 350 351
+f 341 340 349
+f 340 348 349
+f 147 154 340
+f 154 347 340
+f 154 153 347
+f 153 346 347
+f 153 152 346
+f 152 345 346
+f 151 148 344
+f 148 341 344
+f 149 151 342
+f 151 344 342
+f 150 149 343
+f 149 342 343
+f 148 147 341
+f 147 340 341
+f 324 320 270
+f 320 337 270
+f 323 324 270
+f 323 270 272
+f 322 323 272
+f 322 272 339
+f 321 322 339
+f 321 339 338
+f 319 321 338
+f 319 338 336
+f 320 319 337
+f 319 336 337
+f 318 314 335
+f 314 333 335
+f 317 318 335
+f 317 335 267
+f 316 317 267
+f 316 267 269
+f 315 316 269
+f 315 269 334
+f 313 315 332
+f 315 334 332
+f 314 313 333
+f 313 332 333
+f 312 308 261
+f 308 329 261
+f 311 312 261
+f 311 261 263
+f 310 311 263
+f 310 263 331
+f 309 310 331
+f 309 331 330
+f 307 309 330
+f 307 330 328
+f 308 307 329
+f 307 328 329
+f 306 303 258
+f 306 258 260
+f 305 306 260
+f 305 260 327
+f 304 305 327
+f 304 327 326
+f 302 304 325
+f 304 326 325
+f 303 302 258
+f 302 325 258
+f 298 294 320
+f 298 320 324
+f 297 298 324
+f 297 324 323
+f 296 297 322
+f 297 323 322
+f 295 296 322
+f 295 322 321
+f 293 295 321
+f 293 321 319
+f 294 293 320
+f 293 319 320
+f 292 288 318
+f 288 314 318
+f 291 292 318
+f 291 318 317
+f 290 291 317
+f 290 317 316
+f 289 290 316
+f 289 316 315
+f 287 289 313
+f 289 315 313
+f 288 287 314
+f 287 313 314
+f 286 282 312
+f 282 308 312
+f 285 286 311
+f 286 312 311
+f 284 285 311
+f 284 311 310
+f 283 284 310
+f 283 310 309
+f 281 283 307
+f 283 309 307
+f 282 281 308
+f 281 307 308
+f 253 255 306
+f 255 303 306
+f 254 253 306
+f 254 306 305
+f 257 254 305
+f 257 305 304
+f 256 257 302
+f 257 304 302
+f 255 256 303
+f 256 302 303
+f 279 280 251
+f 280 248 251
+f 278 279 252
+f 279 251 252
+f 276 278 252
+f 276 252 301
+f 277 276 301
+f 277 301 300
+f 299 277 249
+f 277 300 249
+f 280 299 249
+f 280 249 248
+f 299 280 275
+f 280 230 275
+f 299 275 214
+f 299 214 277
+f 215 211 275
+f 211 214 275
+f 232 231 294
+f 232 294 298
+f 244 232 297
+f 232 298 297
+f 239 244 297
+f 239 297 296
+f 227 239 296
+f 227 296 295
+f 228 227 293
+f 227 295 293
+f 231 228 293
+f 231 293 294
+f 243 239 288
+f 243 288 292
+f 242 243 292
+f 242 292 291
+f 237 242 291
+f 237 291 290
+f 238 237 290
+f 238 290 289
+f 240 238 289
+f 240 289 287
+f 239 240 287
+f 239 287 288
+f 234 237 286
+f 237 282 286
+f 233 234 285
+f 234 286 285
+f 235 233 284
+f 233 285 284
+f 223 235 283
+f 235 284 283
+f 236 223 283
+f 236 283 281
+f 237 236 281
+f 237 281 282
+f 225 230 280
+f 225 280 279
+f 246 225 279
+f 246 279 278
+f 213 246 278
+f 213 278 276
+f 214 213 277
+f 213 276 277
+f 265 264 216
+f 264 204 216
+f 273 245 201
+f 273 201 200
+f 227 226 240
+f 226 274 240
+f 210 238 240
+f 210 240 274
+f 224 223 236
+f 224 236 209
+f 273 200 210
+f 273 210 274
+f 209 199 208
+f 209 208 224
+f 244 266 229
+f 244 229 232
+f 242 264 243
+f 264 265 243
+f 233 241 219
+f 233 219 218
+f 217 205 204
+f 217 204 264
+f 243 265 266
+f 243 266 244
+f 234 217 242
+f 217 264 242
+f 231 230 228
+f 230 225 228
+f 213 212 246
+f 212 247 246
+f 212 202 247
+f 202 201 247
+f 220 206 241
+f 206 219 241
+f 206 197 205
+f 206 205 219
+f 191 190 205
+f 191 205 197
+f 210 209 236
+f 210 236 238
+f 222 221 257
+f 221 254 257
+f 235 222 256
+f 222 257 256
+f 241 235 255
+f 235 256 255
+f 220 241 255
+f 220 255 253
+f 221 220 253
+f 221 253 254
+f 208 207 222
+f 207 221 222
+f 245 225 247
+f 225 246 247
+f 203 202 211
+f 202 212 211
+f 233 218 234
+f 218 217 234
+f 229 230 231
+f 229 231 232
+f 225 226 228
+f 226 227 228
+f 208 222 223
+f 208 223 224
+f 220 221 206
+f 221 207 206
+f 205 217 219
+f 217 218 219
+f 203 215 216
+f 203 216 204
+f 211 212 214
+f 212 213 214
+f 200 199 209
+f 200 209 210
+f 199 198 208
+f 198 207 208
+f 198 197 207
+f 197 206 207
+f 190 196 204
+f 190 204 205
+f 196 195 203
+f 196 203 204
+f 195 194 203
+f 194 202 203
+f 194 193 201
+f 193 200 201
+f 193 192 200
+f 192 199 200
+f 192 191 199
+f 191 198 199
+f 183 189 196
+f 183 196 190
+f 189 188 196
+f 188 195 196
+f 188 187 195
+f 187 194 195
+f 187 186 193
+f 187 193 194
+f 186 185 193
+f 185 192 193
+f 185 184 192
+f 184 191 192
+f 184 183 190
+f 184 190 191
+f 176 182 189
+f 176 189 183
+f 182 181 189
+f 181 188 189
+f 181 180 188
+f 180 187 188
+f 180 179 186
+f 180 186 187
+f 179 178 185
+f 179 185 186
+f 178 177 185
+f 177 184 185
+f 177 176 183
+f 177 183 184
+f 169 175 182
+f 169 182 176
+f 175 174 182
+f 174 181 182
+f 174 173 181
+f 173 180 181
+f 173 172 180
+f 172 179 180
+f 172 171 178
+f 172 178 179
+f 171 170 177
+f 171 177 178
+f 170 169 176
+f 170 176 177
+f 162 168 169
+f 168 175 169
+f 168 167 174
+f 168 174 175
+f 167 166 173
+f 167 173 174
+f 166 165 173
+f 165 172 173
+f 165 164 171
+f 165 171 172
+f 164 163 170
+f 164 170 171
+f 163 162 170
+f 162 169 170
+f 155 161 168
+f 155 168 162
+f 161 160 168
+f 160 167 168
+f 160 159 166
+f 160 166 167
+f 159 158 165
+f 159 165 166
+f 158 157 164
+f 158 164 165
+f 157 156 164
+f 156 163 164
+f 156 155 162
+f 156 162 163
+f 1 13 155
+f 13 161 155
+f 13 11 160
+f 13 160 161
+f 11 9 159
+f 11 159 160
+f 9 8 158
+f 9 158 159
+f 8 5 158
+f 5 157 158
+f 5 2 157
+f 2 156 157
+f 2 1 156
+f 1 155 156
+f 7 146 147
+f 146 154 147
+f 146 145 154
+f 145 153 154
+f 145 144 153
+f 144 152 153
+f 143 6 151
+f 6 148 151
+f 141 143 149
+f 143 151 149
+f 142 141 150
+f 141 149 150
+f 6 7 148
+f 7 147 148
+f 10 136 7
+f 136 146 7
+f 136 130 146
+f 130 145 146
+f 130 129 145
+f 129 144 145
+f 140 3 143
+f 3 6 143
+f 143 141 140
+f 141 132 140
+f 131 132 141
+f 131 141 142
+f 10 12 136
+f 12 137 136
+f 140 139 4
+f 140 4 3
+f 138 137 14
+f 137 12 14
+f 139 138 4
+f 138 14 4
+f 135 139 140
+f 135 140 132
+f 134 133 137
+f 134 137 138
+f 135 134 139
+f 134 138 139
+f 130 136 133
+f 136 137 133
+f 130 133 18
+f 133 98 18
+f 18 98 15
+f 98 97 15
+f 135 107 99
+f 135 99 134
+f 99 107 106
+f 99 106 100
+f 57 107 132
+f 107 135 132
+f 99 98 134
+f 98 133 134
+f 131 58 57
+f 131 57 132
+f 18 17 129
+f 18 129 130
+f 128 110 109
+f 128 109 108
+f 128 92 126
+f 128 126 125
+f 113 118 94
+f 113 94 95
+f 126 92 117
+f 92 93 117
+f 125 123 128
+f 123 110 128
+f 91 92 128
+f 91 128 108
+f 120 113 112
+f 120 112 111
+f 118 117 93
+f 118 93 94
+f 123 125 124
+f 125 127 124
+f 116 124 127
+f 116 127 126
+f 116 115 121
+f 116 121 124
+f 119 122 121
+f 119 121 115
+f 118 113 119
+f 113 122 119
+f 126 117 114
+f 126 114 116
+f 120 123 121
+f 123 124 121
+f 113 120 122
+f 120 121 122
+f 117 118 119
+f 117 119 114...
[truncated message content] |
|
From: <tre...@us...> - 2007-09-28 19:40:13
|
Revision: 457
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=457&view=rev
Author: trevorolio
Date: 2007-09-28 12:40:06 -0700 (Fri, 28 Sep 2007)
Log Message:
-----------
Introducing morphs! Well, some foundations for morphs, anyway.
Added a data data format to save vertex deltas between two obj files, which we will eventually use to interpolate a mesh.
So, someone can tweak a body mesh (e.g. make the nose bigger) and generate a morph file which describes the change.
I still have to make the J3DBodyData read the morphs, arrange them in an ADG, read user prefs for how far to interpolate the morphs, and then apply them to the mesh. And it all needs to be tested and represented in the body editor UI. *whew*
Modified Paths:
--------------
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/obj/LineTokenizer.java
Added Paths:
-----------
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMap.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMapParseException.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMapParser.java
maven/trunk/ogoglio-common/src/test/java/com/ogoglio/viewer/
maven/trunk/ogoglio-common/src/test/java/com/ogoglio/viewer/j3d/
maven/trunk/ogoglio-common/src/test/java/com/ogoglio/viewer/j3d/body/
maven/trunk/ogoglio-common/src/test/java/com/ogoglio/viewer/j3d/body/test/
maven/trunk/ogoglio-common/src/test/java/com/ogoglio/viewer/j3d/body/test/MorphTest.java
maven/trunk/ogoglio-common/src/test/resources/sample-art3d/MorphTest1.obj
maven/trunk/ogoglio-common/src/test/resources/sample-art3d/MorphTest1.ogmorph
maven/trunk/ogoglio-common/src/test/resources/sample-art3d/MorphTest2.obj
Added: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMap.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMap.java (rev 0)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMap.java 2007-09-28 19:40:06 UTC (rev 457)
@@ -0,0 +1,101 @@
+/* Copyright 2007 Transmutable (http://transmutable.com/)
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License. */
+
+package com.ogoglio.viewer.j3d.body;
+
+import java.util.Vector;
+
+import javax.vecmath.Vector3f;
+
+import com.ogoglio.util.ArgumentUtils;
+
+public class MorphDeltaMap {
+
+ String name = null;
+
+ Vector ranges = new Vector();
+
+ public MorphDeltaMap(String name) {
+ this.name = name;
+ }
+
+ public void addRange(Range range) {
+ ranges.add(range);
+ }
+
+ public Range[] getRanges() {
+ return (Range[]) ranges.toArray(new Range[0]);
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public static class Range {
+ int lower = -1;
+
+ Vector3f[] deltas = null;
+
+ public Range(int lower,Vector3f[] deltas) {
+ ArgumentUtils.assertNotNegative(lower);
+ this.lower = lower;
+ ArgumentUtils.assertNotNull(deltas);
+ this.deltas = deltas;
+ }
+
+ /**
+ * @return a ONE BASED vertex index for an Obj mesh
+ */
+ public int getLower() {
+ return lower;
+ }
+
+ public int getVertexCount() {
+ return deltas.length;
+ }
+
+ public Vector3f[] getDeltas() {
+ return deltas;
+ }
+ }
+
+ public int getVertexCount() {
+ Range[] ranges = getRanges();
+ int total = 0;
+ for (int i = 0; i < ranges.length; i++) {
+ total += ranges[i].getVertexCount();
+ }
+ return total;
+ }
+
+ public String toString() {
+ StringBuffer result = new StringBuffer();
+ result.append("# MorphDeltaMap\n");
+ result.append(name + "\n\n");
+ Range[] ranges = getRanges();
+ for (int i = 0; i < ranges.length; i++) {
+ result.append(ranges[i].lower);
+ for (int j = 0; j < ranges[i].getVertexCount(); j++) {
+ Vector3f delta = ranges[i].getDeltas()[j];
+ result.append("\t" + format(delta.x) + "," + format(delta.y) + "," + format(delta.z));
+ }
+ result.append("\n");
+ }
+ return result.toString();
+ }
+ private String format(float value){
+ Object[] args = { new Float(value) };
+ return String.format("%f", args);
+ }
+}
Added: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMapParseException.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMapParseException.java (rev 0)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMapParseException.java 2007-09-28 19:40:06 UTC (rev 457)
@@ -0,0 +1,20 @@
+/* Copyright 2007 Transmutable (http://transmutable.com/)
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License. */
+package com.ogoglio.viewer.j3d.body;
+
+public class MorphDeltaMapParseException extends Exception {
+ public MorphDeltaMapParseException(String message) {
+ super(message);
+ }
+}
Added: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMapParser.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMapParser.java (rev 0)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMapParser.java 2007-09-28 19:40:06 UTC (rev 457)
@@ -0,0 +1,85 @@
+/* Copyright 2007 Transmutable (http://transmutable.com/)
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License. */
+package com.ogoglio.viewer.j3d.body;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Vector;
+import java.util.regex.Pattern;
+
+import javax.vecmath.Vector3f;
+
+import com.ogoglio.util.ArgumentUtils;
+import com.ogoglio.viewer.j3d.obj.LineTokenizer;
+
+public class MorphDeltaMapParser {
+
+ private InputStream input = null;
+
+ private LineTokenizer tokenizer = null;
+
+ private MorphDeltaMap map = null;
+
+ public MorphDeltaMapParser(InputStream input) {
+ ArgumentUtils.assertNotNull(input);
+ this.input = input;
+ tokenizer = new LineTokenizer(input);
+ }
+
+ public MorphDeltaMap parse() throws IOException, MorphDeltaMapParseException {
+ String[] tokens = null;
+
+ while ((tokens = tokenizer.readNextLine()) != null) {
+ if (tokens.length == 0 || tokens[0].startsWith("#")) {
+ continue;
+ } else if (map == null) {
+ parseName(tokens);
+ } else {
+ parseRange(tokens);
+ }
+ }
+
+ if (map == null) { //we never parsed a name!
+ throw new MorphDeltaMapParseException("No name defined in this morph file");
+ }
+ return map;
+ }
+
+ private void parseName(String[] tokens) throws MorphDeltaMapParseException {
+ map = new MorphDeltaMap(LineTokenizer.toString(tokens));
+ }
+
+ private void parseRange(String[] tokens) throws MorphDeltaMapParseException {
+ if(tokens.length < 2){
+ throw new MorphDeltaMapParseException("Bad range: " + LineTokenizer.toString(tokens));
+ }
+ int startingIndex = Integer.parseInt(tokens[0]);
+
+ Vector deltas = new Vector();
+ for (int i = 1; i < tokens.length; i++) {
+ deltas.add(parseVector3f(tokens[i]));
+ }
+
+ MorphDeltaMap.Range range = new MorphDeltaMap.Range(startingIndex, (Vector3f[])deltas.toArray(new Vector3f[0]));
+ map.addRange(range);
+ }
+
+ private Vector3f parseVector3f(String token) throws MorphDeltaMapParseException {
+ String[] subTokens = token.split(Pattern.quote(","));
+ if(subTokens.length != 3){
+ throw new MorphDeltaMapParseException("Bad vector parse: " + token);
+ }
+ return new Vector3f(Float.parseFloat(subTokens[0]), Float.parseFloat(subTokens[1]), Float.parseFloat(subTokens[2]));
+ }
+}
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/obj/LineTokenizer.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/obj/LineTokenizer.java 2007-09-28 19:39:59 UTC (rev 456)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/obj/LineTokenizer.java 2007-09-28 19:40:06 UTC (rev 457)
@@ -49,4 +49,12 @@
}
return results;
}
+
+ public static String toString(String[] tokens) {
+ StringBuffer result = new StringBuffer();
+ for (int i = 0; i < tokens.length; i++) {
+ result.append(tokens[i] + " ");
+ }
+ return result.toString().trim();
+ }
}
\ No newline at end of file
Added: maven/trunk/ogoglio-common/src/test/java/com/ogoglio/viewer/j3d/body/test/MorphTest.java
===================================================================
--- maven/trunk/ogoglio-common/src/test/java/com/ogoglio/viewer/j3d/body/test/MorphTest.java (rev 0)
+++ maven/trunk/ogoglio-common/src/test/java/com/ogoglio/viewer/j3d/body/test/MorphTest.java 2007-09-28 19:40:06 UTC (rev 457)
@@ -0,0 +1,44 @@
+package com.ogoglio.viewer.j3d.body.test;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+
+import junit.framework.TestCase;
+
+import com.ogoglio.util.UIConstants;
+import com.ogoglio.viewer.j3d.body.MorphDeltaMap;
+import com.ogoglio.viewer.j3d.body.MorphDeltaMapParseException;
+import com.ogoglio.viewer.j3d.body.MorphDeltaMapParser;
+
+public class MorphTest extends TestCase {
+
+ public static final String MORPH1_RESOURCE_PATH = "sample-art3d/MorphTest1.ogmorph";
+
+ public void testMorphDeltaMapParse() throws IOException, MorphDeltaMapParseException {
+ MorphDeltaMap map1 = new MorphDeltaMapParser(UIConstants.getResource(MORPH1_RESOURCE_PATH)).parse();
+ assertNotNull(map1.getName());
+ assertTrue(map1.getName().length() > 0);
+ assertTrue(map1.getRanges().length > 0);
+ assertTrue(map1.getRanges()[0].getDeltas().length > 0);
+ assertTrue(map1.getRanges()[0].getLower() > 0); //indices are 1 based, like skinmaps and obj files
+ MorphDeltaMap map2 = new MorphDeltaMapParser(new ByteArrayInputStream(map1.toString().getBytes())).parse();
+ assertMapsEqual(map1, map2);
+ }
+
+ private void assertMapsEqual(MorphDeltaMap map1, MorphDeltaMap map2) {
+ assertEquals(map1.getName(), map2.getName());
+ assertEquals(map1.getVertexCount(), map2.getVertexCount());
+ assertEquals(map1.getRanges().length, map2.getRanges().length);
+ for (int i = 0; i < map1.getRanges().length; i++) {
+ assertRangesEqual(map1.getRanges()[i], map2.getRanges()[i]);
+ }
+ }
+
+ private void assertRangesEqual(MorphDeltaMap.Range range1, MorphDeltaMap.Range range2) {
+ assertEquals(range1.getLower(), range2.getLower());
+ assertEquals(range1.getDeltas().length, range2.getDeltas().length);
+ for (int i = 0; i < range1.getDeltas().length; i++) {
+ assertTrue(range1.getDeltas()[i].epsilonEquals(range2.getDeltas()[i], 0.00001f));
+ }
+ }
+}
Added: maven/trunk/ogoglio-common/src/test/resources/sample-art3d/MorphTest1.obj
===================================================================
--- maven/trunk/ogoglio-common/src/test/resources/sample-art3d/MorphTest1.obj (rev 0)
+++ maven/trunk/ogoglio-common/src/test/resources/sample-art3d/MorphTest1.obj 2007-09-28 19:40:06 UTC (rev 457)
@@ -0,0 +1,483 @@
+o Grid
+v 1.000000 -1.000000 0.000000
+v 0.866667 -1.000000 0.000000
+v 0.733333 -1.000000 0.000000
+v 0.600000 -1.000000 0.000000
+v 0.466667 -1.000000 0.000000
+v 0.333333 -1.000000 0.000000
+v 0.200000 -1.000000 0.000000
+v 0.066667 -1.000000 0.000000
+v -0.066667 -1.000000 0.000000
+v -0.200000 -1.000000 0.000000
+v -0.333333 -1.000000 0.000000
+v -0.466667 -1.000000 0.000000
+v -0.600000 -1.000000 0.000000
+v -0.733333 -1.000000 0.000000
+v -0.866667 -1.000000 0.000000
+v -1.000000 -1.000000 0.000000
+v -1.000000 -0.866667 0.000000
+v -0.866667 -0.866667 0.000000
+v -0.733333 -0.866667 0.000000
+v -0.600000 -0.866667 0.000000
+v -0.466667 -0.866667 0.000000
+v -0.333333 -0.866667 0.000000
+v -0.200000 -0.866667 0.000000
+v -0.066667 -0.866667 0.000000
+v 0.066667 -0.866667 0.000000
+v 0.200000 -0.866667 0.000000
+v 0.333333 -0.866667 0.000000
+v 0.466667 -0.866667 0.000000
+v 0.600000 -0.866667 0.000000
+v 0.733333 -0.866667 0.000000
+v 0.866667 -0.866667 0.000000
+v 1.000000 -0.866667 0.000000
+v 1.000000 -0.733333 0.000000
+v 0.866667 -0.733333 0.000000
+v 0.733333 -0.733333 0.000000
+v 0.600000 -0.733333 0.000000
+v 0.466667 -0.733333 0.000000
+v 0.333333 -0.733333 0.000000
+v 0.200000 -0.733333 0.000000
+v 0.066667 -0.733333 0.000000
+v -0.066667 -0.733333 0.000000
+v -0.200000 -0.733333 0.000000
+v -0.333333 -0.733333 0.000000
+v -0.466667 -0.733333 0.000000
+v -0.600000 -0.733333 0.000000
+v -0.733333 -0.733333 0.000000
+v -0.866667 -0.733333 0.000000
+v -1.000000 -0.733333 0.000000
+v -1.000000 -0.600000 0.000000
+v -0.866667 -0.600000 0.000000
+v -0.733333 -0.600000 0.000000
+v -0.600000 -0.600000 0.000000
+v -0.466667 -0.600000 0.000000
+v -0.333333 -0.600000 0.000000
+v -0.200000 -0.600000 0.000000
+v -0.066667 -0.600000 0.000000
+v 0.066667 -0.600000 0.000000
+v 0.200000 -0.600000 0.000000
+v 0.333333 -0.600000 0.000000
+v 0.466667 -0.600000 0.000000
+v 0.600000 -0.600000 0.000000
+v 0.733333 -0.600000 0.000000
+v 0.866667 -0.600000 0.000000
+v 1.000000 -0.600000 0.000000
+v 1.000000 -0.466667 0.000000
+v 0.866667 -0.466667 0.000000
+v 0.733333 -0.466667 0.000000
+v 0.600000 -0.466667 0.000000
+v 0.466667 -0.466667 0.000000
+v 0.333333 -0.466667 0.000000
+v 0.200000 -0.466667 0.000000
+v 0.066667 -0.466667 0.000000
+v -0.066667 -0.466667 0.000000
+v -0.200000 -0.466667 0.000000
+v -0.333333 -0.466667 0.000000
+v -0.466667 -0.466667 0.000000
+v -0.600000 -0.466667 0.000000
+v -0.733333 -0.466667 0.000000
+v -0.866667 -0.466667 0.000000
+v -1.000000 -0.466667 0.000000
+v -1.000000 -0.333333 0.000000
+v -0.866667 -0.333333 0.000000
+v -0.733333 -0.333333 0.000000
+v -0.600000 -0.333333 0.000000
+v -0.466667 -0.333333 0.000000
+v -0.333333 -0.333333 0.000000
+v -0.200000 -0.333333 0.000000
+v -0.066667 -0.333333 0.000000
+v 0.066667 -0.333333 0.000000
+v 0.200000 -0.333333 0.000000
+v 0.333333 -0.333333 0.000000
+v 0.466667 -0.333333 0.000000
+v 0.600000 -0.333333 0.000000
+v 0.733333 -0.333333 0.000000
+v 0.866667 -0.333333 0.000000
+v 1.000000 -0.333333 0.000000
+v 1.000000 -0.200000 0.000000
+v 0.866667 -0.200000 0.000000
+v 0.733333 -0.200000 0.000000
+v 0.600000 -0.200000 0.000000
+v 0.466667 -0.200000 0.000000
+v 0.333333 -0.200000 0.000000
+v 0.200000 -0.200000 0.000000
+v 0.066667 -0.200000 0.000000
+v -0.066667 -0.200000 0.000000
+v -0.200000 -0.200000 0.000000
+v -0.333333 -0.200000 0.000000
+v -0.466667 -0.200000 0.000000
+v -0.600000 -0.200000 0.000000
+v -0.733333 -0.200000 0.000000
+v -0.866667 -0.200000 0.000000
+v -1.000000 -0.200000 0.000000
+v -1.000000 -0.066667 0.000000
+v -0.866667 -0.066667 0.000000
+v -0.733333 -0.066667 0.000000
+v -0.600000 -0.066667 0.000000
+v -0.466667 -0.066667 0.000000
+v -0.333333 -0.066667 0.000000
+v -0.200000 -0.066667 0.000000
+v -0.066667 -0.066667 0.000000
+v 0.066667 -0.066667 0.000000
+v 0.200000 -0.066667 0.000000
+v 0.333333 -0.066667 0.000000
+v 0.466667 -0.066667 0.000000
+v 0.600000 -0.066667 0.000000
+v 0.733333 -0.066667 0.000000
+v 0.866667 -0.066667 0.000000
+v 1.000000 -0.066667 0.000000
+v 1.000000 0.066667 0.000000
+v 0.866667 0.066667 0.000000
+v 0.733333 0.066667 0.000000
+v 0.600000 0.066667 0.000000
+v 0.466667 0.066667 0.000000
+v 0.333333 0.066667 0.000000
+v 0.200000 0.066667 0.000000
+v 0.066667 0.066667 0.000000
+v -0.066667 0.066667 0.000000
+v -0.200000 0.066667 0.000000
+v -0.333333 0.066667 0.000000
+v -0.466667 0.066667 0.000000
+v -0.600000 0.066667 0.000000
+v -0.733333 0.066667 0.000000
+v -0.866667 0.066667 0.000000
+v -1.000000 0.066667 0.000000
+v -1.000000 0.200000 0.000000
+v -0.866667 0.200000 0.000000
+v -0.733333 0.200000 0.000000
+v -0.600000 0.200000 0.000000
+v -0.466667 0.200000 0.000000
+v -0.333333 0.200000 0.000000
+v -0.200000 0.200000 0.000000
+v -0.066667 0.200000 0.000000
+v 0.066667 0.200000 0.000000
+v 0.200000 0.200000 0.000000
+v 0.333333 0.200000 0.000000
+v 0.466667 0.200000 0.000000
+v 0.600000 0.200000 0.000000
+v 0.733333 0.200000 0.000000
+v 0.866667 0.200000 0.000000
+v 1.000000 0.200000 0.000000
+v 1.000000 0.333333 0.000000
+v 0.866667 0.333333 0.000000
+v 0.733333 0.333333 0.000000
+v 0.600000 0.333333 0.000000
+v 0.466667 0.333333 0.000000
+v 0.333333 0.333333 0.000000
+v 0.200000 0.333333 0.000000
+v 0.066667 0.333333 0.000000
+v -0.066667 0.333333 0.000000
+v -0.200000 0.333333 0.000000
+v -0.333333 0.333333 0.000000
+v -0.466667 0.333333 0.000000
+v -0.600000 0.333333 0.000000
+v -0.733333 0.333333 0.000000
+v -0.866667 0.333333 0.000000
+v -1.000000 0.333333 0.000000
+v -1.000000 0.466667 0.000000
+v -0.866667 0.466667 0.000000
+v -0.733333 0.466667 0.000000
+v -0.600000 0.466667 0.000000
+v -0.466667 0.466667 0.000000
+v -0.333333 0.466667 0.000000
+v -0.200000 0.466667 0.000000
+v -0.066667 0.466667 0.000000
+v 0.066667 0.466667 0.000000
+v 0.200000 0.466667 0.000000
+v 0.333333 0.466667 0.000000
+v 0.466667 0.466667 0.000000
+v 0.600000 0.466667 0.000000
+v 0.733333 0.466667 0.000000
+v 0.866667 0.466667 0.000000
+v 1.000000 0.466667 0.000000
+v 1.000000 0.600000 0.000000
+v 0.866667 0.600000 0.000000
+v 0.733333 0.600000 0.000000
+v 0.600000 0.600000 0.000000
+v 0.466667 0.600000 0.000000
+v 0.333333 0.600000 0.000000
+v 0.200000 0.600000 0.000000
+v 0.066667 0.600000 0.000000
+v -0.066667 0.600000 0.000000
+v -0.200000 0.600000 0.000000
+v -0.333333 0.600000 0.000000
+v -0.466667 0.600000 0.000000
+v -0.600000 0.600000 0.000000
+v -0.733333 0.600000 0.000000
+v -0.866667 0.600000 0.000000
+v -1.000000 0.600000 0.000000
+v -1.000000 0.733333 0.000000
+v -0.866667 0.733333 0.000000
+v -0.733333 0.733333 0.000000
+v -0.600000 0.733333 0.000000
+v -0.466667 0.733333 0.000000
+v -0.333333 0.733333 0.000000
+v -0.200000 0.733333 0.000000
+v -0.066667 0.733333 0.000000
+v 0.066667 0.733333 0.000000
+v 0.200000 0.733333 0.000000
+v 0.333333 0.733333 0.000000
+v 0.466667 0.733333 0.000000
+v 0.600000 0.733333 0.000000
+v 0.733333 0.733333 0.000000
+v 0.866667 0.733333 0.000000
+v 1.000000 0.733333 0.000000
+v 1.000000 0.866667 0.000000
+v 0.866667 0.866667 0.000000
+v 0.733333 0.866667 0.000000
+v 0.600000 0.866667 0.000000
+v 0.466667 0.866667 0.000000
+v 0.333333 0.866667 0.000000
+v 0.200000 0.866667 0.000000
+v 0.066667 0.866667 0.000000
+v -0.066667 0.866667 0.000000
+v -0.200000 0.866667 0.000000
+v -0.333333 0.866667 0.000000
+v -0.466667 0.866667 0.000000
+v -0.600000 0.866667 0.000000
+v -0.733333 0.866667 0.000000
+v -0.866667 0.866667 0.000000
+v -1.000000 0.866667 0.000000
+v -1.000000 1.000000 0.000000
+v -0.866667 1.000000 0.000000
+v -0.733333 1.000000 0.000000
+v -0.600000 1.000000 0.000000
+v -0.466667 1.000000 0.000000
+v -0.333333 1.000000 0.000000
+v -0.200000 1.000000 0.000000
+v -0.066667 1.000000 0.000000
+v 0.066667 1.000000 0.000000
+v 0.200000 1.000000 0.000000
+v 0.333333 1.000000 0.000000
+v 0.466667 1.000000 0.000000
+v 0.600000 1.000000 0.000000
+v 0.733333 1.000000 0.000000
+v 0.866667 1.000000 0.000000
+v 1.000000 1.000000 0.000000
+s off
+f 16 15 18 17
+f 15 14 19 18
+f 14 13 20 19
+f 13 12 21 20
+f 12 11 22 21
+f 11 10 23 22
+f 10 9 24 23
+f 9 8 25 24
+f 8 7 26 25
+f 7 6 27 26
+f 6 5 28 27
+f 5 4 29 28
+f 4 3 30 29
+f 3 2 31 30
+f 2 1 32 31
+f 31 32 33 34
+f 30 31 34 35
+f 29 30 35 36
+f 28 29 36 37
+f 27 28 37 38
+f 26 27 38 39
+f 25 26 39 40
+f 24 25 40 41
+f 23 24 41 42
+f 22 23 42 43
+f 21 22 43 44
+f 20 21 44 45
+f 19 20 45 46
+f 18 19 46 47
+f 17 18 47 48
+f 48 47 50 49
+f 47 46 51 50
+f 46 45 52 51
+f 45 44 53 52
+f 44 43 54 53
+f 43 42 55 54
+f 42 41 56 55
+f 41 40 57 56
+f 40 39 58 57
+f 39 38 59 58
+f 38 37 60 59
+f 37 36 61 60
+f 36 35 62 61
+f 35 34 63 62
+f 34 33 64 63
+f 63 64 65 66
+f 62 63 66 67
+f 61 62 67 68
+f 60 61 68 69
+f 59 60 69 70
+f 58 59 70 71
+f 57 58 71 72
+f 56 57 72 73
+f 55 56 73 74
+f 54 55 74 75
+f 53 54 75 76
+f 52 53 76 77
+f 51 52 77 78
+f 50 51 78 79
+f 49 50 79 80
+f 80 79 82 81
+f 79 78 83 82
+f 78 77 84 83
+f 77 76 85 84
+f 76 75 86 85
+f 75 74 87 86
+f 74 73 88 87
+f 73 72 89 88
+f 72 71 90 89
+f 71 70 91 90
+f 70 69 92 91
+f 69 68 93 92
+f 68 67 94 93
+f 67 66 95 94
+f 66 65 96 95
+f 95 96 97 98
+f 94 95 98 99
+f 93 94 99 100
+f 92 93 100 101
+f 91 92 101 102
+f 90 91 102 103
+f 89 90 103 104
+f 88 89 104 105
+f 87 88 105 106
+f 86 87 106 107
+f 85 86 107 108
+f 84 85 108 109
+f 83 84 109 110
+f 82 83 110 111
+f 81 82 111 112
+f 112 111 114 113
+f 111 110 115 114
+f 110 109 116 115
+f 109 108 117 116
+f 108 107 118 117
+f 107 106 119 118
+f 106 105 120 119
+f 105 104 121 120
+f 104 103 122 121
+f 103 102 123 122
+f 102 101 124 123
+f 101 100 125 124
+f 100 99 126 125
+f 99 98 127 126
+f 98 97 128 127
+f 127 128 129 130
+f 126 127 130 131
+f 125 126 131 132
+f 124 125 132 133
+f 123 124 133 134
+f 122 123 134 135
+f 121 122 135 136
+f 120 121 136 137
+f 119 120 137 138
+f 118 119 138 139
+f 117 118 139 140
+f 116 117 140 141
+f 115 116 141 142
+f 114 115 142 143
+f 113 114 143 144
+f 144 143 146 145
+f 143 142 147 146
+f 142 141 148 147
+f 141 140 149 148
+f 140 139 150 149
+f 139 138 151 150
+f 138 137 152 151
+f 137 136 153 152
+f 136 135 154 153
+f 135 134 155 154
+f 134 133 156 155
+f 133 132 157 156
+f 132 131 158 157
+f 131 130 159 158
+f 130 129 160 159
+f 159 160 161 162
+f 158 159 162 163
+f 157 158 163 164
+f 156 157 164 165
+f 155 156 165 166
+f 154 155 166 167
+f 153 154 167 168
+f 152 153 168 169
+f 151 152 169 170
+f 150 151 170 171
+f 149 150 171 172
+f 148 149 172 173
+f 147 148 173 174
+f 146 147 174 175
+f 145 146 175 176
+f 176 175 178 177
+f 175 174 179 178
+f 174 173 180 179
+f 173 172 181 180
+f 172 171 182 181
+f 171 170 183 182
+f 170 169 184 183
+f 169 168 185 184
+f 168 167 186 185
+f 167 166 187 186
+f 166 165 188 187
+f 165 164 189 188
+f 164 163 190 189
+f 163 162 191 190
+f 162 161 192 191
+f 191 192 193 194
+f 190 191 194 195
+f 189 190 195 196
+f 188 189 196 197
+f 187 188 197 198
+f 186 187 198 199
+f 185 186 199 200
+f 184 185 200 201
+f 183 184 201 202
+f 182 183 202 203
+f 181 182 203 204
+f 180 181 204 205
+f 179 180 205 206
+f 178 179 206 207
+f 177 178 207 208
+f 208 207 210 209
+f 207 206 211 210
+f 206 205 212 211
+f 205 204 213 212
+f 204 203 214 213
+f 203 202 215 214
+f 202 201 216 215
+f 201 200 217 216
+f 200 199 218 217
+f 199 198 219 218
+f 198 197 220 219
+f 197 196 221 220
+f 196 195 222 221
+f 195 194 223 222
+f 194 193 224 223
+f 223 224 225 226
+f 222 223 226 227
+f 221 222 227 228
+f 220 221 228 229
+f 219 220 229 230
+f 218 219 230 231
+f 217 218 231 232
+f 216 217 232 233
+f 215 216 233 234
+f 214 215 234 235
+f 213 214 235 236
+f 212 213 236 237
+f 211 212 237 238
+f 210 211 238 239
+f 209 210 239 240
+f 240 239 242 241
+f 239 238 243 242
+f 238 237 244 243
+f 237 236 245 244
+f 236 235 246 245
+f 235 234 247 246
+f 234 233 248 247
+f 233 232 249 248
+f 232 231 250 249
+f 231 230 251 250
+f 230 229 252 251
+f 229 228 253 252
+f 228 227 254 253
+f 227 226 255 254
+f 226 225 256 255
Added: maven/trunk/ogoglio-common/src/test/resources/sample-art3d/MorphTest1.ogmorph
===================================================================
--- maven/trunk/ogoglio-common/src/test/resources/sample-art3d/MorphTest1.ogmorph (rev 0)
+++ maven/trunk/ogoglio-common/src/test/resources/sample-art3d/MorphTest1.ogmorph 2007-09-28 19:40:06 UTC (rev 457)
@@ -0,0 +1,9 @@
+# MorphDeltaMap
+testMorph1
+
+3 0.000000,0.000000,1.733333 0.000000,0.000000,1.600000 0.000000,0.000000,1.466667 0.000000,0.000000,1.333333 0.000000,0.000000,1.200000 0.000000,0.000000,1.066667 0.000000,0.000000,0.933333 0.000000,0.000000,0.800000 0.000000,0.000000,0.666667 0.000000,0.000000,0.533333 0.000000,0.000000,0.400000 0.000000,0.000000,0.266667
+18 0.000000,0.000000,0.000000 0.000000,0.000000,0.133334 0.000000,0.000000,0.266667 0.000000,0.000000,0.400000 0.000000,0.000000,0.533334 0.000000,0.000000,0.666667 0.000000,0.000000,0.800000 0.000000,0.000000,0.933334 0.000000,0.000000,1.066667 0.000000,0.000000,1.200000 0.000000,0.000000,1.333334 0.000000,0.000000,1.466667 0.000000,0.000000,1.600000 0.000000,0.000000,1.733334
+33 0.000000,0.000000,1.733333 0.000000,0.000000,1.600000 0.000000,0.000000,1.466666 0.000000,0.000000,1.333333 0.000000,0.000000,1.200000 0.000000,0.000000,1.066666 0.000000,0.000000,0.933333 0.000000,0.000000,0.800000 0.000000,0.000000,0.666666 0.000000,0.000000,0.533333 0.000000,0.000000,0.400000 0.000000,0.000000,0.266666 0.000000,0.000000,0.133333 0.000000,0.000000,0.000000 0.000000,0.000000,-0.133334 0.000000,0.000000,-0.266667 0.000000,0.000000,-0.400000 0.000000,0.000000,-0.266667 0.000000,0.000000,-0.133333 0.000000,0.000000,0.000000 0.000000,0.000000,0.133333 0.000000,0.000000,0.266667 0.000000,0.000000,0.400000 0.000000,0.000000,0.533333 0.000000,0.000000,0.666667 0.000000,0.000000,0.800000 0.000000,0.000000,0.933333 0.000000,0.000000,1.066667 0.000000,0.000000,1.200000 0.000000,0.000000,1.333333 0.000000,0.000000,1.466667 0.000000,0.000000,1.600000 0.000000,0.000000,1.466667 0.000000,0.000000,1.333334 0.000000,0.000000,1.200000 0.000000,0.000000,1.066667 0.000000,0.000000,0.933334 0.000000,0.000000,0.800000 0.000000,0.000000,0.666667 0.000000,0.000000,0.533334 0.000000,0.000000,0.400000 0.000000,0.000000,0.266667 0.000000,0.000000,0.133334 0.000000,0.000000,0.000000 0.000000,0.000000,-0.133333 0.000000,0.000000,-0.266666 0.000000,0.000000,-0.400000 0.000000,0.000000,-0.533333 0.000000,0.000000,-0.666667 0.000000,0.000000,-0.533334 0.000000,0.000000,-0.400000 0.000000,0.000000,-0.266667 0.000000,0.000000,-0.133334 0.000000,0.000000,0.000000 0.000000,0.000000,0.133333 0.000000,0.000000,0.266666 0.000000,0.000000,0.400000 0.000000,0.000000,0.533333 0.000000,0.000000,0.666666 0.000000,0.000000,0.800000 0.000000,0.000000,0.933333 0.000000,0.000000,1.066666 0.000000,0.000000,1.200000 0.000000,0.000000,1.333333 0.000000,0.000000,1.200000 0.000000,0.000000,1.066667 0.000000,0.000000,0.933333 0.000000,0.000000,0.800000 0.000000,0.000000,0.666667 0.000000,0.000000,0.533333 0.000000,0.000000,0.400000 0.000000,0.000000,0.266667 0.000000,0.000000,0.133333 0.000000,0.000000,0.000000 0.000000,0.000000,-0.133333 0.000000,0.000000,-0.266667 0.000000,0.000000,-0.400000 0.000000,0.000000,-0.533333 0.000000,0.000000,-0.666667 0.000000,0.000000,-0.800000 0.000000,0.000000,-0.933333 0.000000,0.000000,-0.800000 0.000000,0.000000,-0.666666 0.000000,0.000000,-0.533333 0.000000,0.000000,-0.400000 0.000000,0.000000,-0.266666 0.000000,0.000000,-0.133333 0.000000,0.000000,0.000000 0.000000,0.000000,0.133334 0.000000,0.000000,0.266667 0.000000,0.000000,0.400000 0.000000,0.000000,0.533334 0.000000,0.000000,0.666667 0.000000,0.000000,0.800000 0.000000,0.000000,0.933334 0.000000,0.000000,1.066667 0.000000,0.000000,0.933333 0.000000,0.000000,0.800000 0.000000,0.000000,0.666666 0.000000,0.000000,0.533333 0.000000,0.000000,0.400000 0.000000,0.000000,0.266666 0.000000,0.000000,0.133333 0.000000,0.000000,0.000000 0.000000,0.000000,-0.133334 0.000000,0.000000,-0.266667 0.000000,0.000000,-0.400000 0.000000,0.000000,-0.533334 0.000000,0.000000,-0.666667 0.000000,0.000000,-0.800000 0.000000,0.000000,-0.933334 0.000000,0.000000,-1.066667 0.000000,0.000000,-1.200000 0.000000,0.000000,-1.066667 0.000000,0.000000,-0.933333 0.000000,0.000000,-0.800000 0.000000,0.000000,-0.666667 0.000000,0.000000,-0.533333 0.000000,0.000000,-0.400000 0.000000,0.000000,-0.266667 0.000000,0.000000,-0.133333 0.000000,0.000000,0.000000 0.000000,0.000000,0.133333 0.000000,0.000000,0.266667 0.000000,0.000000,0.400000 0.000000,0.000000,0.533333 0.000000,0.000000,0.666667 0.000000,0.000000,0.800000 0.000000,0.000000,0.666667 0.000000,0.000000,0.533334 0.000000,0.000000,0.400000 0.000000,0.000000,0.266667 0.000000,0.000000,0.133334 0.000000,0.000000,0.000000 0.000000,0.000000,-0.133333 0.000000,0.000000,-0.266666 0.000000,0.000000,-0.400000 0.000000,0.000000,-0.533333 0.000000,0.000000,-0.666666 0.000000,0.000000,-0.800000 0.000000,0.000000,-0.933333 0.000000,0.000000,-1.066666 0.000000,0.000000,-1.200000 0.000000,0.000000,-1.333333 0.000000,0.000000,-1.466667 0.000000,0.000000,-1.333334 0.000000,0.000000,-1.200000 0.000000,0.000000,-1.066667 0.000000,0.000000,-0.933334 0.000000,0.000000,-0.800000 0.000000,0.000000,-0.666667 0.000000,0.000000,-0.533334 0.000000,0.000000,-0.400000 0.000000,0.000000,-0.266667 0.000000,0.000000,-0.133334 0.000000,0.000000,0.000000 0.000000,0.000000,0.133333 0.000000,0.000000,0.266666 0.000000,0.000000,0.400000 0.000000,0.000000,0.533333 0.000000,0.000000,0.400000 0.000000,0.000000,0.266667 0.000000,0.000000,0.133333 0.000000,0.000000,0.000000 0.000000,0.000000,-0.133333 0.000000,0.000000,-0.266667 0.000000,0.000000,-0.400000 0.000000,0.000000,-0.533333 0.000000,0.000000,-0.666667 0.000000,0.000000,-0.800000 0.000000,0.000000,-0.933333 0.000000,0.000000,-1.066667 0.000000,0.000000,-1.200000 0.000000,0.000000,-1.333333 0.000000,0.000000,-1.466667 0.000000,0.000000,-1.600000 0.000000,0.000000,-1.733333 0.000000,0.000000,-1.600000 0.000000,0.000000,-1.466666 0.000000,0.000000,-1.333333 0.000000,0.000000,-1.200000 0.000000,0.000000,-1.066666 0.000000,0.000000,-0.933333 0.000000,0.000000,-0.800000 0.000000,0.000000,-0.666666 0.000000,0.000000,-0.533333 0.000000,0.000000,-0.400000 0.000000,0.000000,-0.266666 0.000000,0.000000,-0.133333 0.000000,0.000000,0.000000 0.000000,0.000000,0.133334 0.000000,0.000000,0.266667
+226 0.000000,0.000000,0.000000 0.000000,0.000000,-0.133334 0.000000,0.000000,-0.266667 0.000000,0.000000,-0.400000 0.000000,0.000000,-0.533334 0.000000,0.000000,-0.666667 0.000000,0.000000,-0.800000 0.000000,0.000000,-0.933334 0.000000,0.000000,-1.066667 0.000000,0.000000,-1.200000 0.000000,0.000000,-1.333334 0.000000,0.000000,-1.466667 0.000000,0.000000,-1.600000 0.000000,0.000000,-1.733334
+243 0.000000,0.000000,-1.733333 0.000000,0.000000,-1.600000 0.000000,0.000000,-1.466667 0.000000,0.000000,-1.333333 0.000000,0.000000,-1.200000 0.000000,0.000000,-1.066667 0.000000,0.000000,-0.933333 0.000000,0.000000,-0.800000 0.000000,0.000000,-0.666667 0.000000,0.000000,-0.533333 0.000000,0.000000,-0.400000 0.000000,0.000000,-0.266667
+
Added: maven/trunk/ogoglio-common/src/test/resources/sample-art3d/MorphTest2.obj
===================================================================
--- maven/trunk/ogoglio-common/src/test/resources/sample-art3d/MorphTest2.obj (rev 0)
+++ maven/trunk/ogoglio-common/src/test/resources/sample-art3d/MorphTest2.obj 2007-09-28 19:40:06 UTC (rev 457)
@@ -0,0 +1,483 @@
+o Grid
+v 1.000000 -1.000000 0.000000
+v 0.866667 -1.000000 0.000000
+v 0.733333 -1.000000 0.001451
+v 0.600000 -1.000000 0.010401
+v 0.466667 -1.000000 0.022082
+v 0.333333 -1.000000 0.031330
+v 0.200000 -1.000000 0.034801
+v 0.066667 -1.000000 0.034801
+v -0.066667 -1.000000 0.034801
+v -0.200000 -1.000000 0.034801
+v -0.333333 -1.000000 0.031330
+v -0.466667 -1.000000 0.022082
+v -0.600000 -1.000000 0.010401
+v -0.733333 -1.000000 0.001451
+v -0.866667 -1.000000 0.000000
+v -1.000000 -1.000000 0.000000
+v -1.000000 -0.866667 0.000000
+v -0.866667 -0.866667 0.003158
+v -0.733333 -0.866667 0.019378
+v -0.600000 -0.866667 0.042340
+v -0.466667 -0.866667 0.064814
+v -0.333333 -0.866667 0.080923
+v -0.200000 -0.866667 0.086754
+v -0.066667 -0.866667 0.086754
+v 0.066667 -0.866667 0.086754
+v 0.200000 -0.866667 0.086754
+v 0.333333 -0.866667 0.080923
+v 0.466667 -0.866667 0.064814
+v 0.600000 -0.866667 0.042340
+v 0.733333 -0.866667 0.019378
+v 0.866667 -0.866667 0.003158
+v 1.000000 -0.866667 0.000000
+v 1.000000 -0.733333 0.001451
+v 0.866667 -0.733333 0.019378
+v 0.733333 -0.733333 0.050695
+v 0.600000 -0.733333 0.086754
+v 0.466667 -0.733333 0.119580
+v 0.333333 -0.733333 0.142423
+v 0.200000 -0.733333 0.150604
+v 0.066667 -0.733333 0.150604
+v -0.066667 -0.733333 0.150604
+v -0.200000 -0.733333 0.150604
+v -0.333333 -0.733333 0.142423
+v -0.466667 -0.733333 0.119580
+v -0.600000 -0.733333 0.086754
+v -0.733333 -0.733333 0.050695
+v -0.866667 -0.733333 0.019378
+v -1.000000 -0.733333 0.001451
+v -1.000000 -0.600000 0.010401
+v -0.866667 -0.600000 0.042340
+v -0.733333 -0.600000 0.086754
+v -0.600000 -0.600000 0.134531
+v -0.466667 -0.600000 0.176973
+v -0.333333 -0.600000 0.206321
+v -0.200000 -0.600000 0.216834
+v -0.066667 -0.600000 0.216834
+v 0.066667 -0.600000 0.216834
+v 0.200000 -0.600000 0.216834
+v 0.333333 -0.600000 0.206321
+v 0.466667 -0.600000 0.176973
+v 0.600000 -0.600000 0.134531
+v 0.733333 -0.600000 0.086754
+v 0.866667 -0.600000 0.042340
+v 1.000000 -0.600000 0.010401
+v 1.000000 -0.466667 0.022082
+v 0.866667 -0.466667 0.064814
+v 0.733333 -0.466667 0.119580
+v 0.600000 -0.466667 0.176973
+v 0.466667 -0.466667 0.227744
+v 0.333333 -0.466667 0.263125
+v 0.200000 -0.466667 0.275926
+v 0.066667 -0.466667 0.275926
+v -0.066667 -0.466667 0.275926
+v -0.200000 -0.466667 0.275926
+v -0.333333 -0.466667 0.263125
+v -0.466667 -0.466667 0.227744
+v -0.600000 -0.466667 0.176973
+v -0.733333 -0.466667 0.119580
+v -0.866667 -0.466667 0.064814
+v -1.000000 -0.466667 0.022082
+v -1.000000 -0.333333 0.031330
+v -0.866667 -0.333333 0.080923
+v -0.733333 -0.333333 0.142423
+v -0.600000 -0.333333 0.206321
+v -0.466667 -0.333333 0.263125
+v -0.333333 -0.333333 0.303415
+v -0.200000 -0.333333 0.318361
+v -0.066667 -0.333333 0.318361
+v 0.066667 -0.333333 0.318361
+v 0.200000 -0.333333 0.318361
+v 0.333333 -0.333333 0.303415
+v 0.466667 -0.333333 0.263125
+v 0.600000 -0.333333 0.206321
+v 0.733333 -0.333333 0.142423
+v 0.866667 -0.333333 0.080923
+v 1.000000 -0.333333 0.031330
+v 1.000000 -0.200000 0.034801
+v 0.866667 -0.200000 0.086754
+v 0.733333 -0.200000 0.150604
+v 0.600000 -0.200000 0.216834
+v 0.466667 -0.200000 0.275926
+v 0.333333 -0.200000 0.318361
+v 0.200000 -0.200000 0.334621
+v 0.066667 -0.200000 0.334621
+v -0.066667 -0.200000 0.334621
+v -0.200000 -0.200000 0.334621
+v -0.333333 -0.200000 0.318361
+v -0.466667 -0.200000 0.275926
+v -0.600000 -0.200000 0.216834
+v -0.733333 -0.200000 0.150604
+v -0.866667 -0.200000 0.086754
+v -1.000000 -0.200000 0.034801
+v -1.000000 -0.066667 0.034801
+v -0.866667 -0.066667 0.086754
+v -0.733333 -0.066667 0.150604
+v -0.600000 -0.066667 0.216834
+v -0.466667 -0.066667 0.275926
+v -0.333333 -0.066667 0.318361
+v -0.200000 -0.066667 0.334621
+v -0.066667 -0.066667 0.334621
+v 0.066667 -0.066667 0.334621
+v 0.200000 -0.066667 0.334621
+v 0.333333 -0.066667 0.318361
+v 0.466667 -0.066667 0.275926
+v 0.600000 -0.066667 0.216834
+v 0.733333 -0.066667 0.150604
+v 0.866667 -0.066667 0.086754
+v 1.000000 -0.066667 0.034801
+v 1.000000 0.066667 0.034801
+v 0.866667 0.066667 0.086754
+v 0.733333 0.066667 0.150604
+v 0.600000 0.066667 0.216834
+v 0.466667 0.066667 0.275926
+v 0.333333 0.066667 0.318361
+v 0.200000 0.066667 0.334621
+v 0.066667 0.066667 0.334621
+v -0.066667 0.066667 0.334621
+v -0.200000 0.066667 0.334621
+v -0.333333 0.066667 0.318361
+v -0.466667 0.066667 0.275926
+v -0.600000 0.066667 0.216834
+v -0.733333 0.066667 0.150604
+v -0.866667 0.066667 0.086754
+v -1.000000 0.066667 0.034801
+v -1.000000 0.200000 0.034801
+v -0.866667 0.200000 0.086754
+v -0.733333 0.200000 0.150604
+v -0.600000 0.200000 0.216834
+v -0.466667 0.200000 0.275926
+v -0.333333 0.200000 0.318361
+v -0.200000 0.200000 0.334621
+v -0.066667 0.200000 0.334621
+v 0.066667 0.200000 0.334621
+v 0.200000 0.200000 0.334621
+v 0.333333 0.200000 0.318361
+v 0.466667 0.200000 0.275926
+v 0.600000 0.200000 0.216834
+v 0.733333 0.200000 0.150604
+v 0.866667 0.200000 0.086754
+v 1.000000 0.200000 0.034801
+v 1.000000 0.333333 0.031330
+v 0.866667 0.333333 0.080923
+v 0.733333 0.333333 0.142423
+v 0.600000 0.333333 0.206321
+v 0.466667 0.333333 0.263125
+v 0.333333 0.333333 0.303415
+v 0.200000 0.333333 0.318361
+v 0.066667 0.333333 0.318361
+v -0.066667 0.333333 0.318361
+v -0.200000 0.333333 0.318361
+v -0.333333 0.333333 0.303415
+v -0.466667 0.333333 0.263125
+v -0.600000 0.333333 0.206321
+v -0.733333 0.333333 0.142423
+v -0.866667 0.333333 0.080923
+v -1.000000 0.333333 0.031330
+v -1.000000 0.466667 0.022082
+v -0.866667 0.466667 0.064814
+v -0.733333 0.466667 0.119580
+v -0.600000 0.466667 0.176973
+v -0.466667 0.466667 0.227744
+v -0.333333 0.466667 0.263125
+v -0.200000 0.466667 0.275926
+v -0.066667 0.466667 0.275926
+v 0.066667 0.466667 0.275926
+v 0.200000 0.466667 0.275926
+v 0.333333 0.466667 0.263125
+v 0.466667 0.466667 0.227744
+v 0.600000 0.466667 0.176973
+v 0.733333 0.466667 0.119580
+v 0.866667 0.466667 0.064814
+v 1.000000 0.466667 0.022082
+v 1.000000 0.600000 0.010401
+v 0.866667 0.600000 0.042340
+v 0.733333 0.600000 0.086754
+v 0.600000 0.600000 0.134531
+v 0.466667 0.600000 0.176973
+v 0.333333 0.600000 0.206321
+v 0.200000 0.600000 0.216834
+v 0.066667 0.600000 0.216834
+v -0.066667 0.600000 0.216834
+v -0.200000 0.600000 0.216834
+v -0.333333 0.600000 0.206321
+v -0.466667 0.600000 0.176973
+v -0.600000 0.600000 0.134531
+v -0.733333 0.600000 0.086754
+v -0.866667 0.600000 0.042340
+v -1.000000 0.600000 0.010401
+v -1.000000 0.733333 0.001451
+v -0.866667 0.733333 0.019378
+v -0.733333 0.733333 0.050695
+v -0.600000 0.733333 0.086754
+v -0.466667 0.733333 0.119580
+v -0.333333 0.733333 0.142423
+v -0.200000 0.733333 0.150604
+v -0.066667 0.733333 0.150604
+v 0.066667 0.733333 0.150604
+v 0.200000 0.733333 0.150604
+v 0.333333 0.733333 0.142423
+v 0.466667 0.733333 0.119580
+v 0.600000 0.733333 0.086754
+v 0.733333 0.733333 0.050695
+v 0.866667 0.733333 0.019378
+v 1.000000 0.733333 0.001451
+v 1.000000 0.866667 0.000000
+v 0.866667 0.866667 0.003158
+v 0.733333 0.866667 0.019378
+v 0.600000 0.866667 0.042340
+v 0.466667 0.866667 0.064814
+v 0.333333 0.866667 0.080923
+v 0.200000 0.866667 0.086754
+v 0.066667 0.866667 0.086754
+v -0.066667 0.866667 0.086754
+v -0.200000 0.866667 0.086754
+v -0.333333 0.866667 0.080923
+v -0.466667 0.866667 0.064814
+v -0.600000 0.866667 0.042340
+v -0.733333 0.866667 0.019378
+v -0.866667 0.866667 0.003158
+v -1.000000 0.866667 0.000000
+v -1.000000 1.000000 0.000000
+v -0.866667 1.000000 0.000000
+v -0.733333 1.000000 0.001451
+v -0.600000 1.000000 0.010401
+v -0.466667 1.000000 0.022082
+v -0.333333 1.000000 0.031330
+v -0.200000 1.000000 0.034801
+v -0.066667 1.000000 0.034801
+v 0.066667 1.000000 0.034801
+v 0.200000 1.000000 0.034801
+v 0.333333 1.000000 0.031330
+v 0.466667 1.000000 0.022082
+v 0.600000 1.000000 0.010401
+v 0.733333 1.000000 0.001451
+v 0.866667 1.000000 0.000000
+v 1.000000 1.000000 0.000000
+s off
+f 16 15 18 17
+f 15 14 19 18
+f 14 13 20 19
+f 13 12 21 20
+f 12 11 22 21
+f 11 10 23 22
+f 10 9 24 23
+f 9 8 25 24
+f 8 7 26 25
+f 7 6 27 26
+f 6 5 28 27
+f 5 4 29 28
+f 4 3 30 29
+f 3 2 31 30
+f 2 1 32 31
+f 31 32 33 34
+f 30 31 34 35
+f 29 30 35 36
+f 28 29 36 37
+f 27 28 37 38
+f 26 27 38 39
+f 25 26 39 40
+f 24 25 40 41
+f 23 24 41 42
+f 22 23 42 43
+f 21 22 43 44
+f 20 21 44 45
+f 19 20 45 46
+f 18 19 46 47
+f 17 18 47 48
+f 48 47 50 49
+f 47 46 51 50
+f 46 45 52 51
+f 45 44 53 52
+f 44 43 54 53
+f 43 42 55 54
+f 42 41 56 55
+f 41 40 57 56
+f 40 39 58 57
+f 39 38 59 58
+f 38 37 60 59
+f 37 36 61 60
+f 36 35 62 61
+f 35 34 63 62
+f 34 33 64 63
+f 63 64 65 66
+f 62 63 66 67
+f 61 62 67 68
+f 60 61 68 69
+f 59 60 69 70
+f 58 59 70 71
+f 57 58 71 72
+f 56 57 72 73
+f 55 56 73 74
+f 54 55 74 75
+f 53 54 75 76
+f 52 53 76 77
+f 51 52 77 78
+f 50 51 78 79
+f 49 50 79 80
+f 80 79 82 81
+f 79 78 83 82
+f 78 77 84 83
+f 77 76 85 84
+f 76 75 86 85
+f 75 74 87 86
+f 74 73 88 87
+f 73 72 89 88
+f 72 71 90 89
+f 71 70 91 90
+f 70 69 92 91
+f 69 68 93 92
+f 68 67 94 93
+f 67 66 95 94
+f 66 65 96 95
+f 95 96 97 98
+f 94 95 98 99
+f 93 94 99 100
+f 92 93 100 101
+f 91 92 101 102
+f 90 91 102 103
+f 89 90 103 104
+f 88 89 104 105
+f 87 88 105 106
+f 86 87 106 107
+f 85 86 107 108
+f 84 85 108 109
+f 83 84 109 110
+f 82 83 110 111
+f 81 82 111 112
+f 112 111 114 113
+f 111 110 115 114
+f 110 109 116 115
+f 109 108 117 116
+f 108 107 118 117
+f 107 106 119 118
+f 106 105 120 119
+f 105 104 121 120
+f 104 103 122 121
+f 103 102 123 122
+f 102 101 124 123
+f 101 100 125 124
+f 100 99 126 125
+f 99 98 127 126
+f 98 97 128 127
+f 127 128 129 130
+f 126 127 130 131
+f 125 126 131 132
+f 124 125 132 133
+f 123 124 133 134
+f 122 123 134 135
+f 121 122 135 136
+f 120 121 136 137
+f 119 120 137 138
+f 118 119 138 139
+f 117 118 139 140
+f 116 117 140 141
+f 115 116 141 142
+f 114 115 142 143
+f 113 114 143 144
+f 144 143 146 145
+f 143 142 147 146
+f 142 141 148 147
+f 141 140 149 148
+f 140 139 150 149
+f 139 138 151 150
+f 138 137 152 151
+f 137 136 153 152
+f 136 135 154 153
+f 135 134 155 154
+f 134 133 156 155
+f 133 132 157 156
+f 132 131 158 157
+f 131 130 159 158
+f 130 129 160 159
+f 159 160 161 162
+f 158 159 162 163
+f 157 158 163 164
+f 156 157 164 165
+f 155 156 165 166
+f 154 155 166 167
+f 153 154 167 168
+f 152 153 168 169
+f 151 152 169 170
+f 150 151 170 171
+f 149 150 171 172
+f 148 149 172 173
+f 147 148 173 174
+f 146 147 174 175
+f 145 146 175 176
+f 176 175 178 177
+f 175 174 179 178
+f 174 173 180 179
+f 173 172 181 180
+f 172 171 182 181
+f 171 170 183 182
+f 170 169 184 183
+f 169 168 185 184
+f 168 167 186 185
+f 167 166 187 186
+f 166 165 188 187
+f 165 164 189 188
+f 164 163 190 189
+f 163 162 191 190
+f 162 161 192 191
+f 191 192 193 194
+f 190 191 194 195
+f 189 190 195 196
+f 188 189 196 197
+f 187 188 197 198
+f 186 187 198 199
+f 185 186 199 200
+f 184 185 200 201
+f 183 184 201 202
+f 182 183 202 203
+f 181 182 203 204
+f 180 181 204 205
+f 179 180 205 206
+f 178 179 206 207
+f 177 178 207 208
+f 208 207 210 209
+f 207 206 211 210
+f 206 205 212 211
+f 205 204 213 212
+f 204 203 214 213
+f 203 202 215 214
+f 202 201 216 215
+f 201 200 217 216
+f 200 199 218 217
+f 199 198 219 218
+f 198 197 220 219
+f 197 196 221 220
+f 196 195 222 221
+f 195 194 223 222
+f 194 193 224 223
+f 223 224 225 226
+f 222 223 226 227
+f 221 222 227 228
+f 220 221 228 229
+f 219 220 229 230
+f 218 219 230 231
+f 217 218 231 232
+f 216 217 232 233
+f 215 216 233 234
+f 214 215 234 235
+f 213 214 235 236
+f 212 213 236 237
+f 211 212 237 238
+f 210 211 238 239
+f 209 210 239 240
+f 240 239 242 241
+f 239 238 243 242
+f 238 237 244 243
+f 237 236 245 244
+f 236 235 246 245
+f 235 234 247 246
+f 234 233 248 247
+f 233 232 249 248
+f 232 231 250 249
+f 231 230 251 250
+f 230 229 252 251
+f 229 228 253 252
+f 228 227 254 253
+f 227 226 255 254
+f 226 225 256 255
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tre...@us...> - 2007-09-28 19:40:07
|
Revision: 458
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=458&view=rev
Author: trevorolio
Date: 2007-09-28 12:40:09 -0700 (Fri, 28 Sep 2007)
Log Message:
-----------
Introducing morphs! Well, some foundations for morphs, anyway.
Added a data data format to save vertex deltas between two obj files, which we will eventually use to interpolate a mesh.
So, someone can tweak a body mesh (e.g. make the nose bigger) and generate a morph file which describes the change.
I still have to make the J3DBodyData read the morphs, arrange them in an ADG, read user prefs for how far to interpolate the morphs, and then apply them to the mesh. And it all needs to be tested and represented in the body editor UI. *whew*
Modified Paths:
--------------
maven/trunk/ogoglio/pom.xml
Modified: maven/trunk/ogoglio/pom.xml
===================================================================
--- maven/trunk/ogoglio/pom.xml 2007-09-28 19:40:06 UTC (rev 457)
+++ maven/trunk/ogoglio/pom.xml 2007-09-28 19:40:09 UTC (rev 458)
@@ -10,9 +10,9 @@
<modules>
<module>../ogoglio-appdev</module>
+ <module>../ogoglio-common</module>
<module>../ogoglio-bodies</module>
<module>../ogoglio-body-editor-applet</module>
- <module>../ogoglio-common</module>
<module>../ogoglio-test-applet</module>
<module>../ogoglio-viewer-applet</module>
<module>../ogoglio-server</module>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tre...@us...> - 2007-09-28 19:39:58
|
Revision: 456
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=456&view=rev
Author: trevorolio
Date: 2007-09-28 12:39:59 -0700 (Fri, 28 Sep 2007)
Log Message:
-----------
Introducing morphs! Well, some foundations for morphs, anyway.
Added a data data format to save vertex deltas between two obj files, which we will eventually use to interpolate a mesh.
So, someone can tweak a body mesh (e.g. make the nose bigger) and generate a morph file which describes the change.
I still have to make the J3DBodyData read the morphs, arrange them in an ADG, read user prefs for how far to interpolate the morphs, and then apply them to the mesh. And it all needs to be tested and represented in the body editor UI. *whew*
Modified Paths:
--------------
maven/trunk/ogoglio-bodies/.classpath
maven/trunk/ogoglio-bodies/pom.xml
Added Paths:
-----------
maven/trunk/ogoglio-bodies/.settings/
maven/trunk/ogoglio-bodies/.settings/org.eclipse.jdt.core.prefs
maven/trunk/ogoglio-bodies/ogoglio-body-tools/
maven/trunk/ogoglio-bodies/ogoglio-body-tools/pom.xml
maven/trunk/ogoglio-bodies/ogoglio-body-tools/src/
maven/trunk/ogoglio-bodies/ogoglio-body-tools/src/main/
maven/trunk/ogoglio-bodies/ogoglio-body-tools/src/main/java/
maven/trunk/ogoglio-bodies/ogoglio-body-tools/src/main/java/com/
maven/trunk/ogoglio-bodies/ogoglio-body-tools/src/main/java/com/ogoglio/
maven/trunk/ogoglio-bodies/ogoglio-body-tools/src/main/java/com/ogoglio/util/
maven/trunk/ogoglio-bodies/ogoglio-body-tools/src/main/java/com/ogoglio/util/body/
maven/trunk/ogoglio-bodies/ogoglio-body-tools/src/main/java/com/ogoglio/util/body/BodyMorphTool.java
maven/trunk/ogoglio-bodies/ogoglio-body-tools/src/main/resources/
maven/trunk/ogoglio-bodies/ogoglio-body-tools/src/test/
maven/trunk/ogoglio-bodies/ogoglio-body-tools/src/test/java/
maven/trunk/ogoglio-bodies/ogoglio-body-tools/src/test/resources/
Property Changed:
----------------
maven/trunk/ogoglio-bodies/
Property changes on: maven/trunk/ogoglio-bodies
___________________________________________________________________
Name: svn:ignore
+ target
Modified: maven/trunk/ogoglio-bodies/.classpath
===================================================================
--- maven/trunk/ogoglio-bodies/.classpath 2007-09-27 21:19:18 UTC (rev 455)
+++ maven/trunk/ogoglio-bodies/.classpath 2007-09-28 19:39:59 UTC (rev 456)
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
+ <classpathentry kind="src" path="ogoglio-body-tools/src/main/java"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
Added: maven/trunk/ogoglio-bodies/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- maven/trunk/ogoglio-bodies/.settings/org.eclipse.jdt.core.prefs (rev 0)
+++ maven/trunk/ogoglio-bodies/.settings/org.eclipse.jdt.core.prefs 2007-09-28 19:39:59 UTC (rev 456)
@@ -0,0 +1,12 @@
+#Fri Sep 28 09:58:33 PDT 2007
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
+org.eclipse.jdt.core.compiler.source=1.3
Property changes on: maven/trunk/ogoglio-bodies/ogoglio-body-tools
___________________________________________________________________
Name: svn:ignore
+ target
Added: maven/trunk/ogoglio-bodies/ogoglio-body-tools/pom.xml
===================================================================
--- maven/trunk/ogoglio-bodies/ogoglio-body-tools/pom.xml (rev 0)
+++ maven/trunk/ogoglio-bodies/ogoglio-body-tools/pom.xml 2007-09-28 19:39:59 UTC (rev 456)
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>com.ogoglio</groupId>
+ <artifactId>ogoglio</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <relativePath>../ogoglio-bodies</relativePath>
+ </parent>
+
+ <artifactId>ogoglio-body-tools</artifactId>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <skip>true</skip><!-- ugh, no unit tests -->
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <dependencies>
+ <dependency>
+ <groupId>com.ogoglio</groupId>
+ <artifactId>ogoglio-common</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+</project>
+
Added: maven/trunk/ogoglio-bodies/ogoglio-body-tools/src/main/java/com/ogoglio/util/body/BodyMorphTool.java
===================================================================
--- maven/trunk/ogoglio-bodies/ogoglio-body-tools/src/main/java/com/ogoglio/util/body/BodyMorphTool.java (rev 0)
+++ maven/trunk/ogoglio-bodies/ogoglio-body-tools/src/main/java/com/ogoglio/util/body/BodyMorphTool.java 2007-09-28 19:39:59 UTC (rev 456)
@@ -0,0 +1,94 @@
+package com.ogoglio.util.body;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.Vector;
+
+import javax.vecmath.Point3f;
+import javax.vecmath.Vector3f;
+
+import com.ogoglio.viewer.j3d.body.MorphDeltaMap;
+import com.ogoglio.viewer.j3d.obj.Obj;
+import com.ogoglio.viewer.j3d.obj.ObjParseException;
+import com.ogoglio.viewer.j3d.obj.ObjParser;
+
+public class BodyMorphTool {
+
+ public static void main(String[] args) {
+ if (args.length < 3) {
+ printHelp();
+ return;
+ }
+ String name = args[0];
+ File baseMeshFile = new File(args[1]);
+ File morphMeshFile = new File(args[2]);
+ if (!baseMeshFile.exists() || !morphMeshFile.exists()) {
+ printHelp();
+ return;
+ }
+ try {
+
+ Obj baseObj = new ObjParser(new FileInputStream(baseMeshFile)).parse();
+ Obj morphObj = new ObjParser(new FileInputStream(morphMeshFile)).parse();
+
+ MorphDeltaMap deltaMap = generateDeltaMap(name, baseObj, morphObj);
+
+ System.out.println(deltaMap);
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (ObjParseException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private static Vector3f createDelta(Point3f point1, Point3f point2) {
+ return new Vector3f(point2.x - point1.x, point2.y - point1.y, point2.x - point1.y);
+ }
+
+ private static final MorphDeltaMap generateDeltaMap(String name, Obj baseObj, Obj morphObj) {
+ Point3f[] basePoints = baseObj.getVertices();
+ Point3f[] morphPoints = morphObj.getVertices();
+
+ MorphDeltaMap map = new MorphDeltaMap(name);
+
+ int lower = -1;
+ int upper = -1;
+ Vector deltas = new Vector();
+ for (int i = 0; i < basePoints.length; i++) {
+ if (!equalish(basePoints[i], morphPoints[i])) {
+ if (lower == -1) {
+ lower = i + 1;
+ upper = -1;
+ deltas.add(createDelta(basePoints[i], morphPoints[i]));
+ } else if ((upper == -1 && lower == i) || upper == i) {
+ upper = i + 1;
+ deltas.add(createDelta(basePoints[i], morphPoints[i]));
+ } else {
+ map.addRange(new MorphDeltaMap.Range(lower, (Vector3f[]) deltas.toArray(new Vector3f[0])));
+ lower = i + 1;
+ deltas.clear();
+ deltas.add(createDelta(basePoints[i], morphPoints[i]));
+ upper = -1;
+ }
+ }
+ }
+
+ if (lower != -1) {
+ map.addRange(new MorphDeltaMap.Range(lower, (Vector3f[]) deltas.toArray(new Vector3f[0])));
+ }
+ return map;
+ }
+
+ private static boolean equalish(Point3f point1, Point3f point2) {
+ return equalish(point1.x, point2.x) && equalish(point1.y, point2.y) && equalish(point1.z, point2.z);
+ }
+
+ private static boolean equalish(float one, float two) {
+ return Math.abs(one - two) < 0.001;
+ }
+
+ public static final void printHelp() {
+ System.out.println("Usage: ... name baseMeshFile morphMeshFile");
+ }
+}
Modified: maven/trunk/ogoglio-bodies/pom.xml
===================================================================
--- maven/trunk/ogoglio-bodies/pom.xml 2007-09-27 21:19:18 UTC (rev 455)
+++ maven/trunk/ogoglio-bodies/pom.xml 2007-09-28 19:39:59 UTC (rev 456)
@@ -16,6 +16,7 @@
<relativePath>../ogoglio</relativePath>
</parent>
<modules>
+ <module>ogoglio-body-tools</module>
<module>ogoglio-body-sim</module>
<module>ogoglio-body-mike</module>
<module>ogoglio-body-andrea</module>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tre...@us...> - 2007-09-27 21:19:13
|
Revision: 455
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=455&view=rev
Author: trevorolio
Date: 2007-09-27 14:19:18 -0700 (Thu, 27 Sep 2007)
Log Message:
-----------
Fixed up the sim body so that it doesn't take much memory.
Added a handy script which uses the multiuser tests to run robots around in a space.
This is handy for testing avatars, but also looks cool.
Modified Paths:
--------------
maven/trunk/ogoglio/src/main/resources/scripts/testApplet.sh
Added Paths:
-----------
maven/trunk/ogoglio/src/main/resources/scripts/testRobots.sh
Modified: maven/trunk/ogoglio/src/main/resources/scripts/testApplet.sh
===================================================================
--- maven/trunk/ogoglio/src/main/resources/scripts/testApplet.sh 2007-09-27 21:19:13 UTC (rev 454)
+++ maven/trunk/ogoglio/src/main/resources/scripts/testApplet.sh 2007-09-27 21:19:18 UTC (rev 455)
@@ -12,4 +12,4 @@
ls -l $INT_TEST/*
-java -Xmx512M -DAppletTestWindow.space=$SPACE -classpath $INT_TEST\:$COMMON\:$LIVEC\:$APPLET com.ogoglio.client.test.AppletTestWindow
+java -Xmx512M -DAppletTestWindow.space=$SPACE -classpath $INT_TEST\:$COMMON\:$LIVEC\:$APPLET com.ogoglio.client.test.AppletTestWindow $2
Added: maven/trunk/ogoglio/src/main/resources/scripts/testRobots.sh
===================================================================
--- maven/trunk/ogoglio/src/main/resources/scripts/testRobots.sh (rev 0)
+++ maven/trunk/ogoglio/src/main/resources/scripts/testRobots.sh 2007-09-27 21:19:18 UTC (rev 455)
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+# assumes you are in the dir with this script
+# assumes everything is built in other directories
+
+COMMON=../../../../../ogoglio-common/target/ogoglio-common-0.0.1-SNAPSHOT.jar
+
+java -Xmx512M -classpath $COMMON com.ogoglio.client.MultiuserTests $1 $2 $3
Property changes on: maven/trunk/ogoglio/src/main/resources/scripts/testRobots.sh
___________________________________________________________________
Name: svn:executable
+ *
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tre...@us...> - 2007-09-27 21:19:09
|
Revision: 454
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=454&view=rev
Author: trevorolio
Date: 2007-09-27 14:19:13 -0700 (Thu, 27 Sep 2007)
Log Message:
-----------
Fixed up the sim body so that it doesn't take much memory.
Added a handy script which uses the multiuser tests to run robots around in a space.
This is handy for testing avatars, but also looks cool.
Modified Paths:
--------------
maven/trunk/ogoglio-server/src/main/resources/populate/space-1
Modified: maven/trunk/ogoglio-server/src/main/resources/populate/space-1
===================================================================
--- maven/trunk/ogoglio-server/src/main/resources/populate/space-1 2007-09-27 21:19:10 UTC (rev 453)
+++ maven/trunk/ogoglio-server/src/main/resources/populate/space-1 2007-09-27 21:19:13 UTC (rev 454)
@@ -8,11 +8,11 @@
<thing templateid="24" rz="0.0" ry="0.0" rx="0.0" rw="1.0"
scalez="1.0" displayname="OfficeChair" scaley="1.0"
templateowner="library" scalex="1.0" possessionid="2" thingid="2"
- z="-5.0" y="0.0" x="-15.0" ownerusername="library" />
+ z="-5.0" y="0.0" x="-16.0" ownerusername="library" />
<thing templateid="18" rz="0.0" ry="0.0" rx="0.0" rw="1.0"
scalez="1.0" displayname="LeCorbusierRecliner" scaley="1.0"
templateowner="library" scalex="1.0" possessionid="3" thingid="3"
- z="-5.0" y="0.0" x="-9.0" ownerusername="library" />
+ z="-5.0" y="0.0" x="-8.2" ownerusername="library" />
<thing templateid="19" rz="0.0" ry="0.0" rx="0.0" rw="1.0"
scalez="1.0" displayname="LeCorbusierSofa" scaley="1.0"
templateowner="library" scalex="1.0" possessionid="4" thingid="4"
@@ -48,5 +48,5 @@
<thing templateid="6" rz="0.0" ry="0.0" rx="0.0" rw="1.0"
scalez="1.0" displayname="CornerSofa" scaley="1.0"
templateowner="library" scalex="1.0" possessionid="12" thingid="12"
- z="-5.0" y="0.0" x="12.0" ownerusername="library" />
+ z="-5.0" y="0.0" x="18.0" ownerusername="library" />
</space>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tre...@us...> - 2007-09-27 21:19:06
|
Revision: 453
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=453&view=rev
Author: trevorolio
Date: 2007-09-27 14:19:10 -0700 (Thu, 27 Sep 2007)
Log Message:
-----------
Fixed up the sim body so that it doesn't take much memory.
Added a handy script which uses the multiuser tests to run robots around in a space.
This is handy for testing avatars, but also looks cool.
Modified Paths:
--------------
maven/trunk/ogoglio-integration-test/src/test/java/com/ogoglio/client/test/AppletTestWindow.java
Modified: maven/trunk/ogoglio-integration-test/src/test/java/com/ogoglio/client/test/AppletTestWindow.java
===================================================================
--- maven/trunk/ogoglio-integration-test/src/test/java/com/ogoglio/client/test/AppletTestWindow.java 2007-09-27 21:19:06 UTC (rev 452)
+++ maven/trunk/ogoglio-integration-test/src/test/java/com/ogoglio/client/test/AppletTestWindow.java 2007-09-27 21:19:10 UTC (rev 453)
@@ -44,7 +44,7 @@
URI serviceURI = null;
- public AppletTestWindow(URI serviceURI, long spaceID, String authCookie, Dimension appDimension, boolean decorated) {
+ public AppletTestWindow(URI serviceURI, long spaceID, String authCookie, Dimension appDimension, boolean fullScreen) {
ArgumentUtils.assertNotNull(appDimension);
this.appDimension = appDimension;
ArgumentUtils.assertNotNull(serviceURI);
@@ -54,7 +54,7 @@
setSize(appDimension);
setLocation(30, 50);
setResizable(false);
- if (!decorated) {
+ if (fullScreen) {
this.setUndecorated(true);
}
HashMap parameters1 = new HashMap();
@@ -122,7 +122,7 @@
applet.start();
}
- public void cleanup(){
+ public void cleanup() {
applet.destroy();
}
@@ -134,18 +134,25 @@
if (fullScreen) {
dim = new Dimension(device.getDisplayMode().getWidth(), device.getDisplayMode().getWidth());
}
- String serviceURI=null;
- String loginCookie=null;
- try {
- PropStorage ps=new PropStorage();
- ps.loadPropertySet(PropStorage.BASIC_PROPS);
- serviceURI = ps.getKeyFromSet(PropStorage.BASIC_PROPS, "ogoglio.baseUrl");
- ps.loadPropertySet(PropStorage.BOOTSTRAP_PROPS);
- WebAPIAuthenticator authenticator = new WebAPIAuthenticator(new WebAPIClientWire(), new WebAPIDescriptor(new URI(serviceURI)), ps.getKeyFromSet(PropStorage.BOOTSTRAP_PROPS, "bootstrapUser"), ps.getKeyFromSet(PropStorage.BOOTSTRAP_PROPS, "bootstrapUserPW"));
- loginCookie = authenticator.getAuthCookie();
- } catch (Exception e) {
- e.printStackTrace();
- System.exit(1);
+ String serviceURI = null;
+
+ PropStorage ps = new PropStorage();
+ ps.loadPropertySet(PropStorage.BASIC_PROPS);
+ serviceURI = ps.getKeyFromSet(PropStorage.BASIC_PROPS, "ogoglio.baseUrl");
+ ps.loadPropertySet(PropStorage.BOOTSTRAP_PROPS);
+
+ String loginCookie = null;
+ if (args.length > 0 && args[0].equals("guest")) {
+ System.out.println("Guesting in");
+ loginCookie = "guest_Test_Client_" + System.currentTimeMillis();
+ } else {
+ try {
+ WebAPIAuthenticator authenticator = new WebAPIAuthenticator(new WebAPIClientWire(), new WebAPIDescriptor(new URI(serviceURI)), ps.getKeyFromSet(PropStorage.BOOTSTRAP_PROPS, "bootstrapUser"), ps.getKeyFromSet(PropStorage.BOOTSTRAP_PROPS, "bootstrapUserPW"));
+ loginCookie = authenticator.getAuthCookie();
+ } catch (Exception e) {
+ e.printStackTrace();
+ System.exit(1);
+ }
}
long spaceID = Long.parseLong(System.getProperty("AppletTestWindow.space"));
@@ -162,5 +169,4 @@
System.exit(1);
}
}
-
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tre...@us...> - 2007-09-27 21:19:04
|
Revision: 452
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=452&view=rev
Author: trevorolio
Date: 2007-09-27 14:19:06 -0700 (Thu, 27 Sep 2007)
Log Message:
-----------
Fixed up the sim body so that it doesn't take much memory.
Added a handy script which uses the multiuser tests to run robots around in a space.
This is handy for testing avatars, but also looks cool.
Modified Paths:
--------------
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/MultiuserTests.java
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/MultiuserTests.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/MultiuserTests.java 2007-09-27 21:19:02 UTC (rev 451)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/MultiuserTests.java 2007-09-27 21:19:06 UTC (rev 452)
@@ -132,10 +132,14 @@
}
user = robot.spaceClient.getSpace().getUser(robot.spaceClient.getUsername());
}
+ Vector3d homePosition = new Vector3d(Math.abs(random.nextInt()) % 10, 0, Math.abs(random.nextInt()) % 10);
+ System.out.println("Home position " + homePosition);
Transform3D userPosition = new Transform3D();
+ userPosition.setTranslation(homePosition);
boolean lastSpun = true;
while(true) {
if(random.nextBoolean() || random.nextBoolean()){
+ userPosition.setTranslation(homePosition);
robot.spaceClient.viewpointMotionStopped(userPosition);
try {
sleep(1000 + Math.abs((random.nextInt() % 5000)));
@@ -143,8 +147,8 @@
break;
}
} else if(lastSpun) {
- userPosition.set(user.getPosition());
userPosition.rotY(random.nextFloat() % (2 * Math.PI));
+ userPosition.setTranslation(homePosition);
SplinePath path = J3DSplinePath.getSplinePath(userPosition, 1, 0, 0, 2);
robot.spaceClient.viewpointMotionChanged(path);
try {
@@ -154,7 +158,8 @@
}
lastSpun = false;
} else {
- SplinePath path = J3DSplinePath.getSplinePath(user.getPosition(), 0, 1, 0, 2);
+ userPosition.setTranslation(homePosition);
+ SplinePath path = J3DSplinePath.getSplinePath(userPosition, 0, 1, 0, 2);
robot.spaceClient.viewpointMotionChanged(path);
try {
sleep(1000 + Math.abs((random.nextInt() % 6000)));
@@ -169,7 +174,7 @@
public static void main(String[] args) {
if (args.length != 3) {
- Log.error("usage: ... spaceURI serviceURI numRobots");
+ Log.error("usage: ... spaceID serviceURI numRobots");
return;
}
MultiuserTests tests = null;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tre...@us...> - 2007-09-27 21:18:59
|
Revision: 451
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=451&view=rev
Author: trevorolio
Date: 2007-09-27 14:19:02 -0700 (Thu, 27 Sep 2007)
Log Message:
-----------
Fixed up the sim body so that it doesn't take much memory.
Added a handy script which uses the multiuser tests to run robots around in a space.
This is handy for testing avatars, but also looks cool.
Modified Paths:
--------------
maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/main/resources/animation/default.bvh
maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/main/resources/animation/walk.bvh
maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/main/resources/geometry/body.obj
maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/main/resources/geometry/body.smap
maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/main/resources/texture/body.jpg
Added Paths:
-----------
maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/main/resources/sourceArt/sim.blend
Property Changed:
----------------
maven/trunk/ogoglio-bodies/ogoglio-body-andrea/
maven/trunk/ogoglio-bodies/ogoglio-body-mike/
maven/trunk/ogoglio-bodies/ogoglio-body-sim/
Property changes on: maven/trunk/ogoglio-bodies/ogoglio-body-andrea
___________________________________________________________________
Name: svn:ignore
+ target
Property changes on: maven/trunk/ogoglio-bodies/ogoglio-body-mike
___________________________________________________________________
Name: svn:ignore
+ target
Property changes on: maven/trunk/ogoglio-bodies/ogoglio-body-sim
___________________________________________________________________
Name: svn:ignore
+ target
Modified: maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/main/resources/animation/default.bvh
===================================================================
--- maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/main/resources/animation/default.bvh 2007-09-27 18:06:58 UTC (rev 450)
+++ maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/main/resources/animation/default.bvh 2007-09-27 21:19:02 UTC (rev 451)
@@ -126,5 +126,5 @@
}
MOTION
Frames: 1
-Frame Time: 0.100000
+Frame Time: 10.0
0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -70.106262 9.940849 15.968393 -22.598761 -9.338127 0.108572 5.976201 -0.065959 0.172336 -2.021920 5.690310 -0.063351 70.064301 -9.978495 15.953232 22.592319 9.326028 0.129803 -5.956460 0.082736 0.181256 -7.544341 3.962285 0.126597 15.837342 -3.291070 -0.872131 -8.576491 1.070768 -0.847483 -7.531943 -4.331991 0.100592 15.780110 3.271439 0.612621 -8.616927 -1.581442 0.945399
Modified: maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/main/resources/animation/walk.bvh
===================================================================
--- maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/main/resources/animation/walk.bvh 2007-09-27 18:06:58 UTC (rev 450)
+++ maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/main/resources/animation/walk.bvh 2007-09-27 21:19:02 UTC (rev 451)
@@ -126,5 +126,5 @@
}
MOTION
Frames: 1
-Frame Time: 0.066667
+Frame Time: 10.0
-0.025751 40.586620 2.968130 5.556919 0.000000 2.015870 -0.679723 1.014860 -1.052490 2.752000 0.638850 -7.299640 0.000000 0.000000 0.000000 0.407942 0.012259 -0.125621 5.754920 -1.457380 3.998490 0.000000 0.000000 0.000000 -9.241052 -2.655120 -8.994716 -71.740334 -11.761992 4.746030 -31.604246 0.001165 34.045898 -13.209469 -13.282380 0.089536 -5.574724 0.471018 -0.003654 73.497147 -23.637768 -7.243340 8.720032 0.116349 30.201418 6.934624 -2.351367 0.271411 19.708641 0.263537 -1.303549 16.376945 -5.436259 -0.534536 4.496281 1.015851 1.747118 -34.913624 -1.222353 -5.287092 -2.923005 1.339154 -2.612716 22.631870 -2.693362 0.441635
Modified: maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/main/resources/geometry/body.obj
===================================================================
--- maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/main/resources/geometry/body.obj 2007-09-27 18:06:58 UTC (rev 450)
+++ maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/main/resources/geometry/body.obj 2007-09-27 21:19:02 UTC (rev 451)
@@ -1,8927 +1,574 @@
-# Blender3D v244 OBJ File: MikeRigged.blend
-# www.blender3d.org
-o Mike
-v 0.311142 0.406033 -0.108595
-v 0.303021 0.345360 -0.125835
-v 0.227706 0.341257 -0.128513
-v 0.229273 0.409040 -0.107120
-v 0.294899 0.278192 -0.102832
+o Sim
+v 0.314258 0.435171 -0.086355
+v 0.000028 0.377973 0.023822
+v 0.087635 0.662316 0.089221
+v 0.071622 0.616218 -0.120949
+v 0.101879 0.440494 -0.091470
+v 0.176178 0.321699 0.039255
v 0.241228 0.253397 -0.120454
-v 0.226139 0.256499 -0.012092
-v 0.294899 0.270102 -0.036757
-v 0.303021 0.323897 0.025088
-v 0.227706 0.318876 0.024398
-v 0.311142 0.395855 0.014442
-v 0.229273 0.394438 0.000494
-v 0.314506 0.428960 -0.051745
-v 0.229922 0.422291 -0.054673
-v 0.032408 0.438193 0.019218
-v 0.000028 0.433348 0.028486
-v 0.000028 0.377973 0.023821
-v 0.049007 0.387226 0.014744
-v 0.031882 0.438606 0.041908
-v 0.000028 0.431574 0.061884
-v 0.021992 0.449185 0.072133
-v 0.000028 0.444615 0.081399
-v 0.016030 0.469902 0.076850
-v 0.000028 0.469598 0.081529
-v 0.012422 0.490974 0.083452
-v 0.000028 0.490011 0.087355
-v 0.009128 0.497154 0.079358
-v 0.000028 0.497166 0.081634
-v 0.012094 0.502695 0.087565
-v 0.000028 0.502377 0.089515
-v 0.020607 0.523745 0.080789
-v 0.000028 0.519527 0.090166
-v 0.014865 0.531088 0.096715
-v 0.000028 0.524749 0.102985
-v 0.013691 0.540315 0.093596
-v 0.000028 0.535999 0.105575
-v 0.006934 0.559235 0.089070
-v 0.000028 0.560304 0.094733
-v 0.014916 0.623913 0.087199
-v 0.000028 0.623913 0.087199
-v 0.000028 0.590254 0.090531
-v 0.010582 0.585735 0.084708
-v 0.030071 0.689433 0.033411
-v 0.000028 0.693038 0.037553
-v 0.000028 0.659557 0.075624
-v 0.022023 0.657368 0.073036
-v 0.030071 0.688165 -0.058547
-v 0.000028 0.691187 -0.060564
-v 0.038780 0.619464 -0.126007
-v 0.000028 0.620930 -0.128730
-v 0.038089 0.555866 -0.119522
-v 0.000028 0.555803 -0.122571
-v 0.030779 0.472175 -0.081673
-v 0.000028 0.472172 -0.082136
-v 0.000028 0.508952 -0.096572
-v 0.037557 0.507394 -0.092203
-v 0.032240 0.437063 -0.080951
-v 0.000028 0.433697 -0.084518
-v 0.009305 0.573542 0.082195
-v 0.000028 0.573009 0.087655
-v 0.026811 0.584435 0.071542
-v 0.040521 0.582635 0.067057
-v 0.049895 0.596475 0.070593
-v 0.028011 0.598325 0.081865
-v 0.047951 0.574371 0.059396
-v 0.057153 0.571919 0.048250
-v 0.039423 0.569399 0.067127
-v 0.048187 0.556122 0.062690
-v 0.026867 0.569700 0.072905
-v 0.025897 0.553701 0.072508
-v 0.018504 0.571587 0.076368
-v 0.013366 0.556996 0.078749
-v 0.022323 0.538583 0.079018
-v 0.032507 0.538061 0.069355
-v 0.053149 0.538678 0.045440
-v 0.069197 0.573117 0.032754
-v 0.059235 0.609482 0.058061
-v 0.032174 0.620979 0.079437
-v 0.022262 0.501677 0.080554
-v 0.038303 0.513808 0.066809
-v 0.032862 0.497765 0.070830
-v 0.046530 0.494389 0.061846
-v 0.020710 0.493805 0.077478
-v 0.036277 0.474128 0.069749
-v 0.019214 0.577472 0.076421
-v 0.010349 0.585259 0.084608
-v 0.053937 0.512055 0.044935
-v 0.056515 0.492857 0.041268
-v 0.046152 0.462052 0.048870
-v 0.049014 0.649793 0.053833
-v 0.073436 0.624977 0.026105
-v 0.079557 0.581437 0.011099
-v 0.067467 0.540893 0.013789
-v 0.064933 0.512990 0.011857
-v 0.063412 0.489249 0.013024
-v 0.052911 0.454943 0.012510
-v 0.053886 0.453386 0.001558
-v 0.077742 0.410787 -0.022260
-v 0.083865 0.431962 -0.044335
-v 0.060751 0.471467 -0.025079
-v 0.059151 0.675975 0.025682
-v 0.058545 0.673868 -0.054165
-v 0.070151 0.610003 -0.105443
-v 0.063792 0.554302 -0.100252
-v 0.058724 0.508456 -0.075485
-v 0.058092 0.473761 -0.057461
-v 0.066169 0.433346 -0.059552
-v 0.081789 0.634172 -0.004684
-v 0.082519 0.635104 -0.051578
-v 0.087981 0.600291 -0.078550
-v 0.078026 0.555455 -0.070254
-v 0.069087 0.512555 -0.043755
-v 0.071182 0.516580 -0.012704
-v 0.075481 0.546017 -0.017103
-v 0.091662 0.553537 -0.029029
-v 0.092180 0.571775 -0.025134
-v 0.077038 0.546506 -0.004031
-v 0.069544 0.520973 -0.005878
-v 0.084231 0.524297 -0.014313
-v 0.076922 0.552023 -0.031426
-v 0.092997 0.553324 -0.037942
-v 0.081448 0.517100 -0.018164
-v 0.085183 0.571371 -0.036702
-v 0.094337 0.576197 -0.039252
-v 0.087750 0.581460 -0.022004
-v 0.086741 0.578605 -0.014305
-v 0.094337 0.587110 -0.022076
-v 0.087812 0.602441 -0.015110
-v 0.000028 0.306033 0.078103
-v 0.098413 0.315753 0.058105
-v 0.000028 0.390553 -0.124096
-v 0.066103 0.392548 -0.118642
-v 0.127275 0.405948 -0.001655
-v 0.133119 0.432021 -0.049028
-v 0.105463 0.420778 -0.094615
-v 0.176177 0.321700 0.039256
-v 0.182500 0.403268 -0.006660
-v 0.183263 0.429829 -0.056155
-v 0.167158 0.411076 -0.096562
-v 0.156244 0.357656 -0.125999
-v 0.071801 0.287852 -0.142860
-v 0.000028 0.288407 -0.148833
-v 0.161383 0.280583 -0.135349
-v 0.000028 0.234817 0.101598
-v 0.088484 0.240522 0.093669
-v 0.183165 0.247821 0.074628
-v 0.219529 0.164758 0.009079
-v 0.220210 0.161960 -0.104152
-v 0.075033 0.180716 -0.154695
-v 0.000028 0.181746 -0.161272
-v 0.162609 0.175029 -0.143446
-v 0.000028 0.122600 0.129090
-v 0.081107 0.138150 0.122447
-v 0.169559 0.175308 0.080912
-v 0.392215 0.398575 -0.103312
-v 0.389599 0.341860 -0.118799
-v 0.363127 0.295690 -0.098197
-v 0.363926 0.288459 -0.038797
-v 0.371429 0.322571 -0.003214
-v 0.393038 0.393851 0.012893
-v 0.393035 0.421282 -0.052218
-v 0.480329 0.382575 -0.108943
-v 0.477818 0.339690 -0.116291
-v 0.476964 0.281307 -0.096437
-v 0.477731 0.274366 -0.039413
-v 0.479842 0.321220 0.003687
-v 0.481119 0.375678 -0.002511
-v 0.481116 0.403009 -0.052303
-v 0.534529 0.383467 -0.103144
-v 0.531846 0.339802 -0.113081
-v 0.530933 0.277408 -0.092400
-v 0.531753 0.279534 -0.038301
-v 0.531875 0.319938 -0.008492
-v 0.535374 0.377030 -0.007050
-v 0.535371 0.407429 -0.052026
-v 0.614205 0.370882 -0.094631
-v 0.611815 0.330580 -0.103040
-v 0.611002 0.272891 -0.089630
-v 0.611732 0.275147 -0.040212
-v 0.613742 0.312186 -0.013477
-v 0.614958 0.366006 -0.012141
-v 0.614955 0.393044 -0.052460
-v 0.697684 0.349483 -0.085306
-v 0.696158 0.323875 -0.094952
-v 0.695639 0.289056 -0.082154
-v 0.696105 0.284930 -0.045352
-v 0.697388 0.306451 -0.017489
-v 0.698164 0.345371 -0.021510
-v 0.698162 0.361660 -0.053638
-v 0.754698 0.333399 -0.077816
-v 0.753286 0.320252 -0.096420
-v 0.752805 0.296102 -0.081030
-v 0.753237 0.292513 -0.048656
-v 0.754424 0.311242 -0.024676
-v 0.755142 0.332518 -0.031850
-v 0.755141 0.337772 -0.056064
-v 0.807592 0.316963 -0.102882
-v 0.806886 0.309287 -0.104776
-v 0.806406 0.294584 -0.088101
-v 0.806837 0.303095 -0.044997
-v 0.790644 0.296553 -0.014002
-v 0.790965 0.316036 -0.012315
-v 0.791362 0.326429 -0.019325
-v 0.809505 0.337968 -0.055003
-v 0.808922 0.330058 -0.094521
-v 0.856666 0.324398 -0.107946
-v 0.856203 0.309974 -0.111118
-v 0.855723 0.301462 -0.090840
-v 0.839287 0.310210 -0.066552
-v 0.840293 0.307497 -0.051713
-v 0.818320 0.322653 -0.003366
-v 0.817355 0.311672 0.007191
-v 0.857701 0.307526 0.022552
-v 0.858060 0.320750 0.012845
-v 0.825749 0.327720 -0.017101
-v 0.822955 0.332172 -0.031065
-v 0.842806 0.337434 -0.069897
-v 0.857983 0.334552 -0.084306
-v 0.857616 0.332506 -0.094534
-v 0.878465 0.326286 -0.111195
-v 0.878262 0.310207 -0.113301
-v 0.877985 0.302192 -0.094581
-v 0.878107 0.307071 -0.081601
-v 0.855289 0.302989 -0.078731
-v 0.857342 0.294860 -0.010075
-v 0.856331 0.302742 -0.020943
-v 0.883379 0.306162 -0.026117
-v 0.879604 0.304083 -0.010124
-v 0.858060 0.328932 -0.015010
-v 0.859335 0.310650 -0.011660
-v 0.879896 0.317261 -0.006545
-v 0.884695 0.328932 -0.015010
-v 0.880023 0.335110 -0.081512
-v 0.885720 0.337257 -0.070783
-v 0.878872 0.316581 -0.087636
-v 0.883185 0.309870 -0.068091
-v 0.884684 0.317452 -0.063753
-v 0.883892 0.311136 -0.054673
-v 0.883766 0.316540 -0.032873
-v 0.882798 0.309195 -0.040030
-v 0.879877 0.329057 -0.101777
-v 0.885809 0.338866 -0.056774
-v 0.884694 0.340475 -0.042764
-v 0.884694 0.335037 -0.025919
-v 0.821182 0.289975 -0.011262
-v 0.857342 0.296060 0.017453
-v 0.817044 0.301665 0.001516
-v 0.911570 0.302867 -0.001241
-v 0.912187 0.313236 0.003461
-v 0.921627 0.301808 0.011660
-v 0.911065 0.291154 0.005491
-v 0.911065 0.291427 0.018073
-v 0.906535 0.317860 -0.113865
-v 0.906365 0.303624 -0.112733
-v 0.908014 0.322962 -0.102199
-v 0.906953 0.311825 -0.092512
-v 0.906088 0.299519 -0.099606
-v 0.941775 0.303009 -0.101606
-v 0.948146 0.291392 -0.105249
-v 0.939086 0.299501 -0.112069
-v 0.965350 0.305935 -0.071314
-v 0.972148 0.298701 -0.074351
-v 0.965218 0.305535 -0.078756
-v 0.841634 0.340336 -0.055388
-v 0.841149 0.335478 -0.037826
-v 0.855977 0.332205 -0.026418
-v 0.966390 0.309162 -0.055292
-v 0.974673 0.299676 -0.047939
-v 0.971513 0.296787 -0.057628
-v 0.964451 0.302563 -0.012991
-v 0.972537 0.294499 -0.017808
-v 0.964126 0.301372 -0.023422
-v 0.823797 0.295120 -0.027878
-v 0.845438 0.304521 -0.030178
-v 0.859012 0.318845 -0.005538
-v 0.894490 0.305101 0.030385
-v 0.895051 0.318576 0.021116
-v 0.885814 0.293930 0.022748
-v 0.885814 0.289052 0.007662
-v 0.886320 0.302423 -0.002559
-v 0.912689 0.306951 -0.066372
-v 0.913581 0.317452 -0.063753
-v 0.912581 0.306612 -0.081599
-v 0.913442 0.316905 -0.084002
-v 0.914497 0.329638 -0.081483
-v 0.914617 0.329435 -0.070742
-v 0.912890 0.309725 -0.039758
-v 0.913712 0.324143 -0.036580
-v 0.912790 0.308982 -0.052521
-v 0.913653 0.318456 -0.059502
-v 0.914706 0.332728 -0.056741
-v 0.914794 0.333791 -0.042728
-v 0.914101 0.307026 -0.010625
-v 0.914373 0.317271 -0.007286
-v 0.913522 0.303222 -0.023223
-v 0.914049 0.316792 -0.026910
-v 0.914768 0.327140 -0.024733
-v 0.914769 0.327838 -0.012102
-v 0.886936 0.318403 0.003433
-v 0.912187 0.310895 0.015093
-v 0.911626 0.301338 0.023150
-v 0.929923 0.302823 -0.092941
-v 0.932783 0.313122 -0.102193
-v 0.926876 0.290615 -0.099559
-v 0.927876 0.294607 -0.112685
-v 0.930554 0.308568 -0.113339
-v 0.943794 0.299756 -0.068410
-v 0.946499 0.308737 -0.063707
-v 0.943642 0.300252 -0.081565
-v 0.946286 0.308221 -0.083956
-v 0.949541 0.315907 -0.080187
-v 0.949614 0.316457 -0.070672
-v 0.948709 0.304082 -0.039728
-v 0.952027 0.315692 -0.036535
-v 0.948492 0.302545 -0.052486
-v 0.950999 0.310100 -0.059457
-v 0.954520 0.318716 -0.056666
-v 0.954779 0.319748 -0.042654
-v 0.942940 0.298888 -0.010096
-v 0.945144 0.308805 -0.006500
-v 0.941910 0.297813 -0.023194
-v 0.944731 0.308346 -0.027607
-v 0.950815 0.313296 -0.025232
-v 0.950934 0.314901 -0.011651
+v 0.000115 0.218604 -0.161332
+v 0.369510 0.292979 -0.012779
+v 0.436918 0.402456 0.003411
+v 0.534594 0.372011 -0.115719
+v 0.613464 0.283465 -0.015103
+v 0.619201 0.396380 -0.023770
+v 0.753285 0.320251 -0.096419
+v 0.869846 0.302550 -0.052947
+v 0.856012 0.299746 0.024122
+v 0.974364 0.295818 -0.037274
+v 0.974801 0.290078 -0.010081
+v 0.912869 0.310578 -0.060855
+v 0.909964 0.318969 -0.014226
+v 0.952027 0.315691 -0.036535
v 0.947637 0.294064 -0.093913
-v 0.942769 0.283864 -0.099862
-v 0.944379 0.287197 -0.111653
-v 0.965252 0.291031 -0.069455
-v 0.968652 0.297354 -0.065851
-v 0.965150 0.291297 -0.079823
-v 0.968424 0.296990 -0.081691
-v 0.970543 0.293645 -0.040931
-v 0.973292 0.301255 -0.038216
-v 0.970114 0.292405 -0.051736
-v 0.966767 0.309976 -0.043425
-v 0.964109 0.287824 -0.011341
-v 0.967547 0.295527 -0.008501
-v 0.963276 0.287433 -0.022121
-v 0.967088 0.295062 -0.025569
-v 0.211918 0.060508 0.009634
-v 0.212598 0.057791 -0.088298
-v 0.075033 0.068439 -0.157155
-v 0.000028 0.071188 -0.160683
-v 0.162609 0.066391 -0.134785
-v 0.000028 0.018325 0.125006
-v 0.081107 0.033861 0.115662
-v 0.160689 0.047771 0.063222
-v 0.193886 -0.059312 0.010272
-v 0.194515 -0.061973 -0.077289
-v 0.073739 -0.054174 -0.145085
-v 0.000028 -0.050157 -0.148620
-v 0.154668 -0.059717 -0.122697
-v 0.000028 -0.085337 0.102384
-v 0.079352 -0.078306 0.096437
-v 0.152894 -0.064361 0.063819
-v 0.206643 -0.182710 0.006394
-v 0.207307 -0.185366 -0.080232
-v 0.073087 -0.183652 -0.163583
-v 0.000028 -0.181627 -0.176575
-v 0.158533 -0.187001 -0.140772
-v 0.000028 -0.183768 0.089989
-v 0.079013 -0.186118 0.087508
-v 0.156660 -0.188272 0.060982
-v 0.217632 -0.316931 0.008457
-v 0.218306 -0.319549 -0.070898
-v 0.078152 -0.336320 -0.156648
-v 0.009250 -0.309291 -0.164916
-v 0.164005 -0.323822 -0.126342
-v -0.001653 -0.264408 0.086143
-v 0.084163 -0.327601 0.074255
-v 0.162105 -0.325183 0.058479
-v 0.230176 -0.430637 0.005062
-v 0.230914 -0.433306 -0.066731
-v 0.006620 -0.377167 -0.122505
-v 0.083923 -0.441582 -0.135759
-v 0.030954 -0.438307 -0.119357
-v 0.165040 -0.437718 -0.116889
-v -0.002821 -0.332311 0.033739
-v 0.017958 -0.429087 0.007909
-v 0.090503 -0.441802 0.064600
-v 0.162960 -0.439271 0.050326
-v 0.222837 -0.553256 0.008807
-v 0.232208 -0.553787 -0.054626
-v 0.113148 -0.554776 -0.114688
-v 0.048644 -0.553257 -0.101597
-v 0.182910 -0.554391 -0.102225
-v 0.030896 -0.553254 0.020694
-v 0.101988 -0.553988 0.053602
-v 0.164625 -0.553797 0.048133
-v 0.004458 -0.430298 -0.042374
-v 0.015405 -0.553254 -0.044763
-v 0.002147 -0.380715 -0.043301
-v 0.206606 -0.670152 0.018721
-v 0.214418 -0.670689 -0.045876
-v 0.115159 -0.671683 -0.107040
-v 0.062475 -0.670163 -0.093709
-v 0.173319 -0.671297 -0.094348
-v 0.046989 -0.670148 0.030825
-v 0.105855 -0.670879 0.064337
-v 0.158075 -0.670688 0.058767
-v 0.034073 -0.670154 -0.035833
-v 0.198387 -0.790216 0.018314
-v 0.205576 -0.790744 -0.044596
-v 0.114234 -0.791730 -0.104164
-v 0.065752 -0.790211 -0.091181
-v 0.167755 -0.791346 -0.091803
-v 0.052777 -0.790214 0.030102
-v 0.105672 -0.790949 0.062739
-v 0.153727 -0.790758 0.057315
-v 0.041452 -0.790211 -0.034815
-v 0.183272 -0.909319 0.010603
-v 0.189607 -0.909826 -0.048240
-v 0.109122 -0.910791 -0.103956
-v 0.066403 -0.909277 -0.091813
-v 0.156281 -0.910411 -0.092394
-v 0.059015 -0.909321 0.021629
-v 0.101578 -0.910068 0.052156
-v 0.143921 -0.909875 0.047083
-v 0.044992 -0.909296 -0.039091
-v 0.183272 -1.019136 0.007524
-v 0.189607 -1.019634 -0.049842
-v 0.109122 -1.020592 -0.104159
-v 0.066403 -1.019080 -0.092321
-v 0.156281 -1.020214 -0.092888
-v 0.059015 -1.019139 0.018274
-v 0.101578 -1.019890 0.048035
-v 0.143921 -1.019696 0.043088
-v 0.044992 -1.019106 -0.040923
-v 0.173240 -1.123543 0.008080
-v 0.187740 -1.124102 -0.060565
-v 0.109122 -1.125059 -0.114883
-v 0.066403 -1.123548 -0.103045
-v 0.156281 -1.124681 -0.103611
-v 0.063244 -1.123546 0.018830
-v 0.102600 -1.124298 0.048591
-v 0.142476 -1.124104 0.043644
-v 0.048930 -1.123573 -0.051647
-v 0.176846 -1.187160 0.027773
-v 0.187644 -1.214756 -0.059215
-v 0.109122 -1.213050 -0.114414
-v 0.066403 -1.211538 -0.102576
-v 0.156281 -1.215113 -0.103130
-v 0.101578 -1.161543 0.182298
-v 0.065679 -1.176706 0.152622
-v 0.065679 -1.209567 0.152797
-v 0.101578 -1.215162 0.182584
-v 0.143921 -1.161349 0.177352
-v 0.143921 -1.214968 0.177638
-v 0.172564 -1.176703 0.141872
-v 0.172564 -1.217875 0.142092
-v 0.048930 -1.214235 -0.051164
-v 0.061397 -1.187217 0.028251
-v 0.060495 -1.139723 0.075530
-v 0.101578 -1.129409 0.075410
-v 0.060495 -1.215808 0.088571
-v 0.096161 -1.203909 0.025452
-v 0.101578 -1.223975 0.088549
-v 0.143921 -1.129189 0.075425
-v 0.142476 -1.203690 0.025231
-v 0.143921 -1.223755 0.088564
-v 0.177748 -1.139663 0.075534
-v 0.177748 -1.215747 0.088575
-v 0.152486 -1.224410 -0.061332
-v 0.106474 -1.224701 -0.060935
-v 0.019063 0.497120 0.072960
-v 0.028659 0.575952 0.074675
-v 0.037109 0.575812 0.070753
-v -0.311086 0.406033 -0.108594
-v -0.229217 0.409040 -0.107120
-v -0.227650 0.341256 -0.128513
-v -0.302964 0.345360 -0.125835
-v -0.241171 0.253397 -0.120454
-v -0.294843 0.278192 -0.102832
-v -0.226082 0.256499 -0.012092
-v -0.294843 0.270102 -0.036757
-v -0.227650 0.318876 0.024398
-v -0.302964 0.323897 0.025088
-v -0.229217 0.394438 0.000494
-v -0.311086 0.395855 0.014442
-v -0.229866 0.422291 -0.054673
-v -0.314450 0.428960 -0.051745
-v -0.032352 0.438193 0.019218
-v -0.048950 0.387226 0.014744
-v -0.031826 0.438606 0.041908
-v -0.021936 0.449185 0.072133
-v -0.015974 0.469902 0.076850
-v -0.012366 0.490974 0.083452
-v -0.009071 0.497154 0.079358
-v -0.012038 0.502695 0.087565
-v -0.020551 0.523745 0.080789
-v -0.014808 0.531088 0.096715
-v -0.013634 0.540315 0.093596
-v -0.006878 0.559235 0.089070
-v -0.014860 0.623913 0.087199
-v -0.010526 0.585735 0.084708
-v -0.030015 0.689433 0.033411
-v -0.021967 0.657368 0.073036
-v -0.030015 0.688165 -0.058547
-v -0.038724 0.619464 -0.126007
-v -0.037996 0.553636 -0.118622
-v -0.030722 0.472213 -0.074561
-v -0.037500 0.507394 -0.092203
-v -0.032184 0.437063 -0.080951
-v -0.009249 0.573542 0.082195
-v -0.026755 0.584435 0.071542
-v -0.027954 0.598325 0.081865
-v -0.049838 0.596475 0.070593
-v -0.040465 0.582635 0.067057
-v -0.057096 0.571919 0.048250
-v -0.047895 0.574371 0.059396
-v -0.048131 0.556122 0.062690
-v -0.039367 0.569399 0.067127
-v -0.025841 0.553701 0.072508
-v -0.026810 0.569700 0.072905
-v -0.018448 0.571587 0.076368
-v -0.013310 0.556996 0.078749
-v -0.032451 0.538061 0.069355
-v -0.022267 0.538583 0.079018
-v -0.053092 0.538678 0.045440
-v -0.069141 0.573117 0.032754
-v -0.059178 0.609482 0.058061
-v -0.032118 0.620979 0.079437
-v -0.038246 0.513808 0.066809
-v -0.022205 0.501677 0.080554
-v -0.046474 0.494389 0.061846
-v -0.032806 0.497765 0.070830
-v -0.036220 0.474128 0.069749
-v -0.020654 0.493805 0.077478
-v -0.019157 0.577472 0.076421
-v -0.010293 0.585259 0.084608
-v -0.053881 0.512055 0.044935
-v -0.053000 0.492857 0.041268
-v -0.046095 0.462052 0.048870
-v -0.048957 0.649793 0.053833
-v -0.073380 0.624977 0.026105
-v -0.079500 0.581437 0.011099
-v -0.067411 0.540893 0.013789
-v -0.064877 0.512990 0.011857
-v -0.063356 0.489249 0.013024
-v -0.052855 0.454981 0.019622
-v -0.053830 0.453386 0.001558
-v -0.060694 0.471467 -0.025079
+v 0.081107 0.138149 0.122447
+v 0.187896 -0.061756 0.038550
+v 0.195482 -0.185388 -0.126759
+v 0.010716 -0.082492 0.122383
+v 0.084164 -0.327602 0.074255
+v 0.006621 -0.377168 -0.122506
+v 0.246151 -0.555142 -0.016148
+v 0.071464 -0.555564 -0.117626
+v 0.002152 -0.555399 -0.006326
+v 0.187834 -0.669794 0.077172
+v 0.079656 -0.909891 -0.105587
+v 0.200705 -0.791860 -0.076293
+v 0.031047 -0.790818 0.006125
+v 0.121712 -0.910703 0.060258
+v 0.182960 -1.223735 -0.084917
+v 0.078211 -1.218803 0.177596
+v 0.097761 -1.174801 0.042881
+v -0.311085 0.395853 0.014442
+v -0.313023 0.435772 -0.088031
+v -0.074737 0.672737 -0.112280
+v -0.088587 0.599080 0.027318
v -0.083809 0.431962 -0.044335
-v -0.077685 0.410787 -0.022260
-v -0.059095 0.675975 0.025682
-v -0.058488 0.673868 -0.054165
-v -0.070095 0.610003 -0.105443
-v -0.063575 0.553309 -0.099924
-v -0.058036 0.473761 -0.057461
-v -0.058667 0.508456 -0.075485
-v -0.066112 0.433346 -0.059552
-v -0.081732 0.634172 -0.004684
-v -0.082463 0.635104 -0.051578
-v -0.087924 0.600291 -0.078550
-v -0.076853 0.551430 -0.068695
-v -0.069030 0.512555 -0.043755
-v -0.071126 0.516580 -0.012704
-v -0.075424 0.546017 -0.017103
-v -0.092124 0.571775 -0.025134
-v -0.091605 0.553537 -0.029029
-v -0.076981 0.546506 -0.004031
-v -0.084175 0.524297 -0.014313
-v -0.069487 0.520973 -0.005878
-v -0.081392 0.517100 -0.018164
-v -0.092941 0.553324 -0.037942
-v -0.076866 0.552023 -0.031426
-v -0.094281 0.576197 -0.039252
-v -0.085126 0.571371 -0.036702
-v -0.087694 0.581460 -0.022004
-v -0.094281 0.587110 -0.022076
-v -0.086685 0.578605 -0.014305
-v -0.087755 0.602441 -0.015110
-v -0.098357 0.315753 0.058105
-v -0.066047 0.392548 -0.118642
-v -0.133063 0.432021 -0.049028
-v -0.127218 0.405948 -0.001655
-v -0.105407 0.420778 -0.094615
-v -0.182443 0.403268 -0.006660
-v -0.176121 0.321700 0.039256
-v -0.167102 0.411076 -0.096562
-v -0.183206 0.429829 -0.056155
-v -0.156187 0.357656 -0.125999
-v -0.071745 0.287852 -0.142860
-v -0.161326 0.280583 -0.135349
-v -0.088427 0.240522 0.093669
-v -0.183108 0.247821 0.074628
-v -0.220153 0.161960 -0.104152
-v -0.219473 0.164758 0.009079
-v -0.074976 0.180716 -0.154695
-v -0.162552 0.175029 -0.143446
-v -0.081050 0.138150 0.122447
-v -0.169503 0.175388 0.095807
-v -0.389543 0.341860 -0.118799
-v -0.392158 0.398575 -0.103312
-v -0.363071 0.295690 -0.098196
-v -0.363870 0.288459 -0.038797
-v -0.371373 0.322571 -0.003214
-v -0.392981 0.393851 0.012893
-v -0.392978 0.421282 -0.052218
-v -0.477762 0.339690 -0.116291
-v -0.480272 0.382575 -0.108943
-v -0.476907 0.281307 -0.096437
-v -0.477675 0.274366 -0.039413
-v -0.479785 0.321220 0.003687
-v -0.481063 0.375678 -0.002511
-v -0.481060 0.403009 -0.052303
-v -0.531790 0.339802 -0.113081
-v -0.534473 0.383467 -0.103144
-v -0.530877 0.277408 -0.092400
-v -0.531697 0.279534 -0.038301
-v -0.531819 0.319938 -0.008492
-v -0.535318 0.377030 -0.007050
-v -0.535315 0.407429 -0.052026
-v -0.611758 0.330580 -0.103040
-v -0.614149 0.370882 -0.094631
-v -0.610945 0.272891 -0.089630
-v -0.611676 0.275147 -0.040212
-v -0.613685 0.312186 -0.013477
-v -0.614901 0.366006 -0.012141
-v -0.614899 0.393044 -0.052460
-v -0.696101 0.323875 -0.094952
-v -0.697627 0.349483 -0.085306
-v -0.695582 0.289056 -0.082154
-v -0.696048 0.284930 -0.045352
-v -0.697331 0.306451 -0.017489
-v -0.698108 0.345371 -0.021510
-v -0.698106 0.361660 -0.053638
-v -0.753229 0.320252 -0.096420
-v -0.754641 0.333399 -0.077816
-v -0.752749 0.296102 -0.081030
-v -0.753180 0.292513 -0.048656
-v -0.754367 0.311242 -0.024676
-v -0.755086 0.332518 -0.031850
-v -0.755084 0.337772 -0.056064
-v -0.806830 0.309287 -0.104776
-v -0.807536 0.316963 -0.102882
-v -0.806349 0.294584 -0.088101
-v -0.806781 0.303095 -0.044997
-v -0.790587 0.296553 -0.014002
-v -0.791306 0.326429 -0.019325
-v -0.790909 0.316036 -0.012315
-v -0.809449 0.337968 -0.055003
-v -0.808866 0.330058 -0.094521
-v -0.856147 0.309974 -0.111118
-v -0.856609 0.324398 -0.107946
-v -0.855666 0.301462 -0.090840
-v -0.840237 0.307497 -0.051713
-v -0.839231 0.310210 -0.066552
-v -0.818264 0.322653 -0.003366
-v -0.858004 0.320750 0.012845
-v -0.857645 0.307526 0.022552
-v -0.817298 0.311672 0.007191
-v -0.822899 0.332171 -0.031065
-v -0.825692 0.327720 -0.017101
-v -0.857559 0.332506 -0.094534
-v -0.857926 0.334552 -0.084306
-v -0.842749 0.337434 -0.069897
-v -0.878409 0.326286 -0.111195
-v -0.878205 0.310207 -0.113301
-v -0.855233 0.302989 -0.078731
-v -0.878051 0.307071 -0.081601
-v -0.877928 0.302192 -0.094581
-v -0.857285 0.294860 -0.010075
-v -0.879547 0.304083 -0.010124
-v -0.883323 0.306162 -0.026117
-v -0.856275 0.302742 -0.020943
-v -0.858004 0.328932 -0.015010
-v -0.884639 0.328932 -0.015010
-v -0.879840 0.317261 -0.006545
-v -0.859278 0.310650 -0.011660
-v -0.879967 0.335110 -0.081512
-v -0.885664 0.337257 -0.070783
-v -0.878816 0.316581 -0.087636
-v -0.883129 0.309870 -0.068091
-v -0.883836 0.311136 -0.054673
-v -0.884627 0.317452 -0.063753
-v -0.883710 0.316540 -0.032873
-v -0.882741 0.309194 -0.040030
-v -0.879821 0.329057 -0.101777
-v -0.885752 0.338866 -0.056774
-v -0.884637 0.340475 -0.042764
-v -0.884638 0.335037 -0.025919
-v -0.821125 0.289975 -0.011262
-v -0.816987 0.301665 0.001516
-v -0.857285 0.296060 0.017453
-v -0.911514 0.302867 -0.001241
-v -0.921571 0.301808 0.011660
-v -0.912130 0.313236 0.003461
-v -0.911008 0.291154 0.005491
-v -0.911008 0.291427 0.018073
-v -0.906309 0.303624 -0.112733
-v -0.906479 0.317860 -0.113865
-v -0.907957 0.322962 -0.102199
-v -0.906896 0.311825 -0.092512
-v -0.906031 0.299519 -0.099606
-v -0.941719 0.303009 -0.101606
-v -0.939030 0.299501 -0.112069
-v -0.948090 0.291392 -0.105249
-v -0.965294 0.305935 -0.071314
-v -0.965162 0.305535 -0.078756
-v -0.972091 0.298701 -0.074351
-v -0.841578 0.340336 -0.055388
-v -0.855921 0.332205 -0.026418
-v -0.841092 0.335478 -0.037826
-v -0.966333 0.309162 -0.055292
-v -0.971457 0.296787 -0.057628
-v -0.974617 0.299676 -0.047939
-v -0.964395 0.302563 -0.012991
-v -0.964069 0.301372 -0.023422
-v -0.972481 0.294499 -0.017808
-v -0.823741 0.295120 -0.027878
-v -0.845382 0.304521 -0.030178
-v -0.858955 0.318845 -0.005538
-v -0.894994 0.318576 0.021116
-v -0.894433 0.305101 0.030385
-v -0.885758 0.293930 0.022748
-v -0.885758 0.289052 0.007662
-v -0.886263 0.302423 -0.002559
-v -0.913524 0.317452 -0.063753
-v -0.912633 0.306951 -0.066372
-v -0.912525 0.306612 -0.081599
-v -0.913386 0.316905 -0.084002
-v -0.914441 0.329638 -0.081483
-v -0.914561 0.329435 -0.070742
-v -0.913656 0.324143 -0.036580
-v -0.912834 0.309725 -0.039758
-v -0.912733 0.308982 -0.052521
-v -0.913596 0.318456 -0.059502
-v -0.914649 0.332728 -0.056741
-v -0.914738 0.333791 -0.042728
-v -0.914316 0.317271 -0.007286
-v -0.914044 0.307026 -0.010625
-v -0.913465 0.303222 -0.023223
-v -0.913992 0.316792 -0.026910
-v -0.914711 0.327140 -0.024733
-v -0.914712 0.327838 -0.012102
-v -0.886880 0.318403 0.003433
-v -0.912130 0.310895 0.015093
-v -0.911569 0.301338 0.023150
-v -0.932726 0.313122 -0.102193
-v -0.929867 0.302823 -0.092941
-v -0.926820 0.290615 -0.099559
-v -0.927820 0.294607 -0.112685
-v -0.930497 0.308568 -0.113339
-v -0.946442 0.308737 -0.063707
-v -0.943737 0.299756 -0.068410
-v -0.943586 0.300252 -0.081565
-v -0.946229 0.308221 -0.083956
-v -0.949484 0.315907 -0.080187
-v -0.949557 0.316457 -0.070672
-v -0.951971 0.315692 -0.036535
-v -0.948652 0.304082 -0.039728
-v -0.948436 0.302545 -0.052486
-v -0.950943 0.310100 -0.059457
-v -0.954463 0.318716 -0.056666
-v -0.954722 0.319748 -0.042654
-v -0.945088 0.308805 -0.006500
-v -0.942883 0.298888 -0.010096
-v -0.941854 0.297813 -0.023194
-v -0.944675 0.308346 -0.027607
-v -0.950759 0.313296 -0.025232
-v -0.950878 0.314901 -0.011651
+v -0.081049 0.138149 0.122447
+v -0.393903 0.255654 -0.077518
+v -0.534584 0.368187 -0.119657
+v -0.613407 0.283465 -0.015103
+v -0.618956 0.396400 -0.024789
+v -0.753228 0.320251 -0.096419
+v -0.849432 0.317598 -0.032731
+v -0.909907 0.318969 -0.014226
+v -0.855956 0.299747 0.024122
+v -0.921528 0.322859 -0.108048
v -0.947581 0.294064 -0.093913
-v -0.942713 0.283864 -0.099862
-v -0.944323 0.287197 -0.111653
-v -0.968595 0.297354 -0.065851
-v -0.965195 0.291030 -0.069455
-v -0.965094 0.291297 -0.079823
-v -0.968368 0.296990 -0.081691
-v -0.973236 0.301254 -0.038216
-v -0.970486 0.293645 -0.040931
-v -0.970058 0.292405 -0.051736
-v -0.966710 0.309976 -0.043425
-v -0.967491 0.295527 -0.008501
-v -0.964053 0.287824 -0.011341
-v -0.963219 0.287433 -0.022121
-v -0.967031 0.295062 -0.025569
-v -0.212542 0.057791 -0.088298
-v -0.211862 0.060508 0.009634
-v -0.074976 0.068439 -0.157155
-v -0.162552 0.066391 -0.134785
-v -0.081050 0.033861 0.115662
-v -0.160633 0.047774 0.063700
-v -0.194459 -0.061973 -0.077289
-v -0.193830 -0.059312 0.010272
-v -0.073683 -0.054174 -0.145085
-v -0.154612 -0.059717 -0.122697
-v -0.079296 -0.078306 0.096437
-v -0.152838 -0.064359 0.064297
-v -0.207251 -0.185366 -0.080232
-v -0.206587 -0.182710 0.006394
-v -0.073030 -0.183652 -0.163583
-v -0.158477 -0.187001 -0.140772
-v -0.078957 -0.186118 0.087508
-v -0.156604 -0.188284 0.058716
-v -0.218249 -0.319549 -0.070898
-v -0.217576 -0.316931 0.008457
-v -0.078096 -0.336320 -0.156648
-v -0.163948 -0.323822 -0.126342
-v -0.084106 -0.327601 0.074255
-v -0.162049 -0.325183 0.058479
-v -0.230857 -0.433306 -0.066731
-v -0.230120 -0.430637 0.005062
-v -0.083867 -0.441582 -0.135759
-v -0.164983 -0.437718 -0.116889
-v -0.162904 -0.439271 0.050326
-v -0.090446 -0.441802 0.064600
-v -0.232151 -0.553788 -0.054626
-v -0.222780 -0.553256 0.008807
-v -0.030897 -0.438307 -0.119357
-v -0.048588 -0.553257 -0.101597
-v -0.113091 -0.554776 -0.114688
-v -0.182853 -0.554391 -0.102225
-v -0.101931 -0.553988 0.053602
-v -0.030840 -0.553254 0.020694
-v -0.017902 -0.429087 0.007909
-v -0.164568 -0.553797 0.048133
-v -0.004402 -0.430298 -0.042374
-v -0.015348 -0.553254 -0.044763
-v -0.214362 -0.670689 -0.045876
-v -0.206550 -0.670152 0.018721
-v -0.062418 -0.670163 -0.093709
-v -0.115103 -0.671683 -0.107040
-v -0.173263 -0.671297 -0.094348
-v -0.105799 -0.670879 0.064337
-v -0.046932 -0.670148 0.030825
-v -0.158019 -0.670688 0.058767
-v -0.034017 -0.670154 -0.035833
-v -0.205520 -0.790744 -0.044596
-v -0.198330 -0.790216 0.018314
-v -0.065695 -0.790211 -0.091181
-v -0.114178 -0.791730 -0.104164
-v -0.167699 -0.791346 -0.091803
-v -0.105616 -0.790949 0.062739
-v -0.052721 -0.790214 0.030102
-v -0.153670 -0.790758 0.057315
-v -0.041396 -0.790211 -0.034815
-v -0.189550 -0.909826 -0.048240
-v -0.183215 -0.909319 0.010603
-v -0.066346 -0.909277 -0.091813
-v -0.109066 -0.910791 -0.103956
-v -0.156225 -0.910411 -0.092394
-v -0.101522 -0.910068 0.052156
-v -0.058959 -0.909321 0.021629
-v -0.143864 -0.909875 0.047083
-v -0.044935 -0.909296 -0.039091
-v -0.189550 -1.019634 -0.049842
-v -0.183215 -1.019136 0.007524
-v -0.066346 -1.019080 -0.092321
-v -0.109066 -1.020592 -0.104159
-v -0.156225 -1.020214 -0.092888
-v -0.101522 -1.019890 0.048035
-v -0.058959 -1.019139 0.018274
-v -0.143864 -1.019696 0.043088
-v -0.044935 -1.019106 -0.040923
-v -0.187683 -1.124102 -0.060565
-v -0.173184 -1.123543 0.008080
-v -0.066346 -1.123548 -0.103045
-v -0.109066 -1.125059 -0.114883
-v -0.156225 -1.124681 -0.103611
-v -0.102543 -1.124298 0.048591
-v -0.063187 -1.123546 0.018830
-v -0.142420 -1.124104 0.043644
-v -0.048874 -1.123573 -0.051647
-v -0.187587 -1.214756 -0.059215
-v -0.176789 -1.187160 0.027773
-v -0.066346 -1.211538 -0.102576
-v -0.109066 -1.213050 -0.114414
-v -0.156225 -1.215113 -0.103130
-v -0.101522 -1.161543 0.182298
-v -0.101522 -1.215162 0.182584
-v -0.065622 -1.209567 0.152797
-v -0.065622 -1.176706 0.152622
-v -0.143864 -1.161349 0.177352
-v -0.143864 -1.214969 0.177638
-v -0.172507 -1.176703 0.141872
-v -0.172507 -1.217876 0.142092
-v -0.048874 -1.214235 -0.051164
-v -0.061340 -1.187217 0.028251
-v -0.101522 -1.129409 0.075410
-v -0.060438 -1.139723 0.075530
-v -0.060438 -1.215808 0.088571
-v -0.101522 -1.223975 0.088549
-v -0.096105 -1.203909 0.025452
-v -0.143864 -1.129189 0.075425
-v -0.143864 -1.223755 0.088564
-v -0.142420 -1.203690 0.025231
-v -0.177691 -1.139663 0.075534
-v -0.177691 -1.215747 0.088575
-v -0.152430 -1.224410 -0.061332
-v -0.106418 -1.224701 -0.060935
-v -0.019006 0.497120 0.072960
-v -0.037052 0.575812 0.070753
-v -0.028603 0.575952 0.074675
-vt 0.427454 0.740131 0.0
-vt 0.438597 0.750408 0.0
-vt 0.431466 0.770393 0.0
-vt 0.434880 0.782468 0.0
-vt 0.422384 0.780244 0.0
-vt 0.440667 0.777847 0.0
-vt 0.427454 0.740131 0.0
-vt 0.422736 0.714811 0.0
-vt 0.438597 0.750408 0.0
-vt 0.783757 0.949579 0.0
-vt 0.823691 0.964831 0.0
-vt 0.818269 0.976394 0.0
-vt 0.878816 0.748655 0.0
-vt 0.878222 0.741472 0.0
-vt 0.878126 0.757083 0.0
-vt 0.882168 0.725238 0.0
-vt 0.890343 0.718626 0.0
-vt 0.882718 0.709124 0.0
-vt 0.890534 0.682922 0.0
-vt 0.882319 0.674879 0.0
-vt 0.881867 0.691560 0.0
-vt 0.881394 0.955882 0.0
-vt 0.881506 0.931793 0.0
-vt 0.894276 0.943811 0.0
-vt 0.894856 0.910827 0.0
-vt 0.885900 0.919046 0.0
-vt 0.885968 0.902409 0.0
-vt 0.885108 0.885771 0.0
-vt 0.885109 0.865813 0.0
-vt 0.897563 0.875159 0.0
-vt 0.906060 0.839626 0.0
-vt 0.906313 0.831082 0.0
-vt 0.924478 0.820988 0.0
-vt 0.903836 0.637035 0.0
-vt 0.917699 0.629562 0.0
-vt 0.903836 0.621931 0.0
-vt 0.839646 0.855393 0.0
-vt 0.813124 0.858042 0.0
-vt 0.833916 0.839125 0.0
-vt 0.929134 0.955844 0.0
-vt 0.938925 0.960240 0.0
-vt 0.927060 0.968284 0.0
-vt 0.947316 0.919873 0.0
-vt 0.957924 0.923036 0.0
-vt 0.947215 0.928709 0.0
-vt 0.802353 0.650108 0.0
-vt 0.782094 0.673117 0.0
-vt 0.810244 0.660398 0.0
-vt 0.948118 0.900838 0.0
-vt 0.960360 0.892171 0.0
-vt 0.954752 0.906128 0.0
-vt 0.946623 0.850675 0.0
-vt 0.956761 0.856931 0.0
-vt 0.946372 0.863063 0.0
-vt 0.810244 0.660398 0.0
-vt 0.833979 0.657151 0.0
-vt 0.830762 0.641740 0.0
-vt 0.864567 0.852905 0.0
-vt 0.839646 0.855393 0.0
-vt 0.865300 0.841727 0.0
-vt 0.865300 0.841727 0.0
-vt 0.875924 0.845220 0.0
-vt 0.864567 0.852905 0.0
-vt 0.924478 0.820988 0.0
-vt 0.906313 0.831082 0.0
-vt 0.906313 0.817291 0.0
-vt 0.909799 0.799953 0.0
-vt 0.924478 0.820988 0.0
-vt 0.906313 0.817291 0.0
-vt 0.903836 0.621931 0.0
-vt 0.917699 0.629562 0.0
-vt 0.906760 0.612155 0.0
-vt 0.904229 0.645041 0.0
-vt 0.917699 0.629562 0.0
-vt 0.903836 0.637035 0.0
-vt 0.951206 0.843195 0.0
-vt 0.956761 0.856931 0.0
-vt 0.946623 0.850675 0.0
-vt 0.955457 0.664754 0.0
-vt 0.945063 0.657260 0.0
-vt 0.944415 0.670202 0.0
-vt 0.946372 0.863063 0.0
-vt 0.956761 0.856931 0.0
-vt 0.950851 0.869796 0.0
-vt 0.950675 0.649279 0.0
-vt 0.945063 0.657260 0.0
-vt 0.955457 0.664754 0.0
-vt 0.949639 0.677684 0.0
-vt 0.955457 0.664754 0.0
-vt 0.944415 0.670202 0.0
-vt 0.957344 0.879157 0.0
-vt 0.960360 0.892171 0.0
-vt 0.948409 0.886749 0.0
-vt 0.966841 0.701114 0.0
-vt 0.950063 0.692741 0.0
-vt 0.949730 0.705718 0.0
-vt 0.951948 0.713441 0.0
-vt 0.966841 0.701114 0.0
-vt 0.949730 0.705718 0.0
-vt 0.948409 0.886749 0.0
-vt 0.960360 0.892171 0.0
-vt 0.948118 0.900838 0.0
-vt 0.955139 0.682423 0.0
-vt 0.950063 0.692741 0.0
-vt 0.966841 0.701114 0.0
-vt 0.951326 0.913444 0.0
-vt 0.957924 0.923036 0.0
-vt 0.947316 0.919873 0.0
-vt 0.945951 0.726996 0.0
-vt 0.945872 0.739439 0.0
-vt 0.956964 0.732597 0.0
-vt 0.947215 0.928709 0.0
-vt 0.957924 0.923036 0.0
-vt 0.951638 0.934685 0.0
-vt 0.950176 0.719237 0.0
-vt 0.945951 0.726996 0.0
-vt 0.956964 0.732597 0.0
-vt 0.949773 0.745489 0.0
-vt 0.956964 0.732597 0.0
-vt 0.945872 0.739439 0.0
-vt 0.942606 0.765208 0.0
-vt 0.932261 0.752489 0.0
-vt 0.928477 0.763540 0.0
-vt 0.929728 0.777671 0.0
-vt 0.942606 0.765208 0.0
-vt 0.928477 0.763540 0.0
-vt 0.927060 0.968284 0.0
-vt 0.938925 0.960240 0.0
-vt 0.935532 0.973477 0.0
-vt 0.929134 0.955844 0.0
-vt 0.938045 0.945550 0.0
-vt 0.938925 0.960240 0.0
-vt 0.836919 0.103029 0.0
-vt 0.826685 0.103826 0.0
-vt 0.827790 0.119180 0.0
-vt 0.307877 0.683028 0.0
-vt 0.307168 0.677629 0.0
-vt 0.319912 0.682254 0.0
-vt 0.307883 0.689167 0.0
-vt 0.307877 0.683028 0.0
-vt 0.319912 0.682254 0.0
-vt 0.327851 0.785963 0.0
-vt 0.323067 0.777320 0.0
-vt 0.337820 0.778414 0.0
-vt 0.337820 0.778414 0.0
-vt 0.323067 0.777320 0.0
-vt 0.326919 0.771546 0.0
-vt 0.314084 0.786510 0.0
-vt 0.305938 0.779629 0.0
-vt 0.314835 0.777619 0.0
-vt 0.148340 0.740131 0.0
-vt 0.144327 0.770393 0.0
-vt 0.137197 0.750408 0.0
-vt 0.140914 0.782468 0.0
-vt 0.135127 0.777847 0.0
-vt 0.153410 0.780245 0.0
-vt 0.148340 0.740131 0.0
-vt 0.137197 0.750408 0.0
-vt 0.153058 0.714811 0.0
-vt 0.759791 0.759098 0.0
-vt 0.721608 0.776048 0.0
-vt 0.720556 0.766302 0.0
-vt 0.657632 0.951978 0.0
-vt 0.664515 0.959581 0.0
-vt 0.664429 0.945499 0.0
-vt 0.660869 0.930855 0.0
-vt 0.660373 0.916319 0.0
-vt 0.654731 0.922983 0.0
-vt 0.654592 0.892683 0.0
-vt 0.661141 0.900475 0.0
-vt 0.660733 0.885427 0.0
-vt 0.668332 0.765002 0.0
-vt 0.658480 0.752338 0.0
-vt 0.668227 0.742437 0.0
-vt 0.655366 0.722798 0.0
-vt 0.664047 0.714912 0.0
-vt 0.664111 0.730496 0.0
-vt 0.664853 0.699328 0.0
-vt 0.655758 0.688473 0.0
-vt 0.664852 0.680633 0.0
-vt 0.647439 0.654167 0.0
-vt 0.635457 0.639051 0.0
-vt 0.647076 0.647838 0.0
-vt 0.641323 0.851291 0.0
-vt 0.641323 0.837666 0.0
-vt 0.633918 0.844549 0.0
-vt 0.707438 0.670872 0.0
-vt 0.712805 0.655634 0.0
-vt 0.732281 0.673353 0.0
-vt 0.623613 0.764966 0.0
-vt 0.625556 0.776619 0.0
-vt 0.611958 0.769084 0.0
-vt 0.606581 0.733441 0.0
-vt 0.606677 0.741718 0.0
-vt 0.591634 0.736047 0.0
-vt 0.741548 0.853931 0.0
-vt 0.725749 0.872365 0.0
-vt 0.751142 0.883839 0.0
-vt 0.605830 0.713441 0.0
-vt 0.600230 0.717739 0.0
-vt 0.594149 0.705594 0.0
-vt 0.607231 0.666452 0.0
-vt 0.607466 0.678056 0.0
-vt 0.595964 0.672127 0.0
-vt 0.725749 0.872365 0.0
-vt 0.707240 0.855534 0.0
-vt 0.704339 0.869437 0.0
-vt 0.684094 0.668541 0.0
-vt 0.679017 0.655922 0.0
-vt 0.707438 0.670872 0.0
-vt 0.679017 0.655922 0.0
-vt 0.684094 0.668541 0.0
-vt 0.677279 0.660668 0.0
-vt 0.635457 0.639051 0.0
-vt 0.644990 0.635181 0.0
-vt 0.647076 0.647838 0.0
-vt 0.645395 0.623297 0.0
-vt 0.644990 0.635181 0.0
-vt 0.635457 0.639051 0.0
-vt 0.641323 0.837666 0.0
-vt 0.640930 0.832111 0.0
-vt 0.633918 0.844549 0.0
-vt 0.640969 0.858512 0.0
-vt 0.641323 0.851291 0.0
-vt 0.633918 0.844549 0.0
-vt 0.604994 0.657705 0.0
-vt 0.607231 0.666452 0.0
-vt 0.595964 0.672127 0.0
-vt 0.593921 0.876499 0.0
-vt 0.604719 0.881209 0.0
-vt 0.604134 0.869535 0.0
-vt 0.607466 0.678056 0.0
-vt 0.602342 0.684006 0.0
-vt 0.595964 0.672127 0.0
-vt 0.601724 0.864850 0.0
-vt 0.593921 0.876499 0.0
-vt 0.604134 0.869535 0.0
-vt 0.600872 0.886855 0.0
-vt 0.604719 0.881209 0.0
-vt 0.593921 0.876499 0.0
-vt 0.598673 0.694232 0.0
-vt 0.605558 0.700243 0.0
-vt 0.594149 0.705594 0.0
-vt 0.588119 0.909093 0.0
-vt 0.599924 0.913247 0.0
-vt 0.599624 0.901541 0.0
-vt 0.597378 0.920776 0.0
-vt 0.599924 0.913247 0.0
-vt 0.588119 0.909093 0.0
-vt 0.605558 0.700243 0.0
-vt 0.605830 0.713441 0.0
-vt 0.594149 0.705594 0.0
-vt 0.595348 0.896208 0.0
-vt 0.588119 0.909093 0.0
-vt 0.599624 0.901541 0.0
-vt 0.603925 0.725521 0.0
-vt 0.606581 0.733441 0.0
-vt 0.591634 0.736047 0.0
-vt 0.603333 0.932440 0.0
-vt 0.596542 0.937696 0.0
-vt 0.603404 0.943665 0.0
-vt 0.606677 0.741718 0.0
-vt 0.603547 0.748286 0.0
-vt 0.591634 0.736047 0.0
-vt 0.599384 0.927327 0.0
-vt 0.596542 0.937696 0.0
-vt 0.603333 0.932440 0.0
-vt 0.599935 0.947611 0.0
-vt 0.603404 0.943665 0.0
-vt 0.596542 0.937696 0.0
-vt 0.609456 0.969237 0.0
-vt 0.619096 0.965405 0.0
-vt 0.615683 0.958905 0.0
-vt 0.617967 0.978152 0.0
-vt 0.619096 0.965405 0.0
-vt 0.609456 0.969237 0.0
-vt 0.625556 0.776619 0.0
-vt 0.609526 0.785180 0.0
-vt 0.611958 0.769084 0.0
-vt 0.623613 0.764966 0.0
-vt 0.611958 0.769084 0.0
-vt 0.616937 0.755652 0.0
-vt 0.572927 0.530382 0.0
-vt 0.566156 0.502631 0.0
-vt 0.590713 0.519350 0.0
-vt 0.726568 0.522402 0.0
-vt 0.750036 0.520342 0.0
-vt 0.752120 0.547897 0.0
-vt 0.742486 0.103029 0.0
-vt 0.751615 0.119180 0.0
-vt 0.752720 0.103826 0.0
-vt 0.267917 0.683028 0.0
-vt 0.255882 0.682254 0.0
-vt 0.268625 0.677629 0.0
-vt 0.267911 0.689167 0.0
-vt 0.255882 0.682254 0.0
-vt 0.267917 0.683028 0.0
-vt 0.247942 0.785963 0.0
-vt 0.237974 0.778414 0.0
-vt 0.252726 0.777320 0.0
-vt 0.237974 0.778414 0.0
-vt 0.248875 0.771546 0.0
-vt 0.252726 0.777320 0.0
-vt 0.261710 0.786510 0.0
-vt 0.260959 0.777619 0.0
-vt 0.269856 0.779629 0.0
-vt 0.778178 0.521716 0.0
-vt 0.752120 0.547897 0.0
-vt 0.750036 0.520342 0.0
-vt 0.929621 0.529697 0.0
-vt 0.914835 0.518664 0.0
-vt 0.937282 0.501946 0.0
-vt 0.297068 0.784764 0.0
-vt 0.287897 0.786482 0.0
-vt 0.287897 0.771015 0.0
-vt 0.296877 0.784365 0.0
-vt 0.297068 0.784764 0.0
-vt 0.287897 0.771015 0.0
-vt 0.296186 0.773536 0.0
-vt 0.296877 0.784365 0.0
-vt 0.287897 0.771015 0.0
-vt 0.314084 0.786510 0.0
-vt 0.312323 0.795871 0.0
-vt 0.297068 0.784764 0.0
-vt 0.314084 0.786510 0.0
-vt 0.297068 0.784764 0.0
-vt 0.296877 0.784365 0.0
-vt 0.314084 0.786510 0.0
-vt 0.296877 0.784365 0.0
-vt 0.305938 0.779629 0.0
-vt 0.836011 0.677063 0.0
-vt 0.852831 0.679764 0.0
-vt 0.861297 0.668690 0.0
-vt 0.833979 0.657151 0.0
-vt 0.836011 0.677063 0.0
-vt 0.861297 0.668690 0.0
-vt 0.833979 0.657151 0.0
-vt 0.861297 0.668690 0.0
-vt 0.861774 0.655698 0.0
-vt 0.862960 0.866423 0.0
-vt 0.851523 0.879943 0.0
-vt 0.837491 0.871939 0.0
-vt 0.862960 0.866423 0.0
-vt 0.837491 0.871939 0.0
-vt 0.839646 0.855393 0.0
-vt 0.864567 0.852905 0.0
-vt 0.862960 0.866423 0.0
-vt 0.839646 0.855393 0.0
-vt 0.287897 0.771015 0.0
-vt 0.287897 0.786482 0.0
-vt 0.278725 0.784764 0.0
-vt 0.287897 0.771015 0.0
-vt 0.278725 0.784764 0.0
-vt 0.278917 0.784365 0.0
-vt 0.287897 0.771015 0.0
-vt 0.278917 0.784365 0.0
-vt 0.279608 0.773536 0.0
-vt 0.278725 0.784764 0.0
-vt 0.263470 0.795871 0.0
-vt 0.261710 0.786510 0.0
-vt 0.278917 0.784365 0.0
-vt 0.278725 0.784764 0.0
-vt 0.261710 0.786510 0.0
-vt 0.269856 0.779629 0.0
-vt 0.278917 0.784365 0.0
-vt 0.261710 0.786510 0.0
-vt 0.679696 0.879845 0.0
-vt 0.687333 0.889834 0.0
-vt 0.702505 0.887398 0.0
-vt 0.679696 0.879845 0.0
-vt 0.702505 0.887398 0.0
-vt 0.704339 0.869437 0.0
-vt 0.678988 0.868123 0.0
-vt 0.679696 0.879845 0.0
-vt 0.704339 0.869437 0.0
-vt 0.709457 0.686371 0.0
-vt 0.696312 0.693868 0.0
-vt 0.685599 0.681204 0.0
-vt 0.707438 0.670872 0.0
-vt 0.709457 0.686371 0.0
-vt 0.685599 0.681204 0.0
-vt 0.707438 0.670872 0.0
-vt 0.685599 0.681204 0.0
-vt 0.684094 0.668541 0.0
-vt 0.590713 0.519350 0.0
-vt 0.566156 0.502631 0.0
-vt 0.590768 0.476412 0.0
-vt 0.566156 0.502631 0.0
-vt 0.572503 0.477711 0.0
-vt 0.590768 0.476412 0.0
-vt 0.566156 0.502631 0.0
-vt 0.545293 0.501014 0.0
-vt 0.545219 0.480807 0.0
-vt 0.566156 0.502631 0.0
-vt 0.545219 0.480807 0.0
-vt 0.572503 0.477711 0.0
-vt 0.545293 0.501014 0.0
-vt 0.517265 0.520571 0.0
-vt 0.522656 0.481192 0.0
-vt 0.545293 0.501014 0.0
-vt 0.522656 0.481192 0.0
-vt 0.545219 0.480807 0.0
-vt 0.726568 0.522402 0.0
-vt 0.725240 0.475888 0.0
-vt 0.746380 0.481192 0.0
-vt 0.726568 0.522402 0.0
-vt 0.746380 0.481192 0.0
-vt 0.750036 0.520342 0.0
-vt 0.123527 0.751623 0.0
-vt 0.104611 0.748122 0.0
-vt 0.120903 0.697094 0.0
-vt 0.123527 0.751623 0.0
-vt 0.120903 0.697094 0.0
-vt 0.148932 0.700520 0.0
-vt 0.452266 0.751623 0.0
-vt 0.471660 0.752305 0.0
-vt 0.448833 0.771897 0.0
-vt 0.471660 0.752305 0.0
-vt 0.471989 0.798654 0.0
-vt 0.448833 0.771897 0.0
-vt 0.104611 0.748122 0.0
-vt 0.078802 0.748541 0.0
-vt 0.088723 0.695826 0.0
-vt 0.104611 0.748122 0.0
-vt 0.088723 0.695826 0.0
-vt 0.120903 0.697094 0.0
-vt 0.078802 0.748541 0.0
-vt 0.052534 0.748635 0.0
-vt 0.060344 0.694535 0.0
-vt 0.078802 0.748541 0.0
-vt 0.060344 0.694535 0.0
-vt 0.088723 0.695826 0.0
-vt 0.060344 0.694535 0.0
-vt 0.052534 0.748635 0.0
-vt 0.023883 0.694877 0.0
-vt 0.052534 0.748635 0.0
-vt 0.023883 0.751250 0.0
-vt 0.023883 0.694877 0.0
-vt 0.515450 0.694535 0.0
-vt 0.551911 0.694877 0.0
-vt 0.523452 0.750719 0.0
-vt 0.551911 0.694877 0.0
-vt 0.551911 0.751250 0.0
-vt 0.523452 0.750719 0.0
-vt 0.523452 0.750719 0.0
-vt 0.497037 0.749496 0.0
-vt 0.515450 0.694535 0.0
-vt 0.497037 0.749496 0.0
-vt 0.487071 0.695826 0.0
-vt 0.515450 0.694535 0.0
-vt 0.497037 0.749496 0.0
-vt 0.471660 0.752305 0.0
-vt 0.487071 0.695826 0.0
-vt 0.471660 0.752305 0.0
-vt 0.454891 0.697094 0.0
-vt 0.487071 0.695826 0.0
-vt 0.269856 0.779629 0.0
-vt 0.260959 0.777619 0.0
-vt 0.270487 0.773224 0.0
-vt 0.260959 0.777619 0.0
-vt 0.262033 0.771600 0.0
-vt 0.270487 0.773224 0.0
-vt 0.252726 0.777320 0.0
-vt 0.248875 0.771546 0.0
-vt 0.262033 0.771600 0.0
-vt 0.252726 0.777320 0.0
-vt 0.262033 0.771600 0.0
-vt 0.260959 0.777619 0.0
-vt 0.247942 0.785963 0.0
-vt 0.252726 0.777320 0.0
-vt 0.261710 0.786510 0.0
-vt 0.252726 0.777320 0.0
-vt 0.260959 0.777619 0.0
-vt 0.261710 0.786510 0.0
-vt 0.277678 0.692181 0.0
-vt 0.267911 0.689167 0.0
-vt 0.278594 0.683437 0.0
-vt 0.267911 0.689167 0.0
-vt 0.267917 0.683028 0.0
-vt 0.278594 0.683437 0.0
-vt 0.278594 0.683437 0.0
-vt 0.267917 0.683028 0.0
-vt 0.268625 0.677629 0.0
-vt 0.278594 0.683437 0.0
-vt 0.268625 0.677629 0.0
-vt 0.276945 0.675024 0.0
-vt 0.661379 0.116674 0.0
-vt 0.670983 0.096866 0.0
-vt 0.676276 0.118412 0.0
-vt 0.661379 0.116674 0.0
-vt 0.676276 0.118412 0.0
-vt 0.671160 0.136266 0.0
-vt 0.755213 0.048698 0.0
-vt 0.755213 0.015923 0.0
-vt 0.746876 0.029001 0.0
-vt 0.755213 0.048698 0.0
-vt 0.746876 0.029001 0.0
-vt 0.745367 0.048679 0.0
-vt 0.671160 0.136266 0.0
-vt 0.676276 0.118412 0.0
-vt 0.679109 0.154393 0.0
-vt 0.676276 0.118412 0.0
-vt 0.684917 0.115904 0.0
-vt 0.679109 0.154393 0.0
-vt 0.767538 0.048704 0.0
-vt 0.767538 0.014104 0.0
-vt 0.755213 0.015923 0.0
-vt 0.767538 0.048704 0.0
-vt 0.755213 0.015923 0.0
-vt 0.755213 0.048698 0.0
-vt 0.679109 0.154393 0.0
-vt 0.684917 0.115904 0.0
-vt 0.699975 0.153394 0.0
-vt 0.684917 0.115904 0.0
-vt 0.695664 0.116810 0.0
-vt 0.699975 0.153394 0.0
-vt 0.779496 0.048680 0.0
-vt 0.777987 0.025048 0.0
-vt 0.767538 0.048704 0.0
-vt 0.777987 0.025048 0.0
-vt 0.767538 0.014104 0.0
-vt 0.767538 0.048704 0.0
-vt 0.712940 0.135782 0.0
-vt 0.705350 0.120193 0.0
-vt 0.723465 0.112209 0.0
-vt 0.705350 0.120193 0.0
-vt 0.708887 0.099613 0.0
-vt 0.723465 0.112209 0.0
-vt 0.699975 0.153394 0.0
-vt 0.695664 0.116810 0.0
-vt 0.705350 0.120193 0.0
-vt 0.699975 0.153394 0.0
-vt 0.705350 0.120193 0.0
-vt 0.712940 0.135782 0.0
-vt 0.766113 0.103681 0.0
-vt 0.782862 0.100067 0.0
-vt 0.767240 0.070322 0.0
-vt 0.782862 0.100067 0.0
-vt 0.779234 0.070808 0.0
-vt 0.767240 0.070322 0.0
-vt 0.765342 0.123326 0.0
-vt 0.777776 0.118969 0.0
-vt 0.766113 0.103681 0.0
-vt 0.777776 0.118969 0.0
-vt 0.782862 0.100067 0.0
-vt 0.766113 0.103681 0.0
-vt 0.755633 0.070403 0.0
-vt 0.752720 0.103826 0.0
-vt 0.766113 0.103681 0.0
-vt 0.755633 0.070403 0.0
-vt 0.766113 0.103681 0.0
-vt 0.767240 0.070322 0.0
-vt 0.745629 0.070983 0.0
-vt 0.742486 0.103029 0.0
-vt 0.755633 0.070403 0.0
-vt 0.742486 0.103029 0.0
-vt 0.752720 0.103826 0.0
-vt 0.755633 0.070403 0.0
-vt 0.752720 0.103826 0.0
-vt 0.751615 0.119180 0.0
-vt 0.766113 0.103681 0.0
-vt 0.751615 0.119180 0.0
-vt 0.765342 0.123326 0.0
-vt 0.766113 0.103681 0.0
-vt 0.653733 0.134852 0.0
-vt 0.661379 0.116674 0.0
-vt 0.671160 0.136266 0.0
-vt 0.653733 0.134852 0.0
-vt 0.671160 0.136266 0.0
-vt 0.659993 0.167576 0.0
-vt 0.755633 0.070403 0.0
-vt 0.755213 0.048698 0.0
-vt 0.745367 0.048679 0.0
-vt 0.755633 0.070403 0.0
-vt 0.745367 0.048679 0.0
-vt 0.745629 0.070983 0.0
-vt 0.659993 0.167576 0.0
-vt 0.671160 0.136266 0.0
-vt 0.678167 0.167637 0.0
-vt 0.671160 0.136266 0.0
-vt 0.679109 0.154393 0.0
-vt 0.678167 0.167637 0.0
-vt 0.767240 0.070322 0.0
-vt 0.767538 0.048704 0.0
-vt 0.755633 0.070403 0.0
-vt 0.767538 0.048704 0.0
-vt 0.755213 0.048698 0.0
-vt 0.755633 0.070403 0.0
-vt 0.678167 0.167637 0.0
-vt 0.679109 0.154393 0.0
-vt 0.700571 0.167542 0.0
-vt 0.679109 0.154393 0.0
-vt 0.699975 0.153394 0.0
-vt 0.700571 0.167542 0.0
-vt 0.779234 0.070808 0.0
-vt 0.779496 0.048680 0.0
-vt 0.767240 0.070322 0.0
-vt 0.779496 0.048680 0.0
-vt 0.767538 0.048704 0.0
-vt 0.767240 0.070322 0.0
-vt 0.719413 0.167566 0.0
-vt 0.712940 0.135782 0.0
-vt 0.732342 0.135259 0.0
-vt 0.712940 0.135782 0.0
-vt 0.723465 0.112209 0.0
-vt 0.732342 0.135259 0.0
-vt 0.700571 0.167542 0.0
-vt 0.699975 0.153394 0.0
-vt 0.712940 0.135782 0.0
-vt 0.700571 0.167542 0.0
-vt 0.712940 0.135782 0.0
-vt 0.719413 0.167566 0.0
-vt 0.719413 0.167566 0.0
-vt 0.732342 0.135259 0.0
-vt 0.737341 0.167617 0.0
-vt 0.732342 0.135259 0.0
-vt 0.743832 0.135219 0.0
-vt 0.737341 0.167617 0.0
-vt 0.737341 0.167617 0.0
-vt 0.743832 0.135219 0.0
-vt 0.755973 0.135295 0.0
-vt 0.737341 0.167617 0.0
-vt 0.755973 0.135295 0.0
-vt 0.752744 0.167632 0.0
-vt 0.676276 0.118412 0.0
-vt 0.670983 0.096866 0.0
-vt 0.684421 0.094127 0.0
-vt 0.676276 0.118412 0.0
-vt 0.684421 0.094127 0.0
-vt 0.684917 0.115904 0.0
-vt 0.684917 0.115904 0.0
-vt 0.684421 0.094127 0.0
-vt 0.695664 0.116810 0.0
-vt 0.684421 0.094127 0.0
-vt 0.696656 0.094839 0.0
-vt 0.695664 0.116810 0.0
-vt 0.695664 0.116810 0.0
-vt 0.696656 0.094839 0.0
-vt 0.705350 0.120193 0.0
-vt 0.696656 0.094839 0.0
-vt 0.708887 0.099613 0.0
-vt 0.705350 0.120193 0.0
-vt 0.613991 0.167613 0.0
-vt 0.601127 0.134980 0.0
-vt 0.622075 0.134933 0.0
-vt 0.613991 0.167613 0.0
-vt 0.622075 0.134933 0.0
-vt 0.637683 0.167610 0.0
-vt 0.766622 0.167609 0.0
-vt 0.767713 0.135296 0.0
-vt 0.779367 0.167613 0.0
-vt 0.767713 0.135296 0.0
-vt 0.778718 0.135282 0.0
-vt 0.779367 0.167613 0.0
-vt 0.752744 0.167632 0.0
-vt 0.755973 0.135295 0.0
-vt 0.766622 0.167609 0.0
-vt 0.755973 0.135295 0.0
-vt 0.767713 0.135296 0.0
-vt 0.766622 0.167609 0.0
-vt 0.637683 0.167610 0.0
-vt 0.622075 0.134933 0.0
-vt 0.653733 0.134852 0.0
-vt 0.637683 0.167610 0.0
-vt 0.653733 0.134852 0.0
-vt 0.659993 0.167576 0.0
-vt 0.718996 0.215620 0.0
-vt 0.719413 0.167566 0.0
-vt 0.735133 0.215209 0.0
-vt 0.719413 0.167566 0.0
-vt 0.737341 0.167617 0.0
-vt 0.735133 0.215209 0.0
-vt 0.735133 0.215209 0.0
-vt 0.737341 0.167617 0.0
-vt 0.752089 0.215140 0.0
-vt 0.737341 0.167617 0.0
-vt 0.752744 0.167632 0.0
-vt 0.752089 0.215140 0.0
-vt 0.661319 0.216102 0.0
-vt 0.659993 0.167576 0.0
-vt 0.677743 0.215783 0.0
-vt 0.659993 0.167576 0.0
-vt 0.678167 0.167637 0.0
-vt 0.677743 0.215783 0.0
-vt 0.677743 0.215783 0.0
-vt 0.678167 0.167637 0.0
-vt 0.701327 0.216084 0.0
-vt 0.678167 0.167637 0.0
-vt 0.700571 0.167542 0.0
-vt 0.701327 0.216084 0.0
-vt 0.701327 0.216084 0.0
-vt 0.700571 0.167542 0.0
-vt 0.719413 0.167566 0.0
-vt 0.701327 0.216084 0.0
-vt 0.719413 0.167566 0.0
-vt 0.718996 0.215620 0.0
-vt 0.620177 0.215175 0.0
-vt 0.613991 0.167613 0.0
-vt 0.637683 0.167610 0.0
-vt 0.620177 0.215175 0.0
-vt 0.637683 0.167610 0.0
-vt 0.642203 0.215615 0.0
-vt 0.766521 0.215071 0.0
-vt 0.766622 0.167609 0.0
-vt 0.779367 0.167613 0.0
-vt 0.766521 0.215071 0.0
-vt 0.779367 0.167613 0.0
-vt 0.779893 0.215175 0.0
-vt 0.752089 0.215140 0.0
-vt 0.752744 0.167632 0.0
-vt 0.766521 0.215071 0.0
-vt 0.752744 0.167632 0.0
-vt 0.766622 0.167609 0.0
-vt 0.766521 0.215071 0.0
-vt 0.642203 0.215615 0.0
-vt 0.637683 0.167610 0.0
-vt 0.659993 0.167576 0.0
-vt 0.642203 0.215615 0.0
-vt 0.659993 0.167576 0.0
-vt 0.661319 0.216102 0.0
-vt 0.509019 0.285475 0.0
-vt 0.510404 0.240734 0.0
-vt 0.546297 0.285617 0.0
-vt 0.510404 0.240734 0.0
-vt 0.547618 0.240875 0.0
-vt 0.546297 0.285617 0.0
-vt 0.546297 0.285617 0.0
-vt 0.547618 0.240875 0.0
-vt 0.576619 0.285739 0.0
-vt 0.547618 0.240875 0.0
-vt 0.576943 0.240997 0.0
-vt 0.576619 0.285739 0.0
-vt 0.679751 0.285500 0.0
-vt 0.678342 0.240758 0.0
-vt 0.702615 0.240452 0.0
-vt 0.679751 0.285500 0.0
-vt 0.702615 0.240452 0.0
-vt 0.703390 0.285194 0.0
-vt 0.703390 0.285194 0.0
-vt 0.702615 0.240452 0.0
-vt 0.721890 0.285104 0.0
-vt 0.702615 0.240452 0.0
-vt 0.722139 0.240363 0.0
-vt 0.721890 0.285104 0.0
-vt 0.721890 0.285104 0.0
-vt 0.722139 0.240363 0.0
-vt 0.738895 0.285475 0.0
-vt 0.722139 0.240363 0.0
-vt 0.740281 0.240734 0.0
-vt 0.738895 0.285475 0.0
-vt 0.625180 0.285278 0.0
-vt 0.624653 0.240536 0.0
-vt 0.651537 0.240679 0.0
-vt 0.625180 0.285278 0.0
-vt 0.651537 0.240679 0.0
-vt 0.652523 0.285421 0.0
-vt 0.599396 0.285149 0.0
-vt 0.599410 0.240407 0.0
-vt 0.624653 0.240536 0.0
-vt 0.599396 0.285149 0.0
-vt 0.624653 0.240536 0.0
-vt 0.625180 0.285278 0.0
-vt 0.576619 0.285739 0.0
-vt 0.576943 0.240997 0.0
-vt 0.599396 0.285149 0.0
-vt 0.576943 0.240997 0.0
-vt 0.599410 0.240407 0.0
-vt 0.599396 0.285149 0.0
-vt 0.652523 0.285421 0.0
-vt 0.651537 0.240679 0.0
-vt 0.678342 0.240758 0.0
-vt 0.652523 0.285421 0.0
-vt 0.678342 0.240758 0.0
-vt 0.679751 0.285500 0.0
-vt 0.508235 0.333991 0.0
-vt 0.509019 0.285475 0.0
-vt 0.543548 0.334133 0.0
-vt 0.509019 0.285475 0.0
-vt 0.546297 0.285617 0.0
-vt 0.543548 0.334133 0.0
-vt 0.543548 0.334133 0.0
-vt 0.546297 0.285617 0.0
-vt 0.575977 0.334255 0.0
-vt 0.546297 0.285617 0.0
-vt 0.576619 0.285739 0.0
-vt 0.575977 0.334255 0.0
-vt 0.679508 0.334015 0.0
-vt 0.679751 0.285500 0.0
-vt 0.701550 0.333710 0.0
-vt 0.679751 0.285500 0.0
-vt 0.703390 0.285194 0.0
-vt 0.701550 0.333710 0.0
-vt 0.701550 0.333710 0.0
-vt 0.703390 0.285194 0.0
-vt 0.719834 0.333620 0.0
-vt 0.703390 0.285194 0.0
-vt 0.721890 0.285104 0.0
-vt 0.719834 0.333620 0.0
-vt 0.719834 0.333620 0.0
-vt 0.721890 0.285104 0.0
+v -0.951971 0.315691 -0.036535
+v -0.912813 0.310578 -0.060855
+v -0.974308 0.295818 -0.037274
+v -0.974745 0.290078 -0.010081
+v 0.013053 -0.052684 -0.159427
+v -0.206912 0.165371 -0.134326
+v -0.187884 -0.061786 0.038719
+v -0.195391 -0.185385 -0.126796
+v -0.246095 -0.555142 -0.016148
+v -0.164983 -0.437719 -0.116889
+v -0.104484 -0.394494 0.068089
+v -0.134083 -0.670231 0.073865
+v -0.071408 -0.555564 -0.117626
+v -0.200648 -0.791860 -0.076293
+v -0.002919 -0.555844 -0.002658
+v -0.030991 -0.790818 0.006125
+v -0.121656 -0.910702 0.060258
+v -0.079600 -0.909891 -0.105587
+v -0.182904 -1.223735 -0.084917
+v -0.125330 -1.197753 0.159735
+v -0.097705 -1.174801 0.042881
+vt 0.189682 0.797262 0.0
+vt 0.125262 0.883741 0.0
+vt 0.123911 0.611180 0.0
+vt 0.123911 0.611180 0.0
+vt 0.125262 0.883741 0.0
+vt 0.023880 0.727154 0.0
+vt 0.689015 0.152428 0.0
+vt 0.778720 0.135280 0.0
+vt 0.757788 0.215112 0.0
+vt 0.612600 0.134950 0.0
+vt 0.689015 0.152428 0.0
+vt 0.679638 0.215998 0.0
+vt 0.585580 0.285510 0.0
+vt 0.637282 0.240606 0.0
+vt 0.642560 0.333870 0.0
+vt 0.642560 0.333870 0.0
+vt 0.637282 0.240606 0.0
+vt 0.713440 0.285141 0.0
+vt 0.523551 0.334051 0.0
+vt 0.529520 0.240810 0.0
+vt 0.585580 0.285510 0.0
+vt 0.713440 0.285141 0.0
+vt 0.740280 0.240730 0.0
vt 0.738112 0.333991 0.0
-vt 0.721890 0.285104 0.0
-vt 0.738895 0.285475 0.0
+vt 0.530140 0.430630 0.0
+vt 0.523551 0.334051 0.0
+vt 0.584260 0.430590 0.0
+vt 0.523551 0.334051 0.0
+vt 0.585580 0.285510 0.0
+vt 0.584260 0.430590 0.0
+vt 0.709840 0.382590 0.0
+vt 0.713440 0.285141 0.0
vt 0.738112 0.333991 0.0
-vt 0.628024 0.333794 0.0
-vt 0.625180 0.285278 0.0
-vt 0.652523 0.285421 0.0
-vt 0.628024 0.333794 0.0
-vt 0.652523 0.285421 0.0
-vt 0.655368 0.333937 0.0
-vt 0.601924 0.333665 0.0
-vt 0.599396 0.285149 0.0
-vt 0.625180 0.285278 0.0
-vt 0.601924 0.333665 0.0
-vt 0.625180 0.285278 0.0
-vt 0.628024 0.333794 0.0
-vt 0.575977 0.334255 0.0
-vt 0.576619 0.285739 0.0
-vt 0.601924 0.333665 0.0
-vt 0.576619 0.285739 0.0
-vt 0.599396 0.285149 0.0
-vt 0.601924 0.333665 0.0
-vt 0.655368 0.333937 0.0
-vt 0.652523 0.285421 0.0
-vt 0.679751 0.285500 0.0
-vt 0.655368 0.333937 0.0
-vt 0.679751 0.285500 0.0
-vt 0.679508 0.334015 0.0
-vt 0.509573 0.382914 0.0
-vt 0.508235 0.333991 0.0
-vt 0.543548 0.334133 0.0
-vt 0.509573 0.382914 0.0
-vt 0.543548 0.334133 0.0
-vt 0.543654 0.383056 0.0
-vt 0.543654 0.383056 0.0
-vt 0.543548 0.334133 0.0
-vt 0.575310 0.383178 0.0
-vt 0.543548 0.334133 0.0
-vt 0.575977 0.334255 0.0
-vt 0.575310 0.383178 0.0
-vt 0.678390 0.382939 0.0
-vt 0.679508 0.334015 0.0
-vt 0.700465 0.382633 0.0
-vt 0.679508 0.334015 0.0
-vt 0.701550 0.333710 0.0
-vt 0.700465 0.382633 0.0
-vt 0.700465 0.382633 0.0
-vt 0.701550 0.333710 0.0
-vt 0.719716 0.382544 0.0
-vt 0.701550 0.333710 0.0
-vt 0.719834 0.333620 0.0
-vt 0.719716 0.382544 0.0
-vt 0.719716 0.382544 0.0
-vt 0.719834 0.333620 0.0
+vt 0.709840 0.382590 0.0
vt 0.738112 0.333991 0.0
-vt 0.719716 0.382544 0.0
-vt 0.738112 0.333991 0.0
-vt 0.739450 0.382914 0.0
-vt 0.630071 0.382717 0.0
-vt 0.628024 0.333794 0.0
-vt 0.655368 0.333937 0.0
-vt 0.630071 0.382717 0.0
-vt 0.655368 0.333937 0.0
-vt 0.655515 0.382860 0.0
-vt 0.602306 0.382588 0.0
-vt 0.601924 0.333665 0.0
-vt 0.628024 0.333794 0.0
-vt 0.602306 0.382588 0.0
-vt 0.628024 0.333794 0.0
-vt 0.630071 0.382717 0.0
-vt 0.575310 0.383178 0.0
-vt 0.575977 0.334255 0.0
-vt 0.602306 0.382588 0.0
-vt 0.575977 0.334255 0.0
-vt 0.601924 0.333665 0.0
-vt 0.602306 0.382588 0.0
-vt 0.655515 0.382860 0.0
-vt 0.655368 0.333937 0.0
-vt 0.678390 0.382939 0.0
-vt 0.655368 0.333937 0.0
-vt 0.679508 0.334015 0.0
-vt 0.678390 0.382939 0.0
-vt 0.516437 0.430568 0.0
-vt 0.509573 0.382914 0.0
-vt 0.543654 0.383056 0.0
-vt 0.516437 0.430568 0.0
-vt 0.543654 0.383056 0.0
-vt 0.546654 0.430711 0.0
-vt 0.546654 0.430711 0.0
-vt 0.543654 0.383056 0.0
-vt 0.572872 0.430832 0.0
-vt 0.543654 0.383056 0.0
-vt 0.575310 0.383178 0.0
-vt 0.572872 0.430832 0.0
-vt 0.673445 0.430593 0.0
-vt 0.678390 0.382939 0.0
-vt 0.696582 0.430287 0.0
-vt 0.678390 0.382939 0.0
-vt 0.700465 0.382633 0.0
-vt 0.696582 0.430287 0.0
-vt 0.696582 0.430287 0.0
-vt 0.700465 0.382633 0.0
-vt 0.721560 0.430198 0.0
-vt 0.700465 0.382633 0.0
-vt 0.719716 0.382544 0.0
-vt 0.721560 0.430198 0.0
-vt 0.721560 0.430198 0.0
-vt 0.719716 0.382544 0.0
-vt 0.739450 0.382914 0.0
-vt 0.721560 0.430198 0.0
-vt 0.739450 0.382914 0.0
-vt 0.742545 0.430568 0.0
-vt 0.628723 0.430372 0.0
-vt 0.630071 0.382717 0.0
-vt 0.655515 0.382860 0.0
-vt 0.628723 0.430372 0.0
-vt 0.655515 0.382860 0.0
-vt 0.653698 0.430514 0.0
-vt 0.601261 0.430242 0.0
-vt 0.602306 0.382588 0.0
-vt 0.630071 0.382717 0.0
-vt 0.601261 0.430242 0.0
-vt 0.630071 0.382717 0.0
-vt 0.628723 0.430372 0.0
-vt 0.572872 0.430832 0.0
-vt 0.575310 0.383178 0.0
-vt 0.601261 0.430242 0.0
-vt 0.575310 0.383178 0.0
-vt 0.602306 0.382588 0.0
-vt 0.601261 0.430242 0.0
-vt 0.653698 0.430514 0.0
-vt 0.655515 0.382860 0.0
-vt 0.673445 0.430593 0.0
-vt 0.655515 0.382860 0.0
-vt 0.678390 0.382939 0.0
-vt 0.673445 0.430593 0.0
-vt 0.572503 0.477711 0.0
-vt 0.545219 0.480807 0.0
-vt 0.546654 0.430711 0.0
-vt 0.572503 0.477711 0.0
-vt 0.546654 0.430711 0.0
-vt 0.572872 0.430832 0.0
-vt 0.545219 0.480807 0.0
-vt 0.522656 0.481192 0.0
-vt 0.546654 0.430711 0.0
-vt 0.522656 0.481192 0.0
-vt 0.516437 0.430568 0.0
-vt 0.546654 0.430711 0.0
-vt 0.671815 0.480567 0.0
-vt 0.673445 0.430593 0.0
-vt 0.697658 0.476950 0.0
-vt 0.673445 0.430593 0.0
-vt 0.696582 0.430287 0.0
-vt 0.697658 0.476950 0.0
-vt 0.697658 0.476950 0.0
-vt 0.696582 0.430287 0.0
-vt 0.721560 0.430198 0.0
-vt 0.697658 0.476950 0.0
-vt 0.721560 0.430198 0.0
-vt 0.725240 0.475888 0.0
-vt 0.725240 0.475888 0.0
-vt 0.721560 0.430198 0.0
-vt 0.742545 0.430568 0.0
-vt 0.725240 0.475888 0.0
-vt 0.742545 0.430568 0.0
-vt 0.746380 0.481192 0.0
-vt 0.622847 0.477946 0.0
-vt 0.628723 0.430372 0.0
-vt 0...
[truncated message content] |
|
From: <tre...@us...> - 2007-09-27 18:06:54
|
Revision: 450
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=450&view=rev
Author: trevorolio
Date: 2007-09-27 11:06:58 -0700 (Thu, 27 Sep 2007)
Log Message:
-----------
Halfway through a grand avatar rewhack.
In this half I switch over to using downloadable wadges of avatar data instead of in-jar resources for avatar data.
Removed the GeomtryProvider interface, which is now replaced by TemplateDataProvider and BodyDataProvider interfaces which are used to fill the J3DDataManager with cached versions of all network accessed resources. This allows us to control memory usage, but also (eventually) reduces our memory footprint as we only make copies of data which is avatar specific.
Modified Paths:
--------------
maven/trunk/ogoglio/pom.xml
Modified: maven/trunk/ogoglio/pom.xml
===================================================================
--- maven/trunk/ogoglio/pom.xml 2007-09-27 18:06:53 UTC (rev 449)
+++ maven/trunk/ogoglio/pom.xml 2007-09-27 18:06:58 UTC (rev 450)
@@ -10,6 +10,7 @@
<modules>
<module>../ogoglio-appdev</module>
+ <module>../ogoglio-bodies</module>
<module>../ogoglio-body-editor-applet</module>
<module>../ogoglio-common</module>
<module>../ogoglio-test-applet</module>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tre...@us...> - 2007-09-27 18:06:50
|
Revision: 449
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=449&view=rev
Author: trevorolio
Date: 2007-09-27 11:06:53 -0700 (Thu, 27 Sep 2007)
Log Message:
-----------
Halfway through a grand avatar rewhack.
In this half I switch over to using downloadable wadges of avatar data instead of in-jar resources for avatar data.
Removed the GeomtryProvider interface, which is now replaced by TemplateDataProvider and BodyDataProvider interfaces which are used to fill the J3DDataManager with cached versions of all network accessed resources. This allows us to control memory usage, but also (eventually) reduces our memory footprint as we only make copies of data which is avatar specific.
Modified Paths:
--------------
maven/trunk/ogoglio-body-editor-applet/src/main/java/com/ogoglio/bodyeditor/BodyEditorApplet.java
Modified: maven/trunk/ogoglio-body-editor-applet/src/main/java/com/ogoglio/bodyeditor/BodyEditorApplet.java
===================================================================
--- maven/trunk/ogoglio-body-editor-applet/src/main/java/com/ogoglio/bodyeditor/BodyEditorApplet.java 2007-09-27 18:06:51 UTC (rev 448)
+++ maven/trunk/ogoglio-body-editor-applet/src/main/java/com/ogoglio/bodyeditor/BodyEditorApplet.java 2007-09-27 18:06:53 UTC (rev 449)
@@ -16,25 +16,18 @@
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Color;
-import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.FlowLayout;
-import java.awt.Graphics;
import java.awt.GraphicsConfigTemplate;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
-import java.awt.Image;
import java.awt.Panel;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.net.URISyntaxException;
-import java.util.Vector;
+import java.util.zip.ZipInputStream;
import javax.media.j3d.AmbientLight;
import javax.media.j3d.Background;
@@ -45,12 +38,8 @@
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;
import javax.media.j3d.View;
-import javax.swing.ButtonGroup;
-import javax.swing.ImageIcon;
-import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
-import javax.swing.JRadioButton;
import javax.swing.JSlider;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
@@ -63,41 +52,22 @@
import com.ogoglio.client.WebAPIClientWire;
import com.ogoglio.client.WebAPIDescriptor;
import com.ogoglio.client.model.Body;
+import com.ogoglio.client.model.BodyDataProvider;
import com.ogoglio.client.model.Space;
+import com.ogoglio.client.model.TemplateDataProvider;
import com.ogoglio.client.model.User;
import com.ogoglio.client.model.Space.Context;
-import com.ogoglio.util.BodyConstants;
import com.ogoglio.util.UIConstants;
import com.ogoglio.viewer.j3d.J3DCamera;
import com.ogoglio.viewer.j3d.J3DCanvas;
+import com.ogoglio.viewer.j3d.J3DDataManager;
import com.ogoglio.viewer.j3d.J3DUniverse;
import com.ogoglio.viewer.j3d.J3DUserRenderable;
-import com.ogoglio.viewer.j3d.bvh.Bvh;
-import com.ogoglio.viewer.j3d.bvh.BvhParseException;
-import com.ogoglio.viewer.j3d.bvh.BvhParser;
import com.ogoglio.xml.AccountDocument;
import com.ogoglio.xml.BodyDocument;
public class BodyEditorApplet extends Applet {
- public static final ImageIcon LEFT_ARROW = UIConstants.loadIconFromResource("images/LeftArrow.gif");
-
- public static final ImageIcon LEFT_ARROW_DISABLED = UIConstants.loadIconFromResource("images/LeftArrowDisabled.gif");
-
- public static final ImageIcon RIGHT_ARROW = UIConstants.loadIconFromResource("images/RightArrow.gif");
-
- public static final ImageIcon RIGHT_ARROW_DISABLED = UIConstants.loadIconFromResource("images/RightArrowDisabled.gif");
-
- private RowModel hairRowModel = null;
-
- private RowModel eyesRowModel = null;
-
- private RowModel noseRowModel = null;
-
- private RowModel mouthRowModel = null;
-
- private RowModel faceRowModel = null;
-
private URI serviceURI = null;
private String authCookie = null;
@@ -114,10 +84,12 @@
private SpacelessUser user = null;
- private WebAPIClient webClient;
+ private WebAPIClient webClient = null;
private boolean completedInitialLoad = false;
+ private J3DDataManager dataManager = null;
+
public BodyEditorApplet() {
setBackground(Color.WHITE);
setLayout(new BorderLayout());
@@ -132,49 +104,14 @@
private class SpacelessContext implements Context {
- public InputStream getUserGeometryStream(String username, String name) throws IOException {
- if (user.getBody().isMale()) {
- return UIConstants.getResource(BodyConstants.MALE_AVATAR_PATH);
- } else {
- return UIConstants.getResource(BodyConstants.FEMALE_AVATAR_PATH);
- }
+ public BodyDocument getBodyDocument(String username, long bodyID) throws IOException {
+ return new BodyDocument(bodyID, username, "Body", 1, 1, 1, 1, 1, false, 2, 1);
}
- public InputStream getUserAnimationStream(String username, long animationID) throws IOException {
- return BodyConstants.getUserAnimation((int) animationID);
- }
-
- public InputStream getUserSkinMapStream(String username) throws IOException {
- if (user.getBody().isMale()) {
- return UIConstants.getResource(BodyConstants.MALE_SMAP_PATH);
- } else {
- return UIConstants.getResource(BodyConstants.FEMALE_SMAP_PATH);
- }
- }
-
public InputStream getPageContentStream(long thingID, long pageID) {
return null;
}
- public InputStream getTemplateGeometryStream(String ownerUsername, long templateID, int lodIndex) {
- return null;
- }
-
- public InputStream getTemplateResourceStream(String ownerUsername, long templateID, String name) throws IOException {
- return null;
- }
-
- public InputStream getThingAnimationStream(long thingID, long animationID) throws IOException {
- return null;
- }
-
- public String getThingScript(long thingID) throws IOException {
- return null;
- }
-
- public BodyDocument getBodyDocument(String username, long bodyID) throws IOException {
- return bodyDoc;
- }
}
private class BodyPanel extends Panel {
@@ -213,7 +150,8 @@
public boolean addUserRenderable() {
try {
- renderable = new J3DUserRenderable(user, true, new BvhParser(user, 0).parse());
+ System.err.println("Trevor needs to fix the body editor");
+ renderable = new J3DUserRenderable(user, dataManager.getBodyData("mike"));
userGroup.addChild(renderable);
return true;
} catch (Exception e) {
@@ -264,18 +202,6 @@
private class WestPanel extends Panel {
Dimension dimension = new Dimension(150, 300);
- ScrollingRowPanel hairRow = new ScrollingRowPanel(true, hairRowModel);
-
- ScrollingRowPanel eyesRow = new ScrollingRowPanel(true, eyesRowModel);
-
- ScrollingRowPanel noseRow = new ScrollingRowPanel(true, noseRowModel);
-
- ScrollingRowPanel mouseRow = new ScrollingRowPanel(true, mouthRowModel);
-
- ScrollingRowPanel faceRow = new ScrollingRowPanel(true, faceRowModel);
-
- GenderPanel genderPanel = new GenderPanel();
-
HeightPanel heightPanel = new HeightPanel();
public WestPanel() {
@@ -284,12 +210,6 @@
setLayout(new FlowLayout(FlowLayout.CENTER, 0, 5));
setBackground(Color.WHITE);
- //add(hairRow);
- //add(eyesRow);
- //add(noseRow);
- //add(mouseRow);
- //add(faceRow);
- add(genderPanel);
add(heightPanel);
}
@@ -299,58 +219,6 @@
return new BodyDocument(body.getBodyID(), user.getUsername(), "Body", body.getHair(), body.getEyes(), body.getNose(), body.getMouth(), body.getFace(), body.isMale(), body.getHeight(), body.getGirth());
}
- private void changeGender() {
- Body body = user.getBody();
- body.setMale(westPanel.genderPanel.maleButton.isSelected());
- BodyDocument bodyDoc = bodyToDoc(body);
- bodyPanel.renderable.setMale(body.isMale());
- try {
- webClient.updateBody(bodyDoc);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- private class GenderPanel extends Panel implements ActionListener {
- Dimension dimension = new Dimension(80, 100);
-
- ImageIcon maleIcon = UIConstants.loadIconFromResource("images/MaleIcon32x32.gif");
-
- ImageIcon femaleIcon = UIConstants.loadIconFromResource("images/FemaleIcon32x32.gif");
-
- JRadioButton maleButton = new JRadioButton("male", maleIcon);
-
- JRadioButton femaleButton = new JRadioButton("female", femaleIcon);
-
- public GenderPanel() {
- setPreferredSize(dimension);
- setMinimumSize(dimension);
-
- ButtonGroup group = new ButtonGroup();
-
- group.add(maleButton);
- maleButton.setBackground(Color.WHITE);
- maleButton.setSelected(user.getBody().isMale());
- add(maleButton);
- maleButton.addActionListener(this);
-
- group.add(femaleButton);
- femaleButton.setBackground(Color.WHITE);
- femaleButton.setSelected(!user.getBody().isMale());
- add(femaleButton);
- femaleButton.addActionListener(this);
-
- setBackground(Color.WHITE);
- }
-
- public void actionPerformed(ActionEvent event) {
- if (user.getBody().isMale() == maleButton.isSelected()) {
- return;
- }
- changeGender();
- }
- }
-
private class TexturePanel extends Panel {
Dimension dimension = new Dimension(80, 35);
@@ -364,6 +232,7 @@
private class HeightPanel extends Panel implements ChangeListener {
Dimension dimension = new Dimension(150, 150);
+
JSlider slider = new JSlider(JSlider.VERTICAL, 150, 210, 200);
public HeightPanel() {
@@ -373,15 +242,14 @@
setLayout(new BorderLayout());
setBackground(Color.WHITE);
-
JLabel heightLabel = new JLabel("height:");
heightLabel.setBackground(Color.WHITE);
JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER));
panel.setBackground(Color.WHITE);
panel.add(heightLabel);
add(panel, BorderLayout.NORTH);
-
- int value = (int)(user.getBody().getHeight() * 100);
+
+ int value = (int) (user.getBody().getHeight() * 100);
slider.setValue(value);
slider.addChangeListener(this);
slider.setMajorTickSpacing(20);
@@ -420,279 +288,21 @@
}
}
- private class AnimationPanel extends Panel implements ActionListener {
- Dimension dimension = new Dimension(150, 170);
-
- JButton[] animationButtons = null;
-
- AnimationPanel() {
- setPreferredSize(dimension);
- setMinimumSize(dimension);
- setBackground(Color.WHITE);
- animationButtons = new JButton[BodyConstants.USER_ANIMATION_COMMANDS.length];
- for (int i = 0; i < BodyConstants.USER_ANIMATION_COMMANDS.length; i++) {
- animationButtons[i] = new JButton(BodyConstants.USER_ANIMATION_COMMANDS[i]);
- animationButtons[i].setBackground(Color.WHITE);
- animationButtons[i].addActionListener(this);
- add(animationButtons[i]);
- }
-
- }
-
- public void actionPerformed(ActionEvent event) {
- for (int i = 0; i < animationButtons.length; i++) {
- if (event.getSource() == animationButtons[i]) {
- playAnimation(animationButtons[i].getText());
- break;
- }
- }
- }
- }
-
- private void playAnimation(String command) {
- for (int i = 0; i < BodyConstants.USER_ANIMATION_COMMANDS.length; i++) {
- if (BodyConstants.USER_ANIMATION_COMMANDS[i].equals(command)) {
- try {
- Bvh bvh = new BvhParser(user, i).parse();
- bodyPanel.renderable.playAnimation(bvh, false);
- } catch (BvhParseException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- break;
- }
- }
- }
-
private class EastPanel extends Panel {
Dimension dimension = new Dimension(150, 300);
- ScrollingRowPanel hairRow = new ScrollingRowPanel(false, hairRowModel);
-
- ScrollingRowPanel eyesRow = new ScrollingRowPanel(false, eyesRowModel);
-
- ScrollingRowPanel noseRow = new ScrollingRowPanel(false, noseRowModel);
-
- ScrollingRowPanel mouthRow = new ScrollingRowPanel(false, mouthRowModel);
-
- ScrollingRowPanel faceRow = new ScrollingRowPanel(false, faceRowModel);
-
TexturePanel texturePanel = new TexturePanel();
WidthPanel widthPanel = new WidthPanel();
- AnimationPanel animationPanel = new AnimationPanel();
-
public EastPanel() {
setPreferredSize(dimension);
setMinimumSize(dimension);
setLayout(new FlowLayout(FlowLayout.CENTER, 0, 5));
setBackground(Color.WHITE);
-
- //add(hairRow);
- //add(eyesRow);
- //add(noseRow);
- //add(mouthRow);
- //add(faceRow);
-
- add(animationPanel);
- //add(texturePanel);
- //add(widthPanel);
}
}
- private class ArrowButton extends Panel implements MouseListener {
- Image image = null;
-
- ArrowButtonListener listener = null;
-
- ArrowButton(Image image, ArrowButtonListener listener) {
- this.image = image;
- this.listener = listener;
- this.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
- setPreferredSize(new Dimension(image.getWidth(this), image.getHeight(this)));
- addMouseListener(this);
- }
-
- public void paint(Graphics graphics) {
- graphics.drawImage(image, 0, 0, this);
- }
-
- public void mouseClicked(MouseEvent event) {
- if (listener != null) {
- listener.clicked(this);
- }
- }
-
- public void mouseEntered(MouseEvent arg0) {
- }
-
- public void mouseExited(MouseEvent arg0) {
- }
-
- public void mousePressed(MouseEvent arg0) {
- }
-
- public void mouseReleased(MouseEvent arg0) {
- }
-
- }
-
- private interface ArrowButtonListener {
- public void clicked(ArrowButton button);
- }
-
- private class RowModel {
- int currentIndex = 0;
-
- Image[] icons = null;
-
- Vector listeners = new Vector();
-
- RowModel(int index, Image[] icons) {
- this.currentIndex = index;
- this.icons = icons;
- }
-
- void increment() {
- if (currentIndex >= icons.length - 1) {
- return;
- }
- currentIndex++;
- for (int i = 0; i < listeners.size(); i++) {
- ((RowModelListener) listeners.elementAt(i)).indexChanged(this);
- }
- }
-
- void decrement() {
- if (currentIndex <= 0) {
- return;
- }
- currentIndex--;
- for (int i = 0; i < listeners.size(); i++) {
- ((RowModelListener) listeners.elementAt(i)).indexChanged(this);
- }
- }
- }
-
- private interface RowModelListener {
- public void indexChanged(RowModel model);
- }
-
- private class ScrollingRowPanel extends Panel implements ArrowButtonListener, RowModelListener {
- boolean left = false;
-
- int iconDisplayWidth = 32;
-
- int iconDisplayHeight = 32;
-
- int iconPadding = 12;
-
- Dimension dimension = new Dimension(150, 38);
-
- ArrowButton arrowButton = null;
-
- RowModel model = null;
-
- int numIcons = 0;
-
- int iconYPos = 1;
-
- public ScrollingRowPanel(boolean left, RowModel model) {
- setPreferredSize(dimension);
- setMinimumSize(dimension);
- setBackground(Color.WHITE);
- this.left = left;
- this.model = model;
-
- setLayout(new FlowLayout(left ? FlowLayout.LEFT : FlowLayout.RIGHT, 0, 1));
-
- arrowButton = new ArrowButton(left ? LEFT_ARROW.getImage() : RIGHT_ARROW.getImage(), this);
- add(arrowButton);
- float widthToHeightRatio = model.icons[0].getWidth(null) / (float) model.icons[0].getHeight(null);
- if (model.icons[0].getWidth(null) > model.icons[0].getHeight(null)) {
- iconDisplayHeight = (int) (iconDisplayWidth / widthToHeightRatio);
- } else {
- iconDisplayWidth = (int) (iconDisplayHeight * widthToHeightRatio);
- }
-
- numIcons = (int) ((dimension.width - arrowButton.getPreferredSize().getWidth()) / (iconDisplayWidth + (2 * iconPadding)));
- iconYPos = (dimension.height / 2) - (iconDisplayHeight / 2);
- model.listeners.add(this);
- }
-
- public void paint(Graphics graphics) {
- graphics.setColor(Color.WHITE);
- graphics.fillRect(0, 0, getWidth(), getHeight());
- if (left) {
- paintLeft(graphics);
- } else {
- paintRight(graphics);
- }
- }
-
- void paintLeft(Graphics graphics) {
- graphics.setColor(Color.GRAY);
- graphics.drawRect(0, 0, getWidth() + 1, getHeight() - 1);
- if (getWidth() <= 1) {
- return;
- }
- int numDrawn = 0;
- for (int i = model.currentIndex - 1; i >= 0 && i < model.icons.length && numDrawn <= numIcons; i--) {
- graphics.drawImage(model.icons[i], getWidth() - iconDisplayWidth - (numDrawn * iconDisplayWidth) - (numDrawn * iconPadding), iconYPos, iconDisplayWidth, iconDisplayHeight, this);
- numDrawn++;
- }
- }
-
- void paintRight(Graphics graphics) {
- graphics.setColor(Color.GRAY);
- graphics.drawRect(-1, 0, getWidth(), getHeight() - 1);
- if (getWidth() <= 1) {
- return;
- }
- int numDrawn = 0;
- for (int i = model.currentIndex + 1; i < model.icons.length && numDrawn <= numIcons; i++) {
- graphics.drawImage(model.icons[i], ((i - model.currentIndex - 1) * iconDisplayWidth) + (numDrawn * iconPadding), iconYPos, iconDisplayWidth, iconDisplayHeight, this);
- numDrawn++;
- }
-
- }
-
- public void clicked(ArrowButton button) {
- if (left) {
- model.increment();
- } else {
- model.decrement();
- }
- }
-
- public void indexChanged(RowModel model) {
- repaint();
- if (model == hairRowModel) {
- bodyDoc.setHairIndex(hairRowModel.currentIndex);
- } else if (model == eyesRowModel) {
- bodyDoc.setEyesIndex(eyesRowModel.currentIndex);
- } else if (model == noseRowModel) {
- bodyDoc.setNoseIndex(noseRowModel.currentIndex);
- } else if (model == mouthRowModel) {
- bodyDoc.setMouthIndex(mouthRowModel.currentIndex);
- } else if (model == faceRowModel) {
- bodyDoc.setFaceIndex(faceRowModel.currentIndex);
- } else {
- throw new IllegalStateException("Unknown model: " + model);
- }
- Body body = user.getBody();
- body.set(bodyDoc.getHairIndex(), bodyDoc.getEyesIndex(), bodyDoc.getNoseIndex(), bodyDoc.getMouthIndex(), bodyDoc.getFaceIndex());
- bodyPanel.renderable.repaintSkinTexture();
- try {
- webClient.updateBody(bodyDoc);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
-
public void start() {
authCookie = getParameter("loginCookie");
if (authCookie == null) {
@@ -715,17 +325,10 @@
accountDoc = authenticator.getAccountDocument(true);
bodyDoc = webClient.getBodyDocument(accountDoc.getUsername(), accountDoc.getDefaultBodyID());
+ dataManager = new J3DDataManager(true, new TemplateProvider(), new BodyProvider());
+
user = new SpacelessUser(accountDoc.getUsername());
- hairRowModel = new RowModel(bodyDoc.getEyesIndex(), BodyConstants.EYES);
- eyesRowModel = new RowModel(bodyDoc.getEyesIndex(), BodyConstants.EYES);
- noseRowModel = new RowModel(bodyDoc.getNoseIndex(), BodyConstants.NOSES);
- mouthRowModel = new RowModel(bodyDoc.getMouthIndex(), BodyConstants.MOUTHES);
- if (user.getBody().isMale()) {
- faceRowModel = new RowModel(bodyDoc.getFaceIndex(), BodyConstants.MALE_BASE_SKIN_TEXTURES);
- } else {
- faceRowModel = new RowModel(bodyDoc.getFaceIndex(), BodyConstants.FEMALE_BASE_SKIN_TEXTURES);
- }
add(bodyPanel, BorderLayout.CENTER);
westPanel = new WestPanel();
add(westPanel, BorderLayout.WEST);
@@ -760,6 +363,34 @@
//renderer.stopRenderer();
}
+ private class TemplateProvider implements TemplateDataProvider {
+ public InputStream getTemplateGeometry(String username, long templateID, int lod) {
+ return null;
+ }
+
+ public InputStream getTemplateResource(String username, long templateID, String resourceName) {
+ return null;
+ }
+
+ public String getTemplateScript(String username, long templateID) {
+ return null;
+ }
+ }
+
+ private class BodyProvider implements BodyDataProvider {
+ public ZipInputStream getBodyData(String bodyName) {
+ try {
+ return webClient.getBodyData(bodyName);
+ } catch (IOException e) {
+ removeAll();
+ validate();
+ add(new ErrorPanel("Unfortunately, I could not load a body."));
+ validate();
+ return null;
+ }
+ }
+ }
+
//TODO make the error panel less ugly
private class ErrorPanel extends Panel {
public ErrorPanel(String errorMessage) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tre...@us...> - 2007-09-27 18:06:50
|
Revision: 447
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=447&view=rev
Author: trevorolio
Date: 2007-09-27 11:06:47 -0700 (Thu, 27 Sep 2007)
Log Message:
-----------
Halfway through a grand avatar rewhack.
In this half I switch over to using downloadable wadges of avatar data instead of in-jar resources for avatar data.
Removed the GeomtryProvider interface, which is now replaced by TemplateDataProvider and BodyDataProvider interfaces which are used to fill the J3DDataManager with cached versions of all network accessed resources. This allows us to control memory usage, but also (eventually) reduces our memory footprint as we only make copies of data which is avatar specific.
Modified Paths:
--------------
maven/trunk/ogoglio-integration-test/src/test/java/com/ogoglio/client/test/ClientTest.java
Modified: maven/trunk/ogoglio-integration-test/src/test/java/com/ogoglio/client/test/ClientTest.java
===================================================================
--- maven/trunk/ogoglio-integration-test/src/test/java/com/ogoglio/client/test/ClientTest.java 2007-09-27 18:06:43 UTC (rev 446)
+++ maven/trunk/ogoglio-integration-test/src/test/java/com/ogoglio/client/test/ClientTest.java 2007-09-27 18:06:47 UTC (rev 447)
@@ -343,7 +343,7 @@
testWindow.start();
long startTime = System.currentTimeMillis();
- while (!testWindow.applet.completedInitialLoad() && System.currentTimeMillis() < startTime + 10000) {
+ while (!testWindow.applet.completedInitialLoad() && System.currentTimeMillis() < startTime + 20000) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
@@ -375,10 +375,6 @@
}
private UserDocument[] verifyUserDocsBySize(WebAPIClient webClient1, long spaceID, int expectedLen, String expectedUsername) throws IOException {
- try {
- Thread.sleep(2500);
- } catch (Exception e) {}
-
UserDocument[] userDocs = webClient1.getUserDocuments(spaceID);
assertEquals(expectedLen, userDocs.length);
if (expectedUsername != null) {
@@ -565,8 +561,9 @@
space1.addListener(testListener, false);
//make sure we can get one thing from the space (maybe floor?) and check geom stream
- assertNotNull(space1.getThing(1));
- InputStream stream = space1.getThing(1).getGeometryStream(0);
+ Thing thing = space1.getThing(1);
+ assertNotNull(thing);
+ InputStream stream = webClient1.getTemplateGeometryStream(thing.getTemplate().getOwnerUsername(), thing.getTemplate().getTemplateID(), 0);
assertNotNull(stream);
consume(stream);
@@ -599,11 +596,16 @@
//now connect as a guest
SpaceClient guestSpaceClient1 = new SpaceClient(spaceID, serviceURI1, guestCookie1, new TestSpaceClientListener());
- try {
- Thread.sleep(1000);
- Thread.yield();
- } catch (InterruptedException e) {
- e.printStackTrace();
+ long startTime = System.currentTimeMillis();
+ while(System.currentTimeMillis() - startTime < 60000){
+ try {
+ Thread.sleep(1000);
+ if(webClient1.getUserDocuments(spaceID).length == 2){
+ break;
+ }
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
}
//two users currently connected and one of them better be same as our cookie?
@@ -1048,27 +1050,19 @@
public void shapeMotionStopped(Shape shape, Transform3D position) {
}
- public void userAnimationStarted(User user, long animationID) {
+ public void userAnimationStarted(User user, String animationName) {
}
public void shapeMotionStarted(com.ogoglio.client.model.Shape shape, SplinePath path) {
- // TODO Auto-generated method stub
-
}
public void shapeMotionStopped(com.ogoglio.client.model.Shape shape, Transform3D position) {
- // TODO Auto-generated method stub
-
}
public void templateAdded(com.ogoglio.client.model.Template template) {
- // TODO Auto-generated method stub
-
}
public void templateRemoved(com.ogoglio.client.model.Template template) {
- // TODO Auto-generated method stub
-
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tre...@us...> - 2007-09-27 18:06:48
|
Revision: 448
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=448&view=rev
Author: trevorolio
Date: 2007-09-27 11:06:51 -0700 (Thu, 27 Sep 2007)
Log Message:
-----------
Halfway through a grand avatar rewhack.
In this half I switch over to using downloadable wadges of avatar data instead of in-jar resources for avatar data.
Removed the GeomtryProvider interface, which is now replaced by TemplateDataProvider and BodyDataProvider interfaces which are used to fill the J3DDataManager with cached versions of all network accessed resources. This allows us to control memory usage, but also (eventually) reduces our memory footprint as we only make copies of data which is avatar specific.
Modified Paths:
--------------
maven/trunk/ogoglio-server/pom.xml
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/SpaceSimulator.java
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/script/SpaceScriptEngine.java
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/site/SimServlet.java
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/SpaceServlet.java
maven/trunk/ogoglio-server/src/main/resources/siteTemplates/ogoglio.js
maven/trunk/ogoglio-server/src/main/resources/siteTemplates/thingPopup.html
Removed Paths:
-------------
maven/trunk/ogoglio-server/src/main/resources/populate/template-23/OfficeBuilding.blend1
Modified: maven/trunk/ogoglio-server/pom.xml
===================================================================
--- maven/trunk/ogoglio-server/pom.xml 2007-09-27 18:06:47 UTC (rev 447)
+++ maven/trunk/ogoglio-server/pom.xml 2007-09-27 18:06:51 UTC (rev 448)
@@ -89,13 +89,35 @@
<!-- PLUGINS -->
<!-- -->
<plugins>
-
- <!-- DEPENDENCY PLUGIN: We need to pull in applets -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
+
<execution>
+ <id>copy-body</id>
+ <phase>test</phase>
+ <goals>
+ <goal>copy</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>
+ ${project.build.directory}/${pom.artifactId}-${version}/WEB-INF/classes
+ </outputDirectory>
+ <stripVersion>true</stripVersion>
+ <artifactItems>
+ <artifactItem>
+ <groupId>com.ogoglio.body</groupId>
+ <artifactId>
+ ogoglio-body-sim
+ </artifactId>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+
+ <!-- We need to pull in applets -->
+ <execution>
<id>copy-applets</id>
<phase>test</phase>
<goals>
@@ -114,6 +136,18 @@
</artifactId>
</artifactItem>
<artifactItem>
+ <groupId>com.ogoglio.body</groupId>
+ <artifactId>
+ ogoglio-body-mike
+ </artifactId>
+ </artifactItem>
+ <artifactItem>
+ <groupId>com.ogoglio.body</groupId>
+ <artifactId>
+ ogoglio-body-andrea
+ </artifactId>
+ </artifactItem>
+ <artifactItem>
<groupId>com.ogoglio</groupId>
<artifactId>
ogoglio-body-editor-applet
@@ -199,7 +233,7 @@
<server>localMachine</server>
<path>/og</path>
</configuration>
-
+
<executions>
<execution>
<phase>install</phase>
@@ -209,7 +243,7 @@
</goals>
</execution>
</executions>
-
+
</plugin>
</plugins>
</build>
@@ -272,9 +306,6 @@
<artifactId>ogoglio-appdev</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
- <!-- -->
- <!-- BOGUS DEPENDENCIES-->
- <!-- -->
<dependency>
<groupId>com.ogoglio</groupId>
<artifactId>ogoglio-viewer-applet</artifactId>
@@ -293,7 +324,24 @@
<version>0.0.1-SNAPSHOT</version>
<scope>runtime</scope>
</dependency>
-
+ <dependency>
+ <groupId>com.ogoglio.body</groupId>
+ <artifactId>ogoglio-body-mike</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.ogoglio.body</groupId>
+ <artifactId>ogoglio-body-andrea</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.ogoglio.body</groupId>
+ <artifactId>ogoglio-body-sim</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
</dependencies>
</project>
Modified: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/SpaceSimulator.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/SpaceSimulator.java 2007-09-27 18:06:47 UTC (rev 447)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/SpaceSimulator.java 2007-09-27 18:06:51 UTC (rev 448)
@@ -21,26 +21,27 @@
import java.util.HashMap;
import java.util.Map;
import java.util.Vector;
+import java.util.zip.ZipInputStream;
import javax.media.j3d.Transform3D;
import javax.vecmath.Point3d;
import javax.vecmath.Vector3d;
import com.ogoglio.client.UserInputListener;
+import com.ogoglio.client.model.BodyDataProvider;
import com.ogoglio.client.model.Door;
-import com.ogoglio.client.model.GeometryProvider;
import com.ogoglio.client.model.Page;
import com.ogoglio.client.model.Shape;
import com.ogoglio.client.model.Space;
import com.ogoglio.client.model.SplinePath;
import com.ogoglio.client.model.Template;
+import com.ogoglio.client.model.TemplateDataProvider;
import com.ogoglio.client.model.Thing;
import com.ogoglio.client.model.User;
import com.ogoglio.sim.script.ScriptHTTPResponse;
import com.ogoglio.sim.script.SpaceScriptEngine;
import com.ogoglio.util.ArgumentUtils;
import com.ogoglio.util.BlockingQueue;
-import com.ogoglio.util.BodyConstants;
import com.ogoglio.util.Log;
import com.ogoglio.util.UIConstants;
import com.ogoglio.util.BlockingQueue.QueueClosedException;
@@ -81,6 +82,8 @@
// a flag that mark this simulator to be deleted after it will be shutdown
private boolean deleted = false;
+ private InSimTemplateDataProvider templateDataProvider = new InSimTemplateDataProvider();
+
public SpaceSimulator(SpaceDocument spaceDocument, Listener listener) {
ArgumentUtils.assertNotNull(listener);
this.listener = listener;
@@ -91,7 +94,7 @@
space = new Space(new SimulatorSpaceContext(), spaceDocument.getSpaceID(), spaceDocument.getDisplayName(), spaceDocument.getOwnerUsername(), spaceDocument.getDisplaySea(), spaceDocument.getSeaLevel());
//TODO evaluate whether we should stop using Java3D on the sim side to calculate collision and motion (gut feeling: hell yes!)
- renderer = new J3DRenderer(space, null, new InSimInputListener(), new InSimErrorGeometryProvider(), true);
+ renderer = new J3DRenderer(space, null, new InSimInputListener(), templateDataProvider, new InSimBodyDataProvider(), true);
renderer.startRenderer();
renderer.setSimCamera(); //Sigh, you have to add a view before it will schedule the behavior
@@ -144,42 +147,6 @@
private class SimulatorSpaceContext implements Space.Context {
- public InputStream getTemplateGeometryStream(String ownerUsername, long templateID, int lodIndex) {
- Template template = space.getTemplate(templateID);
- if (template == null) {
- return null;
- }
- return listener.getTemplateGeometryStream(templateID, lodIndex);
- }
-
- public InputStream getTemplateResourceStream(String ownerUsername, long templateID, String name) throws IOException {
- Template template = space.getTemplate(templateID);
- if (template == null) {
- return null;
- }
- return listener.getTemplateResourceStream(templateID, name);
- }
-
- public InputStream getThingAnimationStream(long thingID, long animationID) throws IOException {
- return null;
- }
-
- public InputStream getUserAnimationStream(String username, long animationID) throws IOException {
- return BodyConstants.getUserAnimation((int) animationID);
- }
-
- public InputStream getUserSkinMapStream(String username) throws IOException {
- User user = space.getUser(username);
- if(user == null){
- return null;
- }
- if(user.getBody().isMale()){
- return UIConstants.getResource(BodyConstants.MALE_SMAP_PATH);
- } else {
- return UIConstants.getResource(BodyConstants.FEMALE_SMAP_PATH);
- }
- }
-
public String getThingScript(long thingID) throws IOException {
Thing thing = space.getThing(thingID);
if (thing == null) {
@@ -188,18 +155,6 @@
return listener.getTemplateScript(thing.getTemplate().getTemplateID());
}
- public InputStream getUserGeometryStream(String username, String name) throws IOException {
- User user = space.getUser(username);
- if(user == null){
- return null;
- }
- if(user.getBody().isMale()){
- return UIConstants.getResource(BodyConstants.MALE_AVATAR_PATH);
- } else {
- return UIConstants.getResource(BodyConstants.FEMALE_AVATAR_PATH);
- }
- }
-
public InputStream getPageContentStream(long thingID, long pageID) {
return null; //we don't need to render pages, do we?
}
@@ -247,6 +202,9 @@
while (!cleaned) {
try {
SpaceEvent event = (SpaceEvent) queue.dequeue();
+ if(cleaned){
+ return;
+ }
if (SpaceEvent.ADD_USER_EVENT.equals(event.getName())) {
listener.generatedSpaceEvent(event, SpaceSimulator.this);
log("added user " + event.getStringProperty(SpaceEvent.USERNAME));
@@ -383,22 +341,13 @@
// this is a hack to play pre-baked animations
// TODO create a user animation record and a method to dl and play them
- if(chatMessage.startsWith("/") && chatMessage.length() > 1){
+ if (chatMessage.startsWith("/") && chatMessage.length() > 1) {
String command = chatMessage.substring(1);
- boolean sentAnimation = false;
- for (int i = 0; i < BodyConstants.USER_ANIMATION_COMMANDS.length; i++) {
- if(BodyConstants.USER_ANIMATION_COMMANDS[i].equals(command)){
- SpaceEvent playAnimationEvent = new SpaceEvent(SpaceEvent.PLAY_ANIMATION_EVENT);
- playAnimationEvent.setProperty(SpaceEvent.USERNAME, user.getUsername());
- playAnimationEvent.setProperty(SpaceEvent.ANIMATION_ID, new Long(i));
- listener.generatedSpaceEvent(playAnimationEvent, SpaceSimulator.this);
- sentAnimation = true;
- break;
- }
- }
- if(sentAnimation){
- continue;
- }
+ SpaceEvent playAnimationEvent = new SpaceEvent(SpaceEvent.PLAY_ANIMATION_EVENT);
+ playAnimationEvent.setProperty(SpaceEvent.USERNAME, user.getUsername());
+ playAnimationEvent.setProperty(SpaceEvent.ANIMATION_NAME, command);
+ listener.generatedSpaceEvent(playAnimationEvent, SpaceSimulator.this);
+ continue;
}
chatMessage = markdownChatMessage(chatMessage);
@@ -409,10 +358,7 @@
listener.generatedSpaceEvent(markedUpEvent, SpaceSimulator.this);
- } else if (((SpaceEvent.THING_CLICKED_EVENT.equals(event.getName()))) ||
- ((SpaceEvent.THING_CONTEXT_CLICKED_EVENT.equals(event.getName()))) ||
- ((SpaceEvent.THING_CONTEXT_SELECTION_MADE_EVENT.equals(event.getName())))
- ){
+ } else if (((SpaceEvent.THING_CLICKED_EVENT.equals(event.getName()))) || ((SpaceEvent.THING_CONTEXT_CLICKED_EVENT.equals(event.getName()))) || ((SpaceEvent.THING_CONTEXT_SELECTION_MADE_EVENT.equals(event.getName())))) {
String username = event.getStringProperty(SpaceEvent.USERNAME);
User user = space.getUser(username);
if (user == null) {
@@ -438,7 +384,7 @@
log("Internal server error: " + e);
e.printStackTrace();
} catch (Throwable e) {
- Log.error("Error handling space event",e);
+ Log.error("Error handling space event", e);
}
}
}
@@ -1033,30 +979,37 @@
}
}
- private class InSimErrorGeometryProvider implements GeometryProvider {
-
- public InputStream getAnimationStream(long animationID) throws IOException {
- return null;
+ private class InSimBodyDataProvider implements BodyDataProvider {
+ public ZipInputStream getBodyData(String bodyName) {
+ return new ZipInputStream(getClass().getClassLoader().getResourceAsStream("ogoglio-body-sim.jar"));
}
+ }
- public InputStream getGeometryStream(int lodIndex) throws IOException {
- if (lodIndex != 0) {
+ private class InSimTemplateDataProvider implements TemplateDataProvider {
+
+ public InputStream getTemplateGeometry(String username, long templateID, int lod) {
+ Template template = space.getTemplate(templateID);
+ if (template == null) {
return null;
}
- return UIConstants.getResource("templates/loading.obj");
+ return listener.getTemplateGeometryStream(templateID, lod);
}
- public InputStream getSkinMapStream() throws IOException {
- return null;
+ public InputStream getTemplateResource(String username, long templateID, String resourceName) {
+ Template template = space.getTemplate(templateID);
+ if (template == null) {
+ return null;
+ }
+ return listener.getTemplateResourceStream(templateID, resourceName);
}
- public InputStream getSubGeometryStream(String name) throws IOException {
- if ("loading.mtl".equals(name)) {
- return UIConstants.getResource("templates/loading.mtl");
+ public String getTemplateScript(String username, long templateID){
+ Template template = space.getTemplate(templateID);
+ if (template == null) {
+ return null;
}
- return null;
+ return listener.getTemplateScript(templateID);
}
-
}
private class InSimInputListener implements UserInputListener {
@@ -1084,4 +1037,8 @@
public void mouseContextClickedThing(Thing thing, String name, int x, int y) {
}
}
+
+ public TemplateDataProvider getTemplateDataProvider() {
+ return templateDataProvider;
+ }
}
Modified: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/script/SpaceScriptEngine.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/script/SpaceScriptEngine.java 2007-09-27 18:06:47 UTC (rev 447)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/script/SpaceScriptEngine.java 2007-09-27 18:06:51 UTC (rev 448)
@@ -118,7 +118,7 @@
}
public void constructThingScript(Thing thing) throws IOException {
- String script = thing.getScript();
+ String script = spaceSimulator.getTemplateDataProvider().getTemplateScript(thing.getTemplate().getOwnerUsername(), thing.getTemplate().getTemplateID());
if (script == null) {
spaceSimulator.log("Constructed scriptless thing " + thing.getThingID());
return;
@@ -464,6 +464,6 @@
public void shapeMotionStopped(Shape shape, Transform3D position) {
}
- public void userAnimationStarted(User user, long animationID) {
+ public void userAnimationStarted(User user, String animationName) {
}
}
Modified: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/site/SimServlet.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/site/SimServlet.java 2007-09-27 18:06:47 UTC (rev 447)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/site/SimServlet.java 2007-09-27 18:06:51 UTC (rev 448)
@@ -74,7 +74,7 @@
public void init(ServletConfig config) throws ServletException {
super.init(config);
- System.out.println("IN INIT:"+config.getServletName()+","+config.getServletContext().getServletContextName());
+ System.out.println("REALLY IN INIT:"+config.getServletName()+","+config.getServletContext().getServletContextName());
try {
Context envCtx = (Context) initCtx.lookup("java:comp/env");
simURI = new URI((String) envCtx.lookup("ogoglio/baseSimURL"));
@@ -127,7 +127,6 @@
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
return;
}
- System.out.println("FART: SERVICE:"+request.getPathInfo());
super.service(request, response);
}
@@ -290,10 +289,8 @@
public void doGet(HttpServletRequest request, HttpServletResponse response, String[] pathElements) throws ServletException, IOException {
long spaceID = Long.parseLong(pathElements[2]);
- System.out.println("FART: do get:"+spaceID);
try {
SpaceRecord spaceRecord = SpacePersistTasks.findSpaceBySpaceID(spaceID, getSessionFactory());
- System.out.println("FART: do get:"+spaceID+" w/"+spaceRecord.getSimID());
if (spaceRecord == null) {
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
return;
@@ -355,7 +352,6 @@
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
return;
}
- System.out.println("FART: do post:"+spaceID+","+spaceRecord.getSimID());
AccountRecord authedAccount = AuthServlet.getAuthedAccountRecord(request, getSessionFactory());
if (authedAccount != null && !authedAccount.getUsername().equals(spaceRecord.getOwnerUsername())) {
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
Modified: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/SpaceServlet.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/SpaceServlet.java 2007-09-27 18:06:47 UTC (rev 447)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/SpaceServlet.java 2007-09-27 18:06:51 UTC (rev 448)
@@ -481,10 +481,8 @@
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
return;
}
- System.out.println("FART: PROXY authed:"+authedAccount.getUsername());
SimRecord simRecord = SpacePersistTasks.findOrAssignSim(spaceRecord, getSessionFactory());
- System.out.println("FART PROXY: "+simRecord.getSimID()+","+simRecord.getSimURI());
if (simRecord == null) {
Log.error("Could not assign a sim to space " + spaceRecord.getSpaceID());
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
@@ -496,7 +494,6 @@
proxyURI += pathElements[i] + "/";
}
- System.out.println("FART: PROXY URI ABOUT TO GO:"+proxyURI);
proxy(new URI(proxyURI), method, request, response);
} catch (PersistException e) {
Deleted: maven/trunk/ogoglio-server/src/main/resources/populate/template-23/OfficeBuilding.blend1
===================================================================
(Binary files differ)
Modified: maven/trunk/ogoglio-server/src/main/resources/siteTemplates/ogoglio.js
===================================================================
--- maven/trunk/ogoglio-server/src/main/resources/siteTemplates/ogoglio.js 2007-09-27 18:06:47 UTC (rev 447)
+++ maven/trunk/ogoglio-server/src/main/resources/siteTemplates/ogoglio.js 2007-09-27 18:06:51 UTC (rev 448)
@@ -295,6 +295,14 @@
}
}
+Quaternion.prototype.add = function(q1){
+ this.x += q1.x;
+ this.y += q1.y;
+ this.z += q1.z;
+ this.w += q1.w;
+ this.normalize();
+}
+
Quaternion.prototype.mul = function(q1){
var nw = this.w * q1.w - this.x * q1.x - this.y * q1.y - this.z * q1.z;
var nx = this.w * q1.x + q1.w * this.x + this.y * q1.z - this.z * q1.y;
Modified: maven/trunk/ogoglio-server/src/main/resources/siteTemplates/thingPopup.html
===================================================================
--- maven/trunk/ogoglio-server/src/main/resources/siteTemplates/thingPopup.html 2007-09-27 18:06:47 UTC (rev 447)
+++ maven/trunk/ogoglio-server/src/main/resources/siteTemplates/thingPopup.html 2007-09-27 18:06:51 UTC (rev 448)
@@ -98,17 +98,23 @@
function moveToX(x){
if(thingXML == null) return;
thingXML.setAttribute('x', x);
+ thingXML.setAttribute('y', yPosInput.value);
+ thingXML.setAttribute('z', zPosInput.value);
updateThing(spaceID, thingXML, handleThingDocument);
}
function moveToY(y){
if(thingXML == null) return;
+ thingXML.setAttribute('x', xPosInput.value);
thingXML.setAttribute('y', y);
+ thingXML.setAttribute('z', zPosInput.value);
updateThing(spaceID, thingXML, handleThingDocument);
}
function moveToZ(z){
if(thingXML == null) return;
+ thingXML.setAttribute('x', xPosInput.value);
+ thingXML.setAttribute('y', yPosInput.value);
thingXML.setAttribute('z', z);
updateThing(spaceID, thingXML, handleThingDocument);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tre...@us...> - 2007-09-27 18:06:39
|
Revision: 446
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=446&view=rev
Author: trevorolio
Date: 2007-09-27 11:06:43 -0700 (Thu, 27 Sep 2007)
Log Message:
-----------
Halfway through a grand avatar rewhack.
In this half I switch over to using downloadable wadges of avatar data instead of in-jar resources for avatar data.
Removed the GeomtryProvider interface, which is now replaced by TemplateDataProvider and BodyDataProvider interfaces which are used to fill the J3DDataManager with cached versions of all network accessed resources. This allows us to control memory usage, but also (eventually) reduces our memory footprint as we only make copies of data which is avatar specific.
Modified Paths:
--------------
maven/trunk/ogoglio-common/.classpath
maven/trunk/ogoglio-common/pom.xml
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/SpaceClient.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/WebAPIClient.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/WebAPIDescriptor.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/Door.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/Space.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/Template.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/Thing.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/User.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/util/BodyConstants.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/util/StreamUtils.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DDataCache.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DDataManager.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DRenderableLoader.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DRenderer.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DUserRenderable.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/Skin.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/SkinLoader.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/bvh/Bvh.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/bvh/BvhParser.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/obj/MtlParser.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/obj/ObjParser.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/smap/SkinMapParser.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/xml/SpaceEvent.java
maven/trunk/ogoglio-common/src/main/resources/sourceArt/Emily/Emily.blend
Added Paths:
-----------
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/BodyDataProvider.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/TemplateDataProvider.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DBodyData.java
Removed Paths:
-------------
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/GeometryProvider.java
maven/trunk/ogoglio-common/src/main/resources/avatar/
Modified: maven/trunk/ogoglio-common/.classpath
===================================================================
--- maven/trunk/ogoglio-common/.classpath 2007-09-27 18:06:34 UTC (rev 445)
+++ maven/trunk/ogoglio-common/.classpath 2007-09-27 18:06:43 UTC (rev 446)
@@ -2,7 +2,6 @@
<classpath>
<classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="src" path="src/test/java"/>
- <classpathentry excluding="**" kind="src" output="src/main/resources/avatar" path="src/main/resources/avatar"/>
<classpathentry excluding="**" kind="src" output="src/main/resources/templates" path="src/main/resources/templates"/>
<classpathentry excluding="**" kind="src" output="src/test/resources" path="src/test/resources"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
Modified: maven/trunk/ogoglio-common/pom.xml
===================================================================
--- maven/trunk/ogoglio-common/pom.xml 2007-09-27 18:06:34 UTC (rev 445)
+++ maven/trunk/ogoglio-common/pom.xml 2007-09-27 18:06:43 UTC (rev 446)
@@ -14,12 +14,6 @@
<artifactId>ogoglio-common</artifactId>
<build>
<resources>
- <!-- FILTER RESOURCES FOR SOME CONSTANTS-->
- <resource>
- <targetPath>avatar</targetPath>
- <directory>src/main/resources/avatar</directory>
- </resource>
-
<!-- for loading indicator -->
<resource>
<targetPath>templates</targetPath>
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/SpaceClient.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/SpaceClient.java 2007-09-27 18:06:34 UTC (rev 445)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/SpaceClient.java 2007-09-27 18:06:43 UTC (rev 446)
@@ -18,17 +18,19 @@
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Vector;
+import java.util.zip.ZipInputStream;
import javax.media.j3d.Transform3D;
import javax.vecmath.Point3d;
+import com.ogoglio.client.model.BodyDataProvider;
import com.ogoglio.client.model.Door;
-import com.ogoglio.client.model.GeometryProvider;
import com.ogoglio.client.model.Page;
import com.ogoglio.client.model.Shape;
import com.ogoglio.client.model.Space;
import com.ogoglio.client.model.SplinePath;
import com.ogoglio.client.model.Template;
+import com.ogoglio.client.model.TemplateDataProvider;
import com.ogoglio.client.model.Thing;
import com.ogoglio.client.model.User;
import com.ogoglio.message.Message;
@@ -37,7 +39,6 @@
import com.ogoglio.message.PayloadFactory;
import com.ogoglio.message.TCPChannel;
import com.ogoglio.util.ArgumentUtils;
-import com.ogoglio.util.BodyConstants;
import com.ogoglio.util.Log;
import com.ogoglio.util.UIConstants;
import com.ogoglio.xml.AccountDocument;
@@ -67,31 +68,33 @@
private Messenger messenger = new Messenger();
- private ErrorGeometryProvider errorGeometryProvider = new ErrorGeometryProvider();
+ private SpaceClientTemplateDataProvider templateDataProvider = new SpaceClientTemplateDataProvider();
private boolean cleanedUp = false;
+ private BodyDataProvider bodyDataProvider = new NetworkBodyDataProvider();
+
public SpaceClient(long spaceID, URI serviceURI, String authCookie, Listener listener) throws IOException {
ArgumentUtils.assertNotNegative(spaceID);
ArgumentUtils.assertNotNull(serviceURI);
ArgumentUtils.assertNotNull(authCookie);
-
+
WebAPIDescriptor descriptor = new WebAPIDescriptor(serviceURI);
WebAPIClientWire wire = new WebAPIClientWire();
-
+
WebAPIAuthenticator authenticator = null;
- if(authCookie.startsWith("guest")){
+ if (authCookie.startsWith("guest")) {
authenticator = new WebAPIGuestAuthenticator(descriptor, authCookie);
} else {
authenticator = new WebAPIAuthenticator(wire, descriptor, authCookie);
}
-
+
webClient = new WebAPIClient(descriptor, authenticator, wire);
ArgumentUtils.assertNotNull(listener);
this.listener = listener;
accountDoc = authenticator.getAccountDocument(true);
- if(accountDoc == null) {
+ if (accountDoc == null) {
throw new IOException("Could not get account document.");
}
@@ -114,7 +117,7 @@
Log.error("No auth, message " + messenger.errorMessage);
messenger.cleanup();
- if(messenger.errorMessage == null) {
+ if (messenger.errorMessage == null) {
throw new IOException("This viewer could not get the go-ahead.");
} else {
throw new IOException(messenger.errorMessage);
@@ -190,7 +193,7 @@
}
public void mouseClickedThing(Thing thing, String shapeName, Point3d intersection) {
- SpaceEvent event = createSpaceEventForThing(thing, shapeName,SpaceEvent.THING_CLICKED_EVENT);
+ SpaceEvent event = createSpaceEventForThing(thing, shapeName, SpaceEvent.THING_CLICKED_EVENT);
attemptToSendSpaceEventToServer(event);
}
@@ -212,26 +215,24 @@
}
return event;
}
-
+
public void mouseContextClickedThing(Thing thing, String shapeName, int x, int y) {
// we should be asking the thing for the info about it's menu
- long now=System.currentTimeMillis();
- listener.receivedContextMenuRequest(thing,shapeName,x,y,now);
- SpaceEvent event = createSpaceEventForThing(thing, shapeName,SpaceEvent.THING_CONTEXT_CLICKED_EVENT);
- event.setProperty(SpaceEvent.NONCE,new Long(now));
+ long now = System.currentTimeMillis();
+ listener.receivedContextMenuRequest(thing, shapeName, x, y, now);
+ SpaceEvent event = createSpaceEventForThing(thing, shapeName, SpaceEvent.THING_CONTEXT_CLICKED_EVENT);
+ event.setProperty(SpaceEvent.NONCE, new Long(now));
attemptToSendSpaceEventToServer(event);
}
-
+
public void mouseContextItemChosen(Thing thing, long nonce, String id) {
- listener.contextItemChosen(thing,nonce,id);
+ listener.contextItemChosen(thing, nonce, id);
SpaceEvent event = createSpaceEventForThing(thing, null, SpaceEvent.THING_CONTEXT_SELECTION_MADE_EVENT);
- event.setProperty(SpaceEvent.NONCE,new Long(nonce));
+ event.setProperty(SpaceEvent.NONCE, new Long(nonce));
event.setProperty(SpaceEvent.CONTEXT_MENU_DATA_ITEM_ID, id);
attemptToSendSpaceEventToServer(event);
}
-
-
public void mouseClickedPage(Page page, Point3d intersection) {
Log.info("User clicked the page. Ignoring");
}
@@ -311,12 +312,12 @@
if (template == null) {
try {
TemplateDocument templateDoc = webClient.getTemplateDocument(event.getStringProperty(SpaceEvent.TEMPLATE_OWNER), templateID);
- //is it true that event.getStringProperty(SpaceEvent.TEMPLATE_OWNER) is the same as the authenticated user?
+ //is it true that event.getStringProperty(SpaceEvent.TEMPLATE_OWNER) is the same as the authenticated user?
//TemplateDocument templateDoc = webClient.getTemplateDocument(templateID);
template = new Template(templateDoc);
space.addTemplate(template);
} catch (IOException e) {
- Log.error("Could not add the template",e);
+ Log.error("Could not add the template", e);
}
}
Thing thing = new Thing(space, event.getLongProperty(SpaceEvent.THING_ID).longValue(), template, event.getStringProperty(SpaceEvent.DISPLAY_NAME), event.getStringProperty(SpaceEvent.OWNER_USERNAME), event.getLongProperty(SpaceEvent.POSSESSION_ID).longValue(), event.getTransform());
@@ -399,19 +400,19 @@
if (template == null) {
try {
TemplateDocument templateDoc = webClient.getTemplateDocument(event.getStringProperty(SpaceEvent.TEMPLATE_OWNER), templateID);
- //note: always true that event.getStringProperty(SpaceEvent.TEMPLATE_OWNER) is the same as authenticated user?
+ //note: always true that event.getStringProperty(SpaceEvent.TEMPLATE_OWNER) is the same as authenticated user?
//TemplateDocument templateDoc = webClient.getTemplateDocument(templateID);
template = new Template(templateDoc);
space.addTemplate(template);
} catch (IOException e) {
- Log.error("Could not add the template",e);
+ Log.error("Could not add the template", e);
}
}
try {
Door door = new Door(space, template, event.getLongProperty(SpaceEvent.DOOR_ID).longValue(), event.getStringProperty(SpaceEvent.DISPLAY_NAME), new URI(event.getStringProperty(SpaceEvent.LINK)), event.getTransform());
space.addDoor(door);
} catch (URISyntaxException e) {
- Log.error("Could not parse the door link: " + event.getStringProperty(SpaceEvent.LINK),e);
+ Log.error("Could not parse the door link: " + event.getStringProperty(SpaceEvent.LINK), e);
}
} else if (SpaceEvent.UPDATE_DOOR_EVENT.equals(event.getName())) {
@@ -515,8 +516,8 @@
Log.error("Got an animation event for an unknown user: " + event.getStringProperty(SpaceEvent.USERNAME));
return;
}
- user.playAnimation(event.getLongProperty(SpaceEvent.ANIMATION_ID).longValue());
-
+ user.playAnimation(event.getStringProperty(SpaceEvent.ANIMATION_NAME));
+
} else if (SpaceEvent.SHOW_LINK_EVENT.equals(event.getName())) {
String displayName = event.getStringProperty(SpaceEvent.DISPLAY_NAME);
String link = event.getStringProperty(SpaceEvent.LINK);
@@ -547,9 +548,7 @@
thing.stopMotion(position);
thing.setName(displayName);
} else if (SpaceEvent.CONTEXT_MENU_DATA_EVENT.equals(event.getName())) {
- listener.receivedContextMenuData(event.getLongProperty(SpaceEvent.NONCE).longValue(),
- event.getStringProperty(SpaceEvent.CONTEXT_MENU_DATA_GENERATION_ERROR),
- event.getContextMenu());
+ listener.receivedContextMenuData(event.getLongProperty(SpaceEvent.NONCE).longValue(), event.getStringProperty(SpaceEvent.CONTEXT_MENU_DATA_GENERATION_ERROR), event.getContextMenu());
} else if (SpaceEvent.MESSAGE_BROWSER_EVENT.equals(event.getName())) {
long thingID = event.getLongProperty(SpaceEvent.THING_ID).longValue();
@@ -590,7 +589,7 @@
private Vector waitingMessages = new Vector();
private String errorMessage = null;
-
+
public void handleMessage(Message message, TCPChannel sourceChannel) throws NoSuchDestinationException {
synchronized (this) {
if (waiting) {
@@ -599,7 +598,7 @@
return;
} else if (message.getPayload() instanceof PayloadFactory.AuthenticationFailurePayload) {
authStatus = FAILED_STATUS;
- errorMessage = ((PayloadFactory.AuthenticationFailurePayload)message.getPayload()).getMessage();
+ errorMessage = ((PayloadFactory.AuthenticationFailurePayload) message.getPayload()).getMessage();
return;
}
waitingMessages.add(message);
@@ -662,7 +661,7 @@
public void receivedContextMenuData(long nonce, String errorIfAny, Vector contextMenu);
- public void receivedContextMenuRequest(Thing thing, String shapeName, int x, int y,long nonce);
+ public void receivedContextMenuRequest(Thing thing, String shapeName, int x, int y, long nonce);
public void receivedLink(String displayName, String link);
@@ -685,25 +684,6 @@
messenger.cleanup();
}
- public InputStream getTemplateGeometryStream(String ownerUsername, long templateID, int lodIndex) {
- try {
- return webClient.getTemplateGeometryStream(ownerUsername, templateID, lodIndex);
- } catch (IOException e) {
- return UIConstants.getResource("templates/loading.obj");
- }
- }
-
- public InputStream getTemplateResourceStream(String ownerUsername, long templateID, String name) throws IOException {
- try {
- return webClient.getTemplateResourceStream(ownerUsername, templateID, name);
- } catch (IOException e) {
- if("loading.mtl".equals(name)){
- return UIConstants.getResource("templates/loading.mtl");
- }
- return null;
- }
- }
-
public InputStream getPageContentStream(long thingID, long pageID) {
try {
return webClient.getPageContents(space.getSpaceID(), thingID, pageID);
@@ -713,75 +693,57 @@
}
}
- public InputStream getThingAnimationStream(long thingID, long animationID) throws IOException {
- throw new IllegalStateException("this isn't implemented");
+ public BodyDocument getBodyDocument(String username, long bodyID) throws IOException {
+ return webClient.getBodyDocument(username, bodyID);
}
- public String getThingScript(long thingID) throws IOException {
- throw new IllegalStateException("this isn't implemented");
+ public WebAPIClient getWebClient() {
+ return webClient;
}
- public InputStream getUserGeometryStream(String username, String name) throws IOException {
- User user = space.getUser(username);
- if(user == null){
- return null;
- }
- if(user.getBody().isMale()){
- return UIConstants.getResource(BodyConstants.MALE_AVATAR_PATH);
- } else {
- return UIConstants.getResource(BodyConstants.FEMALE_AVATAR_PATH);
- }
+ public BodyDataProvider getBodyDataProvider() {
+ return bodyDataProvider;
}
- public InputStream getUserAnimationStream(String username, long animationID) throws IOException {
- return BodyConstants.getUserAnimation((int) animationID);
- }
+ private class NetworkBodyDataProvider implements BodyDataProvider {
- public InputStream getUserSkinMapStream(String username) throws IOException {
- User user = space.getUser(username);
- if(user == null){
- return null;
+ public ZipInputStream getBodyData(String bodyName) {
+ try {
+ return webClient.getBodyData(bodyName);
+ } catch (IOException e) {
+ Log.warn("Requested an unknown body: " + bodyName);
+ return null;
+ }
}
- if(user.getBody().isMale()){
- return UIConstants.getResource(BodyConstants.MALE_SMAP_PATH);
- } else {
- return UIConstants.getResource(BodyConstants.FEMALE_SMAP_PATH);
- }
- }
- public BodyDocument getBodyDocument(String username, long bodyID) throws IOException {
- return webClient.getBodyDocument(username, bodyID);
}
- public WebAPIClient getWebClient() {
- return webClient;
+ public TemplateDataProvider getTemplateDataProvider() {
+ return templateDataProvider;
}
- public GeometryProvider getErrorGeometryProvider() {
- return errorGeometryProvider;
- }
+ private class SpaceClientTemplateDataProvider implements TemplateDataProvider {
- private class ErrorGeometryProvider implements GeometryProvider {
-
- public InputStream getAnimationStream(long animationID) throws IOException {
- return null;
+ public InputStream getTemplateGeometry(String username, long templateID, int lod) {
+ try {
+ return webClient.getTemplateGeometryStream(username, templateID, lod);
+ } catch (IOException e) {
+ return null;
+ }
}
- public InputStream getGeometryStream(int lodIndex) throws IOException {
- if (lodIndex != 0) {
+ public InputStream getTemplateResource(String username, long templateID, String resourceName) {
+ try {
+ return webClient.getTemplateResourceStream(username, templateID, resourceName);
+ } catch (IOException e) {
return null;
}
- return UIConstants.getResource("templates/loading.obj");
}
- public InputStream getSkinMapStream() throws IOException {
- return null;
+ public String getTemplateScript(String username, long templateID) {
+ return webClient.getTemplateScript(username, templateID);
}
- public InputStream getSubGeometryStream(String name) throws IOException {
- return null;
- }
-
}
}
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/WebAPIClient.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/WebAPIClient.java 2007-09-27 18:06:34 UTC (rev 445)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/WebAPIClient.java 2007-09-27 18:06:43 UTC (rev 446)
@@ -16,10 +16,10 @@
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
-import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Vector;
+import java.util.zip.ZipInputStream;
import javax.media.j3d.Transform3D;
@@ -38,7 +38,6 @@
import com.ogoglio.xml.SpaceDocument;
import com.ogoglio.xml.SpaceMemberDocument;
import com.ogoglio.xml.TemplateDocument;
-import com.ogoglio.xml.TemplateSupportFileDocument;
import com.ogoglio.xml.ThingDocument;
import com.ogoglio.xml.UserDocument;
@@ -509,6 +508,14 @@
return wire.sendDelete(descriptor.getBodyURI(authenticator.getUsername(), bodyID), authenticator.getAuthCookie());
}
+ public ZipInputStream getBodyData(String bodyName) throws IOException {
+ InputStream stream = wire.fetchAuthenticatedStream(descriptor.getBodyDataURI(bodyName), authenticator.getAuthCookie());
+ if(stream == null){
+ return null;
+ }
+ return new ZipInputStream(stream);
+ }
+
public ServiceStateDocument setRegistrationState(String registrationState) throws IOException {
ServiceStateDocument doc = new ServiceStateDocument(registrationState);
XMLElement xml = wire.postAuthenticatedXML(descriptor.getServiceStateURI(), doc.toString(), authenticator.getAuthCookie());
@@ -537,5 +544,4 @@
public WebAPIClientWire getWire() {
return wire;
}
-
}
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/WebAPIDescriptor.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/WebAPIDescriptor.java 2007-09-27 18:06:34 UTC (rev 445)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/WebAPIDescriptor.java 2007-09-27 18:06:43 UTC (rev 446)
@@ -123,6 +123,10 @@
return WebAPIUtil.appendToURI(getBodiesURI(username), bodyID + "/");
}
+ public URI getBodyDataURI(String bodyName) {
+ return WebAPIUtil.appendToURI(serviceURI, "ogoglio-body-" + bodyName + ".jar");
+ }
+
public URI getPagesURI(long spaceID, long thingID) {
return WebAPIUtil.appendToURI(getThingURI(spaceID, thingID), "page/");
}
Added: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/BodyDataProvider.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/BodyDataProvider.java (rev 0)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/BodyDataProvider.java 2007-09-27 18:06:43 UTC (rev 446)
@@ -0,0 +1,9 @@
+package com.ogoglio.client.model;
+
+import java.util.zip.ZipInputStream;
+
+public interface BodyDataProvider {
+
+ public ZipInputStream getBodyData(String bodyName);
+
+}
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/Door.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/Door.java 2007-09-27 18:06:34 UTC (rev 445)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/Door.java 2007-09-27 18:06:43 UTC (rev 446)
@@ -1,7 +1,5 @@
package com.ogoglio.client.model;
-import java.io.IOException;
-import java.io.InputStream;
import java.net.URI;
import javax.media.j3d.Transform3D;
@@ -9,7 +7,7 @@
import com.ogoglio.util.ArgumentUtils;
import com.ogoglio.xml.DoorDocument;
-public class Door implements GeometryProvider {
+public class Door {
private Space space = null;
@@ -83,22 +81,6 @@
position.set(this.position);
}
- public InputStream getGeometryStream(int lodIndex) throws IOException {
- return space.getDoorGeometryStream(this, lodIndex);
- }
-
- public InputStream getSubGeometryStream(String name) throws IOException {
- return space.getDoorResourceStream(this, name);
- }
-
- public InputStream getAnimationStream(long animationID) throws IOException {
- throw new IllegalStateException("Doors don't have animations");
- }
-
- public InputStream getSkinMapStream() throws IOException {
- throw new IllegalStateException("Doors don't have skin maps");
- }
-
public void setDoorID(long doorID) {
ArgumentUtils.assertNotNegative(doorID);
if(this.doorID != -1) {
Deleted: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/GeometryProvider.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/GeometryProvider.java 2007-09-27 18:06:34 UTC (rev 445)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/GeometryProvider.java 2007-09-27 18:06:43 UTC (rev 446)
@@ -1,31 +0,0 @@
-/* Copyright 2007 Transmutable (http://transmutable.com/)
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License. */
-package com.ogoglio.client.model;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-public interface GeometryProvider {
-
- public static final float[] LOD_DISTANCES = { 15f, 75f };
-
- public InputStream getGeometryStream(int lodIndex) throws IOException;
-
- public InputStream getSubGeometryStream(String name) throws IOException;
-
- public InputStream getAnimationStream(long animationID) throws IOException ;
-
- public InputStream getSkinMapStream() throws IOException;
-
-}
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/Space.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/Space.java 2007-09-27 18:06:34 UTC (rev 445)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/Space.java 2007-09-27 18:06:43 UTC (rev 446)
@@ -204,26 +204,12 @@
public void shapeMotionStopped(Shape shape, Transform3D position);
- public void userAnimationStarted(User user, long animationID);
+ public void userAnimationStarted(User user, String animationName);
}
public interface Context {
- public InputStream getTemplateResourceStream(String ownerUsername, long templateID, String name) throws IOException;
-
- public InputStream getTemplateGeometryStream(String ownerUsername, long templateID, int lodIndex);
-
- public InputStream getUserGeometryStream(String username, String name) throws IOException;
-
- public InputStream getThingAnimationStream(long thingID, long animationID) throws IOException;
-
- public InputStream getUserAnimationStream(String username, long animationID) throws IOException;
-
- public InputStream getUserSkinMapStream(String username) throws IOException;
-
- public String getThingScript(long thingID) throws IOException;
-
public InputStream getPageContentStream(long thingID, long pageID);
public BodyDocument getBodyDocument(String username, long bodyID) throws IOException;
@@ -281,10 +267,10 @@
}
}
- public void notifyUserAnimationStarted(User user, long animationID) {
+ public void notifyUserAnimationStarted(User user, String animationName) {
Listener[] listeners = listenerList.getListeners();
for (int i = 0; i < listeners.length; i++) {
- listeners[i].userAnimationStarted(user, animationID);
+ listeners[i].userAnimationStarted(user, animationName);
}
}
@@ -512,46 +498,6 @@
return ownerUsername;
}
- protected InputStream getDoorGeometryStream(Door door, int lodIndex) throws IOException {
- return spaceContext.getTemplateGeometryStream(door.getTemplate().getOwnerUsername(), door.getTemplate().getTemplateID(), lodIndex);
- }
-
- protected InputStream getDoorResourceStream(Door door, String name) throws IOException {
- return spaceContext.getTemplateResourceStream(door.getTemplate().getOwnerUsername(), door.getTemplate().getTemplateID(), name);
- }
-
- protected InputStream getThingGeometryStream(Thing thing, int lodIndex) throws IOException {
- return spaceContext.getTemplateGeometryStream(thing.getTemplate().getOwnerUsername(), thing.getTemplate().getTemplateID(), lodIndex);
- }
-
- protected InputStream getThingResourceStream(Thing thing, String resourceName) throws IOException {
- return spaceContext.getTemplateResourceStream(thing.getTemplate().getOwnerUsername(), thing.getTemplate().getTemplateID(), resourceName);
- }
-
- protected InputStream getUserGeometryStream(String username) throws IOException {
- return spaceContext.getUserGeometryStream(username, null);
- }
-
- protected InputStream getUserGeometryStream(String username, String name) throws IOException {
- return spaceContext.getUserGeometryStream(username, null);
- }
-
- public InputStream getThingAnimationStream(long thingID, long animationID) throws IOException {
- return spaceContext.getThingAnimationStream(thingID, animationID);
- }
-
- public InputStream getUserAnimationStream(String username, long animationID) throws IOException {
- return spaceContext.getUserAnimationStream(username, animationID);
- }
-
- public InputStream getUserSkinMapStream(String username) throws IOException {
- return spaceContext.getUserSkinMapStream(username);
- }
-
- public String getThingScript(long thingID) throws IOException {
- return spaceContext.getThingScript(thingID);
- }
-
public InputStream getPageContentStream(long thingID, long pageID) throws IOException {
return spaceContext.getPageContentStream(thingID, pageID);
}
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/Template.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/Template.java 2007-09-27 18:06:34 UTC (rev 445)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/Template.java 2007-09-27 18:06:43 UTC (rev 446)
@@ -18,12 +18,14 @@
public class Template {
+ public static final float[] LOD_DISTANCES = { 15f, 75f };
+
private long templateID = -1;
-
+
private String ownerUsername = null;
-
+
private String displayName = null;
-
+
public Template(long templateID, String ownerUsername, String displayName) {
ArgumentUtils.assertNotNegative(templateID);
this.templateID = templateID;
@@ -32,7 +34,7 @@
ArgumentUtils.assertNotEmpty(displayName);
this.displayName = displayName;
}
-
+
public Template(TemplateDocument templateDoc) {
this(templateDoc.getTemplateID(), templateDoc.getOwnerUsername(), templateDoc.getDisplayName());
}
Added: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/TemplateDataProvider.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/TemplateDataProvider.java (rev 0)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/TemplateDataProvider.java 2007-09-27 18:06:43 UTC (rev 446)
@@ -0,0 +1,12 @@
+package com.ogoglio.client.model;
+
+import java.io.InputStream;
+
+public interface TemplateDataProvider {
+
+ public InputStream getTemplateGeometry(String username, long templateID, int lod);
+
+ public InputStream getTemplateResource(String username, long templateID, String resourceName);
+
+ public String getTemplateScript(String username, long templateID);
+}
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/Thing.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/Thing.java 2007-09-27 18:06:34 UTC (rev 445)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/Thing.java 2007-09-27 18:06:43 UTC (rev 446)
@@ -24,7 +24,7 @@
import com.ogoglio.xml.ShapeDocument;
import com.ogoglio.xml.ThingDocument;
-public class Thing implements GeometryProvider {
+public class Thing {
private long thingID = -1;
@@ -113,23 +113,6 @@
public Template getTemplate() {
return template;
}
-
- public InputStream getGeometryStream(int lodIndex) throws IOException {
- return space.getThingGeometryStream(this, lodIndex);
- }
-
- public InputStream getSubGeometryStream(String name) throws IOException {
- return space.getThingResourceStream(this, name);
- }
-
- public InputStream getAnimationStream(long animationID) throws IOException {
- return space.getThingAnimationStream(thingID, animationID);
- }
-
- public InputStream getSkinMapStream() throws IOException {
- throw new IllegalStateException("Things don't have skin maps");
- }
-
public String getOwnerUsername() {
return ownerUsername;
}
@@ -145,18 +128,10 @@
this.thingID = newThingID;
}
- public String getScript() throws IOException {
- return space.getThingScript(thingID);
- }
-
- //XXX FIXME: Should this be synchronized? The locking semantics of this object are really
- //XXX FIXME: unclear and I am worred that I am going to mess up something in the threading
public void reload() {
- pages.clear(); // is this a lock as well?
- synchronized (shapes) { //IES: This looks like it's being used as a lock in other places, so I did so here
- shapes.clear(); //IES CHANGE: I believe this should be cleared at reload time or there are shapes
- //IES CHANGE: that can be "leftover" if the geometry files of the template
- //IES CHANGE: change names
+ pages.clear();
+ synchronized (shapes) {
+ shapes.clear();
}
space.notifyThingReload(this);
}
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/User.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/User.java 2007-09-27 18:06:34 UTC (rev 445)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/User.java 2007-09-27 18:06:43 UTC (rev 446)
@@ -15,13 +15,12 @@
package com.ogoglio.client.model;
import java.io.IOException;
-import java.io.InputStream;
import javax.media.j3d.Transform3D;
import com.ogoglio.util.ArgumentUtils;
-public class User implements GeometryProvider {
+public class User {
private Space space = null;
@@ -63,8 +62,8 @@
space.notifyUserMotionStopped(this, position);
}
- public void playAnimation(long animationID) {
- space.notifyUserAnimationStarted(this, animationID);
+ public void playAnimation(String animationName) {
+ space.notifyUserAnimationStarted(this, animationName);
}
public String toString() {
@@ -87,22 +86,6 @@
return username;
}
- public InputStream getGeometryStream(int lodIndex) throws IOException {
- return space.getUserGeometryStream(username);
- }
-
- public InputStream getSubGeometryStream(String name) throws IOException {
- return space.getUserGeometryStream(username, name);
- }
-
- public InputStream getAnimationStream(long animationID) throws IOException {
- return space.getUserAnimationStream(username, animationID);
- }
-
- public InputStream getSkinMapStream() throws IOException {
- return space.getUserSkinMapStream(username);
- }
-
public void setPosition(Transform3D newPosition) {
position.set(newPosition);
}
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/util/BodyConstants.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/util/BodyConstants.java 2007-09-27 18:06:34 UTC (rev 445)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/util/BodyConstants.java 2007-09-27 18:06:43 UTC (rev 446)
@@ -1,80 +1,10 @@
package com.ogoglio.util;
-import java.awt.Image;
-import java.io.InputStream;
public class BodyConstants {
- public static final String TEXTURE_RESOURCE_PATH = "avatar/";
+ public static final String DEFAULT_ANIMATION_NAME = "default";
- public static Image MALE_BASE_SKIN_TEXTURE1 = UIConstants.loadImageFromResource(TEXTURE_RESOURCE_PATH + "male1.jpg");
+ public static final String WALK_ANIMATION_NAME = "walk";
- public static Image FEMALE_BASE_SKIN_TEXTURE1 = UIConstants.loadImageFromResource(TEXTURE_RESOURCE_PATH + "female1.jpg");
-
- public static final int BASE_SKIN_TEXTURE_WIDTH = MALE_BASE_SKIN_TEXTURE1.getWidth(null);
-
- public static final int BASE_SKIN_TEXTURE_HEIGHT = MALE_BASE_SKIN_TEXTURE1.getHeight(null);
-
- public static final Image[] MALE_BASE_SKIN_TEXTURES = { MALE_BASE_SKIN_TEXTURE1 };
-
- public static final Image[] FEMALE_BASE_SKIN_TEXTURES = { FEMALE_BASE_SKIN_TEXTURE1 };
-
- public static final Image EYES_1 = UIConstants.loadImageFromResource(TEXTURE_RESOURCE_PATH + "Eyes1.gif");
-
- public static final Image EYES_2 = UIConstants.loadImageFromResource(TEXTURE_RESOURCE_PATH + "Eyes2.gif");
-
- public static final Image[] EYES = { EYES_1, EYES_2 };
-
- public static final Image NOSE_1 = UIConstants.loadImageFromResource(TEXTURE_RESOURCE_PATH + "Nose1.gif");
-
- public static final Image NOSE_2 = UIConstants.loadImageFromResource(TEXTURE_RESOURCE_PATH + "Nose2.gif");
-
- public static final Image[] NOSES = { NOSE_1, NOSE_2 };
-
- public static final Image MOUTH_1 = UIConstants.loadImageFromResource(TEXTURE_RESOURCE_PATH + "Mouth1.gif");
-
- public static final Image MOUTH_2 = UIConstants.loadImageFromResource(TEXTURE_RESOURCE_PATH + "Mouth2.gif");
-
- public static final Image[] MOUTHES = { MOUTH_1, MOUTH_2 };
-
- public static final String DEFAULT_ANIMATION_PATH = "avatar/avatar.bvh";
-
- public static final String WALK_ANIMATION_PATH = "avatar/avatar-walk.bvh";
-
- public static final String WAVE_ANIMATION_PATH = "avatar/avatar-wave.bvh";
-
- public static final String POINT_ANIMATION_PATH = "avatar/avatar-point.bvh";
-
- public static final String LAUGH_ANIMATION_PATH = "avatar/avatar-laugh.bvh";
-
- public static final String CLAP_ANIMATION_PATH = "avatar/avatar-clap.bvh";
-
- public static final String[] USER_ANIMATION_COMMANDS = { "default", "walk", "wave", "point", "laugh", "clap" };
-
- public static final String[] USER_ANIMATION_PATHS = { DEFAULT_ANIMATION_PATH, WALK_ANIMATION_PATH, WAVE_ANIMATION_PATH, POINT_ANIMATION_PATH, LAUGH_ANIMATION_PATH, CLAP_ANIMATION_PATH };
-
- public static final String MALE_AVATAR_PATH = "avatar/male.obj";
-
- public static final String MALE_SMAP_PATH = "avatar/male.smap";
-
- public static final String FEMALE_AVATAR_PATH = "avatar/female.obj";
-
- public static final String FEMALE_SMAP_PATH = "avatar/female.smap";
-
- public static InputStream getUserAnimation(int animationID) {
- if (animationID < 0 || animationID >= USER_ANIMATION_PATHS.length) {
- return null;
- }
- return UIConstants.getResource(USER_ANIMATION_PATHS[animationID]);
- }
-
- public static InputStream getUserAnimation(String command) {
- for (int i = 0; i < USER_ANIMATION_COMMANDS.length; i++) {
- if (USER_ANIMATION_COMMANDS[i].equals(command)) {
- return UIConstants.getResource(USER_ANIMATION_PATHS[i]);
- }
- }
- return null;
- }
-
}
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/util/StreamUtils.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/util/StreamUtils.java 2007-09-27 18:06:34 UTC (rev 445)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/util/StreamUtils.java 2007-09-27 18:06:43 UTC (rev 446)
@@ -90,4 +90,14 @@
return results.toString();
}
+ public static void discardInput(InputStream input) throws IOException {
+ StringBuffer results = new StringBuffer();
+ byte[] buffer = new byte[4096];
+ int read = -1;
+ while ((read = input.read(buffer)) > 0) {
+ results.append(new String(buffer, 0, read));
+ }
+ input.close();
+ }
+
}
Added: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DBodyData.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DBodyData.java (rev 0)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DBodyData.java 2007-09-27 18:06:43 UTC (rev 446)
@@ -0,0 +1,107 @@
+package com.ogoglio.viewer.j3d;
+
+import java.awt.image.BufferedImage;
+
+import javax.media.j3d.GeometryArray;
+import javax.media.j3d.IndexedTriangleArray;
+import javax.media.j3d.TriangleArray;
+
+import com.ogoglio.util.ArgumentUtils;
+import com.ogoglio.util.BodyConstants;
+import com.ogoglio.viewer.j3d.bvh.Bvh;
+import com.ogoglio.viewer.j3d.smap.SkinMap;
+
+public class J3DBodyData {
+ private IndexedTriangleArray bodyGeometry = null;
+
+ private Bvh[] animations = null;
+
+ private SkinMap skinMap = null;
+
+ private BufferedImage baseTexture = null;
+
+ private Bvh defaultAnimation = null;
+
+ public J3DBodyData(IndexedTriangleArray bodyGeometry, Bvh[] animations, SkinMap skinMap, BufferedImage baseTexture) {
+ ArgumentUtils.assertNotNull(bodyGeometry);
+ this.bodyGeometry = bodyGeometry;
+ ArgumentUtils.assertNotNull(animations);
+ this.animations = animations;
+ ArgumentUtils.assertNotNull(skinMap);
+ this.skinMap = skinMap;
+ ArgumentUtils.assertNotNull(baseTexture);
+ this.baseTexture = baseTexture;
+
+ for (int i = 0; i < animations.length; i++) {
+ if (animations[i].getName().equals(BodyConstants.DEFAULT_ANIMATION_NAME)) {
+ defaultAnimation = animations[i];
+ }
+ }
+ if (defaultAnimation == null) {
+ throw new IllegalStateException("Could not load default animation");
+ }
+ }
+
+ public GeometryArray cloneBodyGeometry(){
+ float[] vertexArray = bodyGeometry.getCoordRefFloat();
+
+ int[] coordinateIndices = new int[bodyGeometry.getIndexCount()];
+ bodyGeometry.getCoordinateIndices(0, coordinateIndices);
+
+ float[] textureCoordinateArray = bodyGeometry.getTexCoordRefFloat(0);
+ int[] textureCoordinateIndices = new int[bodyGeometry.getIndexCount()];
+ bodyGeometry.getTextureCoordinateIndices(0, 0, textureCoordinateIndices);
+
+ float[] normalArray = bodyGeometry.getNormalRefFloat();
+ int[] normalIndices = new int[bodyGeometry.getIndexCount()];
+ bodyGeometry.getNormalIndices(0, normalIndices);
+
+ IndexedTriangleArray array = new IndexedTriangleArray(vertexArray.length / 3, TriangleArray.COORDINATES | TriangleArray.NORMALS | TriangleArray.TEXTURE_COORDINATE_2 | TriangleArray.BY_REFERENCE, coordinateIndices.length);
+ array.setCoordRefFloat((float[])vertexArray.clone()); //we clone so that we can mess with individual bodies during animation
+ array.setCoordinateIndices(0, coordinateIndices);
+ array.setTextureCoordinateIndices(0, 0, textureCoordinateIndices);
+ array.setTexCoordRefFloat(0, textureCoordinateArray);
+ array.setNormalIndices(0, normalIndices);
+ array.setNormalRefFloat(normalArray);
+
+ array.setCapability(GeometryArray.ALLOW_COORDINATE_READ);
+ array.setCapability(GeometryArray.ALLOW_COORDINATE_WRITE);
+ array.setCapability(GeometryArray.ALLOW_INTERSECT);
+ array.setCapability(GeometryArray.ALLOW_REF_DATA_WRITE);
+ return array;
+ }
+
+ public GeometryArray getBodyGeometry() {
+ return bodyGeometry;
+ }
+
+ public void cleanup() {
+ bodyGeometry = null;
+ animations = null;
+ skinMap = null;
+ baseTexture = null;
+ }
+
+ public Bvh[] getAnimations() {
+ if(animations == null){
+ throw new IllegalStateException("Body has been cleaned");
+ }
+ return animations;
+ }
+
+ public SkinMap getSkinMap() {
+ return skinMap;
+ }
+
+ public BufferedImage getBaseTexture() {
+ return baseTexture;
+ }
+
+ public String toString() {
+ return "BodyData (" + bodyGeometry + ", " + skinMap + ", " + baseTexture + ")";
+ }
+
+ public Bvh getDefaultAnimation() {
+ return defaultAnimation;
+ }
+}
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DDataCache.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DDataCache.java 2007-09-27 18:06:34 UTC (rev 445)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DDataCache.java 2007-09-27 18:06:43 UTC (rev 446)
@@ -17,17 +17,27 @@
public class J3DDataCache {
- private HashMap templateDataMap = new HashMap(); //maps template guid to GeometryCacheEntry objects
+ private HashMap bodyDataMap = new HashMap(); //maps body names to J3DBodyData objects
+
+ private HashMap templateDataMap = new HashMap(); //maps template guid to J3DTemplateData objects
public J3DTemplateData getTemplateData(long templateID, int lod) {
- return (J3DTemplateData) templateDataMap.get(createGUID(templateID, lod));
+ return (J3DTemplateData) templateDataMap.get(createTemplateGUID(templateID, lod));
}
+ public void putBodyData(String bodyName, J3DBodyData data){
+ bodyDataMap.put(bodyName, data);
+ }
+
+ public J3DBodyData getBodyData(String bodyName){
+ return (J3DBodyData)bodyDataMap.get(bodyName);
+ }
+
public void putTemplateData(long templateID, int lod, J3DTemplateData entry) {
- templateDataMap.put(createGUID(templateID, lod), entry);
+ templateDataMap.put(createTemplateGUID(templateID, lod), entry);
}
- private String createGUID(long id, int lod){
+ private String createTemplateGUID(long id, int lod){
return id + "-" + lod;
}
@@ -48,5 +58,13 @@
for (int i = 0; i < data.length; i++) {
data[i].cleanup();
}
+ J3DBodyData[] bodiesData = getAllBodyData();
+ for (int i = 0; i < bodiesData.length; i++) {
+ bodiesData[i].cleanup();
+ }
}
+
+ private J3DBodyData[] getAllBodyData() {
+ return (J3DBodyData[])bodyDataMap.values().toArray(new J3DBodyData[0]);
+ }
}
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DDataManager.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DDataManager.java 2007-09-27 18:06:34 UTC (rev 445)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/J3DDataManager.java 2007-09-27 18:06:43 UTC (rev 446)
@@ -1,36 +1,54 @@
package com.ogoglio.viewer.j3d;
import java.awt.Image;
+import java.awt.image.BufferedImage;
import java.io.BufferedInputStream;
+import java.io.IOException;
import java.io.InputStream;
import java.lang.management.ManagementFactory;
import java.lang.management.MemoryMXBean;
import java.util.HashMap;
import java.util.Vector;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipInputStream;
import javax.imageio.ImageIO;
import javax.media.j3d.Appearance;
import javax.media.j3d.Geometry;
import javax.media.j3d.GeometryArray;
import javax.media.j3d.ImageComponent;
+import javax.media.j3d.IndexedTriangleArray;
import javax.media.j3d.Material;
import javax.media.j3d.RenderingAttributes;
import javax.media.j3d.Texture;
import javax.media.j3d.TextureAttributes;
import javax.media.j3d.TransparencyAttributes;
+import javax.media.j3d.TriangleArray;
import javax.vecmath.Color3f;
import javax.vecmath.Point3f;
import javax.vecmath.TexCoord2f;
+import javax.vecmath.Vector3f;
-import com.ogoglio.client.model.GeometryProvider;
+import com.ogoglio.client.model.BodyDataProvider;
+import com.ogoglio.client.model.Template;
+import com.ogoglio.client.model.TemplateDataProvider;
+import com.ogoglio.util.ArgumentUtils;
+import com.ogoglio.util.LimitedInputStream;
import com.ogoglio.util.Log;
+import com.ogoglio.util.StreamUtils;
+import com.ogoglio.util.UIConstants;
+import com.ogoglio.viewer.j3d.bvh.Bvh;
+import com.ogoglio.viewer.j3d.bvh.BvhParseException;
+import com.ogoglio.viewer.j3d.bvh.BvhParser;
import com.ogoglio.viewer.j3d.obj.Obj;
import com.ogoglio.viewer.j3d.obj.ObjMtl;
import com.ogoglio.viewer.j3d.obj.ObjParseException;
import com.ogoglio.viewer.j3d.obj.ObjParser;
+import com.ogoglio.viewer.j3d.smap.SkinMap;
+import com.ogoglio.viewer.j3d.smap.SkinMapParseException;
+import com.ogoglio.viewer.j3d.smap.SkinMapParser;
import com.sun.j3d.utils.geometry.GeometryInfo;
import com.sun.j3d.utils.geometry.NormalGenerator;
-import com.sun.j3d.utils.geometry.Stripifier;
import com.sun.j3d.utils.image.TextureLoader;
public class J3DDataManager {
@@ -50,21 +68,138 @@
DEFAULT_APPEARANCE.setMaterial(DEFAULT_MATERIAL);
}
- private GeometryProvider errorGeometryProvider = null;
+ public static final String[] BODY_NAMES = { "mike", "andrea" };
+ private TemplateDataProvider templateDataProvider = null;
+
+ private BodyDataProvider bodyDataProvider = null;
+
private J3DDataCache dataCache = new J3DDataCache();
private boolean loadAppearances = true;
private boolean complainedAboutMemory = false;
-
- public J3DDataManager(boolean loadAppearances, GeometryProvider errorGeometryProvider) {
+
+ public J3DDataManager(boolean loadAppearances, TemplateDataProvider templateDataProvider, BodyDataProvider bodyDataProvider) {
this.loadAppearances = loadAppearances;
- this.errorGeometryProvider = errorGeometryProvider;
+ this.templateDataProvider = templateDataProvider;
+ this.bodyDataProvider = bodyDataProvider;
}
- public J3DTemplateData[] getTemplateData(long templateID, GeometryProvider geoProvider, boolean useCache) {
- J3DTemplateData[] results = new J3DTemplateData[GeometryProvider.LOD_DISTANCES.length + 1];
+ public J3DBodyData getBodyData(String bodyName) {
+ J3DBodyData data = dataCache.getBodyData(bodyName);
+ if (data != null) {
+ return data;
+ }
+
+ ZipInputStream bodyDataInput = bodyDataProvider.getBodyData(bodyName);
+ if (bodyDataInput == null) {
+ throw new IllegalStateException("Trevor didn't implement an error body for an unknown body name");
+ }
+
+ J3DBodyData bodyData = readBodyData(bodyDataInput);
+ if (bodyData == null) {
+ throw new IllegalStateException("Trevor didn't implement an error body for an illegible body");
+ }
+ dataCache.putBodyData(bodyName, bodyData);
+ return bodyData;
+ }
+
+ private J3DBodyData readBodyData(ZipInputStream bodyDataStream) {
+ IndexedTriangleArray array = null;
+ SkinMap skinMap = null;
+ Vector animations = new Vector();
+ BufferedImage baseTexture = null;
+ try {
+ ZipEntry entry = null;
+ while ((entry = bodyDataStream.getNextEntry()) != null) {
+ LimitedInputStream entryStream = new LimitedInputStream(bodyDataStream, (int) entry.getSize());
+ if (entry.getName().equals("geometry/body.obj")) {
+ ObjParser parser = new ObjParser(entryStream);
+ Obj bodyObj = parser.parse();
+ array = generateBodyGeometry(bodyObj);
+ } else if (entry.getName().equals("geometry/body.smap")) {
+ SkinMapParser parser = new SkinMapParser(entryStream);
+ skinMap = parser.parse();
+ } else if (entry.getName().startsWith("animation/") && entry.getName().indexOf(".bvh") != -1) {
+ String name = entry.getName().substring("animation/".length(), entry.getName().length() - 4);
+ BvhParser parser = new BvhParser(name, entryStream);
+ animations.add(parser.parse());
+ } else if (entry.getName().equals("texture/body.jpg")) {
+ baseTexture = ImageIO.read(entryStream);
+ } else { //discard the data
+ StreamUtils.discardInput(new LimitedInputStream(bodyDataStream, (int) entry.getSize()));
+ }
+ }
+ } catch (IOException e) {
+ throw new IllegalStateException("Trevor didn't implement an error body: " + e);
+ } catch (ObjParseException e) {
+ throw new IllegalStateException("Trevor didn't implement an error body: " + e);
+ } catch (SkinMapParseException e) {
+ throw new IllegalStateException("Trevor didn't implement an error body: " + e);
+ } catch (BvhParseException e) {
+ throw new IllegalStateException("Trevor didn't implement an error body: " + e);
+ }
+
+ return new J3DBodyData(array, (Bvh[]) animations.toArray(new Bvh[0]), skinMap, baseTexture);
+ }
+
+ private IndexedTriangleArray generateBodyGeometry(Obj obj) {
+ int indicesTotal = obj.faceCount() * 3;
+ int[] coordinateIndices = new int[indicesTotal];
+ int[] normalIndices = new int[indicesTotal];
+ int[] textureCoordinateIndices = new int[indicesTotal];
+ int cIndex = 0;
+ for (int i = 0; i < obj.faceCount(); i++) {
+ int[][] indices = obj.getFaceIndices(i + 1);
+ for (int j = 0; j < indices.length; j++) {
+ coordinateIndices[cIndex] = indices[j][0] - 1;
+ textureCoordinateIndices[cIndex] = indices[j][1] - 1;
+ normalIndices[cIndex] = indices[j][2] - 1;
+ cIndex++;
+ }
+ }
+
+ Point3f[] vertices = obj.getVertices();
+ float[] vertexArray = new float[vertices.length * 3];
+ for (int i = 0; i < vertices.length; i++) {
+ vertexArray[i * 3] = vertices[i].x;
+ vertexArray[(i * 3) + 1] = vertices[i].y;
+ vertexArray[(i * 3) + 2] = vertices[i].z;
+ }
+
+ Point3f[] texCoords = obj.getTextureVertices();
+ float[] textureCoordinateArray = new float[texCoords.length * 2];
+ for (int i = 0; i < texCoords.length; i++) {
+ textureCoordinateArray[i * 2] = texCoords[i].x;
+ textureCoordinateArray[(i * 2) + 1] = texCoords[i].y;
+ }
+
+ float[] normalArray = new float[obj.normalCount() * 3];
+ Vector3f[] normals = obj.getNormals();
+ for (int i = 0; i < normals.length; i++) {
+ normalArray[i * 3] = normals[i].x;
+ normalArray[(i * 3) + 1] = normals[i].y;
+ normalArray[(i * 3) + 1] = normals[i].z;
+ }
+
+ IndexedTriangleArray array = new IndexedTriangleArray(vertices.length, TriangleArray.COORDINATES | TriangleArray.NORMALS | TriangleArray.TEXTURE_COORDINATE_2 | TriangleArray.BY_REFERENCE, indicesTotal);
+ array.setCoordRefFloat(vertexArray);
+ array.setCoordinateIndices(0, coordinateIndices);
+ array.setTextureCoordinateIndices(0, 0, textureCoordinateIndices);
+ array.setTexCoordRefFloat(0, textureCoordinateArray);
+ array.setNormalIndices(0, normalIndices);
+ array.setNormalRefFloat(normalArray);
+
+ array.setCapability(GeometryArray.ALLOW_COORDINATE_READ);
+ array.setCapability(GeometryArray.ALLOW_COORDINATE_WRITE);
+ array.setCapability(GeometryArray.ALLOW_INTERSECT);
+ array.setCapability(GeometryArray.ALLOW_REF_DATA_WRITE);
+ return array;
+ }
+
+ public J3DTemplateData[] getTemplateData(String username, long templateID, boolean useCache) {
+ J3DTemplateData[] results = new J3DTemplateData[Template.LOD_DISTANCES.length + 1];
if (useCache) {
boolean hitCache = false;
for (int i = 0; i < results.length; i++) {
@@ -76,7 +211,7 @@
}
}
- fetchTemplateData(templateID, geoProvider, results);
+ fetchTemplateData(username, templateID, results);
for (int i = 0; i < results.length; i++) {
if (results[i] == null) {
continue;
@@ -87,8 +222,11 @@
return results;
}
- private void fetchTemplateData(long templateID, GeometryProvider geoProvider, J3DTemplateData[] results) {
- Obj[] objs = getObjs(geoProvider, templateID);
+ private void fetchTemplateData(String username, long templateID, J3DTemplateData[] results) {
+ ArgumentUtils.assertNotNull(username);
+ ArgumentUtils.assertNotNegative(templateID);
+
+ Obj[] objs = getObjs(username, templateID);
HashMap textures = new HashMap();
for (int i = 0; i < objs.length; i++) {
@@ -99,16 +237,16 @@
Obj.Group[] groups = objs[i].getGroups();
for (int g = 0; g < groups.length; g++) {
- Geometry geometry = generateGeometry(geoProvider, groups[g]);
+ Geometry geometry = generateTemplateGeometry(groups[g]);
results[i].putGeometry(groups[g].getName(), geometry);
- Appearance appearance = generateAppearance(geoProvider, groups[g], textures);
+ Appearance appearance = generateTemplateAppearance(username, templateID, groups[g], textures);
results[i].putAppearances(groups[g].getName(), appearance);
}
}
textures.clear();
}
- private Geometry generateGeometry(GeometryProvider geoProvider, Obj.Group group) {
+ private Geometry generateTemplateGeometry(Obj.Group group) {
//TODO consider a more memory efficient way to load shapes
Obj.Range[] ranges = group.getRanges();
if (ranges.length == 0) {
@@ -187,11 +325,11 @@
return faceIndices.length;
}
- private Appearance generateAppearance(GeometryProvider geoProvider, Obj.Group group, HashMap textures) {
+ private Appearance generateTemplateAppearance(String username, long templateID, Obj.Group group, HashMap textures) {
if (!loadAppearances) {
return DEFAULT_APPEARANCE;
}
-
+
Obj.Range[] ranges = group.getRanges();
ObjMtl.Material material = group.getObj().getMaterialForFace(ranges[0].getLower());
if (material == null) {
@@ -229,7 +367,7 @@
Texture texImage = (Texture) textures.get(material.getDiffuseMapName());
if (texImage == null) {
- InputStream imageStream = geoProvider.getSubGeometryStream(material.getDiffuseMapName(...
[truncated message content] |
|
From: <tre...@us...> - 2007-09-27 18:06:30
|
Revision: 445
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=445&view=rev
Author: trevorolio
Date: 2007-09-27 11:06:34 -0700 (Thu, 27 Sep 2007)
Log Message:
-----------
Halfway through a grand avatar rewhack.
In this half I switch over to using downloadable wadges of avatar data instead of in-jar resources for avatar data.
Removed the GeomtryProvider interface, which is now replaced by TemplateDataProvider and BodyDataProvider interfaces which are used to fill the J3DDataManager with cached versions of all network accessed resources. This allows us to control memory usage, but also (eventually) reduces our memory footprint as we only make copies of data which is avatar specific.
Modified Paths:
--------------
maven/trunk/ogoglio-appdev/src/main/java/com/ogoglio/appdev/servlet/AbstractResourceServlet.java
Modified: maven/trunk/ogoglio-appdev/src/main/java/com/ogoglio/appdev/servlet/AbstractResourceServlet.java
===================================================================
--- maven/trunk/ogoglio-appdev/src/main/java/com/ogoglio/appdev/servlet/AbstractResourceServlet.java 2007-09-27 17:13:38 UTC (rev 444)
+++ maven/trunk/ogoglio-appdev/src/main/java/com/ogoglio/appdev/servlet/AbstractResourceServlet.java 2007-09-27 18:06:34 UTC (rev 445)
@@ -224,7 +224,6 @@
outputStream.flush();
outputStream.close();
}
- System.out.println("FART ABOUT TOSET STATUS:"+connection.getResponseCode());
response.setStatus(connection.getResponseCode());
Map headers = connection.getHeaderFields();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tre...@us...> - 2007-09-27 17:17:57
|
Revision: 444
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=444&view=rev
Author: trevorolio
Date: 2007-09-27 10:13:38 -0700 (Thu, 27 Sep 2007)
Log Message:
-----------
Halfway through a grand avatar rewhack.
In this half I switch over to using downloadable wadges of avatar data instead of in-jar resources for avatar data.
Removed the GeomtryProvider interface, which is now replaced by TemplateDataProvider and BodyDataProvider interfaces which are used to fill the J3DDataManager with cached versions of all network accessed resources. This allows us to control memory usage, but also (eventually) reduces our memory footprint as we only make copies of data which is avatar specific.
Added Paths:
-----------
maven/trunk/ogoglio-bodies/.classpath
maven/trunk/ogoglio-bodies/.project
maven/trunk/ogoglio-bodies/ogoglio-body-andrea/
maven/trunk/ogoglio-bodies/ogoglio-body-andrea/pom.xml
maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/
maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/main/
maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/main/java/
maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/main/resources/
maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/main/resources/animation/
maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/main/resources/animation/clap.bvh
maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/main/resources/animation/default.bvh
maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/main/resources/animation/laugh.bvh
maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/main/resources/animation/point.bvh
maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/main/resources/animation/walk.bvh
maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/main/resources/animation/wave.bvh
maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/main/resources/doc/
maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/main/resources/doc/license.txt
maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/main/resources/geometry/
maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/main/resources/geometry/body.obj
maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/main/resources/geometry/body.smap
maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/main/resources/sourceArt/
maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/main/resources/sourceArt/Andrea.blend
maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/main/resources/texture/
maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/main/resources/texture/body.jpg
maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/test/
maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/test/java/
maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/test/resources/
maven/trunk/ogoglio-bodies/ogoglio-body-mike/
maven/trunk/ogoglio-bodies/ogoglio-body-mike/pom.xml
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/java/
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/animation/
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/animation/clap.bvh
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/animation/default.bvh
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/animation/laugh.bvh
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/animation/point.bvh
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/animation/walk.bvh
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/animation/wave.bvh
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/doc/
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/doc/license.txt
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/geometry/
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/geometry/body.obj
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/geometry/body.smap
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/sourceArt/
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/sourceArt/mike.blend
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/texture/
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/main/resources/texture/body.jpg
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/test/
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/test/java/
maven/trunk/ogoglio-bodies/ogoglio-body-mike/src/test/resources/
maven/trunk/ogoglio-bodies/ogoglio-body-sim/
maven/trunk/ogoglio-bodies/ogoglio-body-sim/pom.xml
maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/
maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/main/
maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/main/java/
maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/main/resources/
maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/main/resources/animation/
maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/main/resources/animation/default.bvh
maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/main/resources/animation/walk.bvh
maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/main/resources/doc/
maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/main/resources/geometry/
maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/main/resources/geometry/body.obj
maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/main/resources/geometry/body.smap
maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/main/resources/sourceArt/
maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/main/resources/texture/
maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/main/resources/texture/body.jpg
maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/test/
maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/test/java/
maven/trunk/ogoglio-bodies/ogoglio-body-sim/src/test/resources/
maven/trunk/ogoglio-bodies/pom.xml
Added: maven/trunk/ogoglio-bodies/.classpath
===================================================================
--- maven/trunk/ogoglio-bodies/.classpath (rev 0)
+++ maven/trunk/ogoglio-bodies/.classpath 2007-09-27 17:13:38 UTC (rev 444)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
Added: maven/trunk/ogoglio-bodies/.project
===================================================================
--- maven/trunk/ogoglio-bodies/.project (rev 0)
+++ maven/trunk/ogoglio-bodies/.project 2007-09-27 17:13:38 UTC (rev 444)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>ogoglio-bodies</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.maven.ide.eclipse.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.maven.ide.eclipse.maven2Nature</nature>
+ </natures>
+</projectDescription>
Added: maven/trunk/ogoglio-bodies/ogoglio-body-andrea/pom.xml
===================================================================
--- maven/trunk/ogoglio-bodies/ogoglio-body-andrea/pom.xml (rev 0)
+++ maven/trunk/ogoglio-bodies/ogoglio-body-andrea/pom.xml 2007-09-27 17:13:38 UTC (rev 444)
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>com.ogoglio</groupId>
+ <artifactId>ogoglio</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <relativePath>../ogoglio-bodies</relativePath>
+ </parent>
+
+ <groupId>com.ogoglio.body</groupId>
+ <artifactId>ogoglio-body-andrea</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ </plugins>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>false</filtering>
+ <includes>
+ <include>doc/*</include>
+ <include>animation/*</include>
+ <include>geometry/*</include>
+ <include>texture/*</include>
+ </includes>
+ <excludes>
+ <exclude>sourceArt</exclude>
+ </excludes>
+ </resource>
+ </resources>
+ </build>
+
+ <dependencies></dependencies>
+</project>
+
Added: maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/main/resources/animation/clap.bvh
===================================================================
--- maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/main/resources/animation/clap.bvh (rev 0)
+++ maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/main/resources/animation/clap.bvh 2007-09-27 17:13:38 UTC (rev 444)
@@ -0,0 +1,159 @@
+HIERARCHY
+ROOT hip
+{
+ OFFSET 0.00 0.00 0.00
+ CHANNELS 6 Xposition Yposition Zposition Xrotation Zrotation Yrotation
+ JOINT abdomen
+ {
+ OFFSET 0.000000 0.000000 0.000000
+ CHANNELS 3 Xrotation Zrotation Yrotation
+ JOINT chest
+ {
+ OFFSET 0.000000 5.018152 -1.882228
+ CHANNELS 3 Xrotation Zrotation Yrotation
+ JOINT neckDummy
+ {
+ OFFSET 0.000000 8.316447 0.784897
+ CHANNELS 3 Xrotation Yrotation Zrotation
+ JOINT neck
+ {
+ OFFSET 0.000000 2.280413 -0.392801
+ CHANNELS 3 Xrotation Zrotation Yrotation
+ JOINT head
+ {
+ OFFSET 0.000000 3.496879 0.529469
+ CHANNELS 3 Xrotation Zrotation Yrotation
+ JOINT figureHair
+ {
+ OFFSET 0.000000 4.699570 0.720622
+ CHANNELS 3 Zrotation Yrotation Xrotation
+ End Site
+ {
+ OFFSET 0.000000 -6.419331 0.000000
+ }
+ }
+ }
+ }
+ }
+ JOINT lCollar
+ {
+ OFFSET 0.599237 8.316447 0.784897
+ CHANNELS 3 Yrotation Zrotation Xrotation
+ JOINT lShldr
+ {
+ OFFSET 6.421198 0.010146 -0.332128
+ CHANNELS 3 Zrotation Yrotation Xrotation
+ JOINT lForeArm
+ {
+ OFFSET 10.552783 0.025574 0.125508
+ CHANNELS 3 Yrotation Zrotation Xrotation
+ JOINT lHand
+ {
+ OFFSET 11.035963 0.319619 0.041520
+ CHANNELS 3 Zrotation Yrotation Xrotation
+ End Site
+ {
+ OFFSET 10.353753 0.000000 0.000000
+ }
+ }
+ }
+ }
+ }
+ JOINT rCollar
+ {
+ OFFSET -0.599237 8.316447 0.784897
+ CHANNELS 3 Yrotation Zrotation Xrotation
+ JOINT rShldr
+ {
+ OFFSET -6.421198 0.010146 -0.332128
+ CHANNELS 3 Zrotation Yrotation Xrotation
+ JOINT rForeArm
+ {
+ OFFSET -10.552783 0.025574 0.125508
+ CHANNELS 3 Yrotation Zrotation Xrotation
+ JOINT rHand
+ {
+ OFFSET -11.035963 0.319619 0.041520
+ CHANNELS 3 Zrotation Yrotation Xrotation
+ End Site
+ {
+ OFFSET -10.353753 0.000000 0.000000
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ JOINT lThigh
+ {
+ OFFSET 4.500466 -6.400484 -1.832696
+ CHANNELS 3 Xrotation Zrotation Yrotation
+ JOINT lShin
+ {
+ OFFSET -1.359117 -18.918689 1.179887
+ CHANNELS 3 Xrotation Zrotation Yrotation
+ JOINT lFoot
+ {
+ OFFSET -0.652380 -17.215186 -0.312137
+ CHANNELS 3 Xrotation Yrotation Zrotation
+ End Site
+ {
+ OFFSET 0.000000 0.000000 10.353752
+ }
+ }
+ }
+ }
+ JOINT rThigh
+ {
+ OFFSET -4.500466 -6.400484 -1.832696
+ CHANNELS 3 Xrotation Zrotation Yrotation
+ JOINT rShin
+ {
+ OFFSET 1.359117 -18.918689 1.179887
+ CHANNELS 3 Xrotation Zrotation Yrotation
+ JOINT rFoot
+ {
+ OFFSET 0.652380 -17.215186 -0.312137
+ CHANNELS 3 Xrotation Yrotation Zrotation
+ End Site
+ {
+ OFFSET 0.000000 0.000000 10.353752
+ }
+ }
+ }
+ }
+}
+MOTION
+Frames: 30
+Frame Time: 0.055556
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -70.100700 9.978770 15.991600 -22.515600 -9.303740 0.147736 5.969490 -0.173112 0.175734 -2.021920 5.690310 -0.063351 70.100700 -9.978770 15.991600 22.458700 9.274270 0.122349 -5.969490 0.173112 0.175734 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 -0.840470 -0.504482 -0.172233 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -66.714951 0.810504 15.136398 -33.059364 -0.471056 6.272503 -0.085772 9.730258 -0.696427 -2.021920 5.690310 -0.063351 68.610527 -1.751922 15.520359 32.760422 1.819201 -2.318790 -4.378768 -3.380067 -0.017181 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 -1.992414 -1.191491 -0.406759 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -61.547604 -10.858863 13.523763 -46.199417 11.783067 16.405573 -3.629590 18.011200 -1.307420 -2.021920 5.690310 -0.063351 66.482704 8.622679 14.782897 45.543797 -8.842199 -6.691029 -5.481440 -5.567040 -0.304790 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 -3.107702 -1.859236 -0.634722 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -56.850883 -22.681469 12.218906 -59.688835 23.561611 25.200680 3.307336 16.108097 -0.694552 -2.021920 5.690310 -0.063351 64.472473 19.194889 14.122459 58.702427 -18.905880 -10.324443 -14.858359 -1.951636 -0.729330 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 -3.785351 -2.278148 -0.777805 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -55.558533 -32.531364 12.732746 -71.785385 30.280514 25.378662 16.408247 7.717693 0.635648 -2.021920 5.690310 -0.063351 63.504807 28.299826 13.993483 70.672028 -23.704298 -9.481764 -27.760672 4.845032 -1.100487 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 -3.624380 -2.218660 -0.757690 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -60.604301 -38.282600 16.576200 -80.746803 27.355700 9.660360 28.074699 -0.262909 1.787490 -2.021920 5.690310 -0.063351 64.504700 34.272598 14.850400 79.888298 -18.569901 -0.425720 -36.631699 10.323200 -1.161880 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 -2.406863 -1.546188 -0.528601 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -73.062302 -38.744316 24.247868 -85.340576 12.983446 -23.649031 32.840622 -2.565665 2.114388 -2.021920 5.690310 -0.063351 67.945839 36.064339 16.918980 85.267357 -1.755827 17.642315 -36.402676 11.160021 -0.777410 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 -0.647106 -0.506089 -0.174925 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -86.568100 -36.465996 32.197067 -86.372940 -3.518627 -53.906895 33.769402 -0.438777 1.966177 -2.021920 5.690310 -0.063351 72.496849 35.090260 19.510347 87.646965 16.802063 33.766411 -31.956453 8.740308 -0.292083 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 0.957528 0.561300 0.186407 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -92.897598 -34.932201 35.860802 -85.159790 -10.052569 -54.886265 36.056801 3.240490 1.941800 -2.021920 5.690310 -0.063351 76.375092 33.381584 21.706974 88.345306 24.247229 34.051987 -30.663799 5.625790 -0.171181 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 1.851923 1.378696 0.460220 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -92.897598 -34.932201 35.860802 -83.148346 -0.539186 -15.996121 42.363014 5.932910 2.379979 -2.021920 5.690310 -0.063351 78.238228 32.552097 22.818314 88.503876 14.107533 13.276083 -36.643330 3.865294 -0.649059 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 2.049955 1.921054 0.638355 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -92.897598 -34.932201 35.860802 -82.310997 7.025680 10.810800 45.206001 6.451450 2.578560 -2.021920 5.690310 -0.063351 78.505211 32.545792 23.061838 88.557701 5.448470 0.902143 -41.005100 3.456010 -1.036360 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 1.707748 2.226383 0.734403 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -92.897598 -34.932201 35.860802 -83.855423 -2.884452 -17.438789 38.683754 4.672059 1.959642 -2.021920 5.690310 -0.063351 78.035278 32.889210 22.882013 88.740509 14.876419 20.468351 -35.923370 3.821422 -0.727013 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 0.981424 2.332698 0.761958 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -92.897598 -34.932201 35.860802 -85.405380 -11.843541 -45.256367 33.356602 3.370450 1.483220 -2.021920 5.690310 -0.063351 77.687698 33.108898 22.723301 89.187500 23.623600 37.125320 -30.837900 4.141800 -0.371817 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 0.027108 2.278009 0.734614 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -92.897598 -34.932201 35.860802 -84.548409 -2.152703 -18.789125 38.927315 4.828315 2.024116 -2.021920 5.690310 -0.063351 77.687698 33.108898 22.723301 89.664413 13.680943 18.548706 -35.170437 3.827948 -0.642340 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 -0.999076 2.100329 0.665963 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -92.897598 -34.932201 35.860802 -82.310997 7.025680 10.810800 45.206001 6.451450 2.578560 -2.021920 5.690310 -0.063351 77.687698 33.108898 22.723301 88.557701 5.448470 0.902143 -41.005100 3.456010 -1.036360 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 -1.941007 1.837669 0.569598 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -92.897598 -34.932201 35.860802 -80.412735 -3.097756 -9.119162 41.798904 5.629185 2.154696 -2.021920 5.690310 -0.063351 77.687698 33.108898 22.723301 85.081345 18.386852 19.422497 -39.662682 3.624926 -0.982284 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 -2.642560 1.528040 0.459114 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -92.897598 -34.932201 35.860802 -79.906303 -12.958900 -32.277901 37.389599 4.560890 1.686930 -2.021920 5.690310 -0.063351 77.687698 33.108898 22.723301 83.138756 29.790140 37.151352 -36.748402 3.859450 -0.804833 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 -2.994490 1.212298 0.348815 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -92.897598 -34.932201 35.860802 -81.139938 -3.116477 -10.757759 41.159752 5.543164 2.128106 -2.021920 5.690310 -0.063351 77.687698 33.108898 22.723301 85.855698 17.716618 17.918472 -38.700531 3.654023 -0.897978 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 -3.075063 0.942666 0.255858 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -92.897598 -34.932201 35.860802 -82.310997 7.025680 10.810800 45.206001 6.451450 2.578560 -2.021920 5.690310 -0.063351 77.687698 33.108898 22.723301 88.557701 5.448470 0.902143 -41.005100 3.456010 -1.036360 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 -3.009421 0.774211 0.198110 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -92.897598 -34.932201 35.860802 -81.831970 -2.023535 -12.634043 41.334332 5.161318 2.126635 -2.021920 5.690310 -0.063351 77.687698 33.108898 22.723301 86.775314 16.143488 24.086418 -38.749317 3.721606 -0.954981 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 -2.922710 0.761999 0.193441 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -92.897598 -34.932201 35.860802 -81.127098 -11.259400 -35.341900 37.273102 3.969990 1.665200 -2.021920 5.690310 -0.063351 77.687698 33.108898 22.723301 84.659447 27.238169 45.330318 -36.377300 3.989400 -0.849616 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 -2.905299 0.932208 0.250285 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -92.897598 -34.932201 35.860802 -81.693878 -1.702936 -11.916260 40.954811 5.149749 2.099351 -2.021920 5.690310 -0.063351 77.687698 33.108898 22.723301 86.504433 16.088291 23.410763 -38.495796 3.779540 -0.934428 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 -2.908467 1.195462 0.339337 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -92.897598 -34.932201 35.860802 -82.310997 7.025680 10.810800 45.206001 6.451450 2.578560 -2.021920 5.690310 -0.063351 77.687698 33.108898 22.723301 88.557701 5.448470 0.902143 -41.005100 3.456010 -1.036360 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 -2.848719 1.433494 0.421860 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -92.897598 -34.932201 35.860802 -81.697075 -4.312685 -13.537966 42.519302 5.572637 2.227027 -2.021920 5.690310 -0.063351 77.687698 33.108898 22.723301 86.903908 17.888819 20.590324 -39.569717 3.457184 -0.970542 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 -2.642560 1.528040 0.459114 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -92.897598 -34.932201 35.860802 -81.049301 -14.833800 -37.291901 39.157700 4.519030 1.823500 -2.021920 5.690310 -0.063351 77.687698 33.108898 22.723301 85.023682 29.842606 42.309601 -37.617500 3.675150 -0.892063 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 -2.234550 1.395161 0.423478 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -92.897598 -34.932201 35.860802 -81.608429 -4.023938 -13.131547 41.823509 5.402511 2.178931 -2.021920 5.690310 -0.063351 77.687698 33.108898 22.723301 86.578514 17.904167 24.240858 -38.938114 3.824486 -0.963367 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 -1.687122 1.096336 0.334431 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -92.897598 -34.932201 35.860802 -82.310997 7.025680 10.810800 45.206001 6.451450 2.578560 -2.021920 5.690310 -0.063351 77.687698 33.108898 22.723301 88.557701 5.448470 0.902143 -41.005100 3.456010 -1.036360 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 -1.081482 0.716476 0.219064 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -92.897598 -34.932201 35.860802 -82.021080 -2.775906 -13.411646 43.562275 5.791809 2.279532 -2.021920 5.690310 -0.063351 77.687698 33.108898 22.723301 87.718666 16.027189 9.582210 -40.867767 2.395170 -0.960393 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 -0.489078 0.326186 0.099811 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -92.897598 -34.932201 35.860802 -81.617287 -12.913471 -37.551498 41.433800 5.023420 1.952340 -2.021920 5.690310 -0.063351 77.687698 33.108898 22.723301 86.563751 27.118025 22.315382 -40.194599 1.729710 -0.885129 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -92.897598 -34.932201 35.860802 -81.617287 -12.913471 -37.551498 41.433800 5.023420 1.952340 -2.021920 5.690310 -0.063351 77.687698 33.108898 22.723301 86.563751 27.118025 22.315382 -40.194599 1.729710 -0.885129 -7.548709 4.016634 0.126881 15.890360 -3.336124 -0.813312 -8.628910 1.044381 -0.888102 -7.530616 -4.334307 0.100752 15.830232 3.319340 0.622262 -8.660608 -1.559428 0.936809
Added: maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/main/resources/animation/default.bvh
===================================================================
--- maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/main/resources/animation/default.bvh (rev 0)
+++ maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/main/resources/animation/default.bvh 2007-09-27 17:13:38 UTC (rev 444)
@@ -0,0 +1,130 @@
+HIERARCHY
+ROOT hip
+{
+ OFFSET 0.00 0.00 0.00
+ CHANNELS 6 Xposition Yposition Zposition Xrotation Zrotation Yrotation
+ JOINT abdomen
+ {
+ OFFSET 0.000000 0.000000 0.000000
+ CHANNELS 3 Xrotation Zrotation Yrotation
+ JOINT chest
+ {
+ OFFSET 0.000000 5.018152 -1.882228
+ CHANNELS 3 Xrotation Zrotation Yrotation
+ JOINT neckDummy
+ {
+ OFFSET 0.000000 8.316447 0.784897
+ CHANNELS 3 Xrotation Yrotation Zrotation
+ JOINT neck
+ {
+ OFFSET 0.000000 2.280413 -0.392801
+ CHANNELS 3 Xrotation Zrotation Yrotation
+ JOINT head
+ {
+ OFFSET 0.000000 3.496879 0.529469
+ CHANNELS 3 Xrotation Zrotation Yrotation
+ JOINT figureHair
+ {
+ OFFSET 0.000000 4.699570 0.720622
+ CHANNELS 3 Zrotation Yrotation Xrotation
+ End Site
+ {
+ OFFSET 0.000000 -6.419331 0.000000
+ }
+ }
+ }
+ }
+ }
+ JOINT lCollar
+ {
+ OFFSET 0.599237 8.316447 0.784897
+ CHANNELS 3 Yrotation Zrotation Xrotation
+ JOINT lShldr
+ {
+ OFFSET 6.421198 0.010146 -0.332128
+ CHANNELS 3 Zrotation Yrotation Xrotation
+ JOINT lForeArm
+ {
+ OFFSET 10.552783 0.025574 0.125508
+ CHANNELS 3 Yrotation Zrotation Xrotation
+ JOINT lHand
+ {
+ OFFSET 11.035963 0.319619 0.041520
+ CHANNELS 3 Zrotation Yrotation Xrotation
+ End Site
+ {
+ OFFSET 10.353753 0.000000 0.000000
+ }
+ }
+ }
+ }
+ }
+ JOINT rCollar
+ {
+ OFFSET -0.599237 8.316447 0.784897
+ CHANNELS 3 Yrotation Zrotation Xrotation
+ JOINT rShldr
+ {
+ OFFSET -6.421198 0.010146 -0.332128
+ CHANNELS 3 Zrotation Yrotation Xrotation
+ JOINT rForeArm
+ {
+ OFFSET -10.552783 0.025574 0.125508
+ CHANNELS 3 Yrotation Zrotation Xrotation
+ JOINT rHand
+ {
+ OFFSET -11.035963 0.319619 0.041520
+ CHANNELS 3 Zrotation Yrotation Xrotation
+ End Site
+ {
+ OFFSET -10.353753 0.000000 0.000000
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ JOINT lThigh
+ {
+ OFFSET 4.500466 -6.400484 -1.832696
+ CHANNELS 3 Xrotation Zrotation Yrotation
+ JOINT lShin
+ {
+ OFFSET -1.359117 -18.918689 1.179887
+ CHANNELS 3 Xrotation Zrotation Yrotation
+ JOINT lFoot
+ {
+ OFFSET -0.652380 -17.215186 -0.312137
+ CHANNELS 3 Xrotation Yrotation Zrotation
+ End Site
+ {
+ OFFSET 0.000000 0.000000 10.353752
+ }
+ }
+ }
+ }
+ JOINT rThigh
+ {
+ OFFSET -4.500466 -6.400484 -1.832696
+ CHANNELS 3 Xrotation Zrotation Yrotation
+ JOINT rShin
+ {
+ OFFSET 1.359117 -18.918689 1.179887
+ CHANNELS 3 Xrotation Zrotation Yrotation
+ JOINT rFoot
+ {
+ OFFSET 0.652380 -17.215186 -0.312137
+ CHANNELS 3 Xrotation Yrotation Zrotation
+ End Site
+ {
+ OFFSET 0.000000 0.000000 10.353752
+ }
+ }
+ }
+ }
+}
+MOTION
+Frames: 1
+Frame Time: 0.100000
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -70.106262 9.940849 15.968393 -22.598761 -9.338127 0.108572 5.976201 -0.065959 0.172336 -2.021920 5.690310 -0.063351 70.064301 -9.978495 15.953232 22.592319 9.326028 0.129803 -5.956460 0.082736 0.181256 -7.544341 3.962285 0.126597 15.837342 -3.291070 -0.872131 -8.576491 1.070768 -0.847483 -7.531943 -4.331991 0.100592 15.780110 3.271439 0.612621 -8.616927 -1.581442 0.945399
Added: maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/main/resources/animation/laugh.bvh
===================================================================
--- maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/main/resources/animation/laugh.bvh (rev 0)
+++ maven/trunk/ogoglio-bodies/ogoglio-body-andrea/src/main/resources/animation/laugh.bvh 2007-09-27 17:13:38 UTC (rev 444)
@@ -0,0 +1,169 @@
+HIERARCHY
+ROOT hip
+{
+ OFFSET 0.00 0.00 0.00
+ CHANNELS 6 Xposition Yposition Zposition Xrotation Zrotation Yrotation
+ JOINT abdomen
+ {
+ OFFSET 0.000000 0.000000 0.000000
+ CHANNELS 3 Xrotation Zrotation Yrotation
+ JOINT chest
+ {
+ OFFSET 0.000000 5.018152 -1.882228
+ CHANNELS 3 Xrotation Zrotation Yrotation
+ JOINT neckDummy
+ {
+ OFFSET 0.000000 8.316447 0.784897
+ CHANNELS 3 Xrotation Yrotation Zrotation
+ JOINT neck
+ {
+ OFFSET 0.000000 2.280413 -0.392801
+ CHANNELS 3 Xrotation Zrotation Yrotation
+ JOINT head
+ {
+ OFFSET 0.000000 3.496879 0.529469
+ CHANNELS 3 Xrotation Zrotation Yrotation
+ JOINT figureHair
+ {
+ OFFSET 0.000000 4.699570 0.720622
+ CHANNELS 3 Zrotation Yrotation Xrotation
+ End Site
+ {
+ OFFSET 0.000000 -6.419331 0.000000
+ }
+ }
+ }
+ }
+ }
+ JOINT lCollar
+ {
+ OFFSET 0.599237 8.316447 0.784897
+ CHANNELS 3 Yrotation Zrotation Xrotation
+ JOINT lShldr
+ {
+ OFFSET 6.421198 0.010146 -0.332128
+ CHANNELS 3 Zrotation Yrotation Xrotation
+ JOINT lForeArm
+ {
+ OFFSET 10.552783 0.025574 0.125508
+ CHANNELS 3 Yrotation Zrotation Xrotation
+ JOINT lHand
+ {
+ OFFSET 11.035963 0.319619 0.041520
+ CHANNELS 3 Zrotation Yrotation Xrotation
+ End Site
+ {
+ OFFSET 10.353753 0.000000 0.000000
+ }
+ }
+ }
+ }
+ }
+ JOINT rCollar
+ {
+ OFFSET -0.599237 8.316447 0.784897
+ CHANNELS 3 Yrotation Zrotation Xrotation
+ JOINT rShldr
+ {
+ OFFSET -6.421198 0.010146 -0.332128
+ CHANNELS 3 Zrotation Yrotation Xrotation
+ JOINT rForeArm
+ {
+ OFFSET -10.552783 0.025574 0.125508
+ CHANNELS 3 Yrotation Zrotation Xrotation
+ JOINT rHand
+ {
+ OFFSET -11.035963 0.319619 0.041520
+ CHANNELS 3 Zrotation Yrotation Xrotation
+ End Site
+ {
+ OFFSET -10.353753 0.000000 0.000000
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ JOINT lThigh
+ {
+ OFFSET 4.500466 -6.400484 -1.832696
+ CHANNELS 3 Xrotation Zrotation Yrotation
+ JOINT lShin
+ {
+ OFFSET -1.359117 -18.918689 1.179887
+ CHANNELS 3 Xrotation Zrotation Yrotation
+ JOINT lFoot
+ {
+ OFFSET -0.652380 -17.215186 -0.312137
+ CHANNELS 3 Xrotation Yrotation Zrotation
+ End Site
+ {
+ OFFSET 0.000000 0.000000 10.353752
+ }
+ }
+ }
+ }
+ JOINT rThigh
+ {
+ OFFSET -4.500466 -6.400484 -1.832696
+ CHANNELS 3 Xrotation Zrotation Yrotation
+ JOINT rShin
+ {
+ OFFSET 1.359117 -18.918689 1.179887
+ CHANNELS 3 Xrotation Zrotation Yrotation
+ JOINT rFoot
+ {
+ OFFSET 0.652380 -17.215186 -0.312137
+ CHANNELS 3 Xrotation Yrotation Zrotation
+ End Site
+ {
+ OFFSET 0.000000 0.000000 10.353752
+ }
+ }
+ }
+ }
+}
+MOTION
+Frames: 40
+Frame Time: 0.050000
+0.000000 42.014908 0.240040 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -5.690310 -0.063351 -70.100075 9.898806 15.947086 -22.679041 -9.378357 0.076935 5.966734 0.027484 0.177213 -2.021920 5.690310 -0.063351 70.025291 -9.978496 15.899026 22.669645 9.345270 0.121616 -5.927727 -0.009578 0.195807 -7.544928 3.982114 0.126592 15.855997 -3.300727 -0.855127 -8.588077 1.056593 -0.877759 -7.531943 -4.331991 0.100592 15.798183 3.280715 0.615038 -8.629052 -1.569328 0.946211
+-0.010271 41.118359 0.307273 0.085996 0.000000 0.000000 1.860550 0.000000 0.000000 2.745728 0.000000 0.000000 0.000000 0.000000 0.000000 2.147613 0.000000 0.000000 2.523571 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -3.621321 -0.063351 -60.769238 22.633158 9.701205 -60.819473 -11.540625 -4.099583 17.038702 8.409076 -9.313721 -2.683294 3.926647 -0.063351 61.990688 -21.377106 7.544266 63.949135 11.770497 -4.818159 -34.616604 -14.121561 1.987479 -13.859172 4.413954 0.091478 29.219851 -3.747072 -2.213881 -15.686995 1.333937 -0.402239 -13.877677 -4.719561 0.092055 29.228100 3.731876 2.025729 -15.756878 -1.823401 0.431401
+-0.016757 40.430710 0.401934 0.360902 0.000000 0.000000 2.582707 0.000000 0.000000 2.804512 0.000000 0.000000 0.000000 0.000000 0.000000 4.393749 0.000000 0.000000 6.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -1.361978 -0.063351 -54.347950 27.505209 1.706843 -82.448250 -11.735147 -5.122974 27.053463 11.182085 -16.948801 -3.464698 1.842903 -0.063351 58.343285 -23.815771 -3.089074 86.567177 11.992871 -6.095345 -51.541054 -7.634786 5.964419 -17.240896 4.754851 0.116806 35.981213 -4.079048 -2.845871 -19.309378 1.208248 -0.067937 -17.239689 -5.031274 0.073578 35.959705 4.056794 2.672610 -19.380335 -1.714553 0.107747
+-0.008382 40.802578 0.543712 0.943850 0.000000 0.000000 -0.781819 0.000000 0.000000 -5.455698 0.000000 0.000000 0.000000 0.000000 0.000000 5.648495 0.000000 0.000000 9.639404 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 0.507303 -0.063351 -52.558937 23.850107 -4.320533 -85.442947 -10.932941 -3.147526 41.554634 11.789365 -4.164012 -4.228607 -0.194189 -0.063351 58.459267 -23.127968 -11.228930 91.442383 11.389132 -4.205064 -48.065510 -2.258690 6.485291 -15.119818 4.425831 0.123318 30.516066 -3.758429 -2.361754 -16.577986 1.344090 -0.341416 -15.125618 -4.738601 0.093083 30.496426 3.737144 2.141251 -16.640167 -1.835799 0.395851
+0.000012 41.622555 0.747219 0.721804 0.000000 0.000000 -5.541353 0.000000 0.000000 -13.984964 0.000000 0.000000 0.000000 0.000000 0.000000 5.879698 0.000000 0.000000 7.145627 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 3.309690 -0.063351 -57.664452 16.366896 -7.928518 -76.018021 -9.236874 0.387905 48.259644 -0.529234 8.688077 -5.021920 -2.309690 -0.063351 63.773209 -19.345213 -16.142138 86.118530 9.524081 -1.321514 -39.105270 0.756029 7.875682 -9.675082 4.142613 0.133727 20.285007 -3.522715 -1.279486 -11.596942 1.122424 -0.696653 -9.717536 -4.482477 0.097940 20.335434 3.504250 1.056167 -11.682444 -1.650655 0.778455
+-0.006640 42.117901 1.004920 -1.160762 0.000000 0.000000 -8.473991 0.000000 0.000000 -14.489717 0.000000 0.000000 0.000000 0.000000 0.000000 5.315942 0.000000 0.000000 -6.320387 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 8.046408 -0.063351 -64.059464 14.115295 -8.967882 -70.682701 -8.587154 3.159253 49.060719 1.235633 6.227960 -5.874855 -4.584186 -0.063351 70.511673 -13.771156 -17.670855 78.046280 8.509991 1.623414 -34.932499 2.325882 8.164490 -5.370788 4.016258 -0.012142 16.750927 -3.361353 -0.923691 -10.518554 1.199306 -0.846639 -5.314772 -4.330726 0.146993 16.617525 3.309831 0.732556 -10.498503 -1.706569 0.897887
+-0.017095 42.403416 1.235070 -3.233081 0.000000 0.000000 -10.263157 0.000000 0.000000 -12.295529 0.000000 0.000000 0.000000 0.000000 0.000000 4.204370 0.000000 0.000000 -23.939898 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 12.591924 -0.063351 -69.264977 14.495419 -9.853712 -69.473808 -9.073883 5.069040 48.429314 10.079828 1.321527 -6.607224 -6.537172 -0.063351 75.076775 -9.026360 -18.360806 70.467896 9.488623 4.077843 -34.169331 3.029945 6.832536 -0.683850 3.884941 -0.134141 12.780602 -3.147610 -0.506773 -9.167995 1.219404 -1.035202 -0.617184 -4.179561 0.227888 12.621013 3.116739 0.376665 -9.141037 -1.755341 1.012011
+-0.010476 41.310463 1.056106 -3.297503 0.000000 0.000000 -10.242665 0.000000 0.000000 -11.905660 0.000000 0.000000 0.000000 0.000000 0.000000 2.765669 0.000000 0.000000 -37.725101 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 7.945296 -0.063351 -65.077995 14.895652 -12.153617 -77.501472 -8.670601 4.788541 46.536110 15.284908 6.733319 -6.603879 -0.896672 -0.063351 71.399284 -8.255731 -20.721535 77.622192 8.154063 4.685382 -31.138474 -2.084692 11.098236 -8.290133 4.415723 -0.104427 28.430641 -3.880877 -2.040521 -17.124245 1.375353 -0.388729 -8.305365 -4.720389 0.254286 28.439974 3.838488 1.914769 -17.199219 -1.937127 0.419978
+-0.012367 41.779510 1.120409 -3.361924 0.000000 0.000000 -10.222174 0.000000 0.000000 -11.515790 0.000000 0.000000 0.000000 0.000000 0.000000 1.096119 0.000000 0.000000 -46.669670 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 3.298669 -0.063351 -62.663925 16.383896 -13.701468 -79.573524 -8.190179 5.210461 45.676304 14.740353 7.829687 -6.600534 4.743827 -0.063351 68.443520 -9.091352 -23.188984 78.998993 7.230711 5.656795 -28.961515 -0.465293 11.946069 -5.407282 4.225859 -0.115654 22.718220 -3.667187 -1.457884 -14.245088 1.339630 -0.623764 -5.389634 -4.529818 0.238972 22.668276 3.629720 1.340570 -14.282635 -1.887923 0.642506
+-0.014258 42.248562 1.184712 -3.426345 0.000000 0.000000 -10.201682 0.000000 0.000000 -11.125920 0.000000 0.000000 0.000000 0.000000 0.000000 -0.739095 0.000000 0.000000 -51.512627 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 9.343772 -0.063351 -68.398941 15.327644 -10.441977 -73.130646 -8.691586 5.199170 48.790661 11.583031 3.813997 -6.597189 -3.412666 -0.063351 74.701187 -8.373110 -18.974842 69.710678 7.617961 5.766746 -34.117260 5.950816 6.151468 -1.874886 3.988271 -0.122700 15.574507 -3.326889 -0.741701 -10.584332 1.226017 -0.921747 -1.853266 -4.288248 0.247302 15.522566 3.304447 0.638326 -10.630560 -1.806680 0.906293
+-0.010898 41.640247 1.098845 -3.490767 0.000000 0.000000 -10.181190 0.000000 0.000000 -10.736051 0.000000 0.000000 0.000000 0.000000 0.000000 -2.674792 0.000000 0.000000 -52.992992 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 15.388875 -0.063351 -73.122253 13.234159 -8.418245 -70.531822 -9.462167 4.667462 50.638580 12.241563 2.802328 -6.593844 -11.569159 -0.063351 80.659592 -5.648749 -15.813440 63.464569 8.163573 5.574980 -37.872616 7.944730 2.563519 -6.192236 4.295581 -0.107601 24.641422 -3.759767 -1.634943 -15.245638 1.336629 -0.534024 -6.183058 -4.599506 0.252429 24.601904 3.711618 1.535006 -15.293869 -1.912523 0.563538
+-0.007538 41.031929 1.012978 -3.555188 0.000000 0.000000 -10.160699 0.000000 0.000000 -10.346181 0.000000 0.000000 0.000000 0.000000 0.000000 -4.645789 0.000000 0.000000 -51.849800 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 10.491253 -0.063351 -69.322952 14.180934 -10.299259 -77.010513 -8.856428 4.689775 49.264603 15.626760 7.093785 -6.590499 -3.743122 -0.063351 75.227432 -6.694110 -18.787531 71.602318 7.432240 5.772226 -34.521248 4.308579 7.420740 -9.429654 4.524744 -0.117649 31.448879 -4.009010 -2.322927 -18.731001 1.370772 -0.242664 -9.475706 -4.838962 0.279452 31.506443 3.959280 2.236776 -18.817945 -1.959519 0.290801
+-0.139582 41.601116 1.096020 -3.619610 0.000000 0.000000 -10.140207 0.000000 0.000000 -9.956311 0.000000 0.000000 0.000000 0.000000 0.000000 -6.586903 0.000000 0.000000 -48.822083 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 5.593630 -0.063351 -66.537186 15.624428 -11.898361 -78.357567 -8.249031 5.288404 48.099026 14.679449 7.606697 -6.587154 4.082914 -0.063351 70.791191 -8.249175 -22.074799 74.854958 6.826747 6.352305 -31.936533 5.728554 9.629100 -6.302633 4.531005 -0.121458 25.190359 -3.791892 -1.671981 -15.552771 1.297519 -0.721361 -6.281575 -4.413047 0.250588 25.129253 3.756336 1.572909 -15.596804 -1.930598 0.321538
+-0.271627 42.170303 1.179062 -3.684031 0.000000 0.000000 -10.119715 0.000000 0.000000 -9.566442 0.000000 0.000000 0.000000 0.000000 0.000000 -8.432952 0.000000 0.000000 -44.648865 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 9.985734 -0.063351 -70.640289 14.553143 -9.513869 -71.855453 -8.668118 5.357058 50.216900 11.522884 3.433270 -6.583809 -2.935160 -0.063351 76.249367 -7.404325 -17.680586 65.732674 6.920321 6.598426 -37.685295 11.500850 3.311301 -2.307995 4.461255 -0.116502 17.151234 -3.417994 -0.870897 -11.453455 1.183951 -1.258371 -2.186203 -3.920992 0.271296 16.881554 3.387882 0.750836 -11.403758 -1.861682 0.439336
+-0.250454 41.725060 1.112827 -3.748452 0.000000 0.000000 -10.099222 0.000000 0.000000 -9.176572 0.000000 0.000000 0.000000 0.000000 0.000000 -10.118756 0.000000 0.000000 -40.069176 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 14.377837 -0.063351 -74.171532 12.955590 -7.974244 -69.832588 -9.370209 4.827191 51.810883 11.901788 2.731478 -6.580464 -9.953235 -0.063351 82.116280 -4.554294 -15.810215 59.210098 7.005426 6.648946 -40.617184 14.232158 0.109990 -5.413714 4.664753 -0.118854 23.667105 -3.743147 -1.511599 -14.792798 1.242776 -0.961871 -5.378734 -4.188510 0.254477 23.575365 3.717916 1.403122 -14.838878 -1.928967 0.198164
+-0.229281 41.279819 1.046592 -3.812874 0.000000 0.000000 -10.078731 0.000000 0.000000 -8.786702 0.000000 0.000000 0.000000 0.000000 0.000000 -11.579132 0.000000 0.000000 -35.822044 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 9.118984 -0.063351 -70.343781 14.323774 -9.877327 -76.467735 -8.790308 4.841930 50.566326 14.784171 7.062213 -6.577119 -2.857948 -0.063351 76.472885 -6.146634 -17.542717 66.755104 6.741366 6.707989 -38.139236 11.009989 3.889213 -7.936410 4.827176 -0.148690 28.973953 -3.967267 -2.043511 -17.493408 1.284915 -0.700802 -7.890735 -4.399909 0.245702 28.874331 3.915417 1.955709 -17.529318 -1.974647 0.017791
+-0.212937 41.770401 1.118499 -3.877295 0.000000 0.000000 -10.058239 0.000000 0.000000 -8.396832 0.000000 0.000000 0.000000 0.000000 0.000000 -12.748899 0.000000 0.000000 -32.498047 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 3.860131 -0.063351 -67.561089 15.880244 -11.561610 -78.811195 -8.213477 5.323454 49.643314 14.143347 8.424545 -6.573774 4.237339 -0.063351 72.242958 -7.158633 -21.372650 69.095436 6.347313 7.186164 -35.094429 12.954231 6.133455 -4.966170 4.593131 -0.114443 23.075575 -3.739568 -1.428598 -14.510855 1.215032 -0.929472 -4.921994 -4.237965 0.260471 22.974718 3.707265 1.327985 -14.538404 -1.890724 0.276609
+-0.196593 42.260986 1.190407 -3.941716 0.000000 0.000000 -10.037746 0.000000 0.000000 -8.006963 0.000000 0.000000 0.000000 0.000000 0.000000 -13.562872 0.000000 0.000000 -30.093958 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 8.837438 -0.063351 -72.326637 14.702700 -8.843194 -72.495895 -8.691233 5.323039 52.215816 11.263083 4.439638 -6.570429 -2.053225 -0.063351 76.564217 -5.161790 -17.509361 58.847088 6.290575 7.396144 -40.959324 18.228859 -0.851401 -1.301326 4.299650 -0.108931 15.687284 -3.371808 -0.686784 -10.742620 1.126019 -1.202709 -1.199632 -4.008519 0.294260 15.446670 3.342500 0.579078 -10.697686 -1.819924 0.601208
+-0.176092 41.877712 1.143394 -4.006138 0.000000 0.000000 -10.017254 0.000000 0.000000 -7.617094 0.000000 0.000000 0.000000 0.000000 0.000000 -13.955870 0.000000 0.000000 -28.458105 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 13.814744 -0.063351 -76.399956 13.037279 -7.066567 -69.927887 -9.414158 4.827494 53.983643 11.424513 3.304199 -6.567084 -8.343789 -0.063351 81.908134 -2.213641 -16.037432 52.230400 6.368662 7.307606 -43.972290 21.014206 -4.109238 -4.142118 4.490926 -0.114236 21.728954 -3.687076 -1.283258 -13.865335 1.198398 -0.928644 -4.050610 -4.249982 0.280315 21.508989 3.659187 1.165064 -13.831415 -1.872044 0.398019
+-0.155591 41.494438 1.096381 -4.070559 0.000000 0.000000 -9.996762 0.000000 0.000000 -7.227224 0.000000 0.000000 0.000000 0.000000 0.000000 -13.886482 0.000000 0.000000 -27.438812 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 8.152535 -0.063351 -72.358643 14.594524 -9.012877 -76.545517 -8.806590 4.843211 52.714905 13.859917 7.705511 -6.563739 -2.696175 -0.063351 77.269524 -3.931566 -17.046329 58.800198 6.292258 7.308930 -41.993805 18.469952 -1.008319 -6.405059 4.638837 -0.117062 26.527254 -3.914130 -1.768285 -16.332088 1.228262 -0.692947 -6.383582 -4.458982 0.275941 26.466043 3.878540 1.668709 -16.387144 -1.901935 0.214410
+-0.138710 41.866756 1.152977 -4.134980 0.000000 0.000000 -9.976271 0.000000 0.000000 -6.837355 0.000000 0.000000 0.000000 0.000000 0.000000 -13.408401 0.000000 0.000000 -26.884415 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 2.490327 -0.063351 -69.161697 16.076376 -10.918886 -79.471863 -8.209517 5.289909 51.563690 13.570396 9.558954 -6.560394 2.951439 -0.063351 73.957977 -5.349032 -20.191658 62.257504 6.097746 7.556466 -39.311695 19.614569 1.519239 -4.016798 4.445890 -0.109630 21.813917 -3.721409 -1.255993 -13.946865 1.160888 -0.854116 -3.986725 -4.325676 0.300490 21.733070 3.684533 1.175845 -13.989437 -1.869487 0.434837
+-0.121830 42.239075 1.209572 -4.199402 0.000000 0.000000 -9.955778 0.000000 0.000000 -6.447486 0.000000 0.000000 0.000000 0.000000 0.000000 -12.599093 0.000000 0.000000 -26.643242 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 5.993531 -0.063351 -72.484787 15.181485 -8.855610 -74.758347 -8.731865 5.086925 53.683559 11.411582 6.630466 -6.557049 -2.562600 -0.063351 77.876038 -2.668850 -17.137407 52.152836 5.942263 7.692486 -45.004879 24.258802 -5.281081 -1.167748 4.214187 -0.088283 16.126537 -3.426784 -0.684601 -11.061582 1.077444 -1.057900 -1.141786 -4.158036 0.308154 16.045095 3.397320 0.607422 -11.097178 -1.798906 0.694477
+-0.101380 41.903847 1.164066 -4.263824 0.000000 0.000000 -9.935286 0.000000 0.000000 -6.057617 0.000000 0.000000 0.000000 0.000000 0.000000 -11.536019 0.000000 0.000000 -26.563618 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 9.496736 -0.063351 -75.292389 14.017561 -7.473940 -73.332932 -9.504474 4.434540 55.305244 11.683416 6.206869 -6.553703 -8.076639 -0.063351 82.406868 0.474785 -15.632614 45.215191 5.929681 7.590123 -48.489777 26.796183 -9.187887 -3.631421 4.376801 -0.094671 21.340349 -3.714652 -1.191699 -13.743546 1.130400 -0.811089 -3.600805 -4.376443 0.301985 21.268358 3.682625 1.122321 -13.776800 -1.837777 0.510607
+-0.080930 41.568623 1.118559 -4.328245 0.000000 0.000000 -9.914794 0.000000 0.000000 -5.667747 0.000000 0.000000 0.000000 0.000000 0.000000 -10.296641 0.000000 0.000000 -26.493872 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 5.426257 -0.063351 -72.764786 14.895887 -8.910192 -78.025719 -8.868069 4.677484 54.319660 13.445259 9.539998 -6.550358 -2.556093 -0.063351 78.047836 -1.662631 -16.897179 52.338619 6.003851 7.530158 -45.906643 24.651121 -5.365809 -5.667846 4.505913 -0.083518 25.719715 -3.914847 -1.639442 -15.994658 1.154076 -0.599729 -5.659129 -4.567969 0.318305 25.667036 3.887340 1.552257 -16.056664 -1.867930 0.361574
+-0.064574 42.066433 1.190166 -4.392666 0.000000 0.000000 -9.894302 0.000000 0.000000 -5.277878 0.000000 0.000000 0.000000 0.000000 0.000000 -8.958424 0.000000 0.000000 -26.282333 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 1.355778 -0.063351 -70.944344 15.904198 -10.105499 -78.868034 -8.255120 5.323981 53.555096 12.369815 9.983183 -6.547013 2.964453 -0.063351 74.315033 -2.243142 -19.705952 52.983349 5.715093 7.926619 -44.149513 27.218054 -4.316176 -2.323274 4.238793 -0.075857 18.988474 -3.612152 -0.929089 -12.573203 1.061211 -0.849959 -2.317297 -4.366978 0.326529 18.944445 3.592086 0.864305 -12.617344 -1.807977 0.659470
+-0.048218 42.564243 1.261772 -4.457088 0.000000 0.000000 -9.873810 0.000000 0.000000 -4.888009 0.000000 0.000000 0.000000 0.000000 0.000000 -7.598831 0.000000 0.000000 -25.777336 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 3.281539 -0.063351 -73.243103 15.283265 -8.653548 -74.686752 -8.452563 5.451182 55.047863 10.242397 7.242273 -6.543668 -0.140314 -0.063351 76.428825 1.052016 -18.030436 42.515423 5.246356 8.247622 -49.649998 31.958920 -11.302148 2.156603 3.878883 -0.075505 9.905528 -3.060993 -0.048762 -7.918304 0.898100 -1.187966 2.176907 -4.075018 0.355699 9.828784 3.050699 -0.015488 -7.938670 -1.689040 1.045151
+-0.029345 42.437305 1.261298 -4.521509 0.000000 0.000000 -9.853317 0.000000 0.000000 -4.498139 0.000000 0.000000 0.000000 0.000000 0.000000 -6.295328 0.000000 0.000000 -24.827204 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 5.207301 -0.063351 -75.156425 14.515069 -7.684229 -73.263397 -8.744649 5.256796 56.148338 10.069470 6.631312 -6.540322 -3.245080 -0.063351 78.732925 3.908364 -16.541063 35.918423 4.951295 8.284132 -53.696949 33.951374 -16.012579 0.994103 3.947400 -0.065610 12.533913 -3.238227 -0.274822 -9.309548 0.929917 -1.057137 0.988343 -4.203875 0.361600 12.506721 3.233813 0.214022 -9.366233 -1.720100 0.962618
+-0.010471 42.310364 1.260823 -4.585930 0.000000 0.000000 -9.832826 0.000000 0.000000 -4.108270 0.000000 0.000000 0.000000 0.000000 0.000000 -5.125378 0.000000 0.000000 -23.280262 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 7.133062 -0.063351 -77.068413 13.813162 -6.764139 -72.062439 -9.083624 5.011234 57.226109 9.985825 6.131007 -6.536977 -6.349847 -0.063351 81.172508 7.640952 -15.581149 27.792156 4.432294 8.364022 -58.025898 36.465702 -21.424824 -0.088025 4.014706 -0.060327 14.975178 -3.405446 -0.486141 -10.602251 0.953277 -0.927269 -0.082748 -4.317180 0.356227 14.920797 3.387154 0.431403 -10.641535 -1.740115 0.902574
+-0.000059 42.226536 1.240029 -4.629035 0.000000 0.000000 -9.530519 0.000000 0.000000 -3.427521 0.000000 0.000000 0.000000 0.000000 0.000000 -4.148894 0.000000 0.000000 -21.046062 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 7.822575 -0.063351 -78.578697 12.978272 -6.373674 -70.743340 -9.150819 5.026340 56.262901 10.443878 5.928175 -6.388217 -7.728433 -0.063351 82.353432 9.127306 -15.634355 24.439592 4.298427 8.252342 -58.693939 35.459377 -23.690161 -0.762837 4.054327 -0.062634 16.464476 -3.495228 -0.638229 -11.363793 0.989769 -0.848890 -0.761346 -4.385308 0.368034 16.410471 3.474685 0.583524 -11.408405 -1.769163 0.858476
+0.003976 42.163296 1.183717 -4.645460 0.000000 0.000000 -8.746253 0.000000 0.000000 -2.138936 0.000000 0.000000 0.000000 0.000000 0.000000 -3.355600 0.000000 0.000000 -18.279045 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 7.229994 -0.063351 -80.042618 11.876647 -6.325692 -69.135857 -8.903775 5.270208 52.342037 11.615876 5.958009 -5.995378 -7.487085 -0.063351 82.460655 6.896979 -16.554033 28.370316 5.069789 7.740608 -54.242554 29.100800 -21.510141 -1.374787 4.077956 -0.068097 17.591316 -3.531718 -0.799823 -11.877561 1.057030 -0.798281 -1.361035 -4.425691 0.365816 17.517136 3.517079 0.714531 -11.896008 -1.811998 0.826854
+0.003291 42.117409 1.099925 -4.610812 0.000000 0.000000 -7.617898 0.000000 0.000000 -0.495805 0.000000 0.000000 0.000000 0.000000 0.000000 -2.717669 0.000000 0.000000 -15.194876 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 5.696598 -0.063351 -81.163399 10.546571 -6.361532 -67.055580 -8.518664 5.575134 46.284363 12.495501 5.681299 -5.431094 -6.045873 -0.063351 81.653679 2.928670 -17.807177 35.404991 6.374581 6.811089 -47.623970 19.404226 -18.207167 -1.886052 4.087621 -0.088822 18.323500 -3.544257 -0.911298 -12.124340 1.147759 -0.766871 -1.868510 -4.430041 0.358484 18.251333 3.517048 0.833862 -12.153376 -1.874420 0.796685
+-0.000452 42.085640 0.996693 -4.500701 0.000000 0.000000 -6.283329 0.000000 0.000000 1.248582 0.000000 0.000000 0.000000 0.000000 0.000000 -2.207275 0.000000 0.000000 -12.009220 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 3.563670 -0.063351 -81.751434 9.042018 -6.334008 -64.231522 -8.112700 5.816295 39.006443 12.038619 4.943166 -4.767998 -3.824865 -0.063351 79.777077 -0.181608 -18.820112 39.736309 7.578027 5.821647 -40.280064 9.615594 -16.715628 -2.413541 4.088757 -0.099104 18.800671 -3.529770 -1.020628 -12.185948 1.221503 -0.748685 -2.383358 -4.422973 0.351608 18.710257 3.502445 0.893052 -12.208519 -1.901660 0.792741
+-0.005595 42.064751 0.882059 -4.290738 0.000000 0.000000 -4.880417 0.000000 0.000000 2.840936 0.000000 0.000000 0.000000 0.000000 0.000000 -1.796593 0.000000 0.000000 -8.937745 0.000000 0.000000 0.000000 0.000000 0.000000 2.021919 1.172491 -0.063351 -81.608818 7.803810 -5.963276 -61.219254 -7.827922 5.807484 31.785873 10.321487 4.186516 -4.078727 -1.244130 -0.063351 77.510956 -4.820436 -18.992514 46.186718 9.209272 4.274374 -31.996973 -0.608961 -15.381668 -2.943489 4.092400 -0.089391 19.019690 -3.517758 -1.082615 -12.074724 1.253679 -0.756163 -2.918652 -4.410620 0.343356 18.930344 3.486148 0.945239 -12.115583 -1.927100 0.791770
+-0.010477 42.051506 0.764063 -3.956529 0.000000 0.000000 -3.547035 0.000000 0.000000 4.027970 0.000000 0.000000 0.000000 0.000000 0.000000 -1.457797 0.000000 0.000000 -6.196116 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -1.135659 -0.063351 -80.587616 7.020977 -4.940019 -57.646339 -7.711444 5.552536 25.634993 7.765310 3.362354 -3.435913 1.276267 -0.063351 74.831856 -9.077783 -17.883993 50.665668 10.709750 2.613109 -23.474848 -8.188107 -15.064377 -3.576439 4.101742 -0.085941 19.098352 -3.512694 -1.135999 -11.844551 1.294394 -0.764340 -3.537713 -4.403750 0.313429 18.982590 3.469481 0.955938 -11.863827 -1.892712 0.789915
+-0.013440 42.042671 0.650744 -3.473685 0.000000 0.000000 -2.421053 0.000000 0.000000 4.556392 0.000000 0.000000 0.000000 0.000000 0.000000 -1.163060 0.000000 0.000000 -4.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.021920 -3.019496 -0.063351 -78.656342 7.308135 -2.889171 -54.169006 -7.895879 4.870312 21.189783 5.759765 2.435808 -2.912189 3.316253 -0.063351 71.967613 -12.400178 -14.907135 52.060234 11.899405 1.169561 -16.103291 -11.837284 -14.678917 -4.253779 4.103047 -0.070999 18.970802 -3.504003 -1.125819 -11.52...
[truncated message content] |
|
From: <tre...@us...> - 2007-09-27 17:17:54
|
Revision: 443
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=443&view=rev
Author: trevorolio
Date: 2007-09-27 10:13:24 -0700 (Thu, 27 Sep 2007)
Log Message:
-----------
Halfway through a grand avatar rewhack.
In this half I switch over to using downloadable wadges of avatar data instead of in-jar resources for avatar data.
Removed the GeomtryProvider interface, which is now replaced by TemplateDataProvider and BodyDataProvider interfaces which are used to fill the J3DDataManager with cached versions of all network accessed resources. This allows us to control memory usage, but also (eventually) reduces our memory footprint as we only make copies of data which is avatar specific.
Modified Paths:
--------------
maven/trunk/ogoglio-viewer-applet/src/test/java/com/ogoglio/viewer/j3d/obj/test/ObjTest.java
Modified: maven/trunk/ogoglio-viewer-applet/src/test/java/com/ogoglio/viewer/j3d/obj/test/ObjTest.java
===================================================================
--- maven/trunk/ogoglio-viewer-applet/src/test/java/com/ogoglio/viewer/j3d/obj/test/ObjTest.java 2007-09-27 16:38:52 UTC (rev 442)
+++ maven/trunk/ogoglio-viewer-applet/src/test/java/com/ogoglio/viewer/j3d/obj/test/ObjTest.java 2007-09-27 17:13:24 UTC (rev 443)
@@ -23,7 +23,7 @@
import junit.framework.TestCase;
-import com.ogoglio.client.model.GeometryProvider;
+import com.ogoglio.client.model.TemplateDataProvider;
import com.ogoglio.util.ArgumentUtils;
import com.ogoglio.viewer.j3d.obj.Obj;
import com.ogoglio.viewer.j3d.obj.ObjMtl;
@@ -54,28 +54,10 @@
assertIsValidObj(geoProvider1);
}
- /*
- private void printParsed(GeometryProvider geoProvider) {
+ public void assertIsValidObj(TemplateDataProvider dataProvider) {
try {
- ObjParser parser = new ObjParser(geoProvider1, 0);
+ ObjParser parser = new ObjParser("trevor", 1, 0, dataProvider);
Obj obj = parser.parse();
- StringWriter writer = new StringWriter();
- obj.writeObj(writer);
- System.out.println(writer);
- System.out.println("===================");
- writer = new StringWriter();
- obj.getMtl().writeMtl(writer);
- System.out.println(writer);
- } catch (Exception e) {
- e.printStackTrace();
- fail();
- }
- }
- */
- public void assertIsValidObj(GeometryProvider geoProvider) {
- try {
- ObjParser parser = new ObjParser(geoProvider, 0);
- Obj obj = parser.parse();
assertNotNull(obj);
try {
@@ -197,7 +179,7 @@
}
}
- private class TestGeometryProvider implements GeometryProvider {
+ private class TestGeometryProvider implements TemplateDataProvider {
private InputStream objStream = null;
@@ -210,22 +192,18 @@
ArgumentUtils.assertNotNull(mtlStream);
}
- public InputStream getAnimationStream(long animationID) throws IOException {
- return null;
- }
-
- public InputStream getGeometryStream(int lodIndex) throws IOException {
+ public InputStream getTemplateGeometry(String username, long templateID, int lod) {
return objStream;
}
- public InputStream getSkinMapStream() throws IOException {
+ public InputStream getTemplateResource(String username, long templateID, String resourceName) {
+ if (resourceName.endsWith(".mtl")) {
+ return mtlStream;
+ }
return null;
}
- public InputStream getSubGeometryStream(String name) throws IOException {
- if (name.endsWith(".mtl")) {
- return mtlStream;
- }
+ public String getTemplateScript(String username, long templateID) {
return null;
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tre...@us...> - 2007-09-27 16:38:48
|
Revision: 442
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=442&view=rev
Author: trevorolio
Date: 2007-09-27 09:38:52 -0700 (Thu, 27 Sep 2007)
Log Message:
-----------
Added a dir for the incoming body builder.
Added Paths:
-----------
maven/trunk/ogoglio-bodies/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tre...@us...> - 2007-09-25 15:11:15
|
Revision: 441
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=441&view=rev
Author: trevorolio
Date: 2007-09-25 08:11:18 -0700 (Tue, 25 Sep 2007)
Log Message:
-----------
Added Emily to the new source tree.
Moved Mike and Andrea into their own directories.
Added Paths:
-----------
maven/trunk/ogoglio-common/src/main/resources/sourceArt/Andrea/
maven/trunk/ogoglio-common/src/main/resources/sourceArt/Andrea/Andrea.blend
maven/trunk/ogoglio-common/src/main/resources/sourceArt/Andrea/License.txt
maven/trunk/ogoglio-common/src/main/resources/sourceArt/Andrea/andrea.jpg
maven/trunk/ogoglio-common/src/main/resources/sourceArt/Emily/
maven/trunk/ogoglio-common/src/main/resources/sourceArt/Emily/Emily.blend
maven/trunk/ogoglio-common/src/main/resources/sourceArt/Emily/Emily.obj
maven/trunk/ogoglio-common/src/main/resources/sourceArt/Emily/License.txt
maven/trunk/ogoglio-common/src/main/resources/sourceArt/Mike/
maven/trunk/ogoglio-common/src/main/resources/sourceArt/Mike/License.txt
maven/trunk/ogoglio-common/src/main/resources/sourceArt/Mike/mike.blend
maven/trunk/ogoglio-common/src/main/resources/sourceArt/Mike/mike.jpg
Removed Paths:
-------------
maven/trunk/ogoglio-common/src/main/resources/sourceArt/FemaleAvatar/License.txt
maven/trunk/ogoglio-common/src/main/resources/sourceArt/FemaleAvatar/andrea.blend
maven/trunk/ogoglio-common/src/main/resources/sourceArt/FemaleAvatar/andrea.jpg
maven/trunk/ogoglio-common/src/main/resources/sourceArt/MaleAvatar/License.txt
maven/trunk/ogoglio-common/src/main/resources/sourceArt/MaleAvatar/Mike.blend1
maven/trunk/ogoglio-common/src/main/resources/sourceArt/MaleAvatar/mike.blend
maven/trunk/ogoglio-common/src/main/resources/sourceArt/MaleAvatar/mike.jpg
Copied: maven/trunk/ogoglio-common/src/main/resources/sourceArt/Andrea/Andrea.blend (from rev 436, maven/trunk/ogoglio-common/src/main/resources/sourceArt/FemaleAvatar/andrea.blend)
===================================================================
(Binary files differ)
Copied: maven/trunk/ogoglio-common/src/main/resources/sourceArt/Andrea/License.txt (from rev 436, maven/trunk/ogoglio-common/src/main/resources/sourceArt/FemaleAvatar/License.txt)
===================================================================
--- maven/trunk/ogoglio-common/src/main/resources/sourceArt/Andrea/License.txt (rev 0)
+++ maven/trunk/ogoglio-common/src/main/resources/sourceArt/Andrea/License.txt 2007-09-25 15:11:18 UTC (rev 441)
@@ -0,0 +1,9 @@
+The Croquet License
+
+Copyright © 2002-2007 by The Croquet Consortium, Inc. and other individual, corporate, and institutional contributors who have collectively contributed elements of the CroquetTM software code to the Croquet Project. CroquetTM is a trademark of The Croquet Consortium, Inc..
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copied: maven/trunk/ogoglio-common/src/main/resources/sourceArt/Andrea/andrea.jpg (from rev 436, maven/trunk/ogoglio-common/src/main/resources/sourceArt/FemaleAvatar/andrea.jpg)
===================================================================
(Binary files differ)
Added: maven/trunk/ogoglio-common/src/main/resources/sourceArt/Emily/Emily.blend
===================================================================
(Binary files differ)
Property changes on: maven/trunk/ogoglio-common/src/main/resources/sourceArt/Emily/Emily.blend
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: maven/trunk/ogoglio-common/src/main/resources/sourceArt/Emily/Emily.obj
===================================================================
--- maven/trunk/ogoglio-common/src/main/resources/sourceArt/Emily/Emily.obj (rev 0)
+++ maven/trunk/ogoglio-common/src/main/resources/sourceArt/Emily/Emily.obj 2007-09-25 15:11:18 UTC (rev 441)
@@ -0,0 +1,5518 @@
+# This work is hereby released into the Public Domain. To view a copy of the public domain dedication, visit http://creativecommons.org/licenses/publicdomain/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. This file uses centimeters as units for non-parametric coordinates.
+
+g default
+v 4.235893 131.304908 5.793318
+v 4.908843 126.284576 5.638883
+v 3.680567 118.459823 1.626503
+v 2.113114 116.048217 2.316378
+v 3.702294 111.650863 2.979113
+v 8.298922 111.129898 0.558291
+v 11.224461 110.947296 -0.809379
+v 20.508450 90.714462 1.090845
+v 21.516907 82.641868 3.577086
+v 23.710257 72.578033 3.801609
+v 24.575001 67.642250 5.623537
+v 24.436161 63.482833 5.543305
+v 23.351910 61.003822 5.226660
+v 20.503965 60.443786 4.289470
+v 22.132853 65.215339 5.790145
+v 18.302994 63.485309 4.672024
+v 17.854738 64.177620 4.538507
+v 20.964788 69.132751 5.047460
+v 22.075781 71.932907 3.774076
+v 19.302122 81.877563 3.282195
+v 17.536461 90.033432 2.345600
+v 10.742951 104.001037 1.028880
+v 7.775699 98.725006 10.183580
+v 7.964716 94.426551 7.898804
+v 6.637483 88.983657 6.456526
+v 9.839483 80.187461 3.794646
+v 10.032902 76.353325 4.622260
+v 11.597083 72.725250 3.208269
+v 11.919493 68.579521 4.021633
+v 12.737358 57.287868 4.384838
+v 11.062197 44.105075 4.953087
+v 12.308281 40.113956 4.700190
+v 13.048488 31.351711 2.416488
+v 12.936188 9.039477 1.549511
+v 14.307161 5.435091 6.107162
+v 15.096842 0.836925 6.107397
+v 7.499705 0.172261 6.642193
+v 7.343395 4.958131 6.642199
+v 6.604974 4.165460 1.417136
+v 7.425919 8.598854 1.608714
+v 4.285321 30.943723 2.330970
+v 4.999006 39.727161 4.636878
+v 5.178293 42.801723 4.953087
+v 3.021866 50.596641 4.404933
+v 1.142458 65.069381 4.835405
+v 0.000000 64.826023 5.054391
+v 0.000000 132.637748 6.428759
+v 5.048964 133.135292 2.389053
+v 5.031318 133.677726 -1.700932
+v 4.345330 133.322425 -4.413063
+v 7.074467 128.140167 0.810522
+v 7.194702 128.946457 -2.937755
+v 5.567598 129.531334 -5.564221
+v 5.162046 112.528068 5.180027
+v 6.887544 115.003799 0.447578
+v 6.127639 116.462860 -4.310336
+v 3.754865 116.003128 -2.194182
+v 4.341645 116.648803 -3.746304
+v 2.729308 116.949142 -5.800191
+v 3.571223 114.752731 -1.103496
+v 2.608900 115.018592 -5.809936
+v 9.303377 112.948829 -2.901079
+v 11.366867 111.941414 -2.781965
+v 10.931231 110.592674 -5.902615
+v 21.266993 90.811874 -1.334091
+v 18.744909 90.412971 -4.424350
+v 23.336903 82.227653 0.530290
+v 21.925198 82.335594 -2.180753
+v 24.476114 72.351554 1.900847
+v 24.191746 72.267173 0.153760
+v 24.841990 67.655975 -0.258580
+v 25.097626 63.190017 0.181587
+v 24.059370 60.686569 0.993708
+v 21.112299 60.321548 0.950277
+v 23.094246 64.581543 -0.430681
+v 18.712603 63.888469 4.425884
+v 18.384327 64.409546 4.273347
+v 22.630722 66.847366 -0.567776
+v 21.601421 71.188789 2.369113
+v 22.363823 71.246833 -0.215244
+v 17.789026 81.245834 0.750829
+v 18.883230 81.624214 -2.400521
+v 15.059033 89.299316 0.219807
+v 16.013540 89.321167 -2.828491
+v 9.334902 102.212989 -1.482851
+v 8.887276 102.064384 -5.133575
+v 9.993939 104.435180 -7.048391
+v 10.854714 100.253646 -0.480741
+v 10.593315 99.367530 -2.570413
+v 7.695587 103.441551 -7.995719
+v 10.933844 97.556236 -0.320138
+v 9.370805 94.504753 -3.594759
+v 4.457783 93.694587 -6.855844
+v 9.702117 90.298088 -0.320138
+v 7.595412 90.298088 -4.591154
+v 3.756863 83.905784 -7.397223
+v 11.660134 79.691818 0.103179
+v 10.848234 79.809250 -5.328582
+v 8.487915 77.540512 -9.025898
+v 12.451644 76.755951 0.103179
+v 11.571073 76.836090 -6.465993
+v 7.532437 73.046600 -10.968251
+v 13.314675 73.240631 0.103179
+v 12.228209 73.013343 -6.834155
+v 9.398753 72.792366 -9.398911
+v 13.530068 68.544731 0.103179
+v 12.290711 67.718910 -6.131554
+v 9.911789 65.629669 -8.244033
+v 13.496050 57.113060 -0.098696
+v 12.628648 57.108467 -3.634974
+v 9.215217 58.967304 -7.280687
+v 12.880574 44.251636 0.841470
+v 13.610297 40.484912 0.529923
+v 13.076671 41.077545 -2.518773
+v 11.718558 43.529754 -4.407413
+v 14.339885 31.525816 -1.835959
+v 13.379518 32.864597 -6.445394
+v 12.411378 7.319277 -5.954390
+v 12.955366 4.148369 -6.417283
+v 14.640985 1.629067 0.854089
+v 14.153985 0.754436 -2.880677
+v 13.192534 0.670319 -6.137797
+v 7.461459 1.132536 0.854087
+v 7.746715 0.193872 -2.880690
+v 8.606439 0.319875 -6.123552
+v 7.010540 4.164549 -3.827121
+v 8.548857 3.752889 -6.596264
+v 5.104264 17.698700 -2.589405
+v 8.562427 7.191090 -5.885029
+v 3.701935 30.942882 -1.529055
+v 5.268594 32.773763 -5.398458
+v 3.082206 39.795601 -0.071892
+v 5.111050 42.606269 -5.433648
+v 3.082048 43.169902 1.067458
+v 1.773889 52.097557 -2.855343
+v 2.224920 59.754261 -6.826209
+v 0.412242 64.263713 -1.548041
+v 0.892191 65.781601 -8.562305
+v 0.000001 64.333877 -1.490080
+v 0.000001 64.634121 -7.096836
+v 0.000000 134.405159 3.386826
+v 0.000000 135.400032 -1.059355
+v 0.000000 134.706443 -4.456152
+v 0.000000 89.686050 8.051143
+v 0.000000 116.457862 3.098918
+v 0.000000 110.134979 3.767148
+v 0.000000 116.856674 -6.406936
+v 0.000000 115.079139 -6.515926
+v 0.000000 116.912483 5.811064
+v 2.413632 118.284156 6.004176
+v 0.000000 98.454895 9.201427
+v 0.000000 95.180626 8.630702
+v 0.000000 73.415405 8.725072
+v 3.581911 74.933044 8.623497
+v 3.640573 91.042343 7.471581
+v 9.332790 107.395820 2.490492
+v 0.000000 111.764030 2.556863
+v 2.038654 113.233627 1.822925
+v 0.000001 99.870887 -8.055753
+v 0.000001 92.738586 -7.507395
+v 2.099072 73.332527 -11.654683
+v 0.000001 73.268242 -10.761942
+v 0.000000 96.390663 9.123957
+v 8.513191 96.107421 9.244970
+v 4.481477 115.142982 -3.632034
+v 7.743886 112.441825 -5.959323
+v 7.039073 109.579750 -8.206449
+v 3.025161 110.049919 -8.479650
+v 0.000001 109.994720 -8.247701
+v 1.294713 121.946838 8.388377
+v 0.000000 122.659057 9.843364
+v 0.000000 120.700843 9.063203
+v 1.656629 120.122245 8.177047
+v 0.000000 126.322586 8.391892
+v 0.684090 126.386146 8.468015
+v 3.121774 121.949302 7.974267
+v 2.580387 126.392028 8.107894
+v 6.983259 66.901619 -9.586373
+v 1.711048 67.431854 -10.093930
+v 6.956238 65.104694 -8.962358
+v 5.908691 60.069301 -7.937950
+v 8.236053 42.946521 -5.978764
+v 0.000001 83.347633 -8.134241
+v 0.000000 68.000000 -9.869511
+v 3.927329 129.623512 -7.334874
+v 0.000000 130.208473 -8.267155
+v 9.178754 99.261093 -5.913388
+v 6.666026 74.146392 7.253901
+v 8.075659 68.451469 5.916011
+v 8.520349 59.821312 7.009837
+v 8.030080 50.815326 7.197649
+v 8.509299 43.882812 6.485410
+v 8.461145 38.710003 5.377701
+v 9.154990 30.995943 5.041072
+v 0.000001 105.039161 -8.454836
+v 6.342853 80.887237 -7.953418
+v 9.430592 83.856010 -4.699400
+v 10.898062 82.897773 0.103179
+v 0.000000 107.413604 4.748636
+v 5.084848 107.530876 4.307037
+v 10.726238 101.050636 4.153674
+v 10.586185 99.487556 3.217544
+v 10.405812 96.906204 3.559787
+v 9.313848 90.178505 3.538176
+v 0.000000 68.557350 7.735366
+v 2.972651 69.077827 7.122017
+v 5.488864 68.719825 6.108114
+v 0.000000 79.072021 8.928718
+v 3.731445 78.968284 8.221502
+v 6.694797 78.432502 6.261464
+v 0.000000 116.465263 -8.598945
+v 4.756159 116.621544 -6.271667
+v 0.587088 122.604683 9.536526
+v 0.372259 120.781990 9.013195
+v 0.008720 121.996269 8.894429
+v 0.938958 122.363052 8.618724
+v 2.627535 125.546608 7.494991
+v 3.967741 126.561866 7.380357
+v 3.878547 125.161338 6.775566
+v 3.860484 124.622398 6.780269
+v 1.729166 126.001548 7.492408
+v 0.814593 124.691597 7.324583
+v 2.558746 124.941551 7.448308
+v 0.000000 126.869506 8.571304
+v 1.156456 127.294761 8.504627
+v 2.799188 127.137313 8.266972
+v 4.498428 127.890876 6.016615
+v 3.806111 127.048431 7.505474
+v 0.000000 129.540321 8.030274
+v 3.247118 130.242164 7.047464
+v 4.018367 129.194740 6.484233
+v 4.478506 129.712989 6.558134
+v 5.515735 130.562324 4.071056
+v 7.338808 121.876655 0.638696
+v 4.755132 121.255195 3.539308
+v 4.142086 120.428711 5.281062
+v 3.023587 120.410362 7.503169
+v 2.367142 118.847946 7.169995
+v 0.000000 117.582443 8.171699
+v 4.377245 123.219909 6.788522
+v 0.000000 125.304573 8.303646
+v 0.417163 125.101532 7.508918
+v 1.195673 125.765785 7.345999
+v 1.018711 125.257278 7.471103
+v 3.015388 79.031120 -9.631784
+v 0.000001 78.620147 -9.554127
+v 0.000000 93.195945 8.149388
+v 2.435252 93.641555 7.553143
+v 7.889318 92.093521 6.799585
+v 9.584042 86.355827 0.103179
+v 9.105443 86.136383 2.689461
+v 8.029090 85.376693 5.275023
+v 6.063395 84.930427 6.499771
+v 3.848332 85.033149 7.867099
+v 0.000000 85.054184 8.466025
+v 8.332166 86.602821 -4.128681
+v 0.000000 102.308479 7.107314
+v 6.724891 103.370453 6.998063
+v 7.582471 123.352089 -2.884372
+v 5.902962 113.398178 6.788968
+v 7.072023 116.918830 0.429501
+v 6.927386 118.007782 -2.768629
+v 6.196256 119.600441 -6.050775
+v 3.856199 119.570518 -7.349558
+v 0.000000 119.729400 -8.100832
+v 0.000000 125.759101 -8.895659
+v 3.980335 125.030731 -7.900976
+v 6.803708 124.076187 -5.487010
+v 6.293006 131.368263 1.490150
+v 5.997981 132.087730 -2.201627
+v 4.912680 131.916130 -5.106660
+v 3.531521 132.537025 -6.045144
+v 2.314449 132.930931 -6.421721
+v 0.000000 133.698051 -6.590504
+v 1.481617 130.452415 7.803272
+v 2.221540 132.502784 6.260555
+v 3.176965 134.068260 3.252273
+v 3.336185 134.790657 -1.386661
+v 2.732982 133.968635 -5.175324
+v 2.476521 130.084251 -7.902960
+v 2.095693 125.655792 -8.794109
+v 2.177886 119.632331 -7.734910
+v 2.323187 116.424545 -7.888161
+v 8.812013 103.622993 5.545222
+v 10.336102 98.664566 6.205028
+v 0.000000 121.364593 8.688080
+v 0.539208 121.402588 8.796059
+v 1.561291 118.135154 7.537464
+v 0.000000 120.144867 8.695000
+v 0.346489 120.199890 8.662071
+v 0.000000 119.564376 8.803100
+v 0.664605 119.540702 8.711533
+v 1.374739 117.572425 4.950918
+v 1.030829 119.141800 8.117459
+v 0.000595 119.083992 8.264140
+v 0.000000 117.020835 7.239869
+v 1.479499 117.371978 6.966730
+v 3.726618 119.301262 3.637197
+v 0.000000 113.839920 2.542717
+v 4.538154 125.083931 5.974686
+v 2.513000 126.061638 7.310225
+v 3.707349 125.746605 6.605411
+v 2.519239 124.552040 7.241992
+v 6.052373 115.800483 6.235420
+v 6.433675 120.198875 5.058959
+v 5.912075 126.854431 5.694805
+v 3.408391 130.730125 6.902414
+v 1.518379 131.642936 7.209750
+v 0.000000 131.528465 7.442181
+v 2.795677 118.244583 3.702540
+v 5.104853 123.730056 5.087871
+v 21.456312 67.101684 3.723130
+v 22.057312 64.988151 3.342792
+v 21.318970 65.771324 6.399118
+v 20.562366 66.938781 6.144730
+v 18.940376 65.827766 5.741590
+v 19.641539 64.509517 6.093695
+v 19.686754 64.361419 5.045657
+v 19.047539 65.707817 4.834363
+v 14.458044 1.845638 -2.473494
+v 7.571473 1.374693 -2.301524
+v 14.824085 0.813062 2.219895
+v 8.033339 0.218948 2.287528
+v 9.916910 10.169295 1.930505
+v 13.278186 3.050128 10.561763
+v 13.258707 0.676109 10.948712
+v 8.375736 2.780562 10.626554
+v 8.728039 0.279726 10.814059
+v 13.244767 1.926239 -6.296780
+v 15.314740 1.581496 6.107396
+v 13.524893 1.487383 11.030103
+v 8.266612 1.147336 11.030102
+v 6.880896 1.060775 6.642199
+v 8.623319 1.726829 -6.386002
+v 14.382406 4.204808 1.240285
+v 10.446735 6.211911 6.745232
+v 10.739624 3.469463 11.030103
+v 11.035237 1.323756 11.720829
+v 10.565818 4.081168 -7.270808
+v 10.740717 1.822055 -7.029716
+v 6.577009 7.563259 -1.301726
+v 6.485020 4.136760 -1.605564
+v 13.616636 18.786388 -1.941296
+v 13.360485 7.984293 -2.121682
+v 14.257620 4.500176 -3.373949
+v 14.664340 2.373039 -0.982198
+v 7.464912 1.874768 -0.906353
+v 13.015318 18.477464 1.965582
+v 9.291553 18.037136 3.214210
+v 6.247588 17.709695 0.919794
+v 6.853213 16.693926 -6.951767
+v 12.883541 17.061675 -6.200574
+v 10.220869 16.007401 -7.587172
+v 10.278420 7.337913 -6.646642
+v 9.166885 32.735721 -8.047563
+v 3.602712 123.463821 7.475909
+v 0.826348 123.087425 8.409844
+v 3.934624 121.652015 6.826519
+v 2.106322 123.309684 7.904927
+v 22.778215 63.486797 5.524860
+v 22.654980 62.152076 5.479954
+v 23.414810 61.625839 0.440498
+v 20.982370 59.733284 4.576431
+v 21.631577 59.746513 1.073977
+v 23.721813 62.684143 -0.150616
+v 23.462856 63.705661 -0.292421
+v 22.548584 64.544937 5.828648
+v 24.588921 64.577793 5.656125
+v 25.114805 64.351600 -0.061705
+v 20.776793 65.165550 4.752084
+v 20.359907 66.669464 4.774253
+v 21.548132 68.685676 5.783807
+v 24.126158 70.012924 4.427757
+v 22.490707 68.200760 6.214023
+v 20.802120 68.233986 4.208393
+v 0.346131 64.104114 -7.038964
+v 23.532084 61.357654 5.232592
+v 24.248363 61.028015 0.924018
+v 20.319313 67.389465 5.027081
+v 23.504726 71.994682 4.038901
+v 23.841219 71.940902 3.923308
+v 24.327688 71.543228 0.128432
+v 23.644537 72.829918 3.766044
+v 24.416754 72.705642 1.778682
+v 24.117359 72.512512 -0.044145
+v 24.554071 71.778053 1.982509
+v 1.330162 63.122821 4.624240
+v 25.371479 69.198310 2.405581
+v 25.427114 66.274887 2.778550
+v 24.791521 62.094543 0.573696
+v 23.939026 62.333034 5.425637
+v 20.901272 91.847961 -1.337746
+v 18.343321 91.437667 -4.400756
+v 15.582367 90.549850 -2.995370
+v 16.361971 88.452499 -2.725018
+v 18.903275 89.114120 -3.958562
+v 21.561726 89.662086 -1.178644
+v 13.303244 107.126297 -6.153028
+v 14.579917 108.432693 -2.860427
+v 13.452689 108.032791 0.289744
+v 11.994454 97.580932 0.744637
+v 15.297585 96.342750 2.580793
+v 16.947451 99.378830 0.893912
+v 17.957218 99.171997 -2.111223
+v 16.954620 98.681633 -4.500453
+v 13.858551 97.969375 -5.558883
+v 12.989803 96.426239 -4.658846
+v 11.246048 97.305755 -2.163629
+v 20.507000 81.974365 -3.125223
+v 9.908598 10.488035 1.985296
+v 13.154159 9.468655 1.493279
+v 13.601662 9.200084 -2.294330
+v 11.977361 8.731177 -5.872541
+v 10.079183 8.491568 -6.550425
+v 8.499006 8.558142 -5.784829
+v 6.598189 8.965916 -1.577483
+v 7.276427 9.186537 1.352480
+v 6.597622 7.484247 2.020624
+v 10.102798 9.009918 4.590159
+v 13.869092 8.261330 2.920056
+v 15.058670 6.702756 -1.962577
+v 14.316691 5.357477 -6.763968
+v 11.295655 4.604107 -8.309857
+v 7.632865 4.754199 -7.294335
+v 5.806875 6.066456 -1.914026
+v 14.939212 3.375984 3.577858
+v 6.301141 3.096687 4.217936
+v 14.540922 1.941155 0.979137
+v 14.612303 2.687020 -0.980910
+v 14.199730 2.180960 -2.461586
+v 13.062553 2.253460 -6.254297
+v 10.716232 2.136003 -6.974599
+v 8.651756 2.054417 -6.359735
+v 7.214605 1.751621 -2.168058
+v 7.370947 2.241388 -0.909319
+v 7.378177 1.486025 0.881781
+v 6.862318 1.357412 6.642199
+v 8.282718 1.388368 10.970547
+v 11.003824 1.551777 11.647427
+v 13.487473 1.724421 10.959064
+v 15.263824 1.816435 6.142334
+v 12.779634 43.861770 -1.981808
+v 2.207553 47.042751 0.789955
+v 0.535870 61.736095 -1.992417
+v 10.837265 0.464260 -6.827693
+v 9.729723 12.108791 4.472106
+v 13.737699 10.980063 2.472316
+v 14.842464 9.514963 -2.351959
+v 13.994437 8.256840 -6.936070
+v 11.064643 7.669001 -8.476379
+v 7.254730 7.807451 -7.477432
+v 5.363869 9.066761 -2.082772
+v 6.436721 10.344688 1.712089
+v 9.685833 12.590729 4.097445
+v 13.504525 11.622391 2.236717
+v 14.500024 10.263098 -2.317439
+v 13.699911 8.972736 -6.756757
+v 11.010631 8.410764 -8.103758
+v 7.421146 8.515454 -7.308858
+v 5.678463 9.667920 -2.117669
+v 6.532354 10.975261 1.537978
+v 2.586071 70.752876 7.821389
+v 5.406684 70.848213 6.292114
+v 9.088778 71.842041 5.151363
+v 2.843697 70.961372 9.050695
+v 5.536111 70.985832 8.096046
+v 9.218904 72.014671 6.424119
+v 11.960728 72.885612 3.836479
+v 12.679300 73.094322 0.103179
+v 11.761163 72.970825 -6.686172
+v 9.709884 72.904449 -9.763946
+v 7.466120 72.983101 -10.295190
+v 2.165192 73.200988 -10.362893
+v 23.826330 72.864532 4.233167
+v 24.939215 72.767944 1.777847
+v 24.360962 72.360450 -0.606495
+v 21.821865 71.533996 -0.794393
+v 20.881243 71.588432 2.203748
+v 21.496264 72.071113 4.062909
+v 21.942574 72.251236 3.685993
+v 21.336420 71.798118 2.164342
+v 22.140585 71.771850 -0.270022
+v 5.323366 113.583114 -0.462251
+v 5.085084 114.371894 -3.342814
+v 3.567930 114.571899 -5.683159
+v 2.675495 114.717041 -6.276600
+v 0.000000 114.822166 -6.811459
+v 5.920045 114.740760 -0.206837
+v 5.511106 115.463813 -3.417388
+v 3.991216 115.620559 -5.714039
+v 2.707796 115.661354 -6.502948
+v 0.000000 115.772354 -7.052086
+v 6.003758 113.233154 0.028797
+v 5.643724 114.079582 -3.360142
+v 4.452889 113.721069 -5.683528
+v 2.744694 113.397689 -6.761513
+v 0.000000 113.364708 -7.240269
+v 3.953153 113.236740 2.816980
+v -4.248114 131.304908 5.793318
+v -4.921063 126.284576 5.638883
+v -3.692788 118.459823 1.626503
+v -2.125335 116.048217 2.316378
+v -3.714514 111.650863 2.979113
+v -8.311098 111.130905 0.558518
+v -11.228461 110.970947 -0.810171
+v -20.525417 90.739784 1.111278
+v -21.536552 82.670799 3.606485
+v -23.734358 72.608261 3.844807
+v -24.601114 67.675331 5.673483
+v -24.464142 63.515743 5.598845
+v -23.381018 61.035827 5.285428
+v -20.533417 60.473262 4.348707
+v -22.160038 65.247566 5.843112
+v -18.232920 63.408237 4.962420
+v -17.878958 64.207721 4.592971
+v -20.990290 69.163437 5.095022
+v -22.100170 71.962371 3.817976
+v -19.322142 81.905120 3.312397
+v -17.562613 90.087638 2.208882
+v -10.757988 103.990371 0.953144
+v -7.787919 98.725006 10.183580
+v -7.976936 94.426551 7.898804
+v -6.649703 88.983657 6.456526
+v -9.851704 80.187461 3.794646
+v -10.045122 76.353325 4.622260
+v -11.609302 72.725235 3.208269
+v -11.931646 68.580360 4.021633
+v -12.749532 57.288936 4.384838
+v -11.074333 44.105693 4.953087
+v -12.320457 40.115020 4.700190
+v -13.060663 31.352777 2.416488
+v -12.948362 9.040542 1.549511
+v -14.319336 5.436156 6.107162
+v -15.109018 0.837990 6.107397
+v -7.511878 0.173327 6.642193
+v -7.355568 4.959196 6.642199
+v -6.617146 4.166525 1.417136
+v -7.438093 8.599919 1.608714
+v -4.297485 30.944671 2.330970
+v -5.011180 39.728229 4.636878
+v -5.190467 42.802787 4.953087
+v -3.034040 50.597709 4.404933
+v -1.154679 65.069381 4.835405
+v -5.061184 133.135292 2.389053
+v -5.043539 133.677726 -1.700932
+v -4.357551 133.322425 -4.413063
+v -7.086687 128.140167 0.810522
+v -7.206923 128.946457 -2.937755
+v -5.579819 129.531334 -5.564221
+v -5.174267 112.528068 5.180027
+v -6.899764 115.003799 0.447578
+v -6.139859 116.459137 -4.310336
+v -3.767086 116.003128 -2.194182
+v -4.353866 116.648803 -3.746304
+v -2.741529 116.949142 -5.800191
+v -3.583444 114.752731 -1.103496
+v -2.621121 115.018592 -5.809936
+v -9.315592 112.948921 -2.901079
+v -11.372381 111.962288 -2.782511
+v -10.809916 110.542411 -5.900659
+v -21.284163 90.834251 -1.313712
+v -18.762516 90.431999 -4.403520
+v -23.357056 82.253234 0.560444
+v -21.945581 82.356948 -2.150892
+v -24.500519 72.379554 1.944432
+v -24.216364 72.292694 0.197428
+v -24.868706 67.681236 -0.208625
+v -25.126276 63.215988 0.237593
+v -24.089043 60.713173 1.052981
+v -21.142147 60.346778 1.009741
+v -23.122341 64.605796 -0.376760
+v -18.838621 64.023128 4.244665
+v -18.523712 64.345523 4.081171
+v -22.657831 66.871215 -0.516958
+v -21.626289 71.216156 2.413970
+v -22.388931 71.271041 -0.170384
+v -17.809576 81.269485 0.781721
+v -18.903955 81.643928 -2.370011
+v -15.076847 89.321495 0.242061
+v -16.031599 89.340156 -2.806273
+v -9.346286 102.208885 -1.481960
+v -8.898683 102.060264 -5.132692
+v -10.005363 104.431198 -7.047451
+v -10.866935 100.253646 -0.480741
+v -10.605536 99.367530 -2.570413
+v -7.707808 103.441551 -7.995719
+v -10.946035 97.556381 -0.320138
+v -9.383025 94.504753 -3.594759
+v -4.470004 93.694587 -6.855844
+v -9.714337 90.298088 -0.320138
+v -7.607632 90.298088 -4.591154
+v -3.769084 83.905784 -7.397223
+v -11.672355 79.691818 0.103179
+v -10.860455 79.809250 -5.328582
+v -8.500135 77.540512 -9.025898
+v -12.463864 76.755951 0.103179
+v -11.583269 76.836219 -6.465993
+v -7.544658 73.046600 -10.968251
+v -13.326896 73.240631 0.103179
+v -12.240427 73.013328 -6.834155
+v -9.410974 72.792366 -9.398911
+v -13.542243 68.545799 0.103179
+v -12.302884 67.719970 -6.131554
+v -9.923963 65.630737 -8.244033
+v -13.508219 57.114074 -0.098696
+v -12.640822 57.109535 -3.634974
+v -9.227384 58.968299 -7.280687
+v -12.892749 44.252704 0.841470
+v -13.622470 40.485977 0.529923
+v -13.088844 41.078609 -2.518773
+v -11.730727 43.530758 -4.407413
+v -14.352058 31.526878 -1.835959
+v -13.391691 32.865659 -6.445394
+v -12.423553 7.320342 -5.954391
+v -12.967541 4.149434 -6.417283
+v -14.653159 1.630132 0.854089
+v -14.166160 0.755500 -2.880677
+v -13.204707 0.671384 -6.137797
+v -7.473634 1.133601 0.854087
+v -7.758890 0.194937 -2.880690
+v -8.618608 0.320890 -6.123552
+v -7.022715 4.165614 -3.827121
+v -8.561031 3.753954 -6.596264
+v -5.116439 17.699766 -2.589405
+v -8.574602 7.192155 -5.885029
+v -3.714110 30.943946 -1.529055
+v -5.280769 32.774829 -5.398458
+v -3.094383 39.796669 -0.071892
+v -5.123224 42.607334 -5.433648
+v -3.094223 43.170967 1.067458
+v -1.786064 52.098625 -2.855343
+v -2.237083 59.755375 -6.826209
+v -0.424463 64.263713 -1.548041
+v -0.903995 65.778434 -8.562305
+v -2.425853 118.229736 6.004176
+v -3.594132 74.933044 8.623497
+v -3.652794 91.042343 7.471581
+v -9.345013 107.395820 2.490492
+v -2.050875 113.233627 1.822925
+v -2.111293 73.332527 -11.654683
+v -8.525412 96.107421 9.244970
+v -4.493698 115.142982 -3.632034
+v -7.756103 112.441909 -5.959323
+v -7.051293 109.579750 -8.206449
+v -3.037381 110.049919 -8.479650
+v -1.306934 121.946838 8.388377
+v -1.668850 120.122245 8.177047
+v -0.696311 126.386146 8.468015
+v -3.133995 121.949302 7.974267
+v -2.592608 126.392028 8.107894
+v -6.995433 66.902687 -9.586373
+v -1.723223 67.432914 -10.093930
+v -6.968412 65.105762 -8.962358
+v -5.920866 60.070366 -7.937950
+v -8.248228 42.947589 -5.978764
+v -3.939550 129.623512 -7.334874
+v -9.190953 99.261192 -5.913388
+v -6.678246 74.146392 7.253901
+v -8.087831 68.452522 5.916011
+v -8.532523 59.822376 7.009837
+v -8.042253 50.816387 7.197649
+v -8.521471 43.883876 6.485410
+v -8.473319 38.711067 5.377701
+v -9.167165 30.997009 5.041072
+v -6.355074 80.887237 -7.953418
+v -9.442812 83.856010 -4.699400
+v -10.910282 82.897773 0.103179
+v -5.097069 107.530876 4.307037
+v -10.738459 101.050636 4.153674
+v -10.598405 99.487556 3.217544
+v -10.418033 96.906204 3.559787
+v -9.326069 90.178505 3.538176
+v -2.984871 69.077827 7.122017
+v -5.500669 68.716667 6.108114
+v -3.743665 78.968284 8.221502
+v -6.707018 78.432502 6.261464
+v -4.768380 116.574165 -6.271667
+v -0.599309 122.604683 9.536526
+v -0.384480 120.781990 9.013195
+v -0.951179 122.363052 8.618724
+v -2.639755 125.546608 7.494991
+v -3.979962 126.561866 7.380357
+v -3.890767 125.161338 6.775566
+v -3.872705 124.622398 6.780269
+v -1.741387 126.001548 7.492408
+v -0.826814 124.691597 7.324583
+v -2.570966 124.941551 7.448308
+v -1.168676 127.294761 8.504627
+v -2.811408 127.137313 8.266972
+v -4.510649 127.890876 6.016615
+v -3.818332 127.048431 7.505474
+v -3.259339 130.242164 7.047464
+v -4.030588 129.194740 6.484233
+v -4.490726 129.712989 6.558134
+v -5.527956 130.562324 4.071056
+v -7.351029 121.876655 0.638696
+v -4.767353 121.255195 3.539308
+v -4.154306 120.428711 5.281062
+v -3.035808 120.410362 7.503169
+v -2.379362 118.847946 7.169995
+v -4.389465 123.219909 6.788522
+v -0.429384 125.101532 7.508918
+v -1.207894 125.765785 7.345999
+v -1.030932 125.257278 7.471103
+v -3.027609 79.031120 -9.631784
+v -2.447472 93.641555 7.553143
+v -7.901539 92.093521 6.799585
+v -9.596262 86.355827 0.103179
+v -9.117663 86.136383 2.689461
+v -8.041310 85.376693 5.275023
+v -6.075615 84.930427 6.499771
+v -3.860553 85.033149 7.867099
+v -8.344386 86.602821 -4.128681
+v -6.737111 103.370453 6.998063
+v -7.594691 123.352089 -2.884372
+v -5.915183 113.398178 6.788968
+v -7.084244 116.918830 0.429501
+v -6.939606 118.007782 -2.768629
+v -6.208477 119.600441 -6.050775
+v -3.868419 119.570518 -7.349558
+v -3.992555 125.030731 -7.900976
+v -6.815928 124.076187 -5.487010
+v -6.305227 131.368263 1.490150
+v -6.010201 132.087730 -2.201627
+v -4.924901 131.916130 -5.106660
+v -3.543741 132.537025 -6.045144
+v -2.326669 132.930931 -6.421721
+v -1.493838 130.452415 7.803272
+v -2.233761 132.502784 6.260555
+v -3.189185 134.068260 3.252273
+v -3.348406 134.790657 -1.386661
+v -2.745202 133.968635 -5.175324
+v -2.488741 130.084251 -7.902960
+v -2.107914 125.655792 -8.794109
+v -2.190107 119.632331 -7.734910
+v -2.335407 116.424545 -7.888161
+v -8.824233 103.622993 5.545222
+v -10.348323 98.664566 6.205028
+v -0.551428 121.402588 8.796059
+v -1.573511 118.078720 7.707608
+v -0.358710 120.199890 8.662071
+v -0.676826 119.540702 8.711533
+v -1.386960 117.572425 4.950918
+v -1.043050 119.157501 8.170860
+v -1.491720 117.401451 6.966730
+v -3.738838 119.301262 3.637197
+v -4.550374 125.083931 5.974686
+v -2.525221 126.061638 7.310225
+v -3.719569 125.746605 6.605411
+v -2.531460 124.552040 7.241992
+v -6.064593 115.800483 6.235420
+v -6.445895 120.198875 5.058959
+v -5.924295 126.854431 5.694805
+v -3.420612 130.730125 6.902414
+v -1.530600 131.642936 7.209750
+v -2.807898 118.244583 3.702540
+v -5.117073 123.730056 5.087871
+v -21.482864 67.130806 3.773483
+v -22.084846 65.017040 3.396062
+v -21.345837 65.804000 6.451247
+v -20.588743 66.970771 6.195212
+v -18.967289 65.858505 5.793403
+v -19.668991 64.541038 6.147360
+v -19.714384 64.391544 5.099521
+v -19.074593 65.737373 4.886345
+v -14.470219 1.846702 -2.473494
+v -7.583648 1.375758 -2.301524
+v -14.836258 0.814127 2.219895
+v -8.045511 0.220013 2.287528
+v -9.929085 10.170360 1.930505
+v -13.290359 3.051193 10.561763
+v -13.270883 0.677174 10.948712
+v -8.387909 2.781627 10.626554
+v -8.740213 0.280791 10.814059
+v -13.256940 1.927304 -6.296780
+v -15.326914 1.582561 6.107396
+v -13.537067 1.488447 11.030103
+v -8.278787 1.148401 11.030102
+v -6.893069 1.061841 6.642199
+v -8.635493 1.727894 -6.386002
+v -14.394579 4.205873 1.240285
+v -10.458908 6.212976 6.745232
+v -10.751799 3.470528 11.030103
+v -11.047412 1.324821 11.720829
+v -10.577992 4.082233 -7.270808
+v -10.752892 1.823120 -7.029716
+v -6.589183 7.564324 -1.301726
+v -6.497192 4.137825 -1.605564
+v -13.628811 18.787452 -1.941296
+v -13.372659 7.985357 -2.121682
+v -14.269794 4.501241 -3.373949
+v -14.676515 2.374104 -0.982198
+v -7.477087 1.875834 -0.906353
+v -13.027493 18.478531 1.965582
+v -9.303727 18.038200 3.214210
+v -6.259761 17.710760 0.919794
+v -6.865388 16.694993 -6.951767
+v -12.895717 17.062741 -6.200574
+v -10.233044 16.008465 -7.587172
+v -10.290593 7.338978 -6.646642
+v -9.179058 32.736784 -8.047563
+v -3.614932 123.463821 7.475909
+v -0.838569 123.087425 8.409844
+v -3.946844 121.652015 6.826519
+v -2.118542 123.309684 7.904927
+v -22.806189 63.518951 5.580223
+v -22.683546 62.184105 5.537104
+v -23.444136 61.651420 0.498445
+v -21.012108 59.763363 4.636674
+v -21.661671 59.772155 1.134273
+v -23.750731 62.709068 -0.094070
+v -23.491329 63.730262 -0.237276
+v -22.576048 64.577388 5.882558
+v -24.616405 64.610923 5.710203
+v -25.142973 64.377254 -0.007260
+v -20.804094 65.195762 4.804980
+v -20.386539 66.699524 4.825077
+v -21.573763 68.717613 5.832034
+v -24.151340 70.044181 4.474459
+v -22.516512 68.233703 6.262999
+v -20.828121 68.263488 4.257149
+v -0.358137 64.103271 -7.038964
+v -23.561028 61.389747 5.290905
+v -24.277895 61.054607 0.982855
+v -20.345592 67.419845 5.076926
+v -23.529062 72.025138 4.082863
+v -23.865599 71.971344 3.967381
+v -24.352633 71.568771 0.173092
+v -23.668541 72.860077 3.808898
+v -24.441008 72.733451 1.821782
+v -24.141893 72.537727 -0.000811
+v -24.578720 71.806205 2.026878
+v -1.342273 63.123157 4.624240
+v -25.397230 69.227401 2.453512
+v -25.454128 66.304504 2.830427
+v -24.820620 62.120910 0.631148
+v -23.967520 62.365558 5.482673
+v -20.917984 91.870170 -1.318803
+v -18.360466 91.456565 -4.381361
+v -15.599906 90.568390 -2.974866
+v -16.380402 88.471778 -2.701583
+v -18.921446 89.133392 -3.935918
+v -21.579399 89.684799 -1.156685
+v -13.314829 107.141143 -6.151386
+v -14.590995 108.451988 -2.859280
+v -13.463558 108.055069 0.290959
+v -12.011580 97.584526 0.745184
+v -15.312444 96.367721 2.594738
+v -16.961775 99.402519 0.905946
+v -17.971170 99.192169 -2.101145
+v -16.968767 98.698295 -4.490599
+v -13.873172 97.984077 -5.548061
+v -13.004724 96.441070 -4.647070
+v -11.260987 97.322601 -2.151359
+v -20.527592 81.994293 -3.095066
+v -9.920773 10.489100 1.985296
+v -13.166333 9.469720 1.493279
+v -13.613834 9.201150 -2.294330
+v -11.989535 8.732242 -5.872541
+v -10.091357 8.492633 -6.550425
+v -8.511181 8.559207 -5.784829
+v -6.610364 8.966981 -1.577483
+v -7.288601 9.187602 1.352480
+v -6.609795 7.485312 2.020624
+v -10.114973 9.010983 4.590159
+v -13.881265 8.262395 2.920056
+v -15.070843 6.703820 -1.962577
+v -14.328864 5.358543 -6.763968
+v -11.307828 4.605172 -8.309857
+v -7.645038 4.755264 -7.294335
+v -5.819049 6.067521 -1.914026
+v -14.951386 3.377049 3.577858
+v -6.313316 3.097753 4.217936
+v -14.553097 1.942219 0.979137
+v -14.624475 2.688085 -0.980910
+v -14.211905 2.182025 -2.461586
+v -13.074726 2.254525 -6.254297
+v -10.728407 2.137068 -6.974599
+v -8.663929 2.055482 -6.359735
+v -7.226779 1.752686 -2.168058
+v -7.383120 2.242454 -0.909319
+v -7.390351 1.487089 0.881781
+v -6.874490 1.358477 6.642199
+v -8.294892 1.389433 10.970547
+v -11.015999 1.552842 11.647427
+v -13.499646 1.725486 10.959064
+v -15.275996 1.817500 6.142334
+v -12.791805 43.862835 -1.981808
+v -2.219708 47.043598 0.789955
+v -0.548000 61.736660 -1.992417
+v -10.849440 0.465325 -6.827693
+v -9.741898 12.109856 4.472106
+v -13.749874 10.981128 2.472316
+v -14.854639 9.516028 -2.351959
+v -14.006610 8.257906 -6.936070
+v -11.076818 7.670066 -8.476379
+v -7.266904 7.808516 -7.477432
+v -5.376043 9.067825 -2.082772
+v -6.448894 10.345754 1.712089
+v -9.698006 12.591795 4.097445
+v -13.516700 11.623457 2.236717
+v -14.512198 10.264163 -2.317439
+v -13.712086 8.973801 -6.756757
+v -11.022805 8.411829 -8.103758
+v -7.433321 8.516520 -7.308858
+v -5.690638 9.668985 -2.117669
+v -6.544529 10.976327 1.537978
+v -2.598291 70.752876 7.821389
+v -5.418905 70.848213 6.292114
+v -9.100999 71.842041 5.151363
+v -2.855917 70.961372 9.050695
+v -5.548332 70.985832 8.096046
+v -9.231125 72.014671 6.424119
+v -11.972946 72.885604 3.836479
+v -12.691521 73.094322 0.103179
+v -11.773382 72.970810 -6.686172
+v -9.722104 72.904449 -9.763946
+v -7.478340 72.983101 -10.295190
+v -2.177413 73.200988 -10.362893
+v -23.850256 72.895393 4.275991
+v -24.963446 72.795990 1.820917
+v -24.385614 72.385017 -0.562936
+v -21.846910 71.557190 -0.749975
+v -20.905952 71.615242 2.247988
+v -21.520571 72.100708 4.106564
+v -21.966833 72.280517 3.729453
+v -21.361034 71.825080 2.208351
+v -22.165470 71.795883 -0.225891
+v -5.335587 113.583114 -0.462251
+v -5.097304 114.371894 -3.342814
+v -3.580150 114.571899 -5.683159
+v -2.687716 114.717041 -6.276600
+v -5.932265 114.740760 -0.206837
+v -5.523327 115.463813 -3.417388
+v -4.003437 115.620559 -5.714039
+v -2.720017 115.661354 -6.502948
+v -6.015979 113.233154 0.028797
+v -5.655945 114.079582 -3.360142
+v -4.465110 113.721069 -5.683528
+v -2.756915 113.397689 -6.761513
+v -3.965374 113.236740 2.816980
+v 9.656793 108.128784 -7.331145
+v -9.609592 108.136070 -7.333006
+v 11.069945 107.227409 0.881676
+v -11.024860 107.243866 0.892398
+vt 0.060898 0.000000
+vt 0.102135 0.044940
+vt 0.128574 0.105847
+vt 0.120521 0.138707
+vt 0.135481 0.157613
+vt 0.189261 0.142490
+vt 0.246766 0.156583
+vt 0.352335 0.249945
+vt 0.432009 0.289065
+vt 0.494871 0.352367
+vt 0.527812 0.377856
+vt 0.575714 0.422252
+vt 0.589286 0.473474
+vt 0.559608 0.487972
+vt 0.541385 0.429079
+vt 0.529224 0.460932
+vt 0.512794 0.456906
+vt 0.506974 0.418468
+vt 0.480697 0.392435
+vt 0.398385 0.337429
+vt 0.335060 0.284899
+vt 0.215236 0.214169
+vt 0.216324 0.227498
+vt 0.257561 0.272438
+vt 0.279892 0.332338
+vt 0.330895 0.381848
+vt 0.377709 0.412915
+vt 0.391119 0.429264
+vt 0.447317 0.493110
+vt 0.491736 0.560600
+vt 0.542819 0.627547
+vt 0.583513 0.665822
+vt 0.652033 0.732687
+vt 0.751018 0.844030
+vt 0.838562 0.951691
+vt 0.758888 1.000000
+vt 0.734149 0.966168
+vt 0.712061 0.958577
+vt 0.679501 0.904879
+vt 0.586174 0.797100
+vt 0.529432 0.726590
+vt 0.490752 0.680100
+vt 0.400144 0.605644
+vt 0.364565 0.564268
+vt 0.347827 0.573654
+vt 0.000000 0.000000
+vt 0.060898 0.000000
+vt 0.102135 0.044940
+vt 0.128574 0.105847
+vt 0.120521 0.138707
+vt 0.135481 0.157613
+vt 0.189261 0.142490
+vt 0.246766 0.156583
+vt 0.352335 0.249945
+vt 0.432009 0.289065
+vt 0.494871 0.352367
+vt 0.527812 0.377856
+vt 0.575714 0.422252
+vt 0.589286 0.473474
+vt 0.559608 0.487972
+vt 0.541385 0.429079
+vt 0.529224 0.460932
+vt 0.512794 0.456906
+vt 0.506974 0.418468
+vt 0.480697 0.392435
+vt 0.398385 0.337429
+vt 0.335060 0.284899
+vt 0.215236 0.214169
+vt 0.216324 0.227498
+vt 0.257561 0.272438
+vt 0.279892 0.332338
+vt 0.330895 0.381848
+vt 0.377709 0.412915
+vt 0.391119 0.429264
+vt 0.447317 0.493110
+vt 0.491736 0.560600
+vt 0.542819 0.627547
+vt 0.583513 0.665822
+vt 0.652033 0.732687
+vt 0.751018 0.844030
+vt 0.795738 0.865875
+vt 0.838562 0.951691
+vt 0.758888 1.000000
+vt 0.734149 0.966168
+vt 0.679501 0.904879
+vt 0.586174 0.797100
+vt 0.529432 0.726590
+vt 0.490752 0.680100
+vt 0.400144 0.605644
+vt 0.364565 0.564268
+vt 0.347827 0.573654
+vt 0.000000 0.000000
+vt 0.060898 0.000000
+vt 0.060898 0.000000
+vt 0.060898 0.000000
+vt 0.102135 0.044940
+vt 0.102135 0.044940
+vt 0.102135 0.044940
+vt 0.128574 0.105847
+vt 0.128574 0.105847
+vt 0.128574 0.105847
+vt 0.120521 0.138707
+vt 0.120521 0.138707
+vt 0.120521 0.138707
+vt 0.135481 0.157613
+vt 0.135481 0.157613
+vt 0.189261 0.142490
+vt 0.246766 0.156583
+vt 0.246766 0.156583
+vt 0.352335 0.249945
+vt 0.352335 0.249945
+vt 0.432009 0.289065
+vt 0.432009 0.289065
+vt 0.494871 0.352367
+vt 0.494871 0.352367
+vt 0.527812 0.377856
+vt 0.575714 0.422252
+vt 0.589286 0.473474
+vt 0.559608 0.487972
+vt 0.541385 0.429079
+vt 0.529224 0.460932
+vt 0.512794 0.456906
+vt 0.506974 0.418468
+vt 0.480697 0.392435
+vt 0.480697 0.392435
+vt 0.398385 0.337429
+vt 0.398385 0.337429
+vt 0.335060 0.284899
+vt 0.335060 0.284899
+vt 0.215236 0.214169
+vt 0.215236 0.214169
+vt 0.215236 0.214169
+vt 0.216324 0.227498
+vt 0.216324 0.227498
+vt 0.216324 0.227498
+vt 0.257561 0.272438
+vt 0.257561 0.272438
+vt 0.257561 0.272438
+vt 0.279892 0.332338
+vt 0.279892 0.332338
+vt 0.279892 0.332338
+vt 0.330895 0.381848
+vt 0.330895 0.381848
+vt 0.330895 0.381848
+vt 0.377709 0.412915
+vt 0.377709 0.412915
+vt 0.377709 0.412915
+vt 0.391119 0.429264
+vt 0.391119 0.429264
+vt 0.391119 0.429264
+vt 0.447317 0.493110
+vt 0.447317 0.493110
+vt 0.447317 0.493110
+vt 0.491736 0.560600
+vt 0.491736 0.560600
+vt 0.491736 0.560600
+vt 0.542819 0.627547
+vt 0.583513 0.665822
+vt 0.583513 0.665822
+vt 0.583513 0.665822
+vt 0.652033 0.732687
+vt 0.652033 0.732687
+vt 0.751018 0.844030
+vt 0.795738 0.865875
+vt 0.838562 0.951691
+vt 0.838562 0.951691
+vt 0.838562 0.951691
+vt 0.758888 1.000000
+vt 0.758888 1.000000
+vt 0.758888 1.000000
+vt 0.712061 0.958577
+vt 0.712061 0.958577
+vt 0.679501 0.904879
+vt 0.679501 0.904879
+vt 0.586174 0.797100
+vt 0.586174 0.797100
+vt 0.529432 0.726590
+vt 0.529432 0.726590
+vt 0.490752 0.680100
+vt 0.400144 0.605644
+vt 0.400144 0.605644
+vt 0.364565 0.564268
+vt 0.364565 0.564268
+vt 0.347827 0.573654
+vt 0.347827 0.573654
+vt 0.000000 0.000000
+vt 0.000000 0.000000
+vt 0.000000 0.000000
+vt 0.224140 0.369663
+vt 0.096891 0.159798
+vt 0.109869 0.181202
+vt 0.096322 0.158859
+vt 0.107805 0.177798
+vt 0.091975 0.151690
+vt 0.116891 0.120193
+vt 0.158928 0.262113
+vt 0.191534 0.315888
+vt 0.297370 0.490437
+vt 0.322229 0.448303
+vt 0.252016 0.351000
+vt 0.183931 0.191970
+vt 0.104564 0.172453
+vt 0.128574 0.148884
+vt 0.128574 0.148884
+vt 0.158967 0.262177
+vt 0.187707 0.309575
+vt 0.310292 0.415607
+vt 0.267767 0.441614
+vt 0.176283 0.290736
+vt 0.239489 0.252743
+vt 0.239489 0.252743
+vt 0.135481 0.157613
+vt 0.179092 0.157209
+vt 0.170451 0.182411
+vt 0.167793 0.185545
+vt 0.123853 0.204266
+vt 0.075816 0.087257
+vt 0.061566 0.101538
+vt 0.076771 0.126614
+vt 0.092857 0.106868
+vt 0.037761 0.062278
+vt 0.048133 0.055396
+vt 0.085387 0.071868
+vt 0.070782 0.051011
+vt 0.381657 0.477368
+vt 0.344300 0.508759
+vt 0.413661 0.522050
+vt 0.448742 0.581744
+vt 0.556473 0.696206
+vt 0.227737 0.375595
+vt 0.318233 0.524846
+vt 0.050214 0.057791
+vt 0.038252 0.063087
+vt 0.216324 0.227498
+vt 0.347730 0.473058
+vt 0.379024 0.490757
+vt 0.411827 0.523627
+vt 0.445940 0.583122
+vt 0.516786 0.653823
+vt 0.553023 0.700082
+vt 0.617415 0.766546
+vt 0.139847 0.230643
+vt 0.307963 0.359587
+vt 0.303136 0.354902
+vt 0.306725 0.358386
+vt 0.130381 0.215031
+vt 0.165138 0.183250
+vt 0.216324 0.227498
+vt 0.229274 0.241611
+vt 0.257561 0.272438
+vt 0.279892 0.332338
+vt 0.325693 0.537151
+vt 0.343397 0.506285
+vt 0.355365 0.514426
+vt 0.255921 0.422078
+vt 0.282348 0.393036
+vt 0.298740 0.383965
+vt 0.078178 0.128935
+vt 0.098161 0.112974
+vt 0.068691 0.094397
+vt 0.082590 0.119471
+vt 0.068417 0.112837
+vt 0.075241 0.106213
+vt 0.078616 0.062199
+vt 0.082688 0.048705
+vt 0.087452 0.055715
+vt 0.092508 0.060419
+vt 0.055054 0.063361
+vt 0.072771 0.090309
+vt 0.079950 0.064103
+vt 0.029650 0.048900
+vt 0.041302 0.047534
+vt 0.068242 0.037904
+vt 0.091241 0.033067
+vt 0.091241 0.033067
+vt 0.077022 0.036057
+vt 0.012072 0.019909
+vt 0.063445 0.013147
+vt 0.076341 0.022389
+vt 0.076069 0.016533
+vt 0.076069 0.016533
+vt 0.081516 0.022470
+vt 0.118551 0.082756
+vt 0.120758 0.087841
+vt 0.120758 0.087841
+vt 0.118769 0.098946
+vt 0.114324 0.107101
+vt 0.101377 0.116674
+vt 0.084373 0.139152
+vt 0.107230 0.070925
+vt 0.044394 0.073217
+vt 0.055181 0.068766
+vt 0.061940 0.073835
+vt 0.063692 0.073303
+vt 0.275791 0.369299
+vt 0.240645 0.396884
+vt 0.204680 0.337568
+vt 0.221775 0.333444
+vt 0.270215 0.306379
+vt 0.270215 0.306379
+vt 0.293309 0.345362
+vt 0.301705 0.353512
+vt 0.305393 0.357093
+vt 0.305393 0.357093
+vt 0.288347 0.355496
+vt 0.268834 0.374307
+vt 0.242483 0.399916
+vt 0.294144 0.346173
+vt 0.144655 0.238572
+vt 0.186048 0.201326
+vt 0.109350 0.061560
+vt 0.128574 0.105847
+vt 0.124785 0.097119
+vt 0.121793 0.090226
+vt 0.121178 0.088809
+vt 0.085370 0.098253
+vt 0.068466 0.112917
+vt 0.053359 0.088002
+vt 0.068904 0.079301
+vt 0.111656 0.066874
+vt 0.078606 0.019298
+vt 0.078906 0.019625
+vt 0.077723 0.018336
+vt 0.055202 0.030813
+vt 0.030633 0.035256
+vt 0.021390 0.035277
+vt 0.035924 0.017262
+vt 0.024318 0.000000
+vt 0.024318 0.000000
+vt 0.026578 0.000000
+vt 0.025404 0.000000
+vt 0.028635 0.000000
+vt 0.044233 0.060439
+vt 0.060089 0.084235
+vt 0.075739 0.106607
+vt 0.089425 0.119952
+vt 0.198026 0.207429
+vt 0.198026 0.207429
+vt 0.227907 0.240121
+vt 0.072594 0.119726
+vt 0.078382 0.111880
+vt 0.090232 0.131407
+vt 0.078585 0.129606
+vt 0.084425 0.122338
+vt 0.080358 0.132531
+vt 0.086837 0.126105
+vt 0.100168 0.140166
+vt 0.088535 0.128756
+vt 0.082016 0.135265
+vt 0.088174 0.145421
+vt 0.095688 0.136217
+vt 0.122732 0.113020
+vt 0.100728 0.166125
+vt 0.093783 0.051069
+vt 0.075969 0.058417
+vt 0.085905 0.053438
+vt 0.077841 0.066220
+vt 0.128574 0.105847
+vt 0.120254 0.086681
+vt 0.102135 0.044940
+vt 0.062061 0.006003
+vt 0.032291 0.011859
+vt 0.009135 0.015065
+vt 0.121999 0.121530
+vt 0.111955 0.067562
+vt 0.111955 0.067562
+vt 0.508798 0.430518
+vt 0.537838 0.438369
+vt 0.537930 0.438129
+vt 0.537930 0.438129
+vt 0.508659 0.429598
+vt 0.508659 0.429598
+vt 0.510552 0.442096
+vt 0.510552 0.442096
+vt 0.533577 0.449530
+vt 0.533577 0.449530
+vt 0.533027 0.450971
+vt 0.510678 0.442928
+vt 0.838562 0.951691
+vt 0.758888 1.000000
+vt 0.838562 0.951691
+vt 0.758888 1.000000
+vt 0.711802 0.877396
+vt 0.838562 0.951691
+vt 0.795738 0.865875
+vt 0.734149 0.966168
+vt 0.758888 1.000000
+vt 0.821673 0.917847
+vt 0.826223 0.926965
+vt 0.826223 0.926965
+vt 0.823826 0.922161
+vt 0.751505 0.989903
+vt 0.754265 0.993679
+vt 0.754265 0.993679
+vt 0.729200 0.973738
+vt 0.795738 0.865875
+vt 0.795738 0.865875
+vt 0.759602 0.924719
+vt 0.761145 0.922206
+vt 0.784595 0.958907
+vt 0.750907 0.915542
+vt 0.770128 0.949001
+vt 0.679501 0.904879
+vt 0.712061 0.958577
+vt 0.708547 0.796256
+vt 0.751018 0.844030
+vt 0.795738 0.865875
+vt 0.838562 0.951691
+vt 0.758888 1.000000
+vt 0.707033 0.794554
+vt 0.707033 0.794554
+vt 0.670735 0.829166
+vt 0.636883 0.855662
+vt 0.636883 0.855662
+vt 0.638493 0.857520
+vt 0.711046 0.799068
+vt 0.674770 0.828294
+vt 0.715260 0.874454
+vt 0.619104 0.764894
+vt 0.081614 0.069044
+vt 0.070731 0.092353
+vt 0.089122 0.089368
+vt 0.076829 0.080550
+vt 0.557137 0.425946
+vt 0.560338 0.470985
+vt 0.560338 0.470985
+vt 0.560318 0.471453
+vt 0.571517 0.482155
+vt 0.571517 0.482155
+vt 0.570921 0.482446
+vt 0.555926 0.440528
+vt 0.549090 0.435145
+vt 0.552749 0.426819
+vt 0.552749 0.426819
+vt 0.562347 0.409863
+vt 0.562347 0.409863
+vt 0.561714 0.409277
+vt 0.534853 0.446186
+vt 0.510042 0.438728
+vt 0.513567 0.405618
+vt 0.511342 0.365111
+vt 0.511342 0.365111
+vt 0.519264 0.394516
+vt 0.507886 0.424493
+vt 0.359014 0.580494
+vt 0.587350 0.466166
+vt 0.587350 0.466166
+vt 0.587392 0.466324
+vt 0.509177 0.433016
+vt 0.497006 0.358446
+vt 0.497645 0.354513
+vt 0.497645 0.354513
+vt 0.498217 0.354955
+vt 0.491157 0.348627
+vt 0.491157 0.348627
+vt 0.490459 0.347923
+vt 0.491400 0.348871
+vt 0.497931 0.354734
+vt 0.404442 0.575472
+vt 0.518947 0.370996
+vt 0.543010 0.391941
+vt 0.581553 0.444288
+vt 0.581995 0.445955
+vt 0.581995 0.445955
+vt 0.344968 0.243430
+vt 0.344999 0.243457
+vt 0.324794 0.278839
+vt 0.346470 0.285389
+vt 0.363491 0.255423
+vt 0.362042 0.254711
+vt 0.263487 0.171370
+vt 0.261464 0.169581
+vt 0.264019 0.171841
+vt 0.264019 0.171841
+vt 0.282152 0.253668
+vt 0.285850 0.255851
+vt 0.285850 0.255851
+vt 0.320294 0.221609
+vt 0.320294 0.221609
+vt 0.308585 0.211254
+vt 0.304243 0.207414
+vt 0.280118 0.228813
+vt 0.272851 0.248178
+vt 0.265643 0.243924
+vt 0.415197 0.313247
+vt 0.705049 0.869465
+vt 0.742032 0.833922
+vt 0.742032 0.833922
+vt 0.744137 0.836289
+vt 0.741965 0.833846
+vt 0.706387 0.864340
+vt 0.671086 0.895161
+vt 0.679501 0.904879
+vt 0.670376 0.894340
+vt 0.670376 0.894340
+vt 0.661578 0.884180
+vt 0.661578 0.884180
+vt 0.697027 0.860043
+vt 0.733731 0.824584
+vt 0.733731 0.824584
+vt 0.736387 0.827571
+vt 0.733696 0.824545
+vt 0.697279 0.853955
+vt 0.662143 0.884833
+vt 0.679501 0.904879
+vt 0.818550 0.911588
+vt 0.746518 0.983084
+vt 0.832700 0.939945
+vt 0.833849 0.942247
+vt 0.833642 0.941831
+vt 0.817731 0.909946
+vt 0.767607 0.944614
+vt 0.727016 0.971806
+vt 0.752198 0.994083
+vt 0.752668 0.994498
+vt 0.753452 0.995191
+vt 0.752710 0.991551
+vt 0.752710 0.991551
+vt 0.748943 0.986400
+vt 0.782103 0.955007
+vt 0.819565 0.913623
+vt 0.824372 0.923255
+vt 0.824372 0.923255
+vt 0.568205 0.651424
+vt 0.442780 0.640679
+vt 0.369613 0.586975
+vt 0.798725 0.975845
+vt 0.689463 0.851160
+vt 0.727347 0.817404
+vt 0.727347 0.817404
+vt 0.730200 0.820613
+vt 0.728252 0.818422
+vt 0.691628 0.847513
+vt 0.655970 0.877704
+vt 0.679501 0.904879
+vt 0.654657 0.876187
+vt 0.654657 0.876187
+vt 0.687346 0.848675
+vt 0.725166 0.814950
+vt 0.725166 0.814950
+vt 0.728380 0.818565
+vt 0.726861 0.816857
+vt 0.689972 0.845625
+vt 0.654699 0.876236
+vt 0.679501 0.904879
+vt 0.653159 0.874457
+vt 0.653159 0.874457
+vt 0.336835 0.488311
+vt 0.352267 0.497638
+vt 0.359923 0.479954
+vt 0.333548 0.479309
+vt 0.351022 0.490894
+vt 0.356593 0.478071
+vt 0.388086 0.425566
+vt 0.388086 0.425566
+vt 0.397749 0.436797
+vt 0.397338 0.436329
+vt 0.380130 0.420612
+vt 0.378188 0.420736
+vt 0.314085 0.425997
+vt 0.487487 0.344931
+vt 0.487487 0.344931
+vt 0.487171 0.344612
+vt 0.487861 0.345307
+vt 0.467491 0.383609
+vt 0.468148 0.384049
+vt 0.469709 0.385092
+vt 0.469709 0.385092
+vt 0.474527 0.388311
+vt 0.474527 0.388311
+vt 0.472301 0.386824
+vt 0.471457 0.386260
+vt 0.149825 0.153579
+vt 0.146682 0.154463
+vt 0.145116 0.157524
+vt 0.140651 0.162081
+vt 0.109135 0.179991
+vt 0.155538 0.151973
+vt 0.151274 0.153172
+vt 0.148912 0.157488
+vt 0.143158 0.164249
+vt 0.110776 0.182698
+vt 0.160809 0.150491
+vt 0.155486 0.151988
+vt 0.153186 0.157449
+vt 0.146022 0.166725
+vt 0.112183 0.185019
+vt 0.145510 0.154793
+vt 0.560318 0.471453
+vt 0.570921 0.482446
+vt 0.559608 0.487972
+vt 0.527812 0.377856
+vt 0.541385 0.429079
+vt 0.506974 0.418468
+vt 0.758888 1.000000
+vt 0.729200 0.973738
+vt 0.798725 0.975845
+vt 0.534853 0.446186
+vt 0.508798 0.430518
+vt 0.537838 0.438369
+vt 0.480697 0.392435
+vt 0.494871 0.352367
+vt 0.498217 0.354955
+vt 0.487861 0.345307
+vt 0.415197 0.313247
+vt 0.432009 0.289065
+vt 0.346470 0.285389
+vt 0.398385 0.337429
+vt 0.335060 0.284899
+vt 0.215236 0.214169
+vt 0.280118 0.228813
+vt 0.272851 0.248178
+vt 0.135481 0.157613
+vt 0.145116 0.157524
+vt 0.140651 0.162081
+vt 0.838562 0.951691
+vt 0.838562 0.951691
+vt 0.821673 0.917847
+vt 0.638493 0.857520
+vt 0.674770 0.828294
+vt 0.689972 0.845625
+vt 0.619104 0.764894
+vt 0.529432 0.726590
+vt 0.556473 0.696206
+vt 0.586174 0.797100
+vt 0.400144 0.605644
+vt 0.448742 0.581744
+vt 0.413661 0.522050
+vt 0.364565 0.564268
+vt 0.344300 0.508759
+vt 0.381657 0.477368
+vt 0.000000 0.000000
+vt 0.028635 0.000000
+vt 0.021390 0.035277
+vt 0.030633 0.035256
+vt 0.085370 0.098253
+vt 0.068904 0.079301
+vt 0.121178 0.088809
+vt 0.111656 0.066874
+vt 0.298740 0.383965
+vt 0.288347 0.355496
+vt 0.282348 0.393036
+vt 0.268834 0.374307
+vt 0.581995 0.445955
+vt 0.557137 0.425946
+vt 0.560338 0.470985
+vt 0.541385 0.429079
+vt 0.562347 0.409863
+vt 0.527812 0.377856
+vt 0.537930 0.438129
+vt 0.838562 0.951691
+vt 0.823826 0.922161
+vt 0.784595 0.958907
+vt 0.508659 0.429598
+vt 0.510552 0.442096
+vt 0.533577 0.449530
+vt 0.494871 0.352367
+vt 0.480697 0.392435
+vt 0.497006 0.358446
+vt 0.511342 0.365111
+vt 0.519264 0.394516
+vt 0.487487 0.344931
+vt 0.398385 0.337429
+vt 0.469709 0.385092
+vt 0.432009 0.289065
+vt 0.335060 0.284899
+vt 0.285850 0.255851
+vt 0.320294 0.221609
+vt 0.264019 0.171841
+vt 0.183931 0.191970
+vt 0.189261 0.142490
+vt 0.707033 0.794554
+vt 0.670735 0.829166
+vt 0.687346 0.848675
+vt 0.652033 0.732687
+vt 0.583513 0.665822
+vt 0.617415 0.766546
+vt 0.553023 0.700082
+vt 0.516786 0.653823
+vt 0.542819 0.627547
+vt 0.445940 0.583122
+vt 0.491736 0.560600
+vt 0.411827 0.523627
+vt 0.447317 0.493110
+vt 0.391119 0.429264
+vt 0.379024 0.490757
+vt 0.377709 0.412915
+vt 0.330895 0.381848
+vt 0.032291 0.011859
+vt 0.009135 0.015065
+vt 0.035924 0.017262
+vt 0.012072 0.019909
+vt 0.122732 0.113020
+vt 0.128574 0.105847
+vt 0.120758 0.087841
+vt 0.305393 0.357093
+vt 0.078606 0.019298
+vt 0.060898 0.000000
+vt 0.081516 0.022470
+vt 0.060898 0.000000
+vt 0.060898 0.000000
+vt 0.078906 0.019625
+vt 0.060898 0.000000
+vt 0.077723 0.018336
+vt 0.128574 0.105847
+vt 0.120254 0.086681
+vt 0.128574 0.105847
+vt 0.120758 0.087841
+vt 0.102135 0.044940
+vt 0.102135 0.044940
+vt 0.109350 0.061560
+vt 0.128574 0.105847
+vt 0.128574 0.105847
+vt 0.120521 0.138707
+vt 0.128574 0.105847
+vt 0.120521 0.138707
+vt 0.128574 0.105847
+vt 0.128574 0.148884
+vt 0.135481 0.157613
+vt 0.120521 0.138707
+vt 0.135481 0.157613
+vt 0.120521 0.138707
+vt 0.135481 0.157613
+vt 0.149825 0.153579
+vt 0.146682 0.154463
+vt 0.189261 0.142490
+vt 0.246766 0.156583
+vt 0.246766 0.156583
+vt 0.264019 0.171841
+vt 0.308585 0.211254
+vt 0.261464 0.169581
+vt 0.263487 0.171370
+vt 0.432009 0.289065
+vt 0.362042 0.254711
+vt 0.352335 0.249945
+vt 0.432009 0.289065
+vt 0.487171 0.344612
+vt 0.561714 0.409277
+vt 0.543010 0.391941
+vt 0.581553 0.444288
+vt 0.581995 0.445955
+vt 0.587350 0.466166
+vt 0.589286 0.473474
+vt 0.571517 0.482155
+vt 0.589286 0.473474
+vt 0.559608 0.487972
+vt 0.560338 0.470985
+vt 0.552749 0.426819
+vt 0.541385 0.429079
+vt 0.533027 0.450971
+vt 0.533577 0.449530
+vt 0.537930 0.438129
+vt 0.512794 0.456906
+vt 0.512794 0.456906
+vt 0.529224 0.460932
+vt 0.529224 0.460932
+vt 0.508659 0.429598
+vt 0.510678 0.442928
+vt 0.510552 0.442096
+vt 0.480697 0.392435
+vt 0.507886 0.424493
+vt 0.506974 0.418468
+vt 0.480697 0.392435
+vt 0.469709 0.385092
+vt 0.398385 0.337429
+vt 0.468148 0.384049
+vt 0.467491 0.383609
+vt 0.335060 0.284899
+vt 0.398385 0.337429
+vt 0.215236 0.214169
+vt 0.282152 0.253668
+vt 0.215236 0.214169
+vt 0.265643 0.243924
+vt 0.324794 0.278839
+vt 0.216324 0.227498
+vt 0.216324 0.227498
+vt 0.216324 0.227498
+vt 0.215236 0.214169
+vt 0.216324 0.227498
+vt 0.216324 0.227498
+vt 0.229274 0.241611
+vt 0.257561 0.272438
+vt 0.257561 0.272438
+vt 0.257561 0.272438
+vt 0.257561 0.272438
+vt 0.279892 0.332338
+vt 0.279892 0.332338
+vt 0.279892 0.332338
+vt 0.279892 0.332338
+vt 0.306725 0.358386
+vt 0.330895 0.381848
+vt 0.330895 0.381848
+vt 0.330895 0.381848
+vt 0.303136 0.354902
+vt 0.307963 0.359587
+vt 0.330895 0.381848
+vt 0.377709 0.412915
+vt 0.377709 0.412915
+vt 0.377709 0.412915
+vt 0.377709 0.412915
+vt 0.380130 0.420612
+vt 0.388086 0.425566
+vt 0.391119 0.429264
+vt 0.391119 0.429264
+vt 0.391119 0.429264
+vt 0.397749 0.436797
+vt 0.397338 0.436329
+vt 0.391119 0.429264
+vt 0.447317 0.493110
+vt 0.447317 0.493110
+vt 0.491736 0.560600
+vt 0.491736 0.560600
+vt 0.447317 0.493110
+vt 0.491736 0.560600
+vt 0.491736 0.560600
+vt 0.447317 0.493110
+vt 0.542819 0.627547
+vt 0.542819 0.627547
+vt 0.583513 0.665822
+vt 0.583513 0.665822
+vt 0.583513 0.665822
+vt 0.583513 0.665822
+vt 0.652033 0.732687
+vt 0.652033 0.732687
+vt 0.652033 0.732687
+vt 0.728380 0.818565
+vt 0.711046 0.799068
+vt 0.708547 0.796256
+vt 0.795738 0.865875
+vt 0.751018 0.844030
+vt 0.795738 0.865875
+vt 0.838562 0.951691
+vt 0.838562 0.951691
+vt 0.758888 1.000000
+vt 0.758888 1.000000
+vt 0.758888 1.000000
+vt 0.838562 0.951691
+vt 0.758888 1.000000
+vt 0.758888 1.000000
+vt 0.754265 0.993679
+vt 0.679501 0.904879
+vt 0.679501 0.904879
+vt 0.636883 0.855662
+vt 0.586174 0.797100
+vt 0.586174 0.797100
+vt 0.529432 0.726590
+vt 0.529432 0.726590
+vt 0.490752 0.680100
+vt 0.490752 0.680100
+vt 0.400144 0.605644
+vt 0.442780 0.640679
+vt 0.364565 0.564268
+vt 0.369613 0.586975
+vt 0.404442 0.575472
+vt 0.359014 0.580494
+vt 0.347827 0.573654
+vt 0.364565 0.564268
+vt 0.347827 0.573654
+vt 0.347827 0.573654
+vt 0.026578 0.000000
+vt 0.000000 0.000000
+vt 0.024318 0.000000
+vt 0.000000 0.000000
+vt 0.000000 0.000000
+vt 0.025404 0.000000
+vt 0.191534 0.315888
+vt 0.221775 0.333444
+vt 0.257561 0.272438
+vt 0.270215 0.306379
+vt 0.075816 0.087257
+vt 0.078382 0.111880
+vt 0.092857 0.106868
+vt 0.100728 0.166125
+vt 0.120521 0.138707
+vt 0.096891 0.159798
+vt 0.096322 0.158859
+vt 0.107805 0.177798
+vt 0.109135 0.179991
+vt 0.121999 0.121530
+vt 0.109869 0.181202
+vt 0.130381 0.215031
+vt 0.135481 0.157613
+vt 0.165138 0.183250
+vt 0.176283 0.290736
+vt 0.216324 0.227498
+vt 0.158928 0.262113
+vt 0.204680 0.337568
+vt 0.255921 0.422078
+vt 0.242483 0.399916
+vt 0.246766 0.156583
+vt 0.246766 0.156583
+vt 0.189261 0.142490
+vt 0.104564 0.172453
+vt 0.128574 0.148884
+vt 0.158967 0.262177
+vt 0.187707 0.309575
+vt 0.227737 0.375595
+vt 0.310292 0.415607
+vt 0.314085 0.425997
+vt 0.267767 0.441614
+vt 0.179092 0.157209
+vt 0.170451 0.182411
+vt 0.167793 0.185545
+vt 0.139847 0.230643
+vt 0.123853 0.204266
+vt 0.095688 0.136217
+vt 0.101377 0.116674
+vt 0.090232 0.131407
+vt 0.118769 0.098946
+vt 0.116891 0.120193
+vt 0.093783 0.051069
+vt 0.107230 0.070925
+vt 0.111955 0.067562
+vt 0.102135 0.044940
+vt 0.085905 0.053438
+vt 0.076069 0.016533
+vt 0.062061 0.006003
+vt 0.076341 0.022389
+vt 0.063445 0.013147
+vt 0.088535 0.128756
+vt 0.378188 0.420736
+vt 0.240645 0.396884
+vt 0.275791 0.369299
+vt 0.318233 0.524846
+vt 0.055202 0.030813
+vt 0.089425 0.119952
+vt 0.078178 0.128935
+vt 0.098161 0.112974
+vt 0.347730 0.473058
+vt 0.333548 0.479309
+vt 0.351022 0.490894
+vt 0.356593 0.478071
+vt 0.400144 0.605644
+vt 0.490752 0.680100
+vt 0.529432 0.726590
+vt 0.586174 0.797100
+vt 0.759602 0.924719
+vt 0.795738 0.865875
+vt 0.711802 0.877396
+vt 0.751018 0.844030
+vt 0.294144 0.346173
+vt 0.293309 0.345362
+vt 0.301705 0.353512
+vt 0.144655 0.238572
+vt 0.186048 0.201326
+vt 0.215236 0.214169
+vt 0.198026 0.207429
+vt 0.216324 0.227498
+vt 0.227907 0.240121
+vt 0.239489 0.252743
+vt 0.257561 0.272438
+vt 0.270215 0.306379
+vt 0.305393 0.357093
+vt 0.343397 0.506285
+vt 0.325693 0.537151
+vt 0.364565 0.564268
+vt 0.347827 0.573654
+vt 0.355365 0.514426
+vt 0.322229 0.448303
+vt 0.388086 0.425566
+vt 0.068466 0.112917
+vt 0.053359 0.088002
+vt 0.075739 0.106607
+vt 0.060089 0.084235
+vt 0.055181 0.068766
+vt 0.048133 0.055396
+vt 0.044394 0.073217
+vt 0.037761 0.062278
+vt 0.061566 0.101538
+vt 0.068417 0.112837
+vt 0.068691 0.094397
+vt 0.075241 0.106213
+vt 0.072594 0.119726
+vt 0.082688 0.048705
+vt 0.070782 0.051011
+vt 0.075969 0.058417
+vt 0.087452 0.055715
+vt 0.078616 0.062199
+vt 0.079950 0.064103
+vt 0.063692 0.073303
+vt 0.085387 0.071868
+vt 0.081614 0.069044
+vt 0.076829 0.080550
+vt 0.061940 0.073835
+vt 0.055054 0.063361
+vt 0.076069 0.016533
+vt 0.029650 0.048900
+vt 0.041302 0.047534
+vt 0.068242 0.037904
+vt 0.077022 0.036057
+vt 0.091241 0.033067
+vt 0.091241 0.033067
+vt 0.102135 0.044940
+vt 0.102135 0.044940
+vt 0.111955 0.067562
+vt 0.092508 0.060419
+vt 0.084425 0.122338
+vt 0.082590 0.119471
+vt 0.089122 0.089368
+vt 0.114324 0.107101
+vt 0.072771 0.090309
+vt 0.070731 0.092353
+vt 0.077841 0.066220
+vt 0.224140 0.369663
+vt 0.252016 0.351000
+vt 0.279892 0.332338
+vt 0.279892 0.332338
+vt 0.198026 0.207429
+vt 0.118551 0.082756
+vt 0.124785 0.097119
+vt 0.121793 0.090226
+vt 0.044233 0.060439
+vt 0.038252 0.063087
+vt 0.102135 0.044940
+vt 0.050214 0.057791
+vt 0.239489 0.252743
+vt 0.076771 0.126614
+vt 0.078585 0.129606
+vt 0.086837 0.126105
+vt 0.080358 0.132531
+vt 0.082016 0.135265
+vt 0.084373 0.139152
+vt 0.088174 0.145421
+vt 0.100168 0.140166
+vt 0.091975 0.151690
+vt 0.060898 0.000000
+vt 0.024318 0.000000
+vt 0.000000 0.000000
+vt 0.509177 0.433016
+vt 0.529224 0.460932
+vt 0.512794 0.456906
+vt 0.838562 0.951691
+vt 0.758888 1.000000
+vt 0.838562 0.951691
+vt 0.636883 0.855662
+vt 0.826223 0.926965
+vt 0.838562 0.951691
+vt 0.761145 0.922206
+vt 0.795738 0.865875
+vt 0.751505 0.989903
+vt 0.754265 0.993679
+vt 0.758888 1.000000
+vt 0.758888 1.000000
+vt 0.833642 0.941831
+vt 0.824372 0.923255
+vt 0.782103 0.955007
+vt 0.819565 0.913623
+vt 0.734149 0.966168
+vt 0.752710 0.991551
+vt 0.748943 0.986400
+vt 0.752668 0.994498
+vt 0.712061 0.958577
+vt 0.752198 0.994083
+vt 0.679501 0.904879
+vt 0.715260 0.874454
+vt 0.712061 0.958577
+vt 0.750907 0.915542
+vt 0.767607 0.944614
+vt 0.727016 0.971806
+vt 0.679501 0.904879
+vt 0.746518 0.983084
+vt 0.734149 0.966168
+vt 0.753452 0.995191
+vt 0.752710 0.991551
+vt 0.712061 0.958577
+vt 0.818550 0.911588
+vt 0.751018 0.844030
+vt 0.795738 0.865875
+vt 0.795738 0.865875
+vt 0.832700 0.939945
+vt 0.833849 0.942247
+vt 0.679501 0.904879
+vt 0.679501 0.904879
+vt 0.712061 0.958577
+vt 0.817731 0.909946
+vt 0.770128 0.949001
+vt 0.654699 0.876236
+vt 0.707033 0.794554
+vt 0.587392 0.466324
+vt 0.571517 0.482155
+vt 0.589286 0.473474
+vt 0.549090 0.435145
+vt 0.575714 0.422252
+vt 0.575714 0.422252
+vt 0.562347 0.409863
+vt 0.555926 0.440528
+vt 0.575714 0.422252
+vt 0.552749 0.426819
+vt 0.510042 0.438728
+vt 0.513567 0.405618
+vt 0.506974 0.418468
+vt 0.497931 0.354734
+vt 0.494871 0.352367
+vt 0.497645 0.354513
+vt 0.587350 0.466166
+vt 0.491157 0.348627
+vt 0.491157 0.348627
+vt 0.494871 0.352367
+vt 0.490459 0.347923
+vt 0.491400 0.348871
+vt 0.497645 0.354513
+vt 0.518947 0.370996
+vt 0.511342 0.365111
+vt 0.568205 0.651424
+vt 0.527812 0.377856
+vt 0.559608 0.487972
+vt 0.400144 0.605644
+vt 0.344968 0.243430
+vt 0.352335 0.249945
+vt 0.352335 0.249945
+vt 0.344999 0.243457
+vt 0.335060 0.284899
+vt 0.363491 0.255423
+vt 0.352335 0.249945
+vt 0.285850 0.255851
+vt 0.320294 0.221609
+vt 0.304243 0.207414
+vt 0.742032 0.833922
+vt 0.705049 0.869465
+vt 0.751018 0.844030
+vt 0.744137 0.836289
+vt 0.742032 0.833922
+vt 0.741965 0.833846
+vt 0.706387 0.864340
...
[truncated message content] |
|
From: <tre...@us...> - 2007-09-25 14:47:51
|
Revision: 440
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=440&view=rev
Author: trevorolio
Date: 2007-09-25 07:47:44 -0700 (Tue, 25 Sep 2007)
Log Message:
-----------
Whoops. Added the wrong mesh.
Modified Paths:
--------------
maven/trunk/ogoglio-common/src/main/resources/avatar/female.obj
maven/trunk/ogoglio-common/src/main/resources/avatar/female.smap
Modified: maven/trunk/ogoglio-common/src/main/resources/avatar/female.obj
===================================================================
--- maven/trunk/ogoglio-common/src/main/resources/avatar/female.obj 2007-09-24 21:28:33 UTC (rev 439)
+++ maven/trunk/ogoglio-common/src/main/resources/avatar/female.obj 2007-09-25 14:47:44 UTC (rev 440)
@@ -1,23186 +1,15324 @@
-# Blender3D v245 OBJ File: fem.blend
+# Blender3D v244 OBJ File: andrea.blend
# www.blender3d.org
-o female
-v -0.044834 1.321391 0.121894
-v -0.038114 1.322300 0.120164
-v -0.032559 1.321776 0.115808
-v -0.031623 1.321675 0.117539
-v -0.038323 1.322315 0.118298
-v -0.027173 1.322421 0.110426
-v -0.023507 1.321507 0.104576
-v -0.020896 1.320763 0.106810
-v -0.026000 1.321086 0.111986
-v -0.018094 1.321341 0.095664
-v -0.014261 1.322291 0.100128
-v -0.014370 1.320763 0.084124
-v -0.009236 1.322291 0.088814
-v -0.005159 1.320763 0.076064
-v 0.003068 1.320763 0.059242
-v -0.011241 1.320763 0.071324
-v -0.009170 1.320763 0.057097
-v -0.010160 1.332961 0.055448
-v -0.012964 1.332961 0.072662
-v 0.001722 1.332961 0.075236
-v 0.004526 1.332961 0.058022
-v -0.011734 1.332495 0.069536
-v -0.016350 1.332495 0.085544
-v -0.002641 1.332495 0.089586
-v 0.001976 1.332495 0.073578
-v -0.021178 1.331691 0.095910
-v -0.009854 1.331691 0.101767
-v -0.002963 1.331691 0.087916
-v -0.014287 1.331691 0.082059
-v -0.024760 1.329647 0.103300
-v -0.017368 1.329647 0.108953
-v -0.010728 1.329647 0.100395
-v -0.018120 1.329647 0.094742
-v -0.027475 1.324171 0.109445
-v -0.023984 1.331469 0.114571
-v -0.017700 1.331469 0.106963
-v -0.023520 1.324171 0.104656
-v -0.032754 1.322292 0.114641
-v -0.030005 1.330953 0.121642
-v -0.022164 1.330953 0.113856
-v -0.028234 1.322292 0.110153
-v -0.038023 1.323461 0.116385
-v -0.039342 1.331440 0.123927
-v -0.028010 1.331440 0.119584
-v -0.034698 1.323461 0.115111
-v -0.035067 1.331306 0.122441
-v -0.039636 1.323524 0.117579
-v -0.047148 1.331306 0.125358
-v -0.044834 1.323524 0.118790
-v -0.042144 1.319819 0.118185
-v -0.041300 1.319061 0.121735
-v -0.041107 1.331306 0.124742
-v -0.042144 1.323524 0.118185
-v -0.036361 1.319384 0.115748
-v -0.035048 1.319518 0.119206
-v -0.036361 1.323461 0.115748
-v -0.032940 1.331440 0.122406
-v -0.028340 1.318323 0.115415
-v -0.030724 1.319359 0.112419
-v -0.030494 1.322292 0.112397
-v -0.026085 1.334084 0.117749
-v -0.022176 1.318212 0.108614
-v -0.026136 1.319736 0.106572
-v -0.025498 1.324171 0.107051
-v -0.020842 1.331469 0.110767
-v -0.016201 1.317931 0.103704
-v -0.021031 1.320763 0.099333
-v -0.021440 1.326229 0.099021
-v -0.014048 1.326229 0.104674
-v -0.009960 1.320876 0.093141
-v -0.016789 1.320763 0.089473
-v -0.017733 1.326058 0.088985
-v -0.006409 1.326058 0.094842
-v -0.002787 1.320763 0.081054
-v -0.012900 1.320763 0.077877
-v -0.014042 1.326653 0.077540
-v -0.000333 1.326653 0.081582
-v 0.000366 1.320763 0.066414
-v -0.010338 1.320763 0.064270
-v -0.011562 1.326967 0.064055
-v 0.003124 1.326967 0.066629
-v -0.013959 1.310380 0.050234
-v 0.003761 1.309163 0.058460
-v -0.016314 1.308190 0.065041
-v 0.000048 1.306776 0.074598
-v -0.019891 1.306323 0.077658
-v -0.006417 1.304666 0.088862
-v -0.023793 1.304736 0.088388
-v -0.014232 1.303055 0.099752
-v -0.028487 1.303571 0.096265
-v -0.021958 1.302101 0.106202
-v -0.032707 1.302630 0.102627
-v -0.027822 1.301071 0.113168
-v -0.035678 1.300363 0.117956
-v -0.037891 1.302094 0.106250
-v -0.041710 1.299946 0.120771
-v -0.043209 1.301702 0.108902
-v -0.012884 1.311534 0.046082
-v -0.014789 1.309244 0.057910
-v 0.005046 1.310317 0.050655
-v 0.002320 1.307929 0.066802
-v -0.002663 1.305649 0.082219
-v -0.017667 1.307184 0.071838
-v -0.010280 1.303703 0.095376
-v -0.021804 1.305372 0.084093
-v -0.024628 1.301582 0.109713
-v -0.018390 1.302508 0.103455
-v -0.026588 1.304040 0.093095
-v -0.030739 1.303041 0.099848
-v -0.040162 1.301896 0.107593
-v -0.031500 1.300589 0.116428
-v -0.035302 1.302280 0.104994
-v -0.038055 1.300119 0.119601
-v -0.044834 1.301605 0.109561
-v -0.044834 1.299810 0.121693
-v -0.051612 1.300119 0.119601
-v -0.054365 1.302280 0.104994
-v -0.058167 1.300589 0.116428
-v -0.049506 1.301896 0.107593
-v -0.058928 1.303041 0.099848
-v -0.063079 1.304040 0.093095
-v -0.071277 1.302508 0.103455
-v -0.065040 1.301582 0.109713
-v -0.067863 1.305372 0.084093
-v -0.079387 1.303703 0.095376
-v -0.072000 1.307184 0.071838
-v -0.087004 1.305649 0.082219
-v -0.091987 1.307929 0.066802
-v -0.094713 1.310317 0.050655
-v -0.074878 1.309244 0.057910
-v -0.076783 1.311534 0.046082
-v -0.044834 1.301702 0.108902
-v -0.047957 1.299946 0.120771
-v -0.051776 1.302094 0.106250
-v -0.053989 1.300363 0.117956
-v -0.061845 1.301071 0.113168
-v -0.056960 1.302630 0.102627
-v -0.067709 1.302101 0.106202
-v -0.061180 1.303571 0.096265
-v -0.075435 1.303055 0.099752
-v -0.065875 1.304736 0.088388
-v -0.083250 1.304666 0.088862
-v -0.069776 1.306323 0.077658
-v -0.089715 1.306776 0.074598
-v -0.073353 1.308190 0.065041
-v -0.093428 1.309163 0.058460
-v -0.075708 1.310380 0.050234
-v -0.092791 1.326967 0.066629
-v -0.078105 1.326967 0.064055
-v -0.079329 1.320763 0.064270
-v -0.090033 1.320763 0.066414
-v -0.089334 1.326653 0.081582
-v -0.075625 1.326653 0.077540
-v -0.076767 1.320763 0.077877
-v -0.086881 1.320763 0.081054
-v -0.083258 1.326058 0.094842
-v -0.071935 1.326058 0.088985
-v -0.072878 1.320763 0.089473
-v -0.079708 1.320876 0.093141
-v -0.075619 1.326229 0.104674
-v -0.068227 1.326229 0.099021
-v -0.068636 1.320763 0.099333
-v -0.073466 1.317931 0.103704
-v -0.068825 1.331469 0.110767
-v -0.064169 1.324171 0.107051
-v -0.063531 1.319736 0.106572
-v -0.067492 1.318212 0.108614
-v -0.063582 1.334084 0.117749
-v -0.059173 1.322292 0.112397
-v -0.058943 1.319359 0.112419
-v -0.061327 1.318323 0.115415
-v -0.056728 1.331440 0.122406
-v -0.053306 1.323461 0.115748
-v -0.054619 1.319518 0.119206
-v -0.053306 1.319384 0.115748
-v -0.047524 1.323524 0.118185
-v -0.048560 1.331306 0.124742
-v -0.048367 1.319061 0.121735
-v -0.047523 1.319819 0.118185
-v -0.042519 1.331306 0.125358
-v -0.050031 1.323524 0.117579
-v -0.054600 1.331306 0.122441
-v -0.054969 1.323461 0.115111
-v -0.061657 1.331440 0.119584
-v -0.050325 1.331440 0.123927
-v -0.051644 1.323461 0.116385
-v -0.061433 1.322292 0.110153
-v -0.067503 1.330953 0.113856
-v -0.059662 1.330953 0.121642
-v -0.056913 1.322292 0.114641
-v -0.066147 1.324171 0.104656
-v -0.071967 1.331469 0.106963
-v -0.065683 1.331469 0.114571
-v -0.062192 1.324171 0.109445
-v -0.071547 1.329647 0.094742
-v -0.078939 1.329647 0.100395
-v -0.072299 1.329647 0.108953
-v -0.064907 1.329647 0.103300
-v -0.075380 1.331691 0.082059
-v -0.086704 1.331691 0.087916
-v -0.079813 1.331691 0.101767
-v -0.068489 1.331691 0.095910
-v -0.091643 1.332495 0.073578
-v -0.087026 1.332495 0.089586
-v -0.073317 1.332495 0.085544
-v -0.077933 1.332495 0.069536
-v -0.094193 1.332961 0.058022
-v -0.091389 1.332961 0.075236
-v -0.076703 1.332961 0.072662
-v -0.079507 1.332961 0.055448
-v -0.080497 1.320763 0.057097
-v -0.078426 1.320763 0.071324
-v -0.092736 1.320763 0.059242
-v -0.084508 1.320763 0.076064
-v -0.080431 1.322291 0.088814
-v -0.075297 1.320763 0.084124
-v -0.075406 1.322291 0.100128
-v -0.071573 1.321341 0.095664
-v -0.063667 1.321086 0.111986
-v -0.068771 1.320763 0.106810
-v -0.066160 1.321507 0.104576
-v -0.062494 1.322421 0.110426
-v -0.051344 1.322315 0.118298
-v -0.058045 1.321675 0.117539
-v -0.057108 1.321776 0.115808
-v -0.051553 1.322300 0.120164
-v -0.044834 1.322288 0.119779
-v 0.006955 1.353255 0.053069
-v 0.006502 1.327784 0.057353
-v -0.009015 1.327784 0.053780
-v -0.012243 1.353255 0.045956
-v 0.003901 1.353255 0.069939
-v 0.002626 1.327784 0.076511
-v -0.012285 1.327784 0.071421
-v -0.013936 1.353255 0.061146
-v -0.015992 1.327067 0.084639
-v -0.001453 1.327067 0.089763
-v -0.000640 1.353255 0.084872
-v -0.009958 1.327067 0.067672
-v 0.003672 1.327067 0.073707
-v -0.001044 1.326436 0.087344
-v -0.013077 1.326436 0.080958
-v -0.017026 1.353255 0.075915
-v -0.009099 1.326436 0.102108
-v -0.020829 1.326436 0.095418
-v -0.023348 1.325512 0.103830
-v -0.013943 1.325512 0.109294
-v -0.013118 1.353255 0.107050
-v -0.021162 1.353255 0.089191
-v -0.017732 1.325512 0.094272
-v -0.008326 1.325512 0.099585
-v -0.007838 1.353255 0.098356
-v -0.014114 1.326914 0.107062
-v -0.017162 1.329084 0.104625
-v -0.024330 1.353255 0.098663
-v -0.019056 1.353255 0.114602
-v -0.020356 1.326914 0.115499
-v -0.025676 1.329084 0.112732
-v -0.029081 1.353255 0.105882
-v -0.030749 1.330185 0.116454
-v -0.026345 1.325533 0.122211
-v -0.024763 1.353255 0.122479
-v -0.026193 1.330185 0.110765
-v -0.020418 1.325533 0.112974
-v -0.022623 1.322144 0.118782
-v -0.031587 1.330462 0.116039
-v -0.032795 1.353255 0.112107
-v -0.033157 1.353255 0.128760
-v -0.033078 1.322144 0.126981
-v -0.038213 1.330462 0.120006
-v -0.037724 1.353255 0.115340
-v -0.044556 1.353255 0.115761
-v -0.044710 1.330901 0.117990
-v -0.046255 1.318208 0.127776
-v -0.044706 1.353255 0.130338
-v -0.035665 1.329907 0.116410
-v -0.029772 1.318208 0.126165
-v -0.041318 1.353255 0.114443
-v -0.041453 1.333152 0.118975
-v -0.039004 1.353255 0.131326
-v -0.038013 1.318208 0.129074
-v -0.028015 1.320349 0.123865
-v -0.029134 1.353255 0.125975
-v -0.034424 1.330462 0.117785
-v -0.035432 1.353255 0.114224
-v -0.031233 1.353255 0.108309
-v -0.029601 1.330185 0.112560
-v -0.021456 1.353255 0.119864
-v -0.022878 1.320436 0.118742
-v -0.016937 1.323575 0.112247
-v -0.015944 1.353255 0.111679
-v -0.021510 1.329084 0.108588
-v -0.026742 1.353255 0.101951
-v -0.022164 1.353255 0.093819
-v -0.020085 1.329259 0.098672
-v -0.009135 1.353255 0.102914
-v -0.009618 1.329259 0.104591
-v -0.004692 1.330323 0.094802
-v -0.004047 1.353255 0.091855
-v -0.017484 1.330323 0.087657
-v -0.019506 1.353255 0.081724
-v -0.015713 1.353255 0.068151
-v -0.013354 1.331385 0.075625
-v 0.002080 1.353255 0.076959
-v 0.001337 1.331385 0.081204
-v 0.005019 1.331978 0.067691
-v 0.005768 1.353255 0.061801
-v -0.011257 1.331979 0.062753
-v -0.013720 1.353255 0.053535
-v -0.041348 1.335018 0.119649
-v -0.037338 1.335492 0.117923
-v -0.039465 1.338913 0.128419
-v -0.034136 1.334082 0.125191
-v -0.044710 1.331303 0.129048
-v -0.032027 1.336563 0.115461
-v -0.029407 1.338761 0.124722
-v -0.034916 1.336774 0.116739
-v -0.030359 1.338499 0.111773
-v -0.026747 1.335923 0.108889
-v -0.021739 1.339946 0.121379
-v -0.026925 1.333785 0.119852
-v -0.021544 1.334240 0.103803
-v -0.015976 1.336342 0.107489
-v -0.021755 1.334931 0.113503
-v -0.018646 1.337571 0.111380
-v -0.023656 1.335797 0.107481
-v -0.021070 1.336940 0.098959
-v -0.018905 1.335464 0.095247
-v -0.012039 1.337270 0.104067
-v -0.011069 1.335529 0.100446
-v -0.014765 1.336925 0.083884
-v -0.007383 1.337841 0.094796
-v -0.018499 1.338674 0.088586
-v -0.014520 1.338856 0.077177
-v -0.010598 1.337753 0.071351
-v -0.001765 1.338583 0.082021
-v -0.000098 1.336409 0.076164
-v -0.004200 1.335625 0.088884
-v 0.002884 1.336952 0.060299
-v -0.010496 1.335630 0.057218
-v 0.001605 1.339486 0.069212
-v -0.010530 1.338165 0.064954
-v -0.078891 1.338165 0.064954
-v -0.091026 1.339486 0.069212
-v -0.078925 1.335630 0.057218
-v -0.092304 1.336952 0.060299
-v -0.085221 1.335625 0.088884
-v -0.089323 1.336409 0.076164
-v -0.087656 1.338583 0.082021
-v -0.078823 1.337753 0.071351
-v -0.074901 1.338856 0.077177
-v -0.070921 1.338674 0.088586
-v -0.082038 1.337841 0.094796
-v -0.074656 1.336925 0.083884
-v -0.078352 1.335529 0.100446
-v -0.077382 1.337270 0.104067
-v -0.070516 1.335464 0.095247
-v -0.068351 1.336940 0.098959
-v -0.065765 1.335797 0.107481
-v -0.070774 1.337571 0.111380
-v -0.067666 1.334931 0.113503
-v -0.073444 1.336342 0.107489
-v -0.067877 1.334240 0.103803
-v -0.062496 1.333785 0.119852
-v -0.067682 1.339946 0.121379
-v -0.062674 1.335923 0.108889
-v -0.059061 1.338499 0.111773
-v -0.054505 1.336774 0.116739
-v -0.060014 1.338761 0.124722
-v -0.057394 1.336563 0.115461
-v -0.055285 1.334082 0.125191
-v -0.049955 1.338913 0.128419
-v -0.052083 1.335492 0.117923
-v -0.048073 1.335018 0.119649
-v -0.075392 1.353255 0.053535
-v -0.078164 1.331979 0.062753
-v -0.095181 1.353255 0.061801
-v -0.094440 1.331978 0.067691
-v -0.090758 1.331385 0.081204
-v -0.091493 1.353255 0.076959
-v -0.076067 1.331385 0.075625
-v -0.073400 1.353255 0.068151
-v -0.069606 1.353255 0.081724
-v -0.071937 1.330323 0.087657
-v -0.085366 1.353255 0.091855
-v -0.084729 1.330323 0.094802
-v -0.079803 1.329259 0.104591
-v -0.080277 1.353255 0.102914
-v -0.069336 1.329259 0.098672
-v -0.066858 1.353255 0.094035
-v -0.062370 1.353255 0.101951
-v -0.067911 1.329084 0.108588
-v -0.073469 1.353255 0.111679
-v -0.072484 1.323575 0.112247
-v -0.066543 1.320436 0.118742
-v -0.067957 1.353255 0.119864
-v -0.059820 1.330185 0.112560
-v -0.057879 1.353255 0.108309
-v -0.053680 1.353255 0.114224
-v -0.054997 1.330462 0.117785
-v -0.060278 1.353255 0.125975
-v -0.061406 1.320349 0.123865
-v -0.051408 1.318208 0.129074
-v -0.050408 1.353255 0.131326
-v -0.047968 1.333152 0.118975
-v -0.047795 1.353255 0.114443
-v -0.059649 1.318208 0.126165
-v -0.053756 1.329907 0.116410
-v -0.043166 1.318208 0.127776
-v -0.051389 1.353255 0.115340
-v -0.051207 1.330462 0.120006
-v -0.056343 1.322144 0.126981
-v -0.056256 1.353255 0.128760
-v -0.056318 1.353255 0.112107
-v -0.057834 1.330462 0.116039
-v -0.066798 1.322144 0.118782
-v -0.069003 1.325533 0.112974
-v -0.063228 1.330185 0.110765
-v -0.064650 1.353255 0.122479
-v -0.063076 1.325533 0.122211
-v -0.058672 1.330185 0.116454
-v -0.060031 1.353255 0.105882
-v -0.063745 1.329084 0.112732
-v -0.069065 1.326914 0.115499
-v -0.070356 1.353255 0.114602
-v -0.064783 1.353255 0.098663
-v -0.072259 1.329084 0.104625
-v -0.075307 1.326914 0.107062
-v -0.081574 1.353255 0.098356
-v -0.081094 1.325512 0.099585
-v -0.071689 1.325512 0.094272
-v -0.067950 1.353255 0.089191
-v -0.076294 1.353255 0.107050
-v -0.075478 1.325512 0.109294
-v -0.066072 1.325512 0.103830
-v -0.068592 1.326436 0.095418
-v -0.080322 1.326436 0.102108
-v -0.072086 1.353255 0.075915
-v -0.076344 1.326436 0.080958
-v -0.088377 1.326436 0.087344
-v -0.093093 1.327067 0.073707
-v -0.079463 1.327067 0.067672
-v -0.088773 1.353255 0.084872
-v -0.087968 1.327067 0.089763
-v -0.073429 1.327067 0.084639
-v -0.075177 1.353255 0.061146
-v -0.077136 1.327784 0.071421
-v -0.092047 1.327784 0.076511
-v -0.093313 1.353255 0.069939
-v -0.076870 1.353255 0.045956
-v -0.080406 1.327784 0.053780
-v -0.095923 1.327784 0.057353
-v -0.096368 1.353255 0.053069
-v -0.059557 1.437240 0.139808
-v -0.115994 1.458800 0.126202
-v -0.091927 1.451604 0.128849
-v -0.138724 1.444198 0.100030
-v -0.072323 1.440589 0.135208
-v -0.017078 1.440589 0.135208
-v 0.048210 1.446823 0.100030
-v 0.002525 1.451604 0.128849
-v 0.026592 1.458800 0.126202
-v -0.029845 1.437240 0.139808
-v -0.029845 1.445146 0.139808
-v 0.026592 1.469538 0.126202
-v 0.002525 1.461071 0.128849
-v 0.048210 1.453186 0.100030
-v -0.017078 1.446435 0.135208
-v -0.072323 1.446435 0.135208
-v -0.138724 1.450561 0.100030
-v -0.091927 1.461071 0.128849
-v -0.115994 1.469538 0.126202
-v -0.059557 1.445146 0.139808
-v -0.059661 1.445146 0.125673
-v -0.116098 1.469538 0.112066
-v -0.092031 1.461071 0.114714
-v -0.138828 1.450561 0.085895
-v -0.072428 1.446435 0.121073
-v -0.017182 1.446435 0.121073
-v 0.048105 1.453186 0.085895
-v 0.002421 1.461071 0.114714
-v 0.026488 1.469538 0.112066
-v -0.029949 1.445146 0.125673
-v -0.029949 1.437240 0.125673
-v 0.026488 1.458800 0.112066
-v 0.002421 1.451604 0.114714
-v 0.048105 1.446823 0.085895
-v -0.017182 1.440589 0.121073
-v -0.072428 1.440589 0.121073
-v -0.138828 1.444198 0.085895
-v -0.092031 1.451604 0.114714
-v -0.116098 1.458800 0.112066
-v -0.059661 1.437240 0.125673
-v -0.043449 1.298097 0.113494
-v -0.043449 1.280685 0.128867
-v -0.043449 1.342838 0.122733
-v -0.043449 1.303517 0.134605
-v -0.043449 1.255787 0.084476
-v -0.043525 1.249821 0.076456
-v -0.043525 0.317753 0.154058
-v -0.043525 0.272564 -0.043038
-v -0.043525 0.522538 -0.141164
-v -0.043525 0.440994 -0.155720
-v -0.293620 0.228283 0.075466
-v -0.309609 0.261266 0.059618
-v -0.297732 0.205730 0.083589
-v -0.291254 0.172321 0.096549
-v -0.289716 0.157415 0.096788
-v -0.287679 0.134628 0.109329
-v -0.287569 0.125205 0.102337
-v -0.290545 0.149277 0.083271
-v -0.289155 0.170093 0.075868
-v -0.297223 0.198448 0.067690
-v -0.296638 0.219974 0.054085
-v -0.317904 0.194103 0.055766
-v -0.314959 0.185942 0.059889
-v -0.307329 0.163754 0.066820
-v -0.306589 0.149277 0.071131
-v -0.300350 0.129917 0.087603
-v -0.329733 0.221235 0.023119
-v -0.345682 0.247363 0.006847
-v -0.307037 0.254473 0.025307
-v -0.337519 0.280172 0.003157
-v -0.361162 0.287454 -0.011456
-v -0.373866 0.297733 -0.018605
-v -0.377310 0.276660 -0.031062
-v -0.391211 0.247877 -0.036225
-v -0.395395 0.211384 -0.044544
-v -0.392504 0.188768 -0.050055
-v -0.358481 0.264838 -0.018666
-v -0.377914 0.167278 -0.030613
-v -0.365577 0.153914 -0.009794
-v -0.350089 0.145691 0.016341
-v -0.334366 0.139941 0.042873
-v -0.340049 0.184502 0.052418
-v -0.333921 0.183629 0.058467
-v -0.352034 0.198021 0.027902
-v -0.364372 0.221150 0.007083
-v -0.364442 0.237083 -0.024629
-v -0.343176 0.174588 0.021074
-v -0.357088 0.183839 -0.002403
-v -0.363523 0.198745 -0.026994
-v -0.337642 0.103962 0.042523
-v -0.340267 0.069012 0.038093
-v -0.344467 0.033033 0.031006
-v -0.357329 0.035603 0.009301
-v -0.354967 0.072609 0.013287
-v -0.353392 0.104990 0.015945
-v -0.357854 0.103448 0.008415
-v -0.362317 0.069012 0.000884
-v -0.368092 0.028921 -0.008861
-v -0.380954 0.035089 -0.030566
-v -0.376754 0.073123 -0.023478
-v -0.373079 0.108588 -0.017277
-v -0.374129 0.114756 -0.019049
-v -0.378329 0.088029 -0.026136
-v -0.384104 0.053592 -0.035881
-v -0.396442 0.060274 -0.056700
-v -0.391192 0.094711 -0.047841
-v -0.387517 0.126064 -0.041640
-v -0.384629 0.150221 -0.036767
-v -0.388304 0.128633 -0.042969
-v -0.392767 0.098309 -0.050499
-v -0.401167 0.103448 -0.064674
-v -0.398804 0.134801 -0.060687
-v -0.396442 0.159472 -0.056700
-v -0.419465 0.159772 -0.042292
-v -0.417450 0.135101 -0.049076
-v -0.419813 0.103748 -0.053063
-v -0.415889 0.098608 -0.036027
-v -0.411426 0.128933 -0.028497
-v -0.412129 0.150521 -0.019498
-v -0.415016 0.126363 -0.024371
-v -0.414902 0.095011 -0.032994
-v -0.420152 0.060574 -0.041853
-v -0.407814 0.053892 -0.021034
-v -0.402039 0.088329 -0.011289
-v -0.401629 0.115056 -0.001780
-v -0.400579 0.108888 -0.000008
-v -0.400698 0.073423 -0.008481
-v -0.404898 0.035389 -0.015569
-v -0.392036 0.029221 0.006136
-v -0.386261 0.069311 0.015881
-v -0.385354 0.103748 0.025684
-v -0.380891 0.105290 0.033214
-v -0.377576 0.072909 0.027431
-v -0.377794 0.035903 0.022074
-v -0.364931 0.033333 0.043779
-v -0.362876 0.069311 0.052237
-v -0.365141 0.104262 0.059792
-v -0.370215 0.172385 0.067057
-v -0.367671 0.162931 0.069589
-v -0.388733 0.168681 0.046469
-v -0.408175 0.172183 0.019745
-v -0.410966 0.184809 -0.006128
-v -0.411760 0.204712 -0.033016
-v -0.415781 0.203226 -0.023223
-v -0.408865 0.212526 -0.023856
-v -0.405893 0.255801 -0.014865
-v -0.397394 0.298033 -0.003874
-v -0.395086 0.287788 0.009470
-v -0.384327 0.280506 0.032316
-v -0.360558 0.254773 0.059206
-v -0.314071 0.129804 0.096792
-v -0.322864 0.149164 0.081953
-v -0.324921 0.163641 0.078483
-v -0.329996 0.185828 0.069919
-v -0.356122 0.194403 0.079885
-v -0.342436 0.220274 0.083048
-v -0.327713 0.198335 0.087596
-v -0.321971 0.169980 0.097261
-v -0.317135 0.149164 0.100684
-v -0.304432 0.125092 0.113535
-v -0.299255 0.134515 0.117148
-v -0.305205 0.157302 0.107108
-v -0.305730 0.172208 0.106222
-v -0.313081 0.205617 0.093819
-v -0.323646 0.264391 0.064575
-v -0.322114 0.228583 0.093370
-v -0.350750 0.137550 0.016262
-v -0.335022 0.132745 0.042803
-v -0.385273 0.137849 0.038019
-v -0.365273 0.133044 0.061830
-v -0.363612 0.144849 -0.013505
-v -0.348177 0.137242 0.012541
-v -0.404764 0.141370 0.009995
-v -0.386166 0.137540 0.036513
-v -0.376017 0.159034 -0.035259
-v -0.363469 0.146082 -0.014085
-v -0.413132 0.155556 -0.014338
-v -0.404974 0.142604 0.009641
-v -0.393292 0.182909 -0.051384
-v -0.379258 0.163866 -0.031844
-v -0.416806 0.183208 -0.036663
-v -0.412555 0.160388 -0.013363
-v -0.043525 1.170433 -0.142514
-v -0.043525 0.843716 0.188695
-v -0.044706 0.893004 0.185207
-v -0.043525 0.324795 -0.164232
-v -0.043525 0.301481 -0.119333
-v -0.106808 -0.986811 0.287999
-v -0.183244 -0.986817 0.210415
-v -0.088347 -0.954524 0.289433
-v -0.183245 -0.963705 0.210415
-v -0.106016 -0.986811 0.277805
-v -0.058586 -0.986808 0.281489
-v -0.096627 -0.950198 0.278534
-v -0.060851 -0.955427 0.281314
-v -0.044884 -0.965056 0.211327
-v -0.180594 -0.969380 0.176293
-v -0.088497 -0.933408 0.207940
-v -0.180593 -0.986817 0.176293
-v -0.053086 -0.986807 0.210690
-v -0.100516 -0.986811 0.207006
-v -0.057047 -0.986808 -0.036854
-v -0.134034 -0.986813 0.083118
-v -0.048425 -0.986807 0.150698
-v -0.177873 -0.986816 0.141285
-v -0.132529 -0.986813 -0.047848
-v -0.088251 -0.986810 -0.088978
-v -0.145716 -0.986814 -0.014514
-v -0.080780 -0.925235 0.196392
-v -0.145718 -0.969377 -0.014514
-v -0.086038 -0.958202 -0.117500
-v -0.132530 -0.969377 -0.047848
-v -0.177875 -0.969380 0.141285
-v -0.038219 -0.930730 0.148212
-v -0.060352 -0.969371 0.025025
-v -0.057048 -0.969371 -0.036854
-v -0.057051 -0.932589 -0.036854
-v -0.042888 -0.923506 -0.003398
-v -0.059198 -0.895991 0.054760
-v -0.138843 -0.922786 0.049216
-v -0.122068 -0.932594 -0.047035
-v -0.087518 -0.914609 -0.098485
-v -0.122100 -0.932594 -0.012679
-v -0.100236 -0.894993 0.109617
-v -0.096313 -0.863727 0.059092
-v -0.145723 -0.896659 -0.014514
-v -0.087522 -0.863726 -0.098485
-v -0.112090 -0.884167 -0.046260
-v -0.118957 -0.884167 0.013048
-v -0.066476 -0.841015 0.016483
-v -0.053081 -0.841014 -0.004189
-v -0.057058 -0.841015 -0.036854
-v -0.130165 -0.389314 0.065538
-v -0.236402 -0.347073 -0.036171
-v -0.181602 -0.355177 0.010845
-v -0.224449 -0.350998 -0.086918
-v -0.172443 -0.393043 -0.181126
-v -0.091938 -0.392632 0.009705
-v -0.044695 -0.384352 -0.021947
-v -0.057812 -0.396617 -0.130311
-v -0.130147 -0.309398 0.068240
-v -0.214390 -0.280583 -0.031036
-v -0.184782 -0.296424 0.014492
-v -0.218892 -0.295102 -0.082603
-v -0.134277 -0.322390 -0.153388
-v -0.082005 -0.303026 0.011762
-v -0.062878 -0.295870 -0.018671
-v -0.076114 -0.305737 -0.064023
-v -0.044695 -0.401365 -0.026726
-v -0.062780 -0.528636 -0.137741
-v -0.157901 -0.495539 -0.193871
-v -0.248990 -0.448604 -0.093214
-v -0.249643 -0.460268 -0.040310
-v -0.093461 -0.486759 0.006705
-v -0.185675 -0.471518 0.008876
-v -0.130191 -0.505879 0.047233
-v -0.064389 -0.788254 -0.039699
-v -0.057895 -0.788368 -0.007440
-v -0.069647 -0.788162 0.014207
-v -0.127908 -0.787146 0.021661
-v -0.125656 -0.787185 -0.050491
-v -0.100666 -0.787621 -0.087431
-v -0.147642 -0.786801 -0.016235
-v -0.097227 -0.787681 0.035155
-v -0.130376 -0.288703 0.067480
-v -0.196268 -0.203762 0.007689
-v -0.135825 -0.273842 -0.127795
-v -0.217854 -0.264459 -0.076753
-v -0.167329 -0.263069 0.058256
-v -0.084171 -0.264521 0.012643
-v -0.064549 -0.258048 -0.017267
-v -0.075485 -0.266944 -0.061841
-v -0.085505 0.298732 -0.078830
-v -0.086761 0.271624 0.051543
-v -0.254316 0.613692 -0.006152
-v -0.295559 0.535296 -0.022656
-v -0.324635 0.395043 -0.032087
-v -0.247705 0.336898 -0.190410
-v -0.221346 0.508888 -0.154835
-v -0.172839 0.591413 -0.113898
-v -0.082512 0.527050 -0.169421
-v -0.102829 0.463228 -0.228513
-v -0.102295 0.286303 -0.246342
-v -0.164355 0.243012 -0.167058
-v -0.244490 0.692879 -0.005330
-v -0.151379 0.658352 -0.097253
-v -0.082211 0.658352 -0.097253
-v -0.110502 1.156287 -0.153831
-v -0.202305 1.113849 -0.165147
-v -0.095740 1.003448 -0.173224
-v -0.188649 0.990882 -0.174883
-v -0.171139 0.852610 -0.154694
-v -0.088609 0.850893 -0.141985
-v -0.198350 1.165504 -0.068961
-v -0.149658 1.202283 -0.077449
-v -0.149422 1.113057 0.011724
-v -0.249056 1.100926 0.010278
-v -0.243294 0.345374 0.145366
-v -0.238290 0.422203 0.123518
-v -0.248500 0.555667 0.126159
-v -0.172029 0.644530 0.095415
-v -0.174265 0.746633 0.090861
-v -0.175122 0.737078 0.130165
-v -0.146433 0.664334 0.084174
-v -0.171630 0.572967 0.103602
-v -0.179335 0.464219 0.148676
-v -0.121830 1.060509 0.082990
-v -0.157122 0.839102 0.144919
-v -0.216193 0.811354 0.077323
-v -0.294091 0.881339 0.100524
-v -0.278154 0.934942 0.119102
-v -0.105666 0.988747 0.192624
-v -0.126940 0.932299 0.251900
-v -0.166624 0.853121 0.299973
-v -0.190352 0.782426 0.263211
-v -0.132955 0.756335 0.212666
-v -0.214704 0.749200 0.178514
-v -0.249836 0.774572 0.263211
-v -0.264564 0.858575 0.306791
-v -0.209744 0.936390 0.257355
-v -0.195125 1.037258 0.074648
-v -0.167197 0.988747 0.192624
-v -0.226163 0.983838 0.127167
-v -0.280438 0.922480 0.199534
-v -0.313167 0.853121 0.236152
-v -0.303620 0.808609 0.199391
-v -0.267347 0.776923 0.130921
-v -0.097861 0.793460 0.259716
-v -0.105755 0.855103 0.273998
-v -0.061181 0.932299 0.217535
-v -0.056446 0.988747 0.172987
-v -0.058911 0.169997 -0.092292
-v -0.058440 0.042222 -0.081077
-v -0.059526 -0.044488 -0.047279
-v -0.065373 -0.208188 -0.061841
-v -0.064019 -0.130647 -0.058896
-v -0.054904 -0.226044 -0.011589
-v -0.044695 -0.129854 0.000192
-v -0.044695 -0.053621 0.037168
-v -0.044695 0.047150 0.036187
-v -0.075017 0.257651 -0.013643
-v -0.047718 0.185676 0.039003
-v -0.104791 0.234125 0.117535
-v -0.080181 0.072220 0.114719
-v -0.072998 -0.040162 0.092795
-v -0.072728 -0.129513 0.055818
-v -0.074407 -0.225703 0.034221
-v -0.246262 0.232012 0.115213
-v -0.222726 0.084002 0.103706
-v -0.205450 -0.033727 0.087999
-v -0.166484 -0.214671 0.032240
-v -0.186997 -0.126733 0.067188
-v -0.218462 -0.192556 -0.076753
-v -0.231376 -0.124781 -0.077146
-v -0.246894 -0.033003 -0.075183
-v -0.262055 0.054055 -0.073612
-v -0.281791 0.180792 -0.074398
-v -0.287948 0.292800 -0.088141
-v -0.134350 -0.189311 -0.127795
-v -0.150270 -0.130123 -0.147424
-v -0.166341 -0.033624 -0.161168
-v -0.176241 0.039204 -0.165095
-v -0.197534 0.156543 -0.165095
-v -0.327012 0.215749 0.017489
-v -0.331715 0.322648 -0.017112
-v -0.294357 0.074648 0.019452
-v -0.261134 -0.033933 0.009635
-v -0.236277 -0.118804 -0.015889
-v -0.214374 -0.199696 -0.023742
-v -0.129260 -0.224746 0.081337
-v -0.127581 -0.128556 0.102934
-v -0.125936 -0.034329 0.128458
-v -0.145719 0.089727 0.152018
-v -0.160267 0.346365 0.113764
-v -0.170557 0.238546 0.164651
-v -0.371663 0.825343 -0.071172
-v -0.361668 0.809184 -0.135273
-v -0.315592 0.774620 -0.136924
-v -0.293465 0.770869 -0.099727
-v -0.275836 0.775545 -0.079001
-v -0.263808 0.775801 -0.025778
-v -0.323079 0.788941 0.012862
-v -0.352828 0.805063 -0.004803
-v -0.341240 0.290093 0.074807
-v -0.334270 0.289754 -0.003238
-v -0.322071 0.289163 0.050626
-v -0.369489 0.291463 0.052438
-v -0.395426 0.305226 0.005115
-v -0.360560 0.302580 -0.024024
-v -0.375632 0.301917 -0.011325
-v -0.321006 0.289111 0.016685
-v -0.318452 0.341743 -0.007132
-v -0.372008 0.366457 -0.035141
-v -0.347462 0.358098 -0.055653
-v -0.398832 0.386160 -0.013379
-v -0.364788 0.388360 0.028621
-v -0.320273 0.366144 0.026809
-v -0.331497 0.346893 -0.027054
-v -0.344861 0.379291 0.050991
-v -0.319406 0.582973 0.023291
-v -0.297604 0.536676 -0.096231
-v -0.282757 0.564162 -0.011165
-v -0.366173 0.596786 -0.003713
-v -0.407607 0.593309 -0.070994
-v -0.334412 0.553324 -0.128664
-v -0.387749 0.566124 -0.112871
-v -0.293075 0.530020 -0.059527
-v -0.278669 0.651432 -0.099041
-v -0.347525 0.649570 -0.104486
-v -0.326218 0.624698 -0.143227
-v -0.391229 0.677344 -0.101686
-v -0.356258 0.674511 -0.036662
-v -0.285556 0.638151 -0.029130
-v -0.300000 0.656443 -0.099075
-v -0.331930 0.667885 -0.016449
-v -0.316951 0.653077 -0.017539
-v -0.291264 0.674511 -0.118429
-v -0.287522 0.714016 -0.051995
-v -0.354009 0.720866 -0.049413
-v -0.373588 0.689891 -0.080429
-v -0.324964 0.650530 -0.143227
-v -0.374225 0.676758 -0.130059
-v -0.277416 0.677264 -0.099041
-v -0.274257 0.805827 -0.089677
-v -0.349111 0.941610 -0.124156
-v -0.289029 0.898709 -0.130620
-v -0.355447 0.894375 -0.036312
-v -0.348892 0.946033 -0.017608
-v -0.255351 0.888202 0.000439
-v -0.281442 0.797275 -0.111741
-v -0.282990 0.922563 0.043263
-v -0.279400 0.996554 0.051876
-v -0.273552 0.868930 -0.081025
-v -0.253499 0.926376 0.048463
-v -0.356396 1.025421 0.037090
-v -0.354222 1.070347 -0.061914
-v -0.282854 0.947898 -0.139959
-v -0.356278 1.027959 -0.147672
-v -0.273515 0.889112 -0.016281
-v -0.256554 0.934108 -0.016281
-v -0.299214 1.086135 -0.109410
-v -0.320700 0.984205 -0.164479
-v -0.299214 1.128573 -0.061914
-v -0.299209 1.083595 0.037090
-v -0.247896 0.961408 0.048463
-v -0.265212 0.906808 -0.081025
-v -0.266278 1.034333 0.051876
-v -0.118300 1.297478 0.007751
-v -0.127720 1.333006 -0.076480
-v -0.100194 1.296402 -0.000505
-v -0.090409 1.173032 0.008751
-v -0.095744 1.197256 -0.034332
-v -0.130361 1.250730 -0.068859
-v -0.373961 0.221535 0.051078
-v -0.391502 0.228824 0.032966
-v -0.397384 0.244206 0.002360
-v -0.369157 0.157849 0.066261
-v -0.043525 1.232643 0.063731
-v -0.043525 0.501494 0.183681
-v -0.043525 0.251438 0.013957
-v -0.043525 0.658352 -0.097253
-v -0.043525 1.146212 0.011043
-v -0.092538 1.576741 0.075065
-v -0.083467 1.582705 -0.079333
-v -0.118160 1.466720 -0.141852
-v -0.108152 1.534432 -0.122765
-v -0.123000 1.533311 0.100648
-v -0.115008 1.401968 -0.116069
-v -0.130540 1.329219 -0.001244
-v -0.093375 1.589003 -0.007340
-v -0.145217 1.466711 -0.012729
-v -0.137586 1.534488 -0.010785
-v -0.142243 1.391159 -0.010283
-v -0.092714 1.275115 0.052410
-v -0.043449 1.582440 0.085364
-v -0.044706 1.466721 -0.172955
-v -0.107728 1.561006 0.091487
-v -0.092760 1.584696 0.042601
-v -0.117706 1.565711 -0.008935
-v -0.134267 1.533899 0.051436
-v -0.043449 1.360481 -0.127141
-v -0.088227 1.466721 -0.167875
-v -0.115247 1.500253 -0.136522
-v -0.082354 1.534541 -0.144160
-v -0.137095 1.466716 -0.084106
-v -0.117990 1.427786 -0.138382
-v -0.134608 1.401872 -0.034372
-v -0.142979 1.427781 -0.011200
-v -0.095775 1.565479 -0.100955
-v -0.068719 1.589169 -0.082959
-v -0.043449 1.566350 -0.118611
-v -0.088354 1.533260 0.124416
-v -0.131755 1.500242 0.104982
-v -0.043449 1.500243 0.137934
-v -0.128849 1.534540 -0.073579
-v -0.142956 1.500247 -0.012151
-v -0.117832 1.375376 -0.096964
-v -0.135820 1.373112 -0.010533
-v -0.086462 1.391546 -0.149263
-v -0.122530 1.323529 0.058199
-v -0.140310 1.390347 0.054207
-v -0.143039 1.466706 0.054186
-v -0.089853 1.589169 -0.050966
-v -0.104350 1.294892 0.031703
-v -0.085955 1.266019 0.080243
-v -0.068960 1.599450 -0.006737
-v -0.072547 1.581501 0.084481
-v -0.080042 1.560803 0.110525
-v -0.083415 1.360923 -0.124207
-v -0.068857 1.599096 -0.047234
-v -0.068857 1.593984 0.041281
-v -0.071829 1.256617 0.084240
-v -0.098700 1.290906 0.069195
-v -0.111463 1.565915 -0.061631
-v -0.142857 1.427777 0.065698
-v -0.129953 1.481353 0.103886
-v -0.134207 1.356137 0.054359
-v -0.088140 1.427788 -0.163845
-v -0.124450 1.385038 -0.028224
-v -0.135055 1.500250 -0.081162
-v -0.093160 1.500243 0.131158
-v -0.075184 1.565915 -0.116662
-v -0.136939 1.427784 -0.051552
-v -0.086500 1.500254 -0.161272
-v -0.115762 1.563359 0.046886
-v -0.043449 1.387780 0.150337
-v -0.067910 1.345639 0.101805
-v -0.049275 1.342973 0.121730
-v -0.053882 1.343339 0.118993
-v -0.060631 1.344300 0.111813
-v -0.068091 1.325537 0.123075
-v -0.058450 1.324895 0.130298
-v -0.051869 1.324028 0.132968
-v -0.043449 1.323529 0.133922
-v -0.068227 1.300239 0.097495
-v -0.052947 1.298645 0.109405
-v -0.061066 1.299274 0.104704
-v -0.068259 1.330364 0.120872
-v -0.056661 1.331370 0.125792
-v -0.064179 1.325750 0.133337
-v -0.068259 1.325354 0.123858
-v -0.086719 1.325793 0.112923
-v -0.068259 1.321987 0.126650
-v -0.064179 1.315464 0.137313
-v -0.051869 1.324296 0.138051
-v -0.058450 1.326423 0.134853
-v -0.068091 1.326562 0.125736
-v -0.043449 1.333783 0.150070
-v -0.043449 1.380995 0.157804
-v -0.103771 1.304037 0.081226
-v -0.111669 1.322949 0.088288
-v -0.058434 1.280685 0.128867
-v -0.060499 1.268023 0.128710
-v -0.055419 1.258362 0.120498
-v -0.043449 1.288478 0.128080
-v -0.058262 1.288112 0.119895
-v -0.077172 1.283267 0.111879
-v -0.081029 1.272032 0.101663
-v -0.093189 1.287305 0.090277
-v -0.095803 1.306562 0.092855
-v -0.086732 1.296523 0.105325
-v -0.068259 1.298873 0.115889
-v -0.056661 1.304059 0.125389
-v -0.056661 1.307099 0.129960
-v -0.068259 1.312953 0.121454
-v -0.130152 1.341914 0.077212
-v -0.132798 1.366537 0.086398
-v -0.133719 1.379400 0.086875
-v -0.128667 1.395297 0.080685
-v -0.114895 1.400470 0.098718
-v -0.114354 1.384052 0.109255
-v -0.117033 1.365386 0.108497
-v -0.110634 1.339991 0.102601
-v -0.093124 1.351529 0.117395
-v -0.089322 1.378422 0.122222
-v -0.087500 1.387570 0.115378
-v -0.060754 1.407863 0.109554
-v -0.064238 1.376465 0.128198
-v -0.049058 1.375623 0.154167
-v -0.047210 1.366248 0.138142
-v -0.062298 1.376936 0.139158
-v -0.056064 1.366942 0.131858
-v -0.059579 1.370981 0.132682
-v -0.067314 1.376555 0.129727
-v -0.067314 1.368561 0.125135
-v -0.065765 1.371418 0.124855
-v -0.065765 1.360169 0.126815
-v -0.059579 1.359207 0.138850
-v -0.092149 1.324447 0.115407
-v -0.071305 1.332368 0.130877
-v -0.060680 1.336298 0.143921
-v -0.050125 1.333783 0.150070
-v -0.056064 1.355169 0.138025
-v -0.062002 1.355617 0.134680
-v -0.067314 1.367050 0.136426
-v -0.067314 1.373976 0.148997
-v -0.058597 1.383156 0.132719
-v -0.059398 1.373084 0.155663
-v -0.062298 1.365162 0.145326
-v -0.056037 1.390992 0.127448
-v -0.113606 1.417008 0.093420
-v -0.125370 1.419843 0.076733
-v -0.088677 1.397622 0.104161
-v -0.077841 1.399625 0.100190
-v -0.066994 1.412940 0.105629
-v -0.104760 1.402036 0.098026
-v -0.057270 1.411237 0.110350
-v -0.054687 1.410238 0.122707
-v -0.055001 1.419663 0.124809
-v -0.061421 1.425420 0.112879
-v -0.104760 1.416948 0.105185
-v -0.066994 1.421156 0.098028
-v -0.077841 1.412970 0.104745
-v -0.088677 1.410967 0.109540
-v -0.108381 1.443076 0.106526
-v -0.125133 1.432742 0.079868
-v -0.119403 1.437647 0.092670
-v -0.086612 1.442556 0.112373
-v -0.068711 1.432562 0.113835
-v -0.074270 1.436990 0.115068
-v -0.104378 1.432913 0.105842
-v -0.087102 1.434696 0.110035
-v -0.113606 1.426350 0.095981
-v -0.113373 1.429192 0.096563
-v -0.072311 1.429649 0.104527
-v -0.067005 1.424098 0.098175
-v -0.058178 1.428691 0.130553
-v -0.072323 1.439883 0.130268
-v -0.138308 1.445688 0.085778
-v -0.139831 1.429807 0.075083
-v -0.091927 1.448321 0.123479
-v -0.113030 1.451313 0.099340
-v -0.055697 1.437318 0.139152
-v -0.049419 1.429455 0.133523
-v -0.049419 1.419006 0.133432
-v -0.049428 1.405022 0.140579
-v -0.049444 1.387780 0.150337
-v -0.054679 1.350902 0.140738
-v -0.048622 1.354475 0.144310
-v -0.051431 1.363850 0.160335
-v -0.052980 1.371920 0.164357
-v -0.051003 1.380995 0.157804
-v -0.043449 1.371939 0.143523
-v -0.059557 1.442221 0.139808
-v -0.115994 1.460991 0.126202
-v -0.091927 1.457624 0.128849
-v -0.138724 1.447121 0.100030
-v -0.072323 1.447964 0.135208
-v -0.043449 1.374059 0.125916
-v -0.043449 1.325517 0.137306
-v -0.043449 1.331116 0.129921
-v -0.043449 1.363850 0.160335
-v -0.043449 1.350902 0.140738
-v -0.043449 1.258362 0.120498
-v -0.043449 1.595608 0.041362
-v -0.043449 1.601461 -0.006684
-v -0.067005 1.424098 0.103579
-v -0.072311 1.429649 0.109931
-v -0.115932 1.431703 0.106508
-v -0.113606 1.426350 0.099744
-v -0.087102 1.434696 0.119981
-v -0.104378 1.436051 0.118768
-v -0.088677 1.410967 0.114993
-v -0.077841 1.412970 0.110197
-v -0.066994 1.421156 0.100433
-v -0.108720 1.413181 0.110638
-v -0.104760 1.417873 0.108692
-v -0.066994 1.421636 0.098486
-v -0.077841 1.414708 0.108251
-v -0.088677 1.413113 0.113047
-v -0.104378 1.431131 0.116822
-v -0.087102 1.432550 0.118034
-v -0.113606 1.425769 0.097798
-v -0.113373 1.428032 0.104562
-v -0.072311 1.428395 0.107984
-v -0.067005 1.423977 0.101632
-v -0.067005 1.423977 0.018879
-v -0.072311 1.428395 0.018879
-v -0.113373 1.428032 0.018879
-v -0.113606 1.425769 0.018879
-v -0.087102 1.432550 0.018879
-v -0.104378 1.431131 0.018879
-v -0.088677 1.413113 0.018879
-v -0.077841 1.414708 0.018879
-v -0.066994 1.421636 0.018879
-v -0.104760 1.417873 0.018879
-v 0.015359 1.417873 0.018879
-v -0.022407 1.421636 0.018879
-v -0.011561 1.414708 0.018879
-v -0.000725 1.413113 0.018879
-v 0.014976 1.431131 0.018879
-v -0.002299 1.432550 0.018879
-v 0.024204 1.425769 0.018879
-v 0.023971 1.428032 0.018879
-v -0.017091 1.428395 0.018879
-v -0.022397 1.423977 0.018879
-v -0.022397 1.423977 0.101632
-v -0.017091 1.428395 0.107984
-v 0.023971 1.428032 0.104562
-v 0.024204 1.425769 0.097798
-v -0.002299 1.432550 0.118034
-v 0.014976 1.431131 0.116822
-v -0.000725 1.413113 0.113047
-v -0.011561 1.414708 0.108251
-v -0.022407 1.421636 0.098486
-v 0.015359 1.417873 0.108692
-v 0.019319 1.413181 0.110638
-v -0.022407 1.421156 0.100433
-v -0.011561 1.412970 0.110197
-v -0.000725 1.410967 0.114993
-v 0.014976 1.436051 0.118768
-v -0.002299 1.434696 0.119981
-v 0.024204 1.426350 0.099744
-v 0.026530 1.431703 0.106508
-v -0.017091 1.429649 0.109931
-v -0.022397 1.424098 0.103579
-v -0.043449 1.534649 -0.147910
-v -0.043449 1.600728 -0.047101
-v -0.043449 1.427787 -0.168881
-v -0.043449 1.419006 0.133432
-v -0.043449 1.429455 0.135597
-v -0.043449 1.313652 0.147816
-v -0.043449 1.322915 0.139142
-v -0.043449 1.354475 0.144310
-v -0.043449 1.379897 0.122226
-v -0.043449 1.449203 0.139640
-v -0.017078 1.447964 0.135208
-v 0.048210 1.448851 0.100030
-v 0.002525 1.457624 0.128849
-v 0.026592 1.460991 0.126202
-v -0.029845 1.442221 0.139808
-v -0.043449 1.397266 0.149674
-v -0.043449 1.394096 0.125773
-v -0.038398 1.380995 0.157804
-v -0.036421 1.371920 0.164357
-v -0.037970 1.363850 0.160335
-v -0.040780 1.354475 0.144310
-v -0.034723 1.350902 0.140738
-v -0.039957 1.387780 0.150337
-v -0.039974 1.405022 0.140579
-v -0.039982 1.419006 0.133432
-v -0.039982 1.429455 0.133523
-v -0.033704 1.437318 0.139152
-v 0.023629 1.451313 0.099340
-v 0.002525 1.448321 0.123479
-v 0.050430 1.429807 0.075083
-v 0.048907 1.445688 0.085778
-v -0.017078 1.439883 0.130268
-v -0.031224 1.428691 0.130553
-v -0.022397 1.424098 0.098175
-v -0.017091 1.429649 0.104527
-v 0.023971 1.429192 0.096563
-v 0.024204 1.426350 0.095981
-v -0.002299 1.434696 0.110035
-v 0.014976 1.432913 0.105842
-v -0.015132 1.436990 0.115068
-v -0.020691 1.432562 0.113835
-v -0.002789 1.442556 0.112373
-v 0.030001 1.437647 0.092670
-v 0.035732 1.432742 0.079868
-v 0.018980 1.443076 0.106526
-v -0.000725 1.410967 0.109540
-v -0.011561 1.412970 0.104745
-v -0.022407 1.421156 0.098028
-v 0.015359 1.416948 0.105185
-v -0.027981 1.425420 0.112879
-v -0.034400 1.419663 0.124809
-v -0.034714 1.410238 0.122707
-v -0.032131 1.411237 0.110350
-v 0.015359 1.402036 0.098026
-v -0.022407 1.412940 0.105629
-v -0.011561 1.399625 0.100190
-v -0.000725 1.397622 0.104161
-v 0.035969 1.419843 0.076733
-v 0.024204 1.417008 0.093420
-v -0.033365 1.390992 0.127448
-v -0.027103 1.365162 0.145326
-v -0.030003 1.373084 0.155663
-v -0.030805 1.383156 0.132719
-v -0.022087 1.373976 0.148997
-v -0.022087 1.367050 0.136426
-v -0.027400 1.355617 0.134680
-v -0.033338 1.355169 0.138025
-v -0.039277 1.333783 0.150070
-v -0.028721 1.336298 0.143921
-v -0.018096 1.332368 0.130877
-v 0.002748 1.324447 0.115407
-v -0.029822 1.359207 0.138850
-v -0.023636 1.360169 0.126815
-v -0.023636 1.371418 0.124855
-v -0.022087 1.368561 0.125135
-v -0.022087 1.376555 0.129727
-v -0.029822 1.370981 0.132682
-v -0.033338 1.366942 0.131858
-v -0.027103 1.376936 0.139158
-v -0.043449 1.366248 0.138142
-v -0.040343 1.375623 0.154167
-v -0.025164 1.376465 0.128198
-v -0.028648 1.407863 0.109554
-v -0.001902 1.387570 0.115378
-v -0.000079 1.378422 0.122222
-v 0.003722 1.351529 0.117395
-v 0.021232 1.339991 0.102601
-v 0.027632 1.365386 0.108497
-v 0.024953 1.384052 0.109255
-v 0.025493 1.400470 0.098718
-v 0.039265 1.395297 0.080685
-v 0.044318 1.379400 0.086875
-v 0.043397 1.366537 0.086398
-v 0.040751 1.341914 0.077212
-v -0.021142 1.312953 0.121454
-v -0.032740 1.307099 0.129960
-v -0.032740 1.304059 0.125389
-v -0.021142 1.298873 0.115889
-v -0.002670 1.296523 0.105325
-v 0.006401 1.306562 0.092855
-v 0.003788 1.287305 0.090277
-v -0.008372 1.272032 0.101663
-v -0.012229 1.283267 0.111879
-v -0.031139 1.288112 0.119895
-v -0.033983 1.258362 0.120498
-v -0.028902 1.268023 0.128710
-v -0.030967 1.280685 0.128867
-v 0.022267 1.322949 0.088288
-v 0.014369 1.304037 0.081226
-v -0.043449 1.405022 0.140579
-v -0.043449 1.371920 0.164357
-v -0.021310 1.326562 0.125736
-v -0.030952 1.326423 0.134853
-v -0.037532 1.324296 0.138051
-v -0.025223 1.315464 0.137313
-v -0.021142 1.321987 0.126650
-v -0.002683 1.325793 0.112923
-v -0.021142 1.325354 0.123858
-v -0.025223 1.325750 0.133337
-v -0.032740 1.331370 0.125792
-v -0.021142 1.330364 0.120872
-v -0.028336 1.299274 0.104704
-v -0.036454 1.298645 0.109405
-v -0.021174 1.300239 0.097495
-v -0.037532 1.324028 0.132968
-v -0.030952 1.324895 0.130298
-v -0.021310 1.325537 0.123075
-v -0.028770 1.344300 0.111813
-v -0.035520 1.343339 0.118993
-v -0.040126 1.342973 0.121730
-v -0.021492 1.345639 0.101805
-v -0.043449 1.436402 0.139152
-v 0.026360 1.563359 0.046886
-v -0.002901 1.500254 -0.161272
-v 0.047537 1.427784 -0.051552
-v -0.014218 1.565915 -0.116662
-v 0.003759 1.500243 0.131158
-v 0.045653 1.500250 -0.081162
-v 0.035049 1.385038 -0.028224
-v -0.001261 1.427788 -0.163845
-v 0.044806 1.356137 0.054359
-v 0.040551 1.481353 0.103886
-v 0.053456 1.427777 0.065698
-v 0.022062 1.565915 -0.061631
-v 0.009298 1.290906 0.069195
-v -0.017572 1.256617 0.084240
-v -0.020544 1.593984 0.041281
-v -0.020544 1.599096 -0.047234
-v -0.005987 1.360923 -0.124207
-v -0.009360 1.560803 0.110525
-v -0.016855 1.581501 0.084481
-v -0.020441 1.599450 -0.006737
-v -0.003447 1.266019 0.080243
-v 0.014949 1.294892 0.031703
-v 0.000452 1.589169 -0.050966
-v 0.053637 1.466706 0.054186
-v 0.050908 1.390347 0.054207
-v 0.033129 1.323529 0.058199
-v -0.002940 1.391546 -0.149263
-v 0.046338 1.373112 -0.010598
-v 0.028430 1.375376 -0.096964
-v 0.053555 1.500247 -0.012151
-v 0.039447 1.534540 -0.073579
-v 0.042354 1.500242 0.104982
-v -0.001047 1.533260 0.124416
-v -0.020682 1.589169 -0.082959
-v 0.006374 1.565479 -0.100955
-v 0.053498 1.427781 -0.011265
-v 0.045207 1.401872 -0.034372
-v 0.028589 1.427786 -0.138382
-v 0.047694 1.466716 -0.084106
-v -0.007048 1.534541 -0.144160
-v 0.025846 1.500253 -0.136522
-v -0.001174 1.466721 -0.167875
-v -0.043449 1.561229 0.113653
-v 0.044865 1.533899 0.051436
-v 0.028304 1.565711 -0.008935
-v 0.003359 1.584696 0.042601
-v 0.018327 1.561006 0.091487
-v -0.043449 1.391436 -0.153650
-v -0.043449 1.533367 0.129939
-v 0.003313 1.275115 0.052410
-v 0.052842 1.391159 -0.010283
-v 0.048185 1.534488 -0.010785
-v 0.055815 1.466711 -0.012729
-v 0.003973 1.589003 -0.007340
-v 0.041139 1.329219 -0.001244
-v 0.025607 1.401968 -0.116069
-v 0.033599 1.533311 0.100648
-v 0.018750 1.534432 -0.122765
-v 0.028759 1.466720 -0.141852
-v -0.005935 1.582705 -0.079333
-v 0.003137 1.576741 0.075065
-v -0.043525 0.281085 0.143402
-v -0.043525 0.856792 -0.130688
-v 0.279755 0.157849 0.066261
-v 0.307982 0.244206 0.002360
-v 0.302100 0.228824 0.032966
-v 0.284559 0.221535 0.051078
-v 0.040960 1.250730 -0.068859
-v 0.006342 1.197256 -0.034332
-v 0.001007 1.173032 0.008751
-v 0.010792 1.296402 -0.000505
-v -0.043449 1.345313 -0.121748
-v 0.038319 1.333006 -0.076480
-v 0.028899 1.297478 0.007751
-v 0.176876 1.034333 0.051876
-v 0.175810 0.906808 -0.081025
-v 0.158494 0.961408 0.048463
-v 0.209807 1.083595 0.037090
-v 0.209812 1.128573 -0.061914
-v 0.231298 0.984205 -0.164479
-v 0.209812 1.086135 -0.109410
-v 0.167152 0.934108 -0.016281
-v 0.184113 0.889112 -0.016281
-v 0.266876 1.027959 -0.147672
-v 0.193452 0.947898 -0.139959
-v 0.264820 1.070347 -0.061914
-v 0.266994 1.025421 0.037090
-v 0.164097 0.926376 0.048463
-v 0.184150 0.868930 -0.081025
-v 0.189998 0.996554 0.051876
-v 0.193588 0.922563 0.043263
-v 0.192040 0.797275 -0.111741
-v 0.165949 0.888202 0.000439
-v 0.259489 0.946033 -0.017608
-v 0.266045 0.894375 -0.036312
-v 0.199626 0.898709 -0.130620
-v 0.259709 0.941610 -0.124156
-v 0.184855 0.805827 -0.089677
-v 0.188013 0.677264 -0.099041
-v 0.284823 0.676758 -0.130059
-v 0.235562 0.650530 -0.143227
-v 0.284186 0.689891 -0.080429
-v 0.264607 0.720866 -0.049413
-v 0.198120 0.714016 -0.051995
-v 0.201862 0.674511 -0.118429
-v 0.227549 0.653077 -0.017539
-v 0.242527 0.667885 -0.016449
-v 0.210597 0.656443 -0.099075
-v 0.196153 0.638151 -0.029130
-v 0.266856 0.674511 -0.036662
-v 0.301827 0.677344 -0.101686
-v 0.236815 0.624698 -0.143227
-v 0.258122 0.649570 -0.104486
-v 0.189267 0.651432 -0.099041
-v 0.203673 0.530020 -0.059527
-v 0.298347 0.566124 -0.112871
-v 0.245009 0.553324 -0.128664
-v 0.318205 0.593309 -0.070994
-v 0.276771 0.596786 -0.003713
-v 0.193355 0.564162 -0.011165
-v 0.208202 0.536676 -0.096231
-v 0.230004 0.582973 0.023291
-v 0.255459 0.379291 0.050991
-v 0.242095 0.346893 -0.027054
-v 0.230871 0.366144 0.026809
-v 0.275386 0.388360 0.028621
-v 0.309430 0.386160 -0.013379
-v 0.258060 0.358098 -0.055653
-v 0.282605 0.366457 -0.035141
-v 0.229050 0.341743 -0.007132
-v 0.231604 0.289111 0.016685
-v 0.286229 0.301917 -0.011325
-v 0.271158 0.302580 -0.024024
-v 0.306024 0.305226 0.005115
-v 0.280087 0.291463 0.052438
-v 0.232669 0.289163 0.050626
-v 0.244868 0.289754 -0.003238
-v 0.251838 0.290093 0.074807
-v 0.263425 0.805063 -0.004803
-v 0.233677 0.788941 0.012862
-v 0.174406 0.775801 -0.025778
-v 0.186434 0.775545 -0.079001
-v 0.204063 0.770869 -0.099727
-v 0.226190 0.774620 -0.136924
-v 0.272266 0.809184 -0.135273
-v 0.282261 0.825343 -0.071172
-v 0.081155 0.238546 0.164651
-v 0.070865 0.346365 0.113764
-v 0.056317 0.089727 0.152018
-v 0.036534 -0.034329 0.128458
-v 0.038179 -0.128556 0.102934
-v 0.039858 -0.224746 0.081337
-v 0.124972 -0.199696 -0.023742
-v 0.146875 -0.118804 -0.015889
-v 0.171732 -0.033933 0.009635
-v 0.204955 0.074648 0.019452
-v 0.242312 0.322648 -0.017112
-v 0.237609 0.215749 0.017489
-v 0.108132 0.156543 -0.165095
-v 0.086839 0.039204 -0.165095
-v 0.076939 -0.033624 -0.161168
-v 0.060868 -0.130123 -0.147424
-v 0.044948 -0.189311 -0.127795
-v 0.198546 0.292800 -0.088141
-v 0.192389 0.180792 -0.074398
-v 0.172653 0.054055 -0.073612
-v 0.157492 -0.033003 -0.075183
-v 0.141974 -0.124781 -0.077146
-v 0.129060 -0.192556 -0.076753
-v 0.097595 -0.126733 0.067188
-v 0.077082 -0.214671 0.032240
-v 0.116048 -0.033727 0.087999
-v 0.133324 0.084002 0.103706
-v 0.156859 0.232012 0.115213
-v -0.014995 -0.225703 0.034221
-v -0.016674 -0.129513 0.055818
-v -0.016405 -0.040162 0.092795
-v -0.009221 0.072220 0.114719
-v 0.015389 0.234125 0.117535
-v -0.041684 0.185676 0.039003
-v -0.014385 0.257651 -0.013643
-v -0.044707 0.047150 0.036187
-v -0.044707 -0.053621 0.037168
-v -0.044707 -0.129854 0.000192
-v -0.034498 -0.226044 -0.011589
-v -0.025383 -0.130647 -0.058896
-v -0.024030 -0.208188 -0.061841
-v -0.029876 -0.044488 -0.047279
-v -0.030962 0.042222 -0.081077
-v -0.030491 0.169997 -0.092292
-v -0.032956 0.988747 0.172987
-v -0.028221 0.932299 0.217535
-v 0.016353 0.855103 0.273998
-v 0.008459 0.793460 0.259716
-v 0.177945 0.776923 0.130921
-v 0.214218 0.808609 0.199391
-v 0.223765 0.853121 0.236152
-v 0.191036 0.922480 0.199534
-v 0.136761 0.983838 0.127167
-v 0.077794 0.988747 0.192624
-v 0.105723 1.037258 0.074648
-v 0.120342 0.936390 0.257355
-v 0.175162 0.858575 0.306791
-v 0.160434 0.774572 0.263211
-v 0.125301 0.749200 0.178514
-v 0.043553 0.756335 0.212666
-v 0.100950 0.782426 0.263211
-v 0.077221 0.853121 0.299973
-v 0.037538 0.932299 0.251900
-v 0.016264 0.988747 0.192624
-v 0.188752 0.934942 0.119102
-v 0.204689 0.881339 0.100524
-v 0.126791 0.811354 0.077323
-v 0.067719 0.839102 0.144919
-v 0.032428 1.060509 0.082990
-v 0.089933 0.464219 0.148676
-v 0.082228 0.572967 0.103602
-v 0.057031 0.664334 0.084174
-v 0.085720 0.737078 0.130165
-v 0.084863 0.746633 0.090861
-v 0.082627 0.644530 0.095415
-v 0.159098 0.555667 0.126159
-v 0.148888 0.422203 0.123518
-v 0.153892 0.345374 0.145366
-v 0.159654 1.100926 0.010278
-v 0.060019 1.113057 0.011724
-v 0.060257 1.202283 -0.077449
-v 0.108948 1.165504 -0.068961
-v -0.000793 0.850893 -0.141985
-v 0.081737 0.852610 -0.154694
-v 0.099246 0.990882 -0.174883
-v 0.006338 1.003448 -0.173224
-v 0.112902 1.113849 -0.165147
-v 0.021100 1.156287 -0.153831
-v -0.007191 0.658352 -0.097253
-v 0.061977 0.658352 -0.097253
-v 0.155088 0.692879 -0.005330
-v 0.074953 0.243012 -0.167058
-v 0.012893 0.286303 -0.246342
-v 0.013427 0.463228 -0.228513
-v -0.006890 0.527050 -0.169421
-v 0.083436 0.591413 -0.113898
-v 0.131943 0.508888 -0.154835
-v 0.158302 0.336898 -0.190410
-v 0.235233 0.395043 -0.032087
-v 0.206157 0.535296 -0.022656
-v 0.164914 0.613692 -0.006152
-v -0.043525 1.017183 -0.156660
-v -0.002641 0.271624 0.051543
-v -0.003897 0.298732 -0.078830
-v -0.013917 -0.266944 -0.061841
-v -0.024853 -0.258048 -0.017267
-v -0.005231 -0.264521 0.012643
-v 0.077927 -0.263069 0.058256
-v 0.128452 -0.264459 -0.076753
-v 0.046423 -0.273842 -0.127795
-v 0.106866 -0.203762 0.007689
-v 0.040974 -0.288703 0.067480
-v 0.007825 -0.787681 0.035155
-v 0.058240 -0.786801 -0.016235
-v 0.011264 -0.787621 -0.087431
-v 0.036254 -0.787185 -0.050491
-v 0.038505 -0.787146 0.021661
-v -0.019755 -0.788162 0.014207
-v -0.031508 -0.788368 -0.007440
-v -0.025014 -0.788254 -0.039699
-v 0.040789 -0.505879 0.047233
-v 0.096273 -0.471518 0.008876
-v 0.004059 -0.486759 0.006705
-v 0.160241 -0.460268 -0.040310
-v 0.159587 -0.448604 -0.093214
-v 0.068499 -0.495539 -0.193871
-v -0.026622 -0.528636 -0.137741
-v -0.044707 -0.401365 -0.026726
-v -0.013288 -0.305737 -0.064023
-v -0.026524 -0.295870 -0.018671
-v -0.007397 -0.303026 0.011762
-v 0.044875 -0.322390 -0.153388
-v 0.129490 -0.295102 -0.082603
-v 0.095380 -0.296424 0.014492
-v 0.124988 -0.280583 -0.031036
-v 0.040745 -0.309398 0.068240
-v -0.031590 -0.396617 -0.130311
-v -0.044707 -0.384352 -0.021947
-v 0.002536 -0.392632 0.009705
-v 0.083041 -0.393043 -0.181126
-v 0.135047 -0.350998 -0.086918
-v 0.092199 -0.355177 0.010845
-v 0.147000 -0.347073 -0.036171
-v 0.040763 -0.389314 0.065538
-v -0.032344 -0.841015 -0.036854
-v -0.036322 -0.841014 -0.004189
-v -0.022926 -0.841015 0.016483
-v 0.029555 -0.884167 0.013048
-v 0.022688 -0.884167 -0.046260
-v -0.001880 -0.863726 -0.098485
-v 0.056321 -0.896659 -0.014514
-v 0.006911 -0.863727 0.059092
-v 0.010833 -0.894993 0.109617
-v 0.032698 -0.932594 -0.012679
-v -0.001884 -0.914609 -0.098485
-v 0.032666 -0.932594 -0.047035
-v 0.049441 -0.922786 0.049216
-v -0.030204 -0.895991 0.054760
-v -0.046514 -0.923506 -0.003398
-v -0.032351 -0.932589 -0.036854
-v -0.032354 -0.969371 -0.036854
-v -0.029050 -0.969371 0.025025
-v -0.051183 -0.930730 0.148212
-v 0.088472 -0.969380 0.141285
-v 0.043128 -0.969377 -0.047848
-v -0.003364 -0.958202 -0.117500
-v 0.056316 -0.969377 -0.014514
-v -0.008622 -0.925235 0.196392
-v 0.056314 -0.986814 -0.014514
-v -0.001151 -0.986810 -0.088978
-v 0.043127 -0.986813 -0.047848
-v 0.088471 -0.986816 0.141285
-v -0.040977 -0.986807 0.150698
-v 0.044631 -0.986813 0.083118
-v -0.032355 -0.986808 -0.036854
-v 0.011114 -0.986811 0.207006
-v -0.036316 -0.986807 0.210690
-v 0.091191 -0.986817 0.176293
-v -0.000905 -0.933408 0.207940
-v 0.091192 -0.969380 0.176293
-v -0.044518 -0.965056 0.211327
-v -0.028551 -0.955427 0.281314
-v 0.007225 -0.950198 0.278534
-v -0.030816 -0.986808 0.281489
-v 0.016614 -0.986811 0.277805
-v 0.093843 -0.963705 0.210415
-v -0.001055 -0.954524 0.289433
-v 0.093842 -0.986817 0.210415
-v 0.017406 -0.986811 0.287999
-v -0.043525 0.324795 -0.164232
-v 0.323153 0.160388 -0.013363
-v 0.327403 0.183208 -0.036663
-v 0.289855 0.163866 -0.031844
-v 0.303890 0.182909 -0.051384
-v 0.315572 0.142604 0.009641
-v 0.323730 0.155556 -0.014338
-v 0.274067 0.146082 -0.014085
-v 0.286615 0.159034 -0.035259
-v 0.296763 0.137540 0.036513
-v 0.315362 0.141370 0.009995
-v 0.258774 0.137242 0.012541
-v 0.274210 0.144849 -0.013505
-v 0.275871 0.133044 0.061830
-v 0.295871 0.137849 0.038019
-v 0.245619 0.132745 0.042803
-v 0.261348 0.137550 0.016262
-v 0.232711 0.228583 0.093370
-v 0.234244 0.264391 0.064575
-v 0.223678 0.205617 0.093819
-v 0.216328 0.172208 0.106222
-v 0.215803 0.157302 0.107108
-v 0.209853 0.134515 0.117148
-v 0.215030 0.125092 0.113535
-v 0.227733 0.149164 0.100684
-v 0.232569 0.169980 0.097261
-v 0.238311 0.198335 0.087596
-v 0.253034 0.220274 0.083048
-v 0.266719 0.194403 0.079885
-v 0.240594 0.185828 0.069919
-v 0.235519 0.163641 0.078483
-v 0.233462 0.149164 0.081953
-v 0.224668 0.129804 0.096792
-v 0.271156 0.254773 0.059206
-v 0.294925 0.280506 0.032316
-v 0.305684 0.287788 0.009470
-v 0.307992 0.298033 -0.003874
-v 0.316491 0.255801 -0.014865
-v 0.319463 0.212526 -0.023856
-v 0.326379 0.203226 -0.023223
-v 0.322358 0.204712 -0.033016
-v 0.321564 0.184809 -0.006128
-v 0.318773 0.172183 0.019745
-v 0.299331 0.168681 0.046469
-v 0.278269 0.162931 0.069589
-v 0.280813 0.172385 0.067057
-v 0.275739 0.104262 0.059792
-v 0.273474 0.069311 0.052237
-v 0.275529 0.033333 0.043779
-v 0.288392 0.035903 0.022074
-v 0.288174 0.072909 0.027431
-v 0.291489 0.105290 0.033214
-v 0.295951 0.103748 0.025684
-v 0.296859 0.069311 0.015881
-v 0.302634 0.029221 0.006136
-v 0.315496 0.035389 -0.015569
-v 0.311296 0.073423 -0.008481
-v 0.311176 0.108888 -0.000008
-v 0.312227 0.115056 -0.001780
-v 0.312637 0.088329 -0.011289
-v 0.318412 0.053892 -0.021034
-v 0.330749 0.060574 -0.041853
-v 0.325500 0.095011 -0.032994
-v 0.325614 0.126363 -0.024371
-v 0.322727 0.150521 -0.019498
-v 0.322024 0.128933 -0.028497
-v 0.326487 0.098608 -0.036027
-v 0.330410 0.103748 -0.053063
-v 0.328048 0.135101 -0.049076
-v 0.330063 0.159772 -0.042292
-v 0.307040 0.159472 -0.056700
-v 0.309402 0.134801 -0.060687
-v 0.311765 0.103448 -0.064674
-v 0.303365 0.098309 -0.050499
-v 0.298902 0.128633 -0.042969
-v 0.295227 0.150221 -0.036767
-v 0.298115 0.126064 -0.041640
-v 0.301790 0.094711 -0.047841
-v 0.307040 0.060274 -0.056700
-v 0.294702 0.053592 -0.035881
-v 0.288927 0.088029 -0.026136
-v 0.284727 0.114756 -0.019049
-v 0.283677 0.108588 -0.017277
-v 0.287352 0.073123 -0.023478
-v 0.291552 0.035089 -0.030566
-v 0.278690 0.028921 -0.008861
-v 0.272915 0.069012 0.000884
-v 0.268452 0.103448 0.008415
-v 0.263990 0.104990 0.015945
-v 0.265565 0.072609 0.013287
-v 0.267927 0.035603 0.009301
-v 0.255065 0.033033 0.031006
-v 0.250865 0.069012 0.038093
-v 0.248240 0.103962 0.042523
-v 0.274121 0.198745 -0.026994
-v 0.267686 0.183839 -0.002403
-v 0.253774 0.174588 0.021074
-v 0.275040 0.237083 -0.024629
-v 0.274969 0.221150 0.007083
-v 0.262632 0.198021 0.027902
-v 0.244519 0.183629 0.058467
-v 0.250647 0.184502 0.052418
-v 0.244964 0.139941 0.042873
-v 0.260687 0.145691 0.016341
-v 0.276175 0.153914 -0.009794
-v 0.288512 0.167278 -0.030613
-v 0.269079 0.264838 -0.018666
-v 0.303102 0.188768 -0.050055
-v 0.305993 0.211384 -0.044544
-v 0.301808 0.247877 -0.036225
-v 0.287908 0.276660 -0.031062
-v 0.284464 0.297733 -0.018605
-v 0.271760 0.287454 -0.011456
-v 0.248117 0.280172 0.003157
-v 0.217635 0.254473 0.025307
-v 0.256280 0.247363 0.006847
-v 0.240331 0.221235 0.023119
-v 0.210947 0.129917 0.087603
-v 0.217187 0.149277 0.071131
-v 0.217927 0.163754 0.066820
-v 0.225557 0.185942 0.059889
-v 0.228502 0.194103 0.055766
-v 0.207236 0.219974 0.054085
-v 0.207821 0.198448 0.067690
-v 0.199753 0.170093 0.075868
-v 0.201143 0.149277 0.083271
-v 0.198167 0.125205 0.102337
-v 0.198277 0.134628 0.109329
-v 0.200314 0.157415 0.096788
-v 0.201852 0.172321 0.096549
-v 0.208330 0.205730 0.083589
-v 0.220207 0.261266 0.059618
-v 0.204217 0.228283 0.075466
-v -0.043525 1.061157 0.081855
-v -0.043525 0.301481 -0.119333
-v -0.043525 1.239915 -0.124403
-v -0.043525 1.283970 -0.107774
-v -0.043525 0.440994 -0.155720
-v -0.043525 0.383245 0.186500
-v -0.043449 1.590121 -0.083280
-v -0.043449 1.268023 0.128710
-v -0.043449 1.305047 0.138974
-v -0.043449 1.500254 -0.165995
-v -0.078566 1.135900 0.068489
-v -0.010837 1.135897 0.068492
-v -0.043525 1.086409 0.065441
-v 0.063586 1.400110 -0.078953
-v 0.055655 1.462309 -0.036857
-v 0.048527 1.354683 -0.018892
-v 0.052799 1.356407 -0.056797
-v 0.067082 1.445758 -0.087235
-v -0.157975 1.445680 -0.087220
-v -0.143693 1.356330 -0.056782
-v -0.136806 1.354683 -0.018703
-v -0.146548 1.462231 -0.036841
-v -0.154480 1.400033 -0.078937
-v -0.164852 1.400033 -0.079896
-v -0.163057 1.462231 -0.037750
-v -0.145047 1.354683 -0.019506
-v -0.152944 1.356330 -0.057683
-v -0.168753 1.445680 -0.088217
-v 0.077860 1.445758 -0.088232
-v 0.062050 1.356407 -0.057698
-v 0.057011 1.354683 -0.019719
-v 0.072163 1.462309 -0.037765
-v 0.073959 1.400110 -0.079912
-v 0.068840 1.401848 -0.069384
-v 0.067122 1.446522 -0.042489
-v 0.052620 1.375886 -0.024682
-v 0.057442 1.377104 -0.051519
-v 0.072574 1.434105 -0.075264
-v -0.163468 1.434050 -0.075253
-v -0.148336 1.377050 -0.051509
-v -0.140778 1.375886 -0.024531
-v -0.158015 1.446468 -0.042478
-v -0.159734 1.401794 -0.069373
-v 0.052842 1.389886 -0.019442
-v 0.053498 1.419425 -0.019442
-v -0.142979 1.419425 -0.019442
-v -0.142243 1.389886 -0.019442
-v -0.137276 1.416210 -0.025444
-v 0.047712 1.416210 -0.025444
-v -0.153051 1.402991 -0.067133
-v -0.151433 1.443714 -0.045165
-v -0.135204 1.376625 -0.026772
-v -0.142320 1.377483 -0.037006
-v -0.156567 1.432560 -0.071470
-v 0.065673 1.432600 -0.071478
-v 0.051426 1.377523 -0.037010
-v 0.046885 1.376625 -0.026829
-v 0.060540 1.443754 -0.045173
-v 0.062158 1.403031 -0.067141
-v 0.064049 1.413287 -0.059921
-v 0.065551 1.432656 -0.046286
-v 0.052220 1.382148 -0.028842
-v 0.053822 1.391079 -0.045521
-v 0.070927 1.426269 -0.065760
-v -0.161821 1.426239 -0.065754
-v -0.144715 1.391049 -0.045515
-v -0.141030 1.382148 -0.028801
-v -0.156445 1.432626 -0.046280
-v -0.154943 1.413257 -0.059915
-v 0.051370 1.410170 -0.028924
-v -0.140972 1.410170 -0.028924
-v -0.144637 1.396364 -0.034006
-v 0.055272 1.396364 -0.034006
-v -0.129004 1.407133 -0.033096
-v 0.039321 1.407133 -0.033096
-v -0.174653 1.399601 -0.046598
-v -0.131358 1.383403 -0.029765
-v -0.134670 1.392055 -0.040161
-v 0.043776 1.392071 -0.040165
-v 0.042337 1.383403 -0.029789
-v 0.083759 1.399617 -0.046602
-v -0.045447 1.366479 -0.045677
-v -0.045447 1.366184 -0.037371
-v -0.045447 1.374025 -0.052114
-v -0.045447 1.381556 -0.038612
-v -0.063072 1.434081 0.079483
-v -0.063576 1.433872 0.085029
-v -0.065071 1.433253 0.090361
-v -0.067497 1.432248 0.095275
-v -0.070763 1.430895 0.099582
-v -0.074743 1.429246 0.103117
-v -0.081641 1.430895 0.106055
-v -0.078166 1.434370 0.103117
-v -0.075120 1.437415 0.099582
-v -0.072621 1.439915 0.095275
-v -0.070763 1.441772 0.090361
-v -0.069619 1.442916 0.085029
-v -0.069233 1.443302 0.079483
-v -0.078455 1.449464 0.079483
-v -0.078664 1.448959 0.085029
-v -0.079283 1.447465 0.090361
-v -0.080288 1.445038 0.095275
-v -0.081641 1.441772 0.099582
-v -0.083289 1.437793 0.103117
-v -0.089332 1.438995 0.103117
-v -0.089332 1.443302 0.099582
-v -0.089332 1.446837 0.095275
-v -0.089332 1.449464 0.090361
-v -0.089332 1.451081 0.085029
-v -0.089332 1.451627 0.079483
-v -0.100210 1.449464 0.079483
-v -0.100001 1.448959 0.085029
-v -0.099382 1.447465 0.090361
-v -0.098377 1.445038 0.095275
-v -0.097024 1.441772 0.099582
-v -0.095375 1.437793 0.103117
-v -0.093495 1.433253 0.106055
-v -0.097024 1.430895 0.106055
-v -0.100499 1.434370 0.103117
-v -0.103544 1.437415 0.099582
-v -0.106044 1.439915 0.095275
-v -0.107901 1.441772 0.090361
-v -0.109045 1.442916 0.085029
-v -0.109431 1.443302 0.079483
-v -0.115593 1.434081 0.079483
-v -0.115088 1.433872 0.085029
-v -0.113594 1.433253 0.090361
-v -0.111167 1.432247 0.095275
-v -0.107901 1.430895 0.099582
-v -0.103922 1.429246 0.103117
-v -0.105124 1.423203 0.103117
-v -0.109431 1.423203 0.099582
-v -0.112966 1.423203 0.095275
-v -0.115593 1.423203 0.090361
-v -0.117210 1.423203 0.085029
-v -0.117757 1.423203 0.079483
-v -0.115593 1.412326 0.079483
-v -0.115088 1.412535 0.085029
-v -0.113594 1.413154 0.090361
-v -0.111167 1.414159 0.095275
-v -0.107901 1.415512 0.099582
-v -0.103922 1.417160 0.103117
-v -0.099382 1.419041 0.106055
-v -0.097024 1.415512 0.106055
-v -0.100499 1.412037 0.103117
-v -0.103544 1.408991 0.099582
-v -0.106044 1.406491 0.095275
-v -0.107901 1.404634 0.090361
-v -0.109045 1.403490 0.085029
-v -0.109431 1.403104 0.079483
-v -0.100210 1.396942 0.079483
-v -0.100001 1.397447 0.085029
-v -0.099382...
[truncated message content] |