STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
228108
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2561 · P5121

swfchan turned sixteen years old the day before yesterday! (5may2024)

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://swfchan.com:57475/73872677?noj=FRM73872677-7DC" width="1" height="1"></div>

tree.swf

This is the info page for
Flash #69805

(Click the ID number above for more basic data on this flash file.)


Text
<p align="left"><font face="Verdana_13pt_st" size="13" color="#999999" letterSpacing="0.000000" kerning="1">Drag mouse to rotate, scroll mouse wheel for zooming &amp; walking through portals to another season. Keyboard arrows work too.<font color="#cccccc"> <sbr />Leave your comments in <font color="#999999"><a href="http://www.cleoag.ru/2008/04/09/parkseasons-in-pv3d">my blog</a></font>. Subscribe to <font color="#999999"><a href="http://feeds.feedburner.com/cleoag">my RSS</a></font> for more cool stuff like this.</font></font></p>

ActionScript [AS3]

Section 1
//AutumnMap (assets.AutumnMap) package assets { import flash.display.*; public class AutumnMap extends BitmapData { public function AutumnMap(_arg1:int, _arg2:int, _arg3:Boolean=true, _arg4:uint=4294967295){ super(_arg1, _arg2, _arg3, _arg4); } } }//package assets
Section 2
//Butterfly (assets.Butterfly) package assets { import flash.display.*; public class Butterfly extends BitmapData { public function Butterfly(_arg1:int, _arg2:int, _arg3:Boolean=true, _arg4:uint=4294967295){ super(_arg1, _arg2, _arg3, _arg4); } } }//package assets
Section 3
//Leaf (assets.Leaf) package assets { import flash.display.*; public class Leaf extends BitmapData { public function Leaf(_arg1:int, _arg2:int, _arg3:Boolean=true, _arg4:uint=4294967295){ super(_arg1, _arg2, _arg3, _arg4); } } }//package assets
Section 4
//Meshes (assets.Meshes) package assets { public class Meshes { public static var winter:XML = <COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1"> <asset> <contributor> <author>den</author> <authoring_tool>3dsMax 9 - Feeling ColladaMax v3.04C.</authoring_tool> <comments>ColladaMax Export Options: ExportNormals=1;ExportEPolyAsTriangles=1;ExportXRefs=0;ExportSelected=1;ExportTangents=0;ExportAnimations=0;SampleAnim=0;ExportAnimClip=0;BakeMatrices=0;ExportRelativePaths=1;AnimStart=0;AnimEnd=16000;</comments> <source_data>file:///G:/work/eclipse/Lab_PV3D/model/Seasons.max</source_data> </contributor> <created>2008-04-09T18:10:46Z</created> <modified>2008-04-09T18:10:47Z</modified> <unit meter="0.0254" name="inch"/> <up_axis>Z_UP</up_axis> </asset> <library_lights> <light id="ambient-environment-light" name="Ambient"> <technique_common> <ambient> <color>0.113725 0.14902 0.164706</color> </ambient> </technique_common> <extra> <technique profile="FCOLLADA"> <intensity>1</intensity> </technique> </extra> </light> </library_lights> <library_images> <image id="WinterTreeMap.png" name="WinterTreeMap_png"> <init_from>./WinterTreeMap.png</init_from> </image> </library_images> <library_materials> <material id="texture" name="texture"> <instance_effect url="#texture-fx"/> </material> </library_materials> <library_effects> <effect id="texture-fx" name="texture"> <profile_COMMON> <newparam sid="WinterTreeMap_png-surface"> <surface type="2D"> <init_from>WinterTreeMap.png</init_from> <format>A8R8G8B8</format> </surface> </newparam> <newparam sid="WinterTreeMap_png-sampler"> <sampler2D> <source>WinterTreeMap_png-surface</source> <wrap_s>WRAP</wrap_s> <wrap_t>WRAP</wrap_t> <minfilter>NONE</minfilter> <magfilter>NONE</magfilter> <mipfilter>NONE</mipfilter> </sampler2D> </newparam> <technique sid="common"> <blinn> <ambient> <color>0.588 0.588 0.588 1</color> </ambient> <diffuse> <texture texture="WinterTreeMap_png-sampler" texcoord="CHANNEL1"> <extra> <technique profile="MAYA"> <mirrorU>0</mirrorU> <mirrorV>0</mirrorV> <wrapU>1</wrapU> <wrapV>1</wrapV> <repeatU>1</repeatU> <repeatV>1</repeatV> <offsetU>0</offsetU> <offsetV>0</offsetV> </technique> <technique profile="MAX3D"> <amount>1</amount> </technique> </extra> </texture> </diffuse> <specular> <color>0.9 0.9 0.9 1</color> </specular> <shininess> <float>0.415939</float> </shininess> <reflective> <color>0 0 0 1</color> </reflective> <reflectivity> <float>1</float> </reflectivity> <transparent opaque="A_ONE"> <color>1 1 1 1</color> </transparent> <transparency> <float>1</float> </transparency> <index_of_refraction> <float>1</float> </index_of_refraction> </blinn> <extra> <technique profile="FCOLLADA"> <spec_level> <float>0</float> </spec_level> <emission_level> <float>0</float> </emission_level> </technique> </extra> </technique> </profile_COMMON> <extra> <technique profile="MAX3D"> <faceted>0</faceted> <double_sided>0</double_sided> <wireframe>0</wireframe> <face_map>0</face_map> </technique> </extra> </effect> </library_effects> <library_geometries> <geometry id="Winter-mesh" name="Winter"> <mesh> <source id="Winter-mesh-positions"> <float_array id="Winter-mesh-positions-array" count="471">-16.9375 9.74992 30.2898 -17.9487 -2.04267 30.3978 -14.825 -11.1736 30.3947 -9.71696 -16.9121 29.1443 5.61073 -17.675 28.0739 18.6176 -8.61557 25.5238 19.8681 -0.009059 26.2114 17.2582 9.74991 26.1867 9.99091 16.894 26.6837 0.051073 27.8848 15.1022 -13.9252 24.1489 16.5844 -24.1985 13.9424 17.19 -27.5725 -1.49029 18.125 -24.4266 -13.9424 17.9403 -13.9769 -24.1489 16.8091 0.051015 -27.8848 15.0982 14.3842 -24.1489 13.0469 25.0917 -13.9424 11.1925 28.7892 -0.000021 11.3847 25.0917 13.9424 11.1925 14.3843 24.1489 13.0469 0.000533 32.1986 -0.196413 -16.0941 27.8848 -0.19305 -27.8786 16.0993 -0.194225 -32.276 0.000004 -0.190961 -27.9621 -16.0993 -0.190956 -16.0945 -27.8848 -0.193325 0.000514 -32.1986 -0.196423 16.2036 -27.8848 -0.200624 28.1873 -16.0993 -0.206467 32.501 -0.000025 -0.206465 28.1873 16.0993 -0.206463 16.2036 27.8848 -0.200618 -1.95622 7.65424 37.0668 -6.96139 1.73914 38.2092 -5.68439 -5.57881 37.9328 1.18212 -7.72212 36.318 5.20573 5.53259 31.7553 -0.829426 5.43766 82.6931 -3.36062 1.68492 87.106 3.35133 4.60116 82.4435 -1.33636 5.87967 60.4543 -5.12325 1.97558 56.7557 3.91558 4.83979 54.7761 0.393164 5.75333 111.769 1.09581 3.4512 113.796 3.24704 3.24368 115.919 4.73226 6.93278 110.775 -4.93252 11.0619 142.485 -5.99008 10.8066 141.298 -6.75768 10.0538 143.42 -5.72777 9.01734 143.915 -4.49828 9.1983 144.449 2.38279 7.4073 110.555 11.9274 8.91648 134.5 11.868 7.89048 134.714 12.5068 7.3197 133.078 13.2338 7.83793 131.393 13.1715 8.8936 131.241 13.0615 8.30874 134.349 4.44881 4.92237 122.052 2.5581 5.02129 122.399 2.44555 7.85512 121.915 4.51929 7.69799 123.79 -7.2007 16.7085 149.846 -7.93114 16.4451 150.394 -7.76818 16.3448 151.494 -7.31861 16.4189 151.768 -7.03486 16.6008 150.943 -4.54416 10.3793 145.035 -7.11655 8.36626 160.086 -7.55571 8.22465 159.909 -7.90478 8.52767 160.02 -7.81469 8.97228 160.31 -7.37539 9.11351 160.508 -7.02632 8.81049 160.396 -6.6805 10.4155 147.295 -6.70293 11.0483 146.722 -5.16503 10.5126 148.723 -7.6474 16.627 149.57 -7.48301 16.8557 150.855 -7.59044 8.64686 161.093 4.35279 0.023148 86.8491 -2.65778 -1.7836 81.4571 1.91378 -2.76955 80.509 -1.73653 -12.2399 108.193 -3.44998 -11.7014 108.289 -1.73299 -0.935493 99.696 -1.06745 1.21829 100.559 3.05437 0.153771 100.236 2.53993 -1.98836 99.3897 -3.08253 -21.0095 113.319 -3.37744 -21.0351 115.123 -4.1256 -20.9539 115.38 -4.28394 -20.8213 112.029 -2.78126 -9.93431 115.227 -3.98042 -11.2747 114.194 -1.9028 -11.8468 133.323 -1.35851 -11.3221 133.145 -1.54452 -10.5907 132.934 -2.27483 -10.384 132.9 -2.81912 -10.9086 133.078 -2.08401 -11.1054 134.12 -3.53578 -20.9026 111.772 -3.83069 -21.3667 113.576 -3.3224 -13.4211 116.741 -3.19619 -12.6991 118.089 -1.70338 -13.0507 117.978 -1.82688 -13.7432 116.596 -5.94057 -2.19259 34.7214 1.19278 18.9314 27.2904 -4.58375 4.3563 33.5395 2.17363 6.50553 32.1349 -2.00048 -5.60171 32.8151 -3.43447 -3.16822 58.1211 2.58071 -5.44922 33.9761 1.36203 -4.25701 57.9327 6.08906 3.14603 31.7553 5.60436 -0.304009 56.1415 4.78618 -3.28398 33.7392 6.96011 -1.98199 37.5409 5.4349 4.63064 112.802 -1.03165 -10.4375 115.075 -0.857954 -11.8624 113.262 -4.57885 -20.847 113.833 -2.6331 -11.64 133.289 12.4264 9.25213 132.581 -5.19401 11.1417 148.15 -9.71497 16.894 29.1206 0.607337 2.75269 109.968 2.97116 2.12397 110.031 -2.36059 -7.49798 110.935 -0.275992 -8.30312 111.162 2.20894 -0.162557 107.177 -0.293928 0.53951 107.064 1.63032 -2.20399 106.639 -0.913469 -1.5259 106.478 -2.05021 7.82826 136.799 -1.74977 9.36153 135.853 8.9524 8.42715 129.492 9.11092 6.89368 130.081 2.40636 5.76277 127.387 4.35573 5.66653 127.186 4.51887 7.22747 126.94 2.50963 7.31893 126.991 -2.88697 -12.2265 124.872 -1.79082 -12.5228 124.706 -3.01864 -13.2872 120.341 -3.21987 -14.6337 118.664 -1.99237 -13.4799 120.342 -2.27552 -14.8161 118.623 -6.32405 9.71571 153.681 -7.01765 9.7838 153.706 -5.89289 10.7487 150.87 -5.92458 11.3751 150.277 -6.54348 10.7044 150.654 -6.58024 11.3353 150.075</float_array> <technique_common> <accessor source="#Winter-mesh-positions-array" count="157" stride="3"> <param name="X" type="float"/> <param name="Y" type="float"/> <param name="Z" type="float"/> </accessor> </technique_common> </source> <source id="Winter-mesh-normals"> <float_array id="Winter-mesh-normals-array" count="543">0.122823 0.693745 0.709671 0.031361 0.907722 0.418399 -0.424746 0.807783 0.408752 -0.276127 0.63791 0.718905 -0.793805 0.465807 0.391022 -0.554631 0.368477 0.746063 -0.907841 -0.023974 0.418628 -0.676718 -0.082414 0.731615 -0.784524 -0.461186 0.414522 -0.481918 -0.429318 0.763833 -0.424095 -0.809918 0.405187 -0.255069 -0.607863 0.751959 0.04003 -0.907817 0.417452 0.303232 -0.63346 0.711884 0.493882 -0.753662 0.433676 0.790757 -0.455023 0.409459 0.657952 -0.400132 0.637961 0.915671 0.004119 0.401907 0.734095 0.06202 0.676209 0.798839 0.449 0.400319 0.607301 0.329865 0.722755 0.484199 0.777265 0.401759 0.366799 0.567296 0.737315 -0.478692 0.84001 0.255418 0.006393 0.960195 0.279259 -0.83783 0.489709 0.241302 -0.970603 0.006524 0.240596 -0.843569 -0.487642 0.224936 -0.479274 -0.844519 0.238921 0.005557 -0.964529 0.263918 0.479001 -0.828557 0.289916 0.823262 -0.477399 0.307131 0.952235 -0.000383 0.305365 0.818482 0.481783 0.313005 0.474504 0.826089 0.30401 -0.497801 0.582577 0.642494 -0.242808 0.846687 0.47346 -0.842992 0.238322 0.482252 -0.4604 -0.737861 0.493551 -0.36571 -0.641434 0.674402 0.753435 -0.431478 0.496147 0.25201 -0.728745 0.636727 0.700694 0.414721 0.580547 0.792079 -0.47195 0.387135 0.544042 0.498517 0.674907 0.47451 0.678267 0.561065 -0.308137 0.95039 0.042542 -0.694235 -0.037896 0.71875 -0.972274 0.22251 0.071919 0.264346 -0.9617 0.072486 -0.672537 -0.735212 0.084602 0.970122 -0.235668 0.057644 0.67386 0.737098 0.050977 -0.965821 0.258658 0.016928 0.696881 0.716984 -0.017061 0.975802 -0.215786 -0.035306 -0.383247 0.923639 -0.003561 -0.958519 0.279393 -0.056394 -0.223673 0.968926 -0.105608 -0.983806 0.079387 0.160698 0.285011 -0.905839 0.313409 -0.6508 -0.754758 0.082457 -0.75286 -0.549929 0.361635 0.881195 -0.462859 0.096214 0.882696 -0.455327 -0.1163 0.142146 -0.984075 0.106727 0.682502 0.708028 -0.181348 -0.619891 0.715147 -0.322954 -0.941054 -0.300279 -0.155727 -0.353942 -0.935149 0.014865 0.23484 -0.930743 0.280299 0.752689 -0.566096 0.336148 0.69615 -0.682194 0.223577 0.970073 0.20794 0.125376 0.527855 0.83552 -0.152565 0.223575 0.973954 -0.037776 -0.145583 0.989334 0.004806 0.203215 0.973819 0.101883 0.779544 0.599144 -0.182587 0.894435 -0.432721 -0.112863 0.372746 -0.900412 0.224316 -0.264383 -0.422131 0.867126 -0.524115 -0.699698 0.485517 -0.067054 -0.958653 0.276566 -0.223491 0.687406 0.691031 0.792305 0.025978 0.609571 -0.959633 0.281197 0.005663 -0.153298 0.974083 0.166318 -0.510572 0.737547 -0.441974 0.474138 0.847601 -0.238255 -0.983193 -0.169566 0.067661 0.796523 0.562352 0.222062 0.463095 0.725108 0.509667 -0.789055 0.576235 0.212946 -0.941785 0.336014 -0.011671 -0.933119 -0.350624 0.079702 0.168689 0.890085 0.42343 0.396797 0.90512 0.152677 -0.1897 0.978034 0.086395 0.965022 -0.199853 0.169681 0.898504 0.146491 0.4138 0.634304 -0.734269 0.241884 -0.224924 -0.970362 0.088353 0.959056 0.246309 0.139797 -0.775053 0.527504 0.347898 -0.161322 -0.13558 0.977545 -0.74164 -0.666639 -0.074582 0.339853 -0.938796 -0.056234 0.778525 -0.624246 -0.064926 0.584968 -0.78382 0.20842 -0.085834 -0.99584 -0.030572 -0.833753 -0.391517 -0.38932 0.4851 -0.735045 -0.473694 0.978146 -0.203757 0.041382 -0.916687 0.355197 0.183082 0.968652 -0.223271 0.108915 -0.962208 0.251735 0.10385 -0.909216 -0.412986 0.05262 -0.696143 -0.529421 -0.484869 -0.77455 -0.55371 0.30574 -0.974025 -0.032224 0.224136 -0.896284 0.320725 0.306285 -0.215004 0.944963 0.246614 -0.347358 0.911541 0.22008 0.670784 0.697655 0.251648 0.818945 0.538219 0.199124 0.926848 -0.193461 0.321753 0.251119 -0.883595 0.395221 0.460888 -0.884189 0.076104 0.888764 -0.456044 0.046081 -0.694405 -0.609315 0.382802 -0.744142 -0.664418 0.069294 0.015549 0.102571 0.994604 0.29384 -0.686961 -0.664637 -0.95432 -0.285634 0.087676 0.950972 -0.287406 0.114232 0.385231 -0.767088 0.513004 -0.396055 0.733311 0.552625 0.773452 0.373934 0.511806 -0.564646 0.773169 0.288765 0.774952 0.609195 0.168314 0.756034 -0.090987 0.648177 -0.805644 -0.119162 0.580291 -0.720186 0.32251 0.614263 0.574305 -0.582028 0.575688 0.906221 0.144319 0.397411 0.90083 -0.030117 0.433127 0.231338 -0.777964 0.58417 0.512938 0.726543 0.457199 -0.053912 -0.701895 0.710237 -0.258225 0.734118 0.628005 -0.54766 0.410749 0.72894 -0.506269 -0.066486 0.859809 -0.04468 -0.988666 0.143326 0.028218 -0.989193 0.143881 -0.081149 0.989164 0.122353 0.166934 0.980732 0.101477 -0.133914 -0.964773 0.22645 0.552926 -0.780729 0.291094 0.952838 -0.297579 0.059558 0.62945 -0.56832 0.529911 0.964148 -0.253212 0.079386 0.394417 -0.502728 0.76922 -0.322261 -0.919617 0.224615 -0.996807 0.00429 0.079737 -0.77691 -0.557226 0.293104 -0.993471 0.061955 0.0958 -0.766782 -0.344652 0.541535 0.033582 -0.49633 0.867484 -0.065986 0.943978 0.323344 0.198999 0.909581 0.364776 0.516761 0.719849 0.463439 -0.703089 0.648793 0.29109 -0.998799 0.035006 0.034269 -0.874824 -0.027358 0.483668 -0.992407 -0.114033 0.046083 -0.590505 -0.36542 0.719564 0.912623 0.301309 0.276282 0.926152 0.241138 0.289993 0.584122 0.329357 0.741839 -0.256325 -0.338468 0.905393</float_array> <technique_common> <accessor source="#Winter-mesh-normals-array" count="181" stride="3"> <param name="X" type="float"/> <param name="Y" type="float"/> <param name="Z" type="float"/> </accessor> </technique_common> </source> <source id="Winter-mesh-map-channel1"> <float_array id="Winter-mesh-map-channel1-array" count="846">0.305163 0.292664 0 0.341692 0.29253 0 0.163529 0.293074 0 0.196708 0.289328 0 0.268375 0.276993 0 0.305157 0.402846 0 0.341683 0.413613 0 0.268224 0.401789 0 0.305159 0.347543 0 0.341683 0.336807 0 0.268229 0.333132 0 0.333338 0.418545 0 0.18896 0.436279 0 0.296444 0.417506 0 0.228564 0.414495 0 0.163663 0.400287 0 0.196692 0.398635 0 0.147856 0.28372 0 0.328034 0.284314 0 0.284423 0.277083 0 0.317753 0.543461 0 0.226881 0.523052 0 0.245987 0.519562 0 0.01268 0.269201 0 0.278264 0.650976 0 0.29078 0.654934 0 0.131813 0.619087 0 0.144951 0.618966 0 0.158497 0.613725 0 0.22574 0.658091 0 0.049597 0.270318 0 0.067343 0.271718 0 0.069326 0.369391 0 0.076262 0.370157 0 0.026596 0.369542 0 0.038483 0.369005 0 0.048415 0.369839 0 0.23712 0.650432 0 0.251485 0.650025 0 0.04377 0.373756 0 0.29612 0.542256 0 0.26095 0.550035 0 0.277934 0.5632 0 0.269357 0.714575 0 0.285563 0.718544 0 0.171118 0.612661 0 0.157159 0.682163 0 0.149001 0.681968 0 0.184172 0.68555 0 0.178698 0.684197 0 0.172432 0.682871 0 0.165982 0.682462 0 0.189315 0.627395 0 0.190701 0.613935 0 0.178499 0.625954 0 0.248387 0.715773 0 0.25579 0.71407 0 0.180339 0.688812 0 0.357057 0.510785 0 0.174507 0.410987 0 0.180102 0.283724 0 0.101569 0.39132 0 0.163664 0.339723 0 0.064539 0.539507 0 0.036346 0.545213 0 0.222925 0.5032 0 0.246856 0.514689 0 0.296274 0.515698 0 0.330473 0.514514 0 0.070072 0.615316 0 0.08062 0.616918 0 0.090997 0.618935 0 0.048601 0.618958 0 0.191259 0.542434 0 0.12583 0.545237 0 0.155026 0.590399 0 0.164603 0.589881 0 0.174048 0.590217 0 0.182663 0.59142 0 0.190954 0.594324 0 0.160596 0.596586 0 0.016636 0.561121 0 0.059346 0.616484 0 0.137518 0.538412 0 0.139544 0.546415 0 0.151743 0.544651 0 0.151087 0.537091 0 0.204884 0.282603 0 0.196697 0.339716 0 0.255721 0.276946 0 0.228564 0.333906 0 0.21878 0.283617 0 0.228564 0.293684 0 0.006329 0.408482 0 0.036781 0.532721 0 0.255237 0.428796 0 0.035079 0.389588 0 0.067093 0.381563 0 0.084524 0.511411 0 0.056418 0.51716 0 0.147494 0.436771 0 0.103375 0.297085 0 0.178539 0.539456 0 0.164322 0.53849 0 0.074759 0.623073 0 0.145141 0.59142 0 0.107949 0.284551 0 0.183265 0.611447 0 0.120752 0.431078 0 0.130472 0.517863 0 0.138839 0.528178 0 0.112727 0.509862 0 0.101272 0.51658 0 0.20798 0.425665 0 0.210208 0.445848 0 0.131875 0.292403 0 0.131866 0.413486 0 0.131866 0.33668 0 0.235461 0.445795 0 0.235304 0.425795 0 0.276104 0.518455 0 0.369243 0.431748 0 0.200485 0.503982 0 0.103735 0.562906 0 0.091526 0.558842 0 0.081568 0.54466 0 0.039546 0.624057 0 0.056558 0.624431 0 0.08386 0.624264 0 0.094786 0.625675 0 0.047503 0.627519 0 0.065714 0.622963 0 0.118832 0.556388 0 0.100257 0.619964 0 0.1435 0.598471 0 0.168795 0.596566 0 0.185133 0.597966 0 0.151895 0.597439 0 0.177453 0.59709 0 0.203525 0.545529 0 0.136664 0.594317 0 0.088584 0.276311 0 0.08529 0.286816 0 0.03317 0.273124 0 0.059449 0.368365 0 0.078891 0.375289 0 0.063653 0.373234 0 0.071598 0.3741 0 0.033628 0.373009 0 0.054621 0.372833 0 0.122308 0.288927 0 0.08387 0.373208 0 0.263338 0.711595 0 0.264601 0.65593 0 0.239115 0.666651 0 0.278516 0.71576 0 0.279937 0.72096 0 0.254692 0.668949 0 0.207356 0.525568 0 0.22574 0.657839 0 0.273185 0.719536 0 0.253369 0.718739 0 0.263886 0.717012 0 0.246499 0.720826 0 0.260623 0.716488 0 0.241339 0.718467 0 0.302281 0.65996 0 0.168757 0.687335 0 0.144978 0.686619 0 0.15273 0.686876 0 0.161321 0.686972 0 0.174252 0.687739 0 0.203951 0.610034 0 0.140884 0.681657 0 0.155345 0.928387 0.715557 0.150582 0.971407 0.398601 0.089719 0.955043 0.437146 0.110413 0.919945 0.763149 0.044982 0.910334 0.452895 0.08066 0.890342 0.793555 0.030289 0.842733 0.47721 0.076495 0.841478 0.796364 0.043989 0.788187 0.472407 0.089362 0.803643 0.796284 0.089494 0.743479 0.442989 0.110404 0.779865 0.763766 0.150582 0.727114 0.398498 0.173544 0.776703 0.73593 0.212999 0.743478 0.345153 0.259627 0.788187 0.296931 0.227124 0.814242 0.669615 0.275728 0.849261 0.301929 0.232275 0.849905 0.687496 0.259627 0.910334 0.296931 0.221524 0.890342 0.686854 0.212999 0.955043 0.345153 0.191588 0.919944 0.699778 0.150294 0.997383 0.00076 0.076702 0.977542 0.000848 0.022818 0.923335 0.000817 0.002711 0.849288 0.000902 0.022436 0.77524 0.000902 0.0767 0.721034 0.000841 0.150294 0.701193 0.00076 0.224382 0.721034 0.000651 0.279177 0.77524 0.000499 0.298901 0.849288 0.000499 0.279177 0.923335 0.000499 0.224382 0.977542 0.000651 0.12785 0.873514 0.878063 0.14278 0.885636 0.96979 0.120833 0.858454 0.999501 0.122472 0.818725 0.992313 0.140472 0.818599 0.859226 0.162857 0.819439 0.889416 0.156023 0.806905 0.950318 0.18 0.86684 0.831666 0.184256 0.83856 0.982121 0.17422 0.876027 0.831666 0.160868 0.885366 0.841538 0.173634 0.83138 0.883256 0.12122 0.837399 0.908799 0.219248 0.486616 0 0.242087 0.490113 0 0.134981 0.495192 0 0.114729 0.49021 0 0.318906 0.929261 0 0.318102 0.90731 0 0.339997 0.930377 0 0.339278 0.908696 0 0.253517 0.617791 0 0.268895 0.619207 0 0.074655 0.338122 0 0.084814 0.344121 0 0.336711 0.888313 0 0.334952 0.950496 0 0.321631 0.888664 0 0.321594 0.949951 0 0.297596 0.906885 0 0.297273 0.929514 0 0.404901 0.910172 0 0.404949 0.933914 0 0.378126 0.837991 0 0.369741 0.838014 0 0.369678 0.892827 0 0.37805 0.892966 0 0.142042 0.566499 0 0.153235 0.565341 0 0.305848 0.857235 0 0.306294 0.872488 0 0.42765 0.872163 0 0.427775 0.857192 0 0.361121 0.857211 0 0.380809 0.857181 0 0.380816 0.87215 0 0.361127 0.87232 0 0.390879 0.977311 0 0.390851 0.968938 0 0.322476 0.956015 0 0.313794 0.956151 0 0.172639 0.65241 0 0.181124 0.654311 0 0.305271 0.813649 0 0.305277 0.820277 0 0.368215 0.801266 0 0.313797 0.989554 0 0.359561 0.801246 0 0.368216 0.831921 0 0.359562 0.831925 0 0.385643 0.820292 0 0.385531 0.813645 0 0.36823 0.820285 0 0.35958 0.8203 0 0.36824 0.813639 0 0.359594 0.813622 0 0.322501 0.989507 0 0.287081 0.967642 0 0.289052 0.979273 0 0.312309 0.966433 0 0.328455 0.966792 0 0.312309 0.979093 0 0.328463 0.978728 0</float_array> <technique_common> <accessor source="#Winter-mesh-map-channel1-array" count="282" stride="3"> <param name="S" type="float"/> <param name="T" type="float"/> <param name="P" type="float"/> </accessor> </technique_common> </source> <vertices id="Winter-mesh-vertices"> <input semantic="POSITION" source="#Winter-mesh-positions"/> </vertices> <triangles material="texture" count="300"> <input semantic="VERTEX" source="#Winter-mesh-vertices" offset="0"/> <input semantic="NORMAL" source="#Winter-mesh-normals" offset="1"/> <input semantic="TEXCOORD" source="#Winter-mesh-map-channel1" offset="2" set="1"/> <p>110 0 174 9 1 175 10 2 176 10 2 176 128 3 177 110 0 174 11 4 178 0 5 179 128 3 177 128 3 177 10 2 176 11 4 178 12 6 180 1 7 181 0 5 179 0 5 179 11 4 178 12 6 180 1 7 181 12 6 180 13 8 182 13 8 182 2 9 183 1 7 181 14 10 184 3 11 185 2 9 183 2 9 183 13 8 182 14 10 184 15 12 186 4 13 187 3 11 185 3 11 185 14 10 184 15 12 186 4 13 187 15 12 186 16 14 188 17 15 189 5 16 190 4 13 187 4 13 187 16 14 188 17 15 189 18 17 191 6 18 192 5 16 190 5 16 190 17 15 189 18 17 191 19 19 193 7 20 194 6 18 192 6 18 192 18 17 191 19 19 193 20 21 195 8 22 196 7 20 194 7 20 194 19 19 193 20 21 195 9 1 175 110 0 174 8 22 196 8 22 196 20 21 195 9 1 175 22 23 198 10 2 176 9 1 175 9 1 175 21 24 197 22 23 198 23 25 199 11 4 178 10 2 176 10 2 176 22 23 198 23 25 199 24 26 200 12 6 180 11 4 178 11 4 178 23 25 199 24 26 200 25 27 201 13 8 182 12 6 180 12 6 180 24 26 200 25 27 201 26 28 202 14 10 184 13 8 182 13 8 182 25 27 201 26 28 202 27 29 203 15 12 186 14 10 184 14 10 184 26 28 202 27 29 203 28 30 204 16 14 188 15 12 186 15 12 186 27 29 203 28 30 204 29 31 205 17 15 189 16 14 188 16 14 188 28 30 204 29 31 205 30 32 206 18 17 191 17 15 189 17 15 189 29 31 205 30 32 206 31 33 207 19 19 193 18 17 191 18 17 191 30 32 206 31 33 207 32 34 208 20 21 195 19 19 193 19 19 193 31 33 207 32 34 208 21 24 197 9 1 175 20 21 195 20 21 195 32 34 208 21 24 197 111 35 209 33 36 210 128 3 177 128 3 177 0 5 179 111 35 209 0 5 179 1 7 181 34 37 211 1 7 181 2 9 183 35 38 212 113 39 213 35 38 212 2 9 183 2 9 183 3 11 185 113 39 213 4 13 187 115 40 214 36 41 215 6 18 192 117 42 216 120 43 217 7 20 194 37 44 218 117 42 216 7 20 194 8 22 196 37 44 218 37 44 218 8 22 196 112 45 219 111 35 18 41 46 8 33 36 0 109 47 17 42 48 117 34 37 115 113 39 60 116 49 88 114 50 62 115 40 87 118 51 90 116 49 88 117 42 89 43 52 10 118 51 90 37 44 4 112 45 19 43 52 10 42 48 9 39 53 6 41 46 8 40 54 7 82 55 14 118 51 90 41 46 8 38 56 5 40 54 7 38 56 11 44 57 58 53 58 68 39 53 12 88 59 114 44 57 122 130 60 223 45 61 65 129 62 222 130 60 223 89 63 118 121 64 120 121 64 120 46 65 66 130 60 223 40 54 13 47 66 67 121 64 120 38 56 11 53 58 68 47 66 67 53 58 40 44 57 20 49 67 25 44 57 158 45 61 21 50 68 29 45 61 21 46 65 22 51 69 37 46 65 22 61 70 41 137 71 230 137 71 230 52 72 38 46 65 22 69 73 153 52 72 38 137 71 230 48 74 24 62 75 42 53 58 40 53 58 31 63 76 142 126 77 144 126 77 144 58 78 36 47 66 30 47 66 30 57 79 35 121 64 143 56 80 34 46 65 23 121 64 143 56 80 151 55 81 33 140 82 233 140 82 233 60 83 101 56 80 151 54 84 32 140 82 233 55 81 33 59 85 39 57 79 35 58 78 36 55 81 33 56 80 151 59 85 145 126 77 144 54 84 32 59 85 146 59 85 147 54 84 32 55 81 33 56 80 34 57 79 35 59 85 148 59 85 149 58 78 36 126 77 144 46 65 150 60 83 101 61 70 106 53 58 31 62 75 141 63 76 142 65 86 44 80 87 156 79 88 155 48 74 24 79 88 155 64 89 43 49 67 25 65 86 44 79 88 155 50 68 159 77 90 154 65 86 165 68 91 152 67 92 56 69 73 153 69 73 153 48 74 24 64 89 43 73 93 49 76 94 52 72 95 48 72 95 173 50 68 26 51 69 27 74 96 50 151 97 260 152 98 261 69 73 45 78 99 54 151 97 260 151 97 260 75 100 51 69 73 45 75 100 51 70 101 46 52 72 28 71 102 47 51 69 27 52 72 28 50 68 172 76 94 52 77 90 53 69 73 45 127 103 107 78 99 54 64 89 43 79 88 155 80 87 160 66 104 55 67 92 56 80 87 161 80 87 162 68 91 152 64 89 43 65 86 165 66 104 55 80 87 163 80 87 164 67 92 56 68 91 152 72 95 48 81 105 57 73 93 49 75 100 51 74 96 50 81 105 167 72 95 173 71 102 47 81 105 168 81 105 169 71 102 47 70 101 46 70 101 46 75 100 51 81 105 170 81 105 171 74 96 50 73 93 49 42 48 117 114 50 62 83 106 15 83 106 15 114 50 62 84 107 16 84 107 16 118 51 90 82 55 14 91 108 69 92 109 70 104 110 104 86 111 99 39 53 93 83 106 96 85 112 98 86 111 99 83 106 96 123 113 112 85 112 98 84 107 97 39 53 12 87 114 113 88 59 114 82 55 95 89 63 118 90 115 119 85 112 63 123 113 125 91 108 69 96 116 81 86 111 64 124 117 126 86 111 64 85 112 63 94 118 72 82 55 61 90 115 108 123 113 112 87 114 100 39 53 59 96 116 110 93 119 71 105 120 123 124 117 133 92 109 70 91 108 69 123 113 125 101 121 79 100 122 78 95 123 73 100 122 78 99 124 77 122 125 102 99 124 77 98 126 76 122 125 102 98 126 76 97 127 75 146 128 247 146 128 247 107 129 85 98 126 76 146 128 247 125 130 105 145 131 246 125 130 105 101 121 140 96 116 74 97 127 75 98 126 76 102 132 80 101 121 140 125 130 105 102 132 134 98 126 76 99 124 77 102 132 135 102 132 136 100 122 78 101 121 79 102 132 137 125 130 105 97 127 75 102 132 138 99 124 77 100 122 78 94 118 72 103 133 82 104 110 127 92 109 70 93 119 71 104 110 128 104 110 129 93 119 71 124 117 133 124 117 126 94 118 72 104 110 130 104 110 131 103 133 82 91 108 69 96 116 74 105 120 83 106 134 84 123 113 103 107 129 85 108 135 86 111 35 18 34 37 1 42 48 9 109 47 17 114 50 62 42 48 117 110 0 174 33 36 210 112 45 219 112 45 19 33 36 0 41 46 8 111 35 18 42 48 9 41 46 8 114 50 62 35 38 2 113 39 60 109 47 17 35 38 2 114 50 62 116 49 88 36 41 3 115 40 87 113 39 60 36 41 3 116 49 88 118 51 90 120 43 92 117 42 89 119 136 91 120 43 92 118 51 90 112 45 19 41 46 8 43 52 10 117 42 89 37 44 4 43 52 10 115 40 87 119 136 91 118 51 90 84 107 16 116 49 88 118 51 90 118 51 90 43 52 10 40 54 7 40 54 7 43 52 10 41 46 8 39 53 6 38 56 5 41 46 8 83 106 15 39 53 116 42 48 117 114 50 62 116 49 88 84 107 16 89 63 118 82 55 95 121 64 120 46 65 66 45 61 65 130 60 223 121 64 120 82 55 95 40 54 13 47 66 67 40 54 13 38 56 11 38 56 11 39 53 121 44 57 58 44 57 122 88 59 114 129 62 222 129 62 222 45 61 65 44 57 122 96 116 110 95 123 109 131 137 224 131 137 224 87 114 100 96 116 110 86 111 99 96 116 94 39 53 93 83 106 96 84 107 97 85 112 98 84 107 97 82 55 61 123 113 112 123 113 112 90 115 108 132 138 225 132 138 225 122 125 111 123 113 112 105 120 123 96 116 132 124 117 133 86 111 64 94 118 72 124 117 126 85 112 63 103 133 82 94 118 72 91 108 69 103 133 82 85 112 63 123 113 125 108 135 124 92 109 70 97 127 75 125 130 105 146 128 247 145 131 246 125 130 105 96 116 74 96 116 74 106 134 84 145 131 246 95 123 73 96 116 139 101 121 79 122 125 102 95 123 73 100 122 78 98 126 76 123 113 103 122 125 102 107 129 85 123 113 103 98 126 76 60 83 101 46 65 150 56 80 151 54 84 32 139 139 232 140 82 233 126 77 144 63 76 142 139 139 232 139 139 232 54 84 32 126 77 144 47 66 30 53 58 31 126 77 144 47 66 30 58 78 36 57 79 35 121 64 143 57 79 35 56 80 34 138 140 231 69 73 153 137 71 230 52 72 38 51 69 37 46 65 22 51 69 37 50 68 29 45 61 21 50 68 166 49 67 25 44 57 20 49 67 25 48 74 24 53 58 40 138 140 231 62 75 42 48 74 24 48 74 24 69 73 153 138 140 231 67 92 56 127 103 157 69 73 153 77 90 154 66 104 55 65 86 165 49 67 25 50 68 166 65 86 44 48 74 24 49 67 25 79 88 155 64 89 43 68 91 152 69 73 153 74 96 50 75 100 51 151 97 260 52 72 28 69 73 45 75 100 51 52 72 28 70 101 46 71 102 47 51 69 27 71 102 47 72 95 173 76 94 52 50 68 172 72 95 48 73 93 49 74 96 50 152 98 261 152 98 261 76 94 52 73 93 49 120 43 217 5 16 190 6 18 192 119 136 220 115 40 214 4 13 187 4 13 187 5 16 190 119 136 220 120 43 217 119 136 220 5 16 190 36 41 215 3 11 185 4 13 187 36 41 215 113 39 213 3 11 185 34 37 211 111 35 209 0 5 179 1 7 181 35 38 212 109 47 221 109 47 221 34 37 211 1 7 181 33 36 210 110 0 174 128 3 177 8 22 196 110 0 174 112 45 219 117 42 216 6 18 192 7 20 194 95 123 109 122 125 111 131 137 224 131 137 224 122 125 111 132 138 225 135 141 228 132 138 241 90 115 235 129 62 238 88 59 236 134 142 227 131 137 240 132 138 241 135 141 228 135 141 228 136 143 229 131 137 240 89 63 237 130 60 239 133 144 226 133 144 226 130 60 239 129 62 238 129 62 238 134 142 227 133 144 226 133 144 226 135 141 228 90 115 235 90 115 235 89 63 237 133 144 226 133 144 226 134 142 227 136 143 229 136 143 229 135 141 228 133 144 226 87 114 234 131 137 240 136 143 229 134 142 227 88 59 236 87 114 234 87 114 234 136 143 229 134 142 227 138 145 249 137 146 248 141 147 252 141 147 252 144 148 255 138 145 249 141 147 252 142 149 253 143 150 254 143 150 254 144 148 255 141 147 252 139 151 250 143 150 254 142 149 253 142 149 253 140 152 251 139 151 250 137 146 248 61 153 243 141 147 252 61 153 243 60 154 242 142 149 253 142 149 253 141 147 252 61 153 243 142 149 253 60 154 242 140 152 251 139 151 250 63 155 245 143 150 254 63 155 245 62 156 244 144 148 255 144 148 255 143 150 254 63 155 245 144 148 255 62 156 244 138 145 249 146 157 277 149 158 280 107 159 265 107 159 265 149 158 280 150 160 281 150 160 281 108 161 275 107 159 265 108 161 275 150 160 281 92 162 256 145 163 276 106 164 259 147 165 278 147 165 278 106 164 259 105 166 258 105 166 258 148 167 279 147 165 278 148 167 279 105 166 258 93 168 257 146 157 277 145 163 276 147 165 278 147 165 278 149 158 280 146 157 277 149 158 280 147 165 278 148 167 279 148 167 279 150 160 281 149 158 280 150 160 281 148 167 279 93 168 257 93 168 257 92 162 256 150 160 281 152 169 270 151 170 269 153 171 271 153 171 271 155 172 273 152 169 270 76 173 264 155 172 273 156 174 274 156 174 274 77 175 266 76 173 264 77 175 266 156 174 274 66 176 262 151 170 269 78 177 267 153 171 271 153 171 271 78 177 267 127 178 268 127 178 268 154 179 272 153 171 271 154 179 272 127 178 268 67 180 263 155 172 273 76 173 264 152 169 270 155 172 273 153 171 271 154 179 272 154 179 272 156 174 274 155 172 273 154 179 272 67 180 263 66 176 262 66 176 262 156 174 274 154 179 272</p> </triangles> </mesh> </geometry> </library_geometries> <library_visual_scenes> <visual_scene id="Seasons.max" name="Seasons_max"> <node id="Winter-node" name="Winter" type="NODE"> <translate>0.00163 0 0</translate> <scale>0.112903 0.112903 0.043746</scale> <instance_geometry url="#Winter-mesh"> <bind_material> <technique_common> <instance_material symbol="texture" target="#texture"> <bind_vertex_input semantic="CHANNEL1" input_semantic="TEXCOORD" input_set="1"/> </instance_material> </technique_common> </bind_material> </instance_geometry> </node> <node id="VisualSceneNode" type="NODE"> <instance_light url="#ambient-environment-light"/> </node> <extra> <technique profile="FCOLLADA"> <start_time>0</start_time> <end_time>3.33333</end_time> </technique> </extra> <extra> <technique profile="MAX3D"> <frame_rate>30</frame_rate> </technique> </extra> </visual_scene> </library_visual_scenes> <scene> <instance_visual_scene url="#Seasons.max"/> </scene> </COLLADA> ; public static var autumn:XML = <COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1"> <asset> <contributor> <author>den</author> <authoring_tool>3dsMax 9 - Feeling ColladaMax v3.04C.</authoring_tool> <comments>ColladaMax Export Options: ExportNormals=1;ExportEPolyAsTriangles=1;ExportXRefs=0;ExportSelected=1;ExportTangents=0;ExportAnimations=0;SampleAnim=0;ExportAnimClip=0;BakeMatrices=0;ExportRelativePaths=1;AnimStart=0;AnimEnd=16000;</comments> <source_data>file:///G:/work/eclipse/Lab_PV3D/model/Seasons.max</source_data> </contributor> <created>2008-04-09T18:10:28Z</created> <modified>2008-04-09T18:10:28Z</modified> <unit meter="0.0254" name="inch"/> <up_axis>Z_UP</up_axis> </asset> <library_lights> <light id="ambient-environment-light" name="Ambient"> <technique_common> <ambient> <color>0.113725 0.14902 0.164706</color> </ambient> </technique_common> <extra> <technique profile="FCOLLADA"> <intensity>1</intensity> </technique> </extra> </light> </library_lights> <library_images> <image id="AutumTreeMap.png" name="AutumTreeMap_png"> <init_from>./AutumTreeMap.png</init_from> </image> </library_images> <library_materials> <material id="texture" name="texture"> <instance_effect url="#texture-fx"/> </material> </library_materials> <library_effects> <effect id="texture-fx" name="texture"> <profile_COMMON> <newparam sid="AutumTreeMap_png-surface"> <surface type="2D"> <init_from>AutumTreeMap.png</init_from> <format>A8R8G8B8</format> </surface> </newparam> <newparam sid="AutumTreeMap_png-sampler"> <sampler2D> <source>AutumTreeMap_png-surface</source> <wrap_s>WRAP</wrap_s> <wrap_t>WRAP</wrap_t> <minfilter>NONE</minfilter> <magfilter>NONE</magfilter> <mipfilter>NONE</mipfilter> </sampler2D> </newparam> <technique sid="common"> <blinn> <ambient> <color>0.588 0.588 0.588 1</color> </ambient> <diffuse> <texture texture="AutumTreeMap_png-sampler" texcoord="CHANNEL1"> <extra> <technique profile="MAYA"> <mirrorU>0</mirrorU> <mirrorV>0</mirrorV> <wrapU>1</wrapU> <wrapV>1</wrapV> <repeatU>1</repeatU> <repeatV>1</repeatV> <offsetU>0</offsetU> <offsetV>0</offsetV> </technique> <technique profile="MAX3D"> <amount>1</amount> </technique> </extra> </texture> </diffuse> <specular> <color>0.9 0.9 0.9 1</color> </specular> <shininess> <float>0.415939</float> </shininess> <reflective> <color>0 0 0 1</color> </reflective> <reflectivity> <float>1</float> </reflectivity> <transparent opaque="A_ONE"> <color>1 1 1 1</color> </transparent> <transparency> <float>1</float> </transparency> <index_of_refraction> <float>1</float> </index_of_refraction> </blinn> <extra> <technique profile="FCOLLADA"> <spec_level> <float>0</float> </spec_level> <emission_level> <float>0</float> </emission_level> </technique> </extra> </technique> </profile_COMMON> <extra> <technique profile="MAX3D"> <faceted>0</faceted> <double_sided>0</double_sided> <wireframe>0</wireframe> <face_map>0</face_map> </technique> </extra> </effect> </library_effects> <library_geometries> <geometry id="Autumn-mesh" name="Autumn"> <mesh> <source id="Autumn-mesh-positions"> <float_array id="Autumn-mesh-positions-array" count="633">-9.06549 15.8309 25.8697 -15.8299 9.13997 26.9648 -18.2429 2.38065 27.0673 -13.8514 -10.4564 27.063 -9.06736 -15.8309 25.8919 0.137714 -18.2799 24.7319 9.36285 -15.8309 23.9403 17.47 -8.06062 18.9095 18.6412 -0.000013 23.145 16.1967 9.13995 23.1219 9.39045 15.8309 23.5874 0.051073 27.8848 11.4547 -13.9252 24.1489 12.9369 -24.1985 13.9424 13.5425 -28.1609 0.000004 14.2632 -24.4266 -13.9424 14.2928 -13.9769 -24.1489 13.1616 0.051015 -27.8848 11.4507 14.3842 -24.1489 9.39937 25.0917 -13.9424 7.54506 28.7892 -0.000021 7.73723 25.0917 13.9424 7.54506 14.3843 24.1489 9.39938 0.000533 32.1986 -0.196413 -16.0941 27.8848 -0.19305 -27.8786 16.0993 -0.194225 -32.276 0.000004 -0.190961 -27.9621 -16.0993 -0.190956 -16.0945 -27.8848 -0.193325 0.000514 -32.1986 -0.196423 16.2036 -27.8848 -0.200624 28.1873 -16.0993 -0.206467 32.501 -0.000025 -0.206465 28.1873 16.0993 -0.206463 16.2036 27.8848 -0.200618 -1.95622 7.65424 37.0668 -6.96139 1.73914 38.2092 -5.9812 -5.89682 35.2696 1.15995 -8.14908 33.6547 5.37007 5.62083 28.823 -0.829426 5.43766 82.6931 -3.36062 1.68492 87.106 3.35133 4.60116 82.4435 -1.33636 5.87967 60.4543 -5.12325 1.97558 56.7557 3.91558 4.83979 54.7761 0.393164 5.75333 111.769 1.09581 3.4512 113.796 3.24704 3.24368 115.919 4.73226 6.93278 110.775 2.61967 7.55255 112.61 4.04707 5.65868 123.25 2.82519 5.73069 123.249 2.75147 7.72216 121.062 3.97982 7.60926 121.122 4.35279 0.023148 86.8491 -2.65778 -1.7836 81.4571 1.91378 -2.76955 80.509 -0.140255 -8.46389 97.5509 -1.25903 -1.11829 99.696 -0.593492 1.03549 100.559 2.51219 0.261141 100.236 1.99775 -1.88099 99.3897 -6.39839 -2.01436 30.4468 1.15038 17.7391 24.1557 -4.71425 4.4743 30.1256 1.94803 6.72127 29.2027 -1.84956 -5.85782 30.1518 -3.43447 -3.16822 58.1211 1.36203 -4.25701 57.9327 6.3659 2.93029 28.823 5.60436 -0.304009 56.1415 4.61751 -3.89828 29.1211 6.96011 -1.98199 37.5409 -9.4341 -16.1505 140.005 1.73481 -8.6254 140.205 -8.55668 -5.60774 122.718 -13.9776 -17.1456 112.461 -7.03643 -27.2941 123.609 2.67438 -22.0283 140.756 4.09407 -4.96969 112.785 -5.61674 -10.2355 95.6385 -4.67717 -23.6384 96.1893 5.61433 -26.656 113.676 11.0352 -15.1182 123.933 6.49174 -16.1132 96.3893 -4.26723 -11.7306 143.951 -10.3164 -9.95691 133.673 -13.5028 -16.7387 127.644 -9.42284 -22.7038 134.197 -3.71497 -19.6087 144.275 -3.7515 -5.53374 133.79 -12.987 -10.5418 117.483 -12.0934 -23.2887 118.007 -2.30565 -26.1587 134.638 2.84995 -15.1855 144.393 3.68443 -5.1587 127.952 -8.07263 -6.48012 107.595 -10.7067 -21.1399 101.89 -0.577592 -28.8788 118.721 8.31661 -19.0019 134.828 7.76435 -11.1238 134.504 -2.36476 -3.38497 117.673 -11.259 -13.2619 101.566 -6.62678 -27.1051 108.442 5.13028 -25.7837 128.799 0.724843 -5.47629 105.98 -5.79231 -17.0783 92.0016 0.809146 -26.73 102.604 10.0447 -21.722 118.911 9.15108 -8.97505 118.387 6.48048 -9.55995 102.198 0.772613 -12.6551 92.1192 1.32488 -20.5331 92.4429 7.37407 -22.3069 102.721 10.5604 -15.5251 108.75 1.30888 -6.91992 102.278 -3.7374 -6.19325 103.573 -1.95006 -5.1204 106.746 8.05658 5.70881 119.052 0.865507 4.77576 123.348 -0.893597 5.12374 121.3 -1.07282 6.91387 118.551 0.977744 8.31552 119.105 2.49114 7.81697 121.917 14.5809 3.9411 150.652 21.6447 7.06561 139.174 16.2782 13.0828 149.457 9.775 7.2205 151.978 8.2285 1.23668 138.123 16.196 0.212256 132.169 18.9422 15.0039 130.236 10.9717 17.0029 136.189 5.11895 11.4795 126.773 10.1259 3.9149 118.902 18.8914 7.04942 119.551 11.8232 13.0566 117.707 18.975 4.97744 146.798 15.3038 8.51426 152.287 10.6386 1.99633 146.18 15.7723 0.949132 142.68 19.9727 10.3508 146.095 10.6308 11.803 151.222 7.20042 3.32058 145.597 11.5879 -0.195431 135.316 19.9243 2.78568 135.934 21.5385 11.48 134.797 13.2504 16.064 144.341 8.01997 1.98093 127.518 18.3059 2.77616 124.4 21.5086 6.80446 128.517 18.3841 15.0168 140.841 8.59108 15.1711 140.807 5.52459 3.49098 135.159 13.1537 0.933733 124.018 14.8163 17.1932 133.043 7.10308 14.6187 131.857 14.738 4.95252 116.601 19.9201 11.4705 123.263 15.7656 15.0014 122.179 10.6318 16.0486 125.679 7.4291 12.0203 121.561 10.5835 8.48346 115.517 15.7357 10.3259 115.899 -6.03837 13.8664 186.359 8.60167 13.7012 166.374 -2.25131 27.0376 163.404 -18.3539 20.8925 164.832 -17.4529 3.75831 168.684 -0.793451 -0.686164 169.637 5.33413 20.6252 132.495 -11.3254 25.0697 131.543 -20.7205 10.6823 134.806 -9.8675 -2.65407 137.775 -6.08045 10.5171 114.821 2.57052 14.0633 180.892 -3.8087 21.9022 179.146 -13.2736 18.2903 179.986 -12.744 8.21904 182.25 -2.95179 5.60665 182.81 4.7965 21.8051 167.399 -11.0476 26.0321 166.493 -19.9829 12.3489 169.597 -9.66111 -0.334748 172.421 5.65341 5.50954 171.063 9.25511 18.036 149.232 -6.91631 28.4873 146.926 -21.9035 16.4187 149.684 -14.9947 -1.49145 153.693 4.2624 -0.491878 153.414 2.87589 25.8749 147.486 -16.3812 24.8754 147.766 -21.3739 6.34746 151.948 -5.2025 -4.10385 154.253 -2.4577 24.7182 128.759 -17.7722 18.874 130.117 -16.9153 2.57836 133.78 -1.0712 -1.64858 134.686 0.625179 16.1644 118.93 -9.16702 18.7768 118.37 -14.6893 10.3202 120.288 -8.31011 2.48125 122.033 5.62451 7.87978 123.891 6.44963 8.21631 120.41 7.69145 7.62033 117.951 6.99276 4.89249 122.86 5.729 6.13864 125.715 2.58283 5.84545 123.951 2.81563 -5.67904 29.358 5.4349 4.63064 112.802 -3.15561 -8.01605 98.3186</float_array> <technique_common> <accessor source="#Autumn-mesh-positions-array" count="211" stride="3"> <param name="X" type="float"/> <param name="Y" type="float"/> <param name="Z" type="float"/> </accessor> </technique_common> </source> <source id="Autumn-mesh-normals"> <float_array id="Autumn-mesh-normals-array" count="747">-0.411233 0.787561 0.458949 -0.200023 0.597539 0.77649 0.093297 0.657154 0.74796 0.036877 0.881409 0.470911 -0.766237 0.472152 0.435836 -0.484342 0.356837 0.798799 -0.896737 0.010137 0.442448 -0.625222 0.037251 0.779557 -0.762887 -0.455283 0.459044 -0.472275 -0.362714 0.803365 -0.408933 -0.790088 0.456656 -0.239037 -0.583421 0.776196 0.047133 -0.883099 0.466813 0.074677 -0.665368 0.742771 0.474971 -0.739222 0.477444 0.449196 -0.471319 0.759 0.759818 -0.401189 0.511589 0.665155 -0.314466 0.677259 0.867687 -0.012109 0.496963 0.626097 -0.155949 0.763992 0.76597 0.42808 0.479622 0.607816 0.327678 0.723316 0.473735 0.746811 0.466744 0.363462 0.566221 0.73979 -0.466804 0.824188 0.320637 0.010283 0.93356 0.358274 -0.822958 0.482204 0.300365 -0.960105 0.007635 0.279534 -0.831388 -0.482863 0.275023 -0.469398 -0.830956 0.298625 0.008479 -0.941432 0.337097 0.465786 -0.797426 0.383608 0.785006 -0.450121 0.425625 0.905573 -0.00093 0.424189 0.774729 0.458107 0.435813 0.458625 0.790848 0.405243 -0.086835 0.278566 0.956483 -0.309004 -0.106028 0.945132 -0.047789 -0.362911 0.930598 0.434249 -0.296684 0.850533 0.490634 -0.392997 0.777709 0.427902 0.043179 0.902793 0.329657 0.293029 0.897475 0.2321 0.418928 0.877855 -0.64171 0.745163 0.181497 -0.308138 0.950394 0.042443 -0.31174 0.935806 0.164579 -0.874736 -0.25086 0.414615 -0.972281 0.222506 0.071835 -0.94965 0.238289 0.203428 -0.371432 -0.868954 0.327044 0.264325 -0.961725 0.072237 -0.672537 -0.735212 0.084602 0.283891 -0.941268 0.182814 0.970114 -0.235672 0.05777 0.845189 -0.520322 0.122151 0.887655 0.433987 0.154027 0.708098 0.703487 0.060855 0.67386 0.737098 0.050977 0.652828 0.717332 0.243412 -0.96586 0.258144 0.021822 0.696881 0.716984 -0.017061 -0.383247 0.923639 -0.003561 -0.940774 0.338205 -0.023691 -0.194799 0.971686 -0.133715 -0.762827 -0.454004 0.460409 0.478796 -0.784 0.395092 -0.650305 -0.754702 0.086764 0.132555 -0.983983 0.119196 0.882024 -0.455804 -0.119482 0.674416 0.719488 -0.165828 -0.952352 0.200431 -0.229899 0.0117 0.993625 -0.112131 -0.517489 -0.854829 0.038366 0.693188 -0.373151 0.616642 0.792325 -0.485815 0.369058 0.152804 -0.957058 0.246358 0.82815 0.525227 0.195715 0.321631 0.928458 0.185796 -0.126026 0.991852 -0.018607 -0.196693 0.943673 0.266068 -0.69282 0.623171 0.362849 0.677557 0.650398 -0.343365 0.71322 -0.676781 -0.182438 -0.002223 -0.972605 0.232456 -0.738629 -0.3476 0.577582 -0.514655 -0.415747 0.749856 -0.740131 -0.668573 -0.072221 0.338565 -0.93938 -0.054204 0.97583 -0.216497 -0.029758 -0.888908 0.422434 0.177181 -0.858831 -0.470538 -0.202492 0.452023 -0.85959 -0.238288 0.978091 -0.177702 0.108445 -0.62432 0.497838 0.601981 0.854885 0.007926 0.518757 0.571126 0.671049 0.472768 -0.230288 0.855805 0.463212 -0.691094 0.144869 0.708098 0.065612 0.778664 0.624001 -0.604546 -0.723027 0.3343 -0.49162 -0.470398 0.732827 0.193519 -0.914644 0.354931 0.151682 -0.661873 0.734109 0.865529 -0.46589 0.183862 0.805631 -0.251347 0.536455 -0.827676 -0.036658 0.560007 -0.322381 0.463853 0.825173 -0.783025 0.534052 0.318842 0.336927 0.755886 0.561352 -0.208873 0.925259 0.316651 -0.558379 0.826251 0.074307 -0.982266 -0.062001 0.176947 -0.898335 0.438868 -0.019709 -0.991317 -0.073955 -0.108725 -0.706338 -0.615454 0.349719 -0.828376 -0.560147 0.005306 -0.439817 -0.890387 0.117354 -0.260595 -0.445474 0.85653 -0.081084 -0.926741 0.366848 0.43969 -0.663835 0.604976 0.500755 0.066737 0.863012 0.836606 0.425422 0.345118 0.423136 0.890214 0.168746 0.991317 0.073955 0.108725 0.828376 0.560147 -0.005306 0.441286 0.889804 -0.116251 -0.069648 0.997316 -0.022585 -0.556319 0.805312 -0.204894 0.298098 0.930117 -0.214524 -0.118414 0.98117 -0.152588 -0.32633 0.903198 -0.278821 -0.237427 0.845204 -0.47881 -0.460931 0.642173 -0.612501 -0.888685 0.278174 -0.364497 -0.836606 -0.425422 -0.345118 -0.500754 -0.066736 -0.863013 -0.336927 -0.755887 -0.561351 -0.423136 -0.890214 -0.168746 0.069727 -0.997254 0.024969 0.208872 -0.925259 -0.31665 0.558379 -0.826251 -0.074307 0.544162 -0.811658 0.212367 0.888685 -0.278174 0.364497 0.898335 -0.438868 0.019709 0.827676 0.036659 -0.560008 0.263904 0.4361 -0.860332 0.703719 0.617578 -0.35125 0.359557 0.766918 -0.531559 0.439854 0.823088 -0.359243 0.322382 -0.463851 -0.825174 0.783025 -0.534052 -0.318842 0.982266 0.062001 -0.176947 0.215274 -0.676093 0.704667 0.781798 -0.452749 0.428732 0.394301 0.026274 0.918606 0.977257 -0.164027 0.1344 0.889853 0.229573 0.394283 0.438624 0.654827 0.615476 -0.185712 -0.355415 0.916074 -0.070248 0.592073 0.802817 -0.222889 -0.892745 0.391569 -0.432974 -0.827742 0.356898 -0.49702 -0.863153 0.089098 0.314312 -0.920671 0.231457 -0.153009 -0.988039 0.019186 0.340299 -0.938623 -0.056419 0.760463 -0.647838 0.044748 0.969494 -0.196762 -0.146171 0.941369 0.337017 0.01562 0.833664 -0.212392 -0.509798 0.862612 0.38786 -0.324753 0.660112 0.743662 -0.10592 0.614123 0.76959 0.174882 -0.02595 0.949454 0.31283 0.192258 0.980766 -0.033694 -0.272119 0.960899 0.051231 -0.410199 0.888668 0.204953 -0.546996 0.832181 -0.090939 -0.741618 -0.66997 -0.033806 -0.581304 -0.794271 -0.176688 -0.896452 0.387413 -0.21514 -0.97678 0.087615 -0.19551 -0.948824 -0.298644 -0.102691 -0.68103 -0.677232 -0.278487 -0.56298 -0.608315 -0.55947 -0.372439 -0.750086 -0.546498 -0.001178 -0.955309 -0.295606 0.635497 -0.719121 -0.281085 0.254403 -0.58124 -0.772942 -0.220714 0.728521 -0.648493 -0.314166 0.920635 -0.2318 0.347067 0.861001 -0.371782 -0.735374 0.546853 -0.40022 -0.378639 0.016555 -0.925397 -0.668108 0.202322 -0.71603 -0.824326 0.379486 -0.420093 0.431671 0.301803 -0.850044 0.002057 0.16331 0.986573 0.74621 0.15588 0.647203 0.186915 0.80056 0.569356 0.964138 0.102156 0.244952 0.720452 0.641203 0.264212 0.245084 0.95222 0.182237 -0.610879 0.510301 0.605327 -0.327482 0.911936 0.24724 -0.800055 0.563097 0.206963 -0.596839 -0.360643 0.716742 -0.95109 0.014193 0.308588 -0.770765 -0.572851 0.278861 0.280878 -0.601354 0.747985 -0.257245 -0.890933 0.374251 0.360464 -0.883795 0.298281 0.816353 -0.463276 0.344881 0.994197 0.084444 0.066647 0.908954 0.416147 -0.024973 0.545673 0.836875 -0.043379 -0.051489 0.997357 -0.051267 0.770765 0.572851 -0.27886 0.257246 0.890933 -0.374251 -0.360464 0.883795 -0.298282 -0.6314 0.774457 -0.039375 -0.966087 0.257909 -0.012619 -0.818031 0.462994 -0.341266 -0.96724 -0.096833 -0.234668 -0.934277 -0.356048 0.018869 -0.545673 -0.836875 0.043379 -0.720451 -0.641203 -0.264212 -0.245084 -0.95222 -0.182237 0.051489 -0.997357 0.051267 0.612051 -0.789541 0.044927 0.33293 -0.911347 -0.242083 0.677169 -0.699073 -0.229651 0.712783 -0.697643 -0.072349 0.906347 -0.405853 0.11755 -0.025794 -0.152493 -0.987968 -0.280879 0.601354 -0.747985 0.585742 0.393335 -0.708657 -0.74621 -0.155881 -0.647203 -0.193197 -0.801015 -0.566612 0.110483 -0.561793 -0.819867 0.183865 -0.82968 -0.527091 0.808129 -0.49396 -0.320827 0.412878 -0.825949 -0.383849 0.595917 0.00881 -0.802998 0.904507 -0.08391 -0.418122 0.914366 -0.031221 -0.403683 0.947339 0.272946 -0.167479 0.910017 0.269764 -0.314794</float_array> <technique_common> <accessor source="#Autumn-mesh-normals-array" count="249" stride="3"> <param name="X" type="float"/> <param name="Y" type="float"/> <param name="Z" type="float"/> </accessor> </technique_common> </source> <source id="Autumn-mesh-map-channel1"> <float_array id="Autumn-mesh-map-channel1-array" count="1017">0.305152 0.292438 0 0.132458 0.292311 0 0.1635 0.288813 0 0.196451 0.285856 0 0.268038 0.272305 0 0.305084 0.402962 0 0.341439 0.412955 0 0.268117 0.401517 0 0.30517 0.347419 0 0.132234 0.33673 0 0.26834 0.332484 0 0.33339 0.41826 0 0.369198 0.4317 0 0.296933 0.417325 0 0.229281 0.414348 0 0.163596 0.400209 0 0.196472 0.398783 0 0.147523 0.278146 0 0.327961 0.279431 0 0.285522 0.270534 0 0.317722 0.543443 0 0.226751 0.522763 0 0.246185 0.519467 0 0.01252 0.269333 0 0.033129 0.273139 0 0.295788 0.542046 0 0.267659 0.560154 0 0.281636 0.560397 0 0.247811 0.557478 0 0.230366 0.5642 0 0.313777 0.573881 0 0.049765 0.270399 0 0.067396 0.271728 0 0.100757 0.294701 0 0.104881 0.28344 0 0.088551 0.274708 0 0.083708 0.285836 0 0.035331 0.314554 0 0.2924 0.568647 0 0.280107 0.568798 0 0.0768 0.325837 0 0.357179 0.510384 0 0.006175 0.408781 0 0.180249 0.278797 0 0.10196 0.39151 0 0.163777 0.33948 0 0.034989 0.389055 0 0.067192 0.381473 0 0.079489 0.471585 0 0.148017 0.436998 0 0.222848 0.503246 0 0.246863 0.514626 0 0.296349 0.515227 0 0.120833 0.430875 0 0.116326 0.474318 0 0.196529 0.339266 0 0.25425 0.271026 0 0.228998 0.333715 0 0.21816 0.276681 0 0.228975 0.293163 0 0.341363 0.292314 0 0.132221 0.413318 0 0.341407 0.337814 0 0.101292 0.470925 0 0.026939 0.492566 0 0.138019 0.482884 0 0.917074 0.769989 0 0.403102 0.50512 0 0.365336 0.674874 0 0.464518 0.639779 0 0.393565 0.602776 0 0.749095 0.602776 0 0.678141 0.639779 0 0.573237 0.674874 0 0.464518 0.565774 0 0.362284 0.526101 0 0.678141 0.565774 0 0.610621 0.603158 0 0.53509 0.603158 0 0.422938 0.550515 0 0.412257 0.674874 0 0.382502 0.639779 0 0.340541 0.639779 0 0.730784 0.674874 0 0.755961 0.714599 0 0.426371 0.626427 0 0.353892 0.602776 0 0.714762 0.626427 0 0.653727 0.674874 0 0.519831 0.674874 0 0.464518 0.602776 0 0.382502 0.566155 0 0.714381 0.578744 0 0.64152 0.626427 0 0.54806 0.639779 0 0.500376 0.626427 0 0.426371 0.578744 0 0.76092 0.565774 0 0.678141 0.602776 0 0.596507 0.639779 0 0.429286 0.345776 0 0.730021 0.526101 0 0.64152 0.578744 0 0.573619 0.603158 0 0.500376 0.578744 0 0.522883 0.526101 0 0.548442 0.4873 0 0.627024 0.526101 0 0.596888 0.566155 0 0.547679 0.566155 0 0.455744 0.526101 0 0.396998 0.526101 0 0.403865 0.545556 0 0.429805 0.54937 0 0.779994 0.674874 0 0.779612 0.526101 0 0.760539 0.639779 0 0.788768 0.602776 0 0.339015 0.565774 0 0.447352 0.5467 0 0.392861 0.32403 0 0.553946 0.419062 0 0.440867 0.674874 0 0.702174 0.674874 0 0.678523 0.714599 0 0.59727 0.714599 0 0.388606 0.714599 0 0.545771 0.714599 0 0.464518 0.714599 0 0.619014 0.674874 0 0.485881 0.674874 0 0.446971 0.505883 0 0.388224 0.4873 0 0.464137 0.4873 0 0.600703 0.4873 0 0.679286 0.4873 0 0.266679 0.577798 0 0.644105 0.445383 0 0.416257 0.445002 0 0.422559 0.395792 0 0.494275 0.395792 0 0.608118 0.395792 0 0.679981 0.395792 0 0.378278 0.355156 0 0.458417 0.345499 0 0.554328 0.370909 0 0.644105 0.34545 0 0.507627 0.445383 0 0.48245 0.479201 0 0.442396 0.419062 0 0.477872 0.419062 0 0.576835 0.445383 0 0.690281 0.445383 0 0.397558 0.411208 0 0.458417 0.395792 0 0.522284 0.411433 0 0.585021 0.412577 0 0.663398 0.419062 0 0.439725 0.3714 0 0.522284 0.378626 0 0.553946 0.395792 0 0.626154 0.419062 0 0.706469 0.413721 0 0.397532 0.378783 0 0.475583 0.3714 0 0.643742 0.395792 0 0.706518 0.380534 0 0.507245 0.34545 0 0.585051 0.378626 0 0.626536 0.3714 0 0.663398 0.3714 0 0.69257 0.345499 0 0.6693 0.316755 0 0.599723 0.345499 0 0.40504 0.350128 0 0.40927 0.34111 0 0.907983 0.754018 0 0.424872 0.355766 0 0.41299 0.358513 0 0.45987 0.445383 0 0.55242 0.479302 0 0.624756 0.479378 0 0.438764 0.479201 0 0.666248 0.479538 0 0.395775 0.479181 0 0.726521 0.354594 0 0.941982 0.739697 0 0.430331 0.314557 0 0.621796 0.316755 0 0.952286 0.754009 0 0.348242 0.892738 0 0.413078 0.781504 0 0.380574 0.841416 0 0.960205 0.824191 0 0.415696 0.813232 0 0.959052 0.794522 0 0.418521 0.794388 0 0.472111 0.993213 0 0.408467 0.892865 0 0.533576 0.893038 0 0.654983 0.893055 0 0.775669 0.892957 0 0.900117 0.892944 0 0.467563 0.794399 0 0.596151 0.7944 0 0.713969 0.794401 0 0.843018 0.794401 0 0.532651 0.708174 0 0.441422 0.948437 0 0.500924 0.948444 0 0.624629 0.948446 0 0.7462 0.948446 0 0.865518 0.948449 0 0.470548 0.892965 0 0.592499 0.892946 0 0.713533 0.892866 0 0.8361 0.892951 0 0.959075 0.892982 0 0.438359 0.841326 0 0.563538 0.841366 0 0.686612 0.841436 0 0.808546 0.841104 0 0.931439 0.841186 0 0.501785 0.841366 0 0.626975 0.841316 0 0.742984 0.841498 0 0.870033 0.84121 0 0.531797 0.794398 0 0.658218 0.7944 0 0.778598 0.794401 0 0.901682 0.79432 0 0.501665 0.754013 0 0.562611 0.754012 0 0.688568 0.754012 0 0.808836 0.754012 0 0.594376 0.993213 0 0.717359 0.993214 0 0.836766 0.993215 0 0.959005 0.993215 0 0.988111 0.841233 0 0.989973 0.948449 0 0.381455 0.948752 0 0.565176 0.948439 0 0.686733 0.948439 0 0.806095 0.948448 0 0.928363 0.948447 0 0.660064 0.708122 0 0.776932 0.708106 0 0.89726 0.710583 0 0.554328 0.316755 0 0.479398 0.316755 0 0.420703 0.338847 0 0.602393 0.445383 0 0.575309 0.345499 0 0.435757 0.753958 0 0.627362 0.754012 0 0.744419 0.754013 0 0.871126 0.754017 0 0.943259 0.769804 0 0.917046 0.739083 0 0.989367 0.754012 0 0.960894 0.710433 0 0.154977 0.927562 0.634037 0.150133 0.971926 0.303748 0.089296 0.955569 0.342293 0.110492 0.919204 0.67861 0.044578 0.910879 0.358042 0.081035 0.889896 0.707088 0.027331 0.849832 0.376783 0.070528 0.860289 0.709755 0.043586 0.788785 0.377554 0.089651 0.804061 0.709643 0.089071 0.744096 0.348136 0.110483 0.780519 0.679188 0.150133 0.727738 0.303645 0.150567 0.769792 0.649023 0.212523 0.744096 0.2503 0.190738 0.780519 0.628437 0.259131 0.788785 0.202078 0.22604 0.814555 0.497611 0.275225 0.849832 0.207075 0.23114 0.849862 0.607755 0.259131 0.910879 0.202078 0.220496 0.889896 0.607154 0.212523 0.955568 0.2503 0.190858 0.919204 0.619259 0.149856 0.99792 0.00076 0.076267 0.97808 0.000848 0.022386 0.923876 0.000817 0.00228 0.849832 0.000902 0.022004 0.775789 0.000902 0.076265 0.721585 0.000841 0.149855 0.701745 0.00076 0.223939 0.721585 0.000651 0.278731 0.775789 0.000499 0.298455 0.849832 0.000499 0.278731 0.923876 0.000499 0.22394 0.97808 0.000651 0.120512 0.877997 0.789286 0.113012 0.838771 0.797638 0.1396 0.816702 0.789967 0.165522 0.817524 0.769324 0.176156 0.82791 0.763164 0.186346 0.866903 0.755412 0.178399 0.880874 0.755412 0.160756 0.88893 0.765284 0.112035 0.859628 0.999501 0.14031 0.887232 0.96979 0.119711 0.825906 0.923054 0.153759 0.813351 0.881059 0.185869 0.841715 0.982121 0.330516 0.514352 0 0.255172 0.428609 0 0.207667 0.425678 0 0.210391 0.445711 0 0.235698 0.445484 0 0.235262 0.425456 0 0.188624 0.436087 0 0.200559 0.503669 0 0.174586 0.410752 0 0.15244 0.483909 0 0.063495 0.317156 0 0.048984 0.314951 0 0.018762 0.312148 0 0.089701 0.329168 0 0.122534 0.288675 0 0.103722 0.329928 0 0.207625 0.525397 0 0.213818 0.571245 0 0.757869 0.4873 0 0.574382 0.526101 0 0.703318 0.526101 0 0.491984 0.526101 0 0.65449 0.526101 0 0.527625 0.445383 0 0.530677 0.345499 0 0.206607 0.276618 0 0.276122 0.518533 0 0.049555 0.477626 0</float_array> <technique_common> <accessor source="#Autumn-mesh-map-channel1-array" count="339" stride="3"> <param name="S" type="float"/> <param name="T" type="float"/> <param name="P" type="float"/> </accessor> </technique_common> </source> <vertices id="Autumn-mesh-vertices"> <input semantic="POSITION" source="#Autumn-mesh-positions"/> </vertices> <triangles material="texture" count="412"> <input semantic="VERTEX" source="#Autumn-mesh-vertices" offset="0"/> <input semantic="NORMAL" source="#Autumn-mesh-normals" offset="1"/> <input semantic="TEXCOORD" source="#Autumn-mesh-map-channel1" offset="2" set="1"/> <p>12 0 264 0 1 265 64 2 262 64 2 262 11 3 263 12 0 264 13 4 266 1 5 267 0 1 265 0 1 265 12 0 264 13 4 266 14 6 268 2 7 269 1 5 267 1 5 267 13 4 266 14 6 268 15 8 270 3 9 271 2 7 269 2 7 269 14 6 268 15 8 270 16 10 272 4 11 273 3 9 271 3 9 271 15 8 270 16 10 272 17 12 274 5 13 275 4 11 273 4 11 273 16 10 272 17 12 274 18 14 276 6 15 277 5 13 275 5 13 275 17 12 274 18 14 276 19 16 278 7 17 279 6 15 277 6 15 277 18 14 276 19 16 278 20 18 280 8 19 281 7 17 279 7 17 279 19 16 278 20 18 280 21 20 282 9 21 283 8 19 281 8 19 281 20 18 280 21 20 282 22 22 284 10 23 285 9 21 283 9 21 283 21 20 282 22 22 284 11 3 263 64 2 262 10 23 285 10 23 285 22 22 284 11 3 263 24 24 287 12 0 264 11 3 263 11 3 263 23 25 286 24 24 287 25 26 288 13 4 266 12 0 264 12 0 264 24 24 287 25 26 288 26 27 289 14 6 268 13 4 266 13 4 266 25 26 288 26 27 289 27 28 290 15 8 270 14 6 268 14 6 268 26 27 289 27 28 290 28 29 291 16 10 272 15 8 270 15 8 270 27 28 290 28 29 291 29 30 292 17 12 274 16 10 272 16 10 272 28 29 291 29 30 292 30 31 293 18 14 276 17 12 274 17 12 274 29 30 292 30 31 293 31 32 294 19 16 278 18 14 276 18 14 276 30 31 293 31 32 294 32 33 295 20 18 280 19 16 278 19 16 278 31 32 294 32 33 295 33 34 296 21 20 282 20 18 280 20 18 280 32 33 295 33 34 296 34 35 297 22 22 284 21 20 282 21 20 282 33 34 296 34 35 297 23 25 286 11 3 263 22 22 284 22 22 284 34 35 297 23 25 286 0 1 265 65 36 298 64 2 262 0 1 265 1 5 267 65 36 298 1 5 267 2 7 269 65 36 298 2 7 269 3 9 271 63 37 299 3 9 271 4 11 273 67 38 300 4 11 273 5 13 275 67 38 300 5 13 275 6 15 277 208 39 301 7 17 279 72 40 302 208 39 301 208 39 301 6 15 277 7 17 279 7 17 279 8 19 281 70 41 303 8 19 281 9 21 283 39 42 304 39 42 304 70 41 303 8 19 281 9 21 283 10 23 285 39 42 304 39 42 304 10 23 285 64 2 262 64 2 262 66 43 305 39 42 304 65 44 18 43 45 8 35 46 0 63 47 17 44 48 9 36 49 1 67 50 43 69 51 55 68 52 45 72 53 58 71 54 57 208 55 336 70 56 56 39 57 4 45 58 10 66 59 19 43 45 8 45 58 10 44 48 62 41 60 6 43 45 8 45 58 10 42 61 7 71 54 57 43 45 8 40 62 5 42 61 7 40 62 11 46 63 41 50 64 311 41 60 317 60 65 314 46 63 318 61 66 315 47 67 50 60 65 314 48 68 51 61 66 315 209 69 337 42 61 13 49 70 52 209 69 337 40 62 11 50 64 311 49 70 52 50 64 25 46 63 20 122 71 30 122 71 30 123 72 38 50 64 25 46 63 327 47 67 21 121 73 29 121 73 29 122 71 328 46 63 327 47 67 21 48 68 22 121 73 29 48 68 22 52 74 26 207 75 136 207 75 136 120 76 28 48 68 22 124 77 39 207 75 136 52 74 26 52 74 26 53 78 27 124 77 39 123 72 38 124 77 39 53 78 27 53 78 27 50 64 25 123 72 38 203 79 321 50 64 32 54 80 36 54 80 36 202 81 40 203 79 321 203 79 321 204 82 322 49 70 31 49 70 31 50 64 32 203 79 321 204 82 322 119 83 37 209 69 24 209 69 24 49 70 31 204 82 322 205 84 323 48 68 23 209 69 24 209 69 24 119 83 37 205 84 323 206 85 324 51 86 33 48 68 325 48 68 325 205 84 326 206 85 324 202 81 40 54 80 36 51 86 33 51 86 33 206 85 324 202 81 40 48 68 325 51 86 33 52 74 34 50 64 32 53 78 35 54 80 36 52 74 34 51 86 33 54 80 36 54 80 36 53 78 35 52 74 34 44 48 9 68 52 45 56 87 15 68 52 45 69 51 55 57 88 16 57 88 16 71 54 57 55 89 14 117 90 64 41 60 42 210 91 338 58 92 48 210 91 338 56 87 46 56 87 46 57 88 47 58 92 48 55 89 44 116 93 63 57 88 47 41 60 317 59 94 313 60 65 314 55 89 312 61 66 315 62 95 316 60 65 314 59 94 313 61 66 315 62 95 53 106 96 54 116 93 63 116 93 63 55 89 44 62 95 53 106 96 54 62 95 53 59 94 49 118 97 65 59 94 49 117 90 320 2 98 269 36 49 306 65 44 298 63 47 299 36 49 306 2 98 269 65 44 18 36 49 60 44 48 62 63 47 17 68 52 45 44 48 9 65 44 298 35 46 307 64 99 262 64 99 262 35 46 307 66 59 305 66 59 19 35 46 0 43 45 8 65 44 18 44 48 62 43 45 8 67 50 300 37 100 308 3 101 271 68 52 45 37 100 2 67 50 43 63 47 17 37 100 2 68 52 45 3 101 271 37 100 308 63 47 299 208 55 301 38 102 309 5 103 275 69 51 55 38 102 3 208 55 336 67 50 43 38 102 3 69 51 55 5 103 275 38 102 309 67 50 300 70 56 303 73 104 310 7 105 279 71 54 57 73 104 59 70 56 56 72 53 58 73 104 59 71 54 57 7 105 279 73 104 310 72 53 302 74 106 68 86 107 80 87 108 81 86 107 122 75 109 69 91 110 85 86 107 80 91 110 85 87 108 81 87 108 81 91 110 85 76 111 70 74 106 68 87 108 81 88 112 82 87 108 81 76 111 70 92 113 86 87 108 81 92 113 86 88 112 82 88 112 116 92 113 117 77 114 71 74 106 114 88 112 116 89 115 83 88 112 116 77 114 71 93 116 87 88 112 116 93 116 87 89 115 83 89 115 123 93 116 87 78 117 72 74 106 114 89 115 83 90 118 84 89 115 123 78 117 72 94 119 88 89 115 123 94 119 88 90 118 124 90 118 125 94 119 129 79 120 73 74 106 68 90 118 126 86 107 80 90 118 127 79 120 73 95 121 89 90 118 128 95 121 130 86 107 122 86 107 122 95 121 130 75 109 69 75 109 69 101 122 95 96 123 90 101 122 95 84 124 78 110 125 104 101 122 95 110 125 104 96 123 90 96 123 90 110 125 104 80 126 74 76 111 70 102 127 96 97 128 91 80 126 74 106 129 119 118 130 113 118 130 113 102 127 96 80 126 74 102 127 96 118 130 79 117 131 112 117 131 112 97 128 91 102 127 96 97 128 91 117 131 112 210 132 111 210 132 111 81 133 75 97 128 91 77 114 71 103 134 97 98 135 92 103 134 97 81 133 115 107 136 101 103 134 97 107 136 101 98 135 92 98 135 92 107 136 331 82 137 76 78 117 72 104 138 98 99 139 93 104 138 98 82 137 76 108 140 102 104 138 98 108 140 102 99 139 93 99 139 93 108 140 102 83 141 77 79 120 73 105 142 99 100 143 94 105 142 99 83 141 77 109 144 103 105 142 99 109 144 103 100 143 94 100 143 94 109 144 103 84 124 78 80 126 74 102 127 96 96 123 90 102 127 96 76 111 70 91 110 85 102 127 96 91 110 85 96 123 90 96 123 90 91 110 85 75 109 69 81 133 75 103 134 118 97 128 91 103 134 97 77 114 71 92 113 117 103 134 118 92 113 86 97 128 91 97 128 91 92 113 86 76 111 70 82 137 76 104 138 98 98 135 92 104 138 98 78 117 72 93 116 87 104 138 98 93 116 87 98 135 92 98 135 92 93 116 87 77 114 71 83 141 77 105 142 99 99 139 93 105 142 99 79 120 73 94 119 129 105 142 99 94 119 129 99 139 93 99 139 93 94 119 88 78 117 72 84 124 78 101 122 95 100 143 94 101 122 95 75 109 69 95 121 130 101 122 95 95 121 89 100 143 94 100 143 94 95 121 89 79 120 73 85 145 330 112 146 106 111 147 105 81 133 75 210 132 111 58 148 67 58 148 67 112 146 132 81 133 75 112 146 133 58 148 131 116 149 110 116 149 110 111 147 332 112 146 133 111 147 332 116 149 110 106 129 119 106 129 119 80 126 74 111 147 332 85 145 330 113 150 107 112 146 134 113 150 333 82 137 76 107 136 331 113 150 333 107 136 331 112 146 135 112 146 329 107 136 101 81 133 115 85 145 330 114 151 108 113 150 107 114 151 108 83 141 77 108 140 102 114 151 108 108 140 102 113 150 107 113 150 333 108 140 102 82 137 76 85 145 330 115 152 109 114 151 108 115 152 109 84 124 78 109 144 103 115 152 109 109 144 103 114 151 108 114 151 108 109 144 103 83 141 77 85 145 330 111 147 105 115 152 109 111 147 332 80 126 74 110 125 104 111 147 105 110 125 104 115 152 109 115 152 109 110 125 104 84 124 78 125 153 179 137 154 147 138 155 148 137 154 334 126 156 121 141 157 151 137 154 334 141 157 151 138 155 180 138 155 181 141 157 252 127 158 137 125 153 179 138 155 182 128 159 138 138 155 183 127 158 137 142 160 152 138 155 182 142 160 184 128 159 138 125 153 179 128 159 138 139 161 149 128 159 138 143 162 153 139 161 149 139 161 149 143 162 153 129 163 139 125 153 179 139 161 149 140 164 150 139 161 149 129 163 139 144 165 154 139 161 149 144 165 154 140 164 150 140 164 150 144 165 154 130 166 140 125 153 179 140 164 150 137 154 147 140 164 150 130 166 140 145 167 155 140 164 150 145 167 155 137 154 147 137 154 334 145 167 155 126 156 121 126 156 121 150 168 160 146 169 156 150 168 160 135 170 145 158 171 168 150 168 160 158 171 168 146 169 156 146 169 156 158 171 168 131 172 141 127 158 137 151 173 161 147 174 157 151 173 161 131 172 141 155 175 165 151 173 161 155 175 165 147 174 157 147 174 157 155 175 165 132 176 142 152 177 162 132 176 142 156 178 166 129 163 139 153 179 163 148 180 158 133 181 143 202 182 174 206 183 178 206 183 178 153 179 163 133 181 143 153 179 163 206 183 178 205 184 177 205 184 177 148 180 158 153 179 163 148 180 158 205 184 177 119 185 100 119 185 100 134 186 144 148 180 158 130 166 140 154 187 164 149 188 159 154 187 164 134 186 144 157 189 167 154 187 164 157 189 167 149 188 159 149 188 159 157 189 335 135 170 145 131 172 141 151 173 161 146 169 156 151 173 161 127 158 137 141 157 252 151 173 161 141 157 252 146 169 156 146 169 156 141 157 151 126 156 121 132 176 142 152 177 162 147 174 157 152 177 162 142 160 152 147 174 157 147 174 157 142 160 152 127 158 137 153 179 163 129 163 139 143 162 153 134 186 144 154 187 164 148 180 158 154 187 164 130 166 140 144 165 154 154 187 164 144 165 154 148 180 158 148 180 158 144 165 154 129 163 139 135 170 145 150 168 160 149 188 159 150 168 160 126 156 121 145 167 155 150 168 160 145 167 155 149 188 159 149 188 159 145 167 155 130 166 140 136 190 146 160 191 170 159 192 169 160 191 170 132 176 142 155 175 165 160 191 170 155 175 165 159 192 169 159 192 169 155 175 165 131 172 141 136 190 146 161 193 171 160 191 170 161 193 171 133 181 185 156 178 166 161 193 171 156 178 166 160 191 170 160 191 170 156 178 166 132 176 142 136 190 146 162 194 172 161 193 171 134 186 144 119 185 100 204 195 251 204 195 251 162 194 187 134 186 144 162 194 187 204 195 251 203 196 175 203 196 175 161 193 120 162 194 187 161 193 120 203 196 175 202 182 174 202 182 174 133 181 143 161 193 120 136 190 146 163 197 173 162 194 188 163 197 253 135 170 145 157 189 335 163 197 253 157 189 335 162 194 249 162 194 250 157 189 167 134 186 144 136 190 146 159 192 169 163 197 173 159 192 169 131 172 141 158 171 168 159 192 169 158 171 168 163 197 173 163 197 253 158 171 168 135 170 145 164 198 197 175 199 208 176 200 209 175 199 208 165 201 198 180 202 213 175 199 208 180 202 213 176 200 209 176 200 209 180 202 213 166 203 199 164 198 235 176 200 242 177 204 210 176 200 242 166 203 199 181 205 214 176 200 242 181 205 214 177 204 210 177 204 210 181 205 214 167 206 200 164 198 236 177 204 243 178 207 211 177 204 243 167 206 200 182 208 215 177 204 243 182 208 215 178 207 211 178 207 211 182 208 215 168 209 201 164 198 237 178 207 244 179 210 212 178 207 244 168 209 201 183 211 216 178 207 244 183 211 216 179 210 212 179 210 212 183 211 216 169 212 202 164 198 238 179 210 245 175 199 240 179 210 245 169 212 202 184 213 217 179 210 245 184 213 217 175 199 240 175 199 208 184 213 241 165 201 198 165 201 198 142 214 192 185 215 218 166 203 199 190 216 223 186 217 219 190 216 223 170 218 203 194 219 227 190 216 223 194 219 227 186 217 219 186 217 219 194 219 227 171 220 204 167 206 200 191 221 224 187 222 220 191 221 224 171 220 204 195 223 228 191 221 224 195 223 228 187 222 220 187 222 220 195 223 228 172 224 205 168 209 201 192 225 225 188 226 221 192 225 225 172 224 205 196 227 229 192 225 225 196 227 229 188 226 221 188 226 221 196 227 229 173 228 206 169 212 202 193 229 226 189 230 222 193 229 226 173 228 206 197 231 230 193 229 226 197 231 230 189 230 222 189 230 222 197 231 230 153 232 195 170 218 203 190 216 223 185 215 218 190 216 223 166 203 199 180 202 213 190 216 223 180 202 213 185 215 218 185 215 218 180 202 213 165 201 198 171 220 204 191 221 224 186 217 219 191 221 224 167 206 200 181 205 214 191 221 224 181 205 214 186 217 219 186 217 219 181 205 214 166 203 199 172 224 205 192 225 225 187 222 220 192 225 225 168 209 201 182 208 215 192 225 225 182 208 215 187 222 220 187 222 220 182 208 215 167 206 200 173 228 206 193 229 226 188 226 221 193 229 226 169 212 202 183 211 216 193 229 226 183 211 216 188 226 221 188 226 221 183 211 216 168 209 201 153 232 195 143 233 193 189 230 222 128 234 190 165 201 198 184 213 241 128 234 239 184 213 217 189 230 222 189 230 222 184 213 217 169 212 202 174 235 207 199 236 232 198 237 231 199 236 232 171 220 204 194 219 227 199 236 232 194 219 227 198 237 231 198 237 231 194 219 227 170 218 203 174 235 246 200 238 233 199 236 255 200 238 233 172 224 205 195 223 228 200 238 233 195 223 228 199 236 255 199 236 255 195 223 228 171 220 204 174 235 247 201 239 234 200 238 256 201 239 234 173 228 206 196 227 229 201 239 234 196 227 229 200 238 256 200 238 256 196 227 229 172 224 205 174 235 248 122 240 259 121 241 176 121 241 176 201 239 257 174 235 248 207 242 258 153 232 195 197 231 230 197 231 230 120 243 66 207 242 258 201 239 257 121 241 176 120 243 66 120 243 66 197 231 230 201 239 257 201 239 257 197 231 230 173 228 206 198 237 261 123 244 186 122 240 259 122 240 259 174 235 248 198 237 261 207 242 258 124 245 189 133 246 260 133 246 260 153 232 195 207 242 258 185 215 218 152 247 194 156 248 196 156 248 196 170 218 203 185 215 218 156 248 196 133 246 191 198 237 254 198 237 254 170 218 203 156 248 196 124 245 189 123 244 186 198 237 261 198 237 261 133 246 260 124 245 189 143 233 193 128 234 239 189 230 222 152 247 194 185 215 218 142 214 192 165 201 198 128 234 190 142 214 192 71 54 57 69 51 55 208 55 336 45 58 10 71 54 57 70 56 56 45 58 10 39 57 4 66 59 19 42 61 7 55 89 14 71 54 57 42 61 7 45 58 10 43 45 8 41 60 6 40 62 5 43 45 8 56 87 15 41 60 61 44 48 9 57 88 16 56 87 15 68 52 45 57 88 16 69 51 55 71 54 57 116 93 63 58 92 48 57 88 47 61 66 315 55 89 312 209 69 337 209 69 337 55 89 312 42 61 13 49 70 52 42 61 13 40 62 11 40 62 11 41 60 12 46 63 41 59 94 49 41 60 319 117 90 320 41 60 42 56 87 46 210 91 338 60 65 314 47 67 50 46 63 318 59 94 313 62 95 316 61 66 315 61 66 315 48 68 51 47 67 50 48 68 22 120 76 28 121 73 29 59 94 49 118 97 65 106 96 54</p> </triangles> </mesh> </geometry> </library_geometries> <library_visual_scenes> <visual_scene id="Seasons.max" name="Seasons_max"> <node id="Autumn-node" name="Autumn" type="NODE"> <translate>0.00163 0 0</translate> <scale>0.112903 0.112903 0.043746</scale> <instance_geometry url="#Autumn-mesh"> <bind_material> <technique_common> <instance_material symbol="texture" target="#texture"> <bind_vertex_input semantic="CHANNEL1" input_semantic="TEXCOORD" input_set="1"/> </instance_material> </technique_common> </bind_material> </instance_geometry> </node> <node id="VisualSceneNode" type="NODE"> <instance_light url="#ambient-environment-light"/> </node> <extra> <technique profile="FCOLLADA"> <start_time>0</start_time> <end_time>3.33333</end_time> </technique> </extra> <extra> <technique profile="MAX3D"> <frame_rate>30</frame_rate> </technique> </extra> </visual_scene> </library_visual_scenes> <scene> <instance_visual_scene url="#Seasons.max"/> </scene> </COLLADA> ; public static var spring:XML = <COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1"> <asset> <contributor> <author>den</author> <authoring_tool>3dsMax 9 - Feeling ColladaMax v3.04C.</authoring_tool> <comments>ColladaMax Export Options: ExportNormals=1;ExportEPolyAsTriangles=1;ExportXRefs=0;ExportSelected=1;ExportTangents=0;ExportAnimations=0;SampleAnim=0;ExportAnimClip=0;BakeMatrices=0;ExportRelativePaths=1;AnimStart=0;AnimEnd=16000;</comments> <source_data>file:///G:/work/eclipse/Lab_PV3D/model/Seasons.max</source_data> </contributor> <created>2008-04-09T18:10:37Z</created> <modified>2008-04-09T18:10:38Z</modified> <unit meter="0.0254" name="inch"/> <up_axis>Z_UP</up_axis> </asset> <library_lights> <light id="ambient-environment-light" name="Ambient"> <technique_common> <ambient> <color>0.113725 0.14902 0.164706</color> </ambient> </technique_common> <extra> <technique profile="FCOLLADA"> <intensity>1</intensity> </technique> </extra> </light> </library_lights> <library_images> <image id="SpringTreeMap.png" name="SpringTreeMap_png"> <init_from>./SpringTreeMap.png</init_from> </image> </library_images> <library_materials> <material id="texture" name="texture"> <instance_effect url="#texture-fx"/> </material> </library_materials> <library_effects> <effect id="texture-fx" name="texture"> <profile_COMMON> <newparam sid="SpringTreeMap_png-surface"> <surface type="2D"> <init_from>SpringTreeMap.png</init_from> <format>A8R8G8B8</format> </surface> </newparam> <newparam sid="SpringTreeMap_png-sampler"> <sampler2D> <source>SpringTreeMap_png-surface</source> <wrap_s>WRAP</wrap_s> <wrap_t>WRAP</wrap_t> <minfilter>NONE</minfilter> <magfilter>NONE</magfilter> <mipfilter>NONE</mipfilter> </sampler2D> </newparam> <technique sid="common"> <blinn> <ambient> <color>0.588 0.588 0.588 1</color> </ambient> <diffuse> <texture texture="SpringTreeMap_png-sampler" texcoord="CHANNEL1"> <extra> <technique profile="MAYA"> <mirrorU>0</mirrorU> <mirrorV>0</mirrorV> <wrapU>1</wrapU> <wrapV>1</wrapV> <repeatU>1</repeatU> <repeatV>1</repeatV> <offsetU>0</offsetU> <offsetV>0</offsetV> </technique> <technique profile="MAX3D"> <amount>1</amount> </technique> </extra> </texture> </diffuse> <specular> <color>0.9 0.9 0.9 1</color> </specular> <shininess> <float>0.415939</float> </shininess> <reflective> <color>0 0 0 1</color> </reflective> <reflectivity> <float>1</float> </reflectivity> <transparent opaque="A_ONE"> <color>1 1 1 1</color> </transparent> <transparency> <float>1</float> </transparency> <index_of_refraction> <float>1</float> </index_of_refraction> </blinn> <extra> <technique profile="FCOLLADA"> <spec_level> <float>0</float> </spec_level> <emission_level> <float>0</float> </emission_level> </technique> </extra> </technique> </profile_COMMON> <extra> <technique profile="MAX3D"> <faceted>0</faceted> <double_sided>0</double_sided> <wireframe>0</wireframe> <face_map>0</face_map> </technique> </extra> </effect> </library_effects> <library_geometries> <geometry id="Spring-mesh" name="Spring"> <mesh> <source id="Spring-mesh-positions"> <float_array id="Spring-mesh-positions-array" count="474">-9.06549 15.8309 25.8697 -15.8299 9.13997 26.9648 -18.2429 2.38065 27.0673 -13.8514 -10.4564 27.063 -9.06736 -15.8309 25.8919 0.137714 -18.2799 24.7319 9.36285 -15.8309 23.9403 17.47 -8.06062 18.9095 18.6412 -0.000013 23.145 16.1967 9.13995 23.1219 9.39045 15.8309 23.5874 0.051073 27.8848 11.4547 -13.9252 24.1489 12.9369 -24.1985 13.9424 13.5425 -28.1609 0.000004 14.2632 -24.4266 -13.9424 14.2928 -13.9769 -24.1489 13.1616 0.051015 -27.8848 11.4507 14.3842 -24.1489 9.39937 25.0917 -13.9424 7.54506 28.7892 -0.000021 7.73723 25.0917 13.9424 7.54506 14.3843 24.1489 9.39938 0.000533 32.1986 -0.196413 -16.0941 27.8848 -0.19305 -27.8786 16.0993 -0.194225 -32.276 0.000004 -0.190961 -27.9621 -16.0993 -0.190956 -16.0945 -27.8848 -0.193325 0.000514 -32.1986 -0.196423 16.2036 -27.8848 -0.200624 28.1873 -16.0993 -0.206467 32.501 -0.000025 -0.206465 28.1873 16.0993 -0.206463 16.2036 27.8848 -0.200618 -1.95622 7.65424 37.0668 -6.96139 1.73914 38.2092 -5.9812 -5.89682 35.2696 1.15995 -8.14908 33.6547 5.37007 5.62083 28.823 -0.829426 5.43766 82.6931 -3.36062 1.68492 87.106 3.35133 4.60116 82.4435 -1.33636 5.87967 60.4543 -5.12325 1.97558 56.7557 3.91558 4.83979 54.7761 0.393164 5.75333 111.769 1.09581 3.4512 113.796 3.24704 3.24368 115.919 4.73226 6.93278 110.775 -4.93252 11.0619 142.485 -5.99008 10.8066 141.298 -6.75768 10.0538 143.42 -5.72777 9.01734 143.915 -4.49828 9.1983 144.449 2.61967 7.55255 112.61 11.9274 8.91648 134.5 11.868 7.89048 134.714 12.5068 7.3197 133.078 13.2338 7.83793 131.393 13.1715 8.8936 131.241 13.0615 8.30874 134.349 4.04707 5.65868 123.25 2.82519 5.73069 123.249 2.75147 7.72216 121.062 3.97982 7.60926 121.122 -7.2007 16.7085 149.846 -7.93114 16.4451 150.394 -7.76818 16.3448 151.494 -7.31861 16.4189 151.768 -7.03486 16.6008 150.943 -4.54416 10.3793 145.035 -7.11655 8.36626 160.086 -7.55571 8.22465 159.909 -7.90478 8.52767 160.02 -7.81469 8.97228 160.31 -7.37539 9.11351 160.508 -7.02632 8.81049 160.396 -6.6805 10.4155 147.295 -6.70293 11.0483 146.722 -5.7058 10.5126 147.77 -7.6474 16.627 149.57 -7.48301 16.8557 150.855 -7.59044 8.64686 161.093 4.35279 0.023148 86.8491 -2.65778 -1.7836 81.4571 1.91378 -2.76955 80.509 -1.73653 -12.2399 108.193 -3.44998 -11.7014 108.289 -1.25903 -1.11829 99.696 -0.593492 1.03549 100.559 2.51219 0.261141 100.236 1.99775 -1.88099 99.3897 -3.08253 -21.0095 113.319 -3.37744 -21.0351 115.123 -4.1256 -20.9539 115.38 -4.28394 -20.8213 112.029 -2.78126 -9.93431 115.227 -3.98042 -11.2747 114.194 -1.9028 -11.8468 133.323 -1.35851 -11.3221 133.145 -1.54452 -10.5907 132.934 -2.27483 -10.384 132.9 -2.81912 -10.9086 133.078 -2.08401 -11.1054 134.12 -3.53578 -20.9026 111.772 -3.83069 -21.3667 113.576 -3.3224 -13.4211 116.741 -3.09157 -12.6991 118.089 -1.70338 -13.0507 117.978 -2.03017 -13.7432 116.596 -6.39839 -2.01436 30.4468 1.15038 17.7391 24.1557 -4.71425 4.4743 30.1256 1.94803 6.72127 29.2027 -1.84956 -5.85782 30.1518 -3.43447 -3.16822 58.1211 2.81563 -5.67904 29.358 1.36203 -4.25701 57.9327 6.3659 2.93029 28.823 5.60436 -0.304009 56.1415 4.61751 -3.89828 29.1211 6.96011 -1.98199 37.5409 5.4349 4.63064 112.802 -1.03165 -10.4375 115.075 -0.857954 -11.8624 113.262 -4.57885 -20.847 113.833 -2.6331 -11.64 133.289 12.4264 9.25213 132.581 -5.73478 11.1417 147.196 -0.652412 -7.83715 90.7651 4.33138 -7.84806 99.2963 -2.85438 -12.3085 99.295 2.12939 -12.3194 107.826 -3.5372 5.08255 98.9464 -1.24569 -0.413075 100.389 -1.37964 6.52993 112.848 0.911842 1.0343 114.291 -0.633255 11.5201 145.802 -1.12128 7.18228 135.252 -4.48127 8.61719 154.938 -4.96929 4.27935 144.388 8.20995 4.50974 113.733 7.6154 10.3886 116.113 12.6469 4.33005 124.071 12.0524 10.2089 126.451 -6.67375 19.6443 144.035 -11.1436 15.6745 144.452 -5.39003 18.4316 158.781 -9.85987 14.4618 159.198 7.4572 2.78236 82.7158 6.04076 5.38987 69.3153 3.10487 5.84671 89.7516 1.68842 8.45422 76.3512 -1.5322 -18.1458 121.928 -0.655121 -18.1345 106.661 0.498543 -12.2693 107.131 -0.378529 -12.2806 122.399</float_array> <technique_common> <accessor source="#Spring-mesh-positions-array" count="158" stride="3"> <param name="X" type="float"/> <param name="Y" type="float"/> <param name="Z" type="float"/> </accessor> </technique_common> </source> <source id="Spring-mesh-normals"> <float_array id="Spring-mesh-normals-array" count="513">-0.411233 0.787561 0.458949 -0.200023 0.597539 0.77649 0.093297 0.657154 0.74796 0.036877 0.881409 0.470911 -0.766237 0.472152 0.435836 -0.484342 0.356837 0.798799 -0.896737 0.010137 0.442448 -0.625222 0.037251 0.779557 -0.762887 -0.455283 0.459044 -0.472275 -0.362714 0.803365 -0.408933 -0.790088 0.456656 -0.239037 -0.583421 0.776196 0.047133 -0.883099 0.466813 0.074677 -0.665368 0.742771 0.474971 -0.739222 0.477444 0.449196 -0.471319 0.759 0.759818 -0.401189 0.511589 0.665155 -0.314466 0.677259 0.867687 -0.012109 0.496963 0.626097 -0.155949 0.763992 0.76597 0.42808 0.479622 0.607816 0.327678 0.723316 0.473735 0.746811 0.466744 0.363462 0.566221 0.73979 -0.466804 0.824188 0.320637 0.010283 0.93356 0.358274 -0.822958 0.482204 0.300365 -0.960105 0.007635 0.279534 -0.831388 -0.482863 0.275023 -0.469398 -0.830956 0.298625 0.008479 -0.941432 0.337097 0.465786 -0.797426 0.383608 0.785006 -0.450121 0.425625 0.905573 -0.00093 0.424189 0.774729 0.458107 0.435813 0.458625 0.790848 0.405243 -0.086835 0.278566 0.956483 -0.309004 -0.106028 0.945132 -0.047789 -0.362911 0.930598 0.434249 -0.296684 0.850533 0.490634 -0.392998 0.777709 0.427902 0.043179 0.902793 0.329657 0.293029 0.897475 0.2321 0.418928 0.877855 -0.64171 0.745163 0.181497 -0.308138 0.950394 0.042443 -0.31174 0.935806 0.164579 -0.874736 -0.25086 0.414615 -0.972281 0.222506 0.071835 -0.94965 0.238289 0.203428 -0.371432 -0.868954 0.327044 0.264325 -0.961725 0.072237 -0.672537 -0.735212 0.084602 0.845189 -0.520322 0.122151 0.970114 -0.235672 0.05777 0.887655 0.433987 0.154027 0.67386 0.737098 0.050977 0.708098 0.703487 0.060855 0.652828 0.717332 0.243412 -0.965871 0.258098 0.021897 0.696881 0.716984 -0.017061 0.97583 -0.216498 -0.029758 -0.383247 0.923639 -0.003561 -0.940757 0.338191 -0.024553 -0.194353 0.971616 -0.134869 -0.762827 -0.454004 0.460409 0.478796 -0.784 0.395092 -0.650657 -0.754983 0.081526 0.142856 -0.983175 0.113841 0.881406 -0.456853 -0.120042 0.674238 0.719561 -0.166235 -0.617822 0.716013 -0.324994 -0.941054 -0.300279 -0.155727 -0.353942 -0.935149 0.014865 0.696561 -0.379413 0.608974 0.688469 -0.68728 0.231638 0.960525 0.22162 0.168157 0.527774 0.835439 -0.153287 0.3317 0.925712 0.181747 -0.199312 0.94324 0.265654 0.20294 0.97391 0.101561 0.779544 0.599144 -0.182587 0.894435 -0.432721 -0.112863 0.368938 -0.902171 0.223544 -0.240509 -0.425721 0.872306 -0.508436 -0.423433 0.749799 -0.202174 0.691918 0.693091 0.792305 0.025978 0.609571 -0.959633 0.281197 0.005663 -0.153298 0.974083 0.166318 -0.510572 0.737547 -0.441974 0.474138 0.847601 -0.238255 -0.91801 -0.150671 0.36682 0.192413 0.192576 0.962233 -0.768449 0.049651 0.637982 0.500768 0.019286 0.865367 0.796523 0.562352 0.222062 -0.789055 0.576234 0.212946 -0.762232 0.606908 0.225091 -0.933119 -0.350624 0.079702 0.168622 0.889929 0.423783 0.24402 0.916218 0.317804 0.898504 0.146491 0.4138 0.634304 -0.734269 0.241884 -0.224924 -0.970362 0.088353 -0.161322 -0.13558 0.977545 -0.74164 -0.666639 -0.074582 0.339853 -0.938796 -0.056234 0.778525 -0.624246 -0.064926 0.54148 -0.66141 0.518976 -0.085834 -0.99584 -0.030572 -0.833753 -0.391517 -0.38932 0.4851 -0.735045 -0.473694 0.977169 -0.20754 0.045464 -0.624297 0.497414 0.602356 0.854711 0.007611 0.519049 -0.961998 0.252318 0.104382 -0.909216 -0.412986 0.05262 -0.696143 -0.529421 -0.484869 0.818908 0.538385 0.198823 -0.455453 -0.535031 0.711551 -0.749086 -0.31753 0.581416 -0.896284 0.320725 0.306285 -0.215004 0.944963 0.246614 -0.347358 0.911541 0.22008 0.670784 0.697655 0.251648 0.926848 -0.193461 0.321753 0.251119 -0.883595 0.395221 0.48013 -0.856986 0.187219 -0.679711 -0.703911 0.206163 -0.69441 -0.609324 0.382777 0.015549 0.102571 0.994604 0.29384 -0.686961 -0.664637 0.635427 -0.571138 0.519648 -0.691094 0.144869 0.708098 0.065612 0.778664 0.624001 -0.604546 -0.723027 0.3343 -0.49162 -0.470398 0.732827 0.193519 -0.914644 0.354931 0.151683 -0.661873 0.734109 0.865529 -0.46589 0.183862 0.805631 -0.251347 0.536455 0.283891 -0.941268 0.182814 0.503887 -0.811687 -0.295402 0.503888 -0.811686 -0.295402 0.503887 -0.811687 -0.295402 0.503885 -0.811688 -0.295402 -0.923908 -0.338364 0.178617 -0.923908 -0.338365 0.178616 -0.923909 -0.338362 0.178618 -0.923909 -0.33836 0.178618 -0.828021 0.531008 -0.180033 -0.828021 0.531008 -0.180032 -0.828021 0.531008 -0.180033 -0.828021 0.531008 -0.180033 0.892762 0.243704 -0.378924 0.892762 0.243704 -0.378924 0.892763 0.243704 -0.378924 0.892763 0.243703 -0.378924 -0.653186 0.747888 0.118367 -0.653187 0.747888 0.118367 -0.653185 0.747889 0.118367 -0.653185 0.747889 0.118368 0.654396 0.752201 0.077195 0.654396 0.752202 0.077196 0.654396 0.752202 0.077196 0.654396 0.752201 0.077195 0.978794 -0.197021 0.056083 0.978794 -0.197021 0.056083 0.978794 -0.197021 0.056083 0.978794 -0.197022 0.056083</float_array> <technique_common> <accessor source="#Spring-mesh-normals-array" count="171" stride="3"> <param name="X" type="float"/> <param name="Y" type="float"/> <param name="Z" type="float"/> </accessor> </technique_common> </source> <source id="Spring-mesh-map-channel1"> <float_array id="Spring-mesh-map-channel1-array" count="753">0.305163 0.292664 0 0.341692 0.29253 0 0.163529 0.288739 0 0.196708 0.285922 0 0.26822 0.272349 0 0.305157 0.402846 0 0.341683 0.413613 0 0.268224 0.401789 0 0.305159 0.347543 0 0.341683 0.336807 0 0.268229 0.333132 0 0.333338 0.418545 0 0.18896 0.436279 0 0.296444 0.417506 0 0.228564 0.414495 0 0.163663 0.400287 0 0.196692 0.398635 0 0.147701 0.277992 0 0.328034 0.279431 0 0.285352 0.27089 0 0.317753 0.543461 0 0.226881 0.523052 0 0.245987 0.519562 0 0.01268 0.269201 0 0.278264 0.650976 0 0.29078 0.654934 0 0.131813 0.619087 0 0.144951 0.618966 0 0.158497 0.613725 0 0.22574 0.658091 0 0.049597 0.270318 0 0.067343 0.271718 0 0.069326 0.369391 0 0.076262 0.370157 0 0.026596 0.369542 0 0.038483 0.369005 0 0.048415 0.369839 0 0.23712 0.650432 0 0.251485 0.650025 0 0.04377 0.373756 0 0.29612 0.542256 0 0.267278 0.560054 0 0.281678 0.560704 0 0.269357 0.714575 0 0.285563 0.718544 0 0.171118 0.612661 0 0.157159 0.682163 0 0.149001 0.681968 0 0.184172 0.68555 0 0.178698 0.684197 0 0.172432 0.682871 0 0.165982 0.682462 0 0.189315 0.627395 0 0.190701 0.613935 0 0.178499 0.625954 0 0.248387 0.715773 0 0.25579 0.71407 0 0.180339 0.688812 0 0.357057 0.510785 0 0.174507 0.410987 0 0.180102 0.278925 0 0.101569 0.39132 0 0.163664 0.339723 0 0.064539 0.539507 0 0.036346 0.545213 0 0.222925 0.5032 0 0.246856 0.514689 0 0.296274 0.515698 0 0.330473 0.514514 0 0.070072 0.615316 0 0.08062 0.616918 0 0.090997 0.618935 0 0.048601 0.618958 0 0.191259 0.542434 0 0.12583 0.545237 0 0.155026 0.590399 0 0.164603 0.589881 0 0.174048 0.590217 0 0.182663 0.59142 0 0.190954 0.594324 0 0.160596 0.596586 0 0.016636 0.561121 0 0.059346 0.616484 0 0.137518 0.538412 0 0.139544 0.546415 0 0.151743 0.544651 0 0.151087 0.537091 0 0.206897 0.27734 0 0.196697 0.339716 0 0.254173 0.271527 0 0.228564 0.333906 0 0.217851 0.277425 0 0.228564 0.293684 0 0.006329 0.408482 0 0.036781 0.532721 0 0.255237 0.428796 0 0.035079 0.389588 0 0.067093 0.381563 0 0.084524 0.511411 0 0.056418 0.51716 0 0.147494 0.436771 0 0.100598 0.295003 0 0.178539 0.539456 0 0.164322 0.53849 0 0.074759 0.623073 0 0.145141 0.59142 0 0.104979 0.283621 0 0.183265 0.611447 0 0.155012 0.92789 0.634037 0.15017 0.972391 0.303748 0.089285 0.956021 0.342293 0.11055 0.919536 0.67861 0.044532 0.911296 0.358042 0.08111 0.890244 0.707088 0.027271 0.850201 0.376783 0.070608 0.860653 0.709755 0.043538 0.789106 0.377554 0.089721 0.804454 0.709643 0.08906 0.744382 0.348136 0.110542 0.780925 0.679188 0.150169 0.728011 0.303645 0.150604 0.770204 0.649023 0.212609 0.744382 0.2503 0.190754 0.780925 0.628437 0.259253 0.789106 0.202078 0.226038 0.814942 0.497611 0.27536 0.850201 0.207075 0.231135 0.85023 0.607755 0.259253 0.911296 0.202078 0.220496 0.890244 0.607154 0.212609 0.956021 0.2503 0.190874 0.919536 0.619259 0.149894 0.99821 0.00076 0.076344 0.978381 0.000848 0.022491 0.924206 0.000817 0.002396 0.850201 0.000902 0.022109 0.776197 0.000902 0.076342 0.722022 0.000841 0.149893 0.702192 0.00076 0.223938 0.722022 0.000651 0.278701 0.776197 0.000499 0.298414 0.850201 0.000499 0.278701 0.924206 0.000499 0.223938 0.978381 0.000651 0.120784 0.87868 0.789286 0.113102 0.838979 0.797638 0.139169 0.816824 0.789967 0.165903 0.817855 0.769324 0.176229 0.82812 0.763164 0.186248 0.867482 0.755412 0.178572 0.88135 0.755412 0.160931 0.889334 0.765284 0.111845 0.859959 0.999501 0.140199 0.887163 0.96979 0.120088 0.826447 0.923054 0.153461 0.813792 0.881059 0.185714 0.841792 0.982121 0.120752 0.431078 0 0.130472 0.517863 0 0.138839 0.528178 0 0.112727 0.509862 0 0.101272 0.51658 0 0.20798 0.425665 0 0.210208 0.445848 0 0.131875 0.292403 0 0.131866 0.413486 0 0.131866 0.33668 0 0.235461 0.445795 0 0.235304 0.425795 0 0.276104 0.518455 0 0.369243 0.431748 0 0.200485 0.503982 0 0.103735 0.562906 0 0.091526 0.558842 0 0.081568 0.54466 0 0.039546 0.624057 0 0.056558 0.624431 0 0.08386 0.624264 0 0.094786 0.625675 0 0.047503 0.627519 0 0.065714 0.622963 0 0.118832 0.556388 0 0.100257 0.619964 0 0.1435 0.598471 0 0.168795 0.596566 0 0.185133 0.597966 0 0.151895 0.597439 0 0.177453 0.59709 0 0.203525 0.545529 0 0.136664 0.594317 0 0.088584 0.274967 0 0.083562 0.285856 0 0.03317 0.273124 0 0.059449 0.368365 0 0.078891 0.375289 0 0.063653 0.373234 0 0.071598 0.3741 0 0.033628 0.373009 0 0.054621 0.372833 0 0.122308 0.288927 0 0.08387 0.373208 0 0.263338 0.711595 0 0.264601 0.65593 0 0.239115 0.666651 0 0.278516 0.71576 0 0.279937 0.72096 0 0.254692 0.668949 0 0.207356 0.525568 0 0.22574 0.657839 0 0.273185 0.719536 0 0.253369 0.718739 0 0.263886 0.717012 0 0.246499 0.720826 0 0.260623 0.716488 0 0.241339 0.718467 0 0.302281 0.65996 0 0.168757 0.687335 0 0.144978 0.686619 0 0.15273 0.686876 0 0.161321 0.686972 0 0.174252 0.687739 0 0.203951 0.610034 0 0.140884 0.681657 0 0.256672 0.951633 0 0.298363 0.951633 0 0.256672 0.991071 0 0.298363 0.991071 0 0.290082 0.915162 0 0.329324 0.915162 0 0.290082 0.950649 0 0.329324 0.950649 0 0.302848 0.871605 0 0.342091 0.871605 0 0.302848 0.910096 0 0.342091 0.910096 0 0.309476 0.824161 0 0.347535 0.824161 0 0.309476 0.861977 0 0.347535 0.861977 0 0.300197 0.776618 0 0.338674 0.776618 0 0.300197 0.815528 0 0.338674 0.815528 0 0.286761 0.741739 0 0.321685 0.741739 0 0.286761 0.776851 0 0.321685 0.776851 0 0.29583 0.735681 0 0.29583 0.700413 0 0.330536 0.700413 0 0.330536 0.735681 0</float_array> <technique_common> <accessor source="#Spring-mesh-map-channel1-array" count="251" stride="3"> <param name="S" type="float"/> <param name="T" type="float"/> <param name="P" type="float"/> </accessor> </technique_common> </source> <vertices id="Spring-mesh-vertices"> <input semantic="POSITION" source="#Spring-mesh-positions"/> </vertices> <triangles material="texture" count="260"> <input semantic="VERTEX" source="#Spring-mesh-vertices" offset="0"/> <input semantic="NORMAL" source="#Spring-mesh-normals" offset="1"/> <input semantic="TEXCOORD" source="#Spring-mesh-map-channel1" offset="2" set="1"/> <p>12 0 110 0 1 111 112 2 108 112 2 108 11 3 109 12 0 110 13 4 112 1 5 113 0 1 111 0 1 111 12 0 110 13 4 112 14 6 114 2 7 115 1 5 113 1 5 113 13 4 112 14 6 114 15 8 116 3 9 117 2 7 115 2 7 115 14 6 114 15 8 116 16 10 118 4 11 119 3 9 117 3 9 117 15 8 116 16 10 118 17 12 120 5 13 121 4 11 119 4 11 119 16 10 118 17 12 120 18 14 122 6 15 123 5 13 121 5 13 121 17 12 120 18 14 122 19 16 124 7 17 125 6 15 123 6 15 123 18 14 122 19 16 124 20 18 126 8 19 127 7 17 125 7 17 125 19 16 124 20 18 126 21 20 128 9 21 129 8 19 127 8 19 127 20 18 126 21 20 128 22 22 130 10 23 131 9 21 129 9 21 129 21 20 128 22 22 130 11 3 109 112 2 108 10 23 131 10 23 131 22 22 130 11 3 109 24 24 133 12 0 110 11 3 109 11 3 109 23 25 132 24 24 133 25 26 134 13 4 112 12 0 110 12 0 110 24 24 133 25 26 134 26 27 135 14 6 114 13 4 112 13 4 112 25 26 134 26 27 135 27 28 136 15 8 116 14 6 114 14 6 114 26 27 135 27 28 136 28 29 137 16 10 118 15 8 116 15 8 116 27 28 136 28 29 137 29 30 138 17 12 120 16 10 118 16 10 118 28 29 137 29 30 138 30 31 139 18 14 122 17 12 120 17 12 120 29 30 138 30 31 139 31 32 140 19 16 124 18 14 122 18 14 122 30 31 139 31 32 140 32 33 141 20 18 126 19 16 124 19 16 124 31 32 140 32 33 141 33 34 142 21 20 128 20 18 126 20 18 126 32 33 141 33 34 142 34 35 143 22 22 130 21 20 128 21 20 128 33 34 142 34 35 143 23 25 132 11 3 109 22 22 130 22 22 130 34 35 143 23 25 132 0 1 111 113 36 144 112 2 108 0 1 111 1 5 113 113 36 144 1 5 113 2 7 115 113 36 144 2 7 115 3 9 117 111 37 145 3 9 117 4 11 119 115 38 146 4 11 119 5 13 121 115 38 146 5 13 121 6 15 123 117 39 147 7 17 125 121 40 148 117 39 147 117 39 147 6 15 123 7 17 125 7 17 125 8 19 127 119 41 149 8 19 127 9 21 129 39 42 150 39 42 150 119 41 149 8 19 127 9 21 129 10 23 131 39 42 150 39 42 150 10 23 131 112 2 108 112 2 108 114 43 151 39 42 150 113 44 18 43 45 8 35 46 0 111 47 17 44 48 166 36 49 164 115 50 60 118 51 88 116 52 62 117 53 87 120 54 90 118 51 88 119 55 89 45 56 10 120 54 90 39 57 4 114 58 19 45 56 10 44 48 9 41 59 6 43 45 8 42 60 7 84 61 14 120 54 90 43 45 8 40 62 5 42 60 7 40 62 11 46 63 58 55 64 68 41 59 12 90 65 163 46 63 171 91 66 167 47 67 65 90 65 163 48 68 66 91 66 167 123 69 169 42 60 13 49 70 67 123 69 169 40 62 11 55 64 68 49 70 67 55 64 40 46 63 20 51 71 25 46 63 207 47 67 21 52 72 29 47 67 21 48 68 22 53 73 37 48 68 22 63 74 41 54 75 38 71 76 202 54 75 38 63 74 41 50 77 24 64 78 42 55 64 40 55 64 31 65 79 191 128 80 193 128 80 193 60 81 36 49 70 30 49 70 30 59 82 35 123 69 192 58 83 34 48 68 23 123 69 192 58 83 200 57 84 33 62 85 101 56 86 32 62 85 101 57 84 33 61 87 39 59 82 35 60 81 36 57 84 33 58 83 200 61 87 194 128 80 193 56 86 32 61 87 195 61 87 196 56 86 32 57 84 33 58 83 34 59 82 35 61 87 197 61 87 198 60 81 36 128 80 193 48 68 199 62 85 101 63 74 106 55 64 31 64 78 190 65 79 191 62 85 101 65 79 191 64 78 190 67 88 44 82 89 205 81 90 204 50 77 24 81 90 204 66 91 43 51 71 25 67 88 44 81 90 204 52 72 208 79 92 203 67 88 214 69 93 56 68 94 55 129 95 206 70 96 201 69 93 56 71 76 202 71 76 202 50 77 24 66 91 43 75 97 49 78 98 52 74 99 48 74 99 222 52 72 26 53 73 27 76 100 50 80 101 54 78 98 52 71 76 45 80 101 54 77 102 51 77 102 51 72 103 46 54 75 28 73 104 47 53 73 27 54 75 28 52 72 221 78 98 52 79 92 53 71 76 45 129 95 107 80 101 54 79 92 53 78 98 52 129 95 107 66 91 43 81 90 204 82 89 209 68 94 55 69 93 56 82 89 210 82 89 211 70 96 201 66 91 43 67 88 214 68 94 55 82 89 212 82 89 213 69 93 56 70 96 201 74 99 48 83 105 57 75 97 49 77 102 51 76 100 50 83 105 216 74 99 222 73 104 47 83 105 217 83 105 218 73 104 47 72 103 46 72 103 46 77 102 51 83 105 219 83 105 220 76 100 50 75 97 49 44 48 166 116 52 62 85 106 15 85 106 15 116 52 62 86 107 16 86 107 16 120 54 90 84 61 14 93 108 69 94 109 70 106 110 104 88 111 99 41 59 93 85 106 96 87 112 98 88 111 99 85 106 96 125 113 161 87 112 98 86 107 97 41 59 12 89 114 162 90 65 163 84 61 95 91 66 167 92 115 168 89 114 162 92 115 168 91 66 167 87 112 63 125 113 174 93 108 69 98 116 81 88 111 64 126 117 175 88 111 64 87 112 63 96 118 72 84 61 61 92 115 157 125 113 161 92 115 157 89 114 100 124 119 160 89 114 100 41 59 59 98 116 159 95 120 71 107 121 172 126 117 182 107 121 172 95 120 71 94 109 70 94 109 70 93 108 69 125 113 174 103 122 79 102 123 78 97 124 73 102 123 78 101 125 77 124 119 102 101 125 77 100 126 76 124 119 102 100 126 76 99 127 75 109 128 85 108 129 84 109 128 85 127 130 105 127 130 105 103 122 189 98 116 74 99 127 75 100 126 76 104 131 80 103 122 189 127 130 105 104 131 183 100 126 76 101 125 77 104 131 184 104 131 185 102 123 78 103 122 79 104 131 186 127 130 105 99 127 75 104 131 187 101 125 77 102 123 78 96 118 72 105 132 82 106 110 176 94 109 70 95 120 71 106 110 177 106 110 178 95 120 71 126 117 182 126 117 175 96 118 72 106 110 179 106 110 180 105 132 82 93 108 69 98 116 74 107 121 83 108 129 84 125 113 103 109 128 85 110 133 86 109 128 85 108 129 84 107 121 83 2 134 115 36 49 152 113 44 144 111 47 145 36 49 152 2 134 115 113 44 18 36 49 1 44 48 9 111 47 17 116 52 62 44 48 166 113 44 144 35 46 153 112 135 108 112 135 108 35 46 153 114 58 151 114 58 19 35 46 0 43 45 8 113 44 18 44 48 9 43 45 8 115 50 146 37 136 154 3 137 117 116 52 62 37 136 2 115 50 60 111 47 17 37 136 2 116 52 62 3 137 117 37 136 154 111 47 145 117 53 147 38 138 155 5 139 121 118 51 88 38 138 3 117 53 87 115 50 60 38 138 3 118 51 88 5 139 121 38 138 155 115 50 146 119 55 149 122 140 156 7 141 125 120 54 90 122 140 92 119 55 89 121 142 91 122 140 92 120 54 90 7 141 125 122 140 156 121 142 148 114 58 19 43 45 8 45 56 10 119 55 89 39 57 4 45 56 10 117 53 87 121 142 91 120 54 90 86 107 16 118 51 88 120 54 90 120 54 90 45 56 10 42 60 7 42 60 7 45 56 10 43 45 8 41 59 6 40 62 5 43 45 8 85 106 15 41 59 165 44 48 166 116 52 62 118 51 88 86 107 16 91 66 167 84 61 95 123 69 169 91 66 167 48 68 66 47 67 65 123 69 169 84 61 95 42 60 13 49 70 67 42 60 13 40 62 11 40 62 11 41 59 170 46 63 58 90 65 163 47 67 65 46 63 171 91 66 167 90 65 163 89 114 162 98 116 159 97 124 158 89 114 100 89 114 100 97 124 158 124 119 160 88 111 99 98 116 94 41 59 93 85 106 96 86 107 97 87 112 98 86 107 97 84 61 61 125 113 161 92 115 157 124 119 160 125 113 161 107 121 172 98 116 181 126 117 182 88 111 64 96 118 72 126 117 175 87 112 63 105 132 82 96 118 72 93 108 69 105 132 82 87 112 63 125 113 174 110 133 173 94 109 70 94 109 70 110 133 173 107 121 172 107 121 83 110 133 86 109 128 85 109 128 85 99 127 75 127 130 105 98 116 74 108 129 84 127 130 105 97 124 73 98 116 188 103 122 79 124 119 102 97 124 73 102 123 78 100 126 76 125 113 103 124 119 102 109 128 85 125 113 103 100 126 76 62 85 101 48 68 199 58 83 200 64 78 190 63 74 106 62 85 101 56 86 32 65 79 191 62 85 101 65 79 191 56 86 32 128 80 193 49 70 30 55 64 31 128 80 193 49 70 30 60 81 36 59 82 35 123 69 192 59 82 35 58 83 34 63 74 41 64 78 42 71 76 202 54 75 38 53 73 37 48 68 22 53 73 37 52 72 29 47 67 21 52 72 215 51 71 25 46 63 20 51 71 25 50 77 24 55 64 40 50 77 24 71 76 202 64 78 42 78 98 52 80 101 54 129 95 107 69 93 56 129 95 206 71 76 202 68 94 55 79 92 203 129 95 206 79 92 203 68 94 55 67 88 214 51 71 25 52 72 215 67 88 44 50 77 24 51 71 25 81 90 204 66 91 43 70 96 201 71 76 202 80 101 54 76 100 50 77 102 51 54 75 28 71 76 45 77 102 51 54 75 28 72 103 46 73 104 47 53 73 27 73 104 47 74 99 222 78 98 52 52 72 221 74 99 48 78 98 52 75 97 49 76 100 50 130 143 223 131 144 224 133 145 226 133 145 226 132 146 225 130 143 223 134 147 227 135 148 228 137 149 230 137 149 230 136 150 229 134 147 227 138 151 231 139 152 232 141 153 234 141 153 234 140 154 233 138 151 231 142 155 235 143 156 236 145 157 238 145 157 238 144 158 237 142 155 235 146 159 239 147 160 240 149 161 242 149 161 242 148 162 241 146 159 239 150 163 243 151 164 244 153 165 246 153 165 246 152 166 245 150 163 243 155 167 248 156 168 249 157 169 250 157 169 250 154 170 247 155 167 248</p> </triangles> </mesh> </geometry> </library_geometries> <library_visual_scenes> <visual_scene id="Seasons.max" name="Seasons_max"> <node id="Spring-node" name="Spring" type="NODE"> <translate>0.00163 0 0</translate> <scale>0.112903 0.112903 0.043746</scale> <instance_geometry url="#Spring-mesh"> <bind_material> <technique_common> <instance_material symbol="texture" target="#texture"> <bind_vertex_input semantic="CHANNEL1" input_semantic="TEXCOORD" input_set="1"/> </instance_material> </technique_common> </bind_material> </instance_geometry> </node> <node id="VisualSceneNode" type="NODE"> <instance_light url="#ambient-environment-light"/> </node> <extra> <technique profile="FCOLLADA"> <start_time>0</start_time> <end_time>3.33333</end_time> </technique> </extra> <extra> <technique profile="MAX3D"> <frame_rate>30</frame_rate> </technique> </extra> </visual_scene> </library_visual_scenes> <scene> <instance_visual_scene url="#Seasons.max"/> </scene> </COLLADA> ; public static var summer:XML = <COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1"> <asset> <contributor> <author>den</author> <authoring_tool>3dsMax 9 - Feeling ColladaMax v3.04C.</authoring_tool> <comments>ColladaMax Export Options: ExportNormals=1;ExportEPolyAsTriangles=1;ExportXRefs=0;ExportSelected=1;ExportTangents=0;ExportAnimations=0;SampleAnim=0;ExportAnimClip=0;BakeMatrices=0;ExportRelativePaths=1;AnimStart=0;AnimEnd=16000;</comments> <source_data>file:///G:/work/eclipse/Lab_PV3D/model/Seasons.max</source_data> </contributor> <created>2008-04-09T18:09:52Z</created> <modified>2008-04-09T18:09:53Z</modified> <unit meter="0.0254" name="inch"/> <up_axis>Z_UP</up_axis> </asset> <library_lights> <light id="ambient-environment-light" name="Ambient"> <technique_common> <ambient> <color>0.113725 0.14902 0.164706</color> </ambient> </technique_common> <extra> <technique profile="FCOLLADA"> <intensity>1</intensity> </technique> </extra> </light> </library_lights> <library_images> <image id="SummerTreeMap.png" name="SummerTreeMap_png"> <init_from>./SummerTreeMap.png</init_from> </image> </library_images> <library_materials> <material id="texture" name="texture"> <instance_effect url="#texture-fx"/> </material> </library_materials> <library_effects> <effect id="texture-fx" name="texture"> <profile_COMMON> <newparam sid="SummerTreeMap_png-surface"> <surface type="2D"> <init_from>SummerTreeMap.png</init_from> <format>A8R8G8B8</format> </surface> </newparam> <newparam sid="SummerTreeMap_png-sampler"> <sampler2D> <source>SummerTreeMap_png-surface</source> <wrap_s>WRAP</wrap_s> <wrap_t>WRAP</wrap_t> <minfilter>NONE</minfilter> <magfilter>NONE</magfilter> <mipfilter>NONE</mipfilter> </sampler2D> </newparam> <technique sid="common"> <blinn> <ambient> <color>0.588 0.588 0.588 1</color> </ambient> <diffuse> <texture texture="SummerTreeMap_png-sampler" texcoord="CHANNEL1"> <extra> <technique profile="MAYA"> <mirrorU>0</mirrorU> <mirrorV>0</mirrorV> <wrapU>1</wrapU> <wrapV>1</wrapV> <repeatU>1</repeatU> <repeatV>1</repeatV> <offsetU>0</offsetU> <offsetV>0</offsetV> </technique> <technique profile="MAX3D"> <amount>1</amount> </technique> </extra> </texture> </diffuse> <specular> <color>0.9 0.9 0.9 1</color> </specular> <shininess> <float>0.415939</float> </shininess> <reflective> <color>0 0 0 1</color> </reflective> <reflectivity> <float>1</float> </reflectivity> <transparent opaque="A_ONE"> <color>1 1 1 1</color> </transparent> <transparency> <float>1</float> </transparency> <index_of_refraction> <float>1</float> </index_of_refraction> </blinn> <extra> <technique profile="FCOLLADA"> <spec_level> <float>0</float> </spec_level> <emission_level> <float>0</float> </emission_level> </technique> </extra> </technique> </profile_COMMON> <extra> <technique profile="MAX3D"> <faceted>0</faceted> <double_sided>0</double_sided> <wireframe>0</wireframe> <face_map>0</face_map> </technique> </extra> </effect> </library_effects> <library_geometries> <geometry id="Summer-mesh" name="Summer"> <mesh> <source id="Summer-mesh-positions"> <float_array id="Summer-mesh-positions-array" count="633">-9.06549 15.8309 25.8697 -15.8299 9.13997 26.9648 -18.2429 2.38065 27.0673 -13.8514 -10.4564 27.063 -9.06736 -15.8309 25.8919 0.137714 -18.2799 24.7319 9.36285 -15.8309 23.9403 17.47 -8.06062 18.9095 18.6412 -0.000013 23.145 16.1967 9.13995 23.1219 9.39045 15.8309 23.5874 0.051073 27.8848 11.4547 -13.9252 24.1489 12.9369 -24.1985 13.9424 13.5425 -28.1609 0.000004 14.2632 -24.4266 -13.9424 14.2928 -13.9769 -24.1489 13.1616 0.051015 -27.8848 11.4507 14.3842 -24.1489 9.39937 25.0917 -13.9424 7.54506 28.7892 -0.000021 7.73723 25.0917 13.9424 7.54506 14.3843 24.1489 9.39938 0.000533 32.1986 -0.196413 -16.0941 27.8848 -0.19305 -27.8786 16.0993 -0.194225 -32.276 0.000004 -0.190961 -27.9621 -16.0993 -0.190956 -16.0945 -27.8848 -0.193325 0.000514 -32.1986 -0.196423 16.2036 -27.8848 -0.200624 28.1873 -16.0993 -0.206467 32.501 -0.000025 -0.206465 28.1873 16.0993 -0.206463 16.2036 27.8848 -0.200618 -1.95622 7.65424 37.0668 -6.96139 1.73914 38.2092 -5.9812 -5.89682 35.2696 1.15995 -8.14908 33.6547 5.37007 5.62083 28.823 -0.829426 5.43766 82.6931 -3.36062 1.68492 87.106 3.35133 4.60116 82.4435 -1.33636 5.87967 60.4543 -5.12325 1.97558 56.7557 3.91558 4.83979 54.7761 0.393164 5.75333 111.769 1.09581 3.4512 113.796 3.24704 3.24368 115.919 4.73226 6.93278 110.775 2.61967 7.55255 112.61 4.04707 5.65868 123.25 2.82519 5.73069 123.249 2.75147 7.72216 121.062 3.97982 7.60926 121.122 4.35279 0.023148 86.8491 -2.65778 -1.7836 81.4571 1.91378 -2.76955 80.509 -0.140255 -8.46389 97.5509 -1.25903 -1.11829 99.696 -0.593492 1.03549 100.559 2.51219 0.261141 100.236 1.99775 -1.88099 99.3897 -6.39839 -2.01436 30.4468 1.15038 17.7391 24.1557 -4.71425 4.4743 30.1256 1.94803 6.72127 29.2027 -1.84956 -5.85782 30.1518 -3.43447 -3.16822 58.1211 1.36203 -4.25701 57.9327 6.3659 2.93029 28.823 5.60436 -0.304009 56.1415 4.61751 -3.89828 29.1211 6.96011 -1.98199 37.5409 -9.4341 -16.1505 140.005 1.73481 -8.6254 140.205 -8.55668 -5.60774 122.718 -13.9776 -17.1456 112.461 -7.03643 -27.2941 123.609 2.67438 -22.0283 140.756 4.09407 -4.96969 112.785 -5.61674 -10.2355 95.6385 -4.67717 -23.6384 96.1893 5.61433 -26.656 113.676 11.0352 -15.1182 123.933 6.49174 -16.1132 96.3893 -4.26723 -11.7306 143.951 -10.3164 -9.95691 133.673 -13.5028 -16.7387 127.644 -9.42284 -22.7038 134.197 -3.71497 -19.6087 144.275 -3.7515 -5.53374 133.79 -12.987 -10.5418 117.483 -12.0934 -23.2887 118.007 -2.30565 -26.1587 134.638 2.84995 -15.1855 144.393 3.68443 -5.1587 127.952 -8.07263 -6.48012 107.595 -10.7067 -21.1399 101.89 -0.577592 -28.8788 118.721 8.31661 -19.0019 134.828 7.76435 -11.1238 134.504 -2.36476 -3.38497 117.673 -11.259 -13.2619 101.566 -6.62678 -27.1051 108.442 5.13028 -25.7837 128.799 0.724843 -5.47629 105.98 -5.79231 -17.0783 92.0016 0.809146 -26.73 102.604 10.0447 -21.722 118.911 9.15108 -8.97505 118.387 6.48048 -9.55995 102.198 0.772613 -12.6551 92.1192 1.32488 -20.5331 92.4429 7.37407 -22.3069 102.721 10.5604 -15.5251 108.75 1.30888 -6.91992 102.278 -3.7374 -6.19325 103.573 -1.95006 -5.1204 106.746 8.05658 5.70881 119.052 0.865507 4.77576 123.348 -0.893597 5.12374 121.3 -1.07282 6.91387 118.551 0.977744 8.31552 119.105 2.49114 7.81697 121.917 14.5809 3.9411 150.652 21.6447 7.06561 139.174 16.2782 13.0828 149.457 9.775 7.2205 151.978 8.2285 1.23668 138.123 16.196 0.212256 132.169 18.9422 15.0039 130.236 10.9717 17.0029 136.189 5.11895 11.4795 126.773 10.1259 3.9149 118.902 18.8914 7.04942 119.551 11.8232 13.0566 117.707 18.975 4.97744 146.798 15.3038 8.51426 152.287 10.6386 1.99633 146.18 15.7723 0.949132 142.68 19.9727 10.3508 146.095 10.6308 11.803 151.222 7.20042 3.32058 145.597 11.5879 -0.195431 135.316 19.9243 2.78568 135.934 21.5385 11.48 134.797 13.2504 16.064 144.341 8.01997 1.98093 127.518 18.3059 2.77616 124.4 21.5086 6.80446 128.517 18.3841 15.0168 140.841 8.59108 15.1711 140.807 5.52459 3.49098 135.159 13.1537 0.933733 124.018 14.8163 17.1932 133.043 7.10308 14.6187 131.857 14.738 4.95252 116.601 19.9201 11.4705 123.263 15.7656 15.0014 122.179 10.6318 16.0486 125.679 7.4291 12.0203 121.561 10.5835 8.48346 115.517 15.7357 10.3259 115.899 -6.03837 13.8664 186.359 8.60167 13.7012 166.374 -2.25131 27.0376 163.404 -18.3539 20.8925 164.832 -17.4529 3.75831 168.684 -0.793451 -0.686164 169.637 5.33413 20.6252 132.495 -11.3254 25.0697 131.543 -20.7205 10.6823 134.806 -9.8675 -2.65407 137.775 -6.08045 10.5171 114.821 2.57052 14.0633 180.892 -3.8087 21.9022 179.146 -13.2736 18.2903 179.986 -12.744 8.21904 182.25 -2.95179 5.60665 182.81 4.7965 21.8051 167.399 -11.0476 26.0321 166.493 -19.9829 12.3489 169.597 -9.66111 -0.334748 172.421 5.65341 5.50954 171.063 9.25511 18.036 149.232 -6.91631 28.4873 146.926 -21.9035 16.4187 149.684 -14.9947 -1.49145 153.693 4.2624 -0.491878 153.414 2.87589 25.8749 147.486 -16.3812 24.8754 147.766 -21.3739 6.34746 151.948 -5.2025 -4.10385 154.253 -2.4577 24.7182 128.759 -17.7722 18.874 130.117 -16.9153 2.57836 133.78 -1.0712 -1.64858 134.686 0.625179 16.1644 118.93 -9.16702 18.7768 118.37 -14.6893 10.3202 120.288 -8.31011 2.48125 122.033 5.62451 7.87978 123.891 6.44963 8.21631 120.41 7.69145 7.62033 117.951 6.99276 4.89249 122.86 5.729 6.13864 125.715 2.58283 5.84545 123.951 2.81563 -5.67904 29.358 5.4349 4.63064 112.802 -3.15561 -8.01605 98.3186</float_array> <technique_common> <accessor source="#Summer-mesh-positions-array" count="211" stride="3"> <param name="X" type="float"/> <param name="Y" type="float"/> <param name="Z" type="float"/> </accessor> </technique_common> </source> <source id="Summer-mesh-normals"> <float_array id="Summer-mesh-normals-array" count="747">-0.411233 0.787561 0.458949 -0.200023 0.597539 0.77649 0.093297 0.657154 0.74796 0.036877 0.881409 0.470911 -0.766237 0.472152 0.435836 -0.484342 0.356837 0.798799 -0.896737 0.010137 0.442448 -0.625222 0.037251 0.779557 -0.762887 -0.455283 0.459044 -0.472275 -0.362714 0.803365 -0.408933 -0.790088 0.456656 -0.239037 -0.583421 0.776196 0.047133 -0.883099 0.466813 0.074677 -0.665368 0.742771 0.474971 -0.739222 0.477444 0.449196 -0.471319 0.759 0.759818 -0.401189 0.511589 0.665155 -0.314466 0.677259 0.867687 -0.012109 0.496963 0.626097 -0.155949 0.763992 0.76597 0.42808 0.479622 0.607816 0.327678 0.723316 0.473735 0.746811 0.466744 0.363462 0.566221 0.73979 -0.466804 0.824188 0.320637 0.010283 0.93356 0.358274 -0.822958 0.482204 0.300365 -0.960105 0.007635 0.279534 -0.831388 -0.482863 0.275023 -0.469398 -0.830956 0.298625 0.008479 -0.941432 0.337097 0.465786 -0.797426 0.383608 0.785006 -0.450121 0.425625 0.905573 -0.00093 0.424189 0.774729 0.458107 0.435813 0.458625 0.790848 0.405243 -0.086835 0.278566 0.956483 -0.309004 -0.106028 0.945132 -0.047789 -0.362911 0.930598 0.434249 -0.296684 0.850533 0.490634 -0.392997 0.777709 0.427902 0.043179 0.902793 0.329657 0.293029 0.897475 0.2321 0.418928 0.877855 -0.64171 0.745163 0.181497 -0.308138 0.950394 0.042443 -0.31174 0.935806 0.164579 -0.874736 -0.25086 0.414615 -0.972281 0.222506 0.071835 -0.94965 0.238289 0.203428 -0.371432 -0.868954 0.327044 0.264325 -0.961725 0.072237 -0.672537 -0.735212 0.084602 0.283891 -0.941268 0.182814 0.970114 -0.235672 0.05777 0.845189 -0.520322 0.122151 0.887655 0.433987 0.154027 0.708098 0.703487 0.060855 0.67386 0.737098 0.050977 0.652828 0.717332 0.243412 -0.96586 0.258144 0.021822 0.696881 0.716984 -0.017061 -0.383247 0.923639 -0.003561 -0.940774 0.338205 -0.023691 -0.194799 0.971686 -0.133715 -0.762827 -0.454004 0.460409 0.478796 -0.784 0.395092 -0.650305 -0.754702 0.086764 0.132555 -0.983983 0.119196 0.882024 -0.455804 -0.119482 0.674416 0.719488 -0.165828 -0.952352 0.200431 -0.229899 0.0117 0.993625 -0.112131 -0.517489 -0.854829 0.038366 0.693188 -0.373151 0.616642 0.792325 -0.485815 0.369058 0.152804 -0.957058 0.246358 0.82815 0.525227 0.195715 0.321631 0.928458 0.185796 -0.126026 0.991852 -0.018607 -0.196693 0.943673 0.266068 -0.69282 0.623171 0.362849 0.677557 0.650398 -0.343365 0.71322 -0.676781 -0.182438 -0.002223 -0.972605 0.232456 -0.738629 -0.3476 0.577582 -0.514655 -0.415747 0.749856 -0.740131 -0.668573 -0.072221 0.338565 -0.93938 -0.054204 0.97583 -0.216497 -0.029758 -0.888908 0.422434 0.177181 -0.858831 -0.470538 -0.202492 0.452023 -0.85959 -0.238288 0.978091 -0.177702 0.108445 -0.62432 0.497838 0.601981 0.854885 0.007926 0.518757 0.571126 0.671049 0.472768 -0.230288 0.855805 0.463212 -0.691094 0.144869 0.708098 0.065612 0.778664 0.624001 -0.604546 -0.723027 0.3343 -0.49162 -0.470398 0.732827 0.193519 -0.914644 0.354931 0.151682 -0.661873 0.734109 0.865529 -0.46589 0.183862 0.805631 -0.251347 0.536455 -0.827676 -0.036658 0.560007 -0.322381 0.463853 0.825173 -0.783025 0.534052 0.318842 0.336927 0.755886 0.561352 -0.208873 0.925259 0.316651 -0.558379 0.826251 0.074307 -0.982266 -0.062001 0.176947 -0.898335 0.438868 -0.019709 -0.991317 -0.073955 -0.108725 -0.706338 -0.615454 0.349719 -0.828376 -0.560147 0.005306 -0.439817 -0.890387 0.117354 -0.260595 -0.445474 0.85653 -0.081084 -0.926741 0.366848 0.43969 -0.663835 0.604976 0.500755 0.066737 0.863012 0.836606 0.425422 0.345118 0.423136 0.890214 0.168746 0.991317 0.073955 0.108725 0.828376 0.560147 -0.005306 0.441286 0.889804 -0.116251 -0.069648 0.997316 -0.022585 -0.556319 0.805312 -0.204894 0.298098 0.930117 -0.214524 -0.118414 0.98117 -0.152588 -0.32633 0.903198 -0.278821 -0.237427 0.845204 -0.47881 -0.460931 0.642173 -0.612501 -0.888685 0.278174 -0.364497 -0.836606 -0.425422 -0.345118 -0.500754 -0.066736 -0.863013 -0.336927 -0.755887 -0.561351 -0.423136 -0.890214 -0.168746 0.069727 -0.997254 0.024969 0.208872 -0.925259 -0.31665 0.558379 -0.826251 -0.074307 0.544162 -0.811658 0.212367 0.888685 -0.278174 0.364497 0.898335 -0.438868 0.019709 0.827676 0.036659 -0.560008 0.263904 0.4361 -0.860332 0.703719 0.617578 -0.35125 0.359557 0.766918 -0.531559 0.439854 0.823088 -0.359243 0.322382 -0.463851 -0.825174 0.783025 -0.534052 -0.318842 0.982266 0.062001 -0.176947 0.215274 -0.676093 0.704667 0.781798 -0.452749 0.428732 0.394301 0.026274 0.918606 0.977257 -0.164027 0.1344 0.889853 0.229573 0.394283 0.438624 0.654827 0.615476 -0.185712 -0.355415 0.916074 -0.070248 0.592073 0.802817 -0.222889 -0.892745 0.391569 -0.432974 -0.827742 0.356898 -0.49702 -0.863153 0.089098 0.314312 -0.920671 0.231457 -0.153009 -0.988039 0.019186 0.340299 -0.938623 -0.056419 0.760463 -0.647838 0.044748 0.969494 -0.196762 -0.146171 0.941369 0.337017 0.01562 0.833664 -0.212392 -0.509798 0.862612 0.38786 -0.324753 0.660112 0.743662 -0.10592 0.614123 0.76959 0.174882 -0.02595 0.949454 0.31283 0.192258 0.980766 -0.033694 -0.272119 0.960899 0.051231 -0.410199 0.888668 0.204953 -0.546996 0.832181 -0.090939 -0.741618 -0.66997 -0.033806 -0.581304 -0.794271 -0.176688 -0.896452 0.387413 -0.21514 -0.97678 0.087615 -0.19551 -0.948824 -0.298644 -0.102691 -0.68103 -0.677232 -0.278487 -0.56298 -0.608315 -0.55947 -0.372439 -0.750086 -0.546498 -0.001178 -0.955309 -0.295606 0.635497 -0.719121 -0.281085 0.254403 -0.58124 -0.772942 -0.220714 0.728521 -0.648493 -0.314166 0.920635 -0.2318 0.347067 0.861001 -0.371782 -0.735374 0.546853 -0.40022 -0.378639 0.016555 -0.925397 -0.668108 0.202322 -0.71603 -0.824326 0.379486 -0.420093 0.431671 0.301803 -0.850044 0.002057 0.16331 0.986573 0.74621 0.15588 0.647203 0.186915 0.80056 0.569356 0.964138 0.102156 0.244952 0.720452 0.641203 0.264212 0.245084 0.95222 0.182237 -0.610879 0.510301 0.605327 -0.327482 0.911936 0.24724 -0.800055 0.563097 0.206963 -0.596839 -0.360643 0.716742 -0.95109 0.014193 0.308588 -0.770765 -0.572851 0.278861 0.280878 -0.601354 0.747985 -0.257245 -0.890933 0.374251 0.360464 -0.883795 0.298281 0.816353 -0.463276 0.344881 0.994197 0.084444 0.066647 0.908954 0.416147 -0.024973 0.545673 0.836875 -0.043379 -0.051489 0.997357 -0.051267 0.770765 0.572851 -0.27886 0.257246 0.890933 -0.374251 -0.360464 0.883795 -0.298282 -0.6314 0.774457 -0.039375 -0.966087 0.257909 -0.012619 -0.818031 0.462994 -0.341266 -0.96724 -0.096833 -0.234668 -0.934277 -0.356048 0.018869 -0.545673 -0.836875 0.043379 -0.720451 -0.641203 -0.264212 -0.245084 -0.95222 -0.182237 0.051489 -0.997357 0.051267 0.612051 -0.789541 0.044927 0.33293 -0.911347 -0.242083 0.677169 -0.699073 -0.229651 0.712783 -0.697643 -0.072349 0.906347 -0.405853 0.11755 -0.025794 -0.152493 -0.987968 -0.280879 0.601354 -0.747985 0.585742 0.393335 -0.708657 -0.74621 -0.155881 -0.647203 -0.193197 -0.801015 -0.566612 0.110483 -0.561793 -0.819867 0.183865 -0.82968 -0.527091 0.808129 -0.49396 -0.320827 0.412878 -0.825949 -0.383849 0.595917 0.00881 -0.802998 0.904507 -0.08391 -0.418122 0.914366 -0.031221 -0.403683 0.947339 0.272946 -0.167479 0.910017 0.269764 -0.314794</float_array> <technique_common> <accessor source="#Summer-mesh-normals-array" count="249" stride="3"> <param name="X" type="float"/> <param name="Y" type="float"/> <param name="Z" type="float"/> </accessor> </technique_common> </source> <source id="Summer-mesh-map-channel1"> <float_array id="Summer-mesh-map-channel1-array" count="1017">0.305152 0.292438 0 0.132458 0.292311 0 0.1635 0.288813 0 0.196451 0.285856 0 0.268038 0.272305 0 0.305084 0.402962 0 0.341439 0.412955 0 0.268117 0.401517 0 0.30517 0.347419 0 0.132234 0.33673 0 0.26834 0.332484 0 0.33339 0.41826 0 0.369198 0.4317 0 0.296933 0.417325 0 0.229281 0.414348 0 0.163596 0.400209 0 0.196472 0.398783 0 0.147523 0.278146 0 0.327961 0.279431 0 0.285522 0.270534 0 0.317722 0.543443 0 0.226751 0.522763 0 0.246185 0.519467 0 0.01252 0.269333 0 0.033129 0.273139 0 0.295788 0.542046 0 0.267659 0.560154 0 0.281636 0.560397 0 0.247811 0.557478 0 0.230366 0.5642 0 0.313777 0.573881 0 0.049765 0.270399 0 0.067396 0.271728 0 0.100757 0.294701 0 0.104881 0.28344 0 0.088551 0.274708 0 0.083708 0.285836 0 0.035331 0.314554 0 0.2924 0.568647 0 0.280107 0.568798 0 0.0768 0.325837 0 0.357179 0.510384 0 0.006175 0.408781 0 0.180249 0.278797 0 0.10196 0.39151 0 0.163777 0.33948 0 0.034989 0.389055 0 0.067192 0.381473 0 0.079489 0.471585 0 0.148017 0.436998 0 0.222848 0.503246 0 0.246863 0.514626 0 0.296349 0.515227 0 0.120833 0.430875 0 0.116326 0.474318 0 0.196529 0.339266 0 0.25425 0.271026 0 0.228998 0.333715 0 0.21816 0.276681 0 0.228975 0.293163 0 0.341363 0.292314 0 0.132221 0.413318 0 0.341407 0.337814 0 0.101292 0.470925 0 0.026939 0.492566 0 0.138019 0.482884 0 0.917074 0.769989 0 0.403102 0.50512 0 0.365336 0.674874 0 0.464518 0.639779 0 0.393565 0.602776 0 0.749095 0.602776 0 0.678141 0.639779 0 0.573237 0.674874 0 0.464518 0.565774 0 0.362284 0.526101 0 0.678141 0.565774 0 0.610621 0.603158 0 0.53509 0.603158 0 0.422938 0.550515 0 0.412257 0.674874 0 0.382502 0.639779 0 0.340541 0.639779 0 0.730784 0.674874 0 0.755961 0.714599 0 0.426371 0.626427 0 0.353892 0.602776 0 0.714762 0.626427 0 0.653727 0.674874 0 0.519831 0.674874 0 0.464518 0.602776 0 0.382502 0.566155 0 0.714381 0.578744 0 0.64152 0.626427 0 0.54806 0.639779 0 0.500376 0.626427 0 0.426371 0.578744 0 0.76092 0.565774 0 0.678141 0.602776 0 0.596507 0.639779 0 0.429286 0.345776 0 0.730021 0.526101 0 0.64152 0.578744 0 0.573619 0.603158 0 0.500376 0.578744 0 0.522883 0.526101 0 0.548442 0.4873 0 0.627024 0.526101 0 0.596888 0.566155 0 0.547679 0.566155 0 0.455744 0.526101 0 0.396998 0.526101 0 0.403865 0.545556 0 0.429805 0.54937 0 0.779994 0.674874 0 0.779612 0.526101 0 0.760539 0.639779 0 0.788768 0.602776 0 0.339015 0.565774 0 0.447352 0.5467 0 0.392861 0.32403 0 0.553946 0.419062 0 0.440867 0.674874 0 0.702174 0.674874 0 0.678523 0.714599 0 0.59727 0.714599 0 0.388606 0.714599 0 0.545771 0.714599 0 0.464518 0.714599 0 0.619014 0.674874 0 0.485881 0.674874 0 0.446971 0.505883 0 0.388224 0.4873 0 0.464137 0.4873 0 0.600703 0.4873 0 0.679286 0.4873 0 0.266679 0.577798 0 0.644105 0.445383 0 0.416257 0.445002 0 0.422559 0.395792 0 0.494275 0.395792 0 0.608118 0.395792 0 0.679981 0.395792 0 0.378278 0.355156 0 0.458417 0.345499 0 0.554328 0.370909 0 0.644105 0.34545 0 0.507627 0.445383 0 0.48245 0.479201 0 0.442396 0.419062 0 0.477872 0.419062 0 0.576835 0.445383 0 0.690281 0.445383 0 0.397558 0.411208 0 0.458417 0.395792 0 0.522284 0.411433 0 0.585021 0.412577 0 0.663398 0.419062 0 0.439725 0.3714 0 0.522284 0.378626 0 0.553946 0.395792 0 0.626154 0.419062 0 0.706469 0.413721 0 0.397532 0.378783 0 0.475583 0.3714 0 0.643742 0.395792 0 0.706518 0.380534 0 0.507245 0.34545 0 0.585051 0.378626 0 0.626536 0.3714 0 0.663398 0.3714 0 0.69257 0.345499 0 0.6693 0.316755 0 0.599723 0.345499 0 0.40504 0.350128 0 0.40927 0.34111 0 0.907983 0.754018 0 0.424872 0.355766 0 0.41299 0.358513 0 0.45987 0.445383 0 0.55242 0.479302 0 0.624756 0.479378 0 0.438764 0.479201 0 0.666248 0.479538 0 0.395775 0.479181 0 0.726521 0.354594 0 0.941982 0.739697 0 0.430331 0.314557 0 0.621796 0.316755 0 0.952286 0.754009 0 0.348242 0.892738 0 0.413078 0.781504 0 0.380574 0.841416 0 0.960205 0.824191 0 0.415696 0.813232 0 0.959052 0.794522 0 0.418521 0.794388 0 0.472111 0.993213 0 0.408467 0.892865 0 0.533576 0.893038 0 0.654983 0.893055 0 0.775669 0.892957 0 0.900117 0.892944 0 0.467563 0.794399 0 0.596151 0.7944 0 0.713969 0.794401 0 0.843018 0.794401 0 0.532651 0.708174 0 0.441422 0.948437 0 0.500924 0.948444 0 0.624629 0.948446 0 0.7462 0.948446 0 0.865518 0.948449 0 0.470548 0.892965 0 0.592499 0.892946 0 0.713533 0.892866 0 0.8361 0.892951 0 0.959075 0.892982 0 0.438359 0.841326 0 0.563538 0.841366 0 0.686612 0.841436 0 0.808546 0.841104 0 0.931439 0.841186 0 0.501785 0.841366 0 0.626975 0.841316 0 0.742984 0.841498 0 0.870033 0.84121 0 0.531797 0.794398 0 0.658218 0.7944 0 0.778598 0.794401 0 0.901682 0.79432 0 0.501665 0.754013 0 0.562611 0.754012 0 0.688568 0.754012 0 0.808836 0.754012 0 0.594376 0.993213 0 0.717359 0.993214 0 0.836766 0.993215 0 0.959005 0.993215 0 0.988111 0.841233 0 0.989973 0.948449 0 0.381455 0.948752 0 0.565176 0.948439 0 0.686733 0.948439 0 0.806095 0.948448 0 0.928363 0.948447 0 0.660064 0.708122 0 0.776932 0.708106 0 0.89726 0.710583 0 0.554328 0.316755 0 0.479398 0.316755 0 0.420703 0.338847 0 0.602393 0.445383 0 0.575309 0.345499 0 0.435757 0.753958 0 0.627362 0.754012 0 0.744419 0.754013 0 0.871126 0.754017 0 0.943259 0.769804 0 0.917046 0.739083 0 0.989367 0.754012 0 0.960894 0.710433 0 0.154977 0.927562 0.634037 0.15063 0.975903 0.303748 0.086811 0.959048 0.342293 0.106515 0.918707 0.67861 0.040104 0.913365 0.358042 0.082527 0.891388 0.707088 0.027331 0.849832 0.376783 0.070528 0.860289 0.709755 0.0411 0.786797 0.377554 0.089651 0.804061 0.709643 0.08758 0.741611 0.348136 0.110483 0.780519 0.679188 0.150133 0.727738 0.303645 0.150567 0.769792 0.649023 0.215008 0.739622 0.2503 0.190738 0.780519 0.628437 0.264599 0.7863 0.202078 0.22604 0.814555 0.497611 0.279202 0.849832 0.207075 0.23114 0.849862 0.607755 0.264102 0.916844 0.202078 0.220496 0.889896 0.607154 0.214511 0.960042 0.2503 0.190858 0.919204 0.619259 0.149856 0.99792 0.00076 0.076267 0.97808 0.000848 0.022386 0.923876 0.000817 0.00228 0.849832 0.000902 0.022004 0.775789 0.000902 0.076265 0.721585 0.000841 0.149855 0.701745 0.00076 0.223939 0.721585 0.000651 0.278731 0.775789 0.000499 0.298455 0.849832 0.000499 0.278731 0.923876 0.000499 0.22394 0.97808 0.000651 0.120512 0.877997 0.789286 0.113012 0.838771 0.797638 0.1396 0.816702 0.789967 0.165522 0.817524 0.769324 0.176156 0.82791 0.763164 0.186346 0.866903 0.755412 0.178399 0.880874 0.755412 0.160756 0.88893 0.765284 0.112035 0.859628 0.999501 0.14031 0.887232 0.96979 0.119711 0.825906 0.923054 0.153759 0.813351 0.881059 0.185869 0.841715 0.982121 0.330516 0.514352 0 0.255172 0.428609 0 0.207667 0.425678 0 0.210391 0.445711 0 0.235698 0.445484 0 0.235262 0.425456 0 0.188624 0.436087 0 0.200559 0.503669 0 0.174586 0.410752 0 0.15244 0.483909 0 0.063495 0.317156 0 0.048984 0.314951 0 0.018762 0.312148 0 0.089701 0.329168 0 0.122534 0.288675 0 0.103722 0.329928 0 0.207625 0.525397 0 0.213818 0.571245 0 0.757869 0.4873 0 0.574382 0.526101 0 0.703318 0.526101 0 0.491984 0.526101 0 0.65449 0.526101 0 0.527625 0.445383 0 0.530677 0.345499 0 0.206607 0.276618 0 0.276122 0.518533 0 0.049555 0.477626 0</float_array> <technique_common> <accessor source="#Summer-mesh-map-channel1-array" count="339" stride="3"> <param name="S" type="float"/> <param name="T" type="float"/> <param name="P" type="float"/> </accessor> </technique_common> </source> <vertices id="Summer-mesh-vertices"> <input semantic="POSITION" source="#Summer-mesh-positions"/> </vertices> <triangles material="texture" count="412"> <input semantic="VERTEX" source="#Summer-mesh-vertices" offset="0"/> <input semantic="NORMAL" source="#Summer-mesh-normals" offset="1"/> <input semantic="TEXCOORD" source="#Summer-mesh-map-channel1" offset="2" set="1"/> <p>12 0 264 0 1 265 64 2 262 64 2 262 11 3 263 12 0 264 13 4 266 1 5 267 0 1 265 0 1 265 12 0 264 13 4 266 14 6 268 2 7 269 1 5 267 1 5 267 13 4 266 14 6 268 15 8 270 3 9 271 2 7 269 2 7 269 14 6 268 15 8 270 16 10 272 4 11 273 3 9 271 3 9 271 15 8 270 16 10 272 17 12 274 5 13 275 4 11 273 4 11 273 16 10 272 17 12 274 18 14 276 6 15 277 5 13 275 5 13 275 17 12 274 18 14 276 19 16 278 7 17 279 6 15 277 6 15 277 18 14 276 19 16 278 20 18 280 8 19 281 7 17 279 7 17 279 19 16 278 20 18 280 21 20 282 9 21 283 8 19 281 8 19 281 20 18 280 21 20 282 22 22 284 10 23 285 9 21 283 9 21 283 21 20 282 22 22 284 11 3 263 64 2 262 10 23 285 10 23 285 22 22 284 11 3 263 24 24 287 12 0 264 11 3 263 11 3 263 23 25 286 24 24 287 25 26 288 13 4 266 12 0 264 12 0 264 24 24 287 25 26 288 26 27 289 14 6 268 13 4 266 13 4 266 25 26 288 26 27 289 27 28 290 15 8 270 14 6 268 14 6 268 26 27 289 27 28 290 28 29 291 16 10 272 15 8 270 15 8 270 27 28 290 28 29 291 29 30 292 17 12 274 16 10 272 16 10 272 28 29 291 29 30 292 30 31 293 18 14 276 17 12 274 17 12 274 29 30 292 30 31 293 31 32 294 19 16 278 18 14 276 18 14 276 30 31 293 31 32 294 32 33 295 20 18 280 19 16 278 19 16 278 31 32 294 32 33 295 33 34 296 21 20 282 20 18 280 20 18 280 32 33 295 33 34 296 34 35 297 22 22 284 21 20 282 21 20 282 33 34 296 34 35 297 23 25 286 11 3 263 22 22 284 22 22 284 34 35 297 23 25 286 0 1 265 65 36 298 64 2 262 0 1 265 1 5 267 65 36 298 1 5 267 2 7 269 65 36 298 2 7 269 3 9 271 63 37 299 3 9 271 4 11 273 67 38 300 4 11 273 5 13 275 67 38 300 5 13 275 6 15 277 208 39 301 7 17 279 72 40 302 208 39 301 208 39 301 6 15 277 7 17 279 7 17 279 8 19 281 70 41 303 8 19 281 9 21 283 39 42 304 39 42 304 70 41 303 8 19 281 9 21 283 10 23 285 39 42 304 39 42 304 10 23 285 64 2 262 64 2 262 66 43 305 39 42 304 65 44 18 43 45 8 35 46 0 63 47 17 44 48 9 36 49 1 67 50 43 69 51 55 68 52 45 72 53 58 71 54 57 208 55 336 70 56 56 39 57 4 45 58 10 66 59 19 43 45 8 45 58 10 44 48 62 41 60 6 43 45 8 45 58 10 42 61 7 71 54 57 43 45 8 40 62 5 42 61 7 40 62 11 46 63 41 50 64 311 41 60 317 60 65 314 46 63 318 61 66 315 47 67 50 60 65 314 48 68 51 61 66 315 209 69 337 42 61 13 49 70 52 209 69 337 40 62 11 50 64 311 49 70 52 50 64 25 46 63 20 122 71 30 122 71 30 123 72 38 50 64 25 46 63 327 47 67 21 121 73 29 121 73 29 122 71 328 46 63 327 47 67 21 48 68 22 121 73 29 48 68 22 52 74 26 207 75 136 207 75 136 120 76 28 48 68 22 124 77 39 207 75 136 52 74 26 52 74 26 53 78 27 124 77 39 123 72 38 124 77 39 53 78 27 53 78 27 50 64 25 123 72 38 203 79 321 50 64 32 54 80 36 54 80 36 202 81 40 203 79 321 203 79 321 204 82 322 49 70 31 49 70 31 50 64 32 203 79 321 204 82 322 119 83 37 209 69 24 209 69 24 49 70 31 204 82 322 205 84 323 48 68 23 209 69 24 209 69 24 119 83 37 205 84 323 206 85 324 51 86 33 48 68 325 48 68 325 205 84 326 206 85 324 202 81 40 54 80 36 51 86 33 51 86 33 206 85 324 202 81 40 48 68 325 51 86 33 52 74 34 50 64 32 53 78 35 54 80 36 52 74 34 51 86 33 54 80 36 54 80 36 53 78 35 52 74 34 44 48 9 68 52 45 56 87 15 68 52 45 69 51 55 57 88 16 57 88 16 71 54 57 55 89 14 117 90 64 41 60 42 210 91 338 58 92 48 210 91 338 56 87 46 56 87 46 57 88 47 58 92 48 55 89 44 116 93 63 57 88 47 41 60 317 59 94 313 60 65 314 55 89 312 61 66 315 62 95 316 60 65 314 59 94 313 61 66 315 62 95 53 106 96 54 116 93 63 116 93 63 55 89 44 62 95 53 106 96 54 62 95 53 59 94 49 118 97 65 59 94 49 117 90 320 2 98 269 36 49 306 65 44 298 63 47 299 36 49 306 2 98 269 65 44 18 36 49 60 44 48 62 63 47 17 68 52 45 44 48 9 65 44 298 35 46 307 64 99 262 64 99 262 35 46 307 66 59 305 66 59 19 35 46 0 43 45 8 65 44 18 44 48 62 43 45 8 67 50 300 37 100 308 3 101 271 68 52 45 37 100 2 67 50 43 63 47 17 37 100 2 68 52 45 3 101 271 37 100 308 63 47 299 208 55 301 38 102 309 5 103 275 69 51 55 38 102 3 208 55 336 67 50 43 38 102 3 69 51 55 5 103 275 38 102 309 67 50 300 70 56 303 73 104 310 7 105 279 71 54 57 73 104 59 70 56 56 72 53 58 73 104 59 71 54 57 7 105 279 73 104 310 72 53 302 74 106 68 86 107 80 87 108 81 86 107 122 75 109 69 91 110 85 86 107 80 91 110 85 87 108 81 87 108 81 91 110 85 76 111 70 74 106 68 87 108 81 88 112 82 87 108 81 76 111 70 92 113 86 87 108 81 92 113 86 88 112 82 88 112 116 92 113 117 77 114 71 74 106 114 88 112 116 89 115 83 88 112 116 77 114 71 93 116 87 88 112 116 93 116 87 89 115 83 89 115 123 93 116 87 78 117 72 74 106 114 89 115 83 90 118 84 89 115 123 78 117 72 94 119 88 89 115 123 94 119 88 90 118 124 90 118 125 94 119 129 79 120 73 74 106 68 90 118 126 86 107 80 90 118 127 79 120 73 95 121 89 90 118 128 95 121 130 86 107 122 86 107 122 95 121 130 75 109 69 75 109 69 101 122 95 96 123 90 101 122 95 84 124 78 110 125 104 101 122 95 110 125 104 96 123 90 96 123 90 110 125 104 80 126 74 76 111 70 102 127 96 97 128 91 80 126 74 106 129 119 118 130 113 118 130 113 102 127 96 80 126 74 102 127 96 118 130 79 117 131 112 117 131 112 97 128 91 102 127 96 97 128 91 117 131 112 210 132 111 210 132 111 81 133 75 97 128 91 77 114 71 103 134 97 98 135 92 103 134 97 81 133 115 107 136 101 103 134 97 107 136 101 98 135 92 98 135 92 107 136 331 82 137 76 78 117 72 104 138 98 99 139 93 104 138 98 82 137 76 108 140 102 104 138 98 108 140 102 99 139 93 99 139 93 108 140 102 83 141 77 79 120 73 105 142 99 100 143 94 105 142 99 83 141 77 109 144 103 105 142 99 109 144 103 100 143 94 100 143 94 109 144 103 84 124 78 80 126 74 102 127 96 96 123 90 102 127 96 76 111 70 91 110 85 102 127 96 91 110 85 96 123 90 96 123 90 91 110 85 75 109 69 81 133 75 103 134 118 97 128 91 103 134 97 77 114 71 92 113 117 103 134 118 92 113 86 97 128 91 97 128 91 92 113 86 76 111 70 82 137 76 104 138 98 98 135 92 104 138 98 78 117 72 93 116 87 104 138 98 93 116 87 98 135 92 98 135 92 93 116 87 77 114 71 83 141 77 105 142 99 99 139 93 105 142 99 79 120 73 94 119 129 105 142 99 94 119 129 99 139 93 99 139 93 94 119 88 78 117 72 84 124 78 101 122 95 100 143 94 101 122 95 75 109 69 95 121 130 101 122 95 95 121 89 100 143 94 100 143 94 95 121 89 79 120 73 85 145 330 112 146 106 111 147 105 81 133 75 210 132 111 58 148 67 58 148 67 112 146 132 81 133 75 112 146 133 58 148 131 116 149 110 116 149 110 111 147 332 112 146 133 111 147 332 116 149 110 106 129 119 106 129 119 80 126 74 111 147 332 85 145 330 113 150 107 112 146 134 113 150 333 82 137 76 107 136 331 113 150 333 107 136 331 112 146 135 112 146 329 107 136 101 81 133 115 85 145 330 114 151 108 113 150 107 114 151 108 83 141 77 108 140 102 114 151 108 108 140 102 113 150 107 113 150 333 108 140 102 82 137 76 85 145 330 115 152 109 114 151 108 115 152 109 84 124 78 109 144 103 115 152 109 109 144 103 114 151 108 114 151 108 109 144 103 83 141 77 85 145 330 111 147 105 115 152 109 111 147 332 80 126 74 110 125 104 111 147 105 110 125 104 115 152 109 115 152 109 110 125 104 84 124 78 125 153 179 137 154 147 138 155 148 137 154 334 126 156 121 141 157 151 137 154 334 141 157 151 138 155 180 138 155 181 141 157 252 127 158 137 125 153 179 138 155 182 128 159 138 138 155 183 127 158 137 142 160 152 138 155 182 142 160 184 128 159 138 125 153 179 128 159 138 139 161 149 128 159 138 143 162 153 139 161 149 139 161 149 143 162 153 129 163 139 125 153 179 139 161 149 140 164 150 139 161 149 129 163 139 144 165 154 139 161 149 144 165 154 140 164 150 140 164 150 144 165 154 130 166 140 125 153 179 140 164 150 137 154 147 140 164 150 130 166 140 145 167 155 140 164 150 145 167 155 137 154 147 137 154 334 145 167 155 126 156 121 126 156 121 150 168 160 146 169 156 150 168 160 135 170 145 158 171 168 150 168 160 158 171 168 146 169 156 146 169 156 158 171 168 131 172 141 127 158 137 151 173 161 147 174 157 151 173 161 131 172 141 155 175 165 151 173 161 155 175 165 147 174 157 147 174 157 155 175 165 132 176 142 152 177 162 132 176 142 156 178 166 129 163 139 153 179 163 148 180 158 133 181 143 202 182 174 206 183 178 206 183 178 153 179 163 133 181 143 153 179 163 206 183 178 205 184 177 205 184 177 148 180 158 153 179 163 148 180 158 205 184 177 119 185 100 119 185 100 134 186 144 148 180 158 130 166 140 154 187 164 149 188 159 154 187 164 134 186 144 157 189 167 154 187 164 157 189 167 149 188 159 149 188 159 157 189 335 135 170 145 131 172 141 151 173 161 146 169 156 151 173 161 127 158 137 141 157 252 151 173 161 141 157 252 146 169 156 146 169 156 141 157 151 126 156 121 132 176 142 152 177 162 147 174 157 152 177 162 142 160 152 147 174 157 147 174 157 142 160 152 127 158 137 153 179 163 129 163 139 143 162 153 134 186 144 154 187 164 148 180 158 154 187 164 130 166 140 144 165 154 154 187 164 144 165 154 148 180 158 148 180 158 144 165 154 129 163 139 135 170 145 150 168 160 149 188 159 150 168 160 126 156 121 145 167 155 150 168 160 145 167 155 149 188 159 149 188 159 145 167 155 130 166 140 136 190 146 160 191 170 159 192 169 160 191 170 132 176 142 155 175 165 160 191 170 155 175 165 159 192 169 159 192 169 155 175 165 131 172 141 136 190 146 161 193 171 160 191 170 161 193 171 133 181 185 156 178 166 161 193 171 156 178 166 160 191 170 160 191 170 156 178 166 132 176 142 136 190 146 162 194 172 161 193 171 134 186 144 119 185 100 204 195 251 204 195 251 162 194 187 134 186 144 162 194 187 204 195 251 203 196 175 203 196 175 161 193 120 162 194 187 161 193 120 203 196 175 202 182 174 202 182 174 133 181 143 161 193 120 136 190 146 163 197 173 162 194 188 163 197 253 135 170 145 157 189 335 163 197 253 157 189 335 162 194 249 162 194 250 157 189 167 134 186 144 136 190 146 159 192 169 163 197 173 159 192 169 131 172 141 158 171 168 159 192 169 158 171 168 163 197 173 163 197 253 158 171 168 135 170 145 164 198 197 175 199 208 176 200 209 175 199 208 165 201 198 180 202 213 175 199 208 180 202 213 176 200 209 176 200 209 180 202 213 166 203 199 164 198 235 176 200 242 177 204 210 176 200 242 166 203 199 181 205 214 176 200 242 181 205 214 177 204 210 177 204 210 181 205 214 167 206 200 164 198 236 177 204 243 178 207 211 177 204 243 167 206 200 182 208 215 177 204 243 182 208 215 178 207 211 178 207 211 182 208 215 168 209 201 164 198 237 178 207 244 179 210 212 178 207 244 168 209 201 183 211 216 178 207 244 183 211 216 179 210 212 179 210 212 183 211 216 169 212 202 164 198 238 179 210 245 175 199 240 179 210 245 169 212 202 184 213 217 179 210 245 184 213 217 175 199 240 175 199 208 184 213 241 165 201 198 165 201 198 142 214 192 185 215 218 166 203 199 190 216 223 186 217 219 190 216 223 170 218 203 194 219 227 190 216 223 194 219 227 186 217 219 186 217 219 194 219 227 171 220 204 167 206 200 191 221 224 187 222 220 191 221 224 171 220 204 195 223 228 191 221 224 195 223 228 187 222 220 187 222 220 195 223 228 172 224 205 168 209 201 192 225 225 188 226 221 192 225 225 172 224 205 196 227 229 192 225 225 196 227 229 188 226 221 188 226 221 196 227 229 173 228 206 169 212 202 193 229 226 189 230 222 193 229 226 173 228 206 197 231 230 193 229 226 197 231 230 189 230 222 189 230 222 197 231 230 153 232 195 170 218 203 190 216 223 185 215 218 190 216 223 166 203 199 180 202 213 190 216 223 180 202 213 185 215 218 185 215 218 180 202 213 165 201 198 171 220 204 191 221 224 186 217 219 191 221 224 167 206 200 181 205 214 191 221 224 181 205 214 186 217 219 186 217 219 181 205 214 166 203 199 172 224 205 192 225 225 187 222 220 192 225 225 168 209 201 182 208 215 192 225 225 182 208 215 187 222 220 187 222 220 182 208 215 167 206 200 173 228 206 193 229 226 188 226 221 193 229 226 169 212 202 183 211 216 193 229 226 183 211 216 188 226 221 188 226 221 183 211 216 168 209 201 153 232 195 143 233 193 189 230 222 128 234 190 165 201 198 184 213 241 128 234 239 184 213 217 189 230 222 189 230 222 184 213 217 169 212 202 174 235 207 199 236 232 198 237 231 199 236 232 171 220 204 194 219 227 199 236 232 194 219 227 198 237 231 198 237 231 194 219 227 170 218 203 174 235 246 200 238 233 199 236 255 200 238 233 172 224 205 195 223 228 200 238 233 195 223 228 199 236 255 199 236 255 195 223 228 171 220 204 174 235 247 201 239 234 200 238 256 201 239 234 173 228 206 196 227 229 201 239 234 196 227 229 200 238 256 200 238 256 196 227 229 172 224 205 174 235 248 122 240 259 121 241 176 121 241 176 201 239 257 174 235 248 207 242 258 153 232 195 197 231 230 197 231 230 120 243 66 207 242 258 201 239 257 121 241 176 120 243 66 120 243 66 197 231 230 201 239 257 201 239 257 197 231 230 173 228 206 198 237 261 123 244 186 122 240 259 122 240 259 174 235 248 198 237 261 207 242 258 124 245 189 133 246 260 133 246 260 153 232 195 207 242 258 185 215 218 152 247 194 156 248 196 156 248 196 170 218 203 185 215 218 156 248 196 133 246 191 198 237 254 198 237 254 170 218 203 156 248 196 124 245 189 123 244 186 198 237 261 198 237 261 133 246 260 124 245 189 143 233 193 128 234 239 189 230 222 152 247 194 185 215 218 142 214 192 165 201 198 128 234 190 142 214 192 71 54 57 69 51 55 208 55 336 45 58 10 71 54 57 70 56 56 45 58 10 39 57 4 66 59 19 42 61 7 55 89 14 71 54 57 42 61 7 45 58 10 43 45 8 41 60 6 40 62 5 43 45 8 56 87 15 41 60 61 44 48 9 57 88 16 56 87 15 68 52 45 57 88 16 69 51 55 71 54 57 116 93 63 58 92 48 57 88 47 61 66 315 55 89 312 209 69 337 209 69 337 55 89 312 42 61 13 49 70 52 42 61 13 40 62 11 40 62 11 41 60 12 46 63 41 59 94 49 41 60 319 117 90 320 41 60 42 56 87 46 210 91 338 60 65 314 47 67 50 46 63 318 59 94 313 62 95 316 61 66 315 61 66 315 48 68 51 47 67 50 48 68 22 120 76 28 121 73 29 59 94 49 118 97 65 106 96 54</p> </triangles> </mesh> </geometry> </library_geometries> <library_visual_scenes> <visual_scene id="Seasons.max" name="Seasons_max"> <node id="Summer-node" name="Summer" type="NODE"> <translate>0.00163 0 0</translate> <scale>0.112903 0.112903 0.043746</scale> <instance_geometry url="#Summer-mesh"> <bind_material> <technique_common> <instance_material symbol="texture" target="#texture"> <bind_vertex_input semantic="CHANNEL1" input_semantic="TEXCOORD" input_set="1"/> </instance_material> </technique_common> </bind_material> </instance_geometry> </node> <node id="VisualSceneNode" type="NODE"> <instance_light url="#ambient-environment-light"/> </node> <extra> <technique profile="FCOLLADA"> <start_time>0</start_time> <end_time>3.33333</end_time> </technique> </extra> <extra> <technique profile="MAX3D"> <frame_rate>30</frame_rate> </technique> </extra> </visual_scene> </library_visual_scenes> <scene> <instance_visual_scene url="#Seasons.max"/> </scene> </COLLADA> ; } }//package assets
Section 5
//Pochka (assets.Pochka) package assets { import flash.display.*; public class Pochka extends BitmapData { public function Pochka(_arg1:int, _arg2:int, _arg3:Boolean=true, _arg4:uint=4294967295){ super(_arg1, _arg2, _arg3, _arg4); } } }//package assets
Section 6
//Snowflake (assets.Snowflake) package assets { import flash.display.*; public class Snowflake extends BitmapData { public function Snowflake(_arg1:int, _arg2:int, _arg3:Boolean=true, _arg4:uint=4294967295){ super(_arg1, _arg2, _arg3, _arg4); } } }//package assets
Section 7
//SpringMap (assets.SpringMap) package assets { import flash.display.*; public class SpringMap extends BitmapData { public function SpringMap(_arg1:int, _arg2:int, _arg3:Boolean=true, _arg4:uint=4294967295){ super(_arg1, _arg2, _arg3, _arg4); } } }//package assets
Section 8
//SummerMap (assets.SummerMap) package assets { import flash.display.*; public class SummerMap extends BitmapData { public function SummerMap(_arg1:int, _arg2:int, _arg3:Boolean=true, _arg4:uint=4294967295){ super(_arg1, _arg2, _arg3, _arg4); } } }//package assets
Section 9
//WinterMap (assets.WinterMap) package assets { import flash.display.*; public class WinterMap extends BitmapData { public function WinterMap(_arg1:int, _arg2:int, _arg3:Boolean=true, _arg4:uint=4294967295){ super(_arg1, _arg2, _arg3, _arg4); } } }//package assets
Section 10
//WorldBack (assets.WorldBack) package assets { import flash.display.*; public class WorldBack extends MovieClip { } }//package assets
Section 11
//DebugDispatcher (com.blitzagency.xray.logger.events.DebugDispatcher) package com.blitzagency.xray.logger.events { import flash.events.*; public class DebugDispatcher extends EventDispatcher { public static var TRACE:String = "trace"; public function sendEvent(_arg1:String, _arg2:Object):void{ dispatchEvent(new DebugEvent(DebugDispatcher.TRACE, false, false, _arg2)); } } }//package com.blitzagency.xray.logger.events
Section 12
//DebugEvent (com.blitzagency.xray.logger.events.DebugEvent) package com.blitzagency.xray.logger.events { import flash.events.*; public class DebugEvent extends Event { public var obj:Object; public function DebugEvent(_arg1:String, _arg2:Boolean, _arg3:Boolean, _arg4:Object):void{ obj = new Object(); super(_arg1, _arg2, _arg3); obj = _arg4; } } }//package com.blitzagency.xray.logger.events
Section 13
//ObjectTools (com.blitzagency.xray.logger.util.ObjectTools) package com.blitzagency.xray.logger.util { import com.blitzagency.xray.logger.*; import flash.utils.*; public class ObjectTools { private static var log:XrayLog = new XrayLog(); public function resolveBaseType(_arg1:Object):String{ return (""); } public static function getImmediateClassPath(_arg1:Object):String{ var _local2:String; var _local3:String; _local2 = getQualifiedClassName(_arg1); _local3 = getQualifiedSuperclassName(_arg1); _local2 = ((_local2.indexOf("::") > -1)) ? _local2.split("::").join(".") : _local2; if (_local3 == null){ return (_local2); }; _local3 = ((_local3.indexOf("::") > -1)) ? _local3.split("::").join(".") : _local3; return (((_local3 + ".") + _local2)); } public static function getFullClassPath(_arg1:Object):String{ var _local2:XML; var _local3:Array; var _local4:String; var _local5:XML; var _local6:String; _local2 = describeType(_arg1); _local3 = []; _local4 = getQualifiedClassName(_arg1); _local4 = ((_local4.indexOf("::") > -1)) ? _local4.split("::").join(".") : _local4; _local3.push(_local4); for each (_local5 in _local2.extendsClass) { _local6 = ((_local5.@type.toString().indexOf("::") > -1)) ? _local5.@type.toString().split("::")[1] : _local5.@type.toString(); _local3.push(_local6); }; return (_local3.join(".")); } } }//package com.blitzagency.xray.logger.util
Section 14
//PropertyTools (com.blitzagency.xray.logger.util.PropertyTools) package com.blitzagency.xray.logger.util { import flash.utils.*; public class PropertyTools { private static function getVariables():void{ } public static function getProperties(_arg1:Object):Array{ var ary:Array; var xmlDoc:XML; var item:XML; var name:String; var type:String; var value:Object; var obj = _arg1; ary = []; try { xmlDoc = describeType(obj); for each (item in xmlDoc.variable) { name = item.@name.toString(); type = item.@type.toString(); value = ((obj[name])!=null) ? obj[name] : ""; ary.push({name:name, type:type, value:value}); }; } catch(e:Error) { }; return (ary); } private static function getMethods():void{ } } }//package com.blitzagency.xray.logger.util
Section 15
//Debug (com.blitzagency.xray.logger.Debug) package com.blitzagency.xray.logger { import flash.events.*; import flash.utils.*; import com.blitzagency.xray.logger.events.*; import flash.net.*; public class Debug { private static var connected:Boolean = false; private static var xrayLC:LocalConnection; private static var ed:DebugDispatcher = new DebugDispatcher(); public static function traceObject(_arg1:Object, _arg2:Number=254, _arg3:Number=0, _arg4:String="", _arg5:Number=0):void{ var recurseDepth:Number; var indent:Number; var prop:String; var lead:String; var i:Number; var obj:String; var o = _arg1; var pRecurseDepth = _arg2; var pIndent = _arg3; var pPackage = _arg4; var pLevel = _arg5; try { recurseDepth = pRecurseDepth; indent = pIndent; for (prop in o) { lead = ""; i = 0; while (i < indent) { lead = (lead + " "); i = (i + 1); }; obj = o[prop].toString(); if ((o[prop] is Array)){ obj = "[Array]"; }; if (obj == "[object Object]"){ obj = "[Object]"; }; Debug.trace((((lead + prop) + ": ") + obj), pPackage, pLevel); if (recurseDepth > 0){ Debug.traceObject(o[prop], (recurseDepth - 1), (indent + 1), pPackage, pLevel); }; }; } catch(e:Error) { }; } public static function trace(_arg1:Object, _arg2:String="", _arg3:Number=0):void{ var msg:String; var pMsg = _arg1; var pPackage = _arg2; var pLevel = _arg3; ed.sendEvent(DebugDispatcher.TRACE, {message:pMsg, classPackage:pPackage}); if (!connected){ makeConnection(); }; if (connected){ try { msg = ((String(pMsg).length >= 39995)) ? (String(pMsg).substr(0, 39995) + "...") : String(pMsg); xrayLC.send("_xray_view_conn", "setTrace", msg, pLevel, pPackage); } catch(e:LogError) { LogError("No Xray Interface running"); }; }; } private static function makeConnection():void{ var err:LogError; xrayLC = new LocalConnection(); xrayLC.addEventListener("status", statusHandler); xrayLC.allowDomain("*"); try { xrayLC.connect(("_xray_standAlone_debug" + getTimer())); connected = true; } catch(e:Error) { err = new LogError("log"); setTimeout(makeConnection, 1000); }; } public static function addEventListener(_arg1:String, _arg2:Function):void{ ed.addEventListener(_arg1, _arg2); } private static function initialize():Boolean{ ed = new DebugDispatcher(); return (true); } private static function statusHandler(_arg1:StatusEvent):void{ if ((((((_arg1.code == null)) && ((_arg1.level == "error")))) && (connected))){ connected = false; } else { if ((((_arg1.level == "status")) && ((_arg1.code == null)))){ connected = true; }; }; } } }//package com.blitzagency.xray.logger class LogError extends Error { private function LogError(_arg1:String){ super(_arg1); } }
Section 16
//Log (com.blitzagency.xray.logger.Log) package com.blitzagency.xray.logger { import com.blitzagency.xray.logger.util.*; public class Log { private var level:Number; private var caller:String;// = "" private var classPackage:String; private var dump:Object; private var message:String; public function Log(_arg1:String, _arg2:Object, _arg3:Number, ... _args){ var err:LogError; var nullArray:Array; var str:String; var p_message = _arg1; var p_dump = _arg2; var p_level = _arg3; var rest = _args; caller = ""; super(); try { nullArray.push("bogus"); } catch(e:Error) { err = new LogError("log"); } finally { if (err.hasOwnProperty("getStackTrace")){ str = err.getStackTrace(); setCaller(resolveCaller(str)); } else { setCaller(""); }; setMessage(p_message); setDump(p_dump); setLevel(p_level); setClassPackage(p_dump); }; } public function setLevel(_arg1:Number):void{ level = _arg1; } public function getCaller():String{ return (caller); } public function setMessage(_arg1:String):void{ message = _arg1; } public function getLevel():Number{ return (level); } public function getDump():Object{ return (dump); } public function setCaller(_arg1:String):void{ caller = _arg1; } public function setClassPackage(_arg1:Object):void{ classPackage = ObjectTools.getImmediateClassPath(_arg1); } public function getMessage():String{ return (message); } public function getClassPackage():String{ return (classPackage); } public function setDump(_arg1:Object):void{ dump = _arg1; } private function resolveCaller(_arg1:String):String{ var ary:Array; var str = _arg1; ary = []; try { str = str.split("\n").join(""); ary = str.split("\tat "); str = ary[3]; } catch(e:Error) { } finally { str = ""; }; return (str); } } }//package com.blitzagency.xray.logger class LogError extends Error { private function LogError(_arg1:String){ super(_arg1); } }
Section 17
//Logger (com.blitzagency.xray.logger.Logger) package com.blitzagency.xray.logger { public interface Logger { function setLevel(_arg1:Number=0):void; function debug(_arg1:Log):void; function fatal(_arg1:Log):void; function warn(_arg1:Log):void; function error(_arg1:Log):void; function log(_arg1:String, _arg2:String, _arg3:String, _arg4:Number, _arg5:Object=null):void; function info(_arg1:Log):void; } }//package com.blitzagency.xray.logger
Section 18
//XrayLog (com.blitzagency.xray.logger.XrayLog) package com.blitzagency.xray.logger { public class XrayLog { private var logger:XrayLogger; public function XrayLog(){ logger = XrayLogger.getInstance(); } public function debug(_arg1:String, ... _args):void{ var _local3:Number; if (_args.length == 0){ logger.debug(new Log(_arg1, null, XrayLogger.DEBUG)); }; _local3 = 0; while (_local3 < _args.length) { if (_local3 > 0){ _arg1 = ""; }; logger.debug(new Log(_arg1, _args[_local3], XrayLogger.DEBUG)); _local3++; }; } public function fatal(_arg1:String, ... _args):void{ var _local3:Number; if (_args.length == 0){ logger.fatal(new Log(_arg1, null, XrayLogger.FATAL)); }; _local3 = 0; while (_local3 < _args.length) { if (_local3 > 0){ _arg1 = ""; }; logger.fatal(new Log(_arg1, _args[_local3], XrayLogger.FATAL)); _local3++; }; } public function info(_arg1:String, ... _args):void{ var _local3:Number; if (_args.length == 0){ logger.info(new Log(_arg1, null, XrayLogger.INFO)); }; _local3 = 0; while (_local3 < _args.length) { if (_local3 > 0){ _arg1 = ""; }; logger.info(new Log(_arg1, _args[_local3], XrayLogger.INFO)); _local3++; }; } public function warn(_arg1:String, ... _args):void{ var _local3:Number; if (_args.length == 0){ logger.warn(new Log(_arg1, null, XrayLogger.WARN)); }; _local3 = 0; while (_local3 < _args.length) { if (_local3 > 0){ _arg1 = ""; }; logger.warn(new Log(_arg1, _args[_local3], XrayLogger.WARN)); _local3++; }; } public function error(_arg1:String, ... _args):void{ var _local3:Number; if (_args.length == 0){ logger.error(new Log(_arg1, null, XrayLogger.ERROR)); }; _local3 = 0; while (_local3 < _args.length) { if (_local3 > 0){ _arg1 = ""; }; logger.error(new Log(_arg1, _args[_local3], XrayLogger.ERROR)); _local3++; }; } } }//package com.blitzagency.xray.logger
Section 19
//XrayLogger (com.blitzagency.xray.logger.XrayLogger) package com.blitzagency.xray.logger { import flash.events.*; import flash.utils.*; import com.blitzagency.xray.logger.util.*; public class XrayLogger extends EventDispatcher implements Logger { private var displayObjectRecursionDepth:Number;// = 3 private var level:Number;// = 0 private var indentation:Number;// = 0 private var objectRecursionDepth:Number;// = 254 private var filters:Array; public static var FATAL:Number = 4; public static var WARN:Number = 2; public static var ERROR:Number = 3; public static var INFO:Number = 1; public static var DEBUG:Number = 0; private static var _instance:XrayLogger = null; public static var NONE:Number = 5; public function XrayLogger(){ level = 0; displayObjectRecursionDepth = 3; objectRecursionDepth = 254; indentation = 0; filters = []; super(); } public function checkFilters():Boolean{ var _local1:uint; if (filters.length == 0){ return (true); }; _local1 = 0; while (_local1 < filters.length) { _local1++; }; return (true); } public function debug(_arg1:Log):void{ if (_arg1.getLevel() == level){ log(_arg1.getMessage(), _arg1.getCaller(), _arg1.getClassPackage(), 0, _arg1.getDump()); }; } public function setIndentation(_arg1:Number=0):void{ indentation = _arg1; } public function error(_arg1:Log):void{ if (_arg1.getLevel() >= level){ log(_arg1.getMessage(), _arg1.getCaller(), _arg1.getClassPackage(), 3, _arg1.getDump()); }; } public function setLevel(_arg1:Number=0):void{ level = _arg1; } public function fatal(_arg1:Log):void{ if (_arg1.getLevel() >= level){ log(_arg1.getMessage(), _arg1.getCaller(), _arg1.getClassPackage(), 4, _arg1.getDump()); }; } public function warn(_arg1:Log):void{ if (_arg1.getLevel() >= level){ log(_arg1.getMessage(), _arg1.getCaller(), _arg1.getClassPackage(), 2, _arg1.getDump()); }; } public function setObjectRecursionDepth(_arg1:Number):void{ objectRecursionDepth = _arg1; } public function setDisplayClipRecursionDepth(_arg1:Number):void{ displayObjectRecursionDepth = _arg1; } public function info(_arg1:Log):void{ if (_arg1.getLevel() >= level){ log(_arg1.getMessage(), _arg1.getCaller(), _arg1.getClassPackage(), 1, _arg1.getDump()); }; } public function log(_arg1:String, _arg2:String, _arg3:String, _arg4:Number, _arg5:Object=null):void{ var _local6:String; var _local7:String; var _local8:String; var _local9:Object; _local6 = (("(" + getTimer()) + ") "); if (_arg3.length > 0){ _local6 = (_local6 + (_arg2 + "\n")); }; _local6 = (_local6 + _arg1); if (_arg1.length > 0){ Debug.trace(_local6, _arg3, _arg4); }; if (_arg5 == null){ return; }; _local7 = typeof(_arg5); if ((((((((((_local7 == "string")) || ((_local7 == "number")))) || ((_local7 == "boolean")))) || ((_local7 == "undefined")))) || ((_local7 == "null")))){ Debug.trace(_arg5, _arg3, _arg4); } else { if (_local7 == "xml"){ Debug.trace(_arg5.toString(), _arg3, _arg4); } else { _local8 = ObjectTools.getImmediateClassPath(_arg5); if ((((_local8 == "Object")) || ((_local8 == "Object.Array")))){ Debug.traceObject(_arg5, objectRecursionDepth, indentation, _arg3, _arg4); } else { _local9 = PropertyTools.getProperties(_arg5); Debug.traceObject(_local9, displayObjectRecursionDepth, indentation, _arg3, _arg4); }; }; }; } public function setFilters(_arg1:Array):void{ filters = _arg1; } public static function getInstance():XrayLogger{ if (_instance == null){ _instance = new (XrayLogger); }; return (_instance); } public static function resolveLevelAsName(_arg1:Number):String{ switch (_arg1){ case 0: return ("debug"); case 1: return ("info"); case 2: return ("warn"); case 3: return ("error"); case 4: return ("fatal"); default: return ("debug"); }; } } }//package com.blitzagency.xray.logger
Section 20
//FreeCamera3D (org.papervision3d.cameras.FreeCamera3D) package org.papervision3d.cameras { import org.papervision3d.core.proto.*; import org.papervision3d.core.*; public class FreeCamera3D extends CameraObject3D { public function FreeCamera3D(_arg1:Number=2, _arg2:Number=100, _arg3:Object=null){ super(_arg1, _arg2, _arg3); } override public function transformView(_arg1:Matrix3D=null):void{ if (this._transformDirty){ updateTransform(); }; super.transformView(); } } }//package org.papervision3d.cameras
Section 21
//DefaultTriangleCuller (org.papervision3d.core.culling.DefaultTriangleCuller) package org.papervision3d.core.culling { import org.papervision3d.core.proto.*; import org.papervision3d.objects.*; import org.papervision3d.core.geom.*; public class DefaultTriangleCuller implements ITriangleCuller { private static var y2:Number; private static var y1:Number; private static var y0:Number; private static var x0:Number; private static var x1:Number; private static var x2:Number; public function testFace(_arg1:DisplayObject3D, _arg2:Face3DInstance, _arg3:Vertex2D, _arg4:Vertex2D, _arg5:Vertex2D):Boolean{ var _local6:MaterialObject3D; if (((((_arg3.visible) && (_arg4.visible))) && (_arg5.visible))){ _local6 = (_arg2.face.material) ? _arg2.face.material : _arg1.material; if (_local6.invisible){ return (false); }; x0 = _arg3.x; y0 = _arg3.y; x1 = _arg4.x; y1 = _arg4.y; x2 = _arg5.x; y2 = _arg5.y; if (_local6.oneSide){ if (_local6.opposite){ if ((((x2 - x0) * (y1 - y0)) - ((y2 - y0) * (x1 - x0))) > 0){ return (false); }; } else { if ((((x2 - x0) * (y1 - y0)) - ((y2 - y0) * (x1 - x0))) < 0){ return (false); }; }; }; return (true); }; return (false); } } }//package org.papervision3d.core.culling
Section 22
//ITriangleCuller (org.papervision3d.core.culling.ITriangleCuller) package org.papervision3d.core.culling { import org.papervision3d.objects.*; import org.papervision3d.core.geom.*; public interface ITriangleCuller { function testFace(_arg1:DisplayObject3D, _arg2:Face3DInstance, _arg3:Vertex2D, _arg4:Vertex2D, _arg5:Vertex2D):Boolean; } }//package org.papervision3d.core.culling
Section 23
//IFaceDrawer (org.papervision3d.core.draw.IFaceDrawer) package org.papervision3d.core.draw { import flash.display.*; import org.papervision3d.objects.*; import org.papervision3d.core.geom.*; public interface IFaceDrawer { function drawFace3D(_arg1:DisplayObject3D, _arg2:Face3D, _arg3:Graphics, _arg4:Vertex2D, _arg5:Vertex2D, _arg6:Vertex2D):int; } }//package org.papervision3d.core.draw
Section 24
//Face3D (org.papervision3d.core.geom.Face3D) package org.papervision3d.core.geom { import flash.display.*; import org.papervision3d.core.proto.*; import org.papervision3d.core.*; import org.papervision3d.objects.*; public class Face3D { public var vertices:Array; public var face3DInstance:Face3DInstance; public var id:Number; public var uv:Array; public var material:MaterialObject3D; private var renderMat:MaterialObject3D; public var faceNormal:Number3D; public var screenZ:Number; public var _materialName:String; public var visible:Boolean; public var v0:Vertex3D; public var v1:Vertex3D; public var v2:Vertex3D; private static var _totalFaces:Number = 0; public function Face3D(_arg1:Array, _arg2:MaterialObject3D=null, _arg3:Array=null){ this.vertices = _arg1; v0 = _arg1[0]; v1 = _arg1[1]; v2 = _arg1[2]; this.material = _arg2; this.uv = _arg3; this.id = _totalFaces++; face3DInstance = new Face3DInstance(this); createNormal(); } protected function createNormal():void{ var _local1:Number3D; var _local2:Number3D; var _local3:Number3D; var _local4:Number3D; var _local5:Number3D; _local1 = v0.toNumber3D(); _local2 = v1.toNumber3D(); _local3 = v2.toNumber3D(); _local4 = Number3D.sub(_local2, _local1); _local5 = Number3D.sub(_local3, _local1); faceNormal = Number3D.cross(_local5, _local4); faceNormal.normalize(); } public function render(_arg1:DisplayObject3D, _arg2:Sprite):Number{ renderMat = (material) ? material : _arg1.material; return (renderMat.drawFace3D(_arg1, this, _arg2.graphics, v0.vertex2DInstance, v1.vertex2DInstance, v2.vertex2DInstance)); } } }//package org.papervision3d.core.geom
Section 25
//Face3DInstance (org.papervision3d.core.geom.Face3DInstance) package org.papervision3d.core.geom { import flash.display.*; import org.papervision3d.core.*; import org.papervision3d.objects.*; public class Face3DInstance { public var container:Sprite; public var faceNormal:Number3D; public var screenZ:Number; public var visible:Boolean;// = false public var instance:DisplayObject3D; public var face:Face3D; public function Face3DInstance(_arg1:Face3D, _arg2:DisplayObject3D=null){ visible = false; super(); this.face = _arg1; this.instance = _arg2; faceNormal = new Number3D(); } } }//package org.papervision3d.core.geom
Section 26
//Mesh3D (org.papervision3d.core.geom.Mesh3D) package org.papervision3d.core.geom { import org.papervision3d.core.proto.*; import org.papervision3d.core.*; import org.papervision3d.objects.*; import flash.utils.*; import org.papervision3d.core.culling.*; public class Mesh3D extends Vertices3D { public function Mesh3D(_arg1:MaterialObject3D, _arg2:Array, _arg3:Array, _arg4:String=null, _arg5:Object=null){ super(_arg2, _arg4, _arg5); this.geometry.faces = ((_arg3) || (new Array())); this.material = ((_arg1) || (MaterialObject3D.DEFAULT)); } override public function project(_arg1:DisplayObject3D, _arg2:CameraObject3D, _arg3:Array=null):Number{ var _local4:Array; var _local5:Number; var _local6:Number; var _local7:ITriangleCuller; var _local8:Vertex2D; var _local9:Vertex2D; var _local10:Vertex2D; var _local11:Face3DInstance; var _local12:Face3D; var _local13:MaterialObject3D; super.project(_arg1, _arg2, _arg3); if (!_arg3){ _arg3 = this._sorted; }; _local4 = this.geometry.faces; _local5 = 0; _local6 = 0; _local7 = scene.triangleCuller; for each (_local12 in _local4) { _local13 = (_local12.material) ? _local12.material : material; _local11 = _local12.face3DInstance; _local11.instance = this; _local8 = _local12.v0.vertex2DInstance; _local9 = _local12.v1.vertex2DInstance; _local10 = _local12.v2.vertex2DInstance; if ((_local11.visible = _local7.testFace(this, _local11, _local8, _local9, _local10))){ if (_local13.needsFaceNormals){ _local12.faceNormal.copyTo(_local11.faceNormal); Matrix3D.multiplyVector3x3(this.view, _local11.faceNormal); }; if (_local13.needsVertexNormals){ _local12.v0.normal.copyTo(_local12.v0.vertex2DInstance.normal); Matrix3D.multiplyVector3x3(this.view, _local12.v0.vertex2DInstance.normal); _local12.v1.normal.copyTo(_local12.v1.vertex2DInstance.normal); Matrix3D.multiplyVector3x3(this.view, _local12.v1.vertex2DInstance.normal); _local12.v2.normal.copyTo(_local12.v2.vertex2DInstance.normal); Matrix3D.multiplyVector3x3(this.view, _local12.v2.vertex2DInstance.normal); }; switch (meshSort){ case DisplayObject3D.MESH_SORT_CENTER: _local5 = (_local5 + (_local11.screenZ = (((_local8.z + _local9.z) + _local10.z) * 0.333))); break; case DisplayObject3D.MESH_SORT_FAR: _local5 = (_local5 + (_local11.screenZ = Math.max(_local8.z, _local9.z, _local10.z))); break; case DisplayObject3D.MESH_SORT_CLOSE: _local5 = (_local5 + (_local11.screenZ = Math.min(_local8.z, _local9.z, _local10.z))); break; }; _local6++; _arg3.push(_local11); } else { scene.stats.culledTriangles++; }; }; return ((this.screenZ = (_local5 / _local6))); } public function mergeVertices():void{ var _local1:Dictionary; var _local2:Array; var _local3:Vertex3D; var _local4:Face3D; var _local5:Vertex3D; _local1 = new Dictionary(); _local2 = new Array(); for each (_local3 in this.geometry.vertices) { for each (_local5 in _local1) { if ((((((_local3.x == _local5.x)) && ((_local3.y == _local5.y)))) && ((_local3.z == _local5.z)))){ _local1[_local3] = _local5; break; }; }; if (!_local1[_local3]){ _local1[_local3] = _local3; _local2.push(_local3); }; }; this.geometry.vertices = _local2; for each (_local4 in this.geometry.faces) { _local4.v0 = _local1[_local4.v0]; _local4.v1 = _local1[_local4.v1]; _local4.v2 = _local1[_local4.v2]; }; } public function projectTexture(_arg1:String="x", _arg2:String="y"):void{ var _local3:Array; var _local4:Object; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:MaterialObject3D; var _local10:String; var _local11:Face3D; var _local12:Array; var _local13:Vertex3D; var _local14:Vertex3D; var _local15:Vertex3D; var _local16:NumberUV; var _local17:NumberUV; var _local18:NumberUV; _local3 = this.geometry.faces; _local4 = this.boundingBox(); _local5 = _local4.min[_arg1]; _local6 = _local4.size[_arg1]; _local7 = _local4.min[_arg2]; _local8 = _local4.size[_arg2]; _local9 = this.material; for (_local10 in _local3) { _local11 = _local3[Number(_local10)]; _local12 = _local11.vertices; _local13 = _local12[0]; _local14 = _local12[1]; _local15 = _local12[2]; _local16 = new NumberUV(((_local13[_arg1] - _local5) / _local6), ((_local13[_arg2] - _local7) / _local8)); _local17 = new NumberUV(((_local14[_arg1] - _local5) / _local6), ((_local14[_arg2] - _local7) / _local8)); _local18 = new NumberUV(((_local15[_arg1] - _local5) / _local6), ((_local15[_arg2] - _local7) / _local8)); _local11.uv = [_local16, _local17, _local18]; }; } } }//package org.papervision3d.core.geom
Section 27
//Vertex2D (org.papervision3d.core.geom.Vertex2D) package org.papervision3d.core.geom { import org.papervision3d.core.*; public class Vertex2D { public var visible:Boolean; public var normal:Number3D; public var extra:Object; public var x:Number; public var y:Number; public var z:Number; public function Vertex2D(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; this.visible = false; this.normal = new Number3D(); } public function clone():Vertex2D{ var _local1:Vertex2D; _local1 = new Vertex2D(x, y, z); _local1.visible = visible; _local1.extra = extra; return (_local1); } } }//package org.papervision3d.core.geom
Section 28
//Vertex3D (org.papervision3d.core.geom.Vertex3D) package org.papervision3d.core.geom { import org.papervision3d.core.*; import flash.utils.*; public class Vertex3D { public var vertex2DInstance:Vertex2D; public var connectedFaces:Dictionary; public var normal:Number3D; public var extra:Object; public var x:Number; public var y:Number; public var z:Number; public function Vertex3D(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; this.vertex2DInstance = new Vertex2D(); this.normal = new Number3D(); this.connectedFaces = new Dictionary(); } public function calculateNormal():void{ var _local1:Face3D; normal = new Number3D(); for each (_local1 in connectedFaces) { normal = Number3D.add(_local1.faceNormal, normal); }; normal.normalize(); } public function toNumber3D():Number3D{ return (new Number3D(x, y, z)); } public function clone():Vertex3D{ var _local1:Vertex3D; _local1 = new Vertex3D(x, y, z); _local1.extra = extra; _local1.vertex2DInstance = vertex2DInstance.clone(); _local1.normal = normal.clone(); return (_local1); } } }//package org.papervision3d.core.geom
Section 29
//Vertices3D (org.papervision3d.core.geom.Vertices3D) package org.papervision3d.core.geom { import org.papervision3d.core.proto.*; import org.papervision3d.core.*; import org.papervision3d.objects.*; import org.papervision3d.scenes.*; public class Vertices3D extends DisplayObject3D { public function Vertices3D(_arg1:Array, _arg2:String=null, _arg3:Object=null){ super(_arg2, new GeometryObject3D(), _arg3); this.geometry.vertices = ((_arg1) || (new Array())); } override public function project(_arg1:DisplayObject3D, _arg2:CameraObject3D, _arg3:Array=null):Number{ var _local4:Matrix3D; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Vertex3D; var _local21:Vertex2D; var _local22:Number; var _local23:Array; var _local24:int; var _local25:Number; var _local26:Number; super.project(_arg1, _arg2, _arg3); _local4 = this.view; _local5 = _local4.n11; _local6 = _local4.n12; _local7 = _local4.n13; _local8 = _local4.n21; _local9 = _local4.n22; _local10 = _local4.n23; _local11 = _local4.n31; _local12 = _local4.n32; _local13 = _local4.n33; _local23 = this.geometry.vertices; _local24 = _local23.length; _local25 = _arg2.focus; _local26 = (_local25 * _arg2.zoom); while ((_local20 = _local23[--_local24])) { _local14 = _local20.x; _local15 = _local20.y; _local16 = _local20.z; _local19 = ((((_local14 * _local11) + (_local15 * _local12)) + (_local16 * _local13)) + _local4.n34); _local21 = _local20.vertex2DInstance; if ((_local21.visible = (_local19 > 0))){ _local17 = ((((_local14 * _local5) + (_local15 * _local6)) + (_local16 * _local7)) + _local4.n14); _local18 = ((((_local14 * _local8) + (_local15 * _local9)) + (_local16 * _local10)) + _local4.n24); _local22 = (_local26 / (_local25 + _local19)); _local21.x = (_local17 * _local22); _local21.y = (_local18 * _local22); _local21.z = _local19; }; }; return (0); } public function transformVertices(_arg1:Matrix3D):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Array; var _local15:int; var _local16:Vertex3D; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; _local2 = _arg1.n11; _local3 = _arg1.n12; _local4 = _arg1.n13; _local5 = _arg1.n21; _local6 = _arg1.n22; _local7 = _arg1.n23; _local8 = _arg1.n31; _local9 = _arg1.n32; _local10 = _arg1.n33; _local11 = _arg1.n14; _local12 = _arg1.n24; _local13 = _arg1.n34; _local14 = this.geometry.vertices; _local15 = _local14.length; while ((_local16 = _local14[--_local15])) { _local17 = _local16.x; _local18 = _local16.y; _local19 = _local16.z; _local20 = ((((_local17 * _local2) + (_local18 * _local3)) + (_local19 * _local4)) + _local11); _local21 = ((((_local17 * _local5) + (_local18 * _local6)) + (_local19 * _local7)) + _local12); _local22 = ((((_local17 * _local8) + (_local18 * _local9)) + (_local19 * _local10)) + _local13); _local16.x = _local20; _local16.y = _local21; _local16.z = _local22; }; } public function boundingBox():Object{ var _local1:Object; var _local2:Object; var _local3:String; var _local4:Vertex3D; _local1 = this.geometry.vertices; _local2 = new Object(); _local2.min = new Number3D(); _local2.max = new Number3D(); _local2.size = new Number3D(); for (_local3 in _local1) { _local4 = _local1[Number(_local3)]; _local2.min.x = ((_local2.min.x)==undefined) ? _local4.x : Math.min(_local4.x, _local2.min.x); _local2.max.x = ((_local2.max.x)==undefined) ? _local4.x : Math.max(_local4.x, _local2.max.x); _local2.min.y = ((_local2.min.y)==undefined) ? _local4.y : Math.min(_local4.y, _local2.min.y); _local2.max.y = ((_local2.max.y)==undefined) ? _local4.y : Math.max(_local4.y, _local2.max.y); _local2.min.z = ((_local2.min.z)==undefined) ? _local4.z : Math.min(_local4.z, _local2.min.z); _local2.max.z = ((_local2.max.z)==undefined) ? _local4.z : Math.max(_local4.z, _local2.max.z); }; _local2.size.x = (_local2.max.x - _local2.min.x); _local2.size.y = (_local2.max.y - _local2.min.y); _local2.size.z = (_local2.max.z - _local2.min.z); return (_local2); } } }//package org.papervision3d.core.geom
Section 30
//CameraObject3D (org.papervision3d.core.proto.CameraObject3D) package org.papervision3d.core.proto { import org.papervision3d.core.*; import org.papervision3d.objects.*; public class CameraObject3D extends DisplayObject3D { public var sort:Boolean; public var zoom:Number; public var focus:Number; private static var _flipY:Matrix3D = Matrix3D.scaleMatrix(1, -1, 1); public static var DEFAULT_POS:Number3D = new Number3D(0, 0, -1000); public function CameraObject3D(_arg1:Number=3, _arg2:Number=500, _arg3:Object=null){ this.x = (_arg3) ? ((_arg3.x) || (DEFAULT_POS.x)) : DEFAULT_POS.x; this.y = (_arg3) ? ((_arg3.y) || (DEFAULT_POS.y)) : DEFAULT_POS.y; this.z = (_arg3) ? ((_arg3.z) || (DEFAULT_POS.z)) : DEFAULT_POS.z; this.zoom = _arg1; this.focus = _arg2; this.sort = (_arg3) ? !((_arg3.sort == false)) : true; } public function transformView(_arg1:Matrix3D=null):void{ this.view = Matrix3D.inverse(Matrix3D.multiply(((_arg1) || (this.transform)), _flipY)); } public function pan(_arg1:Number):void{ super.yaw(_arg1); } public function tilt(_arg1:Number):void{ super.pitch(_arg1); } } }//package org.papervision3d.core.proto
Section 31
//DisplayObjectContainer3D (org.papervision3d.core.proto.DisplayObjectContainer3D) package org.papervision3d.core.proto { import flash.events.*; import org.papervision3d.materials.*; import org.papervision3d.objects.*; import org.papervision3d.*; import flash.utils.*; public class DisplayObjectContainer3D extends EventDispatcher { protected var _children:Dictionary; public var root:DisplayObjectContainer3D; private var _childrenTotal:int; protected var _childrenByName:Object; public function DisplayObjectContainer3D():void{ this._children = new Dictionary(false); this._childrenByName = new Dictionary(true); this._childrenTotal = 0; } public function getChildByName(_arg1:String):DisplayObject3D{ return (this._childrenByName[_arg1]); } public function addCollada(_arg1:String, _arg2:MaterialsList=null, _arg3:Number=1):void{ Papervision3D.log("The addCollada() method has been deprecated. Use addChildren( new Collada( filename ) )"); } public function removeChildByName(_arg1:String):DisplayObject3D{ return (removeChild(getChildByName(_arg1))); } public function get numChildren():int{ return (this._childrenTotal); } override public function toString():String{ return (childrenList()); } public function addChildren(_arg1:DisplayObject3D):DisplayObjectContainer3D{ var _local2:DisplayObject3D; for each (_local2 in _arg1.children) { _arg1.removeChild(_local2); this.addChild(_local2); }; return (this); } public function removeChild(_arg1:DisplayObject3D):DisplayObject3D{ if (_arg1){ delete this._childrenByName[this._children[_arg1]]; delete this._children[_arg1]; _arg1.parent = null; _arg1.root = null; return (_arg1); }; return (null); } public function addChild(_arg1:DisplayObject3D, _arg2:String=null):DisplayObject3D{ _arg2 = ((((_arg2) || (_arg1.name))) || (String(_arg1.id))); this._children[_arg1] = _arg2; this._childrenByName[_arg2] = _arg1; this._childrenTotal++; _arg1.parent = this; _arg1.root = this.root; return (_arg1); } public function childrenList():String{ var _local1:String; var _local2:String; _local1 = ""; for (_local2 in this._children) { _local1 = (_local1 + (_local2 + "\n")); }; return (_local1); } public function get children():Object{ return (this._childrenByName); } } }//package org.papervision3d.core.proto
Section 32
//GeometryObject3D (org.papervision3d.core.proto.GeometryObject3D) package org.papervision3d.core.proto { import flash.events.*; import org.papervision3d.materials.*; import org.papervision3d.core.*; import org.papervision3d.core.geom.*; import org.papervision3d.scenes.*; import flash.utils.*; public class GeometryObject3D extends EventDispatcher { protected var _boundingSphere2:Number; protected var _boundingSphereDirty:Boolean;// = true public var _ready:Boolean;// = false protected var _material:MaterialObject3D; public var faces:Array; public var vertices:Array; public function GeometryObject3D(_arg1:Object=null):void{ _ready = false; _boundingSphereDirty = true; super(); } public function transformVertices(_arg1:Matrix3D):void{ } public function get boundingSphere2():Number{ if (_boundingSphereDirty){ return (getBoundingSphere2()); }; return (_boundingSphere2); } public function getBoundingSphere2():Number{ var _local1:Number; var _local2:Number; var _local3:Vertex3D; _local1 = 0; for each (_local3 in this.vertices) { _local2 = (((_local3.x * _local3.x) + (_local3.y * _local3.y)) + (_local3.z * _local3.z)); _local1 = ((_local2)>_local1) ? _local2 : _local1; }; this._boundingSphereDirty = false; return ((_boundingSphere2 = _local1)); } private function createVertexNormals():void{ var _local1:Dictionary; var _local2:Face3D; var _local3:Vertex3D; _local1 = new Dictionary(true); for each (_local2 in faces) { _local2.v0.connectedFaces[_local2] = _local2; _local2.v1.connectedFaces[_local2] = _local2; _local2.v2.connectedFaces[_local2] = _local2; _local1[_local2.v0] = _local2.v0; _local1[_local2.v1] = _local2.v1; _local1[_local2.v2] = _local2.v2; }; for each (_local3 in _local1) { _local3.calculateNormal(); }; } public function transformUV(_arg1:MaterialObject3D):void{ var _local2:String; if (_arg1.bitmap){ for (_local2 in this.faces) { faces[_local2].transformUV(_arg1); }; }; } public function set ready(_arg1:Boolean):void{ if (_arg1){ createVertexNormals(); }; _ready = _arg1; } public function get ready():Boolean{ return (_ready); } } }//package org.papervision3d.core.proto
Section 33
//MaterialObject3D (org.papervision3d.core.proto.MaterialObject3D) package org.papervision3d.core.proto { import flash.display.*; import flash.events.*; import org.papervision3d.materials.*; import org.papervision3d.objects.*; import org.papervision3d.core.geom.*; import org.papervision3d.core.draw.*; public class MaterialObject3D extends EventDispatcher implements IFaceDrawer { public var widthOffset:Number;// = 0 public var name:String; public var scene:SceneObject3D; public var needsVertexNormals:Boolean;// = false public var heightOffset:Number;// = 0 public var fillAlpha:Number;// = 0 public var fillColor:Number; public var id:Number; public var invisible:Boolean;// = false public var smooth:Boolean;// = false public var bitmap:BitmapData; public var lineColor:Number; public var lineAlpha:Number;// = 0 public var oneSide:Boolean;// = true public var lineThickness:Number;// = 1 public var opposite:Boolean;// = false public var maxU:Number; public var needsFaceNormals:Boolean;// = false public var tiled:Boolean;// = false public var maxV:Number; public static var DEFAULT_COLOR:int = 0; public static var DEBUG_COLOR:int = 0xFF00FF; private static var _totalMaterialObjects:Number = 0; public function MaterialObject3D(){ smooth = false; tiled = false; lineColor = DEFAULT_COLOR; lineAlpha = 0; lineThickness = 1; fillColor = DEFAULT_COLOR; fillAlpha = 0; oneSide = true; invisible = false; opposite = false; needsFaceNormals = false; needsVertexNormals = false; widthOffset = 0; heightOffset = 0; super(); this.id = _totalMaterialObjects++; } public function get doubleSided():Boolean{ return (!(this.oneSide)); } public function drawFace3D(_arg1:DisplayObject3D, _arg2:Face3D, _arg3:Graphics, _arg4:Vertex2D, _arg5:Vertex2D, _arg6:Vertex2D):int{ return (0); } public function set doubleSided(_arg1:Boolean):void{ this.oneSide = !(_arg1); } public function updateBitmap():void{ } override public function toString():String{ return (((((("[MaterialObject3D] bitmap:" + this.bitmap) + " lineColor:") + this.lineColor) + " fillColor:") + fillColor)); } public function copy(_arg1:MaterialObject3D):void{ this.bitmap = _arg1.bitmap; this.smooth = _arg1.smooth; this.lineColor = _arg1.lineColor; this.lineAlpha = _arg1.lineAlpha; this.fillColor = _arg1.fillColor; this.fillAlpha = _arg1.fillAlpha; this.needsFaceNormals = _arg1.needsFaceNormals; this.needsVertexNormals = _arg1.needsVertexNormals; this.oneSide = _arg1.oneSide; this.opposite = _arg1.opposite; this.invisible = _arg1.invisible; this.scene = _arg1.scene; this.name = _arg1.name; this.maxU = _arg1.maxU; this.maxV = _arg1.maxV; } public function clone():MaterialObject3D{ var _local1:MaterialObject3D; _local1 = new MaterialObject3D(); _local1.copy(this); return (_local1); } public static function get DEFAULT():MaterialObject3D{ var _local1:MaterialObject3D; _local1 = new WireframeMaterial(); _local1.lineColor = (0xFFFFFF * Math.random()); _local1.lineAlpha = 1; _local1.fillColor = DEFAULT_COLOR; _local1.fillAlpha = 1; _local1.doubleSided = false; return (_local1); } public static function get DEBUG():MaterialObject3D{ var _local1:MaterialObject3D; _local1 = new (MaterialObject3D); _local1.lineColor = (0xFFFFFF * Math.random()); _local1.lineAlpha = 1; _local1.fillColor = DEBUG_COLOR; _local1.fillAlpha = 0.37; _local1.doubleSided = true; return (_local1); } } }//package org.papervision3d.core.proto
Section 34
//SceneObject3D (org.papervision3d.core.proto.SceneObject3D) package org.papervision3d.core.proto { import flash.display.*; import org.papervision3d.materials.*; import org.papervision3d.objects.*; import org.papervision3d.*; import flash.utils.*; import org.papervision3d.core.stat.*; import org.papervision3d.core.culling.*; public class SceneObject3D extends DisplayObjectContainer3D { public var triangleCuller:ITriangleCuller; public var container:Sprite; private var geometries:Dictionary; public var objects:Array; public var stats:RenderStatistics; public var materials:MaterialsList; public function SceneObject3D(_arg1:Sprite){ triangleCuller = new DefaultTriangleCuller(); super(); if (_arg1){ this.container = _arg1; } else { Papervision3D.log("Scene3D: container argument required."); }; this.objects = new Array(); this.materials = new MaterialsList(); Papervision3D.log((((((Papervision3D.NAME + " ") + Papervision3D.VERSION) + " (") + Papervision3D.DATE) + ")\n")); this.stats = new RenderStatistics(); this.stats.points = 0; this.stats.polys = 0; this.stats.triangles = 0; this.stats.performance = 0; this.stats.rendered = 0; this.root = this; } override public function addChild(_arg1:DisplayObject3D, _arg2:String=null):DisplayObject3D{ var _local3:DisplayObject3D; _local3 = super.addChild(_arg1, _arg2); _arg1.scene = this; this.objects.push(_local3); return (_local3); } public function renderCamera(_arg1:CameraObject3D):void{ var _local2:Array; var _local3:DisplayObject3D; var _local4:Number; stats.clear(); stats.performance = getTimer(); MovieMaterial.updateAnimatedBitmaps(); if (_arg1){ _arg1.transformView(); _local2 = this.objects; _local4 = _local2.length; while ((_local3 = _local2[--_local4])) { if (_local3.visible){ _local3.project(_arg1, _arg1); }; }; }; if (_arg1.sort){ this.objects.sortOn("screenZ", Array.NUMERIC); }; renderObjects(_arg1.sort); } protected function renderObjects(_arg1:Boolean):void{ } override public function removeChild(_arg1:DisplayObject3D):DisplayObject3D{ var _local2:int; super.removeChild(_arg1); _local2 = 0; while (_local2 < this.objects.length) { if (this.objects[_local2] === _arg1){ this.objects.splice(_local2, 1); return (_arg1); }; _local2++; }; return (_arg1); } } }//package org.papervision3d.core.proto
Section 35
//RenderStatistics (org.papervision3d.core.stat.RenderStatistics) package org.papervision3d.core.stat { public class RenderStatistics { public var points:int;// = 0 public var polys:int;// = 0 public var triangles:int;// = 0 public var pixels:Number; public var performance:int;// = 0 public var rendered:int;// = 0 public var culledTriangles:int;// = 0 public var particles:Number; public function RenderStatistics(){ performance = 0; points = 0; polys = 0; rendered = 0; triangles = 0; culledTriangles = 0; super(); } public function clear():void{ performance = 0; points = 0; polys = 0; rendered = 0; triangles = 0; pixels = 0; particles = 0; culledTriangles = 0; } public function toString():String{ return (new String(((((((((("Performance:" + performance) + ", Points:") + points) + " Polys:") + polys) + " Rendered:") + rendered) + " Culled:") + culledTriangles))); } } }//package org.papervision3d.core.stat
Section 36
//Matrix3D (org.papervision3d.core.Matrix3D) package org.papervision3d.core { public class Matrix3D { public var n31:Number; public var n32:Number; public var n11:Number; public var n13:Number; public var n14:Number; public var n33:Number; public var n12:Number; public var n21:Number; public var n22:Number; public var n23:Number; public var n24:Number; public var n34:Number; private static var toDEGREES:Number = 57.2957795130823; private static var toRADIANS:Number = 0.0174532925199433; public function Matrix3D(_arg1:Array=null){ if (((!(_arg1)) || ((_arg1.length < 12)))){ n11 = (n22 = (n33 = 1)); n12 = (n13 = (n14 = (n21 = (n23 = (n24 = (n31 = (n32 = (n34 = 0)))))))); } else { n11 = _arg1[0]; n12 = _arg1[1]; n13 = _arg1[2]; n14 = _arg1[3]; n21 = _arg1[4]; n22 = _arg1[5]; n23 = _arg1[6]; n24 = _arg1[7]; n31 = _arg1[8]; n32 = _arg1[9]; n33 = _arg1[10]; n34 = _arg1[11]; }; } public function calculateMultiply3x3(_arg1:Matrix3D, _arg2:Matrix3D):void{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; _local3 = _arg1.n11; _local4 = _arg2.n11; _local5 = _arg1.n21; _local6 = _arg2.n21; _local7 = _arg1.n31; _local8 = _arg2.n31; _local9 = _arg1.n12; _local10 = _arg2.n12; _local11 = _arg1.n22; _local12 = _arg2.n22; _local13 = _arg1.n32; _local14 = _arg2.n32; _local15 = _arg1.n13; _local16 = _arg2.n13; _local17 = _arg1.n23; _local18 = _arg2.n23; _local19 = _arg1.n33; _local20 = _arg2.n33; this.n11 = (((_local3 * _local4) + (_local9 * _local6)) + (_local15 * _local8)); this.n12 = (((_local3 * _local10) + (_local9 * _local12)) + (_local15 * _local14)); this.n13 = (((_local3 * _local16) + (_local9 * _local18)) + (_local15 * _local20)); this.n21 = (((_local5 * _local4) + (_local11 * _local6)) + (_local17 * _local8)); this.n22 = (((_local5 * _local10) + (_local11 * _local12)) + (_local17 * _local14)); this.n23 = (((_local5 * _local16) + (_local11 * _local18)) + (_local17 * _local20)); this.n31 = (((_local7 * _local4) + (_local13 * _local6)) + (_local19 * _local8)); this.n32 = (((_local7 * _local10) + (_local13 * _local12)) + (_local19 * _local14)); this.n33 = (((_local7 * _local16) + (_local13 * _local18)) + (_local19 * _local20)); } public function get trace():Number{ return ((((this.n11 + this.n22) + this.n33) + 1)); } public function get det():Number{ return ((((((this.n11 * this.n22) - (this.n21 * this.n12)) * this.n33) - (((this.n11 * this.n32) - (this.n31 * this.n12)) * this.n23)) + (((this.n21 * this.n32) - (this.n31 * this.n22)) * this.n13))); } public function copy3x3(_arg1:Matrix3D):Matrix3D{ this.n11 = _arg1.n11; this.n12 = _arg1.n12; this.n13 = _arg1.n13; this.n21 = _arg1.n21; this.n22 = _arg1.n22; this.n23 = _arg1.n23; this.n31 = _arg1.n31; this.n32 = _arg1.n32; this.n33 = _arg1.n33; return (this); } public function calculateAdd(_arg1:Matrix3D, _arg2:Matrix3D):void{ this.n11 = (_arg1.n11 + _arg2.n11); this.n12 = (_arg1.n12 + _arg2.n12); this.n13 = (_arg1.n13 + _arg2.n13); this.n14 = (_arg1.n14 + _arg2.n14); this.n21 = (_arg1.n21 + _arg2.n21); this.n22 = (_arg1.n22 + _arg2.n22); this.n23 = (_arg1.n23 + _arg2.n23); this.n24 = (_arg1.n24 + _arg2.n24); this.n31 = (_arg1.n31 + _arg2.n31); this.n32 = (_arg1.n32 + _arg2.n32); this.n33 = (_arg1.n33 + _arg2.n33); this.n34 = (_arg1.n34 + _arg2.n34); } public function calculateMultiply(_arg1:Matrix3D, _arg2:Matrix3D):void{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local3 = _arg1.n11; _local4 = _arg2.n11; _local5 = _arg1.n21; _local6 = _arg2.n21; _local7 = _arg1.n31; _local8 = _arg2.n31; _local9 = _arg1.n12; _local10 = _arg2.n12; _local11 = _arg1.n22; _local12 = _arg2.n22; _local13 = _arg1.n32; _local14 = _arg2.n32; _local15 = _arg1.n13; _local16 = _arg2.n13; _local17 = _arg1.n23; _local18 = _arg2.n23; _local19 = _arg1.n33; _local20 = _arg2.n33; _local21 = _arg1.n14; _local22 = _arg2.n14; _local23 = _arg1.n24; _local24 = _arg2.n24; _local25 = _arg1.n34; _local26 = _arg2.n34; this.n11 = (((_local3 * _local4) + (_local9 * _local6)) + (_local15 * _local8)); this.n12 = (((_local3 * _local10) + (_local9 * _local12)) + (_local15 * _local14)); this.n13 = (((_local3 * _local16) + (_local9 * _local18)) + (_local15 * _local20)); this.n14 = ((((_local3 * _local22) + (_local9 * _local24)) + (_local15 * _local26)) + _local21); this.n21 = (((_local5 * _local4) + (_local11 * _local6)) + (_local17 * _local8)); this.n22 = (((_local5 * _local10) + (_local11 * _local12)) + (_local17 * _local14)); this.n23 = (((_local5 * _local16) + (_local11 * _local18)) + (_local17 * _local20)); this.n24 = ((((_local5 * _local22) + (_local11 * _local24)) + (_local17 * _local26)) + _local23); this.n31 = (((_local7 * _local4) + (_local13 * _local6)) + (_local19 * _local8)); this.n32 = (((_local7 * _local10) + (_local13 * _local12)) + (_local19 * _local14)); this.n33 = (((_local7 * _local16) + (_local13 * _local18)) + (_local19 * _local20)); this.n34 = ((((_local7 * _local22) + (_local13 * _local24)) + (_local19 * _local26)) + _local25); } public function toString():String{ var _local1:String; _local1 = ""; _local1 = (_local1 + ((((((((int((n11 * 1000)) / 1000) + "\t\t") + (int((n12 * 1000)) / 1000)) + "\t\t") + (int((n13 * 1000)) / 1000)) + "\t\t") + (int((n14 * 1000)) / 1000)) + "\n")); _local1 = (_local1 + ((((((((int((n21 * 1000)) / 1000) + "\t\t") + (int((n22 * 1000)) / 1000)) + "\t\t") + (int((n23 * 1000)) / 1000)) + "\t\t") + (int((n24 * 1000)) / 1000)) + "\n")); _local1 = (_local1 + ((((((((int((n31 * 1000)) / 1000) + "\t\t") + (int((n32 * 1000)) / 1000)) + "\t\t") + (int((n33 * 1000)) / 1000)) + "\t\t") + (int((n34 * 1000)) / 1000)) + "\n")); return (_local1); } public function copy(_arg1:Matrix3D):Matrix3D{ this.n11 = _arg1.n11; this.n12 = _arg1.n12; this.n13 = _arg1.n13; this.n14 = _arg1.n14; this.n21 = _arg1.n21; this.n22 = _arg1.n22; this.n23 = _arg1.n23; this.n24 = _arg1.n24; this.n31 = _arg1.n31; this.n32 = _arg1.n32; this.n33 = _arg1.n33; this.n34 = _arg1.n34; return (this); } public function calculateInverse(_arg1:Matrix3D):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local2 = _arg1.det; if (Math.abs(_local2) > 0.001){ _local2 = (1 / _local2); _local3 = _arg1.n11; _local4 = _arg1.n21; _local5 = _arg1.n31; _local6 = _arg1.n12; _local7 = _arg1.n22; _local8 = _arg1.n32; _local9 = _arg1.n13; _local10 = _arg1.n23; _local11 = _arg1.n33; _local12 = _arg1.n14; _local13 = _arg1.n24; _local14 = _arg1.n34; this.n11 = (_local2 * ((_local7 * _local11) - (_local8 * _local10))); this.n12 = (-(_local2) * ((_local6 * _local11) - (_local8 * _local9))); this.n13 = (_local2 * ((_local6 * _local10) - (_local7 * _local9))); this.n14 = (-(_local2) * (((_local6 * ((_local10 * _local14) - (_local11 * _local13))) - (_local7 * ((_local9 * _local14) - (_local11 * _local12)))) + (_local8 * ((_local9 * _local13) - (_local10 * _local12))))); this.n21 = (-(_local2) * ((_local4 * _local11) - (_local5 * _local10))); this.n22 = (_local2 * ((_local3 * _local11) - (_local5 * _local9))); this.n23 = (-(_local2) * ((_local3 * _local10) - (_local4 * _local9))); this.n24 = (_local2 * (((_local3 * ((_local10 * _local14) - (_local11 * _local13))) - (_local4 * ((_local9 * _local14) - (_local11 * _local12)))) + (_local5 * ((_local9 * _local13) - (_local10 * _local12))))); this.n31 = (_local2 * ((_local4 * _local8) - (_local5 * _local7))); this.n32 = (-(_local2) * ((_local3 * _local8) - (_local5 * _local6))); this.n33 = (_local2 * ((_local3 * _local7) - (_local4 * _local6))); this.n34 = (-(_local2) * (((_local3 * ((_local7 * _local14) - (_local8 * _local13))) - (_local4 * ((_local6 * _local14) - (_local8 * _local12)))) + (_local5 * ((_local6 * _local13) - (_local7 * _local12))))); }; } public static function rotationMatrixWithReference(_arg1:Number3D, _arg2:Number, _arg3:Number3D):Matrix3D{ var _local4:Matrix3D; _local4 = Matrix3D.translationMatrix(_arg3.x, -(_arg3.y), _arg3.z); Matrix3D.translationMatrix(_arg3.x, -(_arg3.y), _arg3.z).calculateMultiply(_local4, Matrix3D.rotationMatrix(_arg1.x, _arg1.y, _arg1.z, _arg2)); _local4.calculateMultiply(_local4, Matrix3D.translationMatrix(-(_arg3.x), _arg3.y, -(_arg3.z))); return (_local4); } public static function multiplyVector3x3(_arg1:Matrix3D, _arg2:Number3D):void{ var _local3:Number; var _local4:Number; var _local5:Number; _local3 = _arg2.x; _local4 = _arg2.y; _local5 = _arg2.z; _arg2.x = (((_local3 * _arg1.n11) + (_local4 * _arg1.n12)) + (_local5 * _arg1.n13)); _arg2.y = (((_local3 * _arg1.n21) + (_local4 * _arg1.n22)) + (_local5 * _arg1.n23)); _arg2.z = (((_local3 * _arg1.n31) + (_local4 * _arg1.n32)) + (_local5 * _arg1.n33)); } public static function multiply3x3(_arg1:Matrix3D, _arg2:Matrix3D):Matrix3D{ var _local3:Matrix3D; _local3 = new (Matrix3D); _local3.calculateMultiply3x3(_arg1, _arg2); return (_local3); } public static function normalizeQuaternion(_arg1:Object):Object{ var _local2:Number; _local2 = magnitudeQuaternion(_arg1); _arg1.x = (_arg1.x / _local2); _arg1.y = (_arg1.y / _local2); _arg1.z = (_arg1.z / _local2); _arg1.w = (_arg1.w / _local2); return (_arg1); } public static function multiplyVector(_arg1:Matrix3D, _arg2:Number3D):void{ var _local3:Number; var _local4:Number; var _local5:Number; _local3 = _arg2.x; _local4 = _arg2.y; _local5 = _arg2.z; _arg2.x = ((((_local3 * _arg1.n11) + (_local4 * _arg1.n12)) + (_local5 * _arg1.n13)) + _arg1.n14); _arg2.y = ((((_local3 * _arg1.n21) + (_local4 * _arg1.n22)) + (_local5 * _arg1.n23)) + _arg1.n24); _arg2.z = ((((_local3 * _arg1.n31) + (_local4 * _arg1.n32)) + (_local5 * _arg1.n33)) + _arg1.n34); } public static function axis2quaternion(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Object{ var _local5:Number; var _local6:Number; var _local7:Object; _local5 = Math.sin((_arg4 / 2)); _local6 = Math.cos((_arg4 / 2)); _local7 = new Object(); _local7.x = (_arg1 * _local5); _local7.y = (_arg2 * _local5); _local7.z = (_arg3 * _local5); _local7.w = _local6; return (normalizeQuaternion(_local7)); } public static function translationMatrix(_arg1:Number, _arg2:Number, _arg3:Number):Matrix3D{ var _local4:Matrix3D; _local4 = IDENTITY; _local4.n14 = _arg1; _local4.n24 = _arg2; _local4.n34 = _arg3; return (_local4); } public static function magnitudeQuaternion(_arg1:Object):Number{ return (Math.sqrt(((((_arg1.w * _arg1.w) + (_arg1.x * _arg1.x)) + (_arg1.y * _arg1.y)) + (_arg1.z * _arg1.z)))); } public static function euler2quaternion(_arg1:Number, _arg2:Number, _arg3:Number):Object{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Object; _local4 = Math.sin((_arg1 * 0.5)); _local5 = Math.cos((_arg1 * 0.5)); _local6 = Math.sin((_arg2 * 0.5)); _local7 = Math.cos((_arg2 * 0.5)); _local8 = Math.sin((_arg3 * 0.5)); _local9 = Math.cos((_arg3 * 0.5)); _local10 = (_local5 * _local7); _local11 = (_local4 * _local6); _local12 = new Object(); _local12.x = ((_local8 * _local10) - (_local9 * _local11)); _local12.y = (((_local9 * _local4) * _local7) + ((_local8 * _local5) * _local6)); _local12.z = (((_local9 * _local5) * _local6) - ((_local8 * _local4) * _local7)); _local12.w = ((_local9 * _local10) + (_local8 * _local11)); return (_local12); } public static function rotationX(_arg1:Number):Matrix3D{ var _local2:Matrix3D; var _local3:Number; var _local4:Number; _local2 = IDENTITY; _local3 = Math.cos(_arg1); _local4 = Math.sin(_arg1); _local2.n22 = _local3; _local2.n23 = -(_local4); _local2.n32 = _local4; _local2.n33 = _local3; return (_local2); } public static function rotationY(_arg1:Number):Matrix3D{ var _local2:Matrix3D; var _local3:Number; var _local4:Number; _local2 = IDENTITY; _local3 = Math.cos(_arg1); _local4 = Math.sin(_arg1); _local2.n11 = _local3; _local2.n13 = -(_local4); _local2.n31 = _local4; _local2.n33 = _local3; return (_local2); } public static function rotationZ(_arg1:Number):Matrix3D{ var _local2:Matrix3D; var _local3:Number; var _local4:Number; _local2 = IDENTITY; _local3 = Math.cos(_arg1); _local4 = Math.sin(_arg1); _local2.n11 = _local3; _local2.n12 = -(_local4); _local2.n21 = _local4; _local2.n22 = _local3; return (_local2); } public static function clone(_arg1:Matrix3D):Matrix3D{ return (new Matrix3D([_arg1.n11, _arg1.n12, _arg1.n13, _arg1.n14, _arg1.n21, _arg1.n22, _arg1.n23, _arg1.n24, _arg1.n31, _arg1.n32, _arg1.n33, _arg1.n34])); } public static function rotationMatrix(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Matrix3D{ var _local5:Matrix3D; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local5 = IDENTITY; _local6 = Math.cos(_arg4); _local7 = Math.sin(_arg4); _local8 = (1 - _local6); _local9 = ((_arg1 * _arg2) * _local8); _local10 = ((_arg2 * _arg3) * _local8); _local11 = ((_arg1 * _arg3) * _local8); _local12 = (_local7 * _arg3); _local13 = (_local7 * _arg2); _local14 = (_local7 * _arg1); _local5.n11 = (_local6 + ((_arg1 * _arg1) * _local8)); _local5.n12 = (-(_local12) + _local9); _local5.n13 = (_local13 + _local11); _local5.n21 = (_local12 + _local9); _local5.n22 = (_local6 + ((_arg2 * _arg2) * _local8)); _local5.n23 = (-(_local14) + _local10); _local5.n31 = (-(_local13) + _local11); _local5.n32 = (_local14 + _local10); _local5.n33 = (_local6 + ((_arg3 * _arg3) * _local8)); return (_local5); } public static function add(_arg1:Matrix3D, _arg2:Matrix3D):Matrix3D{ var _local3:Matrix3D; _local3 = new (Matrix3D); _local3.calculateAdd(_arg1, _arg2); return (_local3); } public static function rotateAxis(_arg1:Matrix3D, _arg2:Number3D):void{ var _local3:Number; var _local4:Number; var _local5:Number; _local3 = _arg2.x; _local4 = _arg2.y; _local5 = _arg2.z; _arg2.x = (((_local3 * _arg1.n11) + (_local4 * _arg1.n12)) + (_local5 * _arg1.n13)); _arg2.y = (((_local3 * _arg1.n21) + (_local4 * _arg1.n22)) + (_local5 * _arg1.n23)); _arg2.z = (((_local3 * _arg1.n31) + (_local4 * _arg1.n32)) + (_local5 * _arg1.n33)); _arg2.normalize(); } public static function multiply(_arg1:Matrix3D, _arg2:Matrix3D):Matrix3D{ var _local3:Matrix3D; _local3 = new (Matrix3D); _local3.calculateMultiply(_arg1, _arg2); return (_local3); } public static function multiplyQuaternion(_arg1:Object, _arg2:Object):Object{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Object; _local3 = _arg1.x; _local4 = _arg1.y; _local5 = _arg1.z; _local6 = _arg1.w; _local7 = _arg2.x; _local8 = _arg2.y; _local9 = _arg2.z; _local10 = _arg2.w; _local11 = new Object(); _local11.x = ((((_local6 * _local7) + (_local3 * _local10)) + (_local4 * _local9)) - (_local5 * _local8)); _local11.y = ((((_local6 * _local8) + (_local4 * _local10)) + (_local5 * _local7)) - (_local3 * _local9)); _local11.z = ((((_local6 * _local9) + (_local5 * _local10)) + (_local3 * _local8)) - (_local4 * _local7)); _local11.w = ((((_local6 * _local10) - (_local3 * _local7)) - (_local4 * _local8)) - (_local5 * _local9)); return (_local11); } public static function euler2matrix(_arg1:Number3D):Matrix3D{ var _local2:Matrix3D; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; _local2 = IDENTITY; _local3 = (_arg1.x * toRADIANS); _local4 = (_arg1.y * toRADIANS); _local5 = (_arg1.z * toRADIANS); _local6 = Math.cos(_local3); _local7 = Math.sin(_local3); _local8 = Math.cos(_local4); _local9 = Math.sin(_local4); _local10 = Math.cos(_local5); _local11 = Math.sin(_local5); _local12 = (_local6 * _local9); _local13 = (_local7 * _local9); _local2.n11 = (_local8 * _local10); _local2.n12 = (-(_local8) * _local11); _local2.n13 = _local9; _local2.n21 = ((_local13 * _local10) + (_local6 * _local11)); _local2.n22 = ((-(_local13) * _local11) + (_local6 * _local10)); _local2.n23 = (-(_local7) * _local8); _local2.n31 = ((-(_local12) * _local10) + (_local7 * _local11)); _local2.n32 = ((_local12 * _local11) + (_local7 * _local10)); _local2.n33 = (_local6 * _local8); return (_local2); } public static function scaleMatrix(_arg1:Number, _arg2:Number, _arg3:Number):Matrix3D{ var _local4:Matrix3D; _local4 = IDENTITY; _local4.n11 = _arg1; _local4.n22 = _arg2; _local4.n33 = _arg3; return (_local4); } public static function quaternion2matrix(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Matrix3D{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Matrix3D; _local5 = (_arg1 * _arg1); _local6 = (_arg1 * _arg2); _local7 = (_arg1 * _arg3); _local8 = (_arg1 * _arg4); _local9 = (_arg2 * _arg2); _local10 = (_arg2 * _arg3); _local11 = (_arg2 * _arg4); _local12 = (_arg3 * _arg3); _local13 = (_arg3 * _arg4); _local14 = IDENTITY; _local14.n11 = (1 - (2 * (_local9 + _local12))); _local14.n12 = (2 * (_local6 - _local13)); _local14.n13 = (2 * (_local7 + _local11)); _local14.n21 = (2 * (_local6 + _local13)); _local14.n22 = (1 - (2 * (_local5 + _local12))); _local14.n23 = (2 * (_local10 - _local8)); _local14.n31 = (2 * (_local7 - _local11)); _local14.n32 = (2 * (_local10 + _local8)); _local14.n33 = (1 - (2 * (_local5 + _local9))); return (_local14); } public static function inverse(_arg1:Matrix3D):Matrix3D{ var _local2:Matrix3D; _local2 = new (Matrix3D); _local2.calculateInverse(_arg1); return (_local2); } public static function matrix2euler(_arg1:Matrix3D):Number3D{ var _local2:Number3D; var _local3:Number3D; var _local4:Number3D; var _local5:Number3D; var _local6:Matrix3D; var _local7:Matrix3D; var _local8:Matrix3D; var _local9:Number; _local2 = new Number3D(); _local3 = new Number3D(_arg1.n11, _arg1.n21, _arg1.n31); _local4 = new Number3D(_arg1.n12, _arg1.n22, _arg1.n32); _local5 = new Number3D(_arg1.n13, _arg1.n23, _arg1.n33); _local3.normalize(); _local4.normalize(); _local5.normalize(); _local6 = new Matrix3D([_local3.x, _local4.x, _local5.x, 0, _local3.y, _local4.y, _local5.y, 0, _local3.z, _local4.z, _local5.z, 0]); _local2.x = Math.atan2(_local6.n23, _local6.n33); _local7 = Matrix3D.rotationX(-(_local2.x)); _local8 = Matrix3D.multiply(_local7, _local6); _local9 = Math.sqrt(((_local8.n11 * _local8.n11) + (_local8.n21 * _local8.n21))); _local2.y = Math.atan2(-(_local8.n31), _local9); _local2.z = Math.atan2(-(_local8.n12), _local8.n11); if (_local2.x == Math.PI){ if (_local2.y > 0){ _local2.y = (_local2.y - Math.PI); } else { _local2.y = (_local2.y + Math.PI); }; _local2.x = 0; _local2.z = (_local2.z + Math.PI); }; _local2.x = (_local2.x * toDEGREES); _local2.y = (_local2.y * toDEGREES); _local2.z = (_local2.z * toDEGREES); return (_local2); } public static function get IDENTITY():Matrix3D{ return (new Matrix3D([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0])); } } }//package org.papervision3d.core
Section 37
//Number3D (org.papervision3d.core.Number3D) package org.papervision3d.core { public class Number3D { public var x:Number; public var y:Number; public var z:Number; public function Number3D(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; } public function toString():String{ return (((((("x:" + x) + " y:") + y) + " z:") + z)); } public function normalize():void{ var _local1:Number; _local1 = this.modulo; if (((!((_local1 == 0))) && (!((_local1 == 1))))){ this.x = (this.x / _local1); this.y = (this.y / _local1); this.z = (this.z / _local1); }; } public function get modulo():Number{ return (Math.sqrt((((this.x * this.x) + (this.y * this.y)) + (this.z * this.z)))); } public function copyTo(_arg1:Number3D):void{ _arg1.x = x; _arg1.y = y; _arg1.z = z; } public function clone():Number3D{ return (new Number3D(this.x, this.y, this.z)); } public static function sub(_arg1:Number3D, _arg2:Number3D):Number3D{ return (new Number3D((_arg1.x - _arg2.x), (_arg1.y - _arg2.y), (_arg1.z - _arg2.z))); } public static function add(_arg1:Number3D, _arg2:Number3D):Number3D{ return (new Number3D((_arg1.x + _arg2.x), (_arg1.y + _arg2.y), (_arg1.z + _arg2.z))); } public static function cross(_arg1:Number3D, _arg2:Number3D):Number3D{ return (new Number3D(((_arg2.y * _arg1.z) - (_arg2.z * _arg1.y)), ((_arg2.z * _arg1.x) - (_arg2.x * _arg1.z)), ((_arg2.x * _arg1.y) - (_arg2.y * _arg1.x)))); } public static function get ZERO():Number3D{ return (new Number3D(0, 0, 0)); } public static function dot(_arg1:Number3D, _arg2:Number3D):Number{ return ((((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y)) + (_arg2.z * _arg1.z))); } } }//package org.papervision3d.core
Section 38
//NumberUV (org.papervision3d.core.NumberUV) package org.papervision3d.core { public class NumberUV { public var u:Number; public var v:Number; public function NumberUV(_arg1:Number=0, _arg2:Number=0){ this.u = _arg1; this.v = _arg2; } public function toString():String{ return (((("u:" + u) + " v:") + v)); } public function clone():NumberUV{ return (new NumberUV(this.u, this.v)); } public static function get ZERO():NumberUV{ return (new NumberUV(0, 0)); } } }//package org.papervision3d.core
Section 39
//FileLoadEvent (org.papervision3d.events.FileLoadEvent) package org.papervision3d.events { import flash.events.*; public class FileLoadEvent extends Event { public var bytesLoaded:Number;// = -1 public var message:String;// = "" public var bytesTotal:Number;// = -1 public var dataObj:Object;// = null public var file:String;// = "" public static var COLLADA_MATERIALS_DONE:String = "colladaMaterialsDone"; public static var LOAD_COMPLETE:String = "loadComplete"; public static var LOAD_PROGRESS:String = "loadProgress"; public static var SECURITY_LOAD_ERROR:String = "securityLoadError"; public static var LOAD_ERROR:String = "loadError"; public function FileLoadEvent(_arg1:String, _arg2:String="", _arg3:Number=-1, _arg4:Number=-1, _arg5:String="", _arg6:Object=null, _arg7:Boolean=false, _arg8:Boolean=false){ file = ""; bytesLoaded = -1; bytesTotal = -1; message = ""; dataObj = null; super(_arg1, _arg7, _arg8); this.file = _arg2; this.bytesLoaded = _arg3; this.bytesTotal = _arg4; this.message = _arg5; this.dataObj = _arg6; } } }//package org.papervision3d.events
Section 40
//InteractiveScene3DEvent (org.papervision3d.events.InteractiveScene3DEvent) package org.papervision3d.events { import flash.display.*; import flash.events.*; import org.papervision3d.objects.*; import org.papervision3d.core.geom.*; import org.papervision3d.utils.*; public class InteractiveScene3DEvent extends Event { public var sprite:Sprite;// = null public var interactiveContainerData:InteractiveContainerData;// = null public var displayObject3D:DisplayObject3D;// = null public var face3d:Face3D;// = null public static const OBJECT_ADDED:String = "objectAdded"; public static const OBJECT_PRESS:String = "mousePress"; public static const OBJECT_RELEASE:String = "mouseRelease"; public static const OBJECT_CLICK:String = "mouseClick"; public static const OBJECT_RELEASE_OUTSIDE:String = "mouseReleaseOutside"; public static const OBJECT_OUT:String = "mouseOut"; public static const OBJECT_MOVE:String = "mouseMove"; public static const OBJECT_OVER:String = "mouseOver"; public function InteractiveScene3DEvent(_arg1:String, _arg2:DisplayObject3D=null, _arg3:Sprite=null, _arg4:Face3D=null, _arg5:InteractiveContainerData=null, _arg6:Boolean=false, _arg7:Boolean=false){ displayObject3D = null; sprite = null; face3d = null; interactiveContainerData = null; super(_arg1, _arg6, _arg7); this.displayObject3D = _arg2; this.sprite = _arg3; this.face3d = _arg4; this.interactiveContainerData = _arg5; } } }//package org.papervision3d.events
Section 41
//BitmapFileMaterial (org.papervision3d.materials.BitmapFileMaterial) package org.papervision3d.materials { import flash.display.*; import flash.events.*; import org.papervision3d.core.proto.*; import org.papervision3d.objects.*; import org.papervision3d.core.geom.*; import org.papervision3d.events.*; import org.papervision3d.*; import flash.utils.*; import flash.net.*; public class BitmapFileMaterial extends BitmapMaterial { public var loaded:Boolean; private var errorLoading:Boolean;// = false public var url:String;// = "" public static var LOADING_COLOR:int = MaterialObject3D.DEFAULT_COLOR; public static var callback:Function; private static var _loadedBitmaps:Object = new Object(); private static var _loadingIdle:Boolean = true; private static var _waitingBitmaps:Array = new Array(); private static var _subscribedMaterials:Object = new Object(); public static var ERROR_COLOR:int = MaterialObject3D.DEBUG_COLOR; private static var _loaderUrls:Dictionary = new Dictionary(); public function BitmapFileMaterial(_arg1:String=""){ url = ""; errorLoading = false; super(); this.url = _arg1; this.loaded = false; this.fillAlpha = 1; this.fillColor = LOADING_COLOR; if (_arg1.length > 0){ texture = _arg1; }; } private function loadNextBitmap():void{ var file:String; var request:URLRequest; var bitmapLoader:Loader; file = _waitingBitmaps[0]; request = new URLRequest(file); bitmapLoader = new Loader(); bitmapLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadBitmapProgressHandler); bitmapLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadBitmapCompleteHandler); bitmapLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadBitmapErrorHandler); try { bitmapLoader.load(request); _loaderUrls[bitmapLoader] = file; _loadingIdle = false; Papervision3D.log(("BitmapFileMaterial: Loading bitmap from " + file)); } catch(error:Error) { _waitingBitmaps.shift(); _loadingIdle = true; Papervision3D.log(("[ERROR] BitmapFileMaterial: Unable to load file " + error.message)); }; } override public function drawFace3D(_arg1:DisplayObject3D, _arg2:Face3D, _arg3:Graphics, _arg4:Vertex2D, _arg5:Vertex2D, _arg6:Vertex2D):int{ var _local7:int; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; if ((((bitmap == null)) || (errorLoading))){ _local8 = _arg4.x; _local9 = _arg4.y; _local10 = _arg5.x; _local11 = _arg5.y; _local12 = _arg6.x; _local13 = _arg6.y; if (errorLoading){ _arg3.lineStyle(lineThickness, lineColor, lineAlpha); }; _arg3.beginFill(fillColor, fillAlpha); _arg3.moveTo(_local8, _local9); _arg3.lineTo(_local10, _local11); _arg3.lineTo(_local12, _local13); _arg3.lineTo(_local8, _local9); _arg3.endFill(); if (errorLoading){ _arg3.lineStyle(); }; return (1); }; _local7 = super.drawFace3D(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); return (_local7); } protected function createBitmapFromURL(_arg1:String):BitmapData{ var _local2:BitmapData; if (_arg1 == ""){ return (null); }; if (_loadedBitmaps[_arg1]){ _local2 = _loadedBitmaps[_arg1]; bitmap = super.createBitmap(_local2); this.loadComplete(); return (_local2); }; queueBitmap(_arg1); return (null); } private function queueBitmap(_arg1:String):void{ if (!_subscribedMaterials[_arg1]){ _waitingBitmaps.push(_arg1); _subscribedMaterials[_arg1] = new Array(); }; _subscribedMaterials[_arg1].push(this); if (_loadingIdle){ loadNextBitmap(); }; } override public function get texture():Object{ return (this._texture); } override public function set texture(_arg1:Object):void{ if ((_arg1 is String) == false){ Papervision3D.log("Error: BitmapFileMaterial.texture requires a String for the texture"); return; }; bitmap = createBitmapFromURL(String(_arg1)); _texture = _arg1; } private function loadComplete():void{ var _local1:FileLoadEvent; this.fillAlpha = 0; this.fillColor = 0; this.loaded = true; _local1 = new FileLoadEvent(FileLoadEvent.LOAD_COMPLETE, this.url); this.dispatchEvent(_local1); } private function loadBitmapProgressHandler(_arg1:ProgressEvent):void{ var _local2:FileLoadEvent; _local2 = new FileLoadEvent(FileLoadEvent.LOAD_PROGRESS, url, _arg1.bytesLoaded, _arg1.bytesTotal); dispatchEvent(_local2); } private function loadBitmapErrorHandler(_arg1:IOErrorEvent):void{ var _local2:String; var _local3:FileLoadEvent; _local2 = String(_waitingBitmaps.shift()); _loadedBitmaps[_local2] = null; _subscribedMaterials[_local2] = null; this.errorLoading = true; this.lineColor = ERROR_COLOR; this.lineAlpha = 1; this.lineThickness = 1; if (_waitingBitmaps.length > 0){ loadNextBitmap(); } else { _loadingIdle = true; if (Boolean(callback)){ callback(); }; }; _local3 = new FileLoadEvent(FileLoadEvent.LOAD_ERROR, _local2, -1, -1, _arg1.text); dispatchEvent(_local3); } private function loadBitmapCompleteHandler(_arg1:Event):void{ var _local2:Loader; var _local3:Bitmap; var _local4:String; var _local5:BitmapData; var _local6:BitmapFileMaterial; _local2 = Loader(_arg1.target.loader); _local3 = Bitmap(_local2.content); _local4 = _loaderUrls[_local2]; _local5 = super.createBitmap(_local3.bitmapData); for each (_local6 in _subscribedMaterials[_local4]) { _local6.bitmap = _local5; _local6.maxU = this.maxU; _local6.maxV = this.maxV; _local6.resetMapping(); _local6.loadComplete(); }; _loadedBitmaps[_local4] = _local5; _waitingBitmaps.shift(); if (_waitingBitmaps.length > 0){ loadNextBitmap(); } else { _loadingIdle = true; if (Boolean(callback)){ callback(); }; }; } } }//package org.papervision3d.materials
Section 42
//BitmapMaterial (org.papervision3d.materials.BitmapMaterial) package org.papervision3d.materials { import flash.display.*; import org.papervision3d.core.proto.*; import org.papervision3d.objects.*; import org.papervision3d.core.geom.*; import flash.geom.*; import org.papervision3d.*; import flash.utils.*; import org.papervision3d.core.draw.*; public class BitmapMaterial extends MaterialObject3D implements IFaceDrawer { public var uvMatrices:Dictionary; protected var _texture:Object; public static var AUTO_MIP_MAPPING:Boolean = false; protected static var _localMatrix:Matrix = new Matrix(); public static var MIP_MAP_DEPTH:Number = 8; protected static var _triMatrix:Matrix = new Matrix(); public function BitmapMaterial(_arg1:BitmapData=null){ uvMatrices = new Dictionary(); super(); if (_arg1){ texture = _arg1; }; } override public function drawFace3D(_arg1:DisplayObject3D, _arg2:Face3D, _arg3:Graphics, _arg4:Vertex2D, _arg5:Vertex2D, _arg6:Vertex2D):int{ var _local7:Matrix; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; if (lineAlpha){ _arg3.lineStyle(0, lineColor, lineAlpha); }; if (bitmap){ _local7 = ((uvMatrices[_arg2]) || (transformUV(_arg2, _arg1))); _local8 = _arg4.x; _local9 = _arg4.y; _local10 = _arg5.x; _local11 = _arg5.y; _local12 = _arg6.x; _local13 = _arg6.y; _triMatrix.a = (_local10 - _local8); _triMatrix.b = (_local11 - _local9); _triMatrix.c = (_local12 - _local8); _triMatrix.d = (_local13 - _local9); _triMatrix.tx = _local8; _triMatrix.ty = _local9; _localMatrix.a = _local7.a; _localMatrix.b = _local7.b; _localMatrix.c = _local7.c; _localMatrix.d = _local7.d; _localMatrix.tx = _local7.tx; _localMatrix.ty = _local7.ty; _localMatrix.concat(_triMatrix); _arg3.beginBitmapFill(bitmap, _localMatrix, tiled, smooth); }; _arg3.moveTo(_local8, _local9); _arg3.lineTo(_local10, _local11); _arg3.lineTo(_local12, _local13); _arg3.lineTo(_local8, _local9); if (bitmap){ _arg3.endFill(); }; if (lineAlpha){ _arg3.lineStyle(); }; return (1); } public function resetMapping():void{ uvMatrices = new Dictionary(); } public function transformUV(_arg1:Face3D, _arg2:DisplayObject3D=null):Matrix{ var _local3:Array; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Matrix; var _local17:Matrix; if (!_arg1.uv){ Papervision3D.log("MaterialObject3D: transformUV() uv not found!"); } else { if (bitmap){ _local3 = _arg1.uv; _local4 = (bitmap.width * maxU); _local5 = (bitmap.height * maxV); _local6 = (_local4 * _local3[0].u); _local7 = (_local5 * (1 - _local3[0].v)); _local8 = (_local4 * _local3[1].u); _local9 = (_local5 * (1 - _local3[1].v)); _local10 = (_local4 * _local3[2].u); _local11 = (_local5 * (1 - _local3[2].v)); if ((((((_local6 == _local8)) && ((_local7 == _local9)))) || ((((_local6 == _local10)) && ((_local7 == _local11)))))){ _local6 = (_local6 - ((_local6)>0.05) ? 0.05 : -0.05); _local7 = (_local7 - ((_local7)>0.07) ? 0.07 : -0.07); }; if ((((_local10 == _local8)) && ((_local11 == _local9)))){ _local10 = (_local10 - ((_local10)>0.05) ? 0.04 : -0.04); _local11 = (_local11 - ((_local11)>0.06) ? 0.06 : -0.06); }; _local12 = (_local8 - _local6); _local13 = (_local9 - _local7); _local14 = (_local10 - _local6); _local15 = (_local11 - _local7); _local16 = new Matrix(_local12, _local13, _local14, _local15, _local6, _local7); _local16.invert(); _local17 = ((uvMatrices[_arg1]) || ((uvMatrices[_arg1] = _local16.clone()))); _local17.a = _local16.a; _local17.b = _local16.b; _local17.c = _local16.c; _local17.d = _local16.d; _local17.tx = _local16.tx; _local17.ty = _local16.ty; } else { Papervision3D.log("MaterialObject3D: transformUV() material.bitmap not found!"); }; }; return (_local17); } public function get texture():Object{ return (this._texture); } protected function correctBitmap(_arg1:BitmapData):BitmapData{ var _local2:BitmapData; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Boolean; _local3 = (1 << MIP_MAP_DEPTH); _local4 = (_arg1.width / _local3); _local4 = ((_local4 == uint(_local4))) ? _local4 : (uint(_local4) + 1); _local5 = (_arg1.height / _local3); _local5 = ((_local5 == uint(_local5))) ? _local5 : (uint(_local5) + 1); _local6 = (_local3 * _local4); _local7 = (_local3 * _local5); _local8 = true; if (_local6 > 2880){ _local6 = _arg1.width; _local8 = false; }; if (_local7 > 2880){ _local7 = _arg1.height; _local8 = false; }; if (!_local8){ Papervision3D.log((("Material " + this.name) + ": Texture too big for mip mapping. Resizing recommended for better performance and quality.")); }; if (((_arg1) && (((!(((_arg1.width % _local3) == 0))) || (!(((_arg1.height % _local3) == 0))))))){ _local2 = new BitmapData(_local6, _local7, _arg1.transparent, 0); widthOffset = _arg1.width; heightOffset = _arg1.height; this.maxU = (_arg1.width / _local6); this.maxV = (_arg1.height / _local7); _local2.draw(_arg1); extendBitmapEdges(_local2, _arg1.width, _arg1.height); } else { this.maxU = (this.maxV = 1); _local2 = _arg1; }; return (_local2); } public function set texture(_arg1:Object):void{ if ((_arg1 is BitmapData) == false){ Papervision3D.log("Error: BitmapMaterial.texture requires a BitmapData object for the texture"); return; }; bitmap = createBitmap(BitmapData(_arg1)); _texture = _arg1; } protected function createBitmap(_arg1:BitmapData):BitmapData{ resetMapping(); if (AUTO_MIP_MAPPING){ return (correctBitmap(_arg1)); }; this.maxU = (this.maxV = 1); return (_arg1); } override public function toString():String{ return (((((("Texture:" + this.texture) + " lineColor:") + this.lineColor) + " lineAlpha:") + this.lineAlpha)); } override public function copy(_arg1:MaterialObject3D):void{ super.copy(_arg1); this.maxU = _arg1.maxU; this.maxV = _arg1.maxV; } protected function extendBitmapEdges(_arg1:BitmapData, _arg2:Number, _arg3:Number):void{ var _local4:Rectangle; var _local5:Point; var _local6:int; _local4 = new Rectangle(); _local5 = new Point(); if (_arg1.width > _arg2){ _local4.x = (_arg2 - 1); _local4.y = 0; _local4.width = 1; _local4.height = _arg3; _local5.y = 0; _local6 = _arg2; while (_local6 < _arg1.width) { _local5.x = _local6; _arg1.copyPixels(_arg1, _local4, _local5); _local6++; }; }; if (_arg1.height > _arg3){ _local4.x = 0; _local4.y = (_arg3 - 1); _local4.width = _arg1.width; _local4.height = 1; _local5.x = 0; _local6 = _arg3; while (_local6 < _arg1.height) { _local5.y = _local6; _arg1.copyPixels(_arg1, _local4, _local5); _local6++; }; }; } override public function clone():MaterialObject3D{ var _local1:MaterialObject3D; _local1 = super.clone(); _local1.maxU = this.maxU; _local1.maxV = this.maxV; return (_local1); } } }//package org.papervision3d.materials
Section 43
//ColorMaterial (org.papervision3d.materials.ColorMaterial) package org.papervision3d.materials { import flash.display.*; import org.papervision3d.core.proto.*; import org.papervision3d.objects.*; import org.papervision3d.core.geom.*; import org.papervision3d.core.draw.*; public class ColorMaterial extends MaterialObject3D implements IFaceDrawer { public function ColorMaterial(_arg1:Number=0xFF00FF, _arg2:Number=1, _arg3:Object=null){ this.fillColor = _arg1; this.fillAlpha = _arg2; } override public function drawFace3D(_arg1:DisplayObject3D, _arg2:Face3D, _arg3:Graphics, _arg4:Vertex2D, _arg5:Vertex2D, _arg6:Vertex2D):int{ var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; _local7 = _arg4.x; _local8 = _arg4.y; _local9 = _arg5.x; _local10 = _arg5.y; _local11 = _arg6.x; _local12 = _arg6.y; _arg3.beginFill(fillColor, fillAlpha); _arg3.moveTo(_local7, _local8); _arg3.lineTo(_local9, _local10); _arg3.lineTo(_local11, _local12); _arg3.lineTo(_local7, _local8); _arg3.endFill(); return (1); } override public function toString():String{ return (((("ColorMaterial - color:" + this.fillColor) + " alpha:") + this.fillAlpha)); } } }//package org.papervision3d.materials
Section 44
//InteractiveMovieMaterial (org.papervision3d.materials.InteractiveMovieMaterial) package org.papervision3d.materials { import flash.display.*; import org.papervision3d.objects.*; import org.papervision3d.core.geom.*; public class InteractiveMovieMaterial extends MovieMaterial { public function InteractiveMovieMaterial(_arg1:Sprite, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function drawFace3D(_arg1:DisplayObject3D, _arg2:Face3D, _arg3:Graphics, _arg4:Vertex2D, _arg5:Vertex2D, _arg6:Vertex2D):int{ var _local7:int; _local7 = super.drawFace3D(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); if (((!((_arg1.interactiveSceneManager == null))) && (_local7))){ _arg1.interactiveSceneManager.drawFace(_arg1, _arg2, _arg4.x, _arg5.x, _arg6.x, _arg4.y, _arg5.y, _arg6.y); }; return (_local7); } } }//package org.papervision3d.materials
Section 45
//MaterialsList (org.papervision3d.materials.MaterialsList) package org.papervision3d.materials { import org.papervision3d.core.proto.*; import flash.utils.*; public class MaterialsList { public var materialsByName:Dictionary; protected var _materials:Dictionary; private var _materialsTotal:int; public function MaterialsList(_arg1=null):void{ var _local2:String; var _local3:String; super(); this.materialsByName = new Dictionary(true); this._materials = new Dictionary(false); this._materialsTotal = 0; if (_arg1){ if ((_arg1 is Array)){ for (_local2 in _arg1) { this.addMaterial(_arg1[_local2]); }; } else { if ((_arg1 is Object)){ for (_local3 in _arg1) { this.addMaterial(_arg1[_local3], _local3); }; }; }; }; } public function get numMaterials():int{ return (this._materialsTotal); } public function addMaterial(_arg1:MaterialObject3D, _arg2:String=null):MaterialObject3D{ _arg2 = ((((_arg2) || (_arg1.name))) || (String(_arg1.id))); this._materials[_arg1] = _arg2; this.materialsByName[_arg2] = _arg1; this._materialsTotal++; return (_arg1); } public function removeMaterial(_arg1:MaterialObject3D):MaterialObject3D{ delete this.materialsByName[this._materials[_arg1]]; delete this._materials[_arg1]; return (_arg1); } public function toString():String{ var _local1:String; var _local2:MaterialObject3D; _local1 = ""; for each (_local2 in this.materialsByName) { _local1 = (_local1 + (this._materials[_local2] + "\n")); }; return (_local1); } public function removeMaterialByName(_arg1:String):MaterialObject3D{ return (removeMaterial(getMaterialByName(_arg1))); } public function clone():MaterialsList{ var _local1:MaterialsList; var _local2:MaterialObject3D; _local1 = new MaterialsList(); for each (_local2 in this.materialsByName) { _local1.addMaterial(_local2.clone(), this._materials[_local2]); }; return (_local1); } public function getMaterialByName(_arg1:String):MaterialObject3D{ return ((this.materialsByName[_arg1]) ? this.materialsByName[_arg1] : this.materialsByName["all"]); } } }//package org.papervision3d.materials
Section 46
//MovieMaterial (org.papervision3d.materials.MovieMaterial) package org.papervision3d.materials { import flash.display.*; import flash.geom.*; import org.papervision3d.*; import flash.utils.*; public class MovieMaterial extends BitmapMaterial { public var movieTransparent:Boolean; public var allowAutoResize:Boolean;// = true public var movie:DisplayObject; private static var animatedMaterials:Dictionary = new Dictionary(false); public function MovieMaterial(_arg1:DisplayObject=null, _arg2:Boolean=false, _arg3:Boolean=false){ allowAutoResize = true; super(); movieTransparent = _arg2; this.animated = _arg3; if (_arg1){ texture = _arg1; }; } public function drawBitmap():void{ var _local1:Matrix; bitmap.fillRect(bitmap.rect, this.fillColor); _local1 = new Matrix(); _local1.scale(movie.scaleX, movie.scaleY); bitmap.draw(movie, _local1, movie.transform.colorTransform); } override public function get texture():Object{ return (this._texture); } public function get animated():Boolean{ return (animatedMaterials[this]); } override public function set texture(_arg1:Object):void{ if ((_arg1 is DisplayObject) == false){ Papervision3D.log("Error: MovieMaterial.texture requires a Sprite to be passed as the object"); return; }; bitmap = createBitmapFromSprite(DisplayObject(_arg1)); _texture = _arg1; } protected function createBitmapFromSprite(_arg1:DisplayObject):BitmapData{ movie = _arg1; initBitmap(movie); drawBitmap(); bitmap = super.createBitmap(bitmap); return (bitmap); } public function set animated(_arg1:Boolean):void{ animatedMaterials[this] = _arg1; } override public function updateBitmap():void{ var _local1:int; var _local2:int; _local1 = int(movie.width); _local2 = int(movie.height); if (((allowAutoResize) && (((!((_local1 == bitmap.width))) || (!((_local2 == bitmap.height))))))){ initBitmap(movie); }; drawBitmap(); } protected function initBitmap(_arg1:DisplayObject):void{ if (bitmap){ bitmap.dispose(); }; bitmap = new BitmapData(_arg1.width, _arg1.height, this.movieTransparent); } public static function updateAnimatedBitmaps():void{ var _local1:Object; for (_local1 in animatedMaterials) { if (animatedMaterials[_local1]){ _local1.updateBitmap(); }; }; } } }//package org.papervision3d.materials
Section 47
//WireframeMaterial (org.papervision3d.materials.WireframeMaterial) package org.papervision3d.materials { import flash.display.*; import org.papervision3d.core.proto.*; import org.papervision3d.objects.*; import org.papervision3d.core.geom.*; import org.papervision3d.core.draw.*; public class WireframeMaterial extends MaterialObject3D implements IFaceDrawer { public function WireframeMaterial(_arg1:Number=0xFF00FF, _arg2:Number=100){ this.lineColor = _arg1; this.lineAlpha = _arg2; this.doubleSided = false; } override public function drawFace3D(_arg1:DisplayObject3D, _arg2:Face3D, _arg3:Graphics, _arg4:Vertex2D, _arg5:Vertex2D, _arg6:Vertex2D):int{ var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; _local7 = _arg4.x; _local8 = _arg4.y; _local9 = _arg5.x; _local10 = _arg5.y; _local11 = _arg6.x; _local12 = _arg6.y; if (lineAlpha){ _arg3.lineStyle(0, lineColor, lineAlpha); _arg3.moveTo(_local7, _local8); _arg3.lineTo(_local9, _local10); _arg3.lineTo(_local11, _local12); _arg3.lineTo(_local7, _local8); _arg3.lineStyle(); return (1); }; return (0); } override public function toString():String{ return (((("WireframeMaterial - color:" + this.lineColor) + " alpha:") + this.lineAlpha)); } } }//package org.papervision3d.materials
Section 48
//Collada (org.papervision3d.objects.Collada) package org.papervision3d.objects { import flash.events.*; import org.papervision3d.core.proto.*; import org.papervision3d.materials.*; import org.papervision3d.core.*; import org.papervision3d.core.geom.*; import org.papervision3d.events.*; import org.papervision3d.*; import flash.net.*; public class Collada extends DisplayObject3D { public var loaded:Boolean; private var _container:DisplayObjectContainer3D; private var COLLADA:XML; private var _geometries:Object; private var _yUp:Boolean; private var _loader:URLLoader; private var _scaling:Number; public var materialsToLoad:int;// = 0 private var _filename:String; private var _materials:MaterialsList; private static var NODESECTION:String = "node"; private static var SKEWNODE:String = "skew"; private static var INPUTTAG:String = "input"; private static var GEOMETRYSECTION:String = "geometry"; private static var VERTEXINPUT:String = "VERTEX"; private static var INSTANCENODE:String = "instance"; private static var POLYGON:String = "p"; private static var PERSPECTIVENODE:String = "perspective"; private static var POSITIONINPUT:String = "POSITION"; private static var LOOKATNODE:String = "lookat"; private static var ACCESSORSECTION:String = "accessor"; private static var UVINPUT:String = "UV"; private static var NORMALINPUT:String = "NORMAL"; private static var POLYGONSSECTION:String = "polygons"; private static var INSTACESCENE:String = "instance_visual_scene"; private static var TRANSLATENODE:String = "translate"; private static var SCALENODE:String = "scale"; private static var MESHSECTION:String = "mesh"; private static var VERTICESSECTION:String = "vertices"; private static var TANGENTINPUT:String = "TANGENT"; private static var MATERIALSECTION:String = "material"; private static var toDEGREES:Number = 57.2957795130823; public static var DEFAULT_SCALING:Number = 1; private static var SOURCESECTION:String = "source"; private static var TEXCOORDINPUT:String = "TEXCOORD"; private static var LIBRARYSECTION:String = "library"; private static var MATRIXNODE:String = "matrix"; private static var ROTATENODE:String = "rotate"; private static var SCENESECTION:String = "scene"; private static var INTERNAL_SCALING:Number = 100; private static var CAMERAPREFAB:String = "camera"; private static var ARRAYSECTION:String = "array"; private static var PARAMTAG:String = "param"; private static var COLLADASECTION:String = "COLLADA"; private static var ASSETSECTION:String = "asset"; private static var LIGHTPREFAB:String = "light"; private static var toRADIANS:Number = 0.0174532925199433; public function Collada(_arg1, _arg2:MaterialsList=null, _arg3:Number=1, _arg4:Object=null){ materialsToLoad = 0; super(null, null, _arg4); this._materials = ((_arg2) || (new MaterialsList())); this._container = this; this.loaded = false; this._scaling = ((_arg3) || (DEFAULT_SCALING)); this._scaling = (this._scaling * INTERNAL_SCALING); this._geometries = new Object(); if ((_arg1 is XML)){ this.COLLADA = _arg1; this._filename = ""; buildCollada(); } else { if ((_arg1 is String)){ this._filename = _arg1; loadCollada(); }; }; } private function getId(_arg1:String):String{ return (_arg1.split("#")[1]); } private function handleSecurityLoadError(_arg1:SecurityErrorEvent):void{ trace("COLLADA file security load error", _arg1.text); dispatchEvent(new FileLoadEvent(FileLoadEvent.SECURITY_LOAD_ERROR, this._filename, 0, 0, _arg1.text)); } public function getMaterialsList():MaterialsList{ return (_materials); } private function onMaterialLoadError(_arg1:FileLoadEvent):void{ var _local2:BitmapFileMaterial; _local2 = (_arg1.target as BitmapFileMaterial); trace(("Colllada failed to load material : " + _local2)); materialsToLoad--; if (materialsToLoad == 0){ dispatchEvent(new FileLoadEvent(FileLoadEvent.COLLADA_MATERIALS_DONE)); }; } private function onComplete(_arg1:Event):void{ this.COLLADA = new XML(this._loader.data); buildCollada(); } private function handleIOError(_arg1:IOErrorEvent):void{ trace("COLLADA file load error", _arg1.text); dispatchEvent(new FileLoadEvent(FileLoadEvent.LOAD_ERROR, this._filename, 0, 0, _arg1.text)); } private function parseGeometry(_arg1:XML, _arg2:DisplayObject3D, _arg3:Matrix3D=null, _arg4:Object=null):void{ var _local5:Matrix3D; var _local6:Object; var _local7:Array; var _local8:Boolean; var _local9:XML; var _local10:Array; var _local11:XML; var _local12:Array; var _local13:Number; var _local14:String; var _local15:Number; var _local16:Object; var _local17:Number; var _local18:String; var _local19:Number; _local5 = ((Matrix3D.clone(_arg3)) || (Matrix3D.IDENTITY)); _local6 = new Object(); _local6.name = _arg1.@id; _local7 = (_local6.triangles = new Array()); _local8 = (_arg1.mesh.triangles.length() > 1); for each (_local9 in _arg1.mesh.triangles) { _local10 = new Array(); for each (_local11 in _local9.input) { _local6[_local11.@semantic] = deserialize(_local11, _arg1); _local10.push(_local11.@semantic); }; _local12 = _local9.p.split(" "); _local13 = _local9.@count; _local14 = _local9.@material; addMaterial(_arg2, _local14, _arg4); _local15 = 0; while (_local15 < _local13) { _local16 = new Object(); _local17 = 0; while (_local17 < 3) { _local19 = 0; while ((_local18 = _local10[_local19])) { if (!_local16[_local18]){ _local16[_local18] = new Array(); }; _local16[_local18].push(Number(_local12.shift())); _local19++; }; _local16["material"] = _local14; _local17++; }; _local7.push(_local16); _local15++; }; }; buildObject(_local6, _arg2, _local5); } private function handleLoadProgress(_arg1:ProgressEvent):void{ var _local2:FileLoadEvent; _local2 = new FileLoadEvent(FileLoadEvent.LOAD_PROGRESS, this._filename, _arg1.bytesLoaded, _arg1.bytesTotal); dispatchEvent(_local2); } private function onMaterialLoadComplete(_arg1:FileLoadEvent):void{ materialsToLoad--; if (materialsToLoad == 0){ materials = new MaterialsList(); dispatchEvent(new FileLoadEvent(FileLoadEvent.COLLADA_MATERIALS_DONE)); }; } private function buildObject(_arg1:Object, _arg2:DisplayObject3D, _arg3:Matrix3D=null):void{ var _local4:Array; var _local5:Number; var _local6:Number; var _local7:Array; var _local8:Number; var _local9:int; var _local10:Array; var _local11:Array; var _local12:Object; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Array; var _local17:Vertex3D; var _local18:Vertex3D; var _local19:Vertex3D; var _local20:Array; var _local21:Array; var _local22:Array; var _local23:Array; var _local24:NumberUV; var _local25:NumberUV; var _local26:NumberUV; var _local27:String; var _local28:Face3D; _arg3 = ((_arg3) || (Matrix3D.IDENTITY)); _arg2.addGeometry(new GeometryObject3D()); _local4 = (_arg2.geometry.vertices = new Array()); _local5 = this._scaling; _local6 = _local4.length; _local7 = _arg1.VERTEX; _local8 = _local7.length; _local9 = 0; while (_local9 < _local8) { _local12 = _local7[_local9]; _local13 = (Number(_local12.X) * _local5); _local14 = (Number(_local12.Y) * _local5); _local15 = (Number(_local12.Z) * _local5); if (this._yUp){ _local4.push(new Vertex3D(-(_local13), _local14, _local15)); } else { _local4.push(new Vertex3D(_local13, _local15, _local14)); }; _local9++; }; _local10 = (_arg2.geometry.faces = new Array()); _local11 = _arg1.triangles; _local8 = _local11.length; _local9 = 0; while (_local9 < _local8) { _local16 = _local11[_local9].VERTEX; _local17 = _local4[(_local6 + _local16[0])]; _local18 = _local4[(_local6 + _local16[1])]; _local19 = _local4[(_local6 + _local16[2])]; _local20 = [_local17, _local18, _local19]; _local21 = _arg1.TEXCOORD; _local22 = _local11[_local9].TEXCOORD; if (((_local22) && (_local21))){ _local24 = new NumberUV(_local21[_local22[0]].S, _local21[_local22[0]].T); _local25 = new NumberUV(_local21[_local22[1]].S, _local21[_local22[1]].T); _local26 = new NumberUV(_local21[_local22[2]].S, _local21[_local22[2]].T); _local23 = [_local24, _local25, _local26]; } else { _local23 = null; }; _local27 = ((_local11[_local9].material) || (null)); _local28 = new Face3D(_local20, _materials.getMaterialByName(_local27), _local23); _local10.push(_local28); _local9++; }; _arg2.geometry.ready = true; _arg3.n14 = (_arg3.n14 * _local5); _arg3.n24 = (_arg3.n24 * _local5); _arg3.n34 = (_arg3.n34 * _local5); _arg2.material = MaterialObject3D.DEFAULT; _arg2.visible = true; } private function deserialize(_arg1:XML, _arg2:XML):Array{ var output:Array; var id:String; var acc:XMLList; var floId:String; var floXML:XMLList; var floStr:String; var floats:Array; var params:Array; var par:XML; var count:int; var stride:int; var i:int; var element:Object; var j:int; var recursive:XMLList; var input = _arg1; var geo = _arg2; output = new Array(); id = input.@source.split("#")[1]; acc = geo..source.(@id == id).technique_common.accessor; if (acc != new XMLList()){ floId = acc.@source.split("#")[1]; floXML = COLLADA..float_array.(@id == floId); floStr = floXML.toString(); floats = floStr.split(" "); params = new Array(); for each (par in acc.param) { params.push(par.@name); }; count = acc.@count; stride = acc.@stride; i = 0; while (i < count) { element = new Object(); j = 0; while (j < stride) { element[params[j]] = floats.shift(); j = (j + 1); }; output.push(element); i = (i + 1); }; } else { recursive = geo..vertices.(@id == id)[INPUTTAG]; output = deserialize(recursive[0], geo); }; return (output); } private function loadCollada():void{ this._loader = new URLLoader(); this._loader.addEventListener(Event.COMPLETE, onComplete); this._loader.addEventListener(IOErrorEvent.IO_ERROR, handleIOError); this._loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, handleSecurityLoadError); this._loader.addEventListener(ProgressEvent.PROGRESS, handleLoadProgress); this._loader.load(new URLRequest(this._filename)); } private function parseScene(_arg1:XML):void{ var _local2:XML; for each (_local2 in _arg1.node) { parseNode(_local2, this._container); }; } private function scaleMatrix(_arg1:Array):Matrix3D{ if (this._yUp){ return (Matrix3D.scaleMatrix(_arg1[0], _arg1[1], _arg1[2])); }; return (Matrix3D.scaleMatrix(_arg1[0], _arg1[2], _arg1[1])); } private function translateMatrix(_arg1:Array):Matrix3D{ if (this._yUp){ return (Matrix3D.translationMatrix((-(_arg1[0]) * this._scaling), (_arg1[1] * this._scaling), (_arg1[2] * this._scaling))); }; return (Matrix3D.translationMatrix((_arg1[0] * this._scaling), (_arg1[2] * this._scaling), (_arg1[1] * this._scaling))); } private function getArray(_arg1:String):Array{ var _local2:Array; var _local3:Array; var _local4:Number; var _local5:Number; _local2 = _arg1.split(" "); _local3 = new Array(); _local4 = _local2.length; _local5 = 0; while (_local5 < _local4) { _local3[_local5] = Number(_local2[_local5]); _local5++; }; return (_local3); } private function bakedMatrix(_arg1:Matrix3D):Matrix3D{ _arg1.n14 = (_arg1.n14 * _scaling); _arg1.n24 = (_arg1.n24 * _scaling); _arg1.n34 = (_arg1.n34 * _scaling); return (_arg1); } private function parseNode(_arg1:XML, _arg2:DisplayObjectContainer3D):void{ var matrix:Matrix3D; var newNode:DisplayObject3D; var instance:DisplayObject3D; var children:XMLList; var totalChildren:int; var i:int; var child:XML; var bindMaterial:Object; var instance_material:XML; var geometry:XML; var geoId:String; var geo:XML; var node = _arg1; var parent = _arg2; matrix = Matrix3D.IDENTITY; if (String(node.instance_geometry) == ""){ newNode = new DisplayObject3D(node.@name); } else { newNode = new Mesh3D(null, null, null, node.@name); }; instance = parent.addChild(newNode, node.@name); children = node.children(); totalChildren = children.length(); i = 0; while (i < totalChildren) { child = children[i]; switch (child.name().localName){ case "translate": matrix = Matrix3D.multiply(matrix, translateMatrix(getArray(child))); break; case "rotate": matrix = Matrix3D.multiply(matrix, rotateMatrix(getArray(child))); break; case "scale": matrix = Matrix3D.multiply(matrix, scaleMatrix(getArray(child))); break; case "matrix": matrix = Matrix3D.multiply(matrix, bakedMatrix(new Matrix3D(getArray(child)))); break; case "node": parseNode(child, instance); break; case "instance_geometry": bindMaterial = new Object(); for each (instance_material in child..instance_material) { bindMaterial[instance_material.@symbol] = instance_material.@target.split("#")[1]; }; for each (geometry in child) { geoId = getId(geometry.@url); geo = COLLADA.library_geometries.geometry.(@id == geoId)[0]; parseGeometry(geo, instance, Matrix3D.clone(matrix), bindMaterial); }; break; }; i = (i + 1); }; instance.copyTransform(matrix); } private function addMaterial(_arg1:DisplayObject3D, _arg2:String, _arg3:Object):void{ var _local4:MaterialObject3D; var _local5:String; var _local6:String; if (this._materials){ _local4 = this._materials.getMaterialByName(_arg2); } else { _materials = new MaterialsList(); }; if (!_local4){ _local5 = this._filename.slice(0, (this._filename.lastIndexOf("/") + 1)); _local6 = getTexture(_arg3[_arg2]); if (_local6){ materialsToLoad++; _local4 = new BitmapFileMaterial((_local5 + _local6)); _local4.addEventListener(FileLoadEvent.LOAD_COMPLETE, onMaterialLoadComplete); _local4.addEventListener(FileLoadEvent.LOAD_ERROR, onMaterialLoadError); } else { _local4 = MaterialObject3D.DEFAULT; Papervision3D.log((("Collada material " + _arg2) + " not found.")); }; _local4.name = _arg2; }; _materials.addMaterial(_local4); if (!_arg1.materials){ _arg1.materials = new MaterialsList(); }; _arg1.materials.addMaterial(_local4, _arg2); } private function getTexture(_arg1:String):String{ var filename:String; var material:XML; var effectId:String; var effect:XML; var textureId:String; var sampler:XML; var imageId:String; var image:XML; var sourceId:String; var source:XML; var name = _arg1; filename = null; material = COLLADA.library_materials.material.(@id == name)[0]; if (material){ effectId = getId(material.instance_effect.@url); effect = COLLADA.library_effects.effect.(@id == effectId)[0]; if (effect..texture.length() == 0){ return (null); }; textureId = effect..texture[0].@texture; sampler = effect..newparam.(@sid == textureId)[0]; imageId = textureId; if (sampler){ sourceId = sampler..source[0]; source = effect..newparam.(@sid == sourceId)[0]; imageId = source..init_from[0]; }; image = COLLADA.library_images.image.(@id == imageId)[0]; filename = image.init_from; if (filename.substr(0, 2) == "./"){ filename = filename.substr(2); }; }; return (filename); } private function buildCollada():void{ var sceneId:String; var scene:XML; var fileEvent:FileLoadEvent; materialsToLoad = 0; this._yUp = (COLLADA.asset.up_axis == "Y_UP"); sceneId = getId(COLLADA.scene.instance_visual_scene.@url); scene = COLLADA.library_visual_scenes.visual_scene.(@id == sceneId)[0]; parseScene(scene); fileEvent = new FileLoadEvent(FileLoadEvent.LOAD_COMPLETE, _filename); this.dispatchEvent(fileEvent); this.loaded = true; } private function rotateMatrix(_arg1:Array):Matrix3D{ if (this._yUp){ return (Matrix3D.rotationMatrix(_arg1[0], _arg1[1], _arg1[2], (-(_arg1[3]) * toRADIANS))); }; return (Matrix3D.rotationMatrix(_arg1[0], _arg1[2], _arg1[1], (-(_arg1[3]) * toRADIANS))); } } }//package org.papervision3d.objects
Section 49
//DisplayObject3D (org.papervision3d.objects.DisplayObject3D) package org.papervision3d.objects { import flash.display.*; import org.papervision3d.core.proto.*; import org.papervision3d.materials.*; import org.papervision3d.core.*; import org.papervision3d.core.geom.*; import org.papervision3d.scenes.*; import com.blitzagency.xray.logger.*; import org.papervision3d.utils.*; import org.papervision3d.*; public class DisplayObject3D extends DisplayObjectContainer3D { public var extra:Object; public var id:int; private var _rotationY:Number; private var _rotationZ:Number; private var _rotationX:Number; public var material:MaterialObject3D; public var meshSort:uint;// = 1 public var materials:MaterialsList; private var _scaleDirty:Boolean;// = false public var transform:Matrix3D; public var screenZ:Number; public var visible:Boolean; private var _scaleX:Number; private var _scaleY:Number; private var _scaleZ:Number; public var geometry:GeometryObject3D; public var interactiveSceneManager:InteractiveSceneManager; public var screen:Number3D; public var name:String; public var container:Sprite; public var world:Matrix3D; public var parent:DisplayObjectContainer3D; public var view:Matrix3D; protected var _scene:SceneObject3D;// = null public var faces:Array; protected var _transformDirty:Boolean;// = false private var _rotationDirty:Boolean;// = false protected var _sorted:Array; public static const MESH_SORT_CENTER:uint = 1; public static const MESH_SORT_CLOSE:uint = 3; public static const MESH_SORT_FAR:uint = 2; private static var LEFT:Number3D = new Number3D(-1, 0, 0); private static var _totalDisplayObjects:int = 0; private static var UP:Number3D = new Number3D(0, 1, 0); private static var BACKWARD:Number3D = new Number3D(0, 0, -1); private static var FORWARD:Number3D = new Number3D(0, 0, 1); private static var DOWN:Number3D = new Number3D(0, -1, 0); public static var faceLevelMode:Boolean; private static var toDEGREES:Number = 57.2957795130823; private static var toRADIANS:Number = 0.0174532925199433; private static var RIGHT:Number3D = new Number3D(1, 0, 0); public function DisplayObject3D(_arg1:String=null, _arg2:GeometryObject3D=null, _arg3:Object=null):void{ var _local4:Number; screen = new Number3D(); _scene = null; meshSort = MESH_SORT_CENTER; faces = new Array(); _transformDirty = false; _rotationDirty = false; _scaleDirty = false; super(); Papervision3D.log(("DisplayObject3D: " + _arg1)); this.transform = Matrix3D.IDENTITY; this.world = Matrix3D.IDENTITY; this.view = Matrix3D.IDENTITY; this.x = (_arg3) ? ((_arg3.x) || (0)) : 0; this.y = (_arg3) ? ((_arg3.y) || (0)) : 0; this.z = (_arg3) ? ((_arg3.z) || (0)) : 0; rotationX = (_arg3) ? ((_arg3.rotationX) || (0)) : 0; rotationY = (_arg3) ? ((_arg3.rotationY) || (0)) : 0; rotationZ = (_arg3) ? ((_arg3.rotationZ) || (0)) : 0; _local4 = (Papervision3D.usePERCENT) ? 100 : 1; scaleX = (_arg3) ? ((_arg3.scaleX) || (_local4)) : _local4; scaleY = (_arg3) ? ((_arg3.scaleY) || (_local4)) : _local4; scaleZ = (_arg3) ? ((_arg3.scaleZ) || (_local4)) : _local4; if (((_arg3) && (_arg3.extra))){ this.extra = _arg3.extra; }; if (((_arg3) && (_arg3.container))){ this.container = _arg3.container; }; this.visible = true; this.id = _totalDisplayObjects++; this.name = ((_arg1) || (String(this.id))); if (_arg2){ addGeometry(_arg2); }; } public function set z(_arg1:Number):void{ this.transform.n34 = _arg1; } override public function addChild(_arg1:DisplayObject3D, _arg2:String=null):DisplayObject3D{ _arg1 = super.addChild(_arg1, _arg2); if (_arg1.scene == null){ _arg1.scene = scene; }; return (_arg1); } public function moveDown(_arg1:Number):void{ translate(_arg1, DOWN); } public function set scene(_arg1:SceneObject3D):void{ var _local2:DisplayObject3D; _scene = _arg1; for each (_local2 in this._childrenByName) { if (_local2.scene == null){ _local2.scene = _scene; }; }; if ((_scene is InteractiveScene3D) == false){ return; }; interactiveSceneManager = InteractiveScene3D(_scene).interactiveSceneManager; } public function project(_arg1:DisplayObject3D, _arg2:CameraObject3D, _arg3:Array=null):Number{ var _local4:Number; var _local5:Number; var _local6:DisplayObject3D; if (this._transformDirty){ updateTransform(); }; this.view.calculateMultiply(_arg1.view, this.transform); this.world.calculateMultiply(_arg1.world, this.transform); calculateScreenCoords(_arg2); _local4 = 0; _local5 = 0; if (!_arg3){ _arg3 = new Array(); this._sorted = _arg3; }; for each (_local6 in this._childrenByName) { if (_local6.visible){ _local4 = (_local4 + _local6.project(this, _arg2, _arg3)); _local5++; }; }; return ((this.screenZ = (_local4 / _local5))); } private function calculateScreenCoords(_arg1:CameraObject3D):void{ var _local2:Number; _local2 = ((_arg1.focus * _arg1.zoom) / (_arg1.focus + view.n34)); screen.x = (view.n14 * _local2); screen.y = (view.n24 * _local2); screen.z = view.n34; } public function lookAt(_arg1:DisplayObject3D, _arg2:Number3D=null):void{ var _local3:Number3D; var _local4:Number3D; var _local5:Number3D; var _local6:Number3D; var _local7:Number3D; var _local8:Matrix3D; var _local9:XrayLog; _local3 = new Number3D(this.x, this.y, this.z); _local4 = new Number3D(_arg1.x, _arg1.y, _arg1.z); _local5 = Number3D.sub(_local4, _local3); _local5.normalize(); if (_local5.modulo > 0.1){ _local6 = Number3D.cross(_local5, ((_arg2) || (UP))); _local6.normalize(); _local7 = Number3D.cross(_local5, _local6); _local7.normalize(); _local8 = this.transform; _local8.n11 = (_local6.x * _scaleX); _local8.n21 = (_local6.y * _scaleX); _local8.n31 = (_local6.z * _scaleX); _local8.n12 = (-(_local7.x) * _scaleY); _local8.n22 = (-(_local7.y) * _scaleY); _local8.n32 = (-(_local7.z) * _scaleY); _local8.n13 = (_local5.x * _scaleZ); _local8.n23 = (_local5.y * _scaleZ); _local8.n33 = (_local5.z * _scaleZ); this._transformDirty = false; this._rotationDirty = true; } else { _local9 = new XrayLog(); _local9.debug("lookAt Error"); }; } public function set rotationX(_arg1:Number):void{ this._rotationX = (Papervision3D.useDEGREES) ? (-(_arg1) * toRADIANS) : -(_arg1); this._transformDirty = true; } public function set rotationY(_arg1:Number):void{ this._rotationY = (Papervision3D.useDEGREES) ? (-(_arg1) * toRADIANS) : -(_arg1); this._transformDirty = true; } public function set rotationZ(_arg1:Number):void{ this._rotationZ = (Papervision3D.useDEGREES) ? (-(_arg1) * toRADIANS) : -(_arg1); this._transformDirty = true; } public function addGeometry(_arg1:GeometryObject3D=null):void{ if (_arg1){ this.geometry = _arg1; }; } public function get sceneX():Number{ return (this.world.n14); } public function get scaleX():Number{ if (Papervision3D.usePERCENT){ return ((this._scaleX * 100)); }; return (this._scaleX); } public function get scaleY():Number{ if (Papervision3D.usePERCENT){ return ((this._scaleY * 100)); }; return (this._scaleY); } public function get scaleZ():Number{ if (Papervision3D.usePERCENT){ return ((this._scaleZ * 100)); }; return (this._scaleZ); } public function moveUp(_arg1:Number):void{ translate(_arg1, UP); } public function get sceneZ():Number{ return (this.world.n34); } public function distanceTo(_arg1:DisplayObject3D):Number{ var _local2:Number; var _local3:Number; var _local4:Number; _local2 = (this.x - _arg1.x); _local3 = (this.y - _arg1.y); _local4 = (this.z - _arg1.z); return (Math.sqrt((((_local2 * _local2) + (_local3 * _local3)) + (_local4 * _local4)))); } public function get sceneY():Number{ return (this.world.n24); } public function get scale():Number{ if ((((this._scaleX == this._scaleY)) && ((this._scaleX == this._scaleZ)))){ if (Papervision3D.usePERCENT){ return ((this._scaleX * 100)); }; return (this._scaleX); //unresolved jump }; return (NaN); } public function hitTestObject(_arg1:DisplayObject3D, _arg2:Number=1):Boolean{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local3 = (this.x - _arg1.x); _local4 = (this.y - _arg1.y); _local5 = (this.z - _arg1.z); _local6 = (((_local3 * _local3) + (_local4 * _local4)) + (_local5 * _local5)); _local7 = (this.geometry) ? this.geometry.boundingSphere2 : 0; _local8 = (_arg1.geometry) ? _arg1.geometry.boundingSphere2 : 0; _local7 = (_local7 * _arg2); return (((_local7 + _local8) > _local6)); } public function translate(_arg1:Number, _arg2:Number3D):void{ var _local3:Number3D; _local3 = _arg2.clone(); if (this._transformDirty){ updateTransform(); }; Matrix3D.rotateAxis(transform, _local3); this.x = (this.x + (_arg1 * _local3.x)); this.y = (this.y + (_arg1 * _local3.y)); this.z = (this.z + (_arg1 * _local3.z)); } private function updateRotation():void{ var _local1:Number3D; _local1 = Matrix3D.matrix2euler(this.transform); this._rotationX = (_local1.x * toRADIANS); this._rotationY = (_local1.y * toRADIANS); this._rotationZ = (_local1.z * toRADIANS); this._rotationDirty = false; } public function pitch(_arg1:Number):void{ var _local2:Number3D; var _local3:Matrix3D; _arg1 = (Papervision3D.useDEGREES) ? (_arg1 * toRADIANS) : _arg1; _local2 = RIGHT.clone(); if (this._transformDirty){ updateTransform(); }; Matrix3D.rotateAxis(transform, _local2); _local3 = Matrix3D.rotationMatrix(_local2.x, _local2.y, _local2.z, _arg1); this.transform.calculateMultiply3x3(_local3, transform); this._rotationDirty = true; } public function yaw(_arg1:Number):void{ var _local2:Number3D; var _local3:Matrix3D; _arg1 = (Papervision3D.useDEGREES) ? (_arg1 * toRADIANS) : _arg1; _local2 = UP.clone(); if (this._transformDirty){ updateTransform(); }; Matrix3D.rotateAxis(transform, _local2); _local3 = Matrix3D.rotationMatrix(_local2.x, _local2.y, _local2.z, _arg1); this.transform.calculateMultiply3x3(_local3, transform); this._rotationDirty = true; } public function copyTransform(_arg1):void{ var _local2:Matrix3D; var _local3:Matrix3D; _local2 = this.transform; _local3 = ((_arg1 is DisplayObject3D)) ? _arg1.transform : _arg1; _local2.n11 = _local3.n11; _local2.n12 = _local3.n12; _local2.n13 = _local3.n13; _local2.n14 = _local3.n14; _local2.n21 = _local3.n21; _local2.n22 = _local3.n22; _local2.n23 = _local3.n23; _local2.n24 = _local3.n24; _local2.n31 = _local3.n31; _local2.n32 = _local3.n32; _local2.n33 = _local3.n33; _local2.n34 = _local3.n34; this._transformDirty = false; this._rotationDirty = true; } public function get x():Number{ return (this.transform.n14); } public function get z():Number{ return (this.transform.n34); } override public function toString():String{ return (((((((this.name + ": x:") + Math.round(this.x)) + " y:") + Math.round(this.y)) + " z:") + Math.round(this.z))); } public function roll(_arg1:Number):void{ var _local2:Number3D; var _local3:Matrix3D; _arg1 = (Papervision3D.useDEGREES) ? (_arg1 * toRADIANS) : _arg1; _local2 = FORWARD.clone(); if (this._transformDirty){ updateTransform(); }; Matrix3D.rotateAxis(transform, _local2); _local3 = Matrix3D.rotationMatrix(_local2.x, _local2.y, _local2.z, _arg1); this.transform.calculateMultiply3x3(_local3, transform); this._rotationDirty = true; } public function getMaterialByName(_arg1:String):MaterialObject3D{ var _local2:MaterialObject3D; var _local3:DisplayObject3D; _local2 = this.materials.getMaterialByName(_arg1); if (_local2){ return (_local2); }; for each (_local3 in this._childrenByName) { _local2 = _local3.getMaterialByName(_arg1); if (_local2){ return (_local2); }; }; return (null); } public function moveLeft(_arg1:Number):void{ translate(_arg1, LEFT); } public function get scene():SceneObject3D{ return (_scene); } public function get y():Number{ return (this.transform.n24); } public function set scale(_arg1:Number):void{ if (Papervision3D.usePERCENT){ _arg1 = (_arg1 / 100); }; this._scaleX = (this._scaleY = (this._scaleZ = _arg1)); this._transformDirty = true; } public function render(_arg1:SceneObject3D):void{ var _local2:Array; var _local3:Sprite; var _local4:Number; var _local5:Face3DInstance; var _local6:Number; var _local7:int; _local2 = this._sorted; _local2.sortOn("screenZ", (Array.DESCENDING | Array.NUMERIC)); _local3 = ((this.container) || (_arg1.container)); _local4 = 0; _local6 = _local2.length; _local7 = 0; while (_local7 < _local6) { _local5 = _local2[_local7]; if (faceLevelMode){ if (!_local5.container){ _local5.container = new InteractiveSprite(this); _arg1.container.addChild(_local5.container); } else { _local5.container.graphics.clear(); }; if (_local5.visible){ _local4 = (_local4 + _local5.face.render(_local5.instance, _local5.container)); }; } else { if (_local5.visible){ _local4 = (_local4 + _local5.face.render(_local5.instance, _local3)); }; }; _local7++; }; _arg1.stats.rendered = (_arg1.stats.rendered + _local4); } public function get rotationY():Number{ if (this._rotationDirty){ updateRotation(); }; return ((Papervision3D.useDEGREES) ? (-(this._rotationY) * toDEGREES) : -(this._rotationY)); } public function get rotationZ():Number{ if (this._rotationDirty){ updateRotation(); }; return ((Papervision3D.useDEGREES) ? (-(this._rotationZ) * toDEGREES) : -(this._rotationZ)); } public function set scaleY(_arg1:Number):void{ if (Papervision3D.usePERCENT){ this._scaleY = (_arg1 / 100); } else { this._scaleY = _arg1; }; this._transformDirty = true; } public function set scaleZ(_arg1:Number):void{ if (Papervision3D.usePERCENT){ this._scaleZ = (_arg1 / 100); } else { this._scaleZ = _arg1; }; this._transformDirty = true; } public function get rotationX():Number{ if (this._rotationDirty){ updateRotation(); }; return ((Papervision3D.useDEGREES) ? (-(this._rotationX) * toDEGREES) : -(this._rotationX)); } public function set scaleX(_arg1:Number):void{ if (Papervision3D.usePERCENT){ this._scaleX = (_arg1 / 100); } else { this._scaleX = _arg1; }; this._transformDirty = true; } protected function updateTransform():void{ var _local1:Object; var _local2:Matrix3D; var _local3:Matrix3D; var _local4:Matrix3D; _local1 = Matrix3D.euler2quaternion(-(this._rotationY), -(this._rotationZ), this._rotationX); _local2 = Matrix3D.quaternion2matrix(_local1.x, _local1.y, _local1.z, _local1.w); _local3 = this.transform; _local2.n14 = _local3.n14; _local2.n24 = _local3.n24; _local2.n34 = _local3.n34; _local3.copy(_local2); _local4 = Matrix3D.IDENTITY; _local4.n11 = this._scaleX; _local4.n22 = this._scaleY; _local4.n33 = this._scaleZ; this.transform.calculateMultiply(_local3, _local4); this._transformDirty = false; } public function moveForward(_arg1:Number):void{ translate(_arg1, FORWARD); } public function copyPosition(_arg1):void{ var _local2:Matrix3D; var _local3:Matrix3D; _local2 = this.transform; _local3 = ((_arg1 is DisplayObject3D)) ? _arg1.transform : _arg1; _local2.n14 = _local3.n14; _local2.n24 = _local3.n24; _local2.n34 = _local3.n34; } public function hitTestPoint(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = (this.x - _arg1); _local5 = (this.y - _arg2); _local6 = (this.z - _arg3); _local7 = (((_arg1 * _arg1) + (_arg2 * _arg2)) + (_arg3 * _arg3)); _local8 = (this.geometry) ? this.geometry.boundingSphere2 : 0; return ((_local8 > _local7)); } public function moveRight(_arg1:Number):void{ translate(_arg1, RIGHT); } public function moveBackward(_arg1:Number):void{ translate(_arg1, BACKWARD); } public function materialsList():String{ var _local1:String; var _local2:String; var _local3:DisplayObject3D; _local1 = ""; for (_local2 in this.materials) { _local1 = (_local1 + (_local2 + "\n")); }; for each (_local3 in this._childrenByName) { for (_local2 in _local3.materials.materialsByName) { _local1 = (_local1 + (("+ " + _local2) + "\n")); }; }; return (_local1); } public function set x(_arg1:Number):void{ this.transform.n14 = _arg1; } public function set y(_arg1:Number):void{ this.transform.n24 = _arg1; } public static function get ZERO():DisplayObject3D{ return (new (DisplayObject3D)); } } }//package org.papervision3d.objects
Section 50
//Plane (org.papervision3d.objects.Plane) package org.papervision3d.objects { import org.papervision3d.core.proto.*; import org.papervision3d.core.*; import org.papervision3d.core.geom.*; public class Plane extends Mesh3D { public var segmentsH:Number; public var segmentsW:Number; public static var DEFAULT_SCALE:Number = 1; public static var DEFAULT_SEGMENTS:Number = 1; public static var DEFAULT_SIZE:Number = 500; public function Plane(_arg1:MaterialObject3D=null, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0, _arg6:Object=null){ var _local7:Number; super(_arg1, new Array(), new Array(), null, _arg6); this.segmentsW = ((_arg4) || (DEFAULT_SEGMENTS)); this.segmentsH = ((_arg5) || (this.segmentsW)); _local7 = DEFAULT_SCALE; if (!_arg3){ if (_arg2){ _local7 = _arg2; }; if (((_arg1) && (_arg1.bitmap))){ _arg2 = (_arg1.bitmap.width * _local7); _arg3 = (_arg1.bitmap.height * _local7); } else { _arg2 = (DEFAULT_SIZE * _local7); _arg3 = (DEFAULT_SIZE * _local7); }; }; buildPlane(_arg2, _arg3); } private function buildPlane(_arg1:Number, _arg2:Number):void{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Array; var _local8:Array; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:int; var _local14:NumberUV; var _local15:NumberUV; var _local16:NumberUV; var _local17:int; var _local18:Number; var _local19:Number; var _local20:Vertex3D; var _local21:Vertex3D; var _local22:Vertex3D; _local3 = this.segmentsW; _local4 = this.segmentsH; _local5 = (_local3 + 1); _local6 = (_local4 + 1); _local7 = this.geometry.vertices; _local8 = this.geometry.faces; _local9 = (_arg1 / 2); _local10 = (_arg2 / 2); _local11 = (_arg1 / _local3); _local12 = (_arg2 / _local4); _local13 = 0; while (_local13 < (_local3 + 1)) { _local17 = 0; while (_local17 < _local6) { _local18 = ((_local13 * _local11) - _local9); _local19 = ((_local17 * _local12) - _local10); _local7.push(new Vertex3D(_local18, _local19, 0)); _local17++; }; _local13++; }; _local13 = 0; while (_local13 < _local3) { _local17 = 0; while (_local17 < _local4) { _local20 = _local7[((_local13 * _local6) + _local17)]; _local21 = _local7[((_local13 * _local6) + (_local17 + 1))]; _local22 = _local7[(((_local13 + 1) * _local6) + _local17)]; _local14 = new NumberUV((_local13 / _local3), (_local17 / _local4)); _local15 = new NumberUV((_local13 / _local3), ((_local17 + 1) / _local4)); _local16 = new NumberUV(((_local13 + 1) / _local3), (_local17 / _local4)); _local8.push(new Face3D([_local20, _local22, _local21], null, [_local14, _local16, _local15])); _local20 = _local7[(((_local13 + 1) * _local6) + (_local17 + 1))]; _local21 = _local7[(((_local13 + 1) * _local6) + _local17)]; _local22 = _local7[((_local13 * _local6) + (_local17 + 1))]; _local14 = new NumberUV(((_local13 + 1) / _local3), ((_local17 + 1) / _local4)); _local15 = new NumberUV(((_local13 + 1) / _local3), (_local17 / _local4)); _local16 = new NumberUV((_local13 / _local3), ((_local17 + 1) / _local4)); _local8.push(new Face3D([_local20, _local22, _local21], null, [_local14, _local16, _local15])); _local17++; }; _local13++; }; this.geometry.ready = true; } } }//package org.papervision3d.objects
Section 51
//InteractiveScene3D (org.papervision3d.scenes.InteractiveScene3D) package org.papervision3d.scenes { import flash.display.*; import org.papervision3d.core.proto.*; import org.papervision3d.utils.*; public class InteractiveScene3D extends MovieScene3D { public var interactiveSceneManager:InteractiveSceneManager; public function InteractiveScene3D(_arg1:Sprite){ super(_arg1); interactiveSceneManager = new InteractiveSceneManager(this); } override public function renderCamera(_arg1:CameraObject3D):void{ interactiveSceneManager.resetFaces(); super.renderCamera(_arg1); interactiveSceneManager.sortObjects(); } } }//package org.papervision3d.scenes
Section 52
//MovieScene3D (org.papervision3d.scenes.MovieScene3D) package org.papervision3d.scenes { import flash.display.*; import org.papervision3d.core.proto.*; import org.papervision3d.objects.*; import flash.utils.*; public class MovieScene3D extends Scene3D { private var spriteList:Dictionary; private var containerList:Array; public function MovieScene3D(_arg1:Sprite){ super(_arg1); this.containerList = new Array(); spriteList = new Dictionary(); } override public function addChild(_arg1:DisplayObject3D, _arg2:String=null):DisplayObject3D{ _arg1 = super.addChild(_arg1, _arg2); _arg1.container = new Sprite(); container.addChild(_arg1.container); this.containerList.push(_arg1.container); spriteList[_arg1] = _arg1.container; return (_arg1); } public function getSprite(_arg1:DisplayObject3D):Sprite{ return (spriteList[_arg1]); } override protected function renderObjects(_arg1:Boolean):void{ var _local2:Number; var _local3:Sprite; var _local4:Array; var _local5:Number; var _local6:DisplayObject3D; var _local7:Array; var _local8:Object; _local2 = this.objects.length; _local4 = this.containerList; _local5 = 0; while ((_local3 = _local4[_local5++])) { _local3.graphics.clear(); }; _local7 = this.objects; _local5 = _local7.length; if (_arg1){ while ((_local6 = _local7[--_local5])) { if (_local6.visible){ container.addChild(_local6.container); _local6.render(this); }; }; } else { while ((_local6 = _local7[--_local5])) { if (_local6.visible){ _local6.render(this); }; }; }; _local8 = this.stats; _local8.performance = (getTimer() - _local8.performance); } override public function removeChild(_arg1:DisplayObject3D):DisplayObject3D{ var _local2:DisplayObject3D; var _local3:int; _local2 = super.removeChild(_arg1); _local3 = 0; while (_local3 < containerList.length) { if (_local2.container == containerList[_local3]){ this.containerList.splice(_local3, 1); }; _local3++; }; container.removeChild(_local2.container); delete spriteList[_local2]; return (_local2); } } }//package org.papervision3d.scenes
Section 53
//Scene3D (org.papervision3d.scenes.Scene3D) package org.papervision3d.scenes { import flash.display.*; import org.papervision3d.core.proto.*; import org.papervision3d.objects.*; import flash.utils.*; public class Scene3D extends SceneObject3D { public function Scene3D(_arg1:Sprite){ super(_arg1); } override protected function renderObjects(_arg1:Boolean):void{ var _local2:DisplayObject3D; var _local3:Array; var _local4:Number; var _local5:Object; this.container.graphics.clear(); _local3 = this.objects; _local4 = _local3.length; while ((_local2 = _local3[--_local4])) { if (_local2.visible){ _local2.render(this); }; }; _local5 = this.stats; _local5.performance = (getTimer() - _local5.performance); } } }//package org.papervision3d.scenes
Section 54
//IVirtualMouseEvent (org.papervision3d.utils.virtualmouse.IVirtualMouseEvent) package org.papervision3d.utils.virtualmouse { public interface IVirtualMouseEvent { } }//package org.papervision3d.utils.virtualmouse
Section 55
//VirtualMouse (org.papervision3d.utils.virtualmouse.VirtualMouse) package org.papervision3d.utils.virtualmouse { import flash.display.*; import flash.events.*; import com.blitzagency.xray.logger.*; import flash.geom.*; import flash.utils.*; public class VirtualMouse extends EventDispatcher { private var _container:Sprite; private var lastDownTarget:DisplayObject; private var target:InteractiveObject; private var updateMouseDown:Boolean;// = false private var eventEvent:Class; private var _lastEvent:Event; private var mouseEventEvent:Class; private var location:Point; private var delta:int;// = 0 private var disabledEvents:Object; private var log:XrayLog; private var ignoredInstances:Dictionary; private var isLocked:Boolean;// = false private var lastWithinStage:Boolean;// = true private var lastLocation:Point; private var isDoubleClickEvent:Boolean;// = false private var lastMouseDown:Boolean;// = false private var altKey:Boolean;// = false private var _useNativeEvents:Boolean;// = false private var ctrlKey:Boolean;// = false private var shiftKey:Boolean;// = false private var _stage:Stage; public static const UPDATE:String = "update"; private static var _mouseIsDown:Boolean = false; public function VirtualMouse(_arg1:Stage=null, _arg2:Sprite=null, _arg3:Number=0, _arg4:Number=0){ altKey = false; ctrlKey = false; shiftKey = false; delta = 0; isLocked = false; isDoubleClickEvent = false; disabledEvents = new Object(); ignoredInstances = new Dictionary(true); lastMouseDown = false; updateMouseDown = false; lastWithinStage = true; _useNativeEvents = false; eventEvent = VirtualMouseEvent; mouseEventEvent = VirtualMouseMouseEvent; log = new XrayLog(); super(); this.stage = _arg1; this.container = _arg2; location = new Point(_arg3, _arg4); lastLocation = location.clone(); addEventListener(UPDATE, handleUpdate); update(); } public function get mouseIsDown():Boolean{ return (_mouseIsDown); } public function get stage():Stage{ return (_stage); } public function exitContainer():void{ var _local1:Point; _local1 = target.globalToLocal(location); if (!disabledEvents[MouseEvent.MOUSE_OUT]){ _lastEvent = new mouseEventEvent(MouseEvent.MOUSE_OUT, true, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); container.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; if (!disabledEvents[MouseEvent.ROLL_OUT]){ _lastEvent = new mouseEventEvent(MouseEvent.ROLL_OUT, false, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); container.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; if (target != container){ if (!disabledEvents[MouseEvent.MOUSE_OUT]){ _lastEvent = new mouseEventEvent(MouseEvent.MOUSE_OUT, true, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); target.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; if (!disabledEvents[MouseEvent.ROLL_OUT]){ _lastEvent = new mouseEventEvent(MouseEvent.ROLL_OUT, false, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); target.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; }; target = _stage; } public function release():void{ updateMouseDown = true; _mouseIsDown = false; if (!isLocked){ update(); }; } public function click():void{ press(); release(); } public function get container():Sprite{ return (_container); } public function set container(_arg1:Sprite):void{ _container = _arg1; } public function get y():Number{ return (location.y); } public function set x(_arg1:Number):void{ location.x = _arg1; if (!isLocked){ update(); }; } public function disableEvent(_arg1:String):void{ disabledEvents[_arg1] = true; } public function get lastEvent():Event{ return (_lastEvent); } private function handleUpdate(_arg1:Event):void{ var _local2:Array; var _local3:InteractiveObject; var _local4:DisplayObject; var _local5:int; var _local6:Point; var _local7:Point; var _local8:Boolean; if (!container){ return; }; _local2 = container.getObjectsUnderPoint(location); _local5 = _local2.length; while (_local5--) { _local4 = _local2[_local5]; while (_local4) { if (ignoredInstances[_local4]){ _local3 = null; break; }; if (((_local3) && ((_local4 is SimpleButton)))){ _local3 = null; } else { if (((_local3) && (!(DisplayObjectContainer(_local4).mouseChildren)))){ _local3 = null; }; }; if (((((!(_local3)) && ((_local4 is InteractiveObject)))) && (InteractiveObject(_local4).mouseEnabled))){ _local3 = InteractiveObject(_local4); }; _local4 = _local4.parent; }; if (_local3){ break; }; }; if (!_local3){ _local3 = _stage; log.debug("no new target found, using stage"); }; _local6 = target.globalToLocal(location); _local7 = _local3.globalToLocal(location); if (((!((lastLocation.x == location.x))) || (!((lastLocation.y == location.y))))){ _local8 = false; if (stage){ _local8 = (((((((location.x >= 0)) && ((location.y >= 0)))) && ((location.x <= stage.stageWidth)))) && ((location.y <= stage.stageHeight))); }; if (((((!(_local8)) && (lastWithinStage))) && (!(disabledEvents[Event.MOUSE_LEAVE])))){ _lastEvent = new eventEvent(Event.MOUSE_LEAVE, false, false); stage.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; if (((_local8) && (!(disabledEvents[MouseEvent.MOUSE_MOVE])))){ _lastEvent = new mouseEventEvent(MouseEvent.MOUSE_MOVE, true, false, _local7.x, _local7.y, _local3, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); _local3.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; lastWithinStage = _local8; }; if (_local3 != target){ if (!disabledEvents[MouseEvent.MOUSE_OUT]){ _lastEvent = new mouseEventEvent(MouseEvent.MOUSE_OUT, true, false, _local6.x, _local6.y, _local3, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); target.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; if (!disabledEvents[MouseEvent.ROLL_OUT]){ _lastEvent = new mouseEventEvent(MouseEvent.ROLL_OUT, false, false, _local6.x, _local6.y, _local3, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); target.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; if (!disabledEvents[MouseEvent.MOUSE_OVER]){ _lastEvent = new mouseEventEvent(MouseEvent.MOUSE_OVER, true, false, _local7.x, _local7.y, target, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); _local3.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; if (!disabledEvents[MouseEvent.ROLL_OVER]){ _lastEvent = new mouseEventEvent(MouseEvent.ROLL_OVER, false, false, _local7.x, _local7.y, target, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); _local3.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; }; if (updateMouseDown){ if (_mouseIsDown){ if (!disabledEvents[MouseEvent.MOUSE_DOWN]){ _lastEvent = new mouseEventEvent(MouseEvent.MOUSE_DOWN, true, false, _local7.x, _local7.y, _local3, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); _local3.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; lastDownTarget = _local3; updateMouseDown = false; } else { if (!disabledEvents[MouseEvent.MOUSE_UP]){ _lastEvent = new mouseEventEvent(MouseEvent.MOUSE_UP, true, false, _local7.x, _local7.y, _local3, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); _local3.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; if (((!(disabledEvents[MouseEvent.CLICK])) && ((_local3 == lastDownTarget)))){ _lastEvent = new mouseEventEvent(MouseEvent.CLICK, true, false, _local7.x, _local7.y, _local3, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); _local3.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; lastDownTarget = null; updateMouseDown = false; }; }; if (((((isDoubleClickEvent) && (!(disabledEvents[MouseEvent.DOUBLE_CLICK])))) && (_local3.doubleClickEnabled))){ _lastEvent = new mouseEventEvent(MouseEvent.DOUBLE_CLICK, true, false, _local7.x, _local7.y, _local3, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); _local3.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; lastLocation = location.clone(); lastMouseDown = _mouseIsDown; target = _local3; } public function getLocation():Point{ return (location.clone()); } public function get x():Number{ return (location.x); } public function lock():void{ isLocked = true; } public function get useNativeEvents():Boolean{ return (_useNativeEvents); } public function setLocation(_arg1, _arg2=null):void{ var _local3:Point; if ((_arg1 is Point)){ _local3 = Point(_arg1); location.x = _local3.x; location.y = _local3.y; } else { location.x = Number(_arg1); location.y = Number(_arg2); }; if (!isLocked){ update(); }; } private function keyHandler(_arg1:KeyboardEvent):void{ altKey = _arg1.altKey; ctrlKey = _arg1.ctrlKey; shiftKey = _arg1.shiftKey; } public function unignore(_arg1:DisplayObject):void{ if ((_arg1 in ignoredInstances)){ delete ignoredInstances[_arg1]; }; } public function doubleClick():void{ if (isLocked){ release(); } else { click(); press(); isDoubleClickEvent = true; release(); isDoubleClickEvent = false; }; } public function update():void{ dispatchEvent(new Event(UPDATE, false, false)); } public function ignore(_arg1:DisplayObject):void{ ignoredInstances[_arg1] = true; } public function unlock():void{ isLocked = false; update(); } public function enableEvent(_arg1:String):void{ if ((_arg1 in disabledEvents)){ delete disabledEvents[_arg1]; }; } public function press():void{ updateMouseDown = true; _mouseIsDown = true; if (!isLocked){ update(); }; } public function set useNativeEvents(_arg1:Boolean):void{ if (_arg1 == _useNativeEvents){ return; }; _useNativeEvents = _arg1; if (_useNativeEvents){ eventEvent = VirtualMouseEvent; mouseEventEvent = VirtualMouseMouseEvent; } else { eventEvent = Event; mouseEventEvent = MouseEvent; }; } public function set y(_arg1:Number):void{ location.y = _arg1; if (!isLocked){ update(); }; } public function set stage(_arg1:Stage):void{ var _local2:Boolean; if (_stage){ _local2 = true; _stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyHandler); _stage.removeEventListener(KeyboardEvent.KEY_UP, keyHandler); } else { _local2 = false; }; _stage = _arg1; if (_stage){ _stage.addEventListener(KeyboardEvent.KEY_DOWN, keyHandler); _stage.addEventListener(KeyboardEvent.KEY_UP, keyHandler); target = _stage; if (!_local2){ update(); }; }; } } }//package org.papervision3d.utils.virtualmouse
Section 56
//VirtualMouseEvent (org.papervision3d.utils.virtualmouse.VirtualMouseEvent) package org.papervision3d.utils.virtualmouse { import flash.events.*; public class VirtualMouseEvent extends Event implements IVirtualMouseEvent { public function VirtualMouseEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } } }//package org.papervision3d.utils.virtualmouse
Section 57
//VirtualMouseMouseEvent (org.papervision3d.utils.virtualmouse.VirtualMouseMouseEvent) package org.papervision3d.utils.virtualmouse { import flash.display.*; import flash.events.*; public class VirtualMouseMouseEvent extends MouseEvent implements IVirtualMouseEvent { public function VirtualMouseMouseEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:Number=NaN, _arg5:Number=NaN, _arg6:InteractiveObject=null, _arg7:Boolean=false, _arg8:Boolean=false, _arg9:Boolean=false, _arg10:Boolean=false, _arg11:int=0){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, _arg11); } } }//package org.papervision3d.utils.virtualmouse
Section 58
//InteractiveContainerData (org.papervision3d.utils.InteractiveContainerData) package org.papervision3d.utils { import flash.events.*; import org.papervision3d.objects.*; import org.papervision3d.core.geom.*; public class InteractiveContainerData extends EventDispatcher { public var container:InteractiveSprite; public var displayObject3D:DisplayObject3D;// = null public var lineColor:Number; public var lineAlpha:Number; public var fillAlpha:Number; public var sort:Boolean;// = false public var isDrawn:Boolean;// = false public var color:Number; public var lineSize:Number; public var face3d:Face3D; public function InteractiveContainerData(_arg1, _arg2:Number=0, _arg3:IEventDispatcher=null){ displayObject3D = null; isDrawn = false; sort = false; color = InteractiveSceneManager.DEFAULT_FILL_COLOR; fillAlpha = InteractiveSceneManager.DEFAULT_FILL_ALPHA; lineColor = InteractiveSceneManager.DEFAULT_LINE_COLOR; lineSize = InteractiveSceneManager.DEFAULT_LINE_SIZE; lineAlpha = InteractiveSceneManager.DEFAULT_LINE_ALPHA; super(_arg3); displayObject3D = (((_arg1 is DisplayObject3D) == true)) ? _arg1 : null; face3d = (((_arg1 is Face3D) == true)) ? _arg1 : null; if (displayObject3D != null){ this.container = new InteractiveSprite(_arg1); }; if (face3d != null){ if (face3d.face3DInstance.container != null){ this.container = InteractiveSprite(face3d.face3DInstance.container); } else { this.container = new InteractiveSprite(); }; }; color = _arg2; container.alpha = InteractiveSceneManager.DEFAULT_SPRITE_ALPHA; container.interactiveContainerData = this; } public function get screenZ():Number{ return (((displayObject3D)!=null) ? displayObject3D.screenZ : face3d.screenZ); } } }//package org.papervision3d.utils
Section 59
//InteractiveSceneManager (org.papervision3d.utils.InteractiveSceneManager) package org.papervision3d.utils { import flash.display.*; import flash.events.*; import org.papervision3d.core.proto.*; import org.papervision3d.materials.*; import org.papervision3d.objects.*; import org.papervision3d.core.geom.*; import com.blitzagency.xray.logger.*; import flash.geom.*; import org.papervision3d.events.*; import flash.utils.*; import org.papervision3d.utils.virtualmouse.*; public class InteractiveSceneManager extends EventDispatcher { public var container:Sprite; public var scene:SceneObject3D; protected var allowDraw:Boolean;// = true protected var log:XrayLog; private var _mouseInteractionMode:Boolean;// = false public var faceDictionary:Dictionary; public var mouse3D:Mouse3D; public var virtualMouse:VirtualMouse; public var faceLevelMode:Boolean;// = false public var debug:Boolean;// = false protected var evaluateClick:Boolean;// = false public var buttonMode:Boolean;// = false public var containerDictionary:Dictionary; public static var DEFAULT_FILL_ALPHA:Number = 1; public static var DEFAULT_SPRITE_ALPHA:Number = 1; public static var DEFAULT_FILL_COLOR:Number = 0xFFFFFF; public static var DEFAULT_LINE_SIZE:Number = 1; public static var DEFAULT_LINE_ALPHA:Number = 1; public static var DEFAULT_LINE_COLOR:Number = -1; public static var MOUSE_IS_DOWN:Boolean = false; public static var SHOW_DRAWN_FACES:Boolean = false; public function InteractiveSceneManager(_arg1:SceneObject3D):void{ buttonMode = false; faceLevelMode = false; _mouseInteractionMode = false; faceDictionary = new Dictionary(); containerDictionary = new Dictionary(); container = new InteractiveSprite(); mouse3D = new Mouse3D(); virtualMouse = new VirtualMouse(); debug = false; allowDraw = true; evaluateClick = false; log = new XrayLog(); super(); container.addEventListener(Event.ADDED_TO_STAGE, handleAddedToStage); scene = _arg1; scene.container.parent.addChild(container); container.x = scene.container.x; container.y = scene.container.y; enableMouse = false; } protected function handleStageMouseMove(_arg1:MouseEvent):void{ allowDraw = true; } public function sortObjects():void{ var _local1:Array; var _local2:InteractiveContainerData; var _local3:uint; var _local4:Number; _local1 = []; for each (_local2 in faceDictionary) { if (!_local2.sort){ } else { _local4 = ((_local2.face3d == null)) ? _local2.screenZ : _local2.face3d.face3DInstance.screenZ; _local1.push({container:_local2.container, distance:_local4}); }; }; _local1.sortOn("distance", (Array.DESCENDING | Array.NUMERIC)); _local3 = 0; while (_local3 < _local1.length) { container.addChild(_local1[_local3].container); _local3++; }; if (mouseInteractionMode){ allowDraw = false; }; } public function setInteractivityDefaults():void{ SHOW_DRAWN_FACES = false; DEFAULT_SPRITE_ALPHA = 1; DEFAULT_FILL_ALPHA = 1; BitmapMaterial.AUTO_MIP_MAPPING = false; DisplayObject3D.faceLevelMode = false; buttonMode = true; faceLevelMode = true; mouseInteractionMode = false; } public function addInteractiveObject(_arg1:Object):void{ var _local2:InteractiveContainerData; var _local3:InteractiveSprite; if (faceDictionary[_arg1] == null){ _local2 = (faceDictionary[_arg1] = new InteractiveContainerData(_arg1)); containerDictionary[_local2.container] = _arg1; _local3 = _local2.container; _local3.addEventListener(MouseEvent.MOUSE_DOWN, handleMousePress); _local3.addEventListener(MouseEvent.MOUSE_UP, handleMouseRelease); _local3.addEventListener(MouseEvent.CLICK, handleMouseClick); _local3.addEventListener(MouseEvent.MOUSE_OVER, handleMouseOver); _local3.addEventListener(MouseEvent.MOUSE_OUT, handleMouseOut); _local3.addEventListener(MouseEvent.MOUSE_MOVE, handleMouseMove); _local3.buttonMode = buttonMode; if (((!(SHOW_DRAWN_FACES)) && (!(DisplayObject3D.faceLevelMode)))){ _local3.blendMode = BlendMode.ERASE; }; virtualMouse.ignore(_local3); dispatchEvent(new InteractiveScene3DEvent(InteractiveScene3DEvent.OBJECT_ADDED, null, _local3)); if (debug){ log.debug("addDisplayObject id", _arg1.id, _arg1.name, DEFAULT_SPRITE_ALPHA); }; }; } public function resetFaces():void{ var _local1:InteractiveContainerData; for each (_local1 in faceDictionary) { _local1.container.graphics.clear(); _local1.sort = _local1.isDrawn; _local1.isDrawn = false; }; resizeStage(); } public function resizeStage():void{ container.x = scene.container.x; container.y = scene.container.y; } protected function handleMouseClick(_arg1:MouseEvent):void{ dispatchObjectEvent(InteractiveScene3DEvent.OBJECT_CLICK, Sprite(_arg1.currentTarget)); } protected function handleMouseOut(_arg1:MouseEvent):void{ var face3d:Face3D; var p:Object; var mat:InteractiveMovieMaterial; var rect:Rectangle; var contains:Boolean; var e = _arg1; if (((VirtualMouse) && (((faceLevelMode) || (DisplayObject3D.faceLevelMode))))){ try { face3d = containerDictionary[e.currentTarget]; p = InteractiveUtils.getMapCoordAtPoint(face3d, container.mouseX, container.mouseY); mat = InteractiveMovieMaterial(face3d.face3DInstance.instance.material); rect = new Rectangle(0, 0, mat.movie.width, mat.movie.height); contains = rect.contains(p.x, p.y); if (!contains){ virtualMouse.exitContainer(); }; } catch(err:Error) { log.error("material type is not Interactive. If you're using a Collada object, you may have to reassign the material to the object after the collada scene is loaded", err.message); }; }; dispatchObjectEvent(InteractiveScene3DEvent.OBJECT_OUT, Sprite(e.currentTarget)); } public function drawFace(_arg1:DisplayObject3D, _arg2:Face3D, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number):void{ var _local9:Object; var _local10:InteractiveContainerData; var _local11:InteractiveSprite; var _local12:Graphics; _local9 = _arg1; if (((faceLevelMode) || (DisplayObject3D.faceLevelMode))){ _local9 = _arg2; }; if (faceDictionary[_local9] == null){ addInteractiveObject(_local9); }; if (((allowDraw) && (!(DisplayObject3D.faceLevelMode)))){ _local10 = faceDictionary[_local9]; _local11 = _local10.container; _local12 = _local11.graphics; _local11.x0 = _arg3; _local11.x1 = _arg4; _local11.x2 = _arg5; _local11.y0 = _arg6; _local11.y1 = _arg7; _local11.y2 = _arg8; _local12.beginFill(_local10.color, _local10.fillAlpha); if (((!((_local10.lineColor == -1))) && (SHOW_DRAWN_FACES))){ _local12.lineStyle(_local10.lineSize, _local10.lineColor, _local10.lineAlpha); }; _local12.moveTo(_arg3, _arg6); _local12.lineTo(_arg4, _arg7); _local12.lineTo(_arg5, _arg8); _local12.endFill(); _local10.isDrawn = true; }; } public function set enableMouse(_arg1:Boolean):void{ Mouse3D.enabled = _arg1; } protected function dispatchObjectEvent(_arg1:String, _arg2:Sprite):void{ var _local3:Face3D; var _local4:InteractiveContainerData; if (debug){ log.debug(_arg1, DisplayObject3D(containerDictionary[_arg2]).name); }; if ((containerDictionary[_arg2] is DisplayObject3D)){ containerDictionary[_arg2].dispatchEvent(new InteractiveScene3DEvent(_arg1, containerDictionary[_arg2], InteractiveSprite(_arg2))); dispatchEvent(new InteractiveScene3DEvent(_arg1, containerDictionary[_arg2], InteractiveSprite(_arg2), null, null)); } else { if ((containerDictionary[_arg2] is Face3D)){ _local3 = containerDictionary[_arg2]; _local4 = faceDictionary[_local3]; dispatchEvent(new InteractiveScene3DEvent(_arg1, null, InteractiveSprite(_arg2), _local3, _local4)); }; }; } protected function handleMouseMove(_arg1:MouseEvent):void{ var point:Object; var face3d:Face3D; var mat:MovieMaterial; var e = _arg1; if (((VirtualMouse) && (((faceLevelMode) || (DisplayObject3D.faceLevelMode))))){ face3d = containerDictionary[e.currentTarget]; point = InteractiveUtils.getMapCoordAtPoint(face3d, container.mouseX, container.mouseY); try { mat = (face3d.face3DInstance.instance.material as MovieMaterial); virtualMouse.container = (mat.movie as Sprite); if (virtualMouse.container){ virtualMouse.setLocation(point.x, point.y); }; } catch(err:Error) { log.error("material type is not Inter active. If you're using a Collada object, you may have to reassign the material to the object after the collada scene is loaded", err.message); }; }; dispatchObjectEvent(InteractiveScene3DEvent.OBJECT_MOVE, Sprite(e.currentTarget)); if (((Mouse3D.enabled) && (((faceLevelMode) || (DisplayObject3D.faceLevelMode))))){ mouse3D.updatePosition(Face3D(containerDictionary[e.currentTarget]), (e.currentTarget as Sprite)); }; } protected function handleMouseOver(_arg1:MouseEvent):void{ var _local2:String; _local2 = (((!(evaluateClick)) || (!(mouseInteractionMode)))) ? InteractiveScene3DEvent.OBJECT_OVER : InteractiveScene3DEvent.OBJECT_CLICK; evaluateClick = false; if (((virtualMouse) && ((_local2 == InteractiveScene3DEvent.OBJECT_CLICK)))){ virtualMouse.click(); }; dispatchObjectEvent(_local2, Sprite(_arg1.currentTarget)); } public function set mouseInteractionMode(_arg1:Boolean):void{ _mouseInteractionMode = _arg1; allowDraw = !(_arg1); if (_arg1){ container.stage.addEventListener(MouseEvent.MOUSE_MOVE, handleStageMouseMove); }; if (!_arg1){ container.stage.removeEventListener(MouseEvent.MOUSE_MOVE, handleStageMouseMove); }; } public function get enableMouse():Boolean{ return (Mouse3D.enabled); } protected function handleMousePress(_arg1:MouseEvent):void{ MOUSE_IS_DOWN = true; if (virtualMouse){ virtualMouse.press(); }; dispatchObjectEvent(InteractiveScene3DEvent.OBJECT_PRESS, Sprite(_arg1.currentTarget)); } protected function handleReleaseOutside(_arg1:MouseEvent):void{ if (debug){ log.debug("releaseOutside"); }; dispatchEvent(new InteractiveScene3DEvent(InteractiveScene3DEvent.OBJECT_RELEASE_OUTSIDE)); MOUSE_IS_DOWN = false; evaluateClick = true; allowDraw = true; } public function get mouseInteractionMode():Boolean{ return (_mouseInteractionMode); } protected function handleAddedToStage(_arg1:Event):void{ container.stage.addEventListener(Event.RESIZE, handleResize); container.stage.addEventListener(MouseEvent.MOUSE_UP, handleReleaseOutside); virtualMouse.stage = container.stage; } protected function handleMouseRelease(_arg1:MouseEvent):void{ MOUSE_IS_DOWN = false; if (virtualMouse){ virtualMouse.release(); }; dispatchObjectEvent(InteractiveScene3DEvent.OBJECT_RELEASE, Sprite(_arg1.currentTarget)); } protected function handleResize(_arg1:Event):void{ resizeStage(); } } }//package org.papervision3d.utils
Section 60
//InteractiveSprite (org.papervision3d.utils.InteractiveSprite) package org.papervision3d.utils { import flash.display.*; import org.papervision3d.objects.*; public class InteractiveSprite extends Sprite { public var interactiveContainerData:InteractiveContainerData;// = null public var x1:Number; public var x2:Number; public var x0:Number; public var y0:Number; public var y2:Number; public var obj:DisplayObject3D;// = null public var y1:Number; public function InteractiveSprite(_arg1:DisplayObject3D=null):void{ obj = null; interactiveContainerData = null; super(); this.obj = _arg1; } } }//package org.papervision3d.utils
Section 61
//InteractiveUtils (org.papervision3d.utils.InteractiveUtils) package org.papervision3d.utils { import flash.display.*; import org.papervision3d.core.proto.*; import org.papervision3d.materials.*; import org.papervision3d.objects.*; import org.papervision3d.core.geom.*; public class InteractiveUtils { public static function getMapCoordAtPointDO3D(_arg1:DisplayObject3D, _arg2:Number, _arg3:Number):Object{ var _local4:Face3D; _local4 = _arg1.geometry.faces[0]; return (getMapCoordAtPoint(_local4, _arg2, _arg3)); } public static function UVatPoint(_arg1:Face3D, _arg2:Number, _arg3:Number):Object{ var _local4:Vertex3D; var _local5:Vertex3D; var _local6:Vertex3D; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local4 = _arg1.v0; _local5 = _arg1.v1; _local6 = _arg1.v2; _local7 = _local4.vertex2DInstance.x; _local8 = _local4.vertex2DInstance.y; _local9 = _local5.vertex2DInstance.x; _local10 = _local5.vertex2DInstance.y; _local11 = _local6.vertex2DInstance.x; _local12 = _local6.vertex2DInstance.y; _local13 = (_local11 - _local7); _local14 = (_local12 - _local8); _local15 = (_local9 - _local7); _local16 = (_local10 - _local8); _local17 = (_arg2 - _local7); _local18 = (_arg3 - _local8); _local19 = ((_local13 * _local13) + (_local14 * _local14)); _local20 = ((_local13 * _local15) + (_local14 * _local16)); _local21 = ((_local13 * _local17) + (_local14 * _local18)); _local22 = ((_local15 * _local15) + (_local16 * _local16)); _local23 = ((_local15 * _local17) + (_local16 * _local18)); _local24 = (1 / ((_local19 * _local22) - (_local20 * _local20))); _local25 = (((_local22 * _local21) - (_local20 * _local23)) * _local24); _local26 = (((_local19 * _local23) - (_local20 * _local21)) * _local24); return ({u:_local25, v:_local26}); } public static function getMapCoordAtPoint(_arg1:Face3D, _arg2:Number, _arg3:Number):Object{ var _local4:Array; var _local5:Object; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:MaterialObject3D; var _local17:BitmapData; var _local18:Number; var _local19:Number; _local4 = _arg1.uv; _local5 = UVatPoint(_arg1, _arg2, _arg3); _local6 = _local5.u; _local7 = _local5.v; _local8 = _local4[0].u; _local9 = _local4[1].u; _local10 = _local4[2].u; _local11 = _local4[0].v; _local12 = _local4[1].v; _local13 = _local4[2].v; _local14 = ((((_local9 - _local8) * _local7) + ((_local10 - _local8) * _local6)) + _local8); _local15 = ((((_local12 - _local11) * _local7) + ((_local13 - _local11) * _local6)) + _local11); _local16 = _arg1.face3DInstance.instance.material; _local17 = _local16.bitmap; _local18 = 1; _local19 = 1; if (_local17){ _local18 = (BitmapMaterial.AUTO_MIP_MAPPING) ? _local16.widthOffset : _local17.width; _local19 = (BitmapMaterial.AUTO_MIP_MAPPING) ? _local16.heightOffset : _local17.height; }; return ({x:(_local14 * _local18), y:(_local19 - (_local15 * _local19))}); } public static function getCoordAtPoint(_arg1:Face3D, _arg2:Number, _arg3:Number):Vertex3D{ var _local4:Object; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; _local4 = UVatPoint(_arg1, _arg2, _arg3); _local5 = _arg1.v0.x; _local6 = _arg1.v0.y; _local7 = _arg1.v0.z; _local8 = _arg1.v1.x; _local9 = _arg1.v1.y; _local10 = _arg1.v1.z; _local11 = _arg1.v2.x; _local12 = _arg1.v2.y; _local13 = _arg1.v2.z; _local14 = _local4.u; _local15 = _local4.v; _local16 = ((_local5 + ((_local8 - _local5) * _local15)) + ((_local11 - _local5) * _local14)); _local17 = ((_local6 + ((_local9 - _local6) * _local15)) + ((_local12 - _local6) * _local14)); _local18 = ((_local7 + ((_local10 - _local7) * _local15)) + ((_local13 - _local7) * _local14)); return (new Vertex3D(_local16, _local17, _local18)); } } }//package org.papervision3d.utils
Section 62
//Mouse3D (org.papervision3d.utils.Mouse3D) package org.papervision3d.utils { import flash.display.*; import org.papervision3d.core.*; import org.papervision3d.objects.*; import org.papervision3d.core.geom.*; public class Mouse3D extends DisplayObject3D { public static var enabled:Boolean = true; private static var UP:Number3D = new Number3D(0, 1, 0); public function Mouse3D(_arg1:Object=null):void{ } public function updatePosition(_arg1:Face3D, _arg2:Sprite):void{ var _local3:Number3D; var _local4:Number3D; var _local5:Number3D; var _local6:Matrix3D; var _local7:Matrix3D; var _local8:Number; var _local9:Number; var _local10:Number3D; var _local11:Number3D; var _local12:Matrix3D; _local3 = new Number3D(0, 0, 0); _local4 = new Number3D(_arg1.faceNormal.x, _arg1.faceNormal.y, _arg1.faceNormal.z); _local5 = Number3D.sub(_local4, _local3); _local5.normalize(); if (_local5.modulo > 0.1){ _local10 = Number3D.cross(_local5, UP); _local10.normalize(); _local11 = Number3D.cross(_local5, _local10); _local11.normalize(); _local12 = this.transform; _local12.n11 = _local10.x; _local12.n21 = _local10.y; _local12.n31 = _local10.z; _local12.n12 = -(_local11.x); _local12.n22 = -(_local11.y); _local12.n32 = -(_local11.z); _local12.n13 = _local5.x; _local12.n23 = _local5.y; _local12.n33 = _local5.z; }; _local6 = Matrix3D.IDENTITY; this.transform = Matrix3D.multiply(_arg1.face3DInstance.instance.world, _local12); _local7 = Matrix3D.IDENTITY; _local8 = _arg2.mouseX; _local9 = _arg2.mouseY; _local7.n14 = InteractiveUtils.getCoordAtPoint(_arg1, _local8, _local9).x; _local7.n24 = InteractiveUtils.getCoordAtPoint(_arg1, _local8, _local9).y; _local7.n34 = InteractiveUtils.getCoordAtPoint(_arg1, _local8, _local9).z; _local6.calculateMultiply(_arg1.face3DInstance.instance.world, _local7); x = _local6.n14; y = _local6.n24; z = _local6.n34; } } }//package org.papervision3d.utils
Section 63
//Papervision3D (org.papervision3d.Papervision3D) package org.papervision3d { public class Papervision3D { public static var useDEGREES:Boolean = true; public static var VERBOSE:Boolean = true; public static var AUTHOR:String = "(c) 2006-2007 Copyright by Carlos Ulloa | papervision3d.org | carlos@papervision3d.org"; public static var DATE:String = "20.08.07"; public static var NAME:String = "Papervision3D"; public static var VERSION:String = "Beta 1.7"; public static var usePERCENT:Boolean = false; public static function log(_arg1:String):void{ if (Papervision3D.VERBOSE){ trace(_arg1); }; } } }//package org.papervision3d
Section 64
//Weather (weather.Weather) package weather { import flash.display.*; import org.papervision3d.scenes.*; import org.papervision3d.cameras.*; public interface Weather { function init(_arg1:MovieScene3D):void; function render(_arg1:MovieScene3D, _arg2:Sprite, _arg3:FreeCamera3D):void; } }//package weather
Section 65
//WeatherButterflies (weather.WeatherButterflies) package weather { import flash.display.*; import org.papervision3d.objects.*; import org.papervision3d.scenes.*; import org.papervision3d.cameras.*; public class WeatherButterflies implements Weather { private var flyes:Array; public function WeatherButterflies(){ flyes = new Array(); super(); } public function init(_arg1:MovieScene3D):void{ var _local2:DisplayObject3D; var _local3:int; var _local4:ButterflyModel; var _local5:Number; var _local6:Number; _local2 = _arg1.getChildByName("main"); _local3 = 0; while (_local3 < 2) { _local4 = new ButterflyModel(); _local4.scale = 1.5; _local5 = (Math.random() * 360); _local6 = (250 + (Math.random() * 100)); _local4.extra = {angle:_local5, r:_local6, y:100, life:Math.floor((Math.random() * 1000)), sit:100}; _local4.extra.y = (-50 - (Math.random() * 50)); _local2.addChild(_local4); flyes.push(_local4); _local3++; }; } public function render(_arg1:MovieScene3D, _arg2:Sprite, _arg3:FreeCamera3D):void{ var _local4:int; var _local5:ButterflyModel; _local4 = 0; while (_local4 < flyes.length) { _local5 = (flyes[_local4] as ButterflyModel); if ((_local5.extra.life % 2) == 1){ _local5.flapWings(); }; _local5.y = (_local5.extra.y + (50 * Math.sin((_local5.extra.life / 50)))); _local5.x = (_local5.extra.r * Math.cos(((_local5.extra.angle * Math.PI) / 180))); _local5.z = (_local5.extra.r * Math.sin(((_local5.extra.angle * Math.PI) / 180))); _local5.lookAt(_arg1.getChildByName("main")); _local5.roll(-90); _local5.yaw(-90); _local5.extra.life++; _local5.extra.angle = (_local5.extra.angle + 1); _local4++; }; } } }//package weather import org.papervision3d.materials.*; import org.papervision3d.objects.*; import assets.*; class ButterflyModel extends DisplayObject3D { private var leftFlap:Plane; private var rightFlap:Plane; private var angle:Number;// = 180 private function ButterflyModel():void{ var _local1:BitmapMaterial; angle = 180; super(); _local1 = new BitmapMaterial(new Butterfly(0, 0)); _local1.doubleSided = true; leftFlap = new Plane(_local1, 17, 24, 0, 0); rightFlap = new Plane(_local1, 17, 24, 0, 0); this.addChild(leftFlap); this.addChild(rightFlap); rightFlap.rotationY = 180; leftFlap.x = (-17 / 2); rightFlap.x = (17 / 2); } public function flapWings():void{ if (angle == 180){ leftFlap.x = 0; rightFlap.x = 0; leftFlap.z = (rightFlap.z = (17 / 2)); leftFlap.rotationY = 90; rightFlap.rotationY = 90; angle = 0; } else { leftFlap.x = (-17 / 2); rightFlap.x = (17 / 2); leftFlap.z = (rightFlap.z = 0); leftFlap.rotationY = 0; rightFlap.rotationY = 180; angle = 180; }; } }
Section 66
//WeatherLeafs (weather.WeatherLeafs) package weather { import flash.display.*; import org.papervision3d.materials.*; import org.papervision3d.objects.*; import org.papervision3d.scenes.*; import org.papervision3d.cameras.*; import assets.*; public class WeatherLeafs implements Weather { private var leafs:Array; public function WeatherLeafs(){ leafs = new Array(); super(); } public function init(_arg1:MovieScene3D):void{ var _local2:DisplayObject3D; var _local3:BitmapMaterial; var _local4:int; var _local5:Plane; _local2 = _arg1.getChildByName("main"); _local3 = new BitmapMaterial(new Leaf(26, 37, true, 0)); _local3.doubleSided = true; _local4 = 0; while (_local4 < 5) { _local5 = new Plane(_local3, (26 * 1.3), (37 * 1.3), 0, 0); _local5.material.doubleSided = true; resetLeaf(_local5); _local5.extra.y = (100 - (Math.random() * 400)); _local2.addChild(_local5); leafs.push(_local5); _local4++; }; } private function resetLeaf(_arg1:Plane):void{ var _local2:Number; var _local3:Number; _local2 = (Math.random() * 360); _local3 = (50 + (Math.random() * 100)); _arg1.extra = {angle:_local2, r:_local3, y:100, life:(Math.random() * 1000), dead:100}; } public function render(_arg1:MovieScene3D, _arg2:Sprite, _arg3:FreeCamera3D):void{ var _local4:int; var _local5:Plane; _local4 = 0; while (_local4 < leafs.length) { _local5 = (leafs[_local4] as Plane); (leafs[_local4] as Plane).y = _local5.extra.y; if (_local5.y > -300){ _local5.lookAt(_arg3); _local5.roll((180 - (90 * Math.cos((_local5.extra.life / 50))))); _local5.yaw((180 - (90 * Math.cos((_local5.extra.life / 50))))); _local5.x = (_local5.extra.r * Math.cos(((_local5.extra.angle * Math.PI) / 180))); _local5.z = (_local5.extra.r * Math.sin(((_local5.extra.angle * Math.PI) / 180))); _local5.extra.life++; _local5.extra.r = (_local5.extra.r + 1); _local5.extra.angle = (_local5.extra.angle + Math.sin((_local5.extra.life / 50))); _local5.extra.y--; } else { _local5.y = -300; _local5.rotationX = 90; if (_local5.extra.dead > 0){ _local5.extra.dead--; } else { resetLeaf(_local5); }; }; _local4++; }; } } }//package weather
Section 67
//WeatherPochki (weather.WeatherPochki) package weather { import flash.display.*; import org.papervision3d.materials.*; import org.papervision3d.objects.*; import org.papervision3d.scenes.*; import org.papervision3d.cameras.*; import assets.*; public class WeatherPochki implements Weather { private var leafs:Array; public function WeatherPochki(){ leafs = new Array(); super(); } public function init(_arg1:MovieScene3D):void{ var _local2:DisplayObject3D; var _local3:BitmapMaterial; var _local4:int; var _local5:Plane; _local2 = _arg1.getChildByName("main"); _local3 = new BitmapMaterial(new Pochka(24, 29, true, 0)); _local3.doubleSided = true; _local4 = 0; while (_local4 < 2) { _local5 = new Plane(_local3, 24, 29, 0, 0); _local5.material.doubleSided = true; resetLeaf(_local5); _local5.extra.y = (100 - (Math.random() * 400)); _local2.addChild(_local5); leafs.push(_local5); _local4++; }; } private function resetLeaf(_arg1:Plane):void{ var _local2:Number; var _local3:Number; _local2 = (Math.random() * 360); _local3 = (50 + (Math.random() * 100)); _arg1.extra = {angle:_local2, r:_local3, y:100, life:(Math.random() * 1000)}; } public function render(_arg1:MovieScene3D, _arg2:Sprite, _arg3:FreeCamera3D):void{ var _local4:int; var _local5:Plane; _local4 = 0; while (_local4 < leafs.length) { _local5 = (leafs[_local4] as Plane); _local5.lookAt(_arg3); _local5.roll((180 - (90 * Math.cos((_local5.extra.life / 50))))); _local5.yaw((180 - (90 * Math.cos((_local5.extra.life / 50))))); _local5.x = (_local5.extra.r * Math.cos(((_local5.extra.angle * Math.PI) / 180))); _local5.z = (_local5.extra.r * Math.sin(((_local5.extra.angle * Math.PI) / 180))); _local5.y = _local5.extra.y; _local5.extra.life++; _local5.extra.r = (_local5.extra.r + 1); _local5.extra.angle = (_local5.extra.angle + Math.sin((_local5.extra.life / 50))); _local5.extra.y--; if (_local5.y < -300){ resetLeaf(_local5); }; _local4++; }; } } }//package weather
Section 68
//WeatherSnow (weather.WeatherSnow) package weather { import flash.display.*; import org.papervision3d.materials.*; import org.papervision3d.objects.*; import org.papervision3d.scenes.*; import org.papervision3d.cameras.*; import assets.*; public class WeatherSnow implements Weather { private var flakes:Array; public function WeatherSnow(){ flakes = new Array(); super(); } public function init(_arg1:MovieScene3D):void{ var _local2:DisplayObject3D; var _local3:BitmapMaterial; var _local4:int; var _local5:Plane; var _local6:Number; var _local7:Number; _local2 = _arg1.getChildByName("main"); _local3 = new BitmapMaterial(new Snowflake(30, 31, true, 0)); _local4 = 0; while (_local4 < 20) { _local5 = new Plane(_local3, 32, 32, 0, 0); _local5.material.doubleSided = true; _local6 = (Math.random() * 360); _local7 = (50 + (Math.random() * 300)); _local5.extra = {x:0, y:0, z:0, life:(Math.random() * 1000)}; _local5.extra.x = (_local7 * Math.cos(((_local6 * Math.PI) / 180))); _local5.extra.z = (_local7 * Math.sin(((_local6 * Math.PI) / 180))); _local5.extra.angle = (Math.random() * 360); _local5.y = (300 - (Math.random() * 600)); _local2.addChild(_local5); flakes.push(_local5); _local4++; }; } public function render(_arg1:MovieScene3D, _arg2:Sprite, _arg3:FreeCamera3D):void{ var _local4:int; var _local5:Plane; _local4 = 0; while (_local4 < flakes.length) { _local5 = (flakes[_local4] as Plane); _local5.lookAt(_arg3); _local5.roll(_local5.extra.angle); _local5.extra.angle++; _local5.x = (_local5.extra.x + (100 * Math.cos((_local5.extra.life / 100)))); _local5.z = (_local5.extra.y + (100 * Math.sin((_local5.extra.life / 50)))); _local5.y = (_local5.y - (1 + (Math.random() * 2))); _local5.extra.life++; if (_local5.y < -300){ _local5.y = 300; }; _local4++; }; } } }//package weather
Section 69
//Autumn (worlds.Autumn) package worlds { import flash.display.*; import weather.*; public class Autumn extends World3D { public function Autumn(_arg1:Sprite, _arg2:String="winter"){ super(_arg1, _arg2); worldBackColor = 16371880; weather = new WeatherLeafs(); weather.init(this); } } }//package worlds
Section 70
//Spring (worlds.Spring) package worlds { import flash.display.*; import weather.*; public class Spring extends World3D { public function Spring(_arg1:Sprite, _arg2:String="winter"){ super(_arg1, _arg2); worldBackColor = 12575177; weather = new WeatherPochki(); weather.init(this); } } }//package worlds
Section 71
//Summer (worlds.Summer) package worlds { import flash.display.*; import weather.*; public class Summer extends World3D { public function Summer(_arg1:Sprite, _arg2:String="winter"){ super(_arg1, _arg2); worldBackColor = 15000508; weather = new WeatherButterflies(); weather.init(this); } } }//package worlds
Section 72
//Winter (worlds.Winter) package worlds { import flash.display.*; import weather.*; public class Winter extends World3D { public function Winter(_arg1:Sprite, _arg2:String="winter"){ super(_arg1, _arg2); worldBackColor = 16119295; weather = new WeatherSnow(); weather.init(this); } } }//package worlds
Section 73
//MacMouseWheel (MacMouseWheel) package { import flash.display.*; import flash.events.*; import flash.system.*; import flash.external.*; public class MacMouseWheel { private var _currItem:InteractiveObject; private var _clonedEvent:MouseEvent; private var _stage:Stage; private static var instance:MacMouseWheel; public function MacMouseWheel(_arg1:SingletonEnforcer){ } private function _externalMouseEvent(_arg1:Number):void{ var _local2:MouseEvent; _local2 = new MouseEvent(MouseEvent.MOUSE_WHEEL, true, false, _clonedEvent.localX, _clonedEvent.localY, _clonedEvent.relatedObject, _clonedEvent.ctrlKey, _clonedEvent.altKey, _clonedEvent.shiftKey, _clonedEvent.buttonDown, int(_arg1)); _currItem.dispatchEvent(_local2); } private function _getItemUnderCursor(_arg1:MouseEvent):void{ _currItem = InteractiveObject(_arg1.target); _clonedEvent = MouseEvent(_arg1); } private function _setup(_arg1:Stage):void{ _stage = _arg1; _stage.addEventListener(MouseEvent.MOUSE_MOVE, _getItemUnderCursor); if (ExternalInterface.available){ ExternalInterface.addCallback("externalMouseEvent", _externalMouseEvent); }; } public static function getInstance():MacMouseWheel{ if (instance == null){ instance = new MacMouseWheel(new SingletonEnforcer()); }; return (instance); } public static function setup(_arg1:Stage):void{ var _local2:Boolean; _local2 = !((Capabilities.os.toLowerCase().indexOf("mac") == -1)); if (_local2){ getInstance()._setup(_arg1); }; } } }//package class SingletonEnforcer { private function SingletonEnforcer(){ } }
Section 74
//Main (Main) package { import flash.display.*; import flash.events.*; import org.papervision3d.objects.*; import org.papervision3d.cameras.*; import org.papervision3d.*; import worlds.*; import flash.ui.*; public class Main extends Sprite { private var spring:Spring; private var cameraRadius:Number;// = 1750 private var camera:FreeCamera3D; private var cameraTarget:DisplayObject3D; private var autumn:Autumn; var worlds:Array; private var dy:Number;// = 0 private var currentScene:World3D; private var my:Number;// = 0 private var summer:Summer; private var mx:Number;// = 0 private var dx:Number;// = 0 private var winter:Winter; private var keysArray:Array; private var newCameraRadius:Number;// = 1750 private var viewMode:String;// = "around" private var cameraRotationY:Number; public function Main(){ mx = 0; my = 0; dx = 0; dy = 0; viewMode = "around"; keysArray = new Array(); cameraRadius = 1750; newCameraRadius = 1750; worlds = new Array(); super(); MacMouseWheel.setup(this.stage); stage.scaleMode = StageScaleMode.NO_SCALE; init3D(); mx = mouseX; my = mouseY; } private function onStopRotation(_arg1:MouseEvent):void{ stage.removeEventListener(MouseEvent.MOUSE_MOVE, onRotation); stage.removeEventListener(MouseEvent.MOUSE_UP, onStopRotation); } private function checkForPortal():void{ var _local1:String; if ((((newCameraRadius < 1200)) && ((cameraRadius > 1200)))){ _local1 = currentScene.checkPortal(camera); if (_local1 != ""){ currentScene.closeWorld(); currentScene = World3D.worlds[_local1]; currentScene.openWorld(); cameraRadius = 1200; }; }; } private function startRotate(_arg1:MouseEvent):void{ mx = stage.mouseX; my = stage.mouseY; stage.addEventListener(MouseEvent.MOUSE_MOVE, onRotation); stage.addEventListener(MouseEvent.MOUSE_UP, onStopRotation); } private function onRotation(_arg1:MouseEvent):void{ cameraRotationY = (cameraRotationY + Math.max(-15, Math.min(15, ((stage.mouseX - mx) / 2)))); mx = stage.mouseX; my = stage.mouseY; } public function init3D():void{ Papervision3D.VERBOSE = false; camera = new FreeCamera3D(); camera.z = 0; camera.y = 0; camera.x = 0; camera.focus = 400; camera.sort = true; camera.rotationY = (180 + 85); cameraRotationY = camera.rotationY; camera.extra = {radius:cameraRadius}; cameraTarget = new DisplayObject3D(); cameraTarget.z = camera.x; cameraTarget.x = 900; cameraTarget.y = camera.y; winter = new Winter(createSprite(), "winter"); spring = new Spring(createSprite(), "spring"); autumn = new Autumn(createSprite(), "autumn"); summer = new Summer(createSprite(), "summer"); currentScene = summer; currentScene.openWorld(); addEventListener(Event.ENTER_FRAME, goLoop); stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownEvent); stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUpEvent); stage.addEventListener(MouseEvent.MOUSE_WHEEL, mouseWheelEvent); stage.addEventListener(MouseEvent.MOUSE_DOWN, startRotate); } private function onKeyUpEvent(_arg1:KeyboardEvent):void{ keysArray[_arg1.keyCode] = false; } private function mouseWheelEvent(_arg1:MouseEvent):void{ newCameraRadius = Math.max(500, Math.min(5000, (cameraRadius + (_arg1.delta * 35)))); } private function goLoop(_arg1:Event):void{ var _local2:Number; var _local3:Number; camera.extra.radius = cameraRadius; _local2 = 35; _local3 = 5; newCameraRadius = (newCameraRadius + ((_local2 * Number((keysArray[Keyboard.DOWN] == true))) - (_local2 * Number((keysArray[Keyboard.UP] == true))))); cameraRotationY = (cameraRotationY + ((_local3 * Number((keysArray[Keyboard.LEFT] == true))) - (_local3 * Number((keysArray[Keyboard.RIGHT] == true))))); newCameraRadius = Math.max(500, Math.min(5000, newCameraRadius)); checkForPortal(); camera.x = 0; camera.y = 0; camera.z = 0; camera.rotationY = (camera.rotationY + ((cameraRotationY - camera.rotationY) / 3)); cameraRadius = (cameraRadius + ((newCameraRadius - cameraRadius) / 2)); camera.moveBackward(cameraRadius); currentScene.render(camera); dx = 0; } private function createSprite():Sprite{ var _local1:Sprite; _local1 = new Sprite(); _local1.x = (900 / 2); _local1.y = (600 / 2); addChild(_local1); return (_local1); } private function onKeyDownEvent(_arg1:KeyboardEvent):void{ keysArray[_arg1.keyCode] = true; } } }//package
Section 75
//Portal3D (Portal3D) package { import flash.display.*; import org.papervision3d.materials.*; import org.papervision3d.objects.*; import flash.geom.*; import flash.filters.*; public class Portal3D extends DisplayObject3D { private var color:Number; public var h:Number;// = 500 public var w:Number;// = 200 public function Portal3D(_arg1:Number){ var _local2:Number; var _local3:Plane; var _local4:BitmapData; var _local5:Plane; w = 200; h = 500; super(); this.color = _arg1; _local2 = 5; _local3 = new Plane(new ColorMaterial(0xD0D0D0), (w + 6), (h + 6), 1, 1); _local3.material.doubleSided = true; addChild(_local3); _local4 = new BitmapData((w + 150), (_local2 + 150), true, 0); _local4.fillRect(new Rectangle(75, 75, w, _local2), 4278190080); _local4.applyFilter(_local4, _local4.rect, new Point(), new BlurFilter(80, 80, 3)); _local5 = new Plane(new BitmapMaterial(_local4), (w + 150), (_local2 + 150)); _local5.y = -300; _local5.rotationX = -90; addChild(_local5); } } }//package
Section 76
//World3D (World3D) package { import flash.display.*; import org.papervision3d.materials.*; import org.papervision3d.objects.*; import org.papervision3d.scenes.*; import org.papervision3d.cameras.*; import flash.geom.*; import weather.*; import assets.*; public class World3D extends MovieScene3D { public var portals:Array; public var worldContainer:Sprite; private var container3D:DisplayObject3D; public var worldName:String; public var portalMeshes:Array; private var backBitmap:BitmapData; protected var worldBackColor:Number; protected var weather:Weather; public static var colors:Object = {winter:0xE0E0E0, spring:0xFF00, summer:0xFF0000, autumn:0xFF}; public static var worlds:Object = new Object(); public function World3D(_arg1:Sprite, _arg2:String="winter"){ super(_arg1); this.worldContainer = _arg1; this.worldName = _arg2; initWorld(); worlds[_arg2] = this; } public function closeWorld():void{ var _local1:int; var _local2:World3D; var _local3:Sprite; var _local4:int; _local1 = 0; while (_local1 < portals.length) { _local2 = (worlds[portals[_local1].name] as World3D); _local3 = _local2.worldContainer; _local3.mask = null; _local4 = 0; while (_local4 < 3) { _local2.portalMeshes[_local4].visible = true; _local2.portals[_local4].visible = true; _local4++; }; _local1++; }; } public function render(_arg1:FreeCamera3D):void{ var _local2:Number; var _local3:int; var _local4:World3D; renderInside(_arg1); _local2 = (((Math.atan2(_arg1.z, _arg1.x) * 180) / Math.PI) + 60); _local2 = ((_local2)<0) ? (_local2 + 360) : _local2; _local3 = Math.floor((_local2 / 120)); _local4 = worlds[portals[_local3].name]; _local4.renderInside(_arg1); } public function checkPortal(_arg1:FreeCamera3D):String{ var _local2:Number; var _local3:String; var _local4:Number; var _local5:int; _local2 = ((360 * 200) / ((2 * 1200) * Math.PI)); _local3 = ""; _local4 = (((Math.atan2(_arg1.z, _arg1.x) * 180) / Math.PI) + (_local2 / 2)); _local4 = ((_local4)<0) ? (_local4 + 360) : _local4; trace(_local4); _local5 = 0; while (_local5 < 3) { if ((((_local4 > (_local5 * 120))) && ((_local4 < ((_local5 * 120) + _local2))))){ _local3 = portals[_local5].name; }; _local5++; }; return (_local3); } public function renderInside(_arg1:FreeCamera3D):void{ var _local2:Number; worldContainer.graphics.clear(); _local2 = (1500 / _arg1.extra.radius); worldContainer.graphics.beginBitmapFill(backBitmap, new Matrix(_local2, 0, 0, _local2, ((-(_local2) * backBitmap.width) / 2), ((-(_local2) * backBitmap.height) / 2)), false, false); worldContainer.graphics.drawRect(-450, -300, 900, 600); worldContainer.graphics.endFill(); renderCamera(_arg1); renderWeather(_arg1); } private function initWorld():void{ var _local1:String; var _local2:BitmapMaterial; var _local3:MaterialsList; var _local4:Collada; var _local5:WorldBack; container3D = new DisplayObject3D("main"); addChild(container3D); portals = new Array(); portalMeshes = new Array(); for (_local1 in colors) { if (worldName != _local1){ addPortal(_local1, colors[_local1]); }; }; switch (worldName){ case "winter": _local2 = new BitmapMaterial(new WinterMap(0, 0)); break; case "spring": _local2 = new BitmapMaterial(new SpringMap(0, 0)); break; case "summer": _local2 = new BitmapMaterial(new SummerMap(0, 0)); break; case "autumn": _local2 = new BitmapMaterial(new AutumnMap(0, 0)); break; }; _local3 = new MaterialsList({texture:_local2}); _local4 = new Collada(Meshes[worldName], _local3, 1); _local4.name = "tree"; _local4.y = -300; container3D.addChild(_local4); _local5 = new WorldBack(); _local5.gotoAndStop(worldName); backBitmap = new BitmapData(900, 600, false, 0xFFFFFF); backBitmap.draw(_local5); } public function openWorld():void{ var _local1:int; var _local2:World3D; var _local3:Sprite; var _local4:int; this.worldContainer.parent.swapChildren(this.worldContainer, this.worldContainer.parent.getChildAt(0)); _local1 = 0; while (_local1 < portals.length) { _local2 = (worlds[portals[_local1].name] as World3D); _local3 = _local2.worldContainer; _local3.mask = portals[_local1].container; _local4 = 0; while (_local4 < 3) { _local2.portalMeshes[_local4].visible = false; _local2.portals[_local4].visible = false; _local4++; }; _local1++; }; } private function addPortal(_arg1:String, _arg2:Number):void{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Portal3D; var _local7:Plane; _local3 = portals.length; _local4 = ((Math.PI * 2) / 3); _local5 = 1200; _local6 = new Portal3D(_arg2); _local6.name = _arg1; container3D.addChild(_local6); _local6.x = (_local5 * Math.cos((_local3 * _local4))); _local6.z = (_local5 * Math.sin((_local3 * _local4))); _local6.lookAt(DisplayObject3D.ZERO); _local7 = new Plane(new ColorMaterial(0xFF00FF), _local6.w, _local6.h); _local7.name = _arg1; addChild(_local7); _local7.copyTransform(_local6); portals.push(_local7); portalMeshes.push(_local6); } private function renderWeather(_arg1:FreeCamera3D):void{ weather.render(this, worldContainer, _arg1); } } }//package

Library Items

Symbol 1 Bitmap {assets.WinterMap}
Symbol 2 Bitmap {assets.SummerMap}
Symbol 3 Bitmap {assets.SpringMap}
Symbol 4 Bitmap {assets.Snowflake}
Symbol 5 Bitmap {assets.Pochka}
Symbol 6 Bitmap {assets.Leaf}
Symbol 7 Bitmap {assets.Butterfly}
Symbol 8 Bitmap {assets.AutumnMap}
Symbol 9 BitmapUsed by:10
Symbol 10 GraphicUses:9Used by:17
Symbol 11 BitmapUsed by:12
Symbol 12 GraphicUses:11Used by:17
Symbol 13 BitmapUsed by:14
Symbol 14 GraphicUses:13Used by:17
Symbol 15 BitmapUsed by:16
Symbol 16 GraphicUses:15Used by:17
Symbol 17 MovieClip {assets.WorldBack}Uses:10 12 14 16
Symbol 18 FontUsed by:19
Symbol 19 EditableTextUses:18Used by:Timeline

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.

Labels

"winter"Symbol 17 MovieClip {assets.WorldBack} Frame 1
"autumn"Symbol 17 MovieClip {assets.WorldBack} Frame 2
"spring"Symbol 17 MovieClip {assets.WorldBack} Frame 3
"summer"Symbol 17 MovieClip {assets.WorldBack} Frame 4




http://swfchan.com/14/69805/info.shtml
Created: 10/4 -2019 06:17:54 Last modified: 10/4 -2019 06:17:54 Server time: 07/05 -2024 12:33:22