You can subscribe to this list here.
| 2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(46) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2006 |
Jan
(185) |
Feb
(242) |
Mar
(237) |
Apr
(180) |
May
(102) |
Jun
(278) |
Jul
(114) |
Aug
(92) |
Sep
(246) |
Oct
(212) |
Nov
(279) |
Dec
(99) |
| 2007 |
Jan
(130) |
Feb
(194) |
Mar
(22) |
Apr
(72) |
May
(40) |
Jun
(111) |
Jul
(114) |
Aug
(154) |
Sep
(114) |
Oct
(2) |
Nov
(1) |
Dec
(5) |
| 2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(6) |
Oct
(51) |
Nov
(34) |
Dec
(130) |
| 2009 |
Jan
(22) |
Feb
(20) |
Mar
(41) |
Apr
(45) |
May
(82) |
Jun
(96) |
Jul
(48) |
Aug
(90) |
Sep
(13) |
Oct
(49) |
Nov
(31) |
Dec
(21) |
| 2010 |
Jan
(25) |
Feb
(9) |
Mar
(7) |
Apr
(28) |
May
(27) |
Jun
(7) |
Jul
(1) |
Aug
|
Sep
(1) |
Oct
(1) |
Nov
(13) |
Dec
(2) |
| 2013 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <cn...@us...> - 2009-09-28 22:09:26
|
Revision: 542
http://hgengine.svn.sourceforge.net/hgengine/?rev=542&view=rev
Author: cnlohr
Date: 2009-09-28 22:09:14 +0000 (Mon, 28 Sep 2009)
Log Message:
-----------
add other fonts
Added Paths:
-----------
Mercury2/Themes/default/Font/FontInfo.txt
Mercury2/Themes/default/Font/FreeMono.hgfont
Mercury2/Themes/default/Font/FreeMono.png
Mercury2/Themes/default/Font/FreeMonoBold.hgfont
Mercury2/Themes/default/Font/FreeMonoBold.png
Mercury2/Themes/default/Font/FreeSans.hgfont
Mercury2/Themes/default/Font/FreeSans.png
Mercury2/Themes/default/Font/FreeSansBold.hgfont
Mercury2/Themes/default/Font/FreeSansBold.png
Removed Paths:
-------------
Mercury2/Themes/default/Font/testfont.hgfont
Mercury2/Themes/default/Font/testfont.png
Added: Mercury2/Themes/default/Font/FontInfo.txt
===================================================================
--- Mercury2/Themes/default/Font/FontInfo.txt (rev 0)
+++ Mercury2/Themes/default/Font/FontInfo.txt 2009-09-28 22:09:14 UTC (rev 542)
@@ -0,0 +1,21 @@
+Fonts are from:
+Freetype-ttf (From http://savannah.nongnu.org/projects/freefont/)
+FreeMonoBold.ttf
+FreeSansBold.ttf
+
+The fonts, themselves are under the GPL-2. Because the fonts are
+being rastered and no information about the fonts beyond actual
+rasterized images are used, most countries, including the USA do
+not hold this as copyrightable.
+
+When operating within the US, the fonts are made public domain by
+federal law. (Code of Federal Regulations, Ch 37, Sec. 202.1(e))
+
+\xA7202.1 Material not subject to copyright.
+The following are examples of works not subject to copyright and applications for registration of such works cannot be entertained:
+...
+(e)
+Typeface as typeface.
+
+We give credit and encourage all people who use these font images
+to give credit to the Free Font group.
\ No newline at end of file
Added: Mercury2/Themes/default/Font/FreeMono.hgfont
===================================================================
--- Mercury2/Themes/default/Font/FreeMono.hgfont (rev 0)
+++ Mercury2/Themes/default/Font/FreeMono.hgfont 2009-09-28 22:09:14 UTC (rev 542)
@@ -0,0 +1,258 @@
+FONT:FreeMono.png
+64 4.000000 15.000000 80.000000
+0 0.000000 0.000000 0.016602 0.041992 17 43 2 43
+1 0.062500 0.000000 0.079102 0.041992 17 43 2 43
+2 0.125000 0.000000 0.141602 0.041992 17 43 2 43
+3 0.187500 0.000000 0.204102 0.041992 17 43 2 43
+4 0.250000 0.000000 0.266602 0.041992 17 43 2 43
+5 0.312500 0.000000 0.329102 0.041992 17 43 2 43
+6 0.375000 0.000000 0.391602 0.041992 17 43 2 43
+7 0.437500 0.000000 0.454102 0.041992 17 43 2 43
+8 0.500000 0.000000 0.516602 0.041992 17 43 2 43
+9 0.562500 0.000000 0.579102 0.041992 17 43 2 43
+10 0.625000 0.000000 0.641602 0.041992 17 43 2 43
+11 0.687500 0.000000 0.704102 0.041992 17 43 2 43
+12 0.750000 0.000000 0.766602 0.041992 17 43 2 43
+13 0.812500 0.000000 0.829102 0.041992 17 43 2 43
+14 0.875000 0.000000 0.891602 0.041992 17 43 2 43
+15 0.937500 0.000000 0.954102 0.041992 17 43 2 43
+16 0.000000 0.062500 0.016602 0.104492 17 43 2 43
+17 0.062500 0.062500 0.079102 0.104492 17 43 2 43
+18 0.125000 0.062500 0.141602 0.104492 17 43 2 43
+19 0.187500 0.062500 0.204102 0.104492 17 43 2 43
+20 0.250000 0.062500 0.266602 0.104492 17 43 2 43
+21 0.312500 0.062500 0.329102 0.104492 17 43 2 43
+22 0.375000 0.062500 0.391602 0.104492 17 43 2 43
+23 0.437500 0.062500 0.454102 0.104492 17 43 2 43
+24 0.500000 0.062500 0.516602 0.104492 17 43 2 43
+25 0.562500 0.062500 0.579102 0.104492 17 43 2 43
+26 0.625000 0.062500 0.641602 0.104492 17 43 2 43
+27 0.687500 0.062500 0.704102 0.104492 17 43 2 43
+28 0.750000 0.062500 0.766602 0.104492 17 43 2 43
+29 0.812500 0.062500 0.829102 0.104492 17 43 2 43
+30 0.875000 0.062500 0.891602 0.104492 17 43 2 43
+31 0.937500 0.062500 0.954102 0.104492 17 43 2 43
+32 0.000000 0.125000 0.000000 0.125000 0 0 0 0
+33 0.062500 0.125000 0.071289 0.165039 9 41 15 40
+34 0.125000 0.125000 0.145508 0.143555 21 19 9 39
+35 0.187500 0.125000 0.214844 0.169922 28 46 5 42
+36 0.250000 0.125000 0.274414 0.171875 25 48 7 42
+37 0.312500 0.125000 0.339844 0.165039 28 41 5 40
+38 0.375000 0.125000 0.399414 0.160156 25 36 6 34
+39 0.437500 0.125000 0.446289 0.143555 9 19 15 39
+40 0.500000 0.125000 0.511719 0.170898 12 47 18 39
+41 0.562500 0.125000 0.573242 0.170898 11 47 9 39
+42 0.625000 0.125000 0.649414 0.147461 25 23 7 39
+43 0.687500 0.125000 0.716797 0.156250 30 32 4 34
+44 0.750000 0.125000 0.763672 0.144531 14 20 8 10
+45 0.812500 0.125000 0.841797 0.128906 30 4 4 20
+46 0.875000 0.125000 0.884766 0.133789 10 9 14 8
+47 0.937500 0.125000 0.961914 0.172852 25 49 7 43
+48 0.000000 0.187500 0.024414 0.227539 25 41 7 40
+49 0.062500 0.187500 0.086914 0.226562 25 40 7 40
+50 0.125000 0.187500 0.150391 0.226562 26 40 5 40
+51 0.187500 0.187500 0.212891 0.227539 26 41 6 40
+52 0.250000 0.187500 0.274414 0.225586 25 39 6 39
+53 0.312500 0.187500 0.337891 0.226562 26 40 6 39
+54 0.375000 0.187500 0.399414 0.227539 25 41 8 40
+55 0.437500 0.187500 0.461914 0.226562 25 40 6 39
+56 0.500000 0.187500 0.524414 0.227539 25 41 7 40
+57 0.562500 0.187500 0.586914 0.227539 25 41 8 40
+58 0.625000 0.187500 0.634766 0.214844 10 28 14 27
+59 0.687500 0.187500 0.702148 0.223633 15 37 8 27
+60 0.750000 0.187500 0.779297 0.218750 30 32 4 34
+61 0.812500 0.187500 0.844727 0.199219 33 12 3 24
+62 0.875000 0.187500 0.904297 0.218750 30 32 4 34
+63 0.937500 0.187500 0.960938 0.224609 24 38 8 37
+64 0.000000 0.250000 0.024414 0.292969 25 44 6 40
+65 0.062500 0.250000 0.099609 0.286133 38 37 0 37
+66 0.125000 0.250000 0.157227 0.286133 33 37 2 37
+67 0.187500 0.250000 0.217773 0.288086 31 39 4 37
+68 0.250000 0.250000 0.281250 0.286133 32 37 2 37
+69 0.312500 0.250000 0.343750 0.286133 32 37 2 37
+70 0.375000 0.250000 0.406250 0.286133 32 37 2 37
+71 0.437500 0.250000 0.468750 0.288086 32 39 4 37
+72 0.500000 0.250000 0.532227 0.286133 33 37 3 37
+73 0.562500 0.250000 0.586914 0.286133 25 37 7 37
+74 0.625000 0.250000 0.657227 0.288086 33 39 5 37
+75 0.687500 0.250000 0.721680 0.286133 35 37 2 37
+76 0.750000 0.250000 0.780273 0.286133 31 37 4 37
+77 0.812500 0.250000 0.849609 0.286133 38 37 0 37
+78 0.875000 0.250000 0.909180 0.286133 35 37 1 37
+79 0.937500 0.250000 0.969727 0.288086 33 39 3 37
+80 0.000000 0.312500 0.029297 0.348633 30 37 2 37
+81 0.062500 0.312500 0.094727 0.356445 33 45 3 37
+82 0.125000 0.312500 0.160156 0.348633 36 37 2 37
+83 0.187500 0.312500 0.214844 0.350586 28 39 5 37
+84 0.250000 0.312500 0.279297 0.348633 30 37 4 37
+85 0.312500 0.312500 0.345703 0.350586 34 39 2 37
+86 0.375000 0.312500 0.412109 0.348633 38 37 0 37
+87 0.437500 0.312500 0.473633 0.348633 37 37 1 37
+88 0.500000 0.312500 0.533203 0.348633 34 37 2 37
+89 0.562500 0.312500 0.594727 0.348633 33 37 3 37
+90 0.625000 0.312500 0.650391 0.348633 26 37 6 37
+91 0.687500 0.312500 0.699219 0.358398 12 47 17 39
+92 0.750000 0.312500 0.774414 0.360352 25 49 7 43
+93 0.812500 0.312500 0.824219 0.358398 12 47 9 39
+94 0.875000 0.312500 0.899414 0.330078 25 18 7 40
+95 0.937500 0.312500 0.975586 0.316406 39 4 0 -4
+96 0.000000 0.375000 0.011719 0.384766 12 10 9 41
+97 0.062500 0.375000 0.092773 0.404297 31 30 4 28
+98 0.125000 0.375000 0.158203 0.415039 34 41 1 39
+99 0.187500 0.375000 0.216797 0.404297 30 30 5 28
+100 0.250000 0.375000 0.283203 0.415039 34 41 4 39
+101 0.312500 0.375000 0.341797 0.404297 30 30 4 28
+102 0.375000 0.375000 0.403320 0.413086 29 39 6 39
+103 0.437500 0.375000 0.468750 0.414062 32 40 4 28
+104 0.500000 0.375000 0.533203 0.413086 34 39 2 39
+105 0.562500 0.375000 0.589844 0.414062 28 40 5 40
+106 0.625000 0.375000 0.645508 0.425781 21 52 9 40
+107 0.687500 0.375000 0.717773 0.413086 31 39 4 39
+108 0.750000 0.375000 0.777344 0.413086 28 39 5 39
+109 0.812500 0.375000 0.849609 0.402344 38 28 0 28
+110 0.875000 0.375000 0.906250 0.402344 32 28 3 28
+111 0.937500 0.375000 0.966797 0.404297 30 30 4 28
+112 0.000000 0.437500 0.033203 0.476562 34 40 1 28
+113 0.062500 0.437500 0.095703 0.476562 34 40 4 28
+114 0.125000 0.437500 0.154297 0.464844 30 28 5 28
+115 0.187500 0.437500 0.212891 0.466797 26 30 6 28
+116 0.250000 0.437500 0.279297 0.475586 30 39 2 37
+117 0.312500 0.437500 0.344727 0.465820 33 29 2 27
+118 0.375000 0.437500 0.410156 0.463867 36 27 1 27
+119 0.437500 0.437500 0.472656 0.463867 36 27 1 27
+120 0.500000 0.437500 0.532227 0.463867 33 27 3 27
+121 0.562500 0.437500 0.594727 0.475586 33 39 3 27
+122 0.625000 0.437500 0.649414 0.463867 25 27 7 27
+123 0.687500 0.437500 0.701172 0.483398 14 47 12 39
+124 0.750000 0.437500 0.753906 0.483398 4 47 17 39
+125 0.812500 0.437500 0.826172 0.483398 14 47 12 39
+126 0.875000 0.437500 0.902344 0.447266 28 10 5 23
+127 0.937500 0.437500 0.954102 0.479492 17 43 2 43
+128 0.000000 0.500000 0.016602 0.541992 17 43 2 43
+129 0.062500 0.500000 0.079102 0.541992 17 43 2 43
+130 0.125000 0.500000 0.141602 0.541992 17 43 2 43
+131 0.187500 0.500000 0.204102 0.541992 17 43 2 43
+132 0.250000 0.500000 0.266602 0.541992 17 43 2 43
+133 0.312500 0.500000 0.329102 0.541992 17 43 2 43
+134 0.375000 0.500000 0.391602 0.541992 17 43 2 43
+135 0.437500 0.500000 0.454102 0.541992 17 43 2 43
+136 0.500000 0.500000 0.516602 0.541992 17 43 2 43
+137 0.562500 0.500000 0.579102 0.541992 17 43 2 43
+138 0.625000 0.500000 0.641602 0.541992 17 43 2 43
+139 0.687500 0.500000 0.704102 0.541992 17 43 2 43
+140 0.750000 0.500000 0.766602 0.541992 17 43 2 43
+141 0.812500 0.500000 0.829102 0.541992 17 43 2 43
+142 0.875000 0.500000 0.891602 0.541992 17 43 2 43
+143 0.937500 0.500000 0.954102 0.541992 17 43 2 43
+144 0.000000 0.562500 0.016602 0.604492 17 43 2 43
+145 0.062500 0.562500 0.079102 0.604492 17 43 2 43
+146 0.125000 0.562500 0.141602 0.604492 17 43 2 43
+147 0.187500 0.562500 0.204102 0.604492 17 43 2 43
+148 0.250000 0.562500 0.266602 0.604492 17 43 2 43
+149 0.312500 0.562500 0.329102 0.604492 17 43 2 43
+150 0.375000 0.562500 0.391602 0.604492 17 43 2 43
+151 0.437500 0.562500 0.454102 0.604492 17 43 2 43
+152 0.500000 0.562500 0.516602 0.604492 17 43 2 43
+153 0.562500 0.562500 0.579102 0.604492 17 43 2 43
+154 0.625000 0.562500 0.641602 0.604492 17 43 2 43
+155 0.687500 0.562500 0.704102 0.604492 17 43 2 43
+156 0.750000 0.562500 0.766602 0.604492 17 43 2 43
+157 0.812500 0.562500 0.829102 0.604492 17 43 2 43
+158 0.875000 0.562500 0.891602 0.604492 17 43 2 43
+159 0.937500 0.562500 0.954102 0.604492 17 43 2 43
+160 0.000000 0.625000 0.000000 0.625000 0 0 0 0
+161 0.062500 0.625000 0.071289 0.665039 9 41 15 30
+162 0.125000 0.625000 0.148438 0.666016 24 42 7 41
+163 0.187500 0.625000 0.216797 0.661133 30 37 4 37
+164 0.250000 0.625000 0.275391 0.650391 26 26 6 32
+165 0.312500 0.625000 0.344727 0.661133 33 37 3 37
+166 0.375000 0.625000 0.378906 0.670898 4 47 17 39
+167 0.437500 0.625000 0.467773 0.666992 31 43 4 39
+168 0.500000 0.625000 0.521484 0.632812 22 8 8 40
+169 0.562500 0.625000 0.600586 0.662109 39 38 0 37
+170 0.625000 0.625000 0.644531 0.644531 20 20 9 37
+171 0.687500 0.625000 0.717773 0.651367 31 27 4 27
+172 0.750000 0.625000 0.779297 0.643555 30 19 4 29
+173 0.812500 0.625000 0.841797 0.628906 30 4 4 20
+174 0.875000 0.625000 0.913086 0.662109 39 38 0 37
+175 0.937500 0.625000 0.957031 0.627930 20 3 9 37
+176 0.000000 0.687500 0.019531 0.706055 20 19 9 41
+177 0.062500 0.687500 0.091797 0.720703 30 34 4 34
+178 0.125000 0.687500 0.139648 0.710938 15 24 11 40
+179 0.187500 0.687500 0.203125 0.710938 16 24 11 40
+180 0.250000 0.687500 0.261719 0.697266 12 10 17 41
+181 0.312500 0.687500 0.344727 0.726562 33 40 2 27
+182 0.375000 0.687500 0.403320 0.729492 29 43 5 39
+183 0.437500 0.687500 0.444336 0.694336 7 7 16 18
+184 0.500000 0.687500 0.511719 0.699219 12 12 13 0
+185 0.562500 0.687500 0.577148 0.709961 15 23 12 39
+186 0.625000 0.687500 0.644531 0.706055 20 19 9 37
+187 0.687500 0.687500 0.717773 0.713867 31 27 4 27
+188 0.750000 0.687500 0.786133 0.726562 37 40 1 40
+189 0.812500 0.687500 0.847656 0.726562 36 40 1 40
+190 0.875000 0.687500 0.912109 0.726562 38 40 0 40
+191 0.937500 0.687500 0.959961 0.725586 23 39 7 27
+192 0.000000 0.750000 0.037109 0.798828 38 50 0 50
+193 0.062500 0.750000 0.099609 0.798828 38 50 0 50
+194 0.125000 0.750000 0.162109 0.797852 38 49 0 49
+195 0.187500 0.750000 0.224609 0.793945 38 45 0 45
+196 0.250000 0.750000 0.287109 0.794922 38 46 0 46
+197 0.312500 0.750000 0.349609 0.799805 38 51 0 51
+198 0.375000 0.750000 0.412109 0.786133 38 37 0 37
+199 0.437500 0.750000 0.467773 0.797852 31 49 4 37
+200 0.500000 0.750000 0.531250 0.798828 32 50 2 50
+201 0.562500 0.750000 0.593750 0.798828 32 50 2 50
+202 0.625000 0.750000 0.656250 0.797852 32 49 2 49
+203 0.687500 0.750000 0.718750 0.794922 32 46 2 46
+204 0.750000 0.750000 0.774414 0.798828 25 50 7 50
+205 0.812500 0.750000 0.836914 0.798828 25 50 7 50
+206 0.875000 0.750000 0.899414 0.797852 25 49 7 49
+207 0.937500 0.750000 0.961914 0.794922 25 46 7 46
+208 0.000000 0.812500 0.033203 0.848633 34 37 0 37
+209 0.062500 0.812500 0.096680 0.857422 35 46 1 46
+210 0.125000 0.812500 0.157227 0.863281 33 52 3 50
+211 0.187500 0.812500 0.219727 0.863281 33 52 3 50
+212 0.250000 0.812500 0.282227 0.862305 33 51 3 49
+213 0.312500 0.812500 0.344727 0.858398 33 47 3 45
+214 0.375000 0.812500 0.407227 0.859375 33 48 3 46
+215 0.437500 0.812500 0.460938 0.835938 24 24 7 30
+216 0.500000 0.812500 0.533203 0.853516 34 42 2 39
+217 0.562500 0.812500 0.595703 0.863281 34 52 2 50
+218 0.625000 0.812500 0.658203 0.863281 34 52 2 50
+219 0.687500 0.812500 0.720703 0.862305 34 51 2 49
+220 0.750000 0.812500 0.783203 0.859375 34 48 2 46
+221 0.812500 0.812500 0.844727 0.861328 33 50 3 50
+222 0.875000 0.812500 0.904297 0.848633 30 37 2 37
+223 0.937500 0.812500 0.966797 0.852539 30 41 2 39
+224 0.000000 0.875000 0.030273 0.916992 31 43 4 41
+225 0.062500 0.875000 0.092773 0.916992 31 43 4 41
+226 0.125000 0.875000 0.155273 0.916992 31 43 4 41
+227 0.187500 0.875000 0.217773 0.914062 31 40 4 38
+228 0.250000 0.875000 0.280273 0.914062 31 40 4 38
+229 0.312500 0.875000 0.342773 0.918945 31 45 4 43
+230 0.375000 0.875000 0.411133 0.904297 37 30 0 28
+231 0.437500 0.875000 0.466797 0.914062 30 40 5 28
+232 0.500000 0.875000 0.529297 0.916992 30 43 4 41
+233 0.562500 0.875000 0.591797 0.916992 30 43 4 41
+234 0.625000 0.875000 0.654297 0.916016 30 42 4 40
+235 0.687500 0.875000 0.716797 0.914062 30 40 4 38
+236 0.750000 0.875000 0.777344 0.915039 28 41 5 41
+237 0.812500 0.875000 0.839844 0.915039 28 41 5 41
+238 0.875000 0.875000 0.902344 0.915039 28 41 5 41
+239 0.937500 0.875000 0.964844 0.912109 28 38 5 38
+240 0.000000 0.937500 0.029297 0.978516 30 42 4 40
+241 0.062500 0.937500 0.093750 0.974609 32 38 3 38
+242 0.125000 0.937500 0.154297 0.979492 30 43 4 41
+243 0.187500 0.937500 0.216797 0.979492 30 43 4 41
+244 0.250000 0.937500 0.279297 0.979492 30 43 4 41
+245 0.312500 0.937500 0.341797 0.976562 30 40 4 38
+246 0.375000 0.937500 0.404297 0.976562 30 40 4 38
+247 0.437500 0.937500 0.466797 0.970703 30 34 4 35
+248 0.500000 0.937500 0.531250 0.969727 32 33 3 30
+249 0.562500 0.937500 0.594727 0.979492 33 43 2 41
+250 0.625000 0.937500 0.657227 0.979492 33 43 2 41
+251 0.687500 0.937500 0.719727 0.979492 33 43 2 41
+252 0.750000 0.937500 0.782227 0.976562 33 40 2 38
+253 0.812500 0.937500 0.844727 0.989258 33 53 3 41
+254 0.875000 0.937500 0.908203 0.986328 34 50 1 38
+255 0.937500 0.937500 0.969727 0.986328 33 50 3 38
Added: Mercury2/Themes/default/Font/FreeMono.png
===================================================================
(Binary files differ)
Property changes on: Mercury2/Themes/default/Font/FreeMono.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: Mercury2/Themes/default/Font/FreeMonoBold.hgfont
===================================================================
--- Mercury2/Themes/default/Font/FreeMonoBold.hgfont (rev 0)
+++ Mercury2/Themes/default/Font/FreeMonoBold.hgfont 2009-09-28 22:09:14 UTC (rev 542)
@@ -0,0 +1,258 @@
+FONT:FreeMonoBold.png
+64 4.000000 15.000000 80.000000
+0 0.000000 0.000000 0.016602 0.041992 17 43 2 43
+1 0.062500 0.000000 0.079102 0.041992 17 43 2 43
+2 0.125000 0.000000 0.141602 0.041992 17 43 2 43
+3 0.187500 0.000000 0.204102 0.041992 17 43 2 43
+4 0.250000 0.000000 0.266602 0.041992 17 43 2 43
+5 0.312500 0.000000 0.329102 0.041992 17 43 2 43
+6 0.375000 0.000000 0.391602 0.041992 17 43 2 43
+7 0.437500 0.000000 0.454102 0.041992 17 43 2 43
+8 0.500000 0.000000 0.516602 0.041992 17 43 2 43
+9 0.562500 0.000000 0.579102 0.041992 17 43 2 43
+10 0.625000 0.000000 0.641602 0.041992 17 43 2 43
+11 0.687500 0.000000 0.704102 0.041992 17 43 2 43
+12 0.750000 0.000000 0.766602 0.041992 17 43 2 43
+13 0.812500 0.000000 0.829102 0.041992 17 43 2 43
+14 0.875000 0.000000 0.891602 0.041992 17 43 2 43
+15 0.937500 0.000000 0.954102 0.041992 17 43 2 43
+16 0.000000 0.062500 0.016602 0.104492 17 43 2 43
+17 0.062500 0.062500 0.079102 0.104492 17 43 2 43
+18 0.125000 0.062500 0.141602 0.104492 17 43 2 43
+19 0.187500 0.062500 0.204102 0.104492 17 43 2 43
+20 0.250000 0.062500 0.266602 0.104492 17 43 2 43
+21 0.312500 0.062500 0.329102 0.104492 17 43 2 43
+22 0.375000 0.062500 0.391602 0.104492 17 43 2 43
+23 0.437500 0.062500 0.454102 0.104492 17 43 2 43
+24 0.500000 0.062500 0.516602 0.104492 17 43 2 43
+25 0.562500 0.062500 0.579102 0.104492 17 43 2 43
+26 0.625000 0.062500 0.641602 0.104492 17 43 2 43
+27 0.687500 0.062500 0.704102 0.104492 17 43 2 43
+28 0.750000 0.062500 0.766602 0.104492 17 43 2 43
+29 0.812500 0.062500 0.829102 0.104492 17 43 2 43
+30 0.875000 0.062500 0.891602 0.104492 17 43 2 43
+31 0.937500 0.062500 0.954102 0.104492 17 43 2 43
+32 0.000000 0.125000 0.000000 0.125000 0 0 0 0
+33 0.062500 0.125000 0.073242 0.166016 11 42 14 41
+34 0.125000 0.125000 0.146484 0.144531 22 20 8 39
+35 0.187500 0.125000 0.218750 0.173828 32 50 3 44
+36 0.250000 0.125000 0.278320 0.175781 29 52 5 44
+37 0.312500 0.125000 0.340820 0.165039 29 41 5 40
+38 0.375000 0.125000 0.403320 0.161133 29 37 4 36
+39 0.437500 0.125000 0.446289 0.144531 9 20 15 39
+40 0.500000 0.125000 0.515625 0.174805 16 51 16 41
+41 0.562500 0.125000 0.577148 0.174805 15 51 7 41
+42 0.625000 0.125000 0.653320 0.151367 29 27 5 40
+43 0.687500 0.125000 0.720703 0.160156 34 36 2 36
+44 0.750000 0.125000 0.763672 0.144531 14 20 9 9
+45 0.812500 0.125000 0.845703 0.132812 34 8 2 22
+46 0.875000 0.125000 0.884766 0.133789 10 9 14 8
+47 0.937500 0.125000 0.965820 0.176758 29 53 5 45
+48 0.000000 0.187500 0.028320 0.228516 29 42 5 41
+49 0.062500 0.187500 0.090820 0.227539 29 41 5 41
+50 0.125000 0.187500 0.154297 0.227539 30 41 3 41
+51 0.187500 0.187500 0.216797 0.228516 30 42 4 41
+52 0.250000 0.187500 0.278320 0.226562 29 40 4 40
+53 0.312500 0.187500 0.341797 0.227539 30 41 4 40
+54 0.375000 0.187500 0.403320 0.228516 29 42 6 41
+55 0.437500 0.187500 0.465820 0.227539 29 41 4 40
+56 0.500000 0.187500 0.528320 0.228516 29 42 5 41
+57 0.562500 0.187500 0.590820 0.228516 29 42 6 41
+58 0.625000 0.187500 0.634766 0.215820 10 29 14 28
+59 0.687500 0.187500 0.701172 0.225586 14 39 9 28
+60 0.750000 0.187500 0.782227 0.216797 33 30 2 33
+61 0.812500 0.187500 0.845703 0.207031 34 20 2 28
+62 0.875000 0.187500 0.907227 0.215820 33 29 3 32
+63 0.937500 0.187500 0.964844 0.226562 28 40 6 39
+64 0.000000 0.250000 0.028320 0.298828 29 50 4 40
+65 0.062500 0.250000 0.103516 0.287109 42 38 -2 38
+66 0.125000 0.250000 0.161133 0.287109 37 38 0 38
+67 0.187500 0.250000 0.221680 0.289062 35 40 2 39
+68 0.250000 0.250000 0.285156 0.287109 36 38 0 38
+69 0.312500 0.250000 0.347656 0.287109 36 38 0 38
+70 0.375000 0.250000 0.410156 0.287109 36 38 0 38
+71 0.437500 0.250000 0.472656 0.289062 36 40 2 39
+72 0.500000 0.250000 0.536133 0.287109 37 38 1 38
+73 0.562500 0.250000 0.590820 0.287109 29 38 5 38
+74 0.625000 0.250000 0.661133 0.288086 37 39 3 38
+75 0.687500 0.250000 0.725586 0.287109 39 38 0 38
+76 0.750000 0.250000 0.784180 0.287109 35 38 2 38
+77 0.812500 0.250000 0.853516 0.287109 42 38 -2 38
+78 0.875000 0.250000 0.913086 0.287109 39 38 -1 38
+79 0.937500 0.250000 0.973633 0.289062 37 40 1 39
+80 0.000000 0.312500 0.033203 0.349609 34 38 0 38
+81 0.062500 0.312500 0.098633 0.360352 37 49 1 39
+82 0.125000 0.312500 0.164062 0.349609 40 38 0 38
+83 0.187500 0.312500 0.218750 0.351562 32 40 3 39
+84 0.250000 0.312500 0.283203 0.349609 34 38 2 38
+85 0.312500 0.312500 0.349609 0.350586 38 39 0 38
+86 0.375000 0.312500 0.416016 0.349609 42 38 -2 38
+87 0.437500 0.312500 0.477539 0.349609 41 38 -1 38
+88 0.500000 0.312500 0.537109 0.349609 38 38 0 38
+89 0.562500 0.312500 0.598633 0.349609 37 38 1 38
+90 0.625000 0.312500 0.654297 0.349609 30 38 4 38
+91 0.687500 0.312500 0.702148 0.362305 15 51 16 41
+92 0.750000 0.312500 0.778320 0.364258 29 53 5 45
+93 0.812500 0.312500 0.827148 0.362305 15 51 8 41
+94 0.875000 0.312500 0.903320 0.333984 29 22 5 42
+95 0.937500 0.312500 0.975586 0.316406 39 4 0 -4
+96 0.000000 0.375000 0.012695 0.386719 13 12 10 43
+97 0.062500 0.375000 0.096680 0.405273 35 31 2 29
+98 0.125000 0.375000 0.162109 0.415039 38 41 -1 40
+99 0.187500 0.375000 0.220703 0.405273 34 31 3 29
+100 0.250000 0.375000 0.287109 0.415039 38 41 2 40
+101 0.312500 0.375000 0.345703 0.405273 34 31 2 29
+102 0.375000 0.375000 0.407227 0.414062 33 40 4 40
+103 0.437500 0.375000 0.472656 0.416016 36 42 2 29
+104 0.500000 0.375000 0.537109 0.414062 38 40 0 40
+105 0.562500 0.375000 0.593750 0.414062 32 40 3 40
+106 0.625000 0.375000 0.649414 0.426758 25 53 7 40
+107 0.687500 0.375000 0.721680 0.414062 35 40 2 40
+108 0.750000 0.375000 0.781250 0.414062 32 40 3 40
+109 0.812500 0.375000 0.853516 0.403320 42 29 -2 29
+110 0.875000 0.375000 0.910156 0.403320 36 29 1 29
+111 0.937500 0.375000 0.970703 0.405273 34 31 2 29
+112 0.000000 0.437500 0.037109 0.478516 38 42 -1 29
+113 0.062500 0.437500 0.099609 0.478516 38 42 2 29
+114 0.125000 0.437500 0.158203 0.465820 34 29 3 29
+115 0.187500 0.437500 0.216797 0.467773 30 31 4 29
+116 0.250000 0.437500 0.283203 0.476562 34 40 0 38
+117 0.312500 0.437500 0.348633 0.465820 37 29 0 28
+118 0.375000 0.437500 0.413086 0.464844 39 28 0 28
+119 0.437500 0.437500 0.475586 0.464844 39 28 0 28
+120 0.500000 0.437500 0.536133 0.464844 37 28 1 28
+121 0.562500 0.437500 0.598633 0.477539 37 41 1 28
+122 0.625000 0.437500 0.653320 0.464844 29 28 5 28
+123 0.687500 0.437500 0.705078 0.486328 18 50 10 40
+124 0.750000 0.437500 0.756836 0.486328 7 50 16 40
+125 0.812500 0.437500 0.830078 0.486328 18 50 10 40
+126 0.875000 0.437500 0.906250 0.451172 32 14 3 25
+127 0.937500 0.437500 0.954102 0.479492 17 43 2 43
+128 0.000000 0.500000 0.016602 0.541992 17 43 2 43
+129 0.062500 0.500000 0.079102 0.541992 17 43 2 43
+130 0.125000 0.500000 0.141602 0.541992 17 43 2 43
+131 0.187500 0.500000 0.204102 0.541992 17 43 2 43
+132 0.250000 0.500000 0.266602 0.541992 17 43 2 43
+133 0.312500 0.500000 0.329102 0.541992 17 43 2 43
+134 0.375000 0.500000 0.391602 0.541992 17 43 2 43
+135 0.437500 0.500000 0.454102 0.541992 17 43 2 43
+136 0.500000 0.500000 0.516602 0.541992 17 43 2 43
+137 0.562500 0.500000 0.579102 0.541992 17 43 2 43
+138 0.625000 0.500000 0.641602 0.541992 17 43 2 43
+139 0.687500 0.500000 0.704102 0.541992 17 43 2 43
+140 0.750000 0.500000 0.766602 0.541992 17 43 2 43
+141 0.812500 0.500000 0.829102 0.541992 17 43 2 43
+142 0.875000 0.500000 0.891602 0.541992 17 43 2 43
+143 0.937500 0.500000 0.954102 0.541992 17 43 2 43
+144 0.000000 0.562500 0.016602 0.604492 17 43 2 43
+145 0.062500 0.562500 0.079102 0.604492 17 43 2 43
+146 0.125000 0.562500 0.141602 0.604492 17 43 2 43
+147 0.187500 0.562500 0.204102 0.604492 17 43 2 43
+148 0.250000 0.562500 0.266602 0.604492 17 43 2 43
+149 0.312500 0.562500 0.329102 0.604492 17 43 2 43
+150 0.375000 0.562500 0.391602 0.604492 17 43 2 43
+151 0.437500 0.562500 0.454102 0.604492 17 43 2 43
+152 0.500000 0.562500 0.516602 0.604492 17 43 2 43
+153 0.562500 0.562500 0.579102 0.604492 17 43 2 43
+154 0.625000 0.562500 0.641602 0.604492 17 43 2 43
+155 0.687500 0.562500 0.704102 0.604492 17 43 2 43
+156 0.750000 0.562500 0.766602 0.604492 17 43 2 43
+157 0.812500 0.562500 0.829102 0.604492 17 43 2 43
+158 0.875000 0.562500 0.891602 0.604492 17 43 2 43
+159 0.937500 0.562500 0.954102 0.604492 17 43 2 43
+160 0.000000 0.625000 0.000000 0.625000 0 0 0 0
+161 0.062500 0.625000 0.073242 0.666016 11 42 13 29
+162 0.125000 0.625000 0.151367 0.669922 27 46 5 43
+163 0.187500 0.625000 0.220703 0.663086 34 39 2 39
+164 0.250000 0.625000 0.279297 0.654297 30 30 4 34
+165 0.312500 0.625000 0.348633 0.662109 37 38 1 38
+166 0.375000 0.625000 0.381836 0.673828 7 50 16 40
+167 0.437500 0.625000 0.471680 0.672852 35 49 2 38
+168 0.500000 0.625000 0.521484 0.632812 22 8 8 42
+169 0.562500 0.625000 0.601562 0.664062 40 40 -1 39
+170 0.625000 0.625000 0.649414 0.652344 25 28 7 39
+171 0.687500 0.625000 0.721680 0.650391 35 26 2 27
+172 0.750000 0.625000 0.777344 0.646484 28 22 2 29
+173 0.812500 0.625000 0.845703 0.632812 34 8 2 22
+174 0.875000 0.625000 0.914062 0.664062 40 40 -1 39
+175 0.937500 0.625000 0.959961 0.631836 23 7 8 41
+176 0.000000 0.687500 0.022461 0.710938 23 24 8 39
+177 0.062500 0.687500 0.095703 0.726562 34 40 2 40
+178 0.125000 0.687500 0.143555 0.712891 19 26 9 41
+179 0.187500 0.687500 0.206055 0.712891 19 26 10 41
+180 0.250000 0.687500 0.261719 0.699219 12 12 16 43
+181 0.312500 0.687500 0.348633 0.724609 37 38 0 28
+182 0.375000 0.687500 0.407227 0.736328 33 50 3 38
+183 0.437500 0.687500 0.446289 0.695312 9 8 15 19
+184 0.500000 0.687500 0.515625 0.701172 16 14 11 1
+185 0.562500 0.687500 0.580078 0.712891 18 26 10 41
+186 0.625000 0.687500 0.648438 0.714844 24 28 7 39
+187 0.687500 0.687500 0.721680 0.712891 35 26 2 27
+188 0.750000 0.687500 0.792969 0.727539 44 41 -3 41
+189 0.812500 0.687500 0.855469 0.727539 44 41 -3 41
+190 0.875000 0.687500 0.917969 0.727539 44 41 -3 41
+191 0.937500 0.687500 0.964844 0.726562 28 40 4 26
+192 0.000000 0.750000 0.041016 0.800781 42 52 -2 52
+193 0.062500 0.750000 0.103516 0.800781 42 52 -2 52
+194 0.125000 0.750000 0.166016 0.799805 42 51 -2 51
+195 0.187500 0.750000 0.228516 0.795898 42 47 -2 47
+196 0.250000 0.750000 0.291016 0.796875 42 48 -2 48
+197 0.312500 0.750000 0.353516 0.800781 42 52 -2 52
+198 0.375000 0.750000 0.416016 0.787109 42 38 -2 38
+199 0.437500 0.750000 0.471680 0.800781 35 52 2 39
+200 0.500000 0.750000 0.535156 0.800781 36 52 0 52
+201 0.562500 0.750000 0.597656 0.800781 36 52 0 52
+202 0.625000 0.750000 0.660156 0.800781 36 52 0 51
+203 0.687500 0.750000 0.722656 0.796875 36 48 0 48
+204 0.750000 0.750000 0.778320 0.800781 29 52 5 52
+205 0.812500 0.750000 0.840820 0.800781 29 52 5 52
+206 0.875000 0.750000 0.903320 0.799805 29 51 5 51
+207 0.937500 0.750000 0.965820 0.796875 29 48 5 48
+208 0.000000 0.812500 0.035156 0.849609 36 38 0 38
+209 0.062500 0.812500 0.100586 0.858398 39 47 -1 47
+210 0.125000 0.812500 0.161133 0.864258 37 53 1 52
+211 0.187500 0.812500 0.223633 0.864258 37 53 1 52
+212 0.250000 0.812500 0.286133 0.863281 37 52 1 51
+213 0.312500 0.812500 0.348633 0.859375 37 48 1 47
+214 0.375000 0.812500 0.411133 0.860352 37 49 1 48
+215 0.437500 0.812500 0.462891 0.837891 26 26 6 31
+216 0.500000 0.812500 0.537109 0.857422 38 46 0 41
+217 0.562500 0.812500 0.599609 0.864258 38 53 0 52
+218 0.625000 0.812500 0.662109 0.864258 38 53 0 52
+219 0.687500 0.812500 0.724609 0.863281 38 52 0 51
+220 0.750000 0.812500 0.787109 0.860352 38 49 0 48
+221 0.812500 0.812500 0.848633 0.862305 37 51 1 51
+222 0.875000 0.812500 0.908203 0.849609 34 38 0 38
+223 0.937500 0.812500 0.970703 0.853516 34 42 0 40
+224 0.000000 0.875000 0.034180 0.918945 35 45 2 43
+225 0.062500 0.875000 0.096680 0.918945 35 45 2 43
+226 0.125000 0.875000 0.159180 0.917969 35 44 2 42
+227 0.187500 0.875000 0.221680 0.916016 35 42 2 40
+228 0.250000 0.875000 0.284180 0.915039 35 41 2 39
+229 0.312500 0.875000 0.346680 0.918945 35 45 2 43
+230 0.375000 0.875000 0.415039 0.905273 41 31 -1 29
+231 0.437500 0.875000 0.470703 0.916016 34 42 3 29
+232 0.500000 0.875000 0.533203 0.918945 34 45 2 43
+233 0.562500 0.875000 0.595703 0.918945 34 45 2 43
+234 0.625000 0.875000 0.658203 0.917969 34 44 2 42
+235 0.687500 0.875000 0.720703 0.915039 34 41 2 39
+236 0.750000 0.875000 0.781250 0.916992 32 43 3 43
+237 0.812500 0.875000 0.843750 0.916992 32 43 3 43
+238 0.875000 0.875000 0.906250 0.916016 32 42 3 42
+239 0.937500 0.875000 0.968750 0.913086 32 39 3 39
+240 0.000000 0.937500 0.033203 0.980469 34 44 2 42
+241 0.062500 0.937500 0.097656 0.977539 36 41 1 41
+242 0.125000 0.937500 0.158203 0.981445 34 45 2 43
+243 0.187500 0.937500 0.220703 0.981445 34 45 2 43
+244 0.250000 0.937500 0.283203 0.980469 34 44 2 42
+245 0.312500 0.937500 0.345703 0.977539 34 41 2 39
+246 0.375000 0.937500 0.408203 0.977539 34 41 2 39
+247 0.437500 0.937500 0.470703 0.970703 34 34 2 35
+248 0.500000 0.937500 0.535156 0.973633 36 37 1 32
+249 0.562500 0.937500 0.598633 0.980469 37 44 0 43
+250 0.625000 0.937500 0.661133 0.980469 37 44 0 43
+251 0.687500 0.937500 0.723633 0.979492 37 43 0 42
+252 0.750000 0.937500 0.786133 0.976562 37 40 0 39
+253 0.812500 0.937500 0.848633 0.993164 37 57 1 44
+254 0.875000 0.937500 0.912109 0.989258 38 53 -1 40
+255 0.937500 0.937500 0.973633 0.988281 37 52 1 39
Added: Mercury2/Themes/default/Font/FreeMonoBold.png
===================================================================
(Binary files differ)
Property changes on: Mercury2/Themes/default/Font/FreeMonoBold.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: Mercury2/Themes/default/Font/FreeSans.hgfont
===================================================================
--- Mercury2/Themes/default/Font/FreeSans.hgfont (rev 0)
+++ Mercury2/Themes/default/Font/FreeSans.hgfont 2009-09-28 22:09:14 UTC (rev 542)
@@ -0,0 +1,258 @@
+FONT:FreeSans.png
+64 4.000000 15.000000 80.000000
+0 0.000000 0.000000 0.025391 0.061523 26 63 4 63
+1 0.062500 0.000000 0.087891 0.061523 26 63 4 63
+2 0.125000 0.000000 0.150391 0.061523 26 63 4 63
+3 0.187500 0.000000 0.212891 0.061523 26 63 4 63
+4 0.250000 0.000000 0.275391 0.061523 26 63 4 63
+5 0.312500 0.000000 0.337891 0.061523 26 63 4 63
+6 0.375000 0.000000 0.400391 0.061523 26 63 4 63
+7 0.437500 0.000000 0.462891 0.061523 26 63 4 63
+8 0.500000 0.000000 0.525391 0.061523 26 63 4 63
+9 0.562500 0.000000 0.587891 0.061523 26 63 4 63
+10 0.625000 0.000000 0.650391 0.061523 26 63 4 63
+11 0.687500 0.000000 0.712891 0.061523 26 63 4 63
+12 0.750000 0.000000 0.775391 0.061523 26 63 4 63
+13 0.812500 0.000000 0.837891 0.061523 26 63 4 63
+14 0.875000 0.000000 0.900391 0.061523 26 63 4 63
+15 0.937500 0.000000 0.962891 0.061523 26 63 4 63
+16 0.000000 0.062500 0.025391 0.124023 26 63 4 63
+17 0.062500 0.062500 0.087891 0.124023 26 63 4 63
+18 0.125000 0.062500 0.150391 0.124023 26 63 4 63
+19 0.187500 0.062500 0.212891 0.124023 26 63 4 63
+20 0.250000 0.062500 0.275391 0.124023 26 63 4 63
+21 0.312500 0.062500 0.337891 0.124023 26 63 4 63
+22 0.375000 0.062500 0.400391 0.124023 26 63 4 63
+23 0.437500 0.062500 0.462891 0.124023 26 63 4 63
+24 0.500000 0.062500 0.525391 0.124023 26 63 4 63
+25 0.562500 0.062500 0.587891 0.124023 26 63 4 63
+26 0.625000 0.062500 0.650391 0.124023 26 63 4 63
+27 0.687500 0.062500 0.712891 0.124023 26 63 4 63
+28 0.750000 0.062500 0.775391 0.124023 26 63 4 63
+29 0.812500 0.062500 0.837891 0.124023 26 63 4 63
+30 0.875000 0.062500 0.900391 0.124023 26 63 4 63
+31 0.937500 0.062500 0.962891 0.124023 26 63 4 63
+32 0.000000 0.125000 0.000000 0.125000 0 0 0 0
+33 0.062500 0.125000 0.069336 0.170898 7 47 7 47
+34 0.125000 0.125000 0.141602 0.141602 17 17 3 46
+35 0.187500 0.125000 0.221680 0.170898 35 47 0 45
+36 0.250000 0.125000 0.281250 0.182617 32 59 2 50
+37 0.312500 0.125000 0.365234 0.171875 54 48 1 46
+38 0.375000 0.125000 0.412109 0.171875 38 48 3 46
+39 0.437500 0.125000 0.444336 0.141602 7 17 3 46
+40 0.500000 0.125000 0.514648 0.184570 15 61 4 47
+41 0.562500 0.125000 0.577148 0.184570 15 61 2 47
+42 0.625000 0.125000 0.644531 0.143555 20 19 2 47
+43 0.687500 0.125000 0.718750 0.156250 32 32 3 31
+44 0.750000 0.125000 0.757812 0.141602 8 17 5 7
+45 0.812500 0.125000 0.829102 0.129883 17 5 2 20
+46 0.875000 0.125000 0.882812 0.131836 8 7 5 7
+47 0.937500 0.125000 0.957031 0.172852 20 49 -1 47
+48 0.000000 0.187500 0.030273 0.234375 31 48 2 46
+49 0.062500 0.187500 0.079102 0.232422 17 46 6 46
+50 0.125000 0.187500 0.155273 0.232422 31 46 2 46
+51 0.187500 0.187500 0.217773 0.234375 31 48 2 46
+52 0.250000 0.187500 0.282227 0.232422 33 46 1 46
+53 0.312500 0.187500 0.342773 0.234375 31 48 2 46
+54 0.375000 0.187500 0.405273 0.234375 31 48 2 46
+55 0.437500 0.187500 0.468750 0.232422 32 46 2 46
+56 0.500000 0.187500 0.530273 0.234375 31 48 2 46
+57 0.562500 0.187500 0.592773 0.234375 31 48 2 46
+58 0.625000 0.187500 0.631836 0.220703 7 34 7 34
+59 0.687500 0.187500 0.694336 0.230469 7 44 7 34
+60 0.750000 0.187500 0.782227 0.218750 33 32 2 31
+61 0.812500 0.187500 0.843750 0.203125 32 16 3 23
+62 0.875000 0.187500 0.906250 0.218750 32 32 3 31
+63 0.937500 0.187500 0.965820 0.234375 29 48 4 48
+64 0.000000 0.250000 0.057617 0.306641 59 58 2 48
+65 0.062500 0.250000 0.102539 0.295898 41 47 1 47
+66 0.125000 0.250000 0.159180 0.295898 35 47 5 47
+67 0.187500 0.250000 0.227539 0.298828 41 50 3 48
+68 0.250000 0.250000 0.287109 0.295898 38 47 5 47
+69 0.312500 0.250000 0.346680 0.295898 35 47 5 47
+70 0.375000 0.250000 0.407227 0.295898 33 47 5 47
+71 0.437500 0.250000 0.480469 0.298828 44 50 2 48
+72 0.500000 0.250000 0.536133 0.295898 37 47 5 47
+73 0.562500 0.250000 0.569336 0.295898 7 47 6 47
+74 0.625000 0.250000 0.651367 0.297852 27 49 1 47
+75 0.687500 0.250000 0.724609 0.295898 38 47 5 47
+76 0.750000 0.250000 0.779297 0.295898 30 47 5 47
+77 0.812500 0.250000 0.856445 0.295898 45 47 4 47
+78 0.875000 0.250000 0.912109 0.295898 38 47 4 47
+79 0.937500 0.250000 0.982422 0.298828 46 50 2 48
+80 0.000000 0.312500 0.034180 0.358398 35 47 5 47
+81 0.062500 0.312500 0.107422 0.363281 46 52 2 48
+82 0.125000 0.312500 0.163086 0.358398 39 47 5 47
+83 0.187500 0.312500 0.223633 0.361328 37 50 3 48
+84 0.250000 0.312500 0.286133 0.358398 37 47 1 47
+85 0.312500 0.312500 0.348633 0.360352 37 49 5 47
+86 0.375000 0.312500 0.415039 0.358398 41 47 1 47
+87 0.437500 0.312500 0.495117 0.358398 59 47 1 47
+88 0.500000 0.312500 0.540039 0.358398 41 47 1 47
+89 0.562500 0.312500 0.604492 0.358398 43 47 0 47
+90 0.625000 0.312500 0.661133 0.358398 37 47 1 47
+91 0.687500 0.312500 0.699219 0.372070 12 61 4 47
+92 0.750000 0.312500 0.769531 0.360352 20 49 -1 47
+93 0.812500 0.312500 0.825195 0.372070 13 61 1 47
+94 0.875000 0.312500 0.900391 0.336914 26 25 2 46
+95 0.937500 0.312500 0.975586 0.316406 39 4 -2 -8
+96 0.000000 0.375000 0.013672 0.385742 14 11 1 48
+97 0.062500 0.375000 0.094727 0.411133 33 37 2 35
+98 0.125000 0.375000 0.155273 0.422852 31 49 3 47
+99 0.187500 0.375000 0.216797 0.411133 30 37 1 35
+100 0.250000 0.375000 0.280273 0.422852 31 49 1 47
+101 0.312500 0.375000 0.342773 0.411133 31 37 2 35
+102 0.375000 0.375000 0.390625 0.420898 16 47 1 47
+103 0.437500 0.375000 0.467773 0.422852 31 49 1 35
+104 0.500000 0.375000 0.527344 0.420898 28 47 4 47
+105 0.562500 0.375000 0.568359 0.421875 6 48 4 47
+106 0.625000 0.375000 0.636719 0.434570 12 61 -2 47
+107 0.687500 0.375000 0.716797 0.420898 30 47 3 47
+108 0.750000 0.375000 0.755859 0.420898 6 47 4 47
+109 0.812500 0.375000 0.856445 0.409180 45 35 4 35
+110 0.875000 0.375000 0.902344 0.409180 28 35 4 35
+111 0.937500 0.375000 0.967773 0.411133 31 37 2 35
+112 0.000000 0.437500 0.030273 0.485352 31 49 3 35
+113 0.062500 0.437500 0.092773 0.485352 31 49 1 35
+114 0.125000 0.437500 0.141602 0.471680 17 35 4 35
+115 0.187500 0.437500 0.214844 0.473633 28 37 2 35
+116 0.250000 0.437500 0.266602 0.481445 17 45 0 43
+117 0.312500 0.437500 0.338867 0.472656 27 36 4 34
+118 0.375000 0.437500 0.406250 0.470703 32 34 0 34
+119 0.437500 0.437500 0.482422 0.470703 46 34 0 34
+120 0.500000 0.437500 0.529297 0.470703 30 34 1 34
+121 0.562500 0.437500 0.591797 0.484375 30 48 1 34
+122 0.625000 0.437500 0.653320 0.470703 29 34 1 34
+123 0.687500 0.437500 0.703125 0.497070 16 61 2 47
+124 0.750000 0.437500 0.754883 0.497070 5 61 6 47
+125 0.812500 0.437500 0.828125 0.497070 16 61 1 47
+126 0.875000 0.437500 0.903320 0.449219 29 12 4 29
+127 0.937500 0.437500 0.962891 0.499023 26 63 4 63
+128 0.000000 0.500000 0.025391 0.561523 26 63 4 63
+129 0.062500 0.500000 0.087891 0.561523 26 63 4 63
+130 0.125000 0.500000 0.150391 0.561523 26 63 4 63
+131 0.187500 0.500000 0.212891 0.561523 26 63 4 63
+132 0.250000 0.500000 0.275391 0.561523 26 63 4 63
+133 0.312500 0.500000 0.337891 0.561523 26 63 4 63
+134 0.375000 0.500000 0.400391 0.561523 26 63 4 63
+135 0.437500 0.500000 0.462891 0.561523 26 63 4 63
+136 0.500000 0.500000 0.525391 0.561523 26 63 4 63
+137 0.562500 0.500000 0.587891 0.561523 26 63 4 63
+138 0.625000 0.500000 0.650391 0.561523 26 63 4 63
+139 0.687500 0.500000 0.712891 0.561523 26 63 4 63
+140 0.750000 0.500000 0.775391 0.561523 26 63 4 63
+141 0.812500 0.500000 0.837891 0.561523 26 63 4 63
+142 0.875000 0.500000 0.900391 0.561523 26 63 4 63
+143 0.937500 0.500000 0.962891 0.561523 26 63 4 63
+144 0.000000 0.562500 0.025391 0.624023 26 63 4 63
+145 0.062500 0.562500 0.087891 0.624023 26 63 4 63
+146 0.125000 0.562500 0.150391 0.624023 26 63 4 63
+147 0.187500 0.562500 0.212891 0.624023 26 63 4 63
+148 0.250000 0.562500 0.275391 0.624023 26 63 4 63
+149 0.312500 0.562500 0.337891 0.624023 26 63 4 63
+150 0.375000 0.562500 0.400391 0.624023 26 63 4 63
+151 0.437500 0.562500 0.462891 0.624023 26 63 4 63
+152 0.500000 0.562500 0.525391 0.624023 26 63 4 63
+153 0.562500 0.562500 0.587891 0.624023 26 63 4 63
+154 0.625000 0.562500 0.650391 0.624023 26 63 4 63
+155 0.687500 0.562500 0.712891 0.624023 26 63 4 63
+156 0.750000 0.562500 0.775391 0.624023 26 63 4 63
+157 0.812500 0.562500 0.837891 0.624023 26 63 4 63
+158 0.875000 0.562500 0.900391 0.624023 26 63 4 63
+159 0.937500 0.562500 0.962891 0.624023 26 63 4 63
+160 0.000000 0.625000 0.000000 0.625000 0 0 0 0
+161 0.062500 0.625000 0.069336 0.670898 7 47 7 34
+162 0.125000 0.625000 0.154297 0.672852 30 49 3 41
+163 0.187500 0.625000 0.220703 0.672852 34 49 1 47
+164 0.250000 0.625000 0.277344 0.652344 28 28 4 36
+165 0.312500 0.625000 0.346680 0.669922 35 46 0 46
+166 0.375000 0.625000 0.379883 0.684570 5 61 6 47
+167 0.437500 0.625000 0.467773 0.684570 31 61 2 47
+168 0.500000 0.625000 0.517578 0.631836 18 7 1 46
+169 0.562500 0.625000 0.611328 0.673828 50 50 -1 48
+170 0.625000 0.625000 0.644531 0.653320 20 29 2 48
+171 0.687500 0.625000 0.710938 0.647461 24 23 2 29
+172 0.750000 0.625000 0.782227 0.643555 33 19 2 24
+173 0.812500 0.625000 0.829102 0.629883 17 5 2 20
+174 0.875000 0.625000 0.923828 0.673828 50 50 -1 48
+175 0.937500 0.625000 0.956055 0.629883 19 5 1 45
+176 0.000000 0.687500 0.020508 0.707031 21 20 9 44
+177 0.062500 0.687500 0.093750 0.727539 32 41 3 40
+178 0.125000 0.687500 0.144531 0.714844 20 28 1 46
+179 0.187500 0.687500 0.207031 0.715820 20 29 1 46
+180 0.250000 0.687500 0.264648 0.698242 15 11 5 48
+181 0.312500 0.687500 0.342773 0.735352 31 49 4 34
+182 0.375000 0.687500 0.405273 0.745117 31 59 3 47
+183 0.437500 0.687500 0.445312 0.695312 8 8 5 22
+184 0.500000 0.687500 0.516602 0.701172 17 14 2 0
+185 0.562500 0.687500 0.573242 0.714844 11 28 4 46
+186 0.625000 0.687500 0.643555 0.715820 19 29 2 48
+187 0.687500 0.687500 0.710938 0.709961 24 23 3 29
+188 0.750000 0.687500 0.800781 0.734375 52 48 3 46
+189 0.812500 0.687500 0.863281 0.734375 52 48 3 46
+190 0.875000 0.687500 0.927734 0.734375 54 48 1 46
+191 0.937500 0.687500 0.965820 0.734375 29 48 6 34
+192 0.000000 0.750000 0.040039 0.808594 41 60 1 60
+193 0.062500 0.750000 0.102539 0.808594 41 60 1 60
+194 0.125000 0.750000 0.165039 0.808594 41 60 1 60
+195 0.187500 0.750000 0.227539 0.805664 41 57 1 57
+196 0.250000 0.750000 0.290039 0.805664 41 57 1 57
+197 0.312500 0.750000 0.352539 0.809570 41 61 1 61
+198 0.375000 0.750000 0.434570 0.795898 61 47 0 47
+199 0.437500 0.750000 0.477539 0.810547 41 62 3 48
+200 0.500000 0.750000 0.534180 0.807617 35 59 5 59
+201 0.562500 0.750000 0.596680 0.808594 35 60 5 60
+202 0.625000 0.750000 0.659180 0.808594 35 60 5 60
+203 0.687500 0.750000 0.721680 0.805664 35 57 5 57
+204 0.750000 0.750000 0.763672 0.808594 14 60 0 60
+205 0.812500 0.750000 0.826172 0.808594 14 60 4 60
+206 0.875000 0.750000 0.894531 0.808594 20 60 -1 60
+207 0.937500 0.750000 0.955078 0.805664 18 57 0 57
+208 0.000000 0.812500 0.041016 0.858398 42 47 1 47
+209 0.062500 0.812500 0.099609 0.867188 38 56 4 56
+210 0.125000 0.812500 0.169922 0.872070 46 61 2 59
+211 0.187500 0.812500 0.232422 0.873047 46 62 2 60
+212 0.250000 0.812500 0.294922 0.873047 46 62 2 60
+213 0.312500 0.812500 0.357422 0.870117 46 59 2 57
+214 0.375000 0.812500 0.419922 0.870117 46 59 2 57
+215 0.437500 0.812500 0.462891 0.837891 26 26 6 28
+216 0.500000 0.812500 0.545898 0.862305 47 51 1 49
+217 0.562500 0.812500 0.598633 0.873047 37 62 5 60
+218 0.625000 0.812500 0.661133 0.873047 37 62 5 60
+219 0.687500 0.812500 0.723633 0.873047 37 62 5 60
+220 0.750000 0.812500 0.786133 0.870117 37 59 5 57
+221 0.812500 0.812500 0.854492 0.871094 43 60 0 60
+222 0.875000 0.812500 0.909180 0.858398 35 47 5 47
+223 0.937500 0.812500 0.969727 0.859375 33 48 4 47
+224 0.000000 0.875000 0.032227 0.922852 33 49 2 47
+225 0.062500 0.875000 0.094727 0.922852 33 49 2 47
+226 0.125000 0.875000 0.157227 0.922852 33 49 2 47
+227 0.187500 0.875000 0.219727 0.920898 33 47 2 45
+228 0.250000 0.875000 0.282227 0.919922 33 46 2 44
+229 0.312500 0.875000 0.344727 0.924805 33 51 2 49
+230 0.375000 0.875000 0.426758 0.911133 53 37 2 35
+231 0.437500 0.875000 0.466797 0.922852 30 49 1 35
+232 0.500000 0.875000 0.530273 0.922852 31 49 2 47
+233 0.562500 0.875000 0.592773 0.922852 31 49 2 47
+234 0.625000 0.875000 0.655273 0.922852 31 49 2 47
+235 0.687500 0.875000 0.717773 0.919922 31 46 2 44
+236 0.750000 0.875000 0.763672 0.920898 14 47 0 47
+237 0.812500 0.875000 0.826172 0.920898 14 47 4 47
+238 0.875000 0.875000 0.893555 0.920898 19 47 -1 47
+239 0.937500 0.875000 0.955078 0.917969 18 44 0 44
+240 0.000000 0.937500 0.030273 0.986328 31 50 2 48
+241 0.062500 0.937500 0.089844 0.980469 28 44 4 44
+242 0.125000 0.937500 0.155273 0.985352 31 49 2 47
+243 0.187500 0.937500 0.217773 0.985352 31 49 2 47
+244 0.250000 0.937500 0.280273 0.985352 31 49 2 47
+245 0.312500 0.937500 0.342773 0.983398 31 47 2 45
+246 0.375000 0.937500 0.405273 0.983398 31 47 2 45
+247 0.437500 0.937500 0.468750 0.967773 32 31 3 31
+248 0.500000 0.937500 0.532227 0.973633 33 37 1 35
+249 0.562500 0.937500 0.588867 0.985352 27 49 4 47
+250 0.625000 0.937500 0.651367 0.985352 27 49 4 47
+251 0.687500 0.937500 0.713867 0.985352 27 49 4 47
+252 0.750000 0.937500 0.776367 0.983398 27 47 4 45
+253 0.812500 0.937500 0.841797 0.997070 30 61 1 47
+254 0.875000 0.937500 0.905273 0.996094 31 60 3 46
+255 0.937500 0.937500 0.966797 0.995117 30 59 1 45
Added: Mercury2/Themes/default/Font/FreeSans.png
===================================================================
(Binary files differ)
Property changes on: Mercury2/Themes/default/Font/FreeSans.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: Mercury2/Themes/default/Font/FreeSansBold.hgfont
===================================================================
--- Mercury2/Themes/default/Font/FreeSansBold.hgfont (rev 0)
+++ Mercury2/Themes/default/Font/FreeSansBold.hgfont 2009-09-28 22:09:14 UTC (rev 542)
@@ -0,0 +1,258 @@
+FONT:FreeSansBold.png
+64 4.000000 15.000000 80.000000
+0 0.000000 0.000000 0.016602 0.041992 17 43 2 43
+1 0.062500 0.000000 0.079102 0.041992 17 43 2 43
+2 0.125000 0.000000 0.141602 0.041992 17 43 2 43
+3 0.187500 0.000000 0.204102 0.041992 17 43 2 43
+4 0.250000 0.000000 0.266602 0.041992 17 43 2 43
+5 0.312500 0.000000 0.329102 0.041992 17 43 2 43
+6 0.375000 0.000000 0.391602 0.041992 17 43 2 43
+7 0.437500 0.000000 0.454102 0.041992 17 43 2 43
+8 0.500000 0.000000 0.516602 0.041992 17 43 2 43
+9 0.562500 0.000000 0.579102 0.041992 17 43 2 43
+10 0.625000 0.000000 0.641602 0.041992 17 43 2 43
+11 0.687500 0.000000 0.704102 0.041992 17 43 2 43
+12 0.750000 0.000000 0.766602 0.041992 17 43 2 43
+13 0.812500 0.000000 0.829102 0.041992 17 43 2 43
+14 0.875000 0.000000 0.891602 0.041992 17 43 2 43
+15 0.937500 0.000000 0.954102 0.041992 17 43 2 43
+16 0.000000 0.062500 0.016602 0.104492 17 43 2 43
+17 0.062500 0.062500 0.079102 0.104492 17 43 2 43
+18 0.125000 0.062500 0.141602 0.104492 17 43 2 43
+19 0.187500 0.062500 0.204102 0.104492 17 43 2 43
+20 0.250000 0.062500 0.266602 0.104492 17 43 2 43
+21 0.312500 0.062500 0.329102 0.104492 17 43 2 43
+22 0.375000 0.062500 0.391602 0.104492 17 43 2 43
+23 0.437500 0.062500 0.454102 0.104492 17 43 2 43
+24 0.500000 0.062500 0.516602 0.104492 17 43 2 43
+25 0.562500 0.062500 0.579102 0.104492 17 43 2 43
+26 0.625000 0.062500 0.641602 0.104492 17 43 2 43
+27 0.687500 0.062500 0.704102 0.104492 17 43 2 43
+28 0.750000 0.062500 0.766602 0.104492 17 43 2 43
+29 0.812500 0.062500 0.829102 0.104492 17 43 2 43
+30 0.875000 0.062500 0.891602 0.104492 17 43 2 43
+31 0.937500 0.062500 0.954102 0.104492 17 43 2 43
+32 0.000000 0.125000 0.000000 0.125000 0 0 0 0
+33 0.062500 0.125000 0.072266 0.170898 10 47 7 47
+34 0.125000 0.125000 0.149414 0.141602 25 17 3 47
+35 0.187500 0.125000 0.222656 0.171875 36 48 0 45
+36 0.250000 0.125000 0.282227 0.181641 33 58 1 49
+37 0.312500 0.125000 0.366211 0.171875 55 48 1 46
+38 0.375000 0.125000 0.416016 0.172852 42 49 3 47
+39 0.437500 0.125000 0.447266 0.141602 10 17 3 47
+40 0.500000 0.125000 0.517578 0.183594 18 60 2 47
+41 0.562500 0.125000 0.580078 0.183594 18 60 1 47
+42 0.625000 0.125000 0.646484 0.145508 22 21 1 47
+43 0.687500 0.125000 0.718750 0.156250 32 32 3 31
+44 0.750000 0.125000 0.759766 0.146484 10 22 4 10
+45 0.812500 0.125000 0.831055 0.133789 19 9 1 22
+46 0.875000 0.125000 0.884766 0.134766 10 10 4 10
+47 0.937500 0.125000 0.955078 0.170898 18 47 0 46
+48 0.000000 0.187500 0.032227 0.235352 33 49 1 47
+49 0.062500 0.187500 0.083008 0.232422 21 46 4 46
+50 0.125000 0.187500 0.156250 0.233398 32 47 1 47
+51 0.187500 0.187500 0.219727 0.235352 33 49 1 47
+52 0.250000 0.187500 0.282227 0.232422 33 46 1 46
+53 0.312500 0.187500 0.344727 0.234375 33 48 1 46
+54 0.375000 0.187500 0.406250 0.235352 32 49 2 47
+55 0.437500 0.187500 0.469727 0.232422 33 46 1 46
+56 0.500000 0.187500 0.532227 0.235352 33 49 1 47
+57 0.562500 0.187500 0.594727 0.235352 33 49 1 47
+58 0.625000 0.187500 0.634766 0.220703 10 34 7 34
+59 0.687500 0.187500 0.697266 0.232422 10 46 7 34
+60 0.750000 0.187500 0.781250 0.218750 32 32 2 31
+61 0.812500 0.187500 0.843750 0.210938 32 24 3 27
+62 0.875000 0.187500 0.906250 0.218750 32 32 2 31
+63 0.937500 0.187500 0.968750 0.234375 32 48 4 48
+64 0.000000 0.250000 0.058594 0.305664 60 57 1 48
+65 0.062500 0.250000 0.105469 0.295898 44 47 1 47
+66 0.125000 0.250000 0.162109 0.295898 38 47 5 47
+67 0.187500 0.250000 0.228516 0.298828 42 50 2 48
+68 0.250000 0.250000 0.289062 0.295898 40 47 4 47
+69 0.312500 0.250000 0.346680 0.295898 35 47 5 47
+70 0.375000 0.250000 0.408203 0.295898 34 47 4 47
+71 0.437500 0.250000 0.480469 0.298828 44 50 2 48
+72 0.500000 0.250000 0.538086 0.295898 39 47 4 47
+73 0.562500 0.250000 0.572266 0.295898 10 47 4 47
+74 0.625000 0.250000 0.655273 0.297852 31 49 1 47
+75 0.687500 0.250000 0.728516 0.295898 42 47 4 47
+76 0.750000 0.250000 0.782227 0.295898 33 47 5 47
+77 0.812500 0.250000 0.857422 0.295898 46 47 4 47
+78 0.875000 0.250000 0.913086 0.295898 39 47 4 47
+79 0.937500 0.250000 0.982422 0.298828 46 50 2 48
+80 0.000000 0.312500 0.036133 0.358398 37 47 4 47
+81 0.062500 0.312500 0.107422 0.363281 46 52 2 48
+82 0.125000 0.312500 0.163086 0.358398 39 47 5 47
+83 0.187500 0.312500 0.225586 0.361328 39 50 2 48
+84 0.250000 0.312500 0.288086 0.358398 39 47 0 47
+85 0.312500 0.312500 0.349609 0.360352 38 49 4 47
+86 0.375000 0.312500 0.415039 0.358398 41 47 1 47
+87 0.437500 0.312500 0.496094 0.358398 60 47 0 47
+88 0.500000 0.312500 0.540039 0.358398 41 47 1 47
+89 0.562500 0.312500 0.602539 0.358398 41 47 1 47
+90 0.625000 0.312500 0.660156 0.358398 36 47 1 47
+91 0.687500 0.312500 0.703125 0.371094 16 60 4 47
+92 0.750000 0.312500 0.769531 0.358398 20 47 -1 46
+93 0.812500 0.312500 0.828125 0.371094 16 60 1 47
+94 0.875000 0.312500 0.905273 0.339844 31 28 3 45
+95 0.937500 0.312500 0.975586 0.318359 39 6 -2 -7
+96 0.000000 0.375000 0.012695 0.385742 13 11 1 49
+97 0.062500 0.375000 0.094727 0.412109 33 38 1 36
+98 0.125000 0.375000 0.158203 0.422852 34 49 3 47
+99 0.187500 0.375000 0.218750 0.412109 32 38 2 36
+100 0.250000 0.375000 0.283203 0.422852 34 49 1 47
+101 0.312500 0.375000 0.344727 0.412109 33 38 1 36
+102 0.375000 0.375000 0.395508 0.420898 21 47 0 47
+103 0.437500 0.375000 0.469727 0.423828 33 50 2 36
+104 0.500000 0.375000 0.530273 0.420898 31 47 4 47
+105 0.562500 0.375000 0.572266 0.420898 10 47 4 47
+106 0.625000 0.375000 0.638672 0.434570 14 61 0 47
+107 0.687500 0.375000 0.719727 0.420898 33 47 3 47
+108 0.750000 0.375000 0.759766 0.420898 10 47 4 47
+109 0.812500 0.375000 0.861328 0.410156 50 36 3 36
+110 0.875000 0.375000 0.905273 0.410156 31 36 4 36
+111 0.937500 0.375000 0.971680 0.412109 35 38 2 36
+112 0.000000 0.437500 0.033203 0.486328 34 50 3 36
+113 0.062500 0.437500 0.095703 0.486328 34 50 1 36
+114 0.125000 0.437500 0.144531 0.472656 20 36 4 36
+115 0.187500 0.437500 0.219727 0.474609 33 38 1 36
+116 0.250000 0.437500 0.269531 0.482422 20 46 0 44
+117 0.312500 0.437500 0.343750 0.473633 32 37 3 35
+118 0.375000 0.437500 0.409180 0.471680 35 35 0 35
+119 0.437500 0.437500 0.486328 0.471680 50 35 0 35
+120 0.500000 0.437500 0.533203 0.471680 34 35 1 35
+121 0.562500 0.437500 0.596680 0.486328 35 50 0 35
+122 0.625000 0.437500 0.653320 0.471680 29 35 1 35
+123 0.687500 0.437500 0.706055 0.496094 19 60 2 47
+124 0.750000 0.437500 0.755859 0.496094 6 60 6 47
+125 0.812500 0.437500 0.831055 0.496094 19 60 4 47
+126 0.875000 0.437500 0.905273 0.449219 31 12 3 21
+127 0.937500 0.437500 0.954102 0.479492 17 43 2 43
+128 0.000000 0.500000 0.016602 0.541992 17 43 2 43
+129 0.062500 0.500000 0.079102 0.541992 17 43 2 43
+130 0.125000 0.500000 0.141602 0.541992 17 43 2 43
+131 0.187500 0.500000 0.204102 0.541992 17 43 2 43
+132 0.250000 0.500000 0.266602 0.541992 17 43 2 43
+133 0.312500 0.500000 0.329102 0.541992 17 43 2 43
+134 0.375000 0.500000 0.391602 0.541992 17 43 2 43
+135 0.437500 0.500000 0.454102 0.541992 17 43 2 43
+136 0.500000 0.500000 0.516602 0.541992 17 43 2 43
+137 0.562500 0.500000 0.579102 0.541992 17 43 2 43
+138 0.625000 0.500000 0.641602 0.541992 17 43 2 43
+139 0.687500 0.500000 0.704102 0.541992 17 43 2 43
+140 0.750000 0.500000 0.766602 0.541992 17 43 2 43
+141 0.812500 0.500000 0.829102 0.541992 17 43 2 43
+142 0.875000 0.500000 0.891602 0.541992 17 43 2 43
+143 0.937500 0.500000 0.954102 0.541992 17 43 2 43
+144 0.000000 0.562500 0.016602 0.604492 17 43 2 43
+145 0.062500 0.562500 0.079102 0.604492 17 43 2 43
+146 0.125000 0.562500 0.141602 0.604492 17 43 2 43
+147 0.187500 0.562500 0.204102 0.604492 17 43 2 43
+148 0.250000 0.562500 0.266602 0.604492 17 43 2 43
+149 0.312500 0.562500 0.329102 0.604492 17 43 2 43
+150 0.375000 0.562500 0.391602 0.604492 17 43 2 43
+151 0.437500 0.562500 0.454102 0.604492 17 43 2 43
+152 0.500000 0.562500 0.516602 0.604492 17 43 2 43
+153 0.562500 0.562500 0.579102 0.604492 17 43 2 43
+154 0.625000 0.562500 0.641602 0.604492 17 43 2 43
+155 0.687500 0.562500 0.704102 0.604492 17 43 2 43
+156 0.750000 0.562500 0.766602 0.604492 17 43 2 43
+157 0.812500 0.562500 0.829102 0.604492 17 43 2 43
+158 0.875000 0.562500 0.891602 0.604492 17 43 2 43
+159 0.937500 0.562500 0.954102 0.604492 17 43 2 43
+160 0.000000 0.625000 0.000000 0.625000 0 0 0 0
+161 0.062500 0.625000 0.072266 0.670898 10 47 4 35
+162 0.125000 0.625000 0.156250 0.672852 32 49 2 41
+163 0.187500 0.625000 0.220703 0.671875 34 48 1 46
+164 0.250000 0.625000 0.282227 0.657227 33 33 1 39
+165 0.312500 0.625000 0.347656 0.669922 36 46 0 46
+166 0.375000 0.625000 0.380859 0.683594 6 60 6 47
+167 0.437500 0.625000 0.468750 0.683594 32 60 2 47
+168 0.500000 0.625000 0.519531 0.633789 20 9 1 48
+169 0.562500 0.625000 0.611328 0.673828 50 50 -1 48
+170 0.625000 0.625000 0.645508 0.655273 21 31 1 47
+171 0.687500 0.625000 0.711914 0.651367 25 27 5 31
+172 0.750000 0.625000 0.782227 0.643555 33 19 2 24
+173 0.812500 0.625000 0.831055 0.633789 19 9 1 22
+174 0.875000 0.625000 0.923828 0.673828 50 50 -1 48
+175 0.937500 0.625000 0.957031 0.631836 20 7 1 47
+176 0.000000 0.687500 0.020508 0.707031 21 20 9 44
+177 0.062500 0.687500 0.092773 0.727539 31 41 3 39
+178 0.125000 0.687500 0.144531 0.714844 20 28 1 46
+179 0.187500 0.687500 0.208984 0.715820 22 29 0 46
+180 0.250000 0.687500 0.263672 0.698242 14 11 7 49
+181 0.312500 0.687500 0.345703 0.736328 34 50 3 35
+182 0.375000 0.687500 0.407227 0.746094 33 60 1 47
+183 0.437500 0.687500 0.446289 0.696289 9 9 4 19
+184 0.500000 0.687500 0.517578 0.702148 18 15 1 0
+185 0.562500 0.687500 0.576172 0.714844 14 28 2 46
+186 0.625000 0.687500 0.645508 0.717773 21 31 1 47
+187 0.687500 0.687500 0.711914 0.713867 25 27 5 31
+188 0.750000 0.687500 0.801758 0.734375 53 48 2 46
+189 0.812500 0.687500 0.864258 0.734375 53 48 2 46
+190 0.875000 0.687500 0.928711 0.734375 55 48 0 46
+191 0.937500 0.687500 0.968750 0.735352 32 49 3 35
+192 0.000000 0.750000 0.042969 0.808594 44 60 1 60
+193 0.062500 0.750000 0.105469 0.808594 44 60 1 60
+194 0.125000 0.750000 0.167969 0.808594 44 60 1 60
+195 0.187500 0.750000 0.230469 0.808594 44 60 1 60
+196 0.250000 0.750000 0.292969 0.807617 44 59 1 59
+197 0.312500 0.750000 0.355469 0.809570 44 61 1 61
+198 0.375000 0.750000 0.435547 0.795898 62 47 0 47
+199 0.437500 0.750000 0.478516 0.811523 42 63 2 48
+200 0.500000 0.750000 0.534180 0.808594 35 60 5 60
+201 0.562500 0.750000 0.596680 0.808594 35 60 5 60
+202 0.625000 0.750000 0.659180 0.808594 35 60 5 60
+203 0.687500 0.750000 0.721680 0.807617 35 59 5 59
+204 0.750000 0.750000 0.764648 0.808594 15 60 -1 60
+205 0.812500 0.750000 0.827148 0.808594 15 60 4 60
+206 0.875000 0.750000 0.896484 0.808594 22 60 -2 60
+207 0.937500 0.750000 0.957031 0.807617 20 59 -1 59
+208 0.000000 0.812500 0.042969 0.858398 44 47 0 47
+209 0.062500 0.812500 0.100586 0.871094 39 60 4 60
+210 0.125000 0.812500 0.169922 0.873047 46 62 2 60
+211 0.187500 0.812500 0.232422 0.873047 46 62 2 60
+212 0.250000 0.812500 0.294922 0.873047 46 62 2 60
+213 0.312500 0.812500 0.357422 0.873047 46 62 2 60
+214 0.375000 0.812500 0.419922 0.873047 46 62 2 60
+215 0.437500 0.812500 0.464844 0.839844 28 28 5 29
+216 0.500000 0.812500 0.546875 0.862305 48 51 1 48
+217 0.562500 0.812500 0.599609 0.873047 38 62 4 60
+218 0.625000 0.812500 0.662109 0.873047 38 62 4 60
+219 0.687500 0.812500 0.724609 0.873047 38 62 4 60
+220 0.750000 0.812500 0.787109 0.872070 38 61 4 59
+221 0.812500 0.812500 0.852539 0.871094 41 60 1 60
+222 0.875000 0.812500 0.911133 0.858398 37 47 4 47
+223 0.937500 0.812500 0.969727 0.860352 33 49 4 47
+224 0.000000 0.875000 0.032227 0.924805 33 51 1 49
+225 0.062500 0.875000 0.094727 0.924805 33 51 1 49
+226 0.125000 0.875000 0.157227 0.924805 33 51 1 49
+227 0.187500 0.875000 0.219727 0.923828 33 50 1 48
+228 0.250000 0.875000 0.282227 0.923828 33 50 1 48
+229 0.312500 0.875000 0.344727 0.925781 33 52 1 50
+230 0.375000 0.875000 0.427734 0.912109 54 38 1 36
+231 0.437500 0.875000 0.468750 0.924805 32 51 2 36
+232 0.500000 0.875000 0.532227 0.924805 33 51 1 49
+233 0.562500 0.875000 0.594727 0.924805 33 51 1 49
+234 0.625000 0.875000 0.657227 0.924805 33 51 1 49
+235 0.687500 0.875000 0.719727 0.923828 33 50 1 48
+236 0.750000 0.875000 0.764648 0.922852 15 49 -1 49
+237 0.812500 0.875000 0.827148 0.922852 15 49 4 49
+238 0.875000 0.875000 0.896484 0.922852 22 49 -2 49
+239 0.937500 0.875000 0.957031 0.921875 20 48 -1 48
+240 0.000000 0.937500 0.034180 0.986328 35 50 2 48
+241 0.062500 0.937500 0.092773 0.984375 31 48 4 48
+242 0.125000 0.937500 0.159180 0.987305 35 51 2 49
+243 0.187500 0.937500 0.221680 0.987305 35 51 2 49
+244 0.250000 0.937500 0.284180 0.987305 35 51 2 49
+245 0.312500 0.937500 0.346680 0.986328 35 50 2 48
+246 0.375000 0.937500 0.409180 0.986328 35 50 2 48
+247 0.437500 0.937500 0.468750 0.968750 32 32 3 31
+248 0.500000 0.937500 0.538086 0.975586 39 39 0 36
+249 0.562500 0.937500 0.593750 0.987305 32 51 3 49
+250 0.625000 0.937500 0.656250 0.987305 32 51 3 49
+251 0.687500 0.937500 0.718750 0.987305 32 51 3 49
+252 0.750000 0.937500 0.781250 0.986328 32 50 3 48
+253 0.812500 0.937500 0.846680 1.000000 35 64 0 49
+254 0.875000 0.937500 0.908203 0.997070 34 61 3 47
+255 0.937500 0.937500 0.971680 0.999023 35 63 0 48
Added: Mercury2/Themes/default/Font/FreeSansBold.png
===================================================================
(Binary files differ)
Property changes on: Mercury2/Themes/default/Font/FreeSansBold.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Deleted: Mercury2/Themes/default/Font/testfont.hgfont
===================================================================
--- Mercury2/Themes/default/Font/testfont.hgfont 2009-09-26 18:09:25 UTC (rev 541)
+++ Mercury2/Themes/default/Font/testfont.hgfont 2009-09-28 22:09:14 UTC (rev 542)
@@ -1,258 +0,0 @@
-FONT:testfont.png
-64 4.000000 15.000000 80.000000
-0 0.000000 0.000000 0.031250 0.040039 32 41 8 41
-1 0.062500 0.000000 0.093750 0.040039 32 41 8 41
-2 0.125000 0.000000 0.156250 0.040039 32 41 8 41
-3 0.187500 0.000000 0.218750 0.040039 32 41 8 41
-4 0.250000 0.000000 0.281250 0.040039 32 41 8 41
-5 0.312500 0.000000 0.343750 0.040039 32 41 8 41
-6 0.375000 0.000000 0.406250 0.040039 32 41 8 41
-7 0.437500 0.000000 0.468750 0.040039 32 41 8 41
-8 0.500000 0.000000 0.531250 0.040039 32 41 8 41
-9 0.562500 0.000000 0.593750 0.040039 32 41 8 41
-10 0.625000 0.000000 0.656250 0.040039 32 41 8 41
-11 0.687500 0.000000 0.718750 0.040039 32 41 8 41
-12 0.750000 0.000000 0.781250 0.040039 32 41 8 41
-13 0.812500 0.000000 0.843750 0.040039 32 41 8 41
-14 0.875000 0.000000 0.906250 0.040039 32 41 8 41
-15 0.937500 0.000000 0.968750 0.040039 32 41 8 41
-16 0.000000 0.062500 0.031250 0.102539 32 41 8 41
-17 0.062500 0.062500 0.093750 0.102539 32 41 8 41
-18 0.125000 0.062500 0.156250 0.102539 32 41 8 41
-19 0.187500 0.062500 0.218750 0.102539 32 41 8 41
-20 0.250000 0.062500 0.281250 0.102539 32 41 8 41
-21 0.312500 0.062500 0.343750 0.102539 32 41 8 41
-22 0.375000 0.062500 0.406250 0.102539 32 41 8 41
-23 0.437500 0.062500 0.468750 0.102539 32 41 8 41
-24 0.500000 0.062500 0.531250 0.102539 32 41 8 41
-25 0.562500 0.062500 0.593750 0.102539 32 41 8 41
-26 0.625000 0.062500 0.656250 0.102539 32 41 8 41
-27 0.687500 0.062500 0.718750 0.102539 32 41 8 41
-28 0.750000 0.062500 0.781250 0.102539 32 41 8 41
-29 0.812500 0.062500 0.843750 0.102539 32 41 8 41
-30 0.875000 0.062500 0.906250 0.102539 32 41 8 41
-31 0.937500 0.062500 0.968750 0.102539 32 41 8 41
-32 0.000000 0.125000 0.000000 0.125000 0 0 0 0
-33 0.062500 0.125000 0.068359 0.169922 6 46 7 46
-34 0.125000 0.125000 0.141602 0.140625 17 16 3 46
-35 0.187500 0.125000 0.221680 0.169922 35 ...
[truncated message content] |
|
From: <cn...@us...> - 2009-09-26 18:09:33
|
Revision: 541
http://hgengine.svn.sourceforge.net/hgengine/?rev=541&view=rev
Author: cnlohr
Date: 2009-09-26 18:09:25 +0000 (Sat, 26 Sep 2009)
Log Message:
-----------
make use of new CTA + Priority Queue
Modified Paths:
--------------
Mercury2/src/MercuryMessageManager.cpp
Mercury2/src/MercuryMessageManager.h
Mercury2/src/RenderGraph.cpp
Mercury2/src/RenderGraph.h
Modified: Mercury2/src/MercuryMessageManager.cpp
===================================================================
--- Mercury2/src/MercuryMessageManager.cpp 2009-09-26 18:08:19 UTC (rev 540)
+++ Mercury2/src/MercuryMessageManager.cpp 2009-09-26 18:09:25 UTC (rev 541)
@@ -1,30 +1,39 @@
#include <MercuryMessageManager.h>
+#include <MercuryCTA.h>
+MercuryCTA HolderAllocator( sizeof(MessageHolder), 8 );
+
+
MessageHolder::MessageHolder()
- :data(NULL)
+ :data(NULL),when(0)
{
}
+bool MessageHolder::Compare( void * left, void * right )
+{
+ return (((MessageHolder*)left)->when) < (((MessageHolder*)right)->when);
+}
+
void MercuryMessageManager::PostMessage(const MString& message, MessageData* data, float delay)
{
- MessageHolder m;
- m.message = message;
- m.data = data;
- uint64_t fireTime = m_currTime + uint64_t(delay*1000000);
- m_messageQueue.Insert(fireTime, m);
+ MessageHolder * m = new(HolderAllocator.Malloc()) MessageHolder();
+ m->message = message;
+ m->data = data;
+ m->when = m_currTime + uint64_t(delay*1000000);
+ m_messageQueue.Push( m );
}
void MercuryMessageManager::PumpMessages(const uint64_t& currTime)
{
m_currTime = currTime;
- while ( !m_messageQueue.empty() )
+ while ( !m_messageQueue.Empty() )
{
- if ( m_messageQueue.PeekNextPriority() > m_currTime ) return;
+ if ( ((MessageHolder *)m_messageQueue.Peek())->when > m_currTime ) return;
- MessageHolder& message = m_messageQueue.GetNext();
- FireOffMessage( message );
- SAFE_DELETE( message.data );
- m_messageQueue.PopNext();
+ MessageHolder * message = (MessageHolder *)m_messageQueue.Pop();
+ FireOffMessage( *message );
+ SAFE_DELETE( message->data );
+ HolderAllocator.Free(message);
}
}
@@ -33,15 +42,15 @@
m_messageRecipients[message].push_back(ptr);
}
-void MercuryMessageManager::FireOffMessage(const MessageHolder& message)
+void MercuryMessageManager::FireOffMessage( const MessageHolder & message )
{
- std::map< MString, std::list< MessageHandler* > >::iterator i = m_messageRecipients.find(message.message);
-
- if ( i != m_messageRecipients.end() )
+// std::map< MString, std::list< MessageHandler* > >::iterator i = m_messageRecipients.find(message.message);
+ std::list< MessageHandler* > * ref = m_messageRecipients.get( message.message );
+ if ( ref )
{
- std::list< MessageHandler* >::iterator recipients = i->second.begin();
+ std::list< MessageHandler* >::iterator recipients = ref->begin();
- for (; recipients != i->second.end(); ++recipients)
+ for (; recipients != ref->end(); ++recipients)
(*recipients)->HandleMessage(message.message, message.data);
}
}
Modified: Mercury2/src/MercuryMessageManager.h
===================================================================
--- Mercury2/src/MercuryMessageManager.h 2009-09-26 18:08:19 UTC (rev 540)
+++ Mercury2/src/MercuryMessageManager.h 2009-09-26 18:09:25 UTC (rev 541)
@@ -1,20 +1,25 @@
#ifndef MERCURYMESSAGEMANAGER_H
#define MERCURYMESSAGEMANAGER_H
+
+#include <PriorityQueue.h>
#include <Callback.h>
#include <MessageHandler.h>
-#include <map>
-#include <PriorityQueue.h>
+#include <MercuryHash.h>
+#include <list>
#include <MercuryString.h>
#include <MercuryUtil.h>
#include <Mint.h>
+#include <MAutoPtr.h>
-class MessageHolder
+class MessageHolder : public RefBase
{
public:
MessageHolder();
MString message;
MessageData* data;
+ uint64_t when;
+ static bool Compare( void * left, void * right );
};
/* This message system uses absolute integer time values to fire off events.
@@ -25,18 +30,19 @@
class MercuryMessageManager
{
public:
+ MercuryMessageManager() : m_messageQueue( MessageHolder::Compare ) { }
void PostMessage(const MString& message, MessageData* data, float delay);
void PumpMessages(const uint64_t& currTime);
void RegisterForMessage(const MString& message, MessageHandler* ptr);
static MercuryMessageManager& GetInstance();
private:
- void FireOffMessage(const MessageHolder& message);
+ void FireOffMessage( const MessageHolder & message );
- PriorityQueue<uint64_t, MessageHolder> m_messageQueue;
+ PriorityQueue m_messageQueue;
uint64_t m_currTime; //microseconds
- std::map< MString, std::list< MessageHandler* > > m_messageRecipients;
+ MHash< std::list< MessageHandler* > > m_messageRecipients;
};
static InstanceCounter<MercuryMessageManager> MMcounter("MessageManager");
Modified: Mercury2/src/RenderGraph.cpp
===================================================================
--- Mercury2/src/RenderGraph.cpp 2009-09-26 18:08:19 UTC (rev 540)
+++ Mercury2/src/RenderGraph.cpp 2009-09-26 18:09:25 UTC (rev 541)
@@ -1,14 +1,18 @@
#include <MercuryMatrix.h>
#include <RenderGraph.h>
-
+#include <MercuryCTA.h>
#include <GLHeaders.h>
#include <Shader.h>
#include <Viewport.h>
#include <Texture.h>
+MercuryCTA AlphaHolderAllocator( sizeof(StoreRenderState), 8 );
+
RenderGraph* CURRENTRENDERGRAPH = NULL;
+
+
void RenderGraphEntry::Render()
{
MercuryMatrix modelView;
@@ -88,37 +92,40 @@
void RenderGraph::AddAlphaNode( MercuryNode* node )
{
- StoreRenderState srs;
- srs.Save();
- srs.Matrix = node->GetGlobalMatrix();
- srs.Node = node;
-
- MercuryVertex p = srs.Matrix * MercuryVertex(0,0,0,1);
+ StoreRenderState * srs = new(AlphaHolderAllocator.Malloc()) StoreRenderState();
+ srs->Save();
+ srs->Matrix = node->GetGlobalMatrix();
+ MercuryVertex p = srs->Matrix * MercuryVertex(0,0,0,1);
+ srs->Node = node;
//order from back to front (ensure furthest has lowest number and is first)
- float length = (p - EYE).Length() * -1;
- m_alphaNodesQueue.Insert(length, srs);
+ srs->fDistance = (p - EYE).Length() * -1;
+
+ //This makes the insertion linear time. We fix this up before rendering.
+ m_alphaNodesQueue.PushRaw( srs );
}
void RenderGraph::RenderAlpha()
{
- while ( !m_alphaNodesQueue.empty() )
+ m_alphaNodesQueue.Fixup();
+
+ while ( !m_alphaNodesQueue.Empty() )
{
- StoreRenderState& srs = m_alphaNodesQueue.GetNext();
-
- std::list< MercuryAsset* >::iterator i = srs.Assets.begin();
- for (;i != srs.Assets.end(); ++i)
+ StoreRenderState * srs = (StoreRenderState *)m_alphaNodesQueue.Pop();
+
+ std::list< MercuryAsset* >::iterator i = srs->Assets.begin();
+ for (;i != srs->Assets.end(); ++i)
{
- (*i)->PreRender(srs.Node);
- (*i)->Render(srs.Node);
+ (*i)->PreRender(srs->Node);
+ (*i)->Render(srs->Node);
}
- srs.Node->RecursiveRender();
+ srs->Node->RecursiveRender();
- for (i = srs.Assets.begin();i != srs.Assets.end(); ++i)
- (*i)->PostRender(srs.Node);
+ for (i = srs->Assets.begin();i != srs->Assets.end(); ++i)
+ (*i)->PostRender(srs->Node);
- m_alphaNodesQueue.PopNext();
+ AlphaHolderAllocator.Free( srs );
}
}
@@ -136,11 +143,17 @@
m_lights.clear();
}
+
StoreRenderState::StoreRenderState()
:Node(NULL)
{
}
+bool StoreRenderState::Compare( void * Left, void * Right )
+{
+ return ((StoreRenderState*)Left)->fDistance < ((StoreRenderState*)Right)->fDistance;
+}
+
void StoreRenderState::Save()
{
//get assets for current textures
Modified: Mercury2/src/RenderGraph.h
===================================================================
--- Mercury2/src/RenderGraph.h 2009-09-26 18:08:19 UTC (rev 540)
+++ Mercury2/src/RenderGraph.h 2009-09-26 18:09:25 UTC (rev 541)
@@ -39,6 +39,8 @@
void Save();
MercuryNode* Node;
MercuryMatrix Matrix;
+ float fDistance;
+ static bool Compare( void * Left, void * Right );
// private:
std::list< MercuryAsset* > Assets;
};
@@ -46,6 +48,7 @@
class RenderGraph
{
public:
+ RenderGraph() : m_alphaNodesQueue( &StoreRenderState::Compare ) { }
void Build( MercuryNode* node );
inline void Render() { m_root.Render(); }
@@ -59,7 +62,7 @@
RenderGraphEntry m_root;
//nodes that use alpha, ordered from farthest to nearest from the camera
- PriorityQueue<float, StoreRenderState > m_alphaNodesQueue;
+ PriorityQueue m_alphaNodesQueue;
std::list< Light* > m_lights;
};
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2009-09-26 18:08:29
|
Revision: 540
http://hgengine.svn.sourceforge.net/hgengine/?rev=540&view=rev
Author: cnlohr
Date: 2009-09-26 18:08:19 +0000 (Sat, 26 Sep 2009)
Log Message:
-----------
new priority queue (more lean-and-mean)
Modified Paths:
--------------
Mercury2/src/PriorityQueue.h
Modified: Mercury2/src/PriorityQueue.h
===================================================================
--- Mercury2/src/PriorityQueue.h 2009-09-26 18:07:23 UTC (rev 539)
+++ Mercury2/src/PriorityQueue.h 2009-09-26 18:08:19 UTC (rev 540)
@@ -1,38 +1,177 @@
#ifndef PRIORITYQUEUE_H
#define PRIORITYQUEUE_H
-#include <list>
-#include <map>
+#include <stdlib.h>
-template<typename T1, typename T2>
+#define DEFAULTHEAPSIZE 8
+
class PriorityQueue
{
- public:
- void Insert(const T1& priority, const T2& x)
+public:
+ PriorityQueue( bool (*LessThanFn)( void*, void* ) )
+ {
+ Size = 0;
+ Comp = LessThanFn;
+ Reserved = DEFAULTHEAPSIZE;
+ Heap = (void**)malloc( sizeof( void* ) * Reserved );
+ }
+
+ ~PriorityQueue()
+ {
+ free( Heap );
+ }
+
+ void PushRaw( void * ptr )
+ {
+ if( Size >= Reserved )
{
- m_queue[priority].push_back(x);
+ Reserved *= 2;
+ Heap = (void**)realloc( Heap, sizeof( void* ) * Reserved );
}
-
- bool empty() { return m_queue.empty(); }
-
- const T1& PeekNextPriority() { return m_queue.begin()->first; }
- T2& GetNext() { return m_queue.begin()->second.front(); }
- void PopNext()
+ Heap[Size] = ptr;
+ Size++;
+ }
+
+ void Push( void * ptr )
+ {
+ unsigned i;
+ PushRaw( ptr );
+
+ //Percolate up
+ i = Size - 1;
+ while( i )
{
- m_queue.begin()->second.pop_front();
-
- if ( m_queue.begin()->second.empty() )
- m_queue.erase( m_queue.begin() );
+ int parent;
+ void * tmp;
+ parent = (i - 1)/2;
+
+ if( Comp( Heap[parent], Heap[i] ) )
+ break;
+
+ tmp = Heap[parent];
+ Heap[parent] = Heap[i];
+ Heap[i] = tmp;
+
+ i = parent;
}
-
- private:
- std::map< T1, std::list<T2> > m_queue;
+ }
+
+ void Fixup()
+ {
+ int comps = 0;
+ int swaps = 0;
+ if( Size < 2 )
+ return;
+
+ unsigned i;
+
+ //As strange as it is, doing it in this order is linear time
+ //I don't fully understand the math behind it, but
+ //doing it in reverse order results in more swaps and comps.
+ //Comps should be close to but less than Size*2
+ //Swaps should be close to but less than Size
+ for( i = Size-1; i > 0; i-- )
+ {
+ void * swap;
+ int ths = i;
+ unsigned parent = (ths-1)/2;
+
+
+ comps++;
+ while( ths && Comp( Heap[ths], Heap[parent] ) )
+ {
+ swaps++; comps++;
+ swap = Heap[parent];
+ Heap[parent] = Heap[ths];
+ Heap[ths] = swap;
+
+ ths = parent;
+ parent = (ths-1)/2;
+ }
+ }
+ }
+
+ void * Front( )
+ {
+ if( Size )
+ return Heap[0];
+ else
+ return 0;
+ }
+
+ void * Peek( )
+ {
+ return Size?Heap[0]:0;
+ }
+
+ void * Pop( )
+ {
+ void * ret;
+ int i;
+ if( !Size )
+ return 0;
+ Size--;
+ if( !Size )
+ return Heap[0];
+
+ ret = Heap[0];
+
+ Heap[0] = Heap[Size];
+
+ i = 0;
+ //Now, heapify-down
+ do
+ {
+ int smaller;
+ int childL, childR;
+ void * swap;
+
+ childL = (i*2)+1;
+ childR = (i*2)+2;
+
+ //No Children? Done!
+ if( childL > (int)Size && childR > (int)Size )
+ return ret;
+
+ if( childR > (int)Size )
+ {
+ if( Comp( Heap[childL], Heap[i] ) )
+ {
+ swap = Heap[childL];
+ Heap[childL] = Heap[i];
+ Heap[i] = swap;
+ }
+
+ return ret;
+ }
+
+ smaller = Comp( Heap[childL], Heap[childR] )?childL:childR;
+
+ //We're already smaller than the smallest child.
+ if( Comp( Heap[i], Heap[smaller] ) )
+ return ret;
+
+ swap = Heap[smaller];
+ Heap[smaller] = Heap[i];
+ Heap[i] = swap;
+ i = smaller;
+ }
+ while(true);
+ }
+
+ inline bool Empty() { return !Size; }
+private:
+ void ** Heap;
+ unsigned int Reserved;
+ unsigned int Size;
+ bool (*Comp)( void*, void*);
};
#endif
/****************************************************************************
- * Copyright (C) 2008 by Joshua Allen *
+ * Copyright (C) 2008-2009 by Joshua Allen *
+ * Charles Lohr *
* *
* *
* All rights reserved. *
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2009-09-26 18:07:35
|
Revision: 539
http://hgengine.svn.sourceforge.net/hgengine/?rev=539&view=rev
Author: cnlohr
Date: 2009-09-26 18:07:23 +0000 (Sat, 26 Sep 2009)
Log Message:
-----------
add constant time allocator for specialty tasks
Modified Paths:
--------------
Mercury2/adv_set.c
Added Paths:
-----------
Mercury2/src/MercuryCTA.cpp
Mercury2/src/MercuryCTA.h
Modified: Mercury2/adv_set.c
===================================================================
--- Mercury2/adv_set.c 2009-09-04 06:11:23 UTC (rev 538)
+++ Mercury2/adv_set.c 2009-09-26 18:07:23 UTC (rev 539)
@@ -14,7 +14,7 @@
src/Camera.cpp src/MercuryInput.cpp src/MQuaternion.cpp src/ModuleManager.cpp src/MercuryFBO.cpp \
src/GLHelpers.cpp src/FullscreenQuad.cpp src/MercuryNamedResource.cpp src/MercuryPrefs.cpp \
src/MercuryTheme.cpp src/Orthographic.cpp src/Light.cpp src/RenderDifferedLights.cpp \
- src/MercuryLog.cpp"
+ src/MercuryLog.cpp src/MercuryCTA.cpp"
SOURCES="$SOURCES src/MercuryFileDriverDirect.cpp src/MercuryFileDriverMem.cpp \
src/MercuryFileDriverPacked.cpp src/MercuryFileDriverZipped.cpp"
Added: Mercury2/src/MercuryCTA.cpp
===================================================================
--- Mercury2/src/MercuryCTA.cpp (rev 0)
+++ Mercury2/src/MercuryCTA.cpp 2009-09-26 18:07:23 UTC (rev 539)
@@ -0,0 +1,95 @@
+#include "MercuryCTA.h"
+#include <stdlib.h>
+#include <stdio.h>
+
+MercuryCTA::MercuryCTA( int inElementSize, int iDefaultSize )
+{
+ iElementSize = inElementSize;
+ iCurSize = iDefaultSize;
+
+ ibmFree = (void**)::malloc( iCurSize * sizeof( void * ) );
+ ibmHead = &ibmFree[iCurSize-1];
+
+ void * vData = ::malloc( iDefaultSize * iElementSize );
+
+ pHeadToFree = new PtrPair( vData, 0 );
+
+ //TODO: Test performance of reverse numbering, so the first blocks are allocated before the later ones.
+ for( void ** i = ibmFree; i != (ibmHead + 1); ++i, vData = ((char*)vData) + iElementSize )
+ *i = vData;
+}
+
+MercuryCTA::~MercuryCTA()
+{
+ for( ; pHeadToFree != 0; )
+ {
+ ::free( pHeadToFree->data );
+ PtrPair * next = pHeadToFree->next;
+ delete pHeadToFree;
+ pHeadToFree = next;
+ }
+ ::free( ibmFree );
+}
+
+void * MercuryCTA::Malloc()
+{
+ //Out of space
+ if( ibmHead < ibmFree )
+ {
+ int iNumOfAddedElements = iCurSize; //iCurSize * 2 - iCurSize
+ iCurSize *= 2;
+
+ ::free( ibmFree );
+ ibmFree = (void**)::malloc( iCurSize * sizeof( void * ) );
+
+ ibmHead = &ibmFree[iNumOfAddedElements-1];
+
+ void * vData = ::malloc( iNumOfAddedElements * iElementSize );
+
+ pHeadToFree = new PtrPair( vData, pHeadToFree );
+
+ //TODO: Test performance of reverse numbering, so the first blocks are allocated before the later ones.
+ for( void** i = ibmFree; i != (ibmHead + 1); i++, vData = ((char*)vData) + iElementSize )
+ *i = vData;
+ }
+ return *(ibmHead--);
+}
+
+void MercuryCTA::Free( void * data )
+{
+ ibmHead++;
+ *ibmHead = data;
+}
+
+
+/****************************************************************************
+ * Copyright (C) 2009 by Charles Lohr *
+ * *
+ * *
+ * All rights reserved. *
+ * *
+ * Redistribution and use in source and binary forms, with or without *
+ * modification, are permitted provided that the following conditions *
+ * are met: *
+ * * Redistributions of source code must retain the above copyright *
+ * notice, this list of conditions and the following disclaimer. *
+ * * Redistributions in binary form must reproduce the above *
+ * copyright notice, this list of conditions and the following *
+ * disclaimer in the documentation and/or other materials provided *
+ * with the distribution. *
+ * * Neither the name of the Mercury Engine nor the names of its *
+ * contributors may be used to endorse or promote products derived *
+ * from this software without specific prior written permission. *
+ * *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT *
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR *
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT *
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, *
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT *
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, *
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY *
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE *
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
+ ***************************************************************************/
Added: Mercury2/src/MercuryCTA.h
===================================================================
--- Mercury2/src/MercuryCTA.h (rev 0)
+++ Mercury2/src/MercuryCTA.h 2009-09-26 18:07:23 UTC (rev 539)
@@ -0,0 +1,61 @@
+#ifndef _CTA_H
+#define _CTA_H
+
+class MercuryCTA
+{
+public:
+ MercuryCTA( int inElementSize, int iDefaultSize );
+ ~MercuryCTA();
+
+ void * Malloc();
+ void Free( void * data );
+private:
+ void ** ibmFree;
+ void ** ibmHead;
+ int iElementSize;
+ int iCurSize;
+
+ class PtrPair
+ {
+ public:
+ PtrPair( void * id, PtrPair * parent ) : data( id ), next( parent ) { }
+ void * data;
+ PtrPair * next;
+ };
+
+ PtrPair * pHeadToFree;
+};
+
+#endif
+
+/****************************************************************************
+ * Copyright (C) 2009 by Charles Lohr *
+ * *
+ * *
+ * All rights reserved. *
+ * *
+ * Redistribution and use in source and binary forms, with or without *
+ * modification, are permitted provided that the following conditions *
+ * are met: *
+ * * Redistributions of source code must retain the above copyright *
+ * notice, this list of conditions and the following disclaimer. *
+ * * Redistributions in binary form must reproduce the above *
+ * copyright notice, this list of conditions and the following *
+ * disclaimer in the documentation and/or other materials provided *
+ * with the distribution. *
+ * * Neither the name of the Mercury Engine nor the names of its *
+ * contributors may be used to endorse or promote products derived *
+ * from this software without specific prior written permission. *
+ * *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT *
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR *
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT *
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, *
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT *
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, *
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY *
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE *
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
+ ***************************************************************************/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2009-09-04 06:11:36
|
Revision: 538
http://hgengine.svn.sourceforge.net/hgengine/?rev=538&view=rev
Author: cnlohr
Date: 2009-09-04 06:11:23 +0000 (Fri, 04 Sep 2009)
Log Message:
-----------
more progress... The weights are still busted, as though they don't line up to the verts in the model... weird?
Modified Paths:
--------------
Mercury2/tools/collada2hgmdl/ColladaConvert.cpp
Modified: Mercury2/tools/collada2hgmdl/ColladaConvert.cpp
===================================================================
--- Mercury2/tools/collada2hgmdl/ColladaConvert.cpp 2009-09-04 06:09:46 UTC (rev 537)
+++ Mercury2/tools/collada2hgmdl/ColladaConvert.cpp 2009-09-04 06:11:23 UTC (rev 538)
@@ -5,13 +5,25 @@
Model mout;
+#define m00 fd[0]
+#define m01 fd[1]
+#define m02 fd[2]
+
+#define m10 fd[4]
+#define m11 fd[5]
+#define m12 fd[6]
+
+#define m20 fd[8]
+#define m21 fd[9]
+#define m22 fd[10]
+
int FindBone( vector< Bone > & bl, const string & sName )
{
for( unsigned i = 0; i < bl.size(); i++ )
if( bl[i].sName == sName )
return i;
- fprintf( stderr, "Warning: Could not find bone with name \"%s\".", sName.c_str() );
+// fprintf( stderr, "Warning: Could not find bone with name \"%s\".", sName.c_str() );
return -1;
}
@@ -68,7 +80,6 @@
bl[oThis].iParentIndex = oParent;
bl[oThis].iAssociatedMesh = -1;
-
//Setup all children bones.
for( unsigned i = 0; i < tc->children.size(); i++ )
{
@@ -79,15 +90,55 @@
string sMatrix = tc->children[i].payload;
vector< float > fd;
FloatParse( sMatrix, fd );
+
bl[oThis].pJointPos.x = fd[3];
bl[oThis].pJointPos.y = fd[7];
bl[oThis].pJointPos.z = fd[11];
- bl[oThis].qJointRot.w = sqrtf( 1.0 + fd[0] + fd[5] + fd[10] );
- float w4 = ( 4.0 * bl[oThis].qJointRot.w );
- bl[oThis].qJointRot.x = (fd[6] - fd[9]) / w4;
- bl[oThis].qJointRot.y = (fd[8] - fd[2]) / w4;
- bl[oThis].qJointRot.z = (fd[1] - fd[4]) / w4;
+
+//http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm
+ float qw, qx, qy, qz;
+ float tr = m00 + m11 + m22;
+
+ if (tr > 0) {
+ float S = sqrt(tr+1.0) * 2; // S=4*qw
+ qw = 0.25 * S;
+ qx = (m21 - m12) / S;
+ qy = (m02 - m20) / S;
+ qz = (m10 - m01) / S;
+ } else if ((m00 > m11)&(m00 > m22)) {
+ float S = sqrt(1.0 + m00 - m11 - m22) * 2; // S=4*qx
+ qw = (m21 - m12) / S;
+ qx = 0.25 * S;
+ qy = (m01 + m10) / S;
+ qz = (m02 + m20) / S;
+ } else if (m11 > m22) {
+ float S = sqrt(1.0 + m11 - m00 - m22) * 2; // S=4*qy
+ qw = (m02 - m20) / S;
+ qx = (m01 + m10) / S;
+ qy = 0.25 * S;
+ qz = (m12 + m21) / S;
+ } else {
+ float S = sqrt(1.0 + m22 - m00 - m11) * 2; // S=4*qz
+ qw = (m10 - m01) / S;
+ qx = (m02 + m20) / S;
+ qy = (m12 + m21) / S;
+ qz = 0.25 * S;
+ }
+
+ bl[oThis].qJointRot.w = qw;
+ bl[oThis].qJointRot.x = qx;
+ bl[oThis].qJointRot.y = qy;
+ bl[oThis].qJointRot.z = qz;
+
+// for( unsigned i = 0; i < 4; i++ )
+// printf( "%f %f %f %f\n", fd[i*4+0], fd[i*4+1], fd[i*4+2], fd[i*4+3] );
+//
+// printf( "Bone: %s : %f %f %f %f %f %f %f\n",
+// tc->leaves["name"].c_str(), bl[oThis].pJointPos.x,
+// bl[oThis].pJointPos.y, bl[oThis].pJointPos.z,
+// bl[oThis].qJointRot.w, bl[oThis].qJointRot.x,
+// bl[oThis].qJointRot.y, bl[oThis].qJointRot.z );
}
}
}
@@ -384,7 +435,7 @@
if( lcontrol != -1 )
{
XMLCog & skin = c.children[lcontrol].children[0].children[0];
- XMLCog & lv = c.children[lvscenes].children[0].children[0];
+ XMLCog & lv = c.children[lvscenes].children[0];
//Setup all the bones now...
//Enumerate All Bones
@@ -418,7 +469,7 @@
printf( "Bones found: %d\n", bl.size() );
- for( unsigned i = 0; i < lv.children.size(); i++ )
+ for( unsigned i = 0; i < lv.children.size(); i++ )
{
if( lv.children[i].data == "node" && lv.children[i].leaves["type"] == "JOINT" )
{
@@ -426,7 +477,8 @@
}
}
- map< string, vector< int > > sources;
+ map< string, vector< float > > sources;
+ string sTransforms = "";
for( unsigned i = 0; i < skin.children.size(); i++ )
{
@@ -454,10 +506,70 @@
}
}
}
+ if( sid.data == "technique_common" )
+ {
+ string sPName = sid.children[0].children[0].leaves["name"];
+ if( sPName == "TRANSFORM" )
+ {
+ sTransforms = sName;
+ }
+ }
}
}
}
+/*
+ //Try setting up bones here...
+ if( sources[sTransforms].size() == 0 )
+ {
+ fprintf( stderr, "Error: You do not appear to have any bone matrices that are valid.\n" );
+ exit( -3 );
+ }
+ for( unsigned i = 0; i < bl.size(); i++ )
+ {
+ float * fd = &sources[sTransforms][i*16];
+ Bone & tk = bl[i];
+
+ tk.pJointPos.x = fd[3];
+ tk.pJointPos.y = fd[7];
+ tk.pJointPos.z = fd[11];
+
+ float qw, qx, qy, qz;
+ float tr = m00 + m11 + m22;
+
+ if (tr > 0) {
+ float S = sqrt(tr+1.0) * 2; // S=4*qw
+ qw = 0.25 * S;
+ qx = (m21 - m12) / S;
+ qy = (m02 - m20) / S;
+ qz = (m10 - m01) / S;
+ } else if ((m00 > m11)&(m00 > m22)) {
+ float S = sqrt(1.0 + m00 - m11 - m22) * 2; // S=4*qx
+ qw = (m21 - m12) / S;
+ qx = 0.25 * S;
+ qy = (m01 + m10) / S;
+ qz = (m02 + m20) / S;
+ } else if (m11 > m22) {
+ float S = sqrt(1.0 + m11 - m00 - m22) * 2; // S=4*qy
+ qw = (m02 - m20) / S;
+ qx = (m01 + m10) / S;
+ qy = 0.25 * S;
+ qz = (m12 + m21) / S;
+ } else {
+ float S = sqrt(1.0 + m22 - m00 - m11) * 2; // S=4*qz
+ qw = (m10 - m01) / S;
+ qx = (m02 + m20) / S;
+ qy = (m12 + m21) / S;
+ qz = 0.25 * S;
+ }
+
+ tk.qJointRot.w = qw;
+ tk.qJointRot.x = qx;
+ tk.qJointRot.y = qy;
+ tk.qJointRot.z = qz;
+ }
+*/
+
//Sources is now filled out, go find the vertex weight
for( unsigned i = 0; i < skin.children.size(); i++ )
{
@@ -505,7 +617,7 @@
if( vcount[iCurVertex] < iTC )
{
iCurVertex++;
- iTC = 0;
+ iTC = 1;
}
int iJoint = vs[i*2+jido];
@@ -521,6 +633,7 @@
bl[iJoint].vAssignments[bl[iJoint].vAssignments.size()-1].iMesh = 0;
bl[iJoint].vAssignments[bl[iJoint].vAssignments.size()-1].iVertex = iCurVertex;
bl[iJoint].vAssignments[bl[iJoint].vAssignments.size()-1].fWeight = sources[wid][iWeight];
+ printf( "(%d) %s - %d %f\n", iCurVertex, bl[iJoint].sName.c_str(), iJoint, sources[wid][iWeight] );
}
}
}
@@ -551,17 +664,20 @@
sAnimation += bt.leaves["id"].c_str()[i];
}
- printf( "Animation: %s : ", sAnimation.c_str() );
- if( FindBone( bl, sAnimation ) == -1 )
+ int boneid = 0;
+// printf( "Animation: %s : ", sAnimation.c_str() );
+ if( ( boneid = FindBone( bl, sAnimation ) ) == -1 )
{
- printf( "Ignore.\n" );
+// printf( "Ignore.\n" );
continue;
}
else
{
- printf( "Use.\n" );
+// printf( "Use.\n" );
}
+ Bone & sourcebone = bl[boneid];
+
for( unsigned i = 0; i < bt.children.size(); i++ )
{
XMLCog & dt = bt.children[i];
@@ -589,23 +705,65 @@
vector< AnimationKey > & k = mKeys[sAnimation];
int keys = mvVals["TIME"].size();
k.resize( keys );
+
for( unsigned i = 0; i < keys; i++ )
{
- if( mvVals["TIME"][i] > fMaxTime )
- fMaxTime = mvVals["TIME"][i];
- float * fd = &mvVals["TRANSFORM"][i*12];
+ float * fd = &mvVals["TRANSFORM"][i*16];
AnimationKey & tk = k[i];
-
- tk.pPos.x = fd[3];
- tk.pPos.y = fd[7];
- tk.pPos.z = fd[11];
-
- tk.qRot.w = sqrtf( 1.0 + fd[0] + fd[5] + fd[10] );
- float w4 = ( 4.0 * tk.qRot.w );
- tk.qRot.x = (fd[6] - fd[9]) / w4;
- tk.qRot.y = (fd[8] - fd[2]) / w4;
- tk.qRot.z = (fd[1] - fd[4]) / w4;
- tk.fTime = mvVals["TIME"][i];
+
+ tk.pPos.x = fd[3] - sourcebone.pJointPos.x;
+ tk.pPos.y = fd[7] - sourcebone.pJointPos.y;
+ tk.pPos.z = fd[11] - sourcebone.pJointPos.z;
+
+ float qw, qx, qy, qz;
+ float tr = m00 + m11 + m22;
+
+ if (tr > 0) {
+ float S = sqrt(tr+1.0) * 2; // S=4*qw
+ qw = 0.25 * S;
+ qx = (m21 - m12) / S;
+ qy = (m02 - m20) / S;
+ qz = (m10 - m01) / S;
+ } else if ((m00 > m11)&(m00 > m22)) {
+ float S = sqrt(1.0 + m00 - m11 - m22) * 2; // S=4*qx
+ qw = (m21 - m12) / S;
+ qx = 0.25 * S;
+ qy = (m01 + m10) / S;
+ qz = (m02 + m20) / S;
+ } else if (m11 > m22) {
+ float S = sqrt(1.0 + m11 - m00 - m22) * 2; // S=4*qy
+ qw = (m02 - m20) / S;
+ qx = (m01 + m10) / S;
+ qy = 0.25 * S;
+ qz = (m12 + m21) / S;
+ } else {
+ float S = sqrt(1.0 + m22 - m00 - m11) * 2; // S=4*qz
+ qw = (m10 - m01) / S;
+ qx = (m02 + m20) / S;
+ qy = (m12 + m21) / S;
+ qz = 0.25 * S;
+ }
+
+ tk.qRot.w = qw;
+ tk.qRot.x = qx;
+ tk.qRot.y = qy;
+ tk.qRot.z = qz;
+
+ //We actually need to un-rotate tk around the original axis...
+// printf( "QOrig: %f %f %f %f\n", qw, qx, qy, qz );
+// printf( "QBone: %f %f %f %f\n", sourcebone.qJointRot.w, sourcebone.qJointRot.x, sourcebone.qJointRot.y, sourcebone.qJointRot.z );
+
+ MQuaternion tdiff = sourcebone.qJointRot.reciprocal();//SLERP( norotation, sourcebone.qJointRot, -1. );
+
+ tk.qRot = tdiff * tk.qRot;
+
+// printf( "QFinl: %f %f %f %f\n", tk.qRot.w, tk.qRot.x, tk.qRot.y, tk.qRot.z );
+
+ tk.fTime = mvVals["TIME"][i]*10.;
+
+ if( tk.fTime > fMaxTime )
+ fMaxTime = tk.fTime;
+
}
}
}
@@ -634,6 +792,14 @@
}
printf( "Animations found, animations are %f long.\n", fMaxTime );
}
+
+ //Move bones around...
+ bl[0].pJointPos.x+=0;
+ bl[0].pJointPos.y+=-13.5;
+ bl[0].pJointPos.z+=0;
+
+ for( unsigned i = 0; i < bl.size(); i++ )
+ printf( ": %s\n", bl[i].sName.c_str() );
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2009-09-04 06:10:02
|
Revision: 537
http://hgengine.svn.sourceforge.net/hgengine/?rev=537&view=rev
Author: cnlohr
Date: 2009-09-04 06:09:46 +0000 (Fri, 04 Sep 2009)
Log Message:
-----------
acutally get a shot of Gunther in an animated pose
Modified Paths:
--------------
Mercury2/tools/collada2hgmdl/guntheronly.dae
Modified: Mercury2/tools/collada2hgmdl/guntheronly.dae
===================================================================
--- Mercury2/tools/collada2hgmdl/guntheronly.dae 2009-09-03 18:19:02 UTC (rev 536)
+++ Mercury2/tools/collada2hgmdl/guntheronly.dae 2009-09-04 06:09:46 UTC (rev 537)
@@ -16,8 +16,8 @@
cameraXFov=0;cameraYFov=1</comments>
<source_data>file:///C:/gunther/artassets/gunther/gunther_merged.mb</source_data>
</contributor>
- <created>2009-08-24T20:04:37</created>
- <modified>2009-08-24T20:04:37</modified>
+ <created>2009-09-04T00:38:51</created>
+ <modified>2009-09-04T00:38:51</modified>
<unit name="centimeter" meter="0.01"/>
<up_axis>Y_UP</up_axis>
</asset>
@@ -194,9 +194,9 @@
<geometry id="polySurfaceShape2" name="polySurfaceShape2">
<mesh>
<source id="polySurfaceShape2-positions" name="polySurfaceShape2-positions">
- <float_array id="polySurfaceShape2-positions-array" count="4386">7.58307 7.23314 -1.71178 5.79144 5.59171 -2.1382 6.58406 5.26469 -2.37061 6.37382 7.76356 -1.38605 5.48776 4.91864 -3.43818 6.26334 4.44943 -3.91159 5.21925 5.41564 -5.33818 6.14091 5.25577 -5.91323 5.37423 7.67076 -6.59683 6.29275 7.40893 -7.02016 7.07575 9.15374 -6.19501 6.30677 9.54254 -5.58364 -7.06578 9.15374 -6.19501 -5.42314 7.65398 -6.62397 -6.28278 7.40893 -7.02016 -6.2968 9.54254 -5.58364 -6.13094 5.25577 -5.91322 -5.10746 5.43331 -5.27465 -6.25338 4.44943 -3.91159 -5.33816 5.00311 -3.35295 -6.5741 5.26469 -2.37061 -5.59085 5.67036 -2.08231 -7.5731 7.23314 -1.71178 -6.36385 7.76356 -1.38605 -9.07619 4.84135 -5.13842 -9.40467 5.42034 -6.65764 -8.89337 5.49249 -6.4416 -9.5451 6.43135 -6.86378 -9.01968 6.66135 -6.70637 -9.70255 7.10765 -6.48239 -9.19199 7.4439 -6.28823 -9.48952 7.70583 -5.4411 -10.5648 5.25772 -5.06769 -9.5786 5.26366 -4.4556 -10.5129 4.56693 -5.8066 -10.5911 6.13135 -4.77824 -9.59441 6.32114 -4.33353 -10.8426 6.88498 -5.1194 -9.32872 7.42098 -4.69524 10.5228 4.56693 -5.8066 9.36411 5.42747 -6.63629 10.343 5.28935 -7.04991 9.08616 4.84135 -5.13842 10.4152 6.05482 -7.12147 9.46282 6.47173 -6.83615 10.5375 6.56434 -6.79613 9.59852 7.18273 -6.43904 10.9178 7.06315 -6.04288 9.49949 7.70583 -5.4411 9.59159 5.26365 -4.45748 9.27457 5.26555 -4.2607 9.67914 6.3069 -4.36688 9.26608 6.38555 -4.18258 9.33869 7.42098 -4.69524 7.44786 6.87143 -7.4806 8.47513 8.23644 -6.72726 8.1543 6.55144 -7.5038 7.9602 8.68548 -6.6368 8.90892 8.91384 -5.1894 8.52742 9.26625 -4.92541 8.81985 8.29333 -3.46305 8.46737 8.63215 -3.18597 8.64524 6.80236 -2.5886 8.26598 6.98025 -2.10798 7.47331 4.99905 -2.72883 8.03537 4.99569 -3.13234 7.36541 4.08471 -4.55885 8.05105 4.1121 -4.9493 7.24123 4.88874 -6.57015 7.9373 4.8413 -6.78166 -8.46604 8.26561 -6.75571 -7.57775 6.80635 -7.53636 -8.13978 6.55209 -7.54539 -8.05732 8.62878 -6.69029 -7.36449 4.8443 -6.6497 -7.91911 4.81301 -6.81104 -8.03479 4.07147 -4.94765 -7.48888 4.04055 -4.63723 -8.01884 4.97001 -3.09995 -7.57102 4.96689 -2.77221 -8.63903 6.80726 -2.54701 -8.3387 6.94963 -2.15595 -8.5382 8.59933 -3.21018 -8.8166 8.32346 -3.43626 -8.60607 9.24349 -4.98273 -8.90717 8.95448 -5.19182 -5.28438 10.0329 -5.01271 -4.72071 7.85421 -6.30022 5.29435 10.0329 -5.01271 4.73067 7.85421 -6.30022 -1.11459 12.9232 0.963511 -1.19534 12.8538 0.873037 -1.13306 12.8174 0.946114 -0.950701 12.9288 1.07988 -0.910594 12.7897 1.04955 -0.800296 12.9096 1.09848 -0.604815 12.8172 1.09918 -0.473259 12.8134 1.06424 -0.73959 11.3352 1.8466 -0.245437 11.325 1.80935 -0.446946 11.3249 1.56541 -0.295722 11.2962 2.1372 -0.240887 11.3822 2.2392 0.0049839 11.3255 1.98742 0.0049839 11.3654 2.45419 -0.477791 11.4311 1.92113 0.0049839 11.2682 2.28847 0.0049839 5.1757 2.55739 -1.87893 6.04964 1.74924 -2.21295 5.04488 1.58595 0.0049839 6.07571 2.40546 -3.35917 6.78555 0.886022 -3.70021 5.95151 0.477025 -4.03345 8.45163 -0.957653 -4.89731 8.53893 -1.00106 -4.16532 9.62259 -2.00061 -5.2521 10.009 -2.14242 -4.136 10.2274 -3.02585 -5.2917 10.7384 -3.20892 -3.92207 10.3759 -4.37743 -5.03352 10.6881 -4.89572 -3.9032 9.65084 -5.75527 -3.23962 9.9496 -5.50297 -2.80186 8.85735 -6.48115 -2.29642 9.68886 -6.3444 -1.32443 9.36759 -7.03439 -1.32156 8.13428 -7.33083 0.0049839 9.25028 -7.02834 0.0049839 8.06616 -7.27942 0.0049839 -4.40084 -6.5276 0.0049839 -3.59856 -4.41142 -2.35493 -3.75935 -6.10045 -0.273524 -3.47805 -4.14795 -3.91935 -4.20146 1.74942 0.0049839 -4.72127 2.6547 0.0049839 -5.06304 3.49718 -3.98433 -3.98334 1.25226 -0.830405 8.41218 0.330424 0.0049839 8.60651 -0.201797 -0.465128 8.69763 -0.256705 0.0412693 8.31625 0.536142 -0.914815 8.8274 -0.691585 -1.58644 8.89038 -0.189131 -1.22106 9.20224 -1.26175 -2.06548 9.54644 -1.1814 -1.69014 9.70394 -1.84551 -2.37283 10.1863 -1.88224 -1.91258 10.437 -2.64796 -2.51258 10.8148 -2.74397 -1.91274 10.7513 -3.33702 -2.45797 11.1231 -3.60603 -1.64624 10.9723 -3.95683 -2.16018 11.194 -4.48041 -1.3115 11.19 -5.17044 -0.823582 11.1103 -4.47787 -0.672001 11.2613 -5.47452 -0.300753 11.145 -4.77438 0.0049839 11.2595 -5.54859 0.0049839 11.1793 -4.81444 -1.18277 9.5925 -0.707093 -0.81823 9.27874 -0.210604 -1.60474 10.6566 -1.06481 -1.61645 10.8689 -1.99938 -1.38597 9.94143 -1.06036 -3.1003 9.76679 -1.92138 -2.96527 8.97971 -1.09577 0.0049839 11.481 -3.9447 -0.388931 9.16175 0.159738 0.0049839 9.14314 0.217435 -1.5741 10.9895 -2.60058 -1.14725 9.99904 -0.445639 -0.721645 9.73008 0.270376 -0.297378 9.71941 0.660105 0.0049839 9.67959 0.780558 -0.649629 11.3822 -3.81049 0.0049839 11.8218 -3.27531 -0.62664 11.7508 -3.19755 -1.31436 11.2383 -3.2954 -1.21345 11.6001 -2.90628 -1.52418 11.5027 -2.49591 -1.66968 11.4548 -1.995 -1.70342 11.2957 -1.41203 -1.70136 12.2172 -2.14934 -1.60264 12.3607 -2.55117 -1.27543 12.4121 -2.7859 -0.59202 12.4859 -3.04633 0.0049839 12.4938 -3.12932 -1.75553 12.0396 -1.49873 -5.09229 7.83294 -1.01085 -5.03192 6.77461 -1.30299 -4.86565 5.96956 -1.86967 -4.07351 -8.23011 -1.41956 -2.23374 -9.59953 -0.855134 -2.30663 -8.29947 -1.3501 -4.63244 -9.54418 -1.06231 -1.25044 -9.54598 -2.50871 -1.57839 -8.21696 -2.5035 -1.87916 -8.21984 -3.5379 -1.58315 -9.56789 -4.185 -2.70216 -8.2158 -4.11549 -2.70585 -9.60363 -5.00456 -4.42848 -9.45874 -4.42154 -3.75383 -8.12692 -3.76969 -4.49382 -8.09957 -3.11575 -5.41668 -9.33343 -3.35082 -5.34552 -9.42016 -2.35534 -4.49255 -8.15461 -2.29111 -1.48841 -4.55871 0.098 -4.07142 -5.57161 -0.148863 -1.73923 -5.80926 -0.184196 -4.07825 -4.29103 0.290359 -0.96891 -5.1407 -2.09565 -0.823286 -3.83299 -1.77611 -1.03272 -3.77752 -3.54334 -1.3356 -4.93128 -3.52322 -2.42644 -4.92344 -4.44274 -2.2099 -3.64516 -4.91757 -3.6804 -3.36757 -4.08236 -3.74818 -4.91638 -3.97384 -4.48892 -3.39731 -2.54029 -4.56102 -4.91715 -2.68162 -4.67988 -3.65687 -0.965077 -4.67668 -5.15681 -1.21931 -2.52343 -4.25848 -6.73344 0.0049839 -4.68007 -7.26411 -0.68388 -3.9386 0.480636 0.0049839 -3.34775 -1.54373 0.0049839 -3.93787 0.723505 -0.350443 -3.27238 -1.57812 -5.77118 -3.25978 -0.388687 -5.07433 -3.12131 -0.569078 -6.00638 -2.94081 -2.69287 -5.12394 -2.82217 -2.60374 -4.31023 -3.12584 -5.03467 -4.75332 -3.47675 -5.63482 -2.94129 -11.7618 -2.81622 -3.19297 -11.9747 -2.42056 -2.88599 -12.2441 -2.81057 -3.22703 -11.6144 -2.47072 -2.91412 -11.8805 -3.22763 -2.85385 -12.2546 -3.19264 -3.34803 -12.2099 -3.67 -3.31553 -11.8588 -3.6301 -3.80586 -11.8728 -3.53297 -3.81932 -12.2768 -3.53095 -4.15801 -11.8128 -2.99195 -4.22271 -12.2252 -2.94866 -4.09534 -11.9531 -2.55965 -4.04967 -11.5893 -2.56268 -2.28834 4.8181 1.54909 -3.77718 5.76327 0.384712 -4.11769 5.17136 -0.373251 -4.12284 4.56003 -0.988408 -1.40815 1.64449 -6.60064 0.0049839 2.37732 -6.26449 0.0049839 1.65991 -6.72461 -1.38253 2.35501 -6.11394 -3.61982 1.61849 -5.43927 -3.54884 2.42037 -5.30553 -4.79465 2.69246 -2.69829 -4.93971 1.45311 -2.61351 -4.83023 2.22225 0.302115 -4.53764 3.52648 -0.36027 -2.45819 3.04845 2.39924 -2.38991 4.01903 2.2606 0.0049839 3.65603 3.54835 0.0049839 4.35752 3.343 0.0049839 0.604821 -6.63728 -1.43325 0.636671 -6.42489 -3.70698 0.426959 -5.00904 -4.63863 0.0750151 -2.48673 -4.54017 1.20076 0.735711 -2.39405 2.03819 2.40138 -1.35131 3.09665 -6.07573 0.0049839 3.12585 -6.25286 -3.45051 3.53122 -5.12026 -1.43097 -0.615239 -6.06768 0.0049839 -1.73199 -5.97024 -1.63068 -1.47602 -5.64364 0.0049839 -0.662755 -6.18297 -3.3204 -0.526209 -5.0884 -3.3127 -1.19912 -4.76911 -5.17243 -0.882015 -2.36007 -5.20059 -1.33866 -2.26129 -4.92841 -1.29043 0.080275 -5.22518 -0.274997 0.4839 -2.97131 -1.43575 2.06559 -2.87515 0.444816 2.60751 0.0049839 -1.54831 3.38698 0.0049839 0.922202 3.91429 0.0049839 -2.79313 -6.50063 -1.91718 -2.40045 -5.94251 -3.74328 -2.0234 -4.77582 -5.31365 -1.84969 -2.31417 -5.10687 -1.7621 -0.237879 -2.91982 -2.28656 1.5851 0.0049839 -3.03784 2.60443 0.0049839 5.37482 -6.96214 -1.34746 5.52235 -7.11451 -3.20183 5.8013 -6.54878 0.0049839 4.97256 2.59169 -1.36418 -3.93933 0.237767 -4.08163 -3.65677 0.5079 -0.882709 -3.20607 -3.5533 -0.751161 -3.18531 -1.61785 -3.15194 10.2839 -2.84626 -5.55254 10.1281 -3.25024 -5.49739 9.37049 -2.17442 -6.69287 9.1329 -2.5821 -6.67712 9.76783 -3.82606 -3.03897 10.5857 -3.89268 -2.70782 10.4966 -5.03832 -4.05298 9.20423 -5.81222 0.0049839 2.82975 3.64358 -2.72306 2.07364 2.87938 0.0049839 2.87865 4.17478 -5.27007 1.01323 0.974205 -5.62396 0.230024 -2.60496 -4.68147 -2.91398 -0.83916 -4.57488 -2.85745 -2.40442 -4.04796 0.537214 -5.67892 -1.62644 0.790391 -7.09474 -2.10266 -3.01205 -5.15274 -3.64682 -2.60046 -4.13611 0.0049839 0.652503 -7.31118 0.0049839 7.33945 1.55044 -1.21964 7.71043 0.956061 -2.30212 8.02398 0.346277 -1.83143 10.3414 -5.90843 -1.0676 10.4518 -6.22059 0.0049839 10.4115 -6.3309 -4.01937 -9.36196 -2.0288 -4.70221 5.38784 -2.96478 -4.40931 3.62649 -2.78308 -5.26248 0.353307 0.73404 -5.2821 -0.484642 -2.54256 -4.19191 -7.16211 -1.99206 -4.18279 -6.97995 -3.06325 -4.13219 -7.61995 -2.26398 -4.10393 -7.5783 -3.01643 -3.8733 -12.9868 -3.66004 -3.19819 -12.9089 -3.81198 -2.77749 -13.0167 -3.24708 -4.41075 5.55415 -4.83996 -3.55446 -0.115401 -5.36972 -1.50113 0.0482779 -6.6363 -2.64093 -7.0701 -4.18032 -3.70348 -6.97888 -3.75535 -3.4688 -7.56426 -3.4943 -2.7006 -7.62948 -3.73988 -3.07714 -9.45715 -4.30321 -4.20582 -9.23582 -3.95213 -3.20332 -12.5698 -3.91593 -4.02399 -12.648 -3.73765 -1.42838 -7.07101 -2.43344 -1.73955 -7.04008 -3.44657 -1.71694 -7.65548 -2.50131 -2.00422 -7.65032 -3.26451 -2.03221 -9.44187 -2.85873 -2.09503 -9.53038 -3.74227 -2.67179 -12.545 -3.31926 -2.70715 -12.584 -2.62779 -2.87177 -12.9884 -2.62947 -4.33273 -13.0215 -3.13202 -4.46282 -12.6834 -3.14976 -4.43974 -13.0345 -2.61786 -4.5959 -12.6797 -2.60878 -4.62886 -13.0054 -1.70853 -4.81415 -12.6717 -1.6489 -4.3958 -13.0257 -0.97118 -4.43461 -12.5396 -0.822551 -3.65363 -12.9604 -0.801608 -3.61851 -12.4982 -0.669225 -3.00851 -12.5656 -1.2707 -3.15036 -12.9883 -1.25284 -2.83591 -12.6225 -2.02597 -2.97372 -12.969 -2.13231 -3.42381 -11.8171 -1.33812 -4.38355 -11.9731 -0.991988 -3.66082 -12.0401 -0.847936 -4.40359 -11.8312 -1.56592 -4.20729 -11.9524 -2.32929 -3.20327 -11.9479 -2.16119 -3.15801 -12.2674 -1.31886 -2.9602 -12.348 -2.09699 -3.86514 -7.22503 -1.01494 -2.11352 -7.34808 -1.37085 -2.33742 -7.75024 -1.55921 -3.83738 -7.67494 -1.5705 -2.64535 -9.45462 -1.7791 -4.52388 -12.4077 -2.53199 -4.73534 -12.275 -1.61704 -4.46989 -9.1811 -3.23373 -2.77439 1.56488 3.057 0.0049839 2.20934 4.30717 0.0049839 0.0419102 -6.65446 -2.91594 8.66967 -6.51201 -1.32091 7.85592 -7.39774 0.0049839 7.79889 -7.33609 -7.79012 8.90327 -2.98605 -7.78556 9.45415 -4.45201 -10.9078 7.06315 -6.04288 -13.353 5.80969 -5.89364 -13.3362 5.84977 -6.36265 -10.5275 6.56434 -6.79613 -10.4052 6.05482 -7.12147 -12.9808 5.41844 -7.05157 -13.1745 5.76624 -6.9226 -13.0213 4.84152 -5.7474 -12.9669 4.75024 -6.1747 -9.2646 5.26555 -4.2607 -10.333 5.28935 -7.04991 -12.936 4.96814 -6.78141 -13.2487 5.33916 -5.52126 -9.25611 6.38555 -4.18258 -13.2834 4.64735 -5.83855 -13.2831 4.60763 -6.30789 -13.4756 4.50921 -6.36887 -13.4544 4.39784 -5.73169 -14.0242 4.3142 -6.47139 -15.4862 2.973 -7.1949 -15.9061 2.57102 -6.98588 -15.8006 2.984 -7.25625 -15.3933 2.6826 -6.86954 -15.7978 2.70591 -6.6436 -15.996 2.67141 -6.6978 -15.8795 2.84945 -6.61303 -15.5732 3.0486 -6.88223 -15.797 3.16901 -6.90343 -15.8118 2.79571 -6.61317 -15.6154 3.00717 -7.21741 -15.7788 3.07779 -7.25512 -16.0392 3.68088 -7.17095 -15.7443 4.32522 -6.38568 -16.1368 3.52752 -6.60743 -15.5641 4.39407 -6.94272 -16.0471 3.08546 -7.26796 -16.1726 3.0572 -6.64709 -16.5307 2.9985 -6.83048 -16.6653 3.06733 -7.17753 -16.6618 3.72472 -6.73253 -16.761 3.84858 -7.08616 -16.1543 4.61426 -6.41649 -16.2714 4.90387 -6.79568 -16.3642 3.17757 -7.36087 -16.4204 3.86181 -7.28728 -15.9297 4.74311 -6.99791 -16.0177 4.98736 -7.28329 -16.0108 5.29559 -6.84915 -15.7734 5.26698 -7.29055 -14.8526 5.53459 -6.81974 -16.3852 4.80393 -6.12619 -16.1349 5.16732 -6.23018 -15.2943 3.43155 -8.03436 -15.096 3.24987 -7.98929 -15.3658 3.30644 -8.12148 -15.1285 3.35116 -7.96092 -15.09 3.10652 -7.91233 -15.4867 3.1276 -8.10426 -15.3884 3.10013 -7.731 -15.5844 3.14188 -7.78497 -15.2506 3.41626 -7.91685 -15.2664 3.24135 -7.70028 -15.0844 3.32441 -7.85092 -15.3469 3.2847 -7.70207 -15.5289 3.86053 -8.08652 -15.3257 4.50656 -7.37215 -15.7358 3.8064 -7.63744 -15.0677 4.57657 -7.84016 -15.3505 3.49202 -7.97749 -15.6669 3.21565 -7.78437 -15.8841 3.40244 -7.89228 -15.8457 3.45541 -8.20477 -16.1519 4.05222 -8.19586 -16.2355 4.05714 -7.83215 -15.7274 4.90286 -7.506 -15.5442 5.11035 -7.94583 -15.5524 3.96396 -8.23734 -15.6543 3.51989 -8.25739 -15.9361 4.06151 -8.32252 -15.4161 3.57553 -8.13727 -15.3273 4.96442 -8.13732 -15.1357 4.69718 -8.07797 -14.9638 4.8433 -8.06638 -14.9048 4.60782 -7.78247 -14.1209 4.8184 -7.75152 -14.0118 4.53997 -7.58247 -13.5799 4.90819 -7.46205 -13.5143 4.73186 -7.26308 -13.228 4.95617 -7.18181 -13.5894 5.61574 -7.05543 -13.8361 5.70324 -6.4659 -14.1507 5.62196 -6.58554 -13.9337 5.53215 -7.24071 -14.5785 5.53263 -7.51241 -15.3642 5.2686 -7.79254 -15.8749 4.70611 -5.6512 -16.207 4.51242 -5.84042 -15.0153 5.47207 -6.02761 -14.9421 4.67315 -5.59454 -14.3161 5.53853 -5.92552 -14.012 4.83805 -5.5129 -13.7423 5.11841 -5.508 -13.9542 5.62393 -5.86385 -13.3435 4.72967 -6.52721 -13.5202 4.58274 -6.6395 -14.0283 4.39333 -6.8065 -15.0331 4.59831 -6.83728 -15.1279 4.53527 -6.41751 -15.1659 2.66167 -5.93307 -14.9784 3.24716 -5.91967 -14.6627 3.1698 -5.85601 -15.3895 2.80266 -6.00613 -15.504 3.03407 -5.68714 -15.1468 3.29647 -5.68539 -15.3503 2.88242 -5.51099 -14.9914 3.3189 -5.5055 -15.1668 2.69683 -5.53617 -14.6273 3.15652 -5.42188 -15.0465 2.58108 -5.75927 -14.4115 3.01018 -5.65362 -14.9401 4.52241 -7.3181 -14.0022 4.45517 -7.21174 -13.4857 4.5925 -7.0276 -14.3061 5.20281 -7.77232 -15.153 5.12973 -8.07761 -13.7569 5.22094 -7.48754 -15.5939 2.59625 -5.58702 -15.5784 2.90784 -5.59098 -15.528 2.58189 -5.92288 -15.5256 2.75267 -5.53018 -15.4901 2.4126 -5.76506 -15.3591 2.51117 -5.49222 -15.2839 2.44358 -5.69492 -15.5298 4.13583 -5.98531 -15.7993 4.13513 -5.93457 -13.3928 5.2927 -7.31096 -12.8235 4.96905 -6.77731 -13.2338 4.71493 -6.87779 -14.0668 4.56923 -5.4221 -13.6296 4.2028 -5.75951 -14.2542 4.03696 -5.44503 -13.8901 3.93672 -5.79596 -14.0992 4.06804 -6.30304 -14.2186 3.84738 -6.147 -15.0227 3.99388 -6.14253 -14.8556 3.81053 -6.04597 -15.168 4.14482 -5.75086 -15.054 3.92684 -5.66008 -14.7809 4.08158 -5.48879 -14.8268 4.40884 -5.59961 -15.7736 2.97509 -7.6225 -15.1668 3.00977 -7.41653 -15.4319 3.26088 -7.45495 -15.7514 3.21805 -7.60925 -16.3155 3.25858 -7.71837 -16.4882 3.99227 -7.58476 -16.0924 2.44781 -6.44271 -15.6254 2.61887 -6.36285 -15.776 2.65667 -6.16576 -16.1128 2.55129 -6.13764 -15.8538 2.85978 -6.14418 -16.0576 2.989 -6.10255 -15.8108 3.03997 -6.42976 -16.0929 2.97603 -6.46083 -16.1803 3.61506 -6.27066 -16.2108 3.18328 -6.28585 -16.6038 2.95928 -6.23374 -16.7345 2.91958 -6.59816 -16.7722 3.60787 -6.17135 -16.9701 3.72201 -6.48467 -0.64443 14.2673 -3.16834 0.0049839 13.1654 -3.49589 -0.652926 13.1118 -3.38987 0.0049839 14.3818 -3.25497 -1.40775 14.0717 -2.99828 -1.31522 12.9907 -3.17017 -1.8345 13.6508 -2.60899 -1.75606 12.9032 -2.73364 -1.93235 13.2093 -2.12728 -1.86751 12.6125 -2.24965 -1.88128 12.839 -1.70038 -1.86931 12.4205 -1.71463 -2.0609 12.4298 -1.8913 -2.0816 12.843 -1.88996 -1.96627 12.4339 -1.2984 -2.00475 12.9399 -1.3512 -1.89017 12.613 -0.876206 -1.89214 13.0084 -1.10228 -1.88424 13.3711 -0.522517 -1.89272 13.6775 -0.90505 -1.76184 14.4339 -0.672672 -1.70112 14.172 0.066704 -1.34628 15.0732 -0.367807 -1.32236 14.674 0.561682 -0.692307 15.4145 -0.138297 -0.680389 15.0319 0.825156 0.0049839 15.5596 -0.023653 0.0049839 15.1545 0.954001 -0.32639 9.52452 1.52934 0.0049839 9.44297 1.76953 -0.331309 9.47855 2.47322 0.0049839 9.54072 2.45802 -0.38015 9.87505 2.53914 0.0049839 9.96259 2.56324 -0.36921 10.5599 2.2298 0.0049839 10.5358 2.25302 -0.277351 11.0118 2.01767 0.0049839 11.0348 2.07361 -1.03946 11.2979 1.52785 -1.14419 11.1101 1.34934 -1.163 10.8808 1.36216 -1.80356 12.8357 -0.085964 -1.71573 11.6433 0.317818 -1.66597 12.2554 0.777021 -1.97631 11.7492 -0.744731 -1.23913 9.78701 0.480812 -0.707872 9.61739 1.21077 -1.21422 9.93999 1.17162 -0.799644 9.64937 1.82326 -2.00098 10.7425 -1.05843 -2.22744 10.2164 -0.521597 -2.34904 10.736 -0.937604 -1.82855 10.1536 -0.703813 -2.35123 11.0996 -1.06203 -2.00553 11.0996 -1.06203 -2.11066 11.7492 -0.744731 -1.92297 11.8484 -1.02686 -2.17547 11.8273 -1.00445 -2.06461 10.6797 -0.267862 -2.28995 11.0916 -0.708555 -2.37129 10.5821 -0.174443 -2.08846 11.0916 -0.708555 -1.37809 9.51698 1.24089 -1.68274 9.88157 0.328286 -2.05383 9.89113 0.181843 -1.95589 10.2995 0.535723 -1.77327 10.3909 0.414646 -1.79575 11.013 0.2224 -1.3735 11.4043 0.841365 -1.51914 10.9773 0.946594 -1.43917 11.3955 0.968796 -1.37503 10.9229 0.74935 -1.31265 10.2472 1.45326 -1.2004 10.2322 1.36712 -1.52238 10.4354 0.647201 -1.61084 10.4675 0.873291 -1.20269 10.6036 1.38178 -1.2838 10.6185 1.47934 -1.42516 10.6636 0.745632 -1.59686 10.672 0.913203 -1.28553 10.8958 1.43206 -0.900598 11.4105 1.88767 -1.11266 11.3103 1.60018 -0.851206 11.7973 1.28319 -1.08683 11.7242 1.37017 -0.851206 11.8434 1.66491 -1.12141 11.7291 1.15892 -1.25576 11.1663 1.41327 -0.240887 11.4546 2.5488 0.0049839 11.451 2.62456 -0.685737 11.4434 2.17934 -0.450616 11.905 1.496 -0.528297 11.9339 1.85996 -0.828649 9.9629 2.13088 -0.675753 10.5269 2.00619 -0.68302 10.9484 1.82407 -2.13149 13.1716 -1.88458 -2.0746 13.3557 -1.40242 -1.92606 11.9239 -1.25434 -1.9741 12.0193 -1.6592 -1.91711 13.3438 -1.27773 -1.92426 13.0939 -1.76409 -0.937979 12.5348 1.07129 -1.35542 12.581 0.918937 -0.933987 12.3434 1.27035 -1.43756 12.018 0.982624 -0.923891 12.1741 1.33031 -1.25549 11.8289 1.09933 -0.887657 11.9327 1.31298 -1.95591 13.5399 -1.85554 -0.777043 15.0714 -2.38784 -1.46598 14.7842 -2.18631 -1.8447 14.2587 -1.97288 0.0049839 15.2585 -2.43658 -1.91492 13.7924 -1.31525 -1.39533 15.106 -1.22588 -0.768877 15.4912 -1.06573 -1.78104 14.592 -1.32371 0.0049839 15.6672 -0.970554 -1.32019 14.1084 1.08978 -0.560058 14.2767 1.56665 -1.73922 13.5869 0.367622 0.0049839 14.2709 1.66247 -1.5185 10.8709 0.625449 -1.54214 11.4105 0.652106 -0.546664 12.006 1.45698 -0.561841 12.1159 1.82554 -0.153355 11.8946 2.23122 -0.144077 12.0794 2.32102 0.0049839 11.8896 2.32503 0.0049839 12.071 2.49498 -1.6547 11.5141 0.553632 -1.66369 10.8979 0.481987 -0.17381 12.6565 1.71392 0.0049839 12.8513 1.70251 -0.193424 12.7241 1.28912 0.0049839 12.7459 1.81703 -0.419446 12.4292 1.38417 -0.53595 12.5728 1.22073 0.0049839 12.3692 2.34819 -0.143199 12.3329 2.2399 0.0049839 12.5556 2.12443 -0.168046 12.5135 2.0569 0.0049839 13.053 1.80781 -0.44872 12.9202 1.8351 -1.27437 13.1008 1.4244 -0.418074 12.242 1.4826 -0.496443 12.2645 1.787 -1.62679 13.1803 0.76521 -1.53751 12.8144 0.367398 -0.303165 12.8669 1.43393 1.12456 12.9232 0.963511 1.14303 12.8174 0.946114 1.20531 12.8538 0.873037 0.960669 12.9288 1.07988 0.920562 12.7897 1.04955 0.810264 12.9096 1.09848 0.614783 12.8172 1.09918 0.483226 12.8134 1.06424 0.255405 11.325 1.80935 0.749558 11.3352 1.8466 0.456914 11.3249 1.56541 0.30569 11.2962 2.1372 0.250855 11.3822 2.2392 0.487759 11.4311 1.92113 1.8889 6.04964 1.74924 2.22292 5.04488 1.58595 3.36914 6.78555 0.886021 3.71017 5.95151 0.477025 4.04342 8.45163 -0.957654 4.90728 8.53893 -1.00106 4.17529 9.62259 -2.00061 5.26206 10.009 -2.14242 4.14597 10.2274 -3.02585 5.30166 10.7384 -3.20892 3.93204 10.3759 -4.37743 5.04349 10.6881 -4.89572 3.91317 9.65084 -5.75527 3.24959 9.9496 -5.50297 2.81183 8.85735 -6.48115 2.30639 9.68886 -6.3444 1.3344 9.36759 -7.03439 1.33153 8.13428 -7.33083 2.3649 -3.75935 -6.10045 0.283492 -3.47805 -4.14795 3.92932 -4.20146 1.74942 3.9943 -3.98334 1.25226 0.475096 8.69763 -0.256705 0.840373 8.41218 0.330424 0.924782 8.8274 -0.691585 1.59641 8.89038 -0.189131 1.23103 9.20224 -1.26175 2.07544 9.54644 -1.1814 1.70011 9.70394 -1.84551 2.3828 10.1863 -1.88224 1.92255 10.437 -2.64796 2.52255 10.8148 -2.74397 1.92271 10.7513 -3.33702 2.46794 11.1231 -3.60603 1.65621 10.9723 -3.95683 2.17015 11.194 -4.48041 1.32147 11.19 -5.17044 0.83355 11.1103 -4.47787 0.681969 11.2613 -5.47452 0.31072 11.145 -4.77438 1.19274 9.5925 -0.707093 0.828198 9.27874 -0.210604 1.61471 10.6566 -1.06481 1.39594 9.94143 -1.06036 1.62642 10.8689 -1.99938 3.11027 9.76679 -1.92137 2.97524 8.97971 -1.09577 0.398899 9.16175 0.159738 1.58407 10.9895 -2.60058 1.15722 9.99904 -0.445639 0.731613 9.73008 0.270376 0.307346 9.71941 0.660105 0.659597 11.3822 -3.81049 0.636608 11.7508 -3.19755 1.32432 11.2383 -3.2954 1.22342 11.6001 -2.90628 1.53415 11.5027 -2.49591 1.67964 11.4548 -1.995 1.71339 11.2957 -1.41203 1.71133 12.2172 -2.14934 1.6126 12.3607 -2.55117 1.2854 12.4121 -2.7859 0.601988 12.4859 -3.04633 1.76549 12.0396 -1.49873 5.10225 7.83294 -1.01085 5.04189 6.77461 -1.30299 4.87562 5.96956 -1.86967 4.08348 -8.23011 -1.41956 2.24371 -9.59953 -0.855134 4.64241 -9.54418 -1.06231 2.31659 -8.29947 -1.3501 1.26041 -9.54598 -2.50871 1.58836 -8.21696 -2.5035 1.88913 -8.21984 -3.5379 1.59312 -9.56789 -4.185 2.71213 -8.2158 -4.11549 2.71581 -9.60363 -5.00456 4.43845 -9.45874 -4.42154 3.76379 -8.12692 -3.76969 4.50379 -8.09957 -3.11575 5.42665 -9.33343 -3.35082 5.35549 -9.42016 -2.35534 4.50251 -8.15461 -2.29111 4.08139 -5.57161 -0.148863 1.49837 -4.55871 0.098 1.7492 -5.80926 -0.184196 4.08822 -4.29103 0.290359 0.978878 -5.1407 -2.09565 0.833254 -3.83299 -1.77611 1.04269 -3.77752 -3.54334 1.34556 -4.93128 -3.52322 2.43641 -4.92344 -4.44274 2.21987 -3.64516 -4.91757 3.69037 -3.36757 -4.08236 3.75815 -4.91637 -3.97384 4.49888 -3.39731 -2.54029 4.57098 -4.91715 -2.68162 4.68985 -3.65687 -0.965077 4.68665 -5.15681 -1.21931 2.5334 -4.25848 -6.73344 0.693847 -3.9386 0.480636 0.36041 -3.27238 -1.57812 5.78115 -3.25978 -0.388686 5.0843 -3.12131 -0.569078 6.01635 -2.94081 -2.69287 5.13391 -2.82217 -2.60374 4.32019 -3.12584 -5.03467 4.76329 -3.47675 -5.63482 3.20294 -11.9747 -2.42056 2.95126 -11.7618 -2.81622 2.89596 -12.2441 -2.81057 3.237 -11.6144 -2.47072 2.92409 -11.8805 -3.22763 2.86382 -12.2546 -3.19264 3.35799 -12.2099 -3.67 3.3255 -11.8588 -3.6301 3.81583 -11.8728 -3.53297 3.82929 -12.2768 -3.53095 4.16798 -11.8128 -2.99195 4.23268 -12.2252 -2.94866 4.10531 -11.9531 -2.55965 4.05964 -11.5893 -2.56268 2.29831 4.8181 1.54909 4.12766 5.17136 -0.373251 3.78715 5.76327 0.384712 4.13281 4.56003 -0.988407 1.41812 1.64449 -6.60064 1.39249 2.35501 -6.11394 3.62979 1.61849 -5.43927 3.5588 2.42037 -5.30553 4.80462 2.69246 -2.69829 4.94968 1.45311 -2.61351 4.8402 2.22225 0.302115 4.54761 3.52648 -0.36027 2.46816 3.04845 2.39924 2.39988 4.01903 2.2606 1.44322 0.636671 -6.42489 3.71695 0.426959 -5.00904 4.6486 0.0750151 -2.48673 4.55014 1.20076 0.73571 2.40402 2.03819 2.40138 1.36127 3.09665 -6.07573 3.46048 3.53122 -5.12026 1.44094 -0.615239 -6.06768 1.64065 -1.47602 -5.64364 3.33036 -0.526209 -5.0884 3.32267 -1.19912 -4.76911 5.1824 -0.882015 -2.36007 5.21055 -1.33866 -2.26129 4.93838 -1.29043 0.080274 5.23515 -0.274997 0.4839 2.98128 -1.43575 2.06559 2.88512 0.444816 2.60751 1.92714 -2.40045 -5.94251 3.75325 -2.0234 -4.77582 5.32362 -1.84969 -2.31417 5.11684 -1.7621 -0.237879 2.92979 -2.28656 1.5851 1.35743 5.52235 -7.11451 3.2118 5.8013 -6.54878 1.37414 -3.93933 0.237767 4.0916 -3.65677 0.5079 0.892677 -3.20607 -3.5533 0.761129 -3.18531 -1.61785 3.16191 10.2839 -2.84626 5.56251 10.1281 -3.25024 5.50736 9.37049 -2.17442 6.70284 9.1329 -2.5821 6.68709 9.76783 -3.82606 3.04894 10.5857 -3.89268 2.71779 10.4966 -5.03832 4.06295 9.20423 -5.81222 2.73303 2.07364 2.87938 5.28004 1.01323 0.974205 5.63393 0.230024 -2.60496 4.69143 -2.91398 -0.83916 4.58485 -2.85745 -2.40442 4.05793 0.537214 -5.67892 1.6364 0.790391 -7.09474 2.11262 -3.01205 -5.15274 3.65679 -2.60046 -4.13611 1.22961 7.71043 0.956061 2.31208 8.02398 0.346277 1.8414 10.3414 -5.90843 1.07757 10.4518 -6.22059 4.02934 -9.36196 -2.0288 4.71217 5.38784 -2.96478 4.41928 3.62649 -2.78308 5.27245 0.353307 0.73404 5.29206 -0.484642 -2.54256 4.20188 -7.16211 -1.99206 4.19276 -6.97995 -3.06325 4.14215 -7.61995 -2.26398 4.1139 -7.5783 -3.01643 3.88327 -12.9868 -3.66004 2.78746 -13.0167 -3.24708 3.20816 -12.9089 -3.81198 4.42072 5.55416 -4.83996 3.56443 -0.115401 -5.36972 1.5111 0.0482779 -6.6363 2.6509 -7.0701 -4.18032 3.71344 -6.97888 -3.75535 3.47877 -7.56426 -3.4943 2.71057 -7.62948 -3.73988 3.0871 -9.45715 -4.30321 4.21579 -9.23582 -3.95213 3.21329 -12.5698 -3.91593 4.03396 -12.648 -3.73765 1.43835 -7.07101 -2.43344 1.74952 -7.04008 -3.44657 1.72691 -7.65548 -2.50131 2.01419 -7.65032 -3.26451 2.04218 -9.44187 -2.85873 2.105 -9.53038 -3.74227 2.68175 -12.545 -3.31926 2.71712 -12.584 -2.62779 2.88174 -12.9884 -2.62947 4.3427 -13.0215 -3.13202 4.47279 -12.6834 -3.14976 4.44971 -13.0345 -2.61786 4.60587 -12.6797 -2.60878 4.63883 -13.0054 -1.70853 4.82411 -12.6717 -1.6489 4.40577 -13.0257 -0.97118 4.44457 -12.5396 -0.822551 3.66359 -12.9604 -0.801608 3.62848 -12.4982 -0.669225 3.01848 -12.5656 -1.2707 3.16033 -12.9883 -1.25284 2.84588 -12.6225 -2.02597 2.98369 -12.969 -2.13231 3.43378 -11.8171 -1.33812 4.39351 -11.9731 -0.991988 4.41356 -11.8312 -1.56592 3.67079 -12.0401 -0.847936 4.21726 -11.9524 -2.32929 3.21324 -11.9479 -2.16119 3.16798 -12.2674 -1.31886 2.97017 -12.348 -2.09699 3.87511 -7.22503 -1.01494 2.12349 -7.34808 -1.37085 2.34738 -7.75024 -1.55921 3.84735 -7.67494 -1.5705 2.65532 -9.45462 -1.7791 4.53385 -12.4077 -2.53199 4.74531 -12.275 -1.61704 4.47986 -9.1811 -3.23373 2.78436 1.56488 3.057 2.92591 8.66967 -6.51201 1.33088 7.85592 -7.39774 7.80008 8.90327 -2.98605 7.79553 9.45415 -4.45201 10.8526 6.88498 -5.1194 13.363 5.80969 -5.89364 13.3461 5.84977 -6.36265 9.02965 6.66135 -6.70637 9.20196 7.4439 -6.28823 12.9908 5.41844 -7.05157 13.1845 5.76624 -6.9226 13.0313 4.84152 -5.7474 12.9768 4.75024 -6.1747 10.5747 5.25772 -5.06769 12.9459 4.96814 -6.78141 8.90334 5.49249 -6.4416 13.2587 5.33916 -5.52126 10.6011 6.13135 -4.77824 13.2933 4.64735 -5.83855 13.293 4.60763 -6.30789 13.4856 4.50921 -6.36887 13.4643 4.39784 -5.73169 14.0341 4.3142 -6.47139 15.916 2.57102 -6.98588 15.4962 2.973 -7.1949 15.8106 2.984 -7.25625 15.4032 2.6826 -6.86954 15.8078 2.70591 -6.6436 16.0059 2.67141 -6.6978 15.8895 2.84945 -6.61303 15.5831 3.0486 -6.88223 15.8217 2.79571 -6.61317 15.807 3.16901 -6.90343 15.6254 3.00717 -7.21741 15.7887 3.07779 -7.25512 16.0492 3.68088 -7.17095 15.7543 4.32522 -6.38568 15.5741 4.39407 -6.94272 16.1468 3.52752 -6.60743 16.057 3.08546 -7.26796 16.1826 3.0572 -6.64709 16.5406 2.9985 -6.83048 16.6753 3.06733 -7.17753 16.6718 3.72472 -6.73253 16.7709 3.84858 -7.08616 16.1643 4.61426 -6.41649 16.2814 4.90387 -6.79568 16.3742 3.17757 -7.36087 16.4304 3.86181 -7.28728 15.9397 4.74311 -6.99791 16.0277 4.98736 -7.28329 16.0207 5.29558 -6.84915 15.7834 5.26698 -7.29055 14.8626 5.53459 -6.81974 16.3952 4.80393 -6.12619 16.1449 5.16732 -6.23018 15.3043 3.43155 -8.03436 15.106 3.24987 -7.98929 15.1385 3.35116 -7.96092 15.3758 3.30644 -8.12148 15.1 3.10652 -7.91233 15.4967 3.1276 -8.10426 15.3984 3.10013 -7.731 15.5944 3.14188 -7.78497 15.2763 3.24135 -7.70028 15.2606 3.41626 -7.91685 15.0944 3.32441 -7.85092 15.3569 3.2847 -7.70207 15.5389 3.86053 -8.08652 15.3356 4.50656 -7.37215 15.0777 4.57657 -7.84016 15.7457 3.8064 -7.63744 15.3605 3.49202 -7.97749 15.6769 3.21565 -7.78437 15.8941 3.40244 -7.89228 15.8556 3.45541 -8.20477 16.1619 4.05222 -8.19586 16.2454 4.05714 -7.83215 15.7373 4.90286 -7.506 15.5541 5.11035 -7.94583 15.5624 3.96396 -8.23734 15.6643 3.51989 -8.25739 15.4261 3.57553 -8.13727 15.9461 4.06151 -8.32252 15.3373 4.96442 -8.13732 15.1457 4.69718 -8.07797 14.9737 4.8433 -8.06638 14.9147 4.60782 -7.78247 14.1308 4.8184 -7.75152 14.0218 4.53997 -7.58247 13.5898 4.90819 -7.46205 13.5242 4.73186 -7.26308 13.238 4.95617 -7.18181 13.5993 5.61574 -7.05543 13.8461 5.70324 -6.4659 14.1607 5.62196 -6.58554 13.9437 5.53215 -7.24071 14.5885 5.53263 -7.51241 15.3741 5.2686 -7.79254 15.8848 4.70611 -5.6512 16.217 4.51242 -5.84042 15.0253 5.47207 -6.02761 14.9521 4.67315 -5.59454 14.326 5.53853 -5.92552 14.022 4.83805 -5.5129 13.7523 5.11841 -5.508 13.9642 5.62393 -5.86385 13.3535 4.72967 -6.52721 13.5302 4.58274 -6.6395 14.0383 4.39333 -6.8065 15.0431 4.59831 -6.83728 15.1379 4.53527 -6.41751 14.9883 3.24716 -5.91967 15.1758 2.66167 -5.93307 14.6727 3.1698 -5.85601 15.3994 2.80266 -6.00613 15.514 3.03407 -5.68714 15.1568 3.29647 -5.68539 15.3602 2.88242 -5.51099 15.0013 3.3189 -5.5055 15.1768 2.69683 -5.53617 14.6373 3.15652 -5.42188 15.0565 2.58108 -5.75927 14.4215 3.01018 -5.65362 14.9501 4.52241 -7.3181 14.0121 4.45517 -7.21174 13.4957 4.5925 -7.0276 14.3161 5.20281 -7.77232 15.163 5.12973 -8.07761 13.7668 5.22094 -7.48754 15.5884 2.90784 -5.59098 15.6039 2.59625 -5.58702 15.5379 2.58189 -5.92288 15.5355 2.75267 -5.53018 15.5001 2.4126 -5.76506 15.369 2.51117 -5.49222 15.2939 2.44358 -5.69492 15.5398 4.13583 -5.98531 15.8093 4.13513 -5.93457 13.4027 5.2927 -7.31096 12.8335 4.96905 -6.77731 13.2437 4.71493 -6.87779 14.0768 4.56923 -5.4221 13.6396 4.2028 -5.75951 14.2641 4.03696 -5.44503 13.9001 3.93672 -5.79596 14.1092 4.06804 -6.30304 14.2286 3.84738 -6.147 15.0327 3.99388 -6.14253 14.8656 3.81053 -6.04597 15.178 4.14482 -5.75086 15.064 3.92684 -5.66008 14.7909 4.08158 -5.48879 14.8367 4.40884 -5.59961 15.7836 2.97509 -7.6225 15.1768 3.00977 -7.41653 15.4419 3.26088 -7.45495 15.7614 3.21805 -7.60925 16.3255 3.25858 -7.71837 16.4982 3.99227 -7.58476 16.1024 2.44781 -6.44271 15.6354 2.61887 -6.36285 15.7859 2.65667 -6.16576 16.1228 2.55129 -6.13764 15.8638 2.85978 -6.14418 16.0676 2.989 -6.10255 15.8208 3.03997 -6.42976 16.1028 2.97603 -6.46083 16.1903 3.61506 -6.27066 16.2208 3.18328 -6.28585 16.6138 2.95928 -6.23374 16.7445 2.91958 -6.59816 16.7821 3.60787 -6.17135 16.98 3.72201 -6.48467 0.654398 14.2673 -3.16834 0.662894 13.1118 -3.38987 1.41772 14.0717 -2.99828 1.32519 12.9907 -3.17017 1.84447 13.6508 -2.60899 1.76602 12.9032 -2.73364 1.94232 13.2093 -2.12728 1.87748 12.6125 -2.24965 1.89125 12.839 -1.70038 1.87927 12.4205 -1.71463 2.07086 12.4298 -1.8913 2.09157 12.843 -1.88996 1.97624 12.4339 -1.2984 2.01472 12.9399 -1.3512 1.90014 12.613 -0.876206 1.9021 13.0084 -1.10228 1.89421 13.3711 -0.522517 1.90269 13.6775 -0.90505 1.77181 14.4339 -0.672672 1.71109 14.172 0.066704 1.35625 15.0732 -0.367807 1.33233 14.674 0.561682 0.702275 15.4145 -0.138297 0.690357 15.0319 0.825156 0.336357 9.52452 1.52934 0.341276 9.47855 2.47322 0.390118 9.87505 2.53914 0.379178 10.5599 2.2298 0.287319 11.0118 2.01767 1.04943 11.2979 1.52785 1.17297 10.8808 1.36216 1.15416 11.1101 1.34934 1.81352 12.8357 -0.085964 1.7257 11.6433 0.317818 1.98628 11.7492 -0.744731 1.67594 12.2554 0.777021 1.24909 9.78701 0.480812 0.71784 9.61739 1.21077 1.22419 9.93999 1.17162 0.809612 9.64937 1.82326 2.23741 10.2164 -0.521597 2.01095 10.7425 -1.05843 2.35901 10.736 -0.937604 1.83851 10.1536 -0.703813 2.3612 11.0996 -1.06203 2.0155 11.0996 -1.06203 2.12063 11.7492 -0.744731 1.93293 11.8484 -1.02686 2.18544 11.8273 -1.00445 2.29992 11.0916 -0.708555 2.07457 10.6797 -0.267862 2.38126 10.5821 -0.174443 2.09843 11.0916 -0.708555 1.69271 9.88157 0.328286 1.38806 9.51698 1.24089 2.0638 9.89113 0.181844 1.96586 10.2995 0.535723 1.78324 10.3909 0.414646 1.80572 11.013 0.2224 1.5291 10.9773 0.946594 1.38347 11.4043 0.841364 1.44914 11.3955 0.968796 1.38499 10.9229 0.749349 1.32262 10.2472 1.45326 1.21037 10.2322 1.36712 1.53235 10.4354 0.647201 1.62081 10.4675 0.873291 1.21266 10.6036 1.38178 1.29377 10.6185 1.47934 1.43513 10.6636 0.745632 1.60683 10.672 0.913202 1.29549 10.8958 1.43206 0.910566 11.4105 1.88767 1.12263 11.3103 1.60018 1.0968 11.7242 1.37017 0.861174 11.7973 1.28319 0.861174 11.8434 1.66491 1.13138 11.7291 1.15892 1.26573 11.1663 1.41327 0.250855 11.4546 2.5488 0.695704 11.4434 2.17934 0.460584 11.905 1.496 0.538265 11.9339 1.85996 0.838617 9.9629 2.13088 0.68572 10.5269 2.00619 0.692988 10.9484 1.82407 2.14146 13.1716 -1.88458 2.08457 13.3557 -1.40242 1.93603 11.9239 -1.25434 1.98407 12.0193 -1.6592 1.92708 13.3438 -1.27773 1.93423 13.0939 -1.76409 0.947946 12.5348 1.07129 1.36539 12.581 0.918937 0.943955 12.3434 1.27035 1.44753 12.018 0.982624 0.933858 12.1741 1.33031 1.26546 11.8289 1.09933 0.897625 11.9327 1.31298 1.96588 13.5399 -1.85554 0.787011 15.0714 -2.38784 1.47595 14.7842 -2.18631 1.85467 14.2587 -1.97288 1.92488 13.7924 -1.31525 1.4053 15.106 -1.22588 0.778844 15.4912 -1.06573 1.79101 14.592 -1.32371 1.33016 14.1084 1.08978 0.570026 14.2767 1.56665 1.74919 13.5869 0.367622 1.52847 10.8709 0.625449 1.5521 11.4105 0.652106 0.556632 12.006 1.45698 0.571808 12.1159 1.82554 0.163323 11.8946 2.23122 0.154045 12.0794 2.32102 1.66467 11.5141 0.553632 1.67366 10.8979 0.481987 0.183777 12.6565 1.71392 0.203392 12.7241 1.28912 0.429414 12.4292 1.38417 0.545918 12.5728 1.22073 0.153167 12.3329 2.2399 0.178013 12.5135 2.0569 0.458687 12.9202 1.8351 1.28434 13.1008 1.4244 0.428042 12.242 1.4826 0.506411 12.2645 1.787 1.63676 13.1803 0.76521 1.54747 12.8144 0.367398 0.313132 12.8669 1.43393 13.3594 19.0617 3.18893 12.2816 20.7533 3.56721 16.3279 24.881 3.21078 14.6209 18.6355 4.59636 13.1856 19.7256 5.39648 18.1267 16.6759 5.43141 13.1095 20.0165 6.36391 18.1369 17.1832 8.46127 10.0599 25.0818 2.40235 9.48273 25.6625 4.73247 13.4073 18.8785 2.57991 9.70893 24.2629 0.054142 18.1165 16.1685 2.40155 3.91941 14.3598 3.93666 1.41626 18.3275 3.84506 1.30885 17.3071 1.75872 3.61901 14.0309 5.31649 0.906693 19.3514 1.85579 1.07167 19.8984 3.23526 3.21746 20.9094 2.90985 3.30041 20.4405 1.22608 6.0428 22.4049 0.575705 5.99105 23.1104 2.75054 8.53128 24.7482 0.221573 8.74922 25.4664 2.38328 18.8792 14.5213 3.17373 18.905 14.9692 6.00593 15.6558 12.6612 3.99398 15.4615 13.4037 6.46298 11.8215 9.73748 7.16335 12.0049 9.03653 4.83264 9.5367 6.3262 5.41752 9.34234 7.06874 7.88651 8.35647 9.05067 5.37203 8.18077 8.87072 7.41751 5.39445 11.5752 6.17041 5.86818 11.2081 5.17411 3.88357 14.4267 6.18617 5.69773 14.4361 7.50644 1.52366 19.3478 5.9314 5.47508 13.8883 7.36696 5.68645 13.0292 3.7286 5.5395 12.9998 4.19998 5.63862 11.9858 7.25135 8.00508 8.69077 9.46299 5.49578 13.3159 5.77786 5.49354 13.3403 5.77197 5.49372 13.335 5.75665 5.46702 13.3531 5.76378 15.0595 15.2064 12.4151 11.6162 10.5216 9.77062 15.2671 14.1463 8.93197 12.1397 10.6149 13.6129 16.729 10.6543 0.852896 13.0781 7.02961 1.69155 9.14799 7.81128 10.3555 3.20463 20.0035 -0.945839 5.83873 21.8824 -1.98273 3.12057 21.4571 4.87652 5.95093 23.6576 4.4373 5.78537 24.3804 6.62433 2.55053 23.0107 8.15981 8.13512 25.9995 4.1849 18.9307 15.4172 8.83813 1.31186 20.6947 5.24375 -5.49868 4.2431 9.59884 -3.30467 6.12582 8.15662 -3.56288 6.46765 8.20632 -5.36202 3.8634 9.53931 -5.30747 3.62426 9.21337 -3.17272 5.88958 7.82081 -5.367 3.66577 8.81196 -3.24431 5.89732 7.3956 -5.50573 3.96361 8.57022 -3.47752 6.1445 7.13008 -5.6424 4.34331 8.62975 -3.73573 6.48633 7.17978 -3.86769 6.72257 7.51559 -5.69695 4.58245 8.95569 -3.79609 6.71483 7.9408 -5.63741 4.54094 9.3571 2.21353 11.3148 6.28177 2.45821 10.9892 6.22592 2.67786 10.7583 6.4857 2.7438 10.7574 6.90893 2.61742 10.9871 7.24769 2.37274 11.3127 7.30354 2.1531 11.5436 7.04376 2.08715 11.5445 6.62053 1.32028 10.3296 7.07501 1.544 9.96582 7.03051 1.74081 9.69552 7.29992 1.79542 9.67705 7.72542 1.67584 9.92123 8.05777 1.45212 10.285 8.10227 1.25531 10.5553 7.83286 1.2007 10.5738 7.40736 0.979954 10.2257 6.93255 1.28136 9.73562 6.8726 1.54652 9.37146 7.23556 1.62009 9.34658 7.80882 1.45899 9.67555 8.25657 1.15758 10.1657 8.31652 0.892424 10.5298 7.95356 0.818851 10.5547 7.3803 1.47826 10.0284 7.22014 1.33673 10.2585 7.24829 1.60276 9.85738 7.39056 1.6373 9.8457 7.65973 1.56166 10.0002 7.86997 1.42014 10.2303 7.89812 1.29564 10.4013 7.7277 1.26109 10.413 7.45853 -3.63358 6.41563 7.38918 -3.48682 6.22134 7.36094 -3.35427 6.08085 7.51185 -3.31358 6.07645 7.75353 -3.38857 6.21072 7.94439 -3.53533 6.405 7.97264 -3.66788 6.5455 7.82172 -3.70857 6.54989 7.58005 -3.59484 6.76963 6.89758 -3.2077 6.25712 6.82306 -2.85805 5.88652 7.22116 -2.75071 5.87492 7.85868 -2.94855 6.22911 8.36216 -3.33568 6.74161 8.43668 -3.68533 7.11221 8.03858 -3.79268 7.12381 7.40106 -11.3732 0.757266 10.2137 -9.85854 1.23131 11.0085 -11.2195 1.30127 10.9008 -10.1073 0.350512 9.89598 -10.0996 2.62591 11.2773 -11.3685 2.16262 11.0668 -10.6894 3.71737 10.5451 -11.7327 2.83674 10.6146 -11.2824 3.86634 9.24064 -12.099 2.92875 9.80893 -11.5312 2.98555 8.12815 -12.2526 2.38475 9.12182 -11.2901 1.59094 7.85929 -12.1037 1.5234 8.95576 -10.7003 0.499474 8.59154 -11.7394 0.849272 9.40803 -10.0547 3.03171 8.04388 -9.88129 3.64576 8.81945 -9.4679 3.54191 9.72884 -9.05673 2.78099 10.2393 -8.88865 1.80874 10.0519 -9.0621 1.19469 9.27632 -9.47549 1.29854 8.36694 -9.88665 2.05945 7.85645 -8.90133 3.45666 8.351 -8.80478 3.79848 8.78272 -8.57467 3.74067 9.28892 -8.3458 3.31711 9.57309 -8.25223 2.77591 9.46875 -8.34879 2.4341 9.03703 -8.57889 2.49191 8.53083 -8.80776 2.91547 8.24667 6.73852 23.8955 7.66634 7.59797 16.6999 9.86181 10.7031 19.1141 9.38017 2.99466 22.13 9.28078 3.76665 18.6724 -1.32241 8.31708 13.9525 0.726415 6.90976 20.947 -2.43826 11.4223 16.3667 0.24478 10.77 12.0345 13.6014 14.0143 16.8782 12.3533 11.7836 8.16218 0.725737 15.7589 12.039 -0.16323</float_array>
+ <float_array id="polySurfaceShape2-positions-array" count="4533">3.62848 -12.4982 -0.669225 3.6636 -12.9604 -0.801608 4.44458 -12.5396 -0.822551 3.16033 -12.9883 -1.25284 4.40577 -13.0257 -0.97118 -4.43461 -12.5396 -0.822551 -3.65363 -12.9604 -0.801608 -3.61851 -12.4982 -0.669225 3.67079 -12.0401 -0.847936 4.39351 -11.9731 -0.991988 3.01848 -12.5656 -1.2707 4.63883 -13.0054 -1.70853 4.82411 -12.6717 -1.6489 4.74531 -12.275 -1.61704 -4.3958 -13.0257 -0.97118 -3.15036 -12.9883 -1.25284 -3.00851 -12.5656 -1.2707 -3.66082 -12.0401 -0.847936 -4.38355 -11.9731 -0.991988 3.43378 -11.8171 -1.33812 3.16798 -12.2674 -1.31886 2.84588 -12.6225 -2.02597 2.98369 -12.969 -2.13231 2.88174 -12.9885 -2.62947 4.44971 -13.0345 -2.61786 4.41356 -11.8312 -1.56592 -4.73534 -12.275 -1.61704 -4.81415 -12.6717 -1.6489 -4.62886 -13.0054 -1.70853 -2.97372 -12.969 -2.13231 -2.83591 -12.6225 -2.02597 -3.15801 -12.2674 -1.31886 -3.42381 -11.8171 -1.33812 -4.43974 -13.0345 -2.61786 -2.87177 -12.9885 -2.62947 3.88327 -12.9868 -3.66004 2.78746 -13.0167 -3.24708 2.71712 -12.584 -2.62779 3.20816 -12.9089 -3.81198 4.3427 -13.0215 -3.13202 4.60587 -12.6797 -2.60878 4.53385 -12.4077 -2.53199 4.21726 -11.9524 -2.32929 -4.40359 -11.8312 -1.56592 -4.33273 -13.0215 -3.13202 -3.8733 -12.9868 -3.66004 -3.19819 -12.9089 -3.81198 -2.77749 -13.0167 -3.24708 -2.70715 -12.584 -2.62779 3.21324 -11.9479 -2.16119 2.97017 -12.348 -2.09699 2.68175 -12.545 -3.31926 3.21329 -12.5698 -3.91593 4.03396 -12.648 -3.73765 4.47279 -12.6834 -3.14976 -4.20729 -11.9524 -2.32929 -4.52388 -12.4077 -2.53199 -4.5959 -12.6797 -2.60878 -4.46282 -12.6834 -3.14976 -4.02399 -12.648 -3.73765 -3.20332 -12.5698 -3.91593 -2.9602 -12.348 -2.09699 -3.20327 -11.9479 -2.16119 -2.67179 -12.545 -3.31926 4.23268 -12.2252 -2.94866 4.10531 -11.9531 -2.55965 15.0944 3.32441 -7.85092 15.1 3.10652 -7.91233 15.2763 3.24135 -7.70028 15.4419 3.26088 -7.45495 15.1768 3.00977 -7.41653 15.6254 3.00717 -7.21741 15.4962 2.973 -7.1949 15.5831 3.0486 -6.88223 15.8217 2.79571 -6.61317 15.8078 2.70591 -6.6436 15.8208 3.03997 -6.42976 15.6354 2.61887 -6.36285 15.8895 2.84945 -6.61303 15.807 3.16901 -6.90343 15.7887 3.07779 -7.25512 15.3569 3.2847 -7.70207 15.2606 3.41626 -7.91685 3.20294 -11.9747 -2.42056 2.89596 -12.2441 -2.81057 3.35799 -12.2099 -3.67 3.82929 -12.2768 -3.53095 15.1385 3.35116 -7.96092 15.106 3.24987 -7.98929 15.3984 3.10013 -7.731 15.4032 2.6826 -6.86954 15.8638 2.85978 -6.14418 15.7859 2.65667 -6.16576 15.7614 3.21805 -7.60925 -4.09534 -11.9531 -2.55965 -4.22271 -12.2252 -2.94866 -3.81932 -12.2768 -3.53095 -3.34803 -12.2099 -3.67 -2.88599 -12.2441 -2.81057 -3.19297 -11.9747 -2.42056 2.86382 -12.2546 -3.19264 4.16798 -11.8128 -2.99195 15.3043 3.43155 -8.03436 15.3758 3.30644 -8.12148 15.4967 3.1276 -8.10426 15.7836 2.97509 -7.6225 15.916 2.57102 -6.98588 16.0676 2.989 -6.10255 16.1029 2.97603 -6.46083 16.1024 2.44781 -6.44271 16.1228 2.55129 -6.13764 15.5379 2.58189 -5.92288 15.6039 2.59625 -5.58702 15.5001 2.4126 -5.76506 16.1826 3.0572 -6.64709 16.057 3.08546 -7.26796 15.6769 3.21565 -7.78437 15.3605 3.49202 -7.97749 -2.85385 -12.2546 -3.19264 3.237 -11.6144 -2.47072 2.95126 -11.7618 -2.81622 2.92409 -11.8805 -3.22763 3.81583 -11.8728 -3.53297 4.05964 -11.5893 -2.56268 15.5944 3.14188 -7.78497 15.8106 2.984 -7.25625 15.5884 2.90784 -5.59098 16.0059 2.67141 -6.6978 15.369 2.51117 -5.49222 15.3994 2.80266 -6.00613 15.1758 2.66167 -5.93307 -4.15801 -11.8128 -2.99195 -3.80586 -11.8728 -3.53297 -2.91412 -11.8805 -3.22763 -3.22703 -11.6144 -2.47072 -2.94129 -11.7618 -2.81622 3.32549 -11.8588 -3.6301 4.47986 -9.18109 -3.23373 4.02934 -9.36196 -2.0288 15.4261 3.57553 -8.13727 15.6643 3.51989 -8.25739 15.8941 3.40244 -7.89228 16.3742 3.17757 -7.36087 15.5355 2.75267 -5.53018 15.514 3.03407 -5.68714 16.5406 2.9985 -6.83048 16.2208 3.18328 -6.28585 16.6138 2.95928 -6.23374 16.7445 2.91958 -6.59816 15.2939 2.44358 -5.69492 14.9883 3.24716 -5.91967 16.1468 3.52752 -6.60743 16.0492 3.68088 -7.17095 15.7457 3.8064 -7.63744 -4.04967 -11.5893 -2.56268 -3.31553 -11.8588 -3.6301 2.04218 -9.44187 -2.85873 2.105 -9.53038 -3.74227 3.0871 -9.45715 -4.30321 4.21579 -9.23583 -3.95213 2.65532 -9.45462 -1.7791 15.5389 3.86053 -8.08652 15.8556 3.45541 -8.20477 16.3255 3.25858 -7.71837 16.6753 3.06733 -7.17753 15.3602 2.88242 -5.51099 15.1768 2.69683 -5.53617 15.0565 2.58108 -5.75927 15.1568 3.29647 -5.68539 -4.01937 -9.36196 -2.0288 -4.46989 -9.18109 -3.23373 -4.20582 -9.23583 -3.95213 -3.07714 -9.45715 -4.30321 -2.09503 -9.53038 -3.74227 -2.03221 -9.44187 -2.85873 4.43845 -9.45874 -4.42154 5.35549 -9.42016 -2.35534 4.64241 -9.54418 -1.06231 15.5624 3.96396 -8.23734 15.9461 4.06151 -8.32252 16.1619 4.05222 -8.19586 16.2454 4.05714 -7.83215 16.4304 3.86181 -7.28728 16.7709 3.84858 -7.08616 16.6718 3.72472 -6.73253 16.1903 3.61506 -6.27066 16.7821 3.60787 -6.17135 14.6727 3.1698 -5.85601 14.8656 3.81053 -6.04597 15.7543 4.32522 -6.38568 15.5741 4.39407 -6.94272 15.3356 4.50656 -7.37215 -2.64535 -9.45462 -1.7791 1.26041 -9.54598 -2.50871 1.59312 -9.56789 -4.185 2.71581 -9.60363 -5.00456 5.42665 -9.33343 -3.35082 2.24371 -9.59952 -0.855134 15.0777 4.57657 -7.84016 16.4982 3.99227 -7.58476 15.0013 3.3189 -5.5055 16.98 3.72201 -6.48467 14.6373 3.15652 -5.42188 14.4215 3.01018 -5.65362 15.064 3.92684 -5.66008 -4.63244 -9.54418 -1.06231 -5.34552 -9.42016 -2.35534 -4.42848 -9.45874 -4.42154 -2.70585 -9.60363 -5.00456 -1.25044 -9.54598 -2.50871 -1.58315 -9.56789 -4.185 4.50379 -8.09957 -3.11575 4.50251 -8.15461 -2.29111 4.08348 -8.23011 -1.41956 2.31659 -8.29948 -1.3501 15.1457 4.69718 -8.07797 15.3373 4.96442 -8.13732 15.5541 5.11035 -7.94583 15.7373 4.90286 -7.506 16.0277 4.98736 -7.28329 15.9397 4.74311 -6.99791 16.2814 4.90387 -6.79568 16.1643 4.61426 -6.41649 15.8093 4.13513 -5.93457 16.217 4.51242 -5.84042 16.3952 4.80393 -6.12619 14.2286 3.84738 -6.147 15.0327 3.99388 -6.14253 15.5398 4.13583 -5.98531 15.1379 4.53527 -6.41751 15.0431 4.59831 -6.83728 14.9501 4.52241 -7.3181 -2.23374 -9.59952 -0.855134 -5.41668 -9.33343 -3.35082 1.58836 -8.21696 -2.5035 1.88913 -8.21984 -3.5379 2.71213 -8.2158 -4.11549 3.76379 -8.12692 -3.76969 14.9737 4.8433 -8.06638 14.7909 4.08158 -5.48879 15.178 4.14482 -5.75086 15.8848 4.70611 -5.6512 14.2641 4.03696 -5.44503 13.9001 3.93672 -5.79596 14.9147 4.60782 -7.78247 0.428042 12.242 1.4826 0.178013 12.5135 2.0569 0.506411 12.2645 1.787 2.34738 -7.75024 -1.55921 -2.30663 -8.29948 -1.3501 -4.07351 -8.23011 -1.41956 -4.49255 -8.15461 -2.29111 -4.49382 -8.09957 -3.11575 -2.70216 -8.2158 -4.11549 -1.87916 -8.21984 -3.5379 4.1139 -7.5783 -3.01643 4.14215 -7.61995 -2.26398 3.84735 -7.67494 -1.5705 15.163 5.12973 -8.07761 15.3741 5.2686 -7.79254 15.7834 5.26698 -7.29055 16.0207 5.29558 -6.84915 16.1449 5.16732 -6.23018 14.1092 4.06804 -6.30304 14.0341 4.3142 -6.47139 14.0218 4.53997 -7.58247 14.0383 4.39333 -6.8065 0.614783 12.8172 1.09918 0.810264 12.9096 1.09848 0.483226 12.8134 1.06424 0.203392 12.7241 1.28912 0.545918 12.5728 1.22073 0.920562 12.7897 1.04955 0.183777 12.6565 1.71392 0.429414 12.4292 1.38417 0.960669 12.9288 1.07988 0.153167 12.3329 2.2399 0.0049839 12.5556 2.12443 0.0049839 12.3692 2.34819 0.154045 12.0794 2.32102 0.0049839 12.071 2.49498 0.571808 12.1159 1.82554 1.72691 -7.65548 -2.50131 -1.57839 -8.21696 -2.5035 -3.75383 -8.12692 -3.76969 2.01419 -7.65032 -3.26451 2.71057 -7.62948 -3.73988 3.47877 -7.56427 -3.4943 14.1308 4.8184 -7.75152 14.3161 5.20281 -7.77232 14.8367 4.40884 -5.59961 13.6396 4.2028 -5.75951 14.0121 4.45517 -7.21174 0.0049839 12.7459 1.81703 -0.143199 12.3329 2.2399 -0.144077 12.0794 2.32102 0.458687 12.9202 1.8351 0.313132 12.8669 1.43393 0.0049839 12.8513 1.70251 0.947946 12.5348 1.07129 1.14303 12.8174 0.946114 0.0049839 11.8896 2.32503 0.556632 12.006 1.45698 3.87511 -7.22504 -1.01494 2.12349 -7.34808 -1.37085 -2.33742 -7.75024 -1.55921 -3.83738 -7.67494 -1.5705 -4.13219 -7.61995 -2.26398 -4.10393 -7.5783 -3.01643 -2.7006 -7.62948 -3.73988 -2.00422 -7.65032 -3.26451 -1.71694 -7.65548 -2.50131 1.43835 -7.07101 -2.43344 1.74952 -7.04008 -3.44657 4.19276 -6.97995 -3.06325 4.20188 -7.16211 -1.99206 14.5885 5.53263 -7.51241 14.8626 5.53459 -6.81974 15.0253 5.47207 -6.02761 14.0768 4.56923 -5.4221 14.9521 4.67315 -5.59454 13.5242 4.73186 -7.26308 13.5898 4.90819 -7.46205 13.5302 4.58274 -6.6395 13.4957 4.5925 -7.0276 1.28434 13.1008 1.4244 -0.168046 12.5135 2.0569 0.943955 12.3434 1.27035 0.933858 12.1741 1.33032 1.12456 12.9232 0.963511 0.250855 11.4546 2.5488 0.0049839 11.451 2.62456 0.163323 11.8946 2.23122 0.460584 11.905 1.496 0.861174 11.7973 1.28319 -3.4688 -7.56426 -3.4943 -1.73955 -7.04008 -3.44657 0.978878 -5.1407 -2.09565 2.6509 -7.0701 -4.18032 3.71344 -6.97888 -3.75535 13.7668 5.22094 -7.48754 13.9437 5.53215 -7.24071 13.4643 4.39784 -5.73169 13.4856 4.50921 -6.36887 -0.153355 11.8946 2.23122 -0.240887 11.4546 2.5488 0.570026 14.2767 1.56665 -0.17381 12.6565 1.71392 -0.496443 12.2645 1.787 -0.561841 12.1159 1.82554 -0.303165 12.8669 1.43393 -0.193424 12.7241 1.28912 0.0049839 13.053 1.80781 0.897625 11.9327 1.31298 1.36539 12.581 0.918937 1.20531 12.8538 0.873037 1.63676 13.1803 0.76521 0.0049839 11.3654 2.45419 0.538265 11.9339 1.85996 0.861174 11.8434 1.66491 4.68665 -5.15681 -1.21931 1.7492 -5.80926 -0.184196 -2.11352 -7.34808 -1.37085 -1.42838 -7.07101 -2.43344 -3.86514 -7.22504 -1.01494 -4.19191 -7.16211 -1.99206 -4.18279 -6.97995 -3.06325 -2.64093 -7.0701 -4.18032 1.34556 -4.93128 -3.52322 3.75815 -4.91637 -3.97384 4.57098 -4.91715 -2.68162 14.1607 5.62196 -6.58554 14.022 4.83805 -5.5129 14.326 5.53853 -5.92552 13.238 4.95617 -7.18181 13.4027 5.2927 -7.31096 13.3535 4.72967 -6.52721 13.2437 4.71493 -6.87779 1.33016 14.1084 1.08978 -0.851206 11.7973 1.28319 -0.851206 11.8434 1.66491 -0.450616 11.905 1.496 -0.800296 12.9096 1.09848 -0.473259 12.8134 1.06424 -0.418074 12.242 1.4826 -0.528297 11.9339 1.85996 -0.546664 12.006 1.45698 -0.44872 12.9202 1.8351 0.0049839 14.2709 1.66247 1.26546 11.8289 1.09933 1.44753 12.018 0.982624 0.250855 11.3822 2.2392 0.695704 11.4434 2.17934 1.13138 11.7291 1.15892 1.0968 11.7242 1.37017 4.08139 -5.5716 -0.148863 1.49837 -4.55871 0.098 -0.96891 -5.1407 -2.09565 -3.70348 -6.97888 -3.75535 -1.3356 -4.93128 -3.52322 1.04269 -3.77751 -3.54334 2.43641 -4.92345 -4.44274 13.7523 5.11841 -5.508 13.2933 4.64735 -5.83855 13.293 4.60763 -6.30789 -0.685737 11.4434 2.17934 -0.240887 11.3822 2.2392 0.690357 15.0319 0.825156 -1.08683 11.7242 1.37017 -0.604815 12.8172 1.09918 -0.53595 12.5728 1.22073 -0.910594 12.7897 1.04955 -0.419446 12.4292 1.38417 -0.887657 11.9327 1.31298 -1.12141 11.7291 1.15892 -0.950701 12.9288 1.07988 -0.560058 14.2767 1.56665 0.0049839 15.1545 0.954001 1.67594 12.2554 0.777021 1.54747 12.8144 0.367398 1.74919 13.5869 0.367622 0.0049839 11.3255 1.98742 0.487759 11.4311 1.92113 0.255405 11.325 1.80935 0.910566 11.4105 1.88767 1.38346 11.4043 0.841364 1.12263 11.3103 1.60018 4.68985 -3.65687 -0.965077 4.08822 -4.29103 0.290359 0.833254 -3.833 -1.77611 -1.73923 -5.80926 -0.184196 -4.67668 -5.15681 -1.21931 -4.56102 -4.91715 -2.68162 -3.74818 -4.91638 -3.97384 -2.42644 -4.92345 -4.44274 -1.03272 -3.77751 -3.54334 4.49888 -3.39731 -2.54029 13.5993 5.61574 -7.05543 13.8461 5.70324 -6.4659 12.8335 4.96905 -6.77731 12.9908 5.41844 -7.05157 12.9768 4.75024 -6.1747 -0.900598 11.4105 1.88767 -0.477791 11.4311 1.92113 -0.245437 11.325 1.80935 1.71109 14.172 0.066704 1.33233 14.674 0.561682 -1.11266 11.3103 1.60018 -0.937979 12.5348 1.07129 -0.923891 12.1741 1.33032 -1.25549 11.8289 1.09933 -1.13306 12.8174 0.946114 -1.27437 13.1008 1.4244 1.5521 11.4105 0.652106 1.66467 11.5141 0.553632 0.456914 11.3249 1.56541 0.749558 11.3352 1.8466 1.44914 11.3955 0.968796 1.26573 11.1663 1.41327 1.37414 -3.93933 0.237767 -1.48841 -4.55871 0.098 -4.07142 -5.5716 -0.148863 -0.823286 -3.833 -1.77611 0.892677 -3.20607 -3.5533 2.21987 -3.64516 -4.91757 3.69036 -3.36757 -4.08236 4.58485 -2.85745 -2.40442 13.9642 5.62393 -5.86385 13.2587 5.33916 -5.52126 -0.73959 11.3352 1.8466 -0.446946 11.3249 1.56541 1.89421 13.3711 -0.522517 1.77181 14.4339 -0.672672 1.35625 15.0732 -0.367807 0.702275 15.4145 -0.138297 0.0049839 15.5596 -0.023653 -1.43917 11.3955 0.968796 -1.25576 11.1663 1.41327 -1.3735 11.4043 0.841365 -0.933987 12.3434 1.27035 -1.1146 12.9232 0.963511 -0.680389 15.0319 0.825156 1.81352 12.8357 -0.085964 1.7257 11.6433 0.317818 0.30569 11.2962 2.1372 1.04943 11.2979 1.52785 1.38499 10.9229 0.749349 1.5291 10.9773 0.946594 4.0916 -3.65677 0.5079 0.761129 -3.18531 -1.61785 -4.07825 -4.29103 0.290359 -4.67988 -3.65687 -0.965077 -4.48892 -3.39731 -2.54029 -0.882709 -3.20607 -3.5533 -3.6804 -3.36757 -4.08236 -2.2099 -3.64516 -4.91757 -0.751161 -3.18531 -1.61785 4.69143 -2.91398 -0.83916 13.1845 5.76624 -6.9226 13.3461 5.84977 -6.36265 13.363 5.80969 -5.89364 13.0313 4.84152 -5.7474 -1.03946 11.2979 1.52785 -0.295722 11.2962 2.1372 2.01472 12.9399 -1.3512 2.14146 13.1716 -1.88458 2.08457 13.3557 -1.40242 1.9021 13.0084 -1.10228 1.90269 13.6775 -0.90505 -1.54214 11.4105 0.652106 -1.37503 10.9229 0.74935 -1.51914 10.9773 0.946594 -1.35542 12.581 0.918937 -1.43756 12.018 0.982624 -1.19534 12.8538 0.873037 -1.32019 14.1084 1.08978 -1.62679 13.1803 0.76521 -0.692307 15.4145 -0.138297 -1.32236 14.674 0.561682 0.0049839 11.2682 2.28847 1.67366 10.8979 0.481987 1.80572 11.013 0.2224 1.52847 10.8709 0.625449 1.15416 11.1101 1.34934 1.92708 13.3438 -1.27773 1.90014 12.613 -0.876206 0.360411 -3.27238 -1.57812 -1.36418 -3.93933 0.237767 -0.350443 -3.27238 -1.57812 2.11262 -3.01205 -5.15274 3.65679 -2.60046 -4.13611 5.13391 -2.82217 -2.60374 10.5375 6.56434 -6.79613 10.9178 7.06315 -6.04288 10.5747 5.25772 -5.06769 10.5228 4.56693 -5.8066 12.9459 4.96814 -6.78141 10.343 5.28935 -7.04991 10.4152 6.05482 -7.12147 2.09157 12.843 -1.88996 2.07086 12.4298 -1.8913 1.97624 12.4339 -1.2984 -1.14419 11.1101 1.34934 1.93423 13.0939 -1.76409 1.92488 13.7924 -1.31525 1.4053 15.106 -1.22588 0.778844 15.4912 -1.06573 0.0049839 15.6672 -0.970554 -1.34628 15.0732 -0.367807 -1.5185 10.8709 0.625449 -1.70112 14.172 0.066704 0.0049839 11.0348 2.07361 2.09843 11.0916 -0.708555 1.98628 11.7492 -0.744731 1.43513 10.6636 0.745632 0.287319 11.0118 2.01767 0.692988 10.9484 1.82407 1.60683 10.672 0.913202 1.29549 10.8958 1.43206 1.17297 10.8808 1.36216 5.0843 -3.12131 -0.569078 3.9943 -3.98334 1.25226 0.693847 -3.9386 0.480636 0.0049839 -3.34775 -1.54373 0.0049839 -3.93787 0.723505 -4.08163 -3.65677 0.5079 -4.57488 -2.85745 -2.40442 -2.10266 -3.01205 -5.15274 -0.273524 -3.47805 -4.14795 -0.68388 -3.9386 0.480636 0.283491 -3.47805 -4.14795 10.6011 6.13135 -4.77824 10.8526 6.88498 -5.1194 9.46282 6.47173 -6.83615 9.36411 5.42747 -6.63629 1.89125 12.839 -1.70038 1.98407 12.0193 -1.6592 -1.28553 10.8958 1.43206 -1.163 10.8808 1.36216 -0.68302 10.9484 1.82407 -0.277351 11.0118 2.01767 1.79101 14.592 -1.32371 -0.768877 15.4912 -1.06573 -1.39533 15.106 -1.22588 -1.76184 14.4339 -0.672672 -1.66369 10.8979 0.481987 -1.42516 10.6636 0.745632 -1.59686 10.672 0.913203 -1.66597 12.2554 0.777021 -1.53751 12.8144 0.367398 -1.6547 11.5141 0.553632 -1.73922 13.5869 0.367622 1.78324 10.3909 0.414646 2.07457 10.6797 -0.267862 2.12063 11.7492 -0.744731 1.93603 11.9239 -1.25434 0.0049839 -4.72127 2.6547 -4.68147 -2.91398 -0.83916 -3.64682 -2.60046 -4.13611 2.3649 -3.75935 -6.10045 4.32019 -3.12584 -5.03467 0.0049839 -3.59856 -4.41142 6.01635 -2.9408 -2.69287 5.78115 -3.25978 -0.388686 9.67914 6.3069 -4.36688 9.59159 5.26365 -4.45748 9.59852 7.18273 -6.43904 9.08616 4.84135 -5.13842 1.87928 12.4205 -1.71463 1.96588 13.5399 -1.85554 1.85467 14.2587 -1.97288 1.47595 14.7842 -2.18631 0.787011 15.0714 -2.38784 0.0049839 15.2585 -2.43658 -1.78104 14.592 -1.32371 -1.79575 11.013 0.2224 -1.91492 13.7924 -1.31525 -1.89272 13.6775 -0.90505 -1.88424 13.3711 -0.522517 0.0049839 10.5358 2.25302 1.53235 10.4354 0.647201 2.29992 11.0916 -0.708555 1.62081 10.4675 0.873291 0.68572 10.5269 2.00619 1.21266 10.6036 1.38178 1.29377 10.6185 1.47934 1.93293 11.8484 -1.02686 1.76549 12.0396 -1.49873 -3.98433 -3.98334 1.25226 -5.07433 -3.12131 -0.569078 -5.12394 -2.82217 -2.60374 -2.35493 -3.75935 -6.10045 -4.31023 -3.12584 -5.03467 0.0049839 -4.40084 -6.5276 5.32362 -1.84969 -2.31417 9.27457 5.26555 -4.2607 9.49949 7.70583 -5.4411 9.33869 7.42098 -4.69524 9.02965 6.66135 -6.70637 8.90334 5.49249 -6.4416 9.26607 6.38555 -4.18258 1.94232 13.2093 -2.12728 1.87748 12.6125 -2.24965 -1.20269 10.6036 1.38178 -0.675753 10.5269 2.00619 -0.777043 15.0714 -2.38784 -1.46598 14.7842 -2.18631 -1.52238 10.4354 0.647201 -1.61084 10.4675 0.873291 -1.2838 10.6185 1.47934 -1.80356 12.8357 -0.085964 -1.71573 11.6433 0.317818 -1.77327 10.3909 0.414646 -1.91711 13.3438 -1.27773 -2.1315 13.1716 -1.88458 -2.0746 13.3557 -1.40242 -1.92426 13.0939 -1.76409 -1.95591 13.5399 -1.85554 -1.8447 14.2587 -1.97288 -0.36921 10.5599 2.2298 1.96586 10.2995 0.535723 2.38126 10.5821 -0.174443 2.18544 11.8273 -1.00445 2.3612 11.0996 -1.06203 0.379178 10.5599 2.2298 5.11684 -1.7621 -0.237879 3.92932 -4.20146 1.74942 4.76329 -3.47675 -5.63482 2.5334 -4.25848 -6.73344 3.75325 -2.0234 -4.77582 5.21056 -1.33865 -2.26129 9.20196 7.4439 -6.28823 8.81985 8.29333 -3.46305 1.71133 12.2172 -2.14934 1.84447 13.6508 -2.60899 1.41772 14.0717 -2.99828 0.0049839 14.3818 -3.25497 -2.08846 11.0916 -0.708555 -2.06461 10.6797 -0.267862 -2.00475 12.9399 -1.3512 -1.89213 13.0084 -1.10228 -2.0816 12.843 -1.88996 0.0049839 9.96259 2.56324 2.35901 10.736 -0.937604 1.32262 10.2472 1.45326 0.838617 9.9629 2.13088 1.21037 10.2322 1.36712 2.0155 11.0996 -1.06203 1.71339 11.2957 -1.41203 0.0049839 -5.06304 3.49718 -3.91935 -4.20146 1.74942 -5.77118 -3.25978 -0.388687 -6.00638 -2.9408 -2.69287 -4.75332 -3.47675 -5.63482 -2.52343 -4.25848 -6.73344 0.0049839 -4.68007 -7.26411 4.93838 -1.29043 0.0802741 8.03537 4.99569 -3.13234 8.05105 4.1121 -4.9493 8.47513 8.23644 -6.72726 8.90892 8.91384 -5.1894 7.9373 4.8413 -6.78166 8.1543 6.55144 -7.5038 8.64524 6.80236 -2.5886 1.76602 12.9032 -2.73364 1.61261 12.3607 -2.55117 1.67964 11.4548 -1.995 -1.31265 10.2472 1.45326 -1.2004 10.2322 1.36712 -0.828649 9.9629 2.13088 0.654398 14.2673 -3.16834 -1.40775 14.0717 -2.99828 -1.95589 10.2995 0.535723 -1.97631 11.7492 -0.744731 -1.89017 12.613 -0.876206 -2.37129 10.5821 -0.174443 -2.28995 11.0916 -0.708555 -1.88128 12.839 -1.70038 -1.93235 13.2093 -2.12728 -1.8345 13.6508 -2.60899 -0.38015 9.87505 2.53914 1.38806 9.51698 1.24089 2.0638 9.89113 0.181844 2.23741 10.2164 -0.521597 2.01095 10.7425 -1.05843 0.390118 9.87505 2.53914 2.92979 -2.28656 1.58509 0.0049839 -3.03784 2.60443 1.92714 -2.40045 -5.94251 0.0049839 -2.79313 -6.50063 3.32267 -1.19912 -4.76911 5.1824 -0.882015 -2.36007 8.52742 9.26625 -4.92541 8.46737 8.63215 -3.18597 1.53415 11.5027 -2.49591 1.32519 12.9907 -3.17017 -0.64443 14.2673 -3.16834 0.662894 13.1118 -3.38987 0.0049839 13.1654 -3.49589 -1.37809 9.51698 1.24089 -2.11066 11.7492 -0.744731 -1.96627 12.4339 -1.2984 -2.0609 12.4298 -1.8913 0.0049839 9.54072 2.45802 1.22419 9.93999 1.17162 0.341276 9.47855 2.47322 0.809612 9.64937 1.82326 1.61471 10.6566 -1.06481 1.62642 10.8689 -1.99938 2.98128 -1.43575 2.06559 -5.10687 -1.7621 -0.237879 -5.31365 -1.84969 -2.31417 -3.74328 -2.0234 -4.77582 -1.91718 -2.40045 -5.94251 5.23515 -0.274997 0.4839 7.47331 4.99905 -2.72883 7.36541 4.08471 -4.55885 7.24123 4.88874 -6.57015 7.9602 8.68548 -6.6368 7.44786 6.87143 -7.4806 8.26597 6.98025 -2.10798 1.2854 12.4121 -2.7859 1.22342 11.6001 -2.90628 1.58407 10.9895 -2.60058 -1.21422 9.93999 1.17162 -0.799644 9.64937 1.82326 -0.331309 9.47855 2.47322 -0.652926 13.1118 -3.38987 -1.31522 12.9907 -3.17017 -2.05383 9.89113 0.181843 -2.35123 11.0996 -1.06203 -2.34904 10.736 -0.937604 -1.9741 12.0193 -1.6592 -1.86931 12.4205 -1.71463 -1.86751 12.6125 -2.24965 -1.75606 12.9032 -2.73364 1.69271 9.88157 0.328286 1.83851 10.1536 -0.703813 1.92255 10.437 -2.64796 1.70011 9.70394 -1.84551 -2.91982 -2.28656 1.58509 0.0049839 -1.73199 -5.97024 1.64065 -1.47602 -5.64364 3.33036 -0.526209 -5.0884 5.29206 -0.484642 -2.54256 7.58306 7.23314 -1.71178 7.80008 8.90327 -2.98605 7.07575 9.15374 -6.19501 7.79553 9.45415 -4.45201 2.3828 10.1863 -1.88224 2.52255 10.8148 -2.74397 3.16191 10.2839 -2.84626 0.601988 12.4859 -3.04633 0.0049839 12.4938 -3.12932 -2.22744 10.2164 -0.521597 -1.68274 9.88157 0.328286 -2.17547 11.8273 -1.00445 -1.92606 11.9239 -1.25434 -1.92297 11.8484 -1.02686 0.0049839 9.44297 1.76953 1.24909 9.78701 0.480812 0.336357 9.52452 1.52934 0.71784 9.61739 1.21077 1.39594 9.94143 -1.06036 2.88512 0.444816 2.60751 0.0049839 -1.5483 3.38698 -2.97131 -1.43575 2.06559 -4.92841 -1.29043 0.0802751 -5.20059 -1.33865 -2.26129 -3.3127 -1.19912 -4.76911 3.11026 9.76679 -1.92137 6.70284 9.1329 -2.5821 1.44094 -0.615239 -6.06768 5.27245 0.353307 0.73404 6.58406 5.26469 -2.37061 6.26334 4.44943 -3.91159 6.14091 5.25577 -5.91323 6.29275 7.40893 -7.02016 6.68709 9.76783 -3.82606 0.636608 11.7508 -3.19755 1.32432 11.2383 -3.2954 1.9227 10.7513 -3.33702 3.04894 10.5857 -3.89268 -0.707872 9.61739 1.21077 -0.32639 9.52452 1.52934 -0.59202 12.4859 -3.04633 -1.27543 12.4121 -2.7859 -2.00098 10.7425 -1.05843 -1.82855 10.1536 -0.703813 -1.23913 9.78701 0.480812 -2.00553 11.0996 -1.06203 -1.75552 12.0396 -1.49873 -1.70136 12.2172 -2.14934 -1.60264 12.3607 -2.55117 1.15722 9.99904 -0.445639 1.23103 9.20224 -1.26175 2.07544 9.54644 -1.1814 -1.63068 -1.47602 -5.64364 4.17529 9.62259 -2.00061 4.14596 10.2274 -3.02585 5.50736 9.37049 -2.17442 5.56251 10.1281 -3.25024 6.37382 7.76356 -1.38605 0.0049839 -0.662755 -6.18297 3.56443 -0.115401 -5.36972 5.63393 0.230024 -2.60496 5.79144 5.59171 -2.1382 5.37423 7.67076 -6.59683 6.30677 9.54254 -5.58364 5.26206 10.009 -2.14242 5.30166 10.7384 -3.20892 2.46794 11.1231 -3.60603 0.0049839 11.8218 -3.27531 0.0049839 9.67959 0.780558 0.731613 9.73008 0.270376 0.307346 9.71941 0.660105 1.19274 9.5925 -0.707093 2.97524 8.97971 -1.09577 5.28004 1.01323 0.974205 2.78436 1.56488 3.057 0.0049839 0.922202 3.91429 -2.87515 0.444816 2.60751 -5.22518 -0.274997 0.4839 -5.17243 -0.882015 -2.36007 -3.3204 -0.526209 -5.0884 -1.43097 -0.615239 -6.06768 0.0049839 0.0419102 -6.65446 4.6486 0.0750151 -2.48673 3.71695 0.426959 -5.00904 5.48776 4.91864 -3.43818 5.21925 5.41564 -5.33818 5.29435 10.0329 -5.01271 5.04349 10.6881 -4.89572 3.93204 10.3759 -4.37743 0.659597 11.3822 -3.81049 1.65621 10.9723 -3.95683 2.17015 11.194 -4.48041 -0.7216...
[truncated message content] |
|
From: <cn...@us...> - 2009-09-03 18:19:15
|
Revision: 536
http://hgengine.svn.sourceforge.net/hgengine/?rev=536&view=rev
Author: cnlohr
Date: 2009-09-03 18:19:02 +0000 (Thu, 03 Sep 2009)
Log Message:
-----------
still not quite functional, but all of the ideas are down, at least.
Modified Paths:
--------------
Mercury2/tools/collada2hgmdl/ColladaConvert.cpp
Modified: Mercury2/tools/collada2hgmdl/ColladaConvert.cpp
===================================================================
--- Mercury2/tools/collada2hgmdl/ColladaConvert.cpp 2009-09-03 05:57:47 UTC (rev 535)
+++ Mercury2/tools/collada2hgmdl/ColladaConvert.cpp 2009-09-03 18:19:02 UTC (rev 536)
@@ -22,7 +22,7 @@
string stmp = "";
for( unsigned i = 0; i <= sData.length(); i++ )
{
- if( c[i] == ' ' )
+ if( c[i] == ' ' || i == sData.length() )
{
is.push_back( atoi( stmp.c_str() ) );
stmp = "";
@@ -37,7 +37,7 @@
string stmp = "";
for( unsigned i = 0; i <= sData.length(); i++ )
{
- if( c[i] == ' ' )
+ if( c[i] == ' ' || i == sData.length() )
{
is.push_back( atof( stmp.c_str() ) );
stmp = "";
@@ -162,23 +162,8 @@
return -3;
}
- const char * payload = geoitem.children[floatvalspos].payload.c_str();
- int payloadlen = geoitem.children[floatvalspos].payload.length();
- vector < float > & out = sourcevalues[name];
- string thisval = "";
- for( unsigned i = 0; i < payloadlen; i++ )
- {
- if( payload[i] == ' ' )
- {
- out.push_back( atof( thisval.c_str() ) );
- thisval = "";
- }
- else
- thisval += payload[i];
- }
- if( thisval.length() )
- out.push_back( atof( thisval.c_str() ) );
- printf( "%d values (%d verts) read for %s\n", out.size(), out.size()/3, name.c_str() );
+ FloatParse( geoitem.children[floatvalspos].payload, sourcevalues[name] );
+ printf( "%d values (%d verts) read for %s\n", sourcevalues[name].size(), sourcevalues[name].size()/3, name.c_str() );
}
else if( geoitem.data == "vertices" )
{
@@ -358,6 +343,7 @@
}
}
+ printf( "Adding new mesh: %d\n", mout.vMeshes.size() + 1 );
mout.vMeshes.resize( mout.vMeshes.size() + 1 );
Mesh & tm = mout.vMeshes[mout.vMeshes.size() - 1];
tm.sName = matname;
@@ -392,12 +378,14 @@
}
}
+
+ vector< Bone > & bl = mout.vBones;
+
if( lcontrol != -1 )
{
XMLCog & skin = c.children[lcontrol].children[0].children[0];
XMLCog & lv = c.children[lvscenes].children[0].children[0];
//Setup all the bones now...
- vector< Bone > & bl = mout.vBones;
//Enumerate All Bones
for( unsigned i = 0; i < skin.children.size(); i++ )
@@ -537,8 +525,116 @@
}
}
}
+
+ //Gotta load the animations...
+ if( lvanimations == -1 )
+ fprintf( stderr, "Could not find library_animations. No animations to load.\n" );
+ else
+ {
+ float fMaxTime = 0.0;
+ map< string, vector< AnimationKey > > mKeys;
+ map< string, vector< float > > mTimes;
+ map< string, vector< float > > mvVals;
+
+ for( unsigned i = 0; i < c.children[lvanimations].children.size(); i++ )
+ {
+ XMLCog & bt = c.children[lvanimations].children[i];
+ if( bt.data == "animation" )
+ {
+ map< string, vector< float > > mvVals;
+ string sAnimation = "";
+ for( unsigned i = 0; i < bt.leaves["id"].length(); i++ )
+ {
+ if( bt.leaves["id"].c_str()[i] == '.' )
+ break;
+ else
+ sAnimation += bt.leaves["id"].c_str()[i];
+ }
+
+ printf( "Animation: %s : ", sAnimation.c_str() );
+ if( FindBone( bl, sAnimation ) == -1 )
+ {
+ printf( "Ignore.\n" );
+ continue;
+ }
+ else
+ {
+ printf( "Use.\n" );
+ }
+
+ for( unsigned i = 0; i < bt.children.size(); i++ )
+ {
+ XMLCog & dt = bt.children[i];
+ if( dt.data == "source" )
+ {
+ int Technique = dt.FindChild( "technique_common" );
+ int FloatArray = dt.FindChild( "float_array" );
+ if( Technique == -1 || FloatArray == -1 )
+ continue;
+ XMLCog & Tech = dt.children[Technique].children[0];
+ XMLCog & Data = dt.children[FloatArray];
+ string sName = Tech.children[0].leaves["name"];
+ string sData = Data.payload;
+ FloatParse( sData, mvVals[sName] );
+ }
+ }
+
+ if( mvVals["TIME"].size() == 0 || mvVals["TRANSFORM"].size() == 0 )
+ {
+ fprintf( stderr, "Error: Missing Time or Transform for Animation: %s\n", sAnimation.c_str() );
+ exit( -3 );
+ }
+
+ mTimes[sAnimation] = mvVals["TIME"];
+ vector< AnimationKey > & k = mKeys[sAnimation];
+ int keys = mvVals["TIME"].size();
+ k.resize( keys );
+ for( unsigned i = 0; i < keys; i++ )
+ {
+ if( mvVals["TIME"][i] > fMaxTime )
+ fMaxTime = mvVals["TIME"][i];
+ float * fd = &mvVals["TRANSFORM"][i*12];
+ AnimationKey & tk = k[i];
+
+ tk.pPos.x = fd[3];
+ tk.pPos.y = fd[7];
+ tk.pPos.z = fd[11];
+
+ tk.qRot.w = sqrtf( 1.0 + fd[0] + fd[5] + fd[10] );
+ float w4 = ( 4.0 * tk.qRot.w );
+ tk.qRot.x = (fd[6] - fd[9]) / w4;
+ tk.qRot.y = (fd[8] - fd[2]) / w4;
+ tk.qRot.z = (fd[1] - fd[4]) / w4;
+ tk.fTime = mvVals["TIME"][i];
+ }
+ }
+ }
+
+// map< string, vector< AnimationKey > > mKeys;
+// map< string, vector< float > > mTimes;
+
+ //mTimes and mKeys is filled out, use them!
+
+ mout.vAnimations.resize(mout.vAnimations.size()+1);
+ Animation & RootAnimation = mout.vAnimations[0];
+
+ RootAnimation.sName = "default";
+ RootAnimation.fDuration = fMaxTime;
+
+ for( map< string, vector< AnimationKey > >::iterator i = mKeys.begin(); i != mKeys.end(); i++ )
+ {
+ string sBone = i->first;
+
+ RootAnimation.vTracks.resize( RootAnimation.vTracks.size() + 1 );
+ AnimationTrack & at = RootAnimation.vTracks[ RootAnimation.vTracks.size() - 1 ];
+
+ at.iBone = FindBone( bl, sBone );
+
+ at.vKeys = i->second;
+ }
+ printf( "Animations found, animations are %f long.\n", fMaxTime );
+ }
}
-
printf( "Extents: %f %f %f -> %f %f %f\n", minx, miny, minz, maxx, maxy, maxz );
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2009-09-03 05:57:58
|
Revision: 535
http://hgengine.svn.sourceforge.net/hgengine/?rev=535&view=rev
Author: cnlohr
Date: 2009-09-03 05:57:47 +0000 (Thu, 03 Sep 2009)
Log Message:
-----------
more progress, maybe?
Modified Paths:
--------------
Mercury2/tools/collada2hgmdl/ColladaConvert.cpp
Modified: Mercury2/tools/collada2hgmdl/ColladaConvert.cpp
===================================================================
--- Mercury2/tools/collada2hgmdl/ColladaConvert.cpp 2009-09-03 04:04:45 UTC (rev 534)
+++ Mercury2/tools/collada2hgmdl/ColladaConvert.cpp 2009-09-03 05:57:47 UTC (rev 535)
@@ -5,7 +5,93 @@
Model mout;
+int FindBone( vector< Bone > & bl, const string & sName )
+{
+ for( unsigned i = 0; i < bl.size(); i++ )
+ if( bl[i].sName == sName )
+ return i;
+ fprintf( stderr, "Warning: Could not find bone with name \"%s\".", sName.c_str() );
+ return -1;
+}
+
+//XXX: TODO: Actually use this function, since it's good and can reduce code.
+void IntParse( const string & sData, vector< int > & is )
+{
+ const char * c = sData.c_str();
+ string stmp = "";
+ for( unsigned i = 0; i <= sData.length(); i++ )
+ {
+ if( c[i] == ' ' )
+ {
+ is.push_back( atoi( stmp.c_str() ) );
+ stmp = "";
+ }
+ stmp += c[i];
+ }
+}
+
+void FloatParse( const string & sData, vector< float > & is )
+{
+ const char * c = sData.c_str();
+ string stmp = "";
+ for( unsigned i = 0; i <= sData.length(); i++ )
+ {
+ if( c[i] == ' ' )
+ {
+ is.push_back( atof( stmp.c_str() ) );
+ stmp = "";
+ }
+ stmp += c[i];
+ }
+}
+
+void SetupBone( XMLCog * tp, XMLCog * tc, vector< Bone > & bl )
+{
+ int oParent = -1;
+ int oThis = -1;
+
+ if( tp )
+ {
+ oParent = FindBone( bl, tp->leaves["name"] );
+ }
+
+ oThis = FindBone( bl, tc->leaves["name"] );
+
+ if( oThis == -1 )
+ {
+ fprintf( stderr, "Could not find bone \"%s\".", tc->leaves["name"].c_str() );
+ return;
+ }
+
+ //Setup "this" bone
+ bl[oThis].iParentIndex = oParent;
+ bl[oThis].iAssociatedMesh = -1;
+
+
+ //Setup all children bones.
+ for( unsigned i = 0; i < tc->children.size(); i++ )
+ {
+ if( tc->children[i].data == "node" && tc->children[i].leaves["type"] == "JOINT" )
+ SetupBone( tc, &tc->children[i], bl );
+ else if( tc->children[i].data == "matrix" )
+ {
+ string sMatrix = tc->children[i].payload;
+ vector< float > fd;
+ FloatParse( sMatrix, fd );
+ bl[oThis].pJointPos.x = fd[3];
+ bl[oThis].pJointPos.y = fd[7];
+ bl[oThis].pJointPos.z = fd[11];
+
+ bl[oThis].qJointRot.w = sqrtf( 1.0 + fd[0] + fd[5] + fd[10] );
+ float w4 = ( 4.0 * bl[oThis].qJointRot.w );
+ bl[oThis].qJointRot.x = (fd[6] - fd[9]) / w4;
+ bl[oThis].qJointRot.y = (fd[8] - fd[2]) / w4;
+ bl[oThis].qJointRot.z = (fd[1] - fd[4]) / w4;
+ }
+ }
+}
+
int main( int argc, char ** argv )
{
float maxx = -10000, maxy = -10000, maxz = -10000;
@@ -306,6 +392,155 @@
}
}
+ if( lcontrol != -1 )
+ {
+ XMLCog & skin = c.children[lcontrol].children[0].children[0];
+ XMLCog & lv = c.children[lvscenes].children[0].children[0];
+ //Setup all the bones now...
+ vector< Bone > & bl = mout.vBones;
+
+ //Enumerate All Bones
+ for( unsigned i = 0; i < skin.children.size(); i++ )
+ {
+ if( skin.children[i].data == "source" )
+ {
+ for( unsigned j = 0; j < skin.children[i].children.size(); j++ )
+ {
+ XMLCog & c = skin.children[i].children[j];
+ if( c.data == "Name_array" )
+ {
+ string bones = c.payload;
+
+ string sThisBone = "";
+ for( unsigned i = 0; i <= bones.length(); i++ )
+ {
+ if( bones.c_str()[i] == ' ' || bones.length() == i )
+ {
+ bl.resize( bl.size() + 1 );
+ bl[bl.size()-1].sName = sThisBone;
+ sThisBone = "";
+ }
+ else
+ sThisBone+= bones.c_str()[i];
+ }
+ }
+ }
+ }
+ }
+
+ printf( "Bones found: %d\n", bl.size() );
+
+ for( unsigned i = 0; i < lv.children.size(); i++ )
+ {
+ if( lv.children[i].data == "node" && lv.children[i].leaves["type"] == "JOINT" )
+ {
+ SetupBone( 0, &lv.children[i], bl );
+ }
+ }
+
+ map< string, vector< int > > sources;
+
+ for( unsigned i = 0; i < skin.children.size(); i++ )
+ {
+ if( skin.children[i].data == "source" )
+ {
+ string sName = skin.children[i].leaves["name"];
+ for( unsigned j = 0; j < skin.children[i].children.size(); j++ )
+ {
+ XMLCog & sid = skin.children[i].children[j];
+
+ if( sid.data == "float_array" )
+ {
+ const char * pl = sid.payload.c_str();
+ string stmp = "";
+ for( unsigned i = 0; i <= sid.payload.length(); i++ )
+ {
+ if( pl[i] == ' ' || i == sid.payload.length() )
+ {
+ sources[sName].push_back( atof( stmp.c_str() ) );
+ stmp = "";
+ }
+ else
+ {
+ stmp += pl[i];
+ }
+ }
+ }
+ }
+ }
+ }
+
+ //Sources is now filled out, go find the vertex weight
+ for( unsigned i = 0; i < skin.children.size(); i++ )
+ {
+ if( skin.children[i].data == "vertex_weights" )
+ {
+ string jid = "";
+ string wid = "";
+
+ int jido = 0;
+ int wido = 1;
+
+ vector< int > vcount;
+ vector< int > vs;
+
+ for( unsigned j = 0; j < skin.children[i].children.size(); j++ )
+ {
+ XMLCog & c = skin.children[i].children[j];
+ if( c.data == "input" )
+ {
+ if( c.leaves["semantic"] == "JOINT" )
+ {
+ jid = c.leaves["source"].substr(1);
+ jido = atoi( c.leaves["offset"].c_str() );
+ }
+ if( c.leaves["semantic"] == "WEIGHT" )
+ {
+ wid = c.leaves["source"].substr(1);
+ wido = atoi( c.leaves["offset"].c_str() );
+ }
+ }
+
+ if( c.data == "vcount" )
+ IntParse( c.payload, vcount );
+ if( c.data == "v" )
+ IntParse( c.payload, vs );
+ }
+
+ int iCurVertex = 0;
+ int iTC = 0;
+
+ //Wooh, we have everything oriented by vertex...
+ for( unsigned i = 0; i < vs.size()/2; i++ )
+ {
+ iTC++;
+ if( vcount[iCurVertex] < iTC )
+ {
+ iCurVertex++;
+ iTC = 0;
+ }
+
+ int iJoint = vs[i*2+jido];
+ int iWeight = vs[i*2+wido];
+
+ if( iJoint >= bl.size() )
+ {
+ fprintf( stderr, "Warning. Attempting to access joint outside workable area (joint %d)\n", iJoint );
+ }
+ else
+ {
+ bl[iJoint].vAssignments.resize( bl[iJoint].vAssignments.size() + 1 );
+ bl[iJoint].vAssignments[bl[iJoint].vAssignments.size()-1].iMesh = 0;
+ bl[iJoint].vAssignments[bl[iJoint].vAssignments.size()-1].iVertex = iCurVertex;
+ bl[iJoint].vAssignments[bl[iJoint].vAssignments.size()-1].fWeight = sources[wid][iWeight];
+ }
+ }
+ }
+ }
+ }
+
+
+
printf( "Extents: %f %f %f -> %f %f %f\n", minx, miny, minz, maxx, maxy, maxz );
mout.SaveModel( argv[2] );
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2009-09-03 04:05:01
|
Revision: 534
http://hgengine.svn.sourceforge.net/hgengine/?rev=534&view=rev
Author: cnlohr
Date: 2009-09-03 04:04:45 +0000 (Thu, 03 Sep 2009)
Log Message:
-----------
update converter (exporting static meshes work now)
Modified Paths:
--------------
Mercury2/tools/collada2hgmdl/ColladaConvert.cpp
Mercury2/tools/collada2hgmdl/Makefile
Modified: Mercury2/tools/collada2hgmdl/ColladaConvert.cpp
===================================================================
--- Mercury2/tools/collada2hgmdl/ColladaConvert.cpp 2009-09-03 04:04:30 UTC (rev 533)
+++ Mercury2/tools/collada2hgmdl/ColladaConvert.cpp 2009-09-03 04:04:45 UTC (rev 534)
@@ -1,9 +1,16 @@
#include <stdio.h>
#include <stdlib.h>
#include "XMLCog.h"
+#include "ModelContainer.h"
+Model mout;
+
+
int main( int argc, char ** argv )
{
+ float maxx = -10000, maxy = -10000, maxz = -10000;
+ float minx = 10000, miny = 10000, minz = 10000;
+
if( argc != 3 )
{
fprintf( stderr, "Mercury Game Engine Collada Converter\n" );
@@ -83,6 +90,9 @@
else
thisval += payload[i];
}
+ if( thisval.length() )
+ out.push_back( atof( thisval.c_str() ) );
+ printf( "%d values (%d verts) read for %s\n", out.size(), out.size()/3, name.c_str() );
}
else if( geoitem.data == "vertices" )
{
@@ -126,17 +136,179 @@
exit( -3 );
}
+ vector< vector< int > > vvLists;
+ vvLists.resize( vSources.size() );
+ int noelem = 3 * atoi( geoitem.leaves["count"].c_str() );
+
+ for( unsigned i = 0; i < vSources.size(); i++ )
+ vvLists[i].resize( noelem );
+
string sList = geoitem.children[p].payload;
+ string stmp = "";
+ int elementno = 0;
- vector< vector< int > > m_vvLists;
- for( unsigned i = 0; i < sList.length(); i++ )
+ int IDForVertex = -1;
+ int IDForTexcoord = -1;
+ string sNameForVertex = "";
+ string sNameOfTexCoord = "";
+ for( unsigned i = 0; i < vSemantics.size(); i++ )
{
-
+ if( vSemantics[i] == "VERTEX" )
+ {
+ IDForVertex = i;
+ sNameForVertex = vSources[i];
+ }
+ if( vSemantics[i] == "TEXCOORD" )
+ {
+ IDForTexcoord = i;
+ sNameOfTexCoord = vSources[i];
+ }
}
+
+ if( IDForVertex == -1 )
+ {
+ fprintf( stderr, "Could not find VERTEX semantic in object with material \"%s\".\n", matname.c_str() );
+ exit( -3 );
+ }
+
+ for( unsigned i = 0; i <= sList.length(); i++ )
+ {
+ if( sList.c_str()[i] == ' ' || i == sList.length() )
+ {
+ if( elementno/vvLists.size() > noelem )
+ {
+ fprintf( stderr, "Error. You have too many elements in the array for object with material \"%s\". Expected %d, Got More.\n", matname.c_str(), noelem );
+ exit( -3 );
+ }
+ vvLists[elementno%vvLists.size()][elementno/vvLists.size()] = atoi( stmp.c_str() );
+ stmp = "";
+ elementno++;
+ }
+ else
+ {
+ stmp += sList.c_str()[i];
+ }
+ }
+
+ string sNameForPositions = "";
+ string sNameForNormals = "";
+
+ vector< float > * vpForPos = 0;
+ vector< float > * vpForNrm = 0;
+ vector< float > * vpForTex = 0;
+
+ //Find the vertices.
+ if( sourcevalues.find( sNameForVertex ) == sourcevalues.end() )
+ {
+ if( synonyms.find( sNameForVertex ) == synonyms.end() )
+ {
+ fprintf( stderr, "Error. Could not find element \"%s\".\n", sNameForVertex.c_str() );
+ exit( -3 );
+ }
+
+ sNameForPositions = synonyms[sNameForVertex]["POSITION"];
+ sNameForNormals = synonyms[sNameForVertex]["NORMAL"];
+ }
+ else
+ sNameForPositions = sNameForVertex;
+
+ if( sNameForPositions == "" )
+ {
+ fprintf( stderr, "Error. Could not find positions for object with material \"%s\".\n", matname.c_str() );
+ exit( -3 );
+ } else
+ {
+ vpForPos = &sourcevalues[sNameForPositions];
+ for( unsigned i = 0; i < vpForPos->size()/3; i++ )
+ {
+ float x = (*vpForPos)[i*3+0];
+ float y = (*vpForPos)[i*3+1];
+ float z = (*vpForPos)[i*3+2];
+
+ if( x < minx ) minx = x;
+ if( y < miny ) miny = y;
+ if( z < minz ) minz = z;
+
+ if( x > maxx ) maxx = x;
+ if( y > maxy ) maxy = y;
+ if( z > maxz ) maxz = z;
+ }
+ }
+
+ if( !vpForPos )
+ {
+ fprintf( stderr, "Error. Could not find positions for object with material \"%s\". (Internal error version)\n", matname.c_str() );
+ exit( -3 );
+ }
+
+ if( sNameForNormals == "" )
+ vpForNrm = new vector< float >( vpForPos->size(), 0.0 );
+ else
+ vpForNrm = &sourcevalues[sNameForNormals];
+
+ if( !vpForNrm )
+ {
+ fprintf( stderr, "Error. Could not find normals for object with material \"%s\". (Internal error version)\n", matname.c_str() );
+ exit( -3 );
+ }
+
+ if( sNameOfTexCoord == "" )
+ vpForTex = new vector< float >( vpForPos->size() / 3 * 2, 0.0 );
+ else
+ {
+ vector< float > *origTex = &sourcevalues[sNameOfTexCoord];
+ if( !origTex )
+ {
+ fprintf( stderr, "Errror. Could not find normals for object with material \"%s\". (Internal error version)\n", matname.c_str() );
+ exit( -3 );
+ }
+
+ vpForTex = new vector< float >( vpForPos->size() / 3 * 2 );
+ //I want to, for every index, copy the data...
+ for( unsigned i = 0; i < vvLists[IDForTexcoord].size(); i++ )
+ {
+ (*vpForTex)[vvLists[IDForVertex][i]*2+0] = (*origTex)[vvLists[IDForTexcoord][i]*2+0];
+ (*vpForTex)[vvLists[IDForVertex][i]*2+0] = (*origTex)[vvLists[IDForTexcoord][i]*2+1];
+ }
+ }
+
+ mout.vMeshes.resize( mout.vMeshes.size() + 1 );
+ Mesh & tm = mout.vMeshes[mout.vMeshes.size() - 1];
+ tm.sName = matname;
+ tm.iMaterialNumber = mout.vMeshes.size() - 1;
+ tm.vVerticies.resize( vpForPos->size() / 3 );
+ tm.vTriangles.resize( vvLists[0].size() / 3 );
+
+ for( unsigned i = 0; i < tm.vVerticies.size(); i++ )
+ {
+ tm.vVerticies[i].pPosition.x = (*vpForPos)[i*3+0];
+ tm.vVerticies[i].pPosition.y = (*vpForPos)[i*3+1];
+ tm.vVerticies[i].pPosition.z = (*vpForPos)[i*3+2];
+
+ tm.vVerticies[i].pNormal.x = (*vpForNrm)[i*3+0];
+ tm.vVerticies[i].pNormal.y = (*vpForNrm)[i*3+1];
+ tm.vVerticies[i].pNormal.z = (*vpForNrm)[i*3+2];
+
+ tm.vVerticies[i].uv[0] = (*vpForTex)[i*2+0];
+ tm.vVerticies[i].uv[1] = (*vpForTex)[i*2+1];
+ }
+
+ for( unsigned i = 0; i < tm.vTriangles.size(); i++ )
+ {
+ tm.vTriangles[i].iFace[0] = vvLists[0][i*3+0];
+ tm.vTriangles[i].iFace[1] = vvLists[0][i*3+1];
+ tm.vTriangles[i].iFace[2] = vvLists[0][i*3+2];
+ }
+
+ //Add material for this mesh...
+ mout.vMaterials.resize( mout.vMaterials.size() + 1 );
+ mout.vMaterials[mout.vMaterials.size() - 1] = matname + ".ini";
}
}
-
+ printf( "Extents: %f %f %f -> %f %f %f\n", minx, miny, minz, maxx, maxy, maxz );
+ mout.SaveModel( argv[2] );
+
// printf( "%d %d\n", lvanimations, ltest );
// for( int i = 0; i < c.children.size(); i++ )
// {
Modified: Mercury2/tools/collada2hgmdl/Makefile
===================================================================
--- Mercury2/tools/collada2hgmdl/Makefile 2009-09-03 04:04:30 UTC (rev 533)
+++ Mercury2/tools/collada2hgmdl/Makefile 2009-09-03 04:04:45 UTC (rev 534)
@@ -1,9 +1,10 @@
all : ColladaConvert
CFLAGS=-g
+CXXFLAGS=-g
-ColladaConvert : ColladaConvert.o XMLCog.o
- g++ -o $@ $^
+ColladaConvert : ColladaConvert.o XMLCog.o ModelContainer.o MercuryTypes.o MercuryMath.o MercuryMatrix.o
+ g++ -g -o $@ $^
clean :
rm -rf *.o *~ ColladaConvert
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2009-09-03 04:04:42
|
Revision: 533
http://hgengine.svn.sourceforge.net/hgengine/?rev=533&view=rev
Author: cnlohr
Date: 2009-09-03 04:04:30 +0000 (Thu, 03 Sep 2009)
Log Message:
-----------
add various HG1 toolset files
Added Paths:
-----------
Mercury2/tools/collada2hgmdl/MercuryMath.cpp
Mercury2/tools/collada2hgmdl/MercuryMath.h
Mercury2/tools/collada2hgmdl/MercuryMatrix.cpp
Mercury2/tools/collada2hgmdl/MercuryMatrix.h
Mercury2/tools/collada2hgmdl/MercuryTypes.cpp
Mercury2/tools/collada2hgmdl/MercuryTypes.h
Mercury2/tools/collada2hgmdl/ModelContainer.cpp
Mercury2/tools/collada2hgmdl/ModelContainer.h
Added: Mercury2/tools/collada2hgmdl/MercuryMath.cpp
===================================================================
--- Mercury2/tools/collada2hgmdl/MercuryMath.cpp (rev 0)
+++ Mercury2/tools/collada2hgmdl/MercuryMath.cpp 2009-09-03 04:04:30 UTC (rev 533)
@@ -0,0 +1,316 @@
+#include "MercuryMath.h"
+
+#if !defined( USE_SSE )
+
+//Generic Math functions. Compile these if you can not use optimized functions.
+
+void Mul4f(const float* first, const float* second, float* out)
+{
+ out[0] = first[0] * second[0];
+ out[1] = first[1] * second[1];
+ out[2] = first[2] * second[2];
+ out[3] = first[3] * second[3];
+}
+
+void Div4f(const float* first, const float* second, float* out)
+{
+ out[0] = first[0] / second[0];
+ out[1] = first[1] / second[1];
+ out[2] = first[2] / second[2];
+ out[3] = first[3] / second[3];
+}
+
+void Add4f(const float* first, const float* second, float* out)
+{
+ out[0] = first[0] + second[0];
+ out[1] = first[1] + second[1];
+ out[2] = first[2] + second[2];
+ out[3] = first[3] + second[3];
+}
+
+void Sub4f(const float* first, const float* second, float* out)
+{
+ out[0] = first[0] - second[0];
+ out[1] = first[1] - second[1];
+ out[2] = first[2] - second[2];
+ out[3] = first[3] - second[3];
+}
+
+void Copy4f( void * dest, const void * source )
+{
+ ((float*)dest)[0] = ((float*)source)[0];
+ ((float*)dest)[1] = ((float*)source)[1];
+ ((float*)dest)[2] = ((float*)source)[2];
+ ((float*)dest)[3] = ((float*)source)[3];
+}
+
+void Copy8f( void * dest, const void * source )
+{
+ ((float*)dest)[0] = ((float*)source)[0];
+ ((float*)dest)[1] = ((float*)source)[1];
+ ((float*)dest)[2] = ((float*)source)[2];
+ ((float*)dest)[3] = ((float*)source)[3];
+
+ ((float*)dest)[4] = ((float*)source)[4];
+ ((float*)dest)[5] = ((float*)source)[5];
+ ((float*)dest)[6] = ((float*)source)[6];
+ ((float*)dest)[7] = ((float*)source)[7];
+}
+
+void Copy16f( void * dest, const void * source )
+{
+ ((float*)dest)[0] = ((float*)source)[0];
+ ((float*)dest)[1] = ((float*)source)[1];
+ ((float*)dest)[2] = ((float*)source)[2];
+ ((float*)dest)[3] = ((float*)source)[3];
+
+ ((float*)dest)[4] = ((float*)source)[4];
+ ((float*)dest)[5] = ((float*)source)[5];
+ ((float*)dest)[6] = ((float*)source)[6];
+ ((float*)dest)[7] = ((float*)source)[7];
+
+ ((float*)dest)[8] = ((float*)source)[8];
+ ((float*)dest)[9] = ((float*)source)[9];
+ ((float*)dest)[10] = ((float*)source)[10];
+ ((float*)dest)[11] = ((float*)source)[11];
+
+ ((float*)dest)[12] = ((float*)source)[12];
+ ((float*)dest)[13] = ((float*)source)[13];
+ ((float*)dest)[14] = ((float*)source)[14];
+ ((float*)dest)[15] = ((float*)source)[15];
+}
+
+void R_ConcatTransforms4 ( const float* in1, const float* in2, float* out)
+{
+ out[0] = in1[0] * in2[0] + in1[1] * in2[4] +
+ in1[2] * in2[8] + in1[3] * in2[12];
+ out[1] = in1[0] * in2[1] + in1[1] * in2[5] +
+ in1[2] * in2[9] + in1[3] * in2[13];
+ out[2] = in1[0] * in2[2] + in1[1] * in2[6] +
+ in1[2] * in2[10] + in1[3] * in2[14];
+ out[3] = in1[0] * in2[3] + in1[1] * in2[7] +
+ in1[2] * in2[11] + in1[3] * in2[15];
+
+ out[4] = in1[4] * in2[0] + in1[5] * in2[4] +
+ in1[6] * in2[8] + in1[7] * in2[12];
+ out[5] = in1[4] * in2[1] + in1[5] * in2[5] +
+ in1[6] * in2[9] + in1[7] * in2[13];
+ out[6] = in1[4] * in2[2] + in1[5] * in2[6] +
+ in1[6] * in2[10] + in1[7] * in2[14];
+ out[7] = in1[4] * in2[3] + in1[5] * in2[7] +
+ in1[6] * in2[11] + in1[7] * in2[15];
+
+ out[8] = in1[8] * in2[0] + in1[9] * in2[4] +
+ in1[10] * in2[8] + in1[11] * in2[12];
+ out[9] = in1[8] * in2[1] + in1[9] * in2[5] +
+ in1[10] * in2[9] + in1[11] * in2[13];
+ out[10] = in1[8] * in2[2] + in1[9] * in2[6] +
+ in1[10] * in2[10] + in1[11] * in2[14];
+ out[11] = in1[8] * in2[3] + in1[9] * in2[7] +
+ in1[10] * in2[11] + in1[11] * in2[15];
+
+ out[12] = in1[12] * in2[0] + in1[13] * in2[4] +
+ in1[14] * in2[8] + in1[15] * in2[12];
+ out[13] = in1[12] * in2[1] + in1[13] * in2[5] +
+ in1[14] * in2[9] + in1[15] * in2[13];
+ out[14] = in1[12] * in2[2] + in1[13] * in2[6] +
+ in1[14] * in2[10] + in1[15] * in2[14];
+ out[15] = in1[12] * in2[3] + in1[13] * in2[7] +
+ in1[14] * in2[11] + in1[15] * in2[15];
+}
+
+void VectorMultiply4f( const float * m, float *p, float *out )
+{
+ out[0] = p[0] * m[0] + p[1] * m[1] + p[2] * m[2] + p[3] * m[3];
+ out[1] = p[0] * m[4] + p[1] * m[5] + p[2] * m[6] + p[3] * m[7];
+ out[2] = p[0] * m[8] + p[1] * m[9] + p[2] * m[10] + p[3] * m[11];
+ out[3] = p[0] * m[12] + p[1] * m[13] + p[2] * m[14] + p[3] * m[15];
+}
+
+#else
+#include <xmmintrin.h>
+
+inline __m128 Hadd4(__m128 x);
+__m128 Hadd4(__m128 x)
+{
+ //add the low and high components of x
+ x = _mm_add_ps(x, _mm_movehl_ps(x, x));
+ //add x[0] and x[1]
+ return _mm_add_ps( x, _mm_shuffle_ps(x, x, _MM_SHUFFLE(1,1,1,1)) );
+}
+
+void Mul4f(const float* first, const float* second, float* out)
+{
+ __m128 xmm[2];
+
+ xmm[0] = _mm_load_ps(first);
+ xmm[1] = _mm_load_ps(second);
+
+ xmm[0] = _mm_mul_ps( xmm[0], xmm[1] );
+
+ _mm_store_ps(out, xmm[0]);
+}
+
+void Div4f(const float* first, const float* second, float* out)
+{
+ __m128 xmm[2];
+
+ xmm[0] = _mm_load_ps(first);
+ xmm[1] = _mm_load_ps(second);
+
+ xmm[0] = _mm_div_ps( xmm[0], xmm[1] );
+
+ _mm_store_ps(out, xmm[0]);
+}
+
+void Add4f(const float* first, const float* second, float* out)
+{
+ __m128 xmm[2];
+
+ xmm[0] = _mm_load_ps(first);
+ xmm[1] = _mm_load_ps(second);
+
+ xmm[0] = _mm_add_ps( xmm[0], xmm[1] );
+
+ _mm_store_ps(out, xmm[0]);
+
+}
+
+void Sub4f(const float* first, const float* second, float* out)
+{
+ __m128 xmm[2];
+
+ xmm[0] = _mm_load_ps(first);
+ xmm[1] = _mm_load_ps(second);
+
+ xmm[0] = _mm_sub_ps( xmm[0], xmm[1] );
+
+ _mm_store_ps(out, xmm[0]);
+
+}
+
+void Copy4f( void * dest, const void * source )
+{
+ __m128 xmm;
+
+ xmm = _mm_load_ps((float*)source);
+ _mm_store_ps((float*)dest, xmm);
+}
+
+void Copy8f( void * dest, const void * source )
+{
+ __m128 xmm[2];
+
+ xmm[0] = _mm_load_ps((float*)source);
+ _mm_store_ps((float*)dest, xmm[0]);
+
+ xmm[1] = _mm_load_ps((float*)&(((float*)source)[4]));
+ _mm_store_ps((float*)&(((float*)dest)[4]), xmm[1]);
+}
+
+void Copy16f( void * dest, const void * source )
+{
+ __m128 xmm[4];
+
+ xmm[0] = _mm_load_ps((float*)source);
+ _mm_store_ps((float*)dest, xmm[0]);
+
+ xmm[1] = _mm_load_ps((float*)&(((float*)source)[4]));
+ _mm_store_ps((float*)&(((float*)dest)[4]), xmm[1]);
+
+ xmm[2] = _mm_load_ps((float*)&(((float*)source)[8]));
+ _mm_store_ps((float*)&(((float*)dest)[8]), xmm[2]);
+
+ xmm[3] = _mm_load_ps((float*)&(((float*)source)[12]));
+ _mm_store_ps((float*)&(((float*)dest)[12]), xmm[3]);
+}
+
+void R_ConcatTransforms4 ( const float* in1, const float* in2, float* out)
+{
+ unsigned int x, y;
+ __m128 xmm[8];
+
+ xmm[1] = _mm_load_ps((float*)&(in2[0]));
+ xmm[3] = _mm_load_ps((float*)&(in2[4]));
+ xmm[5] = _mm_load_ps((float*)&(in2[8]));
+ xmm[7] = _mm_load_ps((float*)&(in2[12]));
+
+ for (y = 0; y < 4; ++y)
+ {
+ xmm[0] = _mm_set_ps1(in1[(y*4)+0]);
+ xmm[2] = _mm_set_ps1(in1[(y*4)+1]);
+ xmm[4] = _mm_set_ps1(in1[(y*4)+2]);
+ xmm[6] = _mm_set_ps1(in1[(y*4)+3]);
+
+ xmm[0] = _mm_mul_ps( xmm[0], xmm[1] );
+ xmm[2] = _mm_mul_ps( xmm[2], xmm[3] );
+ xmm[4] = _mm_mul_ps( xmm[4], xmm[5] );
+ xmm[6] = _mm_mul_ps( xmm[6], xmm[7] );
+
+ xmm[0] = _mm_add_ps( xmm[0], xmm[2] );
+ xmm[4] = _mm_add_ps( xmm[4], xmm[6] );
+ xmm[0] = _mm_add_ps( xmm[0], xmm[4] );
+
+ _mm_store_ps(&(out[(y*4)]), xmm[0]);
+ }
+}
+
+//This is an SSE matrix vector multiply, see the standard C++ code
+//for a clear algorithim. This seems like it works.
+void VectorMultiply4f( const float * m, float *p, float *out )
+{
+ __m128 xmm[5], outxmm[2], tmp;
+
+ xmm[0] = _mm_load_ps((float*)p); //the vector
+
+ //store the matrix
+ xmm[1] = _mm_load_ps((float*)&(m[0]));
+ xmm[2] = _mm_load_ps((float*)&(m[4]));
+ xmm[3] = _mm_load_ps((float*)&(m[8]));
+ xmm[4] = _mm_load_ps((float*)&(m[12]));
+
+ //compute term 1 and term 2 and store them in the low order
+ //of outxmm[0]
+ outxmm[0] = Hadd4( _mm_mul_ps( xmm[1], xmm[0] ) );
+ tmp = Hadd4( _mm_mul_ps( xmm[2], xmm[0] ) );
+ outxmm[0] = _mm_unpacklo_ps(outxmm[0], tmp);
+
+ //compute term 3 and term 4 and store them in the high order
+ //of outxmm[1]
+ outxmm[1] = Hadd4( _mm_mul_ps( xmm[3], xmm[0] ) );
+ tmp = Hadd4( _mm_mul_ps( xmm[4], xmm[0] ) );
+ outxmm[1] = _mm_unpacklo_ps(outxmm[1], tmp);
+
+ //shuffle the low order of outxmm[0] into the loworder of tmp
+ //and shuffle the low order of outxmm[1] into the high order of tmp
+ tmp = _mm_movelh_ps(outxmm[0], outxmm[1]);
+
+ _mm_store_ps(out, tmp);
+}
+
+#endif
+
+/*
+ * (c) 2006 Joshua Allen, Charles Lohr
+ * All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, and/or sell copies of the Software, and to permit persons to
+ * whom the Software is furnished to do so, provided that the above
+ * copyright notice(s) and this permission notice appear in all copies of
+ * the Software and that both the above copyright notice(s) and this
+ * permission notice appear in supporting documentation.
+ *
+ * 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 OF
+ * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
+ * INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT
+ * OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+ * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
Added: Mercury2/tools/collada2hgmdl/MercuryMath.h
===================================================================
--- Mercury2/tools/collada2hgmdl/MercuryMath.h (rev 0)
+++ Mercury2/tools/collada2hgmdl/MercuryMath.h 2009-09-03 04:04:30 UTC (rev 533)
@@ -0,0 +1,74 @@
+#ifndef _MERCURYMATH_H
+#define _MERCURYMATH_H
+
+#include <math.h>
+
+#define DEGRAD 0.01745329251994329576f //degree to radian
+#define RADDEG 57.2957795130823208767f //radian to degree
+#define Q_PI 3.14159265358979323846f
+
+#if defined(WIN32)
+//In win32, sin works faster than sinf and similar functions
+#define SIN( x ) float( sin ( x ) )
+#define COS( x ) float( cos ( x ) )
+#define ATAN2( x, y ) float( atan2( x, y ) )
+#define ASIN( x ) float( asin ( x ) )
+#define ACOS( x ) float( acos ( x ) )
+#define SQRT( x ) float( sqrt ( x ) )
+#define TAN( x ) float( tan ( x ) )
+#define ABS( x ) float( ((x<0)?(-x):(x)) )
+inline int LRINTF(float x) { int r = (int)x; (x-r)>=0.5?++r:0; return r; };
+#else
+//On other OSes in general, sinf works faster than floating a sin
+#define SIN( x ) sinf( x )
+#define COS( x ) cosf( x )
+#define ATAN2( x, y ) atan2f( x, y )
+#define ASIN( x ) asinf ( x )
+#define ACOS( x ) acosf ( x )
+#define SQRT( x ) sqrtf( x )
+#define TAN( x ) tanf( x )
+#define ABS( x ) ((x<0)?(-x):(x))
+#define LRINTF( x ) lrintf( x )
+#endif
+
+#define SQ(x) ((x)*(x));
+
+#define DotProduct(x,y) ((x)[0]*(y)[0]+(x)[1]*(y)[1]+(x)[2]*(y)[2])
+
+void Mul4f(const float* first, const float* second, float* out);
+void Div4f(const float* first, const float* second, float* out);
+void Add4f(const float* first, const float* second, float* out);
+void Sub4f(const float* first, const float* second, float* out);
+void Copy4f( void * dest, const void * source );
+void Copy8f( void * dest, const void * source );
+void Copy16f( void * dest, const void * source );
+void R_ConcatTransforms4 ( const float* in1, const float* in2, float* out );
+void VectorMultiply4f(const float *m, float *p, float *out );
+
+#endif
+
+/*
+ * (c) 2006 Joshua Allen
+ * All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, and/or sell copies of the Software, and to permit persons to
+ * whom the Software is furnished to do so, provided that the above
+ * copyright notice(s) and this permission notice appear in all copies of
+ * the Software and that both the above copyright notice(s) and this
+ * permission notice appear in supporting documentation.
+ *
+ * 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 OF
+ * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
+ * INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT
+ * OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+ * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
Added: Mercury2/tools/collada2hgmdl/MercuryMatrix.cpp
===================================================================
--- Mercury2/tools/collada2hgmdl/MercuryMatrix.cpp (rev 0)
+++ Mercury2/tools/collada2hgmdl/MercuryMatrix.cpp 2009-09-03 04:04:30 UTC (rev 533)
@@ -0,0 +1,274 @@
+#include "MercuryMatrix.h"
+#include "MercuryMath.h"
+#include "MercuryTypes.h"
+
+MercuryMatrix::MercuryMatrix()
+{
+ Identity();
+}
+
+const MercuryMatrix& MercuryMatrix::operator=(const MercuryMatrix& m)
+{
+ Copy16f(m_matrix, m.m_matrix);
+ return *this;
+}
+
+const MercuryMatrix& MercuryMatrix::operator=(const float* m)
+{
+ Copy16f(m_matrix, m);
+ return *this;
+}
+
+void MercuryMatrix::Zero()
+{
+ m_matrix[0][0] = 0;
+ m_matrix[0][1] = 0;
+ m_matrix[0][2] = 0;
+ m_matrix[0][3] = 0;
+
+ m_matrix[1][0] = 0;
+ m_matrix[1][1] = 0;
+ m_matrix[1][2] = 0;
+ m_matrix[1][3] = 0;
+
+ m_matrix[2][0] = 0;
+ m_matrix[2][1] = 0;
+ m_matrix[2][2] = 0;
+ m_matrix[2][3] = 0;
+
+ m_matrix[3][0] = 0;
+ m_matrix[3][1] = 0;
+ m_matrix[3][2] = 0;
+ m_matrix[3][3] = 0;
+}
+
+void MercuryMatrix::Identity()
+{
+ m_matrix[0][0] = 1;
+ m_matrix[0][1] = 0;
+ m_matrix[0][2] = 0;
+ m_matrix[0][3] = 0;
+
+ m_matrix[1][0] = 0;
+ m_matrix[1][1] = 1;
+ m_matrix[1][2] = 0;
+ m_matrix[1][3] = 0;
+
+ m_matrix[2][0] = 0;
+ m_matrix[2][1] = 0;
+ m_matrix[2][2] = 1;
+ m_matrix[2][3] = 0;
+
+ m_matrix[3][0] = 0;
+ m_matrix[3][1] = 0;
+ m_matrix[3][2] = 0;
+ m_matrix[3][3] = 1;
+}
+
+void MercuryMatrix::Translate(float x, float y, float z)
+{
+ MercuryMatrix m;
+ m.m_matrix[0][3] = x;
+ m.m_matrix[1][3] = y;
+ m.m_matrix[2][3] = z;
+ *this *= m;
+}
+
+void MercuryMatrix::RotateXYZ(float x, float y, float z)
+{
+ //x,y,z must be negated for some reason
+ float X = -x*2*Q_PI/360; //Reduced calulation for speed
+ float Y = -y*2*Q_PI/360;
+ float Z = -z*2*Q_PI/360;
+ float cx = COS(X);
+ float sx = SIN(X);
+ float cy = COS(Y);
+ float sy = SIN(Y);
+ float cz = COS(Z);
+ float sz = SIN(Z);
+
+ MercuryMatrix matrix;
+
+ //Row major
+ //manually transposed
+ matrix.m_matrix[0][0] = cy*cz;
+ matrix.m_matrix[1][0] = (sx*sy*cz)-(cx*sz);
+ matrix.m_matrix[2][0] = (cx*sy*cz)+(sx*sz);
+ matrix.m_matrix[3][0] = 0;
+
+ matrix.m_matrix[0][1] = cy*sz;
+ matrix.m_matrix[1][1] = (sx*sy*sz)+(cx*cz);
+ matrix.m_matrix[2][1] = (cx*sy*sz)-(sx*cz);
+ matrix.m_matrix[3][1] = 0;
+
+ matrix.m_matrix[0][2] = -sy;
+ matrix.m_matrix[1][2] = sx*cy;
+ matrix.m_matrix[2][2] = cx*cy;
+ matrix.m_matrix[3][2] = 0;
+
+ matrix.m_matrix[0][3] = 0;
+ matrix.m_matrix[1][3] = 0;
+ matrix.m_matrix[2][3] = 0;
+ matrix.m_matrix[3][3] = 1;
+
+ *this *= matrix;
+}
+
+void MercuryMatrix::RotateAngAxis( float fAngle, float ix, float iy, float iz )
+{
+ float c = COS( fAngle*Q_PI/180 );
+ float s = SIN( fAngle*Q_PI/180 );
+ float absin = SQRT( ix*ix + iy*iy + iz*iz );
+ float x = ix/absin;
+ float y = iy/absin;
+ float z = iz/absin;
+
+ m_matrix[0][0] = x*x*(1-c)+c;
+ m_matrix[0][1] = x*y*(1-c)-z*s;
+ m_matrix[0][2] = x*z*(1-c)+y*s;
+ m_matrix[0][3] = 0;
+
+ m_matrix[1][0] = y*x*(1-c)+z*s;
+ m_matrix[1][1] = y*y*(1-c)+c;
+ m_matrix[1][2] = y*z*(1-c)-x*s;
+ m_matrix[1][3] = 0;
+
+ m_matrix[2][0] = x*z*(1-c)-y*s;
+ m_matrix[2][1] = y*z*(1-c)+x*s;
+ m_matrix[2][2] = z*z*(1-c)+c;
+ m_matrix[2][3] = 0;
+
+ m_matrix[3][0] = 0;
+ m_matrix[3][1] = 0;
+ m_matrix[3][2] = 0;
+ m_matrix[3][3] = 1;
+}
+
+void MercuryMatrix::Transotale( float tX, float tY, float tZ, float rX, float rY, float rZ, float sX, float sY, float sZ )
+{
+ //x,y,z must be negated for some reason
+ float X = -rX*DEGRAD; //Reduced calulation for speed
+ float Y = -rY*DEGRAD;
+ float Z = -rZ*DEGRAD;
+ float cx = COS(X);
+ float sx = SIN(X);
+ float cy = COS(Y);
+ float sy = SIN(Y);
+ float cz = COS(Z);
+ float sz = SIN(Z);
+
+ MercuryMatrix matrix;
+
+ //Row major
+ //manually transposed
+ matrix.m_matrix[0][0] = sX*cy*cz;
+ matrix.m_matrix[1][0] = sX*((sx*sy*cz)-(cx*sz));
+ matrix.m_matrix[2][0] = sX*((cx*sy*cz)+(sx*sz));
+ matrix.m_matrix[3][0] = 0;
+
+ matrix.m_matrix[0][1] = sY*cy*sz;
+ matrix.m_matrix[1][1] = sY*((sx*sy*sz)+(cx*cz));
+ matrix.m_matrix[2][1] = sY*((cx*sy*sz)-(sx*cz));
+ matrix.m_matrix[3][1] = 0;
+
+ matrix.m_matrix[0][2] = sZ*(-sy);
+ matrix.m_matrix[1][2] = sZ*sx*cy;
+ matrix.m_matrix[2][2] = sZ*cx*cy;
+ matrix.m_matrix[3][2] = 0;
+
+ matrix.m_matrix[0][3] = tX;
+ matrix.m_matrix[1][3] = tY;
+ matrix.m_matrix[2][3] = tZ;
+ matrix.m_matrix[3][3] = 1;
+
+ *this *= matrix;
+}
+
+
+void MercuryMatrix::Scale(float x, float y, float z)
+{
+ MercuryMatrix m;
+
+ m.m_matrix[0][0] = x;
+ m.m_matrix[1][1] = y;
+ m.m_matrix[2][2] = z;
+
+ *this *= m;
+}
+
+MercuryMatrix MercuryMatrix::operator*(const MercuryMatrix& m) const
+{
+ MercuryMatrix r(*this);
+ R_ConcatTransforms4 ( (float*)&m_matrix, (float*)&m.m_matrix, (float*)&r.m_matrix);
+ return r;
+}
+
+MercuryMatrix& MercuryMatrix::operator*=(const MercuryMatrix& m)
+{
+ MercuryMatrix r(*this);
+ R_ConcatTransforms4 ( (float*)&r.m_matrix, (float*)&m.m_matrix, (float*)&m_matrix);
+ return *this;
+}
+
+void TransposeMatrix( const MercuryMatrix &in, MercuryMatrix &out )
+{
+ float tmp;
+ const float* _in = (const float*)in.Ptr();
+ float* _out = out.Ptr();
+
+ //unchanging
+ _out[0] = _in[0];
+ _out[5] = _in[5];
+ _out[10] = _in[10];
+ _out[15] = _in[15];
+
+ tmp = _in[1];
+ _out[1] = _in[4];
+ _out[4] = tmp;
+ tmp = _in[2];
+ _out[2] = _in[8];
+ _out[8] = tmp;
+ tmp = _in[3];
+ _out[3] = _in[12];
+ _out[12] = tmp;
+
+ tmp = _in[6];
+ _out[6] = _in[9];
+ _out[9] = tmp;
+ tmp = _in[7];
+ _out[7] = _in[13];
+ _out[13] = tmp;
+
+ tmp = _in[11];
+ _out[11] = _in[14];
+ _out[14] = tmp;
+}
+
+/*
+ * Copyright (c) 2006 Joshua Allen
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or
+ * without modification, are permitted provided that the following
+ * conditions are met:
+ * - Redistributions of source code must retain the above
+ * copyright notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Mercury Engine nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
Added: Mercury2/tools/collada2hgmdl/MercuryMatrix.h
===================================================================
--- Mercury2/tools/collada2hgmdl/MercuryMatrix.h (rev 0)
+++ Mercury2/tools/collada2hgmdl/MercuryMatrix.h 2009-09-03 04:04:30 UTC (rev 533)
@@ -0,0 +1,75 @@
+#ifndef MERCURYMATRIX_H
+#define MERCURYMATRIX_H
+
+//This matrix will work identically to float[16]
+#include "MercuryMath.h"
+
+class MercuryMatrix;
+
+//Matrix in1 will be copied, n2 will not. n2 better never be the same as out
+void TransposeMatrix( const MercuryMatrix& in, MercuryMatrix &out );
+
+///General Purpose 4x4 row-major matrix
+class MercuryMatrix
+{
+private:
+ ///[row][column] (The internal matrix)
+ float m_matrix[4][4];
+public:
+ MercuryMatrix();
+ inline MercuryMatrix(const MercuryMatrix& m) { *this = m; }
+ inline float* operator[](unsigned int i) { return m_matrix[i]; }
+ ///Allow typecasting to float * for use in APIs
+ inline const float* operator[](unsigned int i) const { return m_matrix[i]; }
+ const MercuryMatrix& operator=(const MercuryMatrix& m);
+ const MercuryMatrix& operator=(const float* m);
+ inline float* Ptr() { return (float*)&m_matrix; }
+ inline const float* Ptr() const { return (float*)&m_matrix; }
+
+ MercuryMatrix operator*(const MercuryMatrix& m) const;
+ MercuryMatrix& operator*=(const MercuryMatrix& m);
+
+ void Translate(float x, float y, float z);
+ ///Rotate along the 3 primariy axes by given amounts (in deg)
+ void RotateXYZ(float x, float y, float z);
+ ///Rotate a given amount (fAngle) in degrees around pAxis
+ void RotateAngAxis( float fAngle, float x, float y, float z );
+ void Scale(float x, float y, float z);
+ void Transotale( float tX, float tY, float tZ, float rX, float rY, float rZ, float sX, float sY, float sZ );
+ inline void Transpose() { TransposeMatrix(*this, *this); }
+
+ void Zero();
+ void Identity();
+};
+//XXX: NOTE: TODO: This is normally aligned.
+
+#endif
+
+/*
+ * Copyright (c) 2006 Joshua Allen
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or
+ * without modification, are permitted provided that the following
+ * conditions are met:
+ * - Redistributions of source code must retain the above
+ * copyright notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Mercury Engine nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
Added: Mercury2/tools/collada2hgmdl/MercuryTypes.cpp
===================================================================
--- Mercury2/tools/collada2hgmdl/MercuryTypes.cpp (rev 0)
+++ Mercury2/tools/collada2hgmdl/MercuryTypes.cpp 2009-09-03 04:04:30 UTC (rev 533)
@@ -0,0 +1,584 @@
+#include <cmath>
+#include <string.h>
+#include "MercuryTypes.h"
+#include "MercuryMath.h"
+//#include "MercuryUtil.h"
+
+const float MercuryPoint::operator[] ( const int rhs ) const
+{
+ switch (rhs)
+ {
+ case 0: return x;
+ case 1: return y;
+ case 2: return z;
+ }
+ return x; //haha we won't even get here.
+}
+
+float & MercuryPoint::operator [] ( const int rhs )
+{
+ switch (rhs)
+ {
+ case 0: return x;
+ case 1: return y;
+ case 2: return z;
+ }
+ return x; //haha we won't even get here.
+}
+
+MercuryPoint MercuryPoint::operator*(const MercuryPoint& p) const
+{
+ MercuryPoint tmp;
+ tmp.x = x * p.x;
+ tmp.y = y * p.y;
+ tmp.z = z * p.z;
+ return tmp;
+}
+
+MercuryPoint MercuryPoint::operator/(const MercuryPoint& p) const
+{
+ MercuryPoint tmp;
+ tmp.x = x / p.x;
+ tmp.y = y / p.y;
+ tmp.z = z / p.z;
+ return tmp;
+}
+
+bool MercuryPoint::operator==(const MercuryPoint& p) const
+{
+ if ((x == p.x) && (y == p.y) && (z == p.z))
+ return true;
+
+ return false;
+}
+
+bool MercuryPoint::operator==(const float f) const
+{
+ if ((x == f) && (y == f) && (z == f))
+ return true;
+
+ return false;
+}
+
+MercuryPoint MercuryPoint::CrossProduct(const MercuryPoint& p) const
+{
+ MercuryPoint ret;
+
+ ret[0] = y*p.z - z*p.y;
+ ret[1] = z*p.x - x*p.z;
+ ret[2] = x*p.y - y*p.x;
+
+ return ret;
+}
+
+void MercuryPoint::NormalizeSelf()
+{
+ float imag = 1.0f/Magnitude();
+ x *= imag; y *= imag; z *= imag;
+}
+
+const MercuryPoint MercuryPoint::Normalize() const
+{
+ MercuryPoint t(*this);
+ t.NormalizeSelf();
+ return t;
+}
+
+float MercuryPoint::Magnitude() const
+{
+ float length = 0;
+ length += x*x;
+ length += y*y;
+ length += z*z;
+ return SQRT(length);
+}
+
+MercuryPoint Rotate2DPoint( float fAngle, MercuryPoint pIn )
+{
+ MercuryPoint ret;
+ ret.x += SIN(fAngle)*pIn.y + COS(-fAngle)*pIn.x;
+ ret.y += COS(fAngle)*pIn.y + SIN(-fAngle)*pIn.x;
+ return ret;
+}
+
+void AngleMatrix (const MercuryPoint & angles, MercuryMatrix & matrix )
+{
+ float X = angles[0]*2*Q_PI/360; //Reduced calulation for speed
+ float Y = angles[1]*2*Q_PI/360;
+ float Z = angles[2]*2*Q_PI/360;
+ float cx = COS(X);
+ float sx = SIN(X);
+ float cy = COS(Y);
+ float sy = SIN(Y);
+ float cz = COS(Z);
+ float sz = SIN(Z);
+
+ //Row major
+ matrix[0][0] = cy*cz;
+ matrix[0][1] = (sx*sy*cz)-(cx*sz);
+ matrix[0][2] = (cx*sy*cz)+(sx*sz);
+ matrix[0][3] = 0;
+
+ matrix[1][0] = cy*sz;
+ matrix[1][1] = (sx*sy*sz)+(cx*cz);
+ matrix[1][2] = (cx*sy*sz)-(sx*cz);
+ matrix[1][3] = 0;
+
+ matrix[2][0] = -sy;
+ matrix[2][1] = sx*cy;
+ matrix[2][2] = cx*cy;
+ matrix[2][3] = 0;
+
+ matrix[3][0] = 0;
+ matrix[3][1] = 0;
+ matrix[3][2] = 0;
+ matrix[3][3] = 1;
+}
+
+void R_ConcatTransforms3 ( MercuryMatrix in1, MercuryMatrix in2, MercuryMatrix & out)
+{
+ out[0][0] = in1[0][0] * in2[0][0] + in1[0][1] * in2[1][0] +
+ in1[0][2] * in2[2][0];
+ out[0][1] = in1[0][0] * in2[0][1] + in1[0][1] * in2[1][1] +
+ in1[0][2] * in2[2][1];
+ out[0][2] = in1[0][0] * in2[0][2] + in1[0][1] * in2[1][2] +
+ in1[0][2] * in2[2][2];
+ out[0][3] = in1[0][0] * in2[0][3] + in1[0][1] * in2[1][3] +
+ in1[0][2] * in2[2][3] + in1[0][3];
+ out[1][0] = in1[1][0] * in2[0][0] + in1[1][1] * in2[1][0] +
+ in1[1][2] * in2[2][0];
+ out[1][1] = in1[1][0] * in2[0][1] + in1[1][1] * in2[1][1] +
+ in1[1][2] * in2[2][1];
+ out[1][2] = in1[1][0] * in2[0][2] + in1[1][1] * in2[1][2] +
+ in1[1][2] * in2[2][2];
+ out[1][3] = in1[1][0] * in2[0][3] + in1[1][1] * in2[1][3] +
+ in1[1][2] * in2[2][3] + in1[1][3];
+ out[2][0] = in1[2][0] * in2[0][0] + in1[2][1] * in2[1][0] +
+ in1[2][2] * in2[2][0];
+ out[2][1] = in1[2][0] * in2[0][1] + in1[2][1] * in2[1][1] +
+ in1[2][2] * in2[2][1];
+ out[2][2] = in1[2][0] * in2[0][2] + in1[2][1] * in2[1][2] +
+ in1[2][2] * in2[2][2];
+ out[2][3] = in1[2][0] * in2[0][3] + in1[2][1] * in2[1][3] +
+ in1[2][2] * in2[2][3] + in1[2][3];
+}
+
+//rewrite
+//Get rid of vectors and use Quaternion.rotateAbout(Quaternion)
+void VectorRotate (const MercuryPoint &in1, const MercuryMatrix &in2, MercuryPoint &out) {
+ out[0] = DotProduct(in1, in2[0]);
+ out[1] = DotProduct(in1, in2[1]);
+ out[2] = DotProduct(in1, in2[2]);
+}
+
+//Must rewrite
+// rotate by the inverse of the matrix
+void VectorIRotate (const MercuryPoint &in1, MercuryMatrix &in2, MercuryPoint & out)
+{
+ out[0] = in1[0]*in2[0][0] + in1[1]*in2[1][0] + in1[2]*in2[2][0];
+ out[1] = in1[0]*in2[0][1] + in1[1]*in2[1][1] + in1[2]*in2[2][1];
+ out[2] = in1[0]*in2[0][2] + in1[1]*in2[1][2] + in1[2]*in2[2][2];
+}
+
+void TranslationMatrix( const MercuryPoint & position, MercuryMatrix & mat )
+{
+ mat[0][0] = 1;
+ mat[1][0] = 0;
+ mat[2][0] = 0;
+ mat[3][0] = 0;
+ mat[0][1] = 0;
+ mat[1][1] = 1;
+ mat[2][1] = 0;
+ mat[3][1] = 0;
+ mat[0][2] = 0;
+ mat[1][2] = 0;
+ mat[2][2] = 1;
+ mat[3][2] = 0;
+ mat[0][3] = position.x;
+ mat[1][3] = position.y;
+ mat[2][3] = position.z;
+ mat[3][3] = 1;
+}
+
+void VectorMultiply( MercuryMatrix &m, const MercuryPoint &p, MercuryPoint &out )
+{
+ out[0] = p[0] * m[0][0] + p[1] * m[0][1] + p[2] * m[0][2] + m[0][3];
+ out[1] = p[0] * m[1][0] + p[1] * m[1][1] + p[2] * m[1][2] + m[1][3];
+ out[2] = p[0] * m[2][0] + p[1] * m[2][1] + p[2] * m[2][2] + m[2][3];
+}
+
+/* CODE FOR COMPLETING MATRIX-MATRIX MULTIPLICATION (Thank god for MATH 221 w/ Dr. Yoon Song @ UMBC ) */
+void ScaleSector ( MercuryMatrix &in, MercuryMatrix &out, int iLine, float fAmount )
+{
+ out[iLine][0] = in[iLine][0] * fAmount;
+ out[iLine][1] = in[iLine][1] * fAmount;
+ out[iLine][2] = in[iLine][2] * fAmount;
+ out[iLine][3] = in[iLine][3] * fAmount;
+}
+
+void TranslateSector ( MercuryMatrix &in, MercuryMatrix &out, int iLine, int iLine2, float fAmount )
+{
+ out[iLine][0] += in[iLine2][0] * fAmount;
+ out[iLine][1] += in[iLine2][1] * fAmount;
+ out[iLine][2] += in[iLine2][2] * fAmount;
+ out[iLine][3] += in[iLine2][3] * fAmount;
+}
+
+void InvertMatrix( MercuryMatrix &in, MercuryMatrix &out )
+{
+ MercuryMatrix tmp;
+ memcpy( &tmp[0][0], &in[0][0], sizeof(float) * 16 );
+
+ out[0][1] = out[0][2] = out[0][3] = 0;
+ out[1][0] = out[1][2] = out[1][3] = 0;
+ out[2][0] = out[2][1] = out[2][3] = 0;
+ out[3][0] = out[3][1] = out[3][2] = 0;
+ out[0][0] = out[1][1] = out[2][2] = out[3][3] = 1;
+
+ for ( int i = 0; i < 4; i++ )
+ for ( int j = 0; j < 4; j++ )
+ {
+ //Ok, this is a pretty damn discusting trick.
+ //On matricies with one of the pivots having tiny values
+ // there's a big issue when it tries to get inverted.
+ // in many cases it can produce a matrix off by as much as 1 or 2 hundred
+ // the only way around this is to pick another row and add it to the
+ // row with an issue ahead of time, bringing all of the numbers to
+ // usable numbers.
+ if( ABS( 1.0f/tmp[i][i] ) > 1000.0f )
+ {
+ TranslateSector( out, out, i, (i+1)%4, 1 );
+ TranslateSector( tmp, tmp, i, (i+1)%4, 1 );
+ }
+
+ float fMt;
+ if ( i == j )
+ {
+ fMt = 1/tmp[i][i];
+ ScaleSector( tmp, tmp, j, fMt );
+ ScaleSector( out, out, j, fMt );
+ }
+ else
+ {
+ fMt = -tmp[j][i]/tmp[i][i];
+ TranslateSector( tmp, tmp, j, i, fMt );
+ TranslateSector( out, out, j, i, fMt );
+ }
+ }
+
+ tmp.Ptr();
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+float & MQuaternion::operator [] (int i)
+{
+ switch (i)
+ {
+ case 0: return x;
+ case 1: return y;
+ case 2: return z;
+ case 3: return w;
+ }
+ return x; //haha we won't even get here.
+}
+
+void MQuaternion::SetEuler(const MercuryPoint& angles)
+{
+ float X = angles[0]/2.0f; //roll
+ float Y = angles[1]/2.0f; //pitch
+ float Z = angles[2]/2.0f; //yaw
+
+ float cx = COS(X);
+ float sx = SIN(X);
+ float cy = COS(Y);
+ float sy = SIN(Y);
+ float cz = COS(Z);
+ float sz = SIN(Z);
+
+ //Correct according to
+ //http://en.wikipedia.org/wiki/Conversion_between_MQuaternions_and_Euler_angles
+ w = cx*cy*cz+sx*sy*sz;//q1
+ x = sx*cy*cz-cx*sy*sz;//q2
+ y = cx*sy*cz+sx*cy*sz;//q3
+ z = cx*cy*sz-sx*sy*cz;//q4
+}
+
+void MQuaternion::CreateFromAxisAngle(const MercuryPoint& p, const float radians)
+{
+ float sn = SIN(radians/2.0f);
+ w = COS(radians/2.0f);
+ x = sn * p.x;
+ y = sn * p.y;
+ z = sn * p.z;
+}
+
+//Returns the magnitude
+float MQuaternion::magnitude() const {
+ return SQRT((w*w)+(x*x)+(y*y)+(z*z));
+}
+
+//Returns the normalized MQuaternion
+MQuaternion MQuaternion::normalize() const {
+ return (*this)/magnitude();
+}
+
+//Returns the conjugate MQuaternion
+MQuaternion MQuaternion::conjugate() const {
+ MQuaternion c(w,-x,-y,-z);
+ return c;
+}
+
+//Returns the reciprocal MQuaternion
+MQuaternion MQuaternion::reciprocal() const {
+ float m = magnitude();
+ return conjugate()/(m*m);
+}
+
+//Rotate MQuaternion about another MQuaternion
+MQuaternion MQuaternion::rotateAbout(const MQuaternion &spinAxis) const {
+ return (*this)*spinAxis;
+}
+
+//Converts MQuaternion to 4x4 Matrix(3x3 Spatial)
+void MQuaternion::toMatrix( MercuryMatrix &matrix ) const {
+ float X = 2*x*x; //Reduced calulation for speed
+ float Y = 2*y*y;
+ float Z = 2*z*z;
+ float a = 2*w*x;
+ float b = 2*w*y;
+ float c = 2*w*z;
+ float d = 2*x*y;
+ float e = 2*x*z;
+ float f = 2*y*z;
+
+ //row major
+ matrix[0][0] = 1-Y-Z;
+ matrix[0][1] = d-c;
+ matrix[0][2] = e+b;
+
+ matrix[1][0] = d+c;
+ matrix[1][1] = 1-X-Z;
+ matrix[1][2] = f-a;
+
+ matrix[2][0] = e-b;
+ matrix[2][1] = f+a;
+ matrix[2][2] = 1-X-Y;
+}
+
+void MQuaternion::toMatrix4( MercuryMatrix &matrix ) const {
+ toMatrix( matrix );
+
+ //row major (even though it looks like column)
+ matrix[0][3] = 0;
+ matrix[1][3] = 0;
+ matrix[2][3] = 0;
+ matrix[3][3] = 1;
+
+ matrix[3][0] = 0;
+ matrix[3][1] = 0;
+ matrix[3][2] = 0;
+}
+
+MQuaternion MQuaternion::operator + (const MQuaternion &rhs) const
+{
+ MQuaternion result;
+ result.w = w + rhs.w;
+ result.x = x + rhs.x;
+ result.y = y + rhs.y;
+ result.z = z + rhs.z;
+ return result;
+}
+
+MQuaternion MQuaternion::operator - (const MQuaternion &rhs) const
+{
+ MQuaternion result;
+ result.w = w - rhs.w;
+ result.x = x - rhs.x;
+ result.y = y - rhs.y;
+ result.z = z - rhs.z;
+ return result;
+}
+
+MQuaternion MQuaternion::operator * (const MQuaternion &rhs) const
+{
+ MQuaternion result;
+ result.w = (w*rhs.w)-(x*rhs.x)-(y*rhs.y)-(z*rhs.z);
+ result.x = (w*rhs.x)+(x*rhs.w)+(y*rhs.z)-(z*rhs.y);
+ result.y = (w*rhs.y)-(x*rhs.z)+(y*rhs.w)+(z*rhs.x);
+ result.z = (w*rhs.z)+(x*rhs.y)-(y*rhs.x)+(z*rhs.w);
+ return result;
+}
+
+MQuaternion& MQuaternion::operator = (const MQuaternion &rhs)
+{
+ w = rhs.w;
+ x = rhs.x;
+ y = rhs.y;
+ z = rhs.z;
+ return (*this);
+}
+
+MQuaternion& MQuaternion::operator += (const MQuaternion &rhs) {
+ w += rhs.w;
+ x += rhs.x;
+ y += rhs.y;
+ z += rhs.z;
+ return (*this);
+}
+
+MQuaternion& MQuaternion::operator -= (const MQuaternion &rhs) {
+ w -= rhs.w;
+ x -= rhs.x;
+ y -= rhs.y;
+ z -= rhs.z;
+ return (*this);
+}
+
+MQuaternion& MQuaternion::operator *= (const MQuaternion &rhs) {
+ w = (w*rhs.w)-(x*rhs.x)-(y*rhs.y)-(z*rhs.z);
+ x = (w*rhs.x)+(x*rhs.w)+(y*rhs.z)-(z*rhs.y);
+ y = (w*rhs.y)-(x*rhs.z)+(y*rhs.w)+(z*rhs.x);
+ z = (w*rhs.z)+(x*rhs.y)-(y*rhs.x)+(z*rhs.w);
+ return (*this);
+}
+
+MQuaternion MQuaternion::operator * (const float &rhs) const {
+ MQuaternion result;
+ result.w = w*rhs;
+ result.x = x*rhs;
+ result.y = y*rhs;
+ result.z = z*rhs;
+ return result;
+}
+
+MQuaternion MQuaternion::operator / (const float &rhs) const {
+ MQuaternion result;
+ result.w = w/rhs;
+ result.x = x/rhs;
+ result.y = y/rhs;
+ result.z = z/rhs;
+ return result;
+}
+
+MQuaternion& MQuaternion::operator *= (const float &rhs) {
+ w *= rhs;
+ x *= rhs;
+ y *= rhs;
+ z *= rhs;
+ return (*this);
+}
+
+MQuaternion& MQuaternion::operator /= (const float &rhs) {
+ w /= rhs;
+ x /= rhs;
+ y /= rhs;
+ z /= rhs;
+ return (*this);
+}
+
+//Returns the Euclidian Inner Product of two MQuaternions (Similar to Vector Dot-Product)
+float innerProduct(const MQuaternion & a, const MQuaternion &b)
+{
+ return (a.w*b.w)+(a.x*b.x)+(a.y*b.y)+(a.z*b.z);
+}
+
+//Returns the Euclidian Outer Product of two MQuaternions
+MercuryPoint outerProduct(MQuaternion a,MQuaternion b)
+{
+ MercuryPoint result;
+ result.x = (a.w*b.x)-(a.x*b.w)-(a.y*b.z)+(a.z*b.y);
+ result.y = (a.w*b.y)+(a.x*b.z)-(a.y*b.w)-(a.z*b.x);
+ result.z = (a.w*b.z)-(a.x*b.y)+(a.y*b.x)-(a.z*b.w);
+ return result;
+}
+
+//Returns the Even Product of two MQuaternions
+MQuaternion evenProduct(MQuaternion a,MQuaternion b) {
+ MQuaternion result;
+ result.w = (a.w*b.w)-(a.x*b.x)-(a.y*b.y)-(a.z*b.z);
+ result.x = (a.w*b.x)+(a.x*b.w);
+ result.y = (a.w*b.y)+(a.y*b.w);
+ result.z = (a.w*b.z)+(a.z*b.w);
+ return result;
+}
+
+//Returns the Odd Product of two MQuaternions (Similar to Vector Cross-Product)
+MercuryPoint oddProduct(MQuaternion a,MQuaternion b) {
+ MercuryPoint result;
+ result.x = (a.y*b.z)-(a.z*b.y);
+ result.y = (a.z*b.x)-(a.x*b.z);
+ result.z = (a.x*b.y)-(a.y*b.x);
+ return result;
+}
+
+//Spherical Linear Interpolation between two MQuaternions at t percent completion(0-1)
+MQuaternion SLERP( const MQuaternion &a, const MQuaternion &b,float t) {
+ MQuaternion an = a.normalize(), bn = b.normalize();
+ float cosTheta = innerProduct(MQuaternion(an),bn);
+ float sinTheta;
+
+ //Careful: If cosTheta is exactly one, or even if it's infinitesimally over, it'll
+ // cause SQRT to produce not a number, and screw everything up.
+ if ( 1 - (cosTheta*cosTheta) <= 0 )
+ sinTheta = 0;
+ else
+ sinTheta = SQRT(1 - (cosTheta*cosTheta));
+
+ float Theta = ACOS(cosTheta); //Theta is half the angle between the 2 MQuaternions
+
+ if(fabs(Theta) < 0.01)
+ return a;
+ if(fabs(sinTheta) < 0.01)
+ return (a+b)/2;
+ return ( (a*SIN((1-t)*Theta)) + (b*SIN(t*Theta)) ) / sinTheta;
+}
+
+const MercuryPoint gpZero = MercuryPoint( 0,0,0 );
+const MercuryPoint gpOne = MercuryPoint( 1,1,1 );
+
+
+
+/*
+ * Copyright (c) 2005-2006, Joshua Allen, Charles Lohr, Adam Lowman
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or
+ * without modification, are permitted provided that the following
+ * conditions are met:
+ * - Redistributions of source code must retain the above
+ * copyright notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Mercury Engine nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
Added: Mercury2/tools/collada2hgmdl/MercuryTypes.h
===================================================================
--- Mercury2/tools/collada2hgmdl/MercuryTypes.h (rev 0)
+++ Mercury2/tools/collada2hgmdl/MercuryTypes.h 2009-09-03 04:04:30 UTC (rev 533)
@@ -0,0 +1,212 @@
+#ifndef _MERCURYTYPES_H
+#define _MERCURYTYPES_H
+
+#include "MercuryMath.h"
+#include "MercuryMatrix.h"
+
+///A point in space/vector
+class MercuryPoint
+{
+public:
+ MercuryPoint() : x(0), y(0), z(0) { };
+ MercuryPoint( float ix, float iy, float iz ) : x(ix), y(iy), z(iz) { };
+ MercuryPoint( const float * in ) : x(in[0]), y(in[1]), z(in[2]) { };
+
+ ///Direct conversion to float*
+ operator float* () { return &x; }
+ ///Direct conversion to const float*
+ operator const float* () const { return &x; }
+
+ ///Get X value
+ inline const float GetX() const { return x; }
+ ///Get Y value
+ inline const float GetY() const { return y; }
+ ///Get Z value
+ inline const float GetZ() const { return z; }
+ ///Set X value
+ inline bool SetX(const float ix) { if (ix == x) { return false; } x = ix; return true; }
+ ///Set Y value
+ inline bool SetY(const float iy) { if (iy == y) { return false; } y = iy; return true; }
+ ///Set Z value
+ inline bool SetZ(const float iz) { if (iz == z) { return false; } z = iz; return true; }
+ ///Zero the vector
+ inline void Clear() { x = 0; y = 0; z = 0; }
+
+ //allow [] to access
+ float & operator[] ( const int rhs );
+ const float operator[] ( const int rhs ) const;
+
+ ///Normalize (make |point| = 1)
+ void NormalizeSelf();
+ ///Return a normalized point
+ const MercuryPoint Normalize() const;
+ ///Return the magnitude of |this|
+ float Magnitude() const;
+
+ float GetBiggestElement() const { if( x > y ) return (x>z)?x:z; else return (y>z)?y:z; }
+
+ ///Write out to be = to this point
+ inline void ConvertToVector3( float* out ) const { out[0] = x; out[1] = y; out[2] = z; }
+ ///Write out to be = to this point, however the 4th element will be 0
+ inline void ConvertToVector4( float* out ) const { out[0] = x; out[1] = y; out[2] = z; out[3] = 0; }
+ ///Write out to be = - to this point, however the 4th element will be 0
+ inline void ConvertToIVector4( float* out ) const { out[0] = -x; out[1] = -y; out[2] = -z; out[3] = 0; }
+
+ ///Component-wise multiply
+ MercuryPoint operator*(const MercuryPoint& p) const;
+ ///Component-wise divide
+ MercuryPoint operator/(const MercuryPoint& p) const;
+
+ inline MercuryPoint& operator += ( const MercuryPoint& other ) { x+=other.x; y+=other.y; z+=other.z; return *this; }
+ inline MercuryPoint& operator -= ( const MercuryPoint& other ) { x-=other.x; y-=other.y; z-=other.z; return *this; }
+ inline MercuryPoint& operator *= ( float f ) { x*=f; y*=f; z*=f; return *this; }
+ inline MercuryPoint& operator /= ( float f ) { x/=f; y/=f; z/=f; return *this; }
+
+ inline MercuryPoint operator + ( const MercuryPoint& other ) const { return MercuryPoint( x+other.x, y+other.y, z+other.z ); }
+ inline MercuryPoint operator - ( const MercuryPoint& other ) const { return MercuryPoint( x-other.x, y-other.y, z-other.z ); }
+ inline MercuryPoint operator * ( float f ) const { return MercuryPoint( x*f, y*f, z*f ); }
+ inline MercuryPoint operator / ( float f ) const { return MercuryPoint( x/f, y/f, z/f ); }
+
+ friend MercuryPoint operator * ( float f, const MercuryPoint& other ) { return other*f; }
+
+ bool operator==(const MercuryPoint& p) const;
+ inline bool operator!=(const MercuryPoint& p) const { return !(*this == p); }
+
+ bool operator==(const float f) const;
+ inline bool operator!=(const float f) const { return !(*this == f); }
+
+ ///Obtain the cross product (*this) x p
+ MercuryPoint CrossProduct(const MercuryPoint& p) const;
+
+ float x;
+ float y;
+ float z;
+};
+
+///Vector of all 0's (0,0,0)
+extern const MercuryPoint gpZero;
+///Vector of all 1's (1,1,1)
+extern const MercuryPoint gpOne;
+
+
+
+///Rotate (in 2D) the X and Y components of a MercuryPoint
+MercuryPoint Rotate2DPoint( float fAngle, MercuryPoint pIn );
+
+///Produce a matrix out of a rotation x, then y then z (how Mercury does it)
+void AngleMatrix (const MercuryPoint & angles, MercuryMatrix & mat );
+///Produce a translation matrix, by (x,y,z)
+void TranslationMatrix( const MercuryPoint & position, MercuryMatrix & mat );
+///Concatenate matrices, not using the last row. (faster when applicable, and breaks things that don't expect that last row.)
+void R_ConcatTransforms3 ( MercuryMatrix in1, MercuryMatrix in2, MercuryMatrix & out );
+
+///Legacy vector rotation only functions. It's similar to vector-matrix multiplication
+void VectorIRotate (const MercuryPoint & in1, MercuryMatrix &in2, MercuryPoint & out);
+void VectorRotate (const MercuryPoint & in1, const MercuryMatrix &in2, MercuryPoint & out);
+
+///Vector-Matrix multiplication
+void VectorMultiply( MercuryMatrix &m, const MercuryPoint &p, MercuryPoint &out );
+
+///Matrix Inverse of a 4x4 matrix.
+void InvertMatrix( MercuryMatrix &in, MercuryMatrix & out );
+
+///Mathematical Quaternion (Used for Rotation)
+class MQuaternion {
+public:
+ //Defines a Quaternion such that q = w + xi + yj + zk
+ float w,x,y,z;
+ MQuaternion() : w(0), x(0), y(0), z(0) { };
+ MQuaternion(float W, float X, float Y, float Z) : w(W), x(X), y(Y), z(Z) { };
+ MQuaternion(float* wxyz) : w(wxyz[0]), x(wxyz[1]), y(wxyz[2]), z(wxyz[3]) { };
+ MQuaternion(const MercuryPoint& p) : w(0), x(p.GetX()), y(p.GetY()), z(p.GetZ()) {};
+
+ ///Make this quaternion represent to a set of euler angles
+ void SetEuler(const MercuryPoint& angles);
+
+ ///Make the quaternion represent a given angle radians around an axis p
+ void CreateFromAxisAngle(const MercuryPoint& p, const float radians);
+
+ ///Access a component of the quaternion with the [] operator
+ float & operator[] ( const int rhs );
+ const float & operator[] ( const int rhs ) const;
+
+ ///Returns the magnitude
+ float magnitude() const;
+ ///Returns the normalized Quaternion
+ MQuaternion normalize() const;
+ ///Returns the conjugate Quaternion
+ MQuaternion conjugate() const;
+ ///Returns the reciprocal Quaternion
+ MQuaternion reciprocal() const;
+ ///Rotates Quaternion about another Quaternion
+ MQuaternion rotateAbout(const MQuaternion &spinAxis) const;
+ ///Converts Quaternion to 4x4 Matrix(3x3 Spatial)
+ void toMatrix( MercuryMatrix & mat ) const;
+ ///Converts Quaternion to complete 4x4 Matrix
+ void toMatrix4( MercuryMatrix & mat ) const;
+ ///Convert the quaternion to a point.
+ MercuryPoint ToPoint() { return MercuryPoint( x,y,z ); }
+ /******************************************************
+ * NOTE: Quaternion multipication is not commutative *
+ * Therefore the / operator could imply for a/b *
+ * a*b.reciprocal() or b.reciprocal()*a *
+ ******************************************************/
+ MQuaternion operator + (const MQuaternion &rhs) const;
+ MQuaternion operator - (const MQuaternion &rhs) const;
+ MQuaternion operator * (const MQuaternion &rhs) const;
+ MQuaternion& operator = (const MQuaternion &rhs);
+ MQuaternion& operator += (const MQuaternion &rhs);
+ MQuaternion& operator -= (const MQuaternion &rhs);
+ MQuaternion& operator *= (const MQuaternion &rhs);
+ MQuaternion operator * (const float &rhs) const;
+ MQuaternion operator / (const float &rhs) const;
+ MQuaternion& operator *= (const float &rhs);
+ MQuaternion& operator /= (const float &rhs);
+};
+//Normally aligned.
+
+///Returns the Euclidian Inner Product of two Quaternions (Similar to Vector Dot-Product)
+float innerProduct( const MQuaternion &a, const MQuaternion &b );
+
+///Returns the Euclidian Outer Product of two Quaternions
+MercuryPoint outerProduct( const MQuaternion &a, const MQuaternion &b );
+
+///Returns the Even Product of two Quaternions
+MQuaternion evenProduct(const MQuaternion &a, const MQuaternion &b );
+
+///Returns the Odd Product of two Quaternions (Similar to Vector Cross-Product)
+MercuryPoint oddProduct( const MQuaternion &a, const MQuaternion &b );
+
+///Spherical Linear Interpolation between two Quaternions at t percent completion(0-1)
+MQuaternion SLERP( const MQuaternion &a, const MQuaternion &b, float t );
+
+#endif
+
+
+/*
+ * Copyright (c) 2005-2006, Joshua Allen, Charles Lohr, Adam Lowman
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or
+ * without modification, are permitted provided that the following
+ * conditions are met:
+ * - Redistributions of source code must retain the above
+ * copyright notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Mercury Engine nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
Added: Mercury2/tools/collada2hgmdl/ModelContainer.cpp
===================================================================
--- Mercury2/tools/collada2hgmdl/ModelContainer.cpp (rev 0)
+++ Mercury2/tools/collada2hgmdl/ModelContainer.cpp 2009-09-03 04:04:30 UTC (rev 533)
@@ -0,0 +1,299 @@
+#include "ModelContainer.h"
+
+//Utility functions, these should be written depending on the endian of the system.
+
+char Read1( FILE * f )
+{
+ char iTmp;
+ fread( &iTmp, 1, 1, f );
+ return iTmp;
+}
+
+void Write1( FILE * f, char c )
+{
+ fwrite( &c, 1, 1, f );
+}
+
+int Read4( FILE * f )
+{
+ int iTmp;
+ fread( &iTmp, 4, 1, f );
+ return iTmp;
+}
+
+void Write4( FILE * f, int i )
+{
+ fwrite( &i, 4, 1, f );
+}
+
+string ReadString( FILE * f )
+{
+ int iTmp = Read4( f );
+ char * sTmp = new char[iTmp+1];
+ fread( sTmp, iTmp, 1, f );
+ sTmp[iTmp] = '\0';
+ string sRet = sTmp;
+ delete sTmp;
+ return sRet;
+}
+
+//Actual code
+
+bool Mesh::Load( FILE * f )
+{
+ unsigned i;
+ unsigned j;
+
+ sName = ReadString( f );
+ iBoneAttached = -1;
+
+ vVerticies.resize( Read4( f ) );
+ vStrips.resize( Read4( f ) );
+ vFans.resize( Read4( f ) );
+ vTriangles.resize( Read4( f ) );
+ iMaterialNumber = Read4( f );
+ bCache = Read1( f ) != '\0';
+
+ for( i = 0; i < vVerticies.size(); i++ )
+ {
+ fread( &vVerticies[i], 8*4, 1, f );
+ vVerticies[i].bInUse = true;
+ vVerticies[i].bInUse2 = true;
+ }
+
+ for( i = 0; i < vStrips.size(); i++ )
+ {
+ vStrips[i].resize( Read4( f ) );
+ for( j = 0; j < vStrips[i].size(); j++ )
+ vStrips[i][j] = Read4( f );
+ }
+
+ for( i = 0; i < vFans.size(); i++ )
+ {
+ vFans[i].resize( Read4( f ) );
+ for( j = 0; j < vFans[i].size(); j++ )
+ vFans[i][j] = Read4( f );
+ }
+
+ for( i = 0; i < vTriangles.size(); i++ )
+ {
+ vTriangles[i].bInUse = true;
+ for ( j = 0; j < 3; j++ )
+ vTriangles[i].iFace[j] = Read4( f );
+ }
+
+ return !feof( f );
+}
+
+void Mesh::Save( FILE * f )
+{
+ unsigned i;
+ unsigned j;
+
+ Write4( f, sName.length() );
+ fwrite( sName.c_str(), sName.length(), 1, f );
+ Write4( f, vVerticies.size() );
+ Write4( f, vStrips.size() );
+ Write4( f, vFans.size() );
+ Write4( f, vTriangles.size() );
+ Write4( f, iMaterialNumber );
+ Write1( f, bCache );
+
+ for( i = 0; i < vVerticies.size(); i++ )
+ fwrite( &vVerticies[i], 8*4, 1, f );
+
+ for( i = 0; i < vStrips.size(); i++ )
+ for ( j = 0; j < vStrips[i].size(); j++ )
+ Write4( f, vStrips[i][j] );
+
+ for( i = 0; i < vFans.size(); i++ )
+ for ( j = 0; j < vFans[i].size(); j++ )
+ Write4( f, vFans[i][j] );
+
+ for( i = 0; i < vTriangles.size(); i++ )
+ for ( j = 0; j < 3; j++ )
+ Write4( f, vTriangles[i].iFace[j] );
+}
+
+bool Bone::Load( FILE * f )
+{
+ sName = ReadString( f );
+ iParentIndex = Read4( f );
+ iAssociatedMesh = Read4( f );
+ fread( &pJointPos, 12, 1, f );
+ fread( &qJointRot, 16, 1, f );
+ vAssignments.resize( Read4( f ) );
+
+ for( unsigned i = 0; i < vAssignments.size(); i++ )
+ {
+ vAssignments[i].iMesh = Read4( f );
+ vAssignments[i].iVertex = Read4( f );
+ fread( &vAssignments[i].fWeight, 4, 1, f );
+ }
+
+ return !feof( f );
+}
+
+void Bone::Save( FILE * f )
+{
+ Write4( f, sName.length() );
+ fwrite( sName.c_str(), sName.length(), 1, f );
+ Write4( f, iParentIndex );
+ Write4( f, iAssociatedMesh );
+ fwrite( &pJointPos, 12, 1, f );
+ fwrite( &qJointRot, 16, 1, f );
+
+ Write4( f, vAssignments.size() );
+ for( unsigned i = 0; i < vAssignments.size(); i++ )
+ {
+ Write4( f, vAssignments[i].iMesh );
+ Write4( f, vAssignments[i].iVertex );
+ fwrite( &vAssignments[i].fWeight, 4, 1, f );
+ }
+}
+
+bool AnimationTrack::Load( FILE * f )
+{
+ iBone = Read4( f );
+ vKeys.resize( Read4( f ) );
+ fread( &vKeys[0], 8*4*vKeys.size(), 1, f );
+ return !feof( f );
+}
+
+void AnimationTrack::Save( FILE * f )
+{
+ Write4( f, iBone );
+ Write4( f, vKeys.size() );
+ fwrite( &vKeys[0], 8*4*vKeys.size(), 1, f );
+}
+
+bool Animation::Load( FILE * f )
+{
+ sName = ReadString( f );
+ fread( &fDuration, 4, 1, f );
+ vTracks.resize( Read4( f ) );
+ for( unsigned i = 0; i < vTracks.size(); i++ )
+ vTracks[i].Load( f );
+ return !feof( f );
+}
+
+void Animation::Save( FILE * f )
+{
+ Write4( f, sName.length() );
+ fwrite( sName.c_str(), sName.length(), 1, f );
+ fwrite( &fDuration, 4, 1, f );
+ Write4( f, vTracks.size() );
+ for( unsigned i = 0; i < vTracks.size(); i++ )
+ vTracks[i].Save( f );
+}
+
+bool Model::LoadModel( const char * sFileName )
+{
+ FILE * f = fopen( sFileName, "rb" );
+ if ( !f )
+ return false;
+
+ char sMercuryHeadder[4];
+ int iVersion;
+ unsigned i;
+
+ fread( sMercuryHeadder, 4, 1, f );
+ iVersion = Read4( f );
+
+ vMeshes.resize( Read4( f ) );
+ for( i = 0; i < vMeshes.size(); i++ )
+ vMeshes[i].Load( f );
+
+ vBones.resize( Read4( f ) );
+ for( i = 0; i < vBones.size(); i++ )
+ vBones[i].Load( f );
+
+ //Compute bone xformations, and antixformations
+ for( i = 0; i < vBones.size(); i++ )
+ {
+ MercuryMatrix m,n,o;
+
+ vBones[i].qJointRot.toMatrix4( o );
+ o[0][3] = vBones[i].pJointPos.x;
+ o[1][3] = vBones[i].pJointPos.y;
+ o[2][3] = vBones[i].pJointPos.z;
+
+ if ( vBones[i].iParentIndex >= 0 )
+ {
+ R_ConcatTransforms4( (const float*)&vBones[vBones[i].iParentIndex].pXFormMatrix, (const float*)&o, (float*)&m );
+ Copy16f( &vBones[i].pXFormMatrix, &m);
+ }
+ else
+ Copy16f(&vBones[i].pXFormMatrix, &o);
+
+ InvertMatrix( vBones[i].pXFormMatrix, vBones[i].pAntiXFormMatrix );
+ }
+
+ vAnimations.resize( Read4( f ) );
+ for( i = 0; i < vAnimations.size(); i++ )
+ vAnimations[i].Load( f );
+
+ vMaterials.resize( Read4( f ) );
+ for( i = 0; i < vMaterials.size(); i++ )
+ vMaterials[i] = ReadString( f );
+
+ fclose(f);
+ return true;
+}
+
+void Model::SaveModel( const char * sFileName )
+{
+ unsigned i;
+ FILE * f = fopen( sFileName, "wb" );
+ if ( !f )
+ return;
+ const char * sMercuryKey = "MBMF";
+ fwrite( sMercuryKey, 4, 1, f );
+ Write4( f, 1 );
+
+ Write4( f, vMeshes.size() );
+ for( i = 0; i < vMeshes.size(); i++ )
+ vMeshes[i].Save( f );
+
+ Write4( f, vBones.size() );
+ for( i = 0; i < vBones.size(); i++ )
+ vBones[i].Save( f );
+
+ Write4( f, vAnimations.size() );
+ for( i = 0; i < vAnimations.size(); i++ )
+ vAnimations[i].Save( f );
+
+ Write4( f, vMaterials.size() );
+ for( i = 0; i < vMaterials.size(); i++ )
+ {
+ Write4( f, vMaterials[i].length() );
+ fwrite( vMaterials[i].c_str(), vMaterials[i].length(), 1, f );
+ }
+
+ fclose(f);
+}
+
+/*
+ * (c) 2006 Charles Lohr
+ * All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, and/or sell copies of the Software, and to permit persons to
+ * whom the Software is furnished to do so, provided that the above
+ * copyright notice(s) and this permission notice appear in all copies of
+ * the Software and that both the above copyright notice(s) and this
+ * permission notice appear in supporting documentation.
+ *
+ * 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 OF
+ * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
+ * INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT
+ * OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+ * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
Added: Mercury2/tools/collada2hgmdl/ModelContainer.h
===================================================================
--- Mercury2/tools/collada2hgmdl/ModelContainer.h (rev 0)
+++ Mercury2/tools/collada2hgmdl/ModelContainer.h 2009-09-03 04:04:30 UTC (rev 533)
@@ -0,0 +1,151 @@
+#ifndef _MODEL_CONTAINER_H
+#define _MODEL_CONTAINER_H
+
+#include "MercuryTypes.h"
+#include <vector>
+#include <string>
+
+using namespace std;
+
+//****MESH****//
+
+struct Vert
+{
+ bool operator < ( const Vert & rhs ) const
+ {
+ if( pPosition.z != rhs.pPosition.z )
+ return pPosition.z < rhs.pPosition.z;
+ if( pPosition.y != rhs.pPosition.y )
+ return pPosition.y < rhs.pPosition.y;
+ if( pPosition.x != rhs.pPosition.x )
+ return pPosition.x < rhs.pPosition.x;
+ if( uv[0] != rhs.uv[0] )
+ return uv[0] < uv[0];
+ return uv[1] < uv[1];
+ }
+
+ float uv[2];
+ MercuryPoint pNormal;
+ MercuryPoint pPosition;
+ vector< int > vUsedBones; //IGNORED BY SAVE AND NOT LOADED.
+ bool bInUse; //IGNORED BY SAVE (Load sets this to true.)
+ bool bInUse2; //IGNORED BY SAVE (Load sets this to true.).
+};
+
+struct Triangle
+{
+ int iFace[3];
+ bool bInUse; //IGNORED BY SAVE (Load sets this to true.)
+};
+
+struct Mesh
+{
+ bool Load( FILE * f );
+ void Save( FILE * f );
+
+ string sName;
+ vector< Vert > vVerticies;
+ vector< vector < int > > vStrips;
+ vector< vector < int > > vFans;
+ vector< Triangle > vTriangles;
+ int iMaterialNumber;
+ bool bCache;
+
+ int iBoneAttached; //IGNORED BY SAVE
+};
+
+//****BONE****//
+
+struct BoneAssignment
+{
+ int iMesh;
+ int iVertex;
+ float fWeight;
+};
+
+struct Bone
+{
+ bool Load( FILE * f );
+ void Save( FILE * f );
+
+ string sName;
+ int iParentIndex;
+ int iAssociatedMesh;
+
+ MercuryPoint pJointPos;;
+ MQuaternion qJointRot;
+ vector< BoneAssignment > vAssignments;
+
+ MercuryMatrix pXFormMatrix; //Performs that bone's xformation IGNORED BY SAVE
+ MercuryMatrix pAntiXFormMatrix; //Inverse of XFormMatrix IGNORED BY SAVE
+};
+
+//****ANIMATION****//
+
+struct AnimationKey
+{
+ float fTime;
+ MercuryPoint pPos;
+ MQuaternion qRot;
+};
+
+struct AnimationTrack
+{
+ bool Load( FILE * f );
+ void Save( FILE * f );
+
+ int iBone;
+ vector< AnimationKey > vKeys;
+};
+
+struct Animation
+{
+ bool Load( FILE * f );
+ void Save( FILE * f );
+
+ string sName;
+ float fDuration;
+ vector< AnimationTrack > vTracks;
+};
+
+
+class Model
+{
+public:
+ bool LoadModel( const char * sFileName );
+ void SaveModel( const char * sFileName );
+
+ vector< Mesh ...
[truncated message content] |
|
From: <cn...@us...> - 2009-09-01 18:19:38
|
Revision: 532
http://hgengine.svn.sourceforge.net/hgengine/?rev=532&view=rev
Author: cnlohr
Date: 2009-09-01 18:19:31 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
progress!
Modified Paths:
--------------
Mercury2/tools/collada2hgmdl/ColladaConvert.cpp
Modified: Mercury2/tools/collada2hgmdl/ColladaConvert.cpp
===================================================================
--- Mercury2/tools/collada2hgmdl/ColladaConvert.cpp 2009-08-31 05:10:52 UTC (rev 531)
+++ Mercury2/tools/collada2hgmdl/ColladaConvert.cpp 2009-09-01 18:19:31 UTC (rev 532)
@@ -88,13 +88,52 @@
{
string sSynonym = geoitem.leaves["name"];
//Information about how to map things toegether.
- for( int i = 0; i < geoitem.children.size(); i++ )
+ for( unsigned i = 0; i < geoitem.children.size(); i++ )
{
XMLCog & idata = geoitem.children[i];
if( idata.data == "input" )
synonyms[sSynonym][idata.leaves["semantic"]] = idata.leaves["source"].substr(1);
}
}
+ else if( geoitem.data == "triangles" )
+ {
+ string matname = geoitem.leaves["material"];
+ //Find all the sources.
+ vector< string > vSources;
+ vector< string > vSemantics;
+
+ for( unsigned i = 0; i < geoitem.children.size(); i++ )
+ {
+ XMLCog & idata = geoitem.children[i];
+ if( idata.data == "input" )
+ {
+ int offset = atoi( idata.leaves["offset"].c_str() );
+ if( vSources.size() <= offset )
+ {
+ vSources.resize( offset+1 );
+ vSemantics.resize( offset+1 );
+ }
+ vSources[offset] = idata.leaves["source"].substr( 1 );
+ vSemantics[offset] = idata.leaves["semantic"];
+ }
+ }
+
+ //Extract actual indices
+ int p = geoitem.FindChild( "p" );
+ if( p == -1 )
+ {
+ fprintf( stderr, "Could not find list of indices for mesh with material \"%s\".", matname.c_str() );
+ exit( -3 );
+ }
+
+ string sList = geoitem.children[p].payload;
+
+ vector< vector< int > > m_vvLists;
+ for( unsigned i = 0; i < sList.length(); i++ )
+ {
+
+ }
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2009-08-31 05:11:02
|
Revision: 531
http://hgengine.svn.sourceforge.net/hgengine/?rev=531&view=rev
Author: cnlohr
Date: 2009-08-31 05:10:52 +0000 (Mon, 31 Aug 2009)
Log Message:
-----------
add collada tool (NOT WORKING)
Added Paths:
-----------
Mercury2/tools/collada2hgmdl/
Mercury2/tools/collada2hgmdl/ColladaConvert.cpp
Mercury2/tools/collada2hgmdl/Makefile
Mercury2/tools/collada2hgmdl/XMLCog.cpp
Mercury2/tools/collada2hgmdl/XMLCog.h
Mercury2/tools/collada2hgmdl/guntheronly.dae
Added: Mercury2/tools/collada2hgmdl/ColladaConvert.cpp
===================================================================
--- Mercury2/tools/collada2hgmdl/ColladaConvert.cpp (rev 0)
+++ Mercury2/tools/collada2hgmdl/ColladaConvert.cpp 2009-08-31 05:10:52 UTC (rev 531)
@@ -0,0 +1,106 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include "XMLCog.h"
+
+int main( int argc, char ** argv )
+{
+ if( argc != 3 )
+ {
+ fprintf( stderr, "Mercury Game Engine Collada Converter\n" );
+ fprintf( stderr, " (C) 2009 Charles Lohr under the NewBSD License\n" );
+ fprintf( stderr, " Invalid usage. Usage: %s (Collada .dae File) (Mercury .hgmdl File)\n" );
+ return -1;
+ }
+ XMLCog c;
+ if( !LoadXML( argv[1], c ) )
+ {
+ fprintf( stderr, "Could not load/parse Collada file.\n" );
+ return -2;
+ }
+
+ if( !c.leaves["version"].length() )
+ {
+ fprintf( stderr, "Could not find version of Collada.\n" );
+ return -3;
+ }
+
+ printf( "Collada file, version %s opened as expected.\n", c.leaves["version"].c_str() );
+
+ int lcontrol = c.FindChild( "library_controllers" );
+ int lgeometries = c.FindChild( "library_geometries" );
+ int lvscenes = c.FindChild( "library_visual_scenes" );
+ int lvanimations = c.FindChild( "library_animations" );
+
+ if( lgeometries == -1 )
+ {
+ fprintf( stderr, "Could not find library_geometries section.\n" );
+ return -3;
+ }
+
+ int geometriesgeometry = c.children[lgeometries].FindChild( "geometry" );
+ if( geometriesgeometry == -1 )
+ {
+ fprintf( stderr, "Could not find any geometry in the library_geometries section.\n" );
+ return -3;
+ }
+
+ int geomesh = c.children[lgeometries].children[geometriesgeometry].FindChild( "mesh" );
+ if( geomesh == -1 )
+ {
+ fprintf( stderr, "Could not find any mesh in the geometry section in the library_geometries section.\n" );
+ return -3;
+ }
+
+ XMLCog & geometry = c.children[lgeometries].children[geometriesgeometry].children[geomesh];
+
+ map< string, vector< float > > sourcevalues;
+ map< string, map< string, string > > synonyms;
+
+ for( unsigned i = 0; i < geometry.children.size(); i++ )
+ {
+ XMLCog & geoitem = geometry.children[i];
+ if( geoitem.data == "source" )
+ {
+ string name = geoitem.leaves["name"];
+ int floatvalspos = geoitem.FindChild( "float_array" );
+ if( floatvalspos == -1 )
+ {
+ fprintf( stderr, "Source: %s does not have a float_array for values. Cannot operate.\n", name.c_str() );
+ return -3;
+ }
+
+ const char * payload = geoitem.children[floatvalspos].payload.c_str();
+ int payloadlen = geoitem.children[floatvalspos].payload.length();
+ vector < float > & out = sourcevalues[name];
+ string thisval = "";
+ for( unsigned i = 0; i < payloadlen; i++ )
+ {
+ if( payload[i] == ' ' )
+ {
+ out.push_back( atof( thisval.c_str() ) );
+ thisval = "";
+ }
+ else
+ thisval += payload[i];
+ }
+ }
+ else if( geoitem.data == "vertices" )
+ {
+ string sSynonym = geoitem.leaves["name"];
+ //Information about how to map things toegether.
+ for( int i = 0; i < geoitem.children.size(); i++ )
+ {
+ XMLCog & idata = geoitem.children[i];
+ if( idata.data == "input" )
+ synonyms[sSynonym][idata.leaves["semantic"]] = idata.leaves["source"].substr(1);
+ }
+ }
+ }
+
+
+// printf( "%d %d\n", lvanimations, ltest );
+// for( int i = 0; i < c.children.size(); i++ )
+// {
+// printf( "%d %s\n", i, c.children[i].data.c_str() );
+// }
+}
\ No newline at end of file
Added: Mercury2/tools/collada2hgmdl/Makefile
===================================================================
--- Mercury2/tools/collada2hgmdl/Makefile (rev 0)
+++ Mercury2/tools/collada2hgmdl/Makefile 2009-08-31 05:10:52 UTC (rev 531)
@@ -0,0 +1,9 @@
+all : ColladaConvert
+
+CFLAGS=-g
+
+ColladaConvert : ColladaConvert.o XMLCog.o
+ g++ -o $@ $^
+
+clean :
+ rm -rf *.o *~ ColladaConvert
\ No newline at end of file
Added: Mercury2/tools/collada2hgmdl/XMLCog.cpp
===================================================================
--- Mercury2/tools/collada2hgmdl/XMLCog.cpp (rev 0)
+++ Mercury2/tools/collada2hgmdl/XMLCog.cpp 2009-08-31 05:10:52 UTC (rev 531)
@@ -0,0 +1,286 @@
+#include "XMLCog.h"
+#include <string.h>
+#include <stdlib.h>
+void XMLCog::Clear()
+{
+ children.clear();
+ leaves.clear();
+}
+
+int XMLCog::FindChild( const string & sName )
+{
+ for ( int i = 0; i < children.size(); i++ )
+ if ( sName == children[i].data )
+ return i;
+ return -1;
+}
+
+//Start at first character
+void ReadLeafVal( const char * start, string & pin, int & chars )
+{
+ pin = "";
+ const char * place = start;
+ while ( place[0] != '=' && place[0] != '\0' && place[0] != ' ' )
+ place++;
+ pin.append( start, place-start );
+ chars = place-start;
+}
+
+//Start after an opening "
+void ReadString( const char * start, string & pin, int & chars )
+{
+ pin = "";
+ const char * place = start;
+ while ( place[0] != '\"' && place[0] != '\0' )
+ {
+ if ( place[0] == '\\' )
+ place++;
+ pin.append( place, 1 );
+ place++;
+ }
+ chars = place-start;
+}
+
+int ReadElem( const char * & loc, map< string, string > & pin, string & name )
+{
+ string sTmp;
+ string sTmp2;
+ int iTmp;
+
+
+ //Remove leading whitespace
+ while ( loc[0] == ' ' || loc[0] == '\n' || loc[0] == '\r' || loc[0] == '\t' )
+ loc++;
+
+ //If we see a <, strip it.
+ if ( loc[0] == '<' )
+ loc++;
+
+ //Get rid of any whitespace, i.e. < asdf>
+ while( loc[0] == ' ' )
+ loc++;
+
+ //If we see a /, we know we're closing.
+ if ( loc[0] == '/' )
+ {
+ if ( loc[0] != '\0' )
+ loc++;
+
+ while ( loc[0] == ' ' || loc[0] == '\n' || loc[0] == '\r' || loc[0] == '\t' )
+ loc++;
+
+ while ( loc[0] != '>' && loc[0] != '\0' )
+ {
+ name += *loc;
+ loc++;
+ }
+
+ if ( loc[0] != '\0' )
+ loc++;
+ return 3;
+ }
+
+ //If we've reached the end escape with error.
+ if( loc[0] == 0 )
+ return 0;
+
+ //Append to the name until we hit a space.
+ while( loc[0] != ' ' && loc[0] != '>' && loc[0] != '/' )
+ {
+ name.append( loc,1 );
+ loc++;
+ }
+
+// if ( loc[0] == '>' )
+// {
+// printf( "*" );
+// loc++;
+// return 1;
+// }
+
+ while ( true )
+ {
+ //If in error, escape with error.
+ if ( loc[0] == '\0' )
+ return 0;
+
+ //Remove any whitespace in this clip.
+ while ( loc[0] == ' ' )
+ loc++;
+
+ //we're in the body of a block, and it terminates with an ending />
+ if ( loc[0] == '/' )
+ {
+ loc++;
+ if ( loc[0] == '\0' )
+ return 0;
+
+ //To get rid of the trailing > after the /
+ loc++;
+ return 2;
+ }
+
+ //Ending normally.
+ if ( loc[0] == '>' )
+ {
+ loc++;
+ return 1;
+ }
+
+ ReadLeafVal( loc, sTmp, iTmp );
+ loc += iTmp;
+ while ( loc[0] == ' ' )
+ loc++;
+
+ if ( loc[0] != '=' )
+ {
+ pin[sTmp] = "";
+ continue;
+ }
+
+ loc++;
+
+ while ( loc[0] == ' ' )
+ loc++;
+
+ //We've read a leaf, i.e. tseq=, we're expecting a " as per required by XML
+ if ( loc[0] != '\"' )
+ {
+ printf("Warning. After leaf value %s, there was no starting \" beginner.\n", sTmp.c_str() );
+ return 0;
+ }
+
+ loc++;
+
+ ReadString( loc, sTmp2, iTmp );
+ loc += iTmp + 1;
+
+ pin[sTmp] = sTmp2;
+ }
+}
+
+int DoXML( const char * ¤t, XMLCog & cog )
+{
+ static int fd = 0;
+ int depth = 0;
+
+ fd++;
+
+ int ret = ReadElem( current, cog.leaves, cog.data );
+ //0: FAIL
+ //1: OPEN
+ //2: OPEN-AND-CLOSED
+ //3: CLOSE
+
+ while ( current[0] == ' ' || current[0] == '\n' || current[0] == '\r' || current[0] == '\t' )
+ {
+ current++;
+ }
+
+
+ //There is a payload, rip it out.
+ if( ret == 1 && current[0] != '<' )
+ {
+ while( *current != '<' && *current != 0 )
+ cog.payload += *current++;
+ if( *current == 0 )
+ {
+ fd--;
+ return 0; //Error!
+ }
+ else
+ {
+ while( *current != '>' && *current != 0 )
+ current++;
+
+ if( *current == 0 )
+ {
+ fd--;
+ return 0;
+ }
+
+ current++;
+
+ while ( current[0] == ' ' || current[0] == '\n' || current[0] == '\r' || current[0] == '\t' )
+ {
+ current++;
+ }
+
+ if( *current == 0 )
+ {
+ fd--;
+ return 0;
+ }
+
+ fd--;
+ return 2;
+ }
+ }
+
+ switch( ret )
+ {
+ case 0: //error
+ fd--;
+ return 0;
+ case 1: //open
+ {
+START_LOOP:
+ cog.children.resize( cog.children.size() + 1 );
+ int rlocal = DoXML(current, cog.children[cog.children.size()-1] );
+
+ if( rlocal == 0 || rlocal == 3 )
+ {
+ cog.children.resize( cog.children.size() - 1 );
+ }
+
+ switch( rlocal )
+ {
+ case 0:
+ fd--;
+ return 0;
+ case 1:
+ fd--;
+ return 0;
+ case 2:
+ goto START_LOOP;
+ case 3:
+ fd--;
+ return 2;
+ default:
+ fd--;
+ return 0;
+ };
+ }
+ case 2: //open-and-close
+ fd--;
+ return 2;
+
+ case 3: //close (strictly)
+ fd--;
+ return 3;
+
+ default:
+ fd--;
+ return 0;
+ }
+}
+
+bool LoadXML( const char * file, XMLCog & cog )
+{
+ FILE * f = fopen( file, "rb" );
+ if ( f == NULL )
+ return false;
+ fseek( f, 0, SEEK_END );
+ int len = ftell( f );
+ fseek( f, 0, SEEK_SET );
+ char * buff = (char*)malloc(len+1);
+ fread( buff, 1, len, f );
+ buff[len] = '\0';
+ fclose( f );
+
+ char * backup = buff;
+ int dxresult = DoXML( (const char*&)buff, cog );
+ free( backup );
+// return dxresult != 0;
+ return 1;
+}
Added: Mercury2/tools/collada2hgmdl/XMLCog.h
===================================================================
--- Mercury2/tools/collada2hgmdl/XMLCog.h (rev 0)
+++ Mercury2/tools/collada2hgmdl/XMLCog.h 2009-08-31 05:10:52 UTC (rev 531)
@@ -0,0 +1,23 @@
+#ifndef _XML_COG_H
+#define _XML_COG_H
+
+#pragma warning (disable : 4786) // turn off broken debugger warning
+#include <vector>
+#include <string>
+#include <map>
+
+using namespace std;
+
+struct XMLCog
+{
+ void Clear();
+ vector< XMLCog > children;
+ int FindChild( const string & sName );
+ map< string, string > leaves;
+ string data;
+ string payload;
+};
+
+bool LoadXML( const char * file, XMLCog & cog );
+
+#endif
\ No newline at end of file
Added: Mercury2/tools/collada2hgmdl/guntheronly.dae
===================================================================
--- Mercury2/tools/collada2hgmdl/guntheronly.dae (rev 0)
+++ Mercury2/tools/collada2hgmdl/guntheronly.dae 2009-08-31 05:10:52 UTC (rev 531)
@@ -0,0 +1,2019 @@
+<?xml version="1.0" encoding="utf-8"?>
+<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
+ <asset>
+ <contributor>
+ <author>Charles</author>
+ <authoring_tool>COLLADA Maya2009</authoring_tool>
+ <comments>ColladaMaya export options: bakeTransforms=1;exportPolygonMeshes=1;bakeLighting=0;isSampling=0;
+curveConstrainSampling=0;removeStaticCurves=1;exportCameraAsLookat=0;
+exportLights=1;exportCameras=1;exportJointsAndSkin=1;
+exportAnimations=1;exportTriangles=1;exportInvisibleNodes=0;
+exportNormals=1;exportTexCoords=1;
+exportVertexColors=1;exportVertexColorsAnimation=0;exportTangents=0;
+exportTexTangents=0;
+exportConstraints=1;exportPhysics=1;
+exportXRefs=1;dereferenceXRefs=1;
+cameraXFov=0;cameraYFov=1</comments>
+ <source_data>file:///C:/gunther/artassets/gunther/gunther_merged.mb</source_data>
+ </contributor>
+ <created>2009-08-24T20:04:37</created>
+ <modified>2009-08-24T20:04:37</modified>
+ <unit name="centimeter" meter="0.01"/>
+ <up_axis>Y_UP</up_axis>
+ </asset>
+ <library_materials>
+ <material id="lambert15" name="lambert15">
+ <instance_effect url="#lambert15-fx"/>
+ </material>
+ <material id="lambert16" name="lambert16">
+ <instance_effect url="#lambert16-fx"/>
+ </material>
+ <material id="lambert1" name="lambert1">
+ <instance_effect url="#lambert1-fx"/>
+ </material>
+ </library_materials>
+ <library_effects>
+ <effect id="lambert1-fx">
+ <profile_COMMON>
+ <technique sid="common">
+ <lambert>
+ <emission>
+ <color>0 0 0 1</color>
+ </emission>
+ <ambient>
+ <color>0 0 0 1</color>
+ </ambient>
+ <diffuse>
+ <color>0.4 0.4 0.4 1</color>
+ </diffuse>
+ <transparent opaque="RGB_ZERO">
+ <color>0 0 0 1</color>
+ </transparent>
+ <transparency>
+ <float>1</float>
+ </transparency>
+ </lambert>
+ </technique>
+ </profile_COMMON>
+ </effect>
+ <effect id="lambert15-fx">
+ <profile_COMMON>
+ <newparam sid="file1-surface">
+ <surface type="2D">
+ <init_from>file1</init_from>
+ <format>A8R8G8B8</format>
+ </surface>
+ </newparam>
+ <newparam sid="file1-sampler">
+ <sampler2D>
+ <source>file1-surface</source>
+ </sampler2D>
+ </newparam>
+ <technique sid="common">
+ <lambert>
+ <emission>
+ <color>0 0 0 1</color>
+ </emission>
+ <ambient>
+ <color>0 0 0 1</color>
+ </ambient>
+ <diffuse>
+ <texture texture="file1-sampler" texcoord="CHANNEL2">
+ <extra>
+ <technique profile="MAYA">
+ <blend_mode>NONE</blend_mode>
+ <coverageU>1</coverageU>
+ <coverageV>1</coverageV>
+ <fast>0</fast>
+ <mirrorU>0</mirrorU>
+ <mirrorV>0</mirrorV>
+ <noiseU>0</noiseU>
+ <noiseV>0</noiseV>
+ <offsetU>0</offsetU>
+ <offsetV>0</offsetV>
+ <repeatU>1</repeatU>
+ <repeatV>1</repeatV>
+ <rotateFrame>0</rotateFrame>
+ <rotateUV>0</rotateUV>
+ <stagger>0</stagger>
+ <translateFrameU>0</translateFrameU>
+ <translateFrameV>0</translateFrameV>
+ <wrapU>1</wrapU>
+ <wrapV>1</wrapV>
+ </technique>
+ </extra>
+ </texture>
+ </diffuse>
+ <transparent opaque="RGB_ZERO">
+ <color>0 0 0 1</color>
+ </transparent>
+ <transparency>
+ <float>1</float>
+ </transparency>
+ </lambert>
+ </technique>
+ </profile_COMMON>
+ </effect>
+ <effect id="lambert16-fx">
+ <profile_COMMON>
+ <technique sid="common">
+ <lambert>
+ <emission>
+ <color>0 0 0 1</color>
+ </emission>
+ <ambient>
+ <color>0 0 0 1</color>
+ </ambient>
+ <diffuse>
+ <color>0.4 0.4 0.4 1</color>
+ </diffuse>
+ <transparent opaque="RGB_ZERO">
+ <color>0 0 0 1</color>
+ </transparent>
+ <transparency>
+ <float>1</float>
+ </transparency>
+ </lambert>
+ </technique>
+ </profile_COMMON>
+ </effect>
+ </library_effects>
+ <library_images>
+ <image id="file1" name="file1">
+ <init_from>file:///C:/Documents%20and%20Settings/Tommy/Desktop/3D/Gunther/Gunther%20color%20map.png</init_from>
+ <extra>
+ <technique profile="MAYA">
+ <dgnode_type>kFile</dgnode_type>
+ <image_sequence>0</image_sequence>
+ </technique>
+ </extra>
+ </image>
+ </library_images>
+ <library_controllers>
+ <controller id="polySurfaceShape2-skin" name="skinCluster1">
+ <skin source="#polySurface17Shape">
+ <bind_shape_matrix>1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</bind_shape_matrix>
+ <source id="polySurfaceShape2-skin-joints" name="polySurfaceShape2-skin-joints">
+ <Name_array id="polySurfaceShape2-skin-joints-array" count="23">hip belly mid_back upper_bitties clavicle neck head left_shoulder left_elbow left_wrist left_hand right_shoulder right_elbow right_wrist right_hand left_leg left_knee left_foot left_toe right_leg right_knee right_foot right_toe</Name_array>
+ <technique_common>
+ <accessor source="#polySurfaceShape2-skin-joints-array" count="23" stride="1">
+ <param name="JOINT" type="name"/>
+ </accessor>
+ </technique_common>
+ </source>
+ <source id="polySurfaceShape2-skin-bind_poses" name="polySurfaceShape2-skin-bind_poses">
+ <float_array id="polySurfaceShape2-skin-bind_poses-array" count="368">0.0238028 0.999717 0 1.6037 -0.999717 0.0238028 0 0.0153545 0 0 1 2.53438 0 0 0 1 -0.0299286 0.999552 0 -1.29677 0.999552 0.0299286 0 -0.0851297 0 0 -1 -2.12181 0 0 0 1 0.0344623 0.999406 0 -4.06869 -0.999406 0.0344623 0 -0.177089 0 0 1 2.88802 0 0 0 1 0 1 0 -6.69944 -1 0 0 0.0538213 0 0 1 3.7721 0 0 0 1 -0.0454077 0.998969 0 -9.1433 0.998969 0.0454077 0 -0.469481 0 0 -1 -3.71316 0 0 0 1 0 1 0 -10.4409 1 0 0 0.0367673 0 0 -1 -1.59136 0 0 0 1 0.024383 0.999703 0 -12.4423 -0.999703 0.024383 0 -0.340249 0 0 1 0.353635 0 0 0 1 0.935948 -0.352139 0 -1.77304 0.352139 0.935948 0 -9.20792 0 0 1 3.66216 0 0 0 1 0.961971 -0.273152 0 -7.52215 0.273152 0.961971 0 -8.61268 0 0 1 5.99836 0 0 0 1 0.985212 -0.171341 0 -12.2653 0.171341 0.985212 0 -7.37378 0 0 1 6.38034 0 0 0 1 1 0 0 -15.343 0 1 0 -4.60635 0 0 1 6.86649 0 0 0 1 -0.947073 -0.321018 0 -2.09401 -0.321018 0.947073 0 -9.0523 0 0 -1 -3.06143 0 0 0 1 -0.962788 -0.270256 0 -7.35721 -0.270256 0.962788 0 -8.74173 0 0 -1 -5.89219 0 0 0 1 -0.962964 -0.26963 0 -11.5399 -0.26963 0.962964 0 -8.69587 0 0 -1 -6.52678 0 0 0 1 1 0 0 15.2787 0 1 0 -4.75227 0 0 1 6.99214 0 0 0 1 0.0766965 -0.997054 0 -3.01664 0.997054 0.0766965 0 -2.54762 0 0 1 2.70325 0 0 0 1 0.0905357 -0.995893 0 -7.77579 0.995893 0.0905357 0 -2.43987 0 0 1 2.55713 0 0 0 1 1 0 0 -3.58678 0 1 0 12.5053 0 0 1 3.21467 0 0 0 1 1 0 0 -4.0045 0 1 0 12.5426 0 0 1 1.13462 0 0 0 1 0.0766965 -0.997054 0 -2.58587 0.997054 0.0766965 0 3.05233 0 0 1 2.70325 0 0 0 1 0.0905357 -0.995893 0 -7.21268 0.995893 0.0905357 0 3.75432 0 0 1 2.55713 0 0 0 1 1 0 0 3.49869 0 1 0 12.5053 0 0 1 3.21467 0 0 0 1 1 0 0 4.00537 0 1 0 12.5426 0 0 1 1.13462 0 0 0 1</float_array>
+ <technique_common>
+ <accessor source="#polySurfaceShape2-skin-bind_poses-array" count="23" stride="16">
+ <param name="TRANSFORM" type="float4x4"/>
+ </accessor>
+ </technique_common>
+ </source>
+ <source id="polySurfaceShape2-skin-weights" name="polySurfaceShape2-skin-weights">
+ <float_array id="polySurfaceShape2-skin-weights-array" count="4710">1 0.902806 0.00645181 0.00147309 0.0462198 0.0430482 0.871345 0.00795576 0.0016807 0.079509 0.0395091 0.68661 0.000574613 0.310811 0.00192083 0.906472 0.00770517 0.00114543 0.0442596 0.0404182 0.000117487 0.00140223 0.998452 0.000476356 0.999471 0.999847 0.999847 0.000170734 0.99981 0.000185892 0.00209004 0.997667 0.000155026 0.00177529 0.998024 0.000488464 0.999458 0.000350467 0.000499193 0.999054 0.000142266 0.00080945 0.00115078 0.997836 0.000163764 0.000782879 0.000963016 0.998025 0.000219509 0.00128566 0.00157453 0.996832 0.000145394 0.00108868 0.00124599 0.997473 0.0127914 0.149411 0.167865 0.667272 0.00266115 0.00488291 0.0651207 0.0692746 0.859669 0.00105307 0.000360899 0.000505201 0.999058 0.00202983 0.012643 0.0159175 0.968399 0.00101082 0.000246708 0.000513978 0.999189 0.00214222 0.0131857 0.0148121 0.968735 0.00112525 0.999838 0.000435146 0.0043938 0.995032 0.000176398 0.000749801 0.00760198 0.991393 0.000250449 0.99971 0.000420453 0.999487 0.000130075 0.000422587 0.00280478 0.996603 0.000629692 0.99926 0.000105943 0.000422556 0.00317237 0.996252 0.000932806 0.00320832 0.0173273 0.978134 0.00039706 0.000290712 0.00170122 0.997884 0.000329435 0.000885001 0.00334486 0.995343 0.000190879 0.000504122 0.00192447 0.997333 0.000245458 0.000689264 0.00258298 0.996394 0.999836 0.00469693 0.0148241 0.0198855 0.960162 0.000431778 0.00823063 0.0255772 0.0334557 0.932188 0.000548356 0.000717845 0.00264129 0.00387335 0.992621 0.000146393 0.00328559 0.0111177 0.0156064 0.969493 0.000497464 0.000348405 0.00173817 0.00291444 0.994918 0.000252139 0.000581478 0.999125 0.000207916 0.999694 0.00153838 0.0136194 0.0185324 0.96577 0.000540142 0.00217895 0.0237495 0.0350174 0.938545 0.000509069 0.000196075 0.00118093 0.00215588 0.996405 0.000342665 0.000772007 0.998826 0.000246041 0.000368501 0.999339 0.000119952 0.999767 0.00253241 0.0230596 0.0235847 0.94997 0.000853664 0.00036071 0.999518 0.00342279 0.0503669 0.0581567 0.887281 0.000772152 0.00827069 0.0711384 0.0810287 0.836679 0.00288292 0.000364882 0.000548351 0.999011 0.0001213 0.999786 0.00042264 0.00248696 0.00272716 0.994166 0.000197405 0.000156323 0.000200064 0.999611 0.000455732 0.00290718 0.00303689 0.993355 0.000245638 0.000109834 0.00069387 0.00073338 0.998402 0.00950349 0.175503 0.181755 0.631365 0.00187387 0.000124756 0.00018536 0.999669 0.000138304 0.000205697 0.99962 0.000549125 0.000632432 0.9987 0.0120762 0.131345 0.147871 0.706373 0.00233449 0.000173313 0.00164126 0.0351737 0.481506 0.481506 0.00025327 0.00233606 0.0438177 0.476797 0.476797 0.000293898 0.00268758 0.0482236 0.474397 0.474397 0.000374695 0.00347111 0.0626342 0.46676 0.46676 0.000603207 0.015699 0.491817 0.491817 0.000213388 0.00168949 0.0270524 0.485522 0.485522 0.000116446 0.000990171 0.0183295 0.490282 0.490282 0.000180625 0.00563695 0.497082 0.497082 0.00045329 0.0157197 0.491892 0.491892 0.000812433 0.0188193 0.49014 0.49014 0.000219744 0.00177436 0.0300159 0.483995 0.483995 0.000741214 0.0203618 0.48941 0.48941 0.000186609 0.00165102 0.0305582 0.483802 0.483802 0.000234321 0.00214642 0.0404179 0.478601 0.478601 0.000221289 0.00196057 0.0362411 0.480789 0.480789 0.000372255 0.0029471 0.0440443 0.476318 0.476318 0.000189624 0.0016659 0.0319324 0.483106 0.483106 0.000272762 0.00239873 0.044378 0.476475 0.476475 0.000512908 0.00423613 0.0630171 0.466117 0.466117 0.00050966 0.00422564 0.0611422 0.467061 0.467061 0.000325657 0.00285332 0.0470716 0.474875 0.474875 0.000268031 0.00220197 0.0342168 0.481657 0.481657 0.000373363 0.00291169 0.0412029 0.477756 0.477756 0.000299725 0.00271167 0.0510892 0.47295 0.47295 0.000400641 0.00358673 0.0624091 0.466802 0.466802 0.000674647 0.0155306 0.491861 0.491861 0.00271701 0.498606 0.498606 0.000104274 0.00111603 0.0271682 0.485806 0.485806 0.000146941 0.00161608 0.0376223 0.480307 0.480307 0.00019203 0.00201163 0.0411944 0.478301 0.478301 0.000188516 0.00206979 0.0479798 0.474881 0.474881 0.000154784 0.00478649 0.497522 0.497522 0.000799283 0.0150194 0.492046 0.492046 0.000752155 0.0150085 0.49208 0.49208 0.000121069 0.00426744 0.4978 0.4978 0.000165684 0.00165427 0.0321631 0.483008 0.483008 0.000132084 0.00143425 0.0332583 0.482588 0.482588 0.000140005 0.00138088 0.0276534 0.485413 0.485413 0.0002222 0.00211625 0.0374676 0.480097 0.480097 0.000186678 0.00188001 0.0362839 0.480825 0.480825 0.000149675 0.00144991 0.0271161 0.485642 0.485642 0.000207724 0.00182286 0.0291922 0.484389 0.484389 0.000617983 0.0125067 0.493404 0.493404 0.00144976 0.499253 0.499253 0.000191769 0.00166273 0.027515 0.485315 0.485315 0.000176592 0.00168471 0.0324425 0.482848 0.482848 0.000158094 0.00157482 0.033103 0.482582 0.482582 0.000167512 0.00170876 0.0370706 0.480527 0.480527 0.000165585 0.00151837 0.0278857 0.485215 0.485215 0.000144544 0.00140205 0.0285319 0.484961 0.484961 0.000421405 0.0101233 0.494706 0.494706 0.000446151 0.0114493 0.494031 0.494031 0.000158969 0.499919 0.499919 0.00122422 0.499375 0.499375 0.122198 0.875627 0.00210506 0.000280765 0.172553 0.818569 0.0085866 0.000450078 0.0985886 0.828937 0.0720019 0.000202074 0.073223 0.889154 0.0374108 0.000468539 0.0148368 0.492324 0.492324 0.00023466 0.00794522 0.495899 0.495899 0.000316099 0.0384469 0.739718 0.221499 0.000761694 0.0750586 0.637739 0.286388 0.00123884 0.292995 0.666083 0.0396337 0.00146847 0.318427 0.620391 0.0596511 0.00170021 0.144734 0.612558 0.240914 0.00165721 0.1603 0.63057 0.207385 0.000839539 0.00760486 0.120989 0.435283 0.435283 0.000680715 0.00601914 0.0975549 0.447873 0.447873 0.000597996 0.00545693 0.0967804 0.448582 0.448582 0.989792 0.0102008 0.00368383 0.585264 0.411 0.001019 0.0403983 0.484564 0.473945 0.00112464 0.0394811 0.479883 0.479426 0.00095756 0.0293367 0.484814 0.484814 0.000790295 0.0277883 0.48568 0.48568 0.00019409 0.00710114 0.496344 0.496344 0.000867339 0.0298024 0.484623 0.484623 0.000334067 0.0146105 0.492513 0.492513 0.000825113 0.254402 0.68892 0.0558089 0.00032644 0.182538 0.792842 0.0242787 0.000325118 0.3757 0.615278 0.00868415 0.000812341 0.419367 0.559831 0.0199533 0.000965869 0.280521 0.66968 0.0487919 0.0012272 0.459829 0.520529 0.0183726 0.000745972 0.439737 0.545733 0.013757 0.000407901 0.153485 0.833491 0.0126001 0.000284234 0.363961 0.631814 0.00393087 0.00087221 0.479183 0.509153 0.0107635 0.0014556 0.476031 0.501471 0.0209821 0.00133126 0.367738 0.582714 0.0481488 0.00114134 0.470055 0.509965 0.018789 0.000595196 0.496843 0.496852 0.00568879 0.000296323 0.115021 0.841218 0.0434489 0.000776419 0.15466 0.735699 0.108822 0.00194201 0.423659 0.529608 0.0446998 0.0015445 0.674408 0.324029 0.000365348 0.0241352 0.532559 0.442913 0.00104089 0.086827 0.587264 0.324792 0.0011805 0.0984343 0.585676 0.314624 0.000781043 0.0433633 0.505488 0.450304 0.000146195 0.0026636 0.328456 0.556237 0.112497 0.00147169 0.166186 0.632152 0.200101 0.000326745 0.00401735 0.138305 0.457961 0.39939 0.000578596 0.00720361 0.206755 0.437214 0.348249 0.000112592 0.00137699 0.0691846 0.495724 0.433601 0.000154908 0.00205846 0.128117 0.527675 0.341995 0.000347725 0.00389575 0.118178 0.449397 0.428181 0.000260545 0.00284928 0.0856723 0.457109 0.454109 0.000534223 0.0051464 0.102898 0.44571 0.44571 0.000683539 0.00666233 0.124966 0.433844 0.433844 0.00055244 0.00653116 0.185984 0.437029 0.369903 0.000208944 0.00325532 0.266112 0.537925 0.192499 0.000349809 0.00338565 0.0741144 0.461075 0.461075 0.000461304 0.00428049 0.082802 0.456228 0.456228 0.00052843 0.00484669 0.084427 0.455099 0.455099 0.000361724 0.00355249 0.0747312 0.460677 0.460677 0.000221361 0.00255682 0.0856469 0.461753 0.449822 0.00085643 0.0539447 0.531984 0.41315 0.000744457 0.00662518 0.102914 0.444858 0.444858 0.000505114 0.00506099 0.101796 0.446319 0.446319 0.000676479 0.00676181 0.127265 0.432648 0.432648 0.000783719 0.00725317 0.117854 0.437055 0.437055 0.000115902 0.00210419 0.349375 0.564975 0.0834301 0.0013374 0.526937 0.465407 0.0062757 0.000417953 0.778128 0.21963 0.00181148 0.000386713 0.701163 0.296928 0.00151218 0.412952 0.585895 0.00108546 0.000157163 0.758194 0.24085 0.000793954 0.000437282 0.809111 0.18843 0.00201037 0.00105605 0.551016 0.442162 0.00573699 0.00049263 0.537558 0.458885 0.00304962 0.000953854 0.53093 0.463101 0.00498572 0.00021176 0.00602237 0.496872 0.496872 0.000635493 0.0195629 0.489874 0.489874 0.000581026 0.0219967 0.488688 0.488688 0.000388207 0.0170577 0.491428 0.491097 0.000421052 0.0219775 0.506854 0.470718 0.0011747 0.103544 0.62872 0.266492 0.00138521 0.165578 0.663534 0.169432 0.162241 0.835294 0.00236465 0.000118971 0.320718 0.677578 0.00158057 0.00011688 0.00126539 0.0277178 0.48545 0.48545 0.00102713 0.0238849 0.487497 0.487497 0.000165893 0.00191204 0.0460601 0.475931 0.475931 0.000179692 0.00204365 0.0466296 0.475574 0.475574 0.000222514 0.00250865 0.0538584 0.471705 0.471705 0.000255011 0.00283181 0.0583444 0.469284 0.469284 0.000138428 0.00131822 0.0236842 0.48743 0.48743 0.000148212 0.00147076 0.0272413 0.48557 0.48557 0.000134564 0.00147853 0.0335034 0.482442 0.482442 0.000153586 0.0016614 0.0351952 0.481495 0.481495 0.000164625 0.00181231 0.0394939 0.479265 0.479265 0.000143163 0.00160059 0.0372499 0.480503 0.480503 0.000274164 0.00277046 0.0482363 0.47436 0.47436 0.00022108 0.00234364 0.0452462 0.476095 0.476095 0.000201947 0.00204171 0.0370234 0.480366 0.480366 0.000211392 0.0020441 0.0349575 0.481394 0.481394 0.000134582 0.00136024 0.031571 0.483467 0.483467 0.0002913 0.00289944 0.0571695 0.46982 0.46982 0.000120549 0.00101739 0.0178622 0.4905 0.4905 0.000108941 0.0010641 0.0239401 0.487443 0.487443 0.000363483 0.00321371 0.0507917 0.472816 0.472816 0.000282218 0.00228276 0.0334204 0.482007 0.482007 0.115937 0.00186667 0.00100253 0.876514 0.00467873 0.181069 0.00464197 0.00241361 0.803276 0.00859855 0.0216403 0.000703043 0.971543 0.00529044 0.00082374 0.263835 0.00674741 0.655975 0.0656311 0.00781148 0.23985 0.00176105 0.751011 0.00670894 0.000668996 0.246878 0.00506983 0.00240494 0.73046 0.0151866 0.187768 0.00633933 0.706717 0.0908802 0.00829552 0.201816 0.00790267 0.672791 0.109537 0.00795349 0.0355979 0.487547 0.017912 0.00518587 0.453756 0.0795426 0.00319727 0.893057 0.0212341 0.00296922 0.0445864 0.505858 0.0166203 0.00352085 0.429413 0.00281112 0.968753 0.0011346 0.000164368 0.0271365 0.23311 0.000105041 0.764583 0.00207612 0.000125893 0.311229 0.00191239 0.66424 0.0204303 0.00218815 0.0273085 0.920631 0.0455407 0.0048946 0.00162521 0.0131446 0.95929 0.0247867 0.0020916 0.000686649 0.00437839 0.970472 0.0234295 0.00130863 0.000411242 0.000876679 0.985713 0.012901 0.000390412 0.000118823 0.00293601 0.988861 0.00725738 0.000710986 0.000234847 0.00721044 0.767334 0.216564 0.0068966 0.00199528 0.00123848 0.983653 0.0139352 0.000903224 0.000269751 0.00719221 0.690563 0.294168 0.00653388 0.00154248 0.00578687 0.734 0.254666 0.00446222 0.00108482 0.0037649 0.630989 0.359616 0.00456185 0.00106798 0.999858 0.000141557 0.00436652 0.54583 0.441057 0.00711507 0.00163101 0.00398685 0.445801 0.539325 0.00892199 0.00196581 0.000238167 0.0517388 0.944921 0.0027145 0.000387378 0.000112239 0.0215349 0.976678 0.00146608 0.000209133 0.00309495 0.996649 0.000218098 0.0128654 0.985793 0.00114103 0.000143406 0.000532809 0.999414 0.00113882 0.998614 0.000214159 0.000413903 0.619814 0.376947 0.00281437 0.968921 0.00110538 0.000161353 0.0283458 0.00146576 0.203809 0.00786349 0.656584 0.124525 0.00721942 0.000310732 0.987438 0.0119197 0.000256824 0.989 0.0109574 0.000618801 0.99825 0.000247066 0.000852931 0.21016 0.671771 0.0609816 0.045647 0.01144 0.120633 0.716304 0.109732 0.0438559 0.00947532 0.0606927 0.694906 0.0878981 0.00629632 0.150207 0.0915907 0.217411 0.623728 0.0496584 0.0176112 0.140158 0.704245 0.121108 0.0192791 0.0152093 0.0330341 0.334463 0.589782 0.0316005 0.0111205 0.674593 0.31849 0.00103674 0.00033069 0.00554945 0.0242 0.0358514 0.682885 0.251947 0.00511671 0.0248997 0.425931 0.532058 0.0120709 0.00504055 0.00227121 0.470827 0.00375905 0.00186453 0.521278 0.0140924 0.63167 0.0158218 0.00719743 0.331218 0.549351 0.00242214 0.000692658 0.445643 0.00189089 0.00189919 0.549761 0.0035444 0.0016752 0.44312 0.672602 0.311562 0.00202885 0.000482249 0.0133213 0.0235081 0.313048 0.631071 0.0200652 0.0123075 0.00270857 0.420644 0.573424 0.00196078 0.0012619 0.000335671 0.681876 0.31755 0.000187074 0.123587 0.715781 0.128342 0.0180641 0.014225 0.112903 0.712312 0.121565 0.043917 0.00930273 0.0575821 0.712438 0.093814 0.00645505 0.129711 0.00225469 0.753151 0.00486331 0.00162647 0.238105 0.00227079 0.72884 0.00520361 0.00282932 0.260857 0.00269114 0.690782 0.00578641 0.0032231 0.297517 0.00902034 0.77187 0.013815 0.00671071 0.198584 0.0212578 0.56332 0.403888 0.00768112 0.0038529 0.944562 0.0271268 0.0175771 0.00539851 0.00533558 0.712743 0.151915 0.0739578 0.0433669 0.0180174 0.0368739 0.415656 0.528229 0.010545 0.00869549 0.0122654 0.77767 0.0205472 0.00264195 0.186876 0.0107113 0.840875 0.0217833 0.00293614 0.123694 0.0251723 0.475903 0.018339 0.00683564 0.47375 0.626528 0.337236 0.00570649 0.0021572 0.0283715 0.485882 0.4643 0.0110256 0.00483965 0.0339537 0.23908 0.686027 0.0176596 0.00786702 0.0493665 0.989896 0.00391481 0.00287103 0.00167805 0.00164011 0.978287 0.0082046 0.00607087 0.00527185 0.00216588 0.999521 0.000191113 0.000101025 0.998891 0.000545167 0.000291091 0.000194014 0.960626 0.018418 0.012426 0.00428769 0.00424201 0.999666 0.000160661 0.993551 0.00229539 0.00114182 0.00265622 0.000355451 0.989106 0.00331891 0.00144343 0.00556121 0.000570177 0.98454 0.00425445 0.00266334 0.00774457 0.000797221 0.977681 0.00435216 0.00209345 0.015171 0.000702111 0.998981 0.000121029 0.000828138 0.998969 0.000326685 0.000124779 0.000456438 0.000122988 0.997592 0.000879108 0.000328453 0.000611904 0.000589005 0.998017 0.000969664 0.000410807 0.0003034 0.000299087 0.996999 0.00136836 0.000493128 0.000881139 0.000258724 0.992981 0.00169809 0.000659731 0.00432912 0.000331695 0.998667 0.000111064 0.00115865 0.998183 0.000315346 0.000118863 0.00131368 0.87135 0.00795581 0.00168072 0.0795044 0.0395094 0.832827 0.00854778 0.131025 0.0250885 0.00251192 0.474879 0.0184922 0.00528377 0.481096 0.0202485 0.102553 0.00085171 0.000153692 0.894379 0.00206276 0.999579 0.000330937 0.995128 0.000938198 0.000238461 0.00327285 0.00042261 0.993895 0.000559835 0.00018267 0.00519452 0.000167727 0.999659 0.000297848 0.996057 0.000219501 0.00359273 0.968407 0.00119441 0.00041491 0.0296127 0.000371203 0.015136 0.857888 0.0712925 0.00727901 0.0484049 0.0182656 0.865096 0.0909403 0.00535776 0.0203402 0.0469631 0.447703 0.426765 0.0372937 0.0412745 0.34759 0.355514 0.155616 0.0536775 0.0875998 0.0185195 0.863422 0.101642 0.00525766 0.0111593 0.0191861 0.858529 0.111489 0.00498757 0.00580887 0.047693 0.449819 0.449811 0.0339281 0.0187491 0.0481364 0.44444 0.444411 0.0353025 0.02771 0.02391 0.8623 0.0468208 0.0468203 0.0201473 0.862075 0.0538121 0.053811 0.0196151 0.010686 0.643907 0.154218 0.154218 0.0369867 0.0106712 0.551772 0.194509 0.194509 0.0499022 0.0093075 0.864984 0.0483975 0.0483958 0.0169078 0.0213138 0.427608 0.249095 0.249091 0.0524059 0.0217982 0.0257382 0.632237 0.13462 0.0314928 0.175911 0.0304688 0.621596 0.15099 0.0271659 0.16978 0.268929 0.337662 0.217495 0.0732699 0.10264 0.192064 0.351353 0.286072 0.0825478 0.0879593 0.0248231 0.781144 0.0855488 0.0231386 0.0853457 0.102346 0.398755 0.393465 0.063092 0.0423388 0.0623822 0.00610753 0.917345 0.0130885 0.0010764 0.846232 0.0168338 0.00348807 0.0947759 0.038669 0.68661 0.000574623 0.310811 0.00192082 0.0744428 0.000888581 0.000128307 0.92264 0.00190016 0.000596189 0.998551 0.000802041 0.999728 0.000177754 0.00795512 0.496593 0.484449 0.00550118 0.00550118 0.00260894 0.518937 0.475655 0.00143811 0.00136145 0.0054302 0.994057 0.000487907 0.00155845 0.997314 0.00107898 0.00312389 0.569099 0.425542 0.00124718 0.000988509 0.00482445 0.569324 0.422695 0.00189881 0.00125759 0.000170767 0.999748 0.0101268 0.540137 0.442998 0.00425639 0.00248172 0.00969517 0.559711 0.425061 0.00331493 0.00221799 0.000151922 0.999444 0.000372931 0.0104495 0.547242 0.435982 0.00346728 0.00285892 0.00565106 0.503371 0.48461 0.00323407 0.00313326 0.00095266 0.488601 0.508484 0.00103465 0.000927292 0.00164827 0.494766 0.499612 0.00201144 0.001962 0.000851999 0.479796 0.518044 0.00079746 0.000510446 0.00109474 0.480769 0.516201 0.00110067 0.000834205 0.00261706 0.492923 0.500715 0.00227678 0.00146849 0.0016837 0.393039 0.602732 0.00161195 0.000934171 0.00205962 0.496685 0.49703 0.00216916 0.00205619 0.00328204 0.495994 0.496013 0.00263762 0.00207286 0.00106177 0.156413 0.835972 0.00329688 0.00325633 0.000217327 0.039796 0.958915 0.000568611 0.000503052 0.000235682 0.0359178 0.962889 0.000558419 0.000399259 0.000376866 0.0697607 0.928454 0.000913098 0.00049491 0.000740359 0.0756373 0.920976 0.00180547 0.000840573 0.000361929 0.0380293 0.960452 0.000748933 0.000407768 0.00088881 0.101162 0.895153 0.00160076 0.00119582 0.000721923 0.100264 0.895534 0.00177223 0.00170805 0.00104515 0.997951 0.000524259 0.000449206 0.000374477 0.0379602 0.947844 0.00747658 0.00634467 0.0011951 0.090854 0.882605 0.0163291 0.00901651 0.000168436 0.00501403 0.991068 0.00233226 0.0014175 0.000252711 0.00790246 0.985558 0.00478917 0.00149728 0.00197827 0.108976 0.848399 0.0294992 0.0111477 0.000155882 0.00445934 0.992668 0.00205919 0.000657574 0.000911431 0.0218849 0.957713 0.0157182 0.00377246 0.00196489 0.0933396 0.856923 0.0374273 0.0103452 0.0013265 0.0684941 0.90005 0.0225216 0.00760808 0.0223476 0.956589 0.0102319 0.0102051 0.000626376 0.000185171 0.999728 0.00113316 0.0910585 0.883636 0.0158649 0.00830784 0.000923702 0.0896836 0.880067 0.0158342 0.0134917 0.000821077 0.709832 0.260831 0.0284623 0.000360669 0.752171 0.238765 0.00867582 0.000115002 0.843598 0.155053 0.00122383 0.00017583 0.836839 0.161596 0.00137002 0.000305813 0.82784 0.168574 0.00323856 0.000433624 0.864664 0.128 0.00684903 0.000607219 0.829464 0.153584 0.0162888 0.566255 0.433141 0.000566626 0.000186649 0.407532 0.583586 0.00867517 0.000370732 0.455413 0.527559 0.0166047 0.000150041 0.498588 0.498597 0.00264084 0.000266775 0.58912 0.406144 0.00441656 0.599838 0.399068 0.000992396 0.00026951 0.498399 0.498397 0.00287743 0.000506292 0.49614 0.495165 0.00804881 0.000139797 0.000475565 0.170802 0.76608 0.0625857 0.000548811 0.220137 0.709607 0.06963 0.000358447 0.554199 0.434801 0.0105711 0.000744606 0.40863 0.557646 0.0327599 0.000220256 0.000882668 0.159043 0.706183 0.133622 0.000269301 0.000681094 0.161547 0.746538 0.0910814 0.000152997 0.000464157 0.021218 0.568707 0.40951 0.000100906 0.000577248 0.0258941 0.542024 0.431331 0.000173998 0.00159439 0.499154 0.499154 0.000177701 0.00359935 0.498097 0.498097 0.00102922 0.499464 0.499451 0.000215498 0.00432442 0.497726 0.49771 0.000423215 0.0239884 0.550701 0.424825 0.000452316 0.0208617 0.556482 0.422152 0.000331991 0.320786 0.654223 0.0246293 0.000482764 0.166807 0.769373 0.0632946 0.000673139 0.0293746 0.561088 0.408806 0.000384587 0.0210853 0.530568 0.447817 0.000144199 0.000313711 0.0260608 0.590801 0.382764 0.00248 0.498721 0.498707 0.00220915 0.498847 0.498847 0.000133722 0.498374 0.498382 0.00308208 0.000317813 0.456812 0.525449 0.017361 0.000496793 0.386838 0.579847 0.0326389 0.000179091 0.000424176 0.494424 0.494436 0.010561 0.000155516 0.000432207 0.23371 0.701836 0.0639398 0.000582449 0.169559 0.724181 0.10547 0.000207558 0.000232375 0.00834676 0.977474 0.00697357 0.00697356 0.000443625 0.452218 0.521809 0.0254691 0.000738577 0.266197 0.663345 0.0696193 0.000100519 0.00084125 0.0342046 0.542636 0.42221 0.00010782 0.000233979 0.498114 0.498114 0.00347557 0.000271493 0.999706 0.000131457 0.999797 0.00616914 0.993479 0.000254524 0.00262311 0.997234 0.000102136 0.317383 0.00252619 0.000738585 0.678013 0.00133824 0.124376 0.000985435 0.871993 0.0024858 0.000160449 0.00548575 0.994298 0.000172891 0.000240178 0.999758 0.204043 0.00624379 0.773718 0.0147901 0.00120483 0.175819 0.0125069 0.762525 0.044858 0.00429171 0.00551147 0.00032072 0.991568 0.00241405 0.000185981 0.000659415 0.999227 0.999687 0.000209224 0.998994 0.000781795 0.0401274 0.839265 0.0934181 0.00481743 0.0223722 0.0374106 0.857675 0.0905052 0.00805093 0.00635743 0.0256896 0.858588 0.0724546 0.00455495 0.0387124 0.0136628 0.865048 0.0391272 0.00407068 0.0780916 0.00966878 0.711745 0.0283252 0.00979152 0.24047 0.0065303 0.862772 0.0189656 0.00416178 0.107571 0.00983788 0.86245 0.0167835 0.0065504 0.104378 0.0102807 0.712986 0.0269148 0.0104541 0.239365 0.0263017 0.661259 0.131683 0.0338597 0.146896 0.0371313 0.848945 0.0369208 0.0174871 0.0595155 0.0283306 0.0728654 0.864668 0.0206024 0.0135316 0.0151818 0.108644 0.856772 0.0126966 0.00670416 0.987386 0.00524125 0.00235944 0.00439129 0.000621922 0.851136 0.0288842 0.0103588 0.106012 0.00360876 0.887729 0.00398859 0.0950471 0.0121379 0.00109704 0.920065 0.00490072 0.0535483 0.0191191 0.0023668 0.90362 0.00244179 0.0860636 0.00725329 0.000621566 0.896961 0.00160612 0.0967296 0.00437945 0.000323762 0.997938 0.00077627 0.000227907 0.000534495 0.000523835 0.999864 0.998859 0.000174372 0.000461755 0.000442684 0.999638 0.000128527 0.000122541 0.156879 0.36973 0.343148 0.0699144 0.0603256 0.0132185 0.0207308 0.671645 0.290955 0.00344945 0.0142011 0.019494 0.681822 0.280134 0.00434846 0.00706952 0.0102144 0.681319 0.298835 0.00256157 0.0104507 0.27524 0.676023 0.0357163 0.0025689 0.24315 0.680485 0.0535504 0.0109708 0.0118444 0.25109 0.681499 0.0512002 0.0100102 0.00620077 0.993386 0.000464412 0.00401965 0.00185104 0.000278425 0.999882 0.000115187 0.988517 0.000540384 0.00878504 0.00194312 0.000214808 0.988191 0.000374004 0.0100542 0.00126532 0.000115683 0.96215 0.00142126 0.0300699 0.00576479 0.000594354 0.996072 0.000219313 0.00267496 0.000921479 0.00011235 0.989081 0.00107729 0.000454403 0.00473372 0.00465336 0.0037338 0.320378 0.673122 0.00194534 0.000821046 0.00383247 0.320833 0.672681 0.00207692 0.000576151 0.0940041 0.267452 0.545293 0.0377308 0.0555201 0.0621878 0.333212 0.537161 0.0621875 0.00525214 0.0279438 0.365168 0.574499 0.0117394 0.0206499 0.0412287 0.373599 0.55461 0.0159022 0.0146602 0.0374574 0.366273 0.572968 0.0145086 0.00879247 0.982239 0.000152621 0.0171514 0.000393788 0.842521 0.0205769 0.0043549 0.0673657 0.065182 0.907803 0.00821044 0.00305758 0.0409693 0.0399599 0.0265349 0.183645 0.22795 0.556898 0.00497268 0.0883763 0.266011 0.217963 0.423145 0.00450479 0.119912 0.359667 0.294692 0.221474 0.00425414 0.11577 0.393658 0.353983 0.126514 0.0100746 0.0853291 0.383018 0.402284 0.117866 0.0115016 0.0592857 0.435227 0.431651 0.0651133 0.0087233 0.116909 0.449818 0.361923 0.0586987 0.0126518 0.210375 0.448408 0.2717 0.0551614 0.0143553 0.286419 0.454135 0.205771 0.044302 0.00937276 0.0239131 0.291721 0.29172 0.388423 0.0042225 0.033686 0.451149 0.451148 0.0582489 0.00576746 0.113734 0.473338 0.365735 0.0294873 0.017705 0.183848 0.451296 0.294318 0.0418486 0.0286894 0.277896 0.422139 0.217784 0.0435619 0.0386184 0.352908 0.413972 0.162266 0.0381956 0.0326585 0.412874 0.431466 0.114168 0.0271661 0.0143236 0.296772 0.447949 0.202174 0.0463475 0.00675781 0.431315 0.433506 0.0990762 0.0250912 0.0110091 0.0370067 0.359518 0.359518 0.238531 0.00542674 0.0387695 0.370247 0.370247 0.213993 0.00674421 0.0237351 0.245573 0.245573 0.480789 0.00433071 0.0780673 0.428836 0.428836 0.0551413 0.00911869 0.0747559 0.430041 0.430041 0.0541014 0.0110613 0.0823165 0.433264 0.4312 0.0405802 0.0126388 0.0807733 0.464241 0.418347 0.0263183 0.0103207 0.430306 0.432231 0.101549 0.0262529 0.00966067 0.799847 0.0156767 0.00229791 0.0573744 0.124804 0.894023 0.0067068 0.00142392 0.0360707 0.061776 0.00015465 0.999838 0.00178909 0.998143 0.00012945 0.999865 0.000254065 0.999732 0.00019416 0.999794 0.000643059 0.999319 0.00013237 0.999856 0.000212422 0.999776 0.000216892 0.999772 0.000115577 0.9998 0.000211933 0.99968 0.000133117 0.000275756 0.999577 0.000186761 0.999759 0.000162894 0.999817 0.000102127 0.999883 0.000131191 0.999808 0.000106196 0.999883 0.000273903 0.999702 0.000802722 0.999154 0.000787813 0.999164 0.000233396 0.000319365 0.999421 0.000174661 0.999734 0.000339931 0.999631 0.000123108 0.999868 0.000546643 0.99942 0.000153052 0.00190218 0.997913 0.00022908 0.00112966 0.0133163 0.985267 0.000189374 0.00220827 0.99755 0.999885 0.000152656 0.000736956 0.00090714 0.998153 0.999862 0.00159092 0.0123744 0.0141882 0.971548 0.000298001 0.00720655 0.103146 0.109912 0.778925 0.000810345 0.0186008 0.222497 0.250244 0.505655 0.0030038 0.0027942 0.0189508 0.0218718 0.955712 0.000671621 0.000574232 0.00140511 0.997952 0.000283239 0.00228915 0.00500534 0.992401 0.000828029 0.00618862 0.00791712 0.985018 0.000205384 0.000294459 0.999474 0.00049831 0.00370493 0.00419567 0.991573 0.000153235 0.00108669 0.00134127 0.997407 0.000193207 0.00104928 0.998729 0.000162034 0.00168081 0.998106 0.000173016 0.00182648 0.997951 0.000209447 0.999766 0.000364265 0.999589 0.000225109 0.000743519 0.004844 0.99413 0.000339751 0.00125924 0.0108741 0.987431 0.00104816 0.00399684 0.0327959 0.961916 0.000243202 0.000153551 0.000924318 0.998867 0.000300505 0.999632 0.000240759 0.99972 0.000106282 0.000577617 0.0017737 0.997533 0.00460551 0.0152013 0.0205898 0.959348 0.000255669 0.00011445 0.000163285 0.999668 0.00264594 0.00988302 0.0140382 0.973297 0.000135575 0.001341 0.0055559 0.00827459 0.984758 0.000152374 0.000248274 0.999547 0.000980751 0.005597 0.00963673 0.983732 0.000313002 0.00279571 0.00679462 0.990077 0.00012822 0.00126229 0.00329549 0.995305 0.00156888 0.0210268 0.0320924 0.945238 0.00259073 0.0278526 0.0388414 0.930573 0.000142728 0.000707368 0.00495216 0.00938689 0.984911 0.000236371 0.00212363 0.0050588 0.992565 0.000471065 0.00150134 0.997955 0.000177027 0.000350689 0.999436 0.000103867 0.000475611 0.00114299 0.998269 0.00017245 0.000686463 0.999107 0.000759818 0.000965945 0.998163 0.00289257 0.0321178 0.0329048 0.93193 0.000155107 0.000487624 0.00495996 0.00544737 0.989049 0.000119411 0.00104916 0.00114357 0.997676 0.00011307 0.000441187 0.999424 0.999893 0.000215962 0.0040298 0.00472082 0.991024 0.00363384 0.0385601 0.0443927 0.913234 0.000179837 0.999898 0.000980265 0.0061445 0.00675192 0.985962 0.000161697 0.000280111 0.000362301 0.999319 0.00123465 0.00892442 0.00934797 0.980419 0.000190735 0.00124917 0.00132365 0.997221 0.00529726 0.116061 0.120492 0.757814 0.000335861 0.00055797 0.00150998 0.997872 0.000140732 0.000215161 0.99963 0.000144537 0.000193745 0.999646 0.000247436 0.00215419 0.0535254 0.472036 0.472036 0.000492331 0.00417332 0.0851421 0.455096 0.455096 0.000386016 0.00324639 0.0673112 0.464528 0.464528 0.000339044 0.0028765 0.0624988 0.467143 0.467143 0.000737143 0.0238243 0.487678 0.487678 0.000261695 0.0103931 0.494659 0.494659 0.000155704 0.00123938 0.0278446 0.48538 0.48538 0.000273091 0.00202674 0.0386849 0.479508 0.479508 0.000729494 0.0300685 0.484563 0.484563 0.000112258 0.00099871 0.0329722 0.482958 0.482958 0.000295224 0.00222265 0.0441033 0.476689 0.476689 0.000136726 0.00116887 0.0320815 0.483306 0.483306 0.000255537 0.00209273 0.0455951 0.476028 0.476028 0.000304739 0.00249171 0.0534859 0.471859 0.471859 0.000316286 0.00266804 0.058383 0.469316 0.469316 0.000487329 0.00357678 0.0614606 0.467238 0.467238 0.000664509 0.00504548 0.0844438 0.454923 0.454923 0.000378677 0.00306385 0.0645511 0.466003 0.466003 0.000268966 0.00218356 0.0486154 0.474466 0.474466 0.000646927 0.00493975 0.0812601 0.456577 0.456577 0.000472427 0.00342937 0.0565635 0.469767 0.469767 0.000342588 0.0026199 0.0481097 0.474464 0.474464 0.000421198 0.00340416 0.0650914 0.465542 0.465542 0.000411434 0.00341404 0.0728085 0.461683 0.461683 0.000531691 0.00435865 0.0852103 0.45495 0.45495 0.00011041 0.000958642 0.026583 0.486174 0.486174 0.000148422 0.0077669 0.496043 0.496027 0.00012607 0.00124801 0.0378893 0.480368 0.480368 0.000220818 0.00222993 0.0630659 0.467242 0.467242 0.000212321 0.00206171 0.0525878 0.472569 0.472569 0.000161717 0.00164619 0.0482763 0.474958 0.474958 0.000105149 0.0045136 0.497685 0.497685 0.00304814 0.498443 0.498443 0.000705404 0.0183596 0.490428 0.490428 0.000821447 0.019714 0.489684 0.489684 0.000183174 0.00170373 0.0415382 0.478287 0.478287 0.000163005 0.00149612 0.0373212 0.48051 0.48051 0.000146155 0.00147105 0.0431044 0.477639 0.477639 0.000256066 0.00226761 0.0492074 0.474134 0.474134 0.000233448 0.00192202 0.0380993 0.479873 0.479873 0.000160255 0.00145374 0.0344702 0.481958 0.481958 0.000205923 0.00192912 0.0464991 0.475683 0.475683 0.000715277 0.0182459 0.490478 0.490478 0.00205562 0.498949 0.498949 0.000232239 0.00188212 0.037949 0.479968 0.479968 0.000221491 0.00195728 0.0455589 0.476131 0.476131 0.000200572 0.00184536 0.0468943 0.47553 0.47553 0.000196857 0.00180463 0.0457897 0.476104 0.476104 0.000207895 0.00177246 0.0395203 0.47925 0.47925 0.000183667 0.00165042 0.0408389 0.478664 0.478664 0.000547899 0.0165418 0.491425 0.491425 0.000464234 0.0155658 0.491961 0.491961 0.000938602 0.499538 0.499509 0.000781087 0.499638 0.499567 0.000226371 0.418199 0.572479 0.00908596 0.000262868 0.131951 0.808313 0.0594579 0.000337154 0.1169 0.807473 0.0752711 0.000459528 0.412465 0.567814 0.0192423 0.000500977 0.0204682 0.4895 0.489479 0.000682662 0.0941528 0.602651 0.302462 0.000135935 0.0292355 0.779297 0.191323 0.000175211 0.00818982 0.495829 0.495788 0.000827513 0.383892 0.574902 0.0403422 0.000950123 0.161943 0.636757 0.200296 0.000854634 0.13557 0.636341 0.227184 0.00067328 0.333703 0.621191 0.0444012 0.00106664 0.00875415 0.14844 0.42087 0.42087 0.000784845 0.00651001 0.124532 0.434087 0.434087 0.000881753 0.00709304 0.124344 0.433841 0.433841 0.000289957 0.783331 0.216376 0.00289185 0.560026 0.437055 0.00053982 0.0330678 0.484661 0.48169 0.000438044 0.0229815 0.488273 0.488272 0.000516268 0.0235915 0.487925 0.487924 0.000567835 0.0308248 0.484301 0.484261 0.00504092 0.497446 0.49741 0.000116886 0.00112496 0.0462084 0.476285 0.476265 0.000575553 0.0299805 0.484698 0.48469 0.00071949 0.31286 0.626326 0.0600532 0.000700642 0.461368 0.516415 0.0214823 0.000120791 0.419052 0.576225 0.00459669 0.000125724 0.180697 0.805038 0.0141329 0.000350648 0.277198 0.69288 0.0295541 0.000225767 0.46672 0.526651 0.00639477 0.000520218 0.482387 0.505194 0.0118791 0.000602302 0.400099 0.572354 0.0269181 0.000497012 0.495938 0.494638 0.00890852 0.000255999 0.612702 0.382189 0.00484338 0.000106231 0.00223703 0.480456 0.481251 0.0359498 0.00118294 0.498244 0.48715 0.0133743 0.00152085 0.483429 0.486512 0.0284643 0.00173351 0.417419 0.514345 0.0664042 0.000143231 0.00268799 0.447896 0.483444 0.0658296 0.00109083 0.22947 0.619203 0.150169 0.000333189 0.147806 0.798552 0.0532902 0.00624305 0.561509 0.432191 0.000613691 0.0476965 0.497045 0.454593 0.000102835 0.00115009 0.0726579 0.47726 0.448829 0.000124639 0.00156633 0.143186 0.51929 0.335833 0.000106736 0.00133187 0.126779 0.526532 0.34525 0.000207683 0.00334492 0.367122 0.490051 0.139274 0.00073035 0.00811432 0.236263 0.409492 0.3454 0.000432246 0.00477297 0.173118 0.429729 0.391948 0.000129092 0.00189348 0.221796 0.542764 0.233417 0.000170143 0.00189058 0.104274 0.46456 0.429105 0.000364992 0.0036165 0.117584 0.439557 0.438877 0.000471311 0.0047674 0.152471 0.427181 0.415109 0.000218612 0.00262765 0.171586 0.47573 0.349838 0.000877916 0.00773402 0.15392 0.418737 0.418732 0.000706161 0.00616874 0.132154 0.430486 0.430485 0.000711098 0.00753044 0.217747 0.41053 0.363481 0.000285463 0.00397243 0.306312 0.475321 0.214109 0.000482079 0.00424764 0.101779 0.446746 0.446745 0.000620393 0.00524122 0.110304 0.441917 0.441917 0.000690042 0.00576386 0.110312 0.441617 0.441617 0.0004874 0.004355 0.101257 0.446951 0.44695 0.000103821 0.00124148 0.0879326 0.489222 0.4215 0.000309811 0.00323587 0.118033 0.441787 0.436634 0.000947798 0.00766751 0.129159 0.431113 0.431113 0.000655273 0.00594726 0.129927 0.431737 0.431733 0.000858216 0.00774655 0.155631 0.417885 0.417879 0.000992152 0.0083186 0.145035 0.422827 0.422827 0.000165002 0.00268179 0.391223 0.499196 0.106734 0.00078072 0.802502 0.19256 0.00413084 0.000889894 0.796879 0.197153 0.00504524 0.00112274 0.815439 0.182334 0.00109538 0.000327116 0.80414 0.193422 0.00210035 0.000108433 0.57376 0.42377 0.00235797 0.000389532 0.687698 0.309286 0.0026153 0.000368808 0.635962 0.360747 0.00291081 0.000840749 0.586702 0.406773 0.00565477 0.000223706 0.629656 0.368206 0.00190625 0.000219743 0.00823992 0.495758 0.495758 0.000324948 0.0148027 0.492422 0.492422 0.00025767 0.0150126 0.492374 0.492335 0.000206515 0.013576 0.493105 0.493096 0.000220727 0.0176759 0.500635 0.481452 0.000518939 0.0868188 0.667583 0.245047 0.000544208 0.107141 0.790998 0.101286 0.000403857 0.467112 0.520486 0.0119802 0.000384401 0.496989 0.496237 0.00637415 0.000876036 0.0271871 0.485926 0.485926 0.00010047 0.0010241 0.0301734 0.484351 0.484351 0.000170694 0.00182078 0.0560619 0.470973 0.470973 0.000263532 0.00270842 0.0700894 0.463469 0.463469 0.000223539 0.00233693 0.0639458 0.466747 0.466747 0.000180131 0.00190071 0.055726 0.471097 0.471097 0.000128565 0.001209 0.029749 0.484457 0.484457 0.000125621 0.00113411 0.0267637 0.485988 0.485988 0.000134492 0.00137685 0.0404647 0.479012 0.479012 0.000145663 0.0015132 0.0453924 0.476474 0.476474 0.000162851 0.00166988 0.0470533 0.475557 0.475557 0.0001463 0.00148024 0.0410011 0.478686 0.478686 0.000279968 0.00263978 0.0578827 0.469599 0.469599 0.000208732 0.0018977 0.0415438 0.478175 0.478175 0.000193219 0.00183494 0.0430545 0.477459 0.477459 0.000219374 0.00216937 0.0535947 0.472008 0.472008 0.000184645 0.00171681 0.0474058 0.475346 0.475346 0.000369394 0.00336897 0.0771771 0.459542 0.459542 0.000147574 0.00117195 0.0254114 0.486635 0.486635 0.000152734 0.00137802 0.037244 0.480613 0.480613 0.000451171 0.00368404 0.0680453 0.46391 0.46391 0.000341658 0.00258533 0.0453623 0.475855 0.475855 0.323459 0.00393244 0.00222819 0.658277 0.0121029 0.156151 0.0036661 0.78977 0.0462759 0.00413658 0.0379416 0.000808071 0.953087 0.00726952 0.000893772 0.352138 0.000876608 0.000472604 0.644631 0.00188162 0.230808 0.00239609 0.753936 0.0119269 0.000932912 0.0884645 0.00711754 0.764818 0.132293 0.00730769 0.0742756 0.00312436 0.856919 0.0615571 0.00412374 0.210892 0.00538423 0.00277638 0.760061 0.0208862 0.151354 0.00427728 0.807847 0.032729 0.00379083 0.015759 0.50162 0.0076017 0.00237085 0.472648 0.0341642 0.50374 0.0120944 0.00274728 0.447254 0.312514 0.00152913 0.666235 0.0180567 0.00166399 0.204458 0.00123425 0.765434 0.0274387 0.00143577 0.00217977 0.979491 0.000860452 0.000133426 0.0173349 0.000143521 0.999475 0.00035231 0.000402486 0.998845 0.000674794 0.998033 0.00184432 0.999576 0.000364988 0.0174573 0.936567 0.0412539 0.00344188 0.00127954 0.171253 0.825309 0.00316601 0.000203176 0.996955 0.00282579 0.00315353 0.721063 0.27251 0.00256729 0.000705542 0.00506053 0.693909 0.295501 0.00434841 0.0011809 0.988069 0.0118641 0.00194203 0.579784 0.414896 0.00267455 0.000703201 0.00928333 0.543878 0.429556 0.0136322 0.00365004 0.00512655 0.501475 0.479583 0.0109806 0.00283492 0.966531 0.0331932 0.000167219 0.00481027 0.994844 0.000276732 0.00781949 0.991703 0.000375627 0.000157231 0.0883048 0.907694 0.00331471 0.000529569 0.0011837 0.998724 0.000294668 0.999672 0.00049233 0.0585658 0.925508 0.013301 0.00213254 0.021692 0.975275 0.00252543 0.000415082 0.00015056 0.808506 0.190245 0.00109362 0.0354772 0.00385376 0.881715 0.0753935 0.0035605 0.992394 0.000445646 0.00637448 0.000712245 0.000528778 0.970568 0.0281338 0.000581807 0.000187876 0.994107 0.00587545 0.000100557 0.038529 0.958576 0.00240181 0.000392662 0.00653536 0.983458 0.00267088 0.000384353 0.00695155 0.0810394 0.670708 0.116028 0.00904637 0.123178 0.138923 0.683675 0.126553 0.0134104 0.0374392 0.22991 0.647088 0.0677622 0.0148598 0.0403735 0.310547 0.577119 0.0538126 0.00859778 0.0499239 0.040197 0.264337 0.666322 0.0230243 0.00611942 0.0123626 0.019154 0.679591 0.286183 0.00270916 0.655566 0.344381 0.000971543 0.347797 0.0011666 0.000542736 0.649522 0.00170357 0.415739 0.00298954 0.00154026 0.578027 0.429167 0.00570256 0.00287429 0.557884 0.00437177 0.550692 0.00110109 0.000347658 0.446769 0.00108975 0.687898 0.293933 0.00197687 0.000493078 0.0156987 0.000634074 0.68168 0.317578 0.0144291 0.324881 0.648675 0.0104614 0.00155418 0.0245761 0.277582 0.671092 0.0246311 0.0021193 0.116349 0.713338 0.12513 0.0117831 0.0334 0.0589237 0.756292 0.094574 0.00709292 0.0831174 0.00375168 0.753502 0.00896476 0.00512234 0.228659 0.750996 0.0140006 0.00518361 0.221576 0.00824231 0.00259426 0.839251 0.0043423 0.00212412 0.151689 0.00287233 0.740451 0.00665568 0.00379258 0.246228 0.0101337 0.436058 0.54931 0.00333319 0.00116573 0.798479 0.104391 0.0534783 0.0130439 0.0306076 0.00986596 0.754824 0.0162489 0.00230821 0.216753 0.018421 0.823563 0.0366168 0.00546799 0.115931 0.00189116 0.523736 0.00139502 0.000546816 0.472431 0.135454 0.834386 0.00316862 0.00124035 0.0257502 0.038403 0.855707 0.0320001 0.0261107 0.047779 0.100648 0.861301 0.00638417 0.00285872 0.0288077 0.994531 0.00194231 0.00109674 0.000655053 0.00177501 0.949446 0.0189084 0.0143572 0.00517897 0.0121089 0.970105 0.0143868 0.00805678 0.00219382 0.00525753 0.99962 0.000179117 0.955909 0.0149587 0.00806317 0.00249751 0.0185721 0.989088 0.00314844 0.00148252 0.000584937 0.00569637 0.993143 0.00180226 0.00121653 0.000363146 0.0034755 0.998896 0.00011723 0.000911987 0.992528 0.00133388 0.000705717 0.000235459 0.00519713 0.99755 0.00076809 0.000304227 0.000308227 0.00106974 0.99146 0.00193998 0.000814435 0.000410611 0.00537504 0.998924 0.000176845 0.000784425 0.996769 0.000237664 0.00284609 0.894023 0.0067068 0.00142392 0.0360706 0.061776 0.387907 0.0013951 0.000256361 0.00371693 0.606725 0.492053 0.019041 0.00562528 0.0224966 0.460783 0.894621 0.00534398 0.082416 0.0160133 0.00160346 0.990483 0.00119365 0.000415885 0.000327024 0.00758033 0.998575 0.000118962 0.00122551 0.999418 0.000108966 0.000391515 0.998445 0.0014714 0.999223 0.000715354 0.0194561 0.837597 0.0870296 0.0100629 0.0458542 0.36157 0.379553 0.186757 0.0630086 0.00910653 0.0500738 0.436019 0.43602 0.0413111 0.0365701 0.0196613 0.863904 0.0939728 0.00606143 0.0164003 0.0194577 0.861664 0.104033 0.00568558 0.00915951 0.0492832 0.445056 0.445056 0.0368367 0.0237642 0.664347 0.148157 0.148157 0.0349397 0.00439875 0.848989 0.0621802 0.0621802 0.0224271 0.00422207 0.396704 0.272137 0.272137 0.0548911 0.00413049 0.0240519 0.846301 0.0652056 0.0222992 0.0421333 0.0206858 0.681641 0.113912 0.0280575 0.155665 0.183442 0.383883 0.335802 0.0921067 0.00476586 0.27321 0.370977 0.263118 0.0857573 0.0069376 0.022957 0.733056 0.112466 0.0223822 0.109113 0.108545 0.413623 0.413373 0.0611838 0.00327537 0.0254221 0.695785 0.0986289 0.0262241 0.15391 0.42445 0.0415583 0.435347 0.0912294 0.00740927 0.822174 0.0101678 0.00149279 0.023861 0.142305 0.799848 0.0156767 0.0022979 0.0573743 0.124803 0.849969 0.0165107 0.00345419 0.0395946 0.0904711 0.000842025 0.998789 0.000346428 0.00292778 0.52194 0.472059 0.00157705 0.00149549 0.00836432 0.497198 0.483045 0.00569621 0.00569616 0.00815455 0.972392 0.0178292 0.000811988 0.000811985 0.00508842 0.571427 0.42021 0.00196845 0.00130542 0.00347938 0.573429 0.420667 0.00134911 0.00107539 0.00197399 0.996633 0.00133176 0.00899292 0.554369 0.431363 0.00318464 0.00209002 0.00991652 0.538357 0.445077 0.0042166 0.00243311 0.0173195 0.981626 0.000978014 0.00528309 0.501704 0.486994 0.00306781 0.00295086 0.00954345 0.541427 0.443069 0.00329627 0.00266354 0.000317997 0.999445 0.000217985 0.00111294 0.489653 0.506985 0.00118461 0.00106447 0.00179614 0.494767 0.499165 0.00216314 0.00210916 0.000909173 0.480161 0.517547 0.000843677 0.000539119 0.00126726 0.48242 0.514119 0.00124449 0.000948788 0.00181268 0.380209 0.615328 0.00162403 0.00102558 0.00197762 0.480634 0.514376 0.00191611 0.00109688 0.00190692 0.49673 0.497421 0.00203218 0.00190974 0.00250913 0.428777 0.565026 0.00208525 0.00160295 0.0147872 0.98469 0.000229001 0.000203873 0.000812898 0.112011 0.882224 0.00249102 0.00246105 0.00017078 0.029949 0.969251 0.000407911 0.000221772 0.000127731 0.0176328 0.981733 0.000293421 0.000212571 0.000303432 0.0342975 0.964404 0.000650735 0.000344719 0.000663577 0.06923 0.927712 0.00164133 0.000752756 0.000663332 0.0968608 0.899258 0.00164557 0.00157236 0.000116177 0.999879 0.000514223 0.0168358 0.966401 0.0086729 0.00757595 0.0013707 0.0385967 0.930688 0.017969 0.0113759 0.00138875 0.100061 0.869852 0.01834 0.0103584 0.000659266 0.0642134 0.911044 0.0130138 0.0110698 0.000507958 0.0153627 0.971854 0.00929545 0.00297964 0.00216551 0.114849 0.839511 0.0313935 0.012081 0.000115182 0.00340026 0.994396 0.00160144 0.000486699 0.00186594 0.099169 0.855115 0.0331389 0.0107111 0.00193287 0.0916952 0.858992 0.0372434 0.0101369 0.000865463 0.0209163 0.959388 0.0152533 0.00357649 0.00139024 0.0501477 0.903562 0.022525 0.0223746 0.000851334 0.0840421 0.887918 0.0147991 0.0123894 0.000965353 0.0806597 0.897147 0.0141447 0.00708312 0.003751 0.0997118 0.853069 0.0271631 0.0163052 0.000505775 0.703826 0.283344 0.0122843 0.000994106 0.666024 0.298079 0.0348366 0.000157766 0.813295 0.184848 0.0016845 0.000193749 0.860888 0.13686 0.00203259 0.000148709 0.846597 0.152085 0.00115255 0.000532121 0.838338 0.146976 0.014105 0.000297734 0.890774 0.104257 0.00463557 0.55107 0.448021 0.000852521 0.000198564 0.498129 0.498129 0.00351077 0.000494868 0.442727 0.534284 0.0224227 0.000261526 0.390243 0.597195 0.0122717 0.000173225 0.603199 0.393755 0.00283831 0.000357044 0.49712 0.496811 0.00561311 0.000227032 0.498655 0.498655 0.00241544 0.60266 0.396433 0.000821809 0.000649312 0.211116 0.704277 0.0838639 0...
[truncated message content] |
|
From: <axl...@us...> - 2009-08-30 13:32:25
|
Revision: 530
http://hgengine.svn.sourceforge.net/hgengine/?rev=530&view=rev
Author: axlecrusher
Date: 2009-08-30 13:32:16 +0000 (Sun, 30 Aug 2009)
Log Message:
-----------
fix linux compile
Modified Paths:
--------------
Mercury2/src/MercuryUtil.cpp
Modified: Mercury2/src/MercuryUtil.cpp
===================================================================
--- Mercury2/src/MercuryUtil.cpp 2009-08-30 13:31:41 UTC (rev 529)
+++ Mercury2/src/MercuryUtil.cpp 2009-08-30 13:32:16 UTC (rev 530)
@@ -4,8 +4,10 @@
#include <MercuryVector.h>
#include <MercuryBacktrace.h>
-#ifdef WIN32
-#include <Windows.h>
+#ifdef WIN32
+#include <Windows.h>
+#else
+#include <unistd.h>
#endif
MString ConvertToCFormat( const MString & ncf )
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <axl...@us...> - 2009-08-30 13:31:47
|
Revision: 529
http://hgengine.svn.sourceforge.net/hgengine/?rev=529&view=rev
Author: axlecrusher
Date: 2009-08-30 13:31:41 +0000 (Sun, 30 Aug 2009)
Log Message:
-----------
update
Modified Paths:
--------------
Mercury2/Themes/default/File/scenegraphDeferred.xml
Modified: Mercury2/Themes/default/File/scenegraphDeferred.xml
===================================================================
--- Mercury2/Themes/default/File/scenegraphDeferred.xml 2009-08-30 13:30:24 UTC (rev 528)
+++ Mercury2/Themes/default/File/scenegraphDeferred.xml 2009-08-30 13:31:41 UTC (rev 529)
@@ -18,7 +18,7 @@
<asset type="texture" file="MODEL:lamp.png"/>
<asset type="hgmdlmodel" file="MODEL:lampN.hgmdl" />
</node>
- <node type="light" atten="0.7,0,30" power="4.0" shader="GRAPHIC:pointLight" />
+ <node type="light" atten="1.0,1,0" power="3.0" radius="1.25" shader="GRAPHIC:pointLight" />
<node type="billboardnode" billboardaxis="0,1,0" spheremode="true" >
<node type="transformnode" roty="180" scalex="0.1" scaley="0.1" alphaPath="true">
<asset type="texture" file="GRAPHIC:flame.png"/>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <axl...@us...> - 2009-08-30 13:30:30
|
Revision: 528
http://hgengine.svn.sourceforge.net/hgengine/?rev=528&view=rev
Author: axlecrusher
Date: 2009-08-30 13:30:24 +0000 (Sun, 30 Aug 2009)
Log Message:
-----------
update lights
Modified Paths:
--------------
Mercury2/Themes/default/Graphic/globalLight.frag
Mercury2/Themes/default/Graphic/pointLight.frag
Modified: Mercury2/Themes/default/Graphic/globalLight.frag
===================================================================
--- Mercury2/Themes/default/Graphic/globalLight.frag 2009-08-30 02:51:54 UTC (rev 527)
+++ Mercury2/Themes/default/Graphic/globalLight.frag 2009-08-30 13:30:24 UTC (rev 528)
@@ -50,6 +50,8 @@
float att = HG_LightColor.a / (HG_LightAtten.x + HG_LightAtten.y * dist +
HG_LightAtten.z * dist * dist);
+// att = 1.0;
+
vec3 diffuse = texture2D(HG_Texture1, coord).rgb;
vec3 R = reflect(-lightDir, norm);
Modified: Mercury2/Themes/default/Graphic/pointLight.frag
===================================================================
--- Mercury2/Themes/default/Graphic/pointLight.frag 2009-08-30 02:51:54 UTC (rev 527)
+++ Mercury2/Themes/default/Graphic/pointLight.frag 2009-08-30 13:30:24 UTC (rev 528)
@@ -36,11 +36,11 @@
vec3 lightDir = ecLight - pos;
float dist = length(lightDir);
+ if( dist > HG_LightAtten.w ) discard;
+
lightDir /= dist; //normalize
float NdotL = max(dot(norm, lightDir),0.0);
- if( dist > HG_LightAtten.w ) discard;
-
// float att = HG_LightColor.a / (HG_LightAtten.x + HG_LightAtten.y * dist+
// HG_LightAtten.z * dist * dist);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <axl...@us...> - 2009-08-30 02:52:01
|
Revision: 527
http://hgengine.svn.sourceforge.net/hgengine/?rev=527&view=rev
Author: axlecrusher
Date: 2009-08-30 02:51:54 +0000 (Sun, 30 Aug 2009)
Log Message:
-----------
Fix windows compile
Modified Paths:
--------------
Mercury2/src/MercuryLog.cpp
Mercury2/src/MercuryNode.cpp
Mercury2/src/MercuryNode.h
Mercury2/src/MercuryThreads.h
Mercury2/src/MercuryUtil.cpp
Mercury2/src/MercuryUtil.h
Mercury2/src/OGLExtensions.cpp
Mercury2/src/OGLExtensions.h
Modified: Mercury2/src/MercuryLog.cpp
===================================================================
--- Mercury2/src/MercuryLog.cpp 2009-08-28 20:44:26 UTC (rev 526)
+++ Mercury2/src/MercuryLog.cpp 2009-08-30 02:51:54 UTC (rev 527)
@@ -11,7 +11,7 @@
{
log->CopyQueue();
log->WriteQueue();
- usleep(100000); //10x/sec
+ msleep(100); //10x/sec
}
}
Modified: Mercury2/src/MercuryNode.cpp
===================================================================
--- Mercury2/src/MercuryNode.cpp 2009-08-28 20:44:26 UTC (rev 526)
+++ Mercury2/src/MercuryNode.cpp 2009-08-30 02:51:54 UTC (rev 527)
@@ -393,8 +393,8 @@
}
bool MercuryNode::m_rebuildRenderGraph = false;
-__thread int g_iViewportID;
-__thread int g_iPass;
+__ThreadLocalStore int g_iViewportID;
+__ThreadLocalStore int g_iPass;
/***************************************************************************
Modified: Mercury2/src/MercuryNode.h
===================================================================
--- Mercury2/src/MercuryNode.h 2009-08-28 20:44:26 UTC (rev 526)
+++ Mercury2/src/MercuryNode.h 2009-08-30 02:51:54 UTC (rev 527)
@@ -36,10 +36,10 @@
#define DEFAULT_PASSES ( (1<<STANDARD_PASS) )
///The Global Viewport ID for this thread (to enable multi-threaded functioning for Viewports)
-extern __thread int g_iViewportID;
+extern __ThreadLocalStore int g_iViewportID;
///The Global Pass Number (which Pass is currently doing Render)
-extern __thread int g_iPass;
+extern __ThreadLocalStore int g_iPass;
class MercuryNode : public MessageHandler
{
Modified: Mercury2/src/MercuryThreads.h
===================================================================
--- Mercury2/src/MercuryThreads.h 2009-08-28 20:44:26 UTC (rev 526)
+++ Mercury2/src/MercuryThreads.h 2009-08-30 02:51:54 UTC (rev 527)
@@ -15,7 +15,10 @@
#else
#include <kernel.h>
#endif
+#define __ThreadLocalStore __thread
#else
+#include <WIndows.h>
+#define __ThreadLocalStore __declspec(thread)
class StartThreadData;
#endif
Modified: Mercury2/src/MercuryUtil.cpp
===================================================================
--- Mercury2/src/MercuryUtil.cpp 2009-08-28 20:44:26 UTC (rev 526)
+++ Mercury2/src/MercuryUtil.cpp 2009-08-30 02:51:54 UTC (rev 527)
@@ -4,6 +4,10 @@
#include <MercuryVector.h>
#include <MercuryBacktrace.h>
+#ifdef WIN32
+#include <Windows.h>
+#endif
+
MString ConvertToCFormat( const MString & ncf )
{
MString ret;
@@ -273,11 +277,15 @@
}
}
+void msleep(uint32_t msec)
+{
+#ifdef WIN32
+ Sleep(msec);
+#else
+ usleep(msec*1000);
+#endif
+}
-
-
-
-
/* Copyright (c) 2009, Joshua Allen and Charles Lohr
* All rights reserved.
*
Modified: Mercury2/src/MercuryUtil.h
===================================================================
--- Mercury2/src/MercuryUtil.h 2009-08-28 20:44:26 UTC (rev 526)
+++ Mercury2/src/MercuryUtil.h 2009-08-30 02:51:54 UTC (rev 527)
@@ -131,6 +131,9 @@
///Convert a C-style formatted string into it's binary string equivalent.
MString ConvertToUnformatted( const MString & cf );
+///millisecond sleep
+void msleep(uint32_t msec);
+
#endif
/* Copyright (c) 2009, Joshua Allen and Charles Lohr
Modified: Mercury2/src/OGLExtensions.cpp
===================================================================
--- Mercury2/src/OGLExtensions.cpp 2009-08-28 20:44:26 UTC (rev 526)
+++ Mercury2/src/OGLExtensions.cpp 2009-08-30 02:51:54 UTC (rev 527)
@@ -33,6 +33,7 @@
PFNGLGETACTIVEUNIFORMARBPROC glGetActiveUniformARB;
PFNGLUNIFORM1IARBPROC glUniform1iARB;
PFNGLUNIFORM4FVARBPROC glUniform4fvARB;
+PFNGLUNIFORM4IVARBPROC glUniform4ivARB;
PFNGLDELETEFRAMEBUFFERSEXTPROC glDeleteFramebuffersEXT;
PFNGLGENRENDERBUFFERSEXTPROC glGenRenderbuffersEXT;
Modified: Mercury2/src/OGLExtensions.h
===================================================================
--- Mercury2/src/OGLExtensions.h 2009-08-28 20:44:26 UTC (rev 526)
+++ Mercury2/src/OGLExtensions.h 2009-08-30 02:51:54 UTC (rev 527)
@@ -28,6 +28,7 @@
extern PFNGLGETACTIVEUNIFORMARBPROC glGetActiveUniformARB;
extern PFNGLUNIFORM1IARBPROC glUniform1iARB;
extern PFNGLUNIFORM4FVARBPROC glUniform4fvARB;
+extern PFNGLUNIFORM4IVARBPROC glUniform4ivARB;
extern PFNGLUNIFORMMATRIX4FVARBPROC glUniformMatrix4fvARB;
extern PFNGLDELETEFRAMEBUFFERSEXTPROC glDeleteFramebuffersEXT;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2009-08-28 20:44:35
|
Revision: 526
http://hgengine.svn.sourceforge.net/hgengine/?rev=526&view=rev
Author: cnlohr
Date: 2009-08-28 20:44:26 +0000 (Fri, 28 Aug 2009)
Log Message:
-----------
add packages list for Ubuntu
Added Paths:
-----------
Mercury2/docs/packages.txt
Added: Mercury2/docs/packages.txt
===================================================================
--- Mercury2/docs/packages.txt (rev 0)
+++ Mercury2/docs/packages.txt 2009-08-28 20:44:26 UTC (rev 526)
@@ -0,0 +1,6 @@
+Packages needed to build on Ubuntu 9.04:
+
+ v for subversion
+apt-get install subversion
+
+apt-get install libglu1-mesa-dev libz1g-dev libpng12-dev libxml2-dev
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2009-08-27 20:22:30
|
Revision: 525
http://hgengine.svn.sourceforge.net/hgengine/?rev=525&view=rev
Author: cnlohr
Date: 2009-08-27 20:22:18 +0000 (Thu, 27 Aug 2009)
Log Message:
-----------
Add special case for 32-bit systems. We're using features only available on Pentiums (in the semaphore). We need to make sure we use a pentium instruction set
Modified Paths:
--------------
Mercury2/base_set.sh
Modified: Mercury2/base_set.sh
===================================================================
--- Mercury2/base_set.sh 2009-08-24 17:24:14 UTC (rev 524)
+++ Mercury2/base_set.sh 2009-08-27 20:22:18 UTC (rev 525)
@@ -74,3 +74,9 @@
CC_BASE="$CC_BASE -I"/System/Library/Frameworks/OpenGL.framework/Headers" -Isrc -I/usr/X11R6/include -I. -Isrc/ode -Iode -Isrc/png -Ipng"
LD_BASE="-Lsrc/maclib -framework OpenGL -lobjc -framework GLUT -framework ApplicationServices"
fi
+
+ARCH=`uname -m`
+
+if test $ARCH = "i686" || test $ARCH = "i586"; then
+ CC_BASE="$CC_BASE -march=pentium"
+fi
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2009-08-24 17:24:21
|
Revision: 524
http://hgengine.svn.sourceforge.net/hgengine/?rev=524&view=rev
Author: cnlohr
Date: 2009-08-24 17:24:14 +0000 (Mon, 24 Aug 2009)
Log Message:
-----------
re-enable multipass rendering
Modified Paths:
--------------
Mercury2/src/Mercury2.cpp
Mercury2/src/MercuryNode.cpp
Modified: Mercury2/src/Mercury2.cpp
===================================================================
--- Mercury2/src/Mercury2.cpp 2009-08-24 17:10:52 UTC (rev 523)
+++ Mercury2/src/Mercury2.cpp 2009-08-24 17:24:14 UTC (rev 524)
@@ -21,6 +21,8 @@
#include <MercuryLog.h>
+#define MULTIPASS
+
bool SHOWBOUNDINGVOLUME = false;
bool SHOWAXISES = false;
bool DOOCCLUSIONCULL = false;
@@ -136,24 +138,22 @@
}
w->Clear();
-// renderGraph.Render();
-// RenderableNode::RecursiveRender(root);
-// printf("\n");
-/*
+#ifdef MULTIPASS
for( g_iPass = 2; g_iPass < 5; g_iPass++ ) //2,3,4
if( root->GetPasses() & (1<<g_iPass) )
root->RecursiveRender( );
-*/
+#endif
root->RecursivePreRender();
+
+#ifndef MULTIPASS
root->RecursiveRender();
-
-/* for( g_iPass = 5; g_iPass < 15; g_iPass++ ) //5..15
+#else
+ for( g_iPass = 5; g_iPass < 15; g_iPass++ ) //5..15
if( root->GetPasses() & (1<<g_iPass) )
root->RecursiveRender( );
+#endif
- */
-// renderGraph.RenderAlpha();
w->SwapBuffers();
Modified: Mercury2/src/MercuryNode.cpp
===================================================================
--- Mercury2/src/MercuryNode.cpp 2009-08-24 17:10:52 UTC (rev 523)
+++ Mercury2/src/MercuryNode.cpp 2009-08-24 17:24:14 UTC (rev 524)
@@ -201,8 +201,7 @@
printf( "1%*c %p:%s\n", depth, 0, this, GetName().c_str() );
depth++;
#else
-// if ( IsHidden() || IsCulled() || (! (m_iPasses & (1<<g_iPass))) )
- if ( IsHidden() || IsCulled() )
+ if ( IsHidden() || IsCulled() || (! (m_iPasses & (1<<g_iPass))) )
return;
#endif
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2009-08-24 17:11:08
|
Revision: 523
http://hgengine.svn.sourceforge.net/hgengine/?rev=523&view=rev
Author: cnlohr
Date: 2009-08-24 17:10:52 +0000 (Mon, 24 Aug 2009)
Log Message:
-----------
add initializers and fix FindChild
Modified Paths:
--------------
Mercury2/src/MercuryNode.cpp
Modified: Mercury2/src/MercuryNode.cpp
===================================================================
--- Mercury2/src/MercuryNode.cpp 2009-08-23 13:10:21 UTC (rev 522)
+++ Mercury2/src/MercuryNode.cpp 2009-08-24 17:10:52 UTC (rev 523)
@@ -16,7 +16,8 @@
MercuryNode::MercuryNode()
:m_parent(NULL), m_prevSibling(NULL),
m_nextSibling(NULL), m_hidden(false),
- m_useAlphaPath(false), m_culled(false)
+ m_useAlphaPath(false), m_culled(false),
+ m_iPasses( DEFAULT_PASSES ), m_iForcePasses( 0 )
{
}
@@ -119,7 +120,7 @@
MercuryNode * ret;
if( ( ret = (*i)->FindChild( sNameOfNode, depth - 1 ) ) )
{
- if( (*i)->GetName().compare( sNameOfNode ) == 0 )
+ if( ret )
return ret;
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <axl...@us...> - 2009-08-23 13:10:28
|
Revision: 522
http://hgengine.svn.sourceforge.net/hgengine/?rev=522&view=rev
Author: axlecrusher
Date: 2009-08-23 13:10:21 +0000 (Sun, 23 Aug 2009)
Log Message:
-----------
fix order of UnbindTexture
Modified Paths:
--------------
Mercury2/src/Texture.cpp
Modified: Mercury2/src/Texture.cpp
===================================================================
--- Mercury2/src/Texture.cpp 2009-08-23 13:08:11 UTC (rev 521)
+++ Mercury2/src/Texture.cpp 2009-08-23 13:10:21 UTC (rev 522)
@@ -150,12 +150,13 @@
void Texture::UnbindTexture()
{
-// Deactivate(m_textureResource);
+//Everything needs to be done in reverse of BindTexture()
+ --m_numActiveTextures;
Shader::RemoveAttribute( ssprintf("HG_Texture%d", m_numActiveTextures) );
m_activeTextures.pop_back();
-
- --m_numActiveTextures;
+
+// Deactivate(GL_TEXTURE0 + m_numActiveTextures);
}
void Texture::Activate(uint32_t textureResource)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <axl...@us...> - 2009-08-23 13:08:21
|
Revision: 521
http://hgengine.svn.sourceforge.net/hgengine/?rev=521&view=rev
Author: axlecrusher
Date: 2009-08-23 13:08:11 +0000 (Sun, 23 Aug 2009)
Log Message:
-----------
revert back to recursive rendering
Modified Paths:
--------------
Mercury2/src/Mercury2.cpp
Mercury2/src/MercuryNode.cpp
Modified: Mercury2/src/Mercury2.cpp
===================================================================
--- Mercury2/src/Mercury2.cpp 2009-08-23 12:42:36 UTC (rev 520)
+++ Mercury2/src/Mercury2.cpp 2009-08-23 13:08:11 UTC (rev 521)
@@ -140,16 +140,19 @@
// RenderableNode::RecursiveRender(root);
// printf("\n");
-
+/*
for( g_iPass = 2; g_iPass < 5; g_iPass++ ) //2,3,4
if( root->GetPasses() & (1<<g_iPass) )
root->RecursiveRender( );
-
+*/
root->RecursivePreRender();
-
- for( g_iPass = 5; g_iPass < 15; g_iPass++ ) //5..15
+ root->RecursiveRender();
+
+/* for( g_iPass = 5; g_iPass < 15; g_iPass++ ) //5..15
if( root->GetPasses() & (1<<g_iPass) )
root->RecursiveRender( );
+
+ */
// renderGraph.RenderAlpha();
w->SwapBuffers();
Modified: Mercury2/src/MercuryNode.cpp
===================================================================
--- Mercury2/src/MercuryNode.cpp 2009-08-23 12:42:36 UTC (rev 520)
+++ Mercury2/src/MercuryNode.cpp 2009-08-23 13:08:11 UTC (rev 521)
@@ -200,7 +200,8 @@
printf( "1%*c %p:%s\n", depth, 0, this, GetName().c_str() );
depth++;
#else
- if ( IsHidden() || IsCulled() || (! (m_iPasses & (1<<g_iPass))) )
+// if ( IsHidden() || IsCulled() || (! (m_iPasses & (1<<g_iPass))) )
+ if ( IsHidden() || IsCulled() )
return;
#endif
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: Josh <axl...@gm...> - 2009-08-23 13:01:53
|
Please revert this back to the old renderer. This isn't working and can't be switched to the old recursive method by just changing Mercury2.cpp. Josh cn...@us... wrote: > Revision: 510 > http://hgengine.svn.sourceforge.net/hgengine/?rev=510&view=rev > Author: cnlohr > Date: 2009-08-22 17:51:38 +0000 (Sat, 22 Aug 2009) > > Log Message: > ----------- > allow multipass rendering > > Modified Paths: > -------------- > Mercury2/src/Mercury2.cpp > Mercury2/src/MercuryAsset.cpp > Mercury2/src/MercuryAsset.h > Mercury2/src/MercuryNode.cpp > Mercury2/src/MercuryNode.h > Mercury2/src/RenderGraph.cpp > > Modified: Mercury2/src/Mercury2.cpp > =================================================================== > --- Mercury2/src/Mercury2.cpp 2009-08-22 16:10:33 UTC (rev 509) > +++ Mercury2/src/Mercury2.cpp 2009-08-22 17:51:38 UTC (rev 510) > @@ -92,8 +92,17 @@ > // renderGraph.Render(); > // RenderableNode::RecursiveRender(root); > // printf("\n"); > + > + > + for( g_iPass = 2; g_iPass < 5; g_iPass++ ) //2,3,4 > + if( root->GetPasses() & (1<<g_iPass) ) > + root->RecursiveRender( ); > + > root->RecursivePreRender(); > - root->RecursiveRender(); > + > + for( g_iPass = 5; g_iPass < 15; g_iPass++ ) //5..15 > + if( root->GetPasses() & (1<<g_iPass) ) > + root->RecursiveRender( ); > // renderGraph.RenderAlpha(); > w->SwapBuffers(); > > > Modified: Mercury2/src/MercuryAsset.cpp > =================================================================== > --- Mercury2/src/MercuryAsset.cpp 2009-08-22 16:10:33 UTC (rev 509) > +++ Mercury2/src/MercuryAsset.cpp 2009-08-22 17:51:38 UTC (rev 510) > @@ -6,7 +6,7 @@ > extern bool DOOCCLUSIONCULL; > > MercuryAsset::MercuryAsset() > - :m_isInstanced(false), m_boundingVolume(NULL), m_loadState(NONE), m_ignoreCull(false) > + :m_isInstanced(false), m_boundingVolume(NULL), m_loadState(NONE), m_ignoreCull(false), m_iPasses( DEFAULT_PASSES ) > { > } > > @@ -65,8 +65,16 @@ > > if ( !node.Attribute("ignorecull").empty() ) > { > - SetIgnoreCull( node.Attribute("ignorecull")=="true" ); > + SetIgnoreCull( StrToBool( node.Attribute("ignorecull") ) ); > } > + if ( !node.Attribute("setPasses").empty() ) > + { > + MVector< MString > out; > + SplitStrings( node.Attribute("setPasses"), out, ",+", " \t", 2, 2 ); > + m_iPasses = 0; > + for( unsigned i = 0; i < out.size(); i++ ) > + m_iPasses = m_iPasses | (1<<StrToInt( out[i] ) ); > + } > } > > void MercuryAsset::DrawAxes() > @@ -86,7 +94,7 @@ > } > > MercuryAssetInstance::MercuryAssetInstance(MercuryAsset* asset) > - :m_asset( asset ), m_isCulled( false ) > + :m_asset( asset ), m_isCulled( false ), m_iPasses( asset->GetPasses() ) > { > } > > > Modified: Mercury2/src/MercuryAsset.h > =================================================================== > --- Mercury2/src/MercuryAsset.h 2009-08-22 16:10:33 UTC (rev 509) > +++ Mercury2/src/MercuryAsset.h 2009-08-22 17:51:38 UTC (rev 510) > @@ -58,6 +58,9 @@ > > inline void SetIgnoreCull(bool t) { m_ignoreCull = t; } > inline bool IgnoreCull() const { return m_ignoreCull; } > + > + inline unsigned short GetPasses() { return m_iPasses; } > + inline void SetPasses( unsigned short p ) { m_iPasses = p; } > protected: > void SetLoadState(LoadState ls); //thread safe > LoadState GetLoadState(); //thread safe > @@ -69,6 +72,7 @@ > LoadState m_loadState; > MSemaphore m_lock; > bool m_ignoreCull; > + unsigned short m_iPasses; > }; > > /** This holds the per-instance data for each asset instance. > @@ -85,10 +89,16 @@ > inline bool Culled(bool t) { m_isCulled = t; return m_isCulled; } > > inline OcclusionResult& GetOcclusionResult() { return m_occlusionResult; } > + > + inline unsigned short GetPasses() { return m_iPasses; } > + inline void SetPasses( unsigned short p ) { m_iPasses = p; } > private: > MAutoPtr< MercuryAsset > m_asset; //actual asset storage > OcclusionResult m_occlusionResult; > bool m_isCulled; > + > + //We need to keep our own copy, since it may be changed in software from what the original one has. > + unsigned short m_iPasses; > }; > > class LoaderThreadData > > Modified: Mercury2/src/MercuryNode.cpp > =================================================================== > --- Mercury2/src/MercuryNode.cpp 2009-08-22 16:10:33 UTC (rev 509) > +++ Mercury2/src/MercuryNode.cpp 2009-08-22 17:51:38 UTC (rev 510) > @@ -186,10 +186,10 @@ > } > } > > -void MercuryNode::RecursiveRender() > +void MercuryNode::RecursiveRender( ) > { > - if ( IsHidden() || IsCulled() ) return; > - > + if ( IsHidden() || IsCulled() || (! (m_iPasses & (1<<g_iPass))) ) return; > + > const MercuryMatrix& matrix = GetGlobalMatrix(); > const MercuryMatrix& modelView = GetModelViewMatrix(); //get the one computed in the last transform > ShaderAttribute sa; > @@ -262,6 +262,16 @@ > } > } > } > + > + if ( !node.Attribute("setPasses").empty() ) > + { > + MVector< MString > out; > + SplitStrings( node.Attribute("setPasses"), out, ",+", " \t", 2, 2 ); > + m_iForcePasses = (1<<15); > + for( unsigned i = 0; i < out.size(); i++ ) > + m_iForcePasses = m_iForcePasses | (1<<StrToInt( out[i] ) ); > + } > + > } > > > @@ -365,7 +375,9 @@ > > bool MercuryNode::m_rebuildRenderGraph = false; > __thread int g_iViewportID; > +__thread int g_iPass; > > + > /*************************************************************************** > * Copyright (C) 2008 by Joshua Allen * > * * > > Modified: Mercury2/src/MercuryNode.h > =================================================================== > --- Mercury2/src/MercuryNode.h 2009-08-22 16:10:33 UTC (rev 509) > +++ Mercury2/src/MercuryNode.h 2009-08-22 17:51:38 UTC (rev 510) > @@ -30,9 +30,17 @@ > return false;} > */ > > + > +#define STANDARD_PASS 7 > +///Which passes, by default, should be run on all nodes. > +#define DEFAULT_PASSES ( (1<<STANDARD_PASS) ) > + > ///The Global Viewport ID for this thread (to enable multi-threaded functioning for Viewports) > extern __thread int g_iViewportID; > > +///The Global Pass Number (which Pass is currently doing Render) > +extern __thread int g_iPass; > + > class MercuryNode : public MessageHandler > { > public: > @@ -106,6 +114,8 @@ > > const MercuryMatrix & GetGlobalMatrix() const { return m_pGlobalMatrix[g_iViewportID]; } > const MercuryMatrix & GetModelViewMatrix() const { return m_pModelViewMatrix[g_iViewportID]; } > + > + inline unsigned short GetPasses() const { return m_iPasses; } > protected: > std::list< MercuryNode* > m_children; //These nodes are unique, not instanced > MercuryNode* m_parent; > @@ -120,6 +130,9 @@ > bool m_culled; > bool IsInAssetList(MercuryAsset* asset) const; > > + unsigned short m_iPasses; > + unsigned short m_iForcePasses; //If (1<<15) is set, then, we know the force is enabled. > + > //The asset is actually stored here > std::list< MercuryAssetInstance > m_assets; > > > Modified: Mercury2/src/RenderGraph.cpp > =================================================================== > --- Mercury2/src/RenderGraph.cpp 2009-08-22 16:10:33 UTC (rev 509) > +++ Mercury2/src/RenderGraph.cpp 2009-08-22 17:51:38 UTC (rev 510) > @@ -56,18 +56,32 @@ > > //Update the Matrices > node->m_pGlobalMatrix = &node->FindGlobalMatrix(); > - node->m_pModelViewMatrix = &node->FindModelViewMatrix(); > - > + node->m_pModelViewMatrix = &node->FindModelViewMatrix(); > + > if ( node ) > { > //found a new renderable > entry.m_children.push_back( RenderGraphEntry(&(node->FindGlobalMatrix()), node) ); > lastEntry = &(entry.m_children.back()); > } > + > + unsigned short iPasses = 0; > > for (MercuryNode* child = node->FirstChild(); child != NULL; child = node->NextChild(child)) > + { > Build(child, *lastEntry); > - > + iPasses |= child->m_iPasses; > + } > + > + std::list< MercuryAssetInstance >::iterator i; > + for (i = node->m_assets.begin(); i != node->m_assets.end(); ++i ) > + iPasses |= i->GetPasses(); > + > + if( node->m_iForcePasses & (1<<15 ) ) > + node->m_iPasses = node->m_iForcePasses; > + else > + node->m_iPasses = iPasses; > + > //coming back up the tree > // entry = lastEntry; > } > > > This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > Hgengine-cvs mailing list > Hge...@li... > https://lists.sourceforge.net/lists/listinfo/hgengine-cvs > |
|
From: Josh <axl...@gm...> - 2009-08-23 12:57:03
|
I am getting very inconsistent numbers while rendering. VBO batches count will randomly increase or decrease per program execution. TBinds and VBinds will also change. I suspect there is something wrong with the new traversal as that is the only thing that can affect all 3 counts. Josh cn...@us... wrote: > Revision: 510 > http://hgengine.svn.sourceforge.net/hgengine/?rev=510&view=rev > Author: cnlohr > Date: 2009-08-22 17:51:38 +0000 (Sat, 22 Aug 2009) > > Log Message: > ----------- > allow multipass rendering > > Modified Paths: > -------------- > Mercury2/src/Mercury2.cpp > Mercury2/src/MercuryAsset.cpp > Mercury2/src/MercuryAsset.h > Mercury2/src/MercuryNode.cpp > Mercury2/src/MercuryNode.h > Mercury2/src/RenderGraph.cpp > > Modified: Mercury2/src/Mercury2.cpp > =================================================================== > --- Mercury2/src/Mercury2.cpp 2009-08-22 16:10:33 UTC (rev 509) > +++ Mercury2/src/Mercury2.cpp 2009-08-22 17:51:38 UTC (rev 510) > @@ -92,8 +92,17 @@ > // renderGraph.Render(); > // RenderableNode::RecursiveRender(root); > // printf("\n"); > + > + > + for( g_iPass = 2; g_iPass < 5; g_iPass++ ) //2,3,4 > + if( root->GetPasses() & (1<<g_iPass) ) > + root->RecursiveRender( ); > + > root->RecursivePreRender(); > - root->RecursiveRender(); > + > + for( g_iPass = 5; g_iPass < 15; g_iPass++ ) //5..15 > + if( root->GetPasses() & (1<<g_iPass) ) > + root->RecursiveRender( ); > // renderGraph.RenderAlpha(); > w->SwapBuffers(); > > > Modified: Mercury2/src/MercuryAsset.cpp > =================================================================== > --- Mercury2/src/MercuryAsset.cpp 2009-08-22 16:10:33 UTC (rev 509) > +++ Mercury2/src/MercuryAsset.cpp 2009-08-22 17:51:38 UTC (rev 510) > @@ -6,7 +6,7 @@ > extern bool DOOCCLUSIONCULL; > > MercuryAsset::MercuryAsset() > - :m_isInstanced(false), m_boundingVolume(NULL), m_loadState(NONE), m_ignoreCull(false) > + :m_isInstanced(false), m_boundingVolume(NULL), m_loadState(NONE), m_ignoreCull(false), m_iPasses( DEFAULT_PASSES ) > { > } > > @@ -65,8 +65,16 @@ > > if ( !node.Attribute("ignorecull").empty() ) > { > - SetIgnoreCull( node.Attribute("ignorecull")=="true" ); > + SetIgnoreCull( StrToBool( node.Attribute("ignorecull") ) ); > } > + if ( !node.Attribute("setPasses").empty() ) > + { > + MVector< MString > out; > + SplitStrings( node.Attribute("setPasses"), out, ",+", " \t", 2, 2 ); > + m_iPasses = 0; > + for( unsigned i = 0; i < out.size(); i++ ) > + m_iPasses = m_iPasses | (1<<StrToInt( out[i] ) ); > + } > } > > void MercuryAsset::DrawAxes() > @@ -86,7 +94,7 @@ > } > > MercuryAssetInstance::MercuryAssetInstance(MercuryAsset* asset) > - :m_asset( asset ), m_isCulled( false ) > + :m_asset( asset ), m_isCulled( false ), m_iPasses( asset->GetPasses() ) > { > } > > > Modified: Mercury2/src/MercuryAsset.h > =================================================================== > --- Mercury2/src/MercuryAsset.h 2009-08-22 16:10:33 UTC (rev 509) > +++ Mercury2/src/MercuryAsset.h 2009-08-22 17:51:38 UTC (rev 510) > @@ -58,6 +58,9 @@ > > inline void SetIgnoreCull(bool t) { m_ignoreCull = t; } > inline bool IgnoreCull() const { return m_ignoreCull; } > + > + inline unsigned short GetPasses() { return m_iPasses; } > + inline void SetPasses( unsigned short p ) { m_iPasses = p; } > protected: > void SetLoadState(LoadState ls); //thread safe > LoadState GetLoadState(); //thread safe > @@ -69,6 +72,7 @@ > LoadState m_loadState; > MSemaphore m_lock; > bool m_ignoreCull; > + unsigned short m_iPasses; > }; > > /** This holds the per-instance data for each asset instance. > @@ -85,10 +89,16 @@ > inline bool Culled(bool t) { m_isCulled = t; return m_isCulled; } > > inline OcclusionResult& GetOcclusionResult() { return m_occlusionResult; } > + > + inline unsigned short GetPasses() { return m_iPasses; } > + inline void SetPasses( unsigned short p ) { m_iPasses = p; } > private: > MAutoPtr< MercuryAsset > m_asset; //actual asset storage > OcclusionResult m_occlusionResult; > bool m_isCulled; > + > + //We need to keep our own copy, since it may be changed in software from what the original one has. > + unsigned short m_iPasses; > }; > > class LoaderThreadData > > Modified: Mercury2/src/MercuryNode.cpp > =================================================================== > --- Mercury2/src/MercuryNode.cpp 2009-08-22 16:10:33 UTC (rev 509) > +++ Mercury2/src/MercuryNode.cpp 2009-08-22 17:51:38 UTC (rev 510) > @@ -186,10 +186,10 @@ > } > } > > -void MercuryNode::RecursiveRender() > +void MercuryNode::RecursiveRender( ) > { > - if ( IsHidden() || IsCulled() ) return; > - > + if ( IsHidden() || IsCulled() || (! (m_iPasses & (1<<g_iPass))) ) return; > + > const MercuryMatrix& matrix = GetGlobalMatrix(); > const MercuryMatrix& modelView = GetModelViewMatrix(); //get the one computed in the last transform > ShaderAttribute sa; > @@ -262,6 +262,16 @@ > } > } > } > + > + if ( !node.Attribute("setPasses").empty() ) > + { > + MVector< MString > out; > + SplitStrings( node.Attribute("setPasses"), out, ",+", " \t", 2, 2 ); > + m_iForcePasses = (1<<15); > + for( unsigned i = 0; i < out.size(); i++ ) > + m_iForcePasses = m_iForcePasses | (1<<StrToInt( out[i] ) ); > + } > + > } > > > @@ -365,7 +375,9 @@ > > bool MercuryNode::m_rebuildRenderGraph = false; > __thread int g_iViewportID; > +__thread int g_iPass; > > + > /*************************************************************************** > * Copyright (C) 2008 by Joshua Allen * > * * > > Modified: Mercury2/src/MercuryNode.h > =================================================================== > --- Mercury2/src/MercuryNode.h 2009-08-22 16:10:33 UTC (rev 509) > +++ Mercury2/src/MercuryNode.h 2009-08-22 17:51:38 UTC (rev 510) > @@ -30,9 +30,17 @@ > return false;} > */ > > + > +#define STANDARD_PASS 7 > +///Which passes, by default, should be run on all nodes. > +#define DEFAULT_PASSES ( (1<<STANDARD_PASS) ) > + > ///The Global Viewport ID for this thread (to enable multi-threaded functioning for Viewports) > extern __thread int g_iViewportID; > > +///The Global Pass Number (which Pass is currently doing Render) > +extern __thread int g_iPass; > + > class MercuryNode : public MessageHandler > { > public: > @@ -106,6 +114,8 @@ > > const MercuryMatrix & GetGlobalMatrix() const { return m_pGlobalMatrix[g_iViewportID]; } > const MercuryMatrix & GetModelViewMatrix() const { return m_pModelViewMatrix[g_iViewportID]; } > + > + inline unsigned short GetPasses() const { return m_iPasses; } > protected: > std::list< MercuryNode* > m_children; //These nodes are unique, not instanced > MercuryNode* m_parent; > @@ -120,6 +130,9 @@ > bool m_culled; > bool IsInAssetList(MercuryAsset* asset) const; > > + unsigned short m_iPasses; > + unsigned short m_iForcePasses; //If (1<<15) is set, then, we know the force is enabled. > + > //The asset is actually stored here > std::list< MercuryAssetInstance > m_assets; > > > Modified: Mercury2/src/RenderGraph.cpp > =================================================================== > --- Mercury2/src/RenderGraph.cpp 2009-08-22 16:10:33 UTC (rev 509) > +++ Mercury2/src/RenderGraph.cpp 2009-08-22 17:51:38 UTC (rev 510) > @@ -56,18 +56,32 @@ > > //Update the Matrices > node->m_pGlobalMatrix = &node->FindGlobalMatrix(); > - node->m_pModelViewMatrix = &node->FindModelViewMatrix(); > - > + node->m_pModelViewMatrix = &node->FindModelViewMatrix(); > + > if ( node ) > { > //found a new renderable > entry.m_children.push_back( RenderGraphEntry(&(node->FindGlobalMatrix()), node) ); > lastEntry = &(entry.m_children.back()); > } > + > + unsigned short iPasses = 0; > > for (MercuryNode* child = node->FirstChild(); child != NULL; child = node->NextChild(child)) > + { > Build(child, *lastEntry); > - > + iPasses |= child->m_iPasses; > + } > + > + std::list< MercuryAssetInstance >::iterator i; > + for (i = node->m_assets.begin(); i != node->m_assets.end(); ++i ) > + iPasses |= i->GetPasses(); > + > + if( node->m_iForcePasses & (1<<15 ) ) > + node->m_iPasses = node->m_iForcePasses; > + else > + node->m_iPasses = iPasses; > + > //coming back up the tree > // entry = lastEntry; > } > > > This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > Hgengine-cvs mailing list > Hge...@li... > https://lists.sourceforge.net/lists/listinfo/hgengine-cvs > |
|
From: <axl...@us...> - 2009-08-23 12:42:43
|
Revision: 520
http://hgengine.svn.sourceforge.net/hgengine/?rev=520&view=rev
Author: axlecrusher
Date: 2009-08-23 12:42:36 +0000 (Sun, 23 Aug 2009)
Log Message:
-----------
Fix bug where texture could only be used in one active texture location at a time.
Modified Paths:
--------------
Mercury2/src/Texture.cpp
Mercury2/src/Texture.h
Modified: Mercury2/src/Texture.cpp
===================================================================
--- Mercury2/src/Texture.cpp 2009-08-23 12:12:13 UTC (rev 519)
+++ Mercury2/src/Texture.cpp 2009-08-23 12:42:36 UTC (rev 520)
@@ -40,7 +40,7 @@
{
if (m_lastBound[i] == this)
{
- Deactivate();
+ Deactivate(GL_TEXTURE0 + i);
m_lastBound[i] = 0;
}
}
@@ -55,6 +55,7 @@
// m_raw = raw;
GLenum byteType = ToGLColorType( m_raw->m_ColorByteType );
+ GLCALL( glPushAttrib( GL_TEXTURE_BIT ) );
GLCALL( glBindTexture(GL_TEXTURE_2D, m_textureID) );
/*
glTexImage2D(GL_TEXTURE_2D,
@@ -79,6 +80,9 @@
// GLCALL( gluBuild2DMipmaps( GL_TEXTURE_2D, 3, m_raw->m_width, m_raw->m_height, ByteType, GL_UNSIGNED_BYTE, m_raw->m_data ) );
SAFE_DELETE(m_raw);
+
+ GLCALL( glPopAttrib() );
+
};
void Texture::Render(const MercuryNode* node)
@@ -116,15 +120,13 @@
if (m_numActiveTextures >= m_maxActiveTextures) return;
- m_textureResource = GL_TEXTURE0+m_numActiveTextures;
-
-// if (m_lastBound[m_numActiveTextures] != this)
+ if (m_lastBound[m_numActiveTextures] != this)
{
// We don't really even have to disable old spots
// if ( m_lastBound[m_numActiveTextures] != NULL)
// m_lastBound[m_numActiveTextures]->Deactivate();
- Activate();
+ Activate(GL_TEXTURE0 + m_numActiveTextures);
GLCALL( glBindTexture(GL_TEXTURE_2D, m_textureID) );
@@ -148,34 +150,26 @@
void Texture::UnbindTexture()
{
- /*
- GLCALL( glActiveTexture( m_textureResource ) );
- GLCALL( glClientActiveTextureARB(m_textureResource) );
- GLCALL( glDisableClientState(GL_TEXTURE_COORD_ARRAY) );
- GLCALL( glDisable( GL_TEXTURE_2D ) );
- GLERRORCHECK;
- */
+// Deactivate(m_textureResource);
- Deactivate();
-
Shader::RemoveAttribute( ssprintf("HG_Texture%d", m_numActiveTextures) );
m_activeTextures.pop_back();
--m_numActiveTextures;
}
-void Texture::Activate()
+void Texture::Activate(uint32_t textureResource)
{
- GLCALL( glActiveTexture( m_textureResource ) );
- GLCALL( glClientActiveTextureARB(m_textureResource) );
+ GLCALL( glActiveTexture( textureResource ) );
+ GLCALL( glClientActiveTextureARB(textureResource) );
GLCALL( glEnableClientState(GL_TEXTURE_COORD_ARRAY) );
GLCALL( glEnable( GL_TEXTURE_2D ) );
}
-void Texture::Deactivate()
+void Texture::Deactivate(uint32_t textureResource)
{
- GLCALL( glActiveTexture( m_textureResource ) );
- GLCALL( glClientActiveTextureARB(m_textureResource) );
+ GLCALL( glActiveTexture( textureResource ) );
+ GLCALL( glClientActiveTextureARB(textureResource) );
GLCALL( glDisableClientState(GL_TEXTURE_COORD_ARRAY) );
GLCALL( glDisable( GL_TEXTURE_2D ) );
GLERRORCHECK;
@@ -190,7 +184,7 @@
GLCALL( glTexCoordPointer(2, GL_FLOAT, stride, BUFFER_OFFSET(sizeof(float)*0)) );
}
-// Texture::DisableUnusedTextures();
+ Texture::DisableUnusedTextures();
}
void Texture::DisableUnusedTextures()
@@ -199,7 +193,7 @@
{
if (m_lastBound[m_numActiveTextures] != NULL)
{
- m_lastBound[m_numActiveTextures]->Deactivate();
+ m_lastBound[m_numActiveTextures]->Deactivate(GL_TEXTURE0 + i);
m_lastBound[m_numActiveTextures] = NULL;
}
}
Modified: Mercury2/src/Texture.h
===================================================================
--- Mercury2/src/Texture.h 2009-08-23 12:12:13 UTC (rev 519)
+++ Mercury2/src/Texture.h 2009-08-23 12:42:36 UTC (rev 520)
@@ -40,14 +40,13 @@
void BindTexture();
void UnbindTexture();
- void Activate();
- void Deactivate();
+ void Activate(uint32_t textureResource);
+ void Deactivate(uint32_t textureResource);
void InitiateBindCache();
const RawImageData* m_raw;
uint32_t m_textureID;
- uint32_t m_textureResource;
static bool m_initTextureSuccess;
static uint8_t m_numActiveTextures;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|