-
Notifications
You must be signed in to change notification settings - Fork 13
/
socdom2.html
74 lines (52 loc) · 819 KB
/
socdom2.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<!DOCTYPE html>
<html>
<head>
<style>
#p01 {
color: black;
font-family: verdana;
font-size: 105%;
position:absolute;
z-index:1000;
}
a {
color: red;
}
</style>
<script src="data:application/x-javascript,%28function%28%29%20%7B%0A%20%20%2F%2F%20If%20window%2EHTMLWidgets%20is%20already%20defined%2C%20then%20use%20it%3B%20otherwise%20create%20a%0A%20%20%2F%2F%20new%20object%2E%20This%20allows%20preceding%20code%20to%20set%20options%20that%20affect%20the%0A%20%20%2F%2F%20initialization%20process%20%28though%20none%20currently%20exist%29%2E%0A%20%20window%2EHTMLWidgets%20%3D%20window%2EHTMLWidgets%20%7C%7C%20%7B%7D%3B%0A%0A%20%20%2F%2F%20See%20if%20we%27re%20running%20in%20a%20viewer%20pane%2E%20If%20not%2C%20we%27re%20in%20a%20web%20browser%2E%0A%20%20var%20viewerMode%20%3D%20window%2EHTMLWidgets%2EviewerMode%20%3D%0A%20%20%20%20%20%20%2F%5Cbviewer%5Fpane%3D1%5Cb%2F%2Etest%28window%2Elocation%29%3B%0A%0A%20%20%2F%2F%20See%20if%20we%27re%20running%20in%20Shiny%20mode%2E%20If%20not%2C%20it%27s%20a%20static%20document%2E%0A%20%20%2F%2F%20Note%20that%20static%20widgets%20can%20appear%20in%20both%20Shiny%20and%20static%20modes%2C%20but%0A%20%20%2F%2F%20obviously%2C%20Shiny%20widgets%20can%20only%20appear%20in%20Shiny%20apps%2Fdocuments%2E%0A%20%20var%20shinyMode%20%3D%20window%2EHTMLWidgets%2EshinyMode%20%3D%0A%20%20%20%20%20%20typeof%28window%2EShiny%29%20%21%3D%3D%20%22undefined%22%20%26%26%20%21%21window%2EShiny%2EoutputBindings%3B%0A%0A%20%20%2F%2F%20We%20can%27t%20count%20on%20jQuery%20being%20available%2C%20so%20we%20implement%20our%20own%0A%20%20%2F%2F%20version%20if%20necessary%2E%0A%20%20function%20querySelectorAll%28scope%2C%20selector%29%20%7B%0A%20%20%20%20if%20%28typeof%28jQuery%29%20%21%3D%3D%20%22undefined%22%20%26%26%20scope%20instanceof%20jQuery%29%20%7B%0A%20%20%20%20%20%20return%20scope%2Efind%28selector%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20%28scope%2EquerySelectorAll%29%20%7B%0A%20%20%20%20%20%20return%20scope%2EquerySelectorAll%28selector%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20function%20asArray%28value%29%20%7B%0A%20%20%20%20if%20%28value%20%3D%3D%3D%20null%29%0A%20%20%20%20%20%20return%20%5B%5D%3B%0A%20%20%20%20if%20%28%24%2EisArray%28value%29%29%0A%20%20%20%20%20%20return%20value%3B%0A%20%20%20%20return%20%5Bvalue%5D%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Implement%20jQuery%27s%20extend%0A%20%20function%20extend%28target%20%2F%2A%2C%20%2E%2E%2E%20%2A%2F%29%20%7B%0A%20%20%20%20if%20%28arguments%2Elength%20%3D%3D%201%29%20%7B%0A%20%20%20%20%20%20return%20target%3B%0A%20%20%20%20%7D%0A%20%20%20%20for%20%28var%20i%20%3D%201%3B%20i%20%3C%20arguments%2Elength%3B%20i%2B%2B%29%20%7B%0A%20%20%20%20%20%20var%20source%20%3D%20arguments%5Bi%5D%3B%0A%20%20%20%20%20%20for%20%28var%20prop%20in%20source%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28source%2EhasOwnProperty%28prop%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20target%5Bprop%5D%20%3D%20source%5Bprop%5D%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20return%20target%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20IE8%20doesn%27t%20support%20Array%2EforEach%2E%0A%20%20function%20forEach%28values%2C%20callback%2C%20thisArg%29%20%7B%0A%20%20%20%20if%20%28values%2EforEach%29%20%7B%0A%20%20%20%20%20%20values%2EforEach%28callback%2C%20thisArg%29%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20values%2Elength%3B%20i%2B%2B%29%20%7B%0A%20%20%20%20%20%20%20%20callback%2Ecall%28thisArg%2C%20values%5Bi%5D%2C%20i%2C%20values%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20%2F%2F%20Replaces%20the%20specified%20method%20with%20the%20return%20value%20of%20funcSource%2E%0A%20%20%2F%2F%0A%20%20%2F%2F%20Note%20that%20funcSource%20should%20not%20BE%20the%20new%20method%2C%20it%20should%20be%20a%20function%0A%20%20%2F%2F%20that%20RETURNS%20the%20new%20method%2E%20funcSource%20receives%20a%20single%20argument%20that%20is%0A%20%20%2F%2F%20the%20overridden%20method%2C%20it%20can%20be%20called%20from%20the%20new%20method%2E%20The%20overridden%0A%20%20%2F%2F%20method%20can%20be%20called%20like%20a%20regular%20function%2C%20it%20has%20the%20target%20permanently%0A%20%20%2F%2F%20bound%20to%20it%20so%20%22this%22%20will%20work%20correctly%2E%0A%20%20function%20overrideMethod%28target%2C%20methodName%2C%20funcSource%29%20%7B%0A%20%20%20%20var%20superFunc%20%3D%20target%5BmethodName%5D%20%7C%7C%20function%28%29%20%7B%7D%3B%0A%20%20%20%20var%20superFuncBound%20%3D%20function%28%29%20%7B%0A%20%20%20%20%20%20return%20superFunc%2Eapply%28target%2C%20arguments%29%3B%0A%20%20%20%20%7D%3B%0A%20%20%20%20target%5BmethodName%5D%20%3D%20funcSource%28superFuncBound%29%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Implement%20a%20vague%20facsimilie%20of%20jQuery%27s%20data%20method%0A%20%20function%20elementData%28el%2C%20name%2C%20value%29%20%7B%0A%20%20%20%20if%20%28arguments%2Elength%20%3D%3D%202%29%20%7B%0A%20%20%20%20%20%20return%20el%5B%22htmlwidget%5Fdata%5F%22%20%2B%20name%5D%3B%0A%20%20%20%20%7D%20else%20if%20%28arguments%2Elength%20%3D%3D%203%29%20%7B%0A%20%20%20%20%20%20el%5B%22htmlwidget%5Fdata%5F%22%20%2B%20name%5D%20%3D%20value%3B%0A%20%20%20%20%20%20return%20el%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20throw%20new%20Error%28%22Wrong%20number%20of%20arguments%20for%20elementData%3A%20%22%20%2B%0A%20%20%20%20%20%20%20%20arguments%2Elength%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20%2F%2F%20http%3A%2F%2Fstackoverflow%2Ecom%2Fquestions%2F3446170%2Fescape%2Dstring%2Dfor%2Duse%2Din%2Djavascript%2Dregex%0A%20%20function%20escapeRegExp%28str%29%20%7B%0A%20%20%20%20return%20str%2Ereplace%28%2F%5B%5C%2D%5C%5B%5C%5D%5C%2F%5C%7B%5C%7D%5C%28%5C%29%5C%2A%5C%2B%5C%3F%5C%2E%5C%5C%5C%5E%5C%24%5C%7C%5D%2Fg%2C%20%22%5C%5C%24%26%22%29%3B%0A%20%20%7D%0A%0A%20%20function%20hasClass%28el%2C%20className%29%20%7B%0A%20%20%20%20var%20re%20%3D%20new%20RegExp%28%22%5C%5Cb%22%20%2B%20escapeRegExp%28className%29%20%2B%20%22%5C%5Cb%22%29%3B%0A%20%20%20%20return%20re%2Etest%28el%2EclassName%29%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20elements%20%2D%20array%20%28or%20array%2Dlike%20object%29%20of%20HTML%20elements%0A%20%20%2F%2F%20className%20%2D%20class%20name%20to%20test%20for%0A%20%20%2F%2F%20include%20%2D%20if%20true%2C%20only%20return%20elements%20with%20given%20className%3B%0A%20%20%2F%2F%20%20%20if%20false%2C%20only%20return%20elements%20%2Awithout%2A%20given%20className%0A%20%20function%20filterByClass%28elements%2C%20className%2C%20include%29%20%7B%0A%20%20%20%20var%20results%20%3D%20%5B%5D%3B%0A%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20elements%2Elength%3B%20i%2B%2B%29%20%7B%0A%20%20%20%20%20%20if%20%28hasClass%28elements%5Bi%5D%2C%20className%29%20%3D%3D%20include%29%0A%20%20%20%20%20%20%20%20results%2Epush%28elements%5Bi%5D%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20results%3B%0A%20%20%7D%0A%0A%20%20function%20on%28obj%2C%20eventName%2C%20func%29%20%7B%0A%20%20%20%20if%20%28obj%2EaddEventListener%29%20%7B%0A%20%20%20%20%20%20obj%2EaddEventListener%28eventName%2C%20func%2C%20false%29%3B%0A%20%20%20%20%7D%20else%20if%20%28obj%2EattachEvent%29%20%7B%0A%20%20%20%20%20%20obj%2EattachEvent%28eventName%2C%20func%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20function%20off%28obj%2C%20eventName%2C%20func%29%20%7B%0A%20%20%20%20if%20%28obj%2EremoveEventListener%29%0A%20%20%20%20%20%20obj%2EremoveEventListener%28eventName%2C%20func%2C%20false%29%3B%0A%20%20%20%20else%20if%20%28obj%2EdetachEvent%29%20%7B%0A%20%20%20%20%20%20obj%2EdetachEvent%28eventName%2C%20func%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20%2F%2F%20Translate%20array%20of%20values%20to%20top%2Fright%2Fbottom%2Fleft%2C%20as%20usual%20with%0A%20%20%2F%2F%20the%20%22padding%22%20CSS%20property%0A%20%20%2F%2F%20https%3A%2F%2Fdeveloper%2Emozilla%2Eorg%2Fen%2DUS%2Fdocs%2FWeb%2FCSS%2Fpadding%0A%20%20function%20unpackPadding%28value%29%20%7B%0A%20%20%20%20if%20%28typeof%28value%29%20%3D%3D%3D%20%22number%22%29%0A%20%20%20%20%20%20value%20%3D%20%5Bvalue%5D%3B%0A%20%20%20%20if%20%28value%2Elength%20%3D%3D%3D%201%29%20%7B%0A%20%20%20%20%20%20return%20%7Btop%3A%20value%5B0%5D%2C%20right%3A%20value%5B0%5D%2C%20bottom%3A%20value%5B0%5D%2C%20left%3A%20value%5B0%5D%7D%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20%28value%2Elength%20%3D%3D%3D%202%29%20%7B%0A%20%20%20%20%20%20return%20%7Btop%3A%20value%5B0%5D%2C%20right%3A%20value%5B1%5D%2C%20bottom%3A%20value%5B0%5D%2C%20left%3A%20value%5B1%5D%7D%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20%28value%2Elength%20%3D%3D%3D%203%29%20%7B%0A%20%20%20%20%20%20return%20%7Btop%3A%20value%5B0%5D%2C%20right%3A%20value%5B1%5D%2C%20bottom%3A%20value%5B2%5D%2C%20left%3A%20value%5B1%5D%7D%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20%28value%2Elength%20%3D%3D%3D%204%29%20%7B%0A%20%20%20%20%20%20return%20%7Btop%3A%20value%5B0%5D%2C%20right%3A%20value%5B1%5D%2C%20bottom%3A%20value%5B2%5D%2C%20left%3A%20value%5B3%5D%7D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20%2F%2F%20Convert%20an%20unpacked%20padding%20object%20to%20a%20CSS%20value%0A%20%20function%20paddingToCss%28paddingObj%29%20%7B%0A%20%20%20%20return%20paddingObj%2Etop%20%2B%20%22px%20%22%20%2B%20paddingObj%2Eright%20%2B%20%22px%20%22%20%2B%20paddingObj%2Ebottom%20%2B%20%22px%20%22%20%2B%20paddingObj%2Eleft%20%2B%20%22px%22%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Makes%20a%20number%20suitable%20for%20CSS%0A%20%20function%20px%28x%29%20%7B%0A%20%20%20%20if%20%28typeof%28x%29%20%3D%3D%3D%20%22number%22%29%0A%20%20%20%20%20%20return%20x%20%2B%20%22px%22%3B%0A%20%20%20%20else%0A%20%20%20%20%20%20return%20x%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Retrieves%20runtime%20widget%20sizing%20information%20for%20an%20element%2E%0A%20%20%2F%2F%20The%20return%20value%20is%20either%20null%2C%20or%20an%20object%20with%20fill%2C%20padding%2C%0A%20%20%2F%2F%20defaultWidth%2C%20defaultHeight%20fields%2E%0A%20%20function%20sizingPolicy%28el%29%20%7B%0A%20%20%20%20var%20sizingEl%20%3D%20document%2EquerySelector%28%22script%5Bdata%2Dfor%3D%27%22%20%2B%20el%2Eid%20%2B%20%22%27%5D%5Btype%3D%27application%2Fhtmlwidget%2Dsizing%27%5D%22%29%3B%0A%20%20%20%20if%20%28%21sizingEl%29%0A%20%20%20%20%20%20return%20null%3B%0A%20%20%20%20var%20sp%20%3D%20JSON%2Eparse%28sizingEl%2EtextContent%20%7C%7C%20sizingEl%2Etext%20%7C%7C%20%22%7B%7D%22%29%3B%0A%20%20%20%20if%20%28viewerMode%29%20%7B%0A%20%20%20%20%20%20return%20sp%2Eviewer%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20return%20sp%2Ebrowser%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20function%20initSizing%28el%29%20%7B%0A%20%20%20%20var%20sizing%20%3D%20sizingPolicy%28el%29%3B%0A%20%20%20%20if%20%28%21sizing%29%0A%20%20%20%20%20%20return%3B%0A%0A%20%20%20%20var%20cel%20%3D%20document%2EgetElementById%28%22htmlwidget%5Fcontainer%22%29%3B%0A%20%20%20%20if%20%28%21cel%29%0A%20%20%20%20%20%20return%3B%0A%0A%20%20%20%20if%20%28typeof%28sizing%2Epadding%29%20%21%3D%3D%20%22undefined%22%29%20%7B%0A%20%20%20%20%20%20document%2Ebody%2Estyle%2Emargin%20%3D%20%220%22%3B%0A%20%20%20%20%20%20document%2Ebody%2Estyle%2Epadding%20%3D%20paddingToCss%28unpackPadding%28sizing%2Epadding%29%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20if%20%28sizing%2Efill%29%20%7B%0A%20%20%20%20%20%20document%2Ebody%2Estyle%2Eoverflow%20%3D%20%22hidden%22%3B%0A%20%20%20%20%20%20document%2Ebody%2Estyle%2Ewidth%20%3D%20%22100%25%22%3B%0A%20%20%20%20%20%20document%2Ebody%2Estyle%2Eheight%20%3D%20%22100%25%22%3B%0A%20%20%20%20%20%20document%2EdocumentElement%2Estyle%2Ewidth%20%3D%20%22100%25%22%3B%0A%20%20%20%20%20%20document%2EdocumentElement%2Estyle%2Eheight%20%3D%20%22100%25%22%3B%0A%20%20%20%20%20%20if%20%28cel%29%20%7B%0A%20%20%20%20%20%20%20%20cel%2Estyle%2Eposition%20%3D%20%22absolute%22%3B%0A%20%20%20%20%20%20%20%20var%20pad%20%3D%20unpackPadding%28sizing%2Epadding%29%3B%0A%20%20%20%20%20%20%20%20cel%2Estyle%2Etop%20%3D%20pad%2Etop%20%2B%20%22px%22%3B%0A%20%20%20%20%20%20%20%20cel%2Estyle%2Eright%20%3D%20pad%2Eright%20%2B%20%22px%22%3B%0A%20%20%20%20%20%20%20%20cel%2Estyle%2Ebottom%20%3D%20pad%2Ebottom%20%2B%20%22px%22%3B%0A%20%20%20%20%20%20%20%20cel%2Estyle%2Eleft%20%3D%20pad%2Eleft%20%2B%20%22px%22%3B%0A%20%20%20%20%20%20%20%20el%2Estyle%2Ewidth%20%3D%20%22100%25%22%3B%0A%20%20%20%20%20%20%20%20el%2Estyle%2Eheight%20%3D%20%22100%25%22%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20return%20%7B%0A%20%20%20%20%20%20%20%20getWidth%3A%20function%28%29%20%7B%20return%20cel%2EoffsetWidth%3B%20%7D%2C%0A%20%20%20%20%20%20%20%20getHeight%3A%20function%28%29%20%7B%20return%20cel%2EoffsetHeight%3B%20%7D%0A%20%20%20%20%20%20%7D%3B%0A%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20el%2Estyle%2Ewidth%20%3D%20px%28sizing%2Ewidth%29%3B%0A%20%20%20%20%20%20el%2Estyle%2Eheight%20%3D%20px%28sizing%2Eheight%29%3B%0A%0A%20%20%20%20%20%20return%20%7B%0A%20%20%20%20%20%20%20%20getWidth%3A%20function%28%29%20%7B%20return%20el%2EoffsetWidth%3B%20%7D%2C%0A%20%20%20%20%20%20%20%20getHeight%3A%20function%28%29%20%7B%20return%20el%2EoffsetHeight%3B%20%7D%0A%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20%2F%2F%20Default%20implementations%20for%20methods%0A%20%20var%20defaults%20%3D%20%7B%0A%20%20%20%20find%3A%20function%28scope%29%20%7B%0A%20%20%20%20%20%20return%20querySelectorAll%28scope%2C%20%22%2E%22%20%2B%20this%2Ename%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20renderError%3A%20function%28el%2C%20err%29%20%7B%0A%20%20%20%20%20%20var%20%24el%20%3D%20%24%28el%29%3B%0A%0A%20%20%20%20%20%20this%2EclearError%28el%29%3B%0A%0A%20%20%20%20%20%20%2F%2F%20Add%20all%20these%20error%20classes%2C%20as%20Shiny%20does%0A%20%20%20%20%20%20var%20errClass%20%3D%20%22shiny%2Doutput%2Derror%22%3B%0A%20%20%20%20%20%20if%20%28err%2Etype%20%21%3D%3D%20null%29%20%7B%0A%20%20%20%20%20%20%20%20%2F%2F%20use%20the%20classes%20of%20the%20error%20condition%20as%20CSS%20class%20names%0A%20%20%20%20%20%20%20%20errClass%20%3D%20errClass%20%2B%20%22%20%22%20%2B%20%24%2Emap%28asArray%28err%2Etype%29%2C%20function%28type%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20return%20errClass%20%2B%20%22%2D%22%20%2B%20type%3B%0A%20%20%20%20%20%20%20%20%7D%29%2Ejoin%28%22%20%22%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20errClass%20%3D%20errClass%20%2B%20%22%20htmlwidgets%2Derror%22%3B%0A%0A%20%20%20%20%20%20%2F%2F%20Is%20el%20inline%20or%20block%3F%20If%20inline%20or%20inline%2Dblock%2C%20just%20display%3Anone%20it%0A%20%20%20%20%20%20%2F%2F%20and%20add%20an%20inline%20error%2E%0A%20%20%20%20%20%20var%20display%20%3D%20%24el%2Ecss%28%22display%22%29%3B%0A%20%20%20%20%20%20%24el%2Edata%28%22restore%2Ddisplay%2Dmode%22%2C%20display%29%3B%0A%0A%20%20%20%20%20%20if%20%28display%20%3D%3D%3D%20%22inline%22%20%7C%7C%20display%20%3D%3D%3D%20%22inline%2Dblock%22%29%20%7B%0A%20%20%20%20%20%20%20%20%24el%2Ehide%28%29%3B%0A%20%20%20%20%20%20%20%20if%20%28err%2Emessage%20%21%3D%3D%20%22%22%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20errorSpan%20%3D%20%24%28%22%3Cspan%3E%22%29%2EaddClass%28errClass%29%3B%0A%20%20%20%20%20%20%20%20%20%20errorSpan%2Etext%28err%2Emessage%29%3B%0A%20%20%20%20%20%20%20%20%20%20%24el%2Eafter%28errorSpan%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%20else%20if%20%28display%20%3D%3D%3D%20%22block%22%29%20%7B%0A%20%20%20%20%20%20%20%20%2F%2F%20If%20block%2C%20add%20an%20error%20just%20after%20the%20el%2C%20set%20visibility%3Anone%20on%20the%0A%20%20%20%20%20%20%20%20%2F%2F%20el%2C%20and%20position%20the%20error%20to%20be%20on%20top%20of%20the%20el%2E%0A%20%20%20%20%20%20%20%20%2F%2F%20Mark%20it%20with%20a%20unique%20ID%20and%20CSS%20class%20so%20we%20can%20remove%20it%20later%2E%0A%20%20%20%20%20%20%20%20%24el%2Ecss%28%22visibility%22%2C%20%22hidden%22%29%3B%0A%20%20%20%20%20%20%20%20if%20%28err%2Emessage%20%21%3D%3D%20%22%22%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20errorDiv%20%3D%20%24%28%22%3Cdiv%3E%22%29%2EaddClass%28errClass%29%2Ecss%28%22position%22%2C%20%22absolute%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Ecss%28%22top%22%2C%20el%2EoffsetTop%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Ecss%28%22left%22%2C%20el%2EoffsetLeft%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20setting%20width%20can%20push%20out%20the%20page%20size%2C%20forcing%20otherwise%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20unnecessary%20scrollbars%20to%20appear%20and%20making%20it%20impossible%20for%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20the%20element%20to%20shrink%3B%20so%20use%20max%2Dwidth%20instead%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Ecss%28%22maxWidth%22%2C%20el%2EoffsetWidth%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%2Ecss%28%22height%22%2C%20el%2EoffsetHeight%29%3B%0A%20%20%20%20%20%20%20%20%20%20errorDiv%2Etext%28err%2Emessage%29%3B%0A%20%20%20%20%20%20%20%20%20%20%24el%2Eafter%28errorDiv%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20Really%20dumb%20way%20to%20keep%20the%20size%2Fposition%20of%20the%20error%20in%20sync%20with%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20the%20parent%20element%20as%20the%20window%20is%20resized%20or%20whatever%2E%0A%20%20%20%20%20%20%20%20%20%20var%20intId%20%3D%20setInterval%28function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21errorDiv%5B0%5D%2EparentElement%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20clearInterval%28intId%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20errorDiv%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2Ecss%28%22top%22%2C%20el%2EoffsetTop%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2Ecss%28%22left%22%2C%20el%2EoffsetLeft%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2Ecss%28%22maxWidth%22%2C%20el%2EoffsetWidth%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2Ecss%28%22height%22%2C%20el%2EoffsetHeight%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%20500%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%2C%0A%20%20%20%20clearError%3A%20function%28el%29%20%7B%0A%20%20%20%20%20%20var%20%24el%20%3D%20%24%28el%29%3B%0A%20%20%20%20%20%20var%20display%20%3D%20%24el%2Edata%28%22restore%2Ddisplay%2Dmode%22%29%3B%0A%20%20%20%20%20%20%24el%2Edata%28%22restore%2Ddisplay%2Dmode%22%2C%20null%29%3B%0A%0A%20%20%20%20%20%20if%20%28display%20%3D%3D%3D%20%22inline%22%20%7C%7C%20display%20%3D%3D%3D%20%22inline%2Dblock%22%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28display%29%0A%20%20%20%20%20%20%20%20%20%20%24el%2Ecss%28%22display%22%2C%20display%29%3B%0A%20%20%20%20%20%20%20%20%24%28el%2EnextSibling%29%2Efilter%28%22%2Ehtmlwidgets%2Derror%22%29%2Eremove%28%29%3B%0A%20%20%20%20%20%20%7D%20else%20if%20%28display%20%3D%3D%3D%20%22block%22%29%7B%0A%20%20%20%20%20%20%20%20%24el%2Ecss%28%22visibility%22%2C%20%22inherit%22%29%3B%0A%20%20%20%20%20%20%20%20%24%28el%2EnextSibling%29%2Efilter%28%22%2Ehtmlwidgets%2Derror%22%29%2Eremove%28%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%2C%0A%20%20%20%20sizing%3A%20%7B%7D%0A%20%20%7D%3B%0A%0A%20%20%2F%2F%20Called%20by%20widget%20bindings%20to%20register%20a%20new%20type%20of%20widget%2E%20The%20definition%0A%20%20%2F%2F%20object%20can%20contain%20the%20following%20properties%3A%0A%20%20%2F%2F%20%2D%20name%20%28required%29%20%2D%20A%20string%20indicating%20the%20binding%20name%2C%20which%20will%20be%0A%20%20%2F%2F%20%20%20used%20by%20default%20as%20the%20CSS%20classname%20to%20look%20for%2E%0A%20%20%2F%2F%20%2D%20initialize%20%28optional%29%20%2D%20A%20function%28el%29%20that%20will%20be%20called%20once%20per%0A%20%20%2F%2F%20%20%20widget%20element%3B%20if%20a%20value%20is%20returned%2C%20it%20will%20be%20passed%20as%20the%20third%0A%20%20%2F%2F%20%20%20value%20to%20renderValue%2E%0A%20%20%2F%2F%20%2D%20renderValue%20%28required%29%20%2D%20A%20function%28el%2C%20data%2C%20initValue%29%20that%20will%20be%0A%20%20%2F%2F%20%20%20called%20with%20data%2E%20Static%20contexts%20will%20cause%20this%20to%20be%20called%20once%20per%0A%20%20%2F%2F%20%20%20element%3B%20Shiny%20apps%20will%20cause%20this%20to%20be%20called%20multiple%20times%20per%0A%20%20%2F%2F%20%20%20element%2C%20as%20the%20data%20changes%2E%0A%20%20window%2EHTMLWidgets%2Ewidget%20%3D%20function%28definition%29%20%7B%0A%20%20%20%20if%20%28%21definition%2Ename%29%20%7B%0A%20%20%20%20%20%20throw%20new%20Error%28%22Widget%20must%20have%20a%20name%22%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20%28%21definition%2Etype%29%20%7B%0A%20%20%20%20%20%20throw%20new%20Error%28%22Widget%20must%20have%20a%20type%22%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20%2F%2F%20Currently%20we%20only%20support%20output%20widgets%0A%20%20%20%20if%20%28definition%2Etype%20%21%3D%3D%20%22output%22%29%20%7B%0A%20%20%20%20%20%20throw%20new%20Error%28%22Unrecognized%20widget%20type%20%27%22%20%2B%20definition%2Etype%20%2B%20%22%27%22%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20%2F%2F%20TODO%3A%20Verify%20that%20%2Ename%20is%20a%20valid%20CSS%20classname%0A%20%20%20%20if%20%28%21definition%2ErenderValue%29%20%7B%0A%20%20%20%20%20%20throw%20new%20Error%28%22Widget%20must%20have%20a%20renderValue%20function%22%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F%2F%20For%20static%20rendering%20%28non%2DShiny%29%2C%20use%20a%20simple%20widget%20registration%0A%20%20%20%20%2F%2F%20scheme%2E%20We%20also%20use%20this%20scheme%20for%20Shiny%20apps%2Fdocuments%20that%20also%0A%20%20%20%20%2F%2F%20contain%20static%20widgets%2E%0A%20%20%20%20window%2EHTMLWidgets%2Ewidgets%20%3D%20window%2EHTMLWidgets%2Ewidgets%20%7C%7C%20%5B%5D%3B%0A%20%20%20%20%2F%2F%20Merge%20defaults%20into%20the%20definition%3B%20don%27t%20mutate%20the%20original%20definition%2E%0A%20%20%20%20var%20staticBinding%20%3D%20extend%28%7B%7D%2C%20defaults%2C%20definition%29%3B%0A%20%20%20%20overrideMethod%28staticBinding%2C%20%22find%22%2C%20function%28superfunc%29%20%7B%0A%20%20%20%20%20%20return%20function%28scope%29%20%7B%0A%20%20%20%20%20%20%20%20var%20results%20%3D%20superfunc%28scope%29%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20Filter%20out%20Shiny%20outputs%2C%20we%20only%20want%20the%20static%20kind%0A%20%20%20%20%20%20%20%20return%20filterByClass%28results%2C%20%22html%2Dwidget%2Doutput%22%2C%20false%29%3B%0A%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%7D%29%3B%0A%20%20%20%20window%2EHTMLWidgets%2Ewidgets%2Epush%28staticBinding%29%3B%0A%0A%20%20%20%20if%20%28shinyMode%29%20%7B%0A%20%20%20%20%20%20%2F%2F%20Shiny%20is%20running%2E%20Register%20the%20definition%20as%20an%20output%20binding%2E%0A%0A%20%20%20%20%20%20%2F%2F%20Merge%20defaults%20into%20the%20definition%3B%20don%27t%20mutate%20the%20original%20definition%2E%0A%20%20%20%20%20%20%2F%2F%20The%20base%20object%20is%20a%20Shiny%20output%20binding%20if%20we%27re%20running%20in%20Shiny%20mode%2C%0A%20%20%20%20%20%20%2F%2F%20or%20an%20empty%20object%20if%20we%27re%20not%2E%0A%20%20%20%20%20%20var%20shinyBinding%20%3D%20extend%28new%20Shiny%2EOutputBinding%28%29%2C%20defaults%2C%20definition%29%3B%0A%0A%20%20%20%20%20%20%2F%2F%20Wrap%20renderValue%20to%20handle%20initialization%2C%20which%20unfortunately%20isn%27t%0A%20%20%20%20%20%20%2F%2F%20supported%20natively%20by%20Shiny%20at%20the%20time%20of%20this%20writing%2E%0A%0A%20%20%20%20%20%20%2F%2F%20NB%3A%20shinyBinding%2Einitialize%20may%20be%20undefined%2C%20as%20it%27s%20optional%2E%0A%0A%20%20%20%20%20%20%2F%2F%20Rename%20initialize%20to%20make%20sure%20it%20isn%27t%20called%20by%20a%20future%20version%0A%20%20%20%20%20%20%2F%2F%20of%20Shiny%20that%20does%20support%20initialize%20directly%2E%0A%20%20%20%20%20%20shinyBinding%2E%5Fhtmlwidgets%5Finitialize%20%3D%20shinyBinding%2Einitialize%3B%0A%20%20%20%20%20%20delete%20shinyBinding%2Einitialize%3B%0A%0A%20%20%20%20%20%20overrideMethod%28shinyBinding%2C%20%22find%22%2C%20function%28superfunc%29%20%7B%0A%20%20%20%20%20%20%20%20return%20function%28scope%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20var%20results%20%3D%20superfunc%28scope%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20Only%20return%20elements%20that%20are%20Shiny%20outputs%2C%20not%20static%20ones%0A%20%20%20%20%20%20%20%20%20%20var%20dynamicResults%20%3D%20results%2Efilter%28%22%2Ehtml%2Dwidget%2Doutput%22%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20It%27s%20possible%20that%20whatever%20caused%20Shiny%20to%20think%20there%20might%20be%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20new%20dynamic%20outputs%2C%20also%20caused%20there%20to%20be%20new%20static%20outputs%2E%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20Since%20there%20might%20be%20lots%20of%20different%20htmlwidgets%20bindings%2C%20we%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20schedule%20execution%20for%20later%2D%2Dno%20need%20to%20staticRender%20multiple%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20times%2E%0A%20%20%20%20%20%20%20%20%20%20if%20%28results%2Elength%20%21%3D%3D%20dynamicResults%2Elength%29%0A%20%20%20%20%20%20%20%20%20%20%20%20scheduleStaticRender%28%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20return%20dynamicResults%3B%0A%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%7D%29%3B%0A%0A%20%20%20%20%20%20overrideMethod%28shinyBinding%2C%20%22renderValue%22%2C%20function%28superfunc%29%20%7B%0A%20%20%20%20%20%20%20%20return%20function%28el%2C%20data%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20Resolve%20strings%20marked%20as%20javascript%20literals%20to%20objects%0A%20%20%20%20%20%20%20%20%20%20if%20%28%21%28data%2Eevals%20instanceof%20Array%29%29%20data%2Eevals%20%3D%20%5Bdata%2Eevals%5D%3B%0A%20%20%20%20%20%20%20%20%20%20for%20%28var%20i%20%3D%200%3B%20data%2Eevals%20%26%26%20i%20%3C%20data%2Eevals%2Elength%3B%20i%2B%2B%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20window%2EHTMLWidgets%2EevaluateStringMember%28data%2Ex%2C%20data%2Eevals%5Bi%5D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20if%20%28%21this%2ErenderOnNullValue%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28data%2Ex%20%3D%3D%3D%20null%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20el%2Estyle%2Evisibility%20%3D%20%22hidden%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20el%2Estyle%2Evisibility%20%3D%20%22inherit%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20if%20%28%21elementData%28el%2C%20%22initialized%22%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20initSizing%28el%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20elementData%28el%2C%20%22initialized%22%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28this%2E%5Fhtmlwidgets%5Finitialize%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20result%20%3D%20this%2E%5Fhtmlwidgets%5Finitialize%28el%2C%20el%2EoffsetWidth%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20el%2EoffsetHeight%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20elementData%28el%2C%20%22init%5Fresult%22%2C%20result%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20Shiny%2ErenderDependencies%28data%2Edeps%29%3B%0A%20%20%20%20%20%20%20%20%20%20superfunc%28el%2C%20data%2Ex%2C%20elementData%28el%2C%20%22init%5Fresult%22%29%29%3B%0A%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%7D%29%3B%0A%0A%20%20%20%20%20%20overrideMethod%28shinyBinding%2C%20%22resize%22%2C%20function%28superfunc%29%20%7B%0A%20%20%20%20%20%20%20%20return%20function%28el%2C%20width%2C%20height%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20Shiny%20can%20call%20resize%20before%20initialize%2FrenderValue%20have%20been%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20called%2C%20which%20doesn%27t%20make%20sense%20for%20widgets%2E%0A%20%20%20%20%20%20%20%20%20%20if%20%28elementData%28el%2C%20%22initialized%22%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20superfunc%28el%2C%20width%2C%20height%2C%20elementData%28el%2C%20%22init%5Fresult%22%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%7D%29%3B%0A%0A%20%20%20%20%20%20Shiny%2EoutputBindings%2Eregister%28shinyBinding%2C%20shinyBinding%2Ename%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%3B%0A%0A%20%20var%20scheduleStaticRenderTimerId%20%3D%20null%3B%0A%20%20function%20scheduleStaticRender%28%29%20%7B%0A%20%20%20%20if%20%28%21scheduleStaticRenderTimerId%29%20%7B%0A%20%20%20%20%20%20scheduleStaticRenderTimerId%20%3D%20setTimeout%28function%28%29%20%7B%0A%20%20%20%20%20%20%20%20scheduleStaticRenderTimerId%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20window%2EHTMLWidgets%2EstaticRender%28%29%3B%0A%20%20%20%20%20%20%7D%2C%201%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20%2F%2F%20Render%20static%20widgets%20after%20the%20document%20finishes%20loading%0A%20%20%2F%2F%20Statically%20render%20all%20elements%20that%20are%20of%20this%20widget%27s%20class%0A%20%20window%2EHTMLWidgets%2EstaticRender%20%3D%20function%28%29%20%7B%0A%20%20%20%20var%20bindings%20%3D%20window%2EHTMLWidgets%2Ewidgets%20%7C%7C%20%5B%5D%3B%0A%20%20%20%20forEach%28bindings%2C%20function%28binding%29%20%7B%0A%20%20%20%20%20%20var%20matches%20%3D%20binding%2Efind%28document%2EdocumentElement%29%3B%0A%20%20%20%20%20%20forEach%28matches%2C%20function%28el%29%20%7B%0A%20%20%20%20%20%20%20%20var%20sizeObj%20%3D%20initSizing%28el%2C%20binding%29%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28hasClass%28el%2C%20%22html%2Dwidget%2Dstatic%2Dbound%22%29%29%0A%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20el%2EclassName%20%3D%20el%2EclassName%20%2B%20%22%20html%2Dwidget%2Dstatic%2Dbound%22%3B%0A%0A%20%20%20%20%20%20%20%20var%20initResult%3B%0A%20%20%20%20%20%20%20%20if%20%28binding%2Einitialize%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20initResult%20%3D%20binding%2Einitialize%28el%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20sizeObj%20%3F%20sizeObj%2EgetWidth%28%29%20%3A%20el%2EoffsetWidth%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20sizeObj%20%3F%20sizeObj%2EgetHeight%28%29%20%3A%20el%2EoffsetHeight%0A%20%20%20%20%20%20%20%20%20%20%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20if%20%28binding%2Eresize%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20lastSize%20%3D%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20%20%20var%20resizeHandler%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20size%20%3D%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20w%3A%20sizeObj%20%3F%20sizeObj%2EgetWidth%28%29%20%3A%20el%2EoffsetWidth%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20h%3A%20sizeObj%20%3F%20sizeObj%2EgetHeight%28%29%20%3A%20el%2EoffsetHeight%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28size%2Ew%20%3D%3D%3D%200%20%26%26%20size%2Eh%20%3D%3D%3D%200%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28size%2Ew%20%3D%3D%3D%20lastSize%2Ew%20%26%26%20size%2Eh%20%3D%3D%3D%20lastSize%2Eh%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20lastSize%20%3D%20size%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20binding%2Eresize%28el%2C%20size%2Ew%2C%20size%2Eh%2C%20initResult%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%0A%20%20%20%20%20%20%20%20%20%20on%28window%2C%20%22resize%22%2C%20resizeHandler%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20This%20is%20needed%20for%20cases%20where%20we%27re%20running%20in%20a%20Shiny%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20app%2C%20but%20the%20widget%20itself%20is%20not%20a%20Shiny%20output%2C%20but%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20rather%20a%20simple%20static%20widget%2E%20One%20example%20of%20this%20is%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20an%20rmarkdown%20document%20that%20has%20runtime%3Ashiny%20and%20widget%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20that%20isn%27t%20in%20a%20render%20function%2E%20Shiny%20only%20knows%20to%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20call%20resize%20handlers%20for%20Shiny%20outputs%2C%20not%20for%20static%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20widgets%2C%20so%20we%20do%20it%20ourselves%2E%0A%20%20%20%20%20%20%20%20%20%20if%20%28window%2EjQuery%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20window%2EjQuery%28document%29%2Eon%28%22shown%22%2C%20resizeHandler%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20window%2EjQuery%28document%29%2Eon%28%22hidden%22%2C%20resizeHandler%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20This%20is%20needed%20for%20the%20specific%20case%20of%20ioslides%2C%20which%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20flips%20slides%20between%20display%3Anone%20and%20display%3Ablock%2E%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20Ideally%20we%20would%20not%20have%20to%20have%20ioslide%2Dspecific%20code%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20here%2C%20but%20rather%20have%20ioslides%20raise%20a%20generic%20event%2C%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20but%20the%20rmarkdown%20package%20just%20went%20to%20CRAN%20so%20the%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20window%20to%20getting%20that%20fixed%20may%20be%20long%2E%0A%20%20%20%20%20%20%20%20%20%20if%20%28window%2EaddEventListener%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20It%27s%20OK%20to%20limit%20this%20to%20window%2EaddEventListener%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20browsers%20because%20ioslides%20itself%20only%20supports%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20such%20browsers%2E%0A%20%20%20%20%20%20%20%20%20%20%20%20on%28document%2C%20%22slideenter%22%2C%20resizeHandler%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20on%28document%2C%20%22slideleave%22%2C%20resizeHandler%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20var%20scriptData%20%3D%20document%2EquerySelector%28%22script%5Bdata%2Dfor%3D%27%22%20%2B%20el%2Eid%20%2B%20%22%27%5D%5Btype%3D%27application%2Fjson%27%5D%22%29%3B%0A%20%20%20%20%20%20%20%20if%20%28scriptData%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20data%20%3D%20JSON%2Eparse%28scriptData%2EtextContent%20%7C%7C%20scriptData%2Etext%29%3B%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20Resolve%20strings%20marked%20as%20javascript%20literals%20to%20objects%0A%20%20%20%20%20%20%20%20%20%20if%20%28%21%28data%2Eevals%20instanceof%20Array%29%29%20data%2Eevals%20%3D%20%5Bdata%2Eevals%5D%3B%0A%20%20%20%20%20%20%20%20%20%20for%20%28var%20k%20%3D%200%3B%20data%2Eevals%20%26%26%20k%20%3C%20data%2Eevals%2Elength%3B%20k%2B%2B%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20window%2EHTMLWidgets%2EevaluateStringMember%28data%2Ex%2C%20data%2Eevals%5Bk%5D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20binding%2ErenderValue%28el%2C%20data%2Ex%2C%20initResult%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%7D%29%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Wait%20until%20after%20the%20document%20has%20loaded%20to%20render%20the%20widgets%2E%0A%20%20if%20%28document%2EaddEventListener%29%20%7B%0A%20%20%20%20document%2EaddEventListener%28%22DOMContentLoaded%22%2C%20function%28%29%20%7B%0A%20%20%20%20%20%20document%2EremoveEventListener%28%22DOMContentLoaded%22%2C%20arguments%2Ecallee%2C%20false%29%3B%0A%20%20%20%20%20%20window%2EHTMLWidgets%2EstaticRender%28%29%3B%0A%20%20%20%20%7D%2C%20false%29%3B%0A%20%20%7D%20else%20if%20%28document%2EattachEvent%29%20%7B%0A%20%20%20%20document%2EattachEvent%28%22onreadystatechange%22%2C%20function%28%29%20%7B%0A%20%20%20%20%20%20if%20%28document%2EreadyState%20%3D%3D%3D%20%22complete%22%29%20%7B%0A%20%20%20%20%20%20%20%20document%2EdetachEvent%28%22onreadystatechange%22%2C%20arguments%2Ecallee%29%3B%0A%20%20%20%20%20%20%20%20window%2EHTMLWidgets%2EstaticRender%28%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%29%3B%0A%20%20%7D%0A%0A%0A%20%20window%2EHTMLWidgets%2EgetAttachmentUrl%20%3D%20function%28depname%2C%20key%29%20%7B%0A%20%20%20%20%2F%2F%20If%20no%20key%2C%20default%20to%20the%20first%20item%0A%20%20%20%20if%20%28typeof%28key%29%20%3D%3D%3D%20%22undefined%22%29%0A%20%20%20%20%20%20key%20%3D%201%3B%0A%0A%20%20%20%20var%20link%20%3D%20document%2EgetElementById%28depname%20%2B%20%22%2D%22%20%2B%20key%20%2B%20%22%2Dattachment%22%29%3B%0A%20%20%20%20if%20%28%21link%29%20%7B%0A%20%20%20%20%20%20throw%20new%20Error%28%22Attachment%20%22%20%2B%20depname%20%2B%20%22%2F%22%20%2B%20key%20%2B%20%22%20not%20found%20in%20document%22%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20link%2EgetAttribute%28%22href%22%29%3B%0A%20%20%7D%3B%0A%0A%20%20window%2EHTMLWidgets%2EdataframeToD3%20%3D%20function%28df%29%20%7B%0A%20%20%20%20var%20names%20%3D%20%5B%5D%3B%0A%20%20%20%20var%20length%3B%0A%20%20%20%20for%20%28var%20name%20in%20df%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28df%2EhasOwnProperty%28name%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20names%2Epush%28name%29%3B%0A%20%20%20%20%20%20%20%20if%20%28typeof%28df%5Bname%5D%29%20%21%3D%3D%20%22object%22%20%7C%7C%20typeof%28df%5Bname%5D%2Elength%29%20%3D%3D%3D%20%22undefined%22%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20throw%20new%20Error%28%22All%20fields%20must%20be%20arrays%22%29%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20if%20%28typeof%28length%29%20%21%3D%3D%20%22undefined%22%20%26%26%20length%20%21%3D%3D%20df%5Bname%5D%2Elength%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20throw%20new%20Error%28%22All%20fields%20must%20be%20arrays%20of%20the%20same%20length%22%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20length%20%3D%20df%5Bname%5D%2Elength%3B%0A%20%20%20%20%7D%0A%20%20%20%20var%20results%20%3D%20%5B%5D%3B%0A%20%20%20%20var%20item%3B%0A%20%20%20%20for%20%28var%20row%20%3D%200%3B%20row%20%3C%20length%3B%20row%2B%2B%29%20%7B%0A%20%20%20%20%20%20%20%20item%20%3D%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20for%20%28var%20col%20%3D%200%3B%20col%20%3C%20names%2Elength%3B%20col%2B%2B%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20item%5Bnames%5Bcol%5D%5D%20%3D%20df%5Bnames%5Bcol%5D%5D%5Brow%5D%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20results%2Epush%28item%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20results%3B%0A%20%20%7D%3B%0A%0A%20%20window%2EHTMLWidgets%2EtransposeArray2D%20%3D%20function%28array%29%20%7B%0A%20%20%20%20%20%20if%20%28array%2Elength%20%3D%3D%3D%200%29%20return%20array%3B%0A%20%20%20%20%20%20var%20newArray%20%3D%20array%5B0%5D%2Emap%28function%28col%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20return%20array%2Emap%28function%28row%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20row%5Bi%5D%0A%20%20%20%20%20%20%20%20%20%20%7D%29%0A%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20return%20newArray%3B%0A%20%20%7D%3B%0A%20%20%2F%2F%20Split%20value%20at%20splitChar%2C%20but%20allow%20splitChar%20to%20be%20escaped%0A%20%20%2F%2F%20using%20escapeChar%2E%20Any%20other%20characters%20escaped%20by%20escapeChar%0A%20%20%2F%2F%20will%20be%20included%20as%20usual%20%28including%20escapeChar%20itself%29%2E%0A%20%20function%20splitWithEscape%28value%2C%20splitChar%2C%20escapeChar%29%20%7B%0A%20%20%20%20var%20results%20%3D%20%5B%5D%3B%0A%20%20%20%20var%20escapeMode%20%3D%20false%3B%0A%20%20%20%20var%20currentResult%20%3D%20%22%22%3B%0A%20%20%20%20for%20%28var%20pos%20%3D%200%3B%20pos%20%3C%20value%2Elength%3B%20pos%2B%2B%29%20%7B%0A%20%20%20%20%20%20if%20%28%21escapeMode%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28value%5Bpos%5D%20%3D%3D%3D%20splitChar%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20results%2Epush%28currentResult%29%3B%0A%20%20%20%20%20%20%20%20%20%20currentResult%20%3D%20%22%22%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20if%20%28value%5Bpos%5D%20%3D%3D%3D%20escapeChar%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20escapeMode%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20currentResult%20%2B%3D%20value%5Bpos%5D%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20currentResult%20%2B%3D%20value%5Bpos%5D%3B%0A%20%20%20%20%20%20%20%20escapeMode%20%3D%20false%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20if%20%28currentResult%20%21%3D%3D%20%22%22%29%20%7B%0A%20%20%20%20%20%20results%2Epush%28currentResult%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20results%3B%0A%20%20%7D%0A%20%20%2F%2F%20Function%20authored%20by%20Yihui%2FJJ%20Allaire%0A%20%20window%2EHTMLWidgets%2EevaluateStringMember%20%3D%20function%28o%2C%20member%29%20%7B%0A%20%20%20%20var%20parts%20%3D%20splitWithEscape%28member%2C%20%27%2E%27%2C%20%27%5C%5C%27%29%3B%0A%20%20%20%20for%20%28var%20i%20%3D%200%2C%20l%20%3D%20parts%2Elength%3B%20i%20%3C%20l%3B%20i%2B%2B%29%20%7B%0A%20%20%20%20%20%20var%20part%20%3D%20parts%5Bi%5D%3B%0A%20%20%20%20%20%20%2F%2F%20part%20may%20be%20a%20character%20or%20%27numeric%27%20member%20name%0A%20%20%20%20%20%20if%20%28o%20%21%3D%3D%20null%20%26%26%20typeof%20o%20%3D%3D%3D%20%22object%22%20%26%26%20part%20in%20o%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28i%20%3D%3D%20%28l%20%2D%201%29%29%20%7B%20%2F%2F%20if%20we%20are%20at%20the%20end%20of%20the%20line%20then%20evalulate%0A%20%20%20%20%20%20%20%20%20%20if%20%28typeof%20o%5Bpart%5D%20%3D%3D%3D%20%22string%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20o%5Bpart%5D%20%3D%20eval%28%22%28%22%20%2B%20o%5Bpart%5D%20%2B%20%22%29%22%29%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%20%2F%2F%20otherwise%20continue%20to%20next%20embedded%20object%0A%20%20%20%20%20%20%20%20%20%20o%20%3D%20o%5Bpart%5D%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%3B%0A%7D%29%28%29%3B%0A%0A"></script>
<script src="data:application/x-javascript,%2F%2F%20threejs%2Eorg%2Flicense%0A%27use%20strict%27%3Bvar%20THREE%3Dwindow%2ETHREE%3D%7BREVISION%3A%2270%22%7D%3B%22object%22%3D%3D%3Dtypeof%20module%26%26%28module%2Eexports%3DTHREE%29%3Bvoid%200%3D%3D%3DMath%2Esign%26%26%28Math%2Esign%3Dfunction%28a%29%7Breturn%200%3Ea%3F%2D1%3A0%3Ca%3F1%3A0%7D%29%3BTHREE%2EMOUSE%3D%7BLEFT%3A0%2CMIDDLE%3A1%2CRIGHT%3A2%7D%3BTHREE%2ECullFaceNone%3D0%3BTHREE%2ECullFaceBack%3D1%3BTHREE%2ECullFaceFront%3D2%3BTHREE%2ECullFaceFrontBack%3D3%3BTHREE%2EFrontFaceDirectionCW%3D0%3BTHREE%2EFrontFaceDirectionCCW%3D1%3BTHREE%2EBasicShadowMap%3D0%3BTHREE%2EPCFShadowMap%3D1%3BTHREE%2EPCFSoftShadowMap%3D2%3BTHREE%2EFrontSide%3D0%3BTHREE%2EBackSide%3D1%3BTHREE%2EDoubleSide%3D2%3BTHREE%2ENoShading%3D0%3B%0ATHREE%2EFlatShading%3D1%3BTHREE%2ESmoothShading%3D2%3BTHREE%2ENoColors%3D0%3BTHREE%2EFaceColors%3D1%3BTHREE%2EVertexColors%3D2%3BTHREE%2ENoBlending%3D0%3BTHREE%2ENormalBlending%3D1%3BTHREE%2EAdditiveBlending%3D2%3BTHREE%2ESubtractiveBlending%3D3%3BTHREE%2EMultiplyBlending%3D4%3BTHREE%2ECustomBlending%3D5%3BTHREE%2EAddEquation%3D100%3BTHREE%2ESubtractEquation%3D101%3BTHREE%2EReverseSubtractEquation%3D102%3BTHREE%2EMinEquation%3D103%3BTHREE%2EMaxEquation%3D104%3BTHREE%2EZeroFactor%3D200%3BTHREE%2EOneFactor%3D201%3BTHREE%2ESrcColorFactor%3D202%3BTHREE%2EOneMinusSrcColorFactor%3D203%3BTHREE%2ESrcAlphaFactor%3D204%3B%0ATHREE%2EOneMinusSrcAlphaFactor%3D205%3BTHREE%2EDstAlphaFactor%3D206%3BTHREE%2EOneMinusDstAlphaFactor%3D207%3BTHREE%2EDstColorFactor%3D208%3BTHREE%2EOneMinusDstColorFactor%3D209%3BTHREE%2ESrcAlphaSaturateFactor%3D210%3BTHREE%2EMultiplyOperation%3D0%3BTHREE%2EMixOperation%3D1%3BTHREE%2EAddOperation%3D2%3BTHREE%2EUVMapping%3D300%3BTHREE%2ECubeReflectionMapping%3D301%3BTHREE%2ECubeRefractionMapping%3D302%3BTHREE%2EEquirectangularReflectionMapping%3D303%3BTHREE%2EEquirectangularRefractionMapping%3D304%3BTHREE%2ESphericalReflectionMapping%3D305%3BTHREE%2ERepeatWrapping%3D1E3%3B%0ATHREE%2EClampToEdgeWrapping%3D1001%3BTHREE%2EMirroredRepeatWrapping%3D1002%3BTHREE%2ENearestFilter%3D1003%3BTHREE%2ENearestMipMapNearestFilter%3D1004%3BTHREE%2ENearestMipMapLinearFilter%3D1005%3BTHREE%2ELinearFilter%3D1006%3BTHREE%2ELinearMipMapNearestFilter%3D1007%3BTHREE%2ELinearMipMapLinearFilter%3D1008%3BTHREE%2EUnsignedByteType%3D1009%3BTHREE%2EByteType%3D1010%3BTHREE%2EShortType%3D1011%3BTHREE%2EUnsignedShortType%3D1012%3BTHREE%2EIntType%3D1013%3BTHREE%2EUnsignedIntType%3D1014%3BTHREE%2EFloatType%3D1015%3BTHREE%2EUnsignedShort4444Type%3D1016%3BTHREE%2EUnsignedShort5551Type%3D1017%3B%0ATHREE%2EUnsignedShort565Type%3D1018%3BTHREE%2EAlphaFormat%3D1019%3BTHREE%2ERGBFormat%3D1020%3BTHREE%2ERGBAFormat%3D1021%3BTHREE%2ELuminanceFormat%3D1022%3BTHREE%2ELuminanceAlphaFormat%3D1023%3BTHREE%2ERGBEFormat%3DTHREE%2ERGBAFormat%3BTHREE%2ERGB%5FS3TC%5FDXT1%5FFormat%3D2001%3BTHREE%2ERGBA%5FS3TC%5FDXT1%5FFormat%3D2002%3BTHREE%2ERGBA%5FS3TC%5FDXT3%5FFormat%3D2003%3BTHREE%2ERGBA%5FS3TC%5FDXT5%5FFormat%3D2004%3BTHREE%2ERGB%5FPVRTC%5F4BPPV1%5FFormat%3D2100%3BTHREE%2ERGB%5FPVRTC%5F2BPPV1%5FFormat%3D2101%3BTHREE%2ERGBA%5FPVRTC%5F4BPPV1%5FFormat%3D2102%3BTHREE%2ERGBA%5FPVRTC%5F2BPPV1%5FFormat%3D2103%3B%0ATHREE%2EProjector%3Dfunction%28%29%7Bconsole%2Eerror%28%22THREE%2EProjector%20has%20been%20moved%20to%20%2Fexamples%2Fjs%2Frenderers%2FProjector%2Ejs%2E%22%29%3Bthis%2EprojectVector%3Dfunction%28a%2Cb%29%7Bconsole%2Ewarn%28%22THREE%2EProjector%3A%20%2EprojectVector%28%29%20is%20now%20vector%2Eproject%28%29%2E%22%29%3Ba%2Eproject%28b%29%7D%3Bthis%2EunprojectVector%3Dfunction%28a%2Cb%29%7Bconsole%2Ewarn%28%22THREE%2EProjector%3A%20%2EunprojectVector%28%29%20is%20now%20vector%2Eunproject%28%29%2E%22%29%3Ba%2Eunproject%28b%29%7D%3Bthis%2EpickingRay%3Dfunction%28a%2Cb%29%7Bconsole%2Eerror%28%22THREE%2EProjector%3A%20%2EpickingRay%28%29%20is%20now%20raycaster%2EsetFromCamera%28%29%2E%22%29%7D%7D%3B%0ATHREE%2ECanvasRenderer%3Dfunction%28%29%7Bconsole%2Eerror%28%22THREE%2ECanvasRenderer%20has%20been%20moved%20to%20%2Fexamples%2Fjs%2Frenderers%2FCanvasRenderer%2Ejs%22%29%3Bthis%2EdomElement%3Ddocument%2EcreateElement%28%22canvas%22%29%3Bthis%2Eclear%3Dfunction%28%29%7B%7D%3Bthis%2Erender%3Dfunction%28%29%7B%7D%3Bthis%2EsetClearColor%3Dfunction%28%29%7B%7D%3Bthis%2EsetSize%3Dfunction%28%29%7B%7D%7D%3BTHREE%2EColor%3Dfunction%28a%29%7Breturn%203%3D%3D%3Darguments%2Elength%3Fthis%2EsetRGB%28arguments%5B0%5D%2Carguments%5B1%5D%2Carguments%5B2%5D%29%3Athis%2Eset%28a%29%7D%3B%0ATHREE%2EColor%2Eprototype%3D%7Bconstructor%3ATHREE%2EColor%2Cr%3A1%2Cg%3A1%2Cb%3A1%2Cset%3Afunction%28a%29%7Ba%20instanceof%20THREE%2EColor%3Fthis%2Ecopy%28a%29%3A%22number%22%3D%3D%3Dtypeof%20a%3Fthis%2EsetHex%28a%29%3A%22string%22%3D%3D%3Dtypeof%20a%26%26this%2EsetStyle%28a%29%3Breturn%20this%7D%2CsetHex%3Afunction%28a%29%7Ba%3DMath%2Efloor%28a%29%3Bthis%2Er%3D%28a%3E%3E16%26255%29%2F255%3Bthis%2Eg%3D%28a%3E%3E8%26255%29%2F255%3Bthis%2Eb%3D%28a%26255%29%2F255%3Breturn%20this%7D%2CsetRGB%3Afunction%28a%2Cb%2Cc%29%7Bthis%2Er%3Da%3Bthis%2Eg%3Db%3Bthis%2Eb%3Dc%3Breturn%20this%7D%2CsetHSL%3Afunction%28a%2Cb%2Cc%29%7Bif%280%3D%3D%3Db%29this%2Er%3Dthis%2Eg%3Dthis%2Eb%3Dc%3Belse%7Bvar%20d%3Dfunction%28a%2Cb%2Cc%29%7B0%3Ec%26%26%28c%2B%3D1%29%3B1%3Cc%26%26%28c%2D%3D1%29%3Breturn%20c%3C1%2F6%3Fa%2B6%2A%28b%2Da%29%2A%0Ac%3A%2E5%3Ec%3Fb%3Ac%3C2%2F3%3Fa%2B6%2A%28b%2Da%29%2A%282%2F3%2Dc%29%3Aa%7D%3Bb%3D%2E5%3E%3Dc%3Fc%2A%281%2Bb%29%3Ac%2Bb%2Dc%2Ab%3Bc%3D2%2Ac%2Db%3Bthis%2Er%3Dd%28c%2Cb%2Ca%2B1%2F3%29%3Bthis%2Eg%3Dd%28c%2Cb%2Ca%29%3Bthis%2Eb%3Dd%28c%2Cb%2Ca%2D1%2F3%29%7Dreturn%20this%7D%2CsetStyle%3Afunction%28a%29%7Bif%28%2F%5Ergb%5C%28%28%5Cd%2B%29%2C%20%3F%28%5Cd%2B%29%2C%20%3F%28%5Cd%2B%29%5C%29%24%2Fi%2Etest%28a%29%29return%20a%3D%2F%5Ergb%5C%28%28%5Cd%2B%29%2C%20%3F%28%5Cd%2B%29%2C%20%3F%28%5Cd%2B%29%5C%29%24%2Fi%2Eexec%28a%29%2Cthis%2Er%3DMath%2Emin%28255%2CparseInt%28a%5B1%5D%2C10%29%29%2F255%2Cthis%2Eg%3DMath%2Emin%28255%2CparseInt%28a%5B2%5D%2C10%29%29%2F255%2Cthis%2Eb%3DMath%2Emin%28255%2CparseInt%28a%5B3%5D%2C10%29%29%2F255%2Cthis%3Bif%28%2F%5Ergb%5C%28%28%5Cd%2B%29%5C%25%2C%20%3F%28%5Cd%2B%29%5C%25%2C%20%3F%28%5Cd%2B%29%5C%25%5C%29%24%2Fi%2Etest%28a%29%29return%20a%3D%2F%5Ergb%5C%28%28%5Cd%2B%29%5C%25%2C%20%3F%28%5Cd%2B%29%5C%25%2C%20%3F%28%5Cd%2B%29%5C%25%5C%29%24%2Fi%2Eexec%28a%29%2Cthis%2Er%3D%0AMath%2Emin%28100%2CparseInt%28a%5B1%5D%2C10%29%29%2F100%2Cthis%2Eg%3DMath%2Emin%28100%2CparseInt%28a%5B2%5D%2C10%29%29%2F100%2Cthis%2Eb%3DMath%2Emin%28100%2CparseInt%28a%5B3%5D%2C10%29%29%2F100%2Cthis%3Bif%28%2F%5E%5C%23%28%5B0%2D9a%2Df%5D%7B6%7D%29%24%2Fi%2Etest%28a%29%29return%20a%3D%2F%5E%5C%23%28%5B0%2D9a%2Df%5D%7B6%7D%29%24%2Fi%2Eexec%28a%29%2Cthis%2EsetHex%28parseInt%28a%5B1%5D%2C16%29%29%2Cthis%3Bif%28%2F%5E%5C%23%28%5B0%2D9a%2Df%5D%29%28%5B0%2D9a%2Df%5D%29%28%5B0%2D9a%2Df%5D%29%24%2Fi%2Etest%28a%29%29return%20a%3D%2F%5E%5C%23%28%5B0%2D9a%2Df%5D%29%28%5B0%2D9a%2Df%5D%29%28%5B0%2D9a%2Df%5D%29%24%2Fi%2Eexec%28a%29%2Cthis%2EsetHex%28parseInt%28a%5B1%5D%2Ba%5B1%5D%2Ba%5B2%5D%2Ba%5B2%5D%2Ba%5B3%5D%2Ba%5B3%5D%2C16%29%29%2Cthis%3Bif%28%2F%5E%28%5Cw%2B%29%24%2Fi%2Etest%28a%29%29return%20this%2EsetHex%28THREE%2EColorKeywords%5Ba%5D%29%2Cthis%7D%2Ccopy%3Afunction%28a%29%7Bthis%2Er%3Da%2Er%3Bthis%2Eg%3D%0Aa%2Eg%3Bthis%2Eb%3Da%2Eb%3Breturn%20this%7D%2CcopyGammaToLinear%3Afunction%28a%29%7Bthis%2Er%3Da%2Er%2Aa%2Er%3Bthis%2Eg%3Da%2Eg%2Aa%2Eg%3Bthis%2Eb%3Da%2Eb%2Aa%2Eb%3Breturn%20this%7D%2CcopyLinearToGamma%3Afunction%28a%29%7Bthis%2Er%3DMath%2Esqrt%28a%2Er%29%3Bthis%2Eg%3DMath%2Esqrt%28a%2Eg%29%3Bthis%2Eb%3DMath%2Esqrt%28a%2Eb%29%3Breturn%20this%7D%2CconvertGammaToLinear%3Afunction%28%29%7Bvar%20a%3Dthis%2Er%2Cb%3Dthis%2Eg%2Cc%3Dthis%2Eb%3Bthis%2Er%3Da%2Aa%3Bthis%2Eg%3Db%2Ab%3Bthis%2Eb%3Dc%2Ac%3Breturn%20this%7D%2CconvertLinearToGamma%3Afunction%28%29%7Bthis%2Er%3DMath%2Esqrt%28this%2Er%29%3Bthis%2Eg%3DMath%2Esqrt%28this%2Eg%29%3Bthis%2Eb%3DMath%2Esqrt%28this%2Eb%29%3Breturn%20this%7D%2CgetHex%3Afunction%28%29%7Breturn%20255%2Athis%2Er%3C%3C16%5E255%2Athis%2Eg%3C%3C%0A8%5E255%2Athis%2Eb%3C%3C0%7D%2CgetHexString%3Afunction%28%29%7Breturn%28%22000000%22%2Bthis%2EgetHex%28%29%2EtoString%2816%29%29%2Eslice%28%2D6%29%7D%2CgetHSL%3Afunction%28a%29%7Ba%3Da%7C%7C%7Bh%3A0%2Cs%3A0%2Cl%3A0%7D%3Bvar%20b%3Dthis%2Er%2Cc%3Dthis%2Eg%2Cd%3Dthis%2Eb%2Ce%3DMath%2Emax%28b%2Cc%2Cd%29%2Cf%3DMath%2Emin%28b%2Cc%2Cd%29%2Cg%2Ch%3D%28f%2Be%29%2F2%3Bif%28f%3D%3D%3De%29f%3Dg%3D0%3Belse%7Bvar%20k%3De%2Df%2Cf%3D%2E5%3E%3Dh%3Fk%2F%28e%2Bf%29%3Ak%2F%282%2De%2Df%29%3Bswitch%28e%29%7Bcase%20b%3Ag%3D%28c%2Dd%29%2Fk%2B%28c%3Cd%3F6%3A0%29%3Bbreak%3Bcase%20c%3Ag%3D%28d%2Db%29%2Fk%2B2%3Bbreak%3Bcase%20d%3Ag%3D%28b%2Dc%29%2Fk%2B4%7Dg%2F%3D6%7Da%2Eh%3Dg%3Ba%2Es%3Df%3Ba%2El%3Dh%3Breturn%20a%7D%2CgetStyle%3Afunction%28%29%7Breturn%22rgb%28%22%2B%28255%2Athis%2Er%7C0%29%2B%22%2C%22%2B%28255%2Athis%2Eg%7C0%29%2B%22%2C%22%2B%28255%2Athis%2Eb%7C0%29%2B%22%29%22%7D%2CoffsetHSL%3Afunction%28a%2C%0Ab%2Cc%29%7Bvar%20d%3Dthis%2EgetHSL%28%29%3Bd%2Eh%2B%3Da%3Bd%2Es%2B%3Db%3Bd%2El%2B%3Dc%3Bthis%2EsetHSL%28d%2Eh%2Cd%2Es%2Cd%2El%29%3Breturn%20this%7D%2Cadd%3Afunction%28a%29%7Bthis%2Er%2B%3Da%2Er%3Bthis%2Eg%2B%3Da%2Eg%3Bthis%2Eb%2B%3Da%2Eb%3Breturn%20this%7D%2CaddColors%3Afunction%28a%2Cb%29%7Bthis%2Er%3Da%2Er%2Bb%2Er%3Bthis%2Eg%3Da%2Eg%2Bb%2Eg%3Bthis%2Eb%3Da%2Eb%2Bb%2Eb%3Breturn%20this%7D%2CaddScalar%3Afunction%28a%29%7Bthis%2Er%2B%3Da%3Bthis%2Eg%2B%3Da%3Bthis%2Eb%2B%3Da%3Breturn%20this%7D%2Cmultiply%3Afunction%28a%29%7Bthis%2Er%2A%3Da%2Er%3Bthis%2Eg%2A%3Da%2Eg%3Bthis%2Eb%2A%3Da%2Eb%3Breturn%20this%7D%2CmultiplyScalar%3Afunction%28a%29%7Bthis%2Er%2A%3Da%3Bthis%2Eg%2A%3Da%3Bthis%2Eb%2A%3Da%3Breturn%20this%7D%2Clerp%3Afunction%28a%2Cb%29%7Bthis%2Er%2B%3D%28a%2Er%2Dthis%2Er%29%2Ab%3Bthis%2Eg%2B%3D%28a%2Eg%2Dthis%2Eg%29%2Ab%3B%0Athis%2Eb%2B%3D%28a%2Eb%2Dthis%2Eb%29%2Ab%3Breturn%20this%7D%2Cequals%3Afunction%28a%29%7Breturn%20a%2Er%3D%3D%3Dthis%2Er%26%26a%2Eg%3D%3D%3Dthis%2Eg%26%26a%2Eb%3D%3D%3Dthis%2Eb%7D%2CfromArray%3Afunction%28a%29%7Bthis%2Er%3Da%5B0%5D%3Bthis%2Eg%3Da%5B1%5D%3Bthis%2Eb%3Da%5B2%5D%3Breturn%20this%7D%2CtoArray%3Afunction%28%29%7Breturn%5Bthis%2Er%2Cthis%2Eg%2Cthis%2Eb%5D%7D%2Cclone%3Afunction%28%29%7Breturn%28new%20THREE%2EColor%29%2EsetRGB%28this%2Er%2Cthis%2Eg%2Cthis%2Eb%29%7D%7D%3B%0ATHREE%2EColorKeywords%3D%7Baliceblue%3A15792383%2Cantiquewhite%3A16444375%2Caqua%3A65535%2Caquamarine%3A8388564%2Cazure%3A15794175%2Cbeige%3A16119260%2Cbisque%3A16770244%2Cblack%3A0%2Cblanchedalmond%3A16772045%2Cblue%3A255%2Cblueviolet%3A9055202%2Cbrown%3A10824234%2Cburlywood%3A14596231%2Ccadetblue%3A6266528%2Cchartreuse%3A8388352%2Cchocolate%3A13789470%2Ccoral%3A16744272%2Ccornflowerblue%3A6591981%2Ccornsilk%3A16775388%2Ccrimson%3A14423100%2Ccyan%3A65535%2Cdarkblue%3A139%2Cdarkcyan%3A35723%2Cdarkgoldenrod%3A12092939%2Cdarkgray%3A11119017%2Cdarkgreen%3A25600%2Cdarkgrey%3A11119017%2Cdarkkhaki%3A12433259%2Cdarkmagenta%3A9109643%2C%0Adarkolivegreen%3A5597999%2Cdarkorange%3A16747520%2Cdarkorchid%3A10040012%2Cdarkred%3A9109504%2Cdarksalmon%3A15308410%2Cdarkseagreen%3A9419919%2Cdarkslateblue%3A4734347%2Cdarkslategray%3A3100495%2Cdarkslategrey%3A3100495%2Cdarkturquoise%3A52945%2Cdarkviolet%3A9699539%2Cdeeppink%3A16716947%2Cdeepskyblue%3A49151%2Cdimgray%3A6908265%2Cdimgrey%3A6908265%2Cdodgerblue%3A2003199%2Cfirebrick%3A11674146%2Cfloralwhite%3A16775920%2Cforestgreen%3A2263842%2Cfuchsia%3A16711935%2Cgainsboro%3A14474460%2Cghostwhite%3A16316671%2Cgold%3A16766720%2Cgoldenrod%3A14329120%2Cgray%3A8421504%2Cgreen%3A32768%2Cgreenyellow%3A11403055%2C%0Agrey%3A8421504%2Choneydew%3A15794160%2Chotpink%3A16738740%2Cindianred%3A13458524%2Cindigo%3A4915330%2Civory%3A16777200%2Ckhaki%3A15787660%2Clavender%3A15132410%2Clavenderblush%3A16773365%2Clawngreen%3A8190976%2Clemonchiffon%3A16775885%2Clightblue%3A11393254%2Clightcoral%3A15761536%2Clightcyan%3A14745599%2Clightgoldenrodyellow%3A16448210%2Clightgray%3A13882323%2Clightgreen%3A9498256%2Clightgrey%3A13882323%2Clightpink%3A16758465%2Clightsalmon%3A16752762%2Clightseagreen%3A2142890%2Clightskyblue%3A8900346%2Clightslategray%3A7833753%2Clightslategrey%3A7833753%2Clightsteelblue%3A11584734%2Clightyellow%3A16777184%2C%0Alime%3A65280%2Climegreen%3A3329330%2Clinen%3A16445670%2Cmagenta%3A16711935%2Cmaroon%3A8388608%2Cmediumaquamarine%3A6737322%2Cmediumblue%3A205%2Cmediumorchid%3A12211667%2Cmediumpurple%3A9662683%2Cmediumseagreen%3A3978097%2Cmediumslateblue%3A8087790%2Cmediumspringgreen%3A64154%2Cmediumturquoise%3A4772300%2Cmediumvioletred%3A13047173%2Cmidnightblue%3A1644912%2Cmintcream%3A16121850%2Cmistyrose%3A16770273%2Cmoccasin%3A16770229%2Cnavajowhite%3A16768685%2Cnavy%3A128%2Coldlace%3A16643558%2Colive%3A8421376%2Colivedrab%3A7048739%2Corange%3A16753920%2Corangered%3A16729344%2Corchid%3A14315734%2Cpalegoldenrod%3A15657130%2C%0Apalegreen%3A10025880%2Cpaleturquoise%3A11529966%2Cpalevioletred%3A14381203%2Cpapayawhip%3A16773077%2Cpeachpuff%3A16767673%2Cperu%3A13468991%2Cpink%3A16761035%2Cplum%3A14524637%2Cpowderblue%3A11591910%2Cpurple%3A8388736%2Cred%3A16711680%2Crosybrown%3A12357519%2Croyalblue%3A4286945%2Csaddlebrown%3A9127187%2Csalmon%3A16416882%2Csandybrown%3A16032864%2Cseagreen%3A3050327%2Cseashell%3A16774638%2Csienna%3A10506797%2Csilver%3A12632256%2Cskyblue%3A8900331%2Cslateblue%3A6970061%2Cslategray%3A7372944%2Cslategrey%3A7372944%2Csnow%3A16775930%2Cspringgreen%3A65407%2Csteelblue%3A4620980%2Ctan%3A13808780%2Cteal%3A32896%2Cthistle%3A14204888%2C%0Atomato%3A16737095%2Cturquoise%3A4251856%2Cviolet%3A15631086%2Cwheat%3A16113331%2Cwhite%3A16777215%2Cwhitesmoke%3A16119285%2Cyellow%3A16776960%2Cyellowgreen%3A10145074%7D%3BTHREE%2EQuaternion%3Dfunction%28a%2Cb%2Cc%2Cd%29%7Bthis%2E%5Fx%3Da%7C%7C0%3Bthis%2E%5Fy%3Db%7C%7C0%3Bthis%2E%5Fz%3Dc%7C%7C0%3Bthis%2E%5Fw%3Dvoid%200%21%3D%3Dd%3Fd%3A1%7D%3B%0ATHREE%2EQuaternion%2Eprototype%3D%7Bconstructor%3ATHREE%2EQuaternion%2C%5Fx%3A0%2C%5Fy%3A0%2C%5Fz%3A0%2C%5Fw%3A0%2Cget%20x%28%29%7Breturn%20this%2E%5Fx%7D%2Cset%20x%28a%29%7Bthis%2E%5Fx%3Da%3Bthis%2EonChangeCallback%28%29%7D%2Cget%20y%28%29%7Breturn%20this%2E%5Fy%7D%2Cset%20y%28a%29%7Bthis%2E%5Fy%3Da%3Bthis%2EonChangeCallback%28%29%7D%2Cget%20z%28%29%7Breturn%20this%2E%5Fz%7D%2Cset%20z%28a%29%7Bthis%2E%5Fz%3Da%3Bthis%2EonChangeCallback%28%29%7D%2Cget%20w%28%29%7Breturn%20this%2E%5Fw%7D%2Cset%20w%28a%29%7Bthis%2E%5Fw%3Da%3Bthis%2EonChangeCallback%28%29%7D%2Cset%3Afunction%28a%2Cb%2Cc%2Cd%29%7Bthis%2E%5Fx%3Da%3Bthis%2E%5Fy%3Db%3Bthis%2E%5Fz%3Dc%3Bthis%2E%5Fw%3Dd%3Bthis%2EonChangeCallback%28%29%3Breturn%20this%7D%2Ccopy%3Afunction%28a%29%7Bthis%2E%5Fx%3Da%2Ex%3Bthis%2E%5Fy%3Da%2Ey%3Bthis%2E%5Fz%3Da%2Ez%3B%0Athis%2E%5Fw%3Da%2Ew%3Bthis%2EonChangeCallback%28%29%3Breturn%20this%7D%2CsetFromEuler%3Afunction%28a%2Cb%29%7Bif%28%211%3D%3D%3Da%20instanceof%20THREE%2EEuler%29throw%20Error%28%22THREE%2EQuaternion%3A%20%2EsetFromEuler%28%29%20now%20expects%20a%20Euler%20rotation%20rather%20than%20a%20Vector3%20and%20order%2E%22%29%3Bvar%20c%3DMath%2Ecos%28a%2E%5Fx%2F2%29%2Cd%3DMath%2Ecos%28a%2E%5Fy%2F2%29%2Ce%3DMath%2Ecos%28a%2E%5Fz%2F2%29%2Cf%3DMath%2Esin%28a%2E%5Fx%2F2%29%2Cg%3DMath%2Esin%28a%2E%5Fy%2F2%29%2Ch%3DMath%2Esin%28a%2E%5Fz%2F2%29%3B%22XYZ%22%3D%3D%3Da%2Eorder%3F%28this%2E%5Fx%3Df%2Ad%2Ae%2Bc%2Ag%2Ah%2Cthis%2E%5Fy%3Dc%2Ag%2Ae%2Df%2Ad%2Ah%2Cthis%2E%5Fz%3Dc%2Ad%2Ah%2Bf%2Ag%2Ae%2Cthis%2E%5Fw%3Dc%2Ad%2Ae%2Df%2Ag%2Ah%29%3A%22YXZ%22%3D%3D%3Da%2Eorder%3F%28this%2E%5Fx%3Df%2Ad%2Ae%2Bc%2Ag%2Ah%2Cthis%2E%5Fy%3Dc%2Ag%2Ae%2Df%2Ad%2Ah%2Cthis%2E%5Fz%3D%0Ac%2Ad%2Ah%2Df%2Ag%2Ae%2Cthis%2E%5Fw%3Dc%2Ad%2Ae%2Bf%2Ag%2Ah%29%3A%22ZXY%22%3D%3D%3Da%2Eorder%3F%28this%2E%5Fx%3Df%2Ad%2Ae%2Dc%2Ag%2Ah%2Cthis%2E%5Fy%3Dc%2Ag%2Ae%2Bf%2Ad%2Ah%2Cthis%2E%5Fz%3Dc%2Ad%2Ah%2Bf%2Ag%2Ae%2Cthis%2E%5Fw%3Dc%2Ad%2Ae%2Df%2Ag%2Ah%29%3A%22ZYX%22%3D%3D%3Da%2Eorder%3F%28this%2E%5Fx%3Df%2Ad%2Ae%2Dc%2Ag%2Ah%2Cthis%2E%5Fy%3Dc%2Ag%2Ae%2Bf%2Ad%2Ah%2Cthis%2E%5Fz%3Dc%2Ad%2Ah%2Df%2Ag%2Ae%2Cthis%2E%5Fw%3Dc%2Ad%2Ae%2Bf%2Ag%2Ah%29%3A%22YZX%22%3D%3D%3Da%2Eorder%3F%28this%2E%5Fx%3Df%2Ad%2Ae%2Bc%2Ag%2Ah%2Cthis%2E%5Fy%3Dc%2Ag%2Ae%2Bf%2Ad%2Ah%2Cthis%2E%5Fz%3Dc%2Ad%2Ah%2Df%2Ag%2Ae%2Cthis%2E%5Fw%3Dc%2Ad%2Ae%2Df%2Ag%2Ah%29%3A%22XZY%22%3D%3D%3Da%2Eorder%26%26%28this%2E%5Fx%3Df%2Ad%2Ae%2Dc%2Ag%2Ah%2Cthis%2E%5Fy%3Dc%2Ag%2Ae%2Df%2Ad%2Ah%2Cthis%2E%5Fz%3Dc%2Ad%2Ah%2Bf%2Ag%2Ae%2Cthis%2E%5Fw%3Dc%2Ad%2Ae%2Bf%2Ag%2Ah%29%3Bif%28%211%21%3D%3Db%29this%2EonChangeCallback%28%29%3Breturn%20this%7D%2CsetFromAxisAngle%3Afunction%28a%2C%0Ab%29%7Bvar%20c%3Db%2F2%2Cd%3DMath%2Esin%28c%29%3Bthis%2E%5Fx%3Da%2Ex%2Ad%3Bthis%2E%5Fy%3Da%2Ey%2Ad%3Bthis%2E%5Fz%3Da%2Ez%2Ad%3Bthis%2E%5Fw%3DMath%2Ecos%28c%29%3Bthis%2EonChangeCallback%28%29%3Breturn%20this%7D%2CsetFromRotationMatrix%3Afunction%28a%29%7Bvar%20b%3Da%2Eelements%2Cc%3Db%5B0%5D%3Ba%3Db%5B4%5D%3Bvar%20d%3Db%5B8%5D%2Ce%3Db%5B1%5D%2Cf%3Db%5B5%5D%2Cg%3Db%5B9%5D%2Ch%3Db%5B2%5D%2Ck%3Db%5B6%5D%2Cb%3Db%5B10%5D%2Cn%3Dc%2Bf%2Bb%3B0%3Cn%3F%28c%3D%2E5%2FMath%2Esqrt%28n%2B1%29%2Cthis%2E%5Fw%3D%2E25%2Fc%2Cthis%2E%5Fx%3D%28k%2Dg%29%2Ac%2Cthis%2E%5Fy%3D%28d%2Dh%29%2Ac%2Cthis%2E%5Fz%3D%28e%2Da%29%2Ac%29%3Ac%3Ef%26%26c%3Eb%3F%28c%3D2%2AMath%2Esqrt%281%2Bc%2Df%2Db%29%2Cthis%2E%5Fw%3D%28k%2Dg%29%2Fc%2Cthis%2E%5Fx%3D%2E25%2Ac%2Cthis%2E%5Fy%3D%28a%2Be%29%2Fc%2Cthis%2E%5Fz%3D%28d%2Bh%29%2Fc%29%3Af%3Eb%3F%28c%3D2%2AMath%2Esqrt%281%2Bf%2Dc%2Db%29%2Cthis%2E%5Fw%3D%28d%2Dh%29%2Fc%2Cthis%2E%5Fx%3D%28a%2Be%29%2Fc%2Cthis%2E%5Fy%3D%0A%2E25%2Ac%2Cthis%2E%5Fz%3D%28g%2Bk%29%2Fc%29%3A%28c%3D2%2AMath%2Esqrt%281%2Bb%2Dc%2Df%29%2Cthis%2E%5Fw%3D%28e%2Da%29%2Fc%2Cthis%2E%5Fx%3D%28d%2Bh%29%2Fc%2Cthis%2E%5Fy%3D%28g%2Bk%29%2Fc%2Cthis%2E%5Fz%3D%2E25%2Ac%29%3Bthis%2EonChangeCallback%28%29%3Breturn%20this%7D%2CsetFromUnitVectors%3Afunction%28%29%7Bvar%20a%2Cb%3Breturn%20function%28c%2Cd%29%7Bvoid%200%3D%3D%3Da%26%26%28a%3Dnew%20THREE%2EVector3%29%3Bb%3Dc%2Edot%28d%29%2B1%3B1E%2D6%3Eb%3F%28b%3D0%2CMath%2Eabs%28c%2Ex%29%3EMath%2Eabs%28c%2Ez%29%3Fa%2Eset%28%2Dc%2Ey%2Cc%2Ex%2C0%29%3Aa%2Eset%280%2C%2Dc%2Ez%2Cc%2Ey%29%29%3Aa%2EcrossVectors%28c%2Cd%29%3Bthis%2E%5Fx%3Da%2Ex%3Bthis%2E%5Fy%3Da%2Ey%3Bthis%2E%5Fz%3Da%2Ez%3Bthis%2E%5Fw%3Db%3Bthis%2Enormalize%28%29%3Breturn%20this%7D%7D%28%29%2Cinverse%3Afunction%28%29%7Bthis%2Econjugate%28%29%2Enormalize%28%29%3Breturn%20this%7D%2Cconjugate%3Afunction%28%29%7Bthis%2E%5Fx%2A%3D%0A%2D1%3Bthis%2E%5Fy%2A%3D%2D1%3Bthis%2E%5Fz%2A%3D%2D1%3Bthis%2EonChangeCallback%28%29%3Breturn%20this%7D%2Cdot%3Afunction%28a%29%7Breturn%20this%2E%5Fx%2Aa%2E%5Fx%2Bthis%2E%5Fy%2Aa%2E%5Fy%2Bthis%2E%5Fz%2Aa%2E%5Fz%2Bthis%2E%5Fw%2Aa%2E%5Fw%7D%2ClengthSq%3Afunction%28%29%7Breturn%20this%2E%5Fx%2Athis%2E%5Fx%2Bthis%2E%5Fy%2Athis%2E%5Fy%2Bthis%2E%5Fz%2Athis%2E%5Fz%2Bthis%2E%5Fw%2Athis%2E%5Fw%7D%2Clength%3Afunction%28%29%7Breturn%20Math%2Esqrt%28this%2E%5Fx%2Athis%2E%5Fx%2Bthis%2E%5Fy%2Athis%2E%5Fy%2Bthis%2E%5Fz%2Athis%2E%5Fz%2Bthis%2E%5Fw%2Athis%2E%5Fw%29%7D%2Cnormalize%3Afunction%28%29%7Bvar%20a%3Dthis%2Elength%28%29%3B0%3D%3D%3Da%3F%28this%2E%5Fz%3Dthis%2E%5Fy%3Dthis%2E%5Fx%3D0%2Cthis%2E%5Fw%3D1%29%3A%28a%3D1%2Fa%2Cthis%2E%5Fx%2A%3Da%2Cthis%2E%5Fy%2A%3Da%2Cthis%2E%5Fz%2A%3Da%2Cthis%2E%5Fw%2A%3Da%29%3Bthis%2EonChangeCallback%28%29%3Breturn%20this%7D%2C%0Amultiply%3Afunction%28a%2Cb%29%7Breturn%20void%200%21%3D%3Db%3F%28console%2Ewarn%28%22THREE%2EQuaternion%3A%20%2Emultiply%28%29%20now%20only%20accepts%20one%20argument%2E%20Use%20%2EmultiplyQuaternions%28%20a%2C%20b%20%29%20instead%2E%22%29%2Cthis%2EmultiplyQuaternions%28a%2Cb%29%29%3Athis%2EmultiplyQuaternions%28this%2Ca%29%7D%2CmultiplyQuaternions%3Afunction%28a%2Cb%29%7Bvar%20c%3Da%2E%5Fx%2Cd%3Da%2E%5Fy%2Ce%3Da%2E%5Fz%2Cf%3Da%2E%5Fw%2Cg%3Db%2E%5Fx%2Ch%3Db%2E%5Fy%2Ck%3Db%2E%5Fz%2Cn%3Db%2E%5Fw%3Bthis%2E%5Fx%3Dc%2An%2Bf%2Ag%2Bd%2Ak%2De%2Ah%3Bthis%2E%5Fy%3Dd%2An%2Bf%2Ah%2Be%2Ag%2Dc%2Ak%3Bthis%2E%5Fz%3De%2An%2Bf%2Ak%2Bc%2Ah%2Dd%2Ag%3Bthis%2E%5Fw%3Df%2An%2Dc%2Ag%2Dd%2Ah%2De%2Ak%3Bthis%2EonChangeCallback%28%29%3Breturn%20this%7D%2CmultiplyVector3%3Afunction%28a%29%7Bconsole%2Ewarn%28%22THREE%2EQuaternion%3A%20%2EmultiplyVector3%28%29%20has%20been%20removed%2E%20Use%20is%20now%20vector%2EapplyQuaternion%28%20quaternion%20%29%20instead%2E%22%29%3B%0Areturn%20a%2EapplyQuaternion%28this%29%7D%2Cslerp%3Afunction%28a%2Cb%29%7Bif%280%3D%3D%3Db%29return%20this%3Bif%281%3D%3D%3Db%29return%20this%2Ecopy%28a%29%3Bvar%20c%3Dthis%2E%5Fx%2Cd%3Dthis%2E%5Fy%2Ce%3Dthis%2E%5Fz%2Cf%3Dthis%2E%5Fw%2Cg%3Df%2Aa%2E%5Fw%2Bc%2Aa%2E%5Fx%2Bd%2Aa%2E%5Fy%2Be%2Aa%2E%5Fz%3B0%3Eg%3F%28this%2E%5Fw%3D%2Da%2E%5Fw%2Cthis%2E%5Fx%3D%2Da%2E%5Fx%2Cthis%2E%5Fy%3D%2Da%2E%5Fy%2Cthis%2E%5Fz%3D%2Da%2E%5Fz%2Cg%3D%2Dg%29%3Athis%2Ecopy%28a%29%3Bif%281%3C%3Dg%29return%20this%2E%5Fw%3Df%2Cthis%2E%5Fx%3Dc%2Cthis%2E%5Fy%3Dd%2Cthis%2E%5Fz%3De%2Cthis%3Bvar%20h%3DMath%2Eacos%28g%29%2Ck%3DMath%2Esqrt%281%2Dg%2Ag%29%3Bif%28%2E001%3EMath%2Eabs%28k%29%29return%20this%2E%5Fw%3D%2E5%2A%28f%2Bthis%2E%5Fw%29%2Cthis%2E%5Fx%3D%2E5%2A%28c%2Bthis%2E%5Fx%29%2Cthis%2E%5Fy%3D%2E5%2A%28d%2Bthis%2E%5Fy%29%2Cthis%2E%5Fz%3D%2E5%2A%28e%2Bthis%2E%5Fz%29%2Cthis%3Bg%3DMath%2Esin%28%281%2Db%29%2Ah%29%2Fk%3Bh%3D%0AMath%2Esin%28b%2Ah%29%2Fk%3Bthis%2E%5Fw%3Df%2Ag%2Bthis%2E%5Fw%2Ah%3Bthis%2E%5Fx%3Dc%2Ag%2Bthis%2E%5Fx%2Ah%3Bthis%2E%5Fy%3Dd%2Ag%2Bthis%2E%5Fy%2Ah%3Bthis%2E%5Fz%3De%2Ag%2Bthis%2E%5Fz%2Ah%3Bthis%2EonChangeCallback%28%29%3Breturn%20this%7D%2Cequals%3Afunction%28a%29%7Breturn%20a%2E%5Fx%3D%3D%3Dthis%2E%5Fx%26%26a%2E%5Fy%3D%3D%3Dthis%2E%5Fy%26%26a%2E%5Fz%3D%3D%3Dthis%2E%5Fz%26%26a%2E%5Fw%3D%3D%3Dthis%2E%5Fw%7D%2CfromArray%3Afunction%28a%2Cb%29%7Bvoid%200%3D%3D%3Db%26%26%28b%3D0%29%3Bthis%2E%5Fx%3Da%5Bb%5D%3Bthis%2E%5Fy%3Da%5Bb%2B1%5D%3Bthis%2E%5Fz%3Da%5Bb%2B2%5D%3Bthis%2E%5Fw%3Da%5Bb%2B3%5D%3Bthis%2EonChangeCallback%28%29%3Breturn%20this%7D%2CtoArray%3Afunction%28a%2Cb%29%7Bvoid%200%3D%3D%3Da%26%26%28a%3D%5B%5D%29%3Bvoid%200%3D%3D%3Db%26%26%28b%3D0%29%3Ba%5Bb%5D%3Dthis%2E%5Fx%3Ba%5Bb%2B1%5D%3Dthis%2E%5Fy%3Ba%5Bb%2B2%5D%3Dthis%2E%5Fz%3Ba%5Bb%2B3%5D%3Dthis%2E%5Fw%3Breturn%20a%7D%2ConChange%3Afunction%28a%29%7Bthis%2EonChangeCallback%3D%0Aa%3Breturn%20this%7D%2ConChangeCallback%3Afunction%28%29%7B%7D%2Cclone%3Afunction%28%29%7Breturn%20new%20THREE%2EQuaternion%28this%2E%5Fx%2Cthis%2E%5Fy%2Cthis%2E%5Fz%2Cthis%2E%5Fw%29%7D%7D%3BTHREE%2EQuaternion%2Eslerp%3Dfunction%28a%2Cb%2Cc%2Cd%29%7Breturn%20c%2Ecopy%28a%29%2Eslerp%28b%2Cd%29%7D%3BTHREE%2EVector2%3Dfunction%28a%2Cb%29%7Bthis%2Ex%3Da%7C%7C0%3Bthis%2Ey%3Db%7C%7C0%7D%3B%0ATHREE%2EVector2%2Eprototype%3D%7Bconstructor%3ATHREE%2EVector2%2Cset%3Afunction%28a%2Cb%29%7Bthis%2Ex%3Da%3Bthis%2Ey%3Db%3Breturn%20this%7D%2CsetX%3Afunction%28a%29%7Bthis%2Ex%3Da%3Breturn%20this%7D%2CsetY%3Afunction%28a%29%7Bthis%2Ey%3Da%3Breturn%20this%7D%2CsetComponent%3Afunction%28a%2Cb%29%7Bswitch%28a%29%7Bcase%200%3Athis%2Ex%3Db%3Bbreak%3Bcase%201%3Athis%2Ey%3Db%3Bbreak%3Bdefault%3Athrow%20Error%28%22index%20is%20out%20of%20range%3A%20%22%2Ba%29%3B%7D%7D%2CgetComponent%3Afunction%28a%29%7Bswitch%28a%29%7Bcase%200%3Areturn%20this%2Ex%3Bcase%201%3Areturn%20this%2Ey%3Bdefault%3Athrow%20Error%28%22index%20is%20out%20of%20range%3A%20%22%2Ba%29%3B%7D%7D%2Ccopy%3Afunction%28a%29%7Bthis%2Ex%3Da%2Ex%3Bthis%2Ey%3Da%2Ey%3Breturn%20this%7D%2Cadd%3Afunction%28a%2C%0Ab%29%7Bif%28void%200%21%3D%3Db%29return%20console%2Ewarn%28%22THREE%2EVector2%3A%20%2Eadd%28%29%20now%20only%20accepts%20one%20argument%2E%20Use%20%2EaddVectors%28%20a%2C%20b%20%29%20instead%2E%22%29%2Cthis%2EaddVectors%28a%2Cb%29%3Bthis%2Ex%2B%3Da%2Ex%3Bthis%2Ey%2B%3Da%2Ey%3Breturn%20this%7D%2CaddVectors%3Afunction%28a%2Cb%29%7Bthis%2Ex%3Da%2Ex%2Bb%2Ex%3Bthis%2Ey%3Da%2Ey%2Bb%2Ey%3Breturn%20this%7D%2CaddScalar%3Afunction%28a%29%7Bthis%2Ex%2B%3Da%3Bthis%2Ey%2B%3Da%3Breturn%20this%7D%2Csub%3Afunction%28a%2Cb%29%7Bif%28void%200%21%3D%3Db%29return%20console%2Ewarn%28%22THREE%2EVector2%3A%20%2Esub%28%29%20now%20only%20accepts%20one%20argument%2E%20Use%20%2EsubVectors%28%20a%2C%20b%20%29%20instead%2E%22%29%2Cthis%2EsubVectors%28a%2Cb%29%3Bthis%2Ex%2D%3Da%2Ex%3Bthis%2Ey%2D%3Da%2Ey%3Breturn%20this%7D%2C%0AsubVectors%3Afunction%28a%2Cb%29%7Bthis%2Ex%3Da%2Ex%2Db%2Ex%3Bthis%2Ey%3Da%2Ey%2Db%2Ey%3Breturn%20this%7D%2Cmultiply%3Afunction%28a%29%7Bthis%2Ex%2A%3Da%2Ex%3Bthis%2Ey%2A%3Da%2Ey%3Breturn%20this%7D%2CmultiplyScalar%3Afunction%28a%29%7Bthis%2Ex%2A%3Da%3Bthis%2Ey%2A%3Da%3Breturn%20this%7D%2Cdivide%3Afunction%28a%29%7Bthis%2Ex%2F%3Da%2Ex%3Bthis%2Ey%2F%3Da%2Ey%3Breturn%20this%7D%2CdivideScalar%3Afunction%28a%29%7B0%21%3D%3Da%3F%28a%3D1%2Fa%2Cthis%2Ex%2A%3Da%2Cthis%2Ey%2A%3Da%29%3Athis%2Ey%3Dthis%2Ex%3D0%3Breturn%20this%7D%2Cmin%3Afunction%28a%29%7Bthis%2Ex%3Ea%2Ex%26%26%28this%2Ex%3Da%2Ex%29%3Bthis%2Ey%3Ea%2Ey%26%26%28this%2Ey%3Da%2Ey%29%3Breturn%20this%7D%2Cmax%3Afunction%28a%29%7Bthis%2Ex%3Ca%2Ex%26%26%28this%2Ex%3Da%2Ex%29%3Bthis%2Ey%3Ca%2Ey%26%26%28this%2Ey%3Da%2Ey%29%3Breturn%20this%7D%2Cclamp%3Afunction%28a%2C%0Ab%29%7Bthis%2Ex%3Ca%2Ex%3Fthis%2Ex%3Da%2Ex%3Athis%2Ex%3Eb%2Ex%26%26%28this%2Ex%3Db%2Ex%29%3Bthis%2Ey%3Ca%2Ey%3Fthis%2Ey%3Da%2Ey%3Athis%2Ey%3Eb%2Ey%26%26%28this%2Ey%3Db%2Ey%29%3Breturn%20this%7D%2CclampScalar%3Afunction%28%29%7Bvar%20a%2Cb%3Breturn%20function%28c%2Cd%29%7Bvoid%200%3D%3D%3Da%26%26%28a%3Dnew%20THREE%2EVector2%2Cb%3Dnew%20THREE%2EVector2%29%3Ba%2Eset%28c%2Cc%29%3Bb%2Eset%28d%2Cd%29%3Breturn%20this%2Eclamp%28a%2Cb%29%7D%7D%28%29%2Cfloor%3Afunction%28%29%7Bthis%2Ex%3DMath%2Efloor%28this%2Ex%29%3Bthis%2Ey%3DMath%2Efloor%28this%2Ey%29%3Breturn%20this%7D%2Cceil%3Afunction%28%29%7Bthis%2Ex%3DMath%2Eceil%28this%2Ex%29%3Bthis%2Ey%3DMath%2Eceil%28this%2Ey%29%3Breturn%20this%7D%2Cround%3Afunction%28%29%7Bthis%2Ex%3DMath%2Eround%28this%2Ex%29%3Bthis%2Ey%3DMath%2Eround%28this%2Ey%29%3Breturn%20this%7D%2C%0AroundToZero%3Afunction%28%29%7Bthis%2Ex%3D0%3Ethis%2Ex%3FMath%2Eceil%28this%2Ex%29%3AMath%2Efloor%28this%2Ex%29%3Bthis%2Ey%3D0%3Ethis%2Ey%3FMath%2Eceil%28this%2Ey%29%3AMath%2Efloor%28this%2Ey%29%3Breturn%20this%7D%2Cnegate%3Afunction%28%29%7Bthis%2Ex%3D%2Dthis%2Ex%3Bthis%2Ey%3D%2Dthis%2Ey%3Breturn%20this%7D%2Cdot%3Afunction%28a%29%7Breturn%20this%2Ex%2Aa%2Ex%2Bthis%2Ey%2Aa%2Ey%7D%2ClengthSq%3Afunction%28%29%7Breturn%20this%2Ex%2Athis%2Ex%2Bthis%2Ey%2Athis%2Ey%7D%2Clength%3Afunction%28%29%7Breturn%20Math%2Esqrt%28this%2Ex%2Athis%2Ex%2Bthis%2Ey%2Athis%2Ey%29%7D%2Cnormalize%3Afunction%28%29%7Breturn%20this%2EdivideScalar%28this%2Elength%28%29%29%7D%2CdistanceTo%3Afunction%28a%29%7Breturn%20Math%2Esqrt%28this%2EdistanceToSquared%28a%29%29%7D%2CdistanceToSquared%3Afunction%28a%29%7Bvar%20b%3D%0Athis%2Ex%2Da%2Ex%3Ba%3Dthis%2Ey%2Da%2Ey%3Breturn%20b%2Ab%2Ba%2Aa%7D%2CsetLength%3Afunction%28a%29%7Bvar%20b%3Dthis%2Elength%28%29%3B0%21%3D%3Db%26%26a%21%3D%3Db%26%26this%2EmultiplyScalar%28a%2Fb%29%3Breturn%20this%7D%2Clerp%3Afunction%28a%2Cb%29%7Bthis%2Ex%2B%3D%28a%2Ex%2Dthis%2Ex%29%2Ab%3Bthis%2Ey%2B%3D%28a%2Ey%2Dthis%2Ey%29%2Ab%3Breturn%20this%7D%2Cequals%3Afunction%28a%29%7Breturn%20a%2Ex%3D%3D%3Dthis%2Ex%26%26a%2Ey%3D%3D%3Dthis%2Ey%7D%2CfromArray%3Afunction%28a%2Cb%29%7Bvoid%200%3D%3D%3Db%26%26%28b%3D0%29%3Bthis%2Ex%3Da%5Bb%5D%3Bthis%2Ey%3Da%5Bb%2B1%5D%3Breturn%20this%7D%2CtoArray%3Afunction%28a%2Cb%29%7Bvoid%200%3D%3D%3Da%26%26%28a%3D%5B%5D%29%3Bvoid%200%3D%3D%3Db%26%26%28b%3D0%29%3Ba%5Bb%5D%3Dthis%2Ex%3Ba%5Bb%2B1%5D%3Dthis%2Ey%3Breturn%20a%7D%2CfromAttribute%3Afunction%28a%2Cb%2Cc%29%7Bvoid%200%3D%3D%3Dc%26%26%28c%3D0%29%3Bb%3Db%2Aa%2EitemSize%2B%0Ac%3Bthis%2Ex%3Da%2Earray%5Bb%5D%3Bthis%2Ey%3Da%2Earray%5Bb%2B1%5D%3Breturn%20this%7D%2Cclone%3Afunction%28%29%7Breturn%20new%20THREE%2EVector2%28this%2Ex%2Cthis%2Ey%29%7D%7D%3BTHREE%2EVector3%3Dfunction%28a%2Cb%2Cc%29%7Bthis%2Ex%3Da%7C%7C0%3Bthis%2Ey%3Db%7C%7C0%3Bthis%2Ez%3Dc%7C%7C0%7D%3B%0ATHREE%2EVector3%2Eprototype%3D%7Bconstructor%3ATHREE%2EVector3%2Cset%3Afunction%28a%2Cb%2Cc%29%7Bthis%2Ex%3Da%3Bthis%2Ey%3Db%3Bthis%2Ez%3Dc%3Breturn%20this%7D%2CsetX%3Afunction%28a%29%7Bthis%2Ex%3Da%3Breturn%20this%7D%2CsetY%3Afunction%28a%29%7Bthis%2Ey%3Da%3Breturn%20this%7D%2CsetZ%3Afunction%28a%29%7Bthis%2Ez%3Da%3Breturn%20this%7D%2CsetComponent%3Afunction%28a%2Cb%29%7Bswitch%28a%29%7Bcase%200%3Athis%2Ex%3Db%3Bbreak%3Bcase%201%3Athis%2Ey%3Db%3Bbreak%3Bcase%202%3Athis%2Ez%3Db%3Bbreak%3Bdefault%3Athrow%20Error%28%22index%20is%20out%20of%20range%3A%20%22%2Ba%29%3B%7D%7D%2CgetComponent%3Afunction%28a%29%7Bswitch%28a%29%7Bcase%200%3Areturn%20this%2Ex%3Bcase%201%3Areturn%20this%2Ey%3Bcase%202%3Areturn%20this%2Ez%3Bdefault%3Athrow%20Error%28%22index%20is%20out%20of%20range%3A%20%22%2B%0Aa%29%3B%7D%7D%2Ccopy%3Afunction%28a%29%7Bthis%2Ex%3Da%2Ex%3Bthis%2Ey%3Da%2Ey%3Bthis%2Ez%3Da%2Ez%3Breturn%20this%7D%2Cadd%3Afunction%28a%2Cb%29%7Bif%28void%200%21%3D%3Db%29return%20console%2Ewarn%28%22THREE%2EVector3%3A%20%2Eadd%28%29%20now%20only%20accepts%20one%20argument%2E%20Use%20%2EaddVectors%28%20a%2C%20b%20%29%20instead%2E%22%29%2Cthis%2EaddVectors%28a%2Cb%29%3Bthis%2Ex%2B%3Da%2Ex%3Bthis%2Ey%2B%3Da%2Ey%3Bthis%2Ez%2B%3Da%2Ez%3Breturn%20this%7D%2CaddScalar%3Afunction%28a%29%7Bthis%2Ex%2B%3Da%3Bthis%2Ey%2B%3Da%3Bthis%2Ez%2B%3Da%3Breturn%20this%7D%2CaddVectors%3Afunction%28a%2Cb%29%7Bthis%2Ex%3Da%2Ex%2Bb%2Ex%3Bthis%2Ey%3Da%2Ey%2Bb%2Ey%3Bthis%2Ez%3Da%2Ez%2Bb%2Ez%3Breturn%20this%7D%2Csub%3Afunction%28a%2Cb%29%7Bif%28void%200%21%3D%3Db%29return%20console%2Ewarn%28%22THREE%2EVector3%3A%20%2Esub%28%29%20now%20only%20accepts%20one%20argument%2E%20Use%20%2EsubVectors%28%20a%2C%20b%20%29%20instead%2E%22%29%2C%0Athis%2EsubVectors%28a%2Cb%29%3Bthis%2Ex%2D%3Da%2Ex%3Bthis%2Ey%2D%3Da%2Ey%3Bthis%2Ez%2D%3Da%2Ez%3Breturn%20this%7D%2CsubVectors%3Afunction%28a%2Cb%29%7Bthis%2Ex%3Da%2Ex%2Db%2Ex%3Bthis%2Ey%3Da%2Ey%2Db%2Ey%3Bthis%2Ez%3Da%2Ez%2Db%2Ez%3Breturn%20this%7D%2Cmultiply%3Afunction%28a%2Cb%29%7Bif%28void%200%21%3D%3Db%29return%20console%2Ewarn%28%22THREE%2EVector3%3A%20%2Emultiply%28%29%20now%20only%20accepts%20one%20argument%2E%20Use%20%2EmultiplyVectors%28%20a%2C%20b%20%29%20instead%2E%22%29%2Cthis%2EmultiplyVectors%28a%2Cb%29%3Bthis%2Ex%2A%3Da%2Ex%3Bthis%2Ey%2A%3Da%2Ey%3Bthis%2Ez%2A%3Da%2Ez%3Breturn%20this%7D%2CmultiplyScalar%3Afunction%28a%29%7Bthis%2Ex%2A%3Da%3Bthis%2Ey%2A%3Da%3Bthis%2Ez%2A%3Da%3Breturn%20this%7D%2CmultiplyVectors%3Afunction%28a%2Cb%29%7Bthis%2Ex%3Da%2Ex%2Ab%2Ex%3Bthis%2Ey%3D%0Aa%2Ey%2Ab%2Ey%3Bthis%2Ez%3Da%2Ez%2Ab%2Ez%3Breturn%20this%7D%2CapplyEuler%3Afunction%28%29%7Bvar%20a%3Breturn%20function%28b%29%7B%211%3D%3D%3Db%20instanceof%20THREE%2EEuler%26%26console%2Eerror%28%22THREE%2EVector3%3A%20%2EapplyEuler%28%29%20now%20expects%20a%20Euler%20rotation%20rather%20than%20a%20Vector3%20and%20order%2E%22%29%3Bvoid%200%3D%3D%3Da%26%26%28a%3Dnew%20THREE%2EQuaternion%29%3Bthis%2EapplyQuaternion%28a%2EsetFromEuler%28b%29%29%3Breturn%20this%7D%7D%28%29%2CapplyAxisAngle%3Afunction%28%29%7Bvar%20a%3Breturn%20function%28b%2Cc%29%7Bvoid%200%3D%3D%3Da%26%26%28a%3Dnew%20THREE%2EQuaternion%29%3Bthis%2EapplyQuaternion%28a%2EsetFromAxisAngle%28b%2Cc%29%29%3Breturn%20this%7D%7D%28%29%2CapplyMatrix3%3Afunction%28a%29%7Bvar%20b%3Dthis%2Ex%2C%0Ac%3Dthis%2Ey%2Cd%3Dthis%2Ez%3Ba%3Da%2Eelements%3Bthis%2Ex%3Da%5B0%5D%2Ab%2Ba%5B3%5D%2Ac%2Ba%5B6%5D%2Ad%3Bthis%2Ey%3Da%5B1%5D%2Ab%2Ba%5B4%5D%2Ac%2Ba%5B7%5D%2Ad%3Bthis%2Ez%3Da%5B2%5D%2Ab%2Ba%5B5%5D%2Ac%2Ba%5B8%5D%2Ad%3Breturn%20this%7D%2CapplyMatrix4%3Afunction%28a%29%7Bvar%20b%3Dthis%2Ex%2Cc%3Dthis%2Ey%2Cd%3Dthis%2Ez%3Ba%3Da%2Eelements%3Bthis%2Ex%3Da%5B0%5D%2Ab%2Ba%5B4%5D%2Ac%2Ba%5B8%5D%2Ad%2Ba%5B12%5D%3Bthis%2Ey%3Da%5B1%5D%2Ab%2Ba%5B5%5D%2Ac%2Ba%5B9%5D%2Ad%2Ba%5B13%5D%3Bthis%2Ez%3Da%5B2%5D%2Ab%2Ba%5B6%5D%2Ac%2Ba%5B10%5D%2Ad%2Ba%5B14%5D%3Breturn%20this%7D%2CapplyProjection%3Afunction%28a%29%7Bvar%20b%3Dthis%2Ex%2Cc%3Dthis%2Ey%2Cd%3Dthis%2Ez%3Ba%3Da%2Eelements%3Bvar%20e%3D1%2F%28a%5B3%5D%2Ab%2Ba%5B7%5D%2Ac%2Ba%5B11%5D%2Ad%2Ba%5B15%5D%29%3Bthis%2Ex%3D%28a%5B0%5D%2Ab%2Ba%5B4%5D%2Ac%2Ba%5B8%5D%2Ad%2Ba%5B12%5D%29%2Ae%3Bthis%2Ey%3D%28a%5B1%5D%2Ab%2Ba%5B5%5D%2Ac%2Ba%5B9%5D%2Ad%2Ba%5B13%5D%29%2Ae%3Bthis%2Ez%3D%0A%28a%5B2%5D%2Ab%2Ba%5B6%5D%2Ac%2Ba%5B10%5D%2Ad%2Ba%5B14%5D%29%2Ae%3Breturn%20this%7D%2CapplyQuaternion%3Afunction%28a%29%7Bvar%20b%3Dthis%2Ex%2Cc%3Dthis%2Ey%2Cd%3Dthis%2Ez%2Ce%3Da%2Ex%2Cf%3Da%2Ey%2Cg%3Da%2Ez%3Ba%3Da%2Ew%3Bvar%20h%3Da%2Ab%2Bf%2Ad%2Dg%2Ac%2Ck%3Da%2Ac%2Bg%2Ab%2De%2Ad%2Cn%3Da%2Ad%2Be%2Ac%2Df%2Ab%2Cb%3D%2De%2Ab%2Df%2Ac%2Dg%2Ad%3Bthis%2Ex%3Dh%2Aa%2Bb%2A%2De%2Bk%2A%2Dg%2Dn%2A%2Df%3Bthis%2Ey%3Dk%2Aa%2Bb%2A%2Df%2Bn%2A%2De%2Dh%2A%2Dg%3Bthis%2Ez%3Dn%2Aa%2Bb%2A%2Dg%2Bh%2A%2Df%2Dk%2A%2De%3Breturn%20this%7D%2Cproject%3Afunction%28%29%7Bvar%20a%3Breturn%20function%28b%29%7Bvoid%200%3D%3D%3Da%26%26%28a%3Dnew%20THREE%2EMatrix4%29%3Ba%2EmultiplyMatrices%28b%2EprojectionMatrix%2Ca%2EgetInverse%28b%2EmatrixWorld%29%29%3Breturn%20this%2EapplyProjection%28a%29%7D%7D%28%29%2Cunproject%3Afunction%28%29%7Bvar%20a%3Breturn%20function%28b%29%7Bvoid%200%3D%3D%3D%0Aa%26%26%28a%3Dnew%20THREE%2EMatrix4%29%3Ba%2EmultiplyMatrices%28b%2EmatrixWorld%2Ca%2EgetInverse%28b%2EprojectionMatrix%29%29%3Breturn%20this%2EapplyProjection%28a%29%7D%7D%28%29%2CtransformDirection%3Afunction%28a%29%7Bvar%20b%3Dthis%2Ex%2Cc%3Dthis%2Ey%2Cd%3Dthis%2Ez%3Ba%3Da%2Eelements%3Bthis%2Ex%3Da%5B0%5D%2Ab%2Ba%5B4%5D%2Ac%2Ba%5B8%5D%2Ad%3Bthis%2Ey%3Da%5B1%5D%2Ab%2Ba%5B5%5D%2Ac%2Ba%5B9%5D%2Ad%3Bthis%2Ez%3Da%5B2%5D%2Ab%2Ba%5B6%5D%2Ac%2Ba%5B10%5D%2Ad%3Bthis%2Enormalize%28%29%3Breturn%20this%7D%2Cdivide%3Afunction%28a%29%7Bthis%2Ex%2F%3Da%2Ex%3Bthis%2Ey%2F%3Da%2Ey%3Bthis%2Ez%2F%3Da%2Ez%3Breturn%20this%7D%2CdivideScalar%3Afunction%28a%29%7B0%21%3D%3Da%3F%28a%3D1%2Fa%2Cthis%2Ex%2A%3Da%2Cthis%2Ey%2A%3Da%2Cthis%2Ez%2A%3Da%29%3Athis%2Ez%3Dthis%2Ey%3Dthis%2Ex%3D0%3Breturn%20this%7D%2Cmin%3Afunction%28a%29%7Bthis%2Ex%3E%0Aa%2Ex%26%26%28this%2Ex%3Da%2Ex%29%3Bthis%2Ey%3Ea%2Ey%26%26%28this%2Ey%3Da%2Ey%29%3Bthis%2Ez%3Ea%2Ez%26%26%28this%2Ez%3Da%2Ez%29%3Breturn%20this%7D%2Cmax%3Afunction%28a%29%7Bthis%2Ex%3Ca%2Ex%26%26%28this%2Ex%3Da%2Ex%29%3Bthis%2Ey%3Ca%2Ey%26%26%28this%2Ey%3Da%2Ey%29%3Bthis%2Ez%3Ca%2Ez%26%26%28this%2Ez%3Da%2Ez%29%3Breturn%20this%7D%2Cclamp%3Afunction%28a%2Cb%29%7Bthis%2Ex%3Ca%2Ex%3Fthis%2Ex%3Da%2Ex%3Athis%2Ex%3Eb%2Ex%26%26%28this%2Ex%3Db%2Ex%29%3Bthis%2Ey%3Ca%2Ey%3Fthis%2Ey%3Da%2Ey%3Athis%2Ey%3Eb%2Ey%26%26%28this%2Ey%3Db%2Ey%29%3Bthis%2Ez%3Ca%2Ez%3Fthis%2Ez%3Da%2Ez%3Athis%2Ez%3Eb%2Ez%26%26%28this%2Ez%3Db%2Ez%29%3Breturn%20this%7D%2CclampScalar%3Afunction%28%29%7Bvar%20a%2Cb%3Breturn%20function%28c%2Cd%29%7Bvoid%200%3D%3D%3Da%26%26%28a%3Dnew%20THREE%2EVector3%2Cb%3Dnew%20THREE%2EVector3%29%3Ba%2Eset%28c%2Cc%2Cc%29%3Bb%2Eset%28d%2Cd%2Cd%29%3Breturn%20this%2Eclamp%28a%2C%0Ab%29%7D%7D%28%29%2Cfloor%3Afunction%28%29%7Bthis%2Ex%3DMath%2Efloor%28this%2Ex%29%3Bthis%2Ey%3DMath%2Efloor%28this%2Ey%29%3Bthis%2Ez%3DMath%2Efloor%28this%2Ez%29%3Breturn%20this%7D%2Cceil%3Afunction%28%29%7Bthis%2Ex%3DMath%2Eceil%28this%2Ex%29%3Bthis%2Ey%3DMath%2Eceil%28this%2Ey%29%3Bthis%2Ez%3DMath%2Eceil%28this%2Ez%29%3Breturn%20this%7D%2Cround%3Afunction%28%29%7Bthis%2Ex%3DMath%2Eround%28this%2Ex%29%3Bthis%2Ey%3DMath%2Eround%28this%2Ey%29%3Bthis%2Ez%3DMath%2Eround%28this%2Ez%29%3Breturn%20this%7D%2CroundToZero%3Afunction%28%29%7Bthis%2Ex%3D0%3Ethis%2Ex%3FMath%2Eceil%28this%2Ex%29%3AMath%2Efloor%28this%2Ex%29%3Bthis%2Ey%3D0%3Ethis%2Ey%3FMath%2Eceil%28this%2Ey%29%3AMath%2Efloor%28this%2Ey%29%3Bthis%2Ez%3D0%3Ethis%2Ez%3FMath%2Eceil%28this%2Ez%29%3AMath%2Efloor%28this%2Ez%29%3B%0Areturn%20this%7D%2Cnegate%3Afunction%28%29%7Bthis%2Ex%3D%2Dthis%2Ex%3Bthis%2Ey%3D%2Dthis%2Ey%3Bthis%2Ez%3D%2Dthis%2Ez%3Breturn%20this%7D%2Cdot%3Afunction%28a%29%7Breturn%20this%2Ex%2Aa%2Ex%2Bthis%2Ey%2Aa%2Ey%2Bthis%2Ez%2Aa%2Ez%7D%2ClengthSq%3Afunction%28%29%7Breturn%20this%2Ex%2Athis%2Ex%2Bthis%2Ey%2Athis%2Ey%2Bthis%2Ez%2Athis%2Ez%7D%2Clength%3Afunction%28%29%7Breturn%20Math%2Esqrt%28this%2Ex%2Athis%2Ex%2Bthis%2Ey%2Athis%2Ey%2Bthis%2Ez%2Athis%2Ez%29%7D%2ClengthManhattan%3Afunction%28%29%7Breturn%20Math%2Eabs%28this%2Ex%29%2BMath%2Eabs%28this%2Ey%29%2BMath%2Eabs%28this%2Ez%29%7D%2Cnormalize%3Afunction%28%29%7Breturn%20this%2EdivideScalar%28this%2Elength%28%29%29%7D%2CsetLength%3Afunction%28a%29%7Bvar%20b%3Dthis%2Elength%28%29%3B0%21%3D%3Db%26%26a%21%3D%3Db%26%26this%2EmultiplyScalar%28a%2F%0Ab%29%3Breturn%20this%7D%2Clerp%3Afunction%28a%2Cb%29%7Bthis%2Ex%2B%3D%28a%2Ex%2Dthis%2Ex%29%2Ab%3Bthis%2Ey%2B%3D%28a%2Ey%2Dthis%2Ey%29%2Ab%3Bthis%2Ez%2B%3D%28a%2Ez%2Dthis%2Ez%29%2Ab%3Breturn%20this%7D%2Ccross%3Afunction%28a%2Cb%29%7Bif%28void%200%21%3D%3Db%29return%20console%2Ewarn%28%22THREE%2EVector3%3A%20%2Ecross%28%29%20now%20only%20accepts%20one%20argument%2E%20Use%20%2EcrossVectors%28%20a%2C%20b%20%29%20instead%2E%22%29%2Cthis%2EcrossVectors%28a%2Cb%29%3Bvar%20c%3Dthis%2Ex%2Cd%3Dthis%2Ey%2Ce%3Dthis%2Ez%3Bthis%2Ex%3Dd%2Aa%2Ez%2De%2Aa%2Ey%3Bthis%2Ey%3De%2Aa%2Ex%2Dc%2Aa%2Ez%3Bthis%2Ez%3Dc%2Aa%2Ey%2Dd%2Aa%2Ex%3Breturn%20this%7D%2CcrossVectors%3Afunction%28a%2Cb%29%7Bvar%20c%3Da%2Ex%2Cd%3Da%2Ey%2Ce%3Da%2Ez%2Cf%3Db%2Ex%2Cg%3Db%2Ey%2Ch%3Db%2Ez%3Bthis%2Ex%3Dd%2Ah%2De%2Ag%3Bthis%2Ey%3De%2Af%2Dc%2Ah%3Bthis%2Ez%3Dc%2Ag%2Dd%2Af%3Breturn%20this%7D%2C%0AprojectOnVector%3Afunction%28%29%7Bvar%20a%2Cb%3Breturn%20function%28c%29%7Bvoid%200%3D%3D%3Da%26%26%28a%3Dnew%20THREE%2EVector3%29%3Ba%2Ecopy%28c%29%2Enormalize%28%29%3Bb%3Dthis%2Edot%28a%29%3Breturn%20this%2Ecopy%28a%29%2EmultiplyScalar%28b%29%7D%7D%28%29%2CprojectOnPlane%3Afunction%28%29%7Bvar%20a%3Breturn%20function%28b%29%7Bvoid%200%3D%3D%3Da%26%26%28a%3Dnew%20THREE%2EVector3%29%3Ba%2Ecopy%28this%29%2EprojectOnVector%28b%29%3Breturn%20this%2Esub%28a%29%7D%7D%28%29%2Creflect%3Afunction%28%29%7Bvar%20a%3Breturn%20function%28b%29%7Bvoid%200%3D%3D%3Da%26%26%28a%3Dnew%20THREE%2EVector3%29%3Breturn%20this%2Esub%28a%2Ecopy%28b%29%2EmultiplyScalar%282%2Athis%2Edot%28b%29%29%29%7D%7D%28%29%2CangleTo%3Afunction%28a%29%7Ba%3Dthis%2Edot%28a%29%2F%28this%2Elength%28%29%2Aa%2Elength%28%29%29%3B%0Areturn%20Math%2Eacos%28THREE%2EMath%2Eclamp%28a%2C%2D1%2C1%29%29%7D%2CdistanceTo%3Afunction%28a%29%7Breturn%20Math%2Esqrt%28this%2EdistanceToSquared%28a%29%29%7D%2CdistanceToSquared%3Afunction%28a%29%7Bvar%20b%3Dthis%2Ex%2Da%2Ex%2Cc%3Dthis%2Ey%2Da%2Ey%3Ba%3Dthis%2Ez%2Da%2Ez%3Breturn%20b%2Ab%2Bc%2Ac%2Ba%2Aa%7D%2CsetEulerFromRotationMatrix%3Afunction%28a%2Cb%29%7Bconsole%2Eerror%28%22THREE%2EVector3%3A%20%2EsetEulerFromRotationMatrix%28%29%20has%20been%20removed%2E%20Use%20Euler%2EsetFromRotationMatrix%28%29%20instead%2E%22%29%7D%2CsetEulerFromQuaternion%3Afunction%28a%2Cb%29%7Bconsole%2Eerror%28%22THREE%2EVector3%3A%20%2EsetEulerFromQuaternion%28%29%20has%20been%20removed%2E%20Use%20Euler%2EsetFromQuaternion%28%29%20instead%2E%22%29%7D%2C%0AgetPositionFromMatrix%3Afunction%28a%29%7Bconsole%2Ewarn%28%22THREE%2EVector3%3A%20%2EgetPositionFromMatrix%28%29%20has%20been%20renamed%20to%20%2EsetFromMatrixPosition%28%29%2E%22%29%3Breturn%20this%2EsetFromMatrixPosition%28a%29%7D%2CgetScaleFromMatrix%3Afunction%28a%29%7Bconsole%2Ewarn%28%22THREE%2EVector3%3A%20%2EgetScaleFromMatrix%28%29%20has%20been%20renamed%20to%20%2EsetFromMatrixScale%28%29%2E%22%29%3Breturn%20this%2EsetFromMatrixScale%28a%29%7D%2CgetColumnFromMatrix%3Afunction%28a%2Cb%29%7Bconsole%2Ewarn%28%22THREE%2EVector3%3A%20%2EgetColumnFromMatrix%28%29%20has%20been%20renamed%20to%20%2EsetFromMatrixColumn%28%29%2E%22%29%3Breturn%20this%2EsetFromMatrixColumn%28a%2C%0Ab%29%7D%2CsetFromMatrixPosition%3Afunction%28a%29%7Bthis%2Ex%3Da%2Eelements%5B12%5D%3Bthis%2Ey%3Da%2Eelements%5B13%5D%3Bthis%2Ez%3Da%2Eelements%5B14%5D%3Breturn%20this%7D%2CsetFromMatrixScale%3Afunction%28a%29%7Bvar%20b%3Dthis%2Eset%28a%2Eelements%5B0%5D%2Ca%2Eelements%5B1%5D%2Ca%2Eelements%5B2%5D%29%2Elength%28%29%2Cc%3Dthis%2Eset%28a%2Eelements%5B4%5D%2Ca%2Eelements%5B5%5D%2Ca%2Eelements%5B6%5D%29%2Elength%28%29%3Ba%3Dthis%2Eset%28a%2Eelements%5B8%5D%2Ca%2Eelements%5B9%5D%2Ca%2Eelements%5B10%5D%29%2Elength%28%29%3Bthis%2Ex%3Db%3Bthis%2Ey%3Dc%3Bthis%2Ez%3Da%3Breturn%20this%7D%2CsetFromMatrixColumn%3Afunction%28a%2Cb%29%7Bvar%20c%3D4%2Aa%2Cd%3Db%2Eelements%3Bthis%2Ex%3Dd%5Bc%5D%3Bthis%2Ey%3Dd%5Bc%2B1%5D%3Bthis%2Ez%3Dd%5Bc%2B2%5D%3Breturn%20this%7D%2Cequals%3Afunction%28a%29%7Breturn%20a%2Ex%3D%3D%3D%0Athis%2Ex%26%26a%2Ey%3D%3D%3Dthis%2Ey%26%26a%2Ez%3D%3D%3Dthis%2Ez%7D%2CfromArray%3Afunction%28a%2Cb%29%7Bvoid%200%3D%3D%3Db%26%26%28b%3D0%29%3Bthis%2Ex%3Da%5Bb%5D%3Bthis%2Ey%3Da%5Bb%2B1%5D%3Bthis%2Ez%3Da%5Bb%2B2%5D%3Breturn%20this%7D%2CtoArray%3Afunction%28a%2Cb%29%7Bvoid%200%3D%3D%3Da%26%26%28a%3D%5B%5D%29%3Bvoid%200%3D%3D%3Db%26%26%28b%3D0%29%3Ba%5Bb%5D%3Dthis%2Ex%3Ba%5Bb%2B1%5D%3Dthis%2Ey%3Ba%5Bb%2B2%5D%3Dthis%2Ez%3Breturn%20a%7D%2CfromAttribute%3Afunction%28a%2Cb%2Cc%29%7Bvoid%200%3D%3D%3Dc%26%26%28c%3D0%29%3Bb%3Db%2Aa%2EitemSize%2Bc%3Bthis%2Ex%3Da%2Earray%5Bb%5D%3Bthis%2Ey%3Da%2Earray%5Bb%2B1%5D%3Bthis%2Ez%3Da%2Earray%5Bb%2B2%5D%3Breturn%20this%7D%2Cclone%3Afunction%28%29%7Breturn%20new%20THREE%2EVector3%28this%2Ex%2Cthis%2Ey%2Cthis%2Ez%29%7D%7D%3B%0ATHREE%2EVector4%3Dfunction%28a%2Cb%2Cc%2Cd%29%7Bthis%2Ex%3Da%7C%7C0%3Bthis%2Ey%3Db%7C%7C0%3Bthis%2Ez%3Dc%7C%7C0%3Bthis%2Ew%3Dvoid%200%21%3D%3Dd%3Fd%3A1%7D%3B%0ATHREE%2EVector4%2Eprototype%3D%7Bconstructor%3ATHREE%2EVector4%2Cset%3Afunction%28a%2Cb%2Cc%2Cd%29%7Bthis%2Ex%3Da%3Bthis%2Ey%3Db%3Bthis%2Ez%3Dc%3Bthis%2Ew%3Dd%3Breturn%20this%7D%2CsetX%3Afunction%28a%29%7Bthis%2Ex%3Da%3Breturn%20this%7D%2CsetY%3Afunction%28a%29%7Bthis%2Ey%3Da%3Breturn%20this%7D%2CsetZ%3Afunction%28a%29%7Bthis%2Ez%3Da%3Breturn%20this%7D%2CsetW%3Afunction%28a%29%7Bthis%2Ew%3Da%3Breturn%20this%7D%2CsetComponent%3Afunction%28a%2Cb%29%7Bswitch%28a%29%7Bcase%200%3Athis%2Ex%3Db%3Bbreak%3Bcase%201%3Athis%2Ey%3Db%3Bbreak%3Bcase%202%3Athis%2Ez%3Db%3Bbreak%3Bcase%203%3Athis%2Ew%3Db%3Bbreak%3Bdefault%3Athrow%20Error%28%22index%20is%20out%20of%20range%3A%20%22%2Ba%29%3B%7D%7D%2CgetComponent%3Afunction%28a%29%7Bswitch%28a%29%7Bcase%200%3Areturn%20this%2Ex%3B%0Acase%201%3Areturn%20this%2Ey%3Bcase%202%3Areturn%20this%2Ez%3Bcase%203%3Areturn%20this%2Ew%3Bdefault%3Athrow%20Error%28%22index%20is%20out%20of%20range%3A%20%22%2Ba%29%3B%7D%7D%2Ccopy%3Afunction%28a%29%7Bthis%2Ex%3Da%2Ex%3Bthis%2Ey%3Da%2Ey%3Bthis%2Ez%3Da%2Ez%3Bthis%2Ew%3Dvoid%200%21%3D%3Da%2Ew%3Fa%2Ew%3A1%3Breturn%20this%7D%2Cadd%3Afunction%28a%2Cb%29%7Bif%28void%200%21%3D%3Db%29return%20console%2Ewarn%28%22THREE%2EVector4%3A%20%2Eadd%28%29%20now%20only%20accepts%20one%20argument%2E%20Use%20%2EaddVectors%28%20a%2C%20b%20%29%20instead%2E%22%29%2Cthis%2EaddVectors%28a%2Cb%29%3Bthis%2Ex%2B%3Da%2Ex%3Bthis%2Ey%2B%3Da%2Ey%3Bthis%2Ez%2B%3Da%2Ez%3Bthis%2Ew%2B%3Da%2Ew%3Breturn%20this%7D%2CaddScalar%3Afunction%28a%29%7Bthis%2Ex%2B%3Da%3Bthis%2Ey%2B%3Da%3Bthis%2Ez%2B%3Da%3Bthis%2Ew%2B%3Da%3Breturn%20this%7D%2C%0AaddVectors%3Afunction%28a%2Cb%29%7Bthis%2Ex%3Da%2Ex%2Bb%2Ex%3Bthis%2Ey%3Da%2Ey%2Bb%2Ey%3Bthis%2Ez%3Da%2Ez%2Bb%2Ez%3Bthis%2Ew%3Da%2Ew%2Bb%2Ew%3Breturn%20this%7D%2Csub%3Afunction%28a%2Cb%29%7Bif%28void%200%21%3D%3Db%29return%20console%2Ewarn%28%22THREE%2EVector4%3A%20%2Esub%28%29%20now%20only%20accepts%20one%20argument%2E%20Use%20%2EsubVectors%28%20a%2C%20b%20%29%20instead%2E%22%29%2Cthis%2EsubVectors%28a%2Cb%29%3Bthis%2Ex%2D%3Da%2Ex%3Bthis%2Ey%2D%3Da%2Ey%3Bthis%2Ez%2D%3Da%2Ez%3Bthis%2Ew%2D%3Da%2Ew%3Breturn%20this%7D%2CsubVectors%3Afunction%28a%2Cb%29%7Bthis%2Ex%3Da%2Ex%2Db%2Ex%3Bthis%2Ey%3Da%2Ey%2Db%2Ey%3Bthis%2Ez%3Da%2Ez%2Db%2Ez%3Bthis%2Ew%3Da%2Ew%2Db%2Ew%3Breturn%20this%7D%2CmultiplyScalar%3Afunction%28a%29%7Bthis%2Ex%2A%3Da%3Bthis%2Ey%2A%3Da%3Bthis%2Ez%2A%3Da%3Bthis%2Ew%2A%3Da%3Breturn%20this%7D%2CapplyMatrix4%3Afunction%28a%29%7Bvar%20b%3D%0Athis%2Ex%2Cc%3Dthis%2Ey%2Cd%3Dthis%2Ez%2Ce%3Dthis%2Ew%3Ba%3Da%2Eelements%3Bthis%2Ex%3Da%5B0%5D%2Ab%2Ba%5B4%5D%2Ac%2Ba%5B8%5D%2Ad%2Ba%5B12%5D%2Ae%3Bthis%2Ey%3Da%5B1%5D%2Ab%2Ba%5B5%5D%2Ac%2Ba%5B9%5D%2Ad%2Ba%5B13%5D%2Ae%3Bthis%2Ez%3Da%5B2%5D%2Ab%2Ba%5B6%5D%2Ac%2Ba%5B10%5D%2Ad%2Ba%5B14%5D%2Ae%3Bthis%2Ew%3Da%5B3%5D%2Ab%2Ba%5B7%5D%2Ac%2Ba%5B11%5D%2Ad%2Ba%5B15%5D%2Ae%3Breturn%20this%7D%2CdivideScalar%3Afunction%28a%29%7B0%21%3D%3Da%3F%28a%3D1%2Fa%2Cthis%2Ex%2A%3Da%2Cthis%2Ey%2A%3Da%2Cthis%2Ez%2A%3Da%2Cthis%2Ew%2A%3Da%29%3A%28this%2Ez%3Dthis%2Ey%3Dthis%2Ex%3D0%2Cthis%2Ew%3D1%29%3Breturn%20this%7D%2CsetAxisAngleFromQuaternion%3Afunction%28a%29%7Bthis%2Ew%3D2%2AMath%2Eacos%28a%2Ew%29%3Bvar%20b%3DMath%2Esqrt%281%2Da%2Ew%2Aa%2Ew%29%3B1E%2D4%3Eb%3F%28this%2Ex%3D1%2Cthis%2Ez%3Dthis%2Ey%3D0%29%3A%28this%2Ex%3Da%2Ex%2Fb%2Cthis%2Ey%3Da%2Ey%2Fb%2Cthis%2Ez%3Da%2Ez%2Fb%29%3Breturn%20this%7D%2C%0AsetAxisAngleFromRotationMatrix%3Afunction%28a%29%7Bvar%20b%2Cc%2Cd%3Ba%3Da%2Eelements%3Bvar%20e%3Da%5B0%5D%3Bd%3Da%5B4%5D%3Bvar%20f%3Da%5B8%5D%2Cg%3Da%5B1%5D%2Ch%3Da%5B5%5D%2Ck%3Da%5B9%5D%3Bc%3Da%5B2%5D%3Bb%3Da%5B6%5D%3Bvar%20n%3Da%5B10%5D%3Bif%28%2E01%3EMath%2Eabs%28d%2Dg%29%26%26%2E01%3EMath%2Eabs%28f%2Dc%29%26%26%2E01%3EMath%2Eabs%28k%2Db%29%29%7Bif%28%2E1%3EMath%2Eabs%28d%2Bg%29%26%26%2E1%3EMath%2Eabs%28f%2Bc%29%26%26%2E1%3EMath%2Eabs%28k%2Bb%29%26%26%2E1%3EMath%2Eabs%28e%2Bh%2Bn%2D3%29%29return%20this%2Eset%281%2C0%2C0%2C0%29%2Cthis%3Ba%3DMath%2EPI%3Be%3D%28e%2B1%29%2F2%3Bh%3D%28h%2B1%29%2F2%3Bn%3D%28n%2B1%29%2F2%3Bd%3D%28d%2Bg%29%2F4%3Bf%3D%28f%2Bc%29%2F4%3Bk%3D%28k%2Bb%29%2F4%3Be%3Eh%26%26e%3En%3F%2E01%3Ee%3F%28b%3D0%2Cd%3Dc%3D%2E707106781%29%3A%28b%3DMath%2Esqrt%28e%29%2Cc%3Dd%2Fb%2Cd%3Df%2Fb%29%3Ah%3En%3F%2E01%3Eh%3F%28b%3D%2E707106781%2Cc%3D0%2Cd%3D%2E707106781%29%3A%28c%3DMath%2Esqrt%28h%29%2C%0Ab%3Dd%2Fc%2Cd%3Dk%2Fc%29%3A%2E01%3En%3F%28c%3Db%3D%2E707106781%2Cd%3D0%29%3A%28d%3DMath%2Esqrt%28n%29%2Cb%3Df%2Fd%2Cc%3Dk%2Fd%29%3Bthis%2Eset%28b%2Cc%2Cd%2Ca%29%3Breturn%20this%7Da%3DMath%2Esqrt%28%28b%2Dk%29%2A%28b%2Dk%29%2B%28f%2Dc%29%2A%28f%2Dc%29%2B%28g%2Dd%29%2A%28g%2Dd%29%29%3B%2E001%3EMath%2Eabs%28a%29%26%26%28a%3D1%29%3Bthis%2Ex%3D%28b%2Dk%29%2Fa%3Bthis%2Ey%3D%28f%2Dc%29%2Fa%3Bthis%2Ez%3D%28g%2Dd%29%2Fa%3Bthis%2Ew%3DMath%2Eacos%28%28e%2Bh%2Bn%2D1%29%2F2%29%3Breturn%20this%7D%2Cmin%3Afunction%28a%29%7Bthis%2Ex%3Ea%2Ex%26%26%28this%2Ex%3Da%2Ex%29%3Bthis%2Ey%3Ea%2Ey%26%26%28this%2Ey%3Da%2Ey%29%3Bthis%2Ez%3Ea%2Ez%26%26%28this%2Ez%3Da%2Ez%29%3Bthis%2Ew%3Ea%2Ew%26%26%28this%2Ew%3Da%2Ew%29%3Breturn%20this%7D%2Cmax%3Afunction%28a%29%7Bthis%2Ex%3Ca%2Ex%26%26%28this%2Ex%3Da%2Ex%29%3Bthis%2Ey%3Ca%2Ey%26%26%28this%2Ey%3Da%2Ey%29%3Bthis%2Ez%3Ca%2Ez%26%26%28this%2Ez%3Da%2Ez%29%3Bthis%2Ew%3Ca%2Ew%26%26%28this%2Ew%3Da%2Ew%29%3B%0Areturn%20this%7D%2Cclamp%3Afunction%28a%2Cb%29%7Bthis%2Ex%3Ca%2Ex%3Fthis%2Ex%3Da%2Ex%3Athis%2Ex%3Eb%2Ex%26%26%28this%2Ex%3Db%2Ex%29%3Bthis%2Ey%3Ca%2Ey%3Fthis%2Ey%3Da%2Ey%3Athis%2Ey%3Eb%2Ey%26%26%28this%2Ey%3Db%2Ey%29%3Bthis%2Ez%3Ca%2Ez%3Fthis%2Ez%3Da%2Ez%3Athis%2Ez%3Eb%2Ez%26%26%28this%2Ez%3Db%2Ez%29%3Bthis%2Ew%3Ca%2Ew%3Fthis%2Ew%3Da%2Ew%3Athis%2Ew%3Eb%2Ew%26%26%28this%2Ew%3Db%2Ew%29%3Breturn%20this%7D%2CclampScalar%3Afunction%28%29%7Bvar%20a%2Cb%3Breturn%20function%28c%2Cd%29%7Bvoid%200%3D%3D%3Da%26%26%28a%3Dnew%20THREE%2EVector4%2Cb%3Dnew%20THREE%2EVector4%29%3Ba%2Eset%28c%2Cc%2Cc%2Cc%29%3Bb%2Eset%28d%2Cd%2Cd%2Cd%29%3Breturn%20this%2Eclamp%28a%2Cb%29%7D%7D%28%29%2Cfloor%3Afunction%28%29%7Bthis%2Ex%3DMath%2Efloor%28this%2Ex%29%3Bthis%2Ey%3DMath%2Efloor%28this%2Ey%29%3Bthis%2Ez%3DMath%2Efloor%28this%2Ez%29%3Bthis%2Ew%3DMath%2Efloor%28this%2Ew%29%3B%0Areturn%20this%7D%2Cceil%3Afunction%28%29%7Bthis%2Ex%3DMath%2Eceil%28this%2Ex%29%3Bthis%2Ey%3DMath%2Eceil%28this%2Ey%29%3Bthis%2Ez%3DMath%2Eceil%28this%2Ez%29%3Bthis%2Ew%3DMath%2Eceil%28this%2Ew%29%3Breturn%20this%7D%2Cround%3Afunction%28%29%7Bthis%2Ex%3DMath%2Eround%28this%2Ex%29%3Bthis%2Ey%3DMath%2Eround%28this%2Ey%29%3Bthis%2Ez%3DMath%2Eround%28this%2Ez%29%3Bthis%2Ew%3DMath%2Eround%28this%2Ew%29%3Breturn%20this%7D%2CroundToZero%3Afunction%28%29%7Bthis%2Ex%3D0%3Ethis%2Ex%3FMath%2Eceil%28this%2Ex%29%3AMath%2Efloor%28this%2Ex%29%3Bthis%2Ey%3D0%3Ethis%2Ey%3FMath%2Eceil%28this%2Ey%29%3AMath%2Efloor%28this%2Ey%29%3Bthis%2Ez%3D0%3Ethis%2Ez%3FMath%2Eceil%28this%2Ez%29%3AMath%2Efloor%28this%2Ez%29%3Bthis%2Ew%3D0%3Ethis%2Ew%3FMath%2Eceil%28this%2Ew%29%3AMath%2Efloor%28this%2Ew%29%3B%0Areturn%20this%7D%2Cnegate%3Afunction%28%29%7Bthis%2Ex%3D%2Dthis%2Ex%3Bthis%2Ey%3D%2Dthis%2Ey%3Bthis%2Ez%3D%2Dthis%2Ez%3Bthis%2Ew%3D%2Dthis%2Ew%3Breturn%20this%7D%2Cdot%3Afunction%28a%29%7Breturn%20this%2Ex%2Aa%2Ex%2Bthis%2Ey%2Aa%2Ey%2Bthis%2Ez%2Aa%2Ez%2Bthis%2Ew%2Aa%2Ew%7D%2ClengthSq%3Afunction%28%29%7Breturn%20this%2Ex%2Athis%2Ex%2Bthis%2Ey%2Athis%2Ey%2Bthis%2Ez%2Athis%2Ez%2Bthis%2Ew%2Athis%2Ew%7D%2Clength%3Afunction%28%29%7Breturn%20Math%2Esqrt%28this%2Ex%2Athis%2Ex%2Bthis%2Ey%2Athis%2Ey%2Bthis%2Ez%2Athis%2Ez%2Bthis%2Ew%2Athis%2Ew%29%7D%2ClengthManhattan%3Afunction%28%29%7Breturn%20Math%2Eabs%28this%2Ex%29%2BMath%2Eabs%28this%2Ey%29%2BMath%2Eabs%28this%2Ez%29%2BMath%2Eabs%28this%2Ew%29%7D%2Cnormalize%3Afunction%28%29%7Breturn%20this%2EdivideScalar%28this%2Elength%28%29%29%7D%2C%0AsetLength%3Afunction%28a%29%7Bvar%20b%3Dthis%2Elength%28%29%3B0%21%3D%3Db%26%26a%21%3D%3Db%26%26this%2EmultiplyScalar%28a%2Fb%29%3Breturn%20this%7D%2Clerp%3Afunction%28a%2Cb%29%7Bthis%2Ex%2B%3D%28a%2Ex%2Dthis%2Ex%29%2Ab%3Bthis%2Ey%2B%3D%28a%2Ey%2Dthis%2Ey%29%2Ab%3Bthis%2Ez%2B%3D%28a%2Ez%2Dthis%2Ez%29%2Ab%3Bthis%2Ew%2B%3D%28a%2Ew%2Dthis%2Ew%29%2Ab%3Breturn%20this%7D%2Cequals%3Afunction%28a%29%7Breturn%20a%2Ex%3D%3D%3Dthis%2Ex%26%26a%2Ey%3D%3D%3Dthis%2Ey%26%26a%2Ez%3D%3D%3Dthis%2Ez%26%26a%2Ew%3D%3D%3Dthis%2Ew%7D%2CfromArray%3Afunction%28a%2Cb%29%7Bvoid%200%3D%3D%3Db%26%26%28b%3D0%29%3Bthis%2Ex%3Da%5Bb%5D%3Bthis%2Ey%3Da%5Bb%2B1%5D%3Bthis%2Ez%3Da%5Bb%2B2%5D%3Bthis%2Ew%3Da%5Bb%2B3%5D%3Breturn%20this%7D%2CtoArray%3Afunction%28a%2Cb%29%7Bvoid%200%3D%3D%3Da%26%26%28a%3D%5B%5D%29%3Bvoid%200%3D%3D%3Db%26%26%28b%3D0%29%3Ba%5Bb%5D%3Dthis%2Ex%3Ba%5Bb%2B1%5D%3Dthis%2Ey%3Ba%5Bb%2B2%5D%3D%0Athis%2Ez%3Ba%5Bb%2B3%5D%3Dthis%2Ew%3Breturn%20a%7D%2CfromAttribute%3Afunction%28a%2Cb%2Cc%29%7Bvoid%200%3D%3D%3Dc%26%26%28c%3D0%29%3Bb%3Db%2Aa%2EitemSize%2Bc%3Bthis%2Ex%3Da%2Earray%5Bb%5D%3Bthis%2Ey%3Da%2Earray%5Bb%2B1%5D%3Bthis%2Ez%3Da%2Earray%5Bb%2B2%5D%3Bthis%2Ew%3Da%2Earray%5Bb%2B3%5D%3Breturn%20this%7D%2Cclone%3Afunction%28%29%7Breturn%20new%20THREE%2EVector4%28this%2Ex%2Cthis%2Ey%2Cthis%2Ez%2Cthis%2Ew%29%7D%7D%3BTHREE%2EEuler%3Dfunction%28a%2Cb%2Cc%2Cd%29%7Bthis%2E%5Fx%3Da%7C%7C0%3Bthis%2E%5Fy%3Db%7C%7C0%3Bthis%2E%5Fz%3Dc%7C%7C0%3Bthis%2E%5Forder%3Dd%7C%7CTHREE%2EEuler%2EDefaultOrder%7D%3BTHREE%2EEuler%2ERotationOrders%3D%22XYZ%20YZX%20ZXY%20XZY%20YXZ%20ZYX%22%2Esplit%28%22%20%22%29%3BTHREE%2EEuler%2EDefaultOrder%3D%22XYZ%22%3B%0ATHREE%2EEuler%2Eprototype%3D%7Bconstructor%3ATHREE%2EEuler%2C%5Fx%3A0%2C%5Fy%3A0%2C%5Fz%3A0%2C%5Forder%3ATHREE%2EEuler%2EDefaultOrder%2Cget%20x%28%29%7Breturn%20this%2E%5Fx%7D%2Cset%20x%28a%29%7Bthis%2E%5Fx%3Da%3Bthis%2EonChangeCallback%28%29%7D%2Cget%20y%28%29%7Breturn%20this%2E%5Fy%7D%2Cset%20y%28a%29%7Bthis%2E%5Fy%3Da%3Bthis%2EonChangeCallback%28%29%7D%2Cget%20z%28%29%7Breturn%20this%2E%5Fz%7D%2Cset%20z%28a%29%7Bthis%2E%5Fz%3Da%3Bthis%2EonChangeCallback%28%29%7D%2Cget%20order%28%29%7Breturn%20this%2E%5Forder%7D%2Cset%20order%28a%29%7Bthis%2E%5Forder%3Da%3Bthis%2EonChangeCallback%28%29%7D%2Cset%3Afunction%28a%2Cb%2Cc%2Cd%29%7Bthis%2E%5Fx%3Da%3Bthis%2E%5Fy%3Db%3Bthis%2E%5Fz%3Dc%3Bthis%2E%5Forder%3Dd%7C%7Cthis%2E%5Forder%3Bthis%2EonChangeCallback%28%29%3Breturn%20this%7D%2Ccopy%3Afunction%28a%29%7Bthis%2E%5Fx%3D%0Aa%2E%5Fx%3Bthis%2E%5Fy%3Da%2E%5Fy%3Bthis%2E%5Fz%3Da%2E%5Fz%3Bthis%2E%5Forder%3Da%2E%5Forder%3Bthis%2EonChangeCallback%28%29%3Breturn%20this%7D%2CsetFromRotationMatrix%3Afunction%28a%2Cb%2Cc%29%7Bvar%20d%3DTHREE%2EMath%2Eclamp%2Ce%3Da%2Eelements%3Ba%3De%5B0%5D%3Bvar%20f%3De%5B4%5D%2Cg%3De%5B8%5D%2Ch%3De%5B1%5D%2Ck%3De%5B5%5D%2Cn%3De%5B9%5D%2Cp%3De%5B2%5D%2Cq%3De%5B6%5D%2Ce%3De%5B10%5D%3Bb%3Db%7C%7Cthis%2E%5Forder%3B%22XYZ%22%3D%3D%3Db%3F%28this%2E%5Fy%3DMath%2Easin%28d%28g%2C%2D1%2C1%29%29%2C%2E99999%3EMath%2Eabs%28g%29%3F%28this%2E%5Fx%3DMath%2Eatan2%28%2Dn%2Ce%29%2Cthis%2E%5Fz%3DMath%2Eatan2%28%2Df%2Ca%29%29%3A%28this%2E%5Fx%3DMath%2Eatan2%28q%2Ck%29%2Cthis%2E%5Fz%3D0%29%29%3A%22YXZ%22%3D%3D%3Db%3F%28this%2E%5Fx%3DMath%2Easin%28%2Dd%28n%2C%2D1%2C1%29%29%2C%2E99999%3EMath%2Eabs%28n%29%3F%28this%2E%5Fy%3DMath%2Eatan2%28g%2Ce%29%2Cthis%2E%5Fz%3DMath%2Eatan2%28h%2C%0Ak%29%29%3A%28this%2E%5Fy%3DMath%2Eatan2%28%2Dp%2Ca%29%2Cthis%2E%5Fz%3D0%29%29%3A%22ZXY%22%3D%3D%3Db%3F%28this%2E%5Fx%3DMath%2Easin%28d%28q%2C%2D1%2C1%29%29%2C%2E99999%3EMath%2Eabs%28q%29%3F%28this%2E%5Fy%3DMath%2Eatan2%28%2Dp%2Ce%29%2Cthis%2E%5Fz%3DMath%2Eatan2%28%2Df%2Ck%29%29%3A%28this%2E%5Fy%3D0%2Cthis%2E%5Fz%3DMath%2Eatan2%28h%2Ca%29%29%29%3A%22ZYX%22%3D%3D%3Db%3F%28this%2E%5Fy%3DMath%2Easin%28%2Dd%28p%2C%2D1%2C1%29%29%2C%2E99999%3EMath%2Eabs%28p%29%3F%28this%2E%5Fx%3DMath%2Eatan2%28q%2Ce%29%2Cthis%2E%5Fz%3DMath%2Eatan2%28h%2Ca%29%29%3A%28this%2E%5Fx%3D0%2Cthis%2E%5Fz%3DMath%2Eatan2%28%2Df%2Ck%29%29%29%3A%22YZX%22%3D%3D%3Db%3F%28this%2E%5Fz%3DMath%2Easin%28d%28h%2C%2D1%2C1%29%29%2C%2E99999%3EMath%2Eabs%28h%29%3F%28this%2E%5Fx%3DMath%2Eatan2%28%2Dn%2Ck%29%2Cthis%2E%5Fy%3DMath%2Eatan2%28%2Dp%2Ca%29%29%3A%28this%2E%5Fx%3D0%2Cthis%2E%5Fy%3DMath%2Eatan2%28g%2Ce%29%29%29%3A%22XZY%22%3D%3D%3Db%3F%28this%2E%5Fz%3D%0AMath%2Easin%28%2Dd%28f%2C%2D1%2C1%29%29%2C%2E99999%3EMath%2Eabs%28f%29%3F%28this%2E%5Fx%3DMath%2Eatan2%28q%2Ck%29%2Cthis%2E%5Fy%3DMath%2Eatan2%28g%2Ca%29%29%3A%28this%2E%5Fx%3DMath%2Eatan2%28%2Dn%2Ce%29%2Cthis%2E%5Fy%3D0%29%29%3Aconsole%2Ewarn%28%22THREE%2EEuler%3A%20%2EsetFromRotationMatrix%28%29%20given%20unsupported%20order%3A%20%22%2Bb%29%3Bthis%2E%5Forder%3Db%3Bif%28%211%21%3D%3Dc%29this%2EonChangeCallback%28%29%3Breturn%20this%7D%2CsetFromQuaternion%3Afunction%28%29%7Bvar%20a%3Breturn%20function%28b%2Cc%2Cd%29%7Bvoid%200%3D%3D%3Da%26%26%28a%3Dnew%20THREE%2EMatrix4%29%3Ba%2EmakeRotationFromQuaternion%28b%29%3Bthis%2EsetFromRotationMatrix%28a%2Cc%2Cd%29%3Breturn%20this%7D%7D%28%29%2CsetFromVector3%3Afunction%28a%2Cb%29%7Breturn%20this%2Eset%28a%2Ex%2Ca%2Ey%2Ca%2Ez%2C%0Ab%7C%7Cthis%2E%5Forder%29%7D%2Creorder%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EQuaternion%3Breturn%20function%28b%29%7Ba%2EsetFromEuler%28this%29%3Bthis%2EsetFromQuaternion%28a%2Cb%29%7D%7D%28%29%2Cequals%3Afunction%28a%29%7Breturn%20a%2E%5Fx%3D%3D%3Dthis%2E%5Fx%26%26a%2E%5Fy%3D%3D%3Dthis%2E%5Fy%26%26a%2E%5Fz%3D%3D%3Dthis%2E%5Fz%26%26a%2E%5Forder%3D%3D%3Dthis%2E%5Forder%7D%2CfromArray%3Afunction%28a%29%7Bthis%2E%5Fx%3Da%5B0%5D%3Bthis%2E%5Fy%3Da%5B1%5D%3Bthis%2E%5Fz%3Da%5B2%5D%3Bvoid%200%21%3D%3Da%5B3%5D%26%26%28this%2E%5Forder%3Da%5B3%5D%29%3Bthis%2EonChangeCallback%28%29%3Breturn%20this%7D%2CtoArray%3Afunction%28%29%7Breturn%5Bthis%2E%5Fx%2Cthis%2E%5Fy%2Cthis%2E%5Fz%2Cthis%2E%5Forder%5D%7D%2CtoVector3%3Afunction%28a%29%7Breturn%20a%3Fa%2Eset%28this%2E%5Fx%2Cthis%2E%5Fy%2Cthis%2E%5Fz%29%3Anew%20THREE%2EVector3%28this%2E%5Fx%2C%0Athis%2E%5Fy%2Cthis%2E%5Fz%29%7D%2ConChange%3Afunction%28a%29%7Bthis%2EonChangeCallback%3Da%3Breturn%20this%7D%2ConChangeCallback%3Afunction%28%29%7B%7D%2Cclone%3Afunction%28%29%7Breturn%20new%20THREE%2EEuler%28this%2E%5Fx%2Cthis%2E%5Fy%2Cthis%2E%5Fz%2Cthis%2E%5Forder%29%7D%7D%3BTHREE%2ELine3%3Dfunction%28a%2Cb%29%7Bthis%2Estart%3Dvoid%200%21%3D%3Da%3Fa%3Anew%20THREE%2EVector3%3Bthis%2Eend%3Dvoid%200%21%3D%3Db%3Fb%3Anew%20THREE%2EVector3%7D%3B%0ATHREE%2ELine3%2Eprototype%3D%7Bconstructor%3ATHREE%2ELine3%2Cset%3Afunction%28a%2Cb%29%7Bthis%2Estart%2Ecopy%28a%29%3Bthis%2Eend%2Ecopy%28b%29%3Breturn%20this%7D%2Ccopy%3Afunction%28a%29%7Bthis%2Estart%2Ecopy%28a%2Estart%29%3Bthis%2Eend%2Ecopy%28a%2Eend%29%3Breturn%20this%7D%2Ccenter%3Afunction%28a%29%7Breturn%28a%7C%7Cnew%20THREE%2EVector3%29%2EaddVectors%28this%2Estart%2Cthis%2Eend%29%2EmultiplyScalar%28%2E5%29%7D%2Cdelta%3Afunction%28a%29%7Breturn%28a%7C%7Cnew%20THREE%2EVector3%29%2EsubVectors%28this%2Eend%2Cthis%2Estart%29%7D%2CdistanceSq%3Afunction%28%29%7Breturn%20this%2Estart%2EdistanceToSquared%28this%2Eend%29%7D%2Cdistance%3Afunction%28%29%7Breturn%20this%2Estart%2EdistanceTo%28this%2Eend%29%7D%2Cat%3Afunction%28a%2C%0Ab%29%7Bvar%20c%3Db%7C%7Cnew%20THREE%2EVector3%3Breturn%20this%2Edelta%28c%29%2EmultiplyScalar%28a%29%2Eadd%28this%2Estart%29%7D%2CclosestPointToPointParameter%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%2Cb%3Dnew%20THREE%2EVector3%3Breturn%20function%28c%2Cd%29%7Ba%2EsubVectors%28c%2Cthis%2Estart%29%3Bb%2EsubVectors%28this%2Eend%2Cthis%2Estart%29%3Bvar%20e%3Db%2Edot%28b%29%2Ce%3Db%2Edot%28a%29%2Fe%3Bd%26%26%28e%3DTHREE%2EMath%2Eclamp%28e%2C0%2C1%29%29%3Breturn%20e%7D%7D%28%29%2CclosestPointToPoint%3Afunction%28a%2Cb%2Cc%29%7Ba%3Dthis%2EclosestPointToPointParameter%28a%2Cb%29%3Bc%3Dc%7C%7Cnew%20THREE%2EVector3%3Breturn%20this%2Edelta%28c%29%2EmultiplyScalar%28a%29%2Eadd%28this%2Estart%29%7D%2CapplyMatrix4%3Afunction%28a%29%7Bthis%2Estart%2EapplyMatrix4%28a%29%3B%0Athis%2Eend%2EapplyMatrix4%28a%29%3Breturn%20this%7D%2Cequals%3Afunction%28a%29%7Breturn%20a%2Estart%2Eequals%28this%2Estart%29%26%26a%2Eend%2Eequals%28this%2Eend%29%7D%2Cclone%3Afunction%28%29%7Breturn%28new%20THREE%2ELine3%29%2Ecopy%28this%29%7D%7D%3BTHREE%2EBox2%3Dfunction%28a%2Cb%29%7Bthis%2Emin%3Dvoid%200%21%3D%3Da%3Fa%3Anew%20THREE%2EVector2%28Infinity%2CInfinity%29%3Bthis%2Emax%3Dvoid%200%21%3D%3Db%3Fb%3Anew%20THREE%2EVector2%28%2DInfinity%2C%2DInfinity%29%7D%3B%0ATHREE%2EBox2%2Eprototype%3D%7Bconstructor%3ATHREE%2EBox2%2Cset%3Afunction%28a%2Cb%29%7Bthis%2Emin%2Ecopy%28a%29%3Bthis%2Emax%2Ecopy%28b%29%3Breturn%20this%7D%2CsetFromPoints%3Afunction%28a%29%7Bthis%2EmakeEmpty%28%29%3Bfor%28var%20b%3D0%2Cc%3Da%2Elength%3Bb%3Cc%3Bb%2B%2B%29this%2EexpandByPoint%28a%5Bb%5D%29%3Breturn%20this%7D%2CsetFromCenterAndSize%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector2%3Breturn%20function%28b%2Cc%29%7Bvar%20d%3Da%2Ecopy%28c%29%2EmultiplyScalar%28%2E5%29%3Bthis%2Emin%2Ecopy%28b%29%2Esub%28d%29%3Bthis%2Emax%2Ecopy%28b%29%2Eadd%28d%29%3Breturn%20this%7D%7D%28%29%2Ccopy%3Afunction%28a%29%7Bthis%2Emin%2Ecopy%28a%2Emin%29%3Bthis%2Emax%2Ecopy%28a%2Emax%29%3Breturn%20this%7D%2CmakeEmpty%3Afunction%28%29%7Bthis%2Emin%2Ex%3D%0Athis%2Emin%2Ey%3DInfinity%3Bthis%2Emax%2Ex%3Dthis%2Emax%2Ey%3D%2DInfinity%3Breturn%20this%7D%2Cempty%3Afunction%28%29%7Breturn%20this%2Emax%2Ex%3Cthis%2Emin%2Ex%7C%7Cthis%2Emax%2Ey%3Cthis%2Emin%2Ey%7D%2Ccenter%3Afunction%28a%29%7Breturn%28a%7C%7Cnew%20THREE%2EVector2%29%2EaddVectors%28this%2Emin%2Cthis%2Emax%29%2EmultiplyScalar%28%2E5%29%7D%2Csize%3Afunction%28a%29%7Breturn%28a%7C%7Cnew%20THREE%2EVector2%29%2EsubVectors%28this%2Emax%2Cthis%2Emin%29%7D%2CexpandByPoint%3Afunction%28a%29%7Bthis%2Emin%2Emin%28a%29%3Bthis%2Emax%2Emax%28a%29%3Breturn%20this%7D%2CexpandByVector%3Afunction%28a%29%7Bthis%2Emin%2Esub%28a%29%3Bthis%2Emax%2Eadd%28a%29%3Breturn%20this%7D%2CexpandByScalar%3Afunction%28a%29%7Bthis%2Emin%2EaddScalar%28%2Da%29%3B%0Athis%2Emax%2EaddScalar%28a%29%3Breturn%20this%7D%2CcontainsPoint%3Afunction%28a%29%7Breturn%20a%2Ex%3Cthis%2Emin%2Ex%7C%7Ca%2Ex%3Ethis%2Emax%2Ex%7C%7Ca%2Ey%3Cthis%2Emin%2Ey%7C%7Ca%2Ey%3Ethis%2Emax%2Ey%3F%211%3A%210%7D%2CcontainsBox%3Afunction%28a%29%7Breturn%20this%2Emin%2Ex%3C%3Da%2Emin%2Ex%26%26a%2Emax%2Ex%3C%3Dthis%2Emax%2Ex%26%26this%2Emin%2Ey%3C%3Da%2Emin%2Ey%26%26a%2Emax%2Ey%3C%3Dthis%2Emax%2Ey%3F%210%3A%211%7D%2CgetParameter%3Afunction%28a%2Cb%29%7Breturn%28b%7C%7Cnew%20THREE%2EVector2%29%2Eset%28%28a%2Ex%2Dthis%2Emin%2Ex%29%2F%28this%2Emax%2Ex%2Dthis%2Emin%2Ex%29%2C%28a%2Ey%2Dthis%2Emin%2Ey%29%2F%28this%2Emax%2Ey%2Dthis%2Emin%2Ey%29%29%7D%2CisIntersectionBox%3Afunction%28a%29%7Breturn%20a%2Emax%2Ex%3Cthis%2Emin%2Ex%7C%7Ca%2Emin%2Ex%3Ethis%2Emax%2Ex%7C%7Ca%2Emax%2Ey%3Cthis%2Emin%2Ey%7C%7Ca%2Emin%2Ey%3E%0Athis%2Emax%2Ey%3F%211%3A%210%7D%2CclampPoint%3Afunction%28a%2Cb%29%7Breturn%28b%7C%7Cnew%20THREE%2EVector2%29%2Ecopy%28a%29%2Eclamp%28this%2Emin%2Cthis%2Emax%29%7D%2CdistanceToPoint%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector2%3Breturn%20function%28b%29%7Breturn%20a%2Ecopy%28b%29%2Eclamp%28this%2Emin%2Cthis%2Emax%29%2Esub%28b%29%2Elength%28%29%7D%7D%28%29%2Cintersect%3Afunction%28a%29%7Bthis%2Emin%2Emax%28a%2Emin%29%3Bthis%2Emax%2Emin%28a%2Emax%29%3Breturn%20this%7D%2Cunion%3Afunction%28a%29%7Bthis%2Emin%2Emin%28a%2Emin%29%3Bthis%2Emax%2Emax%28a%2Emax%29%3Breturn%20this%7D%2Ctranslate%3Afunction%28a%29%7Bthis%2Emin%2Eadd%28a%29%3Bthis%2Emax%2Eadd%28a%29%3Breturn%20this%7D%2Cequals%3Afunction%28a%29%7Breturn%20a%2Emin%2Eequals%28this%2Emin%29%26%26%0Aa%2Emax%2Eequals%28this%2Emax%29%7D%2Cclone%3Afunction%28%29%7Breturn%28new%20THREE%2EBox2%29%2Ecopy%28this%29%7D%7D%3BTHREE%2EBox3%3Dfunction%28a%2Cb%29%7Bthis%2Emin%3Dvoid%200%21%3D%3Da%3Fa%3Anew%20THREE%2EVector3%28Infinity%2CInfinity%2CInfinity%29%3Bthis%2Emax%3Dvoid%200%21%3D%3Db%3Fb%3Anew%20THREE%2EVector3%28%2DInfinity%2C%2DInfinity%2C%2DInfinity%29%7D%3B%0ATHREE%2EBox3%2Eprototype%3D%7Bconstructor%3ATHREE%2EBox3%2Cset%3Afunction%28a%2Cb%29%7Bthis%2Emin%2Ecopy%28a%29%3Bthis%2Emax%2Ecopy%28b%29%3Breturn%20this%7D%2CsetFromPoints%3Afunction%28a%29%7Bthis%2EmakeEmpty%28%29%3Bfor%28var%20b%3D0%2Cc%3Da%2Elength%3Bb%3Cc%3Bb%2B%2B%29this%2EexpandByPoint%28a%5Bb%5D%29%3Breturn%20this%7D%2CsetFromCenterAndSize%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%3Breturn%20function%28b%2Cc%29%7Bvar%20d%3Da%2Ecopy%28c%29%2EmultiplyScalar%28%2E5%29%3Bthis%2Emin%2Ecopy%28b%29%2Esub%28d%29%3Bthis%2Emax%2Ecopy%28b%29%2Eadd%28d%29%3Breturn%20this%7D%7D%28%29%2CsetFromObject%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%3Breturn%20function%28b%29%7Bvar%20c%3Dthis%3Bb%2EupdateMatrixWorld%28%210%29%3B%0Athis%2EmakeEmpty%28%29%3Bb%2Etraverse%28function%28b%29%7Bvar%20e%3Db%2Egeometry%3Bif%28void%200%21%3D%3De%29if%28e%20instanceof%20THREE%2EGeometry%29for%28var%20f%3De%2Evertices%2Ce%3D0%2Cg%3Df%2Elength%3Be%3Cg%3Be%2B%2B%29a%2Ecopy%28f%5Be%5D%29%2Ca%2EapplyMatrix4%28b%2EmatrixWorld%29%2Cc%2EexpandByPoint%28a%29%3Belse%20if%28e%20instanceof%20THREE%2EBufferGeometry%26%26void%200%21%3D%3De%2Eattributes%2Eposition%29for%28f%3De%2Eattributes%2Eposition%2Earray%2Ce%3D0%2Cg%3Df%2Elength%3Be%3Cg%3Be%2B%3D3%29a%2Eset%28f%5Be%5D%2Cf%5Be%2B1%5D%2Cf%5Be%2B2%5D%29%2Ca%2EapplyMatrix4%28b%2EmatrixWorld%29%2Cc%2EexpandByPoint%28a%29%7D%29%3Breturn%20this%7D%7D%28%29%2Ccopy%3Afunction%28a%29%7Bthis%2Emin%2Ecopy%28a%2Emin%29%3Bthis%2Emax%2Ecopy%28a%2Emax%29%3Breturn%20this%7D%2C%0AmakeEmpty%3Afunction%28%29%7Bthis%2Emin%2Ex%3Dthis%2Emin%2Ey%3Dthis%2Emin%2Ez%3DInfinity%3Bthis%2Emax%2Ex%3Dthis%2Emax%2Ey%3Dthis%2Emax%2Ez%3D%2DInfinity%3Breturn%20this%7D%2Cempty%3Afunction%28%29%7Breturn%20this%2Emax%2Ex%3Cthis%2Emin%2Ex%7C%7Cthis%2Emax%2Ey%3Cthis%2Emin%2Ey%7C%7Cthis%2Emax%2Ez%3Cthis%2Emin%2Ez%7D%2Ccenter%3Afunction%28a%29%7Breturn%28a%7C%7Cnew%20THREE%2EVector3%29%2EaddVectors%28this%2Emin%2Cthis%2Emax%29%2EmultiplyScalar%28%2E5%29%7D%2Csize%3Afunction%28a%29%7Breturn%28a%7C%7Cnew%20THREE%2EVector3%29%2EsubVectors%28this%2Emax%2Cthis%2Emin%29%7D%2CexpandByPoint%3Afunction%28a%29%7Bthis%2Emin%2Emin%28a%29%3Bthis%2Emax%2Emax%28a%29%3Breturn%20this%7D%2CexpandByVector%3Afunction%28a%29%7Bthis%2Emin%2Esub%28a%29%3B%0Athis%2Emax%2Eadd%28a%29%3Breturn%20this%7D%2CexpandByScalar%3Afunction%28a%29%7Bthis%2Emin%2EaddScalar%28%2Da%29%3Bthis%2Emax%2EaddScalar%28a%29%3Breturn%20this%7D%2CcontainsPoint%3Afunction%28a%29%7Breturn%20a%2Ex%3Cthis%2Emin%2Ex%7C%7Ca%2Ex%3Ethis%2Emax%2Ex%7C%7Ca%2Ey%3Cthis%2Emin%2Ey%7C%7Ca%2Ey%3Ethis%2Emax%2Ey%7C%7Ca%2Ez%3Cthis%2Emin%2Ez%7C%7Ca%2Ez%3Ethis%2Emax%2Ez%3F%211%3A%210%7D%2CcontainsBox%3Afunction%28a%29%7Breturn%20this%2Emin%2Ex%3C%3Da%2Emin%2Ex%26%26a%2Emax%2Ex%3C%3Dthis%2Emax%2Ex%26%26this%2Emin%2Ey%3C%3Da%2Emin%2Ey%26%26a%2Emax%2Ey%3C%3Dthis%2Emax%2Ey%26%26this%2Emin%2Ez%3C%3Da%2Emin%2Ez%26%26a%2Emax%2Ez%3C%3Dthis%2Emax%2Ez%3F%210%3A%211%7D%2CgetParameter%3Afunction%28a%2Cb%29%7Breturn%28b%7C%7Cnew%20THREE%2EVector3%29%2Eset%28%28a%2Ex%2Dthis%2Emin%2Ex%29%2F%28this%2Emax%2Ex%2D%0Athis%2Emin%2Ex%29%2C%28a%2Ey%2Dthis%2Emin%2Ey%29%2F%28this%2Emax%2Ey%2Dthis%2Emin%2Ey%29%2C%28a%2Ez%2Dthis%2Emin%2Ez%29%2F%28this%2Emax%2Ez%2Dthis%2Emin%2Ez%29%29%7D%2CisIntersectionBox%3Afunction%28a%29%7Breturn%20a%2Emax%2Ex%3Cthis%2Emin%2Ex%7C%7Ca%2Emin%2Ex%3Ethis%2Emax%2Ex%7C%7Ca%2Emax%2Ey%3Cthis%2Emin%2Ey%7C%7Ca%2Emin%2Ey%3Ethis%2Emax%2Ey%7C%7Ca%2Emax%2Ez%3Cthis%2Emin%2Ez%7C%7Ca%2Emin%2Ez%3Ethis%2Emax%2Ez%3F%211%3A%210%7D%2CclampPoint%3Afunction%28a%2Cb%29%7Breturn%28b%7C%7Cnew%20THREE%2EVector3%29%2Ecopy%28a%29%2Eclamp%28this%2Emin%2Cthis%2Emax%29%7D%2CdistanceToPoint%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%3Breturn%20function%28b%29%7Breturn%20a%2Ecopy%28b%29%2Eclamp%28this%2Emin%2Cthis%2Emax%29%2Esub%28b%29%2Elength%28%29%7D%7D%28%29%2CgetBoundingSphere%3Afunction%28%29%7Bvar%20a%3D%0Anew%20THREE%2EVector3%3Breturn%20function%28b%29%7Bb%3Db%7C%7Cnew%20THREE%2ESphere%3Bb%2Ecenter%3Dthis%2Ecenter%28%29%3Bb%2Eradius%3D%2E5%2Athis%2Esize%28a%29%2Elength%28%29%3Breturn%20b%7D%7D%28%29%2Cintersect%3Afunction%28a%29%7Bthis%2Emin%2Emax%28a%2Emin%29%3Bthis%2Emax%2Emin%28a%2Emax%29%3Breturn%20this%7D%2Cunion%3Afunction%28a%29%7Bthis%2Emin%2Emin%28a%2Emin%29%3Bthis%2Emax%2Emax%28a%2Emax%29%3Breturn%20this%7D%2CapplyMatrix4%3Afunction%28%29%7Bvar%20a%3D%5Bnew%20THREE%2EVector3%2Cnew%20THREE%2EVector3%2Cnew%20THREE%2EVector3%2Cnew%20THREE%2EVector3%2Cnew%20THREE%2EVector3%2Cnew%20THREE%2EVector3%2Cnew%20THREE%2EVector3%2Cnew%20THREE%2EVector3%5D%3Breturn%20function%28b%29%7Ba%5B0%5D%2Eset%28this%2Emin%2Ex%2Cthis%2Emin%2Ey%2C%0Athis%2Emin%2Ez%29%2EapplyMatrix4%28b%29%3Ba%5B1%5D%2Eset%28this%2Emin%2Ex%2Cthis%2Emin%2Ey%2Cthis%2Emax%2Ez%29%2EapplyMatrix4%28b%29%3Ba%5B2%5D%2Eset%28this%2Emin%2Ex%2Cthis%2Emax%2Ey%2Cthis%2Emin%2Ez%29%2EapplyMatrix4%28b%29%3Ba%5B3%5D%2Eset%28this%2Emin%2Ex%2Cthis%2Emax%2Ey%2Cthis%2Emax%2Ez%29%2EapplyMatrix4%28b%29%3Ba%5B4%5D%2Eset%28this%2Emax%2Ex%2Cthis%2Emin%2Ey%2Cthis%2Emin%2Ez%29%2EapplyMatrix4%28b%29%3Ba%5B5%5D%2Eset%28this%2Emax%2Ex%2Cthis%2Emin%2Ey%2Cthis%2Emax%2Ez%29%2EapplyMatrix4%28b%29%3Ba%5B6%5D%2Eset%28this%2Emax%2Ex%2Cthis%2Emax%2Ey%2Cthis%2Emin%2Ez%29%2EapplyMatrix4%28b%29%3Ba%5B7%5D%2Eset%28this%2Emax%2Ex%2Cthis%2Emax%2Ey%2Cthis%2Emax%2Ez%29%2EapplyMatrix4%28b%29%3Bthis%2EmakeEmpty%28%29%3Bthis%2EsetFromPoints%28a%29%3Breturn%20this%7D%7D%28%29%2Ctranslate%3Afunction%28a%29%7Bthis%2Emin%2Eadd%28a%29%3B%0Athis%2Emax%2Eadd%28a%29%3Breturn%20this%7D%2Cequals%3Afunction%28a%29%7Breturn%20a%2Emin%2Eequals%28this%2Emin%29%26%26a%2Emax%2Eequals%28this%2Emax%29%7D%2Cclone%3Afunction%28%29%7Breturn%28new%20THREE%2EBox3%29%2Ecopy%28this%29%7D%7D%3BTHREE%2EMatrix3%3Dfunction%28%29%7Bthis%2Eelements%3Dnew%20Float32Array%28%5B1%2C0%2C0%2C0%2C1%2C0%2C0%2C0%2C1%5D%29%3B0%3Carguments%2Elength%26%26console%2Eerror%28%22THREE%2EMatrix3%3A%20the%20constructor%20no%20longer%20reads%20arguments%2E%20use%20%2Eset%28%29%20instead%2E%22%29%7D%3B%0ATHREE%2EMatrix3%2Eprototype%3D%7Bconstructor%3ATHREE%2EMatrix3%2Cset%3Afunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%2Cg%2Ch%2Ck%29%7Bvar%20n%3Dthis%2Eelements%3Bn%5B0%5D%3Da%3Bn%5B3%5D%3Db%3Bn%5B6%5D%3Dc%3Bn%5B1%5D%3Dd%3Bn%5B4%5D%3De%3Bn%5B7%5D%3Df%3Bn%5B2%5D%3Dg%3Bn%5B5%5D%3Dh%3Bn%5B8%5D%3Dk%3Breturn%20this%7D%2Cidentity%3Afunction%28%29%7Bthis%2Eset%281%2C0%2C0%2C0%2C1%2C0%2C0%2C0%2C1%29%3Breturn%20this%7D%2Ccopy%3Afunction%28a%29%7Ba%3Da%2Eelements%3Bthis%2Eset%28a%5B0%5D%2Ca%5B3%5D%2Ca%5B6%5D%2Ca%5B1%5D%2Ca%5B4%5D%2Ca%5B7%5D%2Ca%5B2%5D%2Ca%5B5%5D%2Ca%5B8%5D%29%3Breturn%20this%7D%2CmultiplyVector3%3Afunction%28a%29%7Bconsole%2Ewarn%28%22THREE%2EMatrix3%3A%20%2EmultiplyVector3%28%29%20has%20been%20removed%2E%20Use%20vector%2EapplyMatrix3%28%20matrix%20%29%20instead%2E%22%29%3Breturn%20a%2EapplyMatrix3%28this%29%7D%2C%0AmultiplyVector3Array%3Afunction%28a%29%7Bconsole%2Ewarn%28%22THREE%2EMatrix3%3A%20%2EmultiplyVector3Array%28%29%20has%20been%20renamed%2E%20Use%20matrix%2EapplyToVector3Array%28%20array%20%29%20instead%2E%22%29%3Breturn%20this%2EapplyToVector3Array%28a%29%7D%2CapplyToVector3Array%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%3Breturn%20function%28b%2Cc%2Cd%29%7Bvoid%200%3D%3D%3Dc%26%26%28c%3D0%29%3Bvoid%200%3D%3D%3Dd%26%26%28d%3Db%2Elength%29%3Bfor%28var%20e%3D0%3Be%3Cd%3Be%2B%3D3%2Cc%2B%3D3%29a%2Ex%3Db%5Bc%5D%2Ca%2Ey%3Db%5Bc%2B1%5D%2Ca%2Ez%3Db%5Bc%2B2%5D%2Ca%2EapplyMatrix3%28this%29%2Cb%5Bc%5D%3Da%2Ex%2Cb%5Bc%2B1%5D%3Da%2Ey%2Cb%5Bc%2B2%5D%3Da%2Ez%3Breturn%20b%7D%7D%28%29%2CmultiplyScalar%3Afunction%28a%29%7Bvar%20b%3Dthis%2Eelements%3Bb%5B0%5D%2A%3Da%3Bb%5B3%5D%2A%3Da%3Bb%5B6%5D%2A%3D%0Aa%3Bb%5B1%5D%2A%3Da%3Bb%5B4%5D%2A%3Da%3Bb%5B7%5D%2A%3Da%3Bb%5B2%5D%2A%3Da%3Bb%5B5%5D%2A%3Da%3Bb%5B8%5D%2A%3Da%3Breturn%20this%7D%2Cdeterminant%3Afunction%28%29%7Bvar%20a%3Dthis%2Eelements%2Cb%3Da%5B0%5D%2Cc%3Da%5B1%5D%2Cd%3Da%5B2%5D%2Ce%3Da%5B3%5D%2Cf%3Da%5B4%5D%2Cg%3Da%5B5%5D%2Ch%3Da%5B6%5D%2Ck%3Da%5B7%5D%2Ca%3Da%5B8%5D%3Breturn%20b%2Af%2Aa%2Db%2Ag%2Ak%2Dc%2Ae%2Aa%2Bc%2Ag%2Ah%2Bd%2Ae%2Ak%2Dd%2Af%2Ah%7D%2CgetInverse%3Afunction%28a%2Cb%29%7Bvar%20c%3Da%2Eelements%2Cd%3Dthis%2Eelements%3Bd%5B0%5D%3Dc%5B10%5D%2Ac%5B5%5D%2Dc%5B6%5D%2Ac%5B9%5D%3Bd%5B1%5D%3D%2Dc%5B10%5D%2Ac%5B1%5D%2Bc%5B2%5D%2Ac%5B9%5D%3Bd%5B2%5D%3Dc%5B6%5D%2Ac%5B1%5D%2Dc%5B2%5D%2Ac%5B5%5D%3Bd%5B3%5D%3D%2Dc%5B10%5D%2Ac%5B4%5D%2Bc%5B6%5D%2Ac%5B8%5D%3Bd%5B4%5D%3Dc%5B10%5D%2Ac%5B0%5D%2Dc%5B2%5D%2Ac%5B8%5D%3Bd%5B5%5D%3D%2Dc%5B6%5D%2Ac%5B0%5D%2Bc%5B2%5D%2Ac%5B4%5D%3Bd%5B6%5D%3Dc%5B9%5D%2Ac%5B4%5D%2Dc%5B5%5D%2Ac%5B8%5D%3Bd%5B7%5D%3D%2Dc%5B9%5D%2Ac%5B0%5D%2Bc%5B1%5D%2Ac%5B8%5D%3Bd%5B8%5D%3Dc%5B5%5D%2Ac%5B0%5D%2Dc%5B1%5D%2Ac%5B4%5D%3B%0Ac%3Dc%5B0%5D%2Ad%5B0%5D%2Bc%5B1%5D%2Ad%5B3%5D%2Bc%5B2%5D%2Ad%5B6%5D%3Bif%280%3D%3D%3Dc%29%7Bif%28b%29throw%20Error%28%22Matrix3%2EgetInverse%28%29%3A%20can%27t%20invert%20matrix%2C%20determinant%20is%200%22%29%3Bconsole%2Ewarn%28%22Matrix3%2EgetInverse%28%29%3A%20can%27t%20invert%20matrix%2C%20determinant%20is%200%22%29%3Bthis%2Eidentity%28%29%3Breturn%20this%7Dthis%2EmultiplyScalar%281%2Fc%29%3Breturn%20this%7D%2Ctranspose%3Afunction%28%29%7Bvar%20a%2Cb%3Dthis%2Eelements%3Ba%3Db%5B1%5D%3Bb%5B1%5D%3Db%5B3%5D%3Bb%5B3%5D%3Da%3Ba%3Db%5B2%5D%3Bb%5B2%5D%3Db%5B6%5D%3Bb%5B6%5D%3Da%3Ba%3Db%5B5%5D%3Bb%5B5%5D%3Db%5B7%5D%3Bb%5B7%5D%3Da%3Breturn%20this%7D%2CflattenToArrayOffset%3Afunction%28a%2Cb%29%7Bvar%20c%3Dthis%2Eelements%3Ba%5Bb%5D%3Dc%5B0%5D%3Ba%5Bb%2B1%5D%3Dc%5B1%5D%3Ba%5Bb%2B2%5D%3Dc%5B2%5D%3Ba%5Bb%2B3%5D%3Dc%5B3%5D%3Ba%5Bb%2B4%5D%3Dc%5B4%5D%3B%0Aa%5Bb%2B5%5D%3Dc%5B5%5D%3Ba%5Bb%2B6%5D%3Dc%5B6%5D%3Ba%5Bb%2B7%5D%3Dc%5B7%5D%3Ba%5Bb%2B8%5D%3Dc%5B8%5D%3Breturn%20a%7D%2CgetNormalMatrix%3Afunction%28a%29%7Bthis%2EgetInverse%28a%29%2Etranspose%28%29%3Breturn%20this%7D%2CtransposeIntoArray%3Afunction%28a%29%7Bvar%20b%3Dthis%2Eelements%3Ba%5B0%5D%3Db%5B0%5D%3Ba%5B1%5D%3Db%5B3%5D%3Ba%5B2%5D%3Db%5B6%5D%3Ba%5B3%5D%3Db%5B1%5D%3Ba%5B4%5D%3Db%5B4%5D%3Ba%5B5%5D%3Db%5B7%5D%3Ba%5B6%5D%3Db%5B2%5D%3Ba%5B7%5D%3Db%5B5%5D%3Ba%5B8%5D%3Db%5B8%5D%3Breturn%20this%7D%2CfromArray%3Afunction%28a%29%7Bthis%2Eelements%2Eset%28a%29%3Breturn%20this%7D%2CtoArray%3Afunction%28%29%7Bvar%20a%3Dthis%2Eelements%3Breturn%5Ba%5B0%5D%2Ca%5B1%5D%2Ca%5B2%5D%2Ca%5B3%5D%2Ca%5B4%5D%2Ca%5B5%5D%2Ca%5B6%5D%2Ca%5B7%5D%2Ca%5B8%5D%5D%7D%2Cclone%3Afunction%28%29%7Breturn%28new%20THREE%2EMatrix3%29%2EfromArray%28this%2Eelements%29%7D%7D%3B%0ATHREE%2EMatrix4%3Dfunction%28%29%7Bthis%2Eelements%3Dnew%20Float32Array%28%5B1%2C0%2C0%2C0%2C0%2C1%2C0%2C0%2C0%2C0%2C1%2C0%2C0%2C0%2C0%2C1%5D%29%3B0%3Carguments%2Elength%26%26console%2Eerror%28%22THREE%2EMatrix4%3A%20the%20constructor%20no%20longer%20reads%20arguments%2E%20use%20%2Eset%28%29%20instead%2E%22%29%7D%3B%0ATHREE%2EMatrix4%2Eprototype%3D%7Bconstructor%3ATHREE%2EMatrix4%2Cset%3Afunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%2Cg%2Ch%2Ck%2Cn%2Cp%2Cq%2Cm%2Ct%2Cs%2Cr%29%7Bvar%20u%3Dthis%2Eelements%3Bu%5B0%5D%3Da%3Bu%5B4%5D%3Db%3Bu%5B8%5D%3Dc%3Bu%5B12%5D%3Dd%3Bu%5B1%5D%3De%3Bu%5B5%5D%3Df%3Bu%5B9%5D%3Dg%3Bu%5B13%5D%3Dh%3Bu%5B2%5D%3Dk%3Bu%5B6%5D%3Dn%3Bu%5B10%5D%3Dp%3Bu%5B14%5D%3Dq%3Bu%5B3%5D%3Dm%3Bu%5B7%5D%3Dt%3Bu%5B11%5D%3Ds%3Bu%5B15%5D%3Dr%3Breturn%20this%7D%2Cidentity%3Afunction%28%29%7Bthis%2Eset%281%2C0%2C0%2C0%2C0%2C1%2C0%2C0%2C0%2C0%2C1%2C0%2C0%2C0%2C0%2C1%29%3Breturn%20this%7D%2Ccopy%3Afunction%28a%29%7Bthis%2Eelements%2Eset%28a%2Eelements%29%3Breturn%20this%7D%2CextractPosition%3Afunction%28a%29%7Bconsole%2Ewarn%28%22THREE%2EMatrix4%3A%20%2EextractPosition%28%29%20has%20been%20renamed%20to%20%2EcopyPosition%28%29%2E%22%29%3Breturn%20this%2EcopyPosition%28a%29%7D%2C%0AcopyPosition%3Afunction%28a%29%7Bvar%20b%3Dthis%2Eelements%3Ba%3Da%2Eelements%3Bb%5B12%5D%3Da%5B12%5D%3Bb%5B13%5D%3Da%5B13%5D%3Bb%5B14%5D%3Da%5B14%5D%3Breturn%20this%7D%2CextractBasis%3Afunction%28a%2Cb%2Cc%29%7Bvar%20d%3Dthis%2Eelements%3Ba%2Eset%28d%5B0%5D%2Cd%5B1%5D%2Cd%5B2%5D%29%3Bb%2Eset%28d%5B4%5D%2Cd%5B5%5D%2Cd%5B6%5D%29%3Bc%2Eset%28d%5B8%5D%2Cd%5B9%5D%2Cd%5B10%5D%29%3Breturn%20this%7D%2CmakeBasis%3Afunction%28a%2Cb%2Cc%29%7Bthis%2Eset%28a%2Ex%2Cb%2Ex%2Cc%2Ex%2C0%2Ca%2Ey%2Cb%2Ey%2Cc%2Ey%2C0%2Ca%2Ez%2Cb%2Ez%2Cc%2Ez%2C0%2C0%2C0%2C0%2C1%29%3Breturn%20this%7D%2CextractRotation%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%3Breturn%20function%28b%29%7Bvar%20c%3Dthis%2Eelements%3Bb%3Db%2Eelements%3Bvar%20d%3D1%2Fa%2Eset%28b%5B0%5D%2Cb%5B1%5D%2Cb%5B2%5D%29%2Elength%28%29%2Ce%3D1%2Fa%2Eset%28b%5B4%5D%2Cb%5B5%5D%2Cb%5B6%5D%29%2Elength%28%29%2C%0Af%3D1%2Fa%2Eset%28b%5B8%5D%2Cb%5B9%5D%2Cb%5B10%5D%29%2Elength%28%29%3Bc%5B0%5D%3Db%5B0%5D%2Ad%3Bc%5B1%5D%3Db%5B1%5D%2Ad%3Bc%5B2%5D%3Db%5B2%5D%2Ad%3Bc%5B4%5D%3Db%5B4%5D%2Ae%3Bc%5B5%5D%3Db%5B5%5D%2Ae%3Bc%5B6%5D%3Db%5B6%5D%2Ae%3Bc%5B8%5D%3Db%5B8%5D%2Af%3Bc%5B9%5D%3Db%5B9%5D%2Af%3Bc%5B10%5D%3Db%5B10%5D%2Af%3Breturn%20this%7D%7D%28%29%2CmakeRotationFromEuler%3Afunction%28a%29%7B%211%3D%3D%3Da%20instanceof%20THREE%2EEuler%26%26console%2Eerror%28%22THREE%2EMatrix%3A%20%2EmakeRotationFromEuler%28%29%20now%20expects%20a%20Euler%20rotation%20rather%20than%20a%20Vector3%20and%20order%2E%22%29%3Bvar%20b%3Dthis%2Eelements%2Cc%3Da%2Ex%2Cd%3Da%2Ey%2Ce%3Da%2Ez%2Cf%3DMath%2Ecos%28c%29%2Cc%3DMath%2Esin%28c%29%2Cg%3DMath%2Ecos%28d%29%2Cd%3DMath%2Esin%28d%29%2Ch%3DMath%2Ecos%28e%29%2Ce%3DMath%2Esin%28e%29%3Bif%28%22XYZ%22%3D%3D%3Da%2Eorder%29%7Ba%3Df%2Ah%3Bvar%20k%3Df%2A%0Ae%2Cn%3Dc%2Ah%2Cp%3Dc%2Ae%3Bb%5B0%5D%3Dg%2Ah%3Bb%5B4%5D%3D%2Dg%2Ae%3Bb%5B8%5D%3Dd%3Bb%5B1%5D%3Dk%2Bn%2Ad%3Bb%5B5%5D%3Da%2Dp%2Ad%3Bb%5B9%5D%3D%2Dc%2Ag%3Bb%5B2%5D%3Dp%2Da%2Ad%3Bb%5B6%5D%3Dn%2Bk%2Ad%3Bb%5B10%5D%3Df%2Ag%7Delse%22YXZ%22%3D%3D%3Da%2Eorder%3F%28a%3Dg%2Ah%2Ck%3Dg%2Ae%2Cn%3Dd%2Ah%2Cp%3Dd%2Ae%2Cb%5B0%5D%3Da%2Bp%2Ac%2Cb%5B4%5D%3Dn%2Ac%2Dk%2Cb%5B8%5D%3Df%2Ad%2Cb%5B1%5D%3Df%2Ae%2Cb%5B5%5D%3Df%2Ah%2Cb%5B9%5D%3D%2Dc%2Cb%5B2%5D%3Dk%2Ac%2Dn%2Cb%5B6%5D%3Dp%2Ba%2Ac%2Cb%5B10%5D%3Df%2Ag%29%3A%22ZXY%22%3D%3D%3Da%2Eorder%3F%28a%3Dg%2Ah%2Ck%3Dg%2Ae%2Cn%3Dd%2Ah%2Cp%3Dd%2Ae%2Cb%5B0%5D%3Da%2Dp%2Ac%2Cb%5B4%5D%3D%2Df%2Ae%2Cb%5B8%5D%3Dn%2Bk%2Ac%2Cb%5B1%5D%3Dk%2Bn%2Ac%2Cb%5B5%5D%3Df%2Ah%2Cb%5B9%5D%3Dp%2Da%2Ac%2Cb%5B2%5D%3D%2Df%2Ad%2Cb%5B6%5D%3Dc%2Cb%5B10%5D%3Df%2Ag%29%3A%22ZYX%22%3D%3D%3Da%2Eorder%3F%28a%3Df%2Ah%2Ck%3Df%2Ae%2Cn%3Dc%2Ah%2Cp%3Dc%2Ae%2Cb%5B0%5D%3Dg%2Ah%2Cb%5B4%5D%3Dn%2Ad%2Dk%2Cb%5B8%5D%3Da%2Ad%2Bp%2Cb%5B1%5D%3Dg%2Ae%2Cb%5B5%5D%3Dp%2Ad%2Ba%2Cb%5B9%5D%3Dk%2Ad%2Dn%2Cb%5B2%5D%3D%2Dd%2Cb%5B6%5D%3Dc%2Ag%2Cb%5B10%5D%3Df%2Ag%29%3A%0A%22YZX%22%3D%3D%3Da%2Eorder%3F%28a%3Df%2Ag%2Ck%3Df%2Ad%2Cn%3Dc%2Ag%2Cp%3Dc%2Ad%2Cb%5B0%5D%3Dg%2Ah%2Cb%5B4%5D%3Dp%2Da%2Ae%2Cb%5B8%5D%3Dn%2Ae%2Bk%2Cb%5B1%5D%3De%2Cb%5B5%5D%3Df%2Ah%2Cb%5B9%5D%3D%2Dc%2Ah%2Cb%5B2%5D%3D%2Dd%2Ah%2Cb%5B6%5D%3Dk%2Ae%2Bn%2Cb%5B10%5D%3Da%2Dp%2Ae%29%3A%22XZY%22%3D%3D%3Da%2Eorder%26%26%28a%3Df%2Ag%2Ck%3Df%2Ad%2Cn%3Dc%2Ag%2Cp%3Dc%2Ad%2Cb%5B0%5D%3Dg%2Ah%2Cb%5B4%5D%3D%2De%2Cb%5B8%5D%3Dd%2Ah%2Cb%5B1%5D%3Da%2Ae%2Bp%2Cb%5B5%5D%3Df%2Ah%2Cb%5B9%5D%3Dk%2Ae%2Dn%2Cb%5B2%5D%3Dn%2Ae%2Dk%2Cb%5B6%5D%3Dc%2Ah%2Cb%5B10%5D%3Dp%2Ae%2Ba%29%3Bb%5B3%5D%3D0%3Bb%5B7%5D%3D0%3Bb%5B11%5D%3D0%3Bb%5B12%5D%3D0%3Bb%5B13%5D%3D0%3Bb%5B14%5D%3D0%3Bb%5B15%5D%3D1%3Breturn%20this%7D%2CsetRotationFromQuaternion%3Afunction%28a%29%7Bconsole%2Ewarn%28%22THREE%2EMatrix4%3A%20%2EsetRotationFromQuaternion%28%29%20has%20been%20renamed%20to%20%2EmakeRotationFromQuaternion%28%29%2E%22%29%3Breturn%20this%2EmakeRotationFromQuaternion%28a%29%7D%2C%0AmakeRotationFromQuaternion%3Afunction%28a%29%7Bvar%20b%3Dthis%2Eelements%2Cc%3Da%2Ex%2Cd%3Da%2Ey%2Ce%3Da%2Ez%2Cf%3Da%2Ew%2Cg%3Dc%2Bc%2Ch%3Dd%2Bd%2Ck%3De%2Be%3Ba%3Dc%2Ag%3Bvar%20n%3Dc%2Ah%2Cc%3Dc%2Ak%2Cp%3Dd%2Ah%2Cd%3Dd%2Ak%2Ce%3De%2Ak%2Cg%3Df%2Ag%2Ch%3Df%2Ah%2Cf%3Df%2Ak%3Bb%5B0%5D%3D1%2D%28p%2Be%29%3Bb%5B4%5D%3Dn%2Df%3Bb%5B8%5D%3Dc%2Bh%3Bb%5B1%5D%3Dn%2Bf%3Bb%5B5%5D%3D1%2D%28a%2Be%29%3Bb%5B9%5D%3Dd%2Dg%3Bb%5B2%5D%3Dc%2Dh%3Bb%5B6%5D%3Dd%2Bg%3Bb%5B10%5D%3D1%2D%28a%2Bp%29%3Bb%5B3%5D%3D0%3Bb%5B7%5D%3D0%3Bb%5B11%5D%3D0%3Bb%5B12%5D%3D0%3Bb%5B13%5D%3D0%3Bb%5B14%5D%3D0%3Bb%5B15%5D%3D1%3Breturn%20this%7D%2ClookAt%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%2Cb%3Dnew%20THREE%2EVector3%2Cc%3Dnew%20THREE%2EVector3%3Breturn%20function%28d%2Ce%2Cf%29%7Bvar%20g%3Dthis%2Eelements%3Bc%2EsubVectors%28d%2Ce%29%2Enormalize%28%29%3B0%3D%3D%3Dc%2Elength%28%29%26%26%28c%2Ez%3D1%29%3Ba%2EcrossVectors%28f%2C%0Ac%29%2Enormalize%28%29%3B0%3D%3D%3Da%2Elength%28%29%26%26%28c%2Ex%2B%3D1E%2D4%2Ca%2EcrossVectors%28f%2Cc%29%2Enormalize%28%29%29%3Bb%2EcrossVectors%28c%2Ca%29%3Bg%5B0%5D%3Da%2Ex%3Bg%5B4%5D%3Db%2Ex%3Bg%5B8%5D%3Dc%2Ex%3Bg%5B1%5D%3Da%2Ey%3Bg%5B5%5D%3Db%2Ey%3Bg%5B9%5D%3Dc%2Ey%3Bg%5B2%5D%3Da%2Ez%3Bg%5B6%5D%3Db%2Ez%3Bg%5B10%5D%3Dc%2Ez%3Breturn%20this%7D%7D%28%29%2Cmultiply%3Afunction%28a%2Cb%29%7Breturn%20void%200%21%3D%3Db%3F%28console%2Ewarn%28%22THREE%2EMatrix4%3A%20%2Emultiply%28%29%20now%20only%20accepts%20one%20argument%2E%20Use%20%2EmultiplyMatrices%28%20a%2C%20b%20%29%20instead%2E%22%29%2Cthis%2EmultiplyMatrices%28a%2Cb%29%29%3Athis%2EmultiplyMatrices%28this%2Ca%29%7D%2CmultiplyMatrices%3Afunction%28a%2Cb%29%7Bvar%20c%3Da%2Eelements%2Cd%3Db%2Eelements%2Ce%3Dthis%2Eelements%2Cf%3Dc%5B0%5D%2Cg%3Dc%5B4%5D%2Ch%3Dc%5B8%5D%2C%0Ak%3Dc%5B12%5D%2Cn%3Dc%5B1%5D%2Cp%3Dc%5B5%5D%2Cq%3Dc%5B9%5D%2Cm%3Dc%5B13%5D%2Ct%3Dc%5B2%5D%2Cs%3Dc%5B6%5D%2Cr%3Dc%5B10%5D%2Cu%3Dc%5B14%5D%2Cv%3Dc%5B3%5D%2Cy%3Dc%5B7%5D%2CC%3Dc%5B11%5D%2Cc%3Dc%5B15%5D%2Cx%3Dd%5B0%5D%2CF%3Dd%5B4%5D%2Cz%3Dd%5B8%5D%2CG%3Dd%5B12%5D%2CE%3Dd%5B1%5D%2Cw%3Dd%5B5%5D%2CD%3Dd%5B9%5D%2CA%3Dd%5B13%5D%2CU%3Dd%5B2%5D%2CM%3Dd%5B6%5D%2CK%3Dd%5B10%5D%2CL%3Dd%5B14%5D%2CN%3Dd%5B3%5D%2CT%3Dd%5B7%5D%2CQ%3Dd%5B11%5D%2Cd%3Dd%5B15%5D%3Be%5B0%5D%3Df%2Ax%2Bg%2AE%2Bh%2AU%2Bk%2AN%3Be%5B4%5D%3Df%2AF%2Bg%2Aw%2Bh%2AM%2Bk%2AT%3Be%5B8%5D%3Df%2Az%2Bg%2AD%2Bh%2AK%2Bk%2AQ%3Be%5B12%5D%3Df%2AG%2Bg%2AA%2Bh%2AL%2Bk%2Ad%3Be%5B1%5D%3Dn%2Ax%2Bp%2AE%2Bq%2AU%2Bm%2AN%3Be%5B5%5D%3Dn%2AF%2Bp%2Aw%2Bq%2AM%2Bm%2AT%3Be%5B9%5D%3Dn%2Az%2Bp%2AD%2Bq%2AK%2Bm%2AQ%3Be%5B13%5D%3Dn%2AG%2Bp%2AA%2Bq%2AL%2Bm%2Ad%3Be%5B2%5D%3Dt%2Ax%2Bs%2AE%2Br%2AU%2Bu%2AN%3Be%5B6%5D%3Dt%2AF%2Bs%2Aw%2Br%2AM%2Bu%2AT%3Be%5B10%5D%3Dt%2Az%2Bs%2AD%2Br%2AK%2Bu%2AQ%3Be%5B14%5D%3Dt%2AG%2Bs%2AA%2Br%2AL%2Bu%2Ad%3Be%5B3%5D%3Dv%2Ax%2By%2AE%2BC%2AU%2Bc%2AN%3Be%5B7%5D%3Dv%2AF%2B%0Ay%2Aw%2BC%2AM%2Bc%2AT%3Be%5B11%5D%3Dv%2Az%2By%2AD%2BC%2AK%2Bc%2AQ%3Be%5B15%5D%3Dv%2AG%2By%2AA%2BC%2AL%2Bc%2Ad%3Breturn%20this%7D%2CmultiplyToArray%3Afunction%28a%2Cb%2Cc%29%7Bvar%20d%3Dthis%2Eelements%3Bthis%2EmultiplyMatrices%28a%2Cb%29%3Bc%5B0%5D%3Dd%5B0%5D%3Bc%5B1%5D%3Dd%5B1%5D%3Bc%5B2%5D%3Dd%5B2%5D%3Bc%5B3%5D%3Dd%5B3%5D%3Bc%5B4%5D%3Dd%5B4%5D%3Bc%5B5%5D%3Dd%5B5%5D%3Bc%5B6%5D%3Dd%5B6%5D%3Bc%5B7%5D%3Dd%5B7%5D%3Bc%5B8%5D%3Dd%5B8%5D%3Bc%5B9%5D%3Dd%5B9%5D%3Bc%5B10%5D%3Dd%5B10%5D%3Bc%5B11%5D%3Dd%5B11%5D%3Bc%5B12%5D%3Dd%5B12%5D%3Bc%5B13%5D%3Dd%5B13%5D%3Bc%5B14%5D%3Dd%5B14%5D%3Bc%5B15%5D%3Dd%5B15%5D%3Breturn%20this%7D%2CmultiplyScalar%3Afunction%28a%29%7Bvar%20b%3Dthis%2Eelements%3Bb%5B0%5D%2A%3Da%3Bb%5B4%5D%2A%3Da%3Bb%5B8%5D%2A%3Da%3Bb%5B12%5D%2A%3Da%3Bb%5B1%5D%2A%3Da%3Bb%5B5%5D%2A%3Da%3Bb%5B9%5D%2A%3Da%3Bb%5B13%5D%2A%3Da%3Bb%5B2%5D%2A%3Da%3Bb%5B6%5D%2A%3Da%3Bb%5B10%5D%2A%3Da%3Bb%5B14%5D%2A%3Da%3Bb%5B3%5D%2A%3Da%3Bb%5B7%5D%2A%3Da%3Bb%5B11%5D%2A%3D%0Aa%3Bb%5B15%5D%2A%3Da%3Breturn%20this%7D%2CmultiplyVector3%3Afunction%28a%29%7Bconsole%2Ewarn%28%22THREE%2EMatrix4%3A%20%2EmultiplyVector3%28%29%20has%20been%20removed%2E%20Use%20vector%2EapplyMatrix4%28%20matrix%20%29%20or%20vector%2EapplyProjection%28%20matrix%20%29%20instead%2E%22%29%3Breturn%20a%2EapplyProjection%28this%29%7D%2CmultiplyVector4%3Afunction%28a%29%7Bconsole%2Ewarn%28%22THREE%2EMatrix4%3A%20%2EmultiplyVector4%28%29%20has%20been%20removed%2E%20Use%20vector%2EapplyMatrix4%28%20matrix%20%29%20instead%2E%22%29%3Breturn%20a%2EapplyMatrix4%28this%29%7D%2CmultiplyVector3Array%3Afunction%28a%29%7Bconsole%2Ewarn%28%22THREE%2EMatrix4%3A%20%2EmultiplyVector3Array%28%29%20has%20been%20renamed%2E%20Use%20matrix%2EapplyToVector3Array%28%20array%20%29%20instead%2E%22%29%3B%0Areturn%20this%2EapplyToVector3Array%28a%29%7D%2CapplyToVector3Array%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%3Breturn%20function%28b%2Cc%2Cd%29%7Bvoid%200%3D%3D%3Dc%26%26%28c%3D0%29%3Bvoid%200%3D%3D%3Dd%26%26%28d%3Db%2Elength%29%3Bfor%28var%20e%3D0%3Be%3Cd%3Be%2B%3D3%2Cc%2B%3D3%29a%2Ex%3Db%5Bc%5D%2Ca%2Ey%3Db%5Bc%2B1%5D%2Ca%2Ez%3Db%5Bc%2B2%5D%2Ca%2EapplyMatrix4%28this%29%2Cb%5Bc%5D%3Da%2Ex%2Cb%5Bc%2B1%5D%3Da%2Ey%2Cb%5Bc%2B2%5D%3Da%2Ez%3Breturn%20b%7D%7D%28%29%2CrotateAxis%3Afunction%28a%29%7Bconsole%2Ewarn%28%22THREE%2EMatrix4%3A%20%2ErotateAxis%28%29%20has%20been%20removed%2E%20Use%20Vector3%2EtransformDirection%28%20matrix%20%29%20instead%2E%22%29%3Ba%2EtransformDirection%28this%29%7D%2CcrossVector%3Afunction%28a%29%7Bconsole%2Ewarn%28%22THREE%2EMatrix4%3A%20%2EcrossVector%28%29%20has%20been%20removed%2E%20Use%20vector%2EapplyMatrix4%28%20matrix%20%29%20instead%2E%22%29%3B%0Areturn%20a%2EapplyMatrix4%28this%29%7D%2Cdeterminant%3Afunction%28%29%7Bvar%20a%3Dthis%2Eelements%2Cb%3Da%5B0%5D%2Cc%3Da%5B4%5D%2Cd%3Da%5B8%5D%2Ce%3Da%5B12%5D%2Cf%3Da%5B1%5D%2Cg%3Da%5B5%5D%2Ch%3Da%5B9%5D%2Ck%3Da%5B13%5D%2Cn%3Da%5B2%5D%2Cp%3Da%5B6%5D%2Cq%3Da%5B10%5D%2Cm%3Da%5B14%5D%3Breturn%20a%5B3%5D%2A%28%2Be%2Ah%2Ap%2Dd%2Ak%2Ap%2De%2Ag%2Aq%2Bc%2Ak%2Aq%2Bd%2Ag%2Am%2Dc%2Ah%2Am%29%2Ba%5B7%5D%2A%28%2Bb%2Ah%2Am%2Db%2Ak%2Aq%2Be%2Af%2Aq%2Dd%2Af%2Am%2Bd%2Ak%2An%2De%2Ah%2An%29%2Ba%5B11%5D%2A%28%2Bb%2Ak%2Ap%2Db%2Ag%2Am%2De%2Af%2Ap%2Bc%2Af%2Am%2Be%2Ag%2An%2Dc%2Ak%2An%29%2Ba%5B15%5D%2A%28%2Dd%2Ag%2An%2Db%2Ah%2Ap%2Bb%2Ag%2Aq%2Bd%2Af%2Ap%2Dc%2Af%2Aq%2Bc%2Ah%2An%29%7D%2Ctranspose%3Afunction%28%29%7Bvar%20a%3Dthis%2Eelements%2Cb%3Bb%3Da%5B1%5D%3Ba%5B1%5D%3Da%5B4%5D%3Ba%5B4%5D%3Db%3Bb%3Da%5B2%5D%3Ba%5B2%5D%3Da%5B8%5D%3Ba%5B8%5D%3Db%3Bb%3Da%5B6%5D%3Ba%5B6%5D%3Da%5B9%5D%3Ba%5B9%5D%3Db%3Bb%3Da%5B3%5D%3Ba%5B3%5D%3Da%5B12%5D%3Ba%5B12%5D%3Db%3Bb%3Da%5B7%5D%3Ba%5B7%5D%3Da%5B13%5D%3B%0Aa%5B13%5D%3Db%3Bb%3Da%5B11%5D%3Ba%5B11%5D%3Da%5B14%5D%3Ba%5B14%5D%3Db%3Breturn%20this%7D%2CflattenToArrayOffset%3Afunction%28a%2Cb%29%7Bvar%20c%3Dthis%2Eelements%3Ba%5Bb%5D%3Dc%5B0%5D%3Ba%5Bb%2B1%5D%3Dc%5B1%5D%3Ba%5Bb%2B2%5D%3Dc%5B2%5D%3Ba%5Bb%2B3%5D%3Dc%5B3%5D%3Ba%5Bb%2B4%5D%3Dc%5B4%5D%3Ba%5Bb%2B5%5D%3Dc%5B5%5D%3Ba%5Bb%2B6%5D%3Dc%5B6%5D%3Ba%5Bb%2B7%5D%3Dc%5B7%5D%3Ba%5Bb%2B8%5D%3Dc%5B8%5D%3Ba%5Bb%2B9%5D%3Dc%5B9%5D%3Ba%5Bb%2B10%5D%3Dc%5B10%5D%3Ba%5Bb%2B11%5D%3Dc%5B11%5D%3Ba%5Bb%2B12%5D%3Dc%5B12%5D%3Ba%5Bb%2B13%5D%3Dc%5B13%5D%3Ba%5Bb%2B14%5D%3Dc%5B14%5D%3Ba%5Bb%2B15%5D%3Dc%5B15%5D%3Breturn%20a%7D%2CgetPosition%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%3Breturn%20function%28%29%7Bconsole%2Ewarn%28%22THREE%2EMatrix4%3A%20%2EgetPosition%28%29%20has%20been%20removed%2E%20Use%20Vector3%2EsetFromMatrixPosition%28%20matrix%20%29%20instead%2E%22%29%3Bvar%20b%3D%0Athis%2Eelements%3Breturn%20a%2Eset%28b%5B12%5D%2Cb%5B13%5D%2Cb%5B14%5D%29%7D%7D%28%29%2CsetPosition%3Afunction%28a%29%7Bvar%20b%3Dthis%2Eelements%3Bb%5B12%5D%3Da%2Ex%3Bb%5B13%5D%3Da%2Ey%3Bb%5B14%5D%3Da%2Ez%3Breturn%20this%7D%2CgetInverse%3Afunction%28a%2Cb%29%7Bvar%20c%3Dthis%2Eelements%2Cd%3Da%2Eelements%2Ce%3Dd%5B0%5D%2Cf%3Dd%5B4%5D%2Cg%3Dd%5B8%5D%2Ch%3Dd%5B12%5D%2Ck%3Dd%5B1%5D%2Cn%3Dd%5B5%5D%2Cp%3Dd%5B9%5D%2Cq%3Dd%5B13%5D%2Cm%3Dd%5B2%5D%2Ct%3Dd%5B6%5D%2Cs%3Dd%5B10%5D%2Cr%3Dd%5B14%5D%2Cu%3Dd%5B3%5D%2Cv%3Dd%5B7%5D%2Cy%3Dd%5B11%5D%2Cd%3Dd%5B15%5D%3Bc%5B0%5D%3Dp%2Ar%2Av%2Dq%2As%2Av%2Bq%2At%2Ay%2Dn%2Ar%2Ay%2Dp%2At%2Ad%2Bn%2As%2Ad%3Bc%5B4%5D%3Dh%2As%2Av%2Dg%2Ar%2Av%2Dh%2At%2Ay%2Bf%2Ar%2Ay%2Bg%2At%2Ad%2Df%2As%2Ad%3Bc%5B8%5D%3Dg%2Aq%2Av%2Dh%2Ap%2Av%2Bh%2An%2Ay%2Df%2Aq%2Ay%2Dg%2An%2Ad%2Bf%2Ap%2Ad%3Bc%5B12%5D%3Dh%2Ap%2At%2Dg%2Aq%2At%2Dh%2An%2As%2Bf%2Aq%2As%2Bg%2An%2Ar%2Df%2Ap%2Ar%3Bc%5B1%5D%3Dq%2As%2Au%2Dp%2Ar%2Au%2Dq%2Am%2Ay%2B%0Ak%2Ar%2Ay%2Bp%2Am%2Ad%2Dk%2As%2Ad%3Bc%5B5%5D%3Dg%2Ar%2Au%2Dh%2As%2Au%2Bh%2Am%2Ay%2De%2Ar%2Ay%2Dg%2Am%2Ad%2Be%2As%2Ad%3Bc%5B9%5D%3Dh%2Ap%2Au%2Dg%2Aq%2Au%2Dh%2Ak%2Ay%2Be%2Aq%2Ay%2Bg%2Ak%2Ad%2De%2Ap%2Ad%3Bc%5B13%5D%3Dg%2Aq%2Am%2Dh%2Ap%2Am%2Bh%2Ak%2As%2De%2Aq%2As%2Dg%2Ak%2Ar%2Be%2Ap%2Ar%3Bc%5B2%5D%3Dn%2Ar%2Au%2Dq%2At%2Au%2Bq%2Am%2Av%2Dk%2Ar%2Av%2Dn%2Am%2Ad%2Bk%2At%2Ad%3Bc%5B6%5D%3Dh%2At%2Au%2Df%2Ar%2Au%2Dh%2Am%2Av%2Be%2Ar%2Av%2Bf%2Am%2Ad%2De%2At%2Ad%3Bc%5B10%5D%3Df%2Aq%2Au%2Dh%2An%2Au%2Bh%2Ak%2Av%2De%2Aq%2Av%2Df%2Ak%2Ad%2Be%2An%2Ad%3Bc%5B14%5D%3Dh%2An%2Am%2Df%2Aq%2Am%2Dh%2Ak%2At%2Be%2Aq%2At%2Bf%2Ak%2Ar%2De%2An%2Ar%3Bc%5B3%5D%3Dp%2At%2Au%2Dn%2As%2Au%2Dp%2Am%2Av%2Bk%2As%2Av%2Bn%2Am%2Ay%2Dk%2At%2Ay%3Bc%5B7%5D%3Df%2As%2Au%2Dg%2At%2Au%2Bg%2Am%2Av%2De%2As%2Av%2Df%2Am%2Ay%2Be%2At%2Ay%3Bc%5B11%5D%3Dg%2An%2Au%2Df%2Ap%2Au%2Dg%2Ak%2Av%2Be%2Ap%2Av%2Bf%2Ak%2Ay%2De%2An%2Ay%3Bc%5B15%5D%3Df%2Ap%2Am%2Dg%2An%2Am%2Bg%2Ak%2At%2De%2Ap%2At%2Df%2Ak%2As%2Be%2An%2As%3Bc%3De%2Ac%5B0%5D%2Bk%2Ac%5B4%5D%2Bm%2Ac%5B8%5D%2Bu%2Ac%5B12%5D%3B%0Aif%280%3D%3Dc%29%7Bif%28b%29throw%20Error%28%22Matrix4%2EgetInverse%28%29%3A%20can%27t%20invert%20matrix%2C%20determinant%20is%200%22%29%3Bconsole%2Ewarn%28%22Matrix4%2EgetInverse%28%29%3A%20can%27t%20invert%20matrix%2C%20determinant%20is%200%22%29%3Bthis%2Eidentity%28%29%3Breturn%20this%7Dthis%2EmultiplyScalar%281%2Fc%29%3Breturn%20this%7D%2Ctranslate%3Afunction%28a%29%7Bconsole%2Ewarn%28%22THREE%2EMatrix4%3A%20%2Etranslate%28%29%20has%20been%20removed%2E%22%29%7D%2CrotateX%3Afunction%28a%29%7Bconsole%2Ewarn%28%22THREE%2EMatrix4%3A%20%2ErotateX%28%29%20has%20been%20removed%2E%22%29%7D%2CrotateY%3Afunction%28a%29%7Bconsole%2Ewarn%28%22THREE%2EMatrix4%3A%20%2ErotateY%28%29%20has%20been%20removed%2E%22%29%7D%2CrotateZ%3Afunction%28a%29%7Bconsole%2Ewarn%28%22THREE%2EMatrix4%3A%20%2ErotateZ%28%29%20has%20been%20removed%2E%22%29%7D%2C%0ArotateByAxis%3Afunction%28a%2Cb%29%7Bconsole%2Ewarn%28%22THREE%2EMatrix4%3A%20%2ErotateByAxis%28%29%20has%20been%20removed%2E%22%29%7D%2Cscale%3Afunction%28a%29%7Bvar%20b%3Dthis%2Eelements%2Cc%3Da%2Ex%2Cd%3Da%2Ey%3Ba%3Da%2Ez%3Bb%5B0%5D%2A%3Dc%3Bb%5B4%5D%2A%3Dd%3Bb%5B8%5D%2A%3Da%3Bb%5B1%5D%2A%3Dc%3Bb%5B5%5D%2A%3Dd%3Bb%5B9%5D%2A%3Da%3Bb%5B2%5D%2A%3Dc%3Bb%5B6%5D%2A%3Dd%3Bb%5B10%5D%2A%3Da%3Bb%5B3%5D%2A%3Dc%3Bb%5B7%5D%2A%3Dd%3Bb%5B11%5D%2A%3Da%3Breturn%20this%7D%2CgetMaxScaleOnAxis%3Afunction%28%29%7Bvar%20a%3Dthis%2Eelements%3Breturn%20Math%2Esqrt%28Math%2Emax%28a%5B0%5D%2Aa%5B0%5D%2Ba%5B1%5D%2Aa%5B1%5D%2Ba%5B2%5D%2Aa%5B2%5D%2CMath%2Emax%28a%5B4%5D%2Aa%5B4%5D%2Ba%5B5%5D%2Aa%5B5%5D%2Ba%5B6%5D%2Aa%5B6%5D%2Ca%5B8%5D%2Aa%5B8%5D%2Ba%5B9%5D%2Aa%5B9%5D%2Ba%5B10%5D%2Aa%5B10%5D%29%29%29%7D%2CmakeTranslation%3Afunction%28a%2Cb%2Cc%29%7Bthis%2Eset%281%2C0%2C0%2Ca%2C0%2C1%2C0%2Cb%2C0%2C0%2C%0A1%2Cc%2C0%2C0%2C0%2C1%29%3Breturn%20this%7D%2CmakeRotationX%3Afunction%28a%29%7Bvar%20b%3DMath%2Ecos%28a%29%3Ba%3DMath%2Esin%28a%29%3Bthis%2Eset%281%2C0%2C0%2C0%2C0%2Cb%2C%2Da%2C0%2C0%2Ca%2Cb%2C0%2C0%2C0%2C0%2C1%29%3Breturn%20this%7D%2CmakeRotationY%3Afunction%28a%29%7Bvar%20b%3DMath%2Ecos%28a%29%3Ba%3DMath%2Esin%28a%29%3Bthis%2Eset%28b%2C0%2Ca%2C0%2C0%2C1%2C0%2C0%2C%2Da%2C0%2Cb%2C0%2C0%2C0%2C0%2C1%29%3Breturn%20this%7D%2CmakeRotationZ%3Afunction%28a%29%7Bvar%20b%3DMath%2Ecos%28a%29%3Ba%3DMath%2Esin%28a%29%3Bthis%2Eset%28b%2C%2Da%2C0%2C0%2Ca%2Cb%2C0%2C0%2C0%2C0%2C1%2C0%2C0%2C0%2C0%2C1%29%3Breturn%20this%7D%2CmakeRotationAxis%3Afunction%28a%2Cb%29%7Bvar%20c%3DMath%2Ecos%28b%29%2Cd%3DMath%2Esin%28b%29%2Ce%3D1%2Dc%2Cf%3Da%2Ex%2Cg%3Da%2Ey%2Ch%3Da%2Ez%2Ck%3De%2Af%2Cn%3De%2Ag%3Bthis%2Eset%28k%2Af%2Bc%2Ck%2Ag%2Dd%2Ah%2Ck%2Ah%2Bd%2Ag%2C0%2Ck%2A%0Ag%2Bd%2Ah%2Cn%2Ag%2Bc%2Cn%2Ah%2Dd%2Af%2C0%2Ck%2Ah%2Dd%2Ag%2Cn%2Ah%2Bd%2Af%2Ce%2Ah%2Ah%2Bc%2C0%2C0%2C0%2C0%2C1%29%3Breturn%20this%7D%2CmakeScale%3Afunction%28a%2Cb%2Cc%29%7Bthis%2Eset%28a%2C0%2C0%2C0%2C0%2Cb%2C0%2C0%2C0%2C0%2Cc%2C0%2C0%2C0%2C0%2C1%29%3Breturn%20this%7D%2Ccompose%3Afunction%28a%2Cb%2Cc%29%7Bthis%2EmakeRotationFromQuaternion%28b%29%3Bthis%2Escale%28c%29%3Bthis%2EsetPosition%28a%29%3Breturn%20this%7D%2Cdecompose%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%2Cb%3Dnew%20THREE%2EMatrix4%3Breturn%20function%28c%2Cd%2Ce%29%7Bvar%20f%3Dthis%2Eelements%2Cg%3Da%2Eset%28f%5B0%5D%2Cf%5B1%5D%2Cf%5B2%5D%29%2Elength%28%29%2Ch%3Da%2Eset%28f%5B4%5D%2Cf%5B5%5D%2Cf%5B6%5D%29%2Elength%28%29%2Ck%3Da%2Eset%28f%5B8%5D%2Cf%5B9%5D%2Cf%5B10%5D%29%2Elength%28%29%3B0%3Ethis%2Edeterminant%28%29%26%26%28g%3D%2Dg%29%3Bc%2Ex%3Df%5B12%5D%3B%0Ac%2Ey%3Df%5B13%5D%3Bc%2Ez%3Df%5B14%5D%3Bb%2Eelements%2Eset%28this%2Eelements%29%3Bc%3D1%2Fg%3Bvar%20f%3D1%2Fh%2Cn%3D1%2Fk%3Bb%2Eelements%5B0%5D%2A%3Dc%3Bb%2Eelements%5B1%5D%2A%3Dc%3Bb%2Eelements%5B2%5D%2A%3Dc%3Bb%2Eelements%5B4%5D%2A%3Df%3Bb%2Eelements%5B5%5D%2A%3Df%3Bb%2Eelements%5B6%5D%2A%3Df%3Bb%2Eelements%5B8%5D%2A%3Dn%3Bb%2Eelements%5B9%5D%2A%3Dn%3Bb%2Eelements%5B10%5D%2A%3Dn%3Bd%2EsetFromRotationMatrix%28b%29%3Be%2Ex%3Dg%3Be%2Ey%3Dh%3Be%2Ez%3Dk%3Breturn%20this%7D%7D%28%29%2CmakeFrustum%3Afunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%29%7Bvar%20g%3Dthis%2Eelements%3Bg%5B0%5D%3D2%2Ae%2F%28b%2Da%29%3Bg%5B4%5D%3D0%3Bg%5B8%5D%3D%28b%2Ba%29%2F%28b%2Da%29%3Bg%5B12%5D%3D0%3Bg%5B1%5D%3D0%3Bg%5B5%5D%3D2%2Ae%2F%28d%2Dc%29%3Bg%5B9%5D%3D%28d%2Bc%29%2F%28d%2Dc%29%3Bg%5B13%5D%3D0%3Bg%5B2%5D%3D0%3Bg%5B6%5D%3D0%3Bg%5B10%5D%3D%2D%28f%2Be%29%2F%28f%2De%29%3Bg%5B14%5D%3D%2D2%2Af%2Ae%2F%28f%2De%29%3Bg%5B3%5D%3D0%3Bg%5B7%5D%3D0%3B%0Ag%5B11%5D%3D%2D1%3Bg%5B15%5D%3D0%3Breturn%20this%7D%2CmakePerspective%3Afunction%28a%2Cb%2Cc%2Cd%29%7Ba%3Dc%2AMath%2Etan%28THREE%2EMath%2EdegToRad%28%2E5%2Aa%29%29%3Bvar%20e%3D%2Da%3Breturn%20this%2EmakeFrustum%28e%2Ab%2Ca%2Ab%2Ce%2Ca%2Cc%2Cd%29%7D%2CmakeOrthographic%3Afunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%29%7Bvar%20g%3Dthis%2Eelements%2Ch%3Db%2Da%2Ck%3Dc%2Dd%2Cn%3Df%2De%3Bg%5B0%5D%3D2%2Fh%3Bg%5B4%5D%3D0%3Bg%5B8%5D%3D0%3Bg%5B12%5D%3D%2D%28%28b%2Ba%29%2Fh%29%3Bg%5B1%5D%3D0%3Bg%5B5%5D%3D2%2Fk%3Bg%5B9%5D%3D0%3Bg%5B13%5D%3D%2D%28%28c%2Bd%29%2Fk%29%3Bg%5B2%5D%3D0%3Bg%5B6%5D%3D0%3Bg%5B10%5D%3D%2D2%2Fn%3Bg%5B14%5D%3D%2D%28%28f%2Be%29%2Fn%29%3Bg%5B3%5D%3D0%3Bg%5B7%5D%3D0%3Bg%5B11%5D%3D0%3Bg%5B15%5D%3D1%3Breturn%20this%7D%2CfromArray%3Afunction%28a%29%7Bthis%2Eelements%2Eset%28a%29%3Breturn%20this%7D%2CtoArray%3Afunction%28%29%7Bvar%20a%3Dthis%2Eelements%3Breturn%5Ba%5B0%5D%2C%0Aa%5B1%5D%2Ca%5B2%5D%2Ca%5B3%5D%2Ca%5B4%5D%2Ca%5B5%5D%2Ca%5B6%5D%2Ca%5B7%5D%2Ca%5B8%5D%2Ca%5B9%5D%2Ca%5B10%5D%2Ca%5B11%5D%2Ca%5B12%5D%2Ca%5B13%5D%2Ca%5B14%5D%2Ca%5B15%5D%5D%7D%2Cclone%3Afunction%28%29%7Breturn%28new%20THREE%2EMatrix4%29%2EfromArray%28this%2Eelements%29%7D%7D%3BTHREE%2ERay%3Dfunction%28a%2Cb%29%7Bthis%2Eorigin%3Dvoid%200%21%3D%3Da%3Fa%3Anew%20THREE%2EVector3%3Bthis%2Edirection%3Dvoid%200%21%3D%3Db%3Fb%3Anew%20THREE%2EVector3%7D%3B%0ATHREE%2ERay%2Eprototype%3D%7Bconstructor%3ATHREE%2ERay%2Cset%3Afunction%28a%2Cb%29%7Bthis%2Eorigin%2Ecopy%28a%29%3Bthis%2Edirection%2Ecopy%28b%29%3Breturn%20this%7D%2Ccopy%3Afunction%28a%29%7Bthis%2Eorigin%2Ecopy%28a%2Eorigin%29%3Bthis%2Edirection%2Ecopy%28a%2Edirection%29%3Breturn%20this%7D%2Cat%3Afunction%28a%2Cb%29%7Breturn%28b%7C%7Cnew%20THREE%2EVector3%29%2Ecopy%28this%2Edirection%29%2EmultiplyScalar%28a%29%2Eadd%28this%2Eorigin%29%7D%2Crecast%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%3Breturn%20function%28b%29%7Bthis%2Eorigin%2Ecopy%28this%2Eat%28b%2Ca%29%29%3Breturn%20this%7D%7D%28%29%2CclosestPointToPoint%3Afunction%28a%2Cb%29%7Bvar%20c%3Db%7C%7Cnew%20THREE%2EVector3%3Bc%2EsubVectors%28a%2Cthis%2Eorigin%29%3B%0Avar%20d%3Dc%2Edot%28this%2Edirection%29%3Breturn%200%3Ed%3Fc%2Ecopy%28this%2Eorigin%29%3Ac%2Ecopy%28this%2Edirection%29%2EmultiplyScalar%28d%29%2Eadd%28this%2Eorigin%29%7D%2CdistanceToPoint%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%3Breturn%20function%28b%29%7Bvar%20c%3Da%2EsubVectors%28b%2Cthis%2Eorigin%29%2Edot%28this%2Edirection%29%3Bif%280%3Ec%29return%20this%2Eorigin%2EdistanceTo%28b%29%3Ba%2Ecopy%28this%2Edirection%29%2EmultiplyScalar%28c%29%2Eadd%28this%2Eorigin%29%3Breturn%20a%2EdistanceTo%28b%29%7D%7D%28%29%2CdistanceSqToSegment%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%2Cb%3Dnew%20THREE%2EVector3%2Cc%3Dnew%20THREE%2EVector3%3Breturn%20function%28d%2Ce%2Cf%2Cg%29%7Ba%2Ecopy%28d%29%2Eadd%28e%29%2EmultiplyScalar%28%2E5%29%3B%0Ab%2Ecopy%28e%29%2Esub%28d%29%2Enormalize%28%29%3Bc%2Ecopy%28this%2Eorigin%29%2Esub%28a%29%3Bvar%20h%3D%2E5%2Ad%2EdistanceTo%28e%29%2Ck%3D%2Dthis%2Edirection%2Edot%28b%29%2Cn%3Dc%2Edot%28this%2Edirection%29%2Cp%3D%2Dc%2Edot%28b%29%2Cq%3Dc%2ElengthSq%28%29%2Cm%3DMath%2Eabs%281%2Dk%2Ak%29%2Ct%3B0%3Cm%3F%28d%3Dk%2Ap%2Dn%2Ce%3Dk%2An%2Dp%2Ct%3Dh%2Am%2C0%3C%3Dd%3Fe%3E%3D%2Dt%3Fe%3C%3Dt%3F%28h%3D1%2Fm%2Cd%2A%3Dh%2Ce%2A%3Dh%2Ck%3Dd%2A%28d%2Bk%2Ae%2B2%2An%29%2Be%2A%28k%2Ad%2Be%2B2%2Ap%29%2Bq%29%3A%28e%3Dh%2Cd%3DMath%2Emax%280%2C%2D%28k%2Ae%2Bn%29%29%2Ck%3D%2Dd%2Ad%2Be%2A%28e%2B2%2Ap%29%2Bq%29%3A%28e%3D%2Dh%2Cd%3DMath%2Emax%280%2C%2D%28k%2Ae%2Bn%29%29%2Ck%3D%2Dd%2Ad%2Be%2A%28e%2B2%2Ap%29%2Bq%29%3Ae%3C%3D%2Dt%3F%28d%3DMath%2Emax%280%2C%2D%28%2Dk%2Ah%2Bn%29%29%2Ce%3D0%3Cd%3F%2Dh%3AMath%2Emin%28Math%2Emax%28%2Dh%2C%2Dp%29%2Ch%29%2Ck%3D%2Dd%2Ad%2Be%2A%28e%2B2%2Ap%29%2Bq%29%3Ae%3C%3Dt%3F%28d%3D0%2Ce%3DMath%2Emin%28Math%2Emax%28%2Dh%2C%2Dp%29%2Ch%29%2Ck%3De%2A%28e%2B%0A2%2Ap%29%2Bq%29%3A%28d%3DMath%2Emax%280%2C%2D%28k%2Ah%2Bn%29%29%2Ce%3D0%3Cd%3Fh%3AMath%2Emin%28Math%2Emax%28%2Dh%2C%2Dp%29%2Ch%29%2Ck%3D%2Dd%2Ad%2Be%2A%28e%2B2%2Ap%29%2Bq%29%29%3A%28e%3D0%3Ck%3F%2Dh%3Ah%2Cd%3DMath%2Emax%280%2C%2D%28k%2Ae%2Bn%29%29%2Ck%3D%2Dd%2Ad%2Be%2A%28e%2B2%2Ap%29%2Bq%29%3Bf%26%26f%2Ecopy%28this%2Edirection%29%2EmultiplyScalar%28d%29%2Eadd%28this%2Eorigin%29%3Bg%26%26g%2Ecopy%28b%29%2EmultiplyScalar%28e%29%2Eadd%28a%29%3Breturn%20k%7D%7D%28%29%2CisIntersectionSphere%3Afunction%28a%29%7Breturn%20this%2EdistanceToPoint%28a%2Ecenter%29%3C%3Da%2Eradius%7D%2CintersectSphere%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%3Breturn%20function%28b%2Cc%29%7Ba%2EsubVectors%28b%2Ecenter%2Cthis%2Eorigin%29%3Bvar%20d%3Da%2Edot%28this%2Edirection%29%2Ce%3Da%2Edot%28a%29%2Dd%2Ad%2Cf%3Db%2Eradius%2Ab%2Eradius%3B%0Aif%28e%3Ef%29return%20null%3Bf%3DMath%2Esqrt%28f%2De%29%3Be%3Dd%2Df%3Bd%2B%3Df%3Breturn%200%3Ee%26%260%3Ed%3Fnull%3A0%3Ee%3Fthis%2Eat%28d%2Cc%29%3Athis%2Eat%28e%2Cc%29%7D%7D%28%29%2CisIntersectionPlane%3Afunction%28a%29%7Bvar%20b%3Da%2EdistanceToPoint%28this%2Eorigin%29%3Breturn%200%3D%3D%3Db%7C%7C0%3Ea%2Enormal%2Edot%28this%2Edirection%29%2Ab%3F%210%3A%211%7D%2CdistanceToPlane%3Afunction%28a%29%7Bvar%20b%3Da%2Enormal%2Edot%28this%2Edirection%29%3Bif%280%3D%3Db%29return%200%3D%3Da%2EdistanceToPoint%28this%2Eorigin%29%3F0%3Anull%3Ba%3D%2D%28this%2Eorigin%2Edot%28a%2Enormal%29%2Ba%2Econstant%29%2Fb%3Breturn%200%3C%3Da%3Fa%3Anull%7D%2CintersectPlane%3Afunction%28a%2Cb%29%7Bvar%20c%3Dthis%2EdistanceToPlane%28a%29%3Breturn%20null%3D%3D%3Dc%3Fnull%3Athis%2Eat%28c%2Cb%29%7D%2C%0AisIntersectionBox%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%3Breturn%20function%28b%29%7Breturn%20null%21%3D%3Dthis%2EintersectBox%28b%2Ca%29%7D%7D%28%29%2CintersectBox%3Afunction%28a%2Cb%29%7Bvar%20c%2Cd%2Ce%2Cf%2Cg%3Bd%3D1%2Fthis%2Edirection%2Ex%3Bf%3D1%2Fthis%2Edirection%2Ey%3Bg%3D1%2Fthis%2Edirection%2Ez%3Bvar%20h%3Dthis%2Eorigin%3B0%3C%3Dd%3F%28c%3D%28a%2Emin%2Ex%2Dh%2Ex%29%2Ad%2Cd%2A%3Da%2Emax%2Ex%2Dh%2Ex%29%3A%28c%3D%28a%2Emax%2Ex%2Dh%2Ex%29%2Ad%2Cd%2A%3Da%2Emin%2Ex%2Dh%2Ex%29%3B0%3C%3Df%3F%28e%3D%28a%2Emin%2Ey%2Dh%2Ey%29%2Af%2Cf%2A%3Da%2Emax%2Ey%2Dh%2Ey%29%3A%28e%3D%28a%2Emax%2Ey%2Dh%2Ey%29%2Af%2Cf%2A%3Da%2Emin%2Ey%2Dh%2Ey%29%3Bif%28c%3Ef%7C%7Ce%3Ed%29return%20null%3Bif%28e%3Ec%7C%7Cc%21%3D%3Dc%29c%3De%3Bif%28f%3Cd%7C%7Cd%21%3D%3Dd%29d%3Df%3B0%3C%3Dg%3F%28e%3D%28a%2Emin%2Ez%2Dh%2Ez%29%2Ag%2Cg%2A%3Da%2Emax%2Ez%2Dh%2Ez%29%3A%28e%3D%28a%2Emax%2Ez%2Dh%2Ez%29%2A%0Ag%2Cg%2A%3Da%2Emin%2Ez%2Dh%2Ez%29%3Bif%28c%3Eg%7C%7Ce%3Ed%29return%20null%3Bif%28e%3Ec%7C%7Cc%21%3D%3Dc%29c%3De%3Bif%28g%3Cd%7C%7Cd%21%3D%3Dd%29d%3Dg%3Breturn%200%3Ed%3Fnull%3Athis%2Eat%280%3C%3Dc%3Fc%3Ad%2Cb%29%7D%2CintersectTriangle%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%2Cb%3Dnew%20THREE%2EVector3%2Cc%3Dnew%20THREE%2EVector3%2Cd%3Dnew%20THREE%2EVector3%3Breturn%20function%28e%2Cf%2Cg%2Ch%2Ck%29%7Bb%2EsubVectors%28f%2Ce%29%3Bc%2EsubVectors%28g%2Ce%29%3Bd%2EcrossVectors%28b%2Cc%29%3Bf%3Dthis%2Edirection%2Edot%28d%29%3Bif%280%3Cf%29%7Bif%28h%29return%20null%3Bh%3D1%7Delse%20if%280%3Ef%29h%3D%2D1%2Cf%3D%2Df%3Belse%20return%20null%3Ba%2EsubVectors%28this%2Eorigin%2Ce%29%3Be%3Dh%2Athis%2Edirection%2Edot%28c%2EcrossVectors%28a%2Cc%29%29%3Bif%280%3Ee%29return%20null%3Bg%3Dh%2Athis%2Edirection%2Edot%28b%2Ecross%28a%29%29%3B%0Aif%280%3Eg%7C%7Ce%2Bg%3Ef%29return%20null%3Be%3D%2Dh%2Aa%2Edot%28d%29%3Breturn%200%3Ee%3Fnull%3Athis%2Eat%28e%2Ff%2Ck%29%7D%7D%28%29%2CapplyMatrix4%3Afunction%28a%29%7Bthis%2Edirection%2Eadd%28this%2Eorigin%29%2EapplyMatrix4%28a%29%3Bthis%2Eorigin%2EapplyMatrix4%28a%29%3Bthis%2Edirection%2Esub%28this%2Eorigin%29%3Bthis%2Edirection%2Enormalize%28%29%3Breturn%20this%7D%2Cequals%3Afunction%28a%29%7Breturn%20a%2Eorigin%2Eequals%28this%2Eorigin%29%26%26a%2Edirection%2Eequals%28this%2Edirection%29%7D%2Cclone%3Afunction%28%29%7Breturn%28new%20THREE%2ERay%29%2Ecopy%28this%29%7D%7D%3BTHREE%2ESphere%3Dfunction%28a%2Cb%29%7Bthis%2Ecenter%3Dvoid%200%21%3D%3Da%3Fa%3Anew%20THREE%2EVector3%3Bthis%2Eradius%3Dvoid%200%21%3D%3Db%3Fb%3A0%7D%3B%0ATHREE%2ESphere%2Eprototype%3D%7Bconstructor%3ATHREE%2ESphere%2Cset%3Afunction%28a%2Cb%29%7Bthis%2Ecenter%2Ecopy%28a%29%3Bthis%2Eradius%3Db%3Breturn%20this%7D%2CsetFromPoints%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EBox3%3Breturn%20function%28b%2Cc%29%7Bvar%20d%3Dthis%2Ecenter%3Bvoid%200%21%3D%3Dc%3Fd%2Ecopy%28c%29%3Aa%2EsetFromPoints%28b%29%2Ecenter%28d%29%3Bfor%28var%20e%3D0%2Cf%3D0%2Cg%3Db%2Elength%3Bf%3Cg%3Bf%2B%2B%29e%3DMath%2Emax%28e%2Cd%2EdistanceToSquared%28b%5Bf%5D%29%29%3Bthis%2Eradius%3DMath%2Esqrt%28e%29%3Breturn%20this%7D%7D%28%29%2Ccopy%3Afunction%28a%29%7Bthis%2Ecenter%2Ecopy%28a%2Ecenter%29%3Bthis%2Eradius%3Da%2Eradius%3Breturn%20this%7D%2Cempty%3Afunction%28%29%7Breturn%200%3E%3Dthis%2Eradius%7D%2CcontainsPoint%3Afunction%28a%29%7Breturn%20a%2EdistanceToSquared%28this%2Ecenter%29%3C%3D%0Athis%2Eradius%2Athis%2Eradius%7D%2CdistanceToPoint%3Afunction%28a%29%7Breturn%20a%2EdistanceTo%28this%2Ecenter%29%2Dthis%2Eradius%7D%2CintersectsSphere%3Afunction%28a%29%7Bvar%20b%3Dthis%2Eradius%2Ba%2Eradius%3Breturn%20a%2Ecenter%2EdistanceToSquared%28this%2Ecenter%29%3C%3Db%2Ab%7D%2CclampPoint%3Afunction%28a%2Cb%29%7Bvar%20c%3Dthis%2Ecenter%2EdistanceToSquared%28a%29%2Cd%3Db%7C%7Cnew%20THREE%2EVector3%3Bd%2Ecopy%28a%29%3Bc%3Ethis%2Eradius%2Athis%2Eradius%26%26%28d%2Esub%28this%2Ecenter%29%2Enormalize%28%29%2Cd%2EmultiplyScalar%28this%2Eradius%29%2Eadd%28this%2Ecenter%29%29%3Breturn%20d%7D%2CgetBoundingBox%3Afunction%28a%29%7Ba%3Da%7C%7Cnew%20THREE%2EBox3%3Ba%2Eset%28this%2Ecenter%2Cthis%2Ecenter%29%3Ba%2EexpandByScalar%28this%2Eradius%29%3B%0Areturn%20a%7D%2CapplyMatrix4%3Afunction%28a%29%7Bthis%2Ecenter%2EapplyMatrix4%28a%29%3Bthis%2Eradius%2A%3Da%2EgetMaxScaleOnAxis%28%29%3Breturn%20this%7D%2Ctranslate%3Afunction%28a%29%7Bthis%2Ecenter%2Eadd%28a%29%3Breturn%20this%7D%2Cequals%3Afunction%28a%29%7Breturn%20a%2Ecenter%2Eequals%28this%2Ecenter%29%26%26a%2Eradius%3D%3D%3Dthis%2Eradius%7D%2Cclone%3Afunction%28%29%7Breturn%28new%20THREE%2ESphere%29%2Ecopy%28this%29%7D%7D%3B%0ATHREE%2EFrustum%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%29%7Bthis%2Eplanes%3D%5Bvoid%200%21%3D%3Da%3Fa%3Anew%20THREE%2EPlane%2Cvoid%200%21%3D%3Db%3Fb%3Anew%20THREE%2EPlane%2Cvoid%200%21%3D%3Dc%3Fc%3Anew%20THREE%2EPlane%2Cvoid%200%21%3D%3Dd%3Fd%3Anew%20THREE%2EPlane%2Cvoid%200%21%3D%3De%3Fe%3Anew%20THREE%2EPlane%2Cvoid%200%21%3D%3Df%3Ff%3Anew%20THREE%2EPlane%5D%7D%3B%0ATHREE%2EFrustum%2Eprototype%3D%7Bconstructor%3ATHREE%2EFrustum%2Cset%3Afunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%29%7Bvar%20g%3Dthis%2Eplanes%3Bg%5B0%5D%2Ecopy%28a%29%3Bg%5B1%5D%2Ecopy%28b%29%3Bg%5B2%5D%2Ecopy%28c%29%3Bg%5B3%5D%2Ecopy%28d%29%3Bg%5B4%5D%2Ecopy%28e%29%3Bg%5B5%5D%2Ecopy%28f%29%3Breturn%20this%7D%2Ccopy%3Afunction%28a%29%7Bfor%28var%20b%3Dthis%2Eplanes%2Cc%3D0%3B6%3Ec%3Bc%2B%2B%29b%5Bc%5D%2Ecopy%28a%2Eplanes%5Bc%5D%29%3Breturn%20this%7D%2CsetFromMatrix%3Afunction%28a%29%7Bvar%20b%3Dthis%2Eplanes%2Cc%3Da%2Eelements%3Ba%3Dc%5B0%5D%3Bvar%20d%3Dc%5B1%5D%2Ce%3Dc%5B2%5D%2Cf%3Dc%5B3%5D%2Cg%3Dc%5B4%5D%2Ch%3Dc%5B5%5D%2Ck%3Dc%5B6%5D%2Cn%3Dc%5B7%5D%2Cp%3Dc%5B8%5D%2Cq%3Dc%5B9%5D%2Cm%3Dc%5B10%5D%2Ct%3Dc%5B11%5D%2Cs%3Dc%5B12%5D%2Cr%3Dc%5B13%5D%2Cu%3Dc%5B14%5D%2Cc%3Dc%5B15%5D%3Bb%5B0%5D%2EsetComponents%28f%2Da%2Cn%2Dg%2Ct%2Dp%2Cc%2Ds%29%2Enormalize%28%29%3Bb%5B1%5D%2EsetComponents%28f%2B%0Aa%2Cn%2Bg%2Ct%2Bp%2Cc%2Bs%29%2Enormalize%28%29%3Bb%5B2%5D%2EsetComponents%28f%2Bd%2Cn%2Bh%2Ct%2Bq%2Cc%2Br%29%2Enormalize%28%29%3Bb%5B3%5D%2EsetComponents%28f%2Dd%2Cn%2Dh%2Ct%2Dq%2Cc%2Dr%29%2Enormalize%28%29%3Bb%5B4%5D%2EsetComponents%28f%2De%2Cn%2Dk%2Ct%2Dm%2Cc%2Du%29%2Enormalize%28%29%3Bb%5B5%5D%2EsetComponents%28f%2Be%2Cn%2Bk%2Ct%2Bm%2Cc%2Bu%29%2Enormalize%28%29%3Breturn%20this%7D%2CintersectsObject%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2ESphere%3Breturn%20function%28b%29%7Bvar%20c%3Db%2Egeometry%3Bnull%3D%3D%3Dc%2EboundingSphere%26%26c%2EcomputeBoundingSphere%28%29%3Ba%2Ecopy%28c%2EboundingSphere%29%3Ba%2EapplyMatrix4%28b%2EmatrixWorld%29%3Breturn%20this%2EintersectsSphere%28a%29%7D%7D%28%29%2CintersectsSphere%3Afunction%28a%29%7Bvar%20b%3Dthis%2Eplanes%2C%0Ac%3Da%2Ecenter%3Ba%3D%2Da%2Eradius%3Bfor%28var%20d%3D0%3B6%3Ed%3Bd%2B%2B%29if%28b%5Bd%5D%2EdistanceToPoint%28c%29%3Ca%29return%211%3Breturn%210%7D%2CintersectsBox%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%2Cb%3Dnew%20THREE%2EVector3%3Breturn%20function%28c%29%7Bfor%28var%20d%3Dthis%2Eplanes%2Ce%3D0%3B6%3Ee%3Be%2B%2B%29%7Bvar%20f%3Dd%5Be%5D%3Ba%2Ex%3D0%3Cf%2Enormal%2Ex%3Fc%2Emin%2Ex%3Ac%2Emax%2Ex%3Bb%2Ex%3D0%3Cf%2Enormal%2Ex%3Fc%2Emax%2Ex%3Ac%2Emin%2Ex%3Ba%2Ey%3D0%3Cf%2Enormal%2Ey%3Fc%2Emin%2Ey%3Ac%2Emax%2Ey%3Bb%2Ey%3D0%3Cf%2Enormal%2Ey%3Fc%2Emax%2Ey%3Ac%2Emin%2Ey%3Ba%2Ez%3D0%3Cf%2Enormal%2Ez%3Fc%2Emin%2Ez%3Ac%2Emax%2Ez%3Bb%2Ez%3D0%3Cf%2Enormal%2Ez%3Fc%2Emax%2Ez%3Ac%2Emin%2Ez%3Bvar%20g%3Df%2EdistanceToPoint%28a%29%2Cf%3Df%2EdistanceToPoint%28b%29%3Bif%280%3Eg%26%260%3Ef%29return%211%7Dreturn%210%7D%7D%28%29%2C%0AcontainsPoint%3Afunction%28a%29%7Bfor%28var%20b%3Dthis%2Eplanes%2Cc%3D0%3B6%3Ec%3Bc%2B%2B%29if%280%3Eb%5Bc%5D%2EdistanceToPoint%28a%29%29return%211%3Breturn%210%7D%2Cclone%3Afunction%28%29%7Breturn%28new%20THREE%2EFrustum%29%2Ecopy%28this%29%7D%7D%3BTHREE%2EPlane%3Dfunction%28a%2Cb%29%7Bthis%2Enormal%3Dvoid%200%21%3D%3Da%3Fa%3Anew%20THREE%2EVector3%281%2C0%2C0%29%3Bthis%2Econstant%3Dvoid%200%21%3D%3Db%3Fb%3A0%7D%3B%0ATHREE%2EPlane%2Eprototype%3D%7Bconstructor%3ATHREE%2EPlane%2Cset%3Afunction%28a%2Cb%29%7Bthis%2Enormal%2Ecopy%28a%29%3Bthis%2Econstant%3Db%3Breturn%20this%7D%2CsetComponents%3Afunction%28a%2Cb%2Cc%2Cd%29%7Bthis%2Enormal%2Eset%28a%2Cb%2Cc%29%3Bthis%2Econstant%3Dd%3Breturn%20this%7D%2CsetFromNormalAndCoplanarPoint%3Afunction%28a%2Cb%29%7Bthis%2Enormal%2Ecopy%28a%29%3Bthis%2Econstant%3D%2Db%2Edot%28this%2Enormal%29%3Breturn%20this%7D%2CsetFromCoplanarPoints%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%2Cb%3Dnew%20THREE%2EVector3%3Breturn%20function%28c%2Cd%2Ce%29%7Bd%3Da%2EsubVectors%28e%2Cd%29%2Ecross%28b%2EsubVectors%28c%2Cd%29%29%2Enormalize%28%29%3Bthis%2EsetFromNormalAndCoplanarPoint%28d%2C%0Ac%29%3Breturn%20this%7D%7D%28%29%2Ccopy%3Afunction%28a%29%7Bthis%2Enormal%2Ecopy%28a%2Enormal%29%3Bthis%2Econstant%3Da%2Econstant%3Breturn%20this%7D%2Cnormalize%3Afunction%28%29%7Bvar%20a%3D1%2Fthis%2Enormal%2Elength%28%29%3Bthis%2Enormal%2EmultiplyScalar%28a%29%3Bthis%2Econstant%2A%3Da%3Breturn%20this%7D%2Cnegate%3Afunction%28%29%7Bthis%2Econstant%2A%3D%2D1%3Bthis%2Enormal%2Enegate%28%29%3Breturn%20this%7D%2CdistanceToPoint%3Afunction%28a%29%7Breturn%20this%2Enormal%2Edot%28a%29%2Bthis%2Econstant%7D%2CdistanceToSphere%3Afunction%28a%29%7Breturn%20this%2EdistanceToPoint%28a%2Ecenter%29%2Da%2Eradius%7D%2CprojectPoint%3Afunction%28a%2Cb%29%7Breturn%20this%2EorthoPoint%28a%2Cb%29%2Esub%28a%29%2Enegate%28%29%7D%2CorthoPoint%3Afunction%28a%2C%0Ab%29%7Bvar%20c%3Dthis%2EdistanceToPoint%28a%29%3Breturn%28b%7C%7Cnew%20THREE%2EVector3%29%2Ecopy%28this%2Enormal%29%2EmultiplyScalar%28c%29%7D%2CisIntersectionLine%3Afunction%28a%29%7Bvar%20b%3Dthis%2EdistanceToPoint%28a%2Estart%29%3Ba%3Dthis%2EdistanceToPoint%28a%2Eend%29%3Breturn%200%3Eb%26%260%3Ca%7C%7C0%3Ea%26%260%3Cb%7D%2CintersectLine%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%3Breturn%20function%28b%2Cc%29%7Bvar%20d%3Dc%7C%7Cnew%20THREE%2EVector3%2Ce%3Db%2Edelta%28a%29%2Cf%3Dthis%2Enormal%2Edot%28e%29%3Bif%280%3D%3Df%29%7Bif%280%3D%3Dthis%2EdistanceToPoint%28b%2Estart%29%29return%20d%2Ecopy%28b%2Estart%29%7Delse%20return%20f%3D%2D%28b%2Estart%2Edot%28this%2Enormal%29%2Bthis%2Econstant%29%2Ff%2C0%3Ef%7C%7C1%3Cf%3Fvoid%200%3Ad%2Ecopy%28e%29%2EmultiplyScalar%28f%29%2Eadd%28b%2Estart%29%7D%7D%28%29%2C%0AcoplanarPoint%3Afunction%28a%29%7Breturn%28a%7C%7Cnew%20THREE%2EVector3%29%2Ecopy%28this%2Enormal%29%2EmultiplyScalar%28%2Dthis%2Econstant%29%7D%2CapplyMatrix4%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%2Cb%3Dnew%20THREE%2EVector3%2Cc%3Dnew%20THREE%2EMatrix3%3Breturn%20function%28d%2Ce%29%7Bvar%20f%3De%7C%7Cc%2EgetNormalMatrix%28d%29%2Cf%3Da%2Ecopy%28this%2Enormal%29%2EapplyMatrix3%28f%29%2Cg%3Dthis%2EcoplanarPoint%28b%29%3Bg%2EapplyMatrix4%28d%29%3Bthis%2EsetFromNormalAndCoplanarPoint%28f%2Cg%29%3Breturn%20this%7D%7D%28%29%2Ctranslate%3Afunction%28a%29%7Bthis%2Econstant%2D%3Da%2Edot%28this%2Enormal%29%3Breturn%20this%7D%2Cequals%3Afunction%28a%29%7Breturn%20a%2Enormal%2Eequals%28this%2Enormal%29%26%26%0Aa%2Econstant%3D%3Dthis%2Econstant%7D%2Cclone%3Afunction%28%29%7Breturn%28new%20THREE%2EPlane%29%2Ecopy%28this%29%7D%7D%3B%0ATHREE%2EMath%3D%7BgenerateUUID%3Afunction%28%29%7Bvar%20a%3D%220123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz%22%2Esplit%28%22%22%29%2Cb%3DArray%2836%29%2Cc%3D0%2Cd%3Breturn%20function%28%29%7Bfor%28var%20e%3D0%3B36%3Ee%3Be%2B%2B%298%3D%3De%7C%7C13%3D%3De%7C%7C18%3D%3De%7C%7C23%3D%3De%3Fb%5Be%5D%3D%22%2D%22%3A14%3D%3De%3Fb%5Be%5D%3D%224%22%3A%282%3E%3Dc%26%26%28c%3D33554432%2B16777216%2AMath%2Erandom%28%29%7C0%29%2Cd%3Dc%2615%2Cc%3E%3E%3D4%2Cb%5Be%5D%3Da%5B19%3D%3De%3Fd%263%7C8%3Ad%5D%29%3Breturn%20b%2Ejoin%28%22%22%29%7D%7D%28%29%2Cclamp%3Afunction%28a%2Cb%2Cc%29%7Breturn%20a%3Cb%3Fb%3Aa%3Ec%3Fc%3Aa%7D%2CclampBottom%3Afunction%28a%2Cb%29%7Breturn%20a%3Cb%3Fb%3Aa%7D%2CmapLinear%3Afunction%28a%2Cb%2Cc%2Cd%2Ce%29%7Breturn%20d%2B%28a%2Db%29%2A%28e%2Dd%29%2F%28c%2Db%29%7D%2Csmoothstep%3Afunction%28a%2Cb%2Cc%29%7Bif%28a%3C%3D%0Ab%29return%200%3Bif%28a%3E%3Dc%29return%201%3Ba%3D%28a%2Db%29%2F%28c%2Db%29%3Breturn%20a%2Aa%2A%283%2D2%2Aa%29%7D%2Csmootherstep%3Afunction%28a%2Cb%2Cc%29%7Bif%28a%3C%3Db%29return%200%3Bif%28a%3E%3Dc%29return%201%3Ba%3D%28a%2Db%29%2F%28c%2Db%29%3Breturn%20a%2Aa%2Aa%2A%28a%2A%286%2Aa%2D15%29%2B10%29%7D%2Crandom16%3Afunction%28%29%7Breturn%2865280%2AMath%2Erandom%28%29%2B255%2AMath%2Erandom%28%29%29%2F65535%7D%2CrandInt%3Afunction%28a%2Cb%29%7Breturn%20Math%2Efloor%28this%2ErandFloat%28a%2Cb%29%29%7D%2CrandFloat%3Afunction%28a%2Cb%29%7Breturn%20a%2BMath%2Erandom%28%29%2A%28b%2Da%29%7D%2CrandFloatSpread%3Afunction%28a%29%7Breturn%20a%2A%28%2E5%2DMath%2Erandom%28%29%29%7D%2CdegToRad%3Afunction%28%29%7Bvar%20a%3DMath%2EPI%2F180%3Breturn%20function%28b%29%7Breturn%20b%2Aa%7D%7D%28%29%2CradToDeg%3Afunction%28%29%7Bvar%20a%3D%0A180%2FMath%2EPI%3Breturn%20function%28b%29%7Breturn%20b%2Aa%7D%7D%28%29%2CisPowerOfTwo%3Afunction%28a%29%7Breturn%200%3D%3D%3D%28a%26a%2D1%29%26%260%21%3D%3Da%7D%7D%3B%0ATHREE%2ESpline%3Dfunction%28a%29%7Bfunction%20b%28a%2Cb%2Cc%2Cd%2Ce%2Cf%2Cg%29%7Ba%3D%2E5%2A%28c%2Da%29%3Bd%3D%2E5%2A%28d%2Db%29%3Breturn%282%2A%28b%2Dc%29%2Ba%2Bd%29%2Ag%2B%28%2D3%2A%28b%2Dc%29%2D2%2Aa%2Dd%29%2Af%2Ba%2Ae%2Bb%7Dthis%2Epoints%3Da%3Bvar%20c%3D%5B%5D%2Cd%3D%7Bx%3A0%2Cy%3A0%2Cz%3A0%7D%2Ce%2Cf%2Cg%2Ch%2Ck%2Cn%2Cp%2Cq%2Cm%3Bthis%2EinitFromArray%3Dfunction%28a%29%7Bthis%2Epoints%3D%5B%5D%3Bfor%28var%20b%3D0%3Bb%3Ca%2Elength%3Bb%2B%2B%29this%2Epoints%5Bb%5D%3D%7Bx%3Aa%5Bb%5D%5B0%5D%2Cy%3Aa%5Bb%5D%5B1%5D%2Cz%3Aa%5Bb%5D%5B2%5D%7D%7D%3Bthis%2EgetPoint%3Dfunction%28a%29%7Be%3D%28this%2Epoints%2Elength%2D1%29%2Aa%3Bf%3DMath%2Efloor%28e%29%3Bg%3De%2Df%3Bc%5B0%5D%3D0%3D%3D%3Df%3Ff%3Af%2D1%3Bc%5B1%5D%3Df%3Bc%5B2%5D%3Df%3Ethis%2Epoints%2Elength%2D2%3Fthis%2Epoints%2Elength%2D1%3Af%2B1%3Bc%5B3%5D%3Df%3Ethis%2Epoints%2Elength%2D3%3Fthis%2Epoints%2Elength%2D1%3Af%2B%0A2%3Bn%3Dthis%2Epoints%5Bc%5B0%5D%5D%3Bp%3Dthis%2Epoints%5Bc%5B1%5D%5D%3Bq%3Dthis%2Epoints%5Bc%5B2%5D%5D%3Bm%3Dthis%2Epoints%5Bc%5B3%5D%5D%3Bh%3Dg%2Ag%3Bk%3Dg%2Ah%3Bd%2Ex%3Db%28n%2Ex%2Cp%2Ex%2Cq%2Ex%2Cm%2Ex%2Cg%2Ch%2Ck%29%3Bd%2Ey%3Db%28n%2Ey%2Cp%2Ey%2Cq%2Ey%2Cm%2Ey%2Cg%2Ch%2Ck%29%3Bd%2Ez%3Db%28n%2Ez%2Cp%2Ez%2Cq%2Ez%2Cm%2Ez%2Cg%2Ch%2Ck%29%3Breturn%20d%7D%3Bthis%2EgetControlPointsArray%3Dfunction%28%29%7Bvar%20a%2Cb%2Cc%3Dthis%2Epoints%2Elength%2Cd%3D%5B%5D%3Bfor%28a%3D0%3Ba%3Cc%3Ba%2B%2B%29b%3Dthis%2Epoints%5Ba%5D%2Cd%5Ba%5D%3D%5Bb%2Ex%2Cb%2Ey%2Cb%2Ez%5D%3Breturn%20d%7D%3Bthis%2EgetLength%3Dfunction%28a%29%7Bvar%20b%2Cc%2Cd%2Ce%3Db%3Db%3D0%2Cf%3Dnew%20THREE%2EVector3%2Cg%3Dnew%20THREE%2EVector3%2Ch%3D%5B%5D%2Ck%3D0%3Bh%5B0%5D%3D0%3Ba%7C%7C%28a%3D100%29%3Bc%3Dthis%2Epoints%2Elength%2Aa%3Bf%2Ecopy%28this%2Epoints%5B0%5D%29%3Bfor%28a%3D1%3Ba%3Cc%3Ba%2B%2B%29b%3D%0Aa%2Fc%2Cd%3Dthis%2EgetPoint%28b%29%2Cg%2Ecopy%28d%29%2Ck%2B%3Dg%2EdistanceTo%28f%29%2Cf%2Ecopy%28d%29%2Cb%2A%3Dthis%2Epoints%2Elength%2D1%2Cb%3DMath%2Efloor%28b%29%2Cb%21%3De%26%26%28h%5Bb%5D%3Dk%2Ce%3Db%29%3Bh%5Bh%2Elength%5D%3Dk%3Breturn%7Bchunks%3Ah%2Ctotal%3Ak%7D%7D%3Bthis%2EreparametrizeByArcLength%3Dfunction%28a%29%7Bvar%20b%2Cc%2Cd%2Ce%2Cf%2Cg%2Ch%3D%5B%5D%2Ck%3Dnew%20THREE%2EVector3%2Cm%3Dthis%2EgetLength%28%29%3Bh%2Epush%28k%2Ecopy%28this%2Epoints%5B0%5D%29%2Eclone%28%29%29%3Bfor%28b%3D1%3Bb%3Cthis%2Epoints%2Elength%3Bb%2B%2B%29%7Bc%3Dm%2Echunks%5Bb%5D%2Dm%2Echunks%5Bb%2D1%5D%3Bg%3DMath%2Eceil%28a%2Ac%2Fm%2Etotal%29%3Be%3D%28b%2D1%29%2F%28this%2Epoints%2Elength%2D1%29%3Bf%3Db%2F%28this%2Epoints%2Elength%2D1%29%3Bfor%28c%3D1%3Bc%3Cg%2D1%3Bc%2B%2B%29d%3De%2B1%2Fg%2Ac%2A%28f%2De%29%2Cd%3Dthis%2EgetPoint%28d%29%2Ch%2Epush%28k%2Ecopy%28d%29%2Eclone%28%29%29%3B%0Ah%2Epush%28k%2Ecopy%28this%2Epoints%5Bb%5D%29%2Eclone%28%29%29%7Dthis%2Epoints%3Dh%7D%7D%3BTHREE%2ETriangle%3Dfunction%28a%2Cb%2Cc%29%7Bthis%2Ea%3Dvoid%200%21%3D%3Da%3Fa%3Anew%20THREE%2EVector3%3Bthis%2Eb%3Dvoid%200%21%3D%3Db%3Fb%3Anew%20THREE%2EVector3%3Bthis%2Ec%3Dvoid%200%21%3D%3Dc%3Fc%3Anew%20THREE%2EVector3%7D%3BTHREE%2ETriangle%2Enormal%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%3Breturn%20function%28b%2Cc%2Cd%2Ce%29%7Be%3De%7C%7Cnew%20THREE%2EVector3%3Be%2EsubVectors%28d%2Cc%29%3Ba%2EsubVectors%28b%2Cc%29%3Be%2Ecross%28a%29%3Bb%3De%2ElengthSq%28%29%3Breturn%200%3Cb%3Fe%2EmultiplyScalar%281%2FMath%2Esqrt%28b%29%29%3Ae%2Eset%280%2C0%2C0%29%7D%7D%28%29%3B%0ATHREE%2ETriangle%2EbarycoordFromPoint%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%2Cb%3Dnew%20THREE%2EVector3%2Cc%3Dnew%20THREE%2EVector3%3Breturn%20function%28d%2Ce%2Cf%2Cg%2Ch%29%7Ba%2EsubVectors%28g%2Ce%29%3Bb%2EsubVectors%28f%2Ce%29%3Bc%2EsubVectors%28d%2Ce%29%3Bd%3Da%2Edot%28a%29%3Be%3Da%2Edot%28b%29%3Bf%3Da%2Edot%28c%29%3Bvar%20k%3Db%2Edot%28b%29%3Bg%3Db%2Edot%28c%29%3Bvar%20n%3Dd%2Ak%2De%2Ae%3Bh%3Dh%7C%7Cnew%20THREE%2EVector3%3Bif%280%3D%3Dn%29return%20h%2Eset%28%2D2%2C%2D1%2C%2D1%29%3Bn%3D1%2Fn%3Bk%3D%28k%2Af%2De%2Ag%29%2An%3Bd%3D%28d%2Ag%2De%2Af%29%2An%3Breturn%20h%2Eset%281%2Dk%2Dd%2Cd%2Ck%29%7D%7D%28%29%3B%0ATHREE%2ETriangle%2EcontainsPoint%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%3Breturn%20function%28b%2Cc%2Cd%2Ce%29%7Bb%3DTHREE%2ETriangle%2EbarycoordFromPoint%28b%2Cc%2Cd%2Ce%2Ca%29%3Breturn%200%3C%3Db%2Ex%26%260%3C%3Db%2Ey%26%261%3E%3Db%2Ex%2Bb%2Ey%7D%7D%28%29%3B%0ATHREE%2ETriangle%2Eprototype%3D%7Bconstructor%3ATHREE%2ETriangle%2Cset%3Afunction%28a%2Cb%2Cc%29%7Bthis%2Ea%2Ecopy%28a%29%3Bthis%2Eb%2Ecopy%28b%29%3Bthis%2Ec%2Ecopy%28c%29%3Breturn%20this%7D%2CsetFromPointsAndIndices%3Afunction%28a%2Cb%2Cc%2Cd%29%7Bthis%2Ea%2Ecopy%28a%5Bb%5D%29%3Bthis%2Eb%2Ecopy%28a%5Bc%5D%29%3Bthis%2Ec%2Ecopy%28a%5Bd%5D%29%3Breturn%20this%7D%2Ccopy%3Afunction%28a%29%7Bthis%2Ea%2Ecopy%28a%2Ea%29%3Bthis%2Eb%2Ecopy%28a%2Eb%29%3Bthis%2Ec%2Ecopy%28a%2Ec%29%3Breturn%20this%7D%2Carea%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%2Cb%3Dnew%20THREE%2EVector3%3Breturn%20function%28%29%7Ba%2EsubVectors%28this%2Ec%2Cthis%2Eb%29%3Bb%2EsubVectors%28this%2Ea%2Cthis%2Eb%29%3Breturn%2E5%2Aa%2Ecross%28b%29%2Elength%28%29%7D%7D%28%29%2Cmidpoint%3Afunction%28a%29%7Breturn%28a%7C%7C%0Anew%20THREE%2EVector3%29%2EaddVectors%28this%2Ea%2Cthis%2Eb%29%2Eadd%28this%2Ec%29%2EmultiplyScalar%281%2F3%29%7D%2Cnormal%3Afunction%28a%29%7Breturn%20THREE%2ETriangle%2Enormal%28this%2Ea%2Cthis%2Eb%2Cthis%2Ec%2Ca%29%7D%2Cplane%3Afunction%28a%29%7Breturn%28a%7C%7Cnew%20THREE%2EPlane%29%2EsetFromCoplanarPoints%28this%2Ea%2Cthis%2Eb%2Cthis%2Ec%29%7D%2CbarycoordFromPoint%3Afunction%28a%2Cb%29%7Breturn%20THREE%2ETriangle%2EbarycoordFromPoint%28a%2Cthis%2Ea%2Cthis%2Eb%2Cthis%2Ec%2Cb%29%7D%2CcontainsPoint%3Afunction%28a%29%7Breturn%20THREE%2ETriangle%2EcontainsPoint%28a%2Cthis%2Ea%2Cthis%2Eb%2Cthis%2Ec%29%7D%2Cequals%3Afunction%28a%29%7Breturn%20a%2Ea%2Eequals%28this%2Ea%29%26%26a%2Eb%2Eequals%28this%2Eb%29%26%26a%2Ec%2Eequals%28this%2Ec%29%7D%2C%0Aclone%3Afunction%28%29%7Breturn%28new%20THREE%2ETriangle%29%2Ecopy%28this%29%7D%7D%3BTHREE%2EClock%3Dfunction%28a%29%7Bthis%2EautoStart%3Dvoid%200%21%3D%3Da%3Fa%3A%210%3Bthis%2EelapsedTime%3Dthis%2EoldTime%3Dthis%2EstartTime%3D0%3Bthis%2Erunning%3D%211%7D%3B%0ATHREE%2EClock%2Eprototype%3D%7Bconstructor%3ATHREE%2EClock%2Cstart%3Afunction%28%29%7Bthis%2EoldTime%3Dthis%2EstartTime%3Dvoid%200%21%3D%3Dself%2Eperformance%26%26void%200%21%3D%3Dself%2Eperformance%2Enow%3Fself%2Eperformance%2Enow%28%29%3ADate%2Enow%28%29%3Bthis%2Erunning%3D%210%7D%2Cstop%3Afunction%28%29%7Bthis%2EgetElapsedTime%28%29%3Bthis%2Erunning%3D%211%7D%2CgetElapsedTime%3Afunction%28%29%7Bthis%2EgetDelta%28%29%3Breturn%20this%2EelapsedTime%7D%2CgetDelta%3Afunction%28%29%7Bvar%20a%3D0%3Bthis%2EautoStart%26%26%21this%2Erunning%26%26this%2Estart%28%29%3Bif%28this%2Erunning%29%7Bvar%20b%3Dvoid%200%21%3D%3Dself%2Eperformance%26%26void%200%21%3D%3Dself%2Eperformance%2Enow%3Fself%2Eperformance%2Enow%28%29%3ADate%2Enow%28%29%2C%0Aa%3D%2E001%2A%28b%2Dthis%2EoldTime%29%3Bthis%2EoldTime%3Db%3Bthis%2EelapsedTime%2B%3Da%7Dreturn%20a%7D%7D%3BTHREE%2EEventDispatcher%3Dfunction%28%29%7B%7D%3B%0ATHREE%2EEventDispatcher%2Eprototype%3D%7Bconstructor%3ATHREE%2EEventDispatcher%2Capply%3Afunction%28a%29%7Ba%2EaddEventListener%3DTHREE%2EEventDispatcher%2Eprototype%2EaddEventListener%3Ba%2EhasEventListener%3DTHREE%2EEventDispatcher%2Eprototype%2EhasEventListener%3Ba%2EremoveEventListener%3DTHREE%2EEventDispatcher%2Eprototype%2EremoveEventListener%3Ba%2EdispatchEvent%3DTHREE%2EEventDispatcher%2Eprototype%2EdispatchEvent%7D%2CaddEventListener%3Afunction%28a%2Cb%29%7Bvoid%200%3D%3D%3Dthis%2E%5Flisteners%26%26%28this%2E%5Flisteners%3D%7B%7D%29%3Bvar%20c%3Dthis%2E%5Flisteners%3Bvoid%200%3D%3D%3Dc%5Ba%5D%26%26%28c%5Ba%5D%3D%5B%5D%29%3B%2D1%3D%3D%3Dc%5Ba%5D%2EindexOf%28b%29%26%26%0Ac%5Ba%5D%2Epush%28b%29%7D%2ChasEventListener%3Afunction%28a%2Cb%29%7Bif%28void%200%3D%3D%3Dthis%2E%5Flisteners%29return%211%3Bvar%20c%3Dthis%2E%5Flisteners%3Breturn%20void%200%21%3D%3Dc%5Ba%5D%26%26%2D1%21%3D%3Dc%5Ba%5D%2EindexOf%28b%29%3F%210%3A%211%7D%2CremoveEventListener%3Afunction%28a%2Cb%29%7Bif%28void%200%21%3D%3Dthis%2E%5Flisteners%29%7Bvar%20c%3Dthis%2E%5Flisteners%5Ba%5D%3Bif%28void%200%21%3D%3Dc%29%7Bvar%20d%3Dc%2EindexOf%28b%29%3B%2D1%21%3D%3Dd%26%26c%2Esplice%28d%2C1%29%7D%7D%7D%2CdispatchEvent%3Afunction%28a%29%7Bif%28void%200%21%3D%3Dthis%2E%5Flisteners%29%7Bvar%20b%3Dthis%2E%5Flisteners%5Ba%2Etype%5D%3Bif%28void%200%21%3D%3Db%29%7Ba%2Etarget%3Dthis%3Bfor%28var%20c%3D%5B%5D%2Cd%3Db%2Elength%2Ce%3D0%3Be%3Cd%3Be%2B%2B%29c%5Be%5D%3Db%5Be%5D%3Bfor%28e%3D0%3Be%3Cd%3Be%2B%2B%29c%5Be%5D%2Ecall%28this%2Ca%29%7D%7D%7D%7D%3B%0A%28function%28a%29%7Ba%2ERaycaster%3Dfunction%28b%2Cc%2Cf%2Cg%29%7Bthis%2Eray%3Dnew%20a%2ERay%28b%2Cc%29%3Bthis%2Enear%3Df%7C%7C0%3Bthis%2Efar%3Dg%7C%7CInfinity%3Bthis%2Eparams%3D%7BSprite%3A%7B%7D%2CMesh%3A%7B%7D%2CPointCloud%3A%7Bthreshold%3A1%7D%2CLOD%3A%7B%7D%2CLine%3A%7B%7D%7D%7D%3Bvar%20b%3Dfunction%28a%2Cb%29%7Breturn%20a%2Edistance%2Db%2Edistance%7D%2Cc%3Dfunction%28a%2Cb%2Cf%2Cg%29%7Ba%2Eraycast%28b%2Cf%29%3Bif%28%210%3D%3D%3Dg%29%7Ba%3Da%2Echildren%3Bg%3D0%3Bfor%28var%20h%3Da%2Elength%3Bg%3Ch%3Bg%2B%2B%29c%28a%5Bg%5D%2Cb%2Cf%2C%210%29%7D%7D%3Ba%2ERaycaster%2Eprototype%3D%7Bconstructor%3Aa%2ERaycaster%2Cprecision%3A1E%2D4%2ClinePrecision%3A1%2Cset%3Afunction%28a%2Cb%29%7Bthis%2Eray%2Eset%28a%2Cb%29%7D%2CsetFromCamera%3Afunction%28b%2Cc%29%7Bc%20instanceof%20a%2EPerspectiveCamera%3F%0A%28this%2Eray%2Eorigin%2Ecopy%28c%2Eposition%29%2Cthis%2Eray%2Edirection%2Eset%28b%2Ex%2Cb%2Ey%2C%2E5%29%2Eunproject%28c%29%2Esub%28c%2Eposition%29%2Enormalize%28%29%29%3Ac%20instanceof%20a%2EOrthographicCamera%3F%28this%2Eray%2Eorigin%2Eset%28b%2Ex%2Cb%2Ey%2C%2D1%29%2Eunproject%28c%29%2Cthis%2Eray%2Edirection%2Eset%280%2C0%2C%2D1%29%2EtransformDirection%28c%2EmatrixWorld%29%29%3Aconsole%2Eerror%28%22THREE%2ERaycaster%3A%20Unsupported%20camera%20type%2E%22%29%7D%2CintersectObject%3Afunction%28a%2Ce%29%7Bvar%20f%3D%5B%5D%3Bc%28a%2Cthis%2Cf%2Ce%29%3Bf%2Esort%28b%29%3Breturn%20f%7D%2CintersectObjects%3Afunction%28a%2Ce%29%7Bvar%20f%3D%5B%5D%3Bif%28%211%3D%3D%3Da%20instanceof%20Array%29return%20console%2Elog%28%22THREE%2ERaycaster%2EintersectObjects%3A%20objects%20is%20not%20an%20Array%2E%22%29%2C%0Af%3Bfor%28var%20g%3D0%2Ch%3Da%2Elength%3Bg%3Ch%3Bg%2B%2B%29c%28a%5Bg%5D%2Cthis%2Cf%2Ce%29%3Bf%2Esort%28b%29%3Breturn%20f%7D%7D%7D%29%28THREE%29%3B%0ATHREE%2EObject3D%3Dfunction%28%29%7BObject%2EdefineProperty%28this%2C%22id%22%2C%7Bvalue%3ATHREE%2EObject3DIdCount%2B%2B%7D%29%3Bthis%2Euuid%3DTHREE%2EMath%2EgenerateUUID%28%29%3Bthis%2Ename%3D%22%22%3Bthis%2Etype%3D%22Object3D%22%3Bthis%2Eparent%3Dvoid%200%3Bthis%2Echildren%3D%5B%5D%3Bthis%2Eup%3DTHREE%2EObject3D%2EDefaultUp%2Eclone%28%29%3Bvar%20a%3Dnew%20THREE%2EVector3%2Cb%3Dnew%20THREE%2EEuler%2Cc%3Dnew%20THREE%2EQuaternion%2Cd%3Dnew%20THREE%2EVector3%281%2C1%2C1%29%3Bb%2EonChange%28function%28%29%7Bc%2EsetFromEuler%28b%2C%211%29%7D%29%3Bc%2EonChange%28function%28%29%7Bb%2EsetFromQuaternion%28c%2Cvoid%200%2C%211%29%7D%29%3BObject%2EdefineProperties%28this%2C%7Bposition%3A%7Benumerable%3A%210%2Cvalue%3Aa%7D%2Crotation%3A%7Benumerable%3A%210%2C%0Avalue%3Ab%7D%2Cquaternion%3A%7Benumerable%3A%210%2Cvalue%3Ac%7D%2Cscale%3A%7Benumerable%3A%210%2Cvalue%3Ad%7D%7D%29%3Bthis%2ErotationAutoUpdate%3D%210%3Bthis%2Ematrix%3Dnew%20THREE%2EMatrix4%3Bthis%2EmatrixWorld%3Dnew%20THREE%2EMatrix4%3Bthis%2EmatrixAutoUpdate%3D%210%3Bthis%2EmatrixWorldNeedsUpdate%3D%211%3Bthis%2Evisible%3D%210%3Bthis%2EreceiveShadow%3Dthis%2EcastShadow%3D%211%3Bthis%2EfrustumCulled%3D%210%3Bthis%2EuserData%3D%7B%7D%7D%3BTHREE%2EObject3D%2EDefaultUp%3Dnew%20THREE%2EVector3%280%2C1%2C0%29%3B%0ATHREE%2EObject3D%2Eprototype%3D%7Bconstructor%3ATHREE%2EObject3D%2Cget%20eulerOrder%28%29%7Bconsole%2Ewarn%28%22THREE%2EObject3D%3A%20%2EeulerOrder%20has%20been%20moved%20to%20%2Erotation%2Eorder%2E%22%29%3Breturn%20this%2Erotation%2Eorder%7D%2Cset%20eulerOrder%28a%29%7Bconsole%2Ewarn%28%22THREE%2EObject3D%3A%20%2EeulerOrder%20has%20been%20moved%20to%20%2Erotation%2Eorder%2E%22%29%3Bthis%2Erotation%2Eorder%3Da%7D%2Cget%20useQuaternion%28%29%7Bconsole%2Ewarn%28%22THREE%2EObject3D%3A%20%2EuseQuaternion%20has%20been%20removed%2E%20The%20library%20now%20uses%20quaternions%20by%20default%2E%22%29%7D%2Cset%20useQuaternion%28a%29%7Bconsole%2Ewarn%28%22THREE%2EObject3D%3A%20%2EuseQuaternion%20has%20been%20removed%2E%20The%20library%20now%20uses%20quaternions%20by%20default%2E%22%29%7D%2C%0AapplyMatrix%3Afunction%28a%29%7Bthis%2Ematrix%2EmultiplyMatrices%28a%2Cthis%2Ematrix%29%3Bthis%2Ematrix%2Edecompose%28this%2Eposition%2Cthis%2Equaternion%2Cthis%2Escale%29%7D%2CsetRotationFromAxisAngle%3Afunction%28a%2Cb%29%7Bthis%2Equaternion%2EsetFromAxisAngle%28a%2Cb%29%7D%2CsetRotationFromEuler%3Afunction%28a%29%7Bthis%2Equaternion%2EsetFromEuler%28a%2C%210%29%7D%2CsetRotationFromMatrix%3Afunction%28a%29%7Bthis%2Equaternion%2EsetFromRotationMatrix%28a%29%7D%2CsetRotationFromQuaternion%3Afunction%28a%29%7Bthis%2Equaternion%2Ecopy%28a%29%7D%2CrotateOnAxis%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EQuaternion%3Breturn%20function%28b%2Cc%29%7Ba%2EsetFromAxisAngle%28b%2C%0Ac%29%3Bthis%2Equaternion%2Emultiply%28a%29%3Breturn%20this%7D%7D%28%29%2CrotateX%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%281%2C0%2C0%29%3Breturn%20function%28b%29%7Breturn%20this%2ErotateOnAxis%28a%2Cb%29%7D%7D%28%29%2CrotateY%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%280%2C1%2C0%29%3Breturn%20function%28b%29%7Breturn%20this%2ErotateOnAxis%28a%2Cb%29%7D%7D%28%29%2CrotateZ%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%280%2C0%2C1%29%3Breturn%20function%28b%29%7Breturn%20this%2ErotateOnAxis%28a%2Cb%29%7D%7D%28%29%2CtranslateOnAxis%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%3Breturn%20function%28b%2Cc%29%7Ba%2Ecopy%28b%29%2EapplyQuaternion%28this%2Equaternion%29%3Bthis%2Eposition%2Eadd%28a%2EmultiplyScalar%28c%29%29%3B%0Areturn%20this%7D%7D%28%29%2Ctranslate%3Afunction%28a%2Cb%29%7Bconsole%2Ewarn%28%22THREE%2EObject3D%3A%20%2Etranslate%28%29%20has%20been%20removed%2E%20Use%20%2EtranslateOnAxis%28%20axis%2C%20distance%20%29%20instead%2E%22%29%3Breturn%20this%2EtranslateOnAxis%28b%2Ca%29%7D%2CtranslateX%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%281%2C0%2C0%29%3Breturn%20function%28b%29%7Breturn%20this%2EtranslateOnAxis%28a%2Cb%29%7D%7D%28%29%2CtranslateY%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%280%2C1%2C0%29%3Breturn%20function%28b%29%7Breturn%20this%2EtranslateOnAxis%28a%2Cb%29%7D%7D%28%29%2CtranslateZ%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%280%2C0%2C1%29%3Breturn%20function%28b%29%7Breturn%20this%2EtranslateOnAxis%28a%2C%0Ab%29%7D%7D%28%29%2ClocalToWorld%3Afunction%28a%29%7Breturn%20a%2EapplyMatrix4%28this%2EmatrixWorld%29%7D%2CworldToLocal%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EMatrix4%3Breturn%20function%28b%29%7Breturn%20b%2EapplyMatrix4%28a%2EgetInverse%28this%2EmatrixWorld%29%29%7D%7D%28%29%2ClookAt%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EMatrix4%3Breturn%20function%28b%29%7Ba%2ElookAt%28b%2Cthis%2Eposition%2Cthis%2Eup%29%3Bthis%2Equaternion%2EsetFromRotationMatrix%28a%29%7D%7D%28%29%2Cadd%3Afunction%28a%29%7Bif%281%3Carguments%2Elength%29%7Bfor%28var%20b%3D0%3Bb%3Carguments%2Elength%3Bb%2B%2B%29this%2Eadd%28arguments%5Bb%5D%29%3Breturn%20this%7Dif%28a%3D%3D%3Dthis%29return%20console%2Eerror%28%22THREE%2EObject3D%2Eadd%3A%22%2C%0Aa%2C%22can%27t%20be%20added%20as%20a%20child%20of%20itself%2E%22%29%2Cthis%3Ba%20instanceof%20THREE%2EObject3D%3F%28void%200%21%3D%3Da%2Eparent%26%26a%2Eparent%2Eremove%28a%29%2Ca%2Eparent%3Dthis%2Ca%2EdispatchEvent%28%7Btype%3A%22added%22%7D%29%2Cthis%2Echildren%2Epush%28a%29%29%3Aconsole%2Eerror%28%22THREE%2EObject3D%2Eadd%3A%22%2Ca%2C%22is%20not%20an%20instance%20of%20THREE%2EObject3D%2E%22%29%3Breturn%20this%7D%2Cremove%3Afunction%28a%29%7Bif%281%3Carguments%2Elength%29for%28var%20b%3D0%3Bb%3Carguments%2Elength%3Bb%2B%2B%29this%2Eremove%28arguments%5Bb%5D%29%3Bb%3Dthis%2Echildren%2EindexOf%28a%29%3B%2D1%21%3D%3Db%26%26%28a%2Eparent%3Dvoid%200%2Ca%2EdispatchEvent%28%7Btype%3A%22removed%22%7D%29%2Cthis%2Echildren%2Esplice%28b%2C1%29%29%7D%2CgetChildByName%3Afunction%28a%2C%0Ab%29%7Bconsole%2Ewarn%28%22THREE%2EObject3D%3A%20%2EgetChildByName%28%29%20has%20been%20renamed%20to%20%2EgetObjectByName%28%29%2E%22%29%3Breturn%20this%2EgetObjectByName%28a%2Cb%29%7D%2CgetObjectById%3Afunction%28a%2Cb%29%7Breturn%20this%2EgetObjectByProperty%28%22id%22%2Ca%2Cb%29%7D%2CgetObjectByName%3Afunction%28a%2Cb%29%7Breturn%20this%2EgetObjectByProperty%28%22name%22%2Ca%2Cb%29%7D%2CgetObjectByProperty%3Afunction%28a%2Cb%2Cc%29%7Bif%28this%5Ba%5D%3D%3D%3Db%29return%20this%3Bfor%28var%20d%3D0%2Ce%3Dthis%2Echildren%2Elength%3Bd%3Ce%3Bd%2B%2B%29%7Bvar%20f%3Dthis%2Echildren%5Bd%5D%2EgetObjectByProperty%28a%2Cb%2Cc%29%3Bif%28void%200%21%3D%3Df%29return%20f%7D%7D%2CgetWorldPosition%3Afunction%28a%29%7Ba%3Da%7C%7Cnew%20THREE%2EVector3%3B%0Athis%2EupdateMatrixWorld%28%210%29%3Breturn%20a%2EsetFromMatrixPosition%28this%2EmatrixWorld%29%7D%2CgetWorldQuaternion%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%2Cb%3Dnew%20THREE%2EVector3%3Breturn%20function%28c%29%7Bc%3Dc%7C%7Cnew%20THREE%2EQuaternion%3Bthis%2EupdateMatrixWorld%28%210%29%3Bthis%2EmatrixWorld%2Edecompose%28a%2Cc%2Cb%29%3Breturn%20c%7D%7D%28%29%2CgetWorldRotation%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EQuaternion%3Breturn%20function%28b%29%7Bb%3Db%7C%7Cnew%20THREE%2EEuler%3Bthis%2EgetWorldQuaternion%28a%29%3Breturn%20b%2EsetFromQuaternion%28a%2Cthis%2Erotation%2Eorder%2C%211%29%7D%7D%28%29%2CgetWorldScale%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%2Cb%3Dnew%20THREE%2EQuaternion%3B%0Areturn%20function%28c%29%7Bc%3Dc%7C%7Cnew%20THREE%2EVector3%3Bthis%2EupdateMatrixWorld%28%210%29%3Bthis%2EmatrixWorld%2Edecompose%28a%2Cb%2Cc%29%3Breturn%20c%7D%7D%28%29%2CgetWorldDirection%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EQuaternion%3Breturn%20function%28b%29%7Bb%3Db%7C%7Cnew%20THREE%2EVector3%3Bthis%2EgetWorldQuaternion%28a%29%3Breturn%20b%2Eset%280%2C0%2C1%29%2EapplyQuaternion%28a%29%7D%7D%28%29%2Craycast%3Afunction%28%29%7B%7D%2Ctraverse%3Afunction%28a%29%7Ba%28this%29%3Bfor%28var%20b%3D0%2Cc%3Dthis%2Echildren%2Elength%3Bb%3Cc%3Bb%2B%2B%29this%2Echildren%5Bb%5D%2Etraverse%28a%29%7D%2CtraverseVisible%3Afunction%28a%29%7Bif%28%211%21%3D%3Dthis%2Evisible%29%7Ba%28this%29%3Bfor%28var%20b%3D0%2Cc%3Dthis%2Echildren%2Elength%3Bb%3C%0Ac%3Bb%2B%2B%29this%2Echildren%5Bb%5D%2EtraverseVisible%28a%29%7D%7D%2CtraverseAncestors%3Afunction%28a%29%7Bthis%2Eparent%26%26%28a%28this%2Eparent%29%2Cthis%2Eparent%2EtraverseAncestors%28a%29%29%7D%2CupdateMatrix%3Afunction%28%29%7Bthis%2Ematrix%2Ecompose%28this%2Eposition%2Cthis%2Equaternion%2Cthis%2Escale%29%3Bthis%2EmatrixWorldNeedsUpdate%3D%210%7D%2CupdateMatrixWorld%3Afunction%28a%29%7B%210%3D%3D%3Dthis%2EmatrixAutoUpdate%26%26this%2EupdateMatrix%28%29%3Bif%28%210%3D%3D%3Dthis%2EmatrixWorldNeedsUpdate%7C%7C%210%3D%3D%3Da%29void%200%3D%3D%3Dthis%2Eparent%3Fthis%2EmatrixWorld%2Ecopy%28this%2Ematrix%29%3Athis%2EmatrixWorld%2EmultiplyMatrices%28this%2Eparent%2EmatrixWorld%2Cthis%2Ematrix%29%2C%0Athis%2EmatrixWorldNeedsUpdate%3D%211%2Ca%3D%210%3Bfor%28var%20b%3D0%2Cc%3Dthis%2Echildren%2Elength%3Bb%3Cc%3Bb%2B%2B%29this%2Echildren%5Bb%5D%2EupdateMatrixWorld%28a%29%7D%2CtoJSON%3Afunction%28%29%7Bvar%20a%3D%7Bmetadata%3A%7Bversion%3A4%2E3%2Ctype%3A%22Object%22%2Cgenerator%3A%22ObjectExporter%22%7D%7D%2Cb%3D%7B%7D%2Cc%3Dfunction%28c%29%7Bvoid%200%3D%3D%3Da%2Egeometries%26%26%28a%2Egeometries%3D%5B%5D%29%3Bif%28void%200%3D%3D%3Db%5Bc%2Euuid%5D%29%7Bvar%20d%3Dc%2EtoJSON%28%29%3Bdelete%20d%2Emetadata%3Bb%5Bc%2Euuid%5D%3Dd%3Ba%2Egeometries%2Epush%28d%29%7Dreturn%20c%2Euuid%7D%2Cd%3D%7B%7D%2Ce%3Dfunction%28b%29%7Bvoid%200%3D%3D%3Da%2Ematerials%26%26%28a%2Ematerials%3D%5B%5D%29%3Bif%28void%200%3D%3D%3Dd%5Bb%2Euuid%5D%29%7Bvar%20c%3Db%2EtoJSON%28%29%3Bdelete%20c%2Emetadata%3Bd%5Bb%2Euuid%5D%3Dc%3B%0Aa%2Ematerials%2Epush%28c%29%7Dreturn%20b%2Euuid%7D%2Cf%3Dfunction%28a%29%7Bvar%20b%3D%7B%7D%3Bb%2Euuid%3Da%2Euuid%3Bb%2Etype%3Da%2Etype%3B%22%22%21%3D%3Da%2Ename%26%26%28b%2Ename%3Da%2Ename%29%3B%22%7B%7D%22%21%3D%3DJSON%2Estringify%28a%2EuserData%29%26%26%28b%2EuserData%3Da%2EuserData%29%3B%210%21%3D%3Da%2Evisible%26%26%28b%2Evisible%3Da%2Evisible%29%3Ba%20instanceof%20THREE%2EPerspectiveCamera%3F%28b%2Efov%3Da%2Efov%2Cb%2Easpect%3Da%2Easpect%2Cb%2Enear%3Da%2Enear%2Cb%2Efar%3Da%2Efar%29%3Aa%20instanceof%20THREE%2EOrthographicCamera%3F%28b%2Eleft%3Da%2Eleft%2Cb%2Eright%3Da%2Eright%2Cb%2Etop%3Da%2Etop%2Cb%2Ebottom%3Da%2Ebottom%2Cb%2Enear%3Da%2Enear%2Cb%2Efar%3Da%2Efar%29%3Aa%20instanceof%20THREE%2EAmbientLight%3Fb%2Ecolor%3Da%2Ecolor%2EgetHex%28%29%3Aa%20instanceof%0ATHREE%2EDirectionalLight%3F%28b%2Ecolor%3Da%2Ecolor%2EgetHex%28%29%2Cb%2Eintensity%3Da%2Eintensity%29%3Aa%20instanceof%20THREE%2EPointLight%3F%28b%2Ecolor%3Da%2Ecolor%2EgetHex%28%29%2Cb%2Eintensity%3Da%2Eintensity%2Cb%2Edistance%3Da%2Edistance%29%3Aa%20instanceof%20THREE%2ESpotLight%3F%28b%2Ecolor%3Da%2Ecolor%2EgetHex%28%29%2Cb%2Eintensity%3Da%2Eintensity%2Cb%2Edistance%3Da%2Edistance%2Cb%2Eangle%3Da%2Eangle%2Cb%2Eexponent%3Da%2Eexponent%29%3Aa%20instanceof%20THREE%2EHemisphereLight%3F%28b%2Ecolor%3Da%2Ecolor%2EgetHex%28%29%2Cb%2EgroundColor%3Da%2EgroundColor%2EgetHex%28%29%29%3Aa%20instanceof%20THREE%2EMesh%3F%28b%2Egeometry%3Dc%28a%2Egeometry%29%2Cb%2Ematerial%3De%28a%2Ematerial%29%29%3Aa%20instanceof%0ATHREE%2ELine%3F%28b%2Egeometry%3Dc%28a%2Egeometry%29%2Cb%2Ematerial%3De%28a%2Ematerial%29%29%3Aa%20instanceof%20THREE%2ESprite%26%26%28b%2Ematerial%3De%28a%2Ematerial%29%29%3Bb%2Ematrix%3Da%2Ematrix%2EtoArray%28%29%3Bif%280%3Ca%2Echildren%2Elength%29%7Bb%2Echildren%3D%5B%5D%3Bfor%28var%20d%3D0%3Bd%3Ca%2Echildren%2Elength%3Bd%2B%2B%29b%2Echildren%2Epush%28f%28a%2Echildren%5Bd%5D%29%29%7Dreturn%20b%7D%3Ba%2Eobject%3Df%28this%29%3Breturn%20a%7D%2Cclone%3Afunction%28a%2Cb%29%7Bvoid%200%3D%3D%3Da%26%26%28a%3Dnew%20THREE%2EObject3D%29%3Bvoid%200%3D%3D%3Db%26%26%28b%3D%210%29%3Ba%2Ename%3Dthis%2Ename%3Ba%2Eup%2Ecopy%28this%2Eup%29%3Ba%2Eposition%2Ecopy%28this%2Eposition%29%3Ba%2Equaternion%2Ecopy%28this%2Equaternion%29%3Ba%2Escale%2Ecopy%28this%2Escale%29%3Ba%2ErotationAutoUpdate%3D%0Athis%2ErotationAutoUpdate%3Ba%2Ematrix%2Ecopy%28this%2Ematrix%29%3Ba%2EmatrixWorld%2Ecopy%28this%2EmatrixWorld%29%3Ba%2EmatrixAutoUpdate%3Dthis%2EmatrixAutoUpdate%3Ba%2EmatrixWorldNeedsUpdate%3Dthis%2EmatrixWorldNeedsUpdate%3Ba%2Evisible%3Dthis%2Evisible%3Ba%2EcastShadow%3Dthis%2EcastShadow%3Ba%2EreceiveShadow%3Dthis%2EreceiveShadow%3Ba%2EfrustumCulled%3Dthis%2EfrustumCulled%3Ba%2EuserData%3DJSON%2Eparse%28JSON%2Estringify%28this%2EuserData%29%29%3Bif%28%210%3D%3D%3Db%29for%28var%20c%3D0%3Bc%3Cthis%2Echildren%2Elength%3Bc%2B%2B%29a%2Eadd%28this%2Echildren%5Bc%5D%2Eclone%28%29%29%3Breturn%20a%7D%7D%3BTHREE%2EEventDispatcher%2Eprototype%2Eapply%28THREE%2EObject3D%2Eprototype%29%3B%0ATHREE%2EObject3DIdCount%3D0%3BTHREE%2EFace3%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%29%7Bthis%2Ea%3Da%3Bthis%2Eb%3Db%3Bthis%2Ec%3Dc%3Bthis%2Enormal%3Dd%20instanceof%20THREE%2EVector3%3Fd%3Anew%20THREE%2EVector3%3Bthis%2EvertexNormals%3Dd%20instanceof%20Array%3Fd%3A%5B%5D%3Bthis%2Ecolor%3De%20instanceof%20THREE%2EColor%3Fe%3Anew%20THREE%2EColor%3Bthis%2EvertexColors%3De%20instanceof%20Array%3Fe%3A%5B%5D%3Bthis%2EvertexTangents%3D%5B%5D%3Bthis%2EmaterialIndex%3Dvoid%200%21%3D%3Df%3Ff%3A0%7D%3B%0ATHREE%2EFace3%2Eprototype%3D%7Bconstructor%3ATHREE%2EFace3%2Cclone%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EFace3%28this%2Ea%2Cthis%2Eb%2Cthis%2Ec%29%3Ba%2Enormal%2Ecopy%28this%2Enormal%29%3Ba%2Ecolor%2Ecopy%28this%2Ecolor%29%3Ba%2EmaterialIndex%3Dthis%2EmaterialIndex%3Bfor%28var%20b%3D0%2Cc%3Dthis%2EvertexNormals%2Elength%3Bb%3Cc%3Bb%2B%2B%29a%2EvertexNormals%5Bb%5D%3Dthis%2EvertexNormals%5Bb%5D%2Eclone%28%29%3Bb%3D0%3Bfor%28c%3Dthis%2EvertexColors%2Elength%3Bb%3Cc%3Bb%2B%2B%29a%2EvertexColors%5Bb%5D%3Dthis%2EvertexColors%5Bb%5D%2Eclone%28%29%3Bb%3D0%3Bfor%28c%3Dthis%2EvertexTangents%2Elength%3Bb%3Cc%3Bb%2B%2B%29a%2EvertexTangents%5Bb%5D%3Dthis%2EvertexTangents%5Bb%5D%2Eclone%28%29%3Breturn%20a%7D%7D%3B%0ATHREE%2EFace4%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%2Cg%29%7Bconsole%2Ewarn%28%22THREE%2EFace4%20has%20been%20removed%2E%20A%20THREE%2EFace3%20will%20be%20created%20instead%2E%22%29%3Breturn%20new%20THREE%2EFace3%28a%2Cb%2Cc%2Ce%2Cf%2Cg%29%7D%3BTHREE%2EBufferAttribute%3Dfunction%28a%2Cb%29%7Bthis%2Earray%3Da%3Bthis%2EitemSize%3Db%3Bthis%2EneedsUpdate%3D%211%7D%3B%0ATHREE%2EBufferAttribute%2Eprototype%3D%7Bconstructor%3ATHREE%2EBufferAttribute%2Cget%20length%28%29%7Breturn%20this%2Earray%2Elength%7D%2CcopyAt%3Afunction%28a%2Cb%2Cc%29%7Ba%2A%3Dthis%2EitemSize%3Bc%2A%3Db%2EitemSize%3Bfor%28var%20d%3D0%2Ce%3Dthis%2EitemSize%3Bd%3Ce%3Bd%2B%2B%29this%2Earray%5Ba%2Bd%5D%3Db%2Earray%5Bc%2Bd%5D%7D%2Cset%3Afunction%28a%29%7Bthis%2Earray%2Eset%28a%29%3Breturn%20this%7D%2CsetX%3Afunction%28a%2Cb%29%7Bthis%2Earray%5Ba%2Athis%2EitemSize%5D%3Db%3Breturn%20this%7D%2CsetY%3Afunction%28a%2Cb%29%7Bthis%2Earray%5Ba%2Athis%2EitemSize%2B1%5D%3Db%3Breturn%20this%7D%2CsetZ%3Afunction%28a%2Cb%29%7Bthis%2Earray%5Ba%2Athis%2EitemSize%2B2%5D%3Db%3Breturn%20this%7D%2CsetXY%3Afunction%28a%2Cb%2Cc%29%7Ba%2A%3Dthis%2EitemSize%3B%0Athis%2Earray%5Ba%5D%3Db%3Bthis%2Earray%5Ba%2B1%5D%3Dc%3Breturn%20this%7D%2CsetXYZ%3Afunction%28a%2Cb%2Cc%2Cd%29%7Ba%2A%3Dthis%2EitemSize%3Bthis%2Earray%5Ba%5D%3Db%3Bthis%2Earray%5Ba%2B1%5D%3Dc%3Bthis%2Earray%5Ba%2B2%5D%3Dd%3Breturn%20this%7D%2CsetXYZW%3Afunction%28a%2Cb%2Cc%2Cd%2Ce%29%7Ba%2A%3Dthis%2EitemSize%3Bthis%2Earray%5Ba%5D%3Db%3Bthis%2Earray%5Ba%2B1%5D%3Dc%3Bthis%2Earray%5Ba%2B2%5D%3Dd%3Bthis%2Earray%5Ba%2B3%5D%3De%3Breturn%20this%7D%2Cclone%3Afunction%28%29%7Breturn%20new%20THREE%2EBufferAttribute%28new%20this%2Earray%2Econstructor%28this%2Earray%29%2Cthis%2EitemSize%29%7D%7D%3B%0ATHREE%2EInt8Attribute%3Dfunction%28a%2Cb%29%7Bconsole%2Ewarn%28%22THREE%2EInt8Attribute%20has%20been%20removed%2E%20Use%20THREE%2EBufferAttribute%28%20array%2C%20itemSize%20%29%20instead%2E%22%29%3Breturn%20new%20THREE%2EBufferAttribute%28a%2Cb%29%7D%3BTHREE%2EUint8Attribute%3Dfunction%28a%2Cb%29%7Bconsole%2Ewarn%28%22THREE%2EUint8Attribute%20has%20been%20removed%2E%20Use%20THREE%2EBufferAttribute%28%20array%2C%20itemSize%20%29%20instead%2E%22%29%3Breturn%20new%20THREE%2EBufferAttribute%28a%2Cb%29%7D%3B%0ATHREE%2EUint8ClampedAttribute%3Dfunction%28a%2Cb%29%7Bconsole%2Ewarn%28%22THREE%2EUint8ClampedAttribute%20has%20been%20removed%2E%20Use%20THREE%2EBufferAttribute%28%20array%2C%20itemSize%20%29%20instead%2E%22%29%3Breturn%20new%20THREE%2EBufferAttribute%28a%2Cb%29%7D%3BTHREE%2EInt16Attribute%3Dfunction%28a%2Cb%29%7Bconsole%2Ewarn%28%22THREE%2EInt16Attribute%20has%20been%20removed%2E%20Use%20THREE%2EBufferAttribute%28%20array%2C%20itemSize%20%29%20instead%2E%22%29%3Breturn%20new%20THREE%2EBufferAttribute%28a%2Cb%29%7D%3B%0ATHREE%2EUint16Attribute%3Dfunction%28a%2Cb%29%7Bconsole%2Ewarn%28%22THREE%2EUint16Attribute%20has%20been%20removed%2E%20Use%20THREE%2EBufferAttribute%28%20array%2C%20itemSize%20%29%20instead%2E%22%29%3Breturn%20new%20THREE%2EBufferAttribute%28a%2Cb%29%7D%3BTHREE%2EInt32Attribute%3Dfunction%28a%2Cb%29%7Bconsole%2Ewarn%28%22THREE%2EInt32Attribute%20has%20been%20removed%2E%20Use%20THREE%2EBufferAttribute%28%20array%2C%20itemSize%20%29%20instead%2E%22%29%3Breturn%20new%20THREE%2EBufferAttribute%28a%2Cb%29%7D%3B%0ATHREE%2EUint32Attribute%3Dfunction%28a%2Cb%29%7Bconsole%2Ewarn%28%22THREE%2EUint32Attribute%20has%20been%20removed%2E%20Use%20THREE%2EBufferAttribute%28%20array%2C%20itemSize%20%29%20instead%2E%22%29%3Breturn%20new%20THREE%2EBufferAttribute%28a%2Cb%29%7D%3BTHREE%2EFloat32Attribute%3Dfunction%28a%2Cb%29%7Bconsole%2Ewarn%28%22THREE%2EFloat32Attribute%20has%20been%20removed%2E%20Use%20THREE%2EBufferAttribute%28%20array%2C%20itemSize%20%29%20instead%2E%22%29%3Breturn%20new%20THREE%2EBufferAttribute%28a%2Cb%29%7D%3B%0ATHREE%2EFloat64Attribute%3Dfunction%28a%2Cb%29%7Bconsole%2Ewarn%28%22THREE%2EFloat64Attribute%20has%20been%20removed%2E%20Use%20THREE%2EBufferAttribute%28%20array%2C%20itemSize%20%29%20instead%2E%22%29%3Breturn%20new%20THREE%2EBufferAttribute%28a%2Cb%29%7D%3BTHREE%2EBufferGeometry%3Dfunction%28%29%7BObject%2EdefineProperty%28this%2C%22id%22%2C%7Bvalue%3ATHREE%2EGeometryIdCount%2B%2B%7D%29%3Bthis%2Euuid%3DTHREE%2EMath%2EgenerateUUID%28%29%3Bthis%2Ename%3D%22%22%3Bthis%2Etype%3D%22BufferGeometry%22%3Bthis%2Eattributes%3D%7B%7D%3Bthis%2EattributesKeys%3D%5B%5D%3Bthis%2Eoffsets%3Dthis%2Edrawcalls%3D%5B%5D%3Bthis%2EboundingSphere%3Dthis%2EboundingBox%3Dnull%7D%3B%0ATHREE%2EBufferGeometry%2Eprototype%3D%7Bconstructor%3ATHREE%2EBufferGeometry%2CaddAttribute%3Afunction%28a%2Cb%2Cc%29%7B%211%3D%3D%3Db%20instanceof%20THREE%2EBufferAttribute%3F%28console%2Ewarn%28%22THREE%2EBufferGeometry%3A%20%2EaddAttribute%28%29%20now%20expects%20%28%20name%2C%20attribute%20%29%2E%22%29%2Cthis%2Eattributes%5Ba%5D%3D%7Barray%3Ab%2CitemSize%3Ac%7D%29%3A%28this%2Eattributes%5Ba%5D%3Db%2Cthis%2EattributesKeys%3DObject%2Ekeys%28this%2Eattributes%29%29%7D%2CgetAttribute%3Afunction%28a%29%7Breturn%20this%2Eattributes%5Ba%5D%7D%2CaddDrawCall%3Afunction%28a%2Cb%2Cc%29%7Bthis%2Edrawcalls%2Epush%28%7Bstart%3Aa%2Ccount%3Ab%2Cindex%3Avoid%200%21%3D%3Dc%3Fc%3A0%7D%29%7D%2CapplyMatrix%3Afunction%28a%29%7Bvar%20b%3D%0Athis%2Eattributes%2Eposition%3Bvoid%200%21%3D%3Db%26%26%28a%2EapplyToVector3Array%28b%2Earray%29%2Cb%2EneedsUpdate%3D%210%29%3Bb%3Dthis%2Eattributes%2Enormal%3Bvoid%200%21%3D%3Db%26%26%28%28new%20THREE%2EMatrix3%29%2EgetNormalMatrix%28a%29%2EapplyToVector3Array%28b%2Earray%29%2Cb%2EneedsUpdate%3D%210%29%7D%2Ccenter%3Afunction%28%29%7B%7D%2CfromGeometry%3Afunction%28a%2Cb%29%7Bb%3Db%7C%7C%7BvertexColors%3ATHREE%2ENoColors%7D%3Bvar%20c%3Da%2Evertices%2Cd%3Da%2Efaces%2Ce%3Da%2EfaceVertexUvs%2Cf%3Db%2EvertexColors%2Cg%3D0%3Ce%5B0%5D%2Elength%2Ch%3D3%3D%3Dd%5B0%5D%2EvertexNormals%2Elength%2Ck%3Dnew%20Float32Array%289%2Ad%2Elength%29%3Bthis%2EaddAttribute%28%22position%22%2Cnew%20THREE%2EBufferAttribute%28k%2C3%29%29%3Bvar%20n%3D%0Anew%20Float32Array%289%2Ad%2Elength%29%3Bthis%2EaddAttribute%28%22normal%22%2Cnew%20THREE%2EBufferAttribute%28n%2C3%29%29%3Bif%28f%21%3D%3DTHREE%2ENoColors%29%7Bvar%20p%3Dnew%20Float32Array%289%2Ad%2Elength%29%3Bthis%2EaddAttribute%28%22color%22%2Cnew%20THREE%2EBufferAttribute%28p%2C3%29%29%7Dif%28%210%3D%3D%3Dg%29%7Bvar%20q%3Dnew%20Float32Array%286%2Ad%2Elength%29%3Bthis%2EaddAttribute%28%22uv%22%2Cnew%20THREE%2EBufferAttribute%28q%2C2%29%29%7Dfor%28var%20m%3D0%2Ct%3D0%2Cs%3D0%3Bm%3Cd%2Elength%3Bm%2B%2B%2Ct%2B%3D6%2Cs%2B%3D9%29%7Bvar%20r%3Dd%5Bm%5D%2Cu%3Dc%5Br%2Ea%5D%2Cv%3Dc%5Br%2Eb%5D%2Cy%3Dc%5Br%2Ec%5D%3Bk%5Bs%5D%3Du%2Ex%3Bk%5Bs%2B1%5D%3Du%2Ey%3Bk%5Bs%2B2%5D%3Du%2Ez%3Bk%5Bs%2B3%5D%3Dv%2Ex%3Bk%5Bs%2B4%5D%3Dv%2Ey%3Bk%5Bs%2B5%5D%3Dv%2Ez%3Bk%5Bs%2B6%5D%3Dy%2Ex%3Bk%5Bs%2B7%5D%3Dy%2Ey%3Bk%5Bs%2B8%5D%3Dy%2Ez%3B%210%3D%3D%3Dh%3F%28u%3Dr%2EvertexNormals%5B0%5D%2C%0Av%3Dr%2EvertexNormals%5B1%5D%2Cy%3Dr%2EvertexNormals%5B2%5D%2Cn%5Bs%5D%3Du%2Ex%2Cn%5Bs%2B1%5D%3Du%2Ey%2Cn%5Bs%2B2%5D%3Du%2Ez%2Cn%5Bs%2B3%5D%3Dv%2Ex%2Cn%5Bs%2B4%5D%3Dv%2Ey%2Cn%5Bs%2B5%5D%3Dv%2Ez%2Cn%5Bs%2B6%5D%3Dy%2Ex%2Cn%5Bs%2B7%5D%3Dy%2Ey%2Cn%5Bs%2B8%5D%3Dy%2Ez%29%3A%28u%3Dr%2Enormal%2Cn%5Bs%5D%3Du%2Ex%2Cn%5Bs%2B1%5D%3Du%2Ey%2Cn%5Bs%2B2%5D%3Du%2Ez%2Cn%5Bs%2B3%5D%3Du%2Ex%2Cn%5Bs%2B4%5D%3Du%2Ey%2Cn%5Bs%2B5%5D%3Du%2Ez%2Cn%5Bs%2B6%5D%3Du%2Ex%2Cn%5Bs%2B7%5D%3Du%2Ey%2Cn%5Bs%2B8%5D%3Du%2Ez%29%3Bf%3D%3D%3DTHREE%2EFaceColors%3F%28r%3Dr%2Ecolor%2Cp%5Bs%5D%3Dr%2Er%2Cp%5Bs%2B1%5D%3Dr%2Eg%2Cp%5Bs%2B2%5D%3Dr%2Eb%2Cp%5Bs%2B3%5D%3Dr%2Er%2Cp%5Bs%2B4%5D%3Dr%2Eg%2Cp%5Bs%2B5%5D%3Dr%2Eb%2Cp%5Bs%2B6%5D%3Dr%2Er%2Cp%5Bs%2B7%5D%3Dr%2Eg%2Cp%5Bs%2B8%5D%3Dr%2Eb%29%3Af%3D%3D%3DTHREE%2EVertexColors%26%26%28u%3Dr%2EvertexColors%5B0%5D%2Cv%3Dr%2EvertexColors%5B1%5D%2Cr%3Dr%2EvertexColors%5B2%5D%2Cp%5Bs%5D%3Du%2Er%2Cp%5Bs%2B1%5D%3Du%2Eg%2Cp%5Bs%2B2%5D%3Du%2Eb%2Cp%5Bs%2B3%5D%3D%0Av%2Er%2Cp%5Bs%2B4%5D%3Dv%2Eg%2Cp%5Bs%2B5%5D%3Dv%2Eb%2Cp%5Bs%2B6%5D%3Dr%2Er%2Cp%5Bs%2B7%5D%3Dr%2Eg%2Cp%5Bs%2B8%5D%3Dr%2Eb%29%3B%210%3D%3D%3Dg%26%26%28r%3De%5B0%5D%5Bm%5D%5B0%5D%2Cu%3De%5B0%5D%5Bm%5D%5B1%5D%2Cv%3De%5B0%5D%5Bm%5D%5B2%5D%2Cq%5Bt%5D%3Dr%2Ex%2Cq%5Bt%2B1%5D%3Dr%2Ey%2Cq%5Bt%2B2%5D%3Du%2Ex%2Cq%5Bt%2B3%5D%3Du%2Ey%2Cq%5Bt%2B4%5D%3Dv%2Ex%2Cq%5Bt%2B5%5D%3Dv%2Ey%29%7Dthis%2EcomputeBoundingSphere%28%29%3Breturn%20this%7D%2CcomputeBoundingBox%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%3Breturn%20function%28%29%7Bnull%3D%3D%3Dthis%2EboundingBox%26%26%28this%2EboundingBox%3Dnew%20THREE%2EBox3%29%3Bvar%20b%3Dthis%2Eattributes%2Eposition%2Earray%3Bif%28b%29%7Bvar%20c%3Dthis%2EboundingBox%3Bc%2EmakeEmpty%28%29%3Bfor%28var%20d%3D0%2Ce%3Db%2Elength%3Bd%3Ce%3Bd%2B%3D3%29a%2Eset%28b%5Bd%5D%2Cb%5Bd%2B1%5D%2Cb%5Bd%2B2%5D%29%2Cc%2EexpandByPoint%28a%29%7Dif%28void%200%3D%3D%3D%0Ab%7C%7C0%3D%3D%3Db%2Elength%29this%2EboundingBox%2Emin%2Eset%280%2C0%2C0%29%2Cthis%2EboundingBox%2Emax%2Eset%280%2C0%2C0%29%3B%28isNaN%28this%2EboundingBox%2Emin%2Ex%29%7C%7CisNaN%28this%2EboundingBox%2Emin%2Ey%29%7C%7CisNaN%28this%2EboundingBox%2Emin%2Ez%29%29%26%26console%2Eerror%28%27THREE%2EBufferGeometry%2EcomputeBoundingBox%3A%20Computed%20min%2Fmax%20have%20NaN%20values%2E%20The%20%22position%22%20attribute%20is%20likely%20to%20have%20NaN%20values%2E%27%29%7D%7D%28%29%2CcomputeBoundingSphere%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EBox3%2Cb%3Dnew%20THREE%2EVector3%3Breturn%20function%28%29%7Bnull%3D%3D%3Dthis%2EboundingSphere%26%26%28this%2EboundingSphere%3Dnew%20THREE%2ESphere%29%3Bvar%20c%3Dthis%2Eattributes%2Eposition%2Earray%3B%0Aif%28c%29%7Ba%2EmakeEmpty%28%29%3Bfor%28var%20d%3Dthis%2EboundingSphere%2Ecenter%2Ce%3D0%2Cf%3Dc%2Elength%3Be%3Cf%3Be%2B%3D3%29b%2Eset%28c%5Be%5D%2Cc%5Be%2B1%5D%2Cc%5Be%2B2%5D%29%2Ca%2EexpandByPoint%28b%29%3Ba%2Ecenter%28d%29%3Bfor%28var%20g%3D0%2Ce%3D0%2Cf%3Dc%2Elength%3Be%3Cf%3Be%2B%3D3%29b%2Eset%28c%5Be%5D%2Cc%5Be%2B1%5D%2Cc%5Be%2B2%5D%29%2Cg%3DMath%2Emax%28g%2Cd%2EdistanceToSquared%28b%29%29%3Bthis%2EboundingSphere%2Eradius%3DMath%2Esqrt%28g%29%3BisNaN%28this%2EboundingSphere%2Eradius%29%26%26console%2Eerror%28%27THREE%2EBufferGeometry%2EcomputeBoundingSphere%28%29%3A%20Computed%20radius%20is%20NaN%2E%20The%20%22position%22%20attribute%20is%20likely%20to%20have%20NaN%20values%2E%27%29%7D%7D%7D%28%29%2CcomputeFaceNormals%3Afunction%28%29%7B%7D%2CcomputeVertexNormals%3Afunction%28%29%7Bvar%20a%3D%0Athis%2Eattributes%3Bif%28a%2Eposition%29%7Bvar%20b%3Da%2Eposition%2Earray%3Bif%28void%200%3D%3D%3Da%2Enormal%29this%2EaddAttribute%28%22normal%22%2Cnew%20THREE%2EBufferAttribute%28new%20Float32Array%28b%2Elength%29%2C3%29%29%3Belse%20for%28var%20c%3Da%2Enormal%2Earray%2Cd%3D0%2Ce%3Dc%2Elength%3Bd%3Ce%3Bd%2B%2B%29c%5Bd%5D%3D0%3Bvar%20c%3Da%2Enormal%2Earray%2Cf%2Cg%2Ch%2Ck%3Dnew%20THREE%2EVector3%2Cn%3Dnew%20THREE%2EVector3%2Cp%3Dnew%20THREE%2EVector3%2Cq%3Dnew%20THREE%2EVector3%2Cm%3Dnew%20THREE%2EVector3%3Bif%28a%2Eindex%29for%28var%20t%3Da%2Eindex%2Earray%2Cs%3D0%3Cthis%2Eoffsets%2Elength%3Fthis%2Eoffsets%3A%5B%7Bstart%3A0%2Ccount%3At%2Elength%2Cindex%3A0%7D%5D%2Cr%3D0%2Cu%3Ds%2Elength%3Br%3Cu%3B%2B%2Br%29%7Be%3Ds%5Br%5D%2Estart%3Bf%3Ds%5Br%5D%2Ecount%3B%0Afor%28var%20v%3Ds%5Br%5D%2Eindex%2Cd%3De%2Ce%3De%2Bf%3Bd%3Ce%3Bd%2B%3D3%29f%3D3%2A%28v%2Bt%5Bd%5D%29%2Cg%3D3%2A%28v%2Bt%5Bd%2B1%5D%29%2Ch%3D3%2A%28v%2Bt%5Bd%2B2%5D%29%2Ck%2EfromArray%28b%2Cf%29%2Cn%2EfromArray%28b%2Cg%29%2Cp%2EfromArray%28b%2Ch%29%2Cq%2EsubVectors%28p%2Cn%29%2Cm%2EsubVectors%28k%2Cn%29%2Cq%2Ecross%28m%29%2Cc%5Bf%5D%2B%3Dq%2Ex%2Cc%5Bf%2B1%5D%2B%3Dq%2Ey%2Cc%5Bf%2B2%5D%2B%3Dq%2Ez%2Cc%5Bg%5D%2B%3Dq%2Ex%2Cc%5Bg%2B1%5D%2B%3Dq%2Ey%2Cc%5Bg%2B2%5D%2B%3Dq%2Ez%2Cc%5Bh%5D%2B%3Dq%2Ex%2Cc%5Bh%2B1%5D%2B%3Dq%2Ey%2Cc%5Bh%2B2%5D%2B%3Dq%2Ez%7Delse%20for%28d%3D0%2Ce%3Db%2Elength%3Bd%3Ce%3Bd%2B%3D9%29k%2EfromArray%28b%2Cd%29%2Cn%2EfromArray%28b%2Cd%2B3%29%2Cp%2EfromArray%28b%2Cd%2B6%29%2Cq%2EsubVectors%28p%2Cn%29%2Cm%2EsubVectors%28k%2Cn%29%2Cq%2Ecross%28m%29%2Cc%5Bd%5D%3Dq%2Ex%2Cc%5Bd%2B1%5D%3Dq%2Ey%2Cc%5Bd%2B2%5D%3Dq%2Ez%2Cc%5Bd%2B3%5D%3Dq%2Ex%2Cc%5Bd%2B4%5D%3Dq%2Ey%2Cc%5Bd%2B5%5D%3Dq%2Ez%2Cc%5Bd%2B6%5D%3Dq%2Ex%2Cc%5Bd%2B7%5D%3Dq%2Ey%2C%0Ac%5Bd%2B8%5D%3Dq%2Ez%3Bthis%2EnormalizeNormals%28%29%3Ba%2Enormal%2EneedsUpdate%3D%210%7D%7D%2CcomputeTangents%3Afunction%28%29%7Bfunction%20a%28a%2Cb%2Cc%29%7Bq%2EfromArray%28d%2C3%2Aa%29%3Bm%2EfromArray%28d%2C3%2Ab%29%3Bt%2EfromArray%28d%2C3%2Ac%29%3Bs%2EfromArray%28f%2C2%2Aa%29%3Br%2EfromArray%28f%2C2%2Ab%29%3Bu%2EfromArray%28f%2C2%2Ac%29%3Bv%3Dm%2Ex%2Dq%2Ex%3By%3Dt%2Ex%2Dq%2Ex%3BC%3Dm%2Ey%2Dq%2Ey%3Bx%3Dt%2Ey%2Dq%2Ey%3BF%3Dm%2Ez%2Dq%2Ez%3Bz%3Dt%2Ez%2Dq%2Ez%3BG%3Dr%2Ex%2Ds%2Ex%3BE%3Du%2Ex%2Ds%2Ex%3Bw%3Dr%2Ey%2Ds%2Ey%3BD%3Du%2Ey%2Ds%2Ey%3BA%3D1%2F%28G%2AD%2DE%2Aw%29%3BU%2Eset%28%28D%2Av%2Dw%2Ay%29%2AA%2C%28D%2AC%2Dw%2Ax%29%2AA%2C%28D%2AF%2Dw%2Az%29%2AA%29%3BM%2Eset%28%28G%2Ay%2DE%2Av%29%2AA%2C%28G%2Ax%2DE%2AC%29%2AA%2C%28G%2Az%2DE%2AF%29%2AA%29%3Bk%5Ba%5D%2Eadd%28U%29%3Bk%5Bb%5D%2Eadd%28U%29%3Bk%5Bc%5D%2Eadd%28U%29%3Bn%5Ba%5D%2Eadd%28M%29%3Bn%5Bb%5D%2Eadd%28M%29%3Bn%5Bc%5D%2Eadd%28M%29%7Dfunction%20b%28a%29%7Bxa%2EfromArray%28e%2C%0A3%2Aa%29%3BH%2Ecopy%28xa%29%3Bqa%3Dk%5Ba%5D%3Bga%2Ecopy%28qa%29%3Bga%2Esub%28xa%2EmultiplyScalar%28xa%2Edot%28qa%29%29%29%2Enormalize%28%29%3Bea%2EcrossVectors%28H%2Cqa%29%3Bya%3Dea%2Edot%28n%5Ba%5D%29%3B%24a%3D0%3Eya%3F%2D1%3A1%3Bh%5B4%2Aa%5D%3Dga%2Ex%3Bh%5B4%2Aa%2B1%5D%3Dga%2Ey%3Bh%5B4%2Aa%2B2%5D%3Dga%2Ez%3Bh%5B4%2Aa%2B3%5D%3D%24a%7Dif%28void%200%3D%3D%3Dthis%2Eattributes%2Eindex%7C%7Cvoid%200%3D%3D%3Dthis%2Eattributes%2Eposition%7C%7Cvoid%200%3D%3D%3Dthis%2Eattributes%2Enormal%7C%7Cvoid%200%3D%3D%3Dthis%2Eattributes%2Euv%29console%2Ewarn%28%22Missing%20required%20attributes%20%28index%2C%20position%2C%20normal%20or%20uv%29%20in%20BufferGeometry%2EcomputeTangents%28%29%22%29%3Belse%7Bvar%20c%3Dthis%2Eattributes%2Eindex%2Earray%2Cd%3Dthis%2Eattributes%2Eposition%2Earray%2C%0Ae%3Dthis%2Eattributes%2Enormal%2Earray%2Cf%3Dthis%2Eattributes%2Euv%2Earray%2Cg%3Dd%2Elength%2F3%3Bvoid%200%3D%3D%3Dthis%2Eattributes%2Etangent%26%26this%2EaddAttribute%28%22tangent%22%2Cnew%20THREE%2EBufferAttribute%28new%20Float32Array%284%2Ag%29%2C4%29%29%3Bfor%28var%20h%3Dthis%2Eattributes%2Etangent%2Earray%2Ck%3D%5B%5D%2Cn%3D%5B%5D%2Cp%3D0%3Bp%3Cg%3Bp%2B%2B%29k%5Bp%5D%3Dnew%20THREE%2EVector3%2Cn%5Bp%5D%3Dnew%20THREE%2EVector3%3Bvar%20q%3Dnew%20THREE%2EVector3%2Cm%3Dnew%20THREE%2EVector3%2Ct%3Dnew%20THREE%2EVector3%2Cs%3Dnew%20THREE%2EVector2%2Cr%3Dnew%20THREE%2EVector2%2Cu%3Dnew%20THREE%2EVector2%2Cv%2Cy%2CC%2Cx%2CF%2Cz%2CG%2CE%2Cw%2CD%2CA%2CU%3Dnew%20THREE%2EVector3%2CM%3Dnew%20THREE%2EVector3%2CK%2CL%2CN%2CT%2CQ%3B0%3D%3D%3Dthis%2Edrawcalls%2Elength%26%26%0Athis%2EaddDrawCall%280%2Cc%2Elength%2C0%29%3Bvar%20W%3Dthis%2Edrawcalls%2Cp%3D0%3Bfor%28L%3DW%2Elength%3Bp%3CL%3B%2B%2Bp%29%7BK%3DW%5Bp%5D%2Estart%3BN%3DW%5Bp%5D%2Ecount%3Bvar%20O%3DW%5Bp%5D%2Eindex%2Cg%3DK%3Bfor%28K%2B%3DN%3Bg%3CK%3Bg%2B%3D3%29N%3DO%2Bc%5Bg%5D%2CT%3DO%2Bc%5Bg%2B1%5D%2CQ%3DO%2Bc%5Bg%2B2%5D%2Ca%28N%2CT%2CQ%29%7Dvar%20ga%3Dnew%20THREE%2EVector3%2Cea%3Dnew%20THREE%2EVector3%2Cxa%3Dnew%20THREE%2EVector3%2CH%3Dnew%20THREE%2EVector3%2C%24a%2Cqa%2Cya%2Cp%3D0%3Bfor%28L%3DW%2Elength%3Bp%3CL%3B%2B%2Bp%29for%28K%3DW%5Bp%5D%2Estart%2CN%3DW%5Bp%5D%2Ecount%2CO%3DW%5Bp%5D%2Eindex%2Cg%3DK%2CK%2B%3DN%3Bg%3CK%3Bg%2B%3D3%29N%3DO%2Bc%5Bg%5D%2CT%3DO%2Bc%5Bg%2B1%5D%2CQ%3DO%2Bc%5Bg%2B2%5D%2Cb%28N%29%2Cb%28T%29%2Cb%28Q%29%7D%7D%2CcomputeOffsets%3Afunction%28a%29%7Bvar%20b%3Da%3Bvoid%200%3D%3D%3Da%26%26%28b%3D65535%29%3BDate%2Enow%28%29%3Ba%3Dthis%2Eattributes%2Eindex%2Earray%3B%0Afor%28var%20c%3Dthis%2Eattributes%2Eposition%2Earray%2Cd%3Da%2Elength%2F3%2Ce%3Dnew%20Uint16Array%28a%2Elength%29%2Cf%3D0%2Cg%3D0%2Ch%3D%5B%7Bstart%3A0%2Ccount%3A0%2Cindex%3A0%7D%5D%2Ck%3Dh%5B0%5D%2Cn%3D0%2Cp%3D0%2Cq%3Dnew%20Int32Array%286%29%2Cm%3Dnew%20Int32Array%28c%2Elength%29%2Ct%3Dnew%20Int32Array%28c%2Elength%29%2Cs%3D0%3Bs%3Cc%2Elength%3Bs%2B%2B%29m%5Bs%5D%3D%2D1%2Ct%5Bs%5D%3D%2D1%3Bfor%28c%3D0%3Bc%3Cd%3Bc%2B%2B%29%7Bfor%28var%20r%3Dp%3D0%3B3%3Er%3Br%2B%2B%29s%3Da%5B3%2Ac%2Br%5D%2C%2D1%3D%3Dm%5Bs%5D%3F%28q%5B2%2Ar%5D%3Ds%2Cq%5B2%2Ar%2B1%5D%3D%2D1%2Cp%2B%2B%29%3Am%5Bs%5D%3Ck%2Eindex%3F%28q%5B2%2Ar%5D%3Ds%2Cq%5B2%2Ar%2B1%5D%3D%2D1%2Cn%2B%2B%29%3A%28q%5B2%2Ar%5D%3Ds%2Cq%5B2%2Ar%2B1%5D%3Dm%5Bs%5D%29%3Bif%28g%2Bp%3Ek%2Eindex%2Bb%29for%28k%3D%7Bstart%3Af%2Ccount%3A0%2Cindex%3Ag%7D%2Ch%2Epush%28k%29%2Cp%3D0%3B6%3Ep%3Bp%2B%3D2%29r%3Dq%5Bp%2B1%5D%2C%2D1%3Cr%26%26r%3Ck%2Eindex%26%26%28q%5Bp%2B1%5D%3D%0A%2D1%29%3Bfor%28p%3D0%3B6%3Ep%3Bp%2B%3D2%29s%3Dq%5Bp%5D%2Cr%3Dq%5Bp%2B1%5D%2C%2D1%3D%3D%3Dr%26%26%28r%3Dg%2B%2B%29%2Cm%5Bs%5D%3Dr%2Ct%5Br%5D%3Ds%2Ce%5Bf%2B%2B%5D%3Dr%2Dk%2Eindex%2Ck%2Ecount%2B%2B%7Dthis%2EreorderBuffers%28e%2Ct%2Cg%29%3Breturn%20this%2Eoffsets%3Dh%7D%2Cmerge%3Afunction%28a%2Cb%29%7Bif%28%211%3D%3D%3Da%20instanceof%20THREE%2EBufferGeometry%29console%2Eerror%28%22THREE%2EBufferGeometry%2Emerge%28%29%3A%20geometry%20not%20an%20instance%20of%20THREE%2EBufferGeometry%2E%22%2Ca%29%3Belse%7Bvoid%200%3D%3D%3Db%26%26%28b%3D0%29%3Bvar%20c%3Dthis%2Eattributes%2Cd%3Bfor%28d%20in%20c%29if%28void%200%21%3D%3Da%2Eattributes%5Bd%5D%29for%28var%20e%3Dc%5Bd%5D%2Earray%2Cf%3Da%2Eattributes%5Bd%5D%2Cg%3Df%2Earray%2Ch%3D0%2Cf%3Df%2EitemSize%2Ab%3Bh%3Cg%2Elength%3Bh%2B%2B%2Cf%2B%2B%29e%5Bf%5D%3Dg%5Bh%5D%3Breturn%20this%7D%7D%2C%0AnormalizeNormals%3Afunction%28%29%7Bfor%28var%20a%3Dthis%2Eattributes%2Enormal%2Earray%2Cb%2Cc%2Cd%2Ce%3D0%2Cf%3Da%2Elength%3Be%3Cf%3Be%2B%3D3%29b%3Da%5Be%5D%2Cc%3Da%5Be%2B1%5D%2Cd%3Da%5Be%2B2%5D%2Cb%3D1%2FMath%2Esqrt%28b%2Ab%2Bc%2Ac%2Bd%2Ad%29%2Ca%5Be%5D%2A%3Db%2Ca%5Be%2B1%5D%2A%3Db%2Ca%5Be%2B2%5D%2A%3Db%7D%2CreorderBuffers%3Afunction%28a%2Cb%2Cc%29%7Bvar%20d%3D%7B%7D%2Ce%3Bfor%28e%20in%20this%2Eattributes%29%22index%22%21%3De%26%26%28d%5Be%5D%3Dnew%20this%2Eattributes%5Be%5D%2Earray%2Econstructor%28this%2Eattributes%5Be%5D%2EitemSize%2Ac%29%29%3Bfor%28var%20f%3D0%3Bf%3Cc%3Bf%2B%2B%29%7Bvar%20g%3Db%5Bf%5D%3Bfor%28e%20in%20this%2Eattributes%29if%28%22index%22%21%3De%29for%28var%20h%3Dthis%2Eattributes%5Be%5D%2Earray%2Ck%3Dthis%2Eattributes%5Be%5D%2EitemSize%2Cn%3Dd%5Be%5D%2Cp%3D0%3Bp%3Ck%3Bp%2B%2B%29n%5Bf%2Ak%2Bp%5D%3Dh%5Bg%2A%0Ak%2Bp%5D%7Dthis%2Eattributes%2Eindex%2Earray%3Da%3Bfor%28e%20in%20this%2Eattributes%29%22index%22%21%3De%26%26%28this%2Eattributes%5Be%5D%2Earray%3Dd%5Be%5D%2Cthis%2Eattributes%5Be%5D%2EnumItems%3Dthis%2Eattributes%5Be%5D%2EitemSize%2Ac%29%7D%2CtoJSON%3Afunction%28%29%7Bvar%20a%3D%7Bmetadata%3A%7Bversion%3A4%2Ctype%3A%22BufferGeometry%22%2Cgenerator%3A%22BufferGeometryExporter%22%7D%2Cuuid%3Athis%2Euuid%2Ctype%3Athis%2Etype%2Cdata%3A%7Battributes%3A%7B%7D%7D%7D%2Cb%3Dthis%2Eattributes%2Cc%3Dthis%2Eoffsets%2Cd%3Dthis%2EboundingSphere%2Ce%3Bfor%28e%20in%20b%29%7Bfor%28var%20f%3Db%5Be%5D%2Cg%3D%5B%5D%2Ch%3Df%2Earray%2Ck%3D0%2Cn%3Dh%2Elength%3Bk%3Cn%3Bk%2B%2B%29g%5Bk%5D%3Dh%5Bk%5D%3Ba%2Edata%2Eattributes%5Be%5D%3D%7BitemSize%3Af%2EitemSize%2Ctype%3Af%2Earray%2Econstructor%2Ename%2C%0Aarray%3Ag%7D%7D0%3Cc%2Elength%26%26%28a%2Edata%2Eoffsets%3DJSON%2Eparse%28JSON%2Estringify%28c%29%29%29%3Bnull%21%3D%3Dd%26%26%28a%2Edata%2EboundingSphere%3D%7Bcenter%3Ad%2Ecenter%2EtoArray%28%29%2Cradius%3Ad%2Eradius%7D%29%3Breturn%20a%7D%2Cclone%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EBufferGeometry%2Cb%3Bfor%28b%20in%20this%2Eattributes%29a%2EaddAttribute%28b%2Cthis%2Eattributes%5Bb%5D%2Eclone%28%29%29%3Bb%3D0%3Bfor%28var%20c%3Dthis%2Eoffsets%2Elength%3Bb%3Cc%3Bb%2B%2B%29%7Bvar%20d%3Dthis%2Eoffsets%5Bb%5D%3Ba%2Eoffsets%2Epush%28%7Bstart%3Ad%2Estart%2Cindex%3Ad%2Eindex%2Ccount%3Ad%2Ecount%7D%29%7Dreturn%20a%7D%2Cdispose%3Afunction%28%29%7Bthis%2EdispatchEvent%28%7Btype%3A%22dispose%22%7D%29%7D%7D%3BTHREE%2EEventDispatcher%2Eprototype%2Eapply%28THREE%2EBufferGeometry%2Eprototype%29%3B%0ATHREE%2EGeometry%3Dfunction%28%29%7BObject%2EdefineProperty%28this%2C%22id%22%2C%7Bvalue%3ATHREE%2EGeometryIdCount%2B%2B%7D%29%3Bthis%2Euuid%3DTHREE%2EMath%2EgenerateUUID%28%29%3Bthis%2Ename%3D%22%22%3Bthis%2Etype%3D%22Geometry%22%3Bthis%2Evertices%3D%5B%5D%3Bthis%2Ecolors%3D%5B%5D%3Bthis%2Efaces%3D%5B%5D%3Bthis%2EfaceVertexUvs%3D%5B%5B%5D%5D%3Bthis%2EmorphTargets%3D%5B%5D%3Bthis%2EmorphColors%3D%5B%5D%3Bthis%2EmorphNormals%3D%5B%5D%3Bthis%2EskinWeights%3D%5B%5D%3Bthis%2EskinIndices%3D%5B%5D%3Bthis%2ElineDistances%3D%5B%5D%3Bthis%2EboundingSphere%3Dthis%2EboundingBox%3Dnull%3Bthis%2EhasTangents%3D%211%3Bthis%2Edynamic%3D%210%3Bthis%2EgroupsNeedUpdate%3Dthis%2ElineDistancesNeedUpdate%3Dthis%2EcolorsNeedUpdate%3D%0Athis%2EtangentsNeedUpdate%3Dthis%2EnormalsNeedUpdate%3Dthis%2EuvsNeedUpdate%3Dthis%2EelementsNeedUpdate%3Dthis%2EverticesNeedUpdate%3D%211%7D%3B%0ATHREE%2EGeometry%2Eprototype%3D%7Bconstructor%3ATHREE%2EGeometry%2CapplyMatrix%3Afunction%28a%29%7Bfor%28var%20b%3D%28new%20THREE%2EMatrix3%29%2EgetNormalMatrix%28a%29%2Cc%3D0%2Cd%3Dthis%2Evertices%2Elength%3Bc%3Cd%3Bc%2B%2B%29this%2Evertices%5Bc%5D%2EapplyMatrix4%28a%29%3Bc%3D0%3Bfor%28d%3Dthis%2Efaces%2Elength%3Bc%3Cd%3Bc%2B%2B%29%7Ba%3Dthis%2Efaces%5Bc%5D%3Ba%2Enormal%2EapplyMatrix3%28b%29%2Enormalize%28%29%3Bfor%28var%20e%3D0%2Cf%3Da%2EvertexNormals%2Elength%3Be%3Cf%3Be%2B%2B%29a%2EvertexNormals%5Be%5D%2EapplyMatrix3%28b%29%2Enormalize%28%29%7Dthis%2EboundingBox%20instanceof%20THREE%2EBox3%26%26this%2EcomputeBoundingBox%28%29%3Bthis%2EboundingSphere%20instanceof%20THREE%2ESphere%26%26this%2EcomputeBoundingSphere%28%29%7D%2C%0AfromBufferGeometry%3Afunction%28a%29%7Bfor%28var%20b%3Dthis%2Cc%3Da%2Eattributes%2Cd%3Dc%2Eposition%2Earray%2Ce%3Dvoid%200%21%3D%3Dc%2Eindex%3Fc%2Eindex%2Earray%3Avoid%200%2Cf%3Dvoid%200%21%3D%3Dc%2Enormal%3Fc%2Enormal%2Earray%3Avoid%200%2Cg%3Dvoid%200%21%3D%3Dc%2Ecolor%3Fc%2Ecolor%2Earray%3Avoid%200%2Ch%3Dvoid%200%21%3D%3Dc%2Euv%3Fc%2Euv%2Earray%3Avoid%200%2Ck%3D%5B%5D%2Cn%3D%5B%5D%2Cp%3Dc%3D0%3Bc%3Cd%2Elength%3Bc%2B%3D3%2Cp%2B%3D2%29b%2Evertices%2Epush%28new%20THREE%2EVector3%28d%5Bc%5D%2Cd%5Bc%2B1%5D%2Cd%5Bc%2B2%5D%29%29%2Cvoid%200%21%3D%3Df%26%26k%2Epush%28new%20THREE%2EVector3%28f%5Bc%5D%2Cf%5Bc%2B1%5D%2Cf%5Bc%2B2%5D%29%29%2Cvoid%200%21%3D%3Dg%26%26b%2Ecolors%2Epush%28new%20THREE%2EColor%28g%5Bc%5D%2Cg%5Bc%2B1%5D%2Cg%5Bc%2B2%5D%29%29%2Cvoid%200%21%3D%3Dh%26%26n%2Epush%28new%20THREE%2EVector2%28h%5Bp%5D%2Ch%5Bp%2B1%5D%29%29%3Bp%3D%0Afunction%28a%2Cc%2Cd%29%7Bvar%20e%3Dvoid%200%21%3D%3Df%3F%5Bk%5Ba%5D%2Eclone%28%29%2Ck%5Bc%5D%2Eclone%28%29%2Ck%5Bd%5D%2Eclone%28%29%5D%3A%5B%5D%2Cp%3Dvoid%200%21%3D%3Dg%3F%5Bb%2Ecolors%5Ba%5D%2Eclone%28%29%2Cb%2Ecolors%5Bc%5D%2Eclone%28%29%2Cb%2Ecolors%5Bd%5D%2Eclone%28%29%5D%3A%5B%5D%3Bb%2Efaces%2Epush%28new%20THREE%2EFace3%28a%2Cc%2Cd%2Ce%2Cp%29%29%3Bvoid%200%21%3D%3Dh%26%26b%2EfaceVertexUvs%5B0%5D%2Epush%28%5Bn%5Ba%5D%2Eclone%28%29%2Cn%5Bc%5D%2Eclone%28%29%2Cn%5Bd%5D%2Eclone%28%29%5D%29%7D%3Bif%28void%200%21%3D%3De%29for%28c%3D0%3Bc%3Ce%2Elength%3Bc%2B%3D3%29p%28e%5Bc%5D%2Ce%5Bc%2B1%5D%2Ce%5Bc%2B2%5D%29%3Belse%20for%28c%3D0%3Bc%3Cd%2Elength%2F3%3Bc%2B%3D3%29p%28c%2Cc%2B1%2Cc%2B2%29%3Bthis%2EcomputeFaceNormals%28%29%3Bnull%21%3D%3Da%2EboundingBox%26%26%28this%2EboundingBox%3Da%2EboundingBox%2Eclone%28%29%29%3Bnull%21%3D%3Da%2EboundingSphere%26%26%28this%2EboundingSphere%3D%0Aa%2EboundingSphere%2Eclone%28%29%29%3Breturn%20this%7D%2Ccenter%3Afunction%28%29%7Bthis%2EcomputeBoundingBox%28%29%3Bvar%20a%3Dnew%20THREE%2EVector3%3Ba%2EaddVectors%28this%2EboundingBox%2Emin%2Cthis%2EboundingBox%2Emax%29%3Ba%2EmultiplyScalar%28%2D%2E5%29%3Bthis%2EapplyMatrix%28%28new%20THREE%2EMatrix4%29%2EmakeTranslation%28a%2Ex%2Ca%2Ey%2Ca%2Ez%29%29%3Bthis%2EcomputeBoundingBox%28%29%3Breturn%20a%7D%2CcomputeFaceNormals%3Afunction%28%29%7Bfor%28var%20a%3Dnew%20THREE%2EVector3%2Cb%3Dnew%20THREE%2EVector3%2Cc%3D0%2Cd%3Dthis%2Efaces%2Elength%3Bc%3Cd%3Bc%2B%2B%29%7Bvar%20e%3Dthis%2Efaces%5Bc%5D%2Cf%3Dthis%2Evertices%5Be%2Ea%5D%2Cg%3Dthis%2Evertices%5Be%2Eb%5D%3Ba%2EsubVectors%28this%2Evertices%5Be%2Ec%5D%2Cg%29%3Bb%2EsubVectors%28f%2C%0Ag%29%3Ba%2Ecross%28b%29%3Ba%2Enormalize%28%29%3Be%2Enormal%2Ecopy%28a%29%7D%7D%2CcomputeVertexNormals%3Afunction%28a%29%7Bvar%20b%2Cc%2Cd%3Bd%3DArray%28this%2Evertices%2Elength%29%3Bb%3D0%3Bfor%28c%3Dthis%2Evertices%2Elength%3Bb%3Cc%3Bb%2B%2B%29d%5Bb%5D%3Dnew%20THREE%2EVector3%3Bif%28a%29%7Bvar%20e%2Cf%2Cg%2Ch%3Dnew%20THREE%2EVector3%2Ck%3Dnew%20THREE%2EVector3%3Bnew%20THREE%2EVector3%3Bnew%20THREE%2EVector3%3Bnew%20THREE%2EVector3%3Ba%3D0%3Bfor%28b%3Dthis%2Efaces%2Elength%3Ba%3Cb%3Ba%2B%2B%29c%3Dthis%2Efaces%5Ba%5D%2Ce%3Dthis%2Evertices%5Bc%2Ea%5D%2Cf%3Dthis%2Evertices%5Bc%2Eb%5D%2Cg%3Dthis%2Evertices%5Bc%2Ec%5D%2Ch%2EsubVectors%28g%2Cf%29%2Ck%2EsubVectors%28e%2Cf%29%2Ch%2Ecross%28k%29%2Cd%5Bc%2Ea%5D%2Eadd%28h%29%2Cd%5Bc%2Eb%5D%2Eadd%28h%29%2Cd%5Bc%2Ec%5D%2Eadd%28h%29%7Delse%20for%28a%3D%0A0%2Cb%3Dthis%2Efaces%2Elength%3Ba%3Cb%3Ba%2B%2B%29c%3Dthis%2Efaces%5Ba%5D%2Cd%5Bc%2Ea%5D%2Eadd%28c%2Enormal%29%2Cd%5Bc%2Eb%5D%2Eadd%28c%2Enormal%29%2Cd%5Bc%2Ec%5D%2Eadd%28c%2Enormal%29%3Bb%3D0%3Bfor%28c%3Dthis%2Evertices%2Elength%3Bb%3Cc%3Bb%2B%2B%29d%5Bb%5D%2Enormalize%28%29%3Ba%3D0%3Bfor%28b%3Dthis%2Efaces%2Elength%3Ba%3Cb%3Ba%2B%2B%29c%3Dthis%2Efaces%5Ba%5D%2Cc%2EvertexNormals%5B0%5D%3Dd%5Bc%2Ea%5D%2Eclone%28%29%2Cc%2EvertexNormals%5B1%5D%3Dd%5Bc%2Eb%5D%2Eclone%28%29%2Cc%2EvertexNormals%5B2%5D%3Dd%5Bc%2Ec%5D%2Eclone%28%29%7D%2CcomputeMorphNormals%3Afunction%28%29%7Bvar%20a%2Cb%2Cc%2Cd%2Ce%3Bc%3D0%3Bfor%28d%3Dthis%2Efaces%2Elength%3Bc%3Cd%3Bc%2B%2B%29for%28e%3Dthis%2Efaces%5Bc%5D%2Ce%2E%5F%5ForiginalFaceNormal%3Fe%2E%5F%5ForiginalFaceNormal%2Ecopy%28e%2Enormal%29%3Ae%2E%5F%5ForiginalFaceNormal%3D%0Ae%2Enormal%2Eclone%28%29%2Ce%2E%5F%5ForiginalVertexNormals%7C%7C%28e%2E%5F%5ForiginalVertexNormals%3D%5B%5D%29%2Ca%3D0%2Cb%3De%2EvertexNormals%2Elength%3Ba%3Cb%3Ba%2B%2B%29e%2E%5F%5ForiginalVertexNormals%5Ba%5D%3Fe%2E%5F%5ForiginalVertexNormals%5Ba%5D%2Ecopy%28e%2EvertexNormals%5Ba%5D%29%3Ae%2E%5F%5ForiginalVertexNormals%5Ba%5D%3De%2EvertexNormals%5Ba%5D%2Eclone%28%29%3Bvar%20f%3Dnew%20THREE%2EGeometry%3Bf%2Efaces%3Dthis%2Efaces%3Ba%3D0%3Bfor%28b%3Dthis%2EmorphTargets%2Elength%3Ba%3Cb%3Ba%2B%2B%29%7Bif%28%21this%2EmorphNormals%5Ba%5D%29%7Bthis%2EmorphNormals%5Ba%5D%3D%7B%7D%3Bthis%2EmorphNormals%5Ba%5D%2EfaceNormals%3D%5B%5D%3Bthis%2EmorphNormals%5Ba%5D%2EvertexNormals%3D%5B%5D%3Be%3Dthis%2EmorphNormals%5Ba%5D%2EfaceNormals%3Bvar%20g%3D%0Athis%2EmorphNormals%5Ba%5D%2EvertexNormals%2Ch%2Ck%3Bc%3D0%3Bfor%28d%3Dthis%2Efaces%2Elength%3Bc%3Cd%3Bc%2B%2B%29h%3Dnew%20THREE%2EVector3%2Ck%3D%7Ba%3Anew%20THREE%2EVector3%2Cb%3Anew%20THREE%2EVector3%2Cc%3Anew%20THREE%2EVector3%7D%2Ce%2Epush%28h%29%2Cg%2Epush%28k%29%7Dg%3Dthis%2EmorphNormals%5Ba%5D%3Bf%2Evertices%3Dthis%2EmorphTargets%5Ba%5D%2Evertices%3Bf%2EcomputeFaceNormals%28%29%3Bf%2EcomputeVertexNormals%28%29%3Bc%3D0%3Bfor%28d%3Dthis%2Efaces%2Elength%3Bc%3Cd%3Bc%2B%2B%29e%3Dthis%2Efaces%5Bc%5D%2Ch%3Dg%2EfaceNormals%5Bc%5D%2Ck%3Dg%2EvertexNormals%5Bc%5D%2Ch%2Ecopy%28e%2Enormal%29%2Ck%2Ea%2Ecopy%28e%2EvertexNormals%5B0%5D%29%2Ck%2Eb%2Ecopy%28e%2EvertexNormals%5B1%5D%29%2Ck%2Ec%2Ecopy%28e%2EvertexNormals%5B2%5D%29%7Dc%3D0%3Bfor%28d%3Dthis%2Efaces%2Elength%3Bc%3C%0Ad%3Bc%2B%2B%29e%3Dthis%2Efaces%5Bc%5D%2Ce%2Enormal%3De%2E%5F%5ForiginalFaceNormal%2Ce%2EvertexNormals%3De%2E%5F%5ForiginalVertexNormals%7D%2CcomputeTangents%3Afunction%28%29%7Bvar%20a%2Cb%2Cc%2Cd%2Ce%2Cf%2Cg%2Ch%2Ck%2Cn%2Cp%2Cq%2Cm%2Ct%2Cs%2Cr%2Cu%2Cv%3D%5B%5D%2Cy%3D%5B%5D%3Bc%3Dnew%20THREE%2EVector3%3Bvar%20C%3Dnew%20THREE%2EVector3%2Cx%3Dnew%20THREE%2EVector3%2CF%3Dnew%20THREE%2EVector3%2Cz%3Dnew%20THREE%2EVector3%3Ba%3D0%3Bfor%28b%3Dthis%2Evertices%2Elength%3Ba%3Cb%3Ba%2B%2B%29v%5Ba%5D%3Dnew%20THREE%2EVector3%2Cy%5Ba%5D%3Dnew%20THREE%2EVector3%3Ba%3D0%3Bfor%28b%3Dthis%2Efaces%2Elength%3Ba%3Cb%3Ba%2B%2B%29e%3Dthis%2Efaces%5Ba%5D%2Cf%3Dthis%2EfaceVertexUvs%5B0%5D%5Ba%5D%2Cd%3De%2Ea%2Cu%3De%2Eb%2Ce%3De%2Ec%2Cg%3Dthis%2Evertices%5Bd%5D%2Ch%3Dthis%2Evertices%5Bu%5D%2Ck%3Dthis%2Evertices%5Be%5D%2C%0An%3Df%5B0%5D%2Cp%3Df%5B1%5D%2Cq%3Df%5B2%5D%2Cf%3Dh%2Ex%2Dg%2Ex%2Cm%3Dk%2Ex%2Dg%2Ex%2Ct%3Dh%2Ey%2Dg%2Ey%2Cs%3Dk%2Ey%2Dg%2Ey%2Ch%3Dh%2Ez%2Dg%2Ez%2Cg%3Dk%2Ez%2Dg%2Ez%2Ck%3Dp%2Ex%2Dn%2Ex%2Cr%3Dq%2Ex%2Dn%2Ex%2Cp%3Dp%2Ey%2Dn%2Ey%2Cn%3Dq%2Ey%2Dn%2Ey%2Cq%3D1%2F%28k%2An%2Dr%2Ap%29%2Cc%2Eset%28%28n%2Af%2Dp%2Am%29%2Aq%2C%28n%2At%2Dp%2As%29%2Aq%2C%28n%2Ah%2Dp%2Ag%29%2Aq%29%2CC%2Eset%28%28k%2Am%2Dr%2Af%29%2Aq%2C%28k%2As%2Dr%2At%29%2Aq%2C%28k%2Ag%2Dr%2Ah%29%2Aq%29%2Cv%5Bd%5D%2Eadd%28c%29%2Cv%5Bu%5D%2Eadd%28c%29%2Cv%5Be%5D%2Eadd%28c%29%2Cy%5Bd%5D%2Eadd%28C%29%2Cy%5Bu%5D%2Eadd%28C%29%2Cy%5Be%5D%2Eadd%28C%29%3BC%3D%5B%22a%22%2C%22b%22%2C%22c%22%2C%22d%22%5D%3Ba%3D0%3Bfor%28b%3Dthis%2Efaces%2Elength%3Ba%3Cb%3Ba%2B%2B%29for%28e%3Dthis%2Efaces%5Ba%5D%2Cc%3D0%3Bc%3CMath%2Emin%28e%2EvertexNormals%2Elength%2C3%29%3Bc%2B%2B%29z%2Ecopy%28e%2EvertexNormals%5Bc%5D%29%2Cd%3De%5BC%5Bc%5D%5D%2Cu%3Dv%5Bd%5D%2Cx%2Ecopy%28u%29%2Cx%2Esub%28z%2EmultiplyScalar%28z%2Edot%28u%29%29%29%2Enormalize%28%29%2C%0AF%2EcrossVectors%28e%2EvertexNormals%5Bc%5D%2Cu%29%2Cd%3DF%2Edot%28y%5Bd%5D%29%2Cd%3D0%3Ed%3F%2D1%3A1%2Ce%2EvertexTangents%5Bc%5D%3Dnew%20THREE%2EVector4%28x%2Ex%2Cx%2Ey%2Cx%2Ez%2Cd%29%3Bthis%2EhasTangents%3D%210%7D%2CcomputeLineDistances%3Afunction%28%29%7Bfor%28var%20a%3D0%2Cb%3Dthis%2Evertices%2Cc%3D0%2Cd%3Db%2Elength%3Bc%3Cd%3Bc%2B%2B%290%3Cc%26%26%28a%2B%3Db%5Bc%5D%2EdistanceTo%28b%5Bc%2D1%5D%29%29%2Cthis%2ElineDistances%5Bc%5D%3Da%7D%2CcomputeBoundingBox%3Afunction%28%29%7Bnull%3D%3D%3Dthis%2EboundingBox%26%26%28this%2EboundingBox%3Dnew%20THREE%2EBox3%29%3Bthis%2EboundingBox%2EsetFromPoints%28this%2Evertices%29%7D%2CcomputeBoundingSphere%3Afunction%28%29%7Bnull%3D%3D%3Dthis%2EboundingSphere%26%26%28this%2EboundingSphere%3Dnew%20THREE%2ESphere%29%3B%0Athis%2EboundingSphere%2EsetFromPoints%28this%2Evertices%29%7D%2Cmerge%3Afunction%28a%2Cb%2Cc%29%7Bif%28%211%3D%3D%3Da%20instanceof%20THREE%2EGeometry%29console%2Eerror%28%22THREE%2EGeometry%2Emerge%28%29%3A%20geometry%20not%20an%20instance%20of%20THREE%2EGeometry%2E%22%2Ca%29%3Belse%7Bvar%20d%2Ce%3Dthis%2Evertices%2Elength%2Cf%3Dthis%2Evertices%2Cg%3Da%2Evertices%2Ch%3Dthis%2Efaces%2Ck%3Da%2Efaces%2Cn%3Dthis%2EfaceVertexUvs%5B0%5D%3Ba%3Da%2EfaceVertexUvs%5B0%5D%3Bvoid%200%3D%3D%3Dc%26%26%28c%3D0%29%3Bvoid%200%21%3D%3Db%26%26%28d%3D%28new%20THREE%2EMatrix3%29%2EgetNormalMatrix%28b%29%29%3Bfor%28var%20p%3D0%2Cq%3Dg%2Elength%3Bp%3Cq%3Bp%2B%2B%29%7Bvar%20m%3Dg%5Bp%5D%2Eclone%28%29%3Bvoid%200%21%3D%3Db%26%26m%2EapplyMatrix4%28b%29%3Bf%2Epush%28m%29%7Dp%3D0%3Bfor%28q%3Dk%2Elength%3Bp%3C%0Aq%3Bp%2B%2B%29%7Bvar%20g%3Dk%5Bp%5D%2Ct%2Cs%3Dg%2EvertexNormals%2Cr%3Dg%2EvertexColors%2Cm%3Dnew%20THREE%2EFace3%28g%2Ea%2Be%2Cg%2Eb%2Be%2Cg%2Ec%2Be%29%3Bm%2Enormal%2Ecopy%28g%2Enormal%29%3Bvoid%200%21%3D%3Dd%26%26m%2Enormal%2EapplyMatrix3%28d%29%2Enormalize%28%29%3Bb%3D0%3Bfor%28f%3Ds%2Elength%3Bb%3Cf%3Bb%2B%2B%29t%3Ds%5Bb%5D%2Eclone%28%29%2Cvoid%200%21%3D%3Dd%26%26t%2EapplyMatrix3%28d%29%2Enormalize%28%29%2Cm%2EvertexNormals%2Epush%28t%29%3Bm%2Ecolor%2Ecopy%28g%2Ecolor%29%3Bb%3D0%3Bfor%28f%3Dr%2Elength%3Bb%3Cf%3Bb%2B%2B%29t%3Dr%5Bb%5D%2Cm%2EvertexColors%2Epush%28t%2Eclone%28%29%29%3Bm%2EmaterialIndex%3Dg%2EmaterialIndex%2Bc%3Bh%2Epush%28m%29%7Dp%3D0%3Bfor%28q%3Da%2Elength%3Bp%3Cq%3Bp%2B%2B%29if%28c%3Da%5Bp%5D%2Cd%3D%5B%5D%2Cvoid%200%21%3D%3Dc%29%7Bb%3D0%3Bfor%28f%3Dc%2Elength%3Bb%3Cf%3Bb%2B%2B%29d%2Epush%28c%5Bb%5D%2Eclone%28%29%29%3B%0An%2Epush%28d%29%7D%7D%7D%2CmergeMesh%3Afunction%28a%29%7B%211%3D%3D%3Da%20instanceof%20THREE%2EMesh%3Fconsole%2Eerror%28%22THREE%2EGeometry%2EmergeMesh%28%29%3A%20mesh%20not%20an%20instance%20of%20THREE%2EMesh%2E%22%2Ca%29%3A%28a%2EmatrixAutoUpdate%26%26a%2EupdateMatrix%28%29%2Cthis%2Emerge%28a%2Egeometry%2Ca%2Ematrix%29%29%7D%2CmergeVertices%3Afunction%28%29%7Bvar%20a%3D%7B%7D%2Cb%3D%5B%5D%2Cc%3D%5B%5D%2Cd%2Ce%3DMath%2Epow%2810%2C4%29%2Cf%2Cg%3Bf%3D0%3Bfor%28g%3Dthis%2Evertices%2Elength%3Bf%3Cg%3Bf%2B%2B%29d%3Dthis%2Evertices%5Bf%5D%2Cd%3DMath%2Eround%28d%2Ex%2Ae%29%2B%22%5F%22%2BMath%2Eround%28d%2Ey%2Ae%29%2B%22%5F%22%2BMath%2Eround%28d%2Ez%2Ae%29%2Cvoid%200%3D%3D%3Da%5Bd%5D%3F%28a%5Bd%5D%3Df%2Cb%2Epush%28this%2Evertices%5Bf%5D%29%2Cc%5Bf%5D%3Db%2Elength%2D1%29%3Ac%5Bf%5D%3Dc%5Ba%5Bd%5D%5D%3Ba%3D%5B%5D%3Bf%3D0%3Bfor%28g%3Dthis%2Efaces%2Elength%3Bf%3C%0Ag%3Bf%2B%2B%29for%28e%3Dthis%2Efaces%5Bf%5D%2Ce%2Ea%3Dc%5Be%2Ea%5D%2Ce%2Eb%3Dc%5Be%2Eb%5D%2Ce%2Ec%3Dc%5Be%2Ec%5D%2Ce%3D%5Be%2Ea%2Ce%2Eb%2Ce%2Ec%5D%2Cd%3D0%3B3%3Ed%3Bd%2B%2B%29if%28e%5Bd%5D%3D%3De%5B%28d%2B1%29%253%5D%29%7Ba%2Epush%28f%29%3Bbreak%7Dfor%28f%3Da%2Elength%2D1%3B0%3C%3Df%3Bf%2D%2D%29for%28e%3Da%5Bf%5D%2Cthis%2Efaces%2Esplice%28e%2C1%29%2Cc%3D0%2Cg%3Dthis%2EfaceVertexUvs%2Elength%3Bc%3Cg%3Bc%2B%2B%29this%2EfaceVertexUvs%5Bc%5D%2Esplice%28e%2C1%29%3Bf%3Dthis%2Evertices%2Elength%2Db%2Elength%3Bthis%2Evertices%3Db%3Breturn%20f%7D%2CtoJSON%3Afunction%28%29%7Bfunction%20a%28a%2Cb%2Cc%29%7Breturn%20c%3Fa%7C1%3C%3Cb%3Aa%26%7E%281%3C%3Cb%29%7Dfunction%20b%28a%29%7Bvar%20b%3Da%2Ex%2EtoString%28%29%2Ba%2Ey%2EtoString%28%29%2Ba%2Ez%2EtoString%28%29%3Bif%28void%200%21%3D%3Dn%5Bb%5D%29return%20n%5Bb%5D%3Bn%5Bb%5D%3Dk%2Elength%2F3%3Bk%2Epush%28a%2Ex%2Ca%2Ey%2C%0Aa%2Ez%29%3Breturn%20n%5Bb%5D%7Dfunction%20c%28a%29%7Bvar%20b%3Da%2Er%2EtoString%28%29%2Ba%2Eg%2EtoString%28%29%2Ba%2Eb%2EtoString%28%29%3Bif%28void%200%21%3D%3Dq%5Bb%5D%29return%20q%5Bb%5D%3Bq%5Bb%5D%3Dp%2Elength%3Bp%2Epush%28a%2EgetHex%28%29%29%3Breturn%20q%5Bb%5D%7Dfunction%20d%28a%29%7Bvar%20b%3Da%2Ex%2EtoString%28%29%2Ba%2Ey%2EtoString%28%29%3Bif%28void%200%21%3D%3Dt%5Bb%5D%29return%20t%5Bb%5D%3Bt%5Bb%5D%3Dm%2Elength%2F2%3Bm%2Epush%28a%2Ex%2Ca%2Ey%29%3Breturn%20t%5Bb%5D%7Dvar%20e%3D%7Bmetadata%3A%7Bversion%3A4%2Ctype%3A%22BufferGeometry%22%2Cgenerator%3A%22BufferGeometryExporter%22%7D%2Cuuid%3Athis%2Euuid%2Ctype%3Athis%2Etype%7D%3B%22%22%21%3D%3Dthis%2Ename%26%26%28e%2Ename%3Dthis%2Ename%29%3Bif%28void%200%21%3D%3Dthis%2Eparameters%29%7Bvar%20f%3Dthis%2Eparameters%2Cg%3Bfor%28g%20in%20f%29void%200%21%3D%3D%0Af%5Bg%5D%26%26%28e%5Bg%5D%3Df%5Bg%5D%29%3Breturn%20e%7Df%3D%5B%5D%3Bfor%28g%3D0%3Bg%3Cthis%2Evertices%2Elength%3Bg%2B%2B%29%7Bvar%20h%3Dthis%2Evertices%5Bg%5D%3Bf%2Epush%28h%2Ex%2Ch%2Ey%2Ch%2Ez%29%7Dvar%20h%3D%5B%5D%2Ck%3D%5B%5D%2Cn%3D%7B%7D%2Cp%3D%5B%5D%2Cq%3D%7B%7D%2Cm%3D%5B%5D%2Ct%3D%7B%7D%3Bfor%28g%3D0%3Bg%3Cthis%2Efaces%2Elength%3Bg%2B%2B%29%7Bvar%20s%3Dthis%2Efaces%5Bg%5D%2Cr%3Dvoid%200%21%3D%3Dthis%2EfaceVertexUvs%5B0%5D%5Bg%5D%2Cu%3D0%3Cs%2Enormal%2Elength%28%29%2Cv%3D0%3Cs%2EvertexNormals%2Elength%2Cy%3D1%21%3D%3Ds%2Ecolor%2Er%7C%7C1%21%3D%3Ds%2Ecolor%2Eg%7C%7C1%21%3D%3Ds%2Ecolor%2Eb%2CC%3D0%3Cs%2EvertexColors%2Elength%2Cx%3D0%2Cx%3Da%28x%2C0%2C0%29%2Cx%3Da%28x%2C1%2C%211%29%2Cx%3Da%28x%2C2%2C%211%29%2Cx%3Da%28x%2C3%2Cr%29%2Cx%3Da%28x%2C4%2Cu%29%2Cx%3Da%28x%2C5%2Cv%29%2Cx%3Da%28x%2C6%2Cy%29%2Cx%3Da%28x%2C7%2CC%29%3Bh%2Epush%28x%29%3Bh%2Epush%28s%2Ea%2Cs%2Eb%2Cs%2Ec%29%3Br%26%26%28r%3Dthis%2EfaceVertexUvs%5B0%5D%5Bg%5D%2C%0Ah%2Epush%28d%28r%5B0%5D%29%2Cd%28r%5B1%5D%29%2Cd%28r%5B2%5D%29%29%29%3Bu%26%26h%2Epush%28b%28s%2Enormal%29%29%3Bv%26%26%28u%3Ds%2EvertexNormals%2Ch%2Epush%28b%28u%5B0%5D%29%2Cb%28u%5B1%5D%29%2Cb%28u%5B2%5D%29%29%29%3By%26%26h%2Epush%28c%28s%2Ecolor%29%29%3BC%26%26%28s%3Ds%2EvertexColors%2Ch%2Epush%28c%28s%5B0%5D%29%2Cc%28s%5B1%5D%29%2Cc%28s%5B2%5D%29%29%29%7De%2Edata%3D%7B%7D%3Be%2Edata%2Evertices%3Df%3Be%2Edata%2Enormals%3Dk%3B0%3Cp%2Elength%26%26%28e%2Edata%2Ecolors%3Dp%29%3B0%3Cm%2Elength%26%26%28e%2Edata%2Euvs%3D%5Bm%5D%29%3Be%2Edata%2Efaces%3Dh%3Breturn%20e%7D%2Cclone%3Afunction%28%29%7Bfor%28var%20a%3Dnew%20THREE%2EGeometry%2Cb%3Dthis%2Evertices%2Cc%3D0%2Cd%3Db%2Elength%3Bc%3Cd%3Bc%2B%2B%29a%2Evertices%2Epush%28b%5Bc%5D%2Eclone%28%29%29%3Bb%3Dthis%2Efaces%3Bc%3D0%3Bfor%28d%3Db%2Elength%3Bc%3Cd%3Bc%2B%2B%29a%2Efaces%2Epush%28b%5Bc%5D%2Eclone%28%29%29%3Bc%3D0%3B%0Afor%28d%3Dthis%2EfaceVertexUvs%2Elength%3Bc%3Cd%3Bc%2B%2B%29%7Bb%3Dthis%2EfaceVertexUvs%5Bc%5D%3Bvoid%200%3D%3D%3Da%2EfaceVertexUvs%5Bc%5D%26%26%28a%2EfaceVertexUvs%5Bc%5D%3D%5B%5D%29%3Bfor%28var%20e%3D0%2Cf%3Db%2Elength%3Be%3Cf%3Be%2B%2B%29%7Bfor%28var%20g%3Db%5Be%5D%2Ch%3D%5B%5D%2Ck%3D0%2Cn%3Dg%2Elength%3Bk%3Cn%3Bk%2B%2B%29h%2Epush%28g%5Bk%5D%2Eclone%28%29%29%3Ba%2EfaceVertexUvs%5Bc%5D%2Epush%28h%29%7D%7Dreturn%20a%7D%2Cdispose%3Afunction%28%29%7Bthis%2EdispatchEvent%28%7Btype%3A%22dispose%22%7D%29%7D%7D%3BTHREE%2EEventDispatcher%2Eprototype%2Eapply%28THREE%2EGeometry%2Eprototype%29%3BTHREE%2EGeometryIdCount%3D0%3B%0ATHREE%2ECamera%3Dfunction%28%29%7BTHREE%2EObject3D%2Ecall%28this%29%3Bthis%2Etype%3D%22Camera%22%3Bthis%2EmatrixWorldInverse%3Dnew%20THREE%2EMatrix4%3Bthis%2EprojectionMatrix%3Dnew%20THREE%2EMatrix4%7D%3BTHREE%2ECamera%2Eprototype%3DObject%2Ecreate%28THREE%2EObject3D%2Eprototype%29%3BTHREE%2ECamera%2Eprototype%2Econstructor%3DTHREE%2ECamera%3BTHREE%2ECamera%2Eprototype%2EgetWorldDirection%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EQuaternion%3Breturn%20function%28b%29%7Bb%3Db%7C%7Cnew%20THREE%2EVector3%3Bthis%2EgetWorldQuaternion%28a%29%3Breturn%20b%2Eset%280%2C0%2C%2D1%29%2EapplyQuaternion%28a%29%7D%7D%28%29%3B%0ATHREE%2ECamera%2Eprototype%2ElookAt%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EMatrix4%3Breturn%20function%28b%29%7Ba%2ElookAt%28this%2Eposition%2Cb%2Cthis%2Eup%29%3Bthis%2Equaternion%2EsetFromRotationMatrix%28a%29%7D%7D%28%29%3BTHREE%2ECamera%2Eprototype%2Eclone%3Dfunction%28a%29%7Bvoid%200%3D%3D%3Da%26%26%28a%3Dnew%20THREE%2ECamera%29%3BTHREE%2EObject3D%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Ba%2EmatrixWorldInverse%2Ecopy%28this%2EmatrixWorldInverse%29%3Ba%2EprojectionMatrix%2Ecopy%28this%2EprojectionMatrix%29%3Breturn%20a%7D%3B%0ATHREE%2ECubeCamera%3Dfunction%28a%2Cb%2Cc%29%7BTHREE%2EObject3D%2Ecall%28this%29%3Bthis%2Etype%3D%22CubeCamera%22%3Bvar%20d%3Dnew%20THREE%2EPerspectiveCamera%2890%2C1%2Ca%2Cb%29%3Bd%2Eup%2Eset%280%2C%2D1%2C0%29%3Bd%2ElookAt%28new%20THREE%2EVector3%281%2C0%2C0%29%29%3Bthis%2Eadd%28d%29%3Bvar%20e%3Dnew%20THREE%2EPerspectiveCamera%2890%2C1%2Ca%2Cb%29%3Be%2Eup%2Eset%280%2C%2D1%2C0%29%3Be%2ElookAt%28new%20THREE%2EVector3%28%2D1%2C0%2C0%29%29%3Bthis%2Eadd%28e%29%3Bvar%20f%3Dnew%20THREE%2EPerspectiveCamera%2890%2C1%2Ca%2Cb%29%3Bf%2Eup%2Eset%280%2C0%2C1%29%3Bf%2ElookAt%28new%20THREE%2EVector3%280%2C1%2C0%29%29%3Bthis%2Eadd%28f%29%3Bvar%20g%3Dnew%20THREE%2EPerspectiveCamera%2890%2C1%2Ca%2Cb%29%3Bg%2Eup%2Eset%280%2C0%2C%2D1%29%3Bg%2ElookAt%28new%20THREE%2EVector3%280%2C%2D1%2C0%29%29%3B%0Athis%2Eadd%28g%29%3Bvar%20h%3Dnew%20THREE%2EPerspectiveCamera%2890%2C1%2Ca%2Cb%29%3Bh%2Eup%2Eset%280%2C%2D1%2C0%29%3Bh%2ElookAt%28new%20THREE%2EVector3%280%2C0%2C1%29%29%3Bthis%2Eadd%28h%29%3Bvar%20k%3Dnew%20THREE%2EPerspectiveCamera%2890%2C1%2Ca%2Cb%29%3Bk%2Eup%2Eset%280%2C%2D1%2C0%29%3Bk%2ElookAt%28new%20THREE%2EVector3%280%2C0%2C%2D1%29%29%3Bthis%2Eadd%28k%29%3Bthis%2ErenderTarget%3Dnew%20THREE%2EWebGLRenderTargetCube%28c%2Cc%2C%7Bformat%3ATHREE%2ERGBFormat%2CmagFilter%3ATHREE%2ELinearFilter%2CminFilter%3ATHREE%2ELinearFilter%7D%29%3Bthis%2EupdateCubeMap%3Dfunction%28a%2Cb%29%7Bvar%20c%3Dthis%2ErenderTarget%2Cm%3Dc%2EgenerateMipmaps%3Bc%2EgenerateMipmaps%3D%211%3Bc%2EactiveCubeFace%3D0%3Ba%2Erender%28b%2Cd%2Cc%29%3Bc%2EactiveCubeFace%3D%0A1%3Ba%2Erender%28b%2Ce%2Cc%29%3Bc%2EactiveCubeFace%3D2%3Ba%2Erender%28b%2Cf%2Cc%29%3Bc%2EactiveCubeFace%3D3%3Ba%2Erender%28b%2Cg%2Cc%29%3Bc%2EactiveCubeFace%3D4%3Ba%2Erender%28b%2Ch%2Cc%29%3Bc%2EgenerateMipmaps%3Dm%3Bc%2EactiveCubeFace%3D5%3Ba%2Erender%28b%2Ck%2Cc%29%7D%7D%3BTHREE%2ECubeCamera%2Eprototype%3DObject%2Ecreate%28THREE%2EObject3D%2Eprototype%29%3BTHREE%2ECubeCamera%2Eprototype%2Econstructor%3DTHREE%2ECubeCamera%3B%0ATHREE%2EOrthographicCamera%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%29%7BTHREE%2ECamera%2Ecall%28this%29%3Bthis%2Etype%3D%22OrthographicCamera%22%3Bthis%2Ezoom%3D1%3Bthis%2Eleft%3Da%3Bthis%2Eright%3Db%3Bthis%2Etop%3Dc%3Bthis%2Ebottom%3Dd%3Bthis%2Enear%3Dvoid%200%21%3D%3De%3Fe%3A%2E1%3Bthis%2Efar%3Dvoid%200%21%3D%3Df%3Ff%3A2E3%3Bthis%2EupdateProjectionMatrix%28%29%7D%3BTHREE%2EOrthographicCamera%2Eprototype%3DObject%2Ecreate%28THREE%2ECamera%2Eprototype%29%3BTHREE%2EOrthographicCamera%2Eprototype%2Econstructor%3DTHREE%2EOrthographicCamera%3B%0ATHREE%2EOrthographicCamera%2Eprototype%2EupdateProjectionMatrix%3Dfunction%28%29%7Bvar%20a%3D%28this%2Eright%2Dthis%2Eleft%29%2F%282%2Athis%2Ezoom%29%2Cb%3D%28this%2Etop%2Dthis%2Ebottom%29%2F%282%2Athis%2Ezoom%29%2Cc%3D%28this%2Eright%2Bthis%2Eleft%29%2F2%2Cd%3D%28this%2Etop%2Bthis%2Ebottom%29%2F2%3Bthis%2EprojectionMatrix%2EmakeOrthographic%28c%2Da%2Cc%2Ba%2Cd%2Bb%2Cd%2Db%2Cthis%2Enear%2Cthis%2Efar%29%7D%3B%0ATHREE%2EOrthographicCamera%2Eprototype%2Eclone%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EOrthographicCamera%3BTHREE%2ECamera%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Ba%2Ezoom%3Dthis%2Ezoom%3Ba%2Eleft%3Dthis%2Eleft%3Ba%2Eright%3Dthis%2Eright%3Ba%2Etop%3Dthis%2Etop%3Ba%2Ebottom%3Dthis%2Ebottom%3Ba%2Enear%3Dthis%2Enear%3Ba%2Efar%3Dthis%2Efar%3Ba%2EprojectionMatrix%2Ecopy%28this%2EprojectionMatrix%29%3Breturn%20a%7D%3B%0ATHREE%2EPerspectiveCamera%3Dfunction%28a%2Cb%2Cc%2Cd%29%7BTHREE%2ECamera%2Ecall%28this%29%3Bthis%2Etype%3D%22PerspectiveCamera%22%3Bthis%2Ezoom%3D1%3Bthis%2Efov%3Dvoid%200%21%3D%3Da%3Fa%3A50%3Bthis%2Easpect%3Dvoid%200%21%3D%3Db%3Fb%3A1%3Bthis%2Enear%3Dvoid%200%21%3D%3Dc%3Fc%3A%2E1%3Bthis%2Efar%3Dvoid%200%21%3D%3Dd%3Fd%3A2E3%3Bthis%2EupdateProjectionMatrix%28%29%7D%3BTHREE%2EPerspectiveCamera%2Eprototype%3DObject%2Ecreate%28THREE%2ECamera%2Eprototype%29%3BTHREE%2EPerspectiveCamera%2Eprototype%2Econstructor%3DTHREE%2EPerspectiveCamera%3B%0ATHREE%2EPerspectiveCamera%2Eprototype%2EsetLens%3Dfunction%28a%2Cb%29%7Bvoid%200%3D%3D%3Db%26%26%28b%3D24%29%3Bthis%2Efov%3D2%2ATHREE%2EMath%2EradToDeg%28Math%2Eatan%28b%2F%282%2Aa%29%29%29%3Bthis%2EupdateProjectionMatrix%28%29%7D%3BTHREE%2EPerspectiveCamera%2Eprototype%2EsetViewOffset%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%29%7Bthis%2EfullWidth%3Da%3Bthis%2EfullHeight%3Db%3Bthis%2Ex%3Dc%3Bthis%2Ey%3Dd%3Bthis%2Ewidth%3De%3Bthis%2Eheight%3Df%3Bthis%2EupdateProjectionMatrix%28%29%7D%3B%0ATHREE%2EPerspectiveCamera%2Eprototype%2EupdateProjectionMatrix%3Dfunction%28%29%7Bvar%20a%3DTHREE%2EMath%2EradToDeg%282%2AMath%2Eatan%28Math%2Etan%28%2E5%2ATHREE%2EMath%2EdegToRad%28this%2Efov%29%29%2Fthis%2Ezoom%29%29%3Bif%28this%2EfullWidth%29%7Bvar%20b%3Dthis%2EfullWidth%2Fthis%2EfullHeight%2Ca%3DMath%2Etan%28THREE%2EMath%2EdegToRad%28%2E5%2Aa%29%29%2Athis%2Enear%2Cc%3D%2Da%2Cd%3Db%2Ac%2Cb%3DMath%2Eabs%28b%2Aa%2Dd%29%2Cc%3DMath%2Eabs%28a%2Dc%29%3Bthis%2EprojectionMatrix%2EmakeFrustum%28d%2Bthis%2Ex%2Ab%2Fthis%2EfullWidth%2Cd%2B%28this%2Ex%2Bthis%2Ewidth%29%2Ab%2Fthis%2EfullWidth%2Ca%2D%28this%2Ey%2Bthis%2Eheight%29%2Ac%2Fthis%2EfullHeight%2Ca%2Dthis%2Ey%2Ac%2Fthis%2EfullHeight%2Cthis%2Enear%2Cthis%2Efar%29%7Delse%20this%2EprojectionMatrix%2EmakePerspective%28a%2C%0Athis%2Easpect%2Cthis%2Enear%2Cthis%2Efar%29%7D%3BTHREE%2EPerspectiveCamera%2Eprototype%2Eclone%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EPerspectiveCamera%3BTHREE%2ECamera%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Ba%2Ezoom%3Dthis%2Ezoom%3Ba%2Efov%3Dthis%2Efov%3Ba%2Easpect%3Dthis%2Easpect%3Ba%2Enear%3Dthis%2Enear%3Ba%2Efar%3Dthis%2Efar%3Ba%2EprojectionMatrix%2Ecopy%28this%2EprojectionMatrix%29%3Breturn%20a%7D%3BTHREE%2ELight%3Dfunction%28a%29%7BTHREE%2EObject3D%2Ecall%28this%29%3Bthis%2Etype%3D%22Light%22%3Bthis%2Ecolor%3Dnew%20THREE%2EColor%28a%29%7D%3BTHREE%2ELight%2Eprototype%3DObject%2Ecreate%28THREE%2EObject3D%2Eprototype%29%3BTHREE%2ELight%2Eprototype%2Econstructor%3DTHREE%2ELight%3B%0ATHREE%2ELight%2Eprototype%2Eclone%3Dfunction%28a%29%7Bvoid%200%3D%3D%3Da%26%26%28a%3Dnew%20THREE%2ELight%29%3BTHREE%2EObject3D%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Ba%2Ecolor%2Ecopy%28this%2Ecolor%29%3Breturn%20a%7D%3BTHREE%2EAmbientLight%3Dfunction%28a%29%7BTHREE%2ELight%2Ecall%28this%2Ca%29%3Bthis%2Etype%3D%22AmbientLight%22%7D%3BTHREE%2EAmbientLight%2Eprototype%3DObject%2Ecreate%28THREE%2ELight%2Eprototype%29%3BTHREE%2EAmbientLight%2Eprototype%2Econstructor%3DTHREE%2EAmbientLight%3BTHREE%2EAmbientLight%2Eprototype%2Eclone%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EAmbientLight%3BTHREE%2ELight%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Breturn%20a%7D%3B%0ATHREE%2EAreaLight%3Dfunction%28a%2Cb%29%7BTHREE%2ELight%2Ecall%28this%2Ca%29%3Bthis%2Etype%3D%22AreaLight%22%3Bthis%2Enormal%3Dnew%20THREE%2EVector3%280%2C%2D1%2C0%29%3Bthis%2Eright%3Dnew%20THREE%2EVector3%281%2C0%2C0%29%3Bthis%2Eintensity%3Dvoid%200%21%3D%3Db%3Fb%3A1%3Bthis%2Eheight%3Dthis%2Ewidth%3D1%3Bthis%2EconstantAttenuation%3D1%2E5%3Bthis%2ElinearAttenuation%3D%2E5%3Bthis%2EquadraticAttenuation%3D%2E1%7D%3BTHREE%2EAreaLight%2Eprototype%3DObject%2Ecreate%28THREE%2ELight%2Eprototype%29%3BTHREE%2EAreaLight%2Eprototype%2Econstructor%3DTHREE%2EAreaLight%3B%0ATHREE%2EDirectionalLight%3Dfunction%28a%2Cb%29%7BTHREE%2ELight%2Ecall%28this%2Ca%29%3Bthis%2Etype%3D%22DirectionalLight%22%3Bthis%2Eposition%2Eset%280%2C1%2C0%29%3Bthis%2Etarget%3Dnew%20THREE%2EObject3D%3Bthis%2Eintensity%3Dvoid%200%21%3D%3Db%3Fb%3A1%3Bthis%2EonlyShadow%3Dthis%2EcastShadow%3D%211%3Bthis%2EshadowCameraNear%3D50%3Bthis%2EshadowCameraFar%3D5E3%3Bthis%2EshadowCameraLeft%3D%2D500%3Bthis%2EshadowCameraTop%3Dthis%2EshadowCameraRight%3D500%3Bthis%2EshadowCameraBottom%3D%2D500%3Bthis%2EshadowCameraVisible%3D%211%3Bthis%2EshadowBias%3D0%3Bthis%2EshadowDarkness%3D%2E5%3Bthis%2EshadowMapHeight%3Dthis%2EshadowMapWidth%3D512%3Bthis%2EshadowCascade%3D%211%3B%0Athis%2EshadowCascadeOffset%3Dnew%20THREE%2EVector3%280%2C0%2C%2D1E3%29%3Bthis%2EshadowCascadeCount%3D2%3Bthis%2EshadowCascadeBias%3D%5B0%2C0%2C0%5D%3Bthis%2EshadowCascadeWidth%3D%5B512%2C512%2C512%5D%3Bthis%2EshadowCascadeHeight%3D%5B512%2C512%2C512%5D%3Bthis%2EshadowCascadeNearZ%3D%5B%2D1%2C%2E99%2C%2E998%5D%3Bthis%2EshadowCascadeFarZ%3D%5B%2E99%2C%2E998%2C1%5D%3Bthis%2EshadowCascadeArray%3D%5B%5D%3Bthis%2EshadowMatrix%3Dthis%2EshadowCamera%3Dthis%2EshadowMapSize%3Dthis%2EshadowMap%3Dnull%7D%3BTHREE%2EDirectionalLight%2Eprototype%3DObject%2Ecreate%28THREE%2ELight%2Eprototype%29%3BTHREE%2EDirectionalLight%2Eprototype%2Econstructor%3DTHREE%2EDirectionalLight%3B%0ATHREE%2EDirectionalLight%2Eprototype%2Eclone%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EDirectionalLight%3BTHREE%2ELight%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Ba%2Etarget%3Dthis%2Etarget%2Eclone%28%29%3Ba%2Eintensity%3Dthis%2Eintensity%3Ba%2EcastShadow%3Dthis%2EcastShadow%3Ba%2EonlyShadow%3Dthis%2EonlyShadow%3Ba%2EshadowCameraNear%3Dthis%2EshadowCameraNear%3Ba%2EshadowCameraFar%3Dthis%2EshadowCameraFar%3Ba%2EshadowCameraLeft%3Dthis%2EshadowCameraLeft%3Ba%2EshadowCameraRight%3Dthis%2EshadowCameraRight%3Ba%2EshadowCameraTop%3Dthis%2EshadowCameraTop%3Ba%2EshadowCameraBottom%3Dthis%2EshadowCameraBottom%3Ba%2EshadowCameraVisible%3D%0Athis%2EshadowCameraVisible%3Ba%2EshadowBias%3Dthis%2EshadowBias%3Ba%2EshadowDarkness%3Dthis%2EshadowDarkness%3Ba%2EshadowMapWidth%3Dthis%2EshadowMapWidth%3Ba%2EshadowMapHeight%3Dthis%2EshadowMapHeight%3Ba%2EshadowCascade%3Dthis%2EshadowCascade%3Ba%2EshadowCascadeOffset%2Ecopy%28this%2EshadowCascadeOffset%29%3Ba%2EshadowCascadeCount%3Dthis%2EshadowCascadeCount%3Ba%2EshadowCascadeBias%3Dthis%2EshadowCascadeBias%2Eslice%280%29%3Ba%2EshadowCascadeWidth%3Dthis%2EshadowCascadeWidth%2Eslice%280%29%3Ba%2EshadowCascadeHeight%3Dthis%2EshadowCascadeHeight%2Eslice%280%29%3Ba%2EshadowCascadeNearZ%3Dthis%2EshadowCascadeNearZ%2Eslice%280%29%3B%0Aa%2EshadowCascadeFarZ%3Dthis%2EshadowCascadeFarZ%2Eslice%280%29%3Breturn%20a%7D%3BTHREE%2EHemisphereLight%3Dfunction%28a%2Cb%2Cc%29%7BTHREE%2ELight%2Ecall%28this%2Ca%29%3Bthis%2Etype%3D%22HemisphereLight%22%3Bthis%2Eposition%2Eset%280%2C100%2C0%29%3Bthis%2EgroundColor%3Dnew%20THREE%2EColor%28b%29%3Bthis%2Eintensity%3Dvoid%200%21%3D%3Dc%3Fc%3A1%7D%3BTHREE%2EHemisphereLight%2Eprototype%3DObject%2Ecreate%28THREE%2ELight%2Eprototype%29%3BTHREE%2EHemisphereLight%2Eprototype%2Econstructor%3DTHREE%2EHemisphereLight%3B%0ATHREE%2EHemisphereLight%2Eprototype%2Eclone%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EHemisphereLight%3BTHREE%2ELight%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Ba%2EgroundColor%2Ecopy%28this%2EgroundColor%29%3Ba%2Eintensity%3Dthis%2Eintensity%3Breturn%20a%7D%3BTHREE%2EPointLight%3Dfunction%28a%2Cb%2Cc%29%7BTHREE%2ELight%2Ecall%28this%2Ca%29%3Bthis%2Etype%3D%22PointLight%22%3Bthis%2Eintensity%3Dvoid%200%21%3D%3Db%3Fb%3A1%3Bthis%2Edistance%3Dvoid%200%21%3D%3Dc%3Fc%3A0%7D%3BTHREE%2EPointLight%2Eprototype%3DObject%2Ecreate%28THREE%2ELight%2Eprototype%29%3BTHREE%2EPointLight%2Eprototype%2Econstructor%3DTHREE%2EPointLight%3B%0ATHREE%2EPointLight%2Eprototype%2Eclone%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EPointLight%3BTHREE%2ELight%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Ba%2Eintensity%3Dthis%2Eintensity%3Ba%2Edistance%3Dthis%2Edistance%3Breturn%20a%7D%3B%0ATHREE%2ESpotLight%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%29%7BTHREE%2ELight%2Ecall%28this%2Ca%29%3Bthis%2Etype%3D%22SpotLight%22%3Bthis%2Eposition%2Eset%280%2C1%2C0%29%3Bthis%2Etarget%3Dnew%20THREE%2EObject3D%3Bthis%2Eintensity%3Dvoid%200%21%3D%3Db%3Fb%3A1%3Bthis%2Edistance%3Dvoid%200%21%3D%3Dc%3Fc%3A0%3Bthis%2Eangle%3Dvoid%200%21%3D%3Dd%3Fd%3AMath%2EPI%2F3%3Bthis%2Eexponent%3Dvoid%200%21%3D%3De%3Fe%3A10%3Bthis%2EonlyShadow%3Dthis%2EcastShadow%3D%211%3Bthis%2EshadowCameraNear%3D50%3Bthis%2EshadowCameraFar%3D5E3%3Bthis%2EshadowCameraFov%3D50%3Bthis%2EshadowCameraVisible%3D%211%3Bthis%2EshadowBias%3D0%3Bthis%2EshadowDarkness%3D%2E5%3Bthis%2EshadowMapHeight%3Dthis%2EshadowMapWidth%3D512%3Bthis%2EshadowMatrix%3D%0Athis%2EshadowCamera%3Dthis%2EshadowMapSize%3Dthis%2EshadowMap%3Dnull%7D%3BTHREE%2ESpotLight%2Eprototype%3DObject%2Ecreate%28THREE%2ELight%2Eprototype%29%3BTHREE%2ESpotLight%2Eprototype%2Econstructor%3DTHREE%2ESpotLight%3B%0ATHREE%2ESpotLight%2Eprototype%2Eclone%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2ESpotLight%3BTHREE%2ELight%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Ba%2Etarget%3Dthis%2Etarget%2Eclone%28%29%3Ba%2Eintensity%3Dthis%2Eintensity%3Ba%2Edistance%3Dthis%2Edistance%3Ba%2Eangle%3Dthis%2Eangle%3Ba%2Eexponent%3Dthis%2Eexponent%3Ba%2EcastShadow%3Dthis%2EcastShadow%3Ba%2EonlyShadow%3Dthis%2EonlyShadow%3Ba%2EshadowCameraNear%3Dthis%2EshadowCameraNear%3Ba%2EshadowCameraFar%3Dthis%2EshadowCameraFar%3Ba%2EshadowCameraFov%3Dthis%2EshadowCameraFov%3Ba%2EshadowCameraVisible%3Dthis%2EshadowCameraVisible%3Ba%2EshadowBias%3Dthis%2EshadowBias%3Ba%2EshadowDarkness%3D%0Athis%2EshadowDarkness%3Ba%2EshadowMapWidth%3Dthis%2EshadowMapWidth%3Ba%2EshadowMapHeight%3Dthis%2EshadowMapHeight%3Breturn%20a%7D%3BTHREE%2ECache%3Dfunction%28%29%7Bthis%2Efiles%3D%7B%7D%7D%3BTHREE%2ECache%2Eprototype%3D%7Bconstructor%3ATHREE%2ECache%2Cadd%3Afunction%28a%2Cb%29%7Bthis%2Efiles%5Ba%5D%3Db%7D%2Cget%3Afunction%28a%29%7Breturn%20this%2Efiles%5Ba%5D%7D%2Cremove%3Afunction%28a%29%7Bdelete%20this%2Efiles%5Ba%5D%7D%2Cclear%3Afunction%28%29%7Bthis%2Efiles%3D%7B%7D%7D%7D%3B%0ATHREE%2ELoader%3Dfunction%28a%29%7Bthis%2EstatusDomElement%3D%28this%2EshowStatus%3Da%29%3FTHREE%2ELoader%2Eprototype%2EaddStatusElement%28%29%3Anull%3Bthis%2EimageLoader%3Dnew%20THREE%2EImageLoader%3Bthis%2EonLoadStart%3Dfunction%28%29%7B%7D%3Bthis%2EonLoadProgress%3Dfunction%28%29%7B%7D%3Bthis%2EonLoadComplete%3Dfunction%28%29%7B%7D%7D%3B%0ATHREE%2ELoader%2Eprototype%3D%7Bconstructor%3ATHREE%2ELoader%2CcrossOrigin%3Avoid%200%2CaddStatusElement%3Afunction%28%29%7Bvar%20a%3Ddocument%2EcreateElement%28%22div%22%29%3Ba%2Estyle%2Eposition%3D%22absolute%22%3Ba%2Estyle%2Eright%3D%220px%22%3Ba%2Estyle%2Etop%3D%220px%22%3Ba%2Estyle%2EfontSize%3D%220%2E8em%22%3Ba%2Estyle%2EtextAlign%3D%22left%22%3Ba%2Estyle%2Ebackground%3D%22rgba%280%2C0%2C0%2C0%2E25%29%22%3Ba%2Estyle%2Ecolor%3D%22%23fff%22%3Ba%2Estyle%2Ewidth%3D%22120px%22%3Ba%2Estyle%2Epadding%3D%220%2E5em%200%2E5em%200%2E5em%200%2E5em%22%3Ba%2Estyle%2EzIndex%3D1E3%3Ba%2EinnerHTML%3D%22Loading%20%2E%2E%2E%22%3Breturn%20a%7D%2CupdateProgress%3Afunction%28a%29%7Bvar%20b%3D%22Loaded%20%22%2Cb%3Da%2Etotal%3Fb%2B%28%28100%2Aa%2Eloaded%2Fa%2Etotal%29%2EtoFixed%280%29%2B%0A%22%25%22%29%3Ab%2B%28%28a%2Eloaded%2F1024%29%2EtoFixed%282%29%2B%22%20KB%22%29%3Bthis%2EstatusDomElement%2EinnerHTML%3Db%7D%2CextractUrlBase%3Afunction%28a%29%7Ba%3Da%2Esplit%28%22%2F%22%29%3Bif%281%3D%3D%3Da%2Elength%29return%22%2E%2F%22%3Ba%2Epop%28%29%3Breturn%20a%2Ejoin%28%22%2F%22%29%2B%22%2F%22%7D%2CinitMaterials%3Afunction%28a%2Cb%29%7Bfor%28var%20c%3D%5B%5D%2Cd%3D0%3Bd%3Ca%2Elength%3B%2B%2Bd%29c%5Bd%5D%3Dthis%2EcreateMaterial%28a%5Bd%5D%2Cb%29%3Breturn%20c%7D%2CneedsTangents%3Afunction%28a%29%7Bfor%28var%20b%3D0%2Cc%3Da%2Elength%3Bb%3Cc%3Bb%2B%2B%29if%28a%5Bb%5Dinstanceof%20THREE%2EShaderMaterial%29return%210%3Breturn%211%7D%2CcreateMaterial%3Afunction%28a%2Cb%29%7Bfunction%20c%28a%29%7Ba%3DMath%2Elog%28a%29%2FMath%2ELN2%3Breturn%20Math%2Epow%282%2CMath%2Eround%28a%29%29%7Dfunction%20d%28a%2C%0Ad%2Ce%2Cg%2Ch%2Ck%2Cr%29%7Bvar%20u%3Db%2Be%2Cv%2Cy%3DTHREE%2ELoader%2EHandlers%2Eget%28u%29%3Bnull%21%3D%3Dy%3Fv%3Dy%2Eload%28u%29%3A%28v%3Dnew%20THREE%2ETexture%2Cy%3Df%2EimageLoader%2Cy%2EcrossOrigin%3Df%2EcrossOrigin%2Cy%2Eload%28u%2Cfunction%28a%29%7Bif%28%211%3D%3D%3DTHREE%2EMath%2EisPowerOfTwo%28a%2Ewidth%29%7C%7C%211%3D%3D%3DTHREE%2EMath%2EisPowerOfTwo%28a%2Eheight%29%29%7Bvar%20b%3Dc%28a%2Ewidth%29%2Cd%3Dc%28a%2Eheight%29%2Ce%3Ddocument%2EcreateElement%28%22canvas%22%29%3Be%2Ewidth%3Db%3Be%2Eheight%3Dd%3Be%2EgetContext%28%222d%22%29%2EdrawImage%28a%2C0%2C0%2Cb%2Cd%29%3Bv%2Eimage%3De%7Delse%20v%2Eimage%3Da%3Bv%2EneedsUpdate%3D%210%7D%29%29%3Bv%2EsourceFile%3De%3Bg%26%26%28v%2Erepeat%2Eset%28g%5B0%5D%2Cg%5B1%5D%29%2C1%21%3D%3Dg%5B0%5D%26%26%28v%2EwrapS%3DTHREE%2ERepeatWrapping%29%2C%0A1%21%3D%3Dg%5B1%5D%26%26%28v%2EwrapT%3DTHREE%2ERepeatWrapping%29%29%3Bh%26%26v%2Eoffset%2Eset%28h%5B0%5D%2Ch%5B1%5D%29%3Bk%26%26%28e%3D%7Brepeat%3ATHREE%2ERepeatWrapping%2Cmirror%3ATHREE%2EMirroredRepeatWrapping%7D%2Cvoid%200%21%3D%3De%5Bk%5B0%5D%5D%26%26%28v%2EwrapS%3De%5Bk%5B0%5D%5D%29%2Cvoid%200%21%3D%3De%5Bk%5B1%5D%5D%26%26%28v%2EwrapT%3De%5Bk%5B1%5D%5D%29%29%3Br%26%26%28v%2Eanisotropy%3Dr%29%3Ba%5Bd%5D%3Dv%7Dfunction%20e%28a%29%7Breturn%28255%2Aa%5B0%5D%3C%3C16%29%2B%28255%2Aa%5B1%5D%3C%3C8%29%2B255%2Aa%5B2%5D%7Dvar%20f%3Dthis%2Cg%3D%22MeshLambertMaterial%22%2Ch%3D%7Bcolor%3A15658734%2Copacity%3A1%2Cmap%3Anull%2ClightMap%3Anull%2CnormalMap%3Anull%2CbumpMap%3Anull%2Cwireframe%3A%211%7D%3Bif%28a%2Eshading%29%7Bvar%20k%3Da%2Eshading%2EtoLowerCase%28%29%3B%22phong%22%3D%3D%3Dk%3Fg%3D%22MeshPhongMaterial%22%3A%0A%22basic%22%3D%3D%3Dk%26%26%28g%3D%22MeshBasicMaterial%22%29%7Dvoid%200%21%3D%3Da%2Eblending%26%26void%200%21%3D%3DTHREE%5Ba%2Eblending%5D%26%26%28h%2Eblending%3DTHREE%5Ba%2Eblending%5D%29%3Bif%28void%200%21%3D%3Da%2Etransparent%7C%7C1%3Ea%2Eopacity%29h%2Etransparent%3Da%2Etransparent%3Bvoid%200%21%3D%3Da%2EdepthTest%26%26%28h%2EdepthTest%3Da%2EdepthTest%29%3Bvoid%200%21%3D%3Da%2EdepthWrite%26%26%28h%2EdepthWrite%3Da%2EdepthWrite%29%3Bvoid%200%21%3D%3Da%2Evisible%26%26%28h%2Evisible%3Da%2Evisible%29%3Bvoid%200%21%3D%3Da%2EflipSided%26%26%28h%2Eside%3DTHREE%2EBackSide%29%3Bvoid%200%21%3D%3Da%2EdoubleSided%26%26%28h%2Eside%3DTHREE%2EDoubleSide%29%3Bvoid%200%21%3D%3Da%2Ewireframe%26%26%28h%2Ewireframe%3Da%2Ewireframe%29%3Bvoid%200%21%3D%3Da%2EvertexColors%26%26%28%22face%22%3D%3D%3D%0Aa%2EvertexColors%3Fh%2EvertexColors%3DTHREE%2EFaceColors%3Aa%2EvertexColors%26%26%28h%2EvertexColors%3DTHREE%2EVertexColors%29%29%3Ba%2EcolorDiffuse%3Fh%2Ecolor%3De%28a%2EcolorDiffuse%29%3Aa%2EDbgColor%26%26%28h%2Ecolor%3Da%2EDbgColor%29%3Ba%2EcolorSpecular%26%26%28h%2Especular%3De%28a%2EcolorSpecular%29%29%3Ba%2EcolorAmbient%26%26%28h%2Eambient%3De%28a%2EcolorAmbient%29%29%3Ba%2EcolorEmissive%26%26%28h%2Eemissive%3De%28a%2EcolorEmissive%29%29%3Ba%2Etransparency%26%26%28h%2Eopacity%3Da%2Etransparency%29%3Ba%2EspecularCoef%26%26%28h%2Eshininess%3Da%2EspecularCoef%29%3Ba%2EmapDiffuse%26%26b%26%26d%28h%2C%22map%22%2Ca%2EmapDiffuse%2Ca%2EmapDiffuseRepeat%2Ca%2EmapDiffuseOffset%2Ca%2EmapDiffuseWrap%2C%0Aa%2EmapDiffuseAnisotropy%29%3Ba%2EmapLight%26%26b%26%26d%28h%2C%22lightMap%22%2Ca%2EmapLight%2Ca%2EmapLightRepeat%2Ca%2EmapLightOffset%2Ca%2EmapLightWrap%2Ca%2EmapLightAnisotropy%29%3Ba%2EmapBump%26%26b%26%26d%28h%2C%22bumpMap%22%2Ca%2EmapBump%2Ca%2EmapBumpRepeat%2Ca%2EmapBumpOffset%2Ca%2EmapBumpWrap%2Ca%2EmapBumpAnisotropy%29%3Ba%2EmapNormal%26%26b%26%26d%28h%2C%22normalMap%22%2Ca%2EmapNormal%2Ca%2EmapNormalRepeat%2Ca%2EmapNormalOffset%2Ca%2EmapNormalWrap%2Ca%2EmapNormalAnisotropy%29%3Ba%2EmapSpecular%26%26b%26%26d%28h%2C%22specularMap%22%2Ca%2EmapSpecular%2Ca%2EmapSpecularRepeat%2Ca%2EmapSpecularOffset%2Ca%2EmapSpecularWrap%2Ca%2EmapSpecularAnisotropy%29%3Ba%2EmapAlpha%26%26%0Ab%26%26d%28h%2C%22alphaMap%22%2Ca%2EmapAlpha%2Ca%2EmapAlphaRepeat%2Ca%2EmapAlphaOffset%2Ca%2EmapAlphaWrap%2Ca%2EmapAlphaAnisotropy%29%3Ba%2EmapBumpScale%26%26%28h%2EbumpScale%3Da%2EmapBumpScale%29%3Ba%2EmapNormalFactor%26%26%28h%2EnormalScale%3Dnew%20THREE%2EVector2%28a%2EmapNormalFactor%2Ca%2EmapNormalFactor%29%29%3Bg%3Dnew%20THREE%5Bg%5D%28h%29%3Bvoid%200%21%3D%3Da%2EDbgName%26%26%28g%2Ename%3Da%2EDbgName%29%3Breturn%20g%7D%7D%3BTHREE%2ELoader%2EHandlers%3D%7Bhandlers%3A%5B%5D%2Cadd%3Afunction%28a%2Cb%29%7Bthis%2Ehandlers%2Epush%28a%2Cb%29%7D%2Cget%3Afunction%28a%29%7Bfor%28var%20b%3D0%2Cc%3Dthis%2Ehandlers%2Elength%3Bb%3Cc%3Bb%2B%3D2%29%7Bvar%20d%3Dthis%2Ehandlers%5Bb%2B1%5D%3Bif%28this%2Ehandlers%5Bb%5D%2Etest%28a%29%29return%20d%7Dreturn%20null%7D%7D%3B%0ATHREE%2EXHRLoader%3Dfunction%28a%29%7Bthis%2Ecache%3Dnew%20THREE%2ECache%3Bthis%2Emanager%3Dvoid%200%21%3D%3Da%3Fa%3ATHREE%2EDefaultLoadingManager%7D%3B%0ATHREE%2EXHRLoader%2Eprototype%3D%7Bconstructor%3ATHREE%2EXHRLoader%2Cload%3Afunction%28a%2Cb%2Cc%2Cd%29%7Bvar%20e%3Dthis%2Cf%3De%2Ecache%2Eget%28a%29%3Bvoid%200%21%3D%3Df%3Fb%26%26b%28f%29%3A%28f%3Dnew%20XMLHttpRequest%2Cf%2Eopen%28%22GET%22%2Ca%2C%210%29%2Cf%2EaddEventListener%28%22load%22%2Cfunction%28c%29%7Be%2Ecache%2Eadd%28a%2Cthis%2Eresponse%29%3Bb%26%26b%28this%2Eresponse%29%3Be%2Emanager%2EitemEnd%28a%29%7D%2C%211%29%2Cvoid%200%21%3D%3Dc%26%26f%2EaddEventListener%28%22progress%22%2Cfunction%28a%29%7Bc%28a%29%7D%2C%211%29%2Cvoid%200%21%3D%3Dd%26%26f%2EaddEventListener%28%22error%22%2Cfunction%28a%29%7Bd%28a%29%7D%2C%211%29%2Cvoid%200%21%3D%3Dthis%2EcrossOrigin%26%26%28f%2EcrossOrigin%3Dthis%2EcrossOrigin%29%2Cvoid%200%21%3D%3Dthis%2EresponseType%26%26%28f%2EresponseType%3D%0Athis%2EresponseType%29%2Cf%2Esend%28null%29%2Ce%2Emanager%2EitemStart%28a%29%29%7D%2CsetResponseType%3Afunction%28a%29%7Bthis%2EresponseType%3Da%7D%2CsetCrossOrigin%3Afunction%28a%29%7Bthis%2EcrossOrigin%3Da%7D%7D%3BTHREE%2EImageLoader%3Dfunction%28a%29%7Bthis%2Ecache%3Dnew%20THREE%2ECache%3Bthis%2Emanager%3Dvoid%200%21%3D%3Da%3Fa%3ATHREE%2EDefaultLoadingManager%7D%3B%0ATHREE%2EImageLoader%2Eprototype%3D%7Bconstructor%3ATHREE%2EImageLoader%2Cload%3Afunction%28a%2Cb%2Cc%2Cd%29%7Bvar%20e%3Dthis%2Cf%3De%2Ecache%2Eget%28a%29%3Bif%28void%200%21%3D%3Df%29b%28f%29%3Belse%20return%20f%3Ddocument%2EcreateElement%28%22img%22%29%2Cvoid%200%21%3D%3Db%26%26f%2EaddEventListener%28%22load%22%2Cfunction%28c%29%7Be%2Ecache%2Eadd%28a%2Cthis%29%3Bb%28this%29%3Be%2Emanager%2EitemEnd%28a%29%7D%2C%211%29%2Cvoid%200%21%3D%3Dc%26%26f%2EaddEventListener%28%22progress%22%2Cfunction%28a%29%7Bc%28a%29%7D%2C%211%29%2Cvoid%200%21%3D%3Dd%26%26f%2EaddEventListener%28%22error%22%2Cfunction%28a%29%7Bd%28a%29%7D%2C%211%29%2Cvoid%200%21%3D%3Dthis%2EcrossOrigin%26%26%28f%2EcrossOrigin%3Dthis%2EcrossOrigin%29%2Cf%2Esrc%3Da%2Ce%2Emanager%2EitemStart%28a%29%2Cf%7D%2CsetCrossOrigin%3Afunction%28a%29%7Bthis%2EcrossOrigin%3D%0Aa%7D%7D%3BTHREE%2EJSONLoader%3Dfunction%28a%29%7BTHREE%2ELoader%2Ecall%28this%2Ca%29%3Bthis%2EwithCredentials%3D%211%7D%3BTHREE%2EJSONLoader%2Eprototype%3DObject%2Ecreate%28THREE%2ELoader%2Eprototype%29%3BTHREE%2EJSONLoader%2Eprototype%2Econstructor%3DTHREE%2EJSONLoader%3BTHREE%2EJSONLoader%2Eprototype%2Eload%3Dfunction%28a%2Cb%2Cc%29%7Bc%3Dc%26%26%22string%22%3D%3D%3Dtypeof%20c%3Fc%3Athis%2EextractUrlBase%28a%29%3Bthis%2EonLoadStart%28%29%3Bthis%2EloadAjaxJSON%28this%2Ca%2Cb%2Cc%29%7D%3B%0ATHREE%2EJSONLoader%2Eprototype%2EloadAjaxJSON%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%29%7Bvar%20f%3Dnew%20XMLHttpRequest%2Cg%3D0%3Bf%2Eonreadystatechange%3Dfunction%28%29%7Bif%28f%2EreadyState%3D%3D%3Df%2EDONE%29if%28200%3D%3D%3Df%2Estatus%7C%7C0%3D%3D%3Df%2Estatus%29%7Bif%28f%2EresponseText%29%7Bvar%20h%3DJSON%2Eparse%28f%2EresponseText%29%3Bif%28void%200%21%3D%3Dh%2Emetadata%26%26%22scene%22%3D%3D%3Dh%2Emetadata%2Etype%29%7Bconsole%2Eerror%28%27THREE%2EJSONLoader%3A%20%22%27%2Bb%2B%27%22%20seems%20to%20be%20a%20Scene%2E%20Use%20THREE%2ESceneLoader%20instead%2E%27%29%3Breturn%7Dh%3Da%2Eparse%28h%2Cd%29%3Bc%28h%2Egeometry%2Ch%2Ematerials%29%7Delse%20console%2Eerror%28%27THREE%2EJSONLoader%3A%20%22%27%2Bb%2B%27%22%20seems%20to%20be%20unreachable%20or%20the%20file%20is%20empty%2E%27%29%3B%0Aa%2EonLoadComplete%28%29%7Delse%20console%2Eerror%28%22THREE%2EJSONLoader%3A%20Couldn%27t%20load%20%5C%22%22%2Bb%2B%27%22%20%28%27%2Bf%2Estatus%2B%22%29%22%29%3Belse%20f%2EreadyState%3D%3D%3Df%2ELOADING%3Fe%26%26%280%3D%3D%3Dg%26%26%28g%3Df%2EgetResponseHeader%28%22Content%2DLength%22%29%29%2Ce%28%7Btotal%3Ag%2Cloaded%3Af%2EresponseText%2Elength%7D%29%29%3Af%2EreadyState%3D%3D%3Df%2EHEADERS%5FRECEIVED%26%26void%200%21%3D%3De%26%26%28g%3Df%2EgetResponseHeader%28%22Content%2DLength%22%29%29%7D%3Bf%2Eopen%28%22GET%22%2Cb%2C%210%29%3Bf%2EwithCredentials%3Dthis%2EwithCredentials%3Bf%2Esend%28null%29%7D%3B%0ATHREE%2EJSONLoader%2Eprototype%2Eparse%3Dfunction%28a%2Cb%29%7Bvar%20c%3Dnew%20THREE%2EGeometry%2Cd%3Dvoid%200%21%3D%3Da%2Escale%3F1%2Fa%2Escale%3A1%3B%28function%28b%29%7Bvar%20d%2Cg%2Ch%2Ck%2Cn%2Cp%2Cq%2Cm%2Ct%2Cs%2Cr%2Cu%2Cv%2Cy%3Da%2Efaces%3Bp%3Da%2Evertices%3Bvar%20C%3Da%2Enormals%2Cx%3Da%2Ecolors%2CF%3D0%3Bif%28void%200%21%3D%3Da%2Euvs%29%7Bfor%28d%3D0%3Bd%3Ca%2Euvs%2Elength%3Bd%2B%2B%29a%2Euvs%5Bd%5D%2Elength%26%26F%2B%2B%3Bfor%28d%3D0%3Bd%3CF%3Bd%2B%2B%29c%2EfaceVertexUvs%5Bd%5D%3D%5B%5D%7Dk%3D0%3Bfor%28n%3Dp%2Elength%3Bk%3Cn%3B%29d%3Dnew%20THREE%2EVector3%2Cd%2Ex%3Dp%5Bk%2B%2B%5D%2Ab%2Cd%2Ey%3Dp%5Bk%2B%2B%5D%2Ab%2Cd%2Ez%3Dp%5Bk%2B%2B%5D%2Ab%2Cc%2Evertices%2Epush%28d%29%3Bk%3D0%3Bfor%28n%3Dy%2Elength%3Bk%3Cn%3B%29if%28b%3Dy%5Bk%2B%2B%5D%2Ct%3Db%261%2Ch%3Db%262%2Cd%3Db%268%2Cq%3Db%2616%2Cs%3Db%2632%2Cp%3Db%2664%2Cb%26%3D128%2Ct%29%7Bt%3Dnew%20THREE%2EFace3%3B%0At%2Ea%3Dy%5Bk%5D%3Bt%2Eb%3Dy%5Bk%2B1%5D%3Bt%2Ec%3Dy%5Bk%2B3%5D%3Br%3Dnew%20THREE%2EFace3%3Br%2Ea%3Dy%5Bk%2B1%5D%3Br%2Eb%3Dy%5Bk%2B2%5D%3Br%2Ec%3Dy%5Bk%2B3%5D%3Bk%2B%3D4%3Bh%26%26%28h%3Dy%5Bk%2B%2B%5D%2Ct%2EmaterialIndex%3Dh%2Cr%2EmaterialIndex%3Dh%29%3Bh%3Dc%2Efaces%2Elength%3Bif%28d%29for%28d%3D0%3Bd%3CF%3Bd%2B%2B%29for%28u%3Da%2Euvs%5Bd%5D%2Cc%2EfaceVertexUvs%5Bd%5D%5Bh%5D%3D%5B%5D%2Cc%2EfaceVertexUvs%5Bd%5D%5Bh%2B1%5D%3D%5B%5D%2Cg%3D0%3B4%3Eg%3Bg%2B%2B%29m%3Dy%5Bk%2B%2B%5D%2Cv%3Du%5B2%2Am%5D%2Cm%3Du%5B2%2Am%2B1%5D%2Cv%3Dnew%20THREE%2EVector2%28v%2Cm%29%2C2%21%3D%3Dg%26%26c%2EfaceVertexUvs%5Bd%5D%5Bh%5D%2Epush%28v%29%2C0%21%3D%3Dg%26%26c%2EfaceVertexUvs%5Bd%5D%5Bh%2B1%5D%2Epush%28v%29%3Bq%26%26%28q%3D3%2Ay%5Bk%2B%2B%5D%2Ct%2Enormal%2Eset%28C%5Bq%2B%2B%5D%2CC%5Bq%2B%2B%5D%2CC%5Bq%5D%29%2Cr%2Enormal%2Ecopy%28t%2Enormal%29%29%3Bif%28s%29for%28d%3D0%3B4%3Ed%3Bd%2B%2B%29q%3D3%2Ay%5Bk%2B%2B%5D%2Cs%3Dnew%20THREE%2EVector3%28C%5Bq%2B%2B%5D%2C%0AC%5Bq%2B%2B%5D%2CC%5Bq%5D%29%2C2%21%3D%3Dd%26%26t%2EvertexNormals%2Epush%28s%29%2C0%21%3D%3Dd%26%26r%2EvertexNormals%2Epush%28s%29%3Bp%26%26%28p%3Dy%5Bk%2B%2B%5D%2Cp%3Dx%5Bp%5D%2Ct%2Ecolor%2EsetHex%28p%29%2Cr%2Ecolor%2EsetHex%28p%29%29%3Bif%28b%29for%28d%3D0%3B4%3Ed%3Bd%2B%2B%29p%3Dy%5Bk%2B%2B%5D%2Cp%3Dx%5Bp%5D%2C2%21%3D%3Dd%26%26t%2EvertexColors%2Epush%28new%20THREE%2EColor%28p%29%29%2C0%21%3D%3Dd%26%26r%2EvertexColors%2Epush%28new%20THREE%2EColor%28p%29%29%3Bc%2Efaces%2Epush%28t%29%3Bc%2Efaces%2Epush%28r%29%7Delse%7Bt%3Dnew%20THREE%2EFace3%3Bt%2Ea%3Dy%5Bk%2B%2B%5D%3Bt%2Eb%3Dy%5Bk%2B%2B%5D%3Bt%2Ec%3Dy%5Bk%2B%2B%5D%3Bh%26%26%28h%3Dy%5Bk%2B%2B%5D%2Ct%2EmaterialIndex%3Dh%29%3Bh%3Dc%2Efaces%2Elength%3Bif%28d%29for%28d%3D0%3Bd%3CF%3Bd%2B%2B%29for%28u%3Da%2Euvs%5Bd%5D%2Cc%2EfaceVertexUvs%5Bd%5D%5Bh%5D%3D%5B%5D%2Cg%3D0%3B3%3Eg%3Bg%2B%2B%29m%3Dy%5Bk%2B%2B%5D%2Cv%3Du%5B2%2Am%5D%2Cm%3Du%5B2%2Am%2B1%5D%2C%0Av%3Dnew%20THREE%2EVector2%28v%2Cm%29%2Cc%2EfaceVertexUvs%5Bd%5D%5Bh%5D%2Epush%28v%29%3Bq%26%26%28q%3D3%2Ay%5Bk%2B%2B%5D%2Ct%2Enormal%2Eset%28C%5Bq%2B%2B%5D%2CC%5Bq%2B%2B%5D%2CC%5Bq%5D%29%29%3Bif%28s%29for%28d%3D0%3B3%3Ed%3Bd%2B%2B%29q%3D3%2Ay%5Bk%2B%2B%5D%2Cs%3Dnew%20THREE%2EVector3%28C%5Bq%2B%2B%5D%2CC%5Bq%2B%2B%5D%2CC%5Bq%5D%29%2Ct%2EvertexNormals%2Epush%28s%29%3Bp%26%26%28p%3Dy%5Bk%2B%2B%5D%2Ct%2Ecolor%2EsetHex%28x%5Bp%5D%29%29%3Bif%28b%29for%28d%3D0%3B3%3Ed%3Bd%2B%2B%29p%3Dy%5Bk%2B%2B%5D%2Ct%2EvertexColors%2Epush%28new%20THREE%2EColor%28x%5Bp%5D%29%29%3Bc%2Efaces%2Epush%28t%29%7D%7D%29%28d%29%3B%28function%28%29%7Bvar%20b%3Dvoid%200%21%3D%3Da%2EinfluencesPerVertex%3Fa%2EinfluencesPerVertex%3A2%3Bif%28a%2EskinWeights%29for%28var%20d%3D0%2Cg%3Da%2EskinWeights%2Elength%3Bd%3Cg%3Bd%2B%3Db%29c%2EskinWeights%2Epush%28new%20THREE%2EVector4%28a%2EskinWeights%5Bd%5D%2C%0A1%3Cb%3Fa%2EskinWeights%5Bd%2B1%5D%3A0%2C2%3Cb%3Fa%2EskinWeights%5Bd%2B2%5D%3A0%2C3%3Cb%3Fa%2EskinWeights%5Bd%2B3%5D%3A0%29%29%3Bif%28a%2EskinIndices%29for%28d%3D0%2Cg%3Da%2EskinIndices%2Elength%3Bd%3Cg%3Bd%2B%3Db%29c%2EskinIndices%2Epush%28new%20THREE%2EVector4%28a%2EskinIndices%5Bd%5D%2C1%3Cb%3Fa%2EskinIndices%5Bd%2B1%5D%3A0%2C2%3Cb%3Fa%2EskinIndices%5Bd%2B2%5D%3A0%2C3%3Cb%3Fa%2EskinIndices%5Bd%2B3%5D%3A0%29%29%3Bc%2Ebones%3Da%2Ebones%3Bc%2Ebones%26%260%3Cc%2Ebones%2Elength%26%26%28c%2EskinWeights%2Elength%21%3D%3Dc%2EskinIndices%2Elength%7C%7Cc%2EskinIndices%2Elength%21%3D%3Dc%2Evertices%2Elength%29%26%26console%2Ewarn%28%22When%20skinning%2C%20number%20of%20vertices%20%28%22%2Bc%2Evertices%2Elength%2B%22%29%2C%20skinIndices%20%28%22%2Bc%2EskinIndices%2Elength%2B%0A%22%29%2C%20and%20skinWeights%20%28%22%2Bc%2EskinWeights%2Elength%2B%22%29%20should%20match%2E%22%29%3Bc%2Eanimation%3Da%2Eanimation%3Bc%2Eanimations%3Da%2Eanimations%7D%29%28%29%3B%28function%28b%29%7Bif%28void%200%21%3D%3Da%2EmorphTargets%29%7Bvar%20d%2Cg%2Ch%2Ck%2Cn%2Cp%3Bd%3D0%3Bfor%28g%3Da%2EmorphTargets%2Elength%3Bd%3Cg%3Bd%2B%2B%29for%28c%2EmorphTargets%5Bd%5D%3D%7B%7D%2Cc%2EmorphTargets%5Bd%5D%2Ename%3Da%2EmorphTargets%5Bd%5D%2Ename%2Cc%2EmorphTargets%5Bd%5D%2Evertices%3D%5B%5D%2Cn%3Dc%2EmorphTargets%5Bd%5D%2Evertices%2Cp%3Da%2EmorphTargets%5Bd%5D%2Evertices%2Ch%3D0%2Ck%3Dp%2Elength%3Bh%3Ck%3Bh%2B%3D3%29%7Bvar%20q%3Dnew%20THREE%2EVector3%3Bq%2Ex%3Dp%5Bh%5D%2Ab%3Bq%2Ey%3Dp%5Bh%2B1%5D%2Ab%3Bq%2Ez%3Dp%5Bh%2B2%5D%2Ab%3Bn%2Epush%28q%29%7D%7Dif%28void%200%21%3D%3Da%2EmorphColors%29for%28d%3D%0A0%2Cg%3Da%2EmorphColors%2Elength%3Bd%3Cg%3Bd%2B%2B%29for%28c%2EmorphColors%5Bd%5D%3D%7B%7D%2Cc%2EmorphColors%5Bd%5D%2Ename%3Da%2EmorphColors%5Bd%5D%2Ename%2Cc%2EmorphColors%5Bd%5D%2Ecolors%3D%5B%5D%2Ck%3Dc%2EmorphColors%5Bd%5D%2Ecolors%2Cn%3Da%2EmorphColors%5Bd%5D%2Ecolors%2Cb%3D0%2Ch%3Dn%2Elength%3Bb%3Ch%3Bb%2B%3D3%29p%3Dnew%20THREE%2EColor%2816755200%29%2Cp%2EsetRGB%28n%5Bb%5D%2Cn%5Bb%2B1%5D%2Cn%5Bb%2B2%5D%29%2Ck%2Epush%28p%29%7D%29%28d%29%3Bc%2EcomputeFaceNormals%28%29%3Bc%2EcomputeBoundingSphere%28%29%3Bif%28void%200%3D%3D%3Da%2Ematerials%7C%7C0%3D%3D%3Da%2Ematerials%2Elength%29return%7Bgeometry%3Ac%7D%3Bd%3Dthis%2EinitMaterials%28a%2Ematerials%2Cb%29%3Bthis%2EneedsTangents%28d%29%26%26c%2EcomputeTangents%28%29%3Breturn%7Bgeometry%3Ac%2Cmaterials%3Ad%7D%7D%3B%0ATHREE%2ELoadingManager%3Dfunction%28a%2Cb%2Cc%29%7Bvar%20d%3Dthis%2Ce%3D0%2Cf%3D0%3Bthis%2EonLoad%3Da%3Bthis%2EonProgress%3Db%3Bthis%2EonError%3Dc%3Bthis%2EitemStart%3Dfunction%28a%29%7Bf%2B%2B%7D%3Bthis%2EitemEnd%3Dfunction%28a%29%7Be%2B%2B%3Bif%28void%200%21%3D%3Dd%2EonProgress%29d%2EonProgress%28a%2Ce%2Cf%29%3Bif%28e%3D%3D%3Df%26%26void%200%21%3D%3Dd%2EonLoad%29d%2EonLoad%28%29%7D%7D%3BTHREE%2EDefaultLoadingManager%3Dnew%20THREE%2ELoadingManager%3BTHREE%2EBufferGeometryLoader%3Dfunction%28a%29%7Bthis%2Emanager%3Dvoid%200%21%3D%3Da%3Fa%3ATHREE%2EDefaultLoadingManager%7D%3B%0ATHREE%2EBufferGeometryLoader%2Eprototype%3D%7Bconstructor%3ATHREE%2EBufferGeometryLoader%2Cload%3Afunction%28a%2Cb%2Cc%2Cd%29%7Bvar%20e%3Dthis%2Cf%3Dnew%20THREE%2EXHRLoader%28e%2Emanager%29%3Bf%2EsetCrossOrigin%28this%2EcrossOrigin%29%3Bf%2Eload%28a%2Cfunction%28a%29%7Bb%28e%2Eparse%28JSON%2Eparse%28a%29%29%29%7D%2Cc%2Cd%29%7D%2CsetCrossOrigin%3Afunction%28a%29%7Bthis%2EcrossOrigin%3Da%7D%2Cparse%3Afunction%28a%29%7Bvar%20b%3Dnew%20THREE%2EBufferGeometry%2Cc%3Da%2Eattributes%2Cd%3Bfor%28d%20in%20c%29%7Bvar%20e%3Dc%5Bd%5D%2Cf%3Dnew%20self%5Be%2Etype%5D%28e%2Earray%29%3Bb%2EaddAttribute%28d%2Cnew%20THREE%2EBufferAttribute%28f%2Ce%2EitemSize%29%29%7Dc%3Da%2Eoffsets%3Bvoid%200%21%3D%3Dc%26%26%28b%2Eoffsets%3DJSON%2Eparse%28JSON%2Estringify%28c%29%29%29%3B%0Aa%3Da%2EboundingSphere%3Bvoid%200%21%3D%3Da%26%26%28c%3Dnew%20THREE%2EVector3%2Cvoid%200%21%3D%3Da%2Ecenter%26%26c%2EfromArray%28a%2Ecenter%29%2Cb%2EboundingSphere%3Dnew%20THREE%2ESphere%28c%2Ca%2Eradius%29%29%3Breturn%20b%7D%7D%3BTHREE%2EMaterialLoader%3Dfunction%28a%29%7Bthis%2Emanager%3Dvoid%200%21%3D%3Da%3Fa%3ATHREE%2EDefaultLoadingManager%7D%3B%0ATHREE%2EMaterialLoader%2Eprototype%3D%7Bconstructor%3ATHREE%2EMaterialLoader%2Cload%3Afunction%28a%2Cb%2Cc%2Cd%29%7Bvar%20e%3Dthis%2Cf%3Dnew%20THREE%2EXHRLoader%28e%2Emanager%29%3Bf%2EsetCrossOrigin%28this%2EcrossOrigin%29%3Bf%2Eload%28a%2Cfunction%28a%29%7Bb%28e%2Eparse%28JSON%2Eparse%28a%29%29%29%7D%2Cc%2Cd%29%7D%2CsetCrossOrigin%3Afunction%28a%29%7Bthis%2EcrossOrigin%3Da%7D%2Cparse%3Afunction%28a%29%7Bvar%20b%3Dnew%20THREE%5Ba%2Etype%5D%3Bvoid%200%21%3D%3Da%2Ecolor%26%26b%2Ecolor%2EsetHex%28a%2Ecolor%29%3Bvoid%200%21%3D%3Da%2Eambient%26%26b%2Eambient%2EsetHex%28a%2Eambient%29%3Bvoid%200%21%3D%3Da%2Eemissive%26%26b%2Eemissive%2EsetHex%28a%2Eemissive%29%3Bvoid%200%21%3D%3Da%2Especular%26%26b%2Especular%2EsetHex%28a%2Especular%29%3B%0Avoid%200%21%3D%3Da%2Eshininess%26%26%28b%2Eshininess%3Da%2Eshininess%29%3Bvoid%200%21%3D%3Da%2Euniforms%26%26%28b%2Euniforms%3Da%2Euniforms%29%3Bvoid%200%21%3D%3Da%2EvertexShader%26%26%28b%2EvertexShader%3Da%2EvertexShader%29%3Bvoid%200%21%3D%3Da%2EfragmentShader%26%26%28b%2EfragmentShader%3Da%2EfragmentShader%29%3Bvoid%200%21%3D%3Da%2EvertexColors%26%26%28b%2EvertexColors%3Da%2EvertexColors%29%3Bvoid%200%21%3D%3Da%2Eshading%26%26%28b%2Eshading%3Da%2Eshading%29%3Bvoid%200%21%3D%3Da%2Eblending%26%26%28b%2Eblending%3Da%2Eblending%29%3Bvoid%200%21%3D%3Da%2Eside%26%26%28b%2Eside%3Da%2Eside%29%3Bvoid%200%21%3D%3Da%2Eopacity%26%26%28b%2Eopacity%3Da%2Eopacity%29%3Bvoid%200%21%3D%3Da%2Etransparent%26%26%28b%2Etransparent%3Da%2Etransparent%29%3Bvoid%200%21%3D%3Da%2Ewireframe%26%26%0A%28b%2Ewireframe%3Da%2Ewireframe%29%3Bif%28void%200%21%3D%3Da%2Ematerials%29for%28var%20c%3D0%2Cd%3Da%2Ematerials%2Elength%3Bc%3Cd%3Bc%2B%2B%29b%2Ematerials%2Epush%28this%2Eparse%28a%2Ematerials%5Bc%5D%29%29%3Breturn%20b%7D%7D%3BTHREE%2EObjectLoader%3Dfunction%28a%29%7Bthis%2Emanager%3Dvoid%200%21%3D%3Da%3Fa%3ATHREE%2EDefaultLoadingManager%7D%3B%0ATHREE%2EObjectLoader%2Eprototype%3D%7Bconstructor%3ATHREE%2EObjectLoader%2Cload%3Afunction%28a%2Cb%2Cc%2Cd%29%7Bvar%20e%3Dthis%2Cf%3Dnew%20THREE%2EXHRLoader%28e%2Emanager%29%3Bf%2EsetCrossOrigin%28this%2EcrossOrigin%29%3Bf%2Eload%28a%2Cfunction%28a%29%7Bb%28e%2Eparse%28JSON%2Eparse%28a%29%29%29%7D%2Cc%2Cd%29%7D%2CsetCrossOrigin%3Afunction%28a%29%7Bthis%2EcrossOrigin%3Da%7D%2Cparse%3Afunction%28a%29%7Bvar%20b%3Dthis%2EparseGeometries%28a%2Egeometries%29%2Cc%3Dthis%2EparseMaterials%28a%2Ematerials%29%3Breturn%20this%2EparseObject%28a%2Eobject%2Cb%2Cc%29%7D%2CparseGeometries%3Afunction%28a%29%7Bvar%20b%3D%7B%7D%3Bif%28void%200%21%3D%3Da%29for%28var%20c%3Dnew%20THREE%2EJSONLoader%2Cd%3Dnew%20THREE%2EBufferGeometryLoader%2C%0Ae%3D0%2Cf%3Da%2Elength%3Be%3Cf%3Be%2B%2B%29%7Bvar%20g%2Ch%3Da%5Be%5D%3Bswitch%28h%2Etype%29%7Bcase%20%22PlaneGeometry%22%3Ag%3Dnew%20THREE%2EPlaneGeometry%28h%2Ewidth%2Ch%2Eheight%2Ch%2EwidthSegments%2Ch%2EheightSegments%29%3Bbreak%3Bcase%20%22BoxGeometry%22%3Acase%20%22CubeGeometry%22%3Ag%3Dnew%20THREE%2EBoxGeometry%28h%2Ewidth%2Ch%2Eheight%2Ch%2Edepth%2Ch%2EwidthSegments%2Ch%2EheightSegments%2Ch%2EdepthSegments%29%3Bbreak%3Bcase%20%22CircleGeometry%22%3Ag%3Dnew%20THREE%2ECircleGeometry%28h%2Eradius%2Ch%2Esegments%29%3Bbreak%3Bcase%20%22CylinderGeometry%22%3Ag%3Dnew%20THREE%2ECylinderGeometry%28h%2EradiusTop%2Ch%2EradiusBottom%2Ch%2Eheight%2Ch%2EradialSegments%2Ch%2EheightSegments%2Ch%2EopenEnded%29%3B%0Abreak%3Bcase%20%22SphereGeometry%22%3Ag%3Dnew%20THREE%2ESphereGeometry%28h%2Eradius%2Ch%2EwidthSegments%2Ch%2EheightSegments%2Ch%2EphiStart%2Ch%2EphiLength%2Ch%2EthetaStart%2Ch%2EthetaLength%29%3Bbreak%3Bcase%20%22IcosahedronGeometry%22%3Ag%3Dnew%20THREE%2EIcosahedronGeometry%28h%2Eradius%2Ch%2Edetail%29%3Bbreak%3Bcase%20%22TorusGeometry%22%3Ag%3Dnew%20THREE%2ETorusGeometry%28h%2Eradius%2Ch%2Etube%2Ch%2EradialSegments%2Ch%2EtubularSegments%2Ch%2Earc%29%3Bbreak%3Bcase%20%22TorusKnotGeometry%22%3Ag%3Dnew%20THREE%2ETorusKnotGeometry%28h%2Eradius%2Ch%2Etube%2Ch%2EradialSegments%2Ch%2EtubularSegments%2Ch%2Ep%2Ch%2Eq%2Ch%2EheightScale%29%3Bbreak%3Bcase%20%22BufferGeometry%22%3Ag%3D%0Ad%2Eparse%28h%2Edata%29%3Bbreak%3Bcase%20%22Geometry%22%3Ag%3Dc%2Eparse%28h%2Edata%29%2Egeometry%7Dg%2Euuid%3Dh%2Euuid%3Bvoid%200%21%3D%3Dh%2Ename%26%26%28g%2Ename%3Dh%2Ename%29%3Bb%5Bh%2Euuid%5D%3Dg%7Dreturn%20b%7D%2CparseMaterials%3Afunction%28a%29%7Bvar%20b%3D%7B%7D%3Bif%28void%200%21%3D%3Da%29for%28var%20c%3Dnew%20THREE%2EMaterialLoader%2Cd%3D0%2Ce%3Da%2Elength%3Bd%3Ce%3Bd%2B%2B%29%7Bvar%20f%3Da%5Bd%5D%2Cg%3Dc%2Eparse%28f%29%3Bg%2Euuid%3Df%2Euuid%3Bvoid%200%21%3D%3Df%2Ename%26%26%28g%2Ename%3Df%2Ename%29%3Bb%5Bf%2Euuid%5D%3Dg%7Dreturn%20b%7D%2CparseObject%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EMatrix4%3Breturn%20function%28b%2Cc%2Cd%29%7Bvar%20e%3Bswitch%28b%2Etype%29%7Bcase%20%22Scene%22%3Ae%3Dnew%20THREE%2EScene%3Bbreak%3Bcase%20%22PerspectiveCamera%22%3Ae%3Dnew%20THREE%2EPerspectiveCamera%28b%2Efov%2C%0Ab%2Easpect%2Cb%2Enear%2Cb%2Efar%29%3Bbreak%3Bcase%20%22OrthographicCamera%22%3Ae%3Dnew%20THREE%2EOrthographicCamera%28b%2Eleft%2Cb%2Eright%2Cb%2Etop%2Cb%2Ebottom%2Cb%2Enear%2Cb%2Efar%29%3Bbreak%3Bcase%20%22AmbientLight%22%3Ae%3Dnew%20THREE%2EAmbientLight%28b%2Ecolor%29%3Bbreak%3Bcase%20%22DirectionalLight%22%3Ae%3Dnew%20THREE%2EDirectionalLight%28b%2Ecolor%2Cb%2Eintensity%29%3Bbreak%3Bcase%20%22PointLight%22%3Ae%3Dnew%20THREE%2EPointLight%28b%2Ecolor%2Cb%2Eintensity%2Cb%2Edistance%29%3Bbreak%3Bcase%20%22SpotLight%22%3Ae%3Dnew%20THREE%2ESpotLight%28b%2Ecolor%2Cb%2Eintensity%2Cb%2Edistance%2Cb%2Eangle%2Cb%2Eexponent%29%3Bbreak%3Bcase%20%22HemisphereLight%22%3Ae%3Dnew%20THREE%2EHemisphereLight%28b%2Ecolor%2C%0Ab%2EgroundColor%2Cb%2Eintensity%29%3Bbreak%3Bcase%20%22Mesh%22%3Ae%3Dc%5Bb%2Egeometry%5D%3Bvar%20f%3Dd%5Bb%2Ematerial%5D%3Bvoid%200%3D%3D%3De%26%26console%2Ewarn%28%22THREE%2EObjectLoader%3A%20Undefined%20geometry%22%2Cb%2Egeometry%29%3Bvoid%200%3D%3D%3Df%26%26console%2Ewarn%28%22THREE%2EObjectLoader%3A%20Undefined%20material%22%2Cb%2Ematerial%29%3Be%3Dnew%20THREE%2EMesh%28e%2Cf%29%3Bbreak%3Bcase%20%22Line%22%3Ae%3Dc%5Bb%2Egeometry%5D%3Bf%3Dd%5Bb%2Ematerial%5D%3Bvoid%200%3D%3D%3De%26%26console%2Ewarn%28%22THREE%2EObjectLoader%3A%20Undefined%20geometry%22%2Cb%2Egeometry%29%3Bvoid%200%3D%3D%3Df%26%26console%2Ewarn%28%22THREE%2EObjectLoader%3A%20Undefined%20material%22%2Cb%2Ematerial%29%3Be%3Dnew%20THREE%2ELine%28e%2Cf%29%3Bbreak%3Bcase%20%22Sprite%22%3Af%3D%0Ad%5Bb%2Ematerial%5D%3Bvoid%200%3D%3D%3Df%26%26console%2Ewarn%28%22THREE%2EObjectLoader%3A%20Undefined%20material%22%2Cb%2Ematerial%29%3Be%3Dnew%20THREE%2ESprite%28f%29%3Bbreak%3Bcase%20%22Group%22%3Ae%3Dnew%20THREE%2EGroup%3Bbreak%3Bdefault%3Ae%3Dnew%20THREE%2EObject3D%7De%2Euuid%3Db%2Euuid%3Bvoid%200%21%3D%3Db%2Ename%26%26%28e%2Ename%3Db%2Ename%29%3Bvoid%200%21%3D%3Db%2Ematrix%3F%28a%2EfromArray%28b%2Ematrix%29%2Ca%2Edecompose%28e%2Eposition%2Ce%2Equaternion%2Ce%2Escale%29%29%3A%28void%200%21%3D%3Db%2Eposition%26%26e%2Eposition%2EfromArray%28b%2Eposition%29%2Cvoid%200%21%3D%3Db%2Erotation%26%26e%2Erotation%2EfromArray%28b%2Erotation%29%2Cvoid%200%21%3D%3Db%2Escale%26%26e%2Escale%2EfromArray%28b%2Escale%29%29%3Bvoid%200%21%3D%3Db%2Evisible%26%26%28e%2Evisible%3D%0Ab%2Evisible%29%3Bvoid%200%21%3D%3Db%2EuserData%26%26%28e%2EuserData%3Db%2EuserData%29%3Bif%28void%200%21%3D%3Db%2Echildren%29for%28var%20g%20in%20b%2Echildren%29e%2Eadd%28this%2EparseObject%28b%2Echildren%5Bg%5D%2Cc%2Cd%29%29%3Breturn%20e%7D%7D%28%29%7D%3BTHREE%2ETextureLoader%3Dfunction%28a%29%7Bthis%2Emanager%3Dvoid%200%21%3D%3Da%3Fa%3ATHREE%2EDefaultLoadingManager%7D%3B%0ATHREE%2ETextureLoader%2Eprototype%3D%7Bconstructor%3ATHREE%2ETextureLoader%2Cload%3Afunction%28a%2Cb%2Cc%2Cd%29%7Bvar%20e%3Dnew%20THREE%2EImageLoader%28this%2Emanager%29%3Be%2EsetCrossOrigin%28this%2EcrossOrigin%29%3Be%2Eload%28a%2Cfunction%28a%29%7Ba%3Dnew%20THREE%2ETexture%28a%29%3Ba%2EneedsUpdate%3D%210%3Bvoid%200%21%3D%3Db%26%26b%28a%29%7D%2Cc%2Cd%29%7D%2CsetCrossOrigin%3Afunction%28a%29%7Bthis%2EcrossOrigin%3Da%7D%7D%3BTHREE%2EDataTextureLoader%3DTHREE%2EBinaryTextureLoader%3Dfunction%28%29%7Bthis%2E%5Fparser%3Dnull%7D%3B%0ATHREE%2EBinaryTextureLoader%2Eprototype%3D%7Bconstructor%3ATHREE%2EBinaryTextureLoader%2Cload%3Afunction%28a%2Cb%2Cc%2Cd%29%7Bvar%20e%3Dthis%2Cf%3Dnew%20THREE%2EDataTexture%2Cg%3Dnew%20THREE%2EXHRLoader%3Bg%2EsetResponseType%28%22arraybuffer%22%29%3Bg%2Eload%28a%2Cfunction%28a%29%7Bif%28a%3De%2E%5Fparser%28a%29%29void%200%21%3D%3Da%2Eimage%3Ff%2Eimage%3Da%2Eimage%3Avoid%200%21%3D%3Da%2Edata%26%26%28f%2Eimage%2Ewidth%3Da%2Ewidth%2Cf%2Eimage%2Eheight%3Da%2Eheight%2Cf%2Eimage%2Edata%3Da%2Edata%29%2Cf%2EwrapS%3Dvoid%200%21%3D%3Da%2EwrapS%3Fa%2EwrapS%3ATHREE%2EClampToEdgeWrapping%2Cf%2EwrapT%3Dvoid%200%21%3D%3Da%2EwrapT%3Fa%2EwrapT%3ATHREE%2EClampToEdgeWrapping%2Cf%2EmagFilter%3Dvoid%200%21%3D%3Da%2EmagFilter%3Fa%2EmagFilter%3A%0ATHREE%2ELinearFilter%2Cf%2EminFilter%3Dvoid%200%21%3D%3Da%2EminFilter%3Fa%2EminFilter%3ATHREE%2ELinearMipMapLinearFilter%2Cf%2Eanisotropy%3Dvoid%200%21%3D%3Da%2Eanisotropy%3Fa%2Eanisotropy%3A1%2Cvoid%200%21%3D%3Da%2Eformat%26%26%28f%2Eformat%3Da%2Eformat%29%2Cvoid%200%21%3D%3Da%2Etype%26%26%28f%2Etype%3Da%2Etype%29%2Cvoid%200%21%3D%3Da%2Emipmaps%26%26%28f%2Emipmaps%3Da%2Emipmaps%29%2C1%3D%3D%3Da%2EmipmapCount%26%26%28f%2EminFilter%3DTHREE%2ELinearFilter%29%2Cf%2EneedsUpdate%3D%210%2Cb%26%26b%28f%2Ca%29%7D%2Cc%2Cd%29%3Breturn%20f%7D%7D%3BTHREE%2ECompressedTextureLoader%3Dfunction%28%29%7Bthis%2E%5Fparser%3Dnull%7D%3B%0ATHREE%2ECompressedTextureLoader%2Eprototype%3D%7Bconstructor%3ATHREE%2ECompressedTextureLoader%2Cload%3Afunction%28a%2Cb%2Cc%29%7Bvar%20d%3Dthis%2Ce%3D%5B%5D%2Cf%3Dnew%20THREE%2ECompressedTexture%3Bf%2Eimage%3De%3Bvar%20g%3Dnew%20THREE%2EXHRLoader%3Bg%2EsetResponseType%28%22arraybuffer%22%29%3Bif%28a%20instanceof%20Array%29%7Bvar%20h%3D0%3Bc%3Dfunction%28c%29%7Bg%2Eload%28a%5Bc%5D%2Cfunction%28a%29%7Ba%3Dd%2E%5Fparser%28a%2C%210%29%3Be%5Bc%5D%3D%7Bwidth%3Aa%2Ewidth%2Cheight%3Aa%2Eheight%2Cformat%3Aa%2Eformat%2Cmipmaps%3Aa%2Emipmaps%7D%3Bh%2B%3D1%3B6%3D%3D%3Dh%26%26%281%3D%3Da%2EmipmapCount%26%26%28f%2EminFilter%3DTHREE%2ELinearFilter%29%2Cf%2Eformat%3Da%2Eformat%2Cf%2EneedsUpdate%3D%210%2Cb%26%26b%28f%29%29%7D%29%7D%3Bfor%28var%20k%3D0%2Cn%3D%0Aa%2Elength%3Bk%3Cn%3B%2B%2Bk%29c%28k%29%7Delse%20g%2Eload%28a%2Cfunction%28a%29%7Ba%3Dd%2E%5Fparser%28a%2C%210%29%3Bif%28a%2EisCubemap%29for%28var%20c%3Da%2Emipmaps%2Elength%2Fa%2EmipmapCount%2Cg%3D0%3Bg%3Cc%3Bg%2B%2B%29%7Be%5Bg%5D%3D%7Bmipmaps%3A%5B%5D%7D%3Bfor%28var%20h%3D0%3Bh%3Ca%2EmipmapCount%3Bh%2B%2B%29e%5Bg%5D%2Emipmaps%2Epush%28a%2Emipmaps%5Bg%2Aa%2EmipmapCount%2Bh%5D%29%2Ce%5Bg%5D%2Eformat%3Da%2Eformat%2Ce%5Bg%5D%2Ewidth%3Da%2Ewidth%2Ce%5Bg%5D%2Eheight%3Da%2Eheight%7Delse%20f%2Eimage%2Ewidth%3Da%2Ewidth%2Cf%2Eimage%2Eheight%3Da%2Eheight%2Cf%2Emipmaps%3Da%2Emipmaps%3B1%3D%3D%3Da%2EmipmapCount%26%26%28f%2EminFilter%3DTHREE%2ELinearFilter%29%3Bf%2Eformat%3Da%2Eformat%3Bf%2EneedsUpdate%3D%210%3Bb%26%26b%28f%29%7D%29%3Breturn%20f%7D%7D%3B%0ATHREE%2EMaterial%3Dfunction%28%29%7BObject%2EdefineProperty%28this%2C%22id%22%2C%7Bvalue%3ATHREE%2EMaterialIdCount%2B%2B%7D%29%3Bthis%2Euuid%3DTHREE%2EMath%2EgenerateUUID%28%29%3Bthis%2Ename%3D%22%22%3Bthis%2Etype%3D%22Material%22%3Bthis%2Eside%3DTHREE%2EFrontSide%3Bthis%2Eopacity%3D1%3Bthis%2Etransparent%3D%211%3Bthis%2Eblending%3DTHREE%2ENormalBlending%3Bthis%2EblendSrc%3DTHREE%2ESrcAlphaFactor%3Bthis%2EblendDst%3DTHREE%2EOneMinusSrcAlphaFactor%3Bthis%2EblendEquation%3DTHREE%2EAddEquation%3Bthis%2EdepthWrite%3Dthis%2EdepthTest%3D%210%3Bthis%2EpolygonOffset%3D%211%3Bthis%2Eoverdraw%3Dthis%2EalphaTest%3Dthis%2EpolygonOffsetUnits%3Dthis%2EpolygonOffsetFactor%3D%0A0%3Bthis%2EneedsUpdate%3Dthis%2Evisible%3D%210%7D%3B%0ATHREE%2EMaterial%2Eprototype%3D%7Bconstructor%3ATHREE%2EMaterial%2CsetValues%3Afunction%28a%29%7Bif%28void%200%21%3D%3Da%29for%28var%20b%20in%20a%29%7Bvar%20c%3Da%5Bb%5D%3Bif%28void%200%3D%3D%3Dc%29console%2Ewarn%28%22THREE%2EMaterial%3A%20%27%22%2Bb%2B%22%27%20parameter%20is%20undefined%2E%22%29%3Belse%20if%28b%20in%20this%29%7Bvar%20d%3Dthis%5Bb%5D%3Bd%20instanceof%20THREE%2EColor%3Fd%2Eset%28c%29%3Ad%20instanceof%20THREE%2EVector3%26%26c%20instanceof%20THREE%2EVector3%3Fd%2Ecopy%28c%29%3Athis%5Bb%5D%3D%22overdraw%22%3D%3Db%3FNumber%28c%29%3Ac%7D%7D%7D%2CtoJSON%3Afunction%28%29%7Bvar%20a%3D%7Bmetadata%3A%7Bversion%3A4%2E2%2Ctype%3A%22material%22%2Cgenerator%3A%22MaterialExporter%22%7D%2Cuuid%3Athis%2Euuid%2Ctype%3Athis%2Etype%7D%3B%22%22%21%3D%3Dthis%2Ename%26%26%0A%28a%2Ename%3Dthis%2Ename%29%3Bthis%20instanceof%20THREE%2EMeshBasicMaterial%3F%28a%2Ecolor%3Dthis%2Ecolor%2EgetHex%28%29%2Cthis%2EvertexColors%21%3D%3DTHREE%2ENoColors%26%26%28a%2EvertexColors%3Dthis%2EvertexColors%29%2Cthis%2Eblending%21%3D%3DTHREE%2ENormalBlending%26%26%28a%2Eblending%3Dthis%2Eblending%29%2Cthis%2Eside%21%3D%3DTHREE%2EFrontSide%26%26%28a%2Eside%3Dthis%2Eside%29%29%3Athis%20instanceof%20THREE%2EMeshLambertMaterial%3F%28a%2Ecolor%3Dthis%2Ecolor%2EgetHex%28%29%2Ca%2Eambient%3Dthis%2Eambient%2EgetHex%28%29%2Ca%2Eemissive%3Dthis%2Eemissive%2EgetHex%28%29%2Cthis%2EvertexColors%21%3D%3DTHREE%2ENoColors%26%26%28a%2EvertexColors%3Dthis%2EvertexColors%29%2Cthis%2Eblending%21%3D%3DTHREE%2ENormalBlending%26%26%0A%28a%2Eblending%3Dthis%2Eblending%29%2Cthis%2Eside%21%3D%3DTHREE%2EFrontSide%26%26%28a%2Eside%3Dthis%2Eside%29%29%3Athis%20instanceof%20THREE%2EMeshPhongMaterial%3F%28a%2Ecolor%3Dthis%2Ecolor%2EgetHex%28%29%2Ca%2Eambient%3Dthis%2Eambient%2EgetHex%28%29%2Ca%2Eemissive%3Dthis%2Eemissive%2EgetHex%28%29%2Ca%2Especular%3Dthis%2Especular%2EgetHex%28%29%2Ca%2Eshininess%3Dthis%2Eshininess%2Cthis%2EvertexColors%21%3D%3DTHREE%2ENoColors%26%26%28a%2EvertexColors%3Dthis%2EvertexColors%29%2Cthis%2Eblending%21%3D%3DTHREE%2ENormalBlending%26%26%28a%2Eblending%3Dthis%2Eblending%29%2Cthis%2Eside%21%3D%3DTHREE%2EFrontSide%26%26%28a%2Eside%3Dthis%2Eside%29%29%3Athis%20instanceof%20THREE%2EMeshNormalMaterial%3F%28this%2Eshading%21%3D%3D%0ATHREE%2EFlatShading%26%26%28a%2Eshading%3Dthis%2Eshading%29%2Cthis%2Eblending%21%3D%3DTHREE%2ENormalBlending%26%26%28a%2Eblending%3Dthis%2Eblending%29%2Cthis%2Eside%21%3D%3DTHREE%2EFrontSide%26%26%28a%2Eside%3Dthis%2Eside%29%29%3Athis%20instanceof%20THREE%2EMeshDepthMaterial%3F%28this%2Eblending%21%3D%3DTHREE%2ENormalBlending%26%26%28a%2Eblending%3Dthis%2Eblending%29%2Cthis%2Eside%21%3D%3DTHREE%2EFrontSide%26%26%28a%2Eside%3Dthis%2Eside%29%29%3Athis%20instanceof%20THREE%2EShaderMaterial%3F%28a%2Euniforms%3Dthis%2Euniforms%2Ca%2EvertexShader%3Dthis%2EvertexShader%2Ca%2EfragmentShader%3Dthis%2EfragmentShader%29%3Athis%20instanceof%20THREE%2ESpriteMaterial%26%26%28a%2Ecolor%3Dthis%2Ecolor%2EgetHex%28%29%29%3B%0A1%3Ethis%2Eopacity%26%26%28a%2Eopacity%3Dthis%2Eopacity%29%3B%211%21%3D%3Dthis%2Etransparent%26%26%28a%2Etransparent%3Dthis%2Etransparent%29%3B%211%21%3D%3Dthis%2Ewireframe%26%26%28a%2Ewireframe%3Dthis%2Ewireframe%29%3Breturn%20a%7D%2Cclone%3Afunction%28a%29%7Bvoid%200%3D%3D%3Da%26%26%28a%3Dnew%20THREE%2EMaterial%29%3Ba%2Ename%3Dthis%2Ename%3Ba%2Eside%3Dthis%2Eside%3Ba%2Eopacity%3Dthis%2Eopacity%3Ba%2Etransparent%3Dthis%2Etransparent%3Ba%2Eblending%3Dthis%2Eblending%3Ba%2EblendSrc%3Dthis%2EblendSrc%3Ba%2EblendDst%3Dthis%2EblendDst%3Ba%2EblendEquation%3Dthis%2EblendEquation%3Ba%2EdepthTest%3Dthis%2EdepthTest%3Ba%2EdepthWrite%3Dthis%2EdepthWrite%3Ba%2EpolygonOffset%3Dthis%2EpolygonOffset%3Ba%2EpolygonOffsetFactor%3D%0Athis%2EpolygonOffsetFactor%3Ba%2EpolygonOffsetUnits%3Dthis%2EpolygonOffsetUnits%3Ba%2EalphaTest%3Dthis%2EalphaTest%3Ba%2Eoverdraw%3Dthis%2Eoverdraw%3Ba%2Evisible%3Dthis%2Evisible%3Breturn%20a%7D%2Cdispose%3Afunction%28%29%7Bthis%2EdispatchEvent%28%7Btype%3A%22dispose%22%7D%29%7D%7D%3BTHREE%2EEventDispatcher%2Eprototype%2Eapply%28THREE%2EMaterial%2Eprototype%29%3BTHREE%2EMaterialIdCount%3D0%3B%0ATHREE%2ELineBasicMaterial%3Dfunction%28a%29%7BTHREE%2EMaterial%2Ecall%28this%29%3Bthis%2Etype%3D%22LineBasicMaterial%22%3Bthis%2Ecolor%3Dnew%20THREE%2EColor%2816777215%29%3Bthis%2Elinewidth%3D1%3Bthis%2Elinejoin%3Dthis%2Elinecap%3D%22round%22%3Bthis%2EvertexColors%3DTHREE%2ENoColors%3Bthis%2Efog%3D%210%3Bthis%2EsetValues%28a%29%7D%3BTHREE%2ELineBasicMaterial%2Eprototype%3DObject%2Ecreate%28THREE%2EMaterial%2Eprototype%29%3BTHREE%2ELineBasicMaterial%2Eprototype%2Econstructor%3DTHREE%2ELineBasicMaterial%3B%0ATHREE%2ELineBasicMaterial%2Eprototype%2Eclone%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2ELineBasicMaterial%3BTHREE%2EMaterial%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Ba%2Ecolor%2Ecopy%28this%2Ecolor%29%3Ba%2Elinewidth%3Dthis%2Elinewidth%3Ba%2Elinecap%3Dthis%2Elinecap%3Ba%2Elinejoin%3Dthis%2Elinejoin%3Ba%2EvertexColors%3Dthis%2EvertexColors%3Ba%2Efog%3Dthis%2Efog%3Breturn%20a%7D%3B%0ATHREE%2ELineDashedMaterial%3Dfunction%28a%29%7BTHREE%2EMaterial%2Ecall%28this%29%3Bthis%2Etype%3D%22LineDashedMaterial%22%3Bthis%2Ecolor%3Dnew%20THREE%2EColor%2816777215%29%3Bthis%2Escale%3Dthis%2Elinewidth%3D1%3Bthis%2EdashSize%3D3%3Bthis%2EgapSize%3D1%3Bthis%2EvertexColors%3D%211%3Bthis%2Efog%3D%210%3Bthis%2EsetValues%28a%29%7D%3BTHREE%2ELineDashedMaterial%2Eprototype%3DObject%2Ecreate%28THREE%2EMaterial%2Eprototype%29%3BTHREE%2ELineDashedMaterial%2Eprototype%2Econstructor%3DTHREE%2ELineDashedMaterial%3B%0ATHREE%2ELineDashedMaterial%2Eprototype%2Eclone%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2ELineDashedMaterial%3BTHREE%2EMaterial%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Ba%2Ecolor%2Ecopy%28this%2Ecolor%29%3Ba%2Elinewidth%3Dthis%2Elinewidth%3Ba%2Escale%3Dthis%2Escale%3Ba%2EdashSize%3Dthis%2EdashSize%3Ba%2EgapSize%3Dthis%2EgapSize%3Ba%2EvertexColors%3Dthis%2EvertexColors%3Ba%2Efog%3Dthis%2Efog%3Breturn%20a%7D%3B%0ATHREE%2EMeshBasicMaterial%3Dfunction%28a%29%7BTHREE%2EMaterial%2Ecall%28this%29%3Bthis%2Etype%3D%22MeshBasicMaterial%22%3Bthis%2Ecolor%3Dnew%20THREE%2EColor%2816777215%29%3Bthis%2EenvMap%3Dthis%2EalphaMap%3Dthis%2EspecularMap%3Dthis%2ElightMap%3Dthis%2Emap%3Dnull%3Bthis%2Ecombine%3DTHREE%2EMultiplyOperation%3Bthis%2Ereflectivity%3D1%3Bthis%2ErefractionRatio%3D%2E98%3Bthis%2Efog%3D%210%3Bthis%2Eshading%3DTHREE%2ESmoothShading%3Bthis%2Ewireframe%3D%211%3Bthis%2EwireframeLinewidth%3D1%3Bthis%2EwireframeLinejoin%3Dthis%2EwireframeLinecap%3D%22round%22%3Bthis%2EvertexColors%3DTHREE%2ENoColors%3Bthis%2EmorphTargets%3Dthis%2Eskinning%3D%211%3Bthis%2EsetValues%28a%29%7D%3B%0ATHREE%2EMeshBasicMaterial%2Eprototype%3DObject%2Ecreate%28THREE%2EMaterial%2Eprototype%29%3BTHREE%2EMeshBasicMaterial%2Eprototype%2Econstructor%3DTHREE%2EMeshBasicMaterial%3B%0ATHREE%2EMeshBasicMaterial%2Eprototype%2Eclone%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EMeshBasicMaterial%3BTHREE%2EMaterial%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Ba%2Ecolor%2Ecopy%28this%2Ecolor%29%3Ba%2Emap%3Dthis%2Emap%3Ba%2ElightMap%3Dthis%2ElightMap%3Ba%2EspecularMap%3Dthis%2EspecularMap%3Ba%2EalphaMap%3Dthis%2EalphaMap%3Ba%2EenvMap%3Dthis%2EenvMap%3Ba%2Ecombine%3Dthis%2Ecombine%3Ba%2Ereflectivity%3Dthis%2Ereflectivity%3Ba%2ErefractionRatio%3Dthis%2ErefractionRatio%3Ba%2Efog%3Dthis%2Efog%3Ba%2Eshading%3Dthis%2Eshading%3Ba%2Ewireframe%3Dthis%2Ewireframe%3Ba%2EwireframeLinewidth%3Dthis%2EwireframeLinewidth%3Ba%2EwireframeLinecap%3Dthis%2EwireframeLinecap%3B%0Aa%2EwireframeLinejoin%3Dthis%2EwireframeLinejoin%3Ba%2EvertexColors%3Dthis%2EvertexColors%3Ba%2Eskinning%3Dthis%2Eskinning%3Ba%2EmorphTargets%3Dthis%2EmorphTargets%3Breturn%20a%7D%3B%0ATHREE%2EMeshLambertMaterial%3Dfunction%28a%29%7BTHREE%2EMaterial%2Ecall%28this%29%3Bthis%2Etype%3D%22MeshLambertMaterial%22%3Bthis%2Ecolor%3Dnew%20THREE%2EColor%2816777215%29%3Bthis%2Eambient%3Dnew%20THREE%2EColor%2816777215%29%3Bthis%2Eemissive%3Dnew%20THREE%2EColor%280%29%3Bthis%2EwrapAround%3D%211%3Bthis%2EwrapRGB%3Dnew%20THREE%2EVector3%281%2C1%2C1%29%3Bthis%2EenvMap%3Dthis%2EalphaMap%3Dthis%2EspecularMap%3Dthis%2ElightMap%3Dthis%2Emap%3Dnull%3Bthis%2Ecombine%3DTHREE%2EMultiplyOperation%3Bthis%2Ereflectivity%3D1%3Bthis%2ErefractionRatio%3D%2E98%3Bthis%2Efog%3D%210%3Bthis%2Eshading%3DTHREE%2ESmoothShading%3Bthis%2Ewireframe%3D%211%3Bthis%2EwireframeLinewidth%3D%0A1%3Bthis%2EwireframeLinejoin%3Dthis%2EwireframeLinecap%3D%22round%22%3Bthis%2EvertexColors%3DTHREE%2ENoColors%3Bthis%2EmorphNormals%3Dthis%2EmorphTargets%3Dthis%2Eskinning%3D%211%3Bthis%2EsetValues%28a%29%7D%3BTHREE%2EMeshLambertMaterial%2Eprototype%3DObject%2Ecreate%28THREE%2EMaterial%2Eprototype%29%3BTHREE%2EMeshLambertMaterial%2Eprototype%2Econstructor%3DTHREE%2EMeshLambertMaterial%3B%0ATHREE%2EMeshLambertMaterial%2Eprototype%2Eclone%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EMeshLambertMaterial%3BTHREE%2EMaterial%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Ba%2Ecolor%2Ecopy%28this%2Ecolor%29%3Ba%2Eambient%2Ecopy%28this%2Eambient%29%3Ba%2Eemissive%2Ecopy%28this%2Eemissive%29%3Ba%2EwrapAround%3Dthis%2EwrapAround%3Ba%2EwrapRGB%2Ecopy%28this%2EwrapRGB%29%3Ba%2Emap%3Dthis%2Emap%3Ba%2ElightMap%3Dthis%2ElightMap%3Ba%2EspecularMap%3Dthis%2EspecularMap%3Ba%2EalphaMap%3Dthis%2EalphaMap%3Ba%2EenvMap%3Dthis%2EenvMap%3Ba%2Ecombine%3Dthis%2Ecombine%3Ba%2Ereflectivity%3Dthis%2Ereflectivity%3Ba%2ErefractionRatio%3Dthis%2ErefractionRatio%3Ba%2Efog%3Dthis%2Efog%3B%0Aa%2Eshading%3Dthis%2Eshading%3Ba%2Ewireframe%3Dthis%2Ewireframe%3Ba%2EwireframeLinewidth%3Dthis%2EwireframeLinewidth%3Ba%2EwireframeLinecap%3Dthis%2EwireframeLinecap%3Ba%2EwireframeLinejoin%3Dthis%2EwireframeLinejoin%3Ba%2EvertexColors%3Dthis%2EvertexColors%3Ba%2Eskinning%3Dthis%2Eskinning%3Ba%2EmorphTargets%3Dthis%2EmorphTargets%3Ba%2EmorphNormals%3Dthis%2EmorphNormals%3Breturn%20a%7D%3B%0ATHREE%2EMeshPhongMaterial%3Dfunction%28a%29%7BTHREE%2EMaterial%2Ecall%28this%29%3Bthis%2Etype%3D%22MeshPhongMaterial%22%3Bthis%2Ecolor%3Dnew%20THREE%2EColor%2816777215%29%3Bthis%2Eambient%3Dnew%20THREE%2EColor%2816777215%29%3Bthis%2Eemissive%3Dnew%20THREE%2EColor%280%29%3Bthis%2Especular%3Dnew%20THREE%2EColor%281118481%29%3Bthis%2Eshininess%3D30%3Bthis%2EwrapAround%3Dthis%2Emetal%3D%211%3Bthis%2EwrapRGB%3Dnew%20THREE%2EVector3%281%2C1%2C1%29%3Bthis%2EbumpMap%3Dthis%2ElightMap%3Dthis%2Emap%3Dnull%3Bthis%2EbumpScale%3D1%3Bthis%2EnormalMap%3Dnull%3Bthis%2EnormalScale%3Dnew%20THREE%2EVector2%281%2C1%29%3Bthis%2EenvMap%3Dthis%2EalphaMap%3Dthis%2EspecularMap%3Dnull%3Bthis%2Ecombine%3D%0ATHREE%2EMultiplyOperation%3Bthis%2Ereflectivity%3D1%3Bthis%2ErefractionRatio%3D%2E98%3Bthis%2Efog%3D%210%3Bthis%2Eshading%3DTHREE%2ESmoothShading%3Bthis%2Ewireframe%3D%211%3Bthis%2EwireframeLinewidth%3D1%3Bthis%2EwireframeLinejoin%3Dthis%2EwireframeLinecap%3D%22round%22%3Bthis%2EvertexColors%3DTHREE%2ENoColors%3Bthis%2EmorphNormals%3Dthis%2EmorphTargets%3Dthis%2Eskinning%3D%211%3Bthis%2EsetValues%28a%29%7D%3BTHREE%2EMeshPhongMaterial%2Eprototype%3DObject%2Ecreate%28THREE%2EMaterial%2Eprototype%29%3BTHREE%2EMeshPhongMaterial%2Eprototype%2Econstructor%3DTHREE%2EMeshPhongMaterial%3B%0ATHREE%2EMeshPhongMaterial%2Eprototype%2Eclone%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EMeshPhongMaterial%3BTHREE%2EMaterial%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Ba%2Ecolor%2Ecopy%28this%2Ecolor%29%3Ba%2Eambient%2Ecopy%28this%2Eambient%29%3Ba%2Eemissive%2Ecopy%28this%2Eemissive%29%3Ba%2Especular%2Ecopy%28this%2Especular%29%3Ba%2Eshininess%3Dthis%2Eshininess%3Ba%2Emetal%3Dthis%2Emetal%3Ba%2EwrapAround%3Dthis%2EwrapAround%3Ba%2EwrapRGB%2Ecopy%28this%2EwrapRGB%29%3Ba%2Emap%3Dthis%2Emap%3Ba%2ElightMap%3Dthis%2ElightMap%3Ba%2EbumpMap%3Dthis%2EbumpMap%3Ba%2EbumpScale%3Dthis%2EbumpScale%3Ba%2EnormalMap%3Dthis%2EnormalMap%3Ba%2EnormalScale%2Ecopy%28this%2EnormalScale%29%3B%0Aa%2EspecularMap%3Dthis%2EspecularMap%3Ba%2EalphaMap%3Dthis%2EalphaMap%3Ba%2EenvMap%3Dthis%2EenvMap%3Ba%2Ecombine%3Dthis%2Ecombine%3Ba%2Ereflectivity%3Dthis%2Ereflectivity%3Ba%2ErefractionRatio%3Dthis%2ErefractionRatio%3Ba%2Efog%3Dthis%2Efog%3Ba%2Eshading%3Dthis%2Eshading%3Ba%2Ewireframe%3Dthis%2Ewireframe%3Ba%2EwireframeLinewidth%3Dthis%2EwireframeLinewidth%3Ba%2EwireframeLinecap%3Dthis%2EwireframeLinecap%3Ba%2EwireframeLinejoin%3Dthis%2EwireframeLinejoin%3Ba%2EvertexColors%3Dthis%2EvertexColors%3Ba%2Eskinning%3Dthis%2Eskinning%3Ba%2EmorphTargets%3Dthis%2EmorphTargets%3Ba%2EmorphNormals%3Dthis%2EmorphNormals%3Breturn%20a%7D%3B%0ATHREE%2EMeshDepthMaterial%3Dfunction%28a%29%7BTHREE%2EMaterial%2Ecall%28this%29%3Bthis%2Etype%3D%22MeshDepthMaterial%22%3Bthis%2Ewireframe%3Dthis%2EmorphTargets%3D%211%3Bthis%2EwireframeLinewidth%3D1%3Bthis%2EsetValues%28a%29%7D%3BTHREE%2EMeshDepthMaterial%2Eprototype%3DObject%2Ecreate%28THREE%2EMaterial%2Eprototype%29%3BTHREE%2EMeshDepthMaterial%2Eprototype%2Econstructor%3DTHREE%2EMeshDepthMaterial%3B%0ATHREE%2EMeshDepthMaterial%2Eprototype%2Eclone%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EMeshDepthMaterial%3BTHREE%2EMaterial%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Ba%2Ewireframe%3Dthis%2Ewireframe%3Ba%2EwireframeLinewidth%3Dthis%2EwireframeLinewidth%3Breturn%20a%7D%3BTHREE%2EMeshNormalMaterial%3Dfunction%28a%29%7BTHREE%2EMaterial%2Ecall%28this%2Ca%29%3Bthis%2Etype%3D%22MeshNormalMaterial%22%3Bthis%2Eshading%3DTHREE%2EFlatShading%3Bthis%2Ewireframe%3D%211%3Bthis%2EwireframeLinewidth%3D1%3Bthis%2EmorphTargets%3D%211%3Bthis%2EsetValues%28a%29%7D%3BTHREE%2EMeshNormalMaterial%2Eprototype%3DObject%2Ecreate%28THREE%2EMaterial%2Eprototype%29%3B%0ATHREE%2EMeshNormalMaterial%2Eprototype%2Econstructor%3DTHREE%2EMeshNormalMaterial%3BTHREE%2EMeshNormalMaterial%2Eprototype%2Eclone%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EMeshNormalMaterial%3BTHREE%2EMaterial%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Ba%2Eshading%3Dthis%2Eshading%3Ba%2Ewireframe%3Dthis%2Ewireframe%3Ba%2EwireframeLinewidth%3Dthis%2EwireframeLinewidth%3Breturn%20a%7D%3BTHREE%2EMeshFaceMaterial%3Dfunction%28a%29%7Bthis%2Euuid%3DTHREE%2EMath%2EgenerateUUID%28%29%3Bthis%2Etype%3D%22MeshFaceMaterial%22%3Bthis%2Ematerials%3Da%20instanceof%20Array%3Fa%3A%5B%5D%7D%3B%0ATHREE%2EMeshFaceMaterial%2Eprototype%3D%7Bconstructor%3ATHREE%2EMeshFaceMaterial%2CtoJSON%3Afunction%28%29%7Bfor%28var%20a%3D%7Bmetadata%3A%7Bversion%3A4%2E2%2Ctype%3A%22material%22%2Cgenerator%3A%22MaterialExporter%22%7D%2Cuuid%3Athis%2Euuid%2Ctype%3Athis%2Etype%2Cmaterials%3A%5B%5D%7D%2Cb%3D0%2Cc%3Dthis%2Ematerials%2Elength%3Bb%3Cc%3Bb%2B%2B%29a%2Ematerials%2Epush%28this%2Ematerials%5Bb%5D%2EtoJSON%28%29%29%3Breturn%20a%7D%2Cclone%3Afunction%28%29%7Bfor%28var%20a%3Dnew%20THREE%2EMeshFaceMaterial%2Cb%3D0%3Bb%3Cthis%2Ematerials%2Elength%3Bb%2B%2B%29a%2Ematerials%2Epush%28this%2Ematerials%5Bb%5D%2Eclone%28%29%29%3Breturn%20a%7D%7D%3B%0ATHREE%2EPointCloudMaterial%3Dfunction%28a%29%7BTHREE%2EMaterial%2Ecall%28this%29%3Bthis%2Etype%3D%22PointCloudMaterial%22%3Bthis%2Ecolor%3Dnew%20THREE%2EColor%2816777215%29%3Bthis%2Emap%3Dnull%3Bthis%2Esize%3D1%3Bthis%2EsizeAttenuation%3D%210%3Bthis%2EvertexColors%3DTHREE%2ENoColors%3Bthis%2Efog%3D%210%3Bthis%2EsetValues%28a%29%7D%3BTHREE%2EPointCloudMaterial%2Eprototype%3DObject%2Ecreate%28THREE%2EMaterial%2Eprototype%29%3BTHREE%2EPointCloudMaterial%2Eprototype%2Econstructor%3DTHREE%2EPointCloudMaterial%3B%0ATHREE%2EPointCloudMaterial%2Eprototype%2Eclone%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EPointCloudMaterial%3BTHREE%2EMaterial%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Ba%2Ecolor%2Ecopy%28this%2Ecolor%29%3Ba%2Emap%3Dthis%2Emap%3Ba%2Esize%3Dthis%2Esize%3Ba%2EsizeAttenuation%3Dthis%2EsizeAttenuation%3Ba%2EvertexColors%3Dthis%2EvertexColors%3Ba%2Efog%3Dthis%2Efog%3Breturn%20a%7D%3BTHREE%2EParticleBasicMaterial%3Dfunction%28a%29%7Bconsole%2Ewarn%28%22THREE%2EParticleBasicMaterial%20has%20been%20renamed%20to%20THREE%2EPointCloudMaterial%2E%22%29%3Breturn%20new%20THREE%2EPointCloudMaterial%28a%29%7D%3B%0ATHREE%2EParticleSystemMaterial%3Dfunction%28a%29%7Bconsole%2Ewarn%28%22THREE%2EParticleSystemMaterial%20has%20been%20renamed%20to%20THREE%2EPointCloudMaterial%2E%22%29%3Breturn%20new%20THREE%2EPointCloudMaterial%28a%29%7D%3B%0ATHREE%2EShaderMaterial%3Dfunction%28a%29%7BTHREE%2EMaterial%2Ecall%28this%29%3Bthis%2Etype%3D%22ShaderMaterial%22%3Bthis%2Edefines%3D%7B%7D%3Bthis%2Euniforms%3D%7B%7D%3Bthis%2Eattributes%3Dnull%3Bthis%2EvertexShader%3D%22void%20main%28%29%20%7B%5Cn%5Ctgl%5FPosition%20%3D%20projectionMatrix%20%2A%20modelViewMatrix%20%2A%20vec4%28%20position%2C%201%2E0%20%29%3B%5Cn%7D%22%3Bthis%2EfragmentShader%3D%22void%20main%28%29%20%7B%5Cn%5Ctgl%5FFragColor%20%3D%20vec4%28%201%2E0%2C%200%2E0%2C%200%2E0%2C%201%2E0%20%29%3B%5Cn%7D%22%3Bthis%2Eshading%3DTHREE%2ESmoothShading%3Bthis%2Elinewidth%3D1%3Bthis%2Ewireframe%3D%211%3Bthis%2EwireframeLinewidth%3D1%3Bthis%2Elights%3Dthis%2Efog%3D%211%3Bthis%2EvertexColors%3DTHREE%2ENoColors%3Bthis%2EmorphNormals%3D%0Athis%2EmorphTargets%3Dthis%2Eskinning%3D%211%3Bthis%2EdefaultAttributeValues%3D%7Bcolor%3A%5B1%2C1%2C1%5D%2Cuv%3A%5B0%2C0%5D%2Cuv2%3A%5B0%2C0%5D%7D%3Bthis%2Eindex0AttributeName%3Dvoid%200%3Bthis%2EsetValues%28a%29%7D%3BTHREE%2EShaderMaterial%2Eprototype%3DObject%2Ecreate%28THREE%2EMaterial%2Eprototype%29%3BTHREE%2EShaderMaterial%2Eprototype%2Econstructor%3DTHREE%2EShaderMaterial%3B%0ATHREE%2EShaderMaterial%2Eprototype%2Eclone%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EShaderMaterial%3BTHREE%2EMaterial%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Ba%2EfragmentShader%3Dthis%2EfragmentShader%3Ba%2EvertexShader%3Dthis%2EvertexShader%3Ba%2Euniforms%3DTHREE%2EUniformsUtils%2Eclone%28this%2Euniforms%29%3Ba%2Eattributes%3Dthis%2Eattributes%3Ba%2Edefines%3Dthis%2Edefines%3Ba%2Eshading%3Dthis%2Eshading%3Ba%2Ewireframe%3Dthis%2Ewireframe%3Ba%2EwireframeLinewidth%3Dthis%2EwireframeLinewidth%3Ba%2Efog%3Dthis%2Efog%3Ba%2Elights%3Dthis%2Elights%3Ba%2EvertexColors%3Dthis%2EvertexColors%3Ba%2Eskinning%3Dthis%2Eskinning%3Ba%2EmorphTargets%3D%0Athis%2EmorphTargets%3Ba%2EmorphNormals%3Dthis%2EmorphNormals%3Breturn%20a%7D%3BTHREE%2ERawShaderMaterial%3Dfunction%28a%29%7BTHREE%2EShaderMaterial%2Ecall%28this%2Ca%29%3Bthis%2Etype%3D%22RawShaderMaterial%22%7D%3BTHREE%2ERawShaderMaterial%2Eprototype%3DObject%2Ecreate%28THREE%2EShaderMaterial%2Eprototype%29%3BTHREE%2ERawShaderMaterial%2Eprototype%2Econstructor%3DTHREE%2ERawShaderMaterial%3BTHREE%2ERawShaderMaterial%2Eprototype%2Eclone%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2ERawShaderMaterial%3BTHREE%2EShaderMaterial%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Breturn%20a%7D%3B%0ATHREE%2ESpriteMaterial%3Dfunction%28a%29%7BTHREE%2EMaterial%2Ecall%28this%29%3Bthis%2Etype%3D%22SpriteMaterial%22%3Bthis%2Ecolor%3Dnew%20THREE%2EColor%2816777215%29%3Bthis%2Emap%3Dnull%3Bthis%2Erotation%3D0%3Bthis%2Efog%3D%211%3Bthis%2EsetValues%28a%29%7D%3BTHREE%2ESpriteMaterial%2Eprototype%3DObject%2Ecreate%28THREE%2EMaterial%2Eprototype%29%3BTHREE%2ESpriteMaterial%2Eprototype%2Econstructor%3DTHREE%2ESpriteMaterial%3B%0ATHREE%2ESpriteMaterial%2Eprototype%2Eclone%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2ESpriteMaterial%3BTHREE%2EMaterial%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Ba%2Ecolor%2Ecopy%28this%2Ecolor%29%3Ba%2Emap%3Dthis%2Emap%3Ba%2Erotation%3Dthis%2Erotation%3Ba%2Efog%3Dthis%2Efog%3Breturn%20a%7D%3B%0ATHREE%2ETexture%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%2Cg%2Ch%2Ck%29%7BObject%2EdefineProperty%28this%2C%22id%22%2C%7Bvalue%3ATHREE%2ETextureIdCount%2B%2B%7D%29%3Bthis%2Euuid%3DTHREE%2EMath%2EgenerateUUID%28%29%3Bthis%2Ename%3D%22%22%3Bthis%2Eimage%3Dvoid%200%21%3D%3Da%3Fa%3ATHREE%2ETexture%2EDEFAULT%5FIMAGE%3Bthis%2Emipmaps%3D%5B%5D%3Bthis%2Emapping%3Dvoid%200%21%3D%3Db%3Fb%3ATHREE%2ETexture%2EDEFAULT%5FMAPPING%3Bthis%2EwrapS%3Dvoid%200%21%3D%3Dc%3Fc%3ATHREE%2EClampToEdgeWrapping%3Bthis%2EwrapT%3Dvoid%200%21%3D%3Dd%3Fd%3ATHREE%2EClampToEdgeWrapping%3Bthis%2EmagFilter%3Dvoid%200%21%3D%3De%3Fe%3ATHREE%2ELinearFilter%3Bthis%2EminFilter%3Dvoid%200%21%3D%3Df%3Ff%3ATHREE%2ELinearMipMapLinearFilter%3Bthis%2Eanisotropy%3D%0Avoid%200%21%3D%3Dk%3Fk%3A1%3Bthis%2Eformat%3Dvoid%200%21%3D%3Dg%3Fg%3ATHREE%2ERGBAFormat%3Bthis%2Etype%3Dvoid%200%21%3D%3Dh%3Fh%3ATHREE%2EUnsignedByteType%3Bthis%2Eoffset%3Dnew%20THREE%2EVector2%280%2C0%29%3Bthis%2Erepeat%3Dnew%20THREE%2EVector2%281%2C1%29%3Bthis%2EgenerateMipmaps%3D%210%3Bthis%2EpremultiplyAlpha%3D%211%3Bthis%2EflipY%3D%210%3Bthis%2EunpackAlignment%3D4%3Bthis%2E%5FneedsUpdate%3D%211%3Bthis%2EonUpdate%3Dnull%7D%3BTHREE%2ETexture%2EDEFAULT%5FIMAGE%3Dvoid%200%3BTHREE%2ETexture%2EDEFAULT%5FMAPPING%3DTHREE%2EUVMapping%3B%0ATHREE%2ETexture%2Eprototype%3D%7Bconstructor%3ATHREE%2ETexture%2Cget%20needsUpdate%28%29%7Breturn%20this%2E%5FneedsUpdate%7D%2Cset%20needsUpdate%28a%29%7B%210%3D%3D%3Da%26%26this%2Eupdate%28%29%3Bthis%2E%5FneedsUpdate%3Da%7D%2Cclone%3Afunction%28a%29%7Bvoid%200%3D%3D%3Da%26%26%28a%3Dnew%20THREE%2ETexture%29%3Ba%2Eimage%3Dthis%2Eimage%3Ba%2Emipmaps%3Dthis%2Emipmaps%2Eslice%280%29%3Ba%2Emapping%3Dthis%2Emapping%3Ba%2EwrapS%3Dthis%2EwrapS%3Ba%2EwrapT%3Dthis%2EwrapT%3Ba%2EmagFilter%3Dthis%2EmagFilter%3Ba%2EminFilter%3Dthis%2EminFilter%3Ba%2Eanisotropy%3Dthis%2Eanisotropy%3Ba%2Eformat%3Dthis%2Eformat%3Ba%2Etype%3Dthis%2Etype%3Ba%2Eoffset%2Ecopy%28this%2Eoffset%29%3Ba%2Erepeat%2Ecopy%28this%2Erepeat%29%3Ba%2EgenerateMipmaps%3D%0Athis%2EgenerateMipmaps%3Ba%2EpremultiplyAlpha%3Dthis%2EpremultiplyAlpha%3Ba%2EflipY%3Dthis%2EflipY%3Ba%2EunpackAlignment%3Dthis%2EunpackAlignment%3Breturn%20a%7D%2Cupdate%3Afunction%28%29%7Bthis%2EdispatchEvent%28%7Btype%3A%22update%22%7D%29%7D%2Cdispose%3Afunction%28%29%7Bthis%2EdispatchEvent%28%7Btype%3A%22dispose%22%7D%29%7D%7D%3BTHREE%2EEventDispatcher%2Eprototype%2Eapply%28THREE%2ETexture%2Eprototype%29%3BTHREE%2ETextureIdCount%3D0%3BTHREE%2ECubeTexture%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%2Cg%2Ch%2Ck%29%7Bb%3Dvoid%200%21%3D%3Db%3Fb%3ATHREE%2ECubeReflectionMapping%3BTHREE%2ETexture%2Ecall%28this%2Ca%2Cb%2Cc%2Cd%2Ce%2Cf%2Cg%2Ch%2Ck%29%3Bthis%2Eimages%3Da%7D%3B%0ATHREE%2ECubeTexture%2Eprototype%3DObject%2Ecreate%28THREE%2ETexture%2Eprototype%29%3BTHREE%2ECubeTexture%2Eprototype%2Econstructor%3DTHREE%2ECubeTexture%3BTHREE%2ECubeTexture%2Eclone%3Dfunction%28a%29%7Bvoid%200%3D%3D%3Da%26%26%28a%3Dnew%20THREE%2ECubeTexture%29%3BTHREE%2ETexture%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Ba%2Eimages%3Dthis%2Eimages%3Breturn%20a%7D%3BTHREE%2ECompressedTexture%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%2Cg%2Ch%2Ck%2Cn%2Cp%29%7BTHREE%2ETexture%2Ecall%28this%2Cnull%2Cf%2Cg%2Ch%2Ck%2Cn%2Cd%2Ce%2Cp%29%3Bthis%2Eimage%3D%7Bwidth%3Ab%2Cheight%3Ac%7D%3Bthis%2Emipmaps%3Da%3Bthis%2EgenerateMipmaps%3Dthis%2EflipY%3D%211%7D%3BTHREE%2ECompressedTexture%2Eprototype%3DObject%2Ecreate%28THREE%2ETexture%2Eprototype%29%3B%0ATHREE%2ECompressedTexture%2Eprototype%2Econstructor%3DTHREE%2ECompressedTexture%3BTHREE%2ECompressedTexture%2Eprototype%2Eclone%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2ECompressedTexture%3BTHREE%2ETexture%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Breturn%20a%7D%3BTHREE%2EDataTexture%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%2Cg%2Ch%2Ck%2Cn%2Cp%29%7BTHREE%2ETexture%2Ecall%28this%2Cnull%2Cf%2Cg%2Ch%2Ck%2Cn%2Cd%2Ce%2Cp%29%3Bthis%2Eimage%3D%7Bdata%3Aa%2Cwidth%3Ab%2Cheight%3Ac%7D%7D%3BTHREE%2EDataTexture%2Eprototype%3DObject%2Ecreate%28THREE%2ETexture%2Eprototype%29%3BTHREE%2EDataTexture%2Eprototype%2Econstructor%3DTHREE%2EDataTexture%3B%0ATHREE%2EDataTexture%2Eprototype%2Eclone%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EDataTexture%3BTHREE%2ETexture%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Breturn%20a%7D%3BTHREE%2EVideoTexture%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%2Cg%2Ch%2Ck%29%7BTHREE%2ETexture%2Ecall%28this%2Ca%2Cb%2Cc%2Cd%2Ce%2Cf%2Cg%2Ch%2Ck%29%3Bthis%2EgenerateMipmaps%3D%211%3Bvar%20n%3Dthis%2Cp%3Dfunction%28%29%7BrequestAnimationFrame%28p%29%3Ba%2EreadyState%3D%3D%3Da%2EHAVE%5FENOUGH%5FDATA%26%26%28n%2EneedsUpdate%3D%210%29%7D%3Bp%28%29%7D%3BTHREE%2EVideoTexture%2Eprototype%3DObject%2Ecreate%28THREE%2ETexture%2Eprototype%29%3BTHREE%2EVideoTexture%2Eprototype%2Econstructor%3DTHREE%2EVideoTexture%3B%0ATHREE%2EGroup%3Dfunction%28%29%7BTHREE%2EObject3D%2Ecall%28this%29%3Bthis%2Etype%3D%22Group%22%7D%3BTHREE%2EGroup%2Eprototype%3DObject%2Ecreate%28THREE%2EObject3D%2Eprototype%29%3BTHREE%2EGroup%2Eprototype%2Econstructor%3DTHREE%2EGroup%3BTHREE%2EPointCloud%3Dfunction%28a%2Cb%29%7BTHREE%2EObject3D%2Ecall%28this%29%3Bthis%2Etype%3D%22PointCloud%22%3Bthis%2Egeometry%3Dvoid%200%21%3D%3Da%3Fa%3Anew%20THREE%2EGeometry%3Bthis%2Ematerial%3Dvoid%200%21%3D%3Db%3Fb%3Anew%20THREE%2EPointCloudMaterial%28%7Bcolor%3A16777215%2AMath%2Erandom%28%29%7D%29%7D%3BTHREE%2EPointCloud%2Eprototype%3DObject%2Ecreate%28THREE%2EObject3D%2Eprototype%29%3BTHREE%2EPointCloud%2Eprototype%2Econstructor%3DTHREE%2EPointCloud%3B%0ATHREE%2EPointCloud%2Eprototype%2Eraycast%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EMatrix4%2Cb%3Dnew%20THREE%2ERay%3Breturn%20function%28c%2Cd%29%7Bvar%20e%3Dthis%2Cf%3De%2Egeometry%2Cg%3Dc%2Eparams%2EPointCloud%2Ethreshold%3Ba%2EgetInverse%28this%2EmatrixWorld%29%3Bb%2Ecopy%28c%2Eray%29%2EapplyMatrix4%28a%29%3Bif%28null%3D%3D%3Df%2EboundingBox%7C%7C%211%21%3D%3Db%2EisIntersectionBox%28f%2EboundingBox%29%29%7Bvar%20h%3Dg%2F%28%28this%2Escale%2Ex%2Bthis%2Escale%2Ey%2Bthis%2Escale%2Ez%29%2F3%29%2Ck%3Dnew%20THREE%2EVector3%2Cg%3Dfunction%28a%2Cf%29%7Bvar%20g%3Db%2EdistanceToPoint%28a%29%3Bif%28g%3Ch%29%7Bvar%20k%3Db%2EclosestPointToPoint%28a%29%3Bk%2EapplyMatrix4%28e%2EmatrixWorld%29%3Bvar%20m%3Dc%2Eray%2Eorigin%2EdistanceTo%28k%29%3B%0Ad%2Epush%28%7Bdistance%3Am%2CdistanceToRay%3Ag%2Cpoint%3Ak%2Eclone%28%29%2Cindex%3Af%2Cface%3Anull%2Cobject%3Ae%7D%29%7D%7D%3Bif%28f%20instanceof%20THREE%2EBufferGeometry%29%7Bvar%20n%3Df%2Eattributes%2Cp%3Dn%2Eposition%2Earray%3Bif%28void%200%21%3D%3Dn%2Eindex%29%7Bvar%20n%3Dn%2Eindex%2Earray%2Cq%3Df%2Eoffsets%3B0%3D%3D%3Dq%2Elength%26%26%28q%3D%5B%7Bstart%3A0%2Ccount%3An%2Elength%2Cindex%3A0%7D%5D%29%3Bfor%28var%20m%3D0%2Ct%3Dq%2Elength%3Bm%3Ct%3B%2B%2Bm%29for%28var%20s%3Dq%5Bm%5D%2Estart%2Cr%3Dq%5Bm%5D%2Eindex%2Cf%3Ds%2Cs%3Ds%2Bq%5Bm%5D%2Ecount%3Bf%3Cs%3Bf%2B%2B%29%7Bvar%20u%3Dr%2Bn%5Bf%5D%3Bk%2EfromArray%28p%2C3%2Au%29%3Bg%28k%2Cu%29%7D%7Delse%20for%28n%3Dp%2Elength%2F3%2Cf%3D0%3Bf%3Cn%3Bf%2B%2B%29k%2Eset%28p%5B3%2Af%5D%2Cp%5B3%2Af%2B1%5D%2Cp%5B3%2Af%2B2%5D%29%2Cg%28k%2Cf%29%7Delse%20for%28k%3Dthis%2Egeometry%2Evertices%2C%0Af%3D0%3Bf%3Ck%2Elength%3Bf%2B%2B%29g%28k%5Bf%5D%2Cf%29%7D%7D%7D%28%29%3BTHREE%2EPointCloud%2Eprototype%2Eclone%3Dfunction%28a%29%7Bvoid%200%3D%3D%3Da%26%26%28a%3Dnew%20THREE%2EPointCloud%28this%2Egeometry%2Cthis%2Ematerial%29%29%3BTHREE%2EObject3D%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Breturn%20a%7D%3BTHREE%2EParticleSystem%3Dfunction%28a%2Cb%29%7Bconsole%2Ewarn%28%22THREE%2EParticleSystem%20has%20been%20renamed%20to%20THREE%2EPointCloud%2E%22%29%3Breturn%20new%20THREE%2EPointCloud%28a%2Cb%29%7D%3B%0ATHREE%2ELine%3Dfunction%28a%2Cb%2Cc%29%7BTHREE%2EObject3D%2Ecall%28this%29%3Bthis%2Etype%3D%22Line%22%3Bthis%2Egeometry%3Dvoid%200%21%3D%3Da%3Fa%3Anew%20THREE%2EGeometry%3Bthis%2Ematerial%3Dvoid%200%21%3D%3Db%3Fb%3Anew%20THREE%2ELineBasicMaterial%28%7Bcolor%3A16777215%2AMath%2Erandom%28%29%7D%29%3Bthis%2Emode%3Dvoid%200%21%3D%3Dc%3Fc%3ATHREE%2ELineStrip%7D%3BTHREE%2ELineStrip%3D0%3BTHREE%2ELinePieces%3D1%3BTHREE%2ELine%2Eprototype%3DObject%2Ecreate%28THREE%2EObject3D%2Eprototype%29%3BTHREE%2ELine%2Eprototype%2Econstructor%3DTHREE%2ELine%3B%0ATHREE%2ELine%2Eprototype%2Eraycast%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EMatrix4%2Cb%3Dnew%20THREE%2ERay%2Cc%3Dnew%20THREE%2ESphere%3Breturn%20function%28d%2Ce%29%7Bvar%20f%3Dd%2ElinePrecision%2Cf%3Df%2Af%2Cg%3Dthis%2Egeometry%3Bnull%3D%3D%3Dg%2EboundingSphere%26%26g%2EcomputeBoundingSphere%28%29%3Bc%2Ecopy%28g%2EboundingSphere%29%3Bc%2EapplyMatrix4%28this%2EmatrixWorld%29%3Bif%28%211%21%3D%3Dd%2Eray%2EisIntersectionSphere%28c%29%29%7Ba%2EgetInverse%28this%2EmatrixWorld%29%3Bb%2Ecopy%28d%2Eray%29%2EapplyMatrix4%28a%29%3Bvar%20h%3Dnew%20THREE%2EVector3%2Ck%3Dnew%20THREE%2EVector3%2Cn%3Dnew%20THREE%2EVector3%2Cp%3Dnew%20THREE%2EVector3%2Cq%3Dthis%2Emode%3D%3D%3DTHREE%2ELineStrip%3F1%3A2%3Bif%28g%20instanceof%0ATHREE%2EBufferGeometry%29%7Bvar%20m%3Dg%2Eattributes%3Bif%28void%200%21%3D%3Dm%2Eindex%29%7Bvar%20t%3Dm%2Eindex%2Earray%2Cm%3Dm%2Eposition%2Earray%2Cs%3Dg%2Eoffsets%3B0%3D%3D%3Ds%2Elength%26%26%28s%3D%5B%7Bstart%3A0%2Ccount%3At%2Elength%2Cindex%3A0%7D%5D%29%3Bfor%28var%20r%3D0%3Br%3Cs%2Elength%3Br%2B%2B%29for%28var%20u%3Ds%5Br%5D%2Estart%2Cv%3Ds%5Br%5D%2Ecount%2Cy%3Ds%5Br%5D%2Eindex%2Cg%3Du%3Bg%3Cu%2Bv%2D1%3Bg%2B%3Dq%29%7Bvar%20C%3Dy%2Bt%5Bg%2B1%5D%3Bh%2EfromArray%28m%2C3%2A%28y%2Bt%5Bg%5D%29%29%3Bk%2EfromArray%28m%2C3%2AC%29%3BC%3Db%2EdistanceSqToSegment%28h%2Ck%2Cp%2Cn%29%3BC%3Ef%7C%7C%28C%3Db%2Eorigin%2EdistanceTo%28p%29%2CC%3Cd%2Enear%7C%7CC%3Ed%2Efar%7C%7Ce%2Epush%28%7Bdistance%3AC%2Cpoint%3An%2Eclone%28%29%2EapplyMatrix4%28this%2EmatrixWorld%29%2Cface%3Anull%2CfaceIndex%3Anull%2Cobject%3Athis%7D%29%29%7D%7Delse%20for%28m%3D%0Am%2Eposition%2Earray%2Cg%3D0%3Bg%3Cm%2Elength%2F3%2D1%3Bg%2B%3Dq%29h%2EfromArray%28m%2C3%2Ag%29%2Ck%2EfromArray%28m%2C3%2Ag%2B3%29%2CC%3Db%2EdistanceSqToSegment%28h%2Ck%2Cp%2Cn%29%2CC%3Ef%7C%7C%28C%3Db%2Eorigin%2EdistanceTo%28p%29%2CC%3Cd%2Enear%7C%7CC%3Ed%2Efar%7C%7Ce%2Epush%28%7Bdistance%3AC%2Cpoint%3An%2Eclone%28%29%2EapplyMatrix4%28this%2EmatrixWorld%29%2Cface%3Anull%2CfaceIndex%3Anull%2Cobject%3Athis%7D%29%29%7Delse%20if%28g%20instanceof%20THREE%2EGeometry%29for%28h%3Dg%2Evertices%2Ck%3Dh%2Elength%2Cg%3D0%3Bg%3Ck%2D1%3Bg%2B%3Dq%29C%3Db%2EdistanceSqToSegment%28h%5Bg%5D%2Ch%5Bg%2B1%5D%2Cp%2Cn%29%2CC%3Ef%7C%7C%28C%3Db%2Eorigin%2EdistanceTo%28p%29%2CC%3Cd%2Enear%7C%7CC%3Ed%2Efar%7C%7Ce%2Epush%28%7Bdistance%3AC%2Cpoint%3An%2Eclone%28%29%2EapplyMatrix4%28this%2EmatrixWorld%29%2C%0Aface%3Anull%2CfaceIndex%3Anull%2Cobject%3Athis%7D%29%29%7D%7D%7D%28%29%3BTHREE%2ELine%2Eprototype%2Eclone%3Dfunction%28a%29%7Bvoid%200%3D%3D%3Da%26%26%28a%3Dnew%20THREE%2ELine%28this%2Egeometry%2Cthis%2Ematerial%2Cthis%2Emode%29%29%3BTHREE%2EObject3D%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Breturn%20a%7D%3BTHREE%2EMesh%3Dfunction%28a%2Cb%29%7BTHREE%2EObject3D%2Ecall%28this%29%3Bthis%2Etype%3D%22Mesh%22%3Bthis%2Egeometry%3Dvoid%200%21%3D%3Da%3Fa%3Anew%20THREE%2EGeometry%3Bthis%2Ematerial%3Dvoid%200%21%3D%3Db%3Fb%3Anew%20THREE%2EMeshBasicMaterial%28%7Bcolor%3A16777215%2AMath%2Erandom%28%29%7D%29%3Bthis%2EupdateMorphTargets%28%29%7D%3BTHREE%2EMesh%2Eprototype%3DObject%2Ecreate%28THREE%2EObject3D%2Eprototype%29%3B%0ATHREE%2EMesh%2Eprototype%2Econstructor%3DTHREE%2EMesh%3BTHREE%2EMesh%2Eprototype%2EupdateMorphTargets%3Dfunction%28%29%7Bif%28void%200%21%3D%3Dthis%2Egeometry%2EmorphTargets%26%260%3Cthis%2Egeometry%2EmorphTargets%2Elength%29%7Bthis%2EmorphTargetBase%3D%2D1%3Bthis%2EmorphTargetForcedOrder%3D%5B%5D%3Bthis%2EmorphTargetInfluences%3D%5B%5D%3Bthis%2EmorphTargetDictionary%3D%7B%7D%3Bfor%28var%20a%3D0%2Cb%3Dthis%2Egeometry%2EmorphTargets%2Elength%3Ba%3Cb%3Ba%2B%2B%29this%2EmorphTargetInfluences%2Epush%280%29%2Cthis%2EmorphTargetDictionary%5Bthis%2Egeometry%2EmorphTargets%5Ba%5D%2Ename%5D%3Da%7D%7D%3B%0ATHREE%2EMesh%2Eprototype%2EgetMorphTargetIndexByName%3Dfunction%28a%29%7Bif%28void%200%21%3D%3Dthis%2EmorphTargetDictionary%5Ba%5D%29return%20this%2EmorphTargetDictionary%5Ba%5D%3Bconsole%2Elog%28%22THREE%2EMesh%2EgetMorphTargetIndexByName%3A%20morph%20target%20%22%2Ba%2B%22%20does%20not%20exist%2E%20Returning%200%2E%22%29%3Breturn%200%7D%3B%0ATHREE%2EMesh%2Eprototype%2Eraycast%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EMatrix4%2Cb%3Dnew%20THREE%2ERay%2Cc%3Dnew%20THREE%2ESphere%2Cd%3Dnew%20THREE%2EVector3%2Ce%3Dnew%20THREE%2EVector3%2Cf%3Dnew%20THREE%2EVector3%3Breturn%20function%28g%2Ch%29%7Bvar%20k%3Dthis%2Egeometry%3Bnull%3D%3D%3Dk%2EboundingSphere%26%26k%2EcomputeBoundingSphere%28%29%3Bc%2Ecopy%28k%2EboundingSphere%29%3Bc%2EapplyMatrix4%28this%2EmatrixWorld%29%3Bif%28%211%21%3D%3Dg%2Eray%2EisIntersectionSphere%28c%29%26%26%28a%2EgetInverse%28this%2EmatrixWorld%29%2Cb%2Ecopy%28g%2Eray%29%2EapplyMatrix4%28a%29%2Cnull%3D%3D%3Dk%2EboundingBox%7C%7C%211%21%3D%3Db%2EisIntersectionBox%28k%2EboundingBox%29%29%29if%28k%20instanceof%20THREE%2EBufferGeometry%29%7Bvar%20n%3D%0Athis%2Ematerial%3Bif%28void%200%21%3D%3Dn%29%7Bvar%20p%3Dk%2Eattributes%2Cq%2Cm%2Ct%3Dg%2Eprecision%3Bif%28void%200%21%3D%3Dp%2Eindex%29%7Bvar%20s%3Dp%2Eindex%2Earray%2Cr%3Dp%2Eposition%2Earray%2Cu%3Dk%2Eoffsets%3B0%3D%3D%3Du%2Elength%26%26%28u%3D%5B%7Bstart%3A0%2Ccount%3As%2Elength%2Cindex%3A0%7D%5D%29%3Bfor%28var%20v%3D0%2Cy%3Du%2Elength%3Bv%3Cy%3B%2B%2Bv%29for%28var%20p%3Du%5Bv%5D%2Estart%2CC%3Du%5Bv%5D%2Eindex%2Ck%3Dp%2Cx%3Dp%2Bu%5Bv%5D%2Ecount%3Bk%3Cx%3Bk%2B%3D3%29%7Bp%3DC%2Bs%5Bk%5D%3Bq%3DC%2Bs%5Bk%2B1%5D%3Bm%3DC%2Bs%5Bk%2B2%5D%3Bd%2EfromArray%28r%2C3%2Ap%29%3Be%2EfromArray%28r%2C3%2Aq%29%3Bf%2EfromArray%28r%2C3%2Am%29%3Bvar%20F%3Dn%2Eside%3D%3D%3DTHREE%2EBackSide%3Fb%2EintersectTriangle%28f%2Ce%2Cd%2C%210%29%3Ab%2EintersectTriangle%28d%2Ce%2Cf%2Cn%2Eside%21%3D%3DTHREE%2EDoubleSide%29%3Bif%28null%21%3D%3DF%29%7BF%2EapplyMatrix4%28this%2EmatrixWorld%29%3B%0Avar%20z%3Dg%2Eray%2Eorigin%2EdistanceTo%28F%29%3Bz%3Ct%7C%7Cz%3Cg%2Enear%7C%7Cz%3Eg%2Efar%7C%7Ch%2Epush%28%7Bdistance%3Az%2Cpoint%3AF%2Cface%3Anew%20THREE%2EFace3%28p%2Cq%2Cm%2CTHREE%2ETriangle%2Enormal%28d%2Ce%2Cf%29%29%2CfaceIndex%3Anull%2Cobject%3Athis%7D%29%7D%7D%7Delse%20for%28r%3Dp%2Eposition%2Earray%2Cs%3Dk%3D0%2Cx%3Dr%2Elength%3Bk%3Cx%3Bk%2B%3D3%2Cs%2B%3D9%29p%3Dk%2Cq%3Dk%2B1%2Cm%3Dk%2B2%2Cd%2EfromArray%28r%2Cs%29%2Ce%2EfromArray%28r%2Cs%2B3%29%2Cf%2EfromArray%28r%2Cs%2B6%29%2CF%3Dn%2Eside%3D%3D%3DTHREE%2EBackSide%3Fb%2EintersectTriangle%28f%2Ce%2Cd%2C%210%29%3Ab%2EintersectTriangle%28d%2Ce%2Cf%2Cn%2Eside%21%3D%3DTHREE%2EDoubleSide%29%2Cnull%21%3D%3DF%26%26%28F%2EapplyMatrix4%28this%2EmatrixWorld%29%2Cz%3Dg%2Eray%2Eorigin%2EdistanceTo%28F%29%2Cz%3Ct%7C%7Cz%3Cg%2Enear%7C%7Cz%3E%0Ag%2Efar%7C%7Ch%2Epush%28%7Bdistance%3Az%2Cpoint%3AF%2Cface%3Anew%20THREE%2EFace3%28p%2Cq%2Cm%2CTHREE%2ETriangle%2Enormal%28d%2Ce%2Cf%29%29%2CfaceIndex%3Anull%2Cobject%3Athis%7D%29%29%7D%7Delse%20if%28k%20instanceof%20THREE%2EGeometry%29for%28s%3Dthis%2Ematerial%20instanceof%20THREE%2EMeshFaceMaterial%2Cr%3D%210%3D%3D%3Ds%3Fthis%2Ematerial%2Ematerials%3Anull%2Ct%3Dg%2Eprecision%2Cu%3Dk%2Evertices%2Cv%3D0%2Cy%3Dk%2Efaces%2Elength%3Bv%3Cy%3Bv%2B%2B%29if%28C%3Dk%2Efaces%5Bv%5D%2Cn%3D%210%3D%3D%3Ds%3Fr%5BC%2EmaterialIndex%5D%3Athis%2Ematerial%2Cvoid%200%21%3D%3Dn%29%7Bp%3Du%5BC%2Ea%5D%3Bq%3Du%5BC%2Eb%5D%3Bm%3Du%5BC%2Ec%5D%3Bif%28%210%3D%3D%3Dn%2EmorphTargets%29%7BF%3Dk%2EmorphTargets%3Bz%3Dthis%2EmorphTargetInfluences%3Bd%2Eset%280%2C0%2C0%29%3Be%2Eset%280%2C0%2C0%29%3Bf%2Eset%280%2C%0A0%2C0%29%3Bfor%28var%20x%3D0%2CG%3DF%2Elength%3Bx%3CG%3Bx%2B%2B%29%7Bvar%20E%3Dz%5Bx%5D%3Bif%280%21%3D%3DE%29%7Bvar%20w%3DF%5Bx%5D%2Evertices%3Bd%2Ex%2B%3D%28w%5BC%2Ea%5D%2Ex%2Dp%2Ex%29%2AE%3Bd%2Ey%2B%3D%28w%5BC%2Ea%5D%2Ey%2Dp%2Ey%29%2AE%3Bd%2Ez%2B%3D%28w%5BC%2Ea%5D%2Ez%2Dp%2Ez%29%2AE%3Be%2Ex%2B%3D%28w%5BC%2Eb%5D%2Ex%2Dq%2Ex%29%2AE%3Be%2Ey%2B%3D%28w%5BC%2Eb%5D%2Ey%2Dq%2Ey%29%2AE%3Be%2Ez%2B%3D%28w%5BC%2Eb%5D%2Ez%2Dq%2Ez%29%2AE%3Bf%2Ex%2B%3D%28w%5BC%2Ec%5D%2Ex%2Dm%2Ex%29%2AE%3Bf%2Ey%2B%3D%28w%5BC%2Ec%5D%2Ey%2Dm%2Ey%29%2AE%3Bf%2Ez%2B%3D%28w%5BC%2Ec%5D%2Ez%2Dm%2Ez%29%2AE%7D%7Dd%2Eadd%28p%29%3Be%2Eadd%28q%29%3Bf%2Eadd%28m%29%3Bp%3Dd%3Bq%3De%3Bm%3Df%7DF%3Dn%2Eside%3D%3D%3DTHREE%2EBackSide%3Fb%2EintersectTriangle%28m%2Cq%2Cp%2C%210%29%3Ab%2EintersectTriangle%28p%2Cq%2Cm%2Cn%2Eside%21%3D%3DTHREE%2EDoubleSide%29%3Bnull%21%3D%3DF%26%26%28F%2EapplyMatrix4%28this%2EmatrixWorld%29%2Cz%3Dg%2Eray%2Eorigin%2EdistanceTo%28F%29%2Cz%3Ct%7C%7C%0Az%3Cg%2Enear%7C%7Cz%3Eg%2Efar%7C%7Ch%2Epush%28%7Bdistance%3Az%2Cpoint%3AF%2Cface%3AC%2CfaceIndex%3Av%2Cobject%3Athis%7D%29%29%7D%7D%7D%28%29%3BTHREE%2EMesh%2Eprototype%2Eclone%3Dfunction%28a%2Cb%29%7Bvoid%200%3D%3D%3Da%26%26%28a%3Dnew%20THREE%2EMesh%28this%2Egeometry%2Cthis%2Ematerial%29%29%3BTHREE%2EObject3D%2Eprototype%2Eclone%2Ecall%28this%2Ca%2Cb%29%3Breturn%20a%7D%3BTHREE%2EBone%3Dfunction%28a%29%7BTHREE%2EObject3D%2Ecall%28this%29%3Bthis%2Eskin%3Da%7D%3BTHREE%2EBone%2Eprototype%3DObject%2Ecreate%28THREE%2EObject3D%2Eprototype%29%3BTHREE%2EBone%2Eprototype%2Econstructor%3DTHREE%2EBone%3B%0ATHREE%2ESkeleton%3Dfunction%28a%2Cb%2Cc%29%7Bthis%2EuseVertexTexture%3Dvoid%200%21%3D%3Dc%3Fc%3A%210%3Bthis%2EidentityMatrix%3Dnew%20THREE%2EMatrix4%3Ba%3Da%7C%7C%5B%5D%3Bthis%2Ebones%3Da%2Eslice%280%29%3Bthis%2EuseVertexTexture%3F%28this%2EboneTextureHeight%3Dthis%2EboneTextureWidth%3Da%3D256%3Cthis%2Ebones%2Elength%3F64%3A64%3Cthis%2Ebones%2Elength%3F32%3A16%3Cthis%2Ebones%2Elength%3F16%3A8%2Cthis%2EboneMatrices%3Dnew%20Float32Array%28this%2EboneTextureWidth%2Athis%2EboneTextureHeight%2A4%29%2Cthis%2EboneTexture%3Dnew%20THREE%2EDataTexture%28this%2EboneMatrices%2Cthis%2EboneTextureWidth%2Cthis%2EboneTextureHeight%2CTHREE%2ERGBAFormat%2CTHREE%2EFloatType%29%2C%0Athis%2EboneTexture%2EminFilter%3DTHREE%2ENearestFilter%2Cthis%2EboneTexture%2EmagFilter%3DTHREE%2ENearestFilter%2Cthis%2EboneTexture%2EgenerateMipmaps%3D%211%2Cthis%2EboneTexture%2EflipY%3D%211%29%3Athis%2EboneMatrices%3Dnew%20Float32Array%2816%2Athis%2Ebones%2Elength%29%3Bif%28void%200%3D%3D%3Db%29this%2EcalculateInverses%28%29%3Belse%20if%28this%2Ebones%2Elength%3D%3D%3Db%2Elength%29this%2EboneInverses%3Db%2Eslice%280%29%3Belse%20for%28console%2Ewarn%28%22THREE%2ESkeleton%20bonInverses%20is%20the%20wrong%20length%2E%22%29%2Cthis%2EboneInverses%3D%5B%5D%2Cb%3D0%2Ca%3Dthis%2Ebones%2Elength%3Bb%3Ca%3Bb%2B%2B%29this%2EboneInverses%2Epush%28new%20THREE%2EMatrix4%29%7D%3B%0ATHREE%2ESkeleton%2Eprototype%2EcalculateInverses%3Dfunction%28%29%7Bthis%2EboneInverses%3D%5B%5D%3Bfor%28var%20a%3D0%2Cb%3Dthis%2Ebones%2Elength%3Ba%3Cb%3Ba%2B%2B%29%7Bvar%20c%3Dnew%20THREE%2EMatrix4%3Bthis%2Ebones%5Ba%5D%26%26c%2EgetInverse%28this%2Ebones%5Ba%5D%2EmatrixWorld%29%3Bthis%2EboneInverses%2Epush%28c%29%7D%7D%3B%0ATHREE%2ESkeleton%2Eprototype%2Epose%3Dfunction%28%29%7Bfor%28var%20a%2Cb%3D0%2Cc%3Dthis%2Ebones%2Elength%3Bb%3Cc%3Bb%2B%2B%29%28a%3Dthis%2Ebones%5Bb%5D%29%26%26a%2EmatrixWorld%2EgetInverse%28this%2EboneInverses%5Bb%5D%29%3Bb%3D0%3Bfor%28c%3Dthis%2Ebones%2Elength%3Bb%3Cc%3Bb%2B%2B%29if%28a%3Dthis%2Ebones%5Bb%5D%29a%2Eparent%3F%28a%2Ematrix%2EgetInverse%28a%2Eparent%2EmatrixWorld%29%2Ca%2Ematrix%2Emultiply%28a%2EmatrixWorld%29%29%3Aa%2Ematrix%2Ecopy%28a%2EmatrixWorld%29%2Ca%2Ematrix%2Edecompose%28a%2Eposition%2Ca%2Equaternion%2Ca%2Escale%29%7D%3B%0ATHREE%2ESkeleton%2Eprototype%2Eupdate%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EMatrix4%3Breturn%20function%28%29%7Bfor%28var%20b%3D0%2Cc%3Dthis%2Ebones%2Elength%3Bb%3Cc%3Bb%2B%2B%29a%2EmultiplyMatrices%28this%2Ebones%5Bb%5D%3Fthis%2Ebones%5Bb%5D%2EmatrixWorld%3Athis%2EidentityMatrix%2Cthis%2EboneInverses%5Bb%5D%29%2Ca%2EflattenToArrayOffset%28this%2EboneMatrices%2C16%2Ab%29%3Bthis%2EuseVertexTexture%26%26%28this%2EboneTexture%2EneedsUpdate%3D%210%29%7D%7D%28%29%3B%0ATHREE%2ESkinnedMesh%3Dfunction%28a%2Cb%2Cc%29%7BTHREE%2EMesh%2Ecall%28this%2Ca%2Cb%29%3Bthis%2Etype%3D%22SkinnedMesh%22%3Bthis%2EbindMode%3D%22attached%22%3Bthis%2EbindMatrix%3Dnew%20THREE%2EMatrix4%3Bthis%2EbindMatrixInverse%3Dnew%20THREE%2EMatrix4%3Ba%3D%5B%5D%3Bif%28this%2Egeometry%26%26void%200%21%3D%3Dthis%2Egeometry%2Ebones%29%7Bfor%28var%20d%2Ce%2Cf%2Cg%2Ch%3D0%2Ck%3Dthis%2Egeometry%2Ebones%2Elength%3Bh%3Ck%3B%2B%2Bh%29d%3Dthis%2Egeometry%2Ebones%5Bh%5D%2Ce%3Dd%2Epos%2Cf%3Dd%2Erotq%2Cg%3Dd%2Escl%2Cb%3Dnew%20THREE%2EBone%28this%29%2Ca%2Epush%28b%29%2Cb%2Ename%3Dd%2Ename%2Cb%2Eposition%2Eset%28e%5B0%5D%2Ce%5B1%5D%2Ce%5B2%5D%29%2Cb%2Equaternion%2Eset%28f%5B0%5D%2Cf%5B1%5D%2Cf%5B2%5D%2Cf%5B3%5D%29%2Cvoid%200%21%3D%3Dg%3Fb%2Escale%2Eset%28g%5B0%5D%2Cg%5B1%5D%2Cg%5B2%5D%29%3Ab%2Escale%2Eset%281%2C%0A1%2C1%29%3Bh%3D0%3Bfor%28k%3Dthis%2Egeometry%2Ebones%2Elength%3Bh%3Ck%3B%2B%2Bh%29d%3Dthis%2Egeometry%2Ebones%5Bh%5D%2C%2D1%21%3D%3Dd%2Eparent%3Fa%5Bd%2Eparent%5D%2Eadd%28a%5Bh%5D%29%3Athis%2Eadd%28a%5Bh%5D%29%7Dthis%2EnormalizeSkinWeights%28%29%3Bthis%2EupdateMatrixWorld%28%210%29%3Bthis%2Ebind%28new%20THREE%2ESkeleton%28a%2Cvoid%200%2Cc%29%29%7D%3BTHREE%2ESkinnedMesh%2Eprototype%3DObject%2Ecreate%28THREE%2EMesh%2Eprototype%29%3BTHREE%2ESkinnedMesh%2Eprototype%2Econstructor%3DTHREE%2ESkinnedMesh%3BTHREE%2ESkinnedMesh%2Eprototype%2Ebind%3Dfunction%28a%2Cb%29%7Bthis%2Eskeleton%3Da%3Bvoid%200%3D%3D%3Db%26%26%28this%2EupdateMatrixWorld%28%210%29%2Cb%3Dthis%2EmatrixWorld%29%3Bthis%2EbindMatrix%2Ecopy%28b%29%3Bthis%2EbindMatrixInverse%2EgetInverse%28b%29%7D%3B%0ATHREE%2ESkinnedMesh%2Eprototype%2Epose%3Dfunction%28%29%7Bthis%2Eskeleton%2Epose%28%29%7D%3BTHREE%2ESkinnedMesh%2Eprototype%2EnormalizeSkinWeights%3Dfunction%28%29%7Bif%28this%2Egeometry%20instanceof%20THREE%2EGeometry%29for%28var%20a%3D0%3Ba%3Cthis%2Egeometry%2EskinIndices%2Elength%3Ba%2B%2B%29%7Bvar%20b%3Dthis%2Egeometry%2EskinWeights%5Ba%5D%2Cc%3D1%2Fb%2ElengthManhattan%28%29%3BInfinity%21%3D%3Dc%3Fb%2EmultiplyScalar%28c%29%3Ab%2Eset%281%29%7D%7D%3B%0ATHREE%2ESkinnedMesh%2Eprototype%2EupdateMatrixWorld%3Dfunction%28a%29%7BTHREE%2EMesh%2Eprototype%2EupdateMatrixWorld%2Ecall%28this%2C%210%29%3B%22attached%22%3D%3D%3Dthis%2EbindMode%3Fthis%2EbindMatrixInverse%2EgetInverse%28this%2EmatrixWorld%29%3A%22detached%22%3D%3D%3Dthis%2EbindMode%3Fthis%2EbindMatrixInverse%2EgetInverse%28this%2EbindMatrix%29%3Aconsole%2Ewarn%28%22THREE%2ESkinnedMesh%20unreckognized%20bindMode%3A%20%22%2Bthis%2EbindMode%29%7D%3B%0ATHREE%2ESkinnedMesh%2Eprototype%2Eclone%3Dfunction%28a%29%7Bvoid%200%3D%3D%3Da%26%26%28a%3Dnew%20THREE%2ESkinnedMesh%28this%2Egeometry%2Cthis%2Ematerial%2Cthis%2EuseVertexTexture%29%29%3BTHREE%2EMesh%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Breturn%20a%7D%3BTHREE%2EMorphAnimMesh%3Dfunction%28a%2Cb%29%7BTHREE%2EMesh%2Ecall%28this%2Ca%2Cb%29%3Bthis%2Etype%3D%22MorphAnimMesh%22%3Bthis%2Eduration%3D1E3%3Bthis%2EmirroredLoop%3D%211%3Bthis%2EcurrentKeyframe%3Dthis%2ElastKeyframe%3Dthis%2Etime%3D0%3Bthis%2Edirection%3D1%3Bthis%2EdirectionBackwards%3D%211%3Bthis%2EsetFrameRange%280%2Cthis%2Egeometry%2EmorphTargets%2Elength%2D1%29%7D%3BTHREE%2EMorphAnimMesh%2Eprototype%3DObject%2Ecreate%28THREE%2EMesh%2Eprototype%29%3B%0ATHREE%2EMorphAnimMesh%2Eprototype%2Econstructor%3DTHREE%2EMorphAnimMesh%3BTHREE%2EMorphAnimMesh%2Eprototype%2EsetFrameRange%3Dfunction%28a%2Cb%29%7Bthis%2EstartKeyframe%3Da%3Bthis%2EendKeyframe%3Db%3Bthis%2Elength%3Dthis%2EendKeyframe%2Dthis%2EstartKeyframe%2B1%7D%3BTHREE%2EMorphAnimMesh%2Eprototype%2EsetDirectionForward%3Dfunction%28%29%7Bthis%2Edirection%3D1%3Bthis%2EdirectionBackwards%3D%211%7D%3BTHREE%2EMorphAnimMesh%2Eprototype%2EsetDirectionBackward%3Dfunction%28%29%7Bthis%2Edirection%3D%2D1%3Bthis%2EdirectionBackwards%3D%210%7D%3B%0ATHREE%2EMorphAnimMesh%2Eprototype%2EparseAnimations%3Dfunction%28%29%7Bvar%20a%3Dthis%2Egeometry%3Ba%2Eanimations%7C%7C%28a%2Eanimations%3D%7B%7D%29%3Bfor%28var%20b%2Cc%3Da%2Eanimations%2Cd%3D%2F%28%5Ba%2Dz%5D%2B%29%5F%3F%28%5Cd%2B%29%2F%2Ce%3D0%2Cf%3Da%2EmorphTargets%2Elength%3Be%3Cf%3Be%2B%2B%29%7Bvar%20g%3Da%2EmorphTargets%5Be%5D%2Ename%2Ematch%28d%29%3Bif%28g%26%261%3Cg%2Elength%29%7Bg%3Dg%5B1%5D%3Bc%5Bg%5D%7C%7C%28c%5Bg%5D%3D%7Bstart%3AInfinity%2Cend%3A%2DInfinity%7D%29%3Bvar%20h%3Dc%5Bg%5D%3Be%3Ch%2Estart%26%26%28h%2Estart%3De%29%3Be%3Eh%2Eend%26%26%28h%2Eend%3De%29%3Bb%7C%7C%28b%3Dg%29%7D%7Da%2EfirstAnimation%3Db%7D%3B%0ATHREE%2EMorphAnimMesh%2Eprototype%2EsetAnimationLabel%3Dfunction%28a%2Cb%2Cc%29%7Bthis%2Egeometry%2Eanimations%7C%7C%28this%2Egeometry%2Eanimations%3D%7B%7D%29%3Bthis%2Egeometry%2Eanimations%5Ba%5D%3D%7Bstart%3Ab%2Cend%3Ac%7D%7D%3BTHREE%2EMorphAnimMesh%2Eprototype%2EplayAnimation%3Dfunction%28a%2Cb%29%7Bvar%20c%3Dthis%2Egeometry%2Eanimations%5Ba%5D%3Bc%3F%28this%2EsetFrameRange%28c%2Estart%2Cc%2Eend%29%2Cthis%2Eduration%3D%28c%2Eend%2Dc%2Estart%29%2Fb%2A1E3%2Cthis%2Etime%3D0%29%3Aconsole%2Ewarn%28%22animation%5B%22%2Ba%2B%22%5D%20undefined%22%29%7D%3B%0ATHREE%2EMorphAnimMesh%2Eprototype%2EupdateAnimation%3Dfunction%28a%29%7Bvar%20b%3Dthis%2Eduration%2Fthis%2Elength%3Bthis%2Etime%2B%3Dthis%2Edirection%2Aa%3Bif%28this%2EmirroredLoop%29%7Bif%28this%2Etime%3Ethis%2Eduration%7C%7C0%3Ethis%2Etime%29this%2Edirection%2A%3D%2D1%2Cthis%2Etime%3Ethis%2Eduration%26%26%28this%2Etime%3Dthis%2Eduration%2Cthis%2EdirectionBackwards%3D%210%29%2C0%3Ethis%2Etime%26%26%28this%2Etime%3D0%2Cthis%2EdirectionBackwards%3D%211%29%7Delse%20this%2Etime%25%3Dthis%2Eduration%2C0%3Ethis%2Etime%26%26%28this%2Etime%2B%3Dthis%2Eduration%29%3Ba%3Dthis%2EstartKeyframe%2BTHREE%2EMath%2Eclamp%28Math%2Efloor%28this%2Etime%2Fb%29%2C0%2Cthis%2Elength%2D1%29%3Ba%21%3D%3Dthis%2EcurrentKeyframe%26%26%0A%28this%2EmorphTargetInfluences%5Bthis%2ElastKeyframe%5D%3D0%2Cthis%2EmorphTargetInfluences%5Bthis%2EcurrentKeyframe%5D%3D1%2Cthis%2EmorphTargetInfluences%5Ba%5D%3D0%2Cthis%2ElastKeyframe%3Dthis%2EcurrentKeyframe%2Cthis%2EcurrentKeyframe%3Da%29%3Bb%3Dthis%2Etime%25b%2Fb%3Bthis%2EdirectionBackwards%26%26%28b%3D1%2Db%29%3Bthis%2EmorphTargetInfluences%5Bthis%2EcurrentKeyframe%5D%3Db%3Bthis%2EmorphTargetInfluences%5Bthis%2ElastKeyframe%5D%3D1%2Db%7D%3B%0ATHREE%2EMorphAnimMesh%2Eprototype%2EinterpolateTargets%3Dfunction%28a%2Cb%2Cc%29%7Bfor%28var%20d%3Dthis%2EmorphTargetInfluences%2Ce%3D0%2Cf%3Dd%2Elength%3Be%3Cf%3Be%2B%2B%29d%5Be%5D%3D0%3B%2D1%3Ca%26%26%28d%5Ba%5D%3D1%2Dc%29%3B%2D1%3Cb%26%26%28d%5Bb%5D%3Dc%29%7D%3B%0ATHREE%2EMorphAnimMesh%2Eprototype%2Eclone%3Dfunction%28a%29%7Bvoid%200%3D%3D%3Da%26%26%28a%3Dnew%20THREE%2EMorphAnimMesh%28this%2Egeometry%2Cthis%2Ematerial%29%29%3Ba%2Eduration%3Dthis%2Eduration%3Ba%2EmirroredLoop%3Dthis%2EmirroredLoop%3Ba%2Etime%3Dthis%2Etime%3Ba%2ElastKeyframe%3Dthis%2ElastKeyframe%3Ba%2EcurrentKeyframe%3Dthis%2EcurrentKeyframe%3Ba%2Edirection%3Dthis%2Edirection%3Ba%2EdirectionBackwards%3Dthis%2EdirectionBackwards%3BTHREE%2EMesh%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Breturn%20a%7D%3BTHREE%2ELOD%3Dfunction%28%29%7BTHREE%2EObject3D%2Ecall%28this%29%3Bthis%2Eobjects%3D%5B%5D%7D%3BTHREE%2ELOD%2Eprototype%3DObject%2Ecreate%28THREE%2EObject3D%2Eprototype%29%3B%0ATHREE%2ELOD%2Eprototype%2Econstructor%3DTHREE%2ELOD%3BTHREE%2ELOD%2Eprototype%2EaddLevel%3Dfunction%28a%2Cb%29%7Bvoid%200%3D%3D%3Db%26%26%28b%3D0%29%3Bb%3DMath%2Eabs%28b%29%3Bfor%28var%20c%3D0%3Bc%3Cthis%2Eobjects%2Elength%26%26%21%28b%3Cthis%2Eobjects%5Bc%5D%2Edistance%29%3Bc%2B%2B%29%3Bthis%2Eobjects%2Esplice%28c%2C0%2C%7Bdistance%3Ab%2Cobject%3Aa%7D%29%3Bthis%2Eadd%28a%29%7D%3BTHREE%2ELOD%2Eprototype%2EgetObjectForDistance%3Dfunction%28a%29%7Bfor%28var%20b%3D1%2Cc%3Dthis%2Eobjects%2Elength%3Bb%3Cc%26%26%21%28a%3Cthis%2Eobjects%5Bb%5D%2Edistance%29%3Bb%2B%2B%29%3Breturn%20this%2Eobjects%5Bb%2D1%5D%2Eobject%7D%3B%0ATHREE%2ELOD%2Eprototype%2Eraycast%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%3Breturn%20function%28b%2Cc%29%7Ba%2EsetFromMatrixPosition%28this%2EmatrixWorld%29%3Bvar%20d%3Db%2Eray%2Eorigin%2EdistanceTo%28a%29%3Bthis%2EgetObjectForDistance%28d%29%2Eraycast%28b%2Cc%29%7D%7D%28%29%3B%0ATHREE%2ELOD%2Eprototype%2Eupdate%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%2Cb%3Dnew%20THREE%2EVector3%3Breturn%20function%28c%29%7Bif%281%3Cthis%2Eobjects%2Elength%29%7Ba%2EsetFromMatrixPosition%28c%2EmatrixWorld%29%3Bb%2EsetFromMatrixPosition%28this%2EmatrixWorld%29%3Bc%3Da%2EdistanceTo%28b%29%3Bthis%2Eobjects%5B0%5D%2Eobject%2Evisible%3D%210%3Bfor%28var%20d%3D1%2Ce%3Dthis%2Eobjects%2Elength%3Bd%3Ce%3Bd%2B%2B%29if%28c%3E%3Dthis%2Eobjects%5Bd%5D%2Edistance%29this%2Eobjects%5Bd%2D1%5D%2Eobject%2Evisible%3D%211%2Cthis%2Eobjects%5Bd%5D%2Eobject%2Evisible%3D%210%3Belse%20break%3Bfor%28%3Bd%3Ce%3Bd%2B%2B%29this%2Eobjects%5Bd%5D%2Eobject%2Evisible%3D%211%7D%7D%7D%28%29%3B%0ATHREE%2ELOD%2Eprototype%2Eclone%3Dfunction%28a%29%7Bvoid%200%3D%3D%3Da%26%26%28a%3Dnew%20THREE%2ELOD%29%3BTHREE%2EObject3D%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Bfor%28var%20b%3D0%2Cc%3Dthis%2Eobjects%2Elength%3Bb%3Cc%3Bb%2B%2B%29%7Bvar%20d%3Dthis%2Eobjects%5Bb%5D%2Eobject%2Eclone%28%29%3Bd%2Evisible%3D0%3D%3D%3Db%3Ba%2EaddLevel%28d%2Cthis%2Eobjects%5Bb%5D%2Edistance%29%7Dreturn%20a%7D%3B%0ATHREE%2ESprite%3Dfunction%28%29%7Bvar%20a%3Dnew%20Uint16Array%28%5B0%2C1%2C2%2C0%2C2%2C3%5D%29%2Cb%3Dnew%20Float32Array%28%5B%2D%2E5%2C%2D%2E5%2C0%2C%2E5%2C%2D%2E5%2C0%2C%2E5%2C%2E5%2C0%2C%2D%2E5%2C%2E5%2C0%5D%29%2Cc%3Dnew%20Float32Array%28%5B0%2C0%2C1%2C0%2C1%2C1%2C0%2C1%5D%29%2Cd%3Dnew%20THREE%2EBufferGeometry%3Bd%2EaddAttribute%28%22index%22%2Cnew%20THREE%2EBufferAttribute%28a%2C1%29%29%3Bd%2EaddAttribute%28%22position%22%2Cnew%20THREE%2EBufferAttribute%28b%2C3%29%29%3Bd%2EaddAttribute%28%22uv%22%2Cnew%20THREE%2EBufferAttribute%28c%2C2%29%29%3Breturn%20function%28a%29%7BTHREE%2EObject3D%2Ecall%28this%29%3Bthis%2Etype%3D%22Sprite%22%3Bthis%2Egeometry%3Dd%3Bthis%2Ematerial%3Dvoid%200%21%3D%3Da%3Fa%3Anew%20THREE%2ESpriteMaterial%7D%7D%28%29%3B%0ATHREE%2ESprite%2Eprototype%3DObject%2Ecreate%28THREE%2EObject3D%2Eprototype%29%3BTHREE%2ESprite%2Eprototype%2Econstructor%3DTHREE%2ESprite%3BTHREE%2ESprite%2Eprototype%2Eraycast%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%3Breturn%20function%28b%2Cc%29%7Ba%2EsetFromMatrixPosition%28this%2EmatrixWorld%29%3Bvar%20d%3Db%2Eray%2EdistanceToPoint%28a%29%3Bd%3Ethis%2Escale%2Ex%7C%7Cc%2Epush%28%7Bdistance%3Ad%2Cpoint%3Athis%2Eposition%2Cface%3Anull%2Cobject%3Athis%7D%29%7D%7D%28%29%3BTHREE%2ESprite%2Eprototype%2Eclone%3Dfunction%28a%29%7Bvoid%200%3D%3D%3Da%26%26%28a%3Dnew%20THREE%2ESprite%28this%2Ematerial%29%29%3BTHREE%2EObject3D%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Breturn%20a%7D%3B%0ATHREE%2EParticle%3DTHREE%2ESprite%3BTHREE%2ELensFlare%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%29%7BTHREE%2EObject3D%2Ecall%28this%29%3Bthis%2ElensFlares%3D%5B%5D%3Bthis%2EpositionScreen%3Dnew%20THREE%2EVector3%3Bthis%2EcustomUpdateCallback%3Dvoid%200%3Bvoid%200%21%3D%3Da%26%26this%2Eadd%28a%2Cb%2Cc%2Cd%2Ce%29%7D%3BTHREE%2ELensFlare%2Eprototype%3DObject%2Ecreate%28THREE%2EObject3D%2Eprototype%29%3BTHREE%2ELensFlare%2Eprototype%2Econstructor%3DTHREE%2ELensFlare%3B%0ATHREE%2ELensFlare%2Eprototype%2Eadd%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%29%7Bvoid%200%3D%3D%3Db%26%26%28b%3D%2D1%29%3Bvoid%200%3D%3D%3Dc%26%26%28c%3D0%29%3Bvoid%200%3D%3D%3Df%26%26%28f%3D1%29%3Bvoid%200%3D%3D%3De%26%26%28e%3Dnew%20THREE%2EColor%2816777215%29%29%3Bvoid%200%3D%3D%3Dd%26%26%28d%3DTHREE%2ENormalBlending%29%3Bc%3DMath%2Emin%28c%2CMath%2Emax%280%2Cc%29%29%3Bthis%2ElensFlares%2Epush%28%7Btexture%3Aa%2Csize%3Ab%2Cdistance%3Ac%2Cx%3A0%2Cy%3A0%2Cz%3A0%2Cscale%3A1%2Crotation%3A1%2Copacity%3Af%2Ccolor%3Ae%2Cblending%3Ad%7D%29%7D%3B%0ATHREE%2ELensFlare%2Eprototype%2EupdateLensFlares%3Dfunction%28%29%7Bvar%20a%2Cb%3Dthis%2ElensFlares%2Elength%2Cc%2Cd%3D2%2A%2Dthis%2EpositionScreen%2Ex%2Ce%3D2%2A%2Dthis%2EpositionScreen%2Ey%3Bfor%28a%3D0%3Ba%3Cb%3Ba%2B%2B%29c%3Dthis%2ElensFlares%5Ba%5D%2Cc%2Ex%3Dthis%2EpositionScreen%2Ex%2Bd%2Ac%2Edistance%2Cc%2Ey%3Dthis%2EpositionScreen%2Ey%2Be%2Ac%2Edistance%2Cc%2EwantedRotation%3Dc%2Ex%2AMath%2EPI%2A%2E25%2Cc%2Erotation%2B%3D%2E25%2A%28c%2EwantedRotation%2Dc%2Erotation%29%7D%3BTHREE%2EScene%3Dfunction%28%29%7BTHREE%2EObject3D%2Ecall%28this%29%3Bthis%2Etype%3D%22Scene%22%3Bthis%2EoverrideMaterial%3Dthis%2Efog%3Dnull%3Bthis%2EautoUpdate%3D%210%7D%3BTHREE%2EScene%2Eprototype%3DObject%2Ecreate%28THREE%2EObject3D%2Eprototype%29%3B%0ATHREE%2EScene%2Eprototype%2Econstructor%3DTHREE%2EScene%3BTHREE%2EScene%2Eprototype%2Eclone%3Dfunction%28a%29%7Bvoid%200%3D%3D%3Da%26%26%28a%3Dnew%20THREE%2EScene%29%3BTHREE%2EObject3D%2Eprototype%2Eclone%2Ecall%28this%2Ca%29%3Bnull%21%3D%3Dthis%2Efog%26%26%28a%2Efog%3Dthis%2Efog%2Eclone%28%29%29%3Bnull%21%3D%3Dthis%2EoverrideMaterial%26%26%28a%2EoverrideMaterial%3Dthis%2EoverrideMaterial%2Eclone%28%29%29%3Ba%2EautoUpdate%3Dthis%2EautoUpdate%3Ba%2EmatrixAutoUpdate%3Dthis%2EmatrixAutoUpdate%3Breturn%20a%7D%3BTHREE%2EFog%3Dfunction%28a%2Cb%2Cc%29%7Bthis%2Ename%3D%22%22%3Bthis%2Ecolor%3Dnew%20THREE%2EColor%28a%29%3Bthis%2Enear%3Dvoid%200%21%3D%3Db%3Fb%3A1%3Bthis%2Efar%3Dvoid%200%21%3D%3Dc%3Fc%3A1E3%7D%3B%0ATHREE%2EFog%2Eprototype%2Eclone%3Dfunction%28%29%7Breturn%20new%20THREE%2EFog%28this%2Ecolor%2EgetHex%28%29%2Cthis%2Enear%2Cthis%2Efar%29%7D%3BTHREE%2EFogExp2%3Dfunction%28a%2Cb%29%7Bthis%2Ename%3D%22%22%3Bthis%2Ecolor%3Dnew%20THREE%2EColor%28a%29%3Bthis%2Edensity%3Dvoid%200%21%3D%3Db%3Fb%3A2%2E5E%2D4%7D%3BTHREE%2EFogExp2%2Eprototype%2Eclone%3Dfunction%28%29%7Breturn%20new%20THREE%2EFogExp2%28this%2Ecolor%2EgetHex%28%29%2Cthis%2Edensity%29%7D%3BTHREE%2EShaderChunk%3D%7B%7D%3BTHREE%2EShaderChunk%2Ealphatest%5Ffragment%3D%22%23ifdef%20ALPHATEST%5Cn%5Cn%5Ctif%20%28%20gl%5FFragColor%2Ea%20%3C%20ALPHATEST%20%29%20discard%3B%5Cn%5Cn%23endif%5Cn%22%3BTHREE%2EShaderChunk%2Elights%5Flambert%5Fvertex%3D%22vLightFront%20%3D%20vec3%28%200%2E0%20%29%3B%5Cn%5Cn%23ifdef%20DOUBLE%5FSIDED%5Cn%5Cn%5CtvLightBack%20%3D%20vec3%28%200%2E0%20%29%3B%5Cn%5Cn%23endif%5Cn%5CntransformedNormal%20%3D%20normalize%28%20transformedNormal%20%29%3B%5Cn%5Cn%23if%20MAX%5FDIR%5FLIGHTS%20%3E%200%5Cn%5Cnfor%28%20int%20i%20%3D%200%3B%20i%20%3C%20MAX%5FDIR%5FLIGHTS%3B%20i%20%2B%2B%20%29%20%7B%5Cn%5Cn%5Ctvec4%20lDirection%20%3D%20viewMatrix%20%2A%20vec4%28%20directionalLightDirection%5B%20i%20%5D%2C%200%2E0%20%29%3B%5Cn%5Ctvec3%20dirVector%20%3D%20normalize%28%20lDirection%2Exyz%20%29%3B%5Cn%5Cn%5Ctfloat%20dotProduct%20%3D%20dot%28%20transformedNormal%2C%20dirVector%20%29%3B%5Cn%5Ctvec3%20directionalLightWeighting%20%3D%20vec3%28%20max%28%20dotProduct%2C%200%2E0%20%29%20%29%3B%5Cn%5Cn%5Ct%23ifdef%20DOUBLE%5FSIDED%5Cn%5Cn%5Ct%5Ctvec3%20directionalLightWeightingBack%20%3D%20vec3%28%20max%28%20%2DdotProduct%2C%200%2E0%20%29%20%29%3B%5Cn%5Cn%5Ct%5Ct%23ifdef%20WRAP%5FAROUND%5Cn%5Cn%5Ct%5Ct%5Ctvec3%20directionalLightWeightingHalfBack%20%3D%20vec3%28%20max%28%20%2D0%2E5%20%2A%20dotProduct%20%2B%200%2E5%2C%200%2E0%20%29%20%29%3B%5Cn%5Cn%5Ct%5Ct%23endif%5Cn%5Cn%5Ct%23endif%5Cn%5Cn%5Ct%23ifdef%20WRAP%5FAROUND%5Cn%5Cn%5Ct%5Ctvec3%20directionalLightWeightingHalf%20%3D%20vec3%28%20max%28%200%2E5%20%2A%20dotProduct%20%2B%200%2E5%2C%200%2E0%20%29%20%29%3B%5Cn%5Ct%5CtdirectionalLightWeighting%20%3D%20mix%28%20directionalLightWeighting%2C%20directionalLightWeightingHalf%2C%20wrapRGB%20%29%3B%5Cn%5Cn%5Ct%5Ct%23ifdef%20DOUBLE%5FSIDED%5Cn%5Cn%5Ct%5Ct%5CtdirectionalLightWeightingBack%20%3D%20mix%28%20directionalLightWeightingBack%2C%20directionalLightWeightingHalfBack%2C%20wrapRGB%20%29%3B%5Cn%5Cn%5Ct%5Ct%23endif%5Cn%5Cn%5Ct%23endif%5Cn%5Cn%5CtvLightFront%20%2B%3D%20directionalLightColor%5B%20i%20%5D%20%2A%20directionalLightWeighting%3B%5Cn%5Cn%5Ct%23ifdef%20DOUBLE%5FSIDED%5Cn%5Cn%5Ct%5CtvLightBack%20%2B%3D%20directionalLightColor%5B%20i%20%5D%20%2A%20directionalLightWeightingBack%3B%5Cn%5Cn%5Ct%23endif%5Cn%5Cn%7D%5Cn%5Cn%23endif%5Cn%5Cn%23if%20MAX%5FPOINT%5FLIGHTS%20%3E%200%5Cn%5Cn%5Ctfor%28%20int%20i%20%3D%200%3B%20i%20%3C%20MAX%5FPOINT%5FLIGHTS%3B%20i%20%2B%2B%20%29%20%7B%5Cn%5Cn%5Ct%5Ctvec4%20lPosition%20%3D%20viewMatrix%20%2A%20vec4%28%20pointLightPosition%5B%20i%20%5D%2C%201%2E0%20%29%3B%5Cn%5Ct%5Ctvec3%20lVector%20%3D%20lPosition%2Exyz%20%2D%20mvPosition%2Exyz%3B%5Cn%5Cn%5Ct%5Ctfloat%20lDistance%20%3D%201%2E0%3B%5Cn%5Ct%5Ctif%20%28%20pointLightDistance%5B%20i%20%5D%20%3E%200%2E0%20%29%5Cn%5Ct%5Ct%5CtlDistance%20%3D%201%2E0%20%2D%20min%28%20%28%20length%28%20lVector%20%29%20%2F%20pointLightDistance%5B%20i%20%5D%20%29%2C%201%2E0%20%29%3B%5Cn%5Cn%5Ct%5CtlVector%20%3D%20normalize%28%20lVector%20%29%3B%5Cn%5Ct%5Ctfloat%20dotProduct%20%3D%20dot%28%20transformedNormal%2C%20lVector%20%29%3B%5Cn%5Cn%5Ct%5Ctvec3%20pointLightWeighting%20%3D%20vec3%28%20max%28%20dotProduct%2C%200%2E0%20%29%20%29%3B%5Cn%5Cn%5Ct%5Ct%23ifdef%20DOUBLE%5FSIDED%5Cn%5Cn%5Ct%5Ct%5Ctvec3%20pointLightWeightingBack%20%3D%20vec3%28%20max%28%20%2DdotProduct%2C%200%2E0%20%29%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%23ifdef%20WRAP%5FAROUND%5Cn%5Cn%5Ct%5Ct%5Ct%5Ctvec3%20pointLightWeightingHalfBack%20%3D%20vec3%28%20max%28%20%2D0%2E5%20%2A%20dotProduct%20%2B%200%2E5%2C%200%2E0%20%29%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%23endif%5Cn%5Cn%5Ct%5Ct%23endif%5Cn%5Cn%5Ct%5Ct%23ifdef%20WRAP%5FAROUND%5Cn%5Cn%5Ct%5Ct%5Ctvec3%20pointLightWeightingHalf%20%3D%20vec3%28%20max%28%200%2E5%20%2A%20dotProduct%20%2B%200%2E5%2C%200%2E0%20%29%20%29%3B%5Cn%5Ct%5Ct%5CtpointLightWeighting%20%3D%20mix%28%20pointLightWeighting%2C%20pointLightWeightingHalf%2C%20wrapRGB%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%23ifdef%20DOUBLE%5FSIDED%5Cn%5Cn%5Ct%5Ct%5Ct%5CtpointLightWeightingBack%20%3D%20mix%28%20pointLightWeightingBack%2C%20pointLightWeightingHalfBack%2C%20wrapRGB%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%23endif%5Cn%5Cn%5Ct%5Ct%23endif%5Cn%5Cn%5Ct%5CtvLightFront%20%2B%3D%20pointLightColor%5B%20i%20%5D%20%2A%20pointLightWeighting%20%2A%20lDistance%3B%5Cn%5Cn%5Ct%5Ct%23ifdef%20DOUBLE%5FSIDED%5Cn%5Cn%5Ct%5Ct%5CtvLightBack%20%2B%3D%20pointLightColor%5B%20i%20%5D%20%2A%20pointLightWeightingBack%20%2A%20lDistance%3B%5Cn%5Cn%5Ct%5Ct%23endif%5Cn%5Cn%5Ct%7D%5Cn%5Cn%23endif%5Cn%5Cn%23if%20MAX%5FSPOT%5FLIGHTS%20%3E%200%5Cn%5Cn%5Ctfor%28%20int%20i%20%3D%200%3B%20i%20%3C%20MAX%5FSPOT%5FLIGHTS%3B%20i%20%2B%2B%20%29%20%7B%5Cn%5Cn%5Ct%5Ctvec4%20lPosition%20%3D%20viewMatrix%20%2A%20vec4%28%20spotLightPosition%5B%20i%20%5D%2C%201%2E0%20%29%3B%5Cn%5Ct%5Ctvec3%20lVector%20%3D%20lPosition%2Exyz%20%2D%20mvPosition%2Exyz%3B%5Cn%5Cn%5Ct%5Ctfloat%20spotEffect%20%3D%20dot%28%20spotLightDirection%5B%20i%20%5D%2C%20normalize%28%20spotLightPosition%5B%20i%20%5D%20%2D%20worldPosition%2Exyz%20%29%20%29%3B%5Cn%5Cn%5Ct%5Ctif%20%28%20spotEffect%20%3E%20spotLightAngleCos%5B%20i%20%5D%20%29%20%7B%5Cn%5Cn%5Ct%5Ct%5CtspotEffect%20%3D%20max%28%20pow%28%20max%28%20spotEffect%2C%200%2E0%20%29%2C%20spotLightExponent%5B%20i%20%5D%20%29%2C%200%2E0%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ctfloat%20lDistance%20%3D%201%2E0%3B%5Cn%5Ct%5Ct%5Ctif%20%28%20spotLightDistance%5B%20i%20%5D%20%3E%200%2E0%20%29%5Cn%5Ct%5Ct%5Ct%5CtlDistance%20%3D%201%2E0%20%2D%20min%28%20%28%20length%28%20lVector%20%29%20%2F%20spotLightDistance%5B%20i%20%5D%20%29%2C%201%2E0%20%29%3B%5Cn%5Cn%5Ct%5Ct%5CtlVector%20%3D%20normalize%28%20lVector%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ctfloat%20dotProduct%20%3D%20dot%28%20transformedNormal%2C%20lVector%20%29%3B%5Cn%5Ct%5Ct%5Ctvec3%20spotLightWeighting%20%3D%20vec3%28%20max%28%20dotProduct%2C%200%2E0%20%29%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%23ifdef%20DOUBLE%5FSIDED%5Cn%5Cn%5Ct%5Ct%5Ct%5Ctvec3%20spotLightWeightingBack%20%3D%20vec3%28%20max%28%20%2DdotProduct%2C%200%2E0%20%29%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5Ct%23ifdef%20WRAP%5FAROUND%5Cn%5Cn%5Ct%5Ct%5Ct%5Ct%5Ctvec3%20spotLightWeightingHalfBack%20%3D%20vec3%28%20max%28%20%2D0%2E5%20%2A%20dotProduct%20%2B%200%2E5%2C%200%2E0%20%29%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5Ct%23endif%5Cn%5Cn%5Ct%5Ct%5Ct%23endif%5Cn%5Cn%5Ct%5Ct%5Ct%23ifdef%20WRAP%5FAROUND%5Cn%5Cn%5Ct%5Ct%5Ct%5Ctvec3%20spotLightWeightingHalf%20%3D%20vec3%28%20max%28%200%2E5%20%2A%20dotProduct%20%2B%200%2E5%2C%200%2E0%20%29%20%29%3B%5Cn%5Ct%5Ct%5Ct%5CtspotLightWeighting%20%3D%20mix%28%20spotLightWeighting%2C%20spotLightWeightingHalf%2C%20wrapRGB%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5Ct%23ifdef%20DOUBLE%5FSIDED%5Cn%5Cn%5Ct%5Ct%5Ct%5Ct%5CtspotLightWeightingBack%20%3D%20mix%28%20spotLightWeightingBack%2C%20spotLightWeightingHalfBack%2C%20wrapRGB%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5Ct%23endif%5Cn%5Cn%5Ct%5Ct%5Ct%23endif%5Cn%5Cn%5Ct%5Ct%5CtvLightFront%20%2B%3D%20spotLightColor%5B%20i%20%5D%20%2A%20spotLightWeighting%20%2A%20lDistance%20%2A%20spotEffect%3B%5Cn%5Cn%5Ct%5Ct%5Ct%23ifdef%20DOUBLE%5FSIDED%5Cn%5Cn%5Ct%5Ct%5Ct%5CtvLightBack%20%2B%3D%20spotLightColor%5B%20i%20%5D%20%2A%20spotLightWeightingBack%20%2A%20lDistance%20%2A%20spotEffect%3B%5Cn%5Cn%5Ct%5Ct%5Ct%23endif%5Cn%5Cn%5Ct%5Ct%7D%5Cn%5Cn%5Ct%7D%5Cn%5Cn%23endif%5Cn%5Cn%23if%20MAX%5FHEMI%5FLIGHTS%20%3E%200%5Cn%5Cn%5Ctfor%28%20int%20i%20%3D%200%3B%20i%20%3C%20MAX%5FHEMI%5FLIGHTS%3B%20i%20%2B%2B%20%29%20%7B%5Cn%5Cn%5Ct%5Ctvec4%20lDirection%20%3D%20viewMatrix%20%2A%20vec4%28%20hemisphereLightDirection%5B%20i%20%5D%2C%200%2E0%20%29%3B%5Cn%5Ct%5Ctvec3%20lVector%20%3D%20normalize%28%20lDirection%2Exyz%20%29%3B%5Cn%5Cn%5Ct%5Ctfloat%20dotProduct%20%3D%20dot%28%20transformedNormal%2C%20lVector%20%29%3B%5Cn%5Cn%5Ct%5Ctfloat%20hemiDiffuseWeight%20%3D%200%2E5%20%2A%20dotProduct%20%2B%200%2E5%3B%5Cn%5Ct%5Ctfloat%20hemiDiffuseWeightBack%20%3D%20%2D0%2E5%20%2A%20dotProduct%20%2B%200%2E5%3B%5Cn%5Cn%5Ct%5CtvLightFront%20%2B%3D%20mix%28%20hemisphereLightGroundColor%5B%20i%20%5D%2C%20hemisphereLightSkyColor%5B%20i%20%5D%2C%20hemiDiffuseWeight%20%29%3B%5Cn%5Cn%5Ct%5Ct%23ifdef%20DOUBLE%5FSIDED%5Cn%5Cn%5Ct%5Ct%5CtvLightBack%20%2B%3D%20mix%28%20hemisphereLightGroundColor%5B%20i%20%5D%2C%20hemisphereLightSkyColor%5B%20i%20%5D%2C%20hemiDiffuseWeightBack%20%29%3B%5Cn%5Cn%5Ct%5Ct%23endif%5Cn%5Cn%5Ct%7D%5Cn%5Cn%23endif%5Cn%5CnvLightFront%20%3D%20vLightFront%20%2A%20diffuse%20%2B%20ambient%20%2A%20ambientLightColor%20%2B%20emissive%3B%5Cn%5Cn%23ifdef%20DOUBLE%5FSIDED%5Cn%5Cn%5CtvLightBack%20%3D%20vLightBack%20%2A%20diffuse%20%2B%20ambient%20%2A%20ambientLightColor%20%2B%20emissive%3B%5Cn%5Cn%23endif%22%3B%0ATHREE%2EShaderChunk%2Emap%5Fparticle%5Fpars%5Ffragment%3D%22%23ifdef%20USE%5FMAP%5Cn%5Cn%5Ctuniform%20sampler2D%20map%3B%5Cn%5Cn%23endif%22%3BTHREE%2EShaderChunk%2Edefault%5Fvertex%3D%22%23ifdef%20USE%5FSKINNING%5Cn%5Cn%5Ctvec4%20mvPosition%20%3D%20modelViewMatrix%20%2A%20skinned%3B%5Cn%5Cn%23elif%20defined%28%20USE%5FMORPHTARGETS%20%29%5Cn%5Cn%5Ctvec4%20mvPosition%20%3D%20modelViewMatrix%20%2A%20vec4%28%20morphed%2C%201%2E0%20%29%3B%5Cn%5Cn%23else%5Cn%5Cn%5Ctvec4%20mvPosition%20%3D%20modelViewMatrix%20%2A%20vec4%28%20position%2C%201%2E0%20%29%3B%5Cn%5Cn%23endif%5Cn%5Cngl%5FPosition%20%3D%20projectionMatrix%20%2A%20mvPosition%3B%5Cn%22%3BTHREE%2EShaderChunk%2Emap%5Fpars%5Ffragment%3D%22%23if%20defined%28%20USE%5FMAP%20%29%20%7C%7C%20defined%28%20USE%5FBUMPMAP%20%29%20%7C%7C%20defined%28%20USE%5FNORMALMAP%20%29%20%7C%7C%20defined%28%20USE%5FSPECULARMAP%20%29%20%7C%7C%20defined%28%20USE%5FALPHAMAP%20%29%5Cn%5Cn%5Ctvarying%20vec2%20vUv%3B%5Cn%5Cn%23endif%5Cn%5Cn%23ifdef%20USE%5FMAP%5Cn%5Cn%5Ctuniform%20sampler2D%20map%3B%5Cn%5Cn%23endif%22%3B%0ATHREE%2EShaderChunk%2Eskinnormal%5Fvertex%3D%22%23ifdef%20USE%5FSKINNING%5Cn%5Cn%5Ctmat4%20skinMatrix%20%3D%20mat4%28%200%2E0%20%29%3B%5Cn%5CtskinMatrix%20%2B%3D%20skinWeight%2Ex%20%2A%20boneMatX%3B%5Cn%5CtskinMatrix%20%2B%3D%20skinWeight%2Ey%20%2A%20boneMatY%3B%5Cn%5CtskinMatrix%20%2B%3D%20skinWeight%2Ez%20%2A%20boneMatZ%3B%5Cn%5CtskinMatrix%20%2B%3D%20skinWeight%2Ew%20%2A%20boneMatW%3B%5Cn%5CtskinMatrix%20%20%3D%20bindMatrixInverse%20%2A%20skinMatrix%20%2A%20bindMatrix%3B%5Cn%5Cn%5Ct%23ifdef%20USE%5FMORPHNORMALS%5Cn%5Cn%5Ctvec4%20skinnedNormal%20%3D%20skinMatrix%20%2A%20vec4%28%20morphedNormal%2C%200%2E0%20%29%3B%5Cn%5Cn%5Ct%23else%5Cn%5Cn%5Ctvec4%20skinnedNormal%20%3D%20skinMatrix%20%2A%20vec4%28%20normal%2C%200%2E0%20%29%3B%5Cn%5Cn%5Ct%23endif%5Cn%5Cn%23endif%5Cn%22%3B%0ATHREE%2EShaderChunk%2Elogdepthbuf%5Fpars%5Fvertex%3D%22%23ifdef%20USE%5FLOGDEPTHBUF%5Cn%5Cn%5Ct%23ifdef%20USE%5FLOGDEPTHBUF%5FEXT%5Cn%5Cn%5Ct%5Ctvarying%20float%20vFragDepth%3B%5Cn%5Cn%5Ct%23endif%5Cn%5Cn%5Ctuniform%20float%20logDepthBufFC%3B%5Cn%5Cn%23endif%22%3BTHREE%2EShaderChunk%2Elightmap%5Fpars%5Fvertex%3D%22%23ifdef%20USE%5FLIGHTMAP%5Cn%5Cn%5Ctvarying%20vec2%20vUv2%3B%5Cn%5Cn%23endif%22%3BTHREE%2EShaderChunk%2Elights%5Fphong%5Ffragment%3D%22vec3%20normal%20%3D%20normalize%28%20vNormal%20%29%3B%5Cnvec3%20viewPosition%20%3D%20normalize%28%20vViewPosition%20%29%3B%5Cn%5Cn%23ifdef%20DOUBLE%5FSIDED%5Cn%5Cn%5Ctnormal%20%3D%20normal%20%2A%20%28%20%2D1%2E0%20%2B%202%2E0%20%2A%20float%28%20gl%5FFrontFacing%20%29%20%29%3B%5Cn%5Cn%23endif%5Cn%5Cn%23ifdef%20USE%5FNORMALMAP%5Cn%5Cn%5Ctnormal%20%3D%20perturbNormal2Arb%28%20%2DvViewPosition%2C%20normal%20%29%3B%5Cn%5Cn%23elif%20defined%28%20USE%5FBUMPMAP%20%29%5Cn%5Cn%5Ctnormal%20%3D%20perturbNormalArb%28%20%2DvViewPosition%2C%20normal%2C%20dHdxy%5Ffwd%28%29%20%29%3B%5Cn%5Cn%23endif%5Cn%5Cn%23if%20MAX%5FPOINT%5FLIGHTS%20%3E%200%5Cn%5Cn%5Ctvec3%20pointDiffuse%20%3D%20vec3%28%200%2E0%20%29%3B%5Cn%5Ctvec3%20pointSpecular%20%3D%20vec3%28%200%2E0%20%29%3B%5Cn%5Cn%5Ctfor%20%28%20int%20i%20%3D%200%3B%20i%20%3C%20MAX%5FPOINT%5FLIGHTS%3B%20i%20%2B%2B%20%29%20%7B%5Cn%5Cn%5Ct%5Ctvec4%20lPosition%20%3D%20viewMatrix%20%2A%20vec4%28%20pointLightPosition%5B%20i%20%5D%2C%201%2E0%20%29%3B%5Cn%5Ct%5Ctvec3%20lVector%20%3D%20lPosition%2Exyz%20%2B%20vViewPosition%2Exyz%3B%5Cn%5Cn%5Ct%5Ctfloat%20lDistance%20%3D%201%2E0%3B%5Cn%5Ct%5Ctif%20%28%20pointLightDistance%5B%20i%20%5D%20%3E%200%2E0%20%29%5Cn%5Ct%5Ct%5CtlDistance%20%3D%201%2E0%20%2D%20min%28%20%28%20length%28%20lVector%20%29%20%2F%20pointLightDistance%5B%20i%20%5D%20%29%2C%201%2E0%20%29%3B%5Cn%5Cn%5Ct%5CtlVector%20%3D%20normalize%28%20lVector%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5Ct%2F%2F%20diffuse%5Cn%5Cn%5Ct%5Ctfloat%20dotProduct%20%3D%20dot%28%20normal%2C%20lVector%20%29%3B%5Cn%5Cn%5Ct%5Ct%23ifdef%20WRAP%5FAROUND%5Cn%5Cn%5Ct%5Ct%5Ctfloat%20pointDiffuseWeightFull%20%3D%20max%28%20dotProduct%2C%200%2E0%20%29%3B%5Cn%5Ct%5Ct%5Ctfloat%20pointDiffuseWeightHalf%20%3D%20max%28%200%2E5%20%2A%20dotProduct%20%2B%200%2E5%2C%200%2E0%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ctvec3%20pointDiffuseWeight%20%3D%20mix%28%20vec3%28%20pointDiffuseWeightFull%20%29%2C%20vec3%28%20pointDiffuseWeightHalf%20%29%2C%20wrapRGB%20%29%3B%5Cn%5Cn%5Ct%5Ct%23else%5Cn%5Cn%5Ct%5Ct%5Ctfloat%20pointDiffuseWeight%20%3D%20max%28%20dotProduct%2C%200%2E0%20%29%3B%5Cn%5Cn%5Ct%5Ct%23endif%5Cn%5Cn%5Ct%5CtpointDiffuse%20%2B%3D%20diffuse%20%2A%20pointLightColor%5B%20i%20%5D%20%2A%20pointDiffuseWeight%20%2A%20lDistance%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5Ct%2F%2F%20specular%5Cn%5Cn%5Ct%5Ctvec3%20pointHalfVector%20%3D%20normalize%28%20lVector%20%2B%20viewPosition%20%29%3B%5Cn%5Ct%5Ctfloat%20pointDotNormalHalf%20%3D%20max%28%20dot%28%20normal%2C%20pointHalfVector%20%29%2C%200%2E0%20%29%3B%5Cn%5Ct%5Ctfloat%20pointSpecularWeight%20%3D%20specularStrength%20%2A%20max%28%20pow%28%20pointDotNormalHalf%2C%20shininess%20%29%2C%200%2E0%20%29%3B%5Cn%5Cn%5Ct%5Ctfloat%20specularNormalization%20%3D%20%28%20shininess%20%2B%202%2E0%20%29%20%2F%208%2E0%3B%5Cn%5Cn%5Ct%5Ctvec3%20schlick%20%3D%20specular%20%2B%20vec3%28%201%2E0%20%2D%20specular%20%29%20%2A%20pow%28%20max%28%201%2E0%20%2D%20dot%28%20lVector%2C%20pointHalfVector%20%29%2C%200%2E0%20%29%2C%205%2E0%20%29%3B%5Cn%5Ct%5CtpointSpecular%20%2B%3D%20schlick%20%2A%20pointLightColor%5B%20i%20%5D%20%2A%20pointSpecularWeight%20%2A%20pointDiffuseWeight%20%2A%20lDistance%20%2A%20specularNormalization%3B%5Cn%5Cn%5Ct%7D%5Cn%5Cn%23endif%5Cn%5Cn%23if%20MAX%5FSPOT%5FLIGHTS%20%3E%200%5Cn%5Cn%5Ctvec3%20spotDiffuse%20%3D%20vec3%28%200%2E0%20%29%3B%5Cn%5Ctvec3%20spotSpecular%20%3D%20vec3%28%200%2E0%20%29%3B%5Cn%5Cn%5Ctfor%20%28%20int%20i%20%3D%200%3B%20i%20%3C%20MAX%5FSPOT%5FLIGHTS%3B%20i%20%2B%2B%20%29%20%7B%5Cn%5Cn%5Ct%5Ctvec4%20lPosition%20%3D%20viewMatrix%20%2A%20vec4%28%20spotLightPosition%5B%20i%20%5D%2C%201%2E0%20%29%3B%5Cn%5Ct%5Ctvec3%20lVector%20%3D%20lPosition%2Exyz%20%2B%20vViewPosition%2Exyz%3B%5Cn%5Cn%5Ct%5Ctfloat%20lDistance%20%3D%201%2E0%3B%5Cn%5Ct%5Ctif%20%28%20spotLightDistance%5B%20i%20%5D%20%3E%200%2E0%20%29%5Cn%5Ct%5Ct%5CtlDistance%20%3D%201%2E0%20%2D%20min%28%20%28%20length%28%20lVector%20%29%20%2F%20spotLightDistance%5B%20i%20%5D%20%29%2C%201%2E0%20%29%3B%5Cn%5Cn%5Ct%5CtlVector%20%3D%20normalize%28%20lVector%20%29%3B%5Cn%5Cn%5Ct%5Ctfloat%20spotEffect%20%3D%20dot%28%20spotLightDirection%5B%20i%20%5D%2C%20normalize%28%20spotLightPosition%5B%20i%20%5D%20%2D%20vWorldPosition%20%29%20%29%3B%5Cn%5Cn%5Ct%5Ctif%20%28%20spotEffect%20%3E%20spotLightAngleCos%5B%20i%20%5D%20%29%20%7B%5Cn%5Cn%5Ct%5Ct%5CtspotEffect%20%3D%20max%28%20pow%28%20max%28%20spotEffect%2C%200%2E0%20%29%2C%20spotLightExponent%5B%20i%20%5D%20%29%2C%200%2E0%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%2F%2F%20diffuse%5Cn%5Cn%5Ct%5Ct%5Ctfloat%20dotProduct%20%3D%20dot%28%20normal%2C%20lVector%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%23ifdef%20WRAP%5FAROUND%5Cn%5Cn%5Ct%5Ct%5Ct%5Ctfloat%20spotDiffuseWeightFull%20%3D%20max%28%20dotProduct%2C%200%2E0%20%29%3B%5Cn%5Ct%5Ct%5Ct%5Ctfloat%20spotDiffuseWeightHalf%20%3D%20max%28%200%2E5%20%2A%20dotProduct%20%2B%200%2E5%2C%200%2E0%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5Ctvec3%20spotDiffuseWeight%20%3D%20mix%28%20vec3%28%20spotDiffuseWeightFull%20%29%2C%20vec3%28%20spotDiffuseWeightHalf%20%29%2C%20wrapRGB%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%23else%5Cn%5Cn%5Ct%5Ct%5Ct%5Ctfloat%20spotDiffuseWeight%20%3D%20max%28%20dotProduct%2C%200%2E0%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%23endif%5Cn%5Cn%5Ct%5Ct%5CtspotDiffuse%20%2B%3D%20diffuse%20%2A%20spotLightColor%5B%20i%20%5D%20%2A%20spotDiffuseWeight%20%2A%20lDistance%20%2A%20spotEffect%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%2F%2F%20specular%5Cn%5Cn%5Ct%5Ct%5Ctvec3%20spotHalfVector%20%3D%20normalize%28%20lVector%20%2B%20viewPosition%20%29%3B%5Cn%5Ct%5Ct%5Ctfloat%20spotDotNormalHalf%20%3D%20max%28%20dot%28%20normal%2C%20spotHalfVector%20%29%2C%200%2E0%20%29%3B%5Cn%5Ct%5Ct%5Ctfloat%20spotSpecularWeight%20%3D%20specularStrength%20%2A%20max%28%20pow%28%20spotDotNormalHalf%2C%20shininess%20%29%2C%200%2E0%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ctfloat%20specularNormalization%20%3D%20%28%20shininess%20%2B%202%2E0%20%29%20%2F%208%2E0%3B%5Cn%5Cn%5Ct%5Ct%5Ctvec3%20schlick%20%3D%20specular%20%2B%20vec3%28%201%2E0%20%2D%20specular%20%29%20%2A%20pow%28%20max%28%201%2E0%20%2D%20dot%28%20lVector%2C%20spotHalfVector%20%29%2C%200%2E0%20%29%2C%205%2E0%20%29%3B%5Cn%5Ct%5Ct%5CtspotSpecular%20%2B%3D%20schlick%20%2A%20spotLightColor%5B%20i%20%5D%20%2A%20spotSpecularWeight%20%2A%20spotDiffuseWeight%20%2A%20lDistance%20%2A%20specularNormalization%20%2A%20spotEffect%3B%5Cn%5Cn%5Ct%5Ct%7D%5Cn%5Cn%5Ct%7D%5Cn%5Cn%23endif%5Cn%5Cn%23if%20MAX%5FDIR%5FLIGHTS%20%3E%200%5Cn%5Cn%5Ctvec3%20dirDiffuse%20%3D%20vec3%28%200%2E0%20%29%3B%5Cn%5Ctvec3%20dirSpecular%20%3D%20vec3%28%200%2E0%20%29%3B%5Cn%5Cn%5Ctfor%28%20int%20i%20%3D%200%3B%20i%20%3C%20MAX%5FDIR%5FLIGHTS%3B%20i%20%2B%2B%20%29%20%7B%5Cn%5Cn%5Ct%5Ctvec4%20lDirection%20%3D%20viewMatrix%20%2A%20vec4%28%20directionalLightDirection%5B%20i%20%5D%2C%200%2E0%20%29%3B%5Cn%5Ct%5Ctvec3%20dirVector%20%3D%20normalize%28%20lDirection%2Exyz%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5Ct%2F%2F%20diffuse%5Cn%5Cn%5Ct%5Ctfloat%20dotProduct%20%3D%20dot%28%20normal%2C%20dirVector%20%29%3B%5Cn%5Cn%5Ct%5Ct%23ifdef%20WRAP%5FAROUND%5Cn%5Cn%5Ct%5Ct%5Ctfloat%20dirDiffuseWeightFull%20%3D%20max%28%20dotProduct%2C%200%2E0%20%29%3B%5Cn%5Ct%5Ct%5Ctfloat%20dirDiffuseWeightHalf%20%3D%20max%28%200%2E5%20%2A%20dotProduct%20%2B%200%2E5%2C%200%2E0%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ctvec3%20dirDiffuseWeight%20%3D%20mix%28%20vec3%28%20dirDiffuseWeightFull%20%29%2C%20vec3%28%20dirDiffuseWeightHalf%20%29%2C%20wrapRGB%20%29%3B%5Cn%5Cn%5Ct%5Ct%23else%5Cn%5Cn%5Ct%5Ct%5Ctfloat%20dirDiffuseWeight%20%3D%20max%28%20dotProduct%2C%200%2E0%20%29%3B%5Cn%5Cn%5Ct%5Ct%23endif%5Cn%5Cn%5Ct%5CtdirDiffuse%20%2B%3D%20diffuse%20%2A%20directionalLightColor%5B%20i%20%5D%20%2A%20dirDiffuseWeight%3B%5Cn%5Cn%5Ct%5Ct%2F%2F%20specular%5Cn%5Cn%5Ct%5Ctvec3%20dirHalfVector%20%3D%20normalize%28%20dirVector%20%2B%20viewPosition%20%29%3B%5Cn%5Ct%5Ctfloat%20dirDotNormalHalf%20%3D%20max%28%20dot%28%20normal%2C%20dirHalfVector%20%29%2C%200%2E0%20%29%3B%5Cn%5Ct%5Ctfloat%20dirSpecularWeight%20%3D%20specularStrength%20%2A%20max%28%20pow%28%20dirDotNormalHalf%2C%20shininess%20%29%2C%200%2E0%20%29%3B%5Cn%5Cn%5Ct%5Ct%2F%2A%5Cn%5Ct%5Ct%2F%2F%20fresnel%20term%20from%20skin%20shader%5Cn%5Ct%5Ctconst%20float%20F0%20%3D%200%2E128%3B%5Cn%5Cn%5Ct%5Ctfloat%20base%20%3D%201%2E0%20%2D%20dot%28%20viewPosition%2C%20dirHalfVector%20%29%3B%5Cn%5Ct%5Ctfloat%20exponential%20%3D%20pow%28%20base%2C%205%2E0%20%29%3B%5Cn%5Cn%5Ct%5Ctfloat%20fresnel%20%3D%20exponential%20%2B%20F0%20%2A%20%28%201%2E0%20%2D%20exponential%20%29%3B%5Cn%5Ct%5Ct%2A%2F%5Cn%5Cn%5Ct%5Ct%2F%2A%5Cn%5Ct%5Ct%2F%2F%20fresnel%20term%20from%20fresnel%20shader%5Cn%5Ct%5Ctconst%20float%20mFresnelBias%20%3D%200%2E08%3B%5Cn%5Ct%5Ctconst%20float%20mFresnelScale%20%3D%200%2E3%3B%5Cn%5Ct%5Ctconst%20float%20mFresnelPower%20%3D%205%2E0%3B%5Cn%5Cn%5Ct%5Ctfloat%20fresnel%20%3D%20mFresnelBias%20%2B%20mFresnelScale%20%2A%20pow%28%201%2E0%20%2B%20dot%28%20normalize%28%20%2DviewPosition%20%29%2C%20normal%20%29%2C%20mFresnelPower%20%29%3B%5Cn%5Ct%5Ct%2A%2F%5Cn%5Cn%5Ct%5Ctfloat%20specularNormalization%20%3D%20%28%20shininess%20%2B%202%2E0%20%29%20%2F%208%2E0%3B%5Cn%5Cn%5Ct%5Ct%2F%2F%20%5Ct%5CtdirSpecular%20%2B%3D%20specular%20%2A%20directionalLightColor%5B%20i%20%5D%20%2A%20dirSpecularWeight%20%2A%20dirDiffuseWeight%20%2A%20specularNormalization%20%2A%20fresnel%3B%5Cn%5Cn%5Ct%5Ctvec3%20schlick%20%3D%20specular%20%2B%20vec3%28%201%2E0%20%2D%20specular%20%29%20%2A%20pow%28%20max%28%201%2E0%20%2D%20dot%28%20dirVector%2C%20dirHalfVector%20%29%2C%200%2E0%20%29%2C%205%2E0%20%29%3B%5Cn%5Ct%5CtdirSpecular%20%2B%3D%20schlick%20%2A%20directionalLightColor%5B%20i%20%5D%20%2A%20dirSpecularWeight%20%2A%20dirDiffuseWeight%20%2A%20specularNormalization%3B%5Cn%5Cn%5Cn%5Ct%7D%5Cn%5Cn%23endif%5Cn%5Cn%23if%20MAX%5FHEMI%5FLIGHTS%20%3E%200%5Cn%5Cn%5Ctvec3%20hemiDiffuse%20%3D%20vec3%28%200%2E0%20%29%3B%5Cn%5Ctvec3%20hemiSpecular%20%3D%20vec3%28%200%2E0%20%29%3B%5Cn%5Cn%5Ctfor%28%20int%20i%20%3D%200%3B%20i%20%3C%20MAX%5FHEMI%5FLIGHTS%3B%20i%20%2B%2B%20%29%20%7B%5Cn%5Cn%5Ct%5Ctvec4%20lDirection%20%3D%20viewMatrix%20%2A%20vec4%28%20hemisphereLightDirection%5B%20i%20%5D%2C%200%2E0%20%29%3B%5Cn%5Ct%5Ctvec3%20lVector%20%3D%20normalize%28%20lDirection%2Exyz%20%29%3B%5Cn%5Cn%5Ct%5Ct%2F%2F%20diffuse%5Cn%5Cn%5Ct%5Ctfloat%20dotProduct%20%3D%20dot%28%20normal%2C%20lVector%20%29%3B%5Cn%5Ct%5Ctfloat%20hemiDiffuseWeight%20%3D%200%2E5%20%2A%20dotProduct%20%2B%200%2E5%3B%5Cn%5Cn%5Ct%5Ctvec3%20hemiColor%20%3D%20mix%28%20hemisphereLightGroundColor%5B%20i%20%5D%2C%20hemisphereLightSkyColor%5B%20i%20%5D%2C%20hemiDiffuseWeight%20%29%3B%5Cn%5Cn%5Ct%5CthemiDiffuse%20%2B%3D%20diffuse%20%2A%20hemiColor%3B%5Cn%5Cn%5Ct%5Ct%2F%2F%20specular%20%28sky%20light%29%5Cn%5Cn%5Ct%5Ctvec3%20hemiHalfVectorSky%20%3D%20normalize%28%20lVector%20%2B%20viewPosition%20%29%3B%5Cn%5Ct%5Ctfloat%20hemiDotNormalHalfSky%20%3D%200%2E5%20%2A%20dot%28%20normal%2C%20hemiHalfVectorSky%20%29%20%2B%200%2E5%3B%5Cn%5Ct%5Ctfloat%20hemiSpecularWeightSky%20%3D%20specularStrength%20%2A%20max%28%20pow%28%20max%28%20hemiDotNormalHalfSky%2C%200%2E0%20%29%2C%20shininess%20%29%2C%200%2E0%20%29%3B%5Cn%5Cn%5Ct%5Ct%2F%2F%20specular%20%28ground%20light%29%5Cn%5Cn%5Ct%5Ctvec3%20lVectorGround%20%3D%20%2DlVector%3B%5Cn%5Cn%5Ct%5Ctvec3%20hemiHalfVectorGround%20%3D%20normalize%28%20lVectorGround%20%2B%20viewPosition%20%29%3B%5Cn%5Ct%5Ctfloat%20hemiDotNormalHalfGround%20%3D%200%2E5%20%2A%20dot%28%20normal%2C%20hemiHalfVectorGround%20%29%20%2B%200%2E5%3B%5Cn%5Ct%5Ctfloat%20hemiSpecularWeightGround%20%3D%20specularStrength%20%2A%20max%28%20pow%28%20max%28%20hemiDotNormalHalfGround%2C%200%2E0%20%29%2C%20shininess%20%29%2C%200%2E0%20%29%3B%5Cn%5Cn%5Ct%5Ctfloat%20dotProductGround%20%3D%20dot%28%20normal%2C%20lVectorGround%20%29%3B%5Cn%5Cn%5Ct%5Ctfloat%20specularNormalization%20%3D%20%28%20shininess%20%2B%202%2E0%20%29%20%2F%208%2E0%3B%5Cn%5Cn%5Ct%5Ctvec3%20schlickSky%20%3D%20specular%20%2B%20vec3%28%201%2E0%20%2D%20specular%20%29%20%2A%20pow%28%20max%28%201%2E0%20%2D%20dot%28%20lVector%2C%20hemiHalfVectorSky%20%29%2C%200%2E0%20%29%2C%205%2E0%20%29%3B%5Cn%5Ct%5Ctvec3%20schlickGround%20%3D%20specular%20%2B%20vec3%28%201%2E0%20%2D%20specular%20%29%20%2A%20pow%28%20max%28%201%2E0%20%2D%20dot%28%20lVectorGround%2C%20hemiHalfVectorGround%20%29%2C%200%2E0%20%29%2C%205%2E0%20%29%3B%5Cn%5Ct%5CthemiSpecular%20%2B%3D%20hemiColor%20%2A%20specularNormalization%20%2A%20%28%20schlickSky%20%2A%20hemiSpecularWeightSky%20%2A%20max%28%20dotProduct%2C%200%2E0%20%29%20%2B%20schlickGround%20%2A%20hemiSpecularWeightGround%20%2A%20max%28%20dotProductGround%2C%200%2E0%20%29%20%29%3B%5Cn%5Cn%5Ct%7D%5Cn%5Cn%23endif%5Cn%5Cnvec3%20totalDiffuse%20%3D%20vec3%28%200%2E0%20%29%3B%5Cnvec3%20totalSpecular%20%3D%20vec3%28%200%2E0%20%29%3B%5Cn%5Cn%23if%20MAX%5FDIR%5FLIGHTS%20%3E%200%5Cn%5Cn%5CttotalDiffuse%20%2B%3D%20dirDiffuse%3B%5Cn%5CttotalSpecular%20%2B%3D%20dirSpecular%3B%5Cn%5Cn%23endif%5Cn%5Cn%23if%20MAX%5FHEMI%5FLIGHTS%20%3E%200%5Cn%5Cn%5CttotalDiffuse%20%2B%3D%20hemiDiffuse%3B%5Cn%5CttotalSpecular%20%2B%3D%20hemiSpecular%3B%5Cn%5Cn%23endif%5Cn%5Cn%23if%20MAX%5FPOINT%5FLIGHTS%20%3E%200%5Cn%5Cn%5CttotalDiffuse%20%2B%3D%20pointDiffuse%3B%5Cn%5CttotalSpecular%20%2B%3D%20pointSpecular%3B%5Cn%5Cn%23endif%5Cn%5Cn%23if%20MAX%5FSPOT%5FLIGHTS%20%3E%200%5Cn%5Cn%5CttotalDiffuse%20%2B%3D%20spotDiffuse%3B%5Cn%5CttotalSpecular%20%2B%3D%20spotSpecular%3B%5Cn%5Cn%23endif%5Cn%5Cn%23ifdef%20METAL%5Cn%5Cn%5Ctgl%5FFragColor%2Exyz%20%3D%20gl%5FFragColor%2Exyz%20%2A%20%28%20emissive%20%2B%20totalDiffuse%20%2B%20ambientLightColor%20%2A%20ambient%20%2B%20totalSpecular%20%29%3B%5Cn%5Cn%23else%5Cn%5Cn%5Ctgl%5FFragColor%2Exyz%20%3D%20gl%5FFragColor%2Exyz%20%2A%20%28%20emissive%20%2B%20totalDiffuse%20%2B%20ambientLightColor%20%2A%20ambient%20%29%20%2B%20totalSpecular%3B%5Cn%5Cn%23endif%22%3B%0ATHREE%2EShaderChunk%2Efog%5Fpars%5Ffragment%3D%22%23ifdef%20USE%5FFOG%5Cn%5Cn%5Ctuniform%20vec3%20fogColor%3B%5Cn%5Cn%5Ct%23ifdef%20FOG%5FEXP2%5Cn%5Cn%5Ct%5Ctuniform%20float%20fogDensity%3B%5Cn%5Cn%5Ct%23else%5Cn%5Cn%5Ct%5Ctuniform%20float%20fogNear%3B%5Cn%5Ct%5Ctuniform%20float%20fogFar%3B%5Cn%5Ct%23endif%5Cn%5Cn%23endif%22%3BTHREE%2EShaderChunk%2Emorphnormal%5Fvertex%3D%22%23ifdef%20USE%5FMORPHNORMALS%5Cn%5Cn%5Ctvec3%20morphedNormal%20%3D%20vec3%28%200%2E0%20%29%3B%5Cn%5Cn%5CtmorphedNormal%20%2B%3D%20%28%20morphNormal0%20%2D%20normal%20%29%20%2A%20morphTargetInfluences%5B%200%20%5D%3B%5Cn%5CtmorphedNormal%20%2B%3D%20%28%20morphNormal1%20%2D%20normal%20%29%20%2A%20morphTargetInfluences%5B%201%20%5D%3B%5Cn%5CtmorphedNormal%20%2B%3D%20%28%20morphNormal2%20%2D%20normal%20%29%20%2A%20morphTargetInfluences%5B%202%20%5D%3B%5Cn%5CtmorphedNormal%20%2B%3D%20%28%20morphNormal3%20%2D%20normal%20%29%20%2A%20morphTargetInfluences%5B%203%20%5D%3B%5Cn%5Cn%5CtmorphedNormal%20%2B%3D%20normal%3B%5Cn%5Cn%23endif%22%3B%0ATHREE%2EShaderChunk%2Eenvmap%5Fpars%5Ffragment%3D%22%23ifdef%20USE%5FENVMAP%5Cn%5Cn%5Ctuniform%20float%20reflectivity%3B%5Cn%5Ct%23ifdef%20ENVMAP%5FTYPE%5FCUBE%5Cn%5Ct%5Ctuniform%20samplerCube%20envMap%3B%5Cn%5Ct%23else%5Cn%5Ct%5Ctuniform%20sampler2D%20envMap%3B%5Cn%5Ct%23endif%5Cn%5Ctuniform%20float%20flipEnvMap%3B%5Cn%5Cn%5Ct%23if%20defined%28%20USE%5FBUMPMAP%20%29%20%7C%7C%20defined%28%20USE%5FNORMALMAP%20%29%20%7C%7C%20defined%28%20PHONG%20%29%5Cn%5Cn%5Ct%5Ctuniform%20float%20refractionRatio%3B%5Cn%5Cn%5Ct%23else%5Cn%5Cn%5Ct%5Ctvarying%20vec3%20vReflect%3B%5Cn%5Cn%5Ct%23endif%5Cn%5Cn%23endif%5Cn%22%3BTHREE%2EShaderChunk%2Elogdepthbuf%5Ffragment%3D%22%23if%20defined%28USE%5FLOGDEPTHBUF%29%20%26%26%20defined%28USE%5FLOGDEPTHBUF%5FEXT%29%5Cn%5Cn%5Ctgl%5FFragDepthEXT%20%3D%20log2%28vFragDepth%29%20%2A%20logDepthBufFC%20%2A%200%2E5%3B%5Cn%5Cn%23endif%22%3B%0ATHREE%2EShaderChunk%2Enormalmap%5Fpars%5Ffragment%3D%22%23ifdef%20USE%5FNORMALMAP%5Cn%5Cn%5Ctuniform%20sampler2D%20normalMap%3B%5Cn%5Ctuniform%20vec2%20normalScale%3B%5Cn%5Cn%5Ct%5Ct%5Ct%2F%2F%20Per%2DPixel%20Tangent%20Space%20Normal%20Mapping%5Cn%5Ct%5Ct%5Ct%2F%2F%20http%3A%2F%2Fhacksoflife%2Eblogspot%2Ech%2F2009%2F11%2Fper%2Dpixel%2Dtangent%2Dspace%2Dnormal%2Dmapping%2Ehtml%5Cn%5Cn%5Ctvec3%20perturbNormal2Arb%28%20vec3%20eye%5Fpos%2C%20vec3%20surf%5Fnorm%20%29%20%7B%5Cn%5Cn%5Ct%5Ctvec3%20q0%20%3D%20dFdx%28%20eye%5Fpos%2Exyz%20%29%3B%5Cn%5Ct%5Ctvec3%20q1%20%3D%20dFdy%28%20eye%5Fpos%2Exyz%20%29%3B%5Cn%5Ct%5Ctvec2%20st0%20%3D%20dFdx%28%20vUv%2Est%20%29%3B%5Cn%5Ct%5Ctvec2%20st1%20%3D%20dFdy%28%20vUv%2Est%20%29%3B%5Cn%5Cn%5Ct%5Ctvec3%20S%20%3D%20normalize%28%20q0%20%2A%20st1%2Et%20%2D%20q1%20%2A%20st0%2Et%20%29%3B%5Cn%5Ct%5Ctvec3%20T%20%3D%20normalize%28%20%2Dq0%20%2A%20st1%2Es%20%2B%20q1%20%2A%20st0%2Es%20%29%3B%5Cn%5Ct%5Ctvec3%20N%20%3D%20normalize%28%20surf%5Fnorm%20%29%3B%5Cn%5Cn%5Ct%5Ctvec3%20mapN%20%3D%20texture2D%28%20normalMap%2C%20vUv%20%29%2Exyz%20%2A%202%2E0%20%2D%201%2E0%3B%5Cn%5Ct%5CtmapN%2Exy%20%3D%20normalScale%20%2A%20mapN%2Exy%3B%5Cn%5Ct%5Ctmat3%20tsn%20%3D%20mat3%28%20S%2C%20T%2C%20N%20%29%3B%5Cn%5Ct%5Ctreturn%20normalize%28%20tsn%20%2A%20mapN%20%29%3B%5Cn%5Cn%5Ct%7D%5Cn%5Cn%23endif%5Cn%22%3B%0ATHREE%2EShaderChunk%2Elights%5Fphong%5Fpars%5Fvertex%3D%22%23if%20MAX%5FSPOT%5FLIGHTS%20%3E%200%20%7C%7C%20defined%28%20USE%5FBUMPMAP%20%29%20%7C%7C%20defined%28%20USE%5FENVMAP%20%29%5Cn%5Cn%5Ctvarying%20vec3%20vWorldPosition%3B%5Cn%5Cn%23endif%5Cn%22%3BTHREE%2EShaderChunk%2Elightmap%5Fpars%5Ffragment%3D%22%23ifdef%20USE%5FLIGHTMAP%5Cn%5Cn%5Ctvarying%20vec2%20vUv2%3B%5Cn%5Ctuniform%20sampler2D%20lightMap%3B%5Cn%5Cn%23endif%22%3BTHREE%2EShaderChunk%2Eshadowmap%5Fvertex%3D%22%23ifdef%20USE%5FSHADOWMAP%5Cn%5Cn%5Ctfor%28%20int%20i%20%3D%200%3B%20i%20%3C%20MAX%5FSHADOWS%3B%20i%20%2B%2B%20%29%20%7B%5Cn%5Cn%5Ct%5CtvShadowCoord%5B%20i%20%5D%20%3D%20shadowMatrix%5B%20i%20%5D%20%2A%20worldPosition%3B%5Cn%5Cn%5Ct%7D%5Cn%5Cn%23endif%22%3B%0ATHREE%2EShaderChunk%2Elights%5Fphong%5Fvertex%3D%22%23if%20MAX%5FSPOT%5FLIGHTS%20%3E%200%20%7C%7C%20defined%28%20USE%5FBUMPMAP%20%29%20%7C%7C%20defined%28%20USE%5FENVMAP%20%29%5Cn%5Cn%5CtvWorldPosition%20%3D%20worldPosition%2Exyz%3B%5Cn%5Cn%23endif%22%3BTHREE%2EShaderChunk%2Emap%5Ffragment%3D%22%23ifdef%20USE%5FMAP%5Cn%5Cn%5Ctvec4%20texelColor%20%3D%20texture2D%28%20map%2C%20vUv%20%29%3B%5Cn%5Cn%5Ct%23ifdef%20GAMMA%5FINPUT%5Cn%5Cn%5Ct%5CttexelColor%2Exyz%20%2A%3D%20texelColor%2Exyz%3B%5Cn%5Cn%5Ct%23endif%5Cn%5Cn%5Ctgl%5FFragColor%20%3D%20gl%5FFragColor%20%2A%20texelColor%3B%5Cn%5Cn%23endif%22%3BTHREE%2EShaderChunk%2Elightmap%5Fvertex%3D%22%23ifdef%20USE%5FLIGHTMAP%5Cn%5Cn%5CtvUv2%20%3D%20uv2%3B%5Cn%5Cn%23endif%22%3B%0ATHREE%2EShaderChunk%2Emap%5Fparticle%5Ffragment%3D%22%23ifdef%20USE%5FMAP%5Cn%5Cn%5Ctgl%5FFragColor%20%3D%20gl%5FFragColor%20%2A%20texture2D%28%20map%2C%20vec2%28%20gl%5FPointCoord%2Ex%2C%201%2E0%20%2D%20gl%5FPointCoord%2Ey%20%29%20%29%3B%5Cn%5Cn%23endif%22%3BTHREE%2EShaderChunk%2Ecolor%5Fpars%5Ffragment%3D%22%23ifdef%20USE%5FCOLOR%5Cn%5Cn%5Ctvarying%20vec3%20vColor%3B%5Cn%5Cn%23endif%5Cn%22%3BTHREE%2EShaderChunk%2Ecolor%5Fvertex%3D%22%23ifdef%20USE%5FCOLOR%5Cn%5Cn%5Ct%23ifdef%20GAMMA%5FINPUT%5Cn%5Cn%5Ct%5CtvColor%20%3D%20color%20%2A%20color%3B%5Cn%5Cn%5Ct%23else%5Cn%5Cn%5Ct%5CtvColor%20%3D%20color%3B%5Cn%5Cn%5Ct%23endif%5Cn%5Cn%23endif%22%3BTHREE%2EShaderChunk%2Eskinning%5Fvertex%3D%22%23ifdef%20USE%5FSKINNING%5Cn%5Cn%5Ct%23ifdef%20USE%5FMORPHTARGETS%5Cn%5Cn%5Ctvec4%20skinVertex%20%3D%20bindMatrix%20%2A%20vec4%28%20morphed%2C%201%2E0%20%29%3B%5Cn%5Cn%5Ct%23else%5Cn%5Cn%5Ctvec4%20skinVertex%20%3D%20bindMatrix%20%2A%20vec4%28%20position%2C%201%2E0%20%29%3B%5Cn%5Cn%5Ct%23endif%5Cn%5Cn%5Ctvec4%20skinned%20%3D%20vec4%28%200%2E0%20%29%3B%5Cn%5Ctskinned%20%2B%3D%20boneMatX%20%2A%20skinVertex%20%2A%20skinWeight%2Ex%3B%5Cn%5Ctskinned%20%2B%3D%20boneMatY%20%2A%20skinVertex%20%2A%20skinWeight%2Ey%3B%5Cn%5Ctskinned%20%2B%3D%20boneMatZ%20%2A%20skinVertex%20%2A%20skinWeight%2Ez%3B%5Cn%5Ctskinned%20%2B%3D%20boneMatW%20%2A%20skinVertex%20%2A%20skinWeight%2Ew%3B%5Cn%5Ctskinned%20%20%3D%20bindMatrixInverse%20%2A%20skinned%3B%5Cn%5Cn%23endif%5Cn%22%3B%0ATHREE%2EShaderChunk%2Eenvmap%5Fpars%5Fvertex%3D%22%23if%20defined%28%20USE%5FENVMAP%20%29%20%26%26%20%21%20defined%28%20USE%5FBUMPMAP%20%29%20%26%26%20%21%20defined%28%20USE%5FNORMALMAP%20%29%20%26%26%20%21%20defined%28%20PHONG%20%29%5Cn%5Cn%5Ctvarying%20vec3%20vReflect%3B%5Cn%5Cn%5Ctuniform%20float%20refractionRatio%3B%5Cn%5Cn%23endif%5Cn%22%3BTHREE%2EShaderChunk%2Elinear%5Fto%5Fgamma%5Ffragment%3D%22%23ifdef%20GAMMA%5FOUTPUT%5Cn%5Cn%5Ctgl%5FFragColor%2Exyz%20%3D%20sqrt%28%20gl%5FFragColor%2Exyz%20%29%3B%5Cn%5Cn%23endif%22%3BTHREE%2EShaderChunk%2Ecolor%5Fpars%5Fvertex%3D%22%23ifdef%20USE%5FCOLOR%5Cn%5Cn%5Ctvarying%20vec3%20vColor%3B%5Cn%5Cn%23endif%22%3BTHREE%2EShaderChunk%2Elights%5Flambert%5Fpars%5Fvertex%3D%22uniform%20vec3%20ambient%3B%5Cnuniform%20vec3%20diffuse%3B%5Cnuniform%20vec3%20emissive%3B%5Cn%5Cnuniform%20vec3%20ambientLightColor%3B%5Cn%5Cn%23if%20MAX%5FDIR%5FLIGHTS%20%3E%200%5Cn%5Cn%5Ctuniform%20vec3%20directionalLightColor%5B%20MAX%5FDIR%5FLIGHTS%20%5D%3B%5Cn%5Ctuniform%20vec3%20directionalLightDirection%5B%20MAX%5FDIR%5FLIGHTS%20%5D%3B%5Cn%5Cn%23endif%5Cn%5Cn%23if%20MAX%5FHEMI%5FLIGHTS%20%3E%200%5Cn%5Cn%5Ctuniform%20vec3%20hemisphereLightSkyColor%5B%20MAX%5FHEMI%5FLIGHTS%20%5D%3B%5Cn%5Ctuniform%20vec3%20hemisphereLightGroundColor%5B%20MAX%5FHEMI%5FLIGHTS%20%5D%3B%5Cn%5Ctuniform%20vec3%20hemisphereLightDirection%5B%20MAX%5FHEMI%5FLIGHTS%20%5D%3B%5Cn%5Cn%23endif%5Cn%5Cn%23if%20MAX%5FPOINT%5FLIGHTS%20%3E%200%5Cn%5Cn%5Ctuniform%20vec3%20pointLightColor%5B%20MAX%5FPOINT%5FLIGHTS%20%5D%3B%5Cn%5Ctuniform%20vec3%20pointLightPosition%5B%20MAX%5FPOINT%5FLIGHTS%20%5D%3B%5Cn%5Ctuniform%20float%20pointLightDistance%5B%20MAX%5FPOINT%5FLIGHTS%20%5D%3B%5Cn%5Cn%23endif%5Cn%5Cn%23if%20MAX%5FSPOT%5FLIGHTS%20%3E%200%5Cn%5Cn%5Ctuniform%20vec3%20spotLightColor%5B%20MAX%5FSPOT%5FLIGHTS%20%5D%3B%5Cn%5Ctuniform%20vec3%20spotLightPosition%5B%20MAX%5FSPOT%5FLIGHTS%20%5D%3B%5Cn%5Ctuniform%20vec3%20spotLightDirection%5B%20MAX%5FSPOT%5FLIGHTS%20%5D%3B%5Cn%5Ctuniform%20float%20spotLightDistance%5B%20MAX%5FSPOT%5FLIGHTS%20%5D%3B%5Cn%5Ctuniform%20float%20spotLightAngleCos%5B%20MAX%5FSPOT%5FLIGHTS%20%5D%3B%5Cn%5Ctuniform%20float%20spotLightExponent%5B%20MAX%5FSPOT%5FLIGHTS%20%5D%3B%5Cn%5Cn%23endif%5Cn%5Cn%23ifdef%20WRAP%5FAROUND%5Cn%5Cn%5Ctuniform%20vec3%20wrapRGB%3B%5Cn%5Cn%23endif%5Cn%22%3B%0ATHREE%2EShaderChunk%2Emap%5Fpars%5Fvertex%3D%22%23if%20defined%28%20USE%5FMAP%20%29%20%7C%7C%20defined%28%20USE%5FBUMPMAP%20%29%20%7C%7C%20defined%28%20USE%5FNORMALMAP%20%29%20%7C%7C%20defined%28%20USE%5FSPECULARMAP%20%29%20%7C%7C%20defined%28%20USE%5FALPHAMAP%20%29%5Cn%5Cn%5Ctvarying%20vec2%20vUv%3B%5Cn%5Ctuniform%20vec4%20offsetRepeat%3B%5Cn%5Cn%23endif%5Cn%22%3BTHREE%2EShaderChunk%2Eenvmap%5Ffragment%3D%22%23ifdef%20USE%5FENVMAP%5Cn%5Cn%5Ct%23if%20defined%28%20USE%5FBUMPMAP%20%29%20%7C%7C%20defined%28%20USE%5FNORMALMAP%20%29%20%7C%7C%20defined%28%20PHONG%20%29%5Cn%5Cn%5Ct%5Ctvec3%20cameraToVertex%20%3D%20normalize%28%20vWorldPosition%20%2D%20cameraPosition%20%29%3B%5Cn%5Cn%5Ct%5Ct%2F%2F%20http%3A%2F%2Fen%2Ewikibooks%2Eorg%2Fwiki%2FGLSL%5FProgramming%2FApplying%5FMatrix%5FTransformations%5Cn%5Ct%5Ct%2F%2F%20Transforming%20Normal%20Vectors%20with%20the%20Inverse%20Transformation%5Cn%5Cn%5Ct%5Ctvec3%20worldNormal%20%3D%20normalize%28%20vec3%28%20vec4%28%20normal%2C%200%2E0%20%29%20%2A%20viewMatrix%20%29%20%29%3B%5Cn%5Cn%5Ct%5Ct%23ifdef%20ENVMAP%5FMODE%5FREFLECTION%5Cn%5Cn%5Ct%5Ct%5Ctvec3%20reflectVec%20%3D%20reflect%28%20cameraToVertex%2C%20worldNormal%20%29%3B%5Cn%5Cn%5Ct%5Ct%23else%5Cn%5Cn%5Ct%5Ct%5Ctvec3%20reflectVec%20%3D%20refract%28%20cameraToVertex%2C%20worldNormal%2C%20refractionRatio%20%29%3B%5Cn%5Cn%5Ct%5Ct%23endif%5Cn%5Cn%5Ct%23else%5Cn%5Cn%5Ct%5Ctvec3%20reflectVec%20%3D%20vReflect%3B%5Cn%5Cn%5Ct%23endif%5Cn%5Cn%5Ct%23ifdef%20DOUBLE%5FSIDED%5Cn%5Ct%5Ctfloat%20flipNormal%20%3D%20%28%20%2D1%2E0%20%2B%202%2E0%20%2A%20float%28%20gl%5FFrontFacing%20%29%20%29%3B%5Cn%5Ct%23else%5Cn%5Ct%5Ctfloat%20flipNormal%20%3D%201%2E0%3B%5Cn%5Ct%23endif%5Cn%5Cn%5Ct%23ifdef%20ENVMAP%5FTYPE%5FCUBE%5Cn%5Ct%5Ctvec4%20envColor%20%3D%20textureCube%28%20envMap%2C%20flipNormal%20%2A%20vec3%28%20flipEnvMap%20%2A%20reflectVec%2Ex%2C%20reflectVec%2Eyz%20%29%20%29%3B%5Cn%5Cn%5Ct%23elif%20defined%28%20ENVMAP%5FTYPE%5FEQUIREC%20%29%5Cn%5Ct%5Ctvec2%20sampleUV%3B%5Cn%5Ct%5CtsampleUV%2Ey%20%3D%20clamp%28%20flipNormal%20%2A%20reflectVec%2Ey%20%2A%200%2E5%20%2B%200%2E5%2C%200%2E0%2C%201%2E0%29%3B%5Cn%5Ct%5CtsampleUV%2Ex%20%3D%20atan%28%20flipNormal%20%2A%20reflectVec%2Ez%2C%20flipNormal%20%2A%20reflectVec%2Ex%20%29%20%2A%200%2E15915494309189533576888376337251%20%2B%200%2E5%3B%20%2F%2F%20reciprocal%28%202%20PI%20%29%20%2B%200%2E5%5Cn%5Ct%5Ctvec4%20envColor%20%3D%20texture2D%28%20envMap%2C%20sampleUV%20%29%3B%5Cn%5Ct%5Ct%5Cn%5Ct%23elif%20defined%28%20ENVMAP%5FTYPE%5FSPHERE%20%29%5Cn%5Ct%5Ctvec3%20reflectView%20%3D%20flipNormal%20%2A%20normalize%28%28viewMatrix%20%2A%20vec4%28%20reflectVec%2C%200%2E0%20%29%29%2Exyz%20%2B%20vec3%280%2E0%2C0%2E0%2C1%2E0%29%29%3B%5Cn%5Ct%5Ctvec4%20envColor%20%3D%20texture2D%28%20envMap%2C%20reflectView%2Exy%20%2A%200%2E5%20%2B%200%2E5%20%29%3B%5Cn%5Ct%23endif%5Cn%5Cn%5Ct%23ifdef%20GAMMA%5FINPUT%5Cn%5Cn%5Ct%5CtenvColor%2Exyz%20%2A%3D%20envColor%2Exyz%3B%5Cn%5Cn%5Ct%23endif%5Cn%5Cn%5Ct%23ifdef%20ENVMAP%5FBLENDING%5FMULTIPLY%5Cn%5Cn%5Ct%5Ctgl%5FFragColor%2Exyz%20%3D%20mix%28%20gl%5FFragColor%2Exyz%2C%20gl%5FFragColor%2Exyz%20%2A%20envColor%2Exyz%2C%20specularStrength%20%2A%20reflectivity%20%29%3B%5Cn%5Cn%5Ct%23elif%20defined%28%20ENVMAP%5FBLENDING%5FMIX%20%29%5Cn%5Cn%5Ct%5Ctgl%5FFragColor%2Exyz%20%3D%20mix%28%20gl%5FFragColor%2Exyz%2C%20envColor%2Exyz%2C%20specularStrength%20%2A%20reflectivity%20%29%3B%5Cn%5Cn%5Ct%23elif%20defined%28%20ENVMAP%5FBLENDING%5FADD%20%29%5Cn%5Cn%5Ct%5Ctgl%5FFragColor%2Exyz%20%2B%3D%20envColor%2Exyz%20%2A%20specularStrength%20%2A%20reflectivity%3B%5Cn%5Cn%5Ct%23endif%5Cn%5Cn%23endif%5Cn%22%3B%0ATHREE%2EShaderChunk%2Especularmap%5Fpars%5Ffragment%3D%22%23ifdef%20USE%5FSPECULARMAP%5Cn%5Cn%5Ctuniform%20sampler2D%20specularMap%3B%5Cn%5Cn%23endif%22%3BTHREE%2EShaderChunk%2Elogdepthbuf%5Fvertex%3D%22%23ifdef%20USE%5FLOGDEPTHBUF%5Cn%5Cn%5Ctgl%5FPosition%2Ez%20%3D%20log2%28max%281e%2D6%2C%20gl%5FPosition%2Ew%20%2B%201%2E0%29%29%20%2A%20logDepthBufFC%3B%5Cn%5Cn%5Ct%23ifdef%20USE%5FLOGDEPTHBUF%5FEXT%5Cn%5Cn%5Ct%5CtvFragDepth%20%3D%201%2E0%20%2B%20gl%5FPosition%2Ew%3B%5Cn%5Cn%23else%5Cn%5Cn%5Ct%5Ctgl%5FPosition%2Ez%20%3D%20%28gl%5FPosition%2Ez%20%2D%201%2E0%29%20%2A%20gl%5FPosition%2Ew%3B%5Cn%5Cn%5Ct%23endif%5Cn%5Cn%23endif%22%3BTHREE%2EShaderChunk%2Emorphtarget%5Fpars%5Fvertex%3D%22%23ifdef%20USE%5FMORPHTARGETS%5Cn%5Cn%5Ct%23ifndef%20USE%5FMORPHNORMALS%5Cn%5Cn%5Ctuniform%20float%20morphTargetInfluences%5B%208%20%5D%3B%5Cn%5Cn%5Ct%23else%5Cn%5Cn%5Ctuniform%20float%20morphTargetInfluences%5B%204%20%5D%3B%5Cn%5Cn%5Ct%23endif%5Cn%5Cn%23endif%22%3B%0ATHREE%2EShaderChunk%2Especularmap%5Ffragment%3D%22float%20specularStrength%3B%5Cn%5Cn%23ifdef%20USE%5FSPECULARMAP%5Cn%5Cn%5Ctvec4%20texelSpecular%20%3D%20texture2D%28%20specularMap%2C%20vUv%20%29%3B%5Cn%5CtspecularStrength%20%3D%20texelSpecular%2Er%3B%5Cn%5Cn%23else%5Cn%5Cn%5CtspecularStrength%20%3D%201%2E0%3B%5Cn%5Cn%23endif%22%3BTHREE%2EShaderChunk%2Efog%5Ffragment%3D%22%23ifdef%20USE%5FFOG%5Cn%5Cn%5Ct%23ifdef%20USE%5FLOGDEPTHBUF%5FEXT%5Cn%5Cn%5Ct%5Ctfloat%20depth%20%3D%20gl%5FFragDepthEXT%20%2F%20gl%5FFragCoord%2Ew%3B%5Cn%5Cn%5Ct%23else%5Cn%5Cn%5Ct%5Ctfloat%20depth%20%3D%20gl%5FFragCoord%2Ez%20%2F%20gl%5FFragCoord%2Ew%3B%5Cn%5Cn%5Ct%23endif%5Cn%5Cn%5Ct%23ifdef%20FOG%5FEXP2%5Cn%5Cn%5Ct%5Ctconst%20float%20LOG2%20%3D%201%2E442695%3B%5Cn%5Ct%5Ctfloat%20fogFactor%20%3D%20exp2%28%20%2D%20fogDensity%20%2A%20fogDensity%20%2A%20depth%20%2A%20depth%20%2A%20LOG2%20%29%3B%5Cn%5Ct%5CtfogFactor%20%3D%201%2E0%20%2D%20clamp%28%20fogFactor%2C%200%2E0%2C%201%2E0%20%29%3B%5Cn%5Cn%5Ct%23else%5Cn%5Cn%5Ct%5Ctfloat%20fogFactor%20%3D%20smoothstep%28%20fogNear%2C%20fogFar%2C%20depth%20%29%3B%5Cn%5Cn%5Ct%23endif%5Cn%5Ct%5Cn%5Ctgl%5FFragColor%20%3D%20mix%28%20gl%5FFragColor%2C%20vec4%28%20fogColor%2C%20gl%5FFragColor%2Ew%20%29%2C%20fogFactor%20%29%3B%5Cn%5Cn%23endif%22%3B%0ATHREE%2EShaderChunk%2Ebumpmap%5Fpars%5Ffragment%3D%22%23ifdef%20USE%5FBUMPMAP%5Cn%5Cn%5Ctuniform%20sampler2D%20bumpMap%3B%5Cn%5Ctuniform%20float%20bumpScale%3B%5Cn%5Cn%5Ct%5Ct%5Ct%2F%2F%20Derivative%20maps%20%2D%20bump%20mapping%20unparametrized%20surfaces%20by%20Morten%20Mikkelsen%5Cn%5Ct%5Ct%5Ct%2F%2F%5Cthttp%3A%2F%2Fmmikkelsen3d%2Eblogspot%2Esk%2F2011%2F07%2Fderivative%2Dmaps%2Ehtml%5Cn%5Cn%5Ct%5Ct%5Ct%2F%2F%20Evaluate%20the%20derivative%20of%20the%20height%20w%2Er%2Et%2E%20screen%2Dspace%20using%20forward%20differencing%20%28listing%202%29%5Cn%5Cn%5Ctvec2%20dHdxy%5Ffwd%28%29%20%7B%5Cn%5Cn%5Ct%5Ctvec2%20dSTdx%20%3D%20dFdx%28%20vUv%20%29%3B%5Cn%5Ct%5Ctvec2%20dSTdy%20%3D%20dFdy%28%20vUv%20%29%3B%5Cn%5Cn%5Ct%5Ctfloat%20Hll%20%3D%20bumpScale%20%2A%20texture2D%28%20bumpMap%2C%20vUv%20%29%2Ex%3B%5Cn%5Ct%5Ctfloat%20dBx%20%3D%20bumpScale%20%2A%20texture2D%28%20bumpMap%2C%20vUv%20%2B%20dSTdx%20%29%2Ex%20%2D%20Hll%3B%5Cn%5Ct%5Ctfloat%20dBy%20%3D%20bumpScale%20%2A%20texture2D%28%20bumpMap%2C%20vUv%20%2B%20dSTdy%20%29%2Ex%20%2D%20Hll%3B%5Cn%5Cn%5Ct%5Ctreturn%20vec2%28%20dBx%2C%20dBy%20%29%3B%5Cn%5Cn%5Ct%7D%5Cn%5Cn%5Ctvec3%20perturbNormalArb%28%20vec3%20surf%5Fpos%2C%20vec3%20surf%5Fnorm%2C%20vec2%20dHdxy%20%29%20%7B%5Cn%5Cn%5Ct%5Ctvec3%20vSigmaX%20%3D%20dFdx%28%20surf%5Fpos%20%29%3B%5Cn%5Ct%5Ctvec3%20vSigmaY%20%3D%20dFdy%28%20surf%5Fpos%20%29%3B%5Cn%5Ct%5Ctvec3%20vN%20%3D%20surf%5Fnorm%3B%5Ct%5Ct%2F%2F%20normalized%5Cn%5Cn%5Ct%5Ctvec3%20R1%20%3D%20cross%28%20vSigmaY%2C%20vN%20%29%3B%5Cn%5Ct%5Ctvec3%20R2%20%3D%20cross%28%20vN%2C%20vSigmaX%20%29%3B%5Cn%5Cn%5Ct%5Ctfloat%20fDet%20%3D%20dot%28%20vSigmaX%2C%20R1%20%29%3B%5Cn%5Cn%5Ct%5Ctvec3%20vGrad%20%3D%20sign%28%20fDet%20%29%20%2A%20%28%20dHdxy%2Ex%20%2A%20R1%20%2B%20dHdxy%2Ey%20%2A%20R2%20%29%3B%5Cn%5Ct%5Ctreturn%20normalize%28%20abs%28%20fDet%20%29%20%2A%20surf%5Fnorm%20%2D%20vGrad%20%29%3B%5Cn%5Cn%5Ct%7D%5Cn%5Cn%23endif%22%3B%0ATHREE%2EShaderChunk%2Edefaultnormal%5Fvertex%3D%22%23ifdef%20USE%5FSKINNING%5Cn%5Cn%5Ctvec3%20objectNormal%20%3D%20skinnedNormal%2Exyz%3B%5Cn%5Cn%23elif%20defined%28%20USE%5FMORPHNORMALS%20%29%5Cn%5Cn%5Ctvec3%20objectNormal%20%3D%20morphedNormal%3B%5Cn%5Cn%23else%5Cn%5Cn%5Ctvec3%20objectNormal%20%3D%20normal%3B%5Cn%5Cn%23endif%5Cn%5Cn%23ifdef%20FLIP%5FSIDED%5Cn%5Cn%5CtobjectNormal%20%3D%20%2DobjectNormal%3B%5Cn%5Cn%23endif%5Cn%5Cnvec3%20transformedNormal%20%3D%20normalMatrix%20%2A%20objectNormal%3B%5Cn%22%3BTHREE%2EShaderChunk%2Elights%5Fphong%5Fpars%5Ffragment%3D%22uniform%20vec3%20ambientLightColor%3B%5Cn%5Cn%23if%20MAX%5FDIR%5FLIGHTS%20%3E%200%5Cn%5Cn%5Ctuniform%20vec3%20directionalLightColor%5B%20MAX%5FDIR%5FLIGHTS%20%5D%3B%5Cn%5Ctuniform%20vec3%20directionalLightDirection%5B%20MAX%5FDIR%5FLIGHTS%20%5D%3B%5Cn%5Cn%23endif%5Cn%5Cn%23if%20MAX%5FHEMI%5FLIGHTS%20%3E%200%5Cn%5Cn%5Ctuniform%20vec3%20hemisphereLightSkyColor%5B%20MAX%5FHEMI%5FLIGHTS%20%5D%3B%5Cn%5Ctuniform%20vec3%20hemisphereLightGroundColor%5B%20MAX%5FHEMI%5FLIGHTS%20%5D%3B%5Cn%5Ctuniform%20vec3%20hemisphereLightDirection%5B%20MAX%5FHEMI%5FLIGHTS%20%5D%3B%5Cn%5Cn%23endif%5Cn%5Cn%23if%20MAX%5FPOINT%5FLIGHTS%20%3E%200%5Cn%5Cn%5Ctuniform%20vec3%20pointLightColor%5B%20MAX%5FPOINT%5FLIGHTS%20%5D%3B%5Cn%5Cn%5Ctuniform%20vec3%20pointLightPosition%5B%20MAX%5FPOINT%5FLIGHTS%20%5D%3B%5Cn%5Ctuniform%20float%20pointLightDistance%5B%20MAX%5FPOINT%5FLIGHTS%20%5D%3B%5Cn%5Cn%23endif%5Cn%5Cn%23if%20MAX%5FSPOT%5FLIGHTS%20%3E%200%5Cn%5Cn%5Ctuniform%20vec3%20spotLightColor%5B%20MAX%5FSPOT%5FLIGHTS%20%5D%3B%5Cn%5Ctuniform%20vec3%20spotLightPosition%5B%20MAX%5FSPOT%5FLIGHTS%20%5D%3B%5Cn%5Ctuniform%20vec3%20spotLightDirection%5B%20MAX%5FSPOT%5FLIGHTS%20%5D%3B%5Cn%5Ctuniform%20float%20spotLightAngleCos%5B%20MAX%5FSPOT%5FLIGHTS%20%5D%3B%5Cn%5Ctuniform%20float%20spotLightExponent%5B%20MAX%5FSPOT%5FLIGHTS%20%5D%3B%5Cn%5Cn%5Ctuniform%20float%20spotLightDistance%5B%20MAX%5FSPOT%5FLIGHTS%20%5D%3B%5Cn%5Cn%23endif%5Cn%5Cn%23if%20MAX%5FSPOT%5FLIGHTS%20%3E%200%20%7C%7C%20defined%28%20USE%5FBUMPMAP%20%29%20%7C%7C%20defined%28%20USE%5FENVMAP%20%29%5Cn%5Cn%5Ctvarying%20vec3%20vWorldPosition%3B%5Cn%5Cn%23endif%5Cn%5Cn%23ifdef%20WRAP%5FAROUND%5Cn%5Cn%5Ctuniform%20vec3%20wrapRGB%3B%5Cn%5Cn%23endif%5Cn%5Cnvarying%20vec3%20vViewPosition%3B%5Cnvarying%20vec3%20vNormal%3B%22%3B%0ATHREE%2EShaderChunk%2Eskinbase%5Fvertex%3D%22%23ifdef%20USE%5FSKINNING%5Cn%5Cn%5Ctmat4%20boneMatX%20%3D%20getBoneMatrix%28%20skinIndex%2Ex%20%29%3B%5Cn%5Ctmat4%20boneMatY%20%3D%20getBoneMatrix%28%20skinIndex%2Ey%20%29%3B%5Cn%5Ctmat4%20boneMatZ%20%3D%20getBoneMatrix%28%20skinIndex%2Ez%20%29%3B%5Cn%5Ctmat4%20boneMatW%20%3D%20getBoneMatrix%28%20skinIndex%2Ew%20%29%3B%5Cn%5Cn%23endif%22%3BTHREE%2EShaderChunk%2Emap%5Fvertex%3D%22%23if%20defined%28%20USE%5FMAP%20%29%20%7C%7C%20defined%28%20USE%5FBUMPMAP%20%29%20%7C%7C%20defined%28%20USE%5FNORMALMAP%20%29%20%7C%7C%20defined%28%20USE%5FSPECULARMAP%20%29%20%7C%7C%20defined%28%20USE%5FALPHAMAP%20%29%5Cn%5Cn%5CtvUv%20%3D%20uv%20%2A%20offsetRepeat%2Ezw%20%2B%20offsetRepeat%2Exy%3B%5Cn%5Cn%23endif%22%3B%0ATHREE%2EShaderChunk%2Elightmap%5Ffragment%3D%22%23ifdef%20USE%5FLIGHTMAP%5Cn%5Cn%5Ctgl%5FFragColor%20%3D%20gl%5FFragColor%20%2A%20texture2D%28%20lightMap%2C%20vUv2%20%29%3B%5Cn%5Cn%23endif%22%3BTHREE%2EShaderChunk%2Eshadowmap%5Fpars%5Fvertex%3D%22%23ifdef%20USE%5FSHADOWMAP%5Cn%5Cn%5Ctvarying%20vec4%20vShadowCoord%5B%20MAX%5FSHADOWS%20%5D%3B%5Cn%5Ctuniform%20mat4%20shadowMatrix%5B%20MAX%5FSHADOWS%20%5D%3B%5Cn%5Cn%23endif%22%3BTHREE%2EShaderChunk%2Ecolor%5Ffragment%3D%22%23ifdef%20USE%5FCOLOR%5Cn%5Cn%5Ctgl%5FFragColor%20%3D%20gl%5FFragColor%20%2A%20vec4%28%20vColor%2C%201%2E0%20%29%3B%5Cn%5Cn%23endif%22%3BTHREE%2EShaderChunk%2Emorphtarget%5Fvertex%3D%22%23ifdef%20USE%5FMORPHTARGETS%5Cn%5Cn%5Ctvec3%20morphed%20%3D%20vec3%28%200%2E0%20%29%3B%5Cn%5Ctmorphed%20%2B%3D%20%28%20morphTarget0%20%2D%20position%20%29%20%2A%20morphTargetInfluences%5B%200%20%5D%3B%5Cn%5Ctmorphed%20%2B%3D%20%28%20morphTarget1%20%2D%20position%20%29%20%2A%20morphTargetInfluences%5B%201%20%5D%3B%5Cn%5Ctmorphed%20%2B%3D%20%28%20morphTarget2%20%2D%20position%20%29%20%2A%20morphTargetInfluences%5B%202%20%5D%3B%5Cn%5Ctmorphed%20%2B%3D%20%28%20morphTarget3%20%2D%20position%20%29%20%2A%20morphTargetInfluences%5B%203%20%5D%3B%5Cn%5Cn%5Ct%23ifndef%20USE%5FMORPHNORMALS%5Cn%5Cn%5Ctmorphed%20%2B%3D%20%28%20morphTarget4%20%2D%20position%20%29%20%2A%20morphTargetInfluences%5B%204%20%5D%3B%5Cn%5Ctmorphed%20%2B%3D%20%28%20morphTarget5%20%2D%20position%20%29%20%2A%20morphTargetInfluences%5B%205%20%5D%3B%5Cn%5Ctmorphed%20%2B%3D%20%28%20morphTarget6%20%2D%20position%20%29%20%2A%20morphTargetInfluences%5B%206%20%5D%3B%5Cn%5Ctmorphed%20%2B%3D%20%28%20morphTarget7%20%2D%20position%20%29%20%2A%20morphTargetInfluences%5B%207%20%5D%3B%5Cn%5Cn%5Ct%23endif%5Cn%5Cn%5Ctmorphed%20%2B%3D%20position%3B%5Cn%5Cn%23endif%22%3B%0ATHREE%2EShaderChunk%2Eenvmap%5Fvertex%3D%22%23if%20defined%28%20USE%5FENVMAP%20%29%20%26%26%20%21%20defined%28%20USE%5FBUMPMAP%20%29%20%26%26%20%21%20defined%28%20USE%5FNORMALMAP%20%29%20%26%26%20%21%20defined%28%20PHONG%20%29%5Cn%5Cn%5Ctvec3%20worldNormal%20%3D%20mat3%28%20modelMatrix%5B%200%20%5D%2Exyz%2C%20modelMatrix%5B%201%20%5D%2Exyz%2C%20modelMatrix%5B%202%20%5D%2Exyz%20%29%20%2A%20objectNormal%3B%5Cn%5CtworldNormal%20%3D%20normalize%28%20worldNormal%20%29%3B%5Cn%5Cn%5Ctvec3%20cameraToVertex%20%3D%20normalize%28%20worldPosition%2Exyz%20%2D%20cameraPosition%20%29%3B%5Cn%5Cn%5Ct%23ifdef%20ENVMAP%5FMODE%5FREFLECTION%5Cn%5Cn%5Ct%5CtvReflect%20%3D%20reflect%28%20cameraToVertex%2C%20worldNormal%20%29%3B%5Cn%5Cn%5Ct%23else%5Cn%5Cn%5Ct%5CtvReflect%20%3D%20refract%28%20cameraToVertex%2C%20worldNormal%2C%20refractionRatio%20%29%3B%5Cn%5Cn%5Ct%23endif%5Cn%5Cn%23endif%5Cn%22%3B%0ATHREE%2EShaderChunk%2Eshadowmap%5Ffragment%3D%22%23ifdef%20USE%5FSHADOWMAP%5Cn%5Cn%5Ct%23ifdef%20SHADOWMAP%5FDEBUG%5Cn%5Cn%5Ct%5Ctvec3%20frustumColors%5B3%5D%3B%5Cn%5Ct%5CtfrustumColors%5B0%5D%20%3D%20vec3%28%201%2E0%2C%200%2E5%2C%200%2E0%20%29%3B%5Cn%5Ct%5CtfrustumColors%5B1%5D%20%3D%20vec3%28%200%2E0%2C%201%2E0%2C%200%2E8%20%29%3B%5Cn%5Ct%5CtfrustumColors%5B2%5D%20%3D%20vec3%28%200%2E0%2C%200%2E5%2C%201%2E0%20%29%3B%5Cn%5Cn%5Ct%23endif%5Cn%5Cn%5Ct%23ifdef%20SHADOWMAP%5FCASCADE%5Cn%5Cn%5Ct%5Ctint%20inFrustumCount%20%3D%200%3B%5Cn%5Cn%5Ct%23endif%5Cn%5Cn%5Ctfloat%20fDepth%3B%5Cn%5Ctvec3%20shadowColor%20%3D%20vec3%28%201%2E0%20%29%3B%5Cn%5Cn%5Ctfor%28%20int%20i%20%3D%200%3B%20i%20%3C%20MAX%5FSHADOWS%3B%20i%20%2B%2B%20%29%20%7B%5Cn%5Cn%5Ct%5Ctvec3%20shadowCoord%20%3D%20vShadowCoord%5B%20i%20%5D%2Exyz%20%2F%20vShadowCoord%5B%20i%20%5D%2Ew%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5Ct%2F%2F%20if%20%28%20something%20%26%26%20something%20%29%20breaks%20ATI%20OpenGL%20shader%20compiler%5Cn%5Ct%5Ct%5Ct%5Ct%2F%2F%20if%20%28%20all%28%20something%2C%20something%20%29%20%29%20using%20this%20instead%5Cn%5Cn%5Ct%5Ctbvec4%20inFrustumVec%20%3D%20bvec4%20%28%20shadowCoord%2Ex%20%3E%3D%200%2E0%2C%20shadowCoord%2Ex%20%3C%3D%201%2E0%2C%20shadowCoord%2Ey%20%3E%3D%200%2E0%2C%20shadowCoord%2Ey%20%3C%3D%201%2E0%20%29%3B%5Cn%5Ct%5Ctbool%20inFrustum%20%3D%20all%28%20inFrustumVec%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5Ct%2F%2F%20don%27t%20shadow%20pixels%20outside%20of%20light%20frustum%5Cn%5Ct%5Ct%5Ct%5Ct%2F%2F%20use%20just%20first%20frustum%20%28for%20cascades%29%5Cn%5Ct%5Ct%5Ct%5Ct%2F%2F%20don%27t%20shadow%20pixels%20behind%20far%20plane%20of%20light%20frustum%5Cn%5Cn%5Ct%5Ct%23ifdef%20SHADOWMAP%5FCASCADE%5Cn%5Cn%5Ct%5Ct%5CtinFrustumCount%20%2B%3D%20int%28%20inFrustum%20%29%3B%5Cn%5Ct%5Ct%5Ctbvec3%20frustumTestVec%20%3D%20bvec3%28%20inFrustum%2C%20inFrustumCount%20%3D%3D%201%2C%20shadowCoord%2Ez%20%3C%3D%201%2E0%20%29%3B%5Cn%5Cn%5Ct%5Ct%23else%5Cn%5Cn%5Ct%5Ct%5Ctbvec2%20frustumTestVec%20%3D%20bvec2%28%20inFrustum%2C%20shadowCoord%2Ez%20%3C%3D%201%2E0%20%29%3B%5Cn%5Cn%5Ct%5Ct%23endif%5Cn%5Cn%5Ct%5Ctbool%20frustumTest%20%3D%20all%28%20frustumTestVec%20%29%3B%5Cn%5Cn%5Ct%5Ctif%20%28%20frustumTest%20%29%20%7B%5Cn%5Cn%5Ct%5Ct%5CtshadowCoord%2Ez%20%2B%3D%20shadowBias%5B%20i%20%5D%3B%5Cn%5Cn%5Ct%5Ct%5Ct%23if%20defined%28%20SHADOWMAP%5FTYPE%5FPCF%20%29%5Cn%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%5Ct%2F%2F%20Percentage%2Dclose%20filtering%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%5Ct%2F%2F%20%289%20pixel%20kernel%29%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%5Ct%2F%2F%20http%3A%2F%2Ffabiensanglard%2Enet%2FshadowmappingPCF%2F%5Cn%5Cn%5Ct%5Ct%5Ct%5Ctfloat%20shadow%20%3D%200%2E0%3B%5Cn%5Cn%5Ct%5Ct%2F%2A%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%5Ct%2F%2F%20nested%20loops%20breaks%20shader%20compiler%20%2F%20validator%20on%20some%20ATI%20cards%20when%20using%20OpenGL%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%5Ct%2F%2F%20must%20enroll%20loop%20manually%5Cn%5Cn%5Ct%5Ct%5Ct%5Ctfor%20%28%20float%20y%20%3D%20%2D1%2E25%3B%20y%20%3C%3D%201%2E25%3B%20y%20%2B%3D%201%2E25%20%29%5Cn%5Ct%5Ct%5Ct%5Ct%5Ctfor%20%28%20float%20x%20%3D%20%2D1%2E25%3B%20x%20%3C%3D%201%2E25%3B%20x%20%2B%3D%201%2E25%20%29%20%7B%5Cn%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%5Ctvec4%20rgbaDepth%20%3D%20texture2D%28%20shadowMap%5B%20i%20%5D%2C%20vec2%28%20x%20%2A%20xPixelOffset%2C%20y%20%2A%20yPixelOffset%20%29%20%2B%20shadowCoord%2Exy%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%5Ct%5Ct%5Ct%2F%2F%20doesn%27t%20seem%20to%20produce%20any%20noticeable%20visual%20difference%20compared%20to%20simple%20texture2D%20lookup%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%5Ct%5Ct%5Ct%2F%2Fvec4%20rgbaDepth%20%3D%20texture2DProj%28%20shadowMap%5B%20i%20%5D%2C%20vec4%28%20vShadowCoord%5B%20i%20%5D%2Ew%20%2A%20%28%20vec2%28%20x%20%2A%20xPixelOffset%2C%20y%20%2A%20yPixelOffset%20%29%20%2B%20shadowCoord%2Exy%20%29%2C%200%2E05%2C%20vShadowCoord%5B%20i%20%5D%2Ew%20%29%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%5Ctfloat%20fDepth%20%3D%20unpackDepth%28%20rgbaDepth%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%5Ctif%20%28%20fDepth%20%3C%20shadowCoord%2Ez%20%29%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%5Ct%5Ctshadow%20%2B%3D%201%2E0%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5Ct%7D%5Cn%5Cn%5Ct%5Ct%5Ct%5Ctshadow%20%2F%3D%209%2E0%3B%5Cn%5Cn%5Ct%5Ct%2A%2F%5Cn%5Cn%5Ct%5Ct%5Ct%5Ctconst%20float%20shadowDelta%20%3D%201%2E0%20%2F%209%2E0%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5Ctfloat%20xPixelOffset%20%3D%201%2E0%20%2F%20shadowMapSize%5B%20i%20%5D%2Ex%3B%5Cn%5Ct%5Ct%5Ct%5Ctfloat%20yPixelOffset%20%3D%201%2E0%20%2F%20shadowMapSize%5B%20i%20%5D%2Ey%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5Ctfloat%20dx0%20%3D%20%2D1%2E25%20%2A%20xPixelOffset%3B%5Cn%5Ct%5Ct%5Ct%5Ctfloat%20dy0%20%3D%20%2D1%2E25%20%2A%20yPixelOffset%3B%5Cn%5Ct%5Ct%5Ct%5Ctfloat%20dx1%20%3D%201%2E25%20%2A%20xPixelOffset%3B%5Cn%5Ct%5Ct%5Ct%5Ctfloat%20dy1%20%3D%201%2E25%20%2A%20yPixelOffset%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5CtfDepth%20%3D%20unpackDepth%28%20texture2D%28%20shadowMap%5B%20i%20%5D%2C%20shadowCoord%2Exy%20%2B%20vec2%28%20dx0%2C%20dy0%20%29%20%29%20%29%3B%5Cn%5Ct%5Ct%5Ct%5Ctif%20%28%20fDepth%20%3C%20shadowCoord%2Ez%20%29%20shadow%20%2B%3D%20shadowDelta%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5CtfDepth%20%3D%20unpackDepth%28%20texture2D%28%20shadowMap%5B%20i%20%5D%2C%20shadowCoord%2Exy%20%2B%20vec2%28%200%2E0%2C%20dy0%20%29%20%29%20%29%3B%5Cn%5Ct%5Ct%5Ct%5Ctif%20%28%20fDepth%20%3C%20shadowCoord%2Ez%20%29%20shadow%20%2B%3D%20shadowDelta%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5CtfDepth%20%3D%20unpackDepth%28%20texture2D%28%20shadowMap%5B%20i%20%5D%2C%20shadowCoord%2Exy%20%2B%20vec2%28%20dx1%2C%20dy0%20%29%20%29%20%29%3B%5Cn%5Ct%5Ct%5Ct%5Ctif%20%28%20fDepth%20%3C%20shadowCoord%2Ez%20%29%20shadow%20%2B%3D%20shadowDelta%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5CtfDepth%20%3D%20unpackDepth%28%20texture2D%28%20shadowMap%5B%20i%20%5D%2C%20shadowCoord%2Exy%20%2B%20vec2%28%20dx0%2C%200%2E0%20%29%20%29%20%29%3B%5Cn%5Ct%5Ct%5Ct%5Ctif%20%28%20fDepth%20%3C%20shadowCoord%2Ez%20%29%20shadow%20%2B%3D%20shadowDelta%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5CtfDepth%20%3D%20unpackDepth%28%20texture2D%28%20shadowMap%5B%20i%20%5D%2C%20shadowCoord%2Exy%20%29%20%29%3B%5Cn%5Ct%5Ct%5Ct%5Ctif%20%28%20fDepth%20%3C%20shadowCoord%2Ez%20%29%20shadow%20%2B%3D%20shadowDelta%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5CtfDepth%20%3D%20unpackDepth%28%20texture2D%28%20shadowMap%5B%20i%20%5D%2C%20shadowCoord%2Exy%20%2B%20vec2%28%20dx1%2C%200%2E0%20%29%20%29%20%29%3B%5Cn%5Ct%5Ct%5Ct%5Ctif%20%28%20fDepth%20%3C%20shadowCoord%2Ez%20%29%20shadow%20%2B%3D%20shadowDelta%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5CtfDepth%20%3D%20unpackDepth%28%20texture2D%28%20shadowMap%5B%20i%20%5D%2C%20shadowCoord%2Exy%20%2B%20vec2%28%20dx0%2C%20dy1%20%29%20%29%20%29%3B%5Cn%5Ct%5Ct%5Ct%5Ctif%20%28%20fDepth%20%3C%20shadowCoord%2Ez%20%29%20shadow%20%2B%3D%20shadowDelta%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5CtfDepth%20%3D%20unpackDepth%28%20texture2D%28%20shadowMap%5B%20i%20%5D%2C%20shadowCoord%2Exy%20%2B%20vec2%28%200%2E0%2C%20dy1%20%29%20%29%20%29%3B%5Cn%5Ct%5Ct%5Ct%5Ctif%20%28%20fDepth%20%3C%20shadowCoord%2Ez%20%29%20shadow%20%2B%3D%20shadowDelta%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5CtfDepth%20%3D%20unpackDepth%28%20texture2D%28%20shadowMap%5B%20i%20%5D%2C%20shadowCoord%2Exy%20%2B%20vec2%28%20dx1%2C%20dy1%20%29%20%29%20%29%3B%5Cn%5Ct%5Ct%5Ct%5Ctif%20%28%20fDepth%20%3C%20shadowCoord%2Ez%20%29%20shadow%20%2B%3D%20shadowDelta%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5CtshadowColor%20%3D%20shadowColor%20%2A%20vec3%28%20%28%201%2E0%20%2D%20shadowDarkness%5B%20i%20%5D%20%2A%20shadow%20%29%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%23elif%20defined%28%20SHADOWMAP%5FTYPE%5FPCF%5FSOFT%20%29%5Cn%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%5Ct%2F%2F%20Percentage%2Dclose%20filtering%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%5Ct%2F%2F%20%289%20pixel%20kernel%29%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%5Ct%2F%2F%20http%3A%2F%2Ffabiensanglard%2Enet%2FshadowmappingPCF%2F%5Cn%5Cn%5Ct%5Ct%5Ct%5Ctfloat%20shadow%20%3D%200%2E0%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5Ctfloat%20xPixelOffset%20%3D%201%2E0%20%2F%20shadowMapSize%5B%20i%20%5D%2Ex%3B%5Cn%5Ct%5Ct%5Ct%5Ctfloat%20yPixelOffset%20%3D%201%2E0%20%2F%20shadowMapSize%5B%20i%20%5D%2Ey%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5Ctfloat%20dx0%20%3D%20%2D1%2E0%20%2A%20xPixelOffset%3B%5Cn%5Ct%5Ct%5Ct%5Ctfloat%20dy0%20%3D%20%2D1%2E0%20%2A%20yPixelOffset%3B%5Cn%5Ct%5Ct%5Ct%5Ctfloat%20dx1%20%3D%201%2E0%20%2A%20xPixelOffset%3B%5Cn%5Ct%5Ct%5Ct%5Ctfloat%20dy1%20%3D%201%2E0%20%2A%20yPixelOffset%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5Ctmat3%20shadowKernel%3B%5Cn%5Ct%5Ct%5Ct%5Ctmat3%20depthKernel%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5CtdepthKernel%5B0%5D%5B0%5D%20%3D%20unpackDepth%28%20texture2D%28%20shadowMap%5B%20i%20%5D%2C%20shadowCoord%2Exy%20%2B%20vec2%28%20dx0%2C%20dy0%20%29%20%29%20%29%3B%5Cn%5Ct%5Ct%5Ct%5CtdepthKernel%5B0%5D%5B1%5D%20%3D%20unpackDepth%28%20texture2D%28%20shadowMap%5B%20i%20%5D%2C%20shadowCoord%2Exy%20%2B%20vec2%28%20dx0%2C%200%2E0%20%29%20%29%20%29%3B%5Cn%5Ct%5Ct%5Ct%5CtdepthKernel%5B0%5D%5B2%5D%20%3D%20unpackDepth%28%20texture2D%28%20shadowMap%5B%20i%20%5D%2C%20shadowCoord%2Exy%20%2B%20vec2%28%20dx0%2C%20dy1%20%29%20%29%20%29%3B%5Cn%5Ct%5Ct%5Ct%5CtdepthKernel%5B1%5D%5B0%5D%20%3D%20unpackDepth%28%20texture2D%28%20shadowMap%5B%20i%20%5D%2C%20shadowCoord%2Exy%20%2B%20vec2%28%200%2E0%2C%20dy0%20%29%20%29%20%29%3B%5Cn%5Ct%5Ct%5Ct%5CtdepthKernel%5B1%5D%5B1%5D%20%3D%20unpackDepth%28%20texture2D%28%20shadowMap%5B%20i%20%5D%2C%20shadowCoord%2Exy%20%29%20%29%3B%5Cn%5Ct%5Ct%5Ct%5CtdepthKernel%5B1%5D%5B2%5D%20%3D%20unpackDepth%28%20texture2D%28%20shadowMap%5B%20i%20%5D%2C%20shadowCoord%2Exy%20%2B%20vec2%28%200%2E0%2C%20dy1%20%29%20%29%20%29%3B%5Cn%5Ct%5Ct%5Ct%5CtdepthKernel%5B2%5D%5B0%5D%20%3D%20unpackDepth%28%20texture2D%28%20shadowMap%5B%20i%20%5D%2C%20shadowCoord%2Exy%20%2B%20vec2%28%20dx1%2C%20dy0%20%29%20%29%20%29%3B%5Cn%5Ct%5Ct%5Ct%5CtdepthKernel%5B2%5D%5B1%5D%20%3D%20unpackDepth%28%20texture2D%28%20shadowMap%5B%20i%20%5D%2C%20shadowCoord%2Exy%20%2B%20vec2%28%20dx1%2C%200%2E0%20%29%20%29%20%29%3B%5Cn%5Ct%5Ct%5Ct%5CtdepthKernel%5B2%5D%5B2%5D%20%3D%20unpackDepth%28%20texture2D%28%20shadowMap%5B%20i%20%5D%2C%20shadowCoord%2Exy%20%2B%20vec2%28%20dx1%2C%20dy1%20%29%20%29%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5Ctvec3%20shadowZ%20%3D%20vec3%28%20shadowCoord%2Ez%20%29%3B%5Cn%5Ct%5Ct%5Ct%5CtshadowKernel%5B0%5D%20%3D%20vec3%28lessThan%28depthKernel%5B0%5D%2C%20shadowZ%20%29%29%3B%5Cn%5Ct%5Ct%5Ct%5CtshadowKernel%5B0%5D%20%2A%3D%20vec3%280%2E25%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5CtshadowKernel%5B1%5D%20%3D%20vec3%28lessThan%28depthKernel%5B1%5D%2C%20shadowZ%20%29%29%3B%5Cn%5Ct%5Ct%5Ct%5CtshadowKernel%5B1%5D%20%2A%3D%20vec3%280%2E25%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5CtshadowKernel%5B2%5D%20%3D%20vec3%28lessThan%28depthKernel%5B2%5D%2C%20shadowZ%20%29%29%3B%5Cn%5Ct%5Ct%5Ct%5CtshadowKernel%5B2%5D%20%2A%3D%20vec3%280%2E25%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5Ctvec2%20fractionalCoord%20%3D%201%2E0%20%2D%20fract%28%20shadowCoord%2Exy%20%2A%20shadowMapSize%5Bi%5D%2Exy%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5CtshadowKernel%5B0%5D%20%3D%20mix%28%20shadowKernel%5B1%5D%2C%20shadowKernel%5B0%5D%2C%20fractionalCoord%2Ex%20%29%3B%5Cn%5Ct%5Ct%5Ct%5CtshadowKernel%5B1%5D%20%3D%20mix%28%20shadowKernel%5B2%5D%2C%20shadowKernel%5B1%5D%2C%20fractionalCoord%2Ex%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5Ctvec4%20shadowValues%3B%5Cn%5Ct%5Ct%5Ct%5CtshadowValues%2Ex%20%3D%20mix%28%20shadowKernel%5B0%5D%5B1%5D%2C%20shadowKernel%5B0%5D%5B0%5D%2C%20fractionalCoord%2Ey%20%29%3B%5Cn%5Ct%5Ct%5Ct%5CtshadowValues%2Ey%20%3D%20mix%28%20shadowKernel%5B0%5D%5B2%5D%2C%20shadowKernel%5B0%5D%5B1%5D%2C%20fractionalCoord%2Ey%20%29%3B%5Cn%5Ct%5Ct%5Ct%5CtshadowValues%2Ez%20%3D%20mix%28%20shadowKernel%5B1%5D%5B1%5D%2C%20shadowKernel%5B1%5D%5B0%5D%2C%20fractionalCoord%2Ey%20%29%3B%5Cn%5Ct%5Ct%5Ct%5CtshadowValues%2Ew%20%3D%20mix%28%20shadowKernel%5B1%5D%5B2%5D%2C%20shadowKernel%5B1%5D%5B1%5D%2C%20fractionalCoord%2Ey%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5Ctshadow%20%3D%20dot%28%20shadowValues%2C%20vec4%28%201%2E0%20%29%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5CtshadowColor%20%3D%20shadowColor%20%2A%20vec3%28%20%28%201%2E0%20%2D%20shadowDarkness%5B%20i%20%5D%20%2A%20shadow%20%29%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%23else%5Cn%5Cn%5Ct%5Ct%5Ct%5Ctvec4%20rgbaDepth%20%3D%20texture2D%28%20shadowMap%5B%20i%20%5D%2C%20shadowCoord%2Exy%20%29%3B%5Cn%5Ct%5Ct%5Ct%5Ctfloat%20fDepth%20%3D%20unpackDepth%28%20rgbaDepth%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%5Ctif%20%28%20fDepth%20%3C%20shadowCoord%2Ez%20%29%5Cn%5Cn%5Ct%5Ct%2F%2F%20spot%20with%20multiple%20shadows%20is%20darker%5Cn%5Cn%5Ct%5Ct%5Ct%5Ct%5CtshadowColor%20%3D%20shadowColor%20%2A%20vec3%28%201%2E0%20%2D%20shadowDarkness%5B%20i%20%5D%20%29%3B%5Cn%5Cn%5Ct%5Ct%2F%2F%20spot%20with%20multiple%20shadows%20has%20the%20same%20color%20as%20single%20shadow%20spot%5Cn%5Cn%5Ct%5Ct%2F%2F%20%5Ct%5Ct%5Ct%5Ct%5CtshadowColor%20%3D%20min%28%20shadowColor%2C%20vec3%28%20shadowDarkness%5B%20i%20%5D%20%29%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ct%23endif%5Cn%5Cn%5Ct%5Ct%7D%5Cn%5Cn%5Cn%5Ct%5Ct%23ifdef%20SHADOWMAP%5FDEBUG%5Cn%5Cn%5Ct%5Ct%5Ct%23ifdef%20SHADOWMAP%5FCASCADE%5Cn%5Cn%5Ct%5Ct%5Ct%5Ctif%20%28%20inFrustum%20%26%26%20inFrustumCount%20%3D%3D%201%20%29%20gl%5FFragColor%2Exyz%20%2A%3D%20frustumColors%5B%20i%20%5D%3B%5Cn%5Cn%5Ct%5Ct%5Ct%23else%5Cn%5Cn%5Ct%5Ct%5Ct%5Ctif%20%28%20inFrustum%20%29%20gl%5FFragColor%2Exyz%20%2A%3D%20frustumColors%5B%20i%20%5D%3B%5Cn%5Cn%5Ct%5Ct%5Ct%23endif%5Cn%5Cn%5Ct%5Ct%23endif%5Cn%5Cn%5Ct%7D%5Cn%5Cn%5Ct%23ifdef%20GAMMA%5FOUTPUT%5Cn%5Cn%5Ct%5CtshadowColor%20%2A%3D%20shadowColor%3B%5Cn%5Cn%5Ct%23endif%5Cn%5Cn%5Ctgl%5FFragColor%2Exyz%20%3D%20gl%5FFragColor%2Exyz%20%2A%20shadowColor%3B%5Cn%5Cn%23endif%5Cn%22%3B%0ATHREE%2EShaderChunk%2Eworldpos%5Fvertex%3D%22%23if%20defined%28%20USE%5FENVMAP%20%29%20%7C%7C%20defined%28%20PHONG%20%29%20%7C%7C%20defined%28%20LAMBERT%20%29%20%7C%7C%20defined%20%28%20USE%5FSHADOWMAP%20%29%5Cn%5Cn%5Ct%23ifdef%20USE%5FSKINNING%5Cn%5Cn%5Ct%5Ctvec4%20worldPosition%20%3D%20modelMatrix%20%2A%20skinned%3B%5Cn%5Cn%5Ct%23elif%20defined%28%20USE%5FMORPHTARGETS%20%29%5Cn%5Cn%5Ct%5Ctvec4%20worldPosition%20%3D%20modelMatrix%20%2A%20vec4%28%20morphed%2C%201%2E0%20%29%3B%5Cn%5Cn%5Ct%23else%5Cn%5Cn%5Ct%5Ctvec4%20worldPosition%20%3D%20modelMatrix%20%2A%20vec4%28%20position%2C%201%2E0%20%29%3B%5Cn%5Cn%5Ct%23endif%5Cn%5Cn%23endif%5Cn%22%3BTHREE%2EShaderChunk%2Eshadowmap%5Fpars%5Ffragment%3D%22%23ifdef%20USE%5FSHADOWMAP%5Cn%5Cn%5Ctuniform%20sampler2D%20shadowMap%5B%20MAX%5FSHADOWS%20%5D%3B%5Cn%5Ctuniform%20vec2%20shadowMapSize%5B%20MAX%5FSHADOWS%20%5D%3B%5Cn%5Cn%5Ctuniform%20float%20shadowDarkness%5B%20MAX%5FSHADOWS%20%5D%3B%5Cn%5Ctuniform%20float%20shadowBias%5B%20MAX%5FSHADOWS%20%5D%3B%5Cn%5Cn%5Ctvarying%20vec4%20vShadowCoord%5B%20MAX%5FSHADOWS%20%5D%3B%5Cn%5Cn%5Ctfloat%20unpackDepth%28%20const%20in%20vec4%20rgba%5Fdepth%20%29%20%7B%5Cn%5Cn%5Ct%5Ctconst%20vec4%20bit%5Fshift%20%3D%20vec4%28%201%2E0%20%2F%20%28%20256%2E0%20%2A%20256%2E0%20%2A%20256%2E0%20%29%2C%201%2E0%20%2F%20%28%20256%2E0%20%2A%20256%2E0%20%29%2C%201%2E0%20%2F%20256%2E0%2C%201%2E0%20%29%3B%5Cn%5Ct%5Ctfloat%20depth%20%3D%20dot%28%20rgba%5Fdepth%2C%20bit%5Fshift%20%29%3B%5Cn%5Ct%5Ctreturn%20depth%3B%5Cn%5Cn%5Ct%7D%5Cn%5Cn%23endif%22%3B%0ATHREE%2EShaderChunk%2Eskinning%5Fpars%5Fvertex%3D%22%23ifdef%20USE%5FSKINNING%5Cn%5Cn%5Ctuniform%20mat4%20bindMatrix%3B%5Cn%5Ctuniform%20mat4%20bindMatrixInverse%3B%5Cn%5Cn%5Ct%23ifdef%20BONE%5FTEXTURE%5Cn%5Cn%5Ct%5Ctuniform%20sampler2D%20boneTexture%3B%5Cn%5Ct%5Ctuniform%20int%20boneTextureWidth%3B%5Cn%5Ct%5Ctuniform%20int%20boneTextureHeight%3B%5Cn%5Cn%5Ct%5Ctmat4%20getBoneMatrix%28%20const%20in%20float%20i%20%29%20%7B%5Cn%5Cn%5Ct%5Ct%5Ctfloat%20j%20%3D%20i%20%2A%204%2E0%3B%5Cn%5Ct%5Ct%5Ctfloat%20x%20%3D%20mod%28%20j%2C%20float%28%20boneTextureWidth%20%29%20%29%3B%5Cn%5Ct%5Ct%5Ctfloat%20y%20%3D%20floor%28%20j%20%2F%20float%28%20boneTextureWidth%20%29%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ctfloat%20dx%20%3D%201%2E0%20%2F%20float%28%20boneTextureWidth%20%29%3B%5Cn%5Ct%5Ct%5Ctfloat%20dy%20%3D%201%2E0%20%2F%20float%28%20boneTextureHeight%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Cty%20%3D%20dy%20%2A%20%28%20y%20%2B%200%2E5%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ctvec4%20v1%20%3D%20texture2D%28%20boneTexture%2C%20vec2%28%20dx%20%2A%20%28%20x%20%2B%200%2E5%20%29%2C%20y%20%29%20%29%3B%5Cn%5Ct%5Ct%5Ctvec4%20v2%20%3D%20texture2D%28%20boneTexture%2C%20vec2%28%20dx%20%2A%20%28%20x%20%2B%201%2E5%20%29%2C%20y%20%29%20%29%3B%5Cn%5Ct%5Ct%5Ctvec4%20v3%20%3D%20texture2D%28%20boneTexture%2C%20vec2%28%20dx%20%2A%20%28%20x%20%2B%202%2E5%20%29%2C%20y%20%29%20%29%3B%5Cn%5Ct%5Ct%5Ctvec4%20v4%20%3D%20texture2D%28%20boneTexture%2C%20vec2%28%20dx%20%2A%20%28%20x%20%2B%203%2E5%20%29%2C%20y%20%29%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ctmat4%20bone%20%3D%20mat4%28%20v1%2C%20v2%2C%20v3%2C%20v4%20%29%3B%5Cn%5Cn%5Ct%5Ct%5Ctreturn%20bone%3B%5Cn%5Cn%5Ct%5Ct%7D%5Cn%5Cn%5Ct%23else%5Cn%5Cn%5Ct%5Ctuniform%20mat4%20boneGlobalMatrices%5B%20MAX%5FBONES%20%5D%3B%5Cn%5Cn%5Ct%5Ctmat4%20getBoneMatrix%28%20const%20in%20float%20i%20%29%20%7B%5Cn%5Cn%5Ct%5Ct%5Ctmat4%20bone%20%3D%20boneGlobalMatrices%5B%20int%28i%29%20%5D%3B%5Cn%5Ct%5Ct%5Ctreturn%20bone%3B%5Cn%5Cn%5Ct%5Ct%7D%5Cn%5Cn%5Ct%23endif%5Cn%5Cn%23endif%5Cn%22%3B%0ATHREE%2EShaderChunk%2Elogdepthbuf%5Fpars%5Ffragment%3D%22%23ifdef%20USE%5FLOGDEPTHBUF%5Cn%5Cn%5Ctuniform%20float%20logDepthBufFC%3B%5Cn%5Cn%5Ct%23ifdef%20USE%5FLOGDEPTHBUF%5FEXT%5Cn%5Cn%5Ct%5Ct%23extension%20GL%5FEXT%5Ffrag%5Fdepth%20%3A%20enable%5Cn%5Ct%5Ctvarying%20float%20vFragDepth%3B%5Cn%5Cn%5Ct%23endif%5Cn%5Cn%23endif%22%3BTHREE%2EShaderChunk%2Ealphamap%5Ffragment%3D%22%23ifdef%20USE%5FALPHAMAP%5Cn%5Cn%5Ctgl%5FFragColor%2Ea%20%2A%3D%20texture2D%28%20alphaMap%2C%20vUv%20%29%2Eg%3B%5Cn%5Cn%23endif%5Cn%22%3BTHREE%2EShaderChunk%2Ealphamap%5Fpars%5Ffragment%3D%22%23ifdef%20USE%5FALPHAMAP%5Cn%5Cn%5Ctuniform%20sampler2D%20alphaMap%3B%5Cn%5Cn%23endif%5Cn%22%3B%0ATHREE%2EUniformsUtils%3D%7Bmerge%3Afunction%28a%29%7Bfor%28var%20b%3D%7B%7D%2Cc%3D0%3Bc%3Ca%2Elength%3Bc%2B%2B%29%7Bvar%20d%3Dthis%2Eclone%28a%5Bc%5D%29%2Ce%3Bfor%28e%20in%20d%29b%5Be%5D%3Dd%5Be%5D%7Dreturn%20b%7D%2Cclone%3Afunction%28a%29%7Bvar%20b%3D%7B%7D%2Cc%3Bfor%28c%20in%20a%29%7Bb%5Bc%5D%3D%7B%7D%3Bfor%28var%20d%20in%20a%5Bc%5D%29%7Bvar%20e%3Da%5Bc%5D%5Bd%5D%3Bb%5Bc%5D%5Bd%5D%3De%20instanceof%20THREE%2EColor%7C%7Ce%20instanceof%20THREE%2EVector2%7C%7Ce%20instanceof%20THREE%2EVector3%7C%7Ce%20instanceof%20THREE%2EVector4%7C%7Ce%20instanceof%20THREE%2EMatrix4%7C%7Ce%20instanceof%20THREE%2ETexture%3Fe%2Eclone%28%29%3Ae%20instanceof%20Array%3Fe%2Eslice%28%29%3Ae%7D%7Dreturn%20b%7D%7D%3B%0ATHREE%2EUniformsLib%3D%7Bcommon%3A%7Bdiffuse%3A%7Btype%3A%22c%22%2Cvalue%3Anew%20THREE%2EColor%2815658734%29%7D%2Copacity%3A%7Btype%3A%22f%22%2Cvalue%3A1%7D%2Cmap%3A%7Btype%3A%22t%22%2Cvalue%3Anull%7D%2CoffsetRepeat%3A%7Btype%3A%22v4%22%2Cvalue%3Anew%20THREE%2EVector4%280%2C0%2C1%2C1%29%7D%2ClightMap%3A%7Btype%3A%22t%22%2Cvalue%3Anull%7D%2CspecularMap%3A%7Btype%3A%22t%22%2Cvalue%3Anull%7D%2CalphaMap%3A%7Btype%3A%22t%22%2Cvalue%3Anull%7D%2CenvMap%3A%7Btype%3A%22t%22%2Cvalue%3Anull%7D%2CflipEnvMap%3A%7Btype%3A%22f%22%2Cvalue%3A%2D1%7D%2Creflectivity%3A%7Btype%3A%22f%22%2Cvalue%3A1%7D%2CrefractionRatio%3A%7Btype%3A%22f%22%2Cvalue%3A%2E98%7D%2CmorphTargetInfluences%3A%7Btype%3A%22f%22%2Cvalue%3A0%7D%7D%2Cbump%3A%7BbumpMap%3A%7Btype%3A%22t%22%2Cvalue%3Anull%7D%2CbumpScale%3A%7Btype%3A%22f%22%2C%0Avalue%3A1%7D%7D%2Cnormalmap%3A%7BnormalMap%3A%7Btype%3A%22t%22%2Cvalue%3Anull%7D%2CnormalScale%3A%7Btype%3A%22v2%22%2Cvalue%3Anew%20THREE%2EVector2%281%2C1%29%7D%7D%2Cfog%3A%7BfogDensity%3A%7Btype%3A%22f%22%2Cvalue%3A2%2E5E%2D4%7D%2CfogNear%3A%7Btype%3A%22f%22%2Cvalue%3A1%7D%2CfogFar%3A%7Btype%3A%22f%22%2Cvalue%3A2E3%7D%2CfogColor%3A%7Btype%3A%22c%22%2Cvalue%3Anew%20THREE%2EColor%2816777215%29%7D%7D%2Clights%3A%7BambientLightColor%3A%7Btype%3A%22fv%22%2Cvalue%3A%5B%5D%7D%2CdirectionalLightDirection%3A%7Btype%3A%22fv%22%2Cvalue%3A%5B%5D%7D%2CdirectionalLightColor%3A%7Btype%3A%22fv%22%2Cvalue%3A%5B%5D%7D%2ChemisphereLightDirection%3A%7Btype%3A%22fv%22%2Cvalue%3A%5B%5D%7D%2ChemisphereLightSkyColor%3A%7Btype%3A%22fv%22%2Cvalue%3A%5B%5D%7D%2ChemisphereLightGroundColor%3A%7Btype%3A%22fv%22%2C%0Avalue%3A%5B%5D%7D%2CpointLightColor%3A%7Btype%3A%22fv%22%2Cvalue%3A%5B%5D%7D%2CpointLightPosition%3A%7Btype%3A%22fv%22%2Cvalue%3A%5B%5D%7D%2CpointLightDistance%3A%7Btype%3A%22fv1%22%2Cvalue%3A%5B%5D%7D%2CspotLightColor%3A%7Btype%3A%22fv%22%2Cvalue%3A%5B%5D%7D%2CspotLightPosition%3A%7Btype%3A%22fv%22%2Cvalue%3A%5B%5D%7D%2CspotLightDirection%3A%7Btype%3A%22fv%22%2Cvalue%3A%5B%5D%7D%2CspotLightDistance%3A%7Btype%3A%22fv1%22%2Cvalue%3A%5B%5D%7D%2CspotLightAngleCos%3A%7Btype%3A%22fv1%22%2Cvalue%3A%5B%5D%7D%2CspotLightExponent%3A%7Btype%3A%22fv1%22%2Cvalue%3A%5B%5D%7D%7D%2Cparticle%3A%7BpsColor%3A%7Btype%3A%22c%22%2Cvalue%3Anew%20THREE%2EColor%2815658734%29%7D%2Copacity%3A%7Btype%3A%22f%22%2Cvalue%3A1%7D%2Csize%3A%7Btype%3A%22f%22%2Cvalue%3A1%7D%2Cscale%3A%7Btype%3A%22f%22%2Cvalue%3A1%7D%2C%0Amap%3A%7Btype%3A%22t%22%2Cvalue%3Anull%7D%2CfogDensity%3A%7Btype%3A%22f%22%2Cvalue%3A2%2E5E%2D4%7D%2CfogNear%3A%7Btype%3A%22f%22%2Cvalue%3A1%7D%2CfogFar%3A%7Btype%3A%22f%22%2Cvalue%3A2E3%7D%2CfogColor%3A%7Btype%3A%22c%22%2Cvalue%3Anew%20THREE%2EColor%2816777215%29%7D%7D%2Cshadowmap%3A%7BshadowMap%3A%7Btype%3A%22tv%22%2Cvalue%3A%5B%5D%7D%2CshadowMapSize%3A%7Btype%3A%22v2v%22%2Cvalue%3A%5B%5D%7D%2CshadowBias%3A%7Btype%3A%22fv1%22%2Cvalue%3A%5B%5D%7D%2CshadowDarkness%3A%7Btype%3A%22fv1%22%2Cvalue%3A%5B%5D%7D%2CshadowMatrix%3A%7Btype%3A%22m4v%22%2Cvalue%3A%5B%5D%7D%7D%7D%3B%0ATHREE%2EShaderLib%3D%7Bbasic%3A%7Buniforms%3ATHREE%2EUniformsUtils%2Emerge%28%5BTHREE%2EUniformsLib%2Ecommon%2CTHREE%2EUniformsLib%2Efog%2CTHREE%2EUniformsLib%2Eshadowmap%5D%29%2CvertexShader%3A%5BTHREE%2EShaderChunk%2Emap%5Fpars%5Fvertex%2CTHREE%2EShaderChunk%2Elightmap%5Fpars%5Fvertex%2CTHREE%2EShaderChunk%2Eenvmap%5Fpars%5Fvertex%2CTHREE%2EShaderChunk%2Ecolor%5Fpars%5Fvertex%2CTHREE%2EShaderChunk%2Emorphtarget%5Fpars%5Fvertex%2CTHREE%2EShaderChunk%2Eskinning%5Fpars%5Fvertex%2CTHREE%2EShaderChunk%2Eshadowmap%5Fpars%5Fvertex%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Fpars%5Fvertex%2C%22void%20main%28%29%20%7B%22%2CTHREE%2EShaderChunk%2Emap%5Fvertex%2C%0ATHREE%2EShaderChunk%2Elightmap%5Fvertex%2CTHREE%2EShaderChunk%2Ecolor%5Fvertex%2CTHREE%2EShaderChunk%2Eskinbase%5Fvertex%2C%22%5Ct%23ifdef%20USE%5FENVMAP%22%2CTHREE%2EShaderChunk%2Emorphnormal%5Fvertex%2CTHREE%2EShaderChunk%2Eskinnormal%5Fvertex%2CTHREE%2EShaderChunk%2Edefaultnormal%5Fvertex%2C%22%5Ct%23endif%22%2CTHREE%2EShaderChunk%2Emorphtarget%5Fvertex%2CTHREE%2EShaderChunk%2Eskinning%5Fvertex%2CTHREE%2EShaderChunk%2Edefault%5Fvertex%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Fvertex%2CTHREE%2EShaderChunk%2Eworldpos%5Fvertex%2CTHREE%2EShaderChunk%2Eenvmap%5Fvertex%2CTHREE%2EShaderChunk%2Eshadowmap%5Fvertex%2C%22%7D%22%5D%2Ejoin%28%22%5Cn%22%29%2C%0AfragmentShader%3A%5B%22uniform%20vec3%20diffuse%3B%5Cnuniform%20float%20opacity%3B%22%2CTHREE%2EShaderChunk%2Ecolor%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Emap%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Ealphamap%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Elightmap%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Eenvmap%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Efog%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Eshadowmap%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Especularmap%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Fpars%5Ffragment%2C%22void%20main%28%29%20%7B%5Cn%5Ctgl%5FFragColor%20%3D%20vec4%28%20diffuse%2C%20opacity%20%29%3B%22%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Ffragment%2C%0ATHREE%2EShaderChunk%2Emap%5Ffragment%2CTHREE%2EShaderChunk%2Ealphamap%5Ffragment%2CTHREE%2EShaderChunk%2Ealphatest%5Ffragment%2CTHREE%2EShaderChunk%2Especularmap%5Ffragment%2CTHREE%2EShaderChunk%2Elightmap%5Ffragment%2CTHREE%2EShaderChunk%2Ecolor%5Ffragment%2CTHREE%2EShaderChunk%2Eenvmap%5Ffragment%2CTHREE%2EShaderChunk%2Eshadowmap%5Ffragment%2CTHREE%2EShaderChunk%2Elinear%5Fto%5Fgamma%5Ffragment%2CTHREE%2EShaderChunk%2Efog%5Ffragment%2C%22%7D%22%5D%2Ejoin%28%22%5Cn%22%29%7D%2Clambert%3A%7Buniforms%3ATHREE%2EUniformsUtils%2Emerge%28%5BTHREE%2EUniformsLib%2Ecommon%2CTHREE%2EUniformsLib%2Efog%2CTHREE%2EUniformsLib%2Elights%2CTHREE%2EUniformsLib%2Eshadowmap%2C%0A%7Bambient%3A%7Btype%3A%22c%22%2Cvalue%3Anew%20THREE%2EColor%2816777215%29%7D%2Cemissive%3A%7Btype%3A%22c%22%2Cvalue%3Anew%20THREE%2EColor%280%29%7D%2CwrapRGB%3A%7Btype%3A%22v3%22%2Cvalue%3Anew%20THREE%2EVector3%281%2C1%2C1%29%7D%7D%5D%29%2CvertexShader%3A%5B%22%23define%20LAMBERT%5Cnvarying%20vec3%20vLightFront%3B%5Cn%23ifdef%20DOUBLE%5FSIDED%5Cn%5Ctvarying%20vec3%20vLightBack%3B%5Cn%23endif%22%2CTHREE%2EShaderChunk%2Emap%5Fpars%5Fvertex%2CTHREE%2EShaderChunk%2Elightmap%5Fpars%5Fvertex%2CTHREE%2EShaderChunk%2Eenvmap%5Fpars%5Fvertex%2CTHREE%2EShaderChunk%2Elights%5Flambert%5Fpars%5Fvertex%2CTHREE%2EShaderChunk%2Ecolor%5Fpars%5Fvertex%2CTHREE%2EShaderChunk%2Emorphtarget%5Fpars%5Fvertex%2CTHREE%2EShaderChunk%2Eskinning%5Fpars%5Fvertex%2C%0ATHREE%2EShaderChunk%2Eshadowmap%5Fpars%5Fvertex%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Fpars%5Fvertex%2C%22void%20main%28%29%20%7B%22%2CTHREE%2EShaderChunk%2Emap%5Fvertex%2CTHREE%2EShaderChunk%2Elightmap%5Fvertex%2CTHREE%2EShaderChunk%2Ecolor%5Fvertex%2CTHREE%2EShaderChunk%2Emorphnormal%5Fvertex%2CTHREE%2EShaderChunk%2Eskinbase%5Fvertex%2CTHREE%2EShaderChunk%2Eskinnormal%5Fvertex%2CTHREE%2EShaderChunk%2Edefaultnormal%5Fvertex%2CTHREE%2EShaderChunk%2Emorphtarget%5Fvertex%2CTHREE%2EShaderChunk%2Eskinning%5Fvertex%2CTHREE%2EShaderChunk%2Edefault%5Fvertex%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Fvertex%2CTHREE%2EShaderChunk%2Eworldpos%5Fvertex%2C%0ATHREE%2EShaderChunk%2Eenvmap%5Fvertex%2CTHREE%2EShaderChunk%2Elights%5Flambert%5Fvertex%2CTHREE%2EShaderChunk%2Eshadowmap%5Fvertex%2C%22%7D%22%5D%2Ejoin%28%22%5Cn%22%29%2CfragmentShader%3A%5B%22uniform%20float%20opacity%3B%5Cnvarying%20vec3%20vLightFront%3B%5Cn%23ifdef%20DOUBLE%5FSIDED%5Cn%5Ctvarying%20vec3%20vLightBack%3B%5Cn%23endif%22%2CTHREE%2EShaderChunk%2Ecolor%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Emap%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Ealphamap%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Elightmap%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Eenvmap%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Efog%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Eshadowmap%5Fpars%5Ffragment%2C%0ATHREE%2EShaderChunk%2Especularmap%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Fpars%5Ffragment%2C%22void%20main%28%29%20%7B%5Cn%5Ctgl%5FFragColor%20%3D%20vec4%28%20vec3%28%201%2E0%20%29%2C%20opacity%20%29%3B%22%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Ffragment%2CTHREE%2EShaderChunk%2Emap%5Ffragment%2CTHREE%2EShaderChunk%2Ealphamap%5Ffragment%2CTHREE%2EShaderChunk%2Ealphatest%5Ffragment%2CTHREE%2EShaderChunk%2Especularmap%5Ffragment%2C%22%5Ct%23ifdef%20DOUBLE%5FSIDED%5Cn%5Ct%5Ctif%20%28%20gl%5FFrontFacing%20%29%5Cn%5Ct%5Ct%5Ctgl%5FFragColor%2Exyz%20%2A%3D%20vLightFront%3B%5Cn%5Ct%5Ctelse%5Cn%5Ct%5Ct%5Ctgl%5FFragColor%2Exyz%20%2A%3D%20vLightBack%3B%5Cn%5Ct%23else%5Cn%5Ct%5Ctgl%5FFragColor%2Exyz%20%2A%3D%20vLightFront%3B%5Cn%5Ct%23endif%22%2C%0ATHREE%2EShaderChunk%2Elightmap%5Ffragment%2CTHREE%2EShaderChunk%2Ecolor%5Ffragment%2CTHREE%2EShaderChunk%2Eenvmap%5Ffragment%2CTHREE%2EShaderChunk%2Eshadowmap%5Ffragment%2CTHREE%2EShaderChunk%2Elinear%5Fto%5Fgamma%5Ffragment%2CTHREE%2EShaderChunk%2Efog%5Ffragment%2C%22%7D%22%5D%2Ejoin%28%22%5Cn%22%29%7D%2Cphong%3A%7Buniforms%3ATHREE%2EUniformsUtils%2Emerge%28%5BTHREE%2EUniformsLib%2Ecommon%2CTHREE%2EUniformsLib%2Ebump%2CTHREE%2EUniformsLib%2Enormalmap%2CTHREE%2EUniformsLib%2Efog%2CTHREE%2EUniformsLib%2Elights%2CTHREE%2EUniformsLib%2Eshadowmap%2C%7Bambient%3A%7Btype%3A%22c%22%2Cvalue%3Anew%20THREE%2EColor%2816777215%29%7D%2Cemissive%3A%7Btype%3A%22c%22%2Cvalue%3Anew%20THREE%2EColor%280%29%7D%2C%0Aspecular%3A%7Btype%3A%22c%22%2Cvalue%3Anew%20THREE%2EColor%281118481%29%7D%2Cshininess%3A%7Btype%3A%22f%22%2Cvalue%3A30%7D%2CwrapRGB%3A%7Btype%3A%22v3%22%2Cvalue%3Anew%20THREE%2EVector3%281%2C1%2C1%29%7D%7D%5D%29%2CvertexShader%3A%5B%22%23define%20PHONG%5Cnvarying%20vec3%20vViewPosition%3B%5Cnvarying%20vec3%20vNormal%3B%22%2CTHREE%2EShaderChunk%2Emap%5Fpars%5Fvertex%2CTHREE%2EShaderChunk%2Elightmap%5Fpars%5Fvertex%2CTHREE%2EShaderChunk%2Eenvmap%5Fpars%5Fvertex%2CTHREE%2EShaderChunk%2Elights%5Fphong%5Fpars%5Fvertex%2CTHREE%2EShaderChunk%2Ecolor%5Fpars%5Fvertex%2CTHREE%2EShaderChunk%2Emorphtarget%5Fpars%5Fvertex%2CTHREE%2EShaderChunk%2Eskinning%5Fpars%5Fvertex%2CTHREE%2EShaderChunk%2Eshadowmap%5Fpars%5Fvertex%2C%0ATHREE%2EShaderChunk%2Elogdepthbuf%5Fpars%5Fvertex%2C%22void%20main%28%29%20%7B%22%2CTHREE%2EShaderChunk%2Emap%5Fvertex%2CTHREE%2EShaderChunk%2Elightmap%5Fvertex%2CTHREE%2EShaderChunk%2Ecolor%5Fvertex%2CTHREE%2EShaderChunk%2Emorphnormal%5Fvertex%2CTHREE%2EShaderChunk%2Eskinbase%5Fvertex%2CTHREE%2EShaderChunk%2Eskinnormal%5Fvertex%2CTHREE%2EShaderChunk%2Edefaultnormal%5Fvertex%2C%22%5CtvNormal%20%3D%20normalize%28%20transformedNormal%20%29%3B%22%2CTHREE%2EShaderChunk%2Emorphtarget%5Fvertex%2CTHREE%2EShaderChunk%2Eskinning%5Fvertex%2CTHREE%2EShaderChunk%2Edefault%5Fvertex%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Fvertex%2C%22%5CtvViewPosition%20%3D%20%2DmvPosition%2Exyz%3B%22%2C%0ATHREE%2EShaderChunk%2Eworldpos%5Fvertex%2CTHREE%2EShaderChunk%2Eenvmap%5Fvertex%2CTHREE%2EShaderChunk%2Elights%5Fphong%5Fvertex%2CTHREE%2EShaderChunk%2Eshadowmap%5Fvertex%2C%22%7D%22%5D%2Ejoin%28%22%5Cn%22%29%2CfragmentShader%3A%5B%22%23define%20PHONG%5Cnuniform%20vec3%20diffuse%3B%5Cnuniform%20float%20opacity%3B%5Cnuniform%20vec3%20ambient%3B%5Cnuniform%20vec3%20emissive%3B%5Cnuniform%20vec3%20specular%3B%5Cnuniform%20float%20shininess%3B%22%2CTHREE%2EShaderChunk%2Ecolor%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Emap%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Ealphamap%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Elightmap%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Eenvmap%5Fpars%5Ffragment%2C%0ATHREE%2EShaderChunk%2Efog%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Elights%5Fphong%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Eshadowmap%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Ebumpmap%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Enormalmap%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Especularmap%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Fpars%5Ffragment%2C%22void%20main%28%29%20%7B%5Cn%5Ctgl%5FFragColor%20%3D%20vec4%28%20vec3%28%201%2E0%20%29%2C%20opacity%20%29%3B%22%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Ffragment%2CTHREE%2EShaderChunk%2Emap%5Ffragment%2CTHREE%2EShaderChunk%2Ealphamap%5Ffragment%2CTHREE%2EShaderChunk%2Ealphatest%5Ffragment%2CTHREE%2EShaderChunk%2Especularmap%5Ffragment%2C%0ATHREE%2EShaderChunk%2Elights%5Fphong%5Ffragment%2CTHREE%2EShaderChunk%2Elightmap%5Ffragment%2CTHREE%2EShaderChunk%2Ecolor%5Ffragment%2CTHREE%2EShaderChunk%2Eenvmap%5Ffragment%2CTHREE%2EShaderChunk%2Eshadowmap%5Ffragment%2CTHREE%2EShaderChunk%2Elinear%5Fto%5Fgamma%5Ffragment%2CTHREE%2EShaderChunk%2Efog%5Ffragment%2C%22%7D%22%5D%2Ejoin%28%22%5Cn%22%29%7D%2Cparticle%5Fbasic%3A%7Buniforms%3ATHREE%2EUniformsUtils%2Emerge%28%5BTHREE%2EUniformsLib%2Eparticle%2CTHREE%2EUniformsLib%2Eshadowmap%5D%29%2CvertexShader%3A%5B%22uniform%20float%20size%3B%5Cnuniform%20float%20scale%3B%22%2CTHREE%2EShaderChunk%2Ecolor%5Fpars%5Fvertex%2CTHREE%2EShaderChunk%2Eshadowmap%5Fpars%5Fvertex%2C%0ATHREE%2EShaderChunk%2Elogdepthbuf%5Fpars%5Fvertex%2C%22void%20main%28%29%20%7B%22%2CTHREE%2EShaderChunk%2Ecolor%5Fvertex%2C%22%5Ctvec4%20mvPosition%20%3D%20modelViewMatrix%20%2A%20vec4%28%20position%2C%201%2E0%20%29%3B%5Cn%5Ct%23ifdef%20USE%5FSIZEATTENUATION%5Cn%5Ct%5Ctgl%5FPointSize%20%3D%20size%20%2A%20%28%20scale%20%2F%20length%28%20mvPosition%2Exyz%20%29%20%29%3B%5Cn%5Ct%23else%5Cn%5Ct%5Ctgl%5FPointSize%20%3D%20size%3B%5Cn%5Ct%23endif%5Cn%5Ctgl%5FPosition%20%3D%20projectionMatrix%20%2A%20mvPosition%3B%22%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Fvertex%2CTHREE%2EShaderChunk%2Eworldpos%5Fvertex%2CTHREE%2EShaderChunk%2Eshadowmap%5Fvertex%2C%22%7D%22%5D%2Ejoin%28%22%5Cn%22%29%2CfragmentShader%3A%5B%22uniform%20vec3%20psColor%3B%5Cnuniform%20float%20opacity%3B%22%2C%0ATHREE%2EShaderChunk%2Ecolor%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Emap%5Fparticle%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Efog%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Eshadowmap%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Fpars%5Ffragment%2C%22void%20main%28%29%20%7B%5Cn%5Ctgl%5FFragColor%20%3D%20vec4%28%20psColor%2C%20opacity%20%29%3B%22%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Ffragment%2CTHREE%2EShaderChunk%2Emap%5Fparticle%5Ffragment%2CTHREE%2EShaderChunk%2Ealphatest%5Ffragment%2CTHREE%2EShaderChunk%2Ecolor%5Ffragment%2CTHREE%2EShaderChunk%2Eshadowmap%5Ffragment%2CTHREE%2EShaderChunk%2Efog%5Ffragment%2C%22%7D%22%5D%2Ejoin%28%22%5Cn%22%29%7D%2Cdashed%3A%7Buniforms%3ATHREE%2EUniformsUtils%2Emerge%28%5BTHREE%2EUniformsLib%2Ecommon%2C%0ATHREE%2EUniformsLib%2Efog%2C%7Bscale%3A%7Btype%3A%22f%22%2Cvalue%3A1%7D%2CdashSize%3A%7Btype%3A%22f%22%2Cvalue%3A1%7D%2CtotalSize%3A%7Btype%3A%22f%22%2Cvalue%3A2%7D%7D%5D%29%2CvertexShader%3A%5B%22uniform%20float%20scale%3B%5Cnattribute%20float%20lineDistance%3B%5Cnvarying%20float%20vLineDistance%3B%22%2CTHREE%2EShaderChunk%2Ecolor%5Fpars%5Fvertex%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Fpars%5Fvertex%2C%22void%20main%28%29%20%7B%22%2CTHREE%2EShaderChunk%2Ecolor%5Fvertex%2C%22%5CtvLineDistance%20%3D%20scale%20%2A%20lineDistance%3B%5Cn%5Ctvec4%20mvPosition%20%3D%20modelViewMatrix%20%2A%20vec4%28%20position%2C%201%2E0%20%29%3B%5Cn%5Ctgl%5FPosition%20%3D%20projectionMatrix%20%2A%20mvPosition%3B%22%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Fvertex%2C%0A%22%7D%22%5D%2Ejoin%28%22%5Cn%22%29%2CfragmentShader%3A%5B%22uniform%20vec3%20diffuse%3B%5Cnuniform%20float%20opacity%3B%5Cnuniform%20float%20dashSize%3B%5Cnuniform%20float%20totalSize%3B%5Cnvarying%20float%20vLineDistance%3B%22%2CTHREE%2EShaderChunk%2Ecolor%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Efog%5Fpars%5Ffragment%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Fpars%5Ffragment%2C%22void%20main%28%29%20%7B%5Cn%5Ctif%20%28%20mod%28%20vLineDistance%2C%20totalSize%20%29%20%3E%20dashSize%20%29%20%7B%5Cn%5Ct%5Ctdiscard%3B%5Cn%5Ct%7D%5Cn%5Ctgl%5FFragColor%20%3D%20vec4%28%20diffuse%2C%20opacity%20%29%3B%22%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Ffragment%2CTHREE%2EShaderChunk%2Ecolor%5Ffragment%2CTHREE%2EShaderChunk%2Efog%5Ffragment%2C%0A%22%7D%22%5D%2Ejoin%28%22%5Cn%22%29%7D%2Cdepth%3A%7Buniforms%3A%7BmNear%3A%7Btype%3A%22f%22%2Cvalue%3A1%7D%2CmFar%3A%7Btype%3A%22f%22%2Cvalue%3A2E3%7D%2Copacity%3A%7Btype%3A%22f%22%2Cvalue%3A1%7D%7D%2CvertexShader%3A%5BTHREE%2EShaderChunk%2Emorphtarget%5Fpars%5Fvertex%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Fpars%5Fvertex%2C%22void%20main%28%29%20%7B%22%2CTHREE%2EShaderChunk%2Emorphtarget%5Fvertex%2CTHREE%2EShaderChunk%2Edefault%5Fvertex%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Fvertex%2C%22%7D%22%5D%2Ejoin%28%22%5Cn%22%29%2CfragmentShader%3A%5B%22uniform%20float%20mNear%3B%5Cnuniform%20float%20mFar%3B%5Cnuniform%20float%20opacity%3B%22%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Fpars%5Ffragment%2C%22void%20main%28%29%20%7B%22%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Ffragment%2C%0A%22%5Ct%23ifdef%20USE%5FLOGDEPTHBUF%5FEXT%5Cn%5Ct%5Ctfloat%20depth%20%3D%20gl%5FFragDepthEXT%20%2F%20gl%5FFragCoord%2Ew%3B%5Cn%5Ct%23else%5Cn%5Ct%5Ctfloat%20depth%20%3D%20gl%5FFragCoord%2Ez%20%2F%20gl%5FFragCoord%2Ew%3B%5Cn%5Ct%23endif%5Cn%5Ctfloat%20color%20%3D%201%2E0%20%2D%20smoothstep%28%20mNear%2C%20mFar%2C%20depth%20%29%3B%5Cn%5Ctgl%5FFragColor%20%3D%20vec4%28%20vec3%28%20color%20%29%2C%20opacity%20%29%3B%5Cn%7D%22%5D%2Ejoin%28%22%5Cn%22%29%7D%2Cnormal%3A%7Buniforms%3A%7Bopacity%3A%7Btype%3A%22f%22%2Cvalue%3A1%7D%7D%2CvertexShader%3A%5B%22varying%20vec3%20vNormal%3B%22%2CTHREE%2EShaderChunk%2Emorphtarget%5Fpars%5Fvertex%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Fpars%5Fvertex%2C%22void%20main%28%29%20%7B%5Cn%5CtvNormal%20%3D%20normalize%28%20normalMatrix%20%2A%20normal%20%29%3B%22%2C%0ATHREE%2EShaderChunk%2Emorphtarget%5Fvertex%2CTHREE%2EShaderChunk%2Edefault%5Fvertex%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Fvertex%2C%22%7D%22%5D%2Ejoin%28%22%5Cn%22%29%2CfragmentShader%3A%5B%22uniform%20float%20opacity%3B%5Cnvarying%20vec3%20vNormal%3B%22%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Fpars%5Ffragment%2C%22void%20main%28%29%20%7B%5Cn%5Ctgl%5FFragColor%20%3D%20vec4%28%200%2E5%20%2A%20normalize%28%20vNormal%20%29%20%2B%200%2E5%2C%20opacity%20%29%3B%22%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Ffragment%2C%22%7D%22%5D%2Ejoin%28%22%5Cn%22%29%7D%2Ccube%3A%7Buniforms%3A%7BtCube%3A%7Btype%3A%22t%22%2Cvalue%3Anull%7D%2CtFlip%3A%7Btype%3A%22f%22%2Cvalue%3A%2D1%7D%7D%2CvertexShader%3A%5B%22varying%20vec3%20vWorldPosition%3B%22%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Fpars%5Fvertex%2C%0A%22void%20main%28%29%20%7B%5Cn%5Ctvec4%20worldPosition%20%3D%20modelMatrix%20%2A%20vec4%28%20position%2C%201%2E0%20%29%3B%5Cn%5CtvWorldPosition%20%3D%20worldPosition%2Exyz%3B%5Cn%5Ctgl%5FPosition%20%3D%20projectionMatrix%20%2A%20modelViewMatrix%20%2A%20vec4%28%20position%2C%201%2E0%20%29%3B%22%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Fvertex%2C%22%7D%22%5D%2Ejoin%28%22%5Cn%22%29%2CfragmentShader%3A%5B%22uniform%20samplerCube%20tCube%3B%5Cnuniform%20float%20tFlip%3B%5Cnvarying%20vec3%20vWorldPosition%3B%22%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Fpars%5Ffragment%2C%22void%20main%28%29%20%7B%5Cn%5Ctgl%5FFragColor%20%3D%20textureCube%28%20tCube%2C%20vec3%28%20tFlip%20%2A%20vWorldPosition%2Ex%2C%20vWorldPosition%2Eyz%20%29%20%29%3B%22%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Ffragment%2C%0A%22%7D%22%5D%2Ejoin%28%22%5Cn%22%29%7D%2Cequirect%3A%7Buniforms%3A%7BtEquirect%3A%7Btype%3A%22t%22%2Cvalue%3Anull%7D%2CtFlip%3A%7Btype%3A%22f%22%2Cvalue%3A%2D1%7D%7D%2CvertexShader%3A%5B%22varying%20vec3%20vWorldPosition%3B%22%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Fpars%5Fvertex%2C%22void%20main%28%29%20%7B%5Cn%5Ctvec4%20worldPosition%20%3D%20modelMatrix%20%2A%20vec4%28%20position%2C%201%2E0%20%29%3B%5Cn%5CtvWorldPosition%20%3D%20worldPosition%2Exyz%3B%5Cn%5Ctgl%5FPosition%20%3D%20projectionMatrix%20%2A%20modelViewMatrix%20%2A%20vec4%28%20position%2C%201%2E0%20%29%3B%22%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Fvertex%2C%22%7D%22%5D%2Ejoin%28%22%5Cn%22%29%2CfragmentShader%3A%5B%22uniform%20sampler2D%20tEquirect%3B%5Cnuniform%20float%20tFlip%3B%5Cnvarying%20vec3%20vWorldPosition%3B%22%2C%0ATHREE%2EShaderChunk%2Elogdepthbuf%5Fpars%5Ffragment%2C%22void%20main%28%29%20%7B%5Cnvec3%20direction%20%3D%20normalize%28%20vWorldPosition%20%29%3B%5Cnvec2%20sampleUV%3B%5CnsampleUV%2Ey%20%3D%20clamp%28%20tFlip%20%2A%20direction%2Ey%20%2A%20%2D0%2E5%20%2B%200%2E5%2C%200%2E0%2C%201%2E0%29%3B%5CnsampleUV%2Ex%20%3D%20atan%28%20direction%2Ez%2C%20direction%2Ex%20%29%20%2A%200%2E15915494309189533576888376337251%20%2B%200%2E5%3B%5Cngl%5FFragColor%20%3D%20texture2D%28%20tEquirect%2C%20sampleUV%20%29%3B%22%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Ffragment%2C%22%7D%22%5D%2Ejoin%28%22%5Cn%22%29%7D%2CdepthRGBA%3A%7Buniforms%3A%7B%7D%2CvertexShader%3A%5BTHREE%2EShaderChunk%2Emorphtarget%5Fpars%5Fvertex%2CTHREE%2EShaderChunk%2Eskinning%5Fpars%5Fvertex%2C%0ATHREE%2EShaderChunk%2Elogdepthbuf%5Fpars%5Fvertex%2C%22void%20main%28%29%20%7B%22%2CTHREE%2EShaderChunk%2Eskinbase%5Fvertex%2CTHREE%2EShaderChunk%2Emorphtarget%5Fvertex%2CTHREE%2EShaderChunk%2Eskinning%5Fvertex%2CTHREE%2EShaderChunk%2Edefault%5Fvertex%2CTHREE%2EShaderChunk%2Elogdepthbuf%5Fvertex%2C%22%7D%22%5D%2Ejoin%28%22%5Cn%22%29%2CfragmentShader%3A%5BTHREE%2EShaderChunk%2Elogdepthbuf%5Fpars%5Ffragment%2C%22vec4%20pack%5Fdepth%28%20const%20in%20float%20depth%20%29%20%7B%5Cn%5Ctconst%20vec4%20bit%5Fshift%20%3D%20vec4%28%20256%2E0%20%2A%20256%2E0%20%2A%20256%2E0%2C%20256%2E0%20%2A%20256%2E0%2C%20256%2E0%2C%201%2E0%20%29%3B%5Cn%5Ctconst%20vec4%20bit%5Fmask%20%3D%20vec4%28%200%2E0%2C%201%2E0%20%2F%20256%2E0%2C%201%2E0%20%2F%20256%2E0%2C%201%2E0%20%2F%20256%2E0%20%29%3B%5Cn%5Ctvec4%20res%20%3D%20mod%28%20depth%20%2A%20bit%5Fshift%20%2A%20vec4%28%20255%20%29%2C%20vec4%28%20256%20%29%20%29%20%2F%20vec4%28%20255%20%29%3B%5Cn%5Ctres%20%2D%3D%20res%2Exxyz%20%2A%20bit%5Fmask%3B%5Cn%5Ctreturn%20res%3B%5Cn%7D%5Cnvoid%20main%28%29%20%7B%22%2C%0ATHREE%2EShaderChunk%2Elogdepthbuf%5Ffragment%2C%22%5Ct%23ifdef%20USE%5FLOGDEPTHBUF%5FEXT%5Cn%5Ct%5Ctgl%5FFragData%5B%200%20%5D%20%3D%20pack%5Fdepth%28%20gl%5FFragDepthEXT%20%29%3B%5Cn%5Ct%23else%5Cn%5Ct%5Ctgl%5FFragData%5B%200%20%5D%20%3D%20pack%5Fdepth%28%20gl%5FFragCoord%2Ez%20%29%3B%5Cn%5Ct%23endif%5Cn%7D%22%5D%2Ejoin%28%22%5Cn%22%29%7D%7D%3B%0ATHREE%2EWebGLRenderer%3Dfunction%28a%29%7Bfunction%20b%28a%29%7Bvar%20b%3Da%2Egeometry%3Ba%3Da%2Ematerial%3Bvar%20c%3Db%2Evertices%2Elength%3Bif%28a%2Eattributes%29%7Bvoid%200%3D%3D%3Db%2E%5F%5FwebglCustomAttributesList%26%26%28b%2E%5F%5FwebglCustomAttributesList%3D%5B%5D%29%3Bfor%28var%20d%20in%20a%2Eattributes%29%7Bvar%20e%3Da%2Eattributes%5Bd%5D%3Bif%28%21e%2E%5F%5FwebglInitialized%7C%7Ce%2EcreateUniqueBuffers%29%7Be%2E%5F%5FwebglInitialized%3D%210%3Bvar%20f%3D1%3B%22v2%22%3D%3D%3De%2Etype%3Ff%3D2%3A%22v3%22%3D%3D%3De%2Etype%3Ff%3D3%3A%22v4%22%3D%3D%3De%2Etype%3Ff%3D4%3A%22c%22%3D%3D%3De%2Etype%26%26%28f%3D3%29%3Be%2Esize%3Df%3Be%2Earray%3Dnew%20Float32Array%28c%2Af%29%3Be%2Ebuffer%3Dl%2EcreateBuffer%28%29%3Be%2Ebuffer%2EbelongsToAttribute%3Dd%3Be%2EneedsUpdate%3D%0A%210%7Db%2E%5F%5FwebglCustomAttributesList%2Epush%28e%29%7D%7D%7Dfunction%20c%28a%2Cb%29%7Bvar%20c%3Db%2Egeometry%2Ce%3Da%2Efaces3%2Cf%3D3%2Ae%2Elength%2Cg%3D1%2Ae%2Elength%2Ch%3D3%2Ae%2Elength%2Ce%3Dd%28b%2Ca%29%3Ba%2E%5F%5FvertexArray%3Dnew%20Float32Array%283%2Af%29%3Ba%2E%5F%5FnormalArray%3Dnew%20Float32Array%283%2Af%29%3Ba%2E%5F%5FcolorArray%3Dnew%20Float32Array%283%2Af%29%3Ba%2E%5F%5FuvArray%3Dnew%20Float32Array%282%2Af%29%3B1%3Cc%2EfaceVertexUvs%2Elength%26%26%28a%2E%5F%5Fuv2Array%3Dnew%20Float32Array%282%2Af%29%29%3Bc%2EhasTangents%26%26%28a%2E%5F%5FtangentArray%3Dnew%20Float32Array%284%2Af%29%29%3Bb%2Egeometry%2EskinWeights%2Elength%26%26b%2Egeometry%2EskinIndices%2Elength%26%26%28a%2E%5F%5FskinIndexArray%3Dnew%20Float32Array%284%2A%0Af%29%2Ca%2E%5F%5FskinWeightArray%3Dnew%20Float32Array%284%2Af%29%29%3Bc%3Dnull%21%3D%3Daa%2Eget%28%22OES%5Felement%5Findex%5Fuint%22%29%26%2621845%3Cg%3FUint32Array%3AUint16Array%3Ba%2E%5F%5FtypeArray%3Dc%3Ba%2E%5F%5FfaceArray%3Dnew%20c%283%2Ag%29%3Ba%2E%5F%5FlineArray%3Dnew%20c%282%2Ah%29%3Bvar%20k%3Da%2EnumMorphTargets%3Bif%28k%29for%28a%2E%5F%5FmorphTargetsArrays%3D%5B%5D%2Cc%3D0%3Bc%3Ck%3Bc%2B%2B%29a%2E%5F%5FmorphTargetsArrays%2Epush%28new%20Float32Array%283%2Af%29%29%3Bif%28k%3Da%2EnumMorphNormals%29for%28a%2E%5F%5FmorphNormalsArrays%3D%5B%5D%2Cc%3D0%3Bc%3Ck%3Bc%2B%2B%29a%2E%5F%5FmorphNormalsArrays%2Epush%28new%20Float32Array%283%2Af%29%29%3Ba%2E%5F%5FwebglFaceCount%3D3%2Ag%3Ba%2E%5F%5FwebglLineCount%3D2%2Ah%3Bif%28e%2Eattributes%29%7Bvoid%200%3D%3D%3Da%2E%5F%5FwebglCustomAttributesList%26%26%0A%28a%2E%5F%5FwebglCustomAttributesList%3D%5B%5D%29%3Bfor%28var%20m%20in%20e%2Eattributes%29%7Bvar%20g%3De%2Eattributes%5Bm%5D%2Ch%3D%7B%7D%2Cn%3Bfor%28n%20in%20g%29h%5Bn%5D%3Dg%5Bn%5D%3Bif%28%21h%2E%5F%5FwebglInitialized%7C%7Ch%2EcreateUniqueBuffers%29h%2E%5F%5FwebglInitialized%3D%210%2Cc%3D1%2C%22v2%22%3D%3D%3Dh%2Etype%3Fc%3D2%3A%22v3%22%3D%3D%3Dh%2Etype%3Fc%3D3%3A%22v4%22%3D%3D%3Dh%2Etype%3Fc%3D4%3A%22c%22%3D%3D%3Dh%2Etype%26%26%28c%3D3%29%2Ch%2Esize%3Dc%2Ch%2Earray%3Dnew%20Float32Array%28f%2Ac%29%2Ch%2Ebuffer%3Dl%2EcreateBuffer%28%29%2Ch%2Ebuffer%2EbelongsToAttribute%3Dm%2Cg%2EneedsUpdate%3D%210%2Ch%2E%5F%5Foriginal%3Dg%3Ba%2E%5F%5FwebglCustomAttributesList%2Epush%28h%29%7D%7Da%2E%5F%5FinittedArrays%3D%210%7Dfunction%20d%28a%2Cb%29%7Breturn%20a%2Ematerial%20instanceof%20THREE%2EMeshFaceMaterial%3F%0Aa%2Ematerial%2Ematerials%5Bb%2EmaterialIndex%5D%3Aa%2Ematerial%7Dfunction%20e%28a%2Cb%2Cc%2Cd%29%7Bc%3Dc%2Eattributes%3Bvar%20e%3Db%2Eattributes%3Bb%3Db%2EattributesKeys%3Bfor%28var%20f%3D0%2Ck%3Db%2Elength%3Bf%3Ck%3Bf%2B%2B%29%7Bvar%20m%3Db%5Bf%5D%2Cn%3De%5Bm%5D%3Bif%280%3C%3Dn%29%7Bvar%20p%3Dc%5Bm%5D%3Bvoid%200%21%3D%3Dp%3F%28m%3Dp%2EitemSize%2Cl%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Cp%2Ebuffer%29%2Cg%28n%29%2Cl%2EvertexAttribPointer%28n%2Cm%2Cl%2EFLOAT%2C%211%2C0%2Cd%2Am%2A4%29%29%3Avoid%200%21%3D%3Da%2EdefaultAttributeValues%26%26%282%3D%3D%3Da%2EdefaultAttributeValues%5Bm%5D%2Elength%3Fl%2EvertexAttrib2fv%28n%2Ca%2EdefaultAttributeValues%5Bm%5D%29%3A3%3D%3D%3Da%2EdefaultAttributeValues%5Bm%5D%2Elength%26%26l%2EvertexAttrib3fv%28n%2Ca%2EdefaultAttributeValues%5Bm%5D%29%29%7D%7Dh%28%29%7D%0Afunction%20f%28%29%7Bfor%28var%20a%3D0%2Cb%3Dkb%2Elength%3Ba%3Cb%3Ba%2B%2B%29kb%5Ba%5D%3D0%7Dfunction%20g%28a%29%7Bkb%5Ba%5D%3D1%3B0%3D%3D%3DMa%5Ba%5D%26%26%28l%2EenableVertexAttribArray%28a%29%2CMa%5Ba%5D%3D1%29%7Dfunction%20h%28%29%7Bfor%28var%20a%3D0%2Cb%3DMa%2Elength%3Ba%3Cb%3Ba%2B%2B%29Ma%5Ba%5D%21%3D%3Dkb%5Ba%5D%26%26%28l%2EdisableVertexAttribArray%28a%29%2CMa%5Ba%5D%3D0%29%7Dfunction%20k%28a%2Cb%29%7Breturn%20a%2Ematerial%2Eid%21%3D%3Db%2Ematerial%2Eid%3Fa%2Ematerial%2Eid%2Db%2Ematerial%2Eid%3Aa%2Ez%21%3D%3Db%2Ez%3Fa%2Ez%2Db%2Ez%3Aa%2Eid%2Db%2Eid%7Dfunction%20n%28a%2Cb%29%7Breturn%20a%2Ez%21%3D%3Db%2Ez%3Fb%2Ez%2Da%2Ez%3Aa%2Eid%2Db%2Eid%7Dfunction%20p%28a%2Cb%29%7Breturn%20b%5B0%5D%2Da%5B0%5D%7Dfunction%20q%28a%29%7Bif%28%211%21%3D%3Da%2Evisible%29%7Bif%28%21%28a%20instanceof%20THREE%2EScene%7C%7Ca%20instanceof%20THREE%2EGroup%29%29%7Bvoid%200%3D%3D%3D%0Aa%2E%5F%5FwebglInit%26%26%28a%2E%5F%5FwebglInit%3D%210%2Ca%2E%5FmodelViewMatrix%3Dnew%20THREE%2EMatrix4%2Ca%2E%5FnormalMatrix%3Dnew%20THREE%2EMatrix3%2Ca%2EaddEventListener%28%22removed%22%2Cic%29%29%3Bvar%20c%3Da%2Egeometry%3Bif%28void%200%21%3D%3Dc%26%26void%200%3D%3D%3Dc%2E%5F%5FwebglInit%29if%28c%2E%5F%5FwebglInit%3D%210%2Cc%2EaddEventListener%28%22dispose%22%2Cjc%29%2Cc%20instanceof%20THREE%2EBufferGeometry%29I%2Einfo%2Ememory%2Egeometries%2B%2B%3Belse%20if%28a%20instanceof%20THREE%2EMesh%29r%28a%2Cc%29%3Belse%20if%28a%20instanceof%20THREE%2ELine%29%7Bif%28void%200%3D%3D%3Dc%2E%5F%5FwebglVertexBuffer%29%7Bc%2E%5F%5FwebglVertexBuffer%3Dl%2EcreateBuffer%28%29%3Bc%2E%5F%5FwebglColorBuffer%3Dl%2EcreateBuffer%28%29%3Bc%2E%5F%5FwebglLineDistanceBuffer%3D%0Al%2EcreateBuffer%28%29%3BI%2Einfo%2Ememory%2Egeometries%2B%2B%3Bvar%20d%3Dc%2Evertices%2Elength%3Bc%2E%5F%5FvertexArray%3Dnew%20Float32Array%283%2Ad%29%3Bc%2E%5F%5FcolorArray%3Dnew%20Float32Array%283%2Ad%29%3Bc%2E%5F%5FlineDistanceArray%3Dnew%20Float32Array%281%2Ad%29%3Bc%2E%5F%5FwebglLineCount%3Dd%3Bb%28a%29%3Bc%2EverticesNeedUpdate%3D%210%3Bc%2EcolorsNeedUpdate%3D%210%3Bc%2ElineDistancesNeedUpdate%3D%210%7D%7Delse%20a%20instanceof%20THREE%2EPointCloud%26%26void%200%3D%3D%3Dc%2E%5F%5FwebglVertexBuffer%26%26%28c%2E%5F%5FwebglVertexBuffer%3Dl%2EcreateBuffer%28%29%2Cc%2E%5F%5FwebglColorBuffer%3Dl%2EcreateBuffer%28%29%2CI%2Einfo%2Ememory%2Egeometries%2B%2B%2Cd%3Dc%2Evertices%2Elength%2Cc%2E%5F%5FvertexArray%3Dnew%20Float32Array%283%2A%0Ad%29%2Cc%2E%5F%5FcolorArray%3Dnew%20Float32Array%283%2Ad%29%2Cc%2E%5F%5FsortArray%3D%5B%5D%2Cc%2E%5F%5FwebglParticleCount%3Dd%2Cb%28a%29%2Cc%2EverticesNeedUpdate%3D%210%2Cc%2EcolorsNeedUpdate%3D%210%29%3Bif%28void%200%3D%3D%3Da%2E%5F%5FwebglActive%29if%28a%2E%5F%5FwebglActive%3D%210%2Ca%20instanceof%20THREE%2EMesh%29if%28c%20instanceof%20THREE%2EBufferGeometry%29u%28Fa%2Cc%2Ca%29%3Belse%7Bif%28c%20instanceof%20THREE%2EGeometry%29for%28var%20c%3Dsb%5Bc%2Eid%5D%2Cd%3D0%2Ce%3Dc%2Elength%3Bd%3Ce%3Bd%2B%2B%29u%28Fa%2Cc%5Bd%5D%2Ca%29%7Delse%20a%20instanceof%20THREE%2ELine%7C%7Ca%20instanceof%20THREE%2EPointCloud%3Fu%28Fa%2Cc%2Ca%29%3A%28a%20instanceof%20THREE%2EImmediateRenderObject%7C%7Ca%2EimmediateRenderCallback%29%26%26Ga%2Epush%28%7Bid%3Anull%2C%0Aobject%3Aa%2Copaque%3Anull%2Ctransparent%3Anull%2Cz%3A0%7D%29%3Bif%28a%20instanceof%20THREE%2ELight%29pa%2Epush%28a%29%3Belse%20if%28a%20instanceof%20THREE%2ESprite%29tb%2Epush%28a%29%3Belse%20if%28a%20instanceof%20THREE%2ELensFlare%29eb%2Epush%28a%29%3Belse%20if%28%28c%3DFa%5Ba%2Eid%5D%29%26%26%28%211%3D%3D%3Da%2EfrustumCulled%7C%7C%210%3D%3D%3Dub%2EintersectsObject%28a%29%29%29for%28d%3D0%2Ce%3Dc%2Elength%3Bd%3Ce%3Bd%2B%2B%29%7Bvar%20f%3Dc%5Bd%5D%2Cg%3Df%2Ch%3Dg%2Eobject%2Ck%3Dg%2Ebuffer%2Cm%3Dh%2Egeometry%2Ch%3Dh%2Ematerial%3Bh%20instanceof%20THREE%2EMeshFaceMaterial%3F%28h%3Dh%2Ematerials%5Bm%20instanceof%20THREE%2EBufferGeometry%3F0%3Ak%2EmaterialIndex%5D%2Cg%2Ematerial%3Dh%2Ch%2Etransparent%3Fza%2Epush%28g%29%3ATa%2Epush%28g%29%29%3Ah%26%26%28g%2Ematerial%3D%0Ah%2Ch%2Etransparent%3Fza%2Epush%28g%29%3ATa%2Epush%28g%29%29%3Bf%2Erender%3D%210%3B%210%3D%3D%3DI%2EsortObjects%26%26%28Da%2EsetFromMatrixPosition%28a%2EmatrixWorld%29%2CDa%2EapplyProjection%28vb%29%2Cf%2Ez%3DDa%2Ez%29%7D%7Dd%3D0%3Bfor%28e%3Da%2Echildren%2Elength%3Bd%3Ce%3Bd%2B%2B%29q%28a%2Echildren%5Bd%5D%29%7D%7Dfunction%20m%28a%2Cb%2Cc%2Cd%2Ce%2Cf%29%7Bfor%28var%20g%2Ch%3D0%2Cl%3Da%2Elength%3Bh%3Cl%3Bh%2B%2B%29%7Bg%3Da%5Bh%5D%3Bvar%20k%3Dg%2Eobject%2Cm%3Dg%2Ebuffer%3BG%28k%2Cb%29%3Bif%28f%29g%3Df%3Belse%7Bg%3Dg%2Ematerial%3Bif%28%21g%29continue%3Be%26%26I%2EsetBlending%28g%2Eblending%2Cg%2EblendEquation%2Cg%2EblendSrc%2Cg%2EblendDst%29%3BI%2EsetDepthTest%28g%2EdepthTest%29%3BI%2EsetDepthWrite%28g%2EdepthWrite%29%3BA%28g%2EpolygonOffset%2Cg%2EpolygonOffsetFactor%2C%0Ag%2EpolygonOffsetUnits%29%7DI%2EsetMaterialFaces%28g%29%3Bm%20instanceof%20THREE%2EBufferGeometry%3FI%2ErenderBufferDirect%28b%2Cc%2Cd%2Cg%2Cm%2Ck%29%3AI%2ErenderBuffer%28b%2Cc%2Cd%2Cg%2Cm%2Ck%29%7D%7Dfunction%20t%28a%2Cb%2Cc%2Cd%2Ce%2Cf%2Cg%29%7Bfor%28var%20h%2Cl%3D0%2Ck%3Da%2Elength%3Bl%3Ck%3Bl%2B%2B%29%7Bh%3Da%5Bl%5D%3Bvar%20m%3Dh%2Eobject%3Bif%28m%2Evisible%29%7Bif%28g%29h%3Dg%3Belse%7Bh%3Dh%5Bb%5D%3Bif%28%21h%29continue%3Bf%26%26I%2EsetBlending%28h%2Eblending%2Ch%2EblendEquation%2Ch%2EblendSrc%2Ch%2EblendDst%29%3BI%2EsetDepthTest%28h%2EdepthTest%29%3BI%2EsetDepthWrite%28h%2EdepthWrite%29%3BA%28h%2EpolygonOffset%2Ch%2EpolygonOffsetFactor%2Ch%2EpolygonOffsetUnits%29%7DI%2ErenderImmediateObject%28c%2Cd%2Ce%2Ch%2Cm%29%7D%7D%7Dfunction%20s%28a%29%7Bvar%20b%3D%0Aa%2Eobject%2Ematerial%3Bb%2Etransparent%3F%28a%2Etransparent%3Db%2Ca%2Eopaque%3Dnull%29%3A%28a%2Eopaque%3Db%2Ca%2Etransparent%3Dnull%29%7Dfunction%20r%28a%2Cb%29%7Bvar%20d%3Da%2Ematerial%2Ce%3D%211%3Bif%28void%200%3D%3D%3Dsb%5Bb%2Eid%5D%7C%7C%210%3D%3D%3Db%2EgroupsNeedUpdate%29%7Bdelete%20Fa%5Ba%2Eid%5D%3Bfor%28var%20f%3Dsb%2Cg%3Db%2Eid%2Cd%3Dd%20instanceof%20THREE%2EMeshFaceMaterial%2Ch%3Daa%2Eget%28%22OES%5Felement%5Findex%5Fuint%22%29%3F4294967296%3A65535%2Ck%2Ce%3D%7B%7D%2Cm%3Db%2EmorphTargets%2Elength%2Cn%3Db%2EmorphNormals%2Elength%2Cp%2Cq%3D%7B%7D%2Cr%3D%5B%5D%2Ct%3D0%2Cs%3Db%2Efaces%2Elength%3Bt%3Cs%3Bt%2B%2B%29%7Bk%3Db%2Efaces%5Bt%5D%3Bvar%20v%3Dd%3Fk%2EmaterialIndex%3A0%3Bv%20in%20e%7C%7C%28e%5Bv%5D%3D%7Bhash%3Av%2Ccounter%3A0%7D%29%3Bk%3De%5Bv%5D%2Ehash%2B%22%5F%22%2Be%5Bv%5D%2Ecounter%3B%0Ak%20in%20q%7C%7C%28p%3D%7Bid%3Akc%2B%2B%2Cfaces3%3A%5B%5D%2CmaterialIndex%3Av%2Cvertices%3A0%2CnumMorphTargets%3Am%2CnumMorphNormals%3An%7D%2Cq%5Bk%5D%3Dp%2Cr%2Epush%28p%29%29%3Bq%5Bk%5D%2Evertices%2B3%3Eh%26%26%28e%5Bv%5D%2Ecounter%2B%3D1%2Ck%3De%5Bv%5D%2Ehash%2B%22%5F%22%2Be%5Bv%5D%2Ecounter%2Ck%20in%20q%7C%7C%28p%3D%7Bid%3Akc%2B%2B%2Cfaces3%3A%5B%5D%2CmaterialIndex%3Av%2Cvertices%3A0%2CnumMorphTargets%3Am%2CnumMorphNormals%3An%7D%2Cq%5Bk%5D%3Dp%2Cr%2Epush%28p%29%29%29%3Bq%5Bk%5D%2Efaces3%2Epush%28t%29%3Bq%5Bk%5D%2Evertices%2B%3D3%7Df%5Bg%5D%3Dr%3Bb%2EgroupsNeedUpdate%3D%211%7Df%3Dsb%5Bb%2Eid%5D%3Bg%3D0%3Bfor%28d%3Df%2Elength%3Bg%3Cd%3Bg%2B%2B%29%7Bh%3Df%5Bg%5D%3Bif%28void%200%3D%3D%3Dh%2E%5F%5FwebglVertexBuffer%29%7Be%3Dh%3Be%2E%5F%5FwebglVertexBuffer%3Dl%2EcreateBuffer%28%29%3Be%2E%5F%5FwebglNormalBuffer%3D%0Al%2EcreateBuffer%28%29%3Be%2E%5F%5FwebglTangentBuffer%3Dl%2EcreateBuffer%28%29%3Be%2E%5F%5FwebglColorBuffer%3Dl%2EcreateBuffer%28%29%3Be%2E%5F%5FwebglUVBuffer%3Dl%2EcreateBuffer%28%29%3Be%2E%5F%5FwebglUV2Buffer%3Dl%2EcreateBuffer%28%29%3Be%2E%5F%5FwebglSkinIndicesBuffer%3Dl%2EcreateBuffer%28%29%3Be%2E%5F%5FwebglSkinWeightsBuffer%3Dl%2EcreateBuffer%28%29%3Be%2E%5F%5FwebglFaceBuffer%3Dl%2EcreateBuffer%28%29%3Be%2E%5F%5FwebglLineBuffer%3Dl%2EcreateBuffer%28%29%3Bif%28n%3De%2EnumMorphTargets%29for%28e%2E%5F%5FwebglMorphTargetsBuffers%3D%5B%5D%2Cm%3D0%3Bm%3Cn%3Bm%2B%2B%29e%2E%5F%5FwebglMorphTargetsBuffers%2Epush%28l%2EcreateBuffer%28%29%29%3Bif%28n%3De%2EnumMorphNormals%29for%28e%2E%5F%5FwebglMorphNormalsBuffers%3D%0A%5B%5D%2Cm%3D0%3Bm%3Cn%3Bm%2B%2B%29e%2E%5F%5FwebglMorphNormalsBuffers%2Epush%28l%2EcreateBuffer%28%29%29%3BI%2Einfo%2Ememory%2Egeometries%2B%2B%3Bc%28h%2Ca%29%3Bb%2EverticesNeedUpdate%3D%210%3Bb%2EmorphTargetsNeedUpdate%3D%210%3Bb%2EelementsNeedUpdate%3D%210%3Bb%2EuvsNeedUpdate%3D%210%3Bb%2EnormalsNeedUpdate%3D%210%3Bb%2EtangentsNeedUpdate%3D%210%3Be%3Db%2EcolorsNeedUpdate%3D%210%7Delse%20e%3D%211%3B%28e%7C%7Cvoid%200%3D%3D%3Da%2E%5F%5FwebglActive%29%26%26u%28Fa%2Ch%2Ca%29%7Da%2E%5F%5FwebglActive%3D%210%7Dfunction%20u%28a%2Cb%2Cc%29%7Bvar%20d%3Dc%2Eid%3Ba%5Bd%5D%3Da%5Bd%5D%7C%7C%5B%5D%3Ba%5Bd%5D%2Epush%28%7Bid%3Ad%2Cbuffer%3Ab%2Cobject%3Ac%2Cmaterial%3Anull%2Cz%3A0%7D%29%7Dfunction%20v%28a%29%7Bvar%20b%3Da%2Egeometry%3Bif%28b%20instanceof%20THREE%2EBufferGeometry%29for%28var%20e%3D%0Ab%2Eattributes%2Cf%3Db%2EattributesKeys%2Cg%3D0%2Ch%3Df%2Elength%3Bg%3Ch%3Bg%2B%2B%29%7Bvar%20k%3Df%5Bg%5D%2Cm%3De%5Bk%5D%3Bvoid%200%3D%3D%3Dm%2Ebuffer%26%26%28m%2Ebuffer%3Dl%2EcreateBuffer%28%29%2Cm%2EneedsUpdate%3D%210%29%3Bif%28%210%3D%3D%3Dm%2EneedsUpdate%29%7Bvar%20n%3D%22index%22%3D%3D%3Dk%3Fl%2EELEMENT%5FARRAY%5FBUFFER%3Al%2EARRAY%5FBUFFER%3Bl%2EbindBuffer%28n%2Cm%2Ebuffer%29%3Bl%2EbufferData%28n%2Cm%2Earray%2Cl%2ESTATIC%5FDRAW%29%3Bm%2EneedsUpdate%3D%211%7D%7Delse%20if%28a%20instanceof%20THREE%2EMesh%29%7B%210%3D%3D%3Db%2EgroupsNeedUpdate%26%26r%28a%2Cb%29%3Bfor%28var%20p%3Dsb%5Bb%2Eid%5D%2Cg%3D0%2Cq%3Dp%2Elength%3Bg%3Cq%3Bg%2B%2B%29%7Bvar%20t%3Dp%5Bg%5D%2Cs%3Dd%28a%2Ct%29%3B%210%3D%3D%3Db%2EgroupsNeedUpdate%26%26c%28t%2Ca%29%3Bvar%20u%3Ds%2Eattributes%26%26y%28s%29%3Bif%28b%2EverticesNeedUpdate%7C%7C%0Ab%2EmorphTargetsNeedUpdate%7C%7Cb%2EelementsNeedUpdate%7C%7Cb%2EuvsNeedUpdate%7C%7Cb%2EnormalsNeedUpdate%7C%7Cb%2EcolorsNeedUpdate%7C%7Cb%2EtangentsNeedUpdate%7C%7Cu%29%7Bvar%20v%3Dt%2Cx%3Da%2Cz%3Dl%2EDYNAMIC%5FDRAW%2CG%3D%21b%2Edynamic%2CE%3Ds%3Bif%28v%2E%5F%5FinittedArrays%29%7Bvar%20D%3DE%26%26void%200%21%3D%3DE%2Eshading%26%26E%2Eshading%3D%3D%3DTHREE%2ESmoothShading%2Cw%3Dvoid%200%2CF%3Dvoid%200%2CI%3Dvoid%200%2CA%3Dvoid%200%2CQ%3Dvoid%200%2CM%3Dvoid%200%2CK%3Dvoid%200%2CN%3Dvoid%200%2CO%3Dvoid%200%2CT%3Dvoid%200%2CU%3Dvoid%200%2CH%3Dvoid%200%2CL%3Dvoid%200%2CX%3Dvoid%200%2CW%3Dvoid%200%2Cpa%3Dvoid%200%2Cta%3Dvoid%200%2CZa%3Dvoid%200%2CFa%3Dvoid%200%2Cga%3Dvoid%200%2CTa%3Dvoid%200%2Caa%3Dvoid%200%2CGa%3Dvoid%200%2Cza%3Dvoid%200%2Cha%3Dvoid%200%2CP%3Dvoid%200%2C%0Aea%3Dvoid%200%2Cfa%3Dvoid%200%2Cma%3Dvoid%200%2CY%3Dvoid%200%2Ctb%3Dvoid%200%2Cqa%3Dvoid%200%2CDa%3Dvoid%200%2CAa%3Dvoid%200%2CHa%3Dvoid%200%2Cxa%3Dvoid%200%2Cna%3Dvoid%200%2Cab%3Dvoid%200%2Ceb%3Dvoid%200%2Cla%3Dvoid%200%2CNa%3D0%2CUa%3D0%2Cmb%3D0%2Cya%3D0%2CXa%3D0%2CVa%3D0%2CIa%3D0%2Cnb%3D0%2COa%3D0%2Cia%3D0%2Cra%3D0%2CJ%3D0%2CBa%3Dvoid%200%2Cbb%3Dv%2E%5F%5FvertexArray%2Cwb%3Dv%2E%5F%5FuvArray%2Cob%3Dv%2E%5F%5Fuv2Array%2CPa%3Dv%2E%5F%5FnormalArray%2CCa%3Dv%2E%5F%5FtangentArray%2Ccb%3Dv%2E%5F%5FcolorArray%2CKa%3Dv%2E%5F%5FskinIndexArray%2CLa%3Dv%2E%5F%5FskinWeightArray%2C%24a%3Dv%2E%5F%5FmorphTargetsArrays%2Cxb%3Dv%2E%5F%5FmorphNormalsArrays%2Cpb%3Dv%2E%5F%5FwebglCustomAttributesList%2CB%3Dvoid%200%2Cdb%3Dv%2E%5F%5FfaceArray%2Csa%3Dv%2E%5F%5FlineArray%2Coa%3Dx%2Egeometry%2C%0ASa%3Doa%2EelementsNeedUpdate%2CMa%3Doa%2EuvsNeedUpdate%2CAb%3Doa%2EnormalsNeedUpdate%2CHb%3Doa%2EtangentsNeedUpdate%2CIb%3Doa%2EcolorsNeedUpdate%2Clb%3Doa%2EmorphTargetsNeedUpdate%2CCb%3Doa%2Evertices%2CV%3Dv%2Efaces3%2CJa%3Doa%2Efaces%2CWa%3Doa%2EfaceVertexUvs%5B0%5D%2CDb%3Doa%2EfaceVertexUvs%5B1%5D%2CPb%3Doa%2EskinIndices%2C%24%3Doa%2EskinWeights%2CEb%3Doa%2EmorphTargets%2CR%3Doa%2EmorphNormals%3Bif%28oa%2EverticesNeedUpdate%29%7Bw%3D0%3Bfor%28F%3DV%2Elength%3Bw%3CF%3Bw%2B%2B%29A%3DJa%5BV%5Bw%5D%5D%2CH%3DCb%5BA%2Ea%5D%2CL%3DCb%5BA%2Eb%5D%2CX%3DCb%5BA%2Ec%5D%2Cbb%5BUa%5D%3DH%2Ex%2Cbb%5BUa%2B1%5D%3DH%2Ey%2Cbb%5BUa%2B2%5D%3DH%2Ez%2Cbb%5BUa%2B3%5D%3DL%2Ex%2Cbb%5BUa%2B4%5D%3DL%2Ey%2Cbb%5BUa%2B5%5D%3DL%2Ez%2Cbb%5BUa%2B6%5D%3DX%2Ex%2Cbb%5BUa%2B7%5D%3DX%2Ey%2Cbb%5BUa%2B%0A8%5D%3DX%2Ez%2CUa%2B%3D9%3Bl%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Cv%2E%5F%5FwebglVertexBuffer%29%3Bl%2EbufferData%28l%2EARRAY%5FBUFFER%2Cbb%2Cz%29%7Dif%28lb%29for%28Ha%3D0%2Cxa%3DEb%2Elength%3BHa%3Cxa%3BHa%2B%2B%29%7Bw%3Dra%3D0%3Bfor%28F%3DV%2Elength%3Bw%3CF%3Bw%2B%2B%29eb%3DV%5Bw%5D%2CA%3DJa%5Beb%5D%2CH%3DEb%5BHa%5D%2Evertices%5BA%2Ea%5D%2CL%3DEb%5BHa%5D%2Evertices%5BA%2Eb%5D%2CX%3DEb%5BHa%5D%2Evertices%5BA%2Ec%5D%2Cna%3D%24a%5BHa%5D%2Cna%5Bra%5D%3DH%2Ex%2Cna%5Bra%2B1%5D%3DH%2Ey%2Cna%5Bra%2B2%5D%3DH%2Ez%2Cna%5Bra%2B3%5D%3DL%2Ex%2Cna%5Bra%2B4%5D%3DL%2Ey%2Cna%5Bra%2B5%5D%3DL%2Ez%2Cna%5Bra%2B6%5D%3DX%2Ex%2Cna%5Bra%2B7%5D%3DX%2Ey%2Cna%5Bra%2B8%5D%3DX%2Ez%2CE%2EmorphNormals%26%26%28D%3F%28la%3DR%5BHa%5D%2EvertexNormals%5Beb%5D%2CZa%3Dla%2Ea%2CFa%3Dla%2Eb%2Cga%3Dla%2Ec%29%3Aga%3DFa%3DZa%3DR%5BHa%5D%2EfaceNormals%5Beb%5D%2Cab%3Dxb%5BHa%5D%2Cab%5Bra%5D%3DZa%2Ex%2C%0Aab%5Bra%2B1%5D%3DZa%2Ey%2Cab%5Bra%2B2%5D%3DZa%2Ez%2Cab%5Bra%2B3%5D%3DFa%2Ex%2Cab%5Bra%2B4%5D%3DFa%2Ey%2Cab%5Bra%2B5%5D%3DFa%2Ez%2Cab%5Bra%2B6%5D%3Dga%2Ex%2Cab%5Bra%2B7%5D%3Dga%2Ey%2Cab%5Bra%2B8%5D%3Dga%2Ez%29%2Cra%2B%3D9%3Bl%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Cv%2E%5F%5FwebglMorphTargetsBuffers%5BHa%5D%29%3Bl%2EbufferData%28l%2EARRAY%5FBUFFER%2C%24a%5BHa%5D%2Cz%29%3BE%2EmorphNormals%26%26%28l%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Cv%2E%5F%5FwebglMorphNormalsBuffers%5BHa%5D%29%2Cl%2EbufferData%28l%2EARRAY%5FBUFFER%2Cxb%5BHa%5D%2Cz%29%29%7Dif%28%24%2Elength%29%7Bw%3D0%3Bfor%28F%3DV%2Elength%3Bw%3CF%3Bw%2B%2B%29A%3DJa%5BV%5Bw%5D%5D%2Cza%3D%24%5BA%2Ea%5D%2Cha%3D%24%5BA%2Eb%5D%2CP%3D%24%5BA%2Ec%5D%2CLa%5Bia%5D%3Dza%2Ex%2CLa%5Bia%2B1%5D%3Dza%2Ey%2CLa%5Bia%2B2%5D%3Dza%2Ez%2CLa%5Bia%2B3%5D%3Dza%2Ew%2CLa%5Bia%2B4%5D%3Dha%2Ex%2CLa%5Bia%2B5%5D%3Dha%2Ey%2CLa%5Bia%2B%0A6%5D%3Dha%2Ez%2CLa%5Bia%2B7%5D%3Dha%2Ew%2CLa%5Bia%2B8%5D%3DP%2Ex%2CLa%5Bia%2B9%5D%3DP%2Ey%2CLa%5Bia%2B10%5D%3DP%2Ez%2CLa%5Bia%2B11%5D%3DP%2Ew%2Cea%3DPb%5BA%2Ea%5D%2Cfa%3DPb%5BA%2Eb%5D%2Cma%3DPb%5BA%2Ec%5D%2CKa%5Bia%5D%3Dea%2Ex%2CKa%5Bia%2B1%5D%3Dea%2Ey%2CKa%5Bia%2B2%5D%3Dea%2Ez%2CKa%5Bia%2B3%5D%3Dea%2Ew%2CKa%5Bia%2B4%5D%3Dfa%2Ex%2CKa%5Bia%2B5%5D%3Dfa%2Ey%2CKa%5Bia%2B6%5D%3Dfa%2Ez%2CKa%5Bia%2B7%5D%3Dfa%2Ew%2CKa%5Bia%2B8%5D%3Dma%2Ex%2CKa%5Bia%2B9%5D%3Dma%2Ey%2CKa%5Bia%2B10%5D%3Dma%2Ez%2CKa%5Bia%2B11%5D%3Dma%2Ew%2Cia%2B%3D12%3B0%3Cia%26%26%28l%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Cv%2E%5F%5FwebglSkinIndicesBuffer%29%2Cl%2EbufferData%28l%2EARRAY%5FBUFFER%2CKa%2Cz%29%2Cl%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Cv%2E%5F%5FwebglSkinWeightsBuffer%29%2Cl%2EbufferData%28l%2EARRAY%5FBUFFER%2CLa%2Cz%29%29%7Dif%28Ib%29%7Bw%3D0%3Bfor%28F%3DV%2Elength%3Bw%3CF%3Bw%2B%2B%29A%3D%0AJa%5BV%5Bw%5D%5D%2CK%3DA%2EvertexColors%2CN%3DA%2Ecolor%2C3%3D%3D%3DK%2Elength%26%26E%2EvertexColors%3D%3D%3DTHREE%2EVertexColors%3F%28Ta%3DK%5B0%5D%2Caa%3DK%5B1%5D%2CGa%3DK%5B2%5D%29%3AGa%3Daa%3DTa%3DN%2Ccb%5BOa%5D%3DTa%2Er%2Ccb%5BOa%2B1%5D%3DTa%2Eg%2Ccb%5BOa%2B2%5D%3DTa%2Eb%2Ccb%5BOa%2B3%5D%3Daa%2Er%2Ccb%5BOa%2B4%5D%3Daa%2Eg%2Ccb%5BOa%2B5%5D%3Daa%2Eb%2Ccb%5BOa%2B6%5D%3DGa%2Er%2Ccb%5BOa%2B7%5D%3DGa%2Eg%2Ccb%5BOa%2B8%5D%3DGa%2Eb%2COa%2B%3D9%3B0%3COa%26%26%28l%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Cv%2E%5F%5FwebglColorBuffer%29%2Cl%2EbufferData%28l%2EARRAY%5FBUFFER%2Ccb%2Cz%29%29%7Dif%28Hb%26%26oa%2EhasTangents%29%7Bw%3D0%3Bfor%28F%3DV%2Elength%3Bw%3CF%3Bw%2B%2B%29A%3DJa%5BV%5Bw%5D%5D%2CO%3DA%2EvertexTangents%2CW%3DO%5B0%5D%2Cpa%3DO%5B1%5D%2Cta%3DO%5B2%5D%2CCa%5BIa%5D%3DW%2Ex%2CCa%5BIa%2B1%5D%3DW%2Ey%2CCa%5BIa%2B2%5D%3DW%2Ez%2CCa%5BIa%2B3%5D%3DW%2Ew%2CCa%5BIa%2B%0A4%5D%3Dpa%2Ex%2CCa%5BIa%2B5%5D%3Dpa%2Ey%2CCa%5BIa%2B6%5D%3Dpa%2Ez%2CCa%5BIa%2B7%5D%3Dpa%2Ew%2CCa%5BIa%2B8%5D%3Dta%2Ex%2CCa%5BIa%2B9%5D%3Dta%2Ey%2CCa%5BIa%2B10%5D%3Dta%2Ez%2CCa%5BIa%2B11%5D%3Dta%2Ew%2CIa%2B%3D12%3Bl%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Cv%2E%5F%5FwebglTangentBuffer%29%3Bl%2EbufferData%28l%2EARRAY%5FBUFFER%2CCa%2Cz%29%7Dif%28Ab%29%7Bw%3D0%3Bfor%28F%3DV%2Elength%3Bw%3CF%3Bw%2B%2B%29if%28A%3DJa%5BV%5Bw%5D%5D%2CQ%3DA%2EvertexNormals%2CM%3DA%2Enormal%2C3%3D%3D%3DQ%2Elength%26%26D%29for%28Y%3D0%3B3%3EY%3BY%2B%2B%29qa%3DQ%5BY%5D%2CPa%5BVa%5D%3Dqa%2Ex%2CPa%5BVa%2B1%5D%3Dqa%2Ey%2CPa%5BVa%2B2%5D%3Dqa%2Ez%2CVa%2B%3D3%3Belse%20for%28Y%3D0%3B3%3EY%3BY%2B%2B%29Pa%5BVa%5D%3DM%2Ex%2CPa%5BVa%2B1%5D%3DM%2Ey%2CPa%5BVa%2B2%5D%3DM%2Ez%2CVa%2B%3D3%3Bl%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Cv%2E%5F%5FwebglNormalBuffer%29%3Bl%2EbufferData%28l%2EARRAY%5FBUFFER%2C%0APa%2Cz%29%7Dif%28Ma%26%26Wa%29%7Bw%3D0%3Bfor%28F%3DV%2Elength%3Bw%3CF%3Bw%2B%2B%29if%28I%3DV%5Bw%5D%2CT%3DWa%5BI%5D%2Cvoid%200%21%3D%3DT%29for%28Y%3D0%3B3%3EY%3BY%2B%2B%29Da%3DT%5BY%5D%2Cwb%5Bmb%5D%3DDa%2Ex%2Cwb%5Bmb%2B1%5D%3DDa%2Ey%2Cmb%2B%3D2%3B0%3Cmb%26%26%28l%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Cv%2E%5F%5FwebglUVBuffer%29%2Cl%2EbufferData%28l%2EARRAY%5FBUFFER%2Cwb%2Cz%29%29%7Dif%28Ma%26%26Db%29%7Bw%3D0%3Bfor%28F%3DV%2Elength%3Bw%3CF%3Bw%2B%2B%29if%28I%3DV%5Bw%5D%2CU%3DDb%5BI%5D%2Cvoid%200%21%3D%3DU%29for%28Y%3D0%3B3%3EY%3BY%2B%2B%29Aa%3DU%5BY%5D%2Cob%5Bya%5D%3DAa%2Ex%2Cob%5Bya%2B1%5D%3DAa%2Ey%2Cya%2B%3D2%3B0%3Cya%26%26%28l%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Cv%2E%5F%5FwebglUV2Buffer%29%2Cl%2EbufferData%28l%2EARRAY%5FBUFFER%2Cob%2Cz%29%29%7Dif%28Sa%29%7Bw%3D0%3Bfor%28F%3DV%2Elength%3Bw%3CF%3Bw%2B%2B%29db%5BXa%5D%3DNa%2Cdb%5BXa%2B1%5D%3DNa%2B1%2Cdb%5BXa%2B2%5D%3DNa%2B%0A2%2CXa%2B%3D3%2Csa%5Bnb%5D%3DNa%2Csa%5Bnb%2B1%5D%3DNa%2B1%2Csa%5Bnb%2B2%5D%3DNa%2Csa%5Bnb%2B3%5D%3DNa%2B2%2Csa%5Bnb%2B4%5D%3DNa%2B1%2Csa%5Bnb%2B5%5D%3DNa%2B2%2Cnb%2B%3D6%2CNa%2B%3D3%3Bl%2EbindBuffer%28l%2EELEMENT%5FARRAY%5FBUFFER%2Cv%2E%5F%5FwebglFaceBuffer%29%3Bl%2EbufferData%28l%2EELEMENT%5FARRAY%5FBUFFER%2Cdb%2Cz%29%3Bl%2EbindBuffer%28l%2EELEMENT%5FARRAY%5FBUFFER%2Cv%2E%5F%5FwebglLineBuffer%29%3Bl%2EbufferData%28l%2EELEMENT%5FARRAY%5FBUFFER%2Csa%2Cz%29%7Dif%28pb%29for%28Y%3D0%2Ctb%3Dpb%2Elength%3BY%3Ctb%3BY%2B%2B%29if%28B%3Dpb%5BY%5D%2CB%2E%5F%5Foriginal%2EneedsUpdate%29%7BJ%3D0%3Bif%281%3D%3D%3DB%2Esize%29if%28void%200%3D%3D%3DB%2EboundTo%7C%7C%22vertices%22%3D%3D%3DB%2EboundTo%29for%28w%3D0%2CF%3DV%2Elength%3Bw%3CF%3Bw%2B%2B%29A%3DJa%5BV%5Bw%5D%5D%2CB%2Earray%5BJ%5D%3DB%2Evalue%5BA%2Ea%5D%2CB%2Earray%5BJ%2B%0A1%5D%3DB%2Evalue%5BA%2Eb%5D%2CB%2Earray%5BJ%2B2%5D%3DB%2Evalue%5BA%2Ec%5D%2CJ%2B%3D3%3Belse%7Bif%28%22faces%22%3D%3D%3DB%2EboundTo%29for%28w%3D0%2CF%3DV%2Elength%3Bw%3CF%3Bw%2B%2B%29Ba%3DB%2Evalue%5BV%5Bw%5D%5D%2CB%2Earray%5BJ%5D%3DBa%2CB%2Earray%5BJ%2B1%5D%3DBa%2CB%2Earray%5BJ%2B2%5D%3DBa%2CJ%2B%3D3%7Delse%20if%282%3D%3D%3DB%2Esize%29if%28void%200%3D%3D%3DB%2EboundTo%7C%7C%22vertices%22%3D%3D%3DB%2EboundTo%29for%28w%3D0%2CF%3DV%2Elength%3Bw%3CF%3Bw%2B%2B%29A%3DJa%5BV%5Bw%5D%5D%2CH%3DB%2Evalue%5BA%2Ea%5D%2CL%3DB%2Evalue%5BA%2Eb%5D%2CX%3DB%2Evalue%5BA%2Ec%5D%2CB%2Earray%5BJ%5D%3DH%2Ex%2CB%2Earray%5BJ%2B1%5D%3DH%2Ey%2CB%2Earray%5BJ%2B2%5D%3DL%2Ex%2CB%2Earray%5BJ%2B3%5D%3DL%2Ey%2CB%2Earray%5BJ%2B4%5D%3DX%2Ex%2CB%2Earray%5BJ%2B5%5D%3DX%2Ey%2CJ%2B%3D6%3Belse%7Bif%28%22faces%22%3D%3D%3DB%2EboundTo%29for%28w%3D0%2CF%3DV%2Elength%3Bw%3CF%3Bw%2B%2B%29X%3DL%3DH%3DBa%3DB%2Evalue%5BV%5Bw%5D%5D%2C%0AB%2Earray%5BJ%5D%3DH%2Ex%2CB%2Earray%5BJ%2B1%5D%3DH%2Ey%2CB%2Earray%5BJ%2B2%5D%3DL%2Ex%2CB%2Earray%5BJ%2B3%5D%3DL%2Ey%2CB%2Earray%5BJ%2B4%5D%3DX%2Ex%2CB%2Earray%5BJ%2B5%5D%3DX%2Ey%2CJ%2B%3D6%7Delse%20if%283%3D%3D%3DB%2Esize%29%7Bvar%20S%3BS%3D%22c%22%3D%3D%3DB%2Etype%3F%5B%22r%22%2C%22g%22%2C%22b%22%5D%3A%5B%22x%22%2C%22y%22%2C%22z%22%5D%3Bif%28void%200%3D%3D%3DB%2EboundTo%7C%7C%22vertices%22%3D%3D%3DB%2EboundTo%29for%28w%3D0%2CF%3DV%2Elength%3Bw%3CF%3Bw%2B%2B%29A%3DJa%5BV%5Bw%5D%5D%2CH%3DB%2Evalue%5BA%2Ea%5D%2CL%3DB%2Evalue%5BA%2Eb%5D%2CX%3DB%2Evalue%5BA%2Ec%5D%2CB%2Earray%5BJ%5D%3DH%5BS%5B0%5D%5D%2CB%2Earray%5BJ%2B1%5D%3DH%5BS%5B1%5D%5D%2CB%2Earray%5BJ%2B2%5D%3DH%5BS%5B2%5D%5D%2CB%2Earray%5BJ%2B3%5D%3DL%5BS%5B0%5D%5D%2CB%2Earray%5BJ%2B4%5D%3DL%5BS%5B1%5D%5D%2CB%2Earray%5BJ%2B5%5D%3DL%5BS%5B2%5D%5D%2CB%2Earray%5BJ%2B6%5D%3DX%5BS%5B0%5D%5D%2CB%2Earray%5BJ%2B7%5D%3DX%5BS%5B1%5D%5D%2CB%2Earray%5BJ%2B8%5D%3DX%5BS%5B2%5D%5D%2CJ%2B%3D9%3Belse%20if%28%22faces%22%3D%3D%3D%0AB%2EboundTo%29for%28w%3D0%2CF%3DV%2Elength%3Bw%3CF%3Bw%2B%2B%29X%3DL%3DH%3DBa%3DB%2Evalue%5BV%5Bw%5D%5D%2CB%2Earray%5BJ%5D%3DH%5BS%5B0%5D%5D%2CB%2Earray%5BJ%2B1%5D%3DH%5BS%5B1%5D%5D%2CB%2Earray%5BJ%2B2%5D%3DH%5BS%5B2%5D%5D%2CB%2Earray%5BJ%2B3%5D%3DL%5BS%5B0%5D%5D%2CB%2Earray%5BJ%2B4%5D%3DL%5BS%5B1%5D%5D%2CB%2Earray%5BJ%2B5%5D%3DL%5BS%5B2%5D%5D%2CB%2Earray%5BJ%2B6%5D%3DX%5BS%5B0%5D%5D%2CB%2Earray%5BJ%2B7%5D%3DX%5BS%5B1%5D%5D%2CB%2Earray%5BJ%2B8%5D%3DX%5BS%5B2%5D%5D%2CJ%2B%3D9%3Belse%20if%28%22faceVertices%22%3D%3D%3DB%2EboundTo%29for%28w%3D0%2CF%3DV%2Elength%3Bw%3CF%3Bw%2B%2B%29Ba%3DB%2Evalue%5BV%5Bw%5D%5D%2CH%3DBa%5B0%5D%2CL%3DBa%5B1%5D%2CX%3DBa%5B2%5D%2CB%2Earray%5BJ%5D%3DH%5BS%5B0%5D%5D%2CB%2Earray%5BJ%2B1%5D%3DH%5BS%5B1%5D%5D%2CB%2Earray%5BJ%2B2%5D%3DH%5BS%5B2%5D%5D%2CB%2Earray%5BJ%2B3%5D%3DL%5BS%5B0%5D%5D%2CB%2Earray%5BJ%2B4%5D%3DL%5BS%5B1%5D%5D%2CB%2Earray%5BJ%2B5%5D%3DL%5BS%5B2%5D%5D%2CB%2Earray%5BJ%2B6%5D%3DX%5BS%5B0%5D%5D%2CB%2Earray%5BJ%2B%0A7%5D%3DX%5BS%5B1%5D%5D%2CB%2Earray%5BJ%2B8%5D%3DX%5BS%5B2%5D%5D%2CJ%2B%3D9%7Delse%20if%284%3D%3D%3DB%2Esize%29if%28void%200%3D%3D%3DB%2EboundTo%7C%7C%22vertices%22%3D%3D%3DB%2EboundTo%29for%28w%3D0%2CF%3DV%2Elength%3Bw%3CF%3Bw%2B%2B%29A%3DJa%5BV%5Bw%5D%5D%2CH%3DB%2Evalue%5BA%2Ea%5D%2CL%3DB%2Evalue%5BA%2Eb%5D%2CX%3DB%2Evalue%5BA%2Ec%5D%2CB%2Earray%5BJ%5D%3DH%2Ex%2CB%2Earray%5BJ%2B1%5D%3DH%2Ey%2CB%2Earray%5BJ%2B2%5D%3DH%2Ez%2CB%2Earray%5BJ%2B3%5D%3DH%2Ew%2CB%2Earray%5BJ%2B4%5D%3DL%2Ex%2CB%2Earray%5BJ%2B5%5D%3DL%2Ey%2CB%2Earray%5BJ%2B6%5D%3DL%2Ez%2CB%2Earray%5BJ%2B7%5D%3DL%2Ew%2CB%2Earray%5BJ%2B8%5D%3DX%2Ex%2CB%2Earray%5BJ%2B9%5D%3DX%2Ey%2CB%2Earray%5BJ%2B10%5D%3DX%2Ez%2CB%2Earray%5BJ%2B11%5D%3DX%2Ew%2CJ%2B%3D12%3Belse%20if%28%22faces%22%3D%3D%3DB%2EboundTo%29for%28w%3D0%2CF%3DV%2Elength%3Bw%3CF%3Bw%2B%2B%29X%3DL%3DH%3DBa%3DB%2Evalue%5BV%5Bw%5D%5D%2CB%2Earray%5BJ%5D%3DH%2Ex%2CB%2Earray%5BJ%2B1%5D%3D%0AH%2Ey%2CB%2Earray%5BJ%2B2%5D%3DH%2Ez%2CB%2Earray%5BJ%2B3%5D%3DH%2Ew%2CB%2Earray%5BJ%2B4%5D%3DL%2Ex%2CB%2Earray%5BJ%2B5%5D%3DL%2Ey%2CB%2Earray%5BJ%2B6%5D%3DL%2Ez%2CB%2Earray%5BJ%2B7%5D%3DL%2Ew%2CB%2Earray%5BJ%2B8%5D%3DX%2Ex%2CB%2Earray%5BJ%2B9%5D%3DX%2Ey%2CB%2Earray%5BJ%2B10%5D%3DX%2Ez%2CB%2Earray%5BJ%2B11%5D%3DX%2Ew%2CJ%2B%3D12%3Belse%20if%28%22faceVertices%22%3D%3D%3DB%2EboundTo%29for%28w%3D0%2CF%3DV%2Elength%3Bw%3CF%3Bw%2B%2B%29Ba%3DB%2Evalue%5BV%5Bw%5D%5D%2CH%3DBa%5B0%5D%2CL%3DBa%5B1%5D%2CX%3DBa%5B2%5D%2CB%2Earray%5BJ%5D%3DH%2Ex%2CB%2Earray%5BJ%2B1%5D%3DH%2Ey%2CB%2Earray%5BJ%2B2%5D%3DH%2Ez%2CB%2Earray%5BJ%2B3%5D%3DH%2Ew%2CB%2Earray%5BJ%2B4%5D%3DL%2Ex%2CB%2Earray%5BJ%2B5%5D%3DL%2Ey%2CB%2Earray%5BJ%2B6%5D%3DL%2Ez%2CB%2Earray%5BJ%2B7%5D%3DL%2Ew%2CB%2Earray%5BJ%2B8%5D%3DX%2Ex%2CB%2Earray%5BJ%2B9%5D%3DX%2Ey%2CB%2Earray%5BJ%2B10%5D%3DX%2Ez%2CB%2Earray%5BJ%2B11%5D%3DX%2Ew%2CJ%2B%3D12%3Bl%2EbindBuffer%28l%2EARRAY%5FBUFFER%2C%0AB%2Ebuffer%29%3Bl%2EbufferData%28l%2EARRAY%5FBUFFER%2CB%2Earray%2Cz%29%7DG%26%26%28delete%20v%2E%5F%5FinittedArrays%2Cdelete%20v%2E%5F%5FcolorArray%2Cdelete%20v%2E%5F%5FnormalArray%2Cdelete%20v%2E%5F%5FtangentArray%2Cdelete%20v%2E%5F%5FuvArray%2Cdelete%20v%2E%5F%5Fuv2Array%2Cdelete%20v%2E%5F%5FfaceArray%2Cdelete%20v%2E%5F%5FvertexArray%2Cdelete%20v%2E%5F%5FlineArray%2Cdelete%20v%2E%5F%5FskinIndexArray%2Cdelete%20v%2E%5F%5FskinWeightArray%29%7D%7D%7Db%2EverticesNeedUpdate%3D%211%3Bb%2EmorphTargetsNeedUpdate%3D%211%3Bb%2EelementsNeedUpdate%3D%211%3Bb%2EuvsNeedUpdate%3D%211%3Bb%2EnormalsNeedUpdate%3D%211%3Bb%2EcolorsNeedUpdate%3D%211%3Bb%2EtangentsNeedUpdate%3D%211%3Bs%2Eattributes%26%26C%28s%29%7Delse%20if%28a%20instanceof%0ATHREE%2ELine%29%7Bs%3Dd%28a%2Cb%29%3Bu%3Ds%2Eattributes%26%26y%28s%29%3Bif%28b%2EverticesNeedUpdate%7C%7Cb%2EcolorsNeedUpdate%7C%7Cb%2ElineDistancesNeedUpdate%7C%7Cu%29%7Bvar%20Z%3Dl%2EDYNAMIC%5FDRAW%2CEa%2Cka%2CBb%2CFb%2Cba%2Cgb%2Cua%3Db%2Evertices%2CQb%3Db%2Ecolors%2CRb%3Db%2ElineDistances%2Cqb%3Dua%2Elength%2CSb%3DQb%2Elength%2Cyb%3DRb%2Elength%2CGb%3Db%2E%5F%5FvertexArray%2Crb%3Db%2E%5F%5FcolorArray%2Ckb%3Db%2E%5F%5FlineDistanceArray%2CMb%3Db%2EcolorsNeedUpdate%2COb%3Db%2ElineDistancesNeedUpdate%2Chb%3Db%2E%5F%5FwebglCustomAttributesList%2CYa%2Cib%2Cva%2CKb%2CQa%2Cca%3Bif%28b%2EverticesNeedUpdate%29%7Bfor%28Ea%3D0%3BEa%3Cqb%3BEa%2B%2B%29Fb%3Dua%5BEa%5D%2Cba%3D3%2AEa%2CGb%5Bba%5D%3DFb%2Ex%2CGb%5Bba%2B1%5D%3DFb%2Ey%2CGb%5Bba%2B2%5D%3D%0AFb%2Ez%3Bl%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Cb%2E%5F%5FwebglVertexBuffer%29%3Bl%2EbufferData%28l%2EARRAY%5FBUFFER%2CGb%2CZ%29%7Dif%28Mb%29%7Bfor%28ka%3D0%3Bka%3CSb%3Bka%2B%2B%29gb%3DQb%5Bka%5D%2Cba%3D3%2Aka%2Crb%5Bba%5D%3Dgb%2Er%2Crb%5Bba%2B1%5D%3Dgb%2Eg%2Crb%5Bba%2B2%5D%3Dgb%2Eb%3Bl%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Cb%2E%5F%5FwebglColorBuffer%29%3Bl%2EbufferData%28l%2EARRAY%5FBUFFER%2Crb%2CZ%29%7Dif%28Ob%29%7Bfor%28Bb%3D0%3BBb%3Cyb%3BBb%2B%2B%29kb%5BBb%5D%3DRb%5BBb%5D%3Bl%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Cb%2E%5F%5FwebglLineDistanceBuffer%29%3Bl%2EbufferData%28l%2EARRAY%5FBUFFER%2Ckb%2CZ%29%7Dif%28hb%29for%28Ya%3D0%2Cib%3Dhb%2Elength%3BYa%3Cib%3BYa%2B%2B%29if%28ca%3Dhb%5BYa%5D%2Cca%2EneedsUpdate%26%26%28void%200%3D%3D%3Dca%2EboundTo%7C%7C%22vertices%22%3D%3D%3Dca%2EboundTo%29%29%7Bba%3D%0A0%3BKb%3Dca%2Evalue%2Elength%3Bif%281%3D%3D%3Dca%2Esize%29for%28va%3D0%3Bva%3CKb%3Bva%2B%2B%29ca%2Earray%5Bva%5D%3Dca%2Evalue%5Bva%5D%3Belse%20if%282%3D%3D%3Dca%2Esize%29for%28va%3D0%3Bva%3CKb%3Bva%2B%2B%29Qa%3Dca%2Evalue%5Bva%5D%2Cca%2Earray%5Bba%5D%3DQa%2Ex%2Cca%2Earray%5Bba%2B1%5D%3DQa%2Ey%2Cba%2B%3D2%3Belse%20if%283%3D%3D%3Dca%2Esize%29if%28%22c%22%3D%3D%3Dca%2Etype%29for%28va%3D0%3Bva%3CKb%3Bva%2B%2B%29Qa%3Dca%2Evalue%5Bva%5D%2Cca%2Earray%5Bba%5D%3DQa%2Er%2Cca%2Earray%5Bba%2B1%5D%3DQa%2Eg%2Cca%2Earray%5Bba%2B2%5D%3DQa%2Eb%2Cba%2B%3D3%3Belse%20for%28va%3D0%3Bva%3CKb%3Bva%2B%2B%29Qa%3Dca%2Evalue%5Bva%5D%2Cca%2Earray%5Bba%5D%3DQa%2Ex%2Cca%2Earray%5Bba%2B1%5D%3DQa%2Ey%2Cca%2Earray%5Bba%2B2%5D%3DQa%2Ez%2Cba%2B%3D3%3Belse%20if%284%3D%3D%3Dca%2Esize%29for%28va%3D0%3Bva%3CKb%3Bva%2B%2B%29Qa%3Dca%2Evalue%5Bva%5D%2Cca%2Earray%5Bba%5D%3DQa%2Ex%2Cca%2Earray%5Bba%2B%0A1%5D%3DQa%2Ey%2Cca%2Earray%5Bba%2B2%5D%3DQa%2Ez%2Cca%2Earray%5Bba%2B3%5D%3DQa%2Ew%2Cba%2B%3D4%3Bl%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Cca%2Ebuffer%29%3Bl%2EbufferData%28l%2EARRAY%5FBUFFER%2Cca%2Earray%2CZ%29%3Bca%2EneedsUpdate%3D%211%7D%7Db%2EverticesNeedUpdate%3D%211%3Bb%2EcolorsNeedUpdate%3D%211%3Bb%2ElineDistancesNeedUpdate%3D%211%3Bs%2Eattributes%26%26C%28s%29%7Delse%20if%28a%20instanceof%20THREE%2EPointCloud%29%7Bs%3Dd%28a%2Cb%29%3Bu%3Ds%2Eattributes%26%26y%28s%29%3Bif%28b%2EverticesNeedUpdate%7C%7Cb%2EcolorsNeedUpdate%7C%7Cu%29%7Bvar%20jb%3Dl%2EDYNAMIC%5FDRAW%2CTb%2CUb%2C%24b%2Cja%2Cac%2Cub%3Db%2Evertices%2Cvb%3Dub%2Elength%2CNb%3Db%2Ecolors%2CVb%3DNb%2Elength%2Cbc%3Db%2E%5F%5FvertexArray%2Ccc%3Db%2E%5F%5FcolorArray%2CWb%3Db%2EcolorsNeedUpdate%2C%0AJb%3Db%2E%5F%5FwebglCustomAttributesList%2Cdc%2Czb%2Cwa%2CLb%2CRa%2Cda%3Bif%28b%2EverticesNeedUpdate%29%7Bfor%28Tb%3D0%3BTb%3Cvb%3BTb%2B%2B%29%24b%3Dub%5BTb%5D%2Cja%3D3%2ATb%2Cbc%5Bja%5D%3D%24b%2Ex%2Cbc%5Bja%2B1%5D%3D%24b%2Ey%2Cbc%5Bja%2B2%5D%3D%24b%2Ez%3Bl%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Cb%2E%5F%5FwebglVertexBuffer%29%3Bl%2EbufferData%28l%2EARRAY%5FBUFFER%2Cbc%2Cjb%29%7Dif%28Wb%29%7Bfor%28Ub%3D0%3BUb%3CVb%3BUb%2B%2B%29ac%3DNb%5BUb%5D%2Cja%3D3%2AUb%2Ccc%5Bja%5D%3Dac%2Er%2Ccc%5Bja%2B1%5D%3Dac%2Eg%2Ccc%5Bja%2B2%5D%3Dac%2Eb%3Bl%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Cb%2E%5F%5FwebglColorBuffer%29%3Bl%2EbufferData%28l%2EARRAY%5FBUFFER%2Ccc%2Cjb%29%7Dif%28Jb%29for%28dc%3D0%2Czb%3DJb%2Elength%3Bdc%3Czb%3Bdc%2B%2B%29%7Bda%3DJb%5Bdc%5D%3Bif%28da%2EneedsUpdate%26%26%28void%200%3D%3D%3Dda%2EboundTo%7C%7C%0A%22vertices%22%3D%3D%3Dda%2EboundTo%29%29if%28Lb%3Dda%2Evalue%2Elength%2Cja%3D0%2C1%3D%3D%3Dda%2Esize%29for%28wa%3D0%3Bwa%3CLb%3Bwa%2B%2B%29da%2Earray%5Bwa%5D%3Dda%2Evalue%5Bwa%5D%3Belse%20if%282%3D%3D%3Dda%2Esize%29for%28wa%3D0%3Bwa%3CLb%3Bwa%2B%2B%29Ra%3Dda%2Evalue%5Bwa%5D%2Cda%2Earray%5Bja%5D%3DRa%2Ex%2Cda%2Earray%5Bja%2B1%5D%3DRa%2Ey%2Cja%2B%3D2%3Belse%20if%283%3D%3D%3Dda%2Esize%29if%28%22c%22%3D%3D%3Dda%2Etype%29for%28wa%3D0%3Bwa%3CLb%3Bwa%2B%2B%29Ra%3Dda%2Evalue%5Bwa%5D%2Cda%2Earray%5Bja%5D%3DRa%2Er%2Cda%2Earray%5Bja%2B1%5D%3DRa%2Eg%2Cda%2Earray%5Bja%2B2%5D%3DRa%2Eb%2Cja%2B%3D3%3Belse%20for%28wa%3D0%3Bwa%3CLb%3Bwa%2B%2B%29Ra%3Dda%2Evalue%5Bwa%5D%2Cda%2Earray%5Bja%5D%3DRa%2Ex%2Cda%2Earray%5Bja%2B1%5D%3DRa%2Ey%2Cda%2Earray%5Bja%2B2%5D%3DRa%2Ez%2Cja%2B%3D3%3Belse%20if%284%3D%3D%3Dda%2Esize%29for%28wa%3D0%3Bwa%3CLb%3Bwa%2B%2B%29Ra%3Dda%2Evalue%5Bwa%5D%2C%0Ada%2Earray%5Bja%5D%3DRa%2Ex%2Cda%2Earray%5Bja%2B1%5D%3DRa%2Ey%2Cda%2Earray%5Bja%2B2%5D%3DRa%2Ez%2Cda%2Earray%5Bja%2B3%5D%3DRa%2Ew%2Cja%2B%3D4%3Bl%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Cda%2Ebuffer%29%3Bl%2EbufferData%28l%2EARRAY%5FBUFFER%2Cda%2Earray%2Cjb%29%3Bda%2EneedsUpdate%3D%211%7D%7Db%2EverticesNeedUpdate%3D%211%3Bb%2EcolorsNeedUpdate%3D%211%3Bs%2Eattributes%26%26C%28s%29%7D%7Dfunction%20y%28a%29%7Bfor%28var%20b%20in%20a%2Eattributes%29if%28a%2Eattributes%5Bb%5D%2EneedsUpdate%29return%210%3Breturn%211%7Dfunction%20C%28a%29%7Bfor%28var%20b%20in%20a%2Eattributes%29a%2Eattributes%5Bb%5D%2EneedsUpdate%3D%211%7Dfunction%20x%28a%2Cb%2Cc%2Cd%2Ce%29%7Bvar%20f%2Cg%2Ch%2Ck%3BMb%3D0%3Bif%28d%2EneedsUpdate%29%7Bd%2Eprogram%26%26lc%28d%29%3Bd%2EaddEventListener%28%22dispose%22%2C%0Amc%29%3Bvar%20m%3DDc%5Bd%2Etype%5D%3Bif%28m%29%7Bvar%20n%3DTHREE%2EShaderLib%5Bm%5D%3Bd%2E%5F%5FwebglShader%3D%7Buniforms%3ATHREE%2EUniformsUtils%2Eclone%28n%2Euniforms%29%2CvertexShader%3An%2EvertexShader%2CfragmentShader%3An%2EfragmentShader%7D%7Delse%20d%2E%5F%5FwebglShader%3D%7Buniforms%3Ad%2Euniforms%2CvertexShader%3Ad%2EvertexShader%2CfragmentShader%3Ad%2EfragmentShader%7D%3Bfor%28var%20p%3D0%2Cq%3D0%2Cr%3D0%2Ct%3D0%2Cs%3D0%2Cv%3Db%2Elength%3Bs%3Cv%3Bs%2B%2B%29%7Bvar%20u%3Db%5Bs%5D%3Bu%2EonlyShadow%7C%7C%211%3D%3D%3Du%2Evisible%7C%7C%28u%20instanceof%20THREE%2EDirectionalLight%26%26p%2B%2B%2Cu%20instanceof%20THREE%2EPointLight%26%26q%2B%2B%2Cu%20instanceof%20THREE%2ESpotLight%26%26r%2B%2B%2Cu%20instanceof%20THREE%2EHemisphereLight%26%26%0At%2B%2B%29%7Df%3Dp%3Bg%3Dq%3Bh%3Dr%3Bk%3Dt%3Bfor%28var%20x%2Cy%3D0%2CC%3D0%2CG%3Db%2Elength%3BC%3CG%3BC%2B%2B%29%7Bvar%20A%3Db%5BC%5D%3BA%2EcastShadow%26%26%28A%20instanceof%20THREE%2ESpotLight%26%26y%2B%2B%2CA%20instanceof%20THREE%2EDirectionalLight%26%26%21A%2EshadowCascade%26%26y%2B%2B%29%7Dx%3Dy%3Bvar%20D%3Bif%28Nb%26%26e%26%26e%2Eskeleton%26%26e%2Eskeleton%2EuseVertexTexture%29D%3D1024%3Belse%7Bvar%20H%3Dl%2EgetParameter%28l%2EMAX%5FVERTEX%5FUNIFORM%5FVECTORS%29%2CL%3DMath%2Efloor%28%28H%2D20%29%2F4%29%3Bvoid%200%21%3D%3De%26%26e%20instanceof%20THREE%2ESkinnedMesh%26%26%28L%3DMath%2Emin%28e%2Eskeleton%2Ebones%2Elength%2CL%29%2CL%3Ce%2Eskeleton%2Ebones%2Elength%26%26console%2Ewarn%28%22WebGLRenderer%3A%20too%20many%20bones%20%2D%20%22%2Be%2Eskeleton%2Ebones%2Elength%2B%0A%22%2C%20this%20GPU%20supports%20just%20%22%2BL%2B%22%20%28try%20OpenGL%20instead%20of%20ANGLE%29%22%29%29%3BD%3DL%7Dvar%20K%3D%7Bprecision%3Aga%2CsupportsVertexTextures%3AVb%2Cmap%3A%21%21d%2Emap%2CenvMap%3A%21%21d%2EenvMap%2CenvMapMode%3Ad%2EenvMap%26%26d%2EenvMap%2Emapping%2ClightMap%3A%21%21d%2ElightMap%2CbumpMap%3A%21%21d%2EbumpMap%2CnormalMap%3A%21%21d%2EnormalMap%2CspecularMap%3A%21%21d%2EspecularMap%2CalphaMap%3A%21%21d%2EalphaMap%2Ccombine%3Ad%2Ecombine%2CvertexColors%3Ad%2EvertexColors%2Cfog%3Ac%2CuseFog%3Ad%2Efog%2CfogExp%3Ac%20instanceof%20THREE%2EFogExp2%2CsizeAttenuation%3Ad%2EsizeAttenuation%2ClogarithmicDepthBuffer%3AX%2Cskinning%3Ad%2Eskinning%2CmaxBones%3AD%2CuseVertexTexture%3ANb%26%26%0Ae%26%26e%2Eskeleton%26%26e%2Eskeleton%2EuseVertexTexture%2CmorphTargets%3Ad%2EmorphTargets%2CmorphNormals%3Ad%2EmorphNormals%2CmaxMorphTargets%3AI%2EmaxMorphTargets%2CmaxMorphNormals%3AI%2EmaxMorphNormals%2CmaxDirLights%3Af%2CmaxPointLights%3Ag%2CmaxSpotLights%3Ah%2CmaxHemiLights%3Ak%2CmaxShadows%3Ax%2CshadowMapEnabled%3AI%2EshadowMapEnabled%26%26e%2EreceiveShadow%26%260%3Cx%2CshadowMapType%3AI%2EshadowMapType%2CshadowMapDebug%3AI%2EshadowMapDebug%2CshadowMapCascade%3AI%2EshadowMapCascade%2CalphaTest%3Ad%2EalphaTest%2Cmetal%3Ad%2Emetal%2CwrapAround%3Ad%2EwrapAround%2CdoubleSided%3Ad%2Eside%3D%3D%3DTHREE%2EDoubleSide%2CflipSided%3Ad%2Eside%3D%3D%3D%0ATHREE%2EBackSide%7D%2CN%3D%5B%5D%3Bm%3FN%2Epush%28m%29%3A%28N%2Epush%28d%2EfragmentShader%29%2CN%2Epush%28d%2EvertexShader%29%29%3Bif%28void%200%21%3D%3Dd%2Edefines%29for%28var%20O%20in%20d%2Edefines%29N%2Epush%28O%29%2CN%2Epush%28d%2Edefines%5BO%5D%29%3Bfor%28O%20in%20K%29N%2Epush%28O%29%2CN%2Epush%28K%5BO%5D%29%3Bfor%28var%20W%3DN%2Ejoin%28%29%2Cpa%2Cta%3D0%2CZa%3DXa%2Elength%3Bta%3CZa%3Bta%2B%2B%29%7Bvar%20Fa%3DXa%5Bta%5D%3Bif%28Fa%2Ecode%3D%3D%3DW%29%7Bpa%3DFa%3Bpa%2EusedTimes%2B%2B%3Bbreak%7D%7Dvoid%200%3D%3D%3Dpa%26%26%28pa%3Dnew%20THREE%2EWebGLProgram%28I%2CW%2Cd%2CK%29%2CXa%2Epush%28pa%29%2CI%2Einfo%2Ememory%2Eprograms%3DXa%2Elength%29%3Bd%2Eprogram%3Dpa%3Bvar%20Ta%3Dpa%2Eattributes%3Bif%28d%2EmorphTargets%29%7Bd%2EnumSupportedMorphTargets%3D0%3Bfor%28var%20aa%2CGa%3D%22morphTarget%22%2C%0Aza%3D0%3Bza%3CI%2EmaxMorphTargets%3Bza%2B%2B%29aa%3DGa%2Bza%2C0%3C%3DTa%5Baa%5D%26%26d%2EnumSupportedMorphTargets%2B%2B%7Dif%28d%2EmorphNormals%29for%28d%2EnumSupportedMorphNormals%3D0%2CGa%3D%22morphNormal%22%2Cza%3D0%3Bza%3CI%2EmaxMorphNormals%3Bza%2B%2B%29aa%3DGa%2Bza%2C0%3C%3DTa%5Baa%5D%26%26d%2EnumSupportedMorphNormals%2B%2B%3Bd%2EuniformsList%3D%5B%5D%3Bfor%28var%20ea%20in%20d%2E%5F%5FwebglShader%2Euniforms%29%7Bvar%20tb%3Dd%2Eprogram%2Euniforms%5Bea%5D%3Btb%26%26d%2EuniformsList%2Epush%28%5Bd%2E%5F%5FwebglShader%2Euniforms%5Bea%5D%2Ctb%5D%29%7Dd%2EneedsUpdate%3D%211%7Dd%2EmorphTargets%26%26%21e%2E%5F%5FwebglMorphTargetInfluences%26%26%28e%2E%5F%5FwebglMorphTargetInfluences%3Dnew%20Float32Array%28I%2EmaxMorphTargets%29%29%3B%0Avar%20qa%3D%211%2Ceb%3D%211%2Cya%3D%211%2Cxa%3Dd%2Eprogram%2Cha%3Dxa%2Euniforms%2CP%3Dd%2E%5F%5FwebglShader%2Euniforms%3Bxa%2Eid%21%3D%3DWb%26%26%28l%2EuseProgram%28xa%2Eprogram%29%2CWb%3Dxa%2Eid%2Cya%3Deb%3Dqa%3D%210%29%3Bd%2Eid%21%3D%3DHb%26%26%28%2D1%3D%3D%3DHb%26%26%28ya%3D%210%29%2CHb%3Dd%2Eid%2Ceb%3D%210%29%3Bif%28qa%7C%7Ca%21%3D%3DIb%29l%2EuniformMatrix4fv%28ha%2EprojectionMatrix%2C%211%2Ca%2EprojectionMatrix%2Eelements%29%2CX%26%26l%2Euniform1f%28ha%2ElogDepthBufFC%2C2%2F%28Math%2Elog%28a%2Efar%2B1%29%2FMath%2ELN2%29%29%2Ca%21%3D%3DIb%26%26%28Ib%3Da%29%2C%28d%20instanceof%20THREE%2EShaderMaterial%7C%7Cd%20instanceof%20THREE%2EMeshPhongMaterial%7C%7Cd%2EenvMap%29%26%26null%21%3D%3Dha%2EcameraPosition%26%26%28Da%2EsetFromMatrixPosition%28a%2EmatrixWorld%29%2Cl%2Euniform3f%28ha%2EcameraPosition%2C%0ADa%2Ex%2CDa%2Ey%2CDa%2Ez%29%29%2C%28d%20instanceof%20THREE%2EMeshPhongMaterial%7C%7Cd%20instanceof%20THREE%2EMeshLambertMaterial%7C%7Cd%20instanceof%20THREE%2EMeshBasicMaterial%7C%7Cd%20instanceof%20THREE%2EShaderMaterial%7C%7Cd%2Eskinning%29%26%26null%21%3D%3Dha%2EviewMatrix%26%26l%2EuniformMatrix4fv%28ha%2EviewMatrix%2C%211%2Ca%2EmatrixWorldInverse%2Eelements%29%3Bif%28d%2Eskinning%29if%28e%2EbindMatrix%26%26null%21%3D%3Dha%2EbindMatrix%26%26l%2EuniformMatrix4fv%28ha%2EbindMatrix%2C%211%2Ce%2EbindMatrix%2Eelements%29%2Ce%2EbindMatrixInverse%26%26null%21%3D%3Dha%2EbindMatrixInverse%26%26l%2EuniformMatrix4fv%28ha%2EbindMatrixInverse%2C%211%2Ce%2EbindMatrixInverse%2Eelements%29%2C%0ANb%26%26e%2Eskeleton%26%26e%2Eskeleton%2EuseVertexTexture%29%7Bif%28null%21%3D%3Dha%2EboneTexture%29%7Bvar%20%24a%3Dz%28%29%3Bl%2Euniform1i%28ha%2EboneTexture%2C%24a%29%3BI%2EsetTexture%28e%2Eskeleton%2EboneTexture%2C%24a%29%7Dnull%21%3D%3Dha%2EboneTextureWidth%26%26l%2Euniform1i%28ha%2EboneTextureWidth%2Ce%2Eskeleton%2EboneTextureWidth%29%3Bnull%21%3D%3Dha%2EboneTextureHeight%26%26l%2Euniform1i%28ha%2EboneTextureHeight%2Ce%2Eskeleton%2EboneTextureHeight%29%7Delse%20e%2Eskeleton%26%26e%2Eskeleton%2EboneMatrices%26%26null%21%3D%3Dha%2EboneGlobalMatrices%26%26l%2EuniformMatrix4fv%28ha%2EboneGlobalMatrices%2C%211%2Ce%2Eskeleton%2EboneMatrices%29%3Bif%28eb%29%7Bc%26%26d%2Efog%26%26%28P%2EfogColor%2Evalue%3D%0Ac%2Ecolor%2Cc%20instanceof%20THREE%2EFog%3F%28P%2EfogNear%2Evalue%3Dc%2Enear%2CP%2EfogFar%2Evalue%3Dc%2Efar%29%3Ac%20instanceof%20THREE%2EFogExp2%26%26%28P%2EfogDensity%2Evalue%3Dc%2Edensity%29%29%3Bif%28d%20instanceof%20THREE%2EMeshPhongMaterial%7C%7Cd%20instanceof%20THREE%2EMeshLambertMaterial%7C%7Cd%2Elights%29%7Bif%28Ob%29%7Bvar%20ya%3D%210%2Cfa%2Cfb%2CY%2CMa%3D0%2CSa%3D0%2CYa%3D0%2CAa%2CHa%2Chb%2Cna%2Cab%2Cjb%2Cla%3Dnc%2CNa%3Dla%2Edirectional%2Ecolors%2CUa%3Dla%2Edirectional%2Epositions%2Cmb%3Dla%2Epoint%2Ecolors%2Ckb%3Dla%2Epoint%2Epositions%2Csb%3Dla%2Epoint%2Edistances%2CVa%3Dla%2Espot%2Ecolors%2CIa%3Dla%2Espot%2Epositions%2Cnb%3Dla%2Espot%2Edistances%2COa%3Dla%2Espot%2Edirections%2Cia%3Dla%2Espot%2EanglesCos%2C%0Ara%3Dla%2Espot%2Eexponents%2CJ%3Dla%2Ehemi%2EskyColors%2CBa%3Dla%2Ehemi%2EgroundColors%2Cbb%3Dla%2Ehemi%2Epositions%2Cwb%3D0%2Cob%3D0%2CPa%3D0%2CCa%3D0%2Ccb%3D0%2CKa%3D0%2CLa%3D0%2Cib%3D0%2Cxb%3D0%2Cpb%3D0%2CB%3D0%2Cdb%3D0%3Bfa%3D0%3Bfor%28fb%3Db%2Elength%3Bfa%3Cfb%3Bfa%2B%2B%29Y%3Db%5Bfa%5D%2CY%2EonlyShadow%7C%7C%28Aa%3DY%2Ecolor%2Cna%3DY%2Eintensity%2Cjb%3DY%2Edistance%2CY%20instanceof%20THREE%2EAmbientLight%3FY%2Evisible%26%26%28I%2EgammaInput%3F%28Ma%2B%3DAa%2Er%2AAa%2Er%2CSa%2B%3DAa%2Eg%2AAa%2Eg%2CYa%2B%3DAa%2Eb%2AAa%2Eb%29%3A%28Ma%2B%3DAa%2Er%2CSa%2B%3DAa%2Eg%2CYa%2B%3DAa%2Eb%29%29%3AY%20instanceof%20THREE%2EDirectionalLight%3F%28cb%2B%3D1%2CY%2Evisible%26%26%28ma%2EsetFromMatrixPosition%28Y%2EmatrixWorld%29%2CDa%2EsetFromMatrixPosition%28Y%2Etarget%2EmatrixWorld%29%2C%0Ama%2Esub%28Da%29%2Cma%2Enormalize%28%29%2Cxb%3D3%2Awb%2CUa%5Bxb%5D%3Dma%2Ex%2CUa%5Bxb%2B1%5D%3Dma%2Ey%2CUa%5Bxb%2B2%5D%3Dma%2Ez%2CI%2EgammaInput%3FE%28Na%2Cxb%2CAa%2Cna%2Ana%29%3Aw%28Na%2Cxb%2CAa%2Cna%29%2Cwb%2B%3D1%29%29%3AY%20instanceof%20THREE%2EPointLight%3F%28Ka%2B%3D1%2CY%2Evisible%26%26%28pb%3D3%2Aob%2CI%2EgammaInput%3FE%28mb%2Cpb%2CAa%2Cna%2Ana%29%3Aw%28mb%2Cpb%2CAa%2Cna%29%2CDa%2EsetFromMatrixPosition%28Y%2EmatrixWorld%29%2Ckb%5Bpb%5D%3DDa%2Ex%2Ckb%5Bpb%2B1%5D%3DDa%2Ey%2Ckb%5Bpb%2B2%5D%3DDa%2Ez%2Csb%5Bob%5D%3Djb%2Cob%2B%3D1%29%29%3AY%20instanceof%20THREE%2ESpotLight%3F%28La%2B%3D1%2CY%2Evisible%26%26%28B%3D3%2APa%2CI%2EgammaInput%3FE%28Va%2CB%2CAa%2Cna%2Ana%29%3Aw%28Va%2CB%2CAa%2Cna%29%2Cma%2EsetFromMatrixPosition%28Y%2EmatrixWorld%29%2CIa%5BB%5D%3Dma%2Ex%2CIa%5BB%2B1%5D%3Dma%2Ey%2CIa%5BB%2B2%5D%3Dma%2Ez%2C%0Anb%5BPa%5D%3Djb%2CDa%2EsetFromMatrixPosition%28Y%2Etarget%2EmatrixWorld%29%2Cma%2Esub%28Da%29%2Cma%2Enormalize%28%29%2COa%5BB%5D%3Dma%2Ex%2COa%5BB%2B1%5D%3Dma%2Ey%2COa%5BB%2B2%5D%3Dma%2Ez%2Cia%5BPa%5D%3DMath%2Ecos%28Y%2Eangle%29%2Cra%5BPa%5D%3DY%2Eexponent%2CPa%2B%3D1%29%29%3AY%20instanceof%20THREE%2EHemisphereLight%26%26%28ib%2B%3D1%2CY%2Evisible%26%26%28ma%2EsetFromMatrixPosition%28Y%2EmatrixWorld%29%2Cma%2Enormalize%28%29%2Cdb%3D3%2ACa%2Cbb%5Bdb%5D%3Dma%2Ex%2Cbb%5Bdb%2B1%5D%3Dma%2Ey%2Cbb%5Bdb%2B2%5D%3Dma%2Ez%2CHa%3DY%2Ecolor%2Chb%3DY%2EgroundColor%2CI%2EgammaInput%3F%28ab%3Dna%2Ana%2CE%28J%2Cdb%2CHa%2Cab%29%2CE%28Ba%2Cdb%2Chb%2Cab%29%29%3A%28w%28J%2Cdb%2CHa%2Cna%29%2Cw%28Ba%2Cdb%2Chb%2Cna%29%29%2CCa%2B%3D1%29%29%29%3Bfa%3D3%2Awb%3Bfor%28fb%3DMath%2Emax%28Na%2Elength%2C3%2Acb%29%3Bfa%3Cfb%3Bfa%2B%2B%29Na%5Bfa%5D%3D%0A0%3Bfa%3D3%2Aob%3Bfor%28fb%3DMath%2Emax%28mb%2Elength%2C3%2AKa%29%3Bfa%3Cfb%3Bfa%2B%2B%29mb%5Bfa%5D%3D0%3Bfa%3D3%2APa%3Bfor%28fb%3DMath%2Emax%28Va%2Elength%2C3%2ALa%29%3Bfa%3Cfb%3Bfa%2B%2B%29Va%5Bfa%5D%3D0%3Bfa%3D3%2ACa%3Bfor%28fb%3DMath%2Emax%28J%2Elength%2C3%2Aib%29%3Bfa%3Cfb%3Bfa%2B%2B%29J%5Bfa%5D%3D0%3Bfa%3D3%2ACa%3Bfor%28fb%3DMath%2Emax%28Ba%2Elength%2C3%2Aib%29%3Bfa%3Cfb%3Bfa%2B%2B%29Ba%5Bfa%5D%3D0%3Bla%2Edirectional%2Elength%3Dwb%3Bla%2Epoint%2Elength%3Dob%3Bla%2Espot%2Elength%3DPa%3Bla%2Ehemi%2Elength%3DCa%3Bla%2Eambient%5B0%5D%3DMa%3Bla%2Eambient%5B1%5D%3DSa%3Bla%2Eambient%5B2%5D%3DYa%3BOb%3D%211%7Dif%28ya%29%7Bvar%20sa%3Dnc%3BP%2EambientLightColor%2Evalue%3Dsa%2Eambient%3BP%2EdirectionalLightColor%2Evalue%3Dsa%2Edirectional%2Ecolors%3BP%2EdirectionalLightDirection%2Evalue%3D%0Asa%2Edirectional%2Epositions%3BP%2EpointLightColor%2Evalue%3Dsa%2Epoint%2Ecolors%3BP%2EpointLightPosition%2Evalue%3Dsa%2Epoint%2Epositions%3BP%2EpointLightDistance%2Evalue%3Dsa%2Epoint%2Edistances%3BP%2EspotLightColor%2Evalue%3Dsa%2Espot%2Ecolors%3BP%2EspotLightPosition%2Evalue%3Dsa%2Espot%2Epositions%3BP%2EspotLightDistance%2Evalue%3Dsa%2Espot%2Edistances%3BP%2EspotLightDirection%2Evalue%3Dsa%2Espot%2Edirections%3BP%2EspotLightAngleCos%2Evalue%3Dsa%2Espot%2EanglesCos%3BP%2EspotLightExponent%2Evalue%3Dsa%2Espot%2Eexponents%3BP%2EhemisphereLightSkyColor%2Evalue%3Dsa%2Ehemi%2EskyColors%3BP%2EhemisphereLightGroundColor%2Evalue%3D%0Asa%2Ehemi%2EgroundColors%3BP%2EhemisphereLightDirection%2Evalue%3Dsa%2Ehemi%2Epositions%3BF%28P%2C%210%29%7Delse%20F%28P%2C%211%29%7Dif%28d%20instanceof%20THREE%2EMeshBasicMaterial%7C%7Cd%20instanceof%20THREE%2EMeshLambertMaterial%7C%7Cd%20instanceof%20THREE%2EMeshPhongMaterial%29%7BP%2Eopacity%2Evalue%3Dd%2Eopacity%3BI%2EgammaInput%3FP%2Ediffuse%2Evalue%2EcopyGammaToLinear%28d%2Ecolor%29%3AP%2Ediffuse%2Evalue%3Dd%2Ecolor%3BP%2Emap%2Evalue%3Dd%2Emap%3BP%2ElightMap%2Evalue%3Dd%2ElightMap%3BP%2EspecularMap%2Evalue%3Dd%2EspecularMap%3BP%2EalphaMap%2Evalue%3Dd%2EalphaMap%3Bd%2EbumpMap%26%26%28P%2EbumpMap%2Evalue%3Dd%2EbumpMap%2CP%2EbumpScale%2Evalue%3Dd%2EbumpScale%29%3Bd%2EnormalMap%26%26%0A%28P%2EnormalMap%2Evalue%3Dd%2EnormalMap%2CP%2EnormalScale%2Evalue%2Ecopy%28d%2EnormalScale%29%29%3Bvar%20oa%3Bd%2Emap%3Foa%3Dd%2Emap%3Ad%2EspecularMap%3Foa%3Dd%2EspecularMap%3Ad%2EnormalMap%3Foa%3Dd%2EnormalMap%3Ad%2EbumpMap%3Foa%3Dd%2EbumpMap%3Ad%2EalphaMap%26%26%28oa%3Dd%2EalphaMap%29%3Bif%28void%200%21%3D%3Doa%29%7Bvar%20ub%3Doa%2Eoffset%2Czb%3Doa%2Erepeat%3BP%2EoffsetRepeat%2Evalue%2Eset%28ub%2Ex%2Cub%2Ey%2Czb%2Ex%2Czb%2Ey%29%7DP%2EenvMap%2Evalue%3Dd%2EenvMap%3BP%2EflipEnvMap%2Evalue%3Dd%2EenvMap%20instanceof%20THREE%2EWebGLRenderTargetCube%3F1%3A%2D1%3BP%2Ereflectivity%2Evalue%3Dd%2Ereflectivity%3BP%2ErefractionRatio%2Evalue%3Dd%2ErefractionRatio%7Dd%20instanceof%20THREE%2ELineBasicMaterial%3F%0A%28P%2Ediffuse%2Evalue%3Dd%2Ecolor%2CP%2Eopacity%2Evalue%3Dd%2Eopacity%29%3Ad%20instanceof%20THREE%2ELineDashedMaterial%3F%28P%2Ediffuse%2Evalue%3Dd%2Ecolor%2CP%2Eopacity%2Evalue%3Dd%2Eopacity%2CP%2EdashSize%2Evalue%3Dd%2EdashSize%2CP%2EtotalSize%2Evalue%3Dd%2EdashSize%2Bd%2EgapSize%2CP%2Escale%2Evalue%3Dd%2Escale%29%3Ad%20instanceof%20THREE%2EPointCloudMaterial%3F%28P%2EpsColor%2Evalue%3Dd%2Ecolor%2CP%2Eopacity%2Evalue%3Dd%2Eopacity%2CP%2Esize%2Evalue%3Dd%2Esize%2CP%2Escale%2Evalue%3DQ%2Eheight%2F2%2CP%2Emap%2Evalue%3Dd%2Emap%29%3Ad%20instanceof%20THREE%2EMeshPhongMaterial%3F%28P%2Eshininess%2Evalue%3Dd%2Eshininess%2CI%2EgammaInput%3F%28P%2Eambient%2Evalue%2EcopyGammaToLinear%28d%2Eambient%29%2C%0AP%2Eemissive%2Evalue%2EcopyGammaToLinear%28d%2Eemissive%29%2CP%2Especular%2Evalue%2EcopyGammaToLinear%28d%2Especular%29%29%3A%28P%2Eambient%2Evalue%3Dd%2Eambient%2CP%2Eemissive%2Evalue%3Dd%2Eemissive%2CP%2Especular%2Evalue%3Dd%2Especular%29%2Cd%2EwrapAround%26%26P%2EwrapRGB%2Evalue%2Ecopy%28d%2EwrapRGB%29%29%3Ad%20instanceof%20THREE%2EMeshLambertMaterial%3F%28I%2EgammaInput%3F%28P%2Eambient%2Evalue%2EcopyGammaToLinear%28d%2Eambient%29%2CP%2Eemissive%2Evalue%2EcopyGammaToLinear%28d%2Eemissive%29%29%3A%28P%2Eambient%2Evalue%3Dd%2Eambient%2CP%2Eemissive%2Evalue%3Dd%2Eemissive%29%2Cd%2EwrapAround%26%26P%2EwrapRGB%2Evalue%2Ecopy%28d%2EwrapRGB%29%29%3Ad%20instanceof%20THREE%2EMeshDepthMaterial%3F%0A%28P%2EmNear%2Evalue%3Da%2Enear%2CP%2EmFar%2Evalue%3Da%2Efar%2CP%2Eopacity%2Evalue%3Dd%2Eopacity%29%3Ad%20instanceof%20THREE%2EMeshNormalMaterial%26%26%28P%2Eopacity%2Evalue%3Dd%2Eopacity%29%3Bif%28e%2EreceiveShadow%26%26%21d%2E%5FshadowPass%26%26P%2EshadowMatrix%29for%28var%20Ab%3D0%2Cvb%3D0%2CXb%3Db%2Elength%3Bvb%3CXb%3Bvb%2B%2B%29%7Bvar%20lb%3Db%5Bvb%5D%3Blb%2EcastShadow%26%26%28lb%20instanceof%20THREE%2ESpotLight%7C%7Clb%20instanceof%20THREE%2EDirectionalLight%26%26%21lb%2EshadowCascade%29%26%26%28P%2EshadowMap%2Evalue%5BAb%5D%3Dlb%2EshadowMap%2CP%2EshadowMapSize%2Evalue%5BAb%5D%3Dlb%2EshadowMapSize%2CP%2EshadowMatrix%2Evalue%5BAb%5D%3Dlb%2EshadowMatrix%2CP%2EshadowDarkness%2Evalue%5BAb%5D%3Dlb%2EshadowDarkness%2C%0AP%2EshadowBias%2Evalue%5BAb%5D%3Dlb%2EshadowBias%2CAb%2B%2B%29%7Dfor%28var%20Cb%3Dd%2EuniformsList%2CV%2CJa%2CWa%2CDb%3D0%2CPb%3DCb%2Elength%3BDb%3CPb%3BDb%2B%2B%29%7Bvar%20%24%3DCb%5BDb%5D%5B0%5D%3Bif%28%211%21%3D%3D%24%2EneedsUpdate%29%7Bvar%20Eb%3D%24%2Etype%2CR%3D%24%2Evalue%2CS%3DCb%5BDb%5D%5B1%5D%3Bswitch%28Eb%29%7Bcase%20%221i%22%3Al%2Euniform1i%28S%2CR%29%3Bbreak%3Bcase%20%221f%22%3Al%2Euniform1f%28S%2CR%29%3Bbreak%3Bcase%20%222f%22%3Al%2Euniform2f%28S%2CR%5B0%5D%2CR%5B1%5D%29%3Bbreak%3Bcase%20%223f%22%3Al%2Euniform3f%28S%2CR%5B0%5D%2CR%5B1%5D%2CR%5B2%5D%29%3Bbreak%3Bcase%20%224f%22%3Al%2Euniform4f%28S%2CR%5B0%5D%2CR%5B1%5D%2CR%5B2%5D%2CR%5B3%5D%29%3Bbreak%3Bcase%20%221iv%22%3Al%2Euniform1iv%28S%2CR%29%3Bbreak%3Bcase%20%223iv%22%3Al%2Euniform3iv%28S%2CR%29%3Bbreak%3Bcase%20%221fv%22%3Al%2Euniform1fv%28S%2CR%29%3Bbreak%3B%0Acase%20%222fv%22%3Al%2Euniform2fv%28S%2CR%29%3Bbreak%3Bcase%20%223fv%22%3Al%2Euniform3fv%28S%2CR%29%3Bbreak%3Bcase%20%224fv%22%3Al%2Euniform4fv%28S%2CR%29%3Bbreak%3Bcase%20%22Matrix3fv%22%3Al%2EuniformMatrix3fv%28S%2C%211%2CR%29%3Bbreak%3Bcase%20%22Matrix4fv%22%3Al%2EuniformMatrix4fv%28S%2C%211%2CR%29%3Bbreak%3Bcase%20%22i%22%3Al%2Euniform1i%28S%2CR%29%3Bbreak%3Bcase%20%22f%22%3Al%2Euniform1f%28S%2CR%29%3Bbreak%3Bcase%20%22v2%22%3Al%2Euniform2f%28S%2CR%2Ex%2CR%2Ey%29%3Bbreak%3Bcase%20%22v3%22%3Al%2Euniform3f%28S%2CR%2Ex%2CR%2Ey%2CR%2Ez%29%3Bbreak%3Bcase%20%22v4%22%3Al%2Euniform4f%28S%2CR%2Ex%2CR%2Ey%2CR%2Ez%2CR%2Ew%29%3Bbreak%3Bcase%20%22c%22%3Al%2Euniform3f%28S%2CR%2Er%2CR%2Eg%2CR%2Eb%29%3Bbreak%3Bcase%20%22iv1%22%3Al%2Euniform1iv%28S%2CR%29%3Bbreak%3Bcase%20%22iv%22%3Al%2Euniform3iv%28S%2CR%29%3B%0Abreak%3Bcase%20%22fv1%22%3Al%2Euniform1fv%28S%2CR%29%3Bbreak%3Bcase%20%22fv%22%3Al%2Euniform3fv%28S%2CR%29%3Bbreak%3Bcase%20%22v2v%22%3Avoid%200%3D%3D%3D%24%2E%5Farray%26%26%28%24%2E%5Farray%3Dnew%20Float32Array%282%2AR%2Elength%29%29%3Bfor%28var%20Z%3D0%2CEa%3DR%2Elength%3BZ%3CEa%3BZ%2B%2B%29Wa%3D2%2AZ%2C%24%2E%5Farray%5BWa%5D%3DR%5BZ%5D%2Ex%2C%24%2E%5Farray%5BWa%2B1%5D%3DR%5BZ%5D%2Ey%3Bl%2Euniform2fv%28S%2C%24%2E%5Farray%29%3Bbreak%3Bcase%20%22v3v%22%3Avoid%200%3D%3D%3D%24%2E%5Farray%26%26%28%24%2E%5Farray%3Dnew%20Float32Array%283%2AR%2Elength%29%29%3BZ%3D0%3Bfor%28Ea%3DR%2Elength%3BZ%3CEa%3BZ%2B%2B%29Wa%3D3%2AZ%2C%24%2E%5Farray%5BWa%5D%3DR%5BZ%5D%2Ex%2C%24%2E%5Farray%5BWa%2B1%5D%3DR%5BZ%5D%2Ey%2C%24%2E%5Farray%5BWa%2B2%5D%3DR%5BZ%5D%2Ez%3Bl%2Euniform3fv%28S%2C%24%2E%5Farray%29%3Bbreak%3Bcase%20%22v4v%22%3Avoid%200%3D%3D%3D%24%2E%5Farray%26%26%28%24%2E%5Farray%3Dnew%20Float32Array%284%2A%0AR%2Elength%29%29%3BZ%3D0%3Bfor%28Ea%3DR%2Elength%3BZ%3CEa%3BZ%2B%2B%29Wa%3D4%2AZ%2C%24%2E%5Farray%5BWa%5D%3DR%5BZ%5D%2Ex%2C%24%2E%5Farray%5BWa%2B1%5D%3DR%5BZ%5D%2Ey%2C%24%2E%5Farray%5BWa%2B2%5D%3DR%5BZ%5D%2Ez%2C%24%2E%5Farray%5BWa%2B3%5D%3DR%5BZ%5D%2Ew%3Bl%2Euniform4fv%28S%2C%24%2E%5Farray%29%3Bbreak%3Bcase%20%22m3%22%3Al%2EuniformMatrix3fv%28S%2C%211%2CR%2Eelements%29%3Bbreak%3Bcase%20%22m3v%22%3Avoid%200%3D%3D%3D%24%2E%5Farray%26%26%28%24%2E%5Farray%3Dnew%20Float32Array%289%2AR%2Elength%29%29%3BZ%3D0%3Bfor%28Ea%3DR%2Elength%3BZ%3CEa%3BZ%2B%2B%29R%5BZ%5D%2EflattenToArrayOffset%28%24%2E%5Farray%2C9%2AZ%29%3Bl%2EuniformMatrix3fv%28S%2C%211%2C%24%2E%5Farray%29%3Bbreak%3Bcase%20%22m4%22%3Al%2EuniformMatrix4fv%28S%2C%211%2CR%2Eelements%29%3Bbreak%3Bcase%20%22m4v%22%3Avoid%200%3D%3D%3D%24%2E%5Farray%26%26%28%24%2E%5Farray%3Dnew%20Float32Array%2816%2A%0AR%2Elength%29%29%3BZ%3D0%3Bfor%28Ea%3DR%2Elength%3BZ%3CEa%3BZ%2B%2B%29R%5BZ%5D%2EflattenToArrayOffset%28%24%2E%5Farray%2C16%2AZ%29%3Bl%2EuniformMatrix4fv%28S%2C%211%2C%24%2E%5Farray%29%3Bbreak%3Bcase%20%22t%22%3AV%3DR%3BJa%3Dz%28%29%3Bl%2Euniform1i%28S%2CJa%29%3Bif%28%21V%29continue%3Bif%28V%20instanceof%20THREE%2ECubeTexture%7C%7CV%2Eimage%20instanceof%20Array%26%266%3D%3D%3DV%2Eimage%2Elength%29%7Bvar%20ka%3DV%2CBb%3DJa%3Bif%286%3D%3D%3Dka%2Eimage%2Elength%29if%28ka%2EneedsUpdate%29%7Bka%2Eimage%2E%5F%5FwebglTextureCube%7C%7C%28ka%2EaddEventListener%28%22dispose%22%2CJb%29%2Cka%2Eimage%2E%5F%5FwebglTextureCube%3Dl%2EcreateTexture%28%29%2CI%2Einfo%2Ememory%2Etextures%2B%2B%29%3Bl%2EactiveTexture%28l%2ETEXTURE0%2BBb%29%3Bl%2EbindTexture%28l%2ETEXTURE%5FCUBE%5FMAP%2C%0Aka%2Eimage%2E%5F%5FwebglTextureCube%29%3Bl%2EpixelStorei%28l%2EUNPACK%5FFLIP%5FY%5FWEBGL%2Cka%2EflipY%29%3Bfor%28var%20Fb%3Dka%20instanceof%20THREE%2ECompressedTexture%2Cba%3Dka%2Eimage%5B0%5Dinstanceof%20THREE%2EDataTexture%2Cgb%3D%5B%5D%2Cua%3D0%3B6%3Eua%3Bua%2B%2B%29gb%5Bua%5D%3D%21I%2EautoScaleCubemaps%7C%7CFb%7C%7Cba%3Fba%3Fka%2Eimage%5Bua%5D%2Eimage%3Aka%2Eimage%5Bua%5D%3AM%28ka%2Eimage%5Bua%5D%2CEc%29%3Bvar%20Qb%3Dgb%5B0%5D%2CRb%3DTHREE%2EMath%2EisPowerOfTwo%28Qb%2Ewidth%29%26%26THREE%2EMath%2EisPowerOfTwo%28Qb%2Eheight%29%2Cqb%3DT%28ka%2Eformat%29%2CSb%3DT%28ka%2Etype%29%3BU%28l%2ETEXTURE%5FCUBE%5FMAP%2Cka%2CRb%29%3Bfor%28ua%3D0%3B6%3Eua%3Bua%2B%2B%29if%28Fb%29for%28var%20yb%2CGb%3Dgb%5Bua%5D%2Emipmaps%2Crb%3D0%2CYb%3DGb%2Elength%3Brb%3CYb%3Brb%2B%2B%29yb%3D%0AGb%5Brb%5D%2Cka%2Eformat%21%3D%3DTHREE%2ERGBAFormat%26%26ka%2Eformat%21%3D%3DTHREE%2ERGBFormat%3F%2D1%3Coc%28%29%2EindexOf%28qb%29%3Fl%2EcompressedTexImage2D%28l%2ETEXTURE%5FCUBE%5FMAP%5FPOSITIVE%5FX%2Bua%2Crb%2Cqb%2Cyb%2Ewidth%2Cyb%2Eheight%2C0%2Cyb%2Edata%29%3Aconsole%2Ewarn%28%22Attempt%20to%20load%20unsupported%20compressed%20texture%20format%22%29%3Al%2EtexImage2D%28l%2ETEXTURE%5FCUBE%5FMAP%5FPOSITIVE%5FX%2Bua%2Crb%2Cqb%2Cyb%2Ewidth%2Cyb%2Eheight%2C0%2Cqb%2CSb%2Cyb%2Edata%29%3Belse%20ba%3Fl%2EtexImage2D%28l%2ETEXTURE%5FCUBE%5FMAP%5FPOSITIVE%5FX%2Bua%2C0%2Cqb%2Cgb%5Bua%5D%2Ewidth%2Cgb%5Bua%5D%2Eheight%2C0%2Cqb%2CSb%2Cgb%5Bua%5D%2Edata%29%3Al%2EtexImage2D%28l%2ETEXTURE%5FCUBE%5FMAP%5FPOSITIVE%5FX%2Bua%2C0%2Cqb%2Cqb%2CSb%2Cgb%5Bua%5D%29%3B%0Aka%2EgenerateMipmaps%26%26Rb%26%26l%2EgenerateMipmap%28l%2ETEXTURE%5FCUBE%5FMAP%29%3Bka%2EneedsUpdate%3D%211%3Bif%28ka%2EonUpdate%29ka%2EonUpdate%28%29%7Delse%20l%2EactiveTexture%28l%2ETEXTURE0%2BBb%29%2Cl%2EbindTexture%28l%2ETEXTURE%5FCUBE%5FMAP%2Cka%2Eimage%2E%5F%5FwebglTextureCube%29%7Delse%20if%28V%20instanceof%20THREE%2EWebGLRenderTargetCube%29%7Bvar%20Zb%3DV%3Bl%2EactiveTexture%28l%2ETEXTURE0%2BJa%29%3Bl%2EbindTexture%28l%2ETEXTURE%5FCUBE%5FMAP%2CZb%2E%5F%5FwebglTexture%29%7Delse%20I%2EsetTexture%28V%2CJa%29%3Bbreak%3Bcase%20%22tv%22%3Avoid%200%3D%3D%3D%24%2E%5Farray%26%26%28%24%2E%5Farray%3D%5B%5D%29%3BZ%3D0%3Bfor%28Ea%3D%24%2Evalue%2Elength%3BZ%3CEa%3BZ%2B%2B%29%24%2E%5Farray%5BZ%5D%3Dz%28%29%3Bl%2Euniform1iv%28S%2C%24%2E%5Farray%29%3BZ%3D0%3B%0Afor%28Ea%3D%24%2Evalue%2Elength%3BZ%3CEa%3BZ%2B%2B%29V%3D%24%2Evalue%5BZ%5D%2CJa%3D%24%2E%5Farray%5BZ%5D%2CV%26%26I%2EsetTexture%28V%2CJa%29%3Bbreak%3Bdefault%3Aconsole%2Ewarn%28%22THREE%2EWebGLRenderer%3A%20Unknown%20uniform%20type%3A%20%22%2BEb%29%7D%7D%7D%7Dl%2EuniformMatrix4fv%28ha%2EmodelViewMatrix%2C%211%2Ce%2E%5FmodelViewMatrix%2Eelements%29%3Bha%2EnormalMatrix%26%26l%2EuniformMatrix3fv%28ha%2EnormalMatrix%2C%211%2Ce%2E%5FnormalMatrix%2Eelements%29%3Bnull%21%3D%3Dha%2EmodelMatrix%26%26l%2EuniformMatrix4fv%28ha%2EmodelMatrix%2C%211%2Ce%2EmatrixWorld%2Eelements%29%3Breturn%20xa%7Dfunction%20F%28a%2Cb%29%7Ba%2EambientLightColor%2EneedsUpdate%3Db%3Ba%2EdirectionalLightColor%2EneedsUpdate%3Db%3Ba%2EdirectionalLightDirection%2EneedsUpdate%3D%0Ab%3Ba%2EpointLightColor%2EneedsUpdate%3Db%3Ba%2EpointLightPosition%2EneedsUpdate%3Db%3Ba%2EpointLightDistance%2EneedsUpdate%3Db%3Ba%2EspotLightColor%2EneedsUpdate%3Db%3Ba%2EspotLightPosition%2EneedsUpdate%3Db%3Ba%2EspotLightDistance%2EneedsUpdate%3Db%3Ba%2EspotLightDirection%2EneedsUpdate%3Db%3Ba%2EspotLightAngleCos%2EneedsUpdate%3Db%3Ba%2EspotLightExponent%2EneedsUpdate%3Db%3Ba%2EhemisphereLightSkyColor%2EneedsUpdate%3Db%3Ba%2EhemisphereLightGroundColor%2EneedsUpdate%3Db%3Ba%2EhemisphereLightDirection%2EneedsUpdate%3Db%7Dfunction%20z%28%29%7Bvar%20a%3DMb%3Ba%3E%3Dpc%26%26console%2Ewarn%28%22WebGLRenderer%3A%20trying%20to%20use%20%22%2B%0Aa%2B%22%20texture%20units%20while%20this%20GPU%20supports%20only%20%22%2Bpc%29%3BMb%2B%3D1%3Breturn%20a%7Dfunction%20G%28a%2Cb%29%7Ba%2E%5FmodelViewMatrix%2EmultiplyMatrices%28b%2EmatrixWorldInverse%2Ca%2EmatrixWorld%29%3Ba%2E%5FnormalMatrix%2EgetNormalMatrix%28a%2E%5FmodelViewMatrix%29%7Dfunction%20E%28a%2Cb%2Cc%2Cd%29%7Ba%5Bb%5D%3Dc%2Er%2Ac%2Er%2Ad%3Ba%5Bb%2B1%5D%3Dc%2Eg%2Ac%2Eg%2Ad%3Ba%5Bb%2B2%5D%3Dc%2Eb%2Ac%2Eb%2Ad%7Dfunction%20w%28a%2Cb%2Cc%2Cd%29%7Ba%5Bb%5D%3Dc%2Er%2Ad%3Ba%5Bb%2B1%5D%3Dc%2Eg%2Ad%3Ba%5Bb%2B2%5D%3Dc%2Eb%2Ad%7Dfunction%20D%28a%29%7Ba%2A%3DO%3Ba%21%3D%3Dqc%26%26%28l%2ElineWidth%28a%29%2Cqc%3Da%29%7Dfunction%20A%28a%2Cb%2Cc%29%7Brc%21%3D%3Da%26%26%28a%3Fl%2Eenable%28l%2EPOLYGON%5FOFFSET%5FFILL%29%3Al%2Edisable%28l%2EPOLYGON%5FOFFSET%5FFILL%29%2Crc%3Da%29%3B%21a%7C%7Csc%3D%3D%3Db%26%26tc%3D%3D%3Dc%7C%7C%0A%28l%2EpolygonOffset%28b%2Cc%29%2Csc%3Db%2Ctc%3Dc%29%7Dfunction%20U%28a%2Cb%2Cc%29%7Bc%3F%28l%2EtexParameteri%28a%2Cl%2ETEXTURE%5FWRAP%5FS%2CT%28b%2EwrapS%29%29%2Cl%2EtexParameteri%28a%2Cl%2ETEXTURE%5FWRAP%5FT%2CT%28b%2EwrapT%29%29%2Cl%2EtexParameteri%28a%2Cl%2ETEXTURE%5FMAG%5FFILTER%2CT%28b%2EmagFilter%29%29%2Cl%2EtexParameteri%28a%2Cl%2ETEXTURE%5FMIN%5FFILTER%2CT%28b%2EminFilter%29%29%29%3A%28l%2EtexParameteri%28a%2Cl%2ETEXTURE%5FWRAP%5FS%2Cl%2ECLAMP%5FTO%5FEDGE%29%2Cl%2EtexParameteri%28a%2Cl%2ETEXTURE%5FWRAP%5FT%2Cl%2ECLAMP%5FTO%5FEDGE%29%2Cb%2EwrapS%3D%3D%3DTHREE%2EClampToEdgeWrapping%26%26b%2EwrapT%3D%3D%3DTHREE%2EClampToEdgeWrapping%7C%7Cconsole%2Ewarn%28%22THREE%2EWebGLRenderer%3A%20Texture%20is%20not%20power%20of%20two%2E%20Texture%2EwrapS%20and%20Texture%2EwrapT%20is%20set%20to%20THREE%2EClampToEdgeWrapping%2E%20%28%20%22%2B%0Ab%2EsourceFile%2B%22%20%29%22%29%2Cl%2EtexParameteri%28a%2Cl%2ETEXTURE%5FMAG%5FFILTER%2CN%28b%2EmagFilter%29%29%2Cl%2EtexParameteri%28a%2Cl%2ETEXTURE%5FMIN%5FFILTER%2CN%28b%2EminFilter%29%29%2Cb%2EminFilter%21%3D%3DTHREE%2ENearestFilter%26%26b%2EminFilter%21%3D%3DTHREE%2ELinearFilter%26%26console%2Ewarn%28%22THREE%2EWebGLRenderer%3A%20Texture%20is%20not%20power%20of%20two%2E%20Texture%2EminFilter%20is%20set%20to%20THREE%2ELinearFilter%20or%20THREE%2ENearestFilter%2E%20%28%20%22%2Bb%2EsourceFile%2B%22%20%29%22%29%29%3B%28c%3Daa%2Eget%28%22EXT%5Ftexture%5Ffilter%5Fanisotropic%22%29%29%26%26b%2Etype%21%3D%3DTHREE%2EFloatType%26%26%281%3Cb%2Eanisotropy%7C%7Cb%2E%5F%5FoldAnisotropy%29%26%26%28l%2EtexParameterf%28a%2Cc%2ETEXTURE%5FMAX%5FANISOTROPY%5FEXT%2C%0AMath%2Emin%28b%2Eanisotropy%2CI%2EgetMaxAnisotropy%28%29%29%29%2Cb%2E%5F%5FoldAnisotropy%3Db%2Eanisotropy%29%7Dfunction%20M%28a%2Cb%29%7Bif%28a%2Ewidth%3Eb%7C%7Ca%2Eheight%3Eb%29%7Bvar%20c%3Db%2FMath%2Emax%28a%2Ewidth%2Ca%2Eheight%29%2Cd%3Ddocument%2EcreateElement%28%22canvas%22%29%3Bd%2Ewidth%3DMath%2Efloor%28a%2Ewidth%2Ac%29%3Bd%2Eheight%3DMath%2Efloor%28a%2Eheight%2Ac%29%3Bd%2EgetContext%28%222d%22%29%2EdrawImage%28a%2C0%2C0%2Ca%2Ewidth%2Ca%2Eheight%2C0%2C0%2Cd%2Ewidth%2Cd%2Eheight%29%3Bconsole%2Elog%28%22THREE%2EWebGLRenderer%3A%22%2Ca%2C%22is%20too%20big%20%28%22%2Ba%2Ewidth%2B%22x%22%2Ba%2Eheight%2B%22%29%2E%20Resized%20to%20%22%2Bd%2Ewidth%2B%22x%22%2Bd%2Eheight%2B%22%2E%22%29%3Breturn%20d%7Dreturn%20a%7Dfunction%20K%28a%2Cb%29%7Bl%2EbindRenderbuffer%28l%2ERENDERBUFFER%2C%0Aa%29%3Bb%2EdepthBuffer%26%26%21b%2EstencilBuffer%3F%28l%2ErenderbufferStorage%28l%2ERENDERBUFFER%2Cl%2EDEPTH%5FCOMPONENT16%2Cb%2Ewidth%2Cb%2Eheight%29%2Cl%2EframebufferRenderbuffer%28l%2EFRAMEBUFFER%2Cl%2EDEPTH%5FATTACHMENT%2Cl%2ERENDERBUFFER%2Ca%29%29%3Ab%2EdepthBuffer%26%26b%2EstencilBuffer%3F%28l%2ErenderbufferStorage%28l%2ERENDERBUFFER%2Cl%2EDEPTH%5FSTENCIL%2Cb%2Ewidth%2Cb%2Eheight%29%2Cl%2EframebufferRenderbuffer%28l%2EFRAMEBUFFER%2Cl%2EDEPTH%5FSTENCIL%5FATTACHMENT%2Cl%2ERENDERBUFFER%2Ca%29%29%3Al%2ErenderbufferStorage%28l%2ERENDERBUFFER%2Cl%2ERGBA4%2Cb%2Ewidth%2Cb%2Eheight%29%7Dfunction%20L%28a%29%7Ba%20instanceof%20THREE%2EWebGLRenderTargetCube%3F%28l%2EbindTexture%28l%2ETEXTURE%5FCUBE%5FMAP%2C%0Aa%2E%5F%5FwebglTexture%29%2Cl%2EgenerateMipmap%28l%2ETEXTURE%5FCUBE%5FMAP%29%2Cl%2EbindTexture%28l%2ETEXTURE%5FCUBE%5FMAP%2Cnull%29%29%3A%28l%2EbindTexture%28l%2ETEXTURE%5F2D%2Ca%2E%5F%5FwebglTexture%29%2Cl%2EgenerateMipmap%28l%2ETEXTURE%5F2D%29%2Cl%2EbindTexture%28l%2ETEXTURE%5F2D%2Cnull%29%29%7Dfunction%20N%28a%29%7Breturn%20a%3D%3D%3DTHREE%2ENearestFilter%7C%7Ca%3D%3D%3DTHREE%2ENearestMipMapNearestFilter%7C%7Ca%3D%3D%3DTHREE%2ENearestMipMapLinearFilter%3Fl%2ENEAREST%3Al%2ELINEAR%7Dfunction%20T%28a%29%7Bvar%20b%3Bif%28a%3D%3D%3DTHREE%2ERepeatWrapping%29return%20l%2EREPEAT%3Bif%28a%3D%3D%3DTHREE%2EClampToEdgeWrapping%29return%20l%2ECLAMP%5FTO%5FEDGE%3Bif%28a%3D%3D%3DTHREE%2EMirroredRepeatWrapping%29return%20l%2EMIRRORED%5FREPEAT%3B%0Aif%28a%3D%3D%3DTHREE%2ENearestFilter%29return%20l%2ENEAREST%3Bif%28a%3D%3D%3DTHREE%2ENearestMipMapNearestFilter%29return%20l%2ENEAREST%5FMIPMAP%5FNEAREST%3Bif%28a%3D%3D%3DTHREE%2ENearestMipMapLinearFilter%29return%20l%2ENEAREST%5FMIPMAP%5FLINEAR%3Bif%28a%3D%3D%3DTHREE%2ELinearFilter%29return%20l%2ELINEAR%3Bif%28a%3D%3D%3DTHREE%2ELinearMipMapNearestFilter%29return%20l%2ELINEAR%5FMIPMAP%5FNEAREST%3Bif%28a%3D%3D%3DTHREE%2ELinearMipMapLinearFilter%29return%20l%2ELINEAR%5FMIPMAP%5FLINEAR%3Bif%28a%3D%3D%3DTHREE%2EUnsignedByteType%29return%20l%2EUNSIGNED%5FBYTE%3Bif%28a%3D%3D%3DTHREE%2EUnsignedShort4444Type%29return%20l%2EUNSIGNED%5FSHORT%5F4%5F4%5F4%5F4%3Bif%28a%3D%3D%3DTHREE%2EUnsignedShort5551Type%29return%20l%2EUNSIGNED%5FSHORT%5F5%5F5%5F5%5F1%3B%0Aif%28a%3D%3D%3DTHREE%2EUnsignedShort565Type%29return%20l%2EUNSIGNED%5FSHORT%5F5%5F6%5F5%3Bif%28a%3D%3D%3DTHREE%2EByteType%29return%20l%2EBYTE%3Bif%28a%3D%3D%3DTHREE%2EShortType%29return%20l%2ESHORT%3Bif%28a%3D%3D%3DTHREE%2EUnsignedShortType%29return%20l%2EUNSIGNED%5FSHORT%3Bif%28a%3D%3D%3DTHREE%2EIntType%29return%20l%2EINT%3Bif%28a%3D%3D%3DTHREE%2EUnsignedIntType%29return%20l%2EUNSIGNED%5FINT%3Bif%28a%3D%3D%3DTHREE%2EFloatType%29return%20l%2EFLOAT%3Bif%28a%3D%3D%3DTHREE%2EAlphaFormat%29return%20l%2EALPHA%3Bif%28a%3D%3D%3DTHREE%2ERGBFormat%29return%20l%2ERGB%3Bif%28a%3D%3D%3DTHREE%2ERGBAFormat%29return%20l%2ERGBA%3Bif%28a%3D%3D%3DTHREE%2ELuminanceFormat%29return%20l%2ELUMINANCE%3Bif%28a%3D%3D%3DTHREE%2ELuminanceAlphaFormat%29return%20l%2ELUMINANCE%5FALPHA%3B%0Aif%28a%3D%3D%3DTHREE%2EAddEquation%29return%20l%2EFUNC%5FADD%3Bif%28a%3D%3D%3DTHREE%2ESubtractEquation%29return%20l%2EFUNC%5FSUBTRACT%3Bif%28a%3D%3D%3DTHREE%2EReverseSubtractEquation%29return%20l%2EFUNC%5FREVERSE%5FSUBTRACT%3Bif%28a%3D%3D%3DTHREE%2EZeroFactor%29return%20l%2EZERO%3Bif%28a%3D%3D%3DTHREE%2EOneFactor%29return%20l%2EONE%3Bif%28a%3D%3D%3DTHREE%2ESrcColorFactor%29return%20l%2ESRC%5FCOLOR%3Bif%28a%3D%3D%3DTHREE%2EOneMinusSrcColorFactor%29return%20l%2EONE%5FMINUS%5FSRC%5FCOLOR%3Bif%28a%3D%3D%3DTHREE%2ESrcAlphaFactor%29return%20l%2ESRC%5FALPHA%3Bif%28a%3D%3D%3DTHREE%2EOneMinusSrcAlphaFactor%29return%20l%2EONE%5FMINUS%5FSRC%5FALPHA%3Bif%28a%3D%3D%3DTHREE%2EDstAlphaFactor%29return%20l%2EDST%5FALPHA%3B%0Aif%28a%3D%3D%3DTHREE%2EOneMinusDstAlphaFactor%29return%20l%2EONE%5FMINUS%5FDST%5FALPHA%3Bif%28a%3D%3D%3DTHREE%2EDstColorFactor%29return%20l%2EDST%5FCOLOR%3Bif%28a%3D%3D%3DTHREE%2EOneMinusDstColorFactor%29return%20l%2EONE%5FMINUS%5FDST%5FCOLOR%3Bif%28a%3D%3D%3DTHREE%2ESrcAlphaSaturateFactor%29return%20l%2ESRC%5FALPHA%5FSATURATE%3Bb%3Daa%2Eget%28%22WEBGL%5Fcompressed%5Ftexture%5Fs3tc%22%29%3Bif%28null%21%3D%3Db%29%7Bif%28a%3D%3D%3DTHREE%2ERGB%5FS3TC%5FDXT1%5FFormat%29return%20b%2ECOMPRESSED%5FRGB%5FS3TC%5FDXT1%5FEXT%3Bif%28a%3D%3D%3DTHREE%2ERGBA%5FS3TC%5FDXT1%5FFormat%29return%20b%2ECOMPRESSED%5FRGBA%5FS3TC%5FDXT1%5FEXT%3Bif%28a%3D%3D%3DTHREE%2ERGBA%5FS3TC%5FDXT3%5FFormat%29return%20b%2ECOMPRESSED%5FRGBA%5FS3TC%5FDXT3%5FEXT%3B%0Aif%28a%3D%3D%3DTHREE%2ERGBA%5FS3TC%5FDXT5%5FFormat%29return%20b%2ECOMPRESSED%5FRGBA%5FS3TC%5FDXT5%5FEXT%7Db%3Daa%2Eget%28%22WEBGL%5Fcompressed%5Ftexture%5Fpvrtc%22%29%3Bif%28null%21%3D%3Db%29%7Bif%28a%3D%3D%3DTHREE%2ERGB%5FPVRTC%5F4BPPV1%5FFormat%29return%20b%2ECOMPRESSED%5FRGB%5FPVRTC%5F4BPPV1%5FIMG%3Bif%28a%3D%3D%3DTHREE%2ERGB%5FPVRTC%5F2BPPV1%5FFormat%29return%20b%2ECOMPRESSED%5FRGB%5FPVRTC%5F2BPPV1%5FIMG%3Bif%28a%3D%3D%3DTHREE%2ERGBA%5FPVRTC%5F4BPPV1%5FFormat%29return%20b%2ECOMPRESSED%5FRGBA%5FPVRTC%5F4BPPV1%5FIMG%3Bif%28a%3D%3D%3DTHREE%2ERGBA%5FPVRTC%5F2BPPV1%5FFormat%29return%20b%2ECOMPRESSED%5FRGBA%5FPVRTC%5F2BPPV1%5FIMG%7Db%3Daa%2Eget%28%22EXT%5Fblend%5Fminmax%22%29%3Bif%28null%21%3D%3Db%29%7Bif%28a%3D%3D%3DTHREE%2EMinEquation%29return%20b%2EMIN%5FEXT%3B%0Aif%28a%3D%3D%3DTHREE%2EMaxEquation%29return%20b%2EMAX%5FEXT%7Dreturn%200%7Dconsole%2Elog%28%22THREE%2EWebGLRenderer%22%2CTHREE%2EREVISION%29%3Ba%3Da%7C%7C%7B%7D%3Bvar%20Q%3Dvoid%200%21%3D%3Da%2Ecanvas%3Fa%2Ecanvas%3Adocument%2EcreateElement%28%22canvas%22%29%2CW%3Dvoid%200%21%3D%3Da%2Econtext%3Fa%2Econtext%3Anull%2CO%3D1%2Cga%3Dvoid%200%21%3D%3Da%2Eprecision%3Fa%2Eprecision%3A%22highp%22%2Cea%3Dvoid%200%21%3D%3Da%2Ealpha%3Fa%2Ealpha%3A%211%2Cxa%3Dvoid%200%21%3D%3Da%2Edepth%3Fa%2Edepth%3A%210%2CH%3Dvoid%200%21%3D%3Da%2Estencil%3Fa%2Estencil%3A%210%2C%24a%3Dvoid%200%21%3D%3Da%2Eantialias%3Fa%2Eantialias%3A%211%2Cqa%3Dvoid%200%21%3D%3Da%2EpremultipliedAlpha%3Fa%2EpremultipliedAlpha%3A%210%2Cya%3Dvoid%200%21%3D%3Da%2EpreserveDrawingBuffer%3Fa%2EpreserveDrawingBuffer%3A%0A%211%2CX%3Dvoid%200%21%3D%3Da%2ElogarithmicDepthBuffer%3Fa%2ElogarithmicDepthBuffer%3A%211%2Cta%3Dnew%20THREE%2EColor%280%29%2CZa%3D0%2Cpa%3D%5B%5D%2CFa%3D%7B%7D%2CGa%3D%5B%5D%2CTa%3D%5B%5D%2Cza%3D%5B%5D%2Ctb%3D%5B%5D%2Ceb%3D%5B%5D%3Bthis%2EdomElement%3DQ%3Bthis%2Econtext%3Dnull%3Bthis%2EsortObjects%3Dthis%2EautoClearStencil%3Dthis%2EautoClearDepth%3Dthis%2EautoClearColor%3Dthis%2EautoClear%3D%210%3Bthis%2EshadowMapEnabled%3Dthis%2EgammaOutput%3Dthis%2EgammaInput%3D%211%3Bthis%2EshadowMapType%3DTHREE%2EPCFShadowMap%3Bthis%2EshadowMapCullFace%3DTHREE%2ECullFaceFront%3Bthis%2EshadowMapCascade%3Dthis%2EshadowMapDebug%3D%211%3Bthis%2EmaxMorphTargets%3D8%3Bthis%2EmaxMorphNormals%3D4%3Bthis%2EautoScaleCubemaps%3D%0A%210%3Bthis%2Einfo%3D%7Bmemory%3A%7Bprograms%3A0%2Cgeometries%3A0%2Ctextures%3A0%7D%2Crender%3A%7Bcalls%3A0%2Cvertices%3A0%2Cfaces%3A0%2Cpoints%3A0%7D%7D%3Bvar%20I%3Dthis%2CXa%3D%5B%5D%2CWb%3Dnull%2Cuc%3Dnull%2CHb%3D%2D1%2CSa%3D%22%22%2CIb%3Dnull%2CMb%3D0%2Czb%3D%2D1%2CXb%3D%2D1%2CYb%3D%2D1%2CZb%3D%2D1%2Cec%3D%2D1%2Cfc%3D%2D1%2Cgc%3D%2D1%2Chc%3D%2D1%2Crc%3Dnull%2Csc%3Dnull%2Ctc%3Dnull%2Cqc%3Dnull%2Chb%3D0%2CYa%3D0%2Cib%3DQ%2Ewidth%2Cjb%3DQ%2Eheight%2Cvc%3D0%2Cwc%3D0%2Ckb%3Dnew%20Uint8Array%2816%29%2CMa%3Dnew%20Uint8Array%2816%29%2Cub%3Dnew%20THREE%2EFrustum%2Cvb%3Dnew%20THREE%2EMatrix4%3Bnew%20THREE%2EMatrix4%3Bvar%20Da%3Dnew%20THREE%2EVector3%2Cma%3Dnew%20THREE%2EVector3%2COb%3D%210%2Cnc%3D%7Bambient%3A%5B0%2C0%2C0%5D%2Cdirectional%3A%7Blength%3A0%2Ccolors%3A%5B%5D%2Cpositions%3A%5B%5D%7D%2C%0Apoint%3A%7Blength%3A0%2Ccolors%3A%5B%5D%2Cpositions%3A%5B%5D%2Cdistances%3A%5B%5D%7D%2Cspot%3A%7Blength%3A0%2Ccolors%3A%5B%5D%2Cpositions%3A%5B%5D%2Cdistances%3A%5B%5D%2Cdirections%3A%5B%5D%2CanglesCos%3A%5B%5D%2Cexponents%3A%5B%5D%7D%2Chemi%3A%7Blength%3A0%2CskyColors%3A%5B%5D%2CgroundColors%3A%5B%5D%2Cpositions%3A%5B%5D%7D%7D%2Cl%3Btry%7Bvar%20xc%3D%7Balpha%3Aea%2Cdepth%3Axa%2Cstencil%3AH%2Cantialias%3A%24a%2CpremultipliedAlpha%3Aqa%2CpreserveDrawingBuffer%3Aya%7D%3Bl%3DW%7C%7CQ%2EgetContext%28%22webgl%22%2Cxc%29%7C%7CQ%2EgetContext%28%22experimental%2Dwebgl%22%2Cxc%29%3Bif%28null%3D%3D%3Dl%29%7Bif%28null%21%3D%3DQ%2EgetContext%28%22webgl%22%29%29throw%22Error%20creating%20WebGL%20context%20with%20your%20selected%20attributes%2E%22%3Bthrow%22Error%20creating%20WebGL%20context%2E%22%3B%0A%7DQ%2EaddEventListener%28%22webglcontextlost%22%2Cfunction%28a%29%7Ba%2EpreventDefault%28%29%3Byc%28%29%3Bzc%28%29%3BFa%3D%7B%7D%7D%2C%211%29%7Dcatch%28Fc%29%7Bconsole%2Eerror%28Fc%29%7Dvoid%200%3D%3D%3Dl%2EgetShaderPrecisionFormat%26%26%28l%2EgetShaderPrecisionFormat%3Dfunction%28%29%7Breturn%7BrangeMin%3A1%2CrangeMax%3A1%2Cprecision%3A1%7D%7D%29%3Bvar%20aa%3Dnew%20THREE%2EWebGLExtensions%28l%29%3Baa%2Eget%28%22OES%5Ftexture%5Ffloat%22%29%3Baa%2Eget%28%22OES%5Ftexture%5Ffloat%5Flinear%22%29%3Baa%2Eget%28%22OES%5Fstandard%5Fderivatives%22%29%3BX%26%26aa%2Eget%28%22EXT%5Ffrag%5Fdepth%22%29%3Bvar%20zc%3Dfunction%28%29%7Bl%2EclearColor%280%2C0%2C0%2C1%29%3Bl%2EclearDepth%281%29%3Bl%2EclearStencil%280%29%3Bl%2Eenable%28l%2EDEPTH%5FTEST%29%3Bl%2EdepthFunc%28l%2ELEQUAL%29%3B%0Al%2EfrontFace%28l%2ECCW%29%3Bl%2EcullFace%28l%2EBACK%29%3Bl%2Eenable%28l%2ECULL%5FFACE%29%3Bl%2Eenable%28l%2EBLEND%29%3Bl%2EblendEquation%28l%2EFUNC%5FADD%29%3Bl%2EblendFunc%28l%2ESRC%5FALPHA%2Cl%2EONE%5FMINUS%5FSRC%5FALPHA%29%3Bl%2Eviewport%28hb%2CYa%2Cib%2Cjb%29%3Bl%2EclearColor%28ta%2Er%2Cta%2Eg%2Cta%2Eb%2CZa%29%7D%2Cyc%3Dfunction%28%29%7BIb%3DWb%3Dnull%3BXb%3Dzb%3Dhc%3Dgc%3DYb%3D%2D1%3BSa%3D%22%22%3BHb%3D%2D1%3BOb%3D%210%3Bfor%28var%20a%3D0%3Ba%3CMa%2Elength%3Ba%2B%2B%29Ma%5Ba%5D%3D0%7D%3Bzc%28%29%3Bthis%2Econtext%3Dl%3Bvar%20pc%3Dl%2EgetParameter%28l%2EMAX%5FTEXTURE%5FIMAGE%5FUNITS%29%2CGc%3Dl%2EgetParameter%28l%2EMAX%5FVERTEX%5FTEXTURE%5FIMAGE%5FUNITS%29%2CHc%3Dl%2EgetParameter%28l%2EMAX%5FTEXTURE%5FSIZE%29%2CEc%3Dl%2EgetParameter%28l%2EMAX%5FCUBE%5FMAP%5FTEXTURE%5FSIZE%29%2C%0AVb%3D0%3CGc%2CNb%3DVb%26%26aa%2Eget%28%22OES%5Ftexture%5Ffloat%22%29%2CIc%3Dl%2EgetShaderPrecisionFormat%28l%2EVERTEX%5FSHADER%2Cl%2EHIGH%5FFLOAT%29%2CJc%3Dl%2EgetShaderPrecisionFormat%28l%2EVERTEX%5FSHADER%2Cl%2EMEDIUM%5FFLOAT%29%3Bl%2EgetShaderPrecisionFormat%28l%2EVERTEX%5FSHADER%2Cl%2ELOW%5FFLOAT%29%3Bvar%20Kc%3Dl%2EgetShaderPrecisionFormat%28l%2EFRAGMENT%5FSHADER%2Cl%2EHIGH%5FFLOAT%29%2CLc%3Dl%2EgetShaderPrecisionFormat%28l%2EFRAGMENT%5FSHADER%2Cl%2EMEDIUM%5FFLOAT%29%3Bl%2EgetShaderPrecisionFormat%28l%2EFRAGMENT%5FSHADER%2Cl%2ELOW%5FFLOAT%29%3Bvar%20oc%3Dfunction%28%29%7Bvar%20a%3Breturn%20function%28%29%7Bif%28void%200%21%3D%3Da%29return%20a%3Ba%3D%5B%5D%3Bif%28aa%2Eget%28%22WEBGL%5Fcompressed%5Ftexture%5Fpvrtc%22%29%7C%7C%0Aaa%2Eget%28%22WEBGL%5Fcompressed%5Ftexture%5Fs3tc%22%29%29for%28var%20b%3Dl%2EgetParameter%28l%2ECOMPRESSED%5FTEXTURE%5FFORMATS%29%2Cc%3D0%3Bc%3Cb%2Elength%3Bc%2B%2B%29a%2Epush%28b%5Bc%5D%29%3Breturn%20a%7D%7D%28%29%2CMc%3D0%3CIc%2Eprecision%26%260%3CKc%2Eprecision%2CAc%3D0%3CJc%2Eprecision%26%260%3CLc%2Eprecision%3B%22highp%22%21%3D%3Dga%7C%7CMc%7C%7C%28Ac%3F%28ga%3D%22mediump%22%2Cconsole%2Ewarn%28%22THREE%2EWebGLRenderer%3A%20highp%20not%20supported%2C%20using%20mediump%2E%22%29%29%3A%28ga%3D%22lowp%22%2Cconsole%2Ewarn%28%22THREE%2EWebGLRenderer%3A%20highp%20and%20mediump%20not%20supported%2C%20using%20lowp%2E%22%29%29%29%3B%22mediump%22%21%3D%3Dga%7C%7CAc%7C%7C%28ga%3D%22lowp%22%2Cconsole%2Ewarn%28%22THREE%2EWebGLRenderer%3A%20mediump%20not%20supported%2C%20using%20lowp%2E%22%29%29%3B%0Avar%20Nc%3Dnew%20THREE%2EShadowMapPlugin%28this%2Cpa%2CFa%2CGa%29%2COc%3Dnew%20THREE%2ESpritePlugin%28this%2Ctb%29%2CPc%3Dnew%20THREE%2ELensFlarePlugin%28this%2Ceb%29%3Bthis%2EgetContext%3Dfunction%28%29%7Breturn%20l%7D%3Bthis%2EforceContextLoss%3Dfunction%28%29%7Baa%2Eget%28%22WEBGL%5Flose%5Fcontext%22%29%2EloseContext%28%29%7D%3Bthis%2EsupportsVertexTextures%3Dfunction%28%29%7Breturn%20Vb%7D%3Bthis%2EsupportsFloatTextures%3Dfunction%28%29%7Breturn%20aa%2Eget%28%22OES%5Ftexture%5Ffloat%22%29%7D%3Bthis%2EsupportsStandardDerivatives%3Dfunction%28%29%7Breturn%20aa%2Eget%28%22OES%5Fstandard%5Fderivatives%22%29%7D%3Bthis%2EsupportsCompressedTextureS3TC%3Dfunction%28%29%7Breturn%20aa%2Eget%28%22WEBGL%5Fcompressed%5Ftexture%5Fs3tc%22%29%7D%3B%0Athis%2EsupportsCompressedTexturePVRTC%3Dfunction%28%29%7Breturn%20aa%2Eget%28%22WEBGL%5Fcompressed%5Ftexture%5Fpvrtc%22%29%7D%3Bthis%2EsupportsBlendMinMax%3Dfunction%28%29%7Breturn%20aa%2Eget%28%22EXT%5Fblend%5Fminmax%22%29%7D%3Bthis%2EgetMaxAnisotropy%3Dfunction%28%29%7Bvar%20a%3Breturn%20function%28%29%7Bif%28void%200%21%3D%3Da%29return%20a%3Bvar%20b%3Daa%2Eget%28%22EXT%5Ftexture%5Ffilter%5Fanisotropic%22%29%3Breturn%20a%3Dnull%21%3D%3Db%3Fl%2EgetParameter%28b%2EMAX%5FTEXTURE%5FMAX%5FANISOTROPY%5FEXT%29%3A0%7D%7D%28%29%3Bthis%2EgetPrecision%3Dfunction%28%29%7Breturn%20ga%7D%3Bthis%2EgetPixelRatio%3Dfunction%28%29%7Breturn%20O%7D%3Bthis%2EsetPixelRatio%3Dfunction%28a%29%7BO%3Da%7D%3Bthis%2EsetSize%3Dfunction%28a%2C%0Ab%2Cc%29%7BQ%2Ewidth%3Da%2AO%3BQ%2Eheight%3Db%2AO%3B%211%21%3D%3Dc%26%26%28Q%2Estyle%2Ewidth%3Da%2B%22px%22%2CQ%2Estyle%2Eheight%3Db%2B%22px%22%29%3Bthis%2EsetViewport%280%2C0%2Ca%2Cb%29%7D%3Bthis%2EsetViewport%3Dfunction%28a%2Cb%2Cc%2Cd%29%7Bhb%3Da%2AO%3BYa%3Db%2AO%3Bib%3Dc%2AO%3Bjb%3Dd%2AO%3Bl%2Eviewport%28hb%2CYa%2Cib%2Cjb%29%7D%3Bthis%2EsetScissor%3Dfunction%28a%2Cb%2Cc%2Cd%29%7Bl%2Escissor%28a%2AO%2Cb%2AO%2Cc%2AO%2Cd%2AO%29%7D%3Bthis%2EenableScissorTest%3Dfunction%28a%29%7Ba%3Fl%2Eenable%28l%2ESCISSOR%5FTEST%29%3Al%2Edisable%28l%2ESCISSOR%5FTEST%29%7D%3Bthis%2EgetClearColor%3Dfunction%28%29%7Breturn%20ta%7D%3Bthis%2EsetClearColor%3Dfunction%28a%2Cb%29%7Bta%2Eset%28a%29%3BZa%3Dvoid%200%21%3D%3Db%3Fb%3A1%3Bl%2EclearColor%28ta%2Er%2Cta%2Eg%2Cta%2Eb%2CZa%29%7D%3Bthis%2EgetClearAlpha%3D%0Afunction%28%29%7Breturn%20Za%7D%3Bthis%2EsetClearAlpha%3Dfunction%28a%29%7BZa%3Da%3Bl%2EclearColor%28ta%2Er%2Cta%2Eg%2Cta%2Eb%2CZa%29%7D%3Bthis%2Eclear%3Dfunction%28a%2Cb%2Cc%29%7Bvar%20d%3D0%3Bif%28void%200%3D%3D%3Da%7C%7Ca%29d%7C%3Dl%2ECOLOR%5FBUFFER%5FBIT%3Bif%28void%200%3D%3D%3Db%7C%7Cb%29d%7C%3Dl%2EDEPTH%5FBUFFER%5FBIT%3Bif%28void%200%3D%3D%3Dc%7C%7Cc%29d%7C%3Dl%2ESTENCIL%5FBUFFER%5FBIT%3Bl%2Eclear%28d%29%7D%3Bthis%2EclearColor%3Dfunction%28%29%7Bl%2Eclear%28l%2ECOLOR%5FBUFFER%5FBIT%29%7D%3Bthis%2EclearDepth%3Dfunction%28%29%7Bl%2Eclear%28l%2EDEPTH%5FBUFFER%5FBIT%29%7D%3Bthis%2EclearStencil%3Dfunction%28%29%7Bl%2Eclear%28l%2ESTENCIL%5FBUFFER%5FBIT%29%7D%3Bthis%2EclearTarget%3Dfunction%28a%2Cb%2Cc%2Cd%29%7Bthis%2EsetRenderTarget%28a%29%3Bthis%2Eclear%28b%2C%0Ac%2Cd%29%7D%3Bthis%2EresetGLState%3Dyc%3Bvar%20ic%3Dfunction%28a%29%7Ba%2Etarget%2Etraverse%28function%28a%29%7Ba%2EremoveEventListener%28%22remove%22%2Cic%29%3Bif%28a%20instanceof%20THREE%2EMesh%7C%7Ca%20instanceof%20THREE%2EPointCloud%7C%7Ca%20instanceof%20THREE%2ELine%29delete%20Fa%5Ba%2Eid%5D%3Belse%20if%28a%20instanceof%20THREE%2EImmediateRenderObject%7C%7Ca%2EimmediateRenderCallback%29for%28var%20b%3DGa%2Cc%3Db%2Elength%2D1%3B0%3C%3Dc%3Bc%2D%2D%29b%5Bc%5D%2Eobject%3D%3D%3Da%26%26b%2Esplice%28c%2C1%29%3Bdelete%20a%2E%5F%5FwebglInit%3Bdelete%20a%2E%5FmodelViewMatrix%3Bdelete%20a%2E%5FnormalMatrix%3Bdelete%20a%2E%5F%5FwebglActive%7D%29%7D%2Cjc%3Dfunction%28a%29%7Ba%3Da%2Etarget%3Ba%2EremoveEventListener%28%22dispose%22%2C%0Ajc%29%3Bdelete%20a%2E%5F%5FwebglInit%3Bif%28a%20instanceof%20THREE%2EBufferGeometry%29%7Bfor%28var%20b%20in%20a%2Eattributes%29%7Bvar%20c%3Da%2Eattributes%5Bb%5D%3Bvoid%200%21%3D%3Dc%2Ebuffer%26%26%28l%2EdeleteBuffer%28c%2Ebuffer%29%2Cdelete%20c%2Ebuffer%29%7DI%2Einfo%2Ememory%2Egeometries%2D%2D%7Delse%20if%28b%3Dsb%5Ba%2Eid%5D%2Cvoid%200%21%3D%3Db%29%7Bfor%28var%20c%3D0%2Cd%3Db%2Elength%3Bc%3Cd%3Bc%2B%2B%29%7Bvar%20e%3Db%5Bc%5D%3Bif%28void%200%21%3D%3De%2EnumMorphTargets%29%7Bfor%28var%20f%3D0%2Cg%3De%2EnumMorphTargets%3Bf%3Cg%3Bf%2B%2B%29l%2EdeleteBuffer%28e%2E%5F%5FwebglMorphTargetsBuffers%5Bf%5D%29%3Bdelete%20e%2E%5F%5FwebglMorphTargetsBuffers%7Dif%28void%200%21%3D%3De%2EnumMorphNormals%29%7Bf%3D0%3Bfor%28g%3De%2EnumMorphNormals%3Bf%3Cg%3Bf%2B%2B%29l%2EdeleteBuffer%28e%2E%5F%5FwebglMorphNormalsBuffers%5Bf%5D%29%3B%0Adelete%20e%2E%5F%5FwebglMorphNormalsBuffers%7DBc%28e%29%7Ddelete%20sb%5Ba%2Eid%5D%7Delse%20Bc%28a%29%3BSa%3D%22%22%7D%2CJb%3Dfunction%28a%29%7Ba%3Da%2Etarget%3Ba%2EremoveEventListener%28%22dispose%22%2CJb%29%3Ba%2Eimage%26%26a%2Eimage%2E%5F%5FwebglTextureCube%3F%28l%2EdeleteTexture%28a%2Eimage%2E%5F%5FwebglTextureCube%29%2Cdelete%20a%2Eimage%2E%5F%5FwebglTextureCube%29%3Avoid%200%21%3D%3Da%2E%5F%5FwebglInit%26%26%28l%2EdeleteTexture%28a%2E%5F%5FwebglTexture%29%2Cdelete%20a%2E%5F%5FwebglTexture%2Cdelete%20a%2E%5F%5FwebglInit%29%3BI%2Einfo%2Ememory%2Etextures%2D%2D%7D%2CCc%3Dfunction%28a%29%7Ba%3Da%2Etarget%3Ba%2EremoveEventListener%28%22dispose%22%2CCc%29%3Bif%28a%26%26void%200%21%3D%3Da%2E%5F%5FwebglTexture%29%7Bl%2EdeleteTexture%28a%2E%5F%5FwebglTexture%29%3B%0Adelete%20a%2E%5F%5FwebglTexture%3Bif%28a%20instanceof%20THREE%2EWebGLRenderTargetCube%29for%28var%20b%3D0%3B6%3Eb%3Bb%2B%2B%29l%2EdeleteFramebuffer%28a%2E%5F%5FwebglFramebuffer%5Bb%5D%29%2Cl%2EdeleteRenderbuffer%28a%2E%5F%5FwebglRenderbuffer%5Bb%5D%29%3Belse%20l%2EdeleteFramebuffer%28a%2E%5F%5FwebglFramebuffer%29%2Cl%2EdeleteRenderbuffer%28a%2E%5F%5FwebglRenderbuffer%29%3Bdelete%20a%2E%5F%5FwebglFramebuffer%3Bdelete%20a%2E%5F%5FwebglRenderbuffer%7DI%2Einfo%2Ememory%2Etextures%2D%2D%7D%2Cmc%3Dfunction%28a%29%7Ba%3Da%2Etarget%3Ba%2EremoveEventListener%28%22dispose%22%2Cmc%29%3Blc%28a%29%7D%2CBc%3Dfunction%28a%29%7Bfor%28var%20b%3D%22%5F%5FwebglVertexBuffer%20%5F%5FwebglNormalBuffer%20%5F%5FwebglTangentBuffer%20%5F%5FwebglColorBuffer%20%5F%5FwebglUVBuffer%20%5F%5FwebglUV2Buffer%20%5F%5FwebglSkinIndicesBuffer%20%5F%5FwebglSkinWeightsBuffer%20%5F%5FwebglFaceBuffer%20%5F%5FwebglLineBuffer%20%5F%5FwebglLineDistanceBuffer%22%2Esplit%28%22%20%22%29%2C%0Ac%3D0%2Cd%3Db%2Elength%3Bc%3Cd%3Bc%2B%2B%29%7Bvar%20e%3Db%5Bc%5D%3Bvoid%200%21%3D%3Da%5Be%5D%26%26%28l%2EdeleteBuffer%28a%5Be%5D%29%2Cdelete%20a%5Be%5D%29%7Dif%28void%200%21%3D%3Da%2E%5F%5FwebglCustomAttributesList%29%7Bfor%28e%20in%20a%2E%5F%5FwebglCustomAttributesList%29l%2EdeleteBuffer%28a%2E%5F%5FwebglCustomAttributesList%5Be%5D%2Ebuffer%29%3Bdelete%20a%2E%5F%5FwebglCustomAttributesList%7DI%2Einfo%2Ememory%2Egeometries%2D%2D%7D%2Clc%3Dfunction%28a%29%7Bvar%20b%3Da%2Eprogram%2Eprogram%3Bif%28void%200%21%3D%3Db%29%7Ba%2Eprogram%3Dvoid%200%3Bvar%20c%2Cd%2Ce%3D%211%3Ba%3D0%3Bfor%28c%3DXa%2Elength%3Ba%3Cc%3Ba%2B%2B%29if%28d%3DXa%5Ba%5D%2Cd%2Eprogram%3D%3D%3Db%29%7Bd%2EusedTimes%2D%2D%3B0%3D%3D%3Dd%2EusedTimes%26%26%28e%3D%210%29%3Bbreak%7Dif%28%210%3D%3D%3De%29%7Be%3D%5B%5D%3Ba%3D0%3Bfor%28c%3DXa%2Elength%3Ba%3C%0Ac%3Ba%2B%2B%29d%3DXa%5Ba%5D%2Cd%2Eprogram%21%3D%3Db%26%26e%2Epush%28d%29%3BXa%3De%3Bl%2EdeleteProgram%28b%29%3BI%2Einfo%2Ememory%2Eprograms%2D%2D%7D%7D%7D%3Bthis%2ErenderBufferImmediate%3Dfunction%28a%2Cb%2Cc%29%7Bf%28%29%3Ba%2EhasPositions%26%26%21a%2E%5F%5FwebglVertexBuffer%26%26%28a%2E%5F%5FwebglVertexBuffer%3Dl%2EcreateBuffer%28%29%29%3Ba%2EhasNormals%26%26%21a%2E%5F%5FwebglNormalBuffer%26%26%28a%2E%5F%5FwebglNormalBuffer%3Dl%2EcreateBuffer%28%29%29%3Ba%2EhasUvs%26%26%21a%2E%5F%5FwebglUvBuffer%26%26%28a%2E%5F%5FwebglUvBuffer%3Dl%2EcreateBuffer%28%29%29%3Ba%2EhasColors%26%26%21a%2E%5F%5FwebglColorBuffer%26%26%28a%2E%5F%5FwebglColorBuffer%3Dl%2EcreateBuffer%28%29%29%3Ba%2EhasPositions%26%26%28l%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Ca%2E%5F%5FwebglVertexBuffer%29%2C%0Al%2EbufferData%28l%2EARRAY%5FBUFFER%2Ca%2EpositionArray%2Cl%2EDYNAMIC%5FDRAW%29%2Cg%28b%2Eattributes%2Eposition%29%2Cl%2EvertexAttribPointer%28b%2Eattributes%2Eposition%2C3%2Cl%2EFLOAT%2C%211%2C0%2C0%29%29%3Bif%28a%2EhasNormals%29%7Bl%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Ca%2E%5F%5FwebglNormalBuffer%29%3Bif%28c%2Eshading%3D%3D%3DTHREE%2EFlatShading%29%7Bvar%20d%2Ce%2Ck%2Cm%2Cn%2Cp%2Cq%2Cr%2Ct%2Cs%2Cv%2Cu%3D3%2Aa%2Ecount%3Bfor%28v%3D0%3Bv%3Cu%3Bv%2B%3D9%29s%3Da%2EnormalArray%2Cd%3Ds%5Bv%5D%2Ce%3Ds%5Bv%2B1%5D%2Ck%3Ds%5Bv%2B2%5D%2Cm%3Ds%5Bv%2B3%5D%2Cp%3Ds%5Bv%2B4%5D%2Cr%3Ds%5Bv%2B5%5D%2Cn%3Ds%5Bv%2B6%5D%2Cq%3Ds%5Bv%2B7%5D%2Ct%3Ds%5Bv%2B8%5D%2Cd%3D%28d%2Bm%2Bn%29%2F3%2Ce%3D%28e%2Bp%2Bq%29%2F3%2Ck%3D%28k%2Br%2Bt%29%2F3%2Cs%5Bv%5D%3Dd%2Cs%5Bv%2B1%5D%3De%2Cs%5Bv%2B2%5D%3Dk%2Cs%5Bv%2B3%5D%3Dd%2Cs%5Bv%2B4%5D%3De%2Cs%5Bv%2B5%5D%3Dk%2Cs%5Bv%2B6%5D%3Dd%2Cs%5Bv%2B%0A7%5D%3De%2Cs%5Bv%2B8%5D%3Dk%7Dl%2EbufferData%28l%2EARRAY%5FBUFFER%2Ca%2EnormalArray%2Cl%2EDYNAMIC%5FDRAW%29%3Bg%28b%2Eattributes%2Enormal%29%3Bl%2EvertexAttribPointer%28b%2Eattributes%2Enormal%2C3%2Cl%2EFLOAT%2C%211%2C0%2C0%29%7Da%2EhasUvs%26%26c%2Emap%26%26%28l%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Ca%2E%5F%5FwebglUvBuffer%29%2Cl%2EbufferData%28l%2EARRAY%5FBUFFER%2Ca%2EuvArray%2Cl%2EDYNAMIC%5FDRAW%29%2Cg%28b%2Eattributes%2Euv%29%2Cl%2EvertexAttribPointer%28b%2Eattributes%2Euv%2C2%2Cl%2EFLOAT%2C%211%2C0%2C0%29%29%3Ba%2EhasColors%26%26c%2EvertexColors%21%3D%3DTHREE%2ENoColors%26%26%28l%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Ca%2E%5F%5FwebglColorBuffer%29%2Cl%2EbufferData%28l%2EARRAY%5FBUFFER%2Ca%2EcolorArray%2Cl%2EDYNAMIC%5FDRAW%29%2C%0Ag%28b%2Eattributes%2Ecolor%29%2Cl%2EvertexAttribPointer%28b%2Eattributes%2Ecolor%2C3%2Cl%2EFLOAT%2C%211%2C0%2C0%29%29%3Bh%28%29%3Bl%2EdrawArrays%28l%2ETRIANGLES%2C0%2Ca%2Ecount%29%3Ba%2Ecount%3D0%7D%3Bthis%2ErenderBufferDirect%3Dfunction%28a%2Cb%2Cc%2Cd%2Cg%2Ch%29%7Bif%28%211%21%3D%3Dd%2Evisible%29if%28v%28h%29%2Ca%3Dx%28a%2Cb%2Cc%2Cd%2Ch%29%2Cb%3D%211%2Cc%3D%22direct%5F%22%2Bg%2Eid%2B%22%5F%22%2Ba%2Eid%2B%22%5F%22%2B%28d%2Ewireframe%3F1%3A0%29%2Cc%21%3D%3DSa%26%26%28Sa%3Dc%2Cb%3D%210%29%2Cb%26%26f%28%29%2Ch%20instanceof%20THREE%2EMesh%29%7Bh%3D%210%3D%3D%3Dd%2Ewireframe%3Fl%2ELINES%3Al%2ETRIANGLES%3Bvar%20k%3Dg%2Eattributes%2Eindex%3Bif%28k%29%7Bvar%20m%2Cn%3Bk%2Earray%20instanceof%20Uint32Array%26%26aa%2Eget%28%22OES%5Felement%5Findex%5Fuint%22%29%3F%28m%3Dl%2EUNSIGNED%5FINT%2Cn%3D4%29%3A%28m%3Dl%2EUNSIGNED%5FSHORT%2C%0An%3D2%29%3Bc%3Dg%2Eoffsets%3Bif%280%3D%3D%3Dc%2Elength%29b%26%26%28e%28d%2Ca%2Cg%2C0%29%2Cl%2EbindBuffer%28l%2EELEMENT%5FARRAY%5FBUFFER%2Ck%2Ebuffer%29%29%2Cl%2EdrawElements%28h%2Ck%2Earray%2Elength%2Cm%2C0%29%2CI%2Einfo%2Erender%2Ecalls%2B%2B%2CI%2Einfo%2Erender%2Evertices%2B%3Dk%2Earray%2Elength%2CI%2Einfo%2Erender%2Efaces%2B%3Dk%2Earray%2Elength%2F3%3Belse%7Bb%3D%210%3Bfor%28var%20p%3D0%2Cq%3Dc%2Elength%3Bp%3Cq%3Bp%2B%2B%29%7Bvar%20s%3Dc%5Bp%5D%2Eindex%3Bb%26%26%28e%28d%2Ca%2Cg%2Cs%29%2Cl%2EbindBuffer%28l%2EELEMENT%5FARRAY%5FBUFFER%2Ck%2Ebuffer%29%29%3Bl%2EdrawElements%28h%2Cc%5Bp%5D%2Ecount%2Cm%2Cc%5Bp%5D%2Estart%2An%29%3BI%2Einfo%2Erender%2Ecalls%2B%2B%3BI%2Einfo%2Erender%2Evertices%2B%3Dc%5Bp%5D%2Ecount%3BI%2Einfo%2Erender%2Efaces%2B%3Dc%5Bp%5D%2Ecount%2F3%7D%7D%7Delse%20b%26%26e%28d%2C%0Aa%2Cg%2C0%29%2Cd%3Dg%2Eattributes%2Eposition%2Cl%2EdrawArrays%28h%2C0%2Cd%2Earray%2Elength%2F3%29%2CI%2Einfo%2Erender%2Ecalls%2B%2B%2CI%2Einfo%2Erender%2Evertices%2B%3Dd%2Earray%2Elength%2F3%2CI%2Einfo%2Erender%2Efaces%2B%3Dd%2Earray%2Elength%2F9%7Delse%20if%28h%20instanceof%20THREE%2EPointCloud%29if%28h%3Dl%2EPOINTS%2Ck%3Dg%2Eattributes%2Eindex%29if%28k%2Earray%20instanceof%20Uint32Array%26%26aa%2Eget%28%22OES%5Felement%5Findex%5Fuint%22%29%3F%28m%3Dl%2EUNSIGNED%5FINT%2Cn%3D4%29%3A%28m%3Dl%2EUNSIGNED%5FSHORT%2Cn%3D2%29%2Cc%3Dg%2Eoffsets%2C0%3D%3D%3Dc%2Elength%29b%26%26%28e%28d%2Ca%2Cg%2C0%29%2Cl%2EbindBuffer%28l%2EELEMENT%5FARRAY%5FBUFFER%2Ck%2Ebuffer%29%29%2Cl%2EdrawElements%28h%2Ck%2Earray%2Elength%2Cm%2C0%29%2CI%2Einfo%2Erender%2Ecalls%2B%2B%2C%0AI%2Einfo%2Erender%2Epoints%2B%3Dk%2Earray%2Elength%3Belse%20for%281%3Cc%2Elength%26%26%28b%3D%210%29%2Cp%3D0%2Cq%3Dc%2Elength%3Bp%3Cq%3Bp%2B%2B%29s%3Dc%5Bp%5D%2Eindex%2Cb%26%26%28e%28d%2Ca%2Cg%2Cs%29%2Cl%2EbindBuffer%28l%2EELEMENT%5FARRAY%5FBUFFER%2Ck%2Ebuffer%29%29%2Cl%2EdrawElements%28h%2Cc%5Bp%5D%2Ecount%2Cm%2Cc%5Bp%5D%2Estart%2An%29%2CI%2Einfo%2Erender%2Ecalls%2B%2B%2CI%2Einfo%2Erender%2Epoints%2B%3Dc%5Bp%5D%2Ecount%3Belse%20if%28b%26%26e%28d%2Ca%2Cg%2C0%29%2Cd%3Dg%2Eattributes%2Eposition%2Cc%3Dg%2Eoffsets%2C0%3D%3D%3Dc%2Elength%29l%2EdrawArrays%28h%2C0%2Cd%2Earray%2Elength%2F3%29%2CI%2Einfo%2Erender%2Ecalls%2B%2B%2CI%2Einfo%2Erender%2Epoints%2B%3Dd%2Earray%2Elength%2F3%3Belse%20for%28p%3D0%2Cq%3Dc%2Elength%3Bp%3Cq%3Bp%2B%2B%29l%2EdrawArrays%28h%2Cc%5Bp%5D%2Eindex%2Cc%5Bp%5D%2Ecount%29%2CI%2Einfo%2Erender%2Ecalls%2B%2B%2C%0AI%2Einfo%2Erender%2Epoints%2B%3Dc%5Bp%5D%2Ecount%3Belse%20if%28h%20instanceof%20THREE%2ELine%29if%28h%3Dh%2Emode%3D%3D%3DTHREE%2ELineStrip%3Fl%2ELINE%5FSTRIP%3Al%2ELINES%2CD%28d%2Elinewidth%29%2Ck%3Dg%2Eattributes%2Eindex%29if%28k%2Earray%20instanceof%20Uint32Array%3F%28m%3Dl%2EUNSIGNED%5FINT%2Cn%3D4%29%3A%28m%3Dl%2EUNSIGNED%5FSHORT%2Cn%3D2%29%2Cc%3Dg%2Eoffsets%2C0%3D%3D%3Dc%2Elength%29b%26%26%28e%28d%2Ca%2Cg%2C0%29%2Cl%2EbindBuffer%28l%2EELEMENT%5FARRAY%5FBUFFER%2Ck%2Ebuffer%29%29%2Cl%2EdrawElements%28h%2Ck%2Earray%2Elength%2Cm%2C0%29%2CI%2Einfo%2Erender%2Ecalls%2B%2B%2CI%2Einfo%2Erender%2Evertices%2B%3Dk%2Earray%2Elength%3Belse%20for%281%3Cc%2Elength%26%26%28b%3D%210%29%2Cp%3D0%2Cq%3Dc%2Elength%3Bp%3Cq%3Bp%2B%2B%29s%3Dc%5Bp%5D%2Eindex%2Cb%26%26%28e%28d%2Ca%2Cg%2Cs%29%2Cl%2EbindBuffer%28l%2EELEMENT%5FARRAY%5FBUFFER%2C%0Ak%2Ebuffer%29%29%2Cl%2EdrawElements%28h%2Cc%5Bp%5D%2Ecount%2Cm%2Cc%5Bp%5D%2Estart%2An%29%2CI%2Einfo%2Erender%2Ecalls%2B%2B%2CI%2Einfo%2Erender%2Evertices%2B%3Dc%5Bp%5D%2Ecount%3Belse%20if%28b%26%26e%28d%2Ca%2Cg%2C0%29%2Cd%3Dg%2Eattributes%2Eposition%2Cc%3Dg%2Eoffsets%2C0%3D%3D%3Dc%2Elength%29l%2EdrawArrays%28h%2C0%2Cd%2Earray%2Elength%2F3%29%2CI%2Einfo%2Erender%2Ecalls%2B%2B%2CI%2Einfo%2Erender%2Evertices%2B%3Dd%2Earray%2Elength%2F3%3Belse%20for%28p%3D0%2Cq%3Dc%2Elength%3Bp%3Cq%3Bp%2B%2B%29l%2EdrawArrays%28h%2Cc%5Bp%5D%2Eindex%2Cc%5Bp%5D%2Ecount%29%2CI%2Einfo%2Erender%2Ecalls%2B%2B%2CI%2Einfo%2Erender%2Evertices%2B%3Dc%5Bp%5D%2Ecount%7D%3Bthis%2ErenderBuffer%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%2Ck%29%7Bif%28%211%21%3D%3Dd%2Evisible%29%7Bv%28k%29%3Bc%3Dx%28a%2Cb%2Cc%2Cd%2Ck%29%3Bb%3Dc%2Eattributes%3B%0Aa%3D%211%3Bc%3De%2Eid%2B%22%5F%22%2Bc%2Eid%2B%22%5F%22%2B%28d%2Ewireframe%3F1%3A0%29%3Bc%21%3D%3DSa%26%26%28Sa%3Dc%2Ca%3D%210%29%3Ba%26%26f%28%29%3Bif%28%21d%2EmorphTargets%26%260%3C%3Db%2Eposition%29a%26%26%28l%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Ce%2E%5F%5FwebglVertexBuffer%29%2Cg%28b%2Eposition%29%2Cl%2EvertexAttribPointer%28b%2Eposition%2C3%2Cl%2EFLOAT%2C%211%2C0%2C0%29%29%3Belse%20if%28k%2EmorphTargetBase%29%7Bc%3Dd%2Eprogram%2Eattributes%3B%2D1%21%3D%3Dk%2EmorphTargetBase%26%260%3C%3Dc%2Eposition%3F%28l%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Ce%2E%5F%5FwebglMorphTargetsBuffers%5Bk%2EmorphTargetBase%5D%29%2Cg%28c%2Eposition%29%2Cl%2EvertexAttribPointer%28c%2Eposition%2C3%2Cl%2EFLOAT%2C%211%2C0%2C0%29%29%3A0%3C%3Dc%2Eposition%26%26%28l%2EbindBuffer%28l%2EARRAY%5FBUFFER%2C%0Ae%2E%5F%5FwebglVertexBuffer%29%2Cg%28c%2Eposition%29%2Cl%2EvertexAttribPointer%28c%2Eposition%2C3%2Cl%2EFLOAT%2C%211%2C0%2C0%29%29%3Bif%28k%2EmorphTargetForcedOrder%2Elength%29for%28var%20m%3D0%2Cn%3Dk%2EmorphTargetForcedOrder%2Cq%3Dk%2EmorphTargetInfluences%2Cs%3Bm%3Cd%2EnumSupportedMorphTargets%26%26m%3Cn%2Elength%3B%29s%3Dc%5B%22morphTarget%22%2Bm%5D%2C0%3C%3Ds%26%26%28l%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Ce%2E%5F%5FwebglMorphTargetsBuffers%5Bn%5Bm%5D%5D%29%2Cg%28s%29%2Cl%2EvertexAttribPointer%28s%2C3%2Cl%2EFLOAT%2C%211%2C0%2C0%29%29%2Cs%3Dc%5B%22morphNormal%22%2Bm%5D%2C0%3C%3Ds%26%26d%2EmorphNormals%26%26%28l%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Ce%2E%5F%5FwebglMorphNormalsBuffers%5Bn%5Bm%5D%5D%29%2Cg%28s%29%2Cl%2EvertexAttribPointer%28s%2C%0A3%2Cl%2EFLOAT%2C%211%2C0%2C0%29%29%2Ck%2E%5F%5FwebglMorphTargetInfluences%5Bm%5D%3Dq%5Bn%5Bm%5D%5D%2Cm%2B%2B%3Belse%7Bn%3D%5B%5D%3Bq%3Dk%2EmorphTargetInfluences%3Bm%3D0%3Bfor%28s%3Dq%2Elength%3Bm%3Cs%3Bm%2B%2B%29n%2Epush%28%5Bq%5Bm%5D%2Cm%5D%29%3Bn%2Elength%3Ed%2EnumSupportedMorphTargets%3F%28n%2Esort%28p%29%2Cn%2Elength%3Dd%2EnumSupportedMorphTargets%29%3An%2Elength%3Ed%2EnumSupportedMorphNormals%3Fn%2Esort%28p%29%3A0%3D%3D%3Dn%2Elength%26%26n%2Epush%28%5B0%2C0%5D%29%3Bfor%28var%20m%3D0%2Cr%3Dd%2EnumSupportedMorphTargets%3Bm%3Cr%3Bm%2B%2B%29if%28n%5Bm%5D%29%7Bvar%20t%3Dn%5Bm%5D%5B1%5D%3Bs%3Dc%5B%22morphTarget%22%2Bm%5D%3B0%3C%3Ds%26%26%28l%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Ce%2E%5F%5FwebglMorphTargetsBuffers%5Bt%5D%29%2Cg%28s%29%2Cl%2EvertexAttribPointer%28s%2C3%2Cl%2EFLOAT%2C%0A%211%2C0%2C0%29%29%3Bs%3Dc%5B%22morphNormal%22%2Bm%5D%3B0%3C%3Ds%26%26d%2EmorphNormals%26%26%28l%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Ce%2E%5F%5FwebglMorphNormalsBuffers%5Bt%5D%29%2Cg%28s%29%2Cl%2EvertexAttribPointer%28s%2C3%2Cl%2EFLOAT%2C%211%2C0%2C0%29%29%3Bk%2E%5F%5FwebglMorphTargetInfluences%5Bm%5D%3Dq%5Bt%5D%7Delse%20k%2E%5F%5FwebglMorphTargetInfluences%5Bm%5D%3D0%7Dnull%21%3D%3Dd%2Eprogram%2Euniforms%2EmorphTargetInfluences%26%26l%2Euniform1fv%28d%2Eprogram%2Euniforms%2EmorphTargetInfluences%2Ck%2E%5F%5FwebglMorphTargetInfluences%29%7Dif%28a%29%7Bif%28e%2E%5F%5FwebglCustomAttributesList%29for%28c%3D0%2Cq%3De%2E%5F%5FwebglCustomAttributesList%2Elength%3Bc%3Cq%3Bc%2B%2B%29n%3De%2E%5F%5FwebglCustomAttributesList%5Bc%5D%2C%0A0%3C%3Db%5Bn%2Ebuffer%2EbelongsToAttribute%5D%26%26%28l%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Cn%2Ebuffer%29%2Cg%28b%5Bn%2Ebuffer%2EbelongsToAttribute%5D%29%2Cl%2EvertexAttribPointer%28b%5Bn%2Ebuffer%2EbelongsToAttribute%5D%2Cn%2Esize%2Cl%2EFLOAT%2C%211%2C0%2C0%29%29%3B0%3C%3Db%2Ecolor%26%26%280%3Ck%2Egeometry%2Ecolors%2Elength%7C%7C0%3Ck%2Egeometry%2Efaces%2Elength%3F%28l%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Ce%2E%5F%5FwebglColorBuffer%29%2Cg%28b%2Ecolor%29%2Cl%2EvertexAttribPointer%28b%2Ecolor%2C3%2Cl%2EFLOAT%2C%211%2C0%2C0%29%29%3Avoid%200%21%3D%3Dd%2EdefaultAttributeValues%26%26l%2EvertexAttrib3fv%28b%2Ecolor%2Cd%2EdefaultAttributeValues%2Ecolor%29%29%3B0%3C%3Db%2Enormal%26%26%28l%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Ce%2E%5F%5FwebglNormalBuffer%29%2C%0Ag%28b%2Enormal%29%2Cl%2EvertexAttribPointer%28b%2Enormal%2C3%2Cl%2EFLOAT%2C%211%2C0%2C0%29%29%3B0%3C%3Db%2Etangent%26%26%28l%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Ce%2E%5F%5FwebglTangentBuffer%29%2Cg%28b%2Etangent%29%2Cl%2EvertexAttribPointer%28b%2Etangent%2C4%2Cl%2EFLOAT%2C%211%2C0%2C0%29%29%3B0%3C%3Db%2Euv%26%26%28k%2Egeometry%2EfaceVertexUvs%5B0%5D%3F%28l%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Ce%2E%5F%5FwebglUVBuffer%29%2Cg%28b%2Euv%29%2Cl%2EvertexAttribPointer%28b%2Euv%2C2%2Cl%2EFLOAT%2C%211%2C0%2C0%29%29%3Avoid%200%21%3D%3Dd%2EdefaultAttributeValues%26%26l%2EvertexAttrib2fv%28b%2Euv%2Cd%2EdefaultAttributeValues%2Euv%29%29%3B0%3C%3Db%2Euv2%26%26%28k%2Egeometry%2EfaceVertexUvs%5B1%5D%3F%28l%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Ce%2E%5F%5FwebglUV2Buffer%29%2C%0Ag%28b%2Euv2%29%2Cl%2EvertexAttribPointer%28b%2Euv2%2C2%2Cl%2EFLOAT%2C%211%2C0%2C0%29%29%3Avoid%200%21%3D%3Dd%2EdefaultAttributeValues%26%26l%2EvertexAttrib2fv%28b%2Euv2%2Cd%2EdefaultAttributeValues%2Euv2%29%29%3Bd%2Eskinning%26%260%3C%3Db%2EskinIndex%26%260%3C%3Db%2EskinWeight%26%26%28l%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Ce%2E%5F%5FwebglSkinIndicesBuffer%29%2Cg%28b%2EskinIndex%29%2Cl%2EvertexAttribPointer%28b%2EskinIndex%2C4%2Cl%2EFLOAT%2C%211%2C0%2C0%29%2Cl%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Ce%2E%5F%5FwebglSkinWeightsBuffer%29%2Cg%28b%2EskinWeight%29%2Cl%2EvertexAttribPointer%28b%2EskinWeight%2C4%2Cl%2EFLOAT%2C%211%2C0%2C0%29%29%3B0%3C%3Db%2ElineDistance%26%26%28l%2EbindBuffer%28l%2EARRAY%5FBUFFER%2Ce%2E%5F%5FwebglLineDistanceBuffer%29%2C%0Ag%28b%2ElineDistance%29%2Cl%2EvertexAttribPointer%28b%2ElineDistance%2C1%2Cl%2EFLOAT%2C%211%2C0%2C0%29%29%7Dh%28%29%3Bk%20instanceof%20THREE%2EMesh%3F%28k%3De%2E%5F%5FtypeArray%3D%3D%3DUint32Array%3Fl%2EUNSIGNED%5FINT%3Al%2EUNSIGNED%5FSHORT%2Cd%2Ewireframe%3F%28D%28d%2EwireframeLinewidth%29%2Ca%26%26l%2EbindBuffer%28l%2EELEMENT%5FARRAY%5FBUFFER%2Ce%2E%5F%5FwebglLineBuffer%29%2Cl%2EdrawElements%28l%2ELINES%2Ce%2E%5F%5FwebglLineCount%2Ck%2C0%29%29%3A%28a%26%26l%2EbindBuffer%28l%2EELEMENT%5FARRAY%5FBUFFER%2Ce%2E%5F%5FwebglFaceBuffer%29%2Cl%2EdrawElements%28l%2ETRIANGLES%2Ce%2E%5F%5FwebglFaceCount%2Ck%2C0%29%29%2CI%2Einfo%2Erender%2Ecalls%2B%2B%2CI%2Einfo%2Erender%2Evertices%2B%3De%2E%5F%5FwebglFaceCount%2CI%2Einfo%2Erender%2Efaces%2B%3D%0Ae%2E%5F%5FwebglFaceCount%2F3%29%3Ak%20instanceof%20THREE%2ELine%3F%28k%3Dk%2Emode%3D%3D%3DTHREE%2ELineStrip%3Fl%2ELINE%5FSTRIP%3Al%2ELINES%2CD%28d%2Elinewidth%29%2Cl%2EdrawArrays%28k%2C0%2Ce%2E%5F%5FwebglLineCount%29%2CI%2Einfo%2Erender%2Ecalls%2B%2B%29%3Ak%20instanceof%20THREE%2EPointCloud%26%26%28l%2EdrawArrays%28l%2EPOINTS%2C0%2Ce%2E%5F%5FwebglParticleCount%29%2CI%2Einfo%2Erender%2Ecalls%2B%2B%2CI%2Einfo%2Erender%2Epoints%2B%3De%2E%5F%5FwebglParticleCount%29%7D%7D%3Bthis%2Erender%3Dfunction%28a%2Cb%2Cc%2Cd%29%7Bif%28%211%3D%3D%3Db%20instanceof%20THREE%2ECamera%29console%2Eerror%28%22THREE%2EWebGLRenderer%2Erender%3A%20camera%20is%20not%20an%20instance%20of%20THREE%2ECamera%2E%22%29%3Belse%7Bvar%20e%3Da%2Efog%3BSa%3D%22%22%3BHb%3D%2D1%3B%0AIb%3Dnull%3BOb%3D%210%3B%210%3D%3D%3Da%2EautoUpdate%26%26a%2EupdateMatrixWorld%28%29%3Bvoid%200%3D%3D%3Db%2Eparent%26%26b%2EupdateMatrixWorld%28%29%3Ba%2Etraverse%28function%28a%29%7Ba%20instanceof%20THREE%2ESkinnedMesh%26%26a%2Eskeleton%2Eupdate%28%29%7D%29%3Bb%2EmatrixWorldInverse%2EgetInverse%28b%2EmatrixWorld%29%3Bvb%2EmultiplyMatrices%28b%2EprojectionMatrix%2Cb%2EmatrixWorldInverse%29%3Bub%2EsetFromMatrix%28vb%29%3Bpa%2Elength%3D0%3BTa%2Elength%3D0%3Bza%2Elength%3D0%3Btb%2Elength%3D0%3Beb%2Elength%3D0%3Bq%28a%29%3B%210%3D%3D%3DI%2EsortObjects%26%26%28Ta%2Esort%28k%29%2Cza%2Esort%28n%29%29%3BNc%2Erender%28a%2Cb%29%3BI%2Einfo%2Erender%2Ecalls%3D0%3BI%2Einfo%2Erender%2Evertices%3D0%3BI%2Einfo%2Erender%2Efaces%3D0%3BI%2Einfo%2Erender%2Epoints%3D%0A0%3Bthis%2EsetRenderTarget%28c%29%3B%28this%2EautoClear%7C%7Cd%29%26%26this%2Eclear%28this%2EautoClearColor%2Cthis%2EautoClearDepth%2Cthis%2EautoClearStencil%29%3Bd%3D0%3Bfor%28var%20f%3DGa%2Elength%3Bd%3Cf%3Bd%2B%2B%29%7Bvar%20g%3DGa%5Bd%5D%2Ch%3Dg%2Eobject%3Bh%2Evisible%26%26%28G%28h%2Cb%29%2Cs%28g%29%29%7Da%2EoverrideMaterial%3F%28d%3Da%2EoverrideMaterial%2Cthis%2EsetBlending%28d%2Eblending%2Cd%2EblendEquation%2Cd%2EblendSrc%2Cd%2EblendDst%29%2Cthis%2EsetDepthTest%28d%2EdepthTest%29%2Cthis%2EsetDepthWrite%28d%2EdepthWrite%29%2CA%28d%2EpolygonOffset%2Cd%2EpolygonOffsetFactor%2Cd%2EpolygonOffsetUnits%29%2Cm%28Ta%2Cb%2Cpa%2Ce%2C%210%2Cd%29%2Cm%28za%2Cb%2Cpa%2Ce%2C%210%2Cd%29%2Ct%28Ga%2C%22%22%2Cb%2Cpa%2Ce%2C%211%2Cd%29%29%3A%28d%3Dnull%2C%0Athis%2EsetBlending%28THREE%2ENoBlending%29%2Cm%28Ta%2Cb%2Cpa%2Ce%2C%211%2Cd%29%2Ct%28Ga%2C%22opaque%22%2Cb%2Cpa%2Ce%2C%211%2Cd%29%2Cm%28za%2Cb%2Cpa%2Ce%2C%210%2Cd%29%2Ct%28Ga%2C%22transparent%22%2Cb%2Cpa%2Ce%2C%210%2Cd%29%29%3BOc%2Erender%28a%2Cb%29%3BPc%2Erender%28a%2Cb%2Cvc%2Cwc%29%3Bc%26%26c%2EgenerateMipmaps%26%26c%2EminFilter%21%3D%3DTHREE%2ENearestFilter%26%26c%2EminFilter%21%3D%3DTHREE%2ELinearFilter%26%26L%28c%29%3Bthis%2EsetDepthTest%28%210%29%3Bthis%2EsetDepthWrite%28%210%29%7D%7D%3Bthis%2ErenderImmediateObject%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%29%7Bvar%20f%3Dx%28a%2Cb%2Cc%2Cd%2Ce%29%3BSa%3D%22%22%3BI%2EsetMaterialFaces%28d%29%3Be%2EimmediateRenderCallback%3Fe%2EimmediateRenderCallback%28f%2Cl%2Cub%29%3Ae%2Erender%28function%28a%29%7BI%2ErenderBufferImmediate%28a%2C%0Af%2Cd%29%7D%29%7D%3Bvar%20sb%3D%7B%7D%2Ckc%3D0%2CDc%3D%7BMeshDepthMaterial%3A%22depth%22%2CMeshNormalMaterial%3A%22normal%22%2CMeshBasicMaterial%3A%22basic%22%2CMeshLambertMaterial%3A%22lambert%22%2CMeshPhongMaterial%3A%22phong%22%2CLineBasicMaterial%3A%22basic%22%2CLineDashedMaterial%3A%22dashed%22%2CPointCloudMaterial%3A%22particle%5Fbasic%22%7D%3Bthis%2EsetFaceCulling%3Dfunction%28a%2Cb%29%7Ba%3D%3D%3DTHREE%2ECullFaceNone%3Fl%2Edisable%28l%2ECULL%5FFACE%29%3A%28b%3D%3D%3DTHREE%2EFrontFaceDirectionCW%3Fl%2EfrontFace%28l%2ECW%29%3Al%2EfrontFace%28l%2ECCW%29%2Ca%3D%3D%3DTHREE%2ECullFaceBack%3Fl%2EcullFace%28l%2EBACK%29%3Aa%3D%3D%3DTHREE%2ECullFaceFront%3Fl%2EcullFace%28l%2EFRONT%29%3Al%2EcullFace%28l%2EFRONT%5FAND%5FBACK%29%2C%0Al%2Eenable%28l%2ECULL%5FFACE%29%29%7D%3Bthis%2EsetMaterialFaces%3Dfunction%28a%29%7Bvar%20b%3Da%2Eside%3D%3D%3DTHREE%2EDoubleSide%3Ba%3Da%2Eside%3D%3D%3DTHREE%2EBackSide%3Bzb%21%3D%3Db%26%26%28b%3Fl%2Edisable%28l%2ECULL%5FFACE%29%3Al%2Eenable%28l%2ECULL%5FFACE%29%2Czb%3Db%29%3BXb%21%3D%3Da%26%26%28a%3Fl%2EfrontFace%28l%2ECW%29%3Al%2EfrontFace%28l%2ECCW%29%2CXb%3Da%29%7D%3Bthis%2EsetDepthTest%3Dfunction%28a%29%7Bgc%21%3D%3Da%26%26%28a%3Fl%2Eenable%28l%2EDEPTH%5FTEST%29%3Al%2Edisable%28l%2EDEPTH%5FTEST%29%2Cgc%3Da%29%7D%3Bthis%2EsetDepthWrite%3Dfunction%28a%29%7Bhc%21%3D%3Da%26%26%28l%2EdepthMask%28a%29%2Chc%3Da%29%7D%3Bthis%2EsetBlending%3Dfunction%28a%2Cb%2Cc%2Cd%29%7Ba%21%3D%3DYb%26%26%28a%3D%3D%3DTHREE%2ENoBlending%3Fl%2Edisable%28l%2EBLEND%29%3Aa%3D%3D%3DTHREE%2EAdditiveBlending%3F%0A%28l%2Eenable%28l%2EBLEND%29%2Cl%2EblendEquation%28l%2EFUNC%5FADD%29%2Cl%2EblendFunc%28l%2ESRC%5FALPHA%2Cl%2EONE%29%29%3Aa%3D%3D%3DTHREE%2ESubtractiveBlending%3F%28l%2Eenable%28l%2EBLEND%29%2Cl%2EblendEquation%28l%2EFUNC%5FADD%29%2Cl%2EblendFunc%28l%2EZERO%2Cl%2EONE%5FMINUS%5FSRC%5FCOLOR%29%29%3Aa%3D%3D%3DTHREE%2EMultiplyBlending%3F%28l%2Eenable%28l%2EBLEND%29%2Cl%2EblendEquation%28l%2EFUNC%5FADD%29%2Cl%2EblendFunc%28l%2EZERO%2Cl%2ESRC%5FCOLOR%29%29%3Aa%3D%3D%3DTHREE%2ECustomBlending%3Fl%2Eenable%28l%2EBLEND%29%3A%28l%2Eenable%28l%2EBLEND%29%2Cl%2EblendEquationSeparate%28l%2EFUNC%5FADD%2Cl%2EFUNC%5FADD%29%2Cl%2EblendFuncSeparate%28l%2ESRC%5FALPHA%2Cl%2EONE%5FMINUS%5FSRC%5FALPHA%2Cl%2EONE%2Cl%2EONE%5FMINUS%5FSRC%5FALPHA%29%29%2CYb%3D%0Aa%29%3Bif%28a%3D%3D%3DTHREE%2ECustomBlending%29%7Bif%28b%21%3D%3DZb%26%26%28l%2EblendEquation%28T%28b%29%29%2CZb%3Db%29%2Cc%21%3D%3Dec%7C%7Cd%21%3D%3Dfc%29l%2EblendFunc%28T%28c%29%2CT%28d%29%29%2Cec%3Dc%2Cfc%3Dd%7Delse%20fc%3Dec%3DZb%3Dnull%7D%3Bthis%2EuploadTexture%3Dfunction%28a%29%7Bvoid%200%3D%3D%3Da%2E%5F%5FwebglInit%26%26%28a%2E%5F%5FwebglInit%3D%210%2Ca%2EaddEventListener%28%22dispose%22%2CJb%29%2Ca%2E%5F%5FwebglTexture%3Dl%2EcreateTexture%28%29%2CI%2Einfo%2Ememory%2Etextures%2B%2B%29%3Bl%2EbindTexture%28l%2ETEXTURE%5F2D%2Ca%2E%5F%5FwebglTexture%29%3Bl%2EpixelStorei%28l%2EUNPACK%5FFLIP%5FY%5FWEBGL%2Ca%2EflipY%29%3Bl%2EpixelStorei%28l%2EUNPACK%5FPREMULTIPLY%5FALPHA%5FWEBGL%2Ca%2EpremultiplyAlpha%29%3Bl%2EpixelStorei%28l%2EUNPACK%5FALIGNMENT%2Ca%2EunpackAlignment%29%3B%0Aa%2Eimage%3DM%28a%2Eimage%2CHc%29%3Bvar%20b%3Da%2Eimage%2Cc%3DTHREE%2EMath%2EisPowerOfTwo%28b%2Ewidth%29%26%26THREE%2EMath%2EisPowerOfTwo%28b%2Eheight%29%2Cd%3DT%28a%2Eformat%29%2Ce%3DT%28a%2Etype%29%3BU%28l%2ETEXTURE%5F2D%2Ca%2Cc%29%3Bvar%20f%3Da%2Emipmaps%3Bif%28a%20instanceof%20THREE%2EDataTexture%29if%280%3Cf%2Elength%26%26c%29%7Bfor%28var%20g%3D0%2Ch%3Df%2Elength%3Bg%3Ch%3Bg%2B%2B%29b%3Df%5Bg%5D%2Cl%2EtexImage2D%28l%2ETEXTURE%5F2D%2Cg%2Cd%2Cb%2Ewidth%2Cb%2Eheight%2C0%2Cd%2Ce%2Cb%2Edata%29%3Ba%2EgenerateMipmaps%3D%211%7Delse%20l%2EtexImage2D%28l%2ETEXTURE%5F2D%2C0%2Cd%2Cb%2Ewidth%2Cb%2Eheight%2C0%2Cd%2Ce%2Cb%2Edata%29%3Belse%20if%28a%20instanceof%20THREE%2ECompressedTexture%29for%28g%3D0%2Ch%3Df%2Elength%3Bg%3Ch%3Bg%2B%2B%29b%3Df%5Bg%5D%2Ca%2Eformat%21%3D%3DTHREE%2ERGBAFormat%26%26%0Aa%2Eformat%21%3D%3DTHREE%2ERGBFormat%3F%2D1%3Coc%28%29%2EindexOf%28d%29%3Fl%2EcompressedTexImage2D%28l%2ETEXTURE%5F2D%2Cg%2Cd%2Cb%2Ewidth%2Cb%2Eheight%2C0%2Cb%2Edata%29%3Aconsole%2Ewarn%28%22Attempt%20to%20load%20unsupported%20compressed%20texture%20format%22%29%3Al%2EtexImage2D%28l%2ETEXTURE%5F2D%2Cg%2Cd%2Cb%2Ewidth%2Cb%2Eheight%2C0%2Cd%2Ce%2Cb%2Edata%29%3Belse%20if%280%3Cf%2Elength%26%26c%29%7Bg%3D0%3Bfor%28h%3Df%2Elength%3Bg%3Ch%3Bg%2B%2B%29b%3Df%5Bg%5D%2Cl%2EtexImage2D%28l%2ETEXTURE%5F2D%2Cg%2Cd%2Cd%2Ce%2Cb%29%3Ba%2EgenerateMipmaps%3D%211%7Delse%20l%2EtexImage2D%28l%2ETEXTURE%5F2D%2C0%2Cd%2Cd%2Ce%2Ca%2Eimage%29%3Ba%2EgenerateMipmaps%26%26c%26%26l%2EgenerateMipmap%28l%2ETEXTURE%5F2D%29%3Ba%2EneedsUpdate%3D%211%3Bif%28a%2EonUpdate%29a%2EonUpdate%28%29%7D%3B%0Athis%2EsetTexture%3Dfunction%28a%2Cb%29%7Bl%2EactiveTexture%28l%2ETEXTURE0%2Bb%29%3Ba%2EneedsUpdate%3FI%2EuploadTexture%28a%29%3Al%2EbindTexture%28l%2ETEXTURE%5F2D%2Ca%2E%5F%5FwebglTexture%29%7D%3Bthis%2EsetRenderTarget%3Dfunction%28a%29%7Bvar%20b%3Da%20instanceof%20THREE%2EWebGLRenderTargetCube%3Bif%28a%26%26void%200%3D%3D%3Da%2E%5F%5FwebglFramebuffer%29%7Bvoid%200%3D%3D%3Da%2EdepthBuffer%26%26%28a%2EdepthBuffer%3D%210%29%3Bvoid%200%3D%3D%3Da%2EstencilBuffer%26%26%28a%2EstencilBuffer%3D%210%29%3Ba%2EaddEventListener%28%22dispose%22%2CCc%29%3Ba%2E%5F%5FwebglTexture%3Dl%2EcreateTexture%28%29%3BI%2Einfo%2Ememory%2Etextures%2B%2B%3Bvar%20c%3DTHREE%2EMath%2EisPowerOfTwo%28a%2Ewidth%29%26%26THREE%2EMath%2EisPowerOfTwo%28a%2Eheight%29%2C%0Ad%3DT%28a%2Eformat%29%2Ce%3DT%28a%2Etype%29%3Bif%28b%29%7Ba%2E%5F%5FwebglFramebuffer%3D%5B%5D%3Ba%2E%5F%5FwebglRenderbuffer%3D%5B%5D%3Bl%2EbindTexture%28l%2ETEXTURE%5FCUBE%5FMAP%2Ca%2E%5F%5FwebglTexture%29%3BU%28l%2ETEXTURE%5FCUBE%5FMAP%2Ca%2Cc%29%3Bfor%28var%20g%3D0%3B6%3Eg%3Bg%2B%2B%29%7Ba%2E%5F%5FwebglFramebuffer%5Bg%5D%3Dl%2EcreateFramebuffer%28%29%3Ba%2E%5F%5FwebglRenderbuffer%5Bg%5D%3Dl%2EcreateRenderbuffer%28%29%3Bl%2EtexImage2D%28l%2ETEXTURE%5FCUBE%5FMAP%5FPOSITIVE%5FX%2Bg%2C0%2Cd%2Ca%2Ewidth%2Ca%2Eheight%2C0%2Cd%2Ce%2Cnull%29%3Bvar%20f%3Da%2Ch%3Dl%2ETEXTURE%5FCUBE%5FMAP%5FPOSITIVE%5FX%2Bg%3Bl%2EbindFramebuffer%28l%2EFRAMEBUFFER%2Ca%2E%5F%5FwebglFramebuffer%5Bg%5D%29%3Bl%2EframebufferTexture2D%28l%2EFRAMEBUFFER%2Cl%2ECOLOR%5FATTACHMENT0%2C%0Ah%2Cf%2E%5F%5FwebglTexture%2C0%29%3BK%28a%2E%5F%5FwebglRenderbuffer%5Bg%5D%2Ca%29%7Dc%26%26l%2EgenerateMipmap%28l%2ETEXTURE%5FCUBE%5FMAP%29%7Delse%20a%2E%5F%5FwebglFramebuffer%3Dl%2EcreateFramebuffer%28%29%2Ca%2E%5F%5FwebglRenderbuffer%3Da%2EshareDepthFrom%3Fa%2EshareDepthFrom%2E%5F%5FwebglRenderbuffer%3Al%2EcreateRenderbuffer%28%29%2Cl%2EbindTexture%28l%2ETEXTURE%5F2D%2Ca%2E%5F%5FwebglTexture%29%2CU%28l%2ETEXTURE%5F2D%2Ca%2Cc%29%2Cl%2EtexImage2D%28l%2ETEXTURE%5F2D%2C0%2Cd%2Ca%2Ewidth%2Ca%2Eheight%2C0%2Cd%2Ce%2Cnull%29%2Cd%3Dl%2ETEXTURE%5F2D%2Cl%2EbindFramebuffer%28l%2EFRAMEBUFFER%2Ca%2E%5F%5FwebglFramebuffer%29%2Cl%2EframebufferTexture2D%28l%2EFRAMEBUFFER%2Cl%2ECOLOR%5FATTACHMENT0%2Cd%2Ca%2E%5F%5FwebglTexture%2C%0A0%29%2Ca%2EshareDepthFrom%3Fa%2EdepthBuffer%26%26%21a%2EstencilBuffer%3Fl%2EframebufferRenderbuffer%28l%2EFRAMEBUFFER%2Cl%2EDEPTH%5FATTACHMENT%2Cl%2ERENDERBUFFER%2Ca%2E%5F%5FwebglRenderbuffer%29%3Aa%2EdepthBuffer%26%26a%2EstencilBuffer%26%26l%2EframebufferRenderbuffer%28l%2EFRAMEBUFFER%2Cl%2EDEPTH%5FSTENCIL%5FATTACHMENT%2Cl%2ERENDERBUFFER%2Ca%2E%5F%5FwebglRenderbuffer%29%3AK%28a%2E%5F%5FwebglRenderbuffer%2Ca%29%2Cc%26%26l%2EgenerateMipmap%28l%2ETEXTURE%5F2D%29%3Bb%3Fl%2EbindTexture%28l%2ETEXTURE%5FCUBE%5FMAP%2Cnull%29%3Al%2EbindTexture%28l%2ETEXTURE%5F2D%2Cnull%29%3Bl%2EbindRenderbuffer%28l%2ERENDERBUFFER%2Cnull%29%3Bl%2EbindFramebuffer%28l%2EFRAMEBUFFER%2Cnull%29%7Da%3F%0A%28b%3Db%3Fa%2E%5F%5FwebglFramebuffer%5Ba%2EactiveCubeFace%5D%3Aa%2E%5F%5FwebglFramebuffer%2Cc%3Da%2Ewidth%2Ca%3Da%2Eheight%2Ce%3Dd%3D0%29%3A%28b%3Dnull%2Cc%3Dib%2Ca%3Djb%2Cd%3Dhb%2Ce%3DYa%29%3Bb%21%3D%3Duc%26%26%28l%2EbindFramebuffer%28l%2EFRAMEBUFFER%2Cb%29%2Cl%2Eviewport%28d%2Ce%2Cc%2Ca%29%2Cuc%3Db%29%3Bvc%3Dc%3Bwc%3Da%7D%3Bthis%2EinitMaterial%3Dfunction%28%29%7Bconsole%2Ewarn%28%22THREE%2EWebGLRenderer%3A%20%2EinitMaterial%28%29%20has%20been%20removed%2E%22%29%7D%3Bthis%2EaddPrePlugin%3Dfunction%28%29%7Bconsole%2Ewarn%28%22THREE%2EWebGLRenderer%3A%20%2EaddPrePlugin%28%29%20has%20been%20removed%2E%22%29%7D%3Bthis%2EaddPostPlugin%3Dfunction%28%29%7Bconsole%2Ewarn%28%22THREE%2EWebGLRenderer%3A%20%2EaddPostPlugin%28%29%20has%20been%20removed%2E%22%29%7D%3B%0Athis%2EupdateShadowMap%3Dfunction%28%29%7Bconsole%2Ewarn%28%22THREE%2EWebGLRenderer%3A%20%2EupdateShadowMap%28%29%20has%20been%20removed%2E%22%29%7D%7D%3B%0ATHREE%2EWebGLRenderTarget%3Dfunction%28a%2Cb%2Cc%29%7Bthis%2Ewidth%3Da%3Bthis%2Eheight%3Db%3Bc%3Dc%7C%7C%7B%7D%3Bthis%2EwrapS%3Dvoid%200%21%3D%3Dc%2EwrapS%3Fc%2EwrapS%3ATHREE%2EClampToEdgeWrapping%3Bthis%2EwrapT%3Dvoid%200%21%3D%3Dc%2EwrapT%3Fc%2EwrapT%3ATHREE%2EClampToEdgeWrapping%3Bthis%2EmagFilter%3Dvoid%200%21%3D%3Dc%2EmagFilter%3Fc%2EmagFilter%3ATHREE%2ELinearFilter%3Bthis%2EminFilter%3Dvoid%200%21%3D%3Dc%2EminFilter%3Fc%2EminFilter%3ATHREE%2ELinearMipMapLinearFilter%3Bthis%2Eanisotropy%3Dvoid%200%21%3D%3Dc%2Eanisotropy%3Fc%2Eanisotropy%3A1%3Bthis%2Eoffset%3Dnew%20THREE%2EVector2%280%2C0%29%3Bthis%2Erepeat%3Dnew%20THREE%2EVector2%281%2C1%29%3Bthis%2Eformat%3Dvoid%200%21%3D%3Dc%2Eformat%3Fc%2Eformat%3A%0ATHREE%2ERGBAFormat%3Bthis%2Etype%3Dvoid%200%21%3D%3Dc%2Etype%3Fc%2Etype%3ATHREE%2EUnsignedByteType%3Bthis%2EdepthBuffer%3Dvoid%200%21%3D%3Dc%2EdepthBuffer%3Fc%2EdepthBuffer%3A%210%3Bthis%2EstencilBuffer%3Dvoid%200%21%3D%3Dc%2EstencilBuffer%3Fc%2EstencilBuffer%3A%210%3Bthis%2EgenerateMipmaps%3D%210%3Bthis%2EshareDepthFrom%3Dnull%7D%3B%0ATHREE%2EWebGLRenderTarget%2Eprototype%3D%7Bconstructor%3ATHREE%2EWebGLRenderTarget%2CsetSize%3Afunction%28a%2Cb%29%7Bthis%2Ewidth%3Da%3Bthis%2Eheight%3Db%7D%2Cclone%3Afunction%28%29%7Bvar%20a%3Dnew%20THREE%2EWebGLRenderTarget%28this%2Ewidth%2Cthis%2Eheight%29%3Ba%2EwrapS%3Dthis%2EwrapS%3Ba%2EwrapT%3Dthis%2EwrapT%3Ba%2EmagFilter%3Dthis%2EmagFilter%3Ba%2EminFilter%3Dthis%2EminFilter%3Ba%2Eanisotropy%3Dthis%2Eanisotropy%3Ba%2Eoffset%2Ecopy%28this%2Eoffset%29%3Ba%2Erepeat%2Ecopy%28this%2Erepeat%29%3Ba%2Eformat%3Dthis%2Eformat%3Ba%2Etype%3Dthis%2Etype%3Ba%2EdepthBuffer%3Dthis%2EdepthBuffer%3Ba%2EstencilBuffer%3Dthis%2EstencilBuffer%3Ba%2EgenerateMipmaps%3Dthis%2EgenerateMipmaps%3B%0Aa%2EshareDepthFrom%3Dthis%2EshareDepthFrom%3Breturn%20a%7D%2Cdispose%3Afunction%28%29%7Bthis%2EdispatchEvent%28%7Btype%3A%22dispose%22%7D%29%7D%7D%3BTHREE%2EEventDispatcher%2Eprototype%2Eapply%28THREE%2EWebGLRenderTarget%2Eprototype%29%3BTHREE%2EWebGLRenderTargetCube%3Dfunction%28a%2Cb%2Cc%29%7BTHREE%2EWebGLRenderTarget%2Ecall%28this%2Ca%2Cb%2Cc%29%3Bthis%2EactiveCubeFace%3D0%7D%3BTHREE%2EWebGLRenderTargetCube%2Eprototype%3DObject%2Ecreate%28THREE%2EWebGLRenderTarget%2Eprototype%29%3BTHREE%2EWebGLRenderTargetCube%2Eprototype%2Econstructor%3DTHREE%2EWebGLRenderTargetCube%3B%0ATHREE%2EWebGLExtensions%3Dfunction%28a%29%7Bvar%20b%3D%7B%7D%3Bthis%2Eget%3Dfunction%28c%29%7Bif%28void%200%21%3D%3Db%5Bc%5D%29return%20b%5Bc%5D%3Bvar%20d%3Bswitch%28c%29%7Bcase%20%22EXT%5Ftexture%5Ffilter%5Fanisotropic%22%3Ad%3Da%2EgetExtension%28%22EXT%5Ftexture%5Ffilter%5Fanisotropic%22%29%7C%7Ca%2EgetExtension%28%22MOZ%5FEXT%5Ftexture%5Ffilter%5Fanisotropic%22%29%7C%7Ca%2EgetExtension%28%22WEBKIT%5FEXT%5Ftexture%5Ffilter%5Fanisotropic%22%29%3Bbreak%3Bcase%20%22WEBGL%5Fcompressed%5Ftexture%5Fs3tc%22%3Ad%3Da%2EgetExtension%28%22WEBGL%5Fcompressed%5Ftexture%5Fs3tc%22%29%7C%7Ca%2EgetExtension%28%22MOZ%5FWEBGL%5Fcompressed%5Ftexture%5Fs3tc%22%29%7C%7Ca%2EgetExtension%28%22WEBKIT%5FWEBGL%5Fcompressed%5Ftexture%5Fs3tc%22%29%3B%0Abreak%3Bcase%20%22WEBGL%5Fcompressed%5Ftexture%5Fpvrtc%22%3Ad%3Da%2EgetExtension%28%22WEBGL%5Fcompressed%5Ftexture%5Fpvrtc%22%29%7C%7Ca%2EgetExtension%28%22WEBKIT%5FWEBGL%5Fcompressed%5Ftexture%5Fpvrtc%22%29%3Bbreak%3Bdefault%3Ad%3Da%2EgetExtension%28c%29%7Dnull%3D%3D%3Dd%26%26console%2Elog%28%22THREE%2EWebGLRenderer%3A%20%22%2Bc%2B%22%20extension%20not%20supported%2E%22%29%3Breturn%20b%5Bc%5D%3Dd%7D%7D%3B%0ATHREE%2EWebGLProgram%3Dfunction%28%29%7Bvar%20a%3D0%3Breturn%20function%28b%2Cc%2Cd%2Ce%29%7Bvar%20f%3Db%2Econtext%2Cg%3Dd%2Edefines%2Ch%3Dd%2E%5F%5FwebglShader%2Euniforms%2Ck%3Dd%2Eattributes%2Cn%3Dd%2E%5F%5FwebglShader%2EvertexShader%2Cp%3Dd%2E%5F%5FwebglShader%2EfragmentShader%2Cq%3Dd%2Eindex0AttributeName%3Bvoid%200%3D%3D%3Dq%26%26%210%3D%3D%3De%2EmorphTargets%26%26%28q%3D%22position%22%29%3Bvar%20m%3D%22SHADOWMAP%5FTYPE%5FBASIC%22%3Be%2EshadowMapType%3D%3D%3DTHREE%2EPCFShadowMap%3Fm%3D%22SHADOWMAP%5FTYPE%5FPCF%22%3Ae%2EshadowMapType%3D%3D%3DTHREE%2EPCFSoftShadowMap%26%26%28m%3D%22SHADOWMAP%5FTYPE%5FPCF%5FSOFT%22%29%3Bvar%20t%3D%22ENVMAP%5FTYPE%5FCUBE%22%2Cs%3D%22ENVMAP%5FMODE%5FREFLECTION%22%2Cr%3D%22ENVMAP%5FBLENDING%5FMULTIPLY%22%3B%0Aif%28e%2EenvMap%29%7Bswitch%28d%2EenvMap%2Emapping%29%7Bcase%20THREE%2ECubeReflectionMapping%3Acase%20THREE%2ECubeRefractionMapping%3At%3D%22ENVMAP%5FTYPE%5FCUBE%22%3Bbreak%3Bcase%20THREE%2EEquirectangularReflectionMapping%3Acase%20THREE%2EEquirectangularRefractionMapping%3At%3D%22ENVMAP%5FTYPE%5FEQUIREC%22%3Bbreak%3Bcase%20THREE%2ESphericalReflectionMapping%3At%3D%22ENVMAP%5FTYPE%5FSPHERE%22%7Dswitch%28d%2EenvMap%2Emapping%29%7Bcase%20THREE%2ECubeRefractionMapping%3Acase%20THREE%2EEquirectangularRefractionMapping%3As%3D%22ENVMAP%5FMODE%5FREFRACTION%22%7Dswitch%28d%2Ecombine%29%7Bcase%20THREE%2EMultiplyOperation%3Ar%3D%22ENVMAP%5FBLENDING%5FMULTIPLY%22%3B%0Abreak%3Bcase%20THREE%2EMixOperation%3Ar%3D%22ENVMAP%5FBLENDING%5FMIX%22%3Bbreak%3Bcase%20THREE%2EAddOperation%3Ar%3D%22ENVMAP%5FBLENDING%5FADD%22%7D%7Dvar%20u%2Cv%3Bu%3D%5B%5D%3Bfor%28var%20y%20in%20g%29v%3Dg%5By%5D%2C%211%21%3D%3Dv%26%26%28v%3D%22%23define%20%22%2By%2B%22%20%22%2Bv%2Cu%2Epush%28v%29%29%3Bu%3Du%2Ejoin%28%22%5Cn%22%29%3Bg%3Df%2EcreateProgram%28%29%3Bd%20instanceof%20THREE%2ERawShaderMaterial%3Fb%3Dd%3D%22%22%3A%28d%3D%5B%22precision%20%22%2Be%2Eprecision%2B%22%20float%3B%22%2C%22precision%20%22%2Be%2Eprecision%2B%22%20int%3B%22%2Cu%2Ce%2EsupportsVertexTextures%3F%22%23define%20VERTEX%5FTEXTURES%22%3A%22%22%2Cb%2EgammaInput%3F%22%23define%20GAMMA%5FINPUT%22%3A%22%22%2Cb%2EgammaOutput%3F%22%23define%20GAMMA%5FOUTPUT%22%3A%22%22%2C%22%23define%20MAX%5FDIR%5FLIGHTS%20%22%2Be%2EmaxDirLights%2C%0A%22%23define%20MAX%5FPOINT%5FLIGHTS%20%22%2Be%2EmaxPointLights%2C%22%23define%20MAX%5FSPOT%5FLIGHTS%20%22%2Be%2EmaxSpotLights%2C%22%23define%20MAX%5FHEMI%5FLIGHTS%20%22%2Be%2EmaxHemiLights%2C%22%23define%20MAX%5FSHADOWS%20%22%2Be%2EmaxShadows%2C%22%23define%20MAX%5FBONES%20%22%2Be%2EmaxBones%2Ce%2Emap%3F%22%23define%20USE%5FMAP%22%3A%22%22%2Ce%2EenvMap%3F%22%23define%20USE%5FENVMAP%22%3A%22%22%2Ce%2EenvMap%3F%22%23define%20%22%2Bs%3A%22%22%2Ce%2ElightMap%3F%22%23define%20USE%5FLIGHTMAP%22%3A%22%22%2Ce%2EbumpMap%3F%22%23define%20USE%5FBUMPMAP%22%3A%22%22%2Ce%2EnormalMap%3F%22%23define%20USE%5FNORMALMAP%22%3A%22%22%2Ce%2EspecularMap%3F%22%23define%20USE%5FSPECULARMAP%22%3A%22%22%2Ce%2EalphaMap%3F%22%23define%20USE%5FALPHAMAP%22%3A%22%22%2Ce%2EvertexColors%3F%22%23define%20USE%5FCOLOR%22%3A%0A%22%22%2Ce%2Eskinning%3F%22%23define%20USE%5FSKINNING%22%3A%22%22%2Ce%2EuseVertexTexture%3F%22%23define%20BONE%5FTEXTURE%22%3A%22%22%2Ce%2EmorphTargets%3F%22%23define%20USE%5FMORPHTARGETS%22%3A%22%22%2Ce%2EmorphNormals%3F%22%23define%20USE%5FMORPHNORMALS%22%3A%22%22%2Ce%2EwrapAround%3F%22%23define%20WRAP%5FAROUND%22%3A%22%22%2Ce%2EdoubleSided%3F%22%23define%20DOUBLE%5FSIDED%22%3A%22%22%2Ce%2EflipSided%3F%22%23define%20FLIP%5FSIDED%22%3A%22%22%2Ce%2EshadowMapEnabled%3F%22%23define%20USE%5FSHADOWMAP%22%3A%22%22%2Ce%2EshadowMapEnabled%3F%22%23define%20%22%2Bm%3A%22%22%2Ce%2EshadowMapDebug%3F%22%23define%20SHADOWMAP%5FDEBUG%22%3A%22%22%2Ce%2EshadowMapCascade%3F%22%23define%20SHADOWMAP%5FCASCADE%22%3A%22%22%2Ce%2EsizeAttenuation%3F%22%23define%20USE%5FSIZEATTENUATION%22%3A%0A%22%22%2Ce%2ElogarithmicDepthBuffer%3F%22%23define%20USE%5FLOGDEPTHBUF%22%3A%22%22%2C%22uniform%20mat4%20modelMatrix%3B%5Cnuniform%20mat4%20modelViewMatrix%3B%5Cnuniform%20mat4%20projectionMatrix%3B%5Cnuniform%20mat4%20viewMatrix%3B%5Cnuniform%20mat3%20normalMatrix%3B%5Cnuniform%20vec3%20cameraPosition%3B%5Cnattribute%20vec3%20position%3B%5Cnattribute%20vec3%20normal%3B%5Cnattribute%20vec2%20uv%3B%5Cnattribute%20vec2%20uv2%3B%5Cn%23ifdef%20USE%5FCOLOR%5Cn%5Ctattribute%20vec3%20color%3B%5Cn%23endif%5Cn%23ifdef%20USE%5FMORPHTARGETS%5Cn%5Ctattribute%20vec3%20morphTarget0%3B%5Cn%5Ctattribute%20vec3%20morphTarget1%3B%5Cn%5Ctattribute%20vec3%20morphTarget2%3B%5Cn%5Ctattribute%20vec3%20morphTarget3%3B%5Cn%5Ct%23ifdef%20USE%5FMORPHNORMALS%5Cn%5Ct%5Ctattribute%20vec3%20morphNormal0%3B%5Cn%5Ct%5Ctattribute%20vec3%20morphNormal1%3B%5Cn%5Ct%5Ctattribute%20vec3%20morphNormal2%3B%5Cn%5Ct%5Ctattribute%20vec3%20morphNormal3%3B%5Cn%5Ct%23else%5Cn%5Ct%5Ctattribute%20vec3%20morphTarget4%3B%5Cn%5Ct%5Ctattribute%20vec3%20morphTarget5%3B%5Cn%5Ct%5Ctattribute%20vec3%20morphTarget6%3B%5Cn%5Ct%5Ctattribute%20vec3%20morphTarget7%3B%5Cn%5Ct%23endif%5Cn%23endif%5Cn%23ifdef%20USE%5FSKINNING%5Cn%5Ctattribute%20vec4%20skinIndex%3B%5Cn%5Ctattribute%20vec4%20skinWeight%3B%5Cn%23endif%5Cn%22%5D%2Ejoin%28%22%5Cn%22%29%2C%0Ab%3D%5B%22precision%20%22%2Be%2Eprecision%2B%22%20float%3B%22%2C%22precision%20%22%2Be%2Eprecision%2B%22%20int%3B%22%2Ce%2EbumpMap%7C%7Ce%2EnormalMap%3F%22%23extension%20GL%5FOES%5Fstandard%5Fderivatives%20%3A%20enable%22%3A%22%22%2Cu%2C%22%23define%20MAX%5FDIR%5FLIGHTS%20%22%2Be%2EmaxDirLights%2C%22%23define%20MAX%5FPOINT%5FLIGHTS%20%22%2Be%2EmaxPointLights%2C%22%23define%20MAX%5FSPOT%5FLIGHTS%20%22%2Be%2EmaxSpotLights%2C%22%23define%20MAX%5FHEMI%5FLIGHTS%20%22%2Be%2EmaxHemiLights%2C%22%23define%20MAX%5FSHADOWS%20%22%2Be%2EmaxShadows%2Ce%2EalphaTest%3F%22%23define%20ALPHATEST%20%22%2Be%2EalphaTest%3A%22%22%2Cb%2EgammaInput%3F%22%23define%20GAMMA%5FINPUT%22%3A%22%22%2Cb%2EgammaOutput%3F%22%23define%20GAMMA%5FOUTPUT%22%3A%22%22%2Ce%2EuseFog%26%26e%2Efog%3F%22%23define%20USE%5FFOG%22%3A%0A%22%22%2Ce%2EuseFog%26%26e%2EfogExp%3F%22%23define%20FOG%5FEXP2%22%3A%22%22%2Ce%2Emap%3F%22%23define%20USE%5FMAP%22%3A%22%22%2Ce%2EenvMap%3F%22%23define%20USE%5FENVMAP%22%3A%22%22%2Ce%2EenvMap%3F%22%23define%20%22%2Bt%3A%22%22%2Ce%2EenvMap%3F%22%23define%20%22%2Bs%3A%22%22%2Ce%2EenvMap%3F%22%23define%20%22%2Br%3A%22%22%2Ce%2ElightMap%3F%22%23define%20USE%5FLIGHTMAP%22%3A%22%22%2Ce%2EbumpMap%3F%22%23define%20USE%5FBUMPMAP%22%3A%22%22%2Ce%2EnormalMap%3F%22%23define%20USE%5FNORMALMAP%22%3A%22%22%2Ce%2EspecularMap%3F%22%23define%20USE%5FSPECULARMAP%22%3A%22%22%2Ce%2EalphaMap%3F%22%23define%20USE%5FALPHAMAP%22%3A%22%22%2Ce%2EvertexColors%3F%22%23define%20USE%5FCOLOR%22%3A%22%22%2Ce%2Emetal%3F%22%23define%20METAL%22%3A%22%22%2Ce%2EwrapAround%3F%22%23define%20WRAP%5FAROUND%22%3A%22%22%2Ce%2EdoubleSided%3F%22%23define%20DOUBLE%5FSIDED%22%3A%0A%22%22%2Ce%2EflipSided%3F%22%23define%20FLIP%5FSIDED%22%3A%22%22%2Ce%2EshadowMapEnabled%3F%22%23define%20USE%5FSHADOWMAP%22%3A%22%22%2Ce%2EshadowMapEnabled%3F%22%23define%20%22%2Bm%3A%22%22%2Ce%2EshadowMapDebug%3F%22%23define%20SHADOWMAP%5FDEBUG%22%3A%22%22%2Ce%2EshadowMapCascade%3F%22%23define%20SHADOWMAP%5FCASCADE%22%3A%22%22%2Ce%2ElogarithmicDepthBuffer%3F%22%23define%20USE%5FLOGDEPTHBUF%22%3A%22%22%2C%22uniform%20mat4%20viewMatrix%3B%5Cnuniform%20vec3%20cameraPosition%3B%5Cn%22%5D%2Ejoin%28%22%5Cn%22%29%29%3Bn%3Dnew%20THREE%2EWebGLShader%28f%2Cf%2EVERTEX%5FSHADER%2Cd%2Bn%29%3Bp%3Dnew%20THREE%2EWebGLShader%28f%2Cf%2EFRAGMENT%5FSHADER%2Cb%2Bp%29%3Bf%2EattachShader%28g%2Cn%29%3Bf%2EattachShader%28g%2Cp%29%3Bvoid%200%21%3D%3Dq%26%26f%2EbindAttribLocation%28g%2C%0A0%2Cq%29%3Bf%2ElinkProgram%28g%29%3B%211%3D%3D%3Df%2EgetProgramParameter%28g%2Cf%2ELINK%5FSTATUS%29%26%26%28console%2Eerror%28%22THREE%2EWebGLProgram%3A%20Could%20not%20initialise%20shader%2E%22%29%2Cconsole%2Eerror%28%22gl%2EVALIDATE%5FSTATUS%22%2Cf%2EgetProgramParameter%28g%2Cf%2EVALIDATE%5FSTATUS%29%29%2Cconsole%2Eerror%28%22gl%2EgetError%28%29%22%2Cf%2EgetError%28%29%29%29%3B%22%22%21%3D%3Df%2EgetProgramInfoLog%28g%29%26%26console%2Ewarn%28%22THREE%2EWebGLProgram%3A%20gl%2EgetProgramInfoLog%28%29%22%2Cf%2EgetProgramInfoLog%28g%29%29%3Bf%2EdeleteShader%28n%29%3Bf%2EdeleteShader%28p%29%3Bq%3D%22viewMatrix%20modelViewMatrix%20projectionMatrix%20normalMatrix%20modelMatrix%20cameraPosition%20morphTargetInfluences%20bindMatrix%20bindMatrixInverse%22%2Esplit%28%22%20%22%29%3B%0Ae%2EuseVertexTexture%3F%28q%2Epush%28%22boneTexture%22%29%2Cq%2Epush%28%22boneTextureWidth%22%29%2Cq%2Epush%28%22boneTextureHeight%22%29%29%3Aq%2Epush%28%22boneGlobalMatrices%22%29%3Be%2ElogarithmicDepthBuffer%26%26q%2Epush%28%22logDepthBufFC%22%29%3Bfor%28var%20C%20in%20h%29q%2Epush%28C%29%3Bh%3Dq%3BC%3D%7B%7D%3Bq%3D0%3Bfor%28b%3Dh%2Elength%3Bq%3Cb%3Bq%2B%2B%29m%3Dh%5Bq%5D%2CC%5Bm%5D%3Df%2EgetUniformLocation%28g%2Cm%29%3Bthis%2Euniforms%3DC%3Bq%3D%22position%20normal%20uv%20uv2%20tangent%20color%20skinIndex%20skinWeight%20lineDistance%22%2Esplit%28%22%20%22%29%3Bfor%28h%3D0%3Bh%3Ce%2EmaxMorphTargets%3Bh%2B%2B%29q%2Epush%28%22morphTarget%22%2Bh%29%3Bfor%28h%3D0%3Bh%3Ce%2EmaxMorphNormals%3Bh%2B%2B%29q%2Epush%28%22morphNormal%22%2Bh%29%3Bfor%28var%20x%20in%20k%29q%2Epush%28x%29%3B%0Ae%3Dq%3Bk%3D%7B%7D%3Bx%3D0%3Bfor%28h%3De%2Elength%3Bx%3Ch%3Bx%2B%2B%29C%3De%5Bx%5D%2Ck%5BC%5D%3Df%2EgetAttribLocation%28g%2CC%29%3Bthis%2Eattributes%3Dk%3Bthis%2EattributesKeys%3DObject%2Ekeys%28this%2Eattributes%29%3Bthis%2Eid%3Da%2B%2B%3Bthis%2Ecode%3Dc%3Bthis%2EusedTimes%3D1%3Bthis%2Eprogram%3Dg%3Bthis%2EvertexShader%3Dn%3Bthis%2EfragmentShader%3Dp%3Breturn%20this%7D%7D%28%29%3B%0ATHREE%2EWebGLShader%3Dfunction%28%29%7Bvar%20a%3Dfunction%28a%29%7Ba%3Da%2Esplit%28%22%5Cn%22%29%3Bfor%28var%20c%3D0%3Bc%3Ca%2Elength%3Bc%2B%2B%29a%5Bc%5D%3Dc%2B1%2B%22%3A%20%22%2Ba%5Bc%5D%3Breturn%20a%2Ejoin%28%22%5Cn%22%29%7D%3Breturn%20function%28b%2Cc%2Cd%29%7Bc%3Db%2EcreateShader%28c%29%3Bb%2EshaderSource%28c%2Cd%29%3Bb%2EcompileShader%28c%29%3B%211%3D%3D%3Db%2EgetShaderParameter%28c%2Cb%2ECOMPILE%5FSTATUS%29%26%26console%2Eerror%28%22THREE%2EWebGLShader%3A%20Shader%20couldn%27t%20compile%2E%22%29%3B%22%22%21%3D%3Db%2EgetShaderInfoLog%28c%29%26%26%28console%2Ewarn%28%22THREE%2EWebGLShader%3A%20gl%2EgetShaderInfoLog%28%29%22%2Cb%2EgetShaderInfoLog%28c%29%29%2Cconsole%2Ewarn%28a%28d%29%29%29%3Breturn%20c%7D%7D%28%29%3B%0ATHREE%2ELensFlarePlugin%3Dfunction%28a%2Cb%29%7Bvar%20c%2Cd%2Ce%2Cf%2Cg%2Ch%2Ck%2Cn%2Cp%2Cq%2Cm%3Da%2Econtext%2Ct%2Cs%2Cr%2Cu%2Cv%2Cy%3Bthis%2Erender%3Dfunction%28C%2Cx%2CF%2Cz%29%7Bif%280%21%3D%3Db%2Elength%29%7BC%3Dnew%20THREE%2EVector3%3Bvar%20G%3Dz%2FF%2CE%3D%2E5%2AF%2Cw%3D%2E5%2Az%2CD%3D16%2Fz%2CA%3Dnew%20THREE%2EVector2%28D%2AG%2CD%29%2CU%3Dnew%20THREE%2EVector3%281%2C1%2C0%29%2CM%3Dnew%20THREE%2EVector2%281%2C1%29%3Bif%28void%200%3D%3D%3Dr%29%7Bvar%20D%3Dnew%20Float32Array%28%5B%2D1%2C%2D1%2C0%2C0%2C1%2C%2D1%2C1%2C0%2C1%2C1%2C1%2C1%2C%2D1%2C1%2C0%2C1%5D%29%2CK%3Dnew%20Uint16Array%28%5B0%2C1%2C2%2C0%2C2%2C3%5D%29%3Bt%3Dm%2EcreateBuffer%28%29%3Bs%3Dm%2EcreateBuffer%28%29%3Bm%2EbindBuffer%28m%2EARRAY%5FBUFFER%2Ct%29%3Bm%2EbufferData%28m%2EARRAY%5FBUFFER%2CD%2Cm%2ESTATIC%5FDRAW%29%3Bm%2EbindBuffer%28m%2EELEMENT%5FARRAY%5FBUFFER%2C%0As%29%3Bm%2EbufferData%28m%2EELEMENT%5FARRAY%5FBUFFER%2CK%2Cm%2ESTATIC%5FDRAW%29%3Bv%3Dm%2EcreateTexture%28%29%3By%3Dm%2EcreateTexture%28%29%3Bm%2EbindTexture%28m%2ETEXTURE%5F2D%2Cv%29%3Bm%2EtexImage2D%28m%2ETEXTURE%5F2D%2C0%2Cm%2ERGB%2C16%2C16%2C0%2Cm%2ERGB%2Cm%2EUNSIGNED%5FBYTE%2Cnull%29%3Bm%2EtexParameteri%28m%2ETEXTURE%5F2D%2Cm%2ETEXTURE%5FWRAP%5FS%2Cm%2ECLAMP%5FTO%5FEDGE%29%3Bm%2EtexParameteri%28m%2ETEXTURE%5F2D%2Cm%2ETEXTURE%5FWRAP%5FT%2Cm%2ECLAMP%5FTO%5FEDGE%29%3Bm%2EtexParameteri%28m%2ETEXTURE%5F2D%2Cm%2ETEXTURE%5FMAG%5FFILTER%2Cm%2ENEAREST%29%3Bm%2EtexParameteri%28m%2ETEXTURE%5F2D%2Cm%2ETEXTURE%5FMIN%5FFILTER%2Cm%2ENEAREST%29%3Bm%2EbindTexture%28m%2ETEXTURE%5F2D%2Cy%29%3Bm%2EtexImage2D%28m%2ETEXTURE%5F2D%2C0%2C%0Am%2ERGBA%2C16%2C16%2C0%2Cm%2ERGBA%2Cm%2EUNSIGNED%5FBYTE%2Cnull%29%3Bm%2EtexParameteri%28m%2ETEXTURE%5F2D%2Cm%2ETEXTURE%5FWRAP%5FS%2Cm%2ECLAMP%5FTO%5FEDGE%29%3Bm%2EtexParameteri%28m%2ETEXTURE%5F2D%2Cm%2ETEXTURE%5FWRAP%5FT%2Cm%2ECLAMP%5FTO%5FEDGE%29%3Bm%2EtexParameteri%28m%2ETEXTURE%5F2D%2Cm%2ETEXTURE%5FMAG%5FFILTER%2Cm%2ENEAREST%29%3Bm%2EtexParameteri%28m%2ETEXTURE%5F2D%2Cm%2ETEXTURE%5FMIN%5FFILTER%2Cm%2ENEAREST%29%3Bvar%20D%3D%28u%3D0%3Cm%2EgetParameter%28m%2EMAX%5FVERTEX%5FTEXTURE%5FIMAGE%5FUNITS%29%29%3F%7BvertexShader%3A%22uniform%20lowp%20int%20renderType%3B%5Cnuniform%20vec3%20screenPosition%3B%5Cnuniform%20vec2%20scale%3B%5Cnuniform%20float%20rotation%3B%5Cnuniform%20sampler2D%20occlusionMap%3B%5Cnattribute%20vec2%20position%3B%5Cnattribute%20vec2%20uv%3B%5Cnvarying%20vec2%20vUV%3B%5Cnvarying%20float%20vVisibility%3B%5Cnvoid%20main%28%29%20%7B%5CnvUV%20%3D%20uv%3B%5Cnvec2%20pos%20%3D%20position%3B%5Cnif%28%20renderType%20%3D%3D%202%20%29%20%7B%5Cnvec4%20visibility%20%3D%20texture2D%28%20occlusionMap%2C%20vec2%28%200%2E1%2C%200%2E1%20%29%20%29%3B%5Cnvisibility%20%2B%3D%20texture2D%28%20occlusionMap%2C%20vec2%28%200%2E5%2C%200%2E1%20%29%20%29%3B%5Cnvisibility%20%2B%3D%20texture2D%28%20occlusionMap%2C%20vec2%28%200%2E9%2C%200%2E1%20%29%20%29%3B%5Cnvisibility%20%2B%3D%20texture2D%28%20occlusionMap%2C%20vec2%28%200%2E9%2C%200%2E5%20%29%20%29%3B%5Cnvisibility%20%2B%3D%20texture2D%28%20occlusionMap%2C%20vec2%28%200%2E9%2C%200%2E9%20%29%20%29%3B%5Cnvisibility%20%2B%3D%20texture2D%28%20occlusionMap%2C%20vec2%28%200%2E5%2C%200%2E9%20%29%20%29%3B%5Cnvisibility%20%2B%3D%20texture2D%28%20occlusionMap%2C%20vec2%28%200%2E1%2C%200%2E9%20%29%20%29%3B%5Cnvisibility%20%2B%3D%20texture2D%28%20occlusionMap%2C%20vec2%28%200%2E1%2C%200%2E5%20%29%20%29%3B%5Cnvisibility%20%2B%3D%20texture2D%28%20occlusionMap%2C%20vec2%28%200%2E5%2C%200%2E5%20%29%20%29%3B%5CnvVisibility%20%3D%20%20%20%20%20%20%20%20visibility%2Er%20%2F%209%2E0%3B%5CnvVisibility%20%2A%3D%201%2E0%20%2D%20visibility%2Eg%20%2F%209%2E0%3B%5CnvVisibility%20%2A%3D%20%20%20%20%20%20%20visibility%2Eb%20%2F%209%2E0%3B%5CnvVisibility%20%2A%3D%201%2E0%20%2D%20visibility%2Ea%20%2F%209%2E0%3B%5Cnpos%2Ex%20%3D%20cos%28%20rotation%20%29%20%2A%20position%2Ex%20%2D%20sin%28%20rotation%20%29%20%2A%20position%2Ey%3B%5Cnpos%2Ey%20%3D%20sin%28%20rotation%20%29%20%2A%20position%2Ex%20%2B%20cos%28%20rotation%20%29%20%2A%20position%2Ey%3B%5Cn%7D%5Cngl%5FPosition%20%3D%20vec4%28%20%28%20pos%20%2A%20scale%20%2B%20screenPosition%2Exy%20%29%2Exy%2C%20screenPosition%2Ez%2C%201%2E0%20%29%3B%5Cn%7D%22%2C%0AfragmentShader%3A%22uniform%20lowp%20int%20renderType%3B%5Cnuniform%20sampler2D%20map%3B%5Cnuniform%20float%20opacity%3B%5Cnuniform%20vec3%20color%3B%5Cnvarying%20vec2%20vUV%3B%5Cnvarying%20float%20vVisibility%3B%5Cnvoid%20main%28%29%20%7B%5Cnif%28%20renderType%20%3D%3D%200%20%29%20%7B%5Cngl%5FFragColor%20%3D%20vec4%28%201%2E0%2C%200%2E0%2C%201%2E0%2C%200%2E0%20%29%3B%5Cn%7D%20else%20if%28%20renderType%20%3D%3D%201%20%29%20%7B%5Cngl%5FFragColor%20%3D%20texture2D%28%20map%2C%20vUV%20%29%3B%5Cn%7D%20else%20%7B%5Cnvec4%20texture%20%3D%20texture2D%28%20map%2C%20vUV%20%29%3B%5Cntexture%2Ea%20%2A%3D%20opacity%20%2A%20vVisibility%3B%5Cngl%5FFragColor%20%3D%20texture%3B%5Cngl%5FFragColor%2Ergb%20%2A%3D%20color%3B%5Cn%7D%5Cn%7D%22%7D%3A%7BvertexShader%3A%22uniform%20lowp%20int%20renderType%3B%5Cnuniform%20vec3%20screenPosition%3B%5Cnuniform%20vec2%20scale%3B%5Cnuniform%20float%20rotation%3B%5Cnattribute%20vec2%20position%3B%5Cnattribute%20vec2%20uv%3B%5Cnvarying%20vec2%20vUV%3B%5Cnvoid%20main%28%29%20%7B%5CnvUV%20%3D%20uv%3B%5Cnvec2%20pos%20%3D%20position%3B%5Cnif%28%20renderType%20%3D%3D%202%20%29%20%7B%5Cnpos%2Ex%20%3D%20cos%28%20rotation%20%29%20%2A%20position%2Ex%20%2D%20sin%28%20rotation%20%29%20%2A%20position%2Ey%3B%5Cnpos%2Ey%20%3D%20sin%28%20rotation%20%29%20%2A%20position%2Ex%20%2B%20cos%28%20rotation%20%29%20%2A%20position%2Ey%3B%5Cn%7D%5Cngl%5FPosition%20%3D%20vec4%28%20%28%20pos%20%2A%20scale%20%2B%20screenPosition%2Exy%20%29%2Exy%2C%20screenPosition%2Ez%2C%201%2E0%20%29%3B%5Cn%7D%22%2C%0AfragmentShader%3A%22precision%20mediump%20float%3B%5Cnuniform%20lowp%20int%20renderType%3B%5Cnuniform%20sampler2D%20map%3B%5Cnuniform%20sampler2D%20occlusionMap%3B%5Cnuniform%20float%20opacity%3B%5Cnuniform%20vec3%20color%3B%5Cnvarying%20vec2%20vUV%3B%5Cnvoid%20main%28%29%20%7B%5Cnif%28%20renderType%20%3D%3D%200%20%29%20%7B%5Cngl%5FFragColor%20%3D%20vec4%28%20texture2D%28%20map%2C%20vUV%20%29%2Ergb%2C%200%2E0%20%29%3B%5Cn%7D%20else%20if%28%20renderType%20%3D%3D%201%20%29%20%7B%5Cngl%5FFragColor%20%3D%20texture2D%28%20map%2C%20vUV%20%29%3B%5Cn%7D%20else%20%7B%5Cnfloat%20visibility%20%3D%20texture2D%28%20occlusionMap%2C%20vec2%28%200%2E5%2C%200%2E1%20%29%20%29%2Ea%3B%5Cnvisibility%20%2B%3D%20texture2D%28%20occlusionMap%2C%20vec2%28%200%2E9%2C%200%2E5%20%29%20%29%2Ea%3B%5Cnvisibility%20%2B%3D%20texture2D%28%20occlusionMap%2C%20vec2%28%200%2E5%2C%200%2E9%20%29%20%29%2Ea%3B%5Cnvisibility%20%2B%3D%20texture2D%28%20occlusionMap%2C%20vec2%28%200%2E1%2C%200%2E5%20%29%20%29%2Ea%3B%5Cnvisibility%20%3D%20%28%201%2E0%20%2D%20visibility%20%2F%204%2E0%20%29%3B%5Cnvec4%20texture%20%3D%20texture2D%28%20map%2C%20vUV%20%29%3B%5Cntexture%2Ea%20%2A%3D%20opacity%20%2A%20visibility%3B%5Cngl%5FFragColor%20%3D%20texture%3B%5Cngl%5FFragColor%2Ergb%20%2A%3D%20color%3B%5Cn%7D%5Cn%7D%22%7D%2C%0AK%3Dm%2EcreateProgram%28%29%2CL%3Dm%2EcreateShader%28m%2EFRAGMENT%5FSHADER%29%2CN%3Dm%2EcreateShader%28m%2EVERTEX%5FSHADER%29%2CT%3D%22precision%20%22%2Ba%2EgetPrecision%28%29%2B%22%20float%3B%5Cn%22%3Bm%2EshaderSource%28L%2CT%2BD%2EfragmentShader%29%3Bm%2EshaderSource%28N%2CT%2BD%2EvertexShader%29%3Bm%2EcompileShader%28L%29%3Bm%2EcompileShader%28N%29%3Bm%2EattachShader%28K%2CL%29%3Bm%2EattachShader%28K%2CN%29%3Bm%2ElinkProgram%28K%29%3Br%3DK%3Bp%3Dm%2EgetAttribLocation%28r%2C%22position%22%29%3Bq%3Dm%2EgetAttribLocation%28r%2C%22uv%22%29%3Bc%3Dm%2EgetUniformLocation%28r%2C%22renderType%22%29%3Bd%3Dm%2EgetUniformLocation%28r%2C%22map%22%29%3Be%3Dm%2EgetUniformLocation%28r%2C%22occlusionMap%22%29%3Bf%3Dm%2EgetUniformLocation%28r%2C%0A%22opacity%22%29%3Bg%3Dm%2EgetUniformLocation%28r%2C%22color%22%29%3Bh%3Dm%2EgetUniformLocation%28r%2C%22scale%22%29%3Bk%3Dm%2EgetUniformLocation%28r%2C%22rotation%22%29%3Bn%3Dm%2EgetUniformLocation%28r%2C%22screenPosition%22%29%7Dm%2EuseProgram%28r%29%3Bm%2EenableVertexAttribArray%28p%29%3Bm%2EenableVertexAttribArray%28q%29%3Bm%2Euniform1i%28e%2C0%29%3Bm%2Euniform1i%28d%2C1%29%3Bm%2EbindBuffer%28m%2EARRAY%5FBUFFER%2Ct%29%3Bm%2EvertexAttribPointer%28p%2C2%2Cm%2EFLOAT%2C%211%2C16%2C0%29%3Bm%2EvertexAttribPointer%28q%2C2%2Cm%2EFLOAT%2C%211%2C16%2C8%29%3Bm%2EbindBuffer%28m%2EELEMENT%5FARRAY%5FBUFFER%2Cs%29%3Bm%2Edisable%28m%2ECULL%5FFACE%29%3Bm%2EdepthMask%28%211%29%3BK%3D0%3Bfor%28L%3Db%2Elength%3BK%3CL%3BK%2B%2B%29if%28D%3D16%2Fz%2CA%2Eset%28D%2A%0AG%2CD%29%2CN%3Db%5BK%5D%2CC%2Eset%28N%2EmatrixWorld%2Eelements%5B12%5D%2CN%2EmatrixWorld%2Eelements%5B13%5D%2CN%2EmatrixWorld%2Eelements%5B14%5D%29%2CC%2EapplyMatrix4%28x%2EmatrixWorldInverse%29%2CC%2EapplyProjection%28x%2EprojectionMatrix%29%2CU%2Ecopy%28C%29%2CM%2Ex%3DU%2Ex%2AE%2BE%2CM%2Ey%3DU%2Ey%2Aw%2Bw%2Cu%7C%7C0%3CM%2Ex%26%26M%2Ex%3CF%26%260%3CM%2Ey%26%26M%2Ey%3Cz%29%7Bm%2EactiveTexture%28m%2ETEXTURE1%29%3Bm%2EbindTexture%28m%2ETEXTURE%5F2D%2Cv%29%3Bm%2EcopyTexImage2D%28m%2ETEXTURE%5F2D%2C0%2Cm%2ERGB%2CM%2Ex%2D8%2CM%2Ey%2D8%2C16%2C16%2C0%29%3Bm%2Euniform1i%28c%2C0%29%3Bm%2Euniform2f%28h%2CA%2Ex%2CA%2Ey%29%3Bm%2Euniform3f%28n%2CU%2Ex%2CU%2Ey%2CU%2Ez%29%3Bm%2Edisable%28m%2EBLEND%29%3Bm%2Eenable%28m%2EDEPTH%5FTEST%29%3Bm%2EdrawElements%28m%2ETRIANGLES%2C6%2Cm%2EUNSIGNED%5FSHORT%2C%0A0%29%3Bm%2EactiveTexture%28m%2ETEXTURE0%29%3Bm%2EbindTexture%28m%2ETEXTURE%5F2D%2Cy%29%3Bm%2EcopyTexImage2D%28m%2ETEXTURE%5F2D%2C0%2Cm%2ERGBA%2CM%2Ex%2D8%2CM%2Ey%2D8%2C16%2C16%2C0%29%3Bm%2Euniform1i%28c%2C1%29%3Bm%2Edisable%28m%2EDEPTH%5FTEST%29%3Bm%2EactiveTexture%28m%2ETEXTURE1%29%3Bm%2EbindTexture%28m%2ETEXTURE%5F2D%2Cv%29%3Bm%2EdrawElements%28m%2ETRIANGLES%2C6%2Cm%2EUNSIGNED%5FSHORT%2C0%29%3BN%2EpositionScreen%2Ecopy%28U%29%3BN%2EcustomUpdateCallback%3FN%2EcustomUpdateCallback%28N%29%3AN%2EupdateLensFlares%28%29%3Bm%2Euniform1i%28c%2C2%29%3Bm%2Eenable%28m%2EBLEND%29%3Bfor%28var%20T%3D0%2CQ%3DN%2ElensFlares%2Elength%3BT%3CQ%3BT%2B%2B%29%7Bvar%20W%3DN%2ElensFlares%5BT%5D%3B%2E001%3CW%2Eopacity%26%26%2E001%3CW%2Escale%26%26%28U%2Ex%3DW%2Ex%2C%0AU%2Ey%3DW%2Ey%2CU%2Ez%3DW%2Ez%2CD%3DW%2Esize%2AW%2Escale%2Fz%2CA%2Ex%3DD%2AG%2CA%2Ey%3DD%2Cm%2Euniform3f%28n%2CU%2Ex%2CU%2Ey%2CU%2Ez%29%2Cm%2Euniform2f%28h%2CA%2Ex%2CA%2Ey%29%2Cm%2Euniform1f%28k%2CW%2Erotation%29%2Cm%2Euniform1f%28f%2CW%2Eopacity%29%2Cm%2Euniform3f%28g%2CW%2Ecolor%2Er%2CW%2Ecolor%2Eg%2CW%2Ecolor%2Eb%29%2Ca%2EsetBlending%28W%2Eblending%2CW%2EblendEquation%2CW%2EblendSrc%2CW%2EblendDst%29%2Ca%2EsetTexture%28W%2Etexture%2C1%29%2Cm%2EdrawElements%28m%2ETRIANGLES%2C6%2Cm%2EUNSIGNED%5FSHORT%2C0%29%29%7D%7Dm%2Eenable%28m%2ECULL%5FFACE%29%3Bm%2Eenable%28m%2EDEPTH%5FTEST%29%3Bm%2EdepthMask%28%210%29%3Ba%2EresetGLState%28%29%7D%7D%7D%3B%0ATHREE%2EShadowMapPlugin%3Dfunction%28a%2Cb%2Cc%2Cd%29%7Bfunction%20e%28a%2Cb%2Cd%29%7Bif%28b%2Evisible%29%7Bvar%20g%3Dc%5Bb%2Eid%5D%3Bif%28g%26%26b%2EcastShadow%26%26%28%211%3D%3D%3Db%2EfrustumCulled%7C%7C%210%3D%3D%3Dp%2EintersectsObject%28b%29%29%29for%28var%20f%3D0%2Ch%3Dg%2Elength%3Bf%3Ch%3Bf%2B%2B%29%7Bvar%20k%3Dg%5Bf%5D%3Bb%2E%5FmodelViewMatrix%2EmultiplyMatrices%28d%2EmatrixWorldInverse%2Cb%2EmatrixWorld%29%3Br%2Epush%28k%29%7Df%3D0%3Bfor%28h%3Db%2Echildren%2Elength%3Bf%3Ch%3Bf%2B%2B%29e%28a%2Cb%2Echildren%5Bf%5D%2Cd%29%7D%7Dvar%20f%3Da%2Econtext%2Cg%2Ch%2Ck%2Cn%2Cp%3Dnew%20THREE%2EFrustum%2Cq%3Dnew%20THREE%2EMatrix4%2Cm%3Dnew%20THREE%2EVector3%2Ct%3Dnew%20THREE%2EVector3%2Cs%3Dnew%20THREE%2EVector3%2Cr%3D%5B%5D%2Cu%3DTHREE%2EShaderLib%2EdepthRGBA%2Cv%3DTHREE%2EUniformsUtils%2Eclone%28u%2Euniforms%29%3B%0Ag%3Dnew%20THREE%2EShaderMaterial%28%7Buniforms%3Av%2CvertexShader%3Au%2EvertexShader%2CfragmentShader%3Au%2EfragmentShader%7D%29%3Bh%3Dnew%20THREE%2EShaderMaterial%28%7Buniforms%3Av%2CvertexShader%3Au%2EvertexShader%2CfragmentShader%3Au%2EfragmentShader%2CmorphTargets%3A%210%7D%29%3Bk%3Dnew%20THREE%2EShaderMaterial%28%7Buniforms%3Av%2CvertexShader%3Au%2EvertexShader%2CfragmentShader%3Au%2EfragmentShader%2Cskinning%3A%210%7D%29%3Bn%3Dnew%20THREE%2EShaderMaterial%28%7Buniforms%3Av%2CvertexShader%3Au%2EvertexShader%2CfragmentShader%3Au%2EfragmentShader%2CmorphTargets%3A%210%2Cskinning%3A%210%7D%29%3Bg%2E%5FshadowPass%3D%210%3Bh%2E%5FshadowPass%3D%210%3Bk%2E%5FshadowPass%3D%0A%210%3Bn%2E%5FshadowPass%3D%210%3Bthis%2Erender%3Dfunction%28c%2Cv%29%7Bif%28%211%21%3D%3Da%2EshadowMapEnabled%29%7Bvar%20u%2CF%2Cz%2CG%2CE%2Cw%2CD%2CA%2CU%3D%5B%5D%3BG%3D0%3Bf%2EclearColor%281%2C1%2C1%2C1%29%3Bf%2Edisable%28f%2EBLEND%29%3Bf%2Eenable%28f%2ECULL%5FFACE%29%3Bf%2EfrontFace%28f%2ECCW%29%3Ba%2EshadowMapCullFace%3D%3D%3DTHREE%2ECullFaceFront%3Ff%2EcullFace%28f%2EFRONT%29%3Af%2EcullFace%28f%2EBACK%29%3Ba%2EsetDepthTest%28%210%29%3Bu%3D0%3Bfor%28F%3Db%2Elength%3Bu%3CF%3Bu%2B%2B%29if%28z%3Db%5Bu%5D%2Cz%2EcastShadow%29if%28z%20instanceof%20THREE%2EDirectionalLight%26%26z%2EshadowCascade%29for%28E%3D0%3BE%3Cz%2EshadowCascadeCount%3BE%2B%2B%29%7Bvar%20M%3Bif%28z%2EshadowCascadeArray%5BE%5D%29M%3Dz%2EshadowCascadeArray%5BE%5D%3Belse%7BD%3Dz%3Bvar%20K%3D%0AE%3BM%3Dnew%20THREE%2EDirectionalLight%3BM%2EisVirtual%3D%210%3BM%2EonlyShadow%3D%210%3BM%2EcastShadow%3D%210%3BM%2EshadowCameraNear%3DD%2EshadowCameraNear%3BM%2EshadowCameraFar%3DD%2EshadowCameraFar%3BM%2EshadowCameraLeft%3DD%2EshadowCameraLeft%3BM%2EshadowCameraRight%3DD%2EshadowCameraRight%3BM%2EshadowCameraBottom%3DD%2EshadowCameraBottom%3BM%2EshadowCameraTop%3DD%2EshadowCameraTop%3BM%2EshadowCameraVisible%3DD%2EshadowCameraVisible%3BM%2EshadowDarkness%3DD%2EshadowDarkness%3BM%2EshadowBias%3DD%2EshadowCascadeBias%5BK%5D%3BM%2EshadowMapWidth%3DD%2EshadowCascadeWidth%5BK%5D%3BM%2EshadowMapHeight%3DD%2EshadowCascadeHeight%5BK%5D%3B%0AM%2EpointsWorld%3D%5B%5D%3BM%2EpointsFrustum%3D%5B%5D%3BA%3DM%2EpointsWorld%3Bw%3DM%2EpointsFrustum%3Bfor%28var%20L%3D0%3B8%3EL%3BL%2B%2B%29A%5BL%5D%3Dnew%20THREE%2EVector3%2Cw%5BL%5D%3Dnew%20THREE%2EVector3%3BA%3DD%2EshadowCascadeNearZ%5BK%5D%3BD%3DD%2EshadowCascadeFarZ%5BK%5D%3Bw%5B0%5D%2Eset%28%2D1%2C%2D1%2CA%29%3Bw%5B1%5D%2Eset%281%2C%2D1%2CA%29%3Bw%5B2%5D%2Eset%28%2D1%2C1%2CA%29%3Bw%5B3%5D%2Eset%281%2C1%2CA%29%3Bw%5B4%5D%2Eset%28%2D1%2C%2D1%2CD%29%3Bw%5B5%5D%2Eset%281%2C%2D1%2CD%29%3Bw%5B6%5D%2Eset%28%2D1%2C1%2CD%29%3Bw%5B7%5D%2Eset%281%2C1%2CD%29%3BM%2EoriginalCamera%3Dv%3Bw%3Dnew%20THREE%2EGyroscope%3Bw%2Eposition%2Ecopy%28z%2EshadowCascadeOffset%29%3Bw%2Eadd%28M%29%3Bw%2Eadd%28M%2Etarget%29%3Bv%2Eadd%28w%29%3Bz%2EshadowCascadeArray%5BE%5D%3DM%3Bconsole%2Elog%28%22Created%20virtualLight%22%2CM%29%7DK%3D%0Az%3BA%3DE%3BD%3DK%2EshadowCascadeArray%5BA%5D%3BD%2Eposition%2Ecopy%28K%2Eposition%29%3BD%2Etarget%2Eposition%2Ecopy%28K%2Etarget%2Eposition%29%3BD%2ElookAt%28D%2Etarget%29%3BD%2EshadowCameraVisible%3DK%2EshadowCameraVisible%3BD%2EshadowDarkness%3DK%2EshadowDarkness%3BD%2EshadowBias%3DK%2EshadowCascadeBias%5BA%5D%3Bw%3DK%2EshadowCascadeNearZ%5BA%5D%3BK%3DK%2EshadowCascadeFarZ%5BA%5D%3BD%3DD%2EpointsFrustum%3BD%5B0%5D%2Ez%3Dw%3BD%5B1%5D%2Ez%3Dw%3BD%5B2%5D%2Ez%3Dw%3BD%5B3%5D%2Ez%3Dw%3BD%5B4%5D%2Ez%3DK%3BD%5B5%5D%2Ez%3DK%3BD%5B6%5D%2Ez%3DK%3BD%5B7%5D%2Ez%3DK%3BU%5BG%5D%3DM%3BG%2B%2B%7Delse%20U%5BG%5D%3Dz%2CG%2B%2B%3Bu%3D0%3Bfor%28F%3DU%2Elength%3Bu%3CF%3Bu%2B%2B%29%7Bz%3DU%5Bu%5D%3Bz%2EshadowMap%7C%7C%28E%3DTHREE%2ELinearFilter%2Ca%2EshadowMapType%3D%3D%3DTHREE%2EPCFSoftShadowMap%26%26%0A%28E%3DTHREE%2ENearestFilter%29%2Cz%2EshadowMap%3Dnew%20THREE%2EWebGLRenderTarget%28z%2EshadowMapWidth%2Cz%2EshadowMapHeight%2C%7BminFilter%3AE%2CmagFilter%3AE%2Cformat%3ATHREE%2ERGBAFormat%7D%29%2Cz%2EshadowMapSize%3Dnew%20THREE%2EVector2%28z%2EshadowMapWidth%2Cz%2EshadowMapHeight%29%2Cz%2EshadowMatrix%3Dnew%20THREE%2EMatrix4%29%3Bif%28%21z%2EshadowCamera%29%7Bif%28z%20instanceof%20THREE%2ESpotLight%29z%2EshadowCamera%3Dnew%20THREE%2EPerspectiveCamera%28z%2EshadowCameraFov%2Cz%2EshadowMapWidth%2Fz%2EshadowMapHeight%2Cz%2EshadowCameraNear%2Cz%2EshadowCameraFar%29%3Belse%20if%28z%20instanceof%20THREE%2EDirectionalLight%29z%2EshadowCamera%3Dnew%20THREE%2EOrthographicCamera%28z%2EshadowCameraLeft%2C%0Az%2EshadowCameraRight%2Cz%2EshadowCameraTop%2Cz%2EshadowCameraBottom%2Cz%2EshadowCameraNear%2Cz%2EshadowCameraFar%29%3Belse%7Bconsole%2Eerror%28%22Unsupported%20light%20type%20for%20shadow%22%29%3Bcontinue%7Dc%2Eadd%28z%2EshadowCamera%29%3B%210%3D%3D%3Dc%2EautoUpdate%26%26c%2EupdateMatrixWorld%28%29%7Dz%2EshadowCameraVisible%26%26%21z%2EcameraHelper%26%26%28z%2EcameraHelper%3Dnew%20THREE%2ECameraHelper%28z%2EshadowCamera%29%2Cc%2Eadd%28z%2EcameraHelper%29%29%3Bif%28z%2EisVirtual%26%26M%2EoriginalCamera%3D%3Dv%29%7BE%3Dv%3BG%3Dz%2EshadowCamera%3Bw%3Dz%2EpointsFrustum%3BD%3Dz%2EpointsWorld%3Bm%2Eset%28Infinity%2CInfinity%2CInfinity%29%3Bt%2Eset%28%2DInfinity%2C%2DInfinity%2C%2DInfinity%29%3B%0Afor%28K%3D0%3B8%3EK%3BK%2B%2B%29A%3DD%5BK%5D%2CA%2Ecopy%28w%5BK%5D%29%2CA%2Eunproject%28E%29%2CA%2EapplyMatrix4%28G%2EmatrixWorldInverse%29%2CA%2Ex%3Cm%2Ex%26%26%28m%2Ex%3DA%2Ex%29%2CA%2Ex%3Et%2Ex%26%26%28t%2Ex%3DA%2Ex%29%2CA%2Ey%3Cm%2Ey%26%26%28m%2Ey%3DA%2Ey%29%2CA%2Ey%3Et%2Ey%26%26%28t%2Ey%3DA%2Ey%29%2CA%2Ez%3Cm%2Ez%26%26%28m%2Ez%3DA%2Ez%29%2CA%2Ez%3Et%2Ez%26%26%28t%2Ez%3DA%2Ez%29%3BG%2Eleft%3Dm%2Ex%3BG%2Eright%3Dt%2Ex%3BG%2Etop%3Dt%2Ey%3BG%2Ebottom%3Dm%2Ey%3BG%2EupdateProjectionMatrix%28%29%7DG%3Dz%2EshadowMap%3Bw%3Dz%2EshadowMatrix%3BE%3Dz%2EshadowCamera%3BE%2Eposition%2EsetFromMatrixPosition%28z%2EmatrixWorld%29%3Bs%2EsetFromMatrixPosition%28z%2Etarget%2EmatrixWorld%29%3BE%2ElookAt%28s%29%3BE%2EupdateMatrixWorld%28%29%3BE%2EmatrixWorldInverse%2EgetInverse%28E%2EmatrixWorld%29%3Bz%2EcameraHelper%26%26%0A%28z%2EcameraHelper%2Evisible%3Dz%2EshadowCameraVisible%29%3Bz%2EshadowCameraVisible%26%26z%2EcameraHelper%2Eupdate%28%29%3Bw%2Eset%28%2E5%2C0%2C0%2C%2E5%2C0%2C%2E5%2C0%2C%2E5%2C0%2C0%2C%2E5%2C%2E5%2C0%2C0%2C0%2C1%29%3Bw%2Emultiply%28E%2EprojectionMatrix%29%3Bw%2Emultiply%28E%2EmatrixWorldInverse%29%3Bq%2EmultiplyMatrices%28E%2EprojectionMatrix%2CE%2EmatrixWorldInverse%29%3Bp%2EsetFromMatrix%28q%29%3Ba%2EsetRenderTarget%28G%29%3Ba%2Eclear%28%29%3Br%2Elength%3D0%3Be%28c%2Cc%2CE%29%3Bz%3D0%3Bfor%28G%3Dr%2Elength%3Bz%3CG%3Bz%2B%2B%29D%3Dr%5Bz%5D%2Cw%3DD%2Eobject%2CD%3DD%2Ebuffer%2CK%3Dw%2Ematerial%20instanceof%20THREE%2EMeshFaceMaterial%3Fw%2Ematerial%2Ematerials%5B0%5D%3Aw%2Ematerial%2CA%3Dvoid%200%21%3D%3Dw%2Egeometry%2EmorphTargets%26%26%0A0%3Cw%2Egeometry%2EmorphTargets%2Elength%26%26K%2EmorphTargets%2CL%3Dw%20instanceof%20THREE%2ESkinnedMesh%26%26K%2Eskinning%2CA%3Dw%2EcustomDepthMaterial%3Fw%2EcustomDepthMaterial%3AL%3FA%3Fn%3Ak%3AA%3Fh%3Ag%2Ca%2EsetMaterialFaces%28K%29%2CD%20instanceof%20THREE%2EBufferGeometry%3Fa%2ErenderBufferDirect%28E%2Cb%2Cnull%2CA%2CD%2Cw%29%3Aa%2ErenderBuffer%28E%2Cb%2Cnull%2CA%2CD%2Cw%29%3Bz%3D0%3Bfor%28G%3Dd%2Elength%3Bz%3CG%3Bz%2B%2B%29D%3Dd%5Bz%5D%2Cw%3DD%2Eobject%2Cw%2Evisible%26%26w%2EcastShadow%26%26%28w%2E%5FmodelViewMatrix%2EmultiplyMatrices%28E%2EmatrixWorldInverse%2Cw%2EmatrixWorld%29%2Ca%2ErenderImmediateObject%28E%2Cb%2Cnull%2Cg%2Cw%29%29%7Du%3Da%2EgetClearColor%28%29%3BF%3Da%2EgetClearAlpha%28%29%3Bf%2EclearColor%28u%2Er%2C%0Au%2Eg%2Cu%2Eb%2CF%29%3Bf%2Eenable%28f%2EBLEND%29%3Ba%2EshadowMapCullFace%3D%3D%3DTHREE%2ECullFaceFront%26%26f%2EcullFace%28f%2EBACK%29%3Ba%2EresetGLState%28%29%7D%7D%7D%3B%0ATHREE%2ESpritePlugin%3Dfunction%28a%2Cb%29%7Bvar%20c%2Cd%2Ce%2Cf%2Cg%2Ch%2Ck%2Cn%2Cp%2Cq%2Cm%2Ct%2Cs%2Cr%2Cu%2Cv%2Cy%3Bfunction%20C%28a%2Cb%29%7Breturn%20a%2Ez%21%3D%3Db%2Ez%3Fb%2Ez%2Da%2Ez%3Ab%2Eid%2Da%2Eid%7Dvar%20x%3Da%2Econtext%2CF%2Cz%2CG%2CE%2Cw%3Dnew%20THREE%2EVector3%2CD%3Dnew%20THREE%2EQuaternion%2CA%3Dnew%20THREE%2EVector3%3Bthis%2Erender%3Dfunction%28U%2CM%29%7Bif%280%21%3D%3Db%2Elength%29%7Bif%28void%200%3D%3D%3DG%29%7Bvar%20K%3Dnew%20Float32Array%28%5B%2D%2E5%2C%2D%2E5%2C0%2C0%2C%2E5%2C%2D%2E5%2C1%2C0%2C%2E5%2C%2E5%2C1%2C1%2C%2D%2E5%2C%2E5%2C0%2C1%5D%29%2CL%3Dnew%20Uint16Array%28%5B0%2C1%2C2%2C0%2C2%2C3%5D%29%3BF%3Dx%2EcreateBuffer%28%29%3Bz%3Dx%2EcreateBuffer%28%29%3Bx%2EbindBuffer%28x%2EARRAY%5FBUFFER%2CF%29%3Bx%2EbufferData%28x%2EARRAY%5FBUFFER%2CK%2Cx%2ESTATIC%5FDRAW%29%3Bx%2EbindBuffer%28x%2EELEMENT%5FARRAY%5FBUFFER%2C%0Az%29%3Bx%2EbufferData%28x%2EELEMENT%5FARRAY%5FBUFFER%2CL%2Cx%2ESTATIC%5FDRAW%29%3Bvar%20K%3Dx%2EcreateProgram%28%29%2CL%3Dx%2EcreateShader%28x%2EVERTEX%5FSHADER%29%2CN%3Dx%2EcreateShader%28x%2EFRAGMENT%5FSHADER%29%3Bx%2EshaderSource%28L%2C%5B%22precision%20%22%2Ba%2EgetPrecision%28%29%2B%22%20float%3B%22%2C%22uniform%20mat4%20modelViewMatrix%3B%5Cnuniform%20mat4%20projectionMatrix%3B%5Cnuniform%20float%20rotation%3B%5Cnuniform%20vec2%20scale%3B%5Cnuniform%20vec2%20uvOffset%3B%5Cnuniform%20vec2%20uvScale%3B%5Cnattribute%20vec2%20position%3B%5Cnattribute%20vec2%20uv%3B%5Cnvarying%20vec2%20vUV%3B%5Cnvoid%20main%28%29%20%7B%5CnvUV%20%3D%20uvOffset%20%2B%20uv%20%2A%20uvScale%3B%5Cnvec2%20alignedPosition%20%3D%20position%20%2A%20scale%3B%5Cnvec2%20rotatedPosition%3B%5CnrotatedPosition%2Ex%20%3D%20cos%28%20rotation%20%29%20%2A%20alignedPosition%2Ex%20%2D%20sin%28%20rotation%20%29%20%2A%20alignedPosition%2Ey%3B%5CnrotatedPosition%2Ey%20%3D%20sin%28%20rotation%20%29%20%2A%20alignedPosition%2Ex%20%2B%20cos%28%20rotation%20%29%20%2A%20alignedPosition%2Ey%3B%5Cnvec4%20finalPosition%3B%5CnfinalPosition%20%3D%20modelViewMatrix%20%2A%20vec4%28%200%2E0%2C%200%2E0%2C%200%2E0%2C%201%2E0%20%29%3B%5CnfinalPosition%2Exy%20%2B%3D%20rotatedPosition%3B%5CnfinalPosition%20%3D%20projectionMatrix%20%2A%20finalPosition%3B%5Cngl%5FPosition%20%3D%20finalPosition%3B%5Cn%7D%22%5D%2Ejoin%28%22%5Cn%22%29%29%3B%0Ax%2EshaderSource%28N%2C%5B%22precision%20%22%2Ba%2EgetPrecision%28%29%2B%22%20float%3B%22%2C%22uniform%20vec3%20color%3B%5Cnuniform%20sampler2D%20map%3B%5Cnuniform%20float%20opacity%3B%5Cnuniform%20int%20fogType%3B%5Cnuniform%20vec3%20fogColor%3B%5Cnuniform%20float%20fogDensity%3B%5Cnuniform%20float%20fogNear%3B%5Cnuniform%20float%20fogFar%3B%5Cnuniform%20float%20alphaTest%3B%5Cnvarying%20vec2%20vUV%3B%5Cnvoid%20main%28%29%20%7B%5Cnvec4%20texture%20%3D%20texture2D%28%20map%2C%20vUV%20%29%3B%5Cnif%20%28%20texture%2Ea%20%3C%20alphaTest%20%29%20discard%3B%5Cngl%5FFragColor%20%3D%20vec4%28%20color%20%2A%20texture%2Exyz%2C%20texture%2Ea%20%2A%20opacity%20%29%3B%5Cnif%20%28%20fogType%20%3E%200%20%29%20%7B%5Cnfloat%20depth%20%3D%20gl%5FFragCoord%2Ez%20%2F%20gl%5FFragCoord%2Ew%3B%5Cnfloat%20fogFactor%20%3D%200%2E0%3B%5Cnif%20%28%20fogType%20%3D%3D%201%20%29%20%7B%5CnfogFactor%20%3D%20smoothstep%28%20fogNear%2C%20fogFar%2C%20depth%20%29%3B%5Cn%7D%20else%20%7B%5Cnconst%20float%20LOG2%20%3D%201%2E442695%3B%5Cnfloat%20fogFactor%20%3D%20exp2%28%20%2D%20fogDensity%20%2A%20fogDensity%20%2A%20depth%20%2A%20depth%20%2A%20LOG2%20%29%3B%5CnfogFactor%20%3D%201%2E0%20%2D%20clamp%28%20fogFactor%2C%200%2E0%2C%201%2E0%20%29%3B%5Cn%7D%5Cngl%5FFragColor%20%3D%20mix%28%20gl%5FFragColor%2C%20vec4%28%20fogColor%2C%20gl%5FFragColor%2Ew%20%29%2C%20fogFactor%20%29%3B%5Cn%7D%5Cn%7D%22%5D%2Ejoin%28%22%5Cn%22%29%29%3B%0Ax%2EcompileShader%28L%29%3Bx%2EcompileShader%28N%29%3Bx%2EattachShader%28K%2CL%29%3Bx%2EattachShader%28K%2CN%29%3Bx%2ElinkProgram%28K%29%3BG%3DK%3Bv%3Dx%2EgetAttribLocation%28G%2C%22position%22%29%3By%3Dx%2EgetAttribLocation%28G%2C%22uv%22%29%3Bc%3Dx%2EgetUniformLocation%28G%2C%22uvOffset%22%29%3Bd%3Dx%2EgetUniformLocation%28G%2C%22uvScale%22%29%3Be%3Dx%2EgetUniformLocation%28G%2C%22rotation%22%29%3Bf%3Dx%2EgetUniformLocation%28G%2C%22scale%22%29%3Bg%3Dx%2EgetUniformLocation%28G%2C%22color%22%29%3Bh%3Dx%2EgetUniformLocation%28G%2C%22map%22%29%3Bk%3Dx%2EgetUniformLocation%28G%2C%22opacity%22%29%3Bn%3Dx%2EgetUniformLocation%28G%2C%22modelViewMatrix%22%29%3Bp%3Dx%2EgetUniformLocation%28G%2C%22projectionMatrix%22%29%3Bq%3D%0Ax%2EgetUniformLocation%28G%2C%22fogType%22%29%3Bm%3Dx%2EgetUniformLocation%28G%2C%22fogDensity%22%29%3Bt%3Dx%2EgetUniformLocation%28G%2C%22fogNear%22%29%3Bs%3Dx%2EgetUniformLocation%28G%2C%22fogFar%22%29%3Br%3Dx%2EgetUniformLocation%28G%2C%22fogColor%22%29%3Bu%3Dx%2EgetUniformLocation%28G%2C%22alphaTest%22%29%3BK%3Ddocument%2EcreateElement%28%22canvas%22%29%3BK%2Ewidth%3D8%3BK%2Eheight%3D8%3BL%3DK%2EgetContext%28%222d%22%29%3BL%2EfillStyle%3D%22white%22%3BL%2EfillRect%280%2C0%2C8%2C8%29%3BE%3Dnew%20THREE%2ETexture%28K%29%3BE%2EneedsUpdate%3D%210%7Dx%2EuseProgram%28G%29%3Bx%2EenableVertexAttribArray%28v%29%3Bx%2EenableVertexAttribArray%28y%29%3Bx%2Edisable%28x%2ECULL%5FFACE%29%3Bx%2Eenable%28x%2EBLEND%29%3Bx%2EbindBuffer%28x%2EARRAY%5FBUFFER%2C%0AF%29%3Bx%2EvertexAttribPointer%28v%2C2%2Cx%2EFLOAT%2C%211%2C16%2C0%29%3Bx%2EvertexAttribPointer%28y%2C2%2Cx%2EFLOAT%2C%211%2C16%2C8%29%3Bx%2EbindBuffer%28x%2EELEMENT%5FARRAY%5FBUFFER%2Cz%29%3Bx%2EuniformMatrix4fv%28p%2C%211%2CM%2EprojectionMatrix%2Eelements%29%3Bx%2EactiveTexture%28x%2ETEXTURE0%29%3Bx%2Euniform1i%28h%2C0%29%3BL%3DK%3D0%3B%28N%3DU%2Efog%29%3F%28x%2Euniform3f%28r%2CN%2Ecolor%2Er%2CN%2Ecolor%2Eg%2CN%2Ecolor%2Eb%29%2CN%20instanceof%20THREE%2EFog%3F%28x%2Euniform1f%28t%2CN%2Enear%29%2Cx%2Euniform1f%28s%2CN%2Efar%29%2Cx%2Euniform1i%28q%2C1%29%2CL%3DK%3D1%29%3AN%20instanceof%20THREE%2EFogExp2%26%26%28x%2Euniform1f%28m%2CN%2Edensity%29%2Cx%2Euniform1i%28q%2C2%29%2CL%3DK%3D2%29%29%3A%28x%2Euniform1i%28q%2C0%29%2CL%3DK%3D0%29%3Bfor%28var%20N%3D0%2CT%3Db%2Elength%3BN%3C%0AT%3BN%2B%2B%29%7Bvar%20Q%3Db%5BN%5D%3BQ%2E%5FmodelViewMatrix%2EmultiplyMatrices%28M%2EmatrixWorldInverse%2CQ%2EmatrixWorld%29%3BQ%2Ez%3D%2DQ%2E%5FmodelViewMatrix%2Eelements%5B14%5D%7Db%2Esort%28C%29%3Bfor%28var%20W%3D%5B%5D%2CN%3D0%2CT%3Db%2Elength%3BN%3CT%3BN%2B%2B%29%7Bvar%20Q%3Db%5BN%5D%2CO%3DQ%2Ematerial%3Bx%2Euniform1f%28u%2CO%2EalphaTest%29%3Bx%2EuniformMatrix4fv%28n%2C%211%2CQ%2E%5FmodelViewMatrix%2Eelements%29%3BQ%2EmatrixWorld%2Edecompose%28w%2CD%2CA%29%3BW%5B0%5D%3DA%2Ex%3BW%5B1%5D%3DA%2Ey%3BQ%3D0%3BU%2Efog%26%26O%2Efog%26%26%28Q%3DL%29%3BK%21%3D%3DQ%26%26%28x%2Euniform1i%28q%2CQ%29%2CK%3DQ%29%3Bnull%21%3D%3DO%2Emap%3F%28x%2Euniform2f%28c%2CO%2Emap%2Eoffset%2Ex%2CO%2Emap%2Eoffset%2Ey%29%2Cx%2Euniform2f%28d%2CO%2Emap%2Erepeat%2Ex%2CO%2Emap%2Erepeat%2Ey%29%29%3A%28x%2Euniform2f%28c%2C%0A0%2C0%29%2Cx%2Euniform2f%28d%2C1%2C1%29%29%3Bx%2Euniform1f%28k%2CO%2Eopacity%29%3Bx%2Euniform3f%28g%2CO%2Ecolor%2Er%2CO%2Ecolor%2Eg%2CO%2Ecolor%2Eb%29%3Bx%2Euniform1f%28e%2CO%2Erotation%29%3Bx%2Euniform2fv%28f%2CW%29%3Ba%2EsetBlending%28O%2Eblending%2CO%2EblendEquation%2CO%2EblendSrc%2CO%2EblendDst%29%3Ba%2EsetDepthTest%28O%2EdepthTest%29%3Ba%2EsetDepthWrite%28O%2EdepthWrite%29%3BO%2Emap%26%26O%2Emap%2Eimage%26%26O%2Emap%2Eimage%2Ewidth%3Fa%2EsetTexture%28O%2Emap%2C0%29%3Aa%2EsetTexture%28E%2C0%29%3Bx%2EdrawElements%28x%2ETRIANGLES%2C6%2Cx%2EUNSIGNED%5FSHORT%2C0%29%7Dx%2Eenable%28x%2ECULL%5FFACE%29%3Ba%2EresetGLState%28%29%7D%7D%7D%3B%0ATHREE%2EGeometryUtils%3D%7Bmerge%3Afunction%28a%2Cb%2Cc%29%7Bconsole%2Ewarn%28%22THREE%2EGeometryUtils%3A%20%2Emerge%28%29%20has%20been%20moved%20to%20Geometry%2E%20Use%20geometry%2Emerge%28%20geometry2%2C%20matrix%2C%20materialIndexOffset%20%29%20instead%2E%22%29%3Bvar%20d%3Bb%20instanceof%20THREE%2EMesh%26%26%28b%2EmatrixAutoUpdate%26%26b%2EupdateMatrix%28%29%2Cd%3Db%2Ematrix%2Cb%3Db%2Egeometry%29%3Ba%2Emerge%28b%2Cd%2Cc%29%7D%2Ccenter%3Afunction%28a%29%7Bconsole%2Ewarn%28%22THREE%2EGeometryUtils%3A%20%2Ecenter%28%29%20has%20been%20moved%20to%20Geometry%2E%20Use%20geometry%2Ecenter%28%29%20instead%2E%22%29%3Breturn%20a%2Ecenter%28%29%7D%7D%3B%0ATHREE%2EImageUtils%3D%7BcrossOrigin%3Avoid%200%2CloadTexture%3Afunction%28a%2Cb%2Cc%2Cd%29%7Bvar%20e%3Dnew%20THREE%2EImageLoader%3Be%2EcrossOrigin%3Dthis%2EcrossOrigin%3Bvar%20f%3Dnew%20THREE%2ETexture%28void%200%2Cb%29%3Be%2Eload%28a%2Cfunction%28a%29%7Bf%2Eimage%3Da%3Bf%2EneedsUpdate%3D%210%3Bc%26%26c%28f%29%7D%2Cvoid%200%2Cfunction%28a%29%7Bd%26%26d%28a%29%7D%29%3Bf%2EsourceFile%3Da%3Breturn%20f%7D%2CloadTextureCube%3Afunction%28a%2Cb%2Cc%2Cd%29%7Bvar%20e%3Dnew%20THREE%2EImageLoader%3Be%2EcrossOrigin%3Dthis%2EcrossOrigin%3Bvar%20f%3Dnew%20THREE%2ECubeTexture%28%5B%5D%2Cb%29%3Bf%2EflipY%3D%211%3Bvar%20g%3D0%3Bb%3Dfunction%28b%29%7Be%2Eload%28a%5Bb%5D%2Cfunction%28a%29%7Bf%2Eimages%5Bb%5D%3Da%3Bg%2B%3D1%3B6%3D%3D%3Dg%26%26%28f%2EneedsUpdate%3D%210%2Cc%26%26%0Ac%28f%29%29%7D%2Cvoid%200%2Cd%29%7D%3Bfor%28var%20h%3D0%2Ck%3Da%2Elength%3Bh%3Ck%3B%2B%2Bh%29b%28h%29%3Breturn%20f%7D%2CloadCompressedTexture%3Afunction%28%29%7Bconsole%2Eerror%28%22THREE%2EImageUtils%2EloadCompressedTexture%20has%20been%20removed%2E%20Use%20THREE%2EDDSLoader%20instead%2E%22%29%7D%2CloadCompressedTextureCube%3Afunction%28%29%7Bconsole%2Eerror%28%22THREE%2EImageUtils%2EloadCompressedTextureCube%20has%20been%20removed%2E%20Use%20THREE%2EDDSLoader%20instead%2E%22%29%7D%2CgetNormalMap%3Afunction%28a%2Cb%29%7Bvar%20c%3Dfunction%28a%29%7Bvar%20b%3DMath%2Esqrt%28a%5B0%5D%2Aa%5B0%5D%2Ba%5B1%5D%2Aa%5B1%5D%2Ba%5B2%5D%2Aa%5B2%5D%29%3Breturn%5Ba%5B0%5D%2Fb%2Ca%5B1%5D%2Fb%2Ca%5B2%5D%2Fb%5D%7D%3Bb%7C%3D1%3Bvar%20d%3Da%2Ewidth%2Ce%3Da%2Eheight%2Cf%3Ddocument%2EcreateElement%28%22canvas%22%29%3B%0Af%2Ewidth%3Dd%3Bf%2Eheight%3De%3Bvar%20g%3Df%2EgetContext%28%222d%22%29%3Bg%2EdrawImage%28a%2C0%2C0%29%3Bfor%28var%20h%3Dg%2EgetImageData%280%2C0%2Cd%2Ce%29%2Edata%2Ck%3Dg%2EcreateImageData%28d%2Ce%29%2Cn%3Dk%2Edata%2Cp%3D0%3Bp%3Cd%3Bp%2B%2B%29for%28var%20q%3D0%3Bq%3Ce%3Bq%2B%2B%29%7Bvar%20m%3D0%3Eq%2D1%3F0%3Aq%2D1%2Ct%3Dq%2B1%3Ee%2D1%3Fe%2D1%3Aq%2B1%2Cs%3D0%3Ep%2D1%3F0%3Ap%2D1%2Cr%3Dp%2B1%3Ed%2D1%3Fd%2D1%3Ap%2B1%2Cu%3D%5B%5D%2Cv%3D%5B0%2C0%2Ch%5B4%2A%28q%2Ad%2Bp%29%5D%2F255%2Ab%5D%3Bu%2Epush%28%5B%2D1%2C0%2Ch%5B4%2A%28q%2Ad%2Bs%29%5D%2F255%2Ab%5D%29%3Bu%2Epush%28%5B%2D1%2C%2D1%2Ch%5B4%2A%28m%2Ad%2Bs%29%5D%2F255%2Ab%5D%29%3Bu%2Epush%28%5B0%2C%2D1%2Ch%5B4%2A%28m%2Ad%2Bp%29%5D%2F255%2Ab%5D%29%3Bu%2Epush%28%5B1%2C%2D1%2Ch%5B4%2A%28m%2Ad%2Br%29%5D%2F255%2Ab%5D%29%3Bu%2Epush%28%5B1%2C0%2Ch%5B4%2A%28q%2Ad%2Br%29%5D%2F255%2Ab%5D%29%3Bu%2Epush%28%5B1%2C1%2Ch%5B4%2A%28t%2Ad%2Br%29%5D%2F255%2Ab%5D%29%3Bu%2Epush%28%5B0%2C1%2Ch%5B4%2A%28t%2Ad%2Bp%29%5D%2F255%2A%0Ab%5D%29%3Bu%2Epush%28%5B%2D1%2C1%2Ch%5B4%2A%28t%2Ad%2Bs%29%5D%2F255%2Ab%5D%29%3Bm%3D%5B%5D%3Bs%3Du%2Elength%3Bfor%28t%3D0%3Bt%3Cs%3Bt%2B%2B%29%7Bvar%20r%3Du%5Bt%5D%2Cy%3Du%5B%28t%2B1%29%25s%5D%2Cr%3D%5Br%5B0%5D%2Dv%5B0%5D%2Cr%5B1%5D%2Dv%5B1%5D%2Cr%5B2%5D%2Dv%5B2%5D%5D%2Cy%3D%5By%5B0%5D%2Dv%5B0%5D%2Cy%5B1%5D%2Dv%5B1%5D%2Cy%5B2%5D%2Dv%5B2%5D%5D%3Bm%2Epush%28c%28%5Br%5B1%5D%2Ay%5B2%5D%2Dr%5B2%5D%2Ay%5B1%5D%2Cr%5B2%5D%2Ay%5B0%5D%2Dr%5B0%5D%2Ay%5B2%5D%2Cr%5B0%5D%2Ay%5B1%5D%2Dr%5B1%5D%2Ay%5B0%5D%5D%29%29%7Du%3D%5B0%2C0%2C0%5D%3Bfor%28t%3D0%3Bt%3Cm%2Elength%3Bt%2B%2B%29u%5B0%5D%2B%3Dm%5Bt%5D%5B0%5D%2Cu%5B1%5D%2B%3Dm%5Bt%5D%5B1%5D%2Cu%5B2%5D%2B%3Dm%5Bt%5D%5B2%5D%3Bu%5B0%5D%2F%3Dm%2Elength%3Bu%5B1%5D%2F%3Dm%2Elength%3Bu%5B2%5D%2F%3Dm%2Elength%3Bv%3D4%2A%28q%2Ad%2Bp%29%3Bn%5Bv%5D%3D%28u%5B0%5D%2B1%29%2F2%2A255%7C0%3Bn%5Bv%2B1%5D%3D%28u%5B1%5D%2B1%29%2F2%2A255%7C0%3Bn%5Bv%2B2%5D%3D255%2Au%5B2%5D%7C0%3Bn%5Bv%2B3%5D%3D255%7Dg%2EputImageData%28k%2C0%2C0%29%3Breturn%20f%7D%2CgenerateDataTexture%3Afunction%28a%2C%0Ab%2Cc%29%7Bvar%20d%3Da%2Ab%2Ce%3Dnew%20Uint8Array%283%2Ad%29%2Cf%3DMath%2Efloor%28255%2Ac%2Er%29%2Cg%3DMath%2Efloor%28255%2Ac%2Eg%29%3Bc%3DMath%2Efloor%28255%2Ac%2Eb%29%3Bfor%28var%20h%3D0%3Bh%3Cd%3Bh%2B%2B%29e%5B3%2Ah%5D%3Df%2Ce%5B3%2Ah%2B1%5D%3Dg%2Ce%5B3%2Ah%2B2%5D%3Dc%3Ba%3Dnew%20THREE%2EDataTexture%28e%2Ca%2Cb%2CTHREE%2ERGBFormat%29%3Ba%2EneedsUpdate%3D%210%3Breturn%20a%7D%7D%3B%0ATHREE%2ESceneUtils%3D%7BcreateMultiMaterialObject%3Afunction%28a%2Cb%29%7Bfor%28var%20c%3Dnew%20THREE%2EObject3D%2Cd%3D0%2Ce%3Db%2Elength%3Bd%3Ce%3Bd%2B%2B%29c%2Eadd%28new%20THREE%2EMesh%28a%2Cb%5Bd%5D%29%29%3Breturn%20c%7D%2Cdetach%3Afunction%28a%2Cb%2Cc%29%7Ba%2EapplyMatrix%28b%2EmatrixWorld%29%3Bb%2Eremove%28a%29%3Bc%2Eadd%28a%29%7D%2Cattach%3Afunction%28a%2Cb%2Cc%29%7Bvar%20d%3Dnew%20THREE%2EMatrix4%3Bd%2EgetInverse%28c%2EmatrixWorld%29%3Ba%2EapplyMatrix%28d%29%3Bb%2Eremove%28a%29%3Bc%2Eadd%28a%29%7D%7D%3B%0ATHREE%2EFontUtils%3D%7Bfaces%3A%7B%7D%2Cface%3A%22helvetiker%22%2Cweight%3A%22normal%22%2Cstyle%3A%22normal%22%2Csize%3A150%2Cdivisions%3A10%2CgetFace%3Afunction%28%29%7Btry%7Breturn%20this%2Efaces%5Bthis%2Eface%5D%5Bthis%2Eweight%5D%5Bthis%2Estyle%5D%7Dcatch%28a%29%7Bthrow%22The%20font%20%22%2Bthis%2Eface%2B%22%20with%20%22%2Bthis%2Eweight%2B%22%20weight%20and%20%22%2Bthis%2Estyle%2B%22%20style%20is%20missing%2E%22%3B%7D%7D%2CloadFace%3Afunction%28a%29%7Bvar%20b%3Da%2EfamilyName%2EtoLowerCase%28%29%3Bthis%2Efaces%5Bb%5D%3Dthis%2Efaces%5Bb%5D%7C%7C%7B%7D%3Bthis%2Efaces%5Bb%5D%5Ba%2EcssFontWeight%5D%3Dthis%2Efaces%5Bb%5D%5Ba%2EcssFontWeight%5D%7C%7C%7B%7D%3Bthis%2Efaces%5Bb%5D%5Ba%2EcssFontWeight%5D%5Ba%2EcssFontStyle%5D%3Da%3Breturn%20this%2Efaces%5Bb%5D%5Ba%2EcssFontWeight%5D%5Ba%2EcssFontStyle%5D%3D%0Aa%7D%2CdrawText%3Afunction%28a%29%7Bvar%20b%3Dthis%2EgetFace%28%29%2Cc%3Dthis%2Esize%2Fb%2Eresolution%2Cd%3D0%2Ce%3DString%28a%29%2Esplit%28%22%22%29%2Cf%3De%2Elength%2Cg%3D%5B%5D%3Bfor%28a%3D0%3Ba%3Cf%3Ba%2B%2B%29%7Bvar%20h%3Dnew%20THREE%2EPath%2Ch%3Dthis%2EextractGlyphPoints%28e%5Ba%5D%2Cb%2Cc%2Cd%2Ch%29%2Cd%3Dd%2Bh%2Eoffset%3Bg%2Epush%28h%2Epath%29%7Dreturn%7Bpaths%3Ag%2Coffset%3Ad%2F2%7D%7D%2CextractGlyphPoints%3Afunction%28a%2Cb%2Cc%2Cd%2Ce%29%7Bvar%20f%3D%5B%5D%2Cg%2Ch%2Ck%2Cn%2Cp%2Cq%2Cm%2Ct%2Cs%2Cr%2Cu%2Cv%3Db%2Eglyphs%5Ba%5D%7C%7Cb%2Eglyphs%5B%22%3F%22%5D%3Bif%28v%29%7Bif%28v%2Eo%29for%28b%3Dv%2E%5FcachedOutline%7C%7C%28v%2E%5FcachedOutline%3Dv%2Eo%2Esplit%28%22%20%22%29%29%2Cn%3Db%2Elength%2Ca%3D0%3Ba%3Cn%3B%29switch%28k%3Db%5Ba%2B%2B%5D%2Ck%29%7Bcase%20%22m%22%3Ak%3Db%5Ba%2B%2B%5D%2Ac%2Bd%3Bp%3Db%5Ba%2B%2B%5D%2Ac%3Be%2EmoveTo%28k%2Cp%29%3B%0Abreak%3Bcase%20%22l%22%3Ak%3Db%5Ba%2B%2B%5D%2Ac%2Bd%3Bp%3Db%5Ba%2B%2B%5D%2Ac%3Be%2ElineTo%28k%2Cp%29%3Bbreak%3Bcase%20%22q%22%3Ak%3Db%5Ba%2B%2B%5D%2Ac%2Bd%3Bp%3Db%5Ba%2B%2B%5D%2Ac%3Bt%3Db%5Ba%2B%2B%5D%2Ac%2Bd%3Bs%3Db%5Ba%2B%2B%5D%2Ac%3Be%2EquadraticCurveTo%28t%2Cs%2Ck%2Cp%29%3Bif%28g%3Df%5Bf%2Elength%2D1%5D%29for%28q%3Dg%2Ex%2Cm%3Dg%2Ey%2Cg%3D1%2Ch%3Dthis%2Edivisions%3Bg%3C%3Dh%3Bg%2B%2B%29%7Bvar%20y%3Dg%2Fh%3BTHREE%2EShape%2EUtils%2Eb2%28y%2Cq%2Ct%2Ck%29%3BTHREE%2EShape%2EUtils%2Eb2%28y%2Cm%2Cs%2Cp%29%7Dbreak%3Bcase%20%22b%22%3Aif%28k%3Db%5Ba%2B%2B%5D%2Ac%2Bd%2Cp%3Db%5Ba%2B%2B%5D%2Ac%2Ct%3Db%5Ba%2B%2B%5D%2Ac%2Bd%2Cs%3Db%5Ba%2B%2B%5D%2Ac%2Cr%3Db%5Ba%2B%2B%5D%2Ac%2Bd%2Cu%3Db%5Ba%2B%2B%5D%2Ac%2Ce%2EbezierCurveTo%28t%2Cs%2Cr%2Cu%2Ck%2Cp%29%2Cg%3Df%5Bf%2Elength%2D1%5D%29for%28q%3Dg%2Ex%2Cm%3Dg%2Ey%2Cg%3D1%2Ch%3Dthis%2Edivisions%3Bg%3C%3Dh%3Bg%2B%2B%29y%3Dg%2Fh%2CTHREE%2EShape%2EUtils%2Eb3%28y%2Cq%2Ct%2Cr%2Ck%29%2CTHREE%2EShape%2EUtils%2Eb3%28y%2C%0Am%2Cs%2Cu%2Cp%29%7Dreturn%7Boffset%3Av%2Eha%2Ac%2Cpath%3Ae%7D%7D%7D%7D%3B%0ATHREE%2EFontUtils%2EgenerateShapes%3Dfunction%28a%2Cb%29%7Bb%3Db%7C%7C%7B%7D%3Bvar%20c%3Dvoid%200%21%3D%3Db%2EcurveSegments%3Fb%2EcurveSegments%3A4%2Cd%3Dvoid%200%21%3D%3Db%2Efont%3Fb%2Efont%3A%22helvetiker%22%2Ce%3Dvoid%200%21%3D%3Db%2Eweight%3Fb%2Eweight%3A%22normal%22%2Cf%3Dvoid%200%21%3D%3Db%2Estyle%3Fb%2Estyle%3A%22normal%22%3BTHREE%2EFontUtils%2Esize%3Dvoid%200%21%3D%3Db%2Esize%3Fb%2Esize%3A100%3BTHREE%2EFontUtils%2Edivisions%3Dc%3BTHREE%2EFontUtils%2Eface%3Dd%3BTHREE%2EFontUtils%2Eweight%3De%3BTHREE%2EFontUtils%2Estyle%3Df%3Bc%3DTHREE%2EFontUtils%2EdrawText%28a%29%2Epaths%3Bd%3D%5B%5D%3Be%3D0%3Bfor%28f%3Dc%2Elength%3Be%3Cf%3Be%2B%2B%29Array%2Eprototype%2Epush%2Eapply%28d%2Cc%5Be%5D%2EtoShapes%28%29%29%3Breturn%20d%7D%3B%0A%28function%28a%29%7Bvar%20b%3Dfunction%28a%29%7Bfor%28var%20b%3Da%2Elength%2Ce%3D0%2Cf%3Db%2D1%2Cg%3D0%3Bg%3Cb%3Bf%3Dg%2B%2B%29e%2B%3Da%5Bf%5D%2Ex%2Aa%5Bg%5D%2Ey%2Da%5Bg%5D%2Ex%2Aa%5Bf%5D%2Ey%3Breturn%2E5%2Ae%7D%3Ba%2ETriangulate%3Dfunction%28a%2Cd%29%7Bvar%20e%3Da%2Elength%3Bif%283%3Ee%29return%20null%3Bvar%20f%3D%5B%5D%2Cg%3D%5B%5D%2Ch%3D%5B%5D%2Ck%2Cn%2Cp%3Bif%280%3Cb%28a%29%29for%28n%3D0%3Bn%3Ce%3Bn%2B%2B%29g%5Bn%5D%3Dn%3Belse%20for%28n%3D0%3Bn%3Ce%3Bn%2B%2B%29g%5Bn%5D%3De%2D1%2Dn%3Bvar%20q%3D2%2Ae%3Bfor%28n%3De%2D1%3B2%3Ce%3B%29%7Bif%280%3E%3Dq%2D%2D%29%7Bconsole%2Elog%28%22Warning%2C%20unable%20to%20triangulate%20polygon%21%22%29%3Bbreak%7Dk%3Dn%3Be%3C%3Dk%26%26%28k%3D0%29%3Bn%3Dk%2B1%3Be%3C%3Dn%26%26%28n%3D0%29%3Bp%3Dn%2B1%3Be%3C%3Dp%26%26%28p%3D0%29%3Bvar%20m%3Ba%3A%7Bvar%20t%3Dm%3Dvoid%200%2Cs%3Dvoid%200%2Cr%3Dvoid%200%2Cu%3Dvoid%200%2Cv%3Dvoid%200%2Cy%3Dvoid%200%2CC%3Dvoid%200%2Cx%3Dvoid%200%2C%0At%3Da%5Bg%5Bk%5D%5D%2Ex%2Cs%3Da%5Bg%5Bk%5D%5D%2Ey%2Cr%3Da%5Bg%5Bn%5D%5D%2Ex%2Cu%3Da%5Bg%5Bn%5D%5D%2Ey%2Cv%3Da%5Bg%5Bp%5D%5D%2Ex%2Cy%3Da%5Bg%5Bp%5D%5D%2Ey%3Bif%281E%2D10%3E%28r%2Dt%29%2A%28y%2Ds%29%2D%28u%2Ds%29%2A%28v%2Dt%29%29m%3D%211%3Belse%7Bvar%20F%3Dvoid%200%2Cz%3Dvoid%200%2CG%3Dvoid%200%2CE%3Dvoid%200%2Cw%3Dvoid%200%2CD%3Dvoid%200%2CA%3Dvoid%200%2CU%3Dvoid%200%2CM%3Dvoid%200%2CK%3Dvoid%200%2CM%3DU%3DA%3Dx%3DC%3Dvoid%200%2CF%3Dv%2Dr%2Cz%3Dy%2Du%2CG%3Dt%2Dv%2CE%3Ds%2Dy%2Cw%3Dr%2Dt%2CD%3Du%2Ds%3Bfor%28m%3D0%3Bm%3Ce%3Bm%2B%2B%29if%28C%3Da%5Bg%5Bm%5D%5D%2Ex%2Cx%3Da%5Bg%5Bm%5D%5D%2Ey%2C%21%28C%3D%3D%3Dt%26%26x%3D%3D%3Ds%7C%7CC%3D%3D%3Dr%26%26x%3D%3D%3Du%7C%7CC%3D%3D%3Dv%26%26x%3D%3D%3Dy%29%26%26%28A%3DC%2Dt%2CU%3Dx%2Ds%2CM%3DC%2Dr%2CK%3Dx%2Du%2CC%2D%3Dv%2Cx%2D%3Dy%2CM%3DF%2AK%2Dz%2AM%2CA%3Dw%2AU%2DD%2AA%2CU%3DG%2Ax%2DE%2AC%2C%2D1E%2D10%3C%3DM%26%26%2D1E%2D10%3C%3DU%26%26%2D1E%2D10%3C%3DA%29%29%7Bm%3D%211%3Bbreak%20a%7Dm%3D%210%7D%7Dif%28m%29%7Bf%2Epush%28%5Ba%5Bg%5Bk%5D%5D%2Ca%5Bg%5Bn%5D%5D%2Ca%5Bg%5Bp%5D%5D%5D%29%3B%0Ah%2Epush%28%5Bg%5Bk%5D%2Cg%5Bn%5D%2Cg%5Bp%5D%5D%29%3Bk%3Dn%3Bfor%28p%3Dn%2B1%3Bp%3Ce%3Bk%2B%2B%2Cp%2B%2B%29g%5Bk%5D%3Dg%5Bp%5D%3Be%2D%2D%3Bq%3D2%2Ae%7D%7Dreturn%20d%3Fh%3Af%7D%3Ba%2ETriangulate%2Earea%3Db%3Breturn%20a%7D%29%28THREE%2EFontUtils%29%3Bself%2E%5Ftypeface%5Fjs%3D%7Bfaces%3ATHREE%2EFontUtils%2Efaces%2CloadFace%3ATHREE%2EFontUtils%2EloadFace%7D%3BTHREE%2Etypeface%5Fjs%3Dself%2E%5Ftypeface%5Fjs%3B%0ATHREE%2EAudio%3Dfunction%28a%29%7BTHREE%2EObject3D%2Ecall%28this%29%3Bthis%2Etype%3D%22Audio%22%3Bthis%2Econtext%3Da%2Econtext%3Bthis%2Esource%3Dthis%2Econtext%2EcreateBufferSource%28%29%3Bthis%2Egain%3Dthis%2Econtext%2EcreateGain%28%29%3Bthis%2Egain%2Econnect%28this%2Econtext%2Edestination%29%3Bthis%2Epanner%3Dthis%2Econtext%2EcreatePanner%28%29%3Bthis%2Epanner%2Econnect%28this%2Egain%29%7D%3BTHREE%2EAudio%2Eprototype%3DObject%2Ecreate%28THREE%2EObject3D%2Eprototype%29%3BTHREE%2EAudio%2Eprototype%2Econstructor%3DTHREE%2EAudio%3B%0ATHREE%2EAudio%2Eprototype%2Eload%3Dfunction%28a%29%7Bvar%20b%3Dthis%2Cc%3Dnew%20XMLHttpRequest%3Bc%2Eopen%28%22GET%22%2Ca%2C%210%29%3Bc%2EresponseType%3D%22arraybuffer%22%3Bc%2Eonload%3Dfunction%28a%29%7Bb%2Econtext%2EdecodeAudioData%28this%2Eresponse%2Cfunction%28a%29%7Bb%2Esource%2Ebuffer%3Da%3Bb%2Esource%2Econnect%28b%2Epanner%29%3Bb%2Esource%2Estart%280%29%7D%29%7D%3Bc%2Esend%28%29%3Breturn%20this%7D%3BTHREE%2EAudio%2Eprototype%2EsetLoop%3Dfunction%28a%29%7Bthis%2Esource%2Eloop%3Da%7D%3BTHREE%2EAudio%2Eprototype%2EsetRefDistance%3Dfunction%28a%29%7Bthis%2Epanner%2ErefDistance%3Da%7D%3BTHREE%2EAudio%2Eprototype%2EsetRolloffFactor%3Dfunction%28a%29%7Bthis%2Epanner%2ErolloffFactor%3Da%7D%3B%0ATHREE%2EAudio%2Eprototype%2EupdateMatrixWorld%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%3Breturn%20function%28b%29%7BTHREE%2EObject3D%2Eprototype%2EupdateMatrixWorld%2Ecall%28this%2Cb%29%3Ba%2EsetFromMatrixPosition%28this%2EmatrixWorld%29%3Bthis%2Epanner%2EsetPosition%28a%2Ex%2Ca%2Ey%2Ca%2Ez%29%7D%7D%28%29%3BTHREE%2EAudioListener%3Dfunction%28%29%7BTHREE%2EObject3D%2Ecall%28this%29%3Bthis%2Etype%3D%22AudioListener%22%3Bthis%2Econtext%3Dnew%20%28window%2EAudioContext%7C%7Cwindow%2EwebkitAudioContext%29%7D%3BTHREE%2EAudioListener%2Eprototype%3DObject%2Ecreate%28THREE%2EObject3D%2Eprototype%29%3BTHREE%2EAudioListener%2Eprototype%2Econstructor%3DTHREE%2EAudioListener%3B%0ATHREE%2EAudioListener%2Eprototype%2EupdateMatrixWorld%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%2Cb%3Dnew%20THREE%2EQuaternion%2Cc%3Dnew%20THREE%2EVector3%2Cd%3Dnew%20THREE%2EVector3%2Ce%3Dnew%20THREE%2EVector3%2Cf%3Dnew%20THREE%2EVector3%3Breturn%20function%28g%29%7BTHREE%2EObject3D%2Eprototype%2EupdateMatrixWorld%2Ecall%28this%2Cg%29%3Bg%3Dthis%2Econtext%2Elistener%3Bvar%20h%3Dthis%2Eup%3Bthis%2EmatrixWorld%2Edecompose%28a%2Cb%2Cc%29%3Bd%2Eset%280%2C0%2C%2D1%29%2EapplyQuaternion%28b%29%3Be%2EsubVectors%28a%2Cf%29%3Bg%2EsetPosition%28a%2Ex%2Ca%2Ey%2Ca%2Ez%29%3Bg%2EsetOrientation%28d%2Ex%2Cd%2Ey%2Cd%2Ez%2Ch%2Ex%2Ch%2Ey%2Ch%2Ez%29%3Bg%2EsetVelocity%28e%2Ex%2Ce%2Ey%2Ce%2Ez%29%3Bf%2Ecopy%28a%29%7D%7D%28%29%3B%0ATHREE%2ECurve%3Dfunction%28%29%7B%7D%3BTHREE%2ECurve%2Eprototype%2EgetPoint%3Dfunction%28a%29%7Bconsole%2Elog%28%22Warning%2C%20getPoint%28%29%20not%20implemented%21%22%29%3Breturn%20null%7D%3BTHREE%2ECurve%2Eprototype%2EgetPointAt%3Dfunction%28a%29%7Ba%3Dthis%2EgetUtoTmapping%28a%29%3Breturn%20this%2EgetPoint%28a%29%7D%3BTHREE%2ECurve%2Eprototype%2EgetPoints%3Dfunction%28a%29%7Ba%7C%7C%28a%3D5%29%3Bvar%20b%2Cc%3D%5B%5D%3Bfor%28b%3D0%3Bb%3C%3Da%3Bb%2B%2B%29c%2Epush%28this%2EgetPoint%28b%2Fa%29%29%3Breturn%20c%7D%3BTHREE%2ECurve%2Eprototype%2EgetSpacedPoints%3Dfunction%28a%29%7Ba%7C%7C%28a%3D5%29%3Bvar%20b%2Cc%3D%5B%5D%3Bfor%28b%3D0%3Bb%3C%3Da%3Bb%2B%2B%29c%2Epush%28this%2EgetPointAt%28b%2Fa%29%29%3Breturn%20c%7D%3B%0ATHREE%2ECurve%2Eprototype%2EgetLength%3Dfunction%28%29%7Bvar%20a%3Dthis%2EgetLengths%28%29%3Breturn%20a%5Ba%2Elength%2D1%5D%7D%3BTHREE%2ECurve%2Eprototype%2EgetLengths%3Dfunction%28a%29%7Ba%7C%7C%28a%3Dthis%2E%5F%5FarcLengthDivisions%3Fthis%2E%5F%5FarcLengthDivisions%3A200%29%3Bif%28this%2EcacheArcLengths%26%26this%2EcacheArcLengths%2Elength%3D%3Da%2B1%26%26%21this%2EneedsUpdate%29return%20this%2EcacheArcLengths%3Bthis%2EneedsUpdate%3D%211%3Bvar%20b%3D%5B%5D%2Cc%2Cd%3Dthis%2EgetPoint%280%29%2Ce%2Cf%3D0%3Bb%2Epush%280%29%3Bfor%28e%3D1%3Be%3C%3Da%3Be%2B%2B%29c%3Dthis%2EgetPoint%28e%2Fa%29%2Cf%2B%3Dc%2EdistanceTo%28d%29%2Cb%2Epush%28f%29%2Cd%3Dc%3Breturn%20this%2EcacheArcLengths%3Db%7D%3B%0ATHREE%2ECurve%2Eprototype%2EupdateArcLengths%3Dfunction%28%29%7Bthis%2EneedsUpdate%3D%210%3Bthis%2EgetLengths%28%29%7D%3BTHREE%2ECurve%2Eprototype%2EgetUtoTmapping%3Dfunction%28a%2Cb%29%7Bvar%20c%3Dthis%2EgetLengths%28%29%2Cd%3D0%2Ce%3Dc%2Elength%2Cf%3Bf%3Db%3Fb%3Aa%2Ac%5Be%2D1%5D%3Bfor%28var%20g%3D0%2Ch%3De%2D1%2Ck%3Bg%3C%3Dh%3B%29if%28d%3DMath%2Efloor%28g%2B%28h%2Dg%29%2F2%29%2Ck%3Dc%5Bd%5D%2Df%2C0%3Ek%29g%3Dd%2B1%3Belse%20if%280%3Ck%29h%3Dd%2D1%3Belse%7Bh%3Dd%3Bbreak%7Dd%3Dh%3Bif%28c%5Bd%5D%3D%3Df%29return%20d%2F%28e%2D1%29%3Bg%3Dc%5Bd%5D%3Breturn%20c%3D%28d%2B%28f%2Dg%29%2F%28c%5Bd%2B1%5D%2Dg%29%29%2F%28e%2D1%29%7D%3BTHREE%2ECurve%2Eprototype%2EgetTangent%3Dfunction%28a%29%7Bvar%20b%3Da%2D1E%2D4%3Ba%2B%3D1E%2D4%3B0%3Eb%26%26%28b%3D0%29%3B1%3Ca%26%26%28a%3D1%29%3Bb%3Dthis%2EgetPoint%28b%29%3Breturn%20this%2EgetPoint%28a%29%2Eclone%28%29%2Esub%28b%29%2Enormalize%28%29%7D%3B%0ATHREE%2ECurve%2Eprototype%2EgetTangentAt%3Dfunction%28a%29%7Ba%3Dthis%2EgetUtoTmapping%28a%29%3Breturn%20this%2EgetTangent%28a%29%7D%3B%0ATHREE%2ECurve%2EUtils%3D%7BtangentQuadraticBezier%3Afunction%28a%2Cb%2Cc%2Cd%29%7Breturn%202%2A%281%2Da%29%2A%28c%2Db%29%2B2%2Aa%2A%28d%2Dc%29%7D%2CtangentCubicBezier%3Afunction%28a%2Cb%2Cc%2Cd%2Ce%29%7Breturn%2D3%2Ab%2A%281%2Da%29%2A%281%2Da%29%2B3%2Ac%2A%281%2Da%29%2A%281%2Da%29%2D6%2Aa%2Ac%2A%281%2Da%29%2B6%2Aa%2Ad%2A%281%2Da%29%2D3%2Aa%2Aa%2Ad%2B3%2Aa%2Aa%2Ae%7D%2CtangentSpline%3Afunction%28a%2Cb%2Cc%2Cd%2Ce%29%7Breturn%206%2Aa%2Aa%2D6%2Aa%2B%283%2Aa%2Aa%2D4%2Aa%2B1%29%2B%28%2D6%2Aa%2Aa%2B6%2Aa%29%2B%283%2Aa%2Aa%2D2%2Aa%29%7D%2Cinterpolate%3Afunction%28a%2Cb%2Cc%2Cd%2Ce%29%7Ba%3D%2E5%2A%28c%2Da%29%3Bd%3D%2E5%2A%28d%2Db%29%3Bvar%20f%3De%2Ae%3Breturn%282%2Ab%2D2%2Ac%2Ba%2Bd%29%2Ae%2Af%2B%28%2D3%2Ab%2B3%2Ac%2D2%2Aa%2Dd%29%2Af%2Ba%2Ae%2Bb%7D%7D%3B%0ATHREE%2ECurve%2Ecreate%3Dfunction%28a%2Cb%29%7Ba%2Eprototype%3DObject%2Ecreate%28THREE%2ECurve%2Eprototype%29%3Ba%2Eprototype%2Econstructor%3Da%3Ba%2Eprototype%2EgetPoint%3Db%3Breturn%20a%7D%3BTHREE%2ECurvePath%3Dfunction%28%29%7Bthis%2Ecurves%3D%5B%5D%3Bthis%2Ebends%3D%5B%5D%3Bthis%2EautoClose%3D%211%7D%3BTHREE%2ECurvePath%2Eprototype%3DObject%2Ecreate%28THREE%2ECurve%2Eprototype%29%3BTHREE%2ECurvePath%2Eprototype%2Econstructor%3DTHREE%2ECurvePath%3BTHREE%2ECurvePath%2Eprototype%2Eadd%3Dfunction%28a%29%7Bthis%2Ecurves%2Epush%28a%29%7D%3BTHREE%2ECurvePath%2Eprototype%2EcheckConnection%3Dfunction%28%29%7B%7D%3B%0ATHREE%2ECurvePath%2Eprototype%2EclosePath%3Dfunction%28%29%7Bvar%20a%3Dthis%2Ecurves%5B0%5D%2EgetPoint%280%29%2Cb%3Dthis%2Ecurves%5Bthis%2Ecurves%2Elength%2D1%5D%2EgetPoint%281%29%3Ba%2Eequals%28b%29%7C%7Cthis%2Ecurves%2Epush%28new%20THREE%2ELineCurve%28b%2Ca%29%29%7D%3BTHREE%2ECurvePath%2Eprototype%2EgetPoint%3Dfunction%28a%29%7Bvar%20b%3Da%2Athis%2EgetLength%28%29%2Cc%3Dthis%2EgetCurveLengths%28%29%3Bfor%28a%3D0%3Ba%3Cc%2Elength%3B%29%7Bif%28c%5Ba%5D%3E%3Db%29return%20b%3Dc%5Ba%5D%2Db%2Ca%3Dthis%2Ecurves%5Ba%5D%2Cb%3D1%2Db%2Fa%2EgetLength%28%29%2Ca%2EgetPointAt%28b%29%3Ba%2B%2B%7Dreturn%20null%7D%3BTHREE%2ECurvePath%2Eprototype%2EgetLength%3Dfunction%28%29%7Bvar%20a%3Dthis%2EgetCurveLengths%28%29%3Breturn%20a%5Ba%2Elength%2D1%5D%7D%3B%0ATHREE%2ECurvePath%2Eprototype%2EgetCurveLengths%3Dfunction%28%29%7Bif%28this%2EcacheLengths%26%26this%2EcacheLengths%2Elength%3D%3Dthis%2Ecurves%2Elength%29return%20this%2EcacheLengths%3Bvar%20a%3D%5B%5D%2Cb%3D0%2Cc%2Cd%3Dthis%2Ecurves%2Elength%3Bfor%28c%3D0%3Bc%3Cd%3Bc%2B%2B%29b%2B%3Dthis%2Ecurves%5Bc%5D%2EgetLength%28%29%2Ca%2Epush%28b%29%3Breturn%20this%2EcacheLengths%3Da%7D%3B%0ATHREE%2ECurvePath%2Eprototype%2EgetBoundingBox%3Dfunction%28%29%7Bvar%20a%3Dthis%2EgetPoints%28%29%2Cb%2Cc%2Cd%2Ce%2Cf%2Cg%3Bb%3Dc%3DNumber%2ENEGATIVE%5FINFINITY%3Be%3Df%3DNumber%2EPOSITIVE%5FINFINITY%3Bvar%20h%2Ck%2Cn%2Cp%2Cq%3Da%5B0%5Dinstanceof%20THREE%2EVector3%3Bp%3Dq%3Fnew%20THREE%2EVector3%3Anew%20THREE%2EVector2%3Bk%3D0%3Bfor%28n%3Da%2Elength%3Bk%3Cn%3Bk%2B%2B%29h%3Da%5Bk%5D%2Ch%2Ex%3Eb%3Fb%3Dh%2Ex%3Ah%2Ex%3Ce%26%26%28e%3Dh%2Ex%29%2Ch%2Ey%3Ec%3Fc%3Dh%2Ey%3Ah%2Ey%3Cf%26%26%28f%3Dh%2Ey%29%2Cq%26%26%28h%2Ez%3Ed%3Fd%3Dh%2Ez%3Ah%2Ez%3Cg%26%26%28g%3Dh%2Ez%29%29%2Cp%2Eadd%28h%29%3Ba%3D%7BminX%3Ae%2CminY%3Af%2CmaxX%3Ab%2CmaxY%3Ac%7D%3Bq%26%26%28a%2EmaxZ%3Dd%2Ca%2EminZ%3Dg%29%3Breturn%20a%7D%3B%0ATHREE%2ECurvePath%2Eprototype%2EcreatePointsGeometry%3Dfunction%28a%29%7Ba%3Dthis%2EgetPoints%28a%2C%210%29%3Breturn%20this%2EcreateGeometry%28a%29%7D%3BTHREE%2ECurvePath%2Eprototype%2EcreateSpacedPointsGeometry%3Dfunction%28a%29%7Ba%3Dthis%2EgetSpacedPoints%28a%2C%210%29%3Breturn%20this%2EcreateGeometry%28a%29%7D%3BTHREE%2ECurvePath%2Eprototype%2EcreateGeometry%3Dfunction%28a%29%7Bfor%28var%20b%3Dnew%20THREE%2EGeometry%2Cc%3D0%3Bc%3Ca%2Elength%3Bc%2B%2B%29b%2Evertices%2Epush%28new%20THREE%2EVector3%28a%5Bc%5D%2Ex%2Ca%5Bc%5D%2Ey%2Ca%5Bc%5D%2Ez%7C%7C0%29%29%3Breturn%20b%7D%3BTHREE%2ECurvePath%2Eprototype%2EaddWrapPath%3Dfunction%28a%29%7Bthis%2Ebends%2Epush%28a%29%7D%3B%0ATHREE%2ECurvePath%2Eprototype%2EgetTransformedPoints%3Dfunction%28a%2Cb%29%7Bvar%20c%3Dthis%2EgetPoints%28a%29%2Cd%2Ce%3Bb%7C%7C%28b%3Dthis%2Ebends%29%3Bd%3D0%3Bfor%28e%3Db%2Elength%3Bd%3Ce%3Bd%2B%2B%29c%3Dthis%2EgetWrapPoints%28c%2Cb%5Bd%5D%29%3Breturn%20c%7D%3BTHREE%2ECurvePath%2Eprototype%2EgetTransformedSpacedPoints%3Dfunction%28a%2Cb%29%7Bvar%20c%3Dthis%2EgetSpacedPoints%28a%29%2Cd%2Ce%3Bb%7C%7C%28b%3Dthis%2Ebends%29%3Bd%3D0%3Bfor%28e%3Db%2Elength%3Bd%3Ce%3Bd%2B%2B%29c%3Dthis%2EgetWrapPoints%28c%2Cb%5Bd%5D%29%3Breturn%20c%7D%3B%0ATHREE%2ECurvePath%2Eprototype%2EgetWrapPoints%3Dfunction%28a%2Cb%29%7Bvar%20c%3Dthis%2EgetBoundingBox%28%29%2Cd%2Ce%2Cf%2Cg%2Ch%2Ck%3Bd%3D0%3Bfor%28e%3Da%2Elength%3Bd%3Ce%3Bd%2B%2B%29f%3Da%5Bd%5D%2Cg%3Df%2Ex%2Ch%3Df%2Ey%2Ck%3Dg%2Fc%2EmaxX%2Ck%3Db%2EgetUtoTmapping%28k%2Cg%29%2Cg%3Db%2EgetPoint%28k%29%2Ck%3Db%2EgetTangent%28k%29%2Ck%2Eset%28%2Dk%2Ey%2Ck%2Ex%29%2EmultiplyScalar%28h%29%2Cf%2Ex%3Dg%2Ex%2Bk%2Ex%2Cf%2Ey%3Dg%2Ey%2Bk%2Ey%3Breturn%20a%7D%3BTHREE%2EGyroscope%3Dfunction%28%29%7BTHREE%2EObject3D%2Ecall%28this%29%7D%3BTHREE%2EGyroscope%2Eprototype%3DObject%2Ecreate%28THREE%2EObject3D%2Eprototype%29%3BTHREE%2EGyroscope%2Eprototype%2Econstructor%3DTHREE%2EGyroscope%3B%0ATHREE%2EGyroscope%2Eprototype%2EupdateMatrixWorld%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%2Cb%3Dnew%20THREE%2EQuaternion%2Cc%3Dnew%20THREE%2EVector3%2Cd%3Dnew%20THREE%2EVector3%2Ce%3Dnew%20THREE%2EQuaternion%2Cf%3Dnew%20THREE%2EVector3%3Breturn%20function%28g%29%7Bthis%2EmatrixAutoUpdate%26%26this%2EupdateMatrix%28%29%3Bif%28this%2EmatrixWorldNeedsUpdate%7C%7Cg%29this%2Eparent%3F%28this%2EmatrixWorld%2EmultiplyMatrices%28this%2Eparent%2EmatrixWorld%2Cthis%2Ematrix%29%2Cthis%2EmatrixWorld%2Edecompose%28d%2Ce%2Cf%29%2Cthis%2Ematrix%2Edecompose%28a%2Cb%2Cc%29%2Cthis%2EmatrixWorld%2Ecompose%28d%2Cb%2Cf%29%29%3Athis%2EmatrixWorld%2Ecopy%28this%2Ematrix%29%2Cthis%2EmatrixWorldNeedsUpdate%3D%0A%211%2Cg%3D%210%3Bfor%28var%20h%3D0%2Ck%3Dthis%2Echildren%2Elength%3Bh%3Ck%3Bh%2B%2B%29this%2Echildren%5Bh%5D%2EupdateMatrixWorld%28g%29%7D%7D%28%29%3BTHREE%2EPath%3Dfunction%28a%29%7BTHREE%2ECurvePath%2Ecall%28this%29%3Bthis%2Eactions%3D%5B%5D%3Ba%26%26this%2EfromPoints%28a%29%7D%3BTHREE%2EPath%2Eprototype%3DObject%2Ecreate%28THREE%2ECurvePath%2Eprototype%29%3BTHREE%2EPath%2Eprototype%2Econstructor%3DTHREE%2EPath%3BTHREE%2EPathActions%3D%7BMOVE%5FTO%3A%22moveTo%22%2CLINE%5FTO%3A%22lineTo%22%2CQUADRATIC%5FCURVE%5FTO%3A%22quadraticCurveTo%22%2CBEZIER%5FCURVE%5FTO%3A%22bezierCurveTo%22%2CCSPLINE%5FTHRU%3A%22splineThru%22%2CARC%3A%22arc%22%2CELLIPSE%3A%22ellipse%22%7D%3B%0ATHREE%2EPath%2Eprototype%2EfromPoints%3Dfunction%28a%29%7Bthis%2EmoveTo%28a%5B0%5D%2Ex%2Ca%5B0%5D%2Ey%29%3Bfor%28var%20b%3D1%2Cc%3Da%2Elength%3Bb%3Cc%3Bb%2B%2B%29this%2ElineTo%28a%5Bb%5D%2Ex%2Ca%5Bb%5D%2Ey%29%7D%3BTHREE%2EPath%2Eprototype%2EmoveTo%3Dfunction%28a%2Cb%29%7Bvar%20c%3DArray%2Eprototype%2Eslice%2Ecall%28arguments%29%3Bthis%2Eactions%2Epush%28%7Baction%3ATHREE%2EPathActions%2EMOVE%5FTO%2Cargs%3Ac%7D%29%7D%3B%0ATHREE%2EPath%2Eprototype%2ElineTo%3Dfunction%28a%2Cb%29%7Bvar%20c%3DArray%2Eprototype%2Eslice%2Ecall%28arguments%29%2Cd%3Dthis%2Eactions%5Bthis%2Eactions%2Elength%2D1%5D%2Eargs%2Cd%3Dnew%20THREE%2ELineCurve%28new%20THREE%2EVector2%28d%5Bd%2Elength%2D2%5D%2Cd%5Bd%2Elength%2D1%5D%29%2Cnew%20THREE%2EVector2%28a%2Cb%29%29%3Bthis%2Ecurves%2Epush%28d%29%3Bthis%2Eactions%2Epush%28%7Baction%3ATHREE%2EPathActions%2ELINE%5FTO%2Cargs%3Ac%7D%29%7D%3B%0ATHREE%2EPath%2Eprototype%2EquadraticCurveTo%3Dfunction%28a%2Cb%2Cc%2Cd%29%7Bvar%20e%3DArray%2Eprototype%2Eslice%2Ecall%28arguments%29%2Cf%3Dthis%2Eactions%5Bthis%2Eactions%2Elength%2D1%5D%2Eargs%2Cf%3Dnew%20THREE%2EQuadraticBezierCurve%28new%20THREE%2EVector2%28f%5Bf%2Elength%2D2%5D%2Cf%5Bf%2Elength%2D1%5D%29%2Cnew%20THREE%2EVector2%28a%2Cb%29%2Cnew%20THREE%2EVector2%28c%2Cd%29%29%3Bthis%2Ecurves%2Epush%28f%29%3Bthis%2Eactions%2Epush%28%7Baction%3ATHREE%2EPathActions%2EQUADRATIC%5FCURVE%5FTO%2Cargs%3Ae%7D%29%7D%3B%0ATHREE%2EPath%2Eprototype%2EbezierCurveTo%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%29%7Bvar%20g%3DArray%2Eprototype%2Eslice%2Ecall%28arguments%29%2Ch%3Dthis%2Eactions%5Bthis%2Eactions%2Elength%2D1%5D%2Eargs%2Ch%3Dnew%20THREE%2ECubicBezierCurve%28new%20THREE%2EVector2%28h%5Bh%2Elength%2D2%5D%2Ch%5Bh%2Elength%2D1%5D%29%2Cnew%20THREE%2EVector2%28a%2Cb%29%2Cnew%20THREE%2EVector2%28c%2Cd%29%2Cnew%20THREE%2EVector2%28e%2Cf%29%29%3Bthis%2Ecurves%2Epush%28h%29%3Bthis%2Eactions%2Epush%28%7Baction%3ATHREE%2EPathActions%2EBEZIER%5FCURVE%5FTO%2Cargs%3Ag%7D%29%7D%3B%0ATHREE%2EPath%2Eprototype%2EsplineThru%3Dfunction%28a%29%7Bvar%20b%3DArray%2Eprototype%2Eslice%2Ecall%28arguments%29%2Cc%3Dthis%2Eactions%5Bthis%2Eactions%2Elength%2D1%5D%2Eargs%2Cc%3D%5Bnew%20THREE%2EVector2%28c%5Bc%2Elength%2D2%5D%2Cc%5Bc%2Elength%2D1%5D%29%5D%3BArray%2Eprototype%2Epush%2Eapply%28c%2Ca%29%3Bc%3Dnew%20THREE%2ESplineCurve%28c%29%3Bthis%2Ecurves%2Epush%28c%29%3Bthis%2Eactions%2Epush%28%7Baction%3ATHREE%2EPathActions%2ECSPLINE%5FTHRU%2Cargs%3Ab%7D%29%7D%3BTHREE%2EPath%2Eprototype%2Earc%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%29%7Bvar%20g%3Dthis%2Eactions%5Bthis%2Eactions%2Elength%2D1%5D%2Eargs%3Bthis%2Eabsarc%28a%2Bg%5Bg%2Elength%2D2%5D%2Cb%2Bg%5Bg%2Elength%2D1%5D%2Cc%2Cd%2Ce%2Cf%29%7D%3B%0ATHREE%2EPath%2Eprototype%2Eabsarc%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%29%7Bthis%2Eabsellipse%28a%2Cb%2Cc%2Cc%2Cd%2Ce%2Cf%29%7D%3BTHREE%2EPath%2Eprototype%2Eellipse%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%2Cg%29%7Bvar%20h%3Dthis%2Eactions%5Bthis%2Eactions%2Elength%2D1%5D%2Eargs%3Bthis%2Eabsellipse%28a%2Bh%5Bh%2Elength%2D2%5D%2Cb%2Bh%5Bh%2Elength%2D1%5D%2Cc%2Cd%2Ce%2Cf%2Cg%29%7D%3BTHREE%2EPath%2Eprototype%2Eabsellipse%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%2Cg%29%7Bvar%20h%3DArray%2Eprototype%2Eslice%2Ecall%28arguments%29%2Ck%3Dnew%20THREE%2EEllipseCurve%28a%2Cb%2Cc%2Cd%2Ce%2Cf%2Cg%29%3Bthis%2Ecurves%2Epush%28k%29%3Bk%3Dk%2EgetPoint%281%29%3Bh%2Epush%28k%2Ex%29%3Bh%2Epush%28k%2Ey%29%3Bthis%2Eactions%2Epush%28%7Baction%3ATHREE%2EPathActions%2EELLIPSE%2Cargs%3Ah%7D%29%7D%3B%0ATHREE%2EPath%2Eprototype%2EgetSpacedPoints%3Dfunction%28a%2Cb%29%7Ba%7C%7C%28a%3D40%29%3Bfor%28var%20c%3D%5B%5D%2Cd%3D0%3Bd%3Ca%3Bd%2B%2B%29c%2Epush%28this%2EgetPoint%28d%2Fa%29%29%3Breturn%20c%7D%3B%0ATHREE%2EPath%2Eprototype%2EgetPoints%3Dfunction%28a%2Cb%29%7Bif%28this%2EuseSpacedPoints%29return%20console%2Elog%28%22tata%22%29%2Cthis%2EgetSpacedPoints%28a%2Cb%29%3Ba%3Da%7C%7C12%3Bvar%20c%3D%5B%5D%2Cd%2Ce%2Cf%2Cg%2Ch%2Ck%2Cn%2Cp%2Cq%2Cm%2Ct%2Cs%2Cr%3Bd%3D0%3Bfor%28e%3Dthis%2Eactions%2Elength%3Bd%3Ce%3Bd%2B%2B%29switch%28f%3Dthis%2Eactions%5Bd%5D%2Cg%3Df%2Eaction%2Cf%3Df%2Eargs%2Cg%29%7Bcase%20THREE%2EPathActions%2EMOVE%5FTO%3Ac%2Epush%28new%20THREE%2EVector2%28f%5B0%5D%2Cf%5B1%5D%29%29%3Bbreak%3Bcase%20THREE%2EPathActions%2ELINE%5FTO%3Ac%2Epush%28new%20THREE%2EVector2%28f%5B0%5D%2Cf%5B1%5D%29%29%3Bbreak%3Bcase%20THREE%2EPathActions%2EQUADRATIC%5FCURVE%5FTO%3Ah%3Df%5B2%5D%3Bk%3Df%5B3%5D%3Bq%3Df%5B0%5D%3Bm%3Df%5B1%5D%3B0%3Cc%2Elength%3F%28g%3Dc%5Bc%2Elength%2D1%5D%2Ct%3Dg%2Ex%2C%0As%3Dg%2Ey%29%3A%28g%3Dthis%2Eactions%5Bd%2D1%5D%2Eargs%2Ct%3Dg%5Bg%2Elength%2D2%5D%2Cs%3Dg%5Bg%2Elength%2D1%5D%29%3Bfor%28f%3D1%3Bf%3C%3Da%3Bf%2B%2B%29r%3Df%2Fa%2Cg%3DTHREE%2EShape%2EUtils%2Eb2%28r%2Ct%2Cq%2Ch%29%2Cr%3DTHREE%2EShape%2EUtils%2Eb2%28r%2Cs%2Cm%2Ck%29%2Cc%2Epush%28new%20THREE%2EVector2%28g%2Cr%29%29%3Bbreak%3Bcase%20THREE%2EPathActions%2EBEZIER%5FCURVE%5FTO%3Ah%3Df%5B4%5D%3Bk%3Df%5B5%5D%3Bq%3Df%5B0%5D%3Bm%3Df%5B1%5D%3Bn%3Df%5B2%5D%3Bp%3Df%5B3%5D%3B0%3Cc%2Elength%3F%28g%3Dc%5Bc%2Elength%2D1%5D%2Ct%3Dg%2Ex%2Cs%3Dg%2Ey%29%3A%28g%3Dthis%2Eactions%5Bd%2D1%5D%2Eargs%2Ct%3Dg%5Bg%2Elength%2D2%5D%2Cs%3Dg%5Bg%2Elength%2D1%5D%29%3Bfor%28f%3D1%3Bf%3C%3Da%3Bf%2B%2B%29r%3Df%2Fa%2Cg%3DTHREE%2EShape%2EUtils%2Eb3%28r%2Ct%2Cq%2Cn%2Ch%29%2Cr%3DTHREE%2EShape%2EUtils%2Eb3%28r%2Cs%2Cm%2Cp%2Ck%29%2Cc%2Epush%28new%20THREE%2EVector2%28g%2Cr%29%29%3Bbreak%3Bcase%20THREE%2EPathActions%2ECSPLINE%5FTHRU%3Ag%3D%0Athis%2Eactions%5Bd%2D1%5D%2Eargs%3Br%3D%5Bnew%20THREE%2EVector2%28g%5Bg%2Elength%2D2%5D%2Cg%5Bg%2Elength%2D1%5D%29%5D%3Bg%3Da%2Af%5B0%5D%2Elength%3Br%3Dr%2Econcat%28f%5B0%5D%29%3Br%3Dnew%20THREE%2ESplineCurve%28r%29%3Bfor%28f%3D1%3Bf%3C%3Dg%3Bf%2B%2B%29c%2Epush%28r%2EgetPointAt%28f%2Fg%29%29%3Bbreak%3Bcase%20THREE%2EPathActions%2EARC%3Ah%3Df%5B0%5D%3Bk%3Df%5B1%5D%3Bm%3Df%5B2%5D%3Bn%3Df%5B3%5D%3Bg%3Df%5B4%5D%3Bq%3D%21%21f%5B5%5D%3Bt%3Dg%2Dn%3Bs%3D2%2Aa%3Bfor%28f%3D1%3Bf%3C%3Ds%3Bf%2B%2B%29r%3Df%2Fs%2Cq%7C%7C%28r%3D1%2Dr%29%2Cr%3Dn%2Br%2At%2Cg%3Dh%2Bm%2AMath%2Ecos%28r%29%2Cr%3Dk%2Bm%2AMath%2Esin%28r%29%2Cc%2Epush%28new%20THREE%2EVector2%28g%2Cr%29%29%3Bbreak%3Bcase%20THREE%2EPathActions%2EELLIPSE%3Afor%28h%3Df%5B0%5D%2Ck%3Df%5B1%5D%2Cm%3Df%5B2%5D%2Cp%3Df%5B3%5D%2Cn%3Df%5B4%5D%2Cg%3Df%5B5%5D%2Cq%3D%21%21f%5B6%5D%2Ct%3Dg%2Dn%2Cs%3D2%2Aa%2Cf%3D1%3Bf%3C%3Ds%3Bf%2B%2B%29r%3Df%2Fs%2Cq%7C%7C%0A%28r%3D1%2Dr%29%2Cr%3Dn%2Br%2At%2Cg%3Dh%2Bm%2AMath%2Ecos%28r%29%2Cr%3Dk%2Bp%2AMath%2Esin%28r%29%2Cc%2Epush%28new%20THREE%2EVector2%28g%2Cr%29%29%7Dd%3Dc%5Bc%2Elength%2D1%5D%3B1E%2D10%3EMath%2Eabs%28d%2Ex%2Dc%5B0%5D%2Ex%29%26%261E%2D10%3EMath%2Eabs%28d%2Ey%2Dc%5B0%5D%2Ey%29%26%26c%2Esplice%28c%2Elength%2D1%2C1%29%3Bb%26%26c%2Epush%28c%5B0%5D%29%3Breturn%20c%7D%3B%0ATHREE%2EPath%2Eprototype%2EtoShapes%3Dfunction%28a%2Cb%29%7Bfunction%20c%28a%29%7Bfor%28var%20b%3D%5B%5D%2Cc%3D0%2Cd%3Da%2Elength%3Bc%3Cd%3Bc%2B%2B%29%7Bvar%20e%3Da%5Bc%5D%2Cg%3Dnew%20THREE%2EShape%3Bg%2Eactions%3De%2Eactions%3Bg%2Ecurves%3De%2Ecurves%3Bb%2Epush%28g%29%7Dreturn%20b%7Dfunction%20d%28a%2Cb%29%7Bfor%28var%20c%3Db%2Elength%2Cd%3D%211%2Ce%3Dc%2D1%2Cg%3D0%3Bg%3Cc%3Be%3Dg%2B%2B%29%7Bvar%20f%3Db%5Be%5D%2Ch%3Db%5Bg%5D%2Ck%3Dh%2Ex%2Df%2Ex%2Cm%3Dh%2Ey%2Df%2Ey%3Bif%281E%2D10%3CMath%2Eabs%28m%29%29%7Bif%280%3Em%26%26%28f%3Db%5Bg%5D%2Ck%3D%2Dk%2Ch%3Db%5Be%5D%2Cm%3D%2Dm%29%2C%21%28a%2Ey%3Cf%2Ey%7C%7Ca%2Ey%3Eh%2Ey%29%29if%28a%2Ey%3D%3Df%2Ey%29%7Bif%28a%2Ex%3D%3Df%2Ex%29return%210%7Delse%7Be%3Dm%2A%28a%2Ex%2Df%2Ex%29%2Dk%2A%28a%2Ey%2Df%2Ey%29%3Bif%280%3D%3De%29return%210%3B0%3Ee%7C%7C%28d%3D%21d%29%7D%7Delse%20if%28a%2Ey%3D%3Df%2Ey%26%26%28h%2Ex%3C%3Da%2Ex%26%26a%2Ex%3C%3Df%2Ex%7C%7Cf%2Ex%3C%3Da%2Ex%26%26a%2Ex%3C%3D%0Ah%2Ex%29%29return%210%7Dreturn%20d%7Dvar%20e%3Dfunction%28a%29%7Bvar%20b%2Cc%2Cd%2Ce%2Cf%3D%5B%5D%2Cg%3Dnew%20THREE%2EPath%3Bb%3D0%3Bfor%28c%3Da%2Elength%3Bb%3Cc%3Bb%2B%2B%29d%3Da%5Bb%5D%2Ce%3Dd%2Eargs%2Cd%3Dd%2Eaction%2Cd%3D%3DTHREE%2EPathActions%2EMOVE%5FTO%26%260%21%3Dg%2Eactions%2Elength%26%26%28f%2Epush%28g%29%2Cg%3Dnew%20THREE%2EPath%29%2Cg%5Bd%5D%2Eapply%28g%2Ce%29%3B0%21%3Dg%2Eactions%2Elength%26%26f%2Epush%28g%29%3Breturn%20f%7D%28this%2Eactions%29%3Bif%280%3D%3De%2Elength%29return%5B%5D%3Bif%28%210%3D%3D%3Db%29return%20c%28e%29%3Bvar%20f%2Cg%2Ch%2Ck%3D%5B%5D%3Bif%281%3D%3De%2Elength%29return%20g%3De%5B0%5D%2Ch%3Dnew%20THREE%2EShape%2Ch%2Eactions%3Dg%2Eactions%2Ch%2Ecurves%3Dg%2Ecurves%2Ck%2Epush%28h%29%2Ck%3Bvar%20n%3D%21THREE%2EShape%2EUtils%2EisClockWise%28e%5B0%5D%2EgetPoints%28%29%29%2Cn%3Da%3F%21n%3An%3B%0Ah%3D%5B%5D%3Bvar%20p%3D%5B%5D%2Cq%3D%5B%5D%2Cm%3D0%2Ct%3Bp%5Bm%5D%3Dvoid%200%3Bq%5Bm%5D%3D%5B%5D%3Bvar%20s%2Cr%3Bs%3D0%3Bfor%28r%3De%2Elength%3Bs%3Cr%3Bs%2B%2B%29g%3De%5Bs%5D%2Ct%3Dg%2EgetPoints%28%29%2Cf%3DTHREE%2EShape%2EUtils%2EisClockWise%28t%29%2C%28f%3Da%3F%21f%3Af%29%3F%28%21n%26%26p%5Bm%5D%26%26m%2B%2B%2Cp%5Bm%5D%3D%7Bs%3Anew%20THREE%2EShape%2Cp%3At%7D%2Cp%5Bm%5D%2Es%2Eactions%3Dg%2Eactions%2Cp%5Bm%5D%2Es%2Ecurves%3Dg%2Ecurves%2Cn%26%26m%2B%2B%2Cq%5Bm%5D%3D%5B%5D%29%3Aq%5Bm%5D%2Epush%28%7Bh%3Ag%2Cp%3At%5B0%5D%7D%29%3Bif%28%21p%5B0%5D%29return%20c%28e%29%3Bif%281%3Cp%2Elength%29%7Bs%3D%211%3Br%3D%5B%5D%3Bg%3D0%3Bfor%28e%3Dp%2Elength%3Bg%3Ce%3Bg%2B%2B%29h%5Bg%5D%3D%5B%5D%3Bg%3D0%3Bfor%28e%3Dp%2Elength%3Bg%3Ce%3Bg%2B%2B%29for%28f%3Dq%5Bg%5D%2Cn%3D0%3Bn%3Cf%2Elength%3Bn%2B%2B%29%7Bm%3Df%5Bn%5D%3Bt%3D%210%3Bfor%28var%20u%3D0%3Bu%3Cp%2Elength%3Bu%2B%2B%29d%28m%2Ep%2Cp%5Bu%5D%2Ep%29%26%26%28g%21%3Du%26%26r%2Epush%28%7Bfroms%3Ag%2Ctos%3Au%2C%0Ahole%3An%7D%29%2Ct%3F%28t%3D%211%2Ch%5Bu%5D%2Epush%28m%29%29%3As%3D%210%29%3Bt%26%26h%5Bg%5D%2Epush%28m%29%7D0%3Cr%2Elength%26%26%28s%7C%7C%28q%3Dh%29%29%7Ds%3D0%3Bfor%28r%3Dp%2Elength%3Bs%3Cr%3Bs%2B%2B%29for%28h%3Dp%5Bs%5D%2Es%2Ck%2Epush%28h%29%2Cg%3Dq%5Bs%5D%2Ce%3D0%2Cf%3Dg%2Elength%3Be%3Cf%3Be%2B%2B%29h%2Eholes%2Epush%28g%5Be%5D%2Eh%29%3Breturn%20k%7D%3BTHREE%2EShape%3Dfunction%28%29%7BTHREE%2EPath%2Eapply%28this%2Carguments%29%3Bthis%2Eholes%3D%5B%5D%7D%3BTHREE%2EShape%2Eprototype%3DObject%2Ecreate%28THREE%2EPath%2Eprototype%29%3BTHREE%2EShape%2Eprototype%2Econstructor%3DTHREE%2EShape%3BTHREE%2EShape%2Eprototype%2Eextrude%3Dfunction%28a%29%7Breturn%20new%20THREE%2EExtrudeGeometry%28this%2Ca%29%7D%3B%0ATHREE%2EShape%2Eprototype%2EmakeGeometry%3Dfunction%28a%29%7Breturn%20new%20THREE%2EShapeGeometry%28this%2Ca%29%7D%3BTHREE%2EShape%2Eprototype%2EgetPointsHoles%3Dfunction%28a%29%7Bvar%20b%2Cc%3Dthis%2Eholes%2Elength%2Cd%3D%5B%5D%3Bfor%28b%3D0%3Bb%3Cc%3Bb%2B%2B%29d%5Bb%5D%3Dthis%2Eholes%5Bb%5D%2EgetTransformedPoints%28a%2Cthis%2Ebends%29%3Breturn%20d%7D%3BTHREE%2EShape%2Eprototype%2EgetSpacedPointsHoles%3Dfunction%28a%29%7Bvar%20b%2Cc%3Dthis%2Eholes%2Elength%2Cd%3D%5B%5D%3Bfor%28b%3D0%3Bb%3Cc%3Bb%2B%2B%29d%5Bb%5D%3Dthis%2Eholes%5Bb%5D%2EgetTransformedSpacedPoints%28a%2Cthis%2Ebends%29%3Breturn%20d%7D%3B%0ATHREE%2EShape%2Eprototype%2EextractAllPoints%3Dfunction%28a%29%7Breturn%7Bshape%3Athis%2EgetTransformedPoints%28a%29%2Choles%3Athis%2EgetPointsHoles%28a%29%7D%7D%3BTHREE%2EShape%2Eprototype%2EextractPoints%3Dfunction%28a%29%7Breturn%20this%2EuseSpacedPoints%3Fthis%2EextractAllSpacedPoints%28a%29%3Athis%2EextractAllPoints%28a%29%7D%3BTHREE%2EShape%2Eprototype%2EextractAllSpacedPoints%3Dfunction%28a%29%7Breturn%7Bshape%3Athis%2EgetTransformedSpacedPoints%28a%29%2Choles%3Athis%2EgetSpacedPointsHoles%28a%29%7D%7D%3B%0ATHREE%2EShape%2EUtils%3D%7BtriangulateShape%3Afunction%28a%2Cb%29%7Bfunction%20c%28a%2Cb%2Cc%29%7Breturn%20a%2Ex%21%3Db%2Ex%3Fa%2Ex%3Cb%2Ex%3Fa%2Ex%3C%3Dc%2Ex%26%26c%2Ex%3C%3Db%2Ex%3Ab%2Ex%3C%3Dc%2Ex%26%26c%2Ex%3C%3Da%2Ex%3Aa%2Ey%3Cb%2Ey%3Fa%2Ey%3C%3Dc%2Ey%26%26c%2Ey%3C%3Db%2Ey%3Ab%2Ey%3C%3Dc%2Ey%26%26c%2Ey%3C%3Da%2Ey%7Dfunction%20d%28a%2Cb%2Cd%2Ce%2Cg%29%7Bvar%20f%3Db%2Ex%2Da%2Ex%2Ch%3Db%2Ey%2Da%2Ey%2Ck%3De%2Ex%2Dd%2Ex%2Cn%3De%2Ey%2Dd%2Ey%2Cp%3Da%2Ex%2Dd%2Ex%2Cq%3Da%2Ey%2Dd%2Ey%2CG%3Dh%2Ak%2Df%2An%2CE%3Dh%2Ap%2Df%2Aq%3Bif%281E%2D10%3CMath%2Eabs%28G%29%29%7Bif%280%3CG%29%7Bif%280%3EE%7C%7CE%3EG%29return%5B%5D%3Bk%3Dn%2Ap%2Dk%2Aq%3Bif%280%3Ek%7C%7Ck%3EG%29return%5B%5D%7Delse%7Bif%280%3CE%7C%7CE%3CG%29return%5B%5D%3Bk%3Dn%2Ap%2Dk%2Aq%3Bif%280%3Ck%7C%7Ck%3CG%29return%5B%5D%7Dif%280%3D%3Dk%29return%21g%7C%7C0%21%3DE%26%26E%21%3DG%3F%5Ba%5D%3A%5B%5D%3Bif%28k%3D%3DG%29return%21g%7C%7C0%21%3DE%26%26E%21%3DG%3F%5Bb%5D%3A%5B%5D%3Bif%280%3D%3DE%29return%5Bd%5D%3B%0Aif%28E%3D%3DG%29return%5Be%5D%3Bg%3Dk%2FG%3Breturn%5B%7Bx%3Aa%2Ex%2Bg%2Af%2Cy%3Aa%2Ey%2Bg%2Ah%7D%5D%7Dif%280%21%3DE%7C%7Cn%2Ap%21%3Dk%2Aq%29return%5B%5D%3Bh%3D0%3D%3Df%26%260%3D%3Dh%3Bk%3D0%3D%3Dk%26%260%3D%3Dn%3Bif%28h%26%26k%29return%20a%2Ex%21%3Dd%2Ex%7C%7Ca%2Ey%21%3Dd%2Ey%3F%5B%5D%3A%5Ba%5D%3Bif%28h%29return%20c%28d%2Ce%2Ca%29%3F%5Ba%5D%3A%5B%5D%3Bif%28k%29return%20c%28a%2Cb%2Cd%29%3F%5Bd%5D%3A%5B%5D%3B0%21%3Df%3F%28a%2Ex%3Cb%2Ex%3F%28f%3Da%2Ck%3Da%2Ex%2Ch%3Db%2Ca%3Db%2Ex%29%3A%28f%3Db%2Ck%3Db%2Ex%2Ch%3Da%2Ca%3Da%2Ex%29%2Cd%2Ex%3Ce%2Ex%3F%28b%3Dd%2CG%3Dd%2Ex%2Cn%3De%2Cd%3De%2Ex%29%3A%28b%3De%2CG%3De%2Ex%2Cn%3Dd%2Cd%3Dd%2Ex%29%29%3A%28a%2Ey%3Cb%2Ey%3F%28f%3Da%2Ck%3Da%2Ey%2Ch%3Db%2Ca%3Db%2Ey%29%3A%28f%3Db%2Ck%3Db%2Ey%2Ch%3Da%2Ca%3Da%2Ey%29%2Cd%2Ey%3Ce%2Ey%3F%28b%3Dd%2CG%3Dd%2Ey%2Cn%3De%2Cd%3De%2Ey%29%3A%28b%3De%2CG%3De%2Ey%2Cn%3Dd%2Cd%3Dd%2Ey%29%29%3Breturn%20k%3C%3DG%3Fa%3CG%3F%5B%5D%3Aa%3D%3DG%3Fg%3F%5B%5D%3A%5Bb%5D%3Aa%3C%3Dd%3F%5Bb%2Ch%5D%3A%5Bb%2Cn%5D%3Ak%3Ed%3F%5B%5D%3Ak%3D%3Dd%3Fg%3F%5B%5D%3A%5Bf%5D%3Aa%3C%3Dd%3F%5Bf%2Ch%5D%3A%0A%5Bf%2Cn%5D%7Dfunction%20e%28a%2Cb%2Cc%2Cd%29%7Bvar%20e%3Db%2Ex%2Da%2Ex%2Cf%3Db%2Ey%2Da%2Ey%3Bb%3Dc%2Ex%2Da%2Ex%3Bc%3Dc%2Ey%2Da%2Ey%3Bvar%20g%3Dd%2Ex%2Da%2Ex%3Bd%3Dd%2Ey%2Da%2Ey%3Ba%3De%2Ac%2Df%2Ab%3Be%3De%2Ad%2Df%2Ag%3Breturn%201E%2D10%3CMath%2Eabs%28a%29%3F%28b%3Dg%2Ac%2Dd%2Ab%2C0%3Ca%3F0%3C%3De%26%260%3C%3Db%3A0%3C%3De%7C%7C0%3C%3Db%29%3A0%3Ce%7Dvar%20f%2Cg%2Ch%2Ck%2Cn%2Cp%3D%7B%7D%3Bh%3Da%2Econcat%28%29%3Bf%3D0%3Bfor%28g%3Db%2Elength%3Bf%3Cg%3Bf%2B%2B%29Array%2Eprototype%2Epush%2Eapply%28h%2Cb%5Bf%5D%29%3Bf%3D0%3Bfor%28g%3Dh%2Elength%3Bf%3Cg%3Bf%2B%2B%29n%3Dh%5Bf%5D%2Ex%2B%22%3A%22%2Bh%5Bf%5D%2Ey%2Cvoid%200%21%3D%3Dp%5Bn%5D%26%26console%2Elog%28%22Duplicate%20point%22%2Cn%29%2Cp%5Bn%5D%3Df%3Bf%3Dfunction%28a%2Cb%29%7Bfunction%20c%28a%2Cb%29%7Bvar%20d%3Dh%2Elength%2D1%2Cf%3Da%2D1%3B0%3Ef%26%26%28f%3Dd%29%3Bvar%20g%3Da%2B1%3Bg%3Ed%26%26%28g%3D0%29%3Bd%3De%28h%5Ba%5D%2Ch%5Bf%5D%2Ch%5Bg%5D%2Ck%5Bb%5D%29%3Bif%28%21d%29return%211%3B%0Ad%3Dk%2Elength%2D1%3Bf%3Db%2D1%3B0%3Ef%26%26%28f%3Dd%29%3Bg%3Db%2B1%3Bg%3Ed%26%26%28g%3D0%29%3Breturn%28d%3De%28k%5Bb%5D%2Ck%5Bf%5D%2Ck%5Bg%5D%2Ch%5Ba%5D%29%29%3F%210%3A%211%7Dfunction%20f%28a%2Cb%29%7Bvar%20c%2Ce%3Bfor%28c%3D0%3Bc%3Ch%2Elength%3Bc%2B%2B%29if%28e%3Dc%2B1%2Ce%25%3Dh%2Elength%2Ce%3Dd%28a%2Cb%2Ch%5Bc%5D%2Ch%5Be%5D%2C%210%29%2C0%3Ce%2Elength%29return%210%3Breturn%211%7Dfunction%20g%28a%2Cc%29%7Bvar%20e%2Cf%2Ch%2Ck%3Bfor%28e%3D0%3Be%3Cn%2Elength%3Be%2B%2B%29for%28f%3Db%5Bn%5Be%5D%5D%2Ch%3D0%3Bh%3Cf%2Elength%3Bh%2B%2B%29if%28k%3Dh%2B1%2Ck%25%3Df%2Elength%2Ck%3Dd%28a%2Cc%2Cf%5Bh%5D%2Cf%5Bk%5D%2C%210%29%2C0%3Ck%2Elength%29return%210%3Breturn%211%7Dvar%20h%3Da%2Econcat%28%29%2Ck%2Cn%3D%5B%5D%2Cp%2Cq%2Cz%2CG%2CE%2Cw%3D%5B%5D%2CD%2CA%2CU%2CM%3D0%3Bfor%28p%3Db%2Elength%3BM%3Cp%3BM%2B%2B%29n%2Epush%28M%29%3BD%3D0%3Bfor%28var%20K%3D2%2An%2Elength%3B0%3Cn%2Elength%3B%29%7BK%2D%2D%3Bif%280%3EK%29%7Bconsole%2Elog%28%22Infinite%20Loop%21%20Holes%20left%3A%22%2B%0An%2Elength%2B%22%2C%20Probably%20Hole%20outside%20Shape%21%22%29%3Bbreak%7Dfor%28q%3DD%3Bq%3Ch%2Elength%3Bq%2B%2B%29%7Bz%3Dh%5Bq%5D%3Bp%3D%2D1%3Bfor%28M%3D0%3BM%3Cn%2Elength%3BM%2B%2B%29if%28G%3Dn%5BM%5D%2CE%3Dz%2Ex%2B%22%3A%22%2Bz%2Ey%2B%22%3A%22%2BG%2Cvoid%200%3D%3D%3Dw%5BE%5D%29%7Bk%3Db%5BG%5D%3Bfor%28A%3D0%3BA%3Ck%2Elength%3BA%2B%2B%29if%28G%3Dk%5BA%5D%2Cc%28q%2CA%29%26%26%21f%28z%2CG%29%26%26%21g%28z%2CG%29%29%7Bp%3DA%3Bn%2Esplice%28M%2C1%29%3BD%3Dh%2Eslice%280%2Cq%2B1%29%3BG%3Dh%2Eslice%28q%29%3BA%3Dk%2Eslice%28p%29%3BU%3Dk%2Eslice%280%2Cp%2B1%29%3Bh%3DD%2Econcat%28A%29%2Econcat%28U%29%2Econcat%28G%29%3BD%3Dq%3Bbreak%7Dif%280%3C%3Dp%29break%3Bw%5BE%5D%3D%210%7Dif%280%3C%3Dp%29break%7D%7Dreturn%20h%7D%28a%2Cb%29%3Bvar%20q%3DTHREE%2EFontUtils%2ETriangulate%28f%2C%211%29%3Bf%3D0%3Bfor%28g%3Dq%2Elength%3Bf%3Cg%3Bf%2B%2B%29for%28k%3Dq%5Bf%5D%2Ch%3D0%3B3%3Eh%3Bh%2B%2B%29n%3Dk%5Bh%5D%2Ex%2B%22%3A%22%2Bk%5Bh%5D%2Ey%2C%0An%3Dp%5Bn%5D%2Cvoid%200%21%3D%3Dn%26%26%28k%5Bh%5D%3Dn%29%3Breturn%20q%2Econcat%28%29%7D%2CisClockWise%3Afunction%28a%29%7Breturn%200%3ETHREE%2EFontUtils%2ETriangulate%2Earea%28a%29%7D%2Cb2p0%3Afunction%28a%2Cb%29%7Bvar%20c%3D1%2Da%3Breturn%20c%2Ac%2Ab%7D%2Cb2p1%3Afunction%28a%2Cb%29%7Breturn%202%2A%281%2Da%29%2Aa%2Ab%7D%2Cb2p2%3Afunction%28a%2Cb%29%7Breturn%20a%2Aa%2Ab%7D%2Cb2%3Afunction%28a%2Cb%2Cc%2Cd%29%7Breturn%20this%2Eb2p0%28a%2Cb%29%2Bthis%2Eb2p1%28a%2Cc%29%2Bthis%2Eb2p2%28a%2Cd%29%7D%2Cb3p0%3Afunction%28a%2Cb%29%7Bvar%20c%3D1%2Da%3Breturn%20c%2Ac%2Ac%2Ab%7D%2Cb3p1%3Afunction%28a%2Cb%29%7Bvar%20c%3D1%2Da%3Breturn%203%2Ac%2Ac%2Aa%2Ab%7D%2Cb3p2%3Afunction%28a%2Cb%29%7Breturn%203%2A%281%2Da%29%2Aa%2Aa%2Ab%7D%2Cb3p3%3Afunction%28a%2Cb%29%7Breturn%20a%2Aa%2Aa%2Ab%7D%2Cb3%3Afunction%28a%2Cb%2Cc%2Cd%2Ce%29%7Breturn%20this%2Eb3p0%28a%2C%0Ab%29%2Bthis%2Eb3p1%28a%2Cc%29%2Bthis%2Eb3p2%28a%2Cd%29%2Bthis%2Eb3p3%28a%2Ce%29%7D%7D%3BTHREE%2ELineCurve%3Dfunction%28a%2Cb%29%7Bthis%2Ev1%3Da%3Bthis%2Ev2%3Db%7D%3BTHREE%2ELineCurve%2Eprototype%3DObject%2Ecreate%28THREE%2ECurve%2Eprototype%29%3BTHREE%2ELineCurve%2Eprototype%2Econstructor%3DTHREE%2ELineCurve%3BTHREE%2ELineCurve%2Eprototype%2EgetPoint%3Dfunction%28a%29%7Bvar%20b%3Dthis%2Ev2%2Eclone%28%29%2Esub%28this%2Ev1%29%3Bb%2EmultiplyScalar%28a%29%2Eadd%28this%2Ev1%29%3Breturn%20b%7D%3BTHREE%2ELineCurve%2Eprototype%2EgetPointAt%3Dfunction%28a%29%7Breturn%20this%2EgetPoint%28a%29%7D%3BTHREE%2ELineCurve%2Eprototype%2EgetTangent%3Dfunction%28a%29%7Breturn%20this%2Ev2%2Eclone%28%29%2Esub%28this%2Ev1%29%2Enormalize%28%29%7D%3B%0ATHREE%2EQuadraticBezierCurve%3Dfunction%28a%2Cb%2Cc%29%7Bthis%2Ev0%3Da%3Bthis%2Ev1%3Db%3Bthis%2Ev2%3Dc%7D%3BTHREE%2EQuadraticBezierCurve%2Eprototype%3DObject%2Ecreate%28THREE%2ECurve%2Eprototype%29%3BTHREE%2EQuadraticBezierCurve%2Eprototype%2Econstructor%3DTHREE%2EQuadraticBezierCurve%3BTHREE%2EQuadraticBezierCurve%2Eprototype%2EgetPoint%3Dfunction%28a%29%7Bvar%20b%3Dnew%20THREE%2EVector2%3Bb%2Ex%3DTHREE%2EShape%2EUtils%2Eb2%28a%2Cthis%2Ev0%2Ex%2Cthis%2Ev1%2Ex%2Cthis%2Ev2%2Ex%29%3Bb%2Ey%3DTHREE%2EShape%2EUtils%2Eb2%28a%2Cthis%2Ev0%2Ey%2Cthis%2Ev1%2Ey%2Cthis%2Ev2%2Ey%29%3Breturn%20b%7D%3B%0ATHREE%2EQuadraticBezierCurve%2Eprototype%2EgetTangent%3Dfunction%28a%29%7Bvar%20b%3Dnew%20THREE%2EVector2%3Bb%2Ex%3DTHREE%2ECurve%2EUtils%2EtangentQuadraticBezier%28a%2Cthis%2Ev0%2Ex%2Cthis%2Ev1%2Ex%2Cthis%2Ev2%2Ex%29%3Bb%2Ey%3DTHREE%2ECurve%2EUtils%2EtangentQuadraticBezier%28a%2Cthis%2Ev0%2Ey%2Cthis%2Ev1%2Ey%2Cthis%2Ev2%2Ey%29%3Breturn%20b%2Enormalize%28%29%7D%3BTHREE%2ECubicBezierCurve%3Dfunction%28a%2Cb%2Cc%2Cd%29%7Bthis%2Ev0%3Da%3Bthis%2Ev1%3Db%3Bthis%2Ev2%3Dc%3Bthis%2Ev3%3Dd%7D%3BTHREE%2ECubicBezierCurve%2Eprototype%3DObject%2Ecreate%28THREE%2ECurve%2Eprototype%29%3BTHREE%2ECubicBezierCurve%2Eprototype%2Econstructor%3DTHREE%2ECubicBezierCurve%3B%0ATHREE%2ECubicBezierCurve%2Eprototype%2EgetPoint%3Dfunction%28a%29%7Bvar%20b%3Bb%3DTHREE%2EShape%2EUtils%2Eb3%28a%2Cthis%2Ev0%2Ex%2Cthis%2Ev1%2Ex%2Cthis%2Ev2%2Ex%2Cthis%2Ev3%2Ex%29%3Ba%3DTHREE%2EShape%2EUtils%2Eb3%28a%2Cthis%2Ev0%2Ey%2Cthis%2Ev1%2Ey%2Cthis%2Ev2%2Ey%2Cthis%2Ev3%2Ey%29%3Breturn%20new%20THREE%2EVector2%28b%2Ca%29%7D%3BTHREE%2ECubicBezierCurve%2Eprototype%2EgetTangent%3Dfunction%28a%29%7Bvar%20b%3Bb%3DTHREE%2ECurve%2EUtils%2EtangentCubicBezier%28a%2Cthis%2Ev0%2Ex%2Cthis%2Ev1%2Ex%2Cthis%2Ev2%2Ex%2Cthis%2Ev3%2Ex%29%3Ba%3DTHREE%2ECurve%2EUtils%2EtangentCubicBezier%28a%2Cthis%2Ev0%2Ey%2Cthis%2Ev1%2Ey%2Cthis%2Ev2%2Ey%2Cthis%2Ev3%2Ey%29%3Bb%3Dnew%20THREE%2EVector2%28b%2Ca%29%3Bb%2Enormalize%28%29%3Breturn%20b%7D%3B%0ATHREE%2ESplineCurve%3Dfunction%28a%29%7Bthis%2Epoints%3Dvoid%200%3D%3Da%3F%5B%5D%3Aa%7D%3BTHREE%2ESplineCurve%2Eprototype%3DObject%2Ecreate%28THREE%2ECurve%2Eprototype%29%3BTHREE%2ESplineCurve%2Eprototype%2Econstructor%3DTHREE%2ESplineCurve%3B%0ATHREE%2ESplineCurve%2Eprototype%2EgetPoint%3Dfunction%28a%29%7Bvar%20b%3Dthis%2Epoints%3Ba%2A%3Db%2Elength%2D1%3Bvar%20c%3DMath%2Efloor%28a%29%3Ba%2D%3Dc%3Bvar%20d%3Db%5B0%3D%3Dc%3Fc%3Ac%2D1%5D%2Ce%3Db%5Bc%5D%2Cf%3Db%5Bc%3Eb%2Elength%2D2%3Fb%2Elength%2D1%3Ac%2B1%5D%2Cb%3Db%5Bc%3Eb%2Elength%2D3%3Fb%2Elength%2D1%3Ac%2B2%5D%2Cc%3Dnew%20THREE%2EVector2%3Bc%2Ex%3DTHREE%2ECurve%2EUtils%2Einterpolate%28d%2Ex%2Ce%2Ex%2Cf%2Ex%2Cb%2Ex%2Ca%29%3Bc%2Ey%3DTHREE%2ECurve%2EUtils%2Einterpolate%28d%2Ey%2Ce%2Ey%2Cf%2Ey%2Cb%2Ey%2Ca%29%3Breturn%20c%7D%3BTHREE%2EEllipseCurve%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%2Cg%29%7Bthis%2EaX%3Da%3Bthis%2EaY%3Db%3Bthis%2ExRadius%3Dc%3Bthis%2EyRadius%3Dd%3Bthis%2EaStartAngle%3De%3Bthis%2EaEndAngle%3Df%3Bthis%2EaClockwise%3Dg%7D%3B%0ATHREE%2EEllipseCurve%2Eprototype%3DObject%2Ecreate%28THREE%2ECurve%2Eprototype%29%3BTHREE%2EEllipseCurve%2Eprototype%2Econstructor%3DTHREE%2EEllipseCurve%3BTHREE%2EEllipseCurve%2Eprototype%2EgetPoint%3Dfunction%28a%29%7Bvar%20b%3Dthis%2EaEndAngle%2Dthis%2EaStartAngle%3B0%3Eb%26%26%28b%2B%3D2%2AMath%2EPI%29%3Bb%3E2%2AMath%2EPI%26%26%28b%2D%3D2%2AMath%2EPI%29%3Ba%3D%210%3D%3D%3Dthis%2EaClockwise%3Fthis%2EaEndAngle%2B%281%2Da%29%2A%282%2AMath%2EPI%2Db%29%3Athis%2EaStartAngle%2Ba%2Ab%3Bb%3Dnew%20THREE%2EVector2%3Bb%2Ex%3Dthis%2EaX%2Bthis%2ExRadius%2AMath%2Ecos%28a%29%3Bb%2Ey%3Dthis%2EaY%2Bthis%2EyRadius%2AMath%2Esin%28a%29%3Breturn%20b%7D%3B%0ATHREE%2EArcCurve%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%29%7BTHREE%2EEllipseCurve%2Ecall%28this%2Ca%2Cb%2Cc%2Cc%2Cd%2Ce%2Cf%29%7D%3BTHREE%2EArcCurve%2Eprototype%3DObject%2Ecreate%28THREE%2EEllipseCurve%2Eprototype%29%3BTHREE%2EArcCurve%2Eprototype%2Econstructor%3DTHREE%2EArcCurve%3BTHREE%2ELineCurve3%3DTHREE%2ECurve%2Ecreate%28function%28a%2Cb%29%7Bthis%2Ev1%3Da%3Bthis%2Ev2%3Db%7D%2Cfunction%28a%29%7Bvar%20b%3Dnew%20THREE%2EVector3%3Bb%2EsubVectors%28this%2Ev2%2Cthis%2Ev1%29%3Bb%2EmultiplyScalar%28a%29%3Bb%2Eadd%28this%2Ev1%29%3Breturn%20b%7D%29%3B%0ATHREE%2EQuadraticBezierCurve3%3DTHREE%2ECurve%2Ecreate%28function%28a%2Cb%2Cc%29%7Bthis%2Ev0%3Da%3Bthis%2Ev1%3Db%3Bthis%2Ev2%3Dc%7D%2Cfunction%28a%29%7Bvar%20b%3Dnew%20THREE%2EVector3%3Bb%2Ex%3DTHREE%2EShape%2EUtils%2Eb2%28a%2Cthis%2Ev0%2Ex%2Cthis%2Ev1%2Ex%2Cthis%2Ev2%2Ex%29%3Bb%2Ey%3DTHREE%2EShape%2EUtils%2Eb2%28a%2Cthis%2Ev0%2Ey%2Cthis%2Ev1%2Ey%2Cthis%2Ev2%2Ey%29%3Bb%2Ez%3DTHREE%2EShape%2EUtils%2Eb2%28a%2Cthis%2Ev0%2Ez%2Cthis%2Ev1%2Ez%2Cthis%2Ev2%2Ez%29%3Breturn%20b%7D%29%3B%0ATHREE%2ECubicBezierCurve3%3DTHREE%2ECurve%2Ecreate%28function%28a%2Cb%2Cc%2Cd%29%7Bthis%2Ev0%3Da%3Bthis%2Ev1%3Db%3Bthis%2Ev2%3Dc%3Bthis%2Ev3%3Dd%7D%2Cfunction%28a%29%7Bvar%20b%3Dnew%20THREE%2EVector3%3Bb%2Ex%3DTHREE%2EShape%2EUtils%2Eb3%28a%2Cthis%2Ev0%2Ex%2Cthis%2Ev1%2Ex%2Cthis%2Ev2%2Ex%2Cthis%2Ev3%2Ex%29%3Bb%2Ey%3DTHREE%2EShape%2EUtils%2Eb3%28a%2Cthis%2Ev0%2Ey%2Cthis%2Ev1%2Ey%2Cthis%2Ev2%2Ey%2Cthis%2Ev3%2Ey%29%3Bb%2Ez%3DTHREE%2EShape%2EUtils%2Eb3%28a%2Cthis%2Ev0%2Ez%2Cthis%2Ev1%2Ez%2Cthis%2Ev2%2Ez%2Cthis%2Ev3%2Ez%29%3Breturn%20b%7D%29%3B%0ATHREE%2ESplineCurve3%3DTHREE%2ECurve%2Ecreate%28function%28a%29%7Bthis%2Epoints%3Dvoid%200%3D%3Da%3F%5B%5D%3Aa%7D%2Cfunction%28a%29%7Bvar%20b%3Dthis%2Epoints%3Ba%2A%3Db%2Elength%2D1%3Bvar%20c%3DMath%2Efloor%28a%29%3Ba%2D%3Dc%3Bvar%20d%3Db%5B0%3D%3Dc%3Fc%3Ac%2D1%5D%2Ce%3Db%5Bc%5D%2Cf%3Db%5Bc%3Eb%2Elength%2D2%3Fb%2Elength%2D1%3Ac%2B1%5D%2Cb%3Db%5Bc%3Eb%2Elength%2D3%3Fb%2Elength%2D1%3Ac%2B2%5D%2Cc%3Dnew%20THREE%2EVector3%3Bc%2Ex%3DTHREE%2ECurve%2EUtils%2Einterpolate%28d%2Ex%2Ce%2Ex%2Cf%2Ex%2Cb%2Ex%2Ca%29%3Bc%2Ey%3DTHREE%2ECurve%2EUtils%2Einterpolate%28d%2Ey%2Ce%2Ey%2Cf%2Ey%2Cb%2Ey%2Ca%29%3Bc%2Ez%3DTHREE%2ECurve%2EUtils%2Einterpolate%28d%2Ez%2Ce%2Ez%2Cf%2Ez%2Cb%2Ez%2Ca%29%3Breturn%20c%7D%29%3B%0ATHREE%2EClosedSplineCurve3%3DTHREE%2ECurve%2Ecreate%28function%28a%29%7Bthis%2Epoints%3Dvoid%200%3D%3Da%3F%5B%5D%3Aa%7D%2Cfunction%28a%29%7Bvar%20b%3Dthis%2Epoints%3Ba%2A%3Db%2Elength%2D0%3Bvar%20c%3DMath%2Efloor%28a%29%3Ba%2D%3Dc%3Bvar%20c%3Dc%2B%280%3Cc%3F0%3A%28Math%2Efloor%28Math%2Eabs%28c%29%2Fb%2Elength%29%2B1%29%2Ab%2Elength%29%2Cd%3Db%5B%28c%2D1%29%25b%2Elength%5D%2Ce%3Db%5Bc%25b%2Elength%5D%2Cf%3Db%5B%28c%2B1%29%25b%2Elength%5D%2Cb%3Db%5B%28c%2B2%29%25b%2Elength%5D%2Cc%3Dnew%20THREE%2EVector3%3Bc%2Ex%3DTHREE%2ECurve%2EUtils%2Einterpolate%28d%2Ex%2Ce%2Ex%2Cf%2Ex%2Cb%2Ex%2Ca%29%3Bc%2Ey%3DTHREE%2ECurve%2EUtils%2Einterpolate%28d%2Ey%2Ce%2Ey%2Cf%2Ey%2Cb%2Ey%2Ca%29%3Bc%2Ez%3DTHREE%2ECurve%2EUtils%2Einterpolate%28d%2Ez%2Ce%2Ez%2Cf%2Ez%2Cb%2Ez%2Ca%29%3Breturn%20c%7D%29%3B%0ATHREE%2EAnimationHandler%3D%7BLINEAR%3A0%2CCATMULLROM%3A1%2CCATMULLROM%5FFORWARD%3A2%2Cadd%3Afunction%28%29%7Bconsole%2Ewarn%28%22THREE%2EAnimationHandler%2Eadd%28%29%20has%20been%20deprecated%2E%22%29%7D%2Cget%3Afunction%28%29%7Bconsole%2Ewarn%28%22THREE%2EAnimationHandler%2Eget%28%29%20has%20been%20deprecated%2E%22%29%7D%2Cremove%3Afunction%28%29%7Bconsole%2Ewarn%28%22THREE%2EAnimationHandler%2Eremove%28%29%20has%20been%20deprecated%2E%22%29%7D%2Canimations%3A%5B%5D%2Cinit%3Afunction%28a%29%7Bif%28%210%3D%3D%3Da%2Einitialized%29return%20a%3Bfor%28var%20b%3D0%3Bb%3Ca%2Ehierarchy%2Elength%3Bb%2B%2B%29%7Bfor%28var%20c%3D0%3Bc%3Ca%2Ehierarchy%5Bb%5D%2Ekeys%2Elength%3Bc%2B%2B%29if%280%3Ea%2Ehierarchy%5Bb%5D%2Ekeys%5Bc%5D%2Etime%26%26%28a%2Ehierarchy%5Bb%5D%2Ekeys%5Bc%5D%2Etime%3D%0A0%29%2Cvoid%200%21%3D%3Da%2Ehierarchy%5Bb%5D%2Ekeys%5Bc%5D%2Erot%26%26%21%28a%2Ehierarchy%5Bb%5D%2Ekeys%5Bc%5D%2Erot%20instanceof%20THREE%2EQuaternion%29%29%7Bvar%20d%3Da%2Ehierarchy%5Bb%5D%2Ekeys%5Bc%5D%2Erot%3Ba%2Ehierarchy%5Bb%5D%2Ekeys%5Bc%5D%2Erot%3D%28new%20THREE%2EQuaternion%29%2EfromArray%28d%29%7Dif%28a%2Ehierarchy%5Bb%5D%2Ekeys%2Elength%26%26void%200%21%3D%3Da%2Ehierarchy%5Bb%5D%2Ekeys%5B0%5D%2EmorphTargets%29%7Bd%3D%7B%7D%3Bfor%28c%3D0%3Bc%3Ca%2Ehierarchy%5Bb%5D%2Ekeys%2Elength%3Bc%2B%2B%29for%28var%20e%3D0%3Be%3Ca%2Ehierarchy%5Bb%5D%2Ekeys%5Bc%5D%2EmorphTargets%2Elength%3Be%2B%2B%29%7Bvar%20f%3Da%2Ehierarchy%5Bb%5D%2Ekeys%5Bc%5D%2EmorphTargets%5Be%5D%3Bd%5Bf%5D%3D%2D1%7Da%2Ehierarchy%5Bb%5D%2EusedMorphTargets%3Dd%3Bfor%28c%3D0%3Bc%3Ca%2Ehierarchy%5Bb%5D%2Ekeys%2Elength%3Bc%2B%2B%29%7Bvar%20g%3D%0A%7B%7D%3Bfor%28f%20in%20d%29%7Bfor%28e%3D0%3Be%3Ca%2Ehierarchy%5Bb%5D%2Ekeys%5Bc%5D%2EmorphTargets%2Elength%3Be%2B%2B%29if%28a%2Ehierarchy%5Bb%5D%2Ekeys%5Bc%5D%2EmorphTargets%5Be%5D%3D%3D%3Df%29%7Bg%5Bf%5D%3Da%2Ehierarchy%5Bb%5D%2Ekeys%5Bc%5D%2EmorphTargetsInfluences%5Be%5D%3Bbreak%7De%3D%3D%3Da%2Ehierarchy%5Bb%5D%2Ekeys%5Bc%5D%2EmorphTargets%2Elength%26%26%28g%5Bf%5D%3D0%29%7Da%2Ehierarchy%5Bb%5D%2Ekeys%5Bc%5D%2EmorphTargetsInfluences%3Dg%7D%7Dfor%28c%3D1%3Bc%3Ca%2Ehierarchy%5Bb%5D%2Ekeys%2Elength%3Bc%2B%2B%29a%2Ehierarchy%5Bb%5D%2Ekeys%5Bc%5D%2Etime%3D%3D%3Da%2Ehierarchy%5Bb%5D%2Ekeys%5Bc%2D1%5D%2Etime%26%26%28a%2Ehierarchy%5Bb%5D%2Ekeys%2Esplice%28c%2C1%29%2Cc%2D%2D%29%3Bfor%28c%3D0%3Bc%3Ca%2Ehierarchy%5Bb%5D%2Ekeys%2Elength%3Bc%2B%2B%29a%2Ehierarchy%5Bb%5D%2Ekeys%5Bc%5D%2Eindex%3Dc%7Da%2Einitialized%3D%0A%210%3Breturn%20a%7D%2Cparse%3Afunction%28a%29%7Bvar%20b%3Dfunction%28a%2Cc%29%7Bc%2Epush%28a%29%3Bfor%28var%20d%3D0%3Bd%3Ca%2Echildren%2Elength%3Bd%2B%2B%29b%28a%2Echildren%5Bd%5D%2Cc%29%7D%2Cc%3D%5B%5D%3Bif%28a%20instanceof%20THREE%2ESkinnedMesh%29for%28var%20d%3D0%3Bd%3Ca%2Eskeleton%2Ebones%2Elength%3Bd%2B%2B%29c%2Epush%28a%2Eskeleton%2Ebones%5Bd%5D%29%3Belse%20b%28a%2Cc%29%3Breturn%20c%7D%2Cplay%3Afunction%28a%29%7B%2D1%3D%3D%3Dthis%2Eanimations%2EindexOf%28a%29%26%26this%2Eanimations%2Epush%28a%29%7D%2Cstop%3Afunction%28a%29%7Ba%3Dthis%2Eanimations%2EindexOf%28a%29%3B%2D1%21%3D%3Da%26%26this%2Eanimations%2Esplice%28a%2C1%29%7D%2Cupdate%3Afunction%28a%29%7Bfor%28var%20b%3D0%3Bb%3Cthis%2Eanimations%2Elength%3Bb%2B%2B%29this%2Eanimations%5Bb%5D%2EresetBlendWeights%28%29%3B%0Afor%28b%3D0%3Bb%3Cthis%2Eanimations%2Elength%3Bb%2B%2B%29this%2Eanimations%5Bb%5D%2Eupdate%28a%29%7D%7D%3BTHREE%2EAnimation%3Dfunction%28a%2Cb%29%7Bthis%2Eroot%3Da%3Bthis%2Edata%3DTHREE%2EAnimationHandler%2Einit%28b%29%3Bthis%2Ehierarchy%3DTHREE%2EAnimationHandler%2Eparse%28a%29%3Bthis%2EcurrentTime%3D0%3Bthis%2EtimeScale%3D1%3Bthis%2EisPlaying%3D%211%3Bthis%2Eloop%3D%210%3Bthis%2Eweight%3D0%3Bthis%2EinterpolationType%3DTHREE%2EAnimationHandler%2ELINEAR%7D%3BTHREE%2EAnimation%2Eprototype%2EkeyTypes%3D%5B%22pos%22%2C%22rot%22%2C%22scl%22%5D%3B%0ATHREE%2EAnimation%2Eprototype%2Eplay%3Dfunction%28a%2Cb%29%7Bthis%2EcurrentTime%3Dvoid%200%21%3D%3Da%3Fa%3A0%3Bthis%2Eweight%3Dvoid%200%21%3D%3Db%3Fb%3A1%3Bthis%2EisPlaying%3D%210%3Bthis%2Ereset%28%29%3BTHREE%2EAnimationHandler%2Eplay%28this%29%7D%3BTHREE%2EAnimation%2Eprototype%2Estop%3Dfunction%28%29%7Bthis%2EisPlaying%3D%211%3BTHREE%2EAnimationHandler%2Estop%28this%29%7D%3B%0ATHREE%2EAnimation%2Eprototype%2Ereset%3Dfunction%28%29%7Bfor%28var%20a%3D0%2Cb%3Dthis%2Ehierarchy%2Elength%3Ba%3Cb%3Ba%2B%2B%29%7Bvar%20c%3Dthis%2Ehierarchy%5Ba%5D%3Bvoid%200%3D%3D%3Dc%2EanimationCache%26%26%28c%2EanimationCache%3D%7Banimations%3A%7B%7D%2Cblending%3A%7BpositionWeight%3A0%2CquaternionWeight%3A0%2CscaleWeight%3A0%7D%7D%29%3Bvoid%200%3D%3D%3Dc%2EanimationCache%2Eanimations%5Bthis%2Edata%2Ename%5D%26%26%28c%2EanimationCache%2Eanimations%5Bthis%2Edata%2Ename%5D%3D%7B%7D%2Cc%2EanimationCache%2Eanimations%5Bthis%2Edata%2Ename%5D%2EprevKey%3D%7Bpos%3A0%2Crot%3A0%2Cscl%3A0%7D%2Cc%2EanimationCache%2Eanimations%5Bthis%2Edata%2Ename%5D%2EnextKey%3D%7Bpos%3A0%2Crot%3A0%2Cscl%3A0%7D%2Cc%2EanimationCache%2Eanimations%5Bthis%2Edata%2Ename%5D%2EoriginalMatrix%3D%0Ac%2Ematrix%29%3Bfor%28var%20c%3Dc%2EanimationCache%2Eanimations%5Bthis%2Edata%2Ename%5D%2Cd%3D0%3B3%3Ed%3Bd%2B%2B%29%7Bfor%28var%20e%3Dthis%2EkeyTypes%5Bd%5D%2Cf%3Dthis%2Edata%2Ehierarchy%5Ba%5D%2Ekeys%5B0%5D%2Cg%3Dthis%2EgetNextKeyWith%28e%2Ca%2C1%29%3Bg%2Etime%3Cthis%2EcurrentTime%26%26g%2Eindex%3Ef%2Eindex%3B%29f%3Dg%2Cg%3Dthis%2EgetNextKeyWith%28e%2Ca%2Cg%2Eindex%2B1%29%3Bc%2EprevKey%5Be%5D%3Df%3Bc%2EnextKey%5Be%5D%3Dg%7D%7D%7D%3B%0ATHREE%2EAnimation%2Eprototype%2EresetBlendWeights%3Dfunction%28%29%7Bfor%28var%20a%3D0%2Cb%3Dthis%2Ehierarchy%2Elength%3Ba%3Cb%3Ba%2B%2B%29%7Bvar%20c%3Dthis%2Ehierarchy%5Ba%5D%3Bvoid%200%21%3D%3Dc%2EanimationCache%26%26%28c%2EanimationCache%2Eblending%2EpositionWeight%3D0%2Cc%2EanimationCache%2Eblending%2EquaternionWeight%3D0%2Cc%2EanimationCache%2Eblending%2EscaleWeight%3D0%29%7D%7D%3B%0ATHREE%2EAnimation%2Eprototype%2Eupdate%3Dfunction%28%29%7Bvar%20a%3D%5B%5D%2Cb%3Dnew%20THREE%2EVector3%2Cc%3Dnew%20THREE%2EVector3%2Cd%3Dnew%20THREE%2EQuaternion%2Ce%3Dfunction%28a%2Cb%29%7Bvar%20c%3D%5B%5D%2Cd%3D%5B%5D%2Ce%2Cq%2Cm%2Ct%2Cs%2Cr%3Be%3D%28a%2Elength%2D1%29%2Ab%3Bq%3DMath%2Efloor%28e%29%3Be%2D%3Dq%3Bc%5B0%5D%3D0%3D%3D%3Dq%3Fq%3Aq%2D1%3Bc%5B1%5D%3Dq%3Bc%5B2%5D%3Dq%3Ea%2Elength%2D2%3Fq%3Aq%2B1%3Bc%5B3%5D%3Dq%3Ea%2Elength%2D3%3Fq%3Aq%2B2%3Bq%3Da%5Bc%5B0%5D%5D%3Bt%3Da%5Bc%5B1%5D%5D%3Bs%3Da%5Bc%5B2%5D%5D%3Br%3Da%5Bc%5B3%5D%5D%3Bc%3De%2Ae%3Bm%3De%2Ac%3Bd%5B0%5D%3Df%28q%5B0%5D%2Ct%5B0%5D%2Cs%5B0%5D%2Cr%5B0%5D%2Ce%2Cc%2Cm%29%3Bd%5B1%5D%3Df%28q%5B1%5D%2Ct%5B1%5D%2Cs%5B1%5D%2Cr%5B1%5D%2Ce%2Cc%2Cm%29%3Bd%5B2%5D%3Df%28q%5B2%5D%2Ct%5B2%5D%2Cs%5B2%5D%2Cr%5B2%5D%2Ce%2Cc%2Cm%29%3Breturn%20d%7D%2Cf%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%2Cm%29%7Ba%3D%2E5%2A%28c%2Da%29%3Bd%3D%2E5%2A%28d%2Db%29%3Breturn%282%2A%28b%2Dc%29%2Ba%2Bd%29%2Am%2B%0A%28%2D3%2A%28b%2Dc%29%2D2%2Aa%2Dd%29%2Af%2Ba%2Ae%2Bb%7D%3Breturn%20function%28f%29%7Bif%28%211%21%3D%3Dthis%2EisPlaying%26%26%28this%2EcurrentTime%2B%3Df%2Athis%2EtimeScale%2C0%21%3D%3Dthis%2Eweight%29%29%7Bf%3Dthis%2Edata%2Elength%3Bif%28this%2EcurrentTime%3Ef%7C%7C0%3Ethis%2EcurrentTime%29this%2Eloop%3F%28this%2EcurrentTime%25%3Df%2C0%3Ethis%2EcurrentTime%26%26%28this%2EcurrentTime%2B%3Df%29%2Cthis%2Ereset%28%29%29%3Athis%2Estop%28%29%3Bf%3D0%3Bfor%28var%20h%3Dthis%2Ehierarchy%2Elength%3Bf%3Ch%3Bf%2B%2B%29for%28var%20k%3Dthis%2Ehierarchy%5Bf%5D%2Cn%3Dk%2EanimationCache%2Eanimations%5Bthis%2Edata%2Ename%5D%2Cp%3Dk%2EanimationCache%2Eblending%2Cq%3D0%3B3%3Eq%3Bq%2B%2B%29%7Bvar%20m%3Dthis%2EkeyTypes%5Bq%5D%2Ct%3Dn%2EprevKey%5Bm%5D%2Cs%3Dn%2EnextKey%5Bm%5D%3Bif%280%3Cthis%2EtimeScale%26%26%0As%2Etime%3C%3Dthis%2EcurrentTime%7C%7C0%3Ethis%2EtimeScale%26%26t%2Etime%3E%3Dthis%2EcurrentTime%29%7Bt%3Dthis%2Edata%2Ehierarchy%5Bf%5D%2Ekeys%5B0%5D%3Bfor%28s%3Dthis%2EgetNextKeyWith%28m%2Cf%2C1%29%3Bs%2Etime%3Cthis%2EcurrentTime%26%26s%2Eindex%3Et%2Eindex%3B%29t%3Ds%2Cs%3Dthis%2EgetNextKeyWith%28m%2Cf%2Cs%2Eindex%2B1%29%3Bn%2EprevKey%5Bm%5D%3Dt%3Bn%2EnextKey%5Bm%5D%3Ds%7Dvar%20r%3D%28this%2EcurrentTime%2Dt%2Etime%29%2F%28s%2Etime%2Dt%2Etime%29%2Cu%3Dt%5Bm%5D%2Cv%3Ds%5Bm%5D%3B0%3Er%26%26%28r%3D0%29%3B1%3Cr%26%26%28r%3D1%29%3Bif%28%22pos%22%3D%3D%3Dm%29if%28this%2EinterpolationType%3D%3D%3DTHREE%2EAnimationHandler%2ELINEAR%29c%2Ex%3Du%5B0%5D%2B%28v%5B0%5D%2Du%5B0%5D%29%2Ar%2Cc%2Ey%3Du%5B1%5D%2B%28v%5B1%5D%2Du%5B1%5D%29%2Ar%2Cc%2Ez%3Du%5B2%5D%2B%28v%5B2%5D%2Du%5B2%5D%29%2Ar%2Ct%3Dthis%2Eweight%2F%28this%2Eweight%2Bp%2EpositionWeight%29%2C%0Ak%2Eposition%2Elerp%28c%2Ct%29%2Cp%2EpositionWeight%2B%3Dthis%2Eweight%3Belse%7Bif%28this%2EinterpolationType%3D%3D%3DTHREE%2EAnimationHandler%2ECATMULLROM%7C%7Cthis%2EinterpolationType%3D%3D%3DTHREE%2EAnimationHandler%2ECATMULLROM%5FFORWARD%29a%5B0%5D%3Dthis%2EgetPrevKeyWith%28%22pos%22%2Cf%2Ct%2Eindex%2D1%29%2Epos%2Ca%5B1%5D%3Du%2Ca%5B2%5D%3Dv%2Ca%5B3%5D%3Dthis%2EgetNextKeyWith%28%22pos%22%2Cf%2Cs%2Eindex%2B1%29%2Epos%2Cr%3D%2E33%2Ar%2B%2E33%2Cs%3De%28a%2Cr%29%2Ct%3Dthis%2Eweight%2F%28this%2Eweight%2Bp%2EpositionWeight%29%2Cp%2EpositionWeight%2B%3Dthis%2Eweight%2Cm%3Dk%2Eposition%2Cm%2Ex%2B%3D%28s%5B0%5D%2Dm%2Ex%29%2At%2Cm%2Ey%2B%3D%28s%5B1%5D%2Dm%2Ey%29%2At%2Cm%2Ez%2B%3D%28s%5B2%5D%2Dm%2Ez%29%2At%2Cthis%2EinterpolationType%3D%3D%3DTHREE%2EAnimationHandler%2ECATMULLROM%5FFORWARD%26%26%0A%28r%3De%28a%2C1%2E01%2Ar%29%2Cb%2Eset%28r%5B0%5D%2Cr%5B1%5D%2Cr%5B2%5D%29%2Cb%2Esub%28m%29%2Cb%2Ey%3D0%2Cb%2Enormalize%28%29%2Cr%3DMath%2Eatan2%28b%2Ex%2Cb%2Ez%29%2Ck%2Erotation%2Eset%280%2Cr%2C0%29%29%7Delse%22rot%22%3D%3D%3Dm%3F%28THREE%2EQuaternion%2Eslerp%28u%2Cv%2Cd%2Cr%29%2C0%3D%3D%3Dp%2EquaternionWeight%3F%28k%2Equaternion%2Ecopy%28d%29%2Cp%2EquaternionWeight%3Dthis%2Eweight%29%3A%28t%3Dthis%2Eweight%2F%28this%2Eweight%2Bp%2EquaternionWeight%29%2CTHREE%2EQuaternion%2Eslerp%28k%2Equaternion%2Cd%2Ck%2Equaternion%2Ct%29%2Cp%2EquaternionWeight%2B%3Dthis%2Eweight%29%29%3A%22scl%22%3D%3D%3Dm%26%26%28c%2Ex%3Du%5B0%5D%2B%28v%5B0%5D%2Du%5B0%5D%29%2Ar%2Cc%2Ey%3Du%5B1%5D%2B%28v%5B1%5D%2Du%5B1%5D%29%2Ar%2Cc%2Ez%3Du%5B2%5D%2B%28v%5B2%5D%2Du%5B2%5D%29%2Ar%2Ct%3Dthis%2Eweight%2F%28this%2Eweight%2Bp%2EscaleWeight%29%2Ck%2Escale%2Elerp%28c%2C%0At%29%2Cp%2EscaleWeight%2B%3Dthis%2Eweight%29%7Dreturn%210%7D%7D%7D%28%29%3BTHREE%2EAnimation%2Eprototype%2EgetNextKeyWith%3Dfunction%28a%2Cb%2Cc%29%7Bvar%20d%3Dthis%2Edata%2Ehierarchy%5Bb%5D%2Ekeys%3Bfor%28c%3Dthis%2EinterpolationType%3D%3D%3DTHREE%2EAnimationHandler%2ECATMULLROM%7C%7Cthis%2EinterpolationType%3D%3D%3DTHREE%2EAnimationHandler%2ECATMULLROM%5FFORWARD%3Fc%3Cd%2Elength%2D1%3Fc%3Ad%2Elength%2D1%3Ac%25d%2Elength%3Bc%3Cd%2Elength%3Bc%2B%2B%29if%28void%200%21%3D%3Dd%5Bc%5D%5Ba%5D%29return%20d%5Bc%5D%3Breturn%20this%2Edata%2Ehierarchy%5Bb%5D%2Ekeys%5B0%5D%7D%3B%0ATHREE%2EAnimation%2Eprototype%2EgetPrevKeyWith%3Dfunction%28a%2Cb%2Cc%29%7Bvar%20d%3Dthis%2Edata%2Ehierarchy%5Bb%5D%2Ekeys%3Bfor%28c%3Dthis%2EinterpolationType%3D%3D%3DTHREE%2EAnimationHandler%2ECATMULLROM%7C%7Cthis%2EinterpolationType%3D%3D%3DTHREE%2EAnimationHandler%2ECATMULLROM%5FFORWARD%3F0%3Cc%3Fc%3A0%3A0%3C%3Dc%3Fc%3Ac%2Bd%2Elength%3B0%3C%3Dc%3Bc%2D%2D%29if%28void%200%21%3D%3Dd%5Bc%5D%5Ba%5D%29return%20d%5Bc%5D%3Breturn%20this%2Edata%2Ehierarchy%5Bb%5D%2Ekeys%5Bd%2Elength%2D1%5D%7D%3B%0ATHREE%2EKeyFrameAnimation%3Dfunction%28a%29%7Bthis%2Eroot%3Da%2Enode%3Bthis%2Edata%3DTHREE%2EAnimationHandler%2Einit%28a%29%3Bthis%2Ehierarchy%3DTHREE%2EAnimationHandler%2Eparse%28this%2Eroot%29%3Bthis%2EcurrentTime%3D0%3Bthis%2EtimeScale%3D%2E001%3Bthis%2EisPlaying%3D%211%3Bthis%2Eloop%3Dthis%2EisPaused%3D%210%3Ba%3D0%3Bfor%28var%20b%3Dthis%2Ehierarchy%2Elength%3Ba%3Cb%3Ba%2B%2B%29%7Bvar%20c%3Dthis%2Edata%2Ehierarchy%5Ba%5D%2Esids%2Cd%3Dthis%2Ehierarchy%5Ba%5D%3Bif%28this%2Edata%2Ehierarchy%5Ba%5D%2Ekeys%2Elength%26%26c%29%7Bfor%28var%20e%3D0%3Be%3Cc%2Elength%3Be%2B%2B%29%7Bvar%20f%3Dc%5Be%5D%2Cg%3Dthis%2EgetNextKeyWith%28f%2Ca%2C0%29%3Bg%26%26g%2Eapply%28f%29%7Dd%2EmatrixAutoUpdate%3D%211%3Bthis%2Edata%2Ehierarchy%5Ba%5D%2Enode%2EupdateMatrix%28%29%3B%0Ad%2EmatrixWorldNeedsUpdate%3D%210%7D%7D%7D%3B%0ATHREE%2EKeyFrameAnimation%2Eprototype%2Eplay%3Dfunction%28a%29%7Bthis%2EcurrentTime%3Dvoid%200%21%3D%3Da%3Fa%3A0%3Bif%28%211%3D%3D%3Dthis%2EisPlaying%29%7Bthis%2EisPlaying%3D%210%3Bvar%20b%3Dthis%2Ehierarchy%2Elength%2Cc%2Cd%3Bfor%28a%3D0%3Ba%3Cb%3Ba%2B%2B%29c%3Dthis%2Ehierarchy%5Ba%5D%2Cd%3Dthis%2Edata%2Ehierarchy%5Ba%5D%2Cvoid%200%3D%3D%3Dd%2EanimationCache%26%26%28d%2EanimationCache%3D%7B%7D%2Cd%2EanimationCache%2EprevKey%3Dnull%2Cd%2EanimationCache%2EnextKey%3Dnull%2Cd%2EanimationCache%2EoriginalMatrix%3Dc%2Ematrix%29%2Cc%3Dthis%2Edata%2Ehierarchy%5Ba%5D%2Ekeys%2Cc%2Elength%26%26%28d%2EanimationCache%2EprevKey%3Dc%5B0%5D%2Cd%2EanimationCache%2EnextKey%3Dc%5B1%5D%2Cthis%2EstartTime%3DMath%2Emin%28c%5B0%5D%2Etime%2C%0Athis%2EstartTime%29%2Cthis%2EendTime%3DMath%2Emax%28c%5Bc%2Elength%2D1%5D%2Etime%2Cthis%2EendTime%29%29%3Bthis%2Eupdate%280%29%7Dthis%2EisPaused%3D%211%3BTHREE%2EAnimationHandler%2Eplay%28this%29%7D%3BTHREE%2EKeyFrameAnimation%2Eprototype%2Estop%3Dfunction%28%29%7Bthis%2EisPaused%3Dthis%2EisPlaying%3D%211%3BTHREE%2EAnimationHandler%2Estop%28this%29%3Bfor%28var%20a%3D0%3Ba%3Cthis%2Edata%2Ehierarchy%2Elength%3Ba%2B%2B%29%7Bvar%20b%3Dthis%2Ehierarchy%5Ba%5D%2Cc%3Dthis%2Edata%2Ehierarchy%5Ba%5D%3Bif%28void%200%21%3D%3Dc%2EanimationCache%29%7Bvar%20d%3Dc%2EanimationCache%2EoriginalMatrix%3Bd%2Ecopy%28b%2Ematrix%29%3Bb%2Ematrix%3Dd%3Bdelete%20c%2EanimationCache%7D%7D%7D%3B%0ATHREE%2EKeyFrameAnimation%2Eprototype%2Eupdate%3Dfunction%28a%29%7Bif%28%211%21%3D%3Dthis%2EisPlaying%29%7Bthis%2EcurrentTime%2B%3Da%2Athis%2EtimeScale%3Ba%3Dthis%2Edata%2Elength%3B%210%3D%3D%3Dthis%2Eloop%26%26this%2EcurrentTime%3Ea%26%26%28this%2EcurrentTime%25%3Da%29%3Bthis%2EcurrentTime%3DMath%2Emin%28this%2EcurrentTime%2Ca%29%3Ba%3D0%3Bfor%28var%20b%3Dthis%2Ehierarchy%2Elength%3Ba%3Cb%3Ba%2B%2B%29%7Bvar%20c%3Dthis%2Ehierarchy%5Ba%5D%2Cd%3Dthis%2Edata%2Ehierarchy%5Ba%5D%2Ce%3Dd%2Ekeys%2Cd%3Dd%2EanimationCache%3Bif%28e%2Elength%29%7Bvar%20f%3Dd%2EprevKey%2Cg%3Dd%2EnextKey%3Bif%28g%2Etime%3C%3Dthis%2EcurrentTime%29%7Bfor%28%3Bg%2Etime%3Cthis%2EcurrentTime%26%26g%2Eindex%3Ef%2Eindex%3B%29f%3Dg%2Cg%3De%5Bf%2Eindex%2B1%5D%3Bd%2EprevKey%3D%0Af%3Bd%2EnextKey%3Dg%7Dg%2Etime%3E%3Dthis%2EcurrentTime%3Ff%2Einterpolate%28g%2Cthis%2EcurrentTime%29%3Af%2Einterpolate%28g%2Cg%2Etime%29%3Bthis%2Edata%2Ehierarchy%5Ba%5D%2Enode%2EupdateMatrix%28%29%3Bc%2EmatrixWorldNeedsUpdate%3D%210%7D%7D%7D%7D%3BTHREE%2EKeyFrameAnimation%2Eprototype%2EgetNextKeyWith%3Dfunction%28a%2Cb%2Cc%29%7Bb%3Dthis%2Edata%2Ehierarchy%5Bb%5D%2Ekeys%3Bfor%28c%25%3Db%2Elength%3Bc%3Cb%2Elength%3Bc%2B%2B%29if%28b%5Bc%5D%2EhasTarget%28a%29%29return%20b%5Bc%5D%3Breturn%20b%5B0%5D%7D%3B%0ATHREE%2EKeyFrameAnimation%2Eprototype%2EgetPrevKeyWith%3Dfunction%28a%2Cb%2Cc%29%7Bb%3Dthis%2Edata%2Ehierarchy%5Bb%5D%2Ekeys%3Bfor%28c%3D0%3C%3Dc%3Fc%3Ac%2Bb%2Elength%3B0%3C%3Dc%3Bc%2D%2D%29if%28b%5Bc%5D%2EhasTarget%28a%29%29return%20b%5Bc%5D%3Breturn%20b%5Bb%2Elength%2D1%5D%7D%3BTHREE%2EMorphAnimation%3Dfunction%28a%29%7Bthis%2Emesh%3Da%3Bthis%2Eframes%3Da%2EmorphTargetInfluences%2Elength%3Bthis%2EcurrentTime%3D0%3Bthis%2Eduration%3D1E3%3Bthis%2Eloop%3D%210%3Bthis%2EcurrentFrame%3Dthis%2ElastFrame%3D0%3Bthis%2EisPlaying%3D%211%7D%3B%0ATHREE%2EMorphAnimation%2Eprototype%3D%7Bconstructor%3ATHREE%2EMorphAnimation%2Cplay%3Afunction%28%29%7Bthis%2EisPlaying%3D%210%7D%2Cpause%3Afunction%28%29%7Bthis%2EisPlaying%3D%211%7D%2Cupdate%3Afunction%28a%29%7Bif%28%211%21%3D%3Dthis%2EisPlaying%29%7Bthis%2EcurrentTime%2B%3Da%3B%210%3D%3D%3Dthis%2Eloop%26%26this%2EcurrentTime%3Ethis%2Eduration%26%26%28this%2EcurrentTime%25%3Dthis%2Eduration%29%3Bthis%2EcurrentTime%3DMath%2Emin%28this%2EcurrentTime%2Cthis%2Eduration%29%3Ba%3Dthis%2Eduration%2Fthis%2Eframes%3Bvar%20b%3DMath%2Efloor%28this%2EcurrentTime%2Fa%29%3Bb%21%3Dthis%2EcurrentFrame%26%26%28this%2Emesh%2EmorphTargetInfluences%5Bthis%2ElastFrame%5D%3D0%2Cthis%2Emesh%2EmorphTargetInfluences%5Bthis%2EcurrentFrame%5D%3D%0A1%2Cthis%2Emesh%2EmorphTargetInfluences%5Bb%5D%3D0%2Cthis%2ElastFrame%3Dthis%2EcurrentFrame%2Cthis%2EcurrentFrame%3Db%29%3Bthis%2Emesh%2EmorphTargetInfluences%5Bb%5D%3Dthis%2EcurrentTime%25a%2Fa%3Bthis%2Emesh%2EmorphTargetInfluences%5Bthis%2ElastFrame%5D%3D1%2Dthis%2Emesh%2EmorphTargetInfluences%5Bb%5D%7D%7D%7D%3B%0ATHREE%2EBoxGeometry%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%29%7Bfunction%20g%28a%2Cb%2Cc%2Cd%2Ce%2Cf%2Cg%2Cr%29%7Bvar%20u%2Cv%3Dh%2EwidthSegments%2Cy%3Dh%2EheightSegments%2CC%3De%2F2%2Cx%3Df%2F2%2CF%3Dh%2Evertices%2Elength%3Bif%28%22x%22%3D%3D%3Da%26%26%22y%22%3D%3D%3Db%7C%7C%22y%22%3D%3D%3Da%26%26%22x%22%3D%3D%3Db%29u%3D%22z%22%3Belse%20if%28%22x%22%3D%3D%3Da%26%26%22z%22%3D%3D%3Db%7C%7C%22z%22%3D%3D%3Da%26%26%22x%22%3D%3D%3Db%29u%3D%22y%22%2Cy%3Dh%2EdepthSegments%3Belse%20if%28%22z%22%3D%3D%3Da%26%26%22y%22%3D%3D%3Db%7C%7C%22y%22%3D%3D%3Da%26%26%22z%22%3D%3D%3Db%29u%3D%22x%22%2Cv%3Dh%2EdepthSegments%3Bvar%20z%3Dv%2B1%2CG%3Dy%2B1%2CE%3De%2Fv%2Cw%3Df%2Fy%2CD%3Dnew%20THREE%2EVector3%3BD%5Bu%5D%3D0%3Cg%3F1%3A%2D1%3Bfor%28e%3D0%3Be%3CG%3Be%2B%2B%29for%28f%3D0%3Bf%3Cz%3Bf%2B%2B%29%7Bvar%20A%3Dnew%20THREE%2EVector3%3BA%5Ba%5D%3D%28f%2AE%2DC%29%2Ac%3BA%5Bb%5D%3D%28e%2Aw%2Dx%29%2Ad%3BA%5Bu%5D%3Dg%3Bh%2Evertices%2Epush%28A%29%7Dfor%28e%3D%0A0%3Be%3Cy%3Be%2B%2B%29for%28f%3D0%3Bf%3Cv%3Bf%2B%2B%29x%3Df%2Bz%2Ae%2Ca%3Df%2Bz%2A%28e%2B1%29%2Cb%3Df%2B1%2Bz%2A%28e%2B1%29%2Cc%3Df%2B1%2Bz%2Ae%2Cd%3Dnew%20THREE%2EVector2%28f%2Fv%2C1%2De%2Fy%29%2Cg%3Dnew%20THREE%2EVector2%28f%2Fv%2C1%2D%28e%2B1%29%2Fy%29%2Cu%3Dnew%20THREE%2EVector2%28%28f%2B1%29%2Fv%2C1%2D%28e%2B1%29%2Fy%29%2CC%3Dnew%20THREE%2EVector2%28%28f%2B1%29%2Fv%2C1%2De%2Fy%29%2Cx%3Dnew%20THREE%2EFace3%28x%2BF%2Ca%2BF%2Cc%2BF%29%2Cx%2Enormal%2Ecopy%28D%29%2Cx%2EvertexNormals%2Epush%28D%2Eclone%28%29%2CD%2Eclone%28%29%2CD%2Eclone%28%29%29%2Cx%2EmaterialIndex%3Dr%2Ch%2Efaces%2Epush%28x%29%2Ch%2EfaceVertexUvs%5B0%5D%2Epush%28%5Bd%2Cg%2CC%5D%29%2Cx%3Dnew%20THREE%2EFace3%28a%2BF%2Cb%2BF%2Cc%2BF%29%2Cx%2Enormal%2Ecopy%28D%29%2Cx%2EvertexNormals%2Epush%28D%2Eclone%28%29%2CD%2Eclone%28%29%2CD%2Eclone%28%29%29%2Cx%2EmaterialIndex%3Dr%2Ch%2Efaces%2Epush%28x%29%2C%0Ah%2EfaceVertexUvs%5B0%5D%2Epush%28%5Bg%2Eclone%28%29%2Cu%2CC%2Eclone%28%29%5D%29%7DTHREE%2EGeometry%2Ecall%28this%29%3Bthis%2Etype%3D%22BoxGeometry%22%3Bthis%2Eparameters%3D%7Bwidth%3Aa%2Cheight%3Ab%2Cdepth%3Ac%2CwidthSegments%3Ad%2CheightSegments%3Ae%2CdepthSegments%3Af%7D%3Bthis%2EwidthSegments%3Dd%7C%7C1%3Bthis%2EheightSegments%3De%7C%7C1%3Bthis%2EdepthSegments%3Df%7C%7C1%3Bvar%20h%3Dthis%3Bd%3Da%2F2%3Be%3Db%2F2%3Bf%3Dc%2F2%3Bg%28%22z%22%2C%22y%22%2C%2D1%2C%2D1%2Cc%2Cb%2Cd%2C0%29%3Bg%28%22z%22%2C%22y%22%2C1%2C%2D1%2Cc%2Cb%2C%2Dd%2C1%29%3Bg%28%22x%22%2C%22z%22%2C1%2C1%2Ca%2Cc%2Ce%2C2%29%3Bg%28%22x%22%2C%22z%22%2C1%2C%2D1%2Ca%2Cc%2C%2De%2C3%29%3Bg%28%22x%22%2C%22y%22%2C1%2C%2D1%2Ca%2Cb%2Cf%2C4%29%3Bg%28%22x%22%2C%22y%22%2C%2D1%2C%2D1%2Ca%2Cb%2C%2Df%2C5%29%3Bthis%2EmergeVertices%28%29%7D%3BTHREE%2EBoxGeometry%2Eprototype%3DObject%2Ecreate%28THREE%2EGeometry%2Eprototype%29%3B%0ATHREE%2EBoxGeometry%2Eprototype%2Econstructor%3DTHREE%2EBoxGeometry%3B%0ATHREE%2ECircleGeometry%3Dfunction%28a%2Cb%2Cc%2Cd%29%7BTHREE%2EGeometry%2Ecall%28this%29%3Bthis%2Etype%3D%22CircleGeometry%22%3Bthis%2Eparameters%3D%7Bradius%3Aa%2Csegments%3Ab%2CthetaStart%3Ac%2CthetaLength%3Ad%7D%3Ba%3Da%7C%7C50%3Bb%3Dvoid%200%21%3D%3Db%3FMath%2Emax%283%2Cb%29%3A8%3Bc%3Dvoid%200%21%3D%3Dc%3Fc%3A0%3Bd%3Dvoid%200%21%3D%3Dd%3Fd%3A2%2AMath%2EPI%3Bvar%20e%2Cf%3D%5B%5D%3Be%3Dnew%20THREE%2EVector3%3Bvar%20g%3Dnew%20THREE%2EVector2%28%2E5%2C%2E5%29%3Bthis%2Evertices%2Epush%28e%29%3Bf%2Epush%28g%29%3Bfor%28e%3D0%3Be%3C%3Db%3Be%2B%2B%29%7Bvar%20h%3Dnew%20THREE%2EVector3%2Ck%3Dc%2Be%2Fb%2Ad%3Bh%2Ex%3Da%2AMath%2Ecos%28k%29%3Bh%2Ey%3Da%2AMath%2Esin%28k%29%3Bthis%2Evertices%2Epush%28h%29%3Bf%2Epush%28new%20THREE%2EVector2%28%28h%2Ex%2Fa%2B1%29%2F2%2C%28h%2Ey%2Fa%2B1%29%2F2%29%29%7Dc%3Dnew%20THREE%2EVector3%280%2C%0A0%2C1%29%3Bfor%28e%3D1%3Be%3C%3Db%3Be%2B%2B%29this%2Efaces%2Epush%28new%20THREE%2EFace3%28e%2Ce%2B1%2C0%2C%5Bc%2Eclone%28%29%2Cc%2Eclone%28%29%2Cc%2Eclone%28%29%5D%29%29%2Cthis%2EfaceVertexUvs%5B0%5D%2Epush%28%5Bf%5Be%5D%2Eclone%28%29%2Cf%5Be%2B1%5D%2Eclone%28%29%2Cg%2Eclone%28%29%5D%29%3Bthis%2EcomputeFaceNormals%28%29%3Bthis%2EboundingSphere%3Dnew%20THREE%2ESphere%28new%20THREE%2EVector3%2Ca%29%7D%3BTHREE%2ECircleGeometry%2Eprototype%3DObject%2Ecreate%28THREE%2EGeometry%2Eprototype%29%3BTHREE%2ECircleGeometry%2Eprototype%2Econstructor%3DTHREE%2ECircleGeometry%3B%0ATHREE%2ECubeGeometry%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%29%7Bconsole%2Ewarn%28%22THREE%2ECubeGeometry%20has%20been%20renamed%20to%20THREE%2EBoxGeometry%2E%22%29%3Breturn%20new%20THREE%2EBoxGeometry%28a%2Cb%2Cc%2Cd%2Ce%2Cf%29%7D%3B%0ATHREE%2ECylinderGeometry%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%2Cg%2Ch%29%7BTHREE%2EGeometry%2Ecall%28this%29%3Bthis%2Etype%3D%22CylinderGeometry%22%3Bthis%2Eparameters%3D%7BradiusTop%3Aa%2CradiusBottom%3Ab%2Cheight%3Ac%2CradialSegments%3Ad%2CheightSegments%3Ae%2CopenEnded%3Af%2CthetaStart%3Ag%2CthetaLength%3Ah%7D%3Ba%3Dvoid%200%21%3D%3Da%3Fa%3A20%3Bb%3Dvoid%200%21%3D%3Db%3Fb%3A20%3Bc%3Dvoid%200%21%3D%3Dc%3Fc%3A100%3Bd%3Dd%7C%7C8%3Be%3De%7C%7C1%3Bf%3Dvoid%200%21%3D%3Df%3Ff%3A%211%3Bg%3Dvoid%200%21%3D%3Dg%3Fg%3A0%3Bh%3Dvoid%200%21%3D%3Dh%3Fh%3A2%2AMath%2EPI%3Bvar%20k%3Dc%2F2%2Cn%2Cp%2Cq%3D%5B%5D%2Cm%3D%5B%5D%3Bfor%28p%3D0%3Bp%3C%3De%3Bp%2B%2B%29%7Bvar%20t%3D%5B%5D%2Cs%3D%5B%5D%2Cr%3Dp%2Fe%2Cu%3Dr%2A%28b%2Da%29%2Ba%3Bfor%28n%3D0%3Bn%3C%3Dd%3Bn%2B%2B%29%7Bvar%20v%3Dn%2Fd%2Cy%3Dnew%20THREE%2EVector3%3By%2Ex%3Du%2AMath%2Esin%28v%2Ah%2B%0Ag%29%3By%2Ey%3D%2Dr%2Ac%2Bk%3By%2Ez%3Du%2AMath%2Ecos%28v%2Ah%2Bg%29%3Bthis%2Evertices%2Epush%28y%29%3Bt%2Epush%28this%2Evertices%2Elength%2D1%29%3Bs%2Epush%28new%20THREE%2EVector2%28v%2C1%2Dr%29%29%7Dq%2Epush%28t%29%3Bm%2Epush%28s%29%7Dc%3D%28b%2Da%29%2Fc%3Bfor%28n%3D0%3Bn%3Cd%3Bn%2B%2B%29for%280%21%3D%3Da%3F%28g%3Dthis%2Evertices%5Bq%5B0%5D%5Bn%5D%5D%2Eclone%28%29%2Ch%3Dthis%2Evertices%5Bq%5B0%5D%5Bn%2B1%5D%5D%2Eclone%28%29%29%3A%28g%3Dthis%2Evertices%5Bq%5B1%5D%5Bn%5D%5D%2Eclone%28%29%2Ch%3Dthis%2Evertices%5Bq%5B1%5D%5Bn%2B1%5D%5D%2Eclone%28%29%29%2Cg%2EsetY%28Math%2Esqrt%28g%2Ex%2Ag%2Ex%2Bg%2Ez%2Ag%2Ez%29%2Ac%29%2Enormalize%28%29%2Ch%2EsetY%28Math%2Esqrt%28h%2Ex%2Ah%2Ex%2Bh%2Ez%2Ah%2Ez%29%2Ac%29%2Enormalize%28%29%2Cp%3D0%3Bp%3Ce%3Bp%2B%2B%29%7Bvar%20t%3Dq%5Bp%5D%5Bn%5D%2Cs%3Dq%5Bp%2B1%5D%5Bn%5D%2Cr%3Dq%5Bp%2B1%5D%5Bn%2B1%5D%2Cu%3Dq%5Bp%5D%5Bn%2B1%5D%2Cv%3Dg%2Eclone%28%29%2Cy%3Dg%2Eclone%28%29%2C%0AC%3Dh%2Eclone%28%29%2Cx%3Dh%2Eclone%28%29%2CF%3Dm%5Bp%5D%5Bn%5D%2Eclone%28%29%2Cz%3Dm%5Bp%2B1%5D%5Bn%5D%2Eclone%28%29%2CG%3Dm%5Bp%2B1%5D%5Bn%2B1%5D%2Eclone%28%29%2CE%3Dm%5Bp%5D%5Bn%2B1%5D%2Eclone%28%29%3Bthis%2Efaces%2Epush%28new%20THREE%2EFace3%28t%2Cs%2Cu%2C%5Bv%2Cy%2Cx%5D%29%29%3Bthis%2EfaceVertexUvs%5B0%5D%2Epush%28%5BF%2Cz%2CE%5D%29%3Bthis%2Efaces%2Epush%28new%20THREE%2EFace3%28s%2Cr%2Cu%2C%5By%2Eclone%28%29%2CC%2Cx%2Eclone%28%29%5D%29%29%3Bthis%2EfaceVertexUvs%5B0%5D%2Epush%28%5Bz%2Eclone%28%29%2CG%2CE%2Eclone%28%29%5D%29%7Dif%28%211%3D%3D%3Df%26%260%3Ca%29for%28this%2Evertices%2Epush%28new%20THREE%2EVector3%280%2Ck%2C0%29%29%2Cn%3D0%3Bn%3Cd%3Bn%2B%2B%29t%3Dq%5B0%5D%5Bn%5D%2Cs%3Dq%5B0%5D%5Bn%2B1%5D%2Cr%3Dthis%2Evertices%2Elength%2D1%2Cv%3Dnew%20THREE%2EVector3%280%2C1%2C0%29%2Cy%3Dnew%20THREE%2EVector3%280%2C1%2C0%29%2CC%3Dnew%20THREE%2EVector3%280%2C%0A1%2C0%29%2CF%3Dm%5B0%5D%5Bn%5D%2Eclone%28%29%2Cz%3Dm%5B0%5D%5Bn%2B1%5D%2Eclone%28%29%2CG%3Dnew%20THREE%2EVector2%28z%2Ex%2C0%29%2Cthis%2Efaces%2Epush%28new%20THREE%2EFace3%28t%2Cs%2Cr%2C%5Bv%2Cy%2CC%5D%29%29%2Cthis%2EfaceVertexUvs%5B0%5D%2Epush%28%5BF%2Cz%2CG%5D%29%3Bif%28%211%3D%3D%3Df%26%260%3Cb%29for%28this%2Evertices%2Epush%28new%20THREE%2EVector3%280%2C%2Dk%2C0%29%29%2Cn%3D0%3Bn%3Cd%3Bn%2B%2B%29t%3Dq%5Be%5D%5Bn%2B1%5D%2Cs%3Dq%5Be%5D%5Bn%5D%2Cr%3Dthis%2Evertices%2Elength%2D1%2Cv%3Dnew%20THREE%2EVector3%280%2C%2D1%2C0%29%2Cy%3Dnew%20THREE%2EVector3%280%2C%2D1%2C0%29%2CC%3Dnew%20THREE%2EVector3%280%2C%2D1%2C0%29%2CF%3Dm%5Be%5D%5Bn%2B1%5D%2Eclone%28%29%2Cz%3Dm%5Be%5D%5Bn%5D%2Eclone%28%29%2CG%3Dnew%20THREE%2EVector2%28z%2Ex%2C1%29%2Cthis%2Efaces%2Epush%28new%20THREE%2EFace3%28t%2Cs%2Cr%2C%5Bv%2Cy%2CC%5D%29%29%2Cthis%2EfaceVertexUvs%5B0%5D%2Epush%28%5BF%2C%0Az%2CG%5D%29%3Bthis%2EcomputeFaceNormals%28%29%7D%3BTHREE%2ECylinderGeometry%2Eprototype%3DObject%2Ecreate%28THREE%2EGeometry%2Eprototype%29%3BTHREE%2ECylinderGeometry%2Eprototype%2Econstructor%3DTHREE%2ECylinderGeometry%3BTHREE%2EExtrudeGeometry%3Dfunction%28a%2Cb%29%7B%22undefined%22%21%3D%3Dtypeof%20a%26%26%28THREE%2EGeometry%2Ecall%28this%29%2Cthis%2Etype%3D%22ExtrudeGeometry%22%2Ca%3Da%20instanceof%20Array%3Fa%3A%5Ba%5D%2Cthis%2EaddShapeList%28a%2Cb%29%2Cthis%2EcomputeFaceNormals%28%29%29%7D%3BTHREE%2EExtrudeGeometry%2Eprototype%3DObject%2Ecreate%28THREE%2EGeometry%2Eprototype%29%3BTHREE%2EExtrudeGeometry%2Eprototype%2Econstructor%3DTHREE%2EExtrudeGeometry%3B%0ATHREE%2EExtrudeGeometry%2Eprototype%2EaddShapeList%3Dfunction%28a%2Cb%29%7Bfor%28var%20c%3Da%2Elength%2Cd%3D0%3Bd%3Cc%3Bd%2B%2B%29this%2EaddShape%28a%5Bd%5D%2Cb%29%7D%3B%0ATHREE%2EExtrudeGeometry%2Eprototype%2EaddShape%3Dfunction%28a%2Cb%29%7Bfunction%20c%28a%2Cb%2Cc%29%7Bb%7C%7Cconsole%2Elog%28%22die%22%29%3Breturn%20b%2Eclone%28%29%2EmultiplyScalar%28c%29%2Eadd%28a%29%7Dfunction%20d%28a%2Cb%2Cc%29%7Bvar%20d%3D1%2Cd%3Da%2Ex%2Db%2Ex%2Ce%3Da%2Ey%2Db%2Ey%2Cf%3Dc%2Ex%2Da%2Ex%2Cg%3Dc%2Ey%2Da%2Ey%2Ch%3Dd%2Ad%2Be%2Ae%3Bif%281E%2D10%3CMath%2Eabs%28d%2Ag%2De%2Af%29%29%7Bvar%20k%3DMath%2Esqrt%28h%29%2Cm%3DMath%2Esqrt%28f%2Af%2Bg%2Ag%29%2Ch%3Db%2Ex%2De%2Fk%3Bb%3Db%2Ey%2Bd%2Fk%3Bf%3D%28%28c%2Ex%2Dg%2Fm%2Dh%29%2Ag%2D%28c%2Ey%2Bf%2Fm%2Db%29%2Af%29%2F%28d%2Ag%2De%2Af%29%3Bc%3Dh%2Bd%2Af%2Da%2Ex%3Ba%3Db%2Be%2Af%2Da%2Ey%3Bd%3Dc%2Ac%2Ba%2Aa%3Bif%282%3E%3Dd%29return%20new%20THREE%2EVector2%28c%2Ca%29%3Bd%3DMath%2Esqrt%28d%2F2%29%7Delse%20a%3D%211%2C1E%2D10%3Cd%3F1E%2D10%3Cf%26%26%28a%3D%210%29%3A%2D1E%2D10%3Ed%3F%2D1E%2D10%3Ef%26%26%28a%3D%210%29%3AMath%2Esign%28e%29%3D%3D%0AMath%2Esign%28g%29%26%26%28a%3D%210%29%2Ca%3F%28c%3D%2De%2Ca%3Dd%2Cd%3DMath%2Esqrt%28h%29%29%3A%28c%3Dd%2Ca%3De%2Cd%3DMath%2Esqrt%28h%2F2%29%29%3Breturn%20new%20THREE%2EVector2%28c%2Fd%2Ca%2Fd%29%7Dfunction%20e%28a%2Cb%29%7Bvar%20c%2Cd%3Bfor%28H%3Da%2Elength%3B0%3C%3D%2D%2DH%3B%29%7Bc%3DH%3Bd%3DH%2D1%3B0%3Ed%26%26%28d%3Da%2Elength%2D1%29%3Bfor%28var%20e%3D0%2Cf%3Dt%2B2%2Ap%2Ce%3D0%3Be%3Cf%3Be%2B%2B%29%7Bvar%20g%3Dga%2Ae%2Ch%3Dga%2A%28e%2B1%29%2Ck%3Db%2Bc%2Bg%2Cg%3Db%2Bd%2Bg%2Cm%3Db%2Bd%2Bh%2Ch%3Db%2Bc%2Bh%2Ck%3Dk%2BU%2Cg%3Dg%2BU%2Cm%3Dm%2BU%2Ch%3Dh%2BU%3BA%2Efaces%2Epush%28new%20THREE%2EFace3%28k%2Cg%2Ch%2Cnull%2Cnull%2Cy%29%29%3BA%2Efaces%2Epush%28new%20THREE%2EFace3%28g%2Cm%2Ch%2Cnull%2Cnull%2Cy%29%29%3Bk%3DC%2EgenerateSideWallUV%28A%2Ck%2Cg%2Cm%2Ch%29%3BA%2EfaceVertexUvs%5B0%5D%2Epush%28%5Bk%5B0%5D%2Ck%5B1%5D%2Ck%5B3%5D%5D%29%3BA%2EfaceVertexUvs%5B0%5D%2Epush%28%5Bk%5B1%5D%2C%0Ak%5B2%5D%2Ck%5B3%5D%5D%29%7D%7D%7Dfunction%20f%28a%2Cb%2Cc%29%7BA%2Evertices%2Epush%28new%20THREE%2EVector3%28a%2Cb%2Cc%29%29%7Dfunction%20g%28a%2Cb%2Cc%29%7Ba%2B%3DU%3Bb%2B%3DU%3Bc%2B%3DU%3BA%2Efaces%2Epush%28new%20THREE%2EFace3%28a%2Cb%2Cc%2Cnull%2Cnull%2Cv%29%29%3Ba%3DC%2EgenerateTopUV%28A%2Ca%2Cb%2Cc%29%3BA%2EfaceVertexUvs%5B0%5D%2Epush%28a%29%7Dvar%20h%3Dvoid%200%21%3D%3Db%2Eamount%3Fb%2Eamount%3A100%2Ck%3Dvoid%200%21%3D%3Db%2EbevelThickness%3Fb%2EbevelThickness%3A6%2Cn%3Dvoid%200%21%3D%3Db%2EbevelSize%3Fb%2EbevelSize%3Ak%2D2%2Cp%3Dvoid%200%21%3D%3Db%2EbevelSegments%3Fb%2EbevelSegments%3A3%2Cq%3Dvoid%200%21%3D%3Db%2EbevelEnabled%3Fb%2EbevelEnabled%3A%210%2Cm%3Dvoid%200%21%3D%3Db%2EcurveSegments%3Fb%2EcurveSegments%3A12%2Ct%3Dvoid%200%21%3D%3Db%2Esteps%3Fb%2Esteps%3A1%2Cs%3Db%2EextrudePath%2C%0Ar%2Cu%3D%211%2Cv%3Db%2Ematerial%2Cy%3Db%2EextrudeMaterial%2CC%3Dvoid%200%21%3D%3Db%2EUVGenerator%3Fb%2EUVGenerator%3ATHREE%2EExtrudeGeometry%2EWorldUVGenerator%2Cx%2CF%2Cz%2CG%3Bs%26%26%28r%3Ds%2EgetSpacedPoints%28t%29%2Cu%3D%210%2Cq%3D%211%2Cx%3Dvoid%200%21%3D%3Db%2Eframes%3Fb%2Eframes%3Anew%20THREE%2ETubeGeometry%2EFrenetFrames%28s%2Ct%2C%211%29%2CF%3Dnew%20THREE%2EVector3%2Cz%3Dnew%20THREE%2EVector3%2CG%3Dnew%20THREE%2EVector3%29%3Bq%7C%7C%28n%3Dk%3Dp%3D0%29%3Bvar%20E%2Cw%2CD%2CA%3Dthis%2CU%3Dthis%2Evertices%2Elength%2Cs%3Da%2EextractPoints%28m%29%2Cm%3Ds%2Eshape%2CM%3Ds%2Eholes%3Bif%28s%3D%21THREE%2EShape%2EUtils%2EisClockWise%28m%29%29%7Bm%3Dm%2Ereverse%28%29%3Bw%3D0%3Bfor%28D%3DM%2Elength%3Bw%3CD%3Bw%2B%2B%29E%3DM%5Bw%5D%2CTHREE%2EShape%2EUtils%2EisClockWise%28E%29%26%26%0A%28M%5Bw%5D%3DE%2Ereverse%28%29%29%3Bs%3D%211%7Dvar%20K%3DTHREE%2EShape%2EUtils%2EtriangulateShape%28m%2CM%29%2CL%3Dm%3Bw%3D0%3Bfor%28D%3DM%2Elength%3Bw%3CD%3Bw%2B%2B%29E%3DM%5Bw%5D%2Cm%3Dm%2Econcat%28E%29%3Bvar%20N%2CT%2CQ%2CW%2CO%2Cga%3Dm%2Elength%2Cea%2Cxa%3DK%2Elength%2Cs%3D%5B%5D%2CH%3D0%3BQ%3DL%2Elength%3BN%3DQ%2D1%3Bfor%28T%3DH%2B1%3BH%3CQ%3BH%2B%2B%2CN%2B%2B%2CT%2B%2B%29N%3D%3D%3DQ%26%26%28N%3D0%29%2CT%3D%3D%3DQ%26%26%28T%3D0%29%2Cs%5BH%5D%3Dd%28L%5BH%5D%2CL%5BN%5D%2CL%5BT%5D%29%3Bvar%20%24a%3D%5B%5D%2Cqa%2Cya%3Ds%2Econcat%28%29%3Bw%3D0%3Bfor%28D%3DM%2Elength%3Bw%3CD%3Bw%2B%2B%29%7BE%3DM%5Bw%5D%3Bqa%3D%5B%5D%3BH%3D0%3BQ%3DE%2Elength%3BN%3DQ%2D1%3Bfor%28T%3DH%2B1%3BH%3CQ%3BH%2B%2B%2CN%2B%2B%2CT%2B%2B%29N%3D%3D%3DQ%26%26%28N%3D0%29%2CT%3D%3D%3DQ%26%26%28T%3D0%29%2Cqa%5BH%5D%3Dd%28E%5BH%5D%2CE%5BN%5D%2CE%5BT%5D%29%3B%24a%2Epush%28qa%29%3Bya%3Dya%2Econcat%28qa%29%7Dfor%28N%3D0%3BN%3Cp%3BN%2B%2B%29%7BQ%3DN%2Fp%3BW%3Dk%2A%281%2DQ%29%3BT%3Dn%2AMath%2Esin%28Q%2A%0AMath%2EPI%2F2%29%3BH%3D0%3Bfor%28Q%3DL%2Elength%3BH%3CQ%3BH%2B%2B%29O%3Dc%28L%5BH%5D%2Cs%5BH%5D%2CT%29%2Cf%28O%2Ex%2CO%2Ey%2C%2DW%29%3Bw%3D0%3Bfor%28D%3DM%2Elength%3Bw%3CD%3Bw%2B%2B%29for%28E%3DM%5Bw%5D%2Cqa%3D%24a%5Bw%5D%2CH%3D0%2CQ%3DE%2Elength%3BH%3CQ%3BH%2B%2B%29O%3Dc%28E%5BH%5D%2Cqa%5BH%5D%2CT%29%2Cf%28O%2Ex%2CO%2Ey%2C%2DW%29%7DT%3Dn%3Bfor%28H%3D0%3BH%3Cga%3BH%2B%2B%29O%3Dq%3Fc%28m%5BH%5D%2Cya%5BH%5D%2CT%29%3Am%5BH%5D%2Cu%3F%28z%2Ecopy%28x%2Enormals%5B0%5D%29%2EmultiplyScalar%28O%2Ex%29%2CF%2Ecopy%28x%2Ebinormals%5B0%5D%29%2EmultiplyScalar%28O%2Ey%29%2CG%2Ecopy%28r%5B0%5D%29%2Eadd%28z%29%2Eadd%28F%29%2Cf%28G%2Ex%2CG%2Ey%2CG%2Ez%29%29%3Af%28O%2Ex%2CO%2Ey%2C0%29%3Bfor%28Q%3D1%3BQ%3C%3Dt%3BQ%2B%2B%29for%28H%3D0%3BH%3Cga%3BH%2B%2B%29O%3Dq%3Fc%28m%5BH%5D%2Cya%5BH%5D%2CT%29%3Am%5BH%5D%2Cu%3F%28z%2Ecopy%28x%2Enormals%5BQ%5D%29%2EmultiplyScalar%28O%2Ex%29%2CF%2Ecopy%28x%2Ebinormals%5BQ%5D%29%2EmultiplyScalar%28O%2Ey%29%2C%0AG%2Ecopy%28r%5BQ%5D%29%2Eadd%28z%29%2Eadd%28F%29%2Cf%28G%2Ex%2CG%2Ey%2CG%2Ez%29%29%3Af%28O%2Ex%2CO%2Ey%2Ch%2Ft%2AQ%29%3Bfor%28N%3Dp%2D1%3B0%3C%3DN%3BN%2D%2D%29%7BQ%3DN%2Fp%3BW%3Dk%2A%281%2DQ%29%3BT%3Dn%2AMath%2Esin%28Q%2AMath%2EPI%2F2%29%3BH%3D0%3Bfor%28Q%3DL%2Elength%3BH%3CQ%3BH%2B%2B%29O%3Dc%28L%5BH%5D%2Cs%5BH%5D%2CT%29%2Cf%28O%2Ex%2CO%2Ey%2Ch%2BW%29%3Bw%3D0%3Bfor%28D%3DM%2Elength%3Bw%3CD%3Bw%2B%2B%29for%28E%3DM%5Bw%5D%2Cqa%3D%24a%5Bw%5D%2CH%3D0%2CQ%3DE%2Elength%3BH%3CQ%3BH%2B%2B%29O%3Dc%28E%5BH%5D%2Cqa%5BH%5D%2CT%29%2Cu%3Ff%28O%2Ex%2CO%2Ey%2Br%5Bt%2D1%5D%2Ey%2Cr%5Bt%2D1%5D%2Ex%2BW%29%3Af%28O%2Ex%2CO%2Ey%2Ch%2BW%29%7D%28function%28%29%7Bif%28q%29%7Bvar%20a%3Ba%3D0%2Aga%3Bfor%28H%3D0%3BH%3Cxa%3BH%2B%2B%29ea%3DK%5BH%5D%2Cg%28ea%5B2%5D%2Ba%2Cea%5B1%5D%2Ba%2Cea%5B0%5D%2Ba%29%3Ba%3Dt%2B2%2Ap%3Ba%2A%3Dga%3Bfor%28H%3D0%3BH%3Cxa%3BH%2B%2B%29ea%3DK%5BH%5D%2Cg%28ea%5B0%5D%2Ba%2Cea%5B1%5D%2Ba%2Cea%5B2%5D%2Ba%29%7Delse%7Bfor%28H%3D0%3BH%3Cxa%3BH%2B%2B%29ea%3DK%5BH%5D%2Cg%28ea%5B2%5D%2C%0Aea%5B1%5D%2Cea%5B0%5D%29%3Bfor%28H%3D0%3BH%3Cxa%3BH%2B%2B%29ea%3DK%5BH%5D%2Cg%28ea%5B0%5D%2Bga%2At%2Cea%5B1%5D%2Bga%2At%2Cea%5B2%5D%2Bga%2At%29%7D%7D%29%28%29%3B%28function%28%29%7Bvar%20a%3D0%3Be%28L%2Ca%29%3Ba%2B%3DL%2Elength%3Bw%3D0%3Bfor%28D%3DM%2Elength%3Bw%3CD%3Bw%2B%2B%29E%3DM%5Bw%5D%2Ce%28E%2Ca%29%2Ca%2B%3DE%2Elength%7D%29%28%29%7D%3B%0ATHREE%2EExtrudeGeometry%2EWorldUVGenerator%3D%7BgenerateTopUV%3Afunction%28a%2Cb%2Cc%2Cd%29%7Ba%3Da%2Evertices%3Bb%3Da%5Bb%5D%3Bc%3Da%5Bc%5D%3Bd%3Da%5Bd%5D%3Breturn%5Bnew%20THREE%2EVector2%28b%2Ex%2Cb%2Ey%29%2Cnew%20THREE%2EVector2%28c%2Ex%2Cc%2Ey%29%2Cnew%20THREE%2EVector2%28d%2Ex%2Cd%2Ey%29%5D%7D%2CgenerateSideWallUV%3Afunction%28a%2Cb%2Cc%2Cd%2Ce%29%7Ba%3Da%2Evertices%3Bb%3Da%5Bb%5D%3Bc%3Da%5Bc%5D%3Bd%3Da%5Bd%5D%3Be%3Da%5Be%5D%3Breturn%2E01%3EMath%2Eabs%28b%2Ey%2Dc%2Ey%29%3F%5Bnew%20THREE%2EVector2%28b%2Ex%2C1%2Db%2Ez%29%2Cnew%20THREE%2EVector2%28c%2Ex%2C1%2Dc%2Ez%29%2Cnew%20THREE%2EVector2%28d%2Ex%2C1%2Dd%2Ez%29%2Cnew%20THREE%2EVector2%28e%2Ex%2C1%2De%2Ez%29%5D%3A%5Bnew%20THREE%2EVector2%28b%2Ey%2C1%2Db%2Ez%29%2Cnew%20THREE%2EVector2%28c%2Ey%2C1%2Dc%2Ez%29%2Cnew%20THREE%2EVector2%28d%2Ey%2C%0A1%2Dd%2Ez%29%2Cnew%20THREE%2EVector2%28e%2Ey%2C1%2De%2Ez%29%5D%7D%7D%3BTHREE%2EShapeGeometry%3Dfunction%28a%2Cb%29%7BTHREE%2EGeometry%2Ecall%28this%29%3Bthis%2Etype%3D%22ShapeGeometry%22%3B%211%3D%3D%3Da%20instanceof%20Array%26%26%28a%3D%5Ba%5D%29%3Bthis%2EaddShapeList%28a%2Cb%29%3Bthis%2EcomputeFaceNormals%28%29%7D%3BTHREE%2EShapeGeometry%2Eprototype%3DObject%2Ecreate%28THREE%2EGeometry%2Eprototype%29%3BTHREE%2EShapeGeometry%2Eprototype%2Econstructor%3DTHREE%2EShapeGeometry%3BTHREE%2EShapeGeometry%2Eprototype%2EaddShapeList%3Dfunction%28a%2Cb%29%7Bfor%28var%20c%3D0%2Cd%3Da%2Elength%3Bc%3Cd%3Bc%2B%2B%29this%2EaddShape%28a%5Bc%5D%2Cb%29%3Breturn%20this%7D%3B%0ATHREE%2EShapeGeometry%2Eprototype%2EaddShape%3Dfunction%28a%2Cb%29%7Bvoid%200%3D%3D%3Db%26%26%28b%3D%7B%7D%29%3Bvar%20c%3Db%2Ematerial%2Cd%3Dvoid%200%3D%3D%3Db%2EUVGenerator%3FTHREE%2EExtrudeGeometry%2EWorldUVGenerator%3Ab%2EUVGenerator%2Ce%2Cf%2Cg%2Ch%3Dthis%2Evertices%2Elength%3Be%3Da%2EextractPoints%28void%200%21%3D%3Db%2EcurveSegments%3Fb%2EcurveSegments%3A12%29%3Bvar%20k%3De%2Eshape%2Cn%3De%2Eholes%3Bif%28%21THREE%2EShape%2EUtils%2EisClockWise%28k%29%29for%28k%3Dk%2Ereverse%28%29%2Ce%3D0%2Cf%3Dn%2Elength%3Be%3Cf%3Be%2B%2B%29g%3Dn%5Be%5D%2CTHREE%2EShape%2EUtils%2EisClockWise%28g%29%26%26%28n%5Be%5D%3Dg%2Ereverse%28%29%29%3Bvar%20p%3DTHREE%2EShape%2EUtils%2EtriangulateShape%28k%2Cn%29%3Be%3D0%3Bfor%28f%3Dn%2Elength%3Be%3Cf%3Be%2B%2B%29g%3Dn%5Be%5D%2C%0Ak%3Dk%2Econcat%28g%29%3Bn%3Dk%2Elength%3Bf%3Dp%2Elength%3Bfor%28e%3D0%3Be%3Cn%3Be%2B%2B%29g%3Dk%5Be%5D%2Cthis%2Evertices%2Epush%28new%20THREE%2EVector3%28g%2Ex%2Cg%2Ey%2C0%29%29%3Bfor%28e%3D0%3Be%3Cf%3Be%2B%2B%29n%3Dp%5Be%5D%2Ck%3Dn%5B0%5D%2Bh%2Cg%3Dn%5B1%5D%2Bh%2Cn%3Dn%5B2%5D%2Bh%2Cthis%2Efaces%2Epush%28new%20THREE%2EFace3%28k%2Cg%2Cn%2Cnull%2Cnull%2Cc%29%29%2Cthis%2EfaceVertexUvs%5B0%5D%2Epush%28d%2EgenerateTopUV%28this%2Ck%2Cg%2Cn%29%29%7D%3B%0ATHREE%2ELatheGeometry%3Dfunction%28a%2Cb%2Cc%2Cd%29%7BTHREE%2EGeometry%2Ecall%28this%29%3Bthis%2Etype%3D%22LatheGeometry%22%3Bthis%2Eparameters%3D%7Bpoints%3Aa%2Csegments%3Ab%2CphiStart%3Ac%2CphiLength%3Ad%7D%3Bb%3Db%7C%7C12%3Bc%3Dc%7C%7C0%3Bd%3Dd%7C%7C2%2AMath%2EPI%3Bfor%28var%20e%3D1%2F%28a%2Elength%2D1%29%2Cf%3D1%2Fb%2Cg%3D0%2Ch%3Db%3Bg%3C%3Dh%3Bg%2B%2B%29for%28var%20k%3Dc%2Bg%2Af%2Ad%2Cn%3DMath%2Ecos%28k%29%2Cp%3DMath%2Esin%28k%29%2Ck%3D0%2Cq%3Da%2Elength%3Bk%3Cq%3Bk%2B%2B%29%7Bvar%20m%3Da%5Bk%5D%2Ct%3Dnew%20THREE%2EVector3%3Bt%2Ex%3Dn%2Am%2Ex%2Dp%2Am%2Ey%3Bt%2Ey%3Dp%2Am%2Ex%2Bn%2Am%2Ey%3Bt%2Ez%3Dm%2Ez%3Bthis%2Evertices%2Epush%28t%29%7Dc%3Da%2Elength%3Bg%3D0%3Bfor%28h%3Db%3Bg%3Ch%3Bg%2B%2B%29for%28k%3D0%2Cq%3Da%2Elength%2D1%3Bk%3Cq%3Bk%2B%2B%29%7Bb%3Dp%3Dk%2Bc%2Ag%3Bd%3Dp%2Bc%3Bvar%20n%3Dp%2B1%2Bc%2Cp%3Dp%2B1%2Cm%3Dg%2Af%2Ct%3Dk%2Ae%2Cs%3D%0Am%2Bf%2Cr%3Dt%2Be%3Bthis%2Efaces%2Epush%28new%20THREE%2EFace3%28b%2Cd%2Cp%29%29%3Bthis%2EfaceVertexUvs%5B0%5D%2Epush%28%5Bnew%20THREE%2EVector2%28m%2Ct%29%2Cnew%20THREE%2EVector2%28s%2Ct%29%2Cnew%20THREE%2EVector2%28m%2Cr%29%5D%29%3Bthis%2Efaces%2Epush%28new%20THREE%2EFace3%28d%2Cn%2Cp%29%29%3Bthis%2EfaceVertexUvs%5B0%5D%2Epush%28%5Bnew%20THREE%2EVector2%28s%2Ct%29%2Cnew%20THREE%2EVector2%28s%2Cr%29%2Cnew%20THREE%2EVector2%28m%2Cr%29%5D%29%7Dthis%2EmergeVertices%28%29%3Bthis%2EcomputeFaceNormals%28%29%3Bthis%2EcomputeVertexNormals%28%29%7D%3BTHREE%2ELatheGeometry%2Eprototype%3DObject%2Ecreate%28THREE%2EGeometry%2Eprototype%29%3BTHREE%2ELatheGeometry%2Eprototype%2Econstructor%3DTHREE%2ELatheGeometry%3B%0ATHREE%2EPlaneGeometry%3Dfunction%28a%2Cb%2Cc%2Cd%29%7Bconsole%2Einfo%28%22THREE%2EPlaneGeometry%3A%20Consider%20using%20THREE%2EPlaneBufferGeometry%20for%20lower%20memory%20footprint%2E%22%29%3BTHREE%2EGeometry%2Ecall%28this%29%3Bthis%2Etype%3D%22PlaneGeometry%22%3Bthis%2Eparameters%3D%7Bwidth%3Aa%2Cheight%3Ab%2CwidthSegments%3Ac%2CheightSegments%3Ad%7D%3Bthis%2EfromBufferGeometry%28new%20THREE%2EPlaneBufferGeometry%28a%2Cb%2Cc%2Cd%29%29%7D%3BTHREE%2EPlaneGeometry%2Eprototype%3DObject%2Ecreate%28THREE%2EGeometry%2Eprototype%29%3BTHREE%2EPlaneGeometry%2Eprototype%2Econstructor%3DTHREE%2EPlaneGeometry%3B%0ATHREE%2EPlaneBufferGeometry%3Dfunction%28a%2Cb%2Cc%2Cd%29%7BTHREE%2EBufferGeometry%2Ecall%28this%29%3Bthis%2Etype%3D%22PlaneBufferGeometry%22%3Bthis%2Eparameters%3D%7Bwidth%3Aa%2Cheight%3Ab%2CwidthSegments%3Ac%2CheightSegments%3Ad%7D%3Bvar%20e%3Da%2F2%2Cf%3Db%2F2%3Bc%3Dc%7C%7C1%3Bd%3Dd%7C%7C1%3Bvar%20g%3Dc%2B1%2Ch%3Dd%2B1%2Ck%3Da%2Fc%2Cn%3Db%2Fd%3Bb%3Dnew%20Float32Array%28g%2Ah%2A3%29%3Ba%3Dnew%20Float32Array%28g%2Ah%2A3%29%3Bfor%28var%20p%3Dnew%20Float32Array%28g%2Ah%2A2%29%2Cq%3D0%2Cm%3D0%2Ct%3D0%3Bt%3Ch%3Bt%2B%2B%29for%28var%20s%3Dt%2An%2Df%2Cr%3D0%3Br%3Cg%3Br%2B%2B%29b%5Bq%5D%3Dr%2Ak%2De%2Cb%5Bq%2B1%5D%3D%2Ds%2Ca%5Bq%2B2%5D%3D1%2Cp%5Bm%5D%3Dr%2Fc%2Cp%5Bm%2B1%5D%3D1%2Dt%2Fd%2Cq%2B%3D3%2Cm%2B%3D2%3Bq%3D0%3Be%3Dnew%20%2865535%3Cb%2Elength%2F3%3FUint32Array%3AUint16Array%29%28c%2Ad%2A6%29%3Bfor%28t%3D0%3Bt%3Cd%3Bt%2B%2B%29for%28r%3D%0A0%3Br%3Cc%3Br%2B%2B%29f%3Dr%2Bg%2A%28t%2B1%29%2Ch%3Dr%2B1%2Bg%2A%28t%2B1%29%2Ck%3Dr%2B1%2Bg%2At%2Ce%5Bq%5D%3Dr%2Bg%2At%2Ce%5Bq%2B1%5D%3Df%2Ce%5Bq%2B2%5D%3Dk%2Ce%5Bq%2B3%5D%3Df%2Ce%5Bq%2B4%5D%3Dh%2Ce%5Bq%2B5%5D%3Dk%2Cq%2B%3D6%3Bthis%2EaddAttribute%28%22index%22%2Cnew%20THREE%2EBufferAttribute%28e%2C1%29%29%3Bthis%2EaddAttribute%28%22position%22%2Cnew%20THREE%2EBufferAttribute%28b%2C3%29%29%3Bthis%2EaddAttribute%28%22normal%22%2Cnew%20THREE%2EBufferAttribute%28a%2C3%29%29%3Bthis%2EaddAttribute%28%22uv%22%2Cnew%20THREE%2EBufferAttribute%28p%2C2%29%29%7D%3BTHREE%2EPlaneBufferGeometry%2Eprototype%3DObject%2Ecreate%28THREE%2EBufferGeometry%2Eprototype%29%3BTHREE%2EPlaneBufferGeometry%2Eprototype%2Econstructor%3DTHREE%2EPlaneBufferGeometry%3B%0ATHREE%2ERingGeometry%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%29%7BTHREE%2EGeometry%2Ecall%28this%29%3Bthis%2Etype%3D%22RingGeometry%22%3Bthis%2Eparameters%3D%7BinnerRadius%3Aa%2CouterRadius%3Ab%2CthetaSegments%3Ac%2CphiSegments%3Ad%2CthetaStart%3Ae%2CthetaLength%3Af%7D%3Ba%3Da%7C%7C0%3Bb%3Db%7C%7C50%3Be%3Dvoid%200%21%3D%3De%3Fe%3A0%3Bf%3Dvoid%200%21%3D%3Df%3Ff%3A2%2AMath%2EPI%3Bc%3Dvoid%200%21%3D%3Dc%3FMath%2Emax%283%2Cc%29%3A8%3Bd%3Dvoid%200%21%3D%3Dd%3FMath%2Emax%281%2Cd%29%3A8%3Bvar%20g%2Ch%3D%5B%5D%2Ck%3Da%2Cn%3D%28b%2Da%29%2Fd%3Bfor%28a%3D0%3Ba%3Cd%2B1%3Ba%2B%2B%29%7Bfor%28g%3D0%3Bg%3Cc%2B1%3Bg%2B%2B%29%7Bvar%20p%3Dnew%20THREE%2EVector3%2Cq%3De%2Bg%2Fc%2Af%3Bp%2Ex%3Dk%2AMath%2Ecos%28q%29%3Bp%2Ey%3Dk%2AMath%2Esin%28q%29%3Bthis%2Evertices%2Epush%28p%29%3Bh%2Epush%28new%20THREE%2EVector2%28%28p%2Ex%2Fb%2B1%29%2F2%2C%0A%28p%2Ey%2Fb%2B1%29%2F2%29%29%7Dk%2B%3Dn%7Db%3Dnew%20THREE%2EVector3%280%2C0%2C1%29%3Bfor%28a%3D0%3Ba%3Cd%3Ba%2B%2B%29for%28e%3Da%2A%28c%2B1%29%2Cg%3D0%3Bg%3Cc%3Bg%2B%2B%29f%3Dq%3Dg%2Be%2Cn%3Dq%2Bc%2B1%2Cp%3Dq%2Bc%2B2%2Cthis%2Efaces%2Epush%28new%20THREE%2EFace3%28f%2Cn%2Cp%2C%5Bb%2Eclone%28%29%2Cb%2Eclone%28%29%2Cb%2Eclone%28%29%5D%29%29%2Cthis%2EfaceVertexUvs%5B0%5D%2Epush%28%5Bh%5Bf%5D%2Eclone%28%29%2Ch%5Bn%5D%2Eclone%28%29%2Ch%5Bp%5D%2Eclone%28%29%5D%29%2Cf%3Dq%2Cn%3Dq%2Bc%2B2%2Cp%3Dq%2B1%2Cthis%2Efaces%2Epush%28new%20THREE%2EFace3%28f%2Cn%2Cp%2C%5Bb%2Eclone%28%29%2Cb%2Eclone%28%29%2Cb%2Eclone%28%29%5D%29%29%2Cthis%2EfaceVertexUvs%5B0%5D%2Epush%28%5Bh%5Bf%5D%2Eclone%28%29%2Ch%5Bn%5D%2Eclone%28%29%2Ch%5Bp%5D%2Eclone%28%29%5D%29%3Bthis%2EcomputeFaceNormals%28%29%3Bthis%2EboundingSphere%3Dnew%20THREE%2ESphere%28new%20THREE%2EVector3%2Ck%29%7D%3B%0ATHREE%2ERingGeometry%2Eprototype%3DObject%2Ecreate%28THREE%2EGeometry%2Eprototype%29%3BTHREE%2ERingGeometry%2Eprototype%2Econstructor%3DTHREE%2ERingGeometry%3B%0ATHREE%2ESphereGeometry%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%2Cg%29%7BTHREE%2EGeometry%2Ecall%28this%29%3Bthis%2Etype%3D%22SphereGeometry%22%3Bthis%2Eparameters%3D%7Bradius%3Aa%2CwidthSegments%3Ab%2CheightSegments%3Ac%2CphiStart%3Ad%2CphiLength%3Ae%2CthetaStart%3Af%2CthetaLength%3Ag%7D%3Ba%3Da%7C%7C50%3Bb%3DMath%2Emax%283%2CMath%2Efloor%28b%29%7C%7C8%29%3Bc%3DMath%2Emax%282%2CMath%2Efloor%28c%29%7C%7C6%29%3Bd%3Dvoid%200%21%3D%3Dd%3Fd%3A0%3Be%3Dvoid%200%21%3D%3De%3Fe%3A2%2AMath%2EPI%3Bf%3Dvoid%200%21%3D%3Df%3Ff%3A0%3Bg%3Dvoid%200%21%3D%3Dg%3Fg%3AMath%2EPI%3Bvar%20h%2Ck%2Cn%3D%5B%5D%2Cp%3D%5B%5D%3Bfor%28k%3D0%3Bk%3C%3Dc%3Bk%2B%2B%29%7Bvar%20q%3D%5B%5D%2Cm%3D%5B%5D%3Bfor%28h%3D0%3Bh%3C%3Db%3Bh%2B%2B%29%7Bvar%20t%3Dh%2Fb%2Cs%3Dk%2Fc%2Cr%3Dnew%20THREE%2EVector3%3Br%2Ex%3D%2Da%2AMath%2Ecos%28d%2Bt%2Ae%29%2AMath%2Esin%28f%2Bs%2Ag%29%3B%0Ar%2Ey%3Da%2AMath%2Ecos%28f%2Bs%2Ag%29%3Br%2Ez%3Da%2AMath%2Esin%28d%2Bt%2Ae%29%2AMath%2Esin%28f%2Bs%2Ag%29%3Bthis%2Evertices%2Epush%28r%29%3Bq%2Epush%28this%2Evertices%2Elength%2D1%29%3Bm%2Epush%28new%20THREE%2EVector2%28t%2C1%2Ds%29%29%7Dn%2Epush%28q%29%3Bp%2Epush%28m%29%7Dfor%28k%3D0%3Bk%3Cc%3Bk%2B%2B%29for%28h%3D0%3Bh%3Cb%3Bh%2B%2B%29%7Bd%3Dn%5Bk%5D%5Bh%2B1%5D%3Be%3Dn%5Bk%5D%5Bh%5D%3Bf%3Dn%5Bk%2B1%5D%5Bh%5D%3Bg%3Dn%5Bk%2B1%5D%5Bh%2B1%5D%3Bvar%20q%3Dthis%2Evertices%5Bd%5D%2Eclone%28%29%2Enormalize%28%29%2Cm%3Dthis%2Evertices%5Be%5D%2Eclone%28%29%2Enormalize%28%29%2Ct%3Dthis%2Evertices%5Bf%5D%2Eclone%28%29%2Enormalize%28%29%2Cs%3Dthis%2Evertices%5Bg%5D%2Eclone%28%29%2Enormalize%28%29%2Cr%3Dp%5Bk%5D%5Bh%2B1%5D%2Eclone%28%29%2Cu%3Dp%5Bk%5D%5Bh%5D%2Eclone%28%29%2Cv%3Dp%5Bk%2B1%5D%5Bh%5D%2Eclone%28%29%2Cy%3Dp%5Bk%2B1%5D%5Bh%2B1%5D%2Eclone%28%29%3BMath%2Eabs%28this%2Evertices%5Bd%5D%2Ey%29%3D%3D%3D%0Aa%3F%28r%2Ex%3D%28r%2Ex%2Bu%2Ex%29%2F2%2Cthis%2Efaces%2Epush%28new%20THREE%2EFace3%28d%2Cf%2Cg%2C%5Bq%2Ct%2Cs%5D%29%29%2Cthis%2EfaceVertexUvs%5B0%5D%2Epush%28%5Br%2Cv%2Cy%5D%29%29%3AMath%2Eabs%28this%2Evertices%5Bf%5D%2Ey%29%3D%3D%3Da%3F%28v%2Ex%3D%28v%2Ex%2By%2Ex%29%2F2%2Cthis%2Efaces%2Epush%28new%20THREE%2EFace3%28d%2Ce%2Cf%2C%5Bq%2Cm%2Ct%5D%29%29%2Cthis%2EfaceVertexUvs%5B0%5D%2Epush%28%5Br%2Cu%2Cv%5D%29%29%3A%28this%2Efaces%2Epush%28new%20THREE%2EFace3%28d%2Ce%2Cg%2C%5Bq%2Cm%2Cs%5D%29%29%2Cthis%2EfaceVertexUvs%5B0%5D%2Epush%28%5Br%2Cu%2Cy%5D%29%2Cthis%2Efaces%2Epush%28new%20THREE%2EFace3%28e%2Cf%2Cg%2C%5Bm%2Eclone%28%29%2Ct%2Cs%2Eclone%28%29%5D%29%29%2Cthis%2EfaceVertexUvs%5B0%5D%2Epush%28%5Bu%2Eclone%28%29%2Cv%2Cy%2Eclone%28%29%5D%29%29%7Dthis%2EcomputeFaceNormals%28%29%3Bthis%2EboundingSphere%3Dnew%20THREE%2ESphere%28new%20THREE%2EVector3%2C%0Aa%29%7D%3BTHREE%2ESphereGeometry%2Eprototype%3DObject%2Ecreate%28THREE%2EGeometry%2Eprototype%29%3BTHREE%2ESphereGeometry%2Eprototype%2Econstructor%3DTHREE%2ESphereGeometry%3BTHREE%2ETextGeometry%3Dfunction%28a%2Cb%29%7Bb%3Db%7C%7C%7B%7D%3Bvar%20c%3DTHREE%2EFontUtils%2EgenerateShapes%28a%2Cb%29%3Bb%2Eamount%3Dvoid%200%21%3D%3Db%2Eheight%3Fb%2Eheight%3A50%3Bvoid%200%3D%3D%3Db%2EbevelThickness%26%26%28b%2EbevelThickness%3D10%29%3Bvoid%200%3D%3D%3Db%2EbevelSize%26%26%28b%2EbevelSize%3D8%29%3Bvoid%200%3D%3D%3Db%2EbevelEnabled%26%26%28b%2EbevelEnabled%3D%211%29%3BTHREE%2EExtrudeGeometry%2Ecall%28this%2Cc%2Cb%29%3Bthis%2Etype%3D%22TextGeometry%22%7D%3BTHREE%2ETextGeometry%2Eprototype%3DObject%2Ecreate%28THREE%2EExtrudeGeometry%2Eprototype%29%3B%0ATHREE%2ETextGeometry%2Eprototype%2Econstructor%3DTHREE%2ETextGeometry%3B%0ATHREE%2ETorusGeometry%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%29%7BTHREE%2EGeometry%2Ecall%28this%29%3Bthis%2Etype%3D%22TorusGeometry%22%3Bthis%2Eparameters%3D%7Bradius%3Aa%2Ctube%3Ab%2CradialSegments%3Ac%2CtubularSegments%3Ad%2Carc%3Ae%7D%3Ba%3Da%7C%7C100%3Bb%3Db%7C%7C40%3Bc%3Dc%7C%7C8%3Bd%3Dd%7C%7C6%3Be%3De%7C%7C2%2AMath%2EPI%3Bfor%28var%20f%3Dnew%20THREE%2EVector3%2Cg%3D%5B%5D%2Ch%3D%5B%5D%2Ck%3D0%3Bk%3C%3Dc%3Bk%2B%2B%29for%28var%20n%3D0%3Bn%3C%3Dd%3Bn%2B%2B%29%7Bvar%20p%3Dn%2Fd%2Ae%2Cq%3Dk%2Fc%2AMath%2EPI%2A2%3Bf%2Ex%3Da%2AMath%2Ecos%28p%29%3Bf%2Ey%3Da%2AMath%2Esin%28p%29%3Bvar%20m%3Dnew%20THREE%2EVector3%3Bm%2Ex%3D%28a%2Bb%2AMath%2Ecos%28q%29%29%2AMath%2Ecos%28p%29%3Bm%2Ey%3D%28a%2Bb%2AMath%2Ecos%28q%29%29%2AMath%2Esin%28p%29%3Bm%2Ez%3Db%2AMath%2Esin%28q%29%3Bthis%2Evertices%2Epush%28m%29%3Bg%2Epush%28new%20THREE%2EVector2%28n%2F%0Ad%2Ck%2Fc%29%29%3Bh%2Epush%28m%2Eclone%28%29%2Esub%28f%29%2Enormalize%28%29%29%7Dfor%28k%3D1%3Bk%3C%3Dc%3Bk%2B%2B%29for%28n%3D1%3Bn%3C%3Dd%3Bn%2B%2B%29a%3D%28d%2B1%29%2Ak%2Bn%2D1%2Cb%3D%28d%2B1%29%2A%28k%2D1%29%2Bn%2D1%2Ce%3D%28d%2B1%29%2A%28k%2D1%29%2Bn%2Cf%3D%28d%2B1%29%2Ak%2Bn%2Cp%3Dnew%20THREE%2EFace3%28a%2Cb%2Cf%2C%5Bh%5Ba%5D%2Eclone%28%29%2Ch%5Bb%5D%2Eclone%28%29%2Ch%5Bf%5D%2Eclone%28%29%5D%29%2Cthis%2Efaces%2Epush%28p%29%2Cthis%2EfaceVertexUvs%5B0%5D%2Epush%28%5Bg%5Ba%5D%2Eclone%28%29%2Cg%5Bb%5D%2Eclone%28%29%2Cg%5Bf%5D%2Eclone%28%29%5D%29%2Cp%3Dnew%20THREE%2EFace3%28b%2Ce%2Cf%2C%5Bh%5Bb%5D%2Eclone%28%29%2Ch%5Be%5D%2Eclone%28%29%2Ch%5Bf%5D%2Eclone%28%29%5D%29%2Cthis%2Efaces%2Epush%28p%29%2Cthis%2EfaceVertexUvs%5B0%5D%2Epush%28%5Bg%5Bb%5D%2Eclone%28%29%2Cg%5Be%5D%2Eclone%28%29%2Cg%5Bf%5D%2Eclone%28%29%5D%29%3Bthis%2EcomputeFaceNormals%28%29%7D%3B%0ATHREE%2ETorusGeometry%2Eprototype%3DObject%2Ecreate%28THREE%2EGeometry%2Eprototype%29%3BTHREE%2ETorusGeometry%2Eprototype%2Econstructor%3DTHREE%2ETorusGeometry%3B%0ATHREE%2ETorusKnotGeometry%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%2Cg%29%7Bfunction%20h%28a%2Cb%2Cc%2Cd%2Ce%29%7Bvar%20f%3DMath%2Ecos%28a%29%2Cg%3DMath%2Esin%28a%29%3Ba%2A%3Db%2Fc%3Bb%3DMath%2Ecos%28a%29%3Bf%2A%3Dd%2A%282%2Bb%29%2A%2E5%3Bg%3Dd%2A%282%2Bb%29%2Ag%2A%2E5%3Bd%3De%2Ad%2AMath%2Esin%28a%29%2A%2E5%3Breturn%20new%20THREE%2EVector3%28f%2Cg%2Cd%29%7DTHREE%2EGeometry%2Ecall%28this%29%3Bthis%2Etype%3D%22TorusKnotGeometry%22%3Bthis%2Eparameters%3D%7Bradius%3Aa%2Ctube%3Ab%2CradialSegments%3Ac%2CtubularSegments%3Ad%2Cp%3Ae%2Cq%3Af%2CheightScale%3Ag%7D%3Ba%3Da%7C%7C100%3Bb%3Db%7C%7C40%3Bc%3Dc%7C%7C64%3Bd%3Dd%7C%7C8%3Be%3De%7C%7C2%3Bf%3Df%7C%7C3%3Bg%3Dg%7C%7C1%3Bfor%28var%20k%3DArray%28c%29%2Cn%3Dnew%20THREE%2EVector3%2Cp%3Dnew%20THREE%2EVector3%2Cq%3Dnew%20THREE%2EVector3%2Cm%3D0%3Bm%3Cc%3B%2B%2Bm%29%7Bk%5Bm%5D%3D%0AArray%28d%29%3Bvar%20t%3Dm%2Fc%2A2%2Ae%2AMath%2EPI%2Cs%3Dh%28t%2Cf%2Ce%2Ca%2Cg%29%2Ct%3Dh%28t%2B%2E01%2Cf%2Ce%2Ca%2Cg%29%3Bn%2EsubVectors%28t%2Cs%29%3Bp%2EaddVectors%28t%2Cs%29%3Bq%2EcrossVectors%28n%2Cp%29%3Bp%2EcrossVectors%28q%2Cn%29%3Bq%2Enormalize%28%29%3Bp%2Enormalize%28%29%3Bfor%28t%3D0%3Bt%3Cd%3B%2B%2Bt%29%7Bvar%20r%3Dt%2Fd%2A2%2AMath%2EPI%2Cu%3D%2Db%2AMath%2Ecos%28r%29%2Cr%3Db%2AMath%2Esin%28r%29%2Cv%3Dnew%20THREE%2EVector3%3Bv%2Ex%3Ds%2Ex%2Bu%2Ap%2Ex%2Br%2Aq%2Ex%3Bv%2Ey%3Ds%2Ey%2Bu%2Ap%2Ey%2Br%2Aq%2Ey%3Bv%2Ez%3Ds%2Ez%2Bu%2Ap%2Ez%2Br%2Aq%2Ez%3Bk%5Bm%5D%5Bt%5D%3Dthis%2Evertices%2Epush%28v%29%2D1%7D%7Dfor%28m%3D0%3Bm%3Cc%3B%2B%2Bm%29for%28t%3D0%3Bt%3Cd%3B%2B%2Bt%29e%3D%28m%2B1%29%25c%2Cf%3D%28t%2B1%29%25d%2Ca%3Dk%5Bm%5D%5Bt%5D%2Cb%3Dk%5Be%5D%5Bt%5D%2Ce%3Dk%5Be%5D%5Bf%5D%2Cf%3Dk%5Bm%5D%5Bf%5D%2Cg%3Dnew%20THREE%2EVector2%28m%2Fc%2Ct%2Fd%29%2Cn%3Dnew%20THREE%2EVector2%28%28m%2B1%29%2Fc%2C%0At%2Fd%29%2Cp%3Dnew%20THREE%2EVector2%28%28m%2B1%29%2Fc%2C%28t%2B1%29%2Fd%29%2Cq%3Dnew%20THREE%2EVector2%28m%2Fc%2C%28t%2B1%29%2Fd%29%2Cthis%2Efaces%2Epush%28new%20THREE%2EFace3%28a%2Cb%2Cf%29%29%2Cthis%2EfaceVertexUvs%5B0%5D%2Epush%28%5Bg%2Cn%2Cq%5D%29%2Cthis%2Efaces%2Epush%28new%20THREE%2EFace3%28b%2Ce%2Cf%29%29%2Cthis%2EfaceVertexUvs%5B0%5D%2Epush%28%5Bn%2Eclone%28%29%2Cp%2Cq%2Eclone%28%29%5D%29%3Bthis%2EcomputeFaceNormals%28%29%3Bthis%2EcomputeVertexNormals%28%29%7D%3BTHREE%2ETorusKnotGeometry%2Eprototype%3DObject%2Ecreate%28THREE%2EGeometry%2Eprototype%29%3BTHREE%2ETorusKnotGeometry%2Eprototype%2Econstructor%3DTHREE%2ETorusKnotGeometry%3B%0ATHREE%2ETubeGeometry%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%29%7BTHREE%2EGeometry%2Ecall%28this%29%3Bthis%2Etype%3D%22TubeGeometry%22%3Bthis%2Eparameters%3D%7Bpath%3Aa%2Csegments%3Ab%2Cradius%3Ac%2CradialSegments%3Ad%2Cclosed%3Ae%7D%3Bb%3Db%7C%7C64%3Bc%3Dc%7C%7C1%3Bd%3Dd%7C%7C8%3Be%3De%7C%7C%211%3Bf%3Df%7C%7CTHREE%2ETubeGeometry%2ENoTaper%3Bvar%20g%3D%5B%5D%2Ch%2Ck%2Cn%3Db%2B1%2Cp%2Cq%2Cm%2Ct%2Cs%2Cr%3Dnew%20THREE%2EVector3%2Cu%2Cv%2Cy%3Bu%3Dnew%20THREE%2ETubeGeometry%2EFrenetFrames%28a%2Cb%2Ce%29%3Bv%3Du%2Enormals%3By%3Du%2Ebinormals%3Bthis%2Etangents%3Du%2Etangents%3Bthis%2Enormals%3Dv%3Bthis%2Ebinormals%3Dy%3Bfor%28u%3D0%3Bu%3Cn%3Bu%2B%2B%29for%28g%5Bu%5D%3D%5B%5D%2Cp%3Du%2F%28n%2D1%29%2Cs%3Da%2EgetPointAt%28p%29%2Ch%3Dv%5Bu%5D%2Ck%3Dy%5Bu%5D%2Cm%3Dc%2Af%28p%29%2Cp%3D0%3Bp%3Cd%3Bp%2B%2B%29q%3D%0Ap%2Fd%2A2%2AMath%2EPI%2Ct%3D%2Dm%2AMath%2Ecos%28q%29%2Cq%3Dm%2AMath%2Esin%28q%29%2Cr%2Ecopy%28s%29%2Cr%2Ex%2B%3Dt%2Ah%2Ex%2Bq%2Ak%2Ex%2Cr%2Ey%2B%3Dt%2Ah%2Ey%2Bq%2Ak%2Ey%2Cr%2Ez%2B%3Dt%2Ah%2Ez%2Bq%2Ak%2Ez%2Cg%5Bu%5D%5Bp%5D%3Dthis%2Evertices%2Epush%28new%20THREE%2EVector3%28r%2Ex%2Cr%2Ey%2Cr%2Ez%29%29%2D1%3Bfor%28u%3D0%3Bu%3Cb%3Bu%2B%2B%29for%28p%3D0%3Bp%3Cd%3Bp%2B%2B%29f%3De%3F%28u%2B1%29%25b%3Au%2B1%2Cn%3D%28p%2B1%29%25d%2Ca%3Dg%5Bu%5D%5Bp%5D%2Cc%3Dg%5Bf%5D%5Bp%5D%2Cf%3Dg%5Bf%5D%5Bn%5D%2Cn%3Dg%5Bu%5D%5Bn%5D%2Cr%3Dnew%20THREE%2EVector2%28u%2Fb%2Cp%2Fd%29%2Cv%3Dnew%20THREE%2EVector2%28%28u%2B1%29%2Fb%2Cp%2Fd%29%2Cy%3Dnew%20THREE%2EVector2%28%28u%2B1%29%2Fb%2C%28p%2B1%29%2Fd%29%2Ch%3Dnew%20THREE%2EVector2%28u%2Fb%2C%28p%2B1%29%2Fd%29%2Cthis%2Efaces%2Epush%28new%20THREE%2EFace3%28a%2Cc%2Cn%29%29%2Cthis%2EfaceVertexUvs%5B0%5D%2Epush%28%5Br%2Cv%2Ch%5D%29%2Cthis%2Efaces%2Epush%28new%20THREE%2EFace3%28c%2C%0Af%2Cn%29%29%2Cthis%2EfaceVertexUvs%5B0%5D%2Epush%28%5Bv%2Eclone%28%29%2Cy%2Ch%2Eclone%28%29%5D%29%3Bthis%2EcomputeFaceNormals%28%29%3Bthis%2EcomputeVertexNormals%28%29%7D%3BTHREE%2ETubeGeometry%2Eprototype%3DObject%2Ecreate%28THREE%2EGeometry%2Eprototype%29%3BTHREE%2ETubeGeometry%2Eprototype%2Econstructor%3DTHREE%2ETubeGeometry%3BTHREE%2ETubeGeometry%2ENoTaper%3Dfunction%28a%29%7Breturn%201%7D%3BTHREE%2ETubeGeometry%2ESinusoidalTaper%3Dfunction%28a%29%7Breturn%20Math%2Esin%28Math%2EPI%2Aa%29%7D%3B%0ATHREE%2ETubeGeometry%2EFrenetFrames%3Dfunction%28a%2Cb%2Cc%29%7Bnew%20THREE%2EVector3%3Bvar%20d%3Dnew%20THREE%2EVector3%3Bnew%20THREE%2EVector3%3Bvar%20e%3D%5B%5D%2Cf%3D%5B%5D%2Cg%3D%5B%5D%2Ch%3Dnew%20THREE%2EVector3%2Ck%3Dnew%20THREE%2EMatrix4%3Bb%2B%3D1%3Bvar%20n%2Cp%2Cq%3Bthis%2Etangents%3De%3Bthis%2Enormals%3Df%3Bthis%2Ebinormals%3Dg%3Bfor%28n%3D0%3Bn%3Cb%3Bn%2B%2B%29p%3Dn%2F%28b%2D1%29%2Ce%5Bn%5D%3Da%2EgetTangentAt%28p%29%2Ce%5Bn%5D%2Enormalize%28%29%3Bf%5B0%5D%3Dnew%20THREE%2EVector3%3Bg%5B0%5D%3Dnew%20THREE%2EVector3%3Ba%3DNumber%2EMAX%5FVALUE%3Bn%3DMath%2Eabs%28e%5B0%5D%2Ex%29%3Bp%3DMath%2Eabs%28e%5B0%5D%2Ey%29%3Bq%3DMath%2Eabs%28e%5B0%5D%2Ez%29%3Bn%3C%3Da%26%26%28a%3Dn%2Cd%2Eset%281%2C0%2C0%29%29%3Bp%3C%3Da%26%26%28a%3Dp%2Cd%2Eset%280%2C1%2C0%29%29%3Bq%3C%3Da%26%26d%2Eset%280%2C0%2C1%29%3Bh%2EcrossVectors%28e%5B0%5D%2C%0Ad%29%2Enormalize%28%29%3Bf%5B0%5D%2EcrossVectors%28e%5B0%5D%2Ch%29%3Bg%5B0%5D%2EcrossVectors%28e%5B0%5D%2Cf%5B0%5D%29%3Bfor%28n%3D1%3Bn%3Cb%3Bn%2B%2B%29f%5Bn%5D%3Df%5Bn%2D1%5D%2Eclone%28%29%2Cg%5Bn%5D%3Dg%5Bn%2D1%5D%2Eclone%28%29%2Ch%2EcrossVectors%28e%5Bn%2D1%5D%2Ce%5Bn%5D%29%2C1E%2D4%3Ch%2Elength%28%29%26%26%28h%2Enormalize%28%29%2Cd%3DMath%2Eacos%28THREE%2EMath%2Eclamp%28e%5Bn%2D1%5D%2Edot%28e%5Bn%5D%29%2C%2D1%2C1%29%29%2Cf%5Bn%5D%2EapplyMatrix4%28k%2EmakeRotationAxis%28h%2Cd%29%29%29%2Cg%5Bn%5D%2EcrossVectors%28e%5Bn%5D%2Cf%5Bn%5D%29%3Bif%28c%29for%28d%3DMath%2Eacos%28THREE%2EMath%2Eclamp%28f%5B0%5D%2Edot%28f%5Bb%2D1%5D%29%2C%2D1%2C1%29%29%2Cd%2F%3Db%2D1%2C0%3Ce%5B0%5D%2Edot%28h%2EcrossVectors%28f%5B0%5D%2Cf%5Bb%2D1%5D%29%29%26%26%28d%3D%2Dd%29%2Cn%3D1%3Bn%3Cb%3Bn%2B%2B%29f%5Bn%5D%2EapplyMatrix4%28k%2EmakeRotationAxis%28e%5Bn%5D%2Cd%2An%29%29%2Cg%5Bn%5D%2EcrossVectors%28e%5Bn%5D%2C%0Af%5Bn%5D%29%7D%3B%0ATHREE%2EPolyhedronGeometry%3Dfunction%28a%2Cb%2Cc%2Cd%29%7Bfunction%20e%28a%29%7Bvar%20b%3Da%2Enormalize%28%29%2Eclone%28%29%3Bb%2Eindex%3Dk%2Evertices%2Epush%28b%29%2D1%3Bvar%20c%3DMath%2Eatan2%28a%2Ez%2C%2Da%2Ex%29%2F2%2FMath%2EPI%2B%2E5%3Ba%3DMath%2Eatan2%28%2Da%2Ey%2CMath%2Esqrt%28a%2Ex%2Aa%2Ex%2Ba%2Ez%2Aa%2Ez%29%29%2FMath%2EPI%2B%2E5%3Bb%2Euv%3Dnew%20THREE%2EVector2%28c%2C1%2Da%29%3Breturn%20b%7Dfunction%20f%28a%2Cb%2Cc%29%7Bvar%20d%3Dnew%20THREE%2EFace3%28a%2Eindex%2Cb%2Eindex%2Cc%2Eindex%2C%5Ba%2Eclone%28%29%2Cb%2Eclone%28%29%2Cc%2Eclone%28%29%5D%29%3Bk%2Efaces%2Epush%28d%29%3Bu%2Ecopy%28a%29%2Eadd%28b%29%2Eadd%28c%29%2EdivideScalar%283%29%3Bd%3DMath%2Eatan2%28u%2Ez%2C%2Du%2Ex%29%3Bk%2EfaceVertexUvs%5B0%5D%2Epush%28%5Bh%28a%2Euv%2Ca%2Cd%29%2Ch%28b%2Euv%2Cb%2Cd%29%2Ch%28c%2Euv%2Cc%2Cd%29%5D%29%7Dfunction%20g%28a%2Cb%29%7Bvar%20c%3D%0AMath%2Epow%282%2Cb%29%3BMath%2Epow%284%2Cb%29%3Bfor%28var%20d%3De%28k%2Evertices%5Ba%2Ea%5D%29%2Cg%3De%28k%2Evertices%5Ba%2Eb%5D%29%2Ch%3De%28k%2Evertices%5Ba%2Ec%5D%29%2Cm%3D%5B%5D%2Cn%3D0%3Bn%3C%3Dc%3Bn%2B%2B%29%7Bm%5Bn%5D%3D%5B%5D%3Bfor%28var%20p%3De%28d%2Eclone%28%29%2Elerp%28h%2Cn%2Fc%29%29%2Cq%3De%28g%2Eclone%28%29%2Elerp%28h%2Cn%2Fc%29%29%2Cs%3Dc%2Dn%2Cr%3D0%3Br%3C%3Ds%3Br%2B%2B%29m%5Bn%5D%5Br%5D%3D0%3D%3Dr%26%26n%3D%3Dc%3Fp%3Ae%28p%2Eclone%28%29%2Elerp%28q%2Cr%2Fs%29%29%7Dfor%28n%3D0%3Bn%3Cc%3Bn%2B%2B%29for%28r%3D0%3Br%3C2%2A%28c%2Dn%29%2D1%3Br%2B%2B%29d%3DMath%2Efloor%28r%2F2%29%2C0%3D%3Dr%252%3Ff%28m%5Bn%5D%5Bd%2B1%5D%2Cm%5Bn%2B1%5D%5Bd%5D%2Cm%5Bn%5D%5Bd%5D%29%3Af%28m%5Bn%5D%5Bd%2B1%5D%2Cm%5Bn%2B1%5D%5Bd%2B1%5D%2Cm%5Bn%2B1%5D%5Bd%5D%29%7Dfunction%20h%28a%2Cb%2Cc%29%7B0%3Ec%26%261%3D%3D%3Da%2Ex%26%26%28a%3Dnew%20THREE%2EVector2%28a%2Ex%2D1%2Ca%2Ey%29%29%3B0%3D%3D%3Db%2Ex%26%260%3D%3D%3Db%2Ez%26%26%28a%3Dnew%20THREE%2EVector2%28c%2F2%2FMath%2EPI%2B%2E5%2C%0Aa%2Ey%29%29%3Breturn%20a%2Eclone%28%29%7DTHREE%2EGeometry%2Ecall%28this%29%3Bthis%2Etype%3D%22PolyhedronGeometry%22%3Bthis%2Eparameters%3D%7Bvertices%3Aa%2Cindices%3Ab%2Cradius%3Ac%2Cdetail%3Ad%7D%3Bc%3Dc%7C%7C1%3Bd%3Dd%7C%7C0%3Bfor%28var%20k%3Dthis%2Cn%3D0%2Cp%3Da%2Elength%3Bn%3Cp%3Bn%2B%3D3%29e%28new%20THREE%2EVector3%28a%5Bn%5D%2Ca%5Bn%2B1%5D%2Ca%5Bn%2B2%5D%29%29%3Ba%3Dthis%2Evertices%3Bfor%28var%20q%3D%5B%5D%2Cm%3Dn%3D0%2Cp%3Db%2Elength%3Bn%3Cp%3Bn%2B%3D3%2Cm%2B%2B%29%7Bvar%20t%3Da%5Bb%5Bn%5D%5D%2Cs%3Da%5Bb%5Bn%2B1%5D%5D%2Cr%3Da%5Bb%5Bn%2B2%5D%5D%3Bq%5Bm%5D%3Dnew%20THREE%2EFace3%28t%2Eindex%2Cs%2Eindex%2Cr%2Eindex%2C%5Bt%2Eclone%28%29%2Cs%2Eclone%28%29%2Cr%2Eclone%28%29%5D%29%7Dfor%28var%20u%3Dnew%20THREE%2EVector3%2Cn%3D0%2Cp%3Dq%2Elength%3Bn%3Cp%3Bn%2B%2B%29g%28q%5Bn%5D%2Cd%29%3Bn%3D0%3Bfor%28p%3Dthis%2EfaceVertexUvs%5B0%5D%2Elength%3Bn%3C%0Ap%3Bn%2B%2B%29b%3Dthis%2EfaceVertexUvs%5B0%5D%5Bn%5D%2Cd%3Db%5B0%5D%2Ex%2Ca%3Db%5B1%5D%2Ex%2Cq%3Db%5B2%5D%2Ex%2Cm%3DMath%2Emax%28d%2CMath%2Emax%28a%2Cq%29%29%2Ct%3DMath%2Emin%28d%2CMath%2Emin%28a%2Cq%29%29%2C%2E9%3Cm%26%26%2E1%3Et%26%26%28%2E2%3Ed%26%26%28b%5B0%5D%2Ex%2B%3D1%29%2C%2E2%3Ea%26%26%28b%5B1%5D%2Ex%2B%3D1%29%2C%2E2%3Eq%26%26%28b%5B2%5D%2Ex%2B%3D1%29%29%3Bn%3D0%3Bfor%28p%3Dthis%2Evertices%2Elength%3Bn%3Cp%3Bn%2B%2B%29this%2Evertices%5Bn%5D%2EmultiplyScalar%28c%29%3Bthis%2EmergeVertices%28%29%3Bthis%2EcomputeFaceNormals%28%29%3Bthis%2EboundingSphere%3Dnew%20THREE%2ESphere%28new%20THREE%2EVector3%2Cc%29%7D%3BTHREE%2EPolyhedronGeometry%2Eprototype%3DObject%2Ecreate%28THREE%2EGeometry%2Eprototype%29%3BTHREE%2EPolyhedronGeometry%2Eprototype%2Econstructor%3DTHREE%2EPolyhedronGeometry%3B%0ATHREE%2EDodecahedronGeometry%3Dfunction%28a%2Cb%29%7Bthis%2Eparameters%3D%7Bradius%3Aa%2Cdetail%3Ab%7D%3Bvar%20c%3D%281%2BMath%2Esqrt%285%29%29%2F2%2Cd%3D1%2Fc%3BTHREE%2EPolyhedronGeometry%2Ecall%28this%2C%5B%2D1%2C%2D1%2C%2D1%2C%2D1%2C%2D1%2C1%2C%2D1%2C1%2C%2D1%2C%2D1%2C1%2C1%2C1%2C%2D1%2C%2D1%2C1%2C%2D1%2C1%2C1%2C1%2C%2D1%2C1%2C1%2C1%2C0%2C%2Dd%2C%2Dc%2C0%2C%2Dd%2Cc%2C0%2Cd%2C%2Dc%2C0%2Cd%2Cc%2C%2Dd%2C%2Dc%2C0%2C%2Dd%2Cc%2C0%2Cd%2C%2Dc%2C0%2Cd%2Cc%2C0%2C%2Dc%2C0%2C%2Dd%2Cc%2C0%2C%2Dd%2C%2Dc%2C0%2Cd%2Cc%2C0%2Cd%5D%2C%5B3%2C11%2C7%2C3%2C7%2C15%2C3%2C15%2C13%2C7%2C19%2C17%2C7%2C17%2C6%2C7%2C6%2C15%2C17%2C4%2C8%2C17%2C8%2C10%2C17%2C10%2C6%2C8%2C0%2C16%2C8%2C16%2C2%2C8%2C2%2C10%2C0%2C12%2C1%2C0%2C1%2C18%2C0%2C18%2C16%2C6%2C10%2C2%2C6%2C2%2C13%2C6%2C13%2C15%2C2%2C16%2C18%2C2%2C18%2C3%2C2%2C3%2C13%2C18%2C1%2C9%2C18%2C9%2C11%2C18%2C11%2C3%2C4%2C14%2C12%2C4%2C12%2C0%2C4%2C0%2C8%2C11%2C9%2C5%2C11%2C5%2C19%2C%0A11%2C19%2C7%2C19%2C5%2C14%2C19%2C14%2C4%2C19%2C4%2C17%2C1%2C12%2C14%2C1%2C14%2C5%2C1%2C5%2C9%5D%2Ca%2Cb%29%7D%3BTHREE%2EDodecahedronGeometry%2Eprototype%3DObject%2Ecreate%28THREE%2EGeometry%2Eprototype%29%3BTHREE%2EDodecahedronGeometry%2Eprototype%2Econstructor%3DTHREE%2EDodecahedronGeometry%3B%0ATHREE%2EIcosahedronGeometry%3Dfunction%28a%2Cb%29%7Bvar%20c%3D%281%2BMath%2Esqrt%285%29%29%2F2%3BTHREE%2EPolyhedronGeometry%2Ecall%28this%2C%5B%2D1%2Cc%2C0%2C1%2Cc%2C0%2C%2D1%2C%2Dc%2C0%2C1%2C%2Dc%2C0%2C0%2C%2D1%2Cc%2C0%2C1%2Cc%2C0%2C%2D1%2C%2Dc%2C0%2C1%2C%2Dc%2Cc%2C0%2C%2D1%2Cc%2C0%2C1%2C%2Dc%2C0%2C%2D1%2C%2Dc%2C0%2C1%5D%2C%5B0%2C11%2C5%2C0%2C5%2C1%2C0%2C1%2C7%2C0%2C7%2C10%2C0%2C10%2C11%2C1%2C5%2C9%2C5%2C11%2C4%2C11%2C10%2C2%2C10%2C7%2C6%2C7%2C1%2C8%2C3%2C9%2C4%2C3%2C4%2C2%2C3%2C2%2C6%2C3%2C6%2C8%2C3%2C8%2C9%2C4%2C9%2C5%2C2%2C4%2C11%2C6%2C2%2C10%2C8%2C6%2C7%2C9%2C8%2C1%5D%2Ca%2Cb%29%3Bthis%2Etype%3D%22IcosahedronGeometry%22%3Bthis%2Eparameters%3D%7Bradius%3Aa%2Cdetail%3Ab%7D%7D%3BTHREE%2EIcosahedronGeometry%2Eprototype%3DObject%2Ecreate%28THREE%2EGeometry%2Eprototype%29%3B%0ATHREE%2EIcosahedronGeometry%2Eprototype%2Econstructor%3DTHREE%2EIcosahedronGeometry%3BTHREE%2EOctahedronGeometry%3Dfunction%28a%2Cb%29%7Bthis%2Eparameters%3D%7Bradius%3Aa%2Cdetail%3Ab%7D%3BTHREE%2EPolyhedronGeometry%2Ecall%28this%2C%5B1%2C0%2C0%2C%2D1%2C0%2C0%2C0%2C1%2C0%2C0%2C%2D1%2C0%2C0%2C0%2C1%2C0%2C0%2C%2D1%5D%2C%5B0%2C2%2C4%2C0%2C4%2C3%2C0%2C3%2C5%2C0%2C5%2C2%2C1%2C2%2C5%2C1%2C5%2C3%2C1%2C3%2C4%2C1%2C4%2C2%5D%2Ca%2Cb%29%3Bthis%2Etype%3D%22OctahedronGeometry%22%3Bthis%2Eparameters%3D%7Bradius%3Aa%2Cdetail%3Ab%7D%7D%3BTHREE%2EOctahedronGeometry%2Eprototype%3DObject%2Ecreate%28THREE%2EGeometry%2Eprototype%29%3BTHREE%2EOctahedronGeometry%2Eprototype%2Econstructor%3DTHREE%2EOctahedronGeometry%3B%0ATHREE%2ETetrahedronGeometry%3Dfunction%28a%2Cb%29%7BTHREE%2EPolyhedronGeometry%2Ecall%28this%2C%5B1%2C1%2C1%2C%2D1%2C%2D1%2C1%2C%2D1%2C1%2C%2D1%2C1%2C%2D1%2C%2D1%5D%2C%5B2%2C1%2C0%2C0%2C3%2C2%2C1%2C3%2C0%2C2%2C3%2C1%5D%2Ca%2Cb%29%3Bthis%2Etype%3D%22TetrahedronGeometry%22%3Bthis%2Eparameters%3D%7Bradius%3Aa%2Cdetail%3Ab%7D%7D%3BTHREE%2ETetrahedronGeometry%2Eprototype%3DObject%2Ecreate%28THREE%2EGeometry%2Eprototype%29%3BTHREE%2ETetrahedronGeometry%2Eprototype%2Econstructor%3DTHREE%2ETetrahedronGeometry%3B%0ATHREE%2EParametricGeometry%3Dfunction%28a%2Cb%2Cc%29%7BTHREE%2EGeometry%2Ecall%28this%29%3Bthis%2Etype%3D%22ParametricGeometry%22%3Bthis%2Eparameters%3D%7Bfunc%3Aa%2Cslices%3Ab%2Cstacks%3Ac%7D%3Bvar%20d%3Dthis%2Evertices%2Ce%3Dthis%2Efaces%2Cf%3Dthis%2EfaceVertexUvs%5B0%5D%2Cg%2Ch%2Ck%2Cn%2Cp%3Db%2B1%3Bfor%28g%3D0%3Bg%3C%3Dc%3Bg%2B%2B%29for%28n%3Dg%2Fc%2Ch%3D0%3Bh%3C%3Db%3Bh%2B%2B%29k%3Dh%2Fb%2Ck%3Da%28k%2Cn%29%2Cd%2Epush%28k%29%3Bvar%20q%2Cm%2Ct%2Cs%3Bfor%28g%3D0%3Bg%3Cc%3Bg%2B%2B%29for%28h%3D0%3Bh%3Cb%3Bh%2B%2B%29a%3Dg%2Ap%2Bh%2Cd%3Dg%2Ap%2Bh%2B1%2Cn%3D%28g%2B1%29%2Ap%2Bh%2B1%2Ck%3D%28g%2B1%29%2Ap%2Bh%2Cq%3Dnew%20THREE%2EVector2%28h%2Fb%2Cg%2Fc%29%2Cm%3Dnew%20THREE%2EVector2%28%28h%2B1%29%2Fb%2Cg%2Fc%29%2Ct%3Dnew%20THREE%2EVector2%28%28h%2B1%29%2Fb%2C%28g%2B1%29%2Fc%29%2Cs%3Dnew%20THREE%2EVector2%28h%2Fb%2C%28g%2B1%29%2Fc%29%2Ce%2Epush%28new%20THREE%2EFace3%28a%2C%0Ad%2Ck%29%29%2Cf%2Epush%28%5Bq%2Cm%2Cs%5D%29%2Ce%2Epush%28new%20THREE%2EFace3%28d%2Cn%2Ck%29%29%2Cf%2Epush%28%5Bm%2Eclone%28%29%2Ct%2Cs%2Eclone%28%29%5D%29%3Bthis%2EcomputeFaceNormals%28%29%3Bthis%2EcomputeVertexNormals%28%29%7D%3BTHREE%2EParametricGeometry%2Eprototype%3DObject%2Ecreate%28THREE%2EGeometry%2Eprototype%29%3BTHREE%2EParametricGeometry%2Eprototype%2Econstructor%3DTHREE%2EParametricGeometry%3B%0ATHREE%2EAxisHelper%3Dfunction%28a%29%7Ba%3Da%7C%7C1%3Bvar%20b%3Dnew%20Float32Array%28%5B0%2C0%2C0%2Ca%2C0%2C0%2C0%2C0%2C0%2C0%2Ca%2C0%2C0%2C0%2C0%2C0%2C0%2Ca%5D%29%2Cc%3Dnew%20Float32Array%28%5B1%2C0%2C0%2C1%2C%2E6%2C0%2C0%2C1%2C0%2C%2E6%2C1%2C0%2C0%2C0%2C1%2C0%2C%2E6%2C1%5D%29%3Ba%3Dnew%20THREE%2EBufferGeometry%3Ba%2EaddAttribute%28%22position%22%2Cnew%20THREE%2EBufferAttribute%28b%2C3%29%29%3Ba%2EaddAttribute%28%22color%22%2Cnew%20THREE%2EBufferAttribute%28c%2C3%29%29%3Bb%3Dnew%20THREE%2ELineBasicMaterial%28%7BvertexColors%3ATHREE%2EVertexColors%7D%29%3BTHREE%2ELine%2Ecall%28this%2Ca%2Cb%2CTHREE%2ELinePieces%29%7D%3BTHREE%2EAxisHelper%2Eprototype%3DObject%2Ecreate%28THREE%2ELine%2Eprototype%29%3B%0ATHREE%2EAxisHelper%2Eprototype%2Econstructor%3DTHREE%2EAxisHelper%3B%0ATHREE%2EArrowHelper%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EGeometry%3Ba%2Evertices%2Epush%28new%20THREE%2EVector3%280%2C0%2C0%29%2Cnew%20THREE%2EVector3%280%2C1%2C0%29%29%3Bvar%20b%3Dnew%20THREE%2ECylinderGeometry%280%2C%2E5%2C1%2C5%2C1%29%3Bb%2EapplyMatrix%28%28new%20THREE%2EMatrix4%29%2EmakeTranslation%280%2C%2D%2E5%2C0%29%29%3Breturn%20function%28c%2Cd%2Ce%2Cf%2Cg%2Ch%29%7BTHREE%2EObject3D%2Ecall%28this%29%3Bvoid%200%3D%3D%3Df%26%26%28f%3D16776960%29%3Bvoid%200%3D%3D%3De%26%26%28e%3D1%29%3Bvoid%200%3D%3D%3Dg%26%26%28g%3D%2E2%2Ae%29%3Bvoid%200%3D%3D%3Dh%26%26%28h%3D%2E2%2Ag%29%3Bthis%2Eposition%2Ecopy%28d%29%3Bthis%2Eline%3Dnew%20THREE%2ELine%28a%2Cnew%20THREE%2ELineBasicMaterial%28%7Bcolor%3Af%7D%29%29%3Bthis%2Eline%2EmatrixAutoUpdate%3D%211%3Bthis%2Eadd%28this%2Eline%29%3B%0Athis%2Econe%3Dnew%20THREE%2EMesh%28b%2Cnew%20THREE%2EMeshBasicMaterial%28%7Bcolor%3Af%7D%29%29%3Bthis%2Econe%2EmatrixAutoUpdate%3D%211%3Bthis%2Eadd%28this%2Econe%29%3Bthis%2EsetDirection%28c%29%3Bthis%2EsetLength%28e%2Cg%2Ch%29%7D%7D%28%29%3BTHREE%2EArrowHelper%2Eprototype%3DObject%2Ecreate%28THREE%2EObject3D%2Eprototype%29%3BTHREE%2EArrowHelper%2Eprototype%2Econstructor%3DTHREE%2EArrowHelper%3B%0ATHREE%2EArrowHelper%2Eprototype%2EsetDirection%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%2Cb%3Breturn%20function%28c%29%7B%2E99999%3Cc%2Ey%3Fthis%2Equaternion%2Eset%280%2C0%2C0%2C1%29%3A%2D%2E99999%3Ec%2Ey%3Fthis%2Equaternion%2Eset%281%2C0%2C0%2C0%29%3A%28a%2Eset%28c%2Ez%2C0%2C%2Dc%2Ex%29%2Enormalize%28%29%2Cb%3DMath%2Eacos%28c%2Ey%29%2Cthis%2Equaternion%2EsetFromAxisAngle%28a%2Cb%29%29%7D%7D%28%29%3BTHREE%2EArrowHelper%2Eprototype%2EsetLength%3Dfunction%28a%2Cb%2Cc%29%7Bvoid%200%3D%3D%3Db%26%26%28b%3D%2E2%2Aa%29%3Bvoid%200%3D%3D%3Dc%26%26%28c%3D%2E2%2Ab%29%3Bthis%2Eline%2Escale%2Eset%281%2Ca%2Db%2C1%29%3Bthis%2Eline%2EupdateMatrix%28%29%3Bthis%2Econe%2Escale%2Eset%28c%2Cb%2Cc%29%3Bthis%2Econe%2Eposition%2Ey%3Da%3Bthis%2Econe%2EupdateMatrix%28%29%7D%3B%0ATHREE%2EArrowHelper%2Eprototype%2EsetColor%3Dfunction%28a%29%7Bthis%2Eline%2Ematerial%2Ecolor%2Eset%28a%29%3Bthis%2Econe%2Ematerial%2Ecolor%2Eset%28a%29%7D%3BTHREE%2EBoxHelper%3Dfunction%28a%29%7Bvar%20b%3Dnew%20THREE%2EBufferGeometry%3Bb%2EaddAttribute%28%22position%22%2Cnew%20THREE%2EBufferAttribute%28new%20Float32Array%2872%29%2C3%29%29%3BTHREE%2ELine%2Ecall%28this%2Cb%2Cnew%20THREE%2ELineBasicMaterial%28%7Bcolor%3A16776960%7D%29%2CTHREE%2ELinePieces%29%3Bvoid%200%21%3D%3Da%26%26this%2Eupdate%28a%29%7D%3BTHREE%2EBoxHelper%2Eprototype%3DObject%2Ecreate%28THREE%2ELine%2Eprototype%29%3BTHREE%2EBoxHelper%2Eprototype%2Econstructor%3DTHREE%2EBoxHelper%3B%0ATHREE%2EBoxHelper%2Eprototype%2Eupdate%3Dfunction%28a%29%7Bvar%20b%3Da%2Egeometry%3Bnull%3D%3D%3Db%2EboundingBox%26%26b%2EcomputeBoundingBox%28%29%3Bvar%20c%3Db%2EboundingBox%2Emin%2Cb%3Db%2EboundingBox%2Emax%2Cd%3Dthis%2Egeometry%2Eattributes%2Eposition%2Earray%3Bd%5B0%5D%3Db%2Ex%3Bd%5B1%5D%3Db%2Ey%3Bd%5B2%5D%3Db%2Ez%3Bd%5B3%5D%3Dc%2Ex%3Bd%5B4%5D%3Db%2Ey%3Bd%5B5%5D%3Db%2Ez%3Bd%5B6%5D%3Dc%2Ex%3Bd%5B7%5D%3Db%2Ey%3Bd%5B8%5D%3Db%2Ez%3Bd%5B9%5D%3Dc%2Ex%3Bd%5B10%5D%3Dc%2Ey%3Bd%5B11%5D%3Db%2Ez%3Bd%5B12%5D%3Dc%2Ex%3Bd%5B13%5D%3Dc%2Ey%3Bd%5B14%5D%3Db%2Ez%3Bd%5B15%5D%3Db%2Ex%3Bd%5B16%5D%3Dc%2Ey%3Bd%5B17%5D%3Db%2Ez%3Bd%5B18%5D%3Db%2Ex%3Bd%5B19%5D%3Dc%2Ey%3Bd%5B20%5D%3Db%2Ez%3Bd%5B21%5D%3Db%2Ex%3Bd%5B22%5D%3Db%2Ey%3Bd%5B23%5D%3Db%2Ez%3Bd%5B24%5D%3Db%2Ex%3Bd%5B25%5D%3Db%2Ey%3Bd%5B26%5D%3Dc%2Ez%3Bd%5B27%5D%3Dc%2Ex%3Bd%5B28%5D%3Db%2Ey%3Bd%5B29%5D%3Dc%2Ez%3Bd%5B30%5D%3Dc%2Ex%3Bd%5B31%5D%3Db%2Ey%3B%0Ad%5B32%5D%3Dc%2Ez%3Bd%5B33%5D%3Dc%2Ex%3Bd%5B34%5D%3Dc%2Ey%3Bd%5B35%5D%3Dc%2Ez%3Bd%5B36%5D%3Dc%2Ex%3Bd%5B37%5D%3Dc%2Ey%3Bd%5B38%5D%3Dc%2Ez%3Bd%5B39%5D%3Db%2Ex%3Bd%5B40%5D%3Dc%2Ey%3Bd%5B41%5D%3Dc%2Ez%3Bd%5B42%5D%3Db%2Ex%3Bd%5B43%5D%3Dc%2Ey%3Bd%5B44%5D%3Dc%2Ez%3Bd%5B45%5D%3Db%2Ex%3Bd%5B46%5D%3Db%2Ey%3Bd%5B47%5D%3Dc%2Ez%3Bd%5B48%5D%3Db%2Ex%3Bd%5B49%5D%3Db%2Ey%3Bd%5B50%5D%3Db%2Ez%3Bd%5B51%5D%3Db%2Ex%3Bd%5B52%5D%3Db%2Ey%3Bd%5B53%5D%3Dc%2Ez%3Bd%5B54%5D%3Dc%2Ex%3Bd%5B55%5D%3Db%2Ey%3Bd%5B56%5D%3Db%2Ez%3Bd%5B57%5D%3Dc%2Ex%3Bd%5B58%5D%3Db%2Ey%3Bd%5B59%5D%3Dc%2Ez%3Bd%5B60%5D%3Dc%2Ex%3Bd%5B61%5D%3Dc%2Ey%3Bd%5B62%5D%3Db%2Ez%3Bd%5B63%5D%3Dc%2Ex%3Bd%5B64%5D%3Dc%2Ey%3Bd%5B65%5D%3Dc%2Ez%3Bd%5B66%5D%3Db%2Ex%3Bd%5B67%5D%3Dc%2Ey%3Bd%5B68%5D%3Db%2Ez%3Bd%5B69%5D%3Db%2Ex%3Bd%5B70%5D%3Dc%2Ey%3Bd%5B71%5D%3Dc%2Ez%3Bthis%2Egeometry%2Eattributes%2Eposition%2EneedsUpdate%3D%210%3Bthis%2Egeometry%2EcomputeBoundingSphere%28%29%3Bthis%2Ematrix%3Da%2EmatrixWorld%3B%0Athis%2EmatrixAutoUpdate%3D%211%7D%3BTHREE%2EBoundingBoxHelper%3Dfunction%28a%2Cb%29%7Bvar%20c%3Dvoid%200%21%3D%3Db%3Fb%3A8947848%3Bthis%2Eobject%3Da%3Bthis%2Ebox%3Dnew%20THREE%2EBox3%3BTHREE%2EMesh%2Ecall%28this%2Cnew%20THREE%2EBoxGeometry%281%2C1%2C1%29%2Cnew%20THREE%2EMeshBasicMaterial%28%7Bcolor%3Ac%2Cwireframe%3A%210%7D%29%29%7D%3BTHREE%2EBoundingBoxHelper%2Eprototype%3DObject%2Ecreate%28THREE%2EMesh%2Eprototype%29%3BTHREE%2EBoundingBoxHelper%2Eprototype%2Econstructor%3DTHREE%2EBoundingBoxHelper%3BTHREE%2EBoundingBoxHelper%2Eprototype%2Eupdate%3Dfunction%28%29%7Bthis%2Ebox%2EsetFromObject%28this%2Eobject%29%3Bthis%2Ebox%2Esize%28this%2Escale%29%3Bthis%2Ebox%2Ecenter%28this%2Eposition%29%7D%3B%0ATHREE%2ECameraHelper%3Dfunction%28a%29%7Bfunction%20b%28a%2Cb%2Cd%29%7Bc%28a%2Cd%29%3Bc%28b%2Cd%29%7Dfunction%20c%28a%2Cb%29%7Bd%2Evertices%2Epush%28new%20THREE%2EVector3%29%3Bd%2Ecolors%2Epush%28new%20THREE%2EColor%28b%29%29%3Bvoid%200%3D%3D%3Df%5Ba%5D%26%26%28f%5Ba%5D%3D%5B%5D%29%3Bf%5Ba%5D%2Epush%28d%2Evertices%2Elength%2D1%29%7Dvar%20d%3Dnew%20THREE%2EGeometry%2Ce%3Dnew%20THREE%2ELineBasicMaterial%28%7Bcolor%3A16777215%2CvertexColors%3ATHREE%2EFaceColors%7D%29%2Cf%3D%7B%7D%3Bb%28%22n1%22%2C%22n2%22%2C16755200%29%3Bb%28%22n2%22%2C%22n4%22%2C16755200%29%3Bb%28%22n4%22%2C%22n3%22%2C16755200%29%3Bb%28%22n3%22%2C%22n1%22%2C16755200%29%3Bb%28%22f1%22%2C%22f2%22%2C16755200%29%3Bb%28%22f2%22%2C%22f4%22%2C16755200%29%3Bb%28%22f4%22%2C%22f3%22%2C16755200%29%3Bb%28%22f3%22%2C%22f1%22%2C16755200%29%3Bb%28%22n1%22%2C%22f1%22%2C16755200%29%3B%0Ab%28%22n2%22%2C%22f2%22%2C16755200%29%3Bb%28%22n3%22%2C%22f3%22%2C16755200%29%3Bb%28%22n4%22%2C%22f4%22%2C16755200%29%3Bb%28%22p%22%2C%22n1%22%2C16711680%29%3Bb%28%22p%22%2C%22n2%22%2C16711680%29%3Bb%28%22p%22%2C%22n3%22%2C16711680%29%3Bb%28%22p%22%2C%22n4%22%2C16711680%29%3Bb%28%22u1%22%2C%22u2%22%2C43775%29%3Bb%28%22u2%22%2C%22u3%22%2C43775%29%3Bb%28%22u3%22%2C%22u1%22%2C43775%29%3Bb%28%22c%22%2C%22t%22%2C16777215%29%3Bb%28%22p%22%2C%22c%22%2C3355443%29%3Bb%28%22cn1%22%2C%22cn2%22%2C3355443%29%3Bb%28%22cn3%22%2C%22cn4%22%2C3355443%29%3Bb%28%22cf1%22%2C%22cf2%22%2C3355443%29%3Bb%28%22cf3%22%2C%22cf4%22%2C3355443%29%3BTHREE%2ELine%2Ecall%28this%2Cd%2Ce%2CTHREE%2ELinePieces%29%3Bthis%2Ecamera%3Da%3Bthis%2Ematrix%3Da%2EmatrixWorld%3Bthis%2EmatrixAutoUpdate%3D%211%3Bthis%2EpointMap%3Df%3Bthis%2Eupdate%28%29%7D%3B%0ATHREE%2ECameraHelper%2Eprototype%3DObject%2Ecreate%28THREE%2ELine%2Eprototype%29%3BTHREE%2ECameraHelper%2Eprototype%2Econstructor%3DTHREE%2ECameraHelper%3B%0ATHREE%2ECameraHelper%2Eprototype%2Eupdate%3Dfunction%28%29%7Bvar%20a%2Cb%2Cc%3Dnew%20THREE%2EVector3%2Cd%3Dnew%20THREE%2ECamera%2Ce%3Dfunction%28e%2Cg%2Ch%2Ck%29%7Bc%2Eset%28g%2Ch%2Ck%29%2Eunproject%28d%29%3Be%3Db%5Be%5D%3Bif%28void%200%21%3D%3De%29for%28g%3D0%2Ch%3De%2Elength%3Bg%3Ch%3Bg%2B%2B%29a%2Evertices%5Be%5Bg%5D%5D%2Ecopy%28c%29%7D%3Breturn%20function%28%29%7Ba%3Dthis%2Egeometry%3Bb%3Dthis%2EpointMap%3Bd%2EprojectionMatrix%2Ecopy%28this%2Ecamera%2EprojectionMatrix%29%3Be%28%22c%22%2C0%2C0%2C%2D1%29%3Be%28%22t%22%2C0%2C0%2C1%29%3Be%28%22n1%22%2C%2D1%2C%2D1%2C%2D1%29%3Be%28%22n2%22%2C1%2C%2D1%2C%2D1%29%3Be%28%22n3%22%2C%2D1%2C1%2C%2D1%29%3Be%28%22n4%22%2C1%2C1%2C%2D1%29%3Be%28%22f1%22%2C%2D1%2C%2D1%2C1%29%3Be%28%22f2%22%2C1%2C%2D1%2C1%29%3Be%28%22f3%22%2C%2D1%2C1%2C1%29%3Be%28%22f4%22%2C1%2C1%2C1%29%3Be%28%22u1%22%2C%2E7%2C1%2E1%2C%2D1%29%3Be%28%22u2%22%2C%2D%2E7%2C1%2E1%2C%0A%2D1%29%3Be%28%22u3%22%2C0%2C2%2C%2D1%29%3Be%28%22cf1%22%2C%2D1%2C0%2C1%29%3Be%28%22cf2%22%2C1%2C0%2C1%29%3Be%28%22cf3%22%2C0%2C%2D1%2C1%29%3Be%28%22cf4%22%2C0%2C1%2C1%29%3Be%28%22cn1%22%2C%2D1%2C0%2C%2D1%29%3Be%28%22cn2%22%2C1%2C0%2C%2D1%29%3Be%28%22cn3%22%2C0%2C%2D1%2C%2D1%29%3Be%28%22cn4%22%2C0%2C1%2C%2D1%29%3Ba%2EverticesNeedUpdate%3D%210%7D%7D%28%29%3B%0ATHREE%2EDirectionalLightHelper%3Dfunction%28a%2Cb%29%7BTHREE%2EObject3D%2Ecall%28this%29%3Bthis%2Elight%3Da%3Bthis%2Elight%2EupdateMatrixWorld%28%29%3Bthis%2Ematrix%3Da%2EmatrixWorld%3Bthis%2EmatrixAutoUpdate%3D%211%3Bb%3Db%7C%7C1%3Bvar%20c%3Dnew%20THREE%2EGeometry%3Bc%2Evertices%2Epush%28new%20THREE%2EVector3%28%2Db%2Cb%2C0%29%2Cnew%20THREE%2EVector3%28b%2Cb%2C0%29%2Cnew%20THREE%2EVector3%28b%2C%2Db%2C0%29%2Cnew%20THREE%2EVector3%28%2Db%2C%2Db%2C0%29%2Cnew%20THREE%2EVector3%28%2Db%2Cb%2C0%29%29%3Bvar%20d%3Dnew%20THREE%2ELineBasicMaterial%28%7Bfog%3A%211%7D%29%3Bd%2Ecolor%2Ecopy%28this%2Elight%2Ecolor%29%2EmultiplyScalar%28this%2Elight%2Eintensity%29%3Bthis%2ElightPlane%3Dnew%20THREE%2ELine%28c%2Cd%29%3Bthis%2Eadd%28this%2ElightPlane%29%3B%0Ac%3Dnew%20THREE%2EGeometry%3Bc%2Evertices%2Epush%28new%20THREE%2EVector3%2Cnew%20THREE%2EVector3%29%3Bd%3Dnew%20THREE%2ELineBasicMaterial%28%7Bfog%3A%211%7D%29%3Bd%2Ecolor%2Ecopy%28this%2Elight%2Ecolor%29%2EmultiplyScalar%28this%2Elight%2Eintensity%29%3Bthis%2EtargetLine%3Dnew%20THREE%2ELine%28c%2Cd%29%3Bthis%2Eadd%28this%2EtargetLine%29%3Bthis%2Eupdate%28%29%7D%3BTHREE%2EDirectionalLightHelper%2Eprototype%3DObject%2Ecreate%28THREE%2EObject3D%2Eprototype%29%3BTHREE%2EDirectionalLightHelper%2Eprototype%2Econstructor%3DTHREE%2EDirectionalLightHelper%3B%0ATHREE%2EDirectionalLightHelper%2Eprototype%2Edispose%3Dfunction%28%29%7Bthis%2ElightPlane%2Egeometry%2Edispose%28%29%3Bthis%2ElightPlane%2Ematerial%2Edispose%28%29%3Bthis%2EtargetLine%2Egeometry%2Edispose%28%29%3Bthis%2EtargetLine%2Ematerial%2Edispose%28%29%7D%3B%0ATHREE%2EDirectionalLightHelper%2Eprototype%2Eupdate%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%2Cb%3Dnew%20THREE%2EVector3%2Cc%3Dnew%20THREE%2EVector3%3Breturn%20function%28%29%7Ba%2EsetFromMatrixPosition%28this%2Elight%2EmatrixWorld%29%3Bb%2EsetFromMatrixPosition%28this%2Elight%2Etarget%2EmatrixWorld%29%3Bc%2EsubVectors%28b%2Ca%29%3Bthis%2ElightPlane%2ElookAt%28c%29%3Bthis%2ElightPlane%2Ematerial%2Ecolor%2Ecopy%28this%2Elight%2Ecolor%29%2EmultiplyScalar%28this%2Elight%2Eintensity%29%3Bthis%2EtargetLine%2Egeometry%2Evertices%5B1%5D%2Ecopy%28c%29%3Bthis%2EtargetLine%2Egeometry%2EverticesNeedUpdate%3D%210%3Bthis%2EtargetLine%2Ematerial%2Ecolor%2Ecopy%28this%2ElightPlane%2Ematerial%2Ecolor%29%7D%7D%28%29%3B%0ATHREE%2EEdgesHelper%3Dfunction%28a%2Cb%29%7Bvar%20c%3Dvoid%200%21%3D%3Db%3Fb%3A16777215%2Cd%3D%5B0%2C0%5D%2Ce%3D%7B%7D%2Cf%3Dfunction%28a%2Cb%29%7Breturn%20a%2Db%7D%2Cg%3D%5B%22a%22%2C%22b%22%2C%22c%22%5D%2Ch%3Dnew%20THREE%2EBufferGeometry%2Ck%3Da%2Egeometry%2Eclone%28%29%3Bk%2EmergeVertices%28%29%3Bk%2EcomputeFaceNormals%28%29%3Bfor%28var%20n%3Dk%2Evertices%2Ck%3Dk%2Efaces%2Cp%3D0%2Cq%3D0%2Cm%3Dk%2Elength%3Bq%3Cm%3Bq%2B%2B%29for%28var%20t%3Dk%5Bq%5D%2Cs%3D0%3B3%3Es%3Bs%2B%2B%29%7Bd%5B0%5D%3Dt%5Bg%5Bs%5D%5D%3Bd%5B1%5D%3Dt%5Bg%5B%28s%2B1%29%253%5D%5D%3Bd%2Esort%28f%29%3Bvar%20r%3Dd%2EtoString%28%29%3Bvoid%200%3D%3D%3De%5Br%5D%3F%28e%5Br%5D%3D%7Bvert1%3Ad%5B0%5D%2Cvert2%3Ad%5B1%5D%2Cface1%3Aq%2Cface2%3Avoid%200%7D%2Cp%2B%2B%29%3Ae%5Br%5D%2Eface2%3Dq%7Dd%3Dnew%20Float32Array%286%2Ap%29%3Bf%3D0%3Bfor%28r%20in%20e%29if%28g%3De%5Br%5D%2Cvoid%200%3D%3D%3Dg%2Eface2%7C%7C%0A%2E9999%3Ek%5Bg%2Eface1%5D%2Enormal%2Edot%28k%5Bg%2Eface2%5D%2Enormal%29%29p%3Dn%5Bg%2Evert1%5D%2Cd%5Bf%2B%2B%5D%3Dp%2Ex%2Cd%5Bf%2B%2B%5D%3Dp%2Ey%2Cd%5Bf%2B%2B%5D%3Dp%2Ez%2Cp%3Dn%5Bg%2Evert2%5D%2Cd%5Bf%2B%2B%5D%3Dp%2Ex%2Cd%5Bf%2B%2B%5D%3Dp%2Ey%2Cd%5Bf%2B%2B%5D%3Dp%2Ez%3Bh%2EaddAttribute%28%22position%22%2Cnew%20THREE%2EBufferAttribute%28d%2C3%29%29%3BTHREE%2ELine%2Ecall%28this%2Ch%2Cnew%20THREE%2ELineBasicMaterial%28%7Bcolor%3Ac%7D%29%2CTHREE%2ELinePieces%29%3Bthis%2Ematrix%3Da%2EmatrixWorld%3Bthis%2EmatrixAutoUpdate%3D%211%7D%3BTHREE%2EEdgesHelper%2Eprototype%3DObject%2Ecreate%28THREE%2ELine%2Eprototype%29%3BTHREE%2EEdgesHelper%2Eprototype%2Econstructor%3DTHREE%2EEdgesHelper%3B%0ATHREE%2EFaceNormalsHelper%3Dfunction%28a%2Cb%2Cc%2Cd%29%7Bthis%2Eobject%3Da%3Bthis%2Esize%3Dvoid%200%21%3D%3Db%3Fb%3A1%3Ba%3Dvoid%200%21%3D%3Dc%3Fc%3A16776960%3Bd%3Dvoid%200%21%3D%3Dd%3Fd%3A1%3Bb%3Dnew%20THREE%2EGeometry%3Bc%3D0%3Bfor%28var%20e%3Dthis%2Eobject%2Egeometry%2Efaces%2Elength%3Bc%3Ce%3Bc%2B%2B%29b%2Evertices%2Epush%28new%20THREE%2EVector3%2Cnew%20THREE%2EVector3%29%3BTHREE%2ELine%2Ecall%28this%2Cb%2Cnew%20THREE%2ELineBasicMaterial%28%7Bcolor%3Aa%2Clinewidth%3Ad%7D%29%2CTHREE%2ELinePieces%29%3Bthis%2EmatrixAutoUpdate%3D%211%3Bthis%2EnormalMatrix%3Dnew%20THREE%2EMatrix3%3Bthis%2Eupdate%28%29%7D%3BTHREE%2EFaceNormalsHelper%2Eprototype%3DObject%2Ecreate%28THREE%2ELine%2Eprototype%29%3B%0ATHREE%2EFaceNormalsHelper%2Eprototype%2Econstructor%3DTHREE%2EFaceNormalsHelper%3B%0ATHREE%2EFaceNormalsHelper%2Eprototype%2Eupdate%3Dfunction%28%29%7Bvar%20a%3Dthis%2Egeometry%2Evertices%2Cb%3Dthis%2Eobject%2Cc%3Db%2Egeometry%2Evertices%2Cd%3Db%2Egeometry%2Efaces%2Ce%3Db%2EmatrixWorld%3Bb%2EupdateMatrixWorld%28%210%29%3Bthis%2EnormalMatrix%2EgetNormalMatrix%28e%29%3Bfor%28var%20f%3Db%3D0%2Cg%3Dd%2Elength%3Bb%3Cg%3Bb%2B%2B%2Cf%2B%3D2%29%7Bvar%20h%3Dd%5Bb%5D%3Ba%5Bf%5D%2Ecopy%28c%5Bh%2Ea%5D%29%2Eadd%28c%5Bh%2Eb%5D%29%2Eadd%28c%5Bh%2Ec%5D%29%2EdivideScalar%283%29%2EapplyMatrix4%28e%29%3Ba%5Bf%2B1%5D%2Ecopy%28h%2Enormal%29%2EapplyMatrix3%28this%2EnormalMatrix%29%2Enormalize%28%29%2EmultiplyScalar%28this%2Esize%29%2Eadd%28a%5Bf%5D%29%7Dthis%2Egeometry%2EverticesNeedUpdate%3D%210%3Breturn%20this%7D%3B%0ATHREE%2EGridHelper%3Dfunction%28a%2Cb%29%7Bvar%20c%3Dnew%20THREE%2EGeometry%2Cd%3Dnew%20THREE%2ELineBasicMaterial%28%7BvertexColors%3ATHREE%2EVertexColors%7D%29%3Bthis%2Ecolor1%3Dnew%20THREE%2EColor%284473924%29%3Bthis%2Ecolor2%3Dnew%20THREE%2EColor%288947848%29%3Bfor%28var%20e%3D%2Da%3Be%3C%3Da%3Be%2B%3Db%29%7Bc%2Evertices%2Epush%28new%20THREE%2EVector3%28%2Da%2C0%2Ce%29%2Cnew%20THREE%2EVector3%28a%2C0%2Ce%29%2Cnew%20THREE%2EVector3%28e%2C0%2C%2Da%29%2Cnew%20THREE%2EVector3%28e%2C0%2Ca%29%29%3Bvar%20f%3D0%3D%3D%3De%3Fthis%2Ecolor1%3Athis%2Ecolor2%3Bc%2Ecolors%2Epush%28f%2Cf%2Cf%2Cf%29%7DTHREE%2ELine%2Ecall%28this%2Cc%2Cd%2CTHREE%2ELinePieces%29%7D%3BTHREE%2EGridHelper%2Eprototype%3DObject%2Ecreate%28THREE%2ELine%2Eprototype%29%3B%0ATHREE%2EGridHelper%2Eprototype%2Econstructor%3DTHREE%2EGridHelper%3BTHREE%2EGridHelper%2Eprototype%2EsetColors%3Dfunction%28a%2Cb%29%7Bthis%2Ecolor1%2Eset%28a%29%3Bthis%2Ecolor2%2Eset%28b%29%3Bthis%2Egeometry%2EcolorsNeedUpdate%3D%210%7D%3B%0ATHREE%2EHemisphereLightHelper%3Dfunction%28a%2Cb%2Cc%2Cd%29%7BTHREE%2EObject3D%2Ecall%28this%29%3Bthis%2Elight%3Da%3Bthis%2Elight%2EupdateMatrixWorld%28%29%3Bthis%2Ematrix%3Da%2EmatrixWorld%3Bthis%2EmatrixAutoUpdate%3D%211%3Bthis%2Ecolors%3D%5Bnew%20THREE%2EColor%2Cnew%20THREE%2EColor%5D%3Ba%3Dnew%20THREE%2ESphereGeometry%28b%2C4%2C2%29%3Ba%2EapplyMatrix%28%28new%20THREE%2EMatrix4%29%2EmakeRotationX%28%2DMath%2EPI%2F2%29%29%3Bfor%28b%3D0%3B8%3Eb%3Bb%2B%2B%29a%2Efaces%5Bb%5D%2Ecolor%3Dthis%2Ecolors%5B4%3Eb%3F0%3A1%5D%3Bb%3Dnew%20THREE%2EMeshBasicMaterial%28%7BvertexColors%3ATHREE%2EFaceColors%2Cwireframe%3A%210%7D%29%3Bthis%2ElightSphere%3Dnew%20THREE%2EMesh%28a%2Cb%29%3Bthis%2Eadd%28this%2ElightSphere%29%3B%0Athis%2Eupdate%28%29%7D%3BTHREE%2EHemisphereLightHelper%2Eprototype%3DObject%2Ecreate%28THREE%2EObject3D%2Eprototype%29%3BTHREE%2EHemisphereLightHelper%2Eprototype%2Econstructor%3DTHREE%2EHemisphereLightHelper%3BTHREE%2EHemisphereLightHelper%2Eprototype%2Edispose%3Dfunction%28%29%7Bthis%2ElightSphere%2Egeometry%2Edispose%28%29%3Bthis%2ElightSphere%2Ematerial%2Edispose%28%29%7D%3B%0ATHREE%2EHemisphereLightHelper%2Eprototype%2Eupdate%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%3Breturn%20function%28%29%7Bthis%2Ecolors%5B0%5D%2Ecopy%28this%2Elight%2Ecolor%29%2EmultiplyScalar%28this%2Elight%2Eintensity%29%3Bthis%2Ecolors%5B1%5D%2Ecopy%28this%2Elight%2EgroundColor%29%2EmultiplyScalar%28this%2Elight%2Eintensity%29%3Bthis%2ElightSphere%2ElookAt%28a%2EsetFromMatrixPosition%28this%2Elight%2EmatrixWorld%29%2Enegate%28%29%29%3Bthis%2ElightSphere%2Egeometry%2EcolorsNeedUpdate%3D%210%7D%7D%28%29%3B%0ATHREE%2EPointLightHelper%3Dfunction%28a%2Cb%29%7Bthis%2Elight%3Da%3Bthis%2Elight%2EupdateMatrixWorld%28%29%3Bvar%20c%3Dnew%20THREE%2ESphereGeometry%28b%2C4%2C2%29%2Cd%3Dnew%20THREE%2EMeshBasicMaterial%28%7Bwireframe%3A%210%2Cfog%3A%211%7D%29%3Bd%2Ecolor%2Ecopy%28this%2Elight%2Ecolor%29%2EmultiplyScalar%28this%2Elight%2Eintensity%29%3BTHREE%2EMesh%2Ecall%28this%2Cc%2Cd%29%3Bthis%2Ematrix%3Dthis%2Elight%2EmatrixWorld%3Bthis%2EmatrixAutoUpdate%3D%211%7D%3BTHREE%2EPointLightHelper%2Eprototype%3DObject%2Ecreate%28THREE%2EMesh%2Eprototype%29%3BTHREE%2EPointLightHelper%2Eprototype%2Econstructor%3DTHREE%2EPointLightHelper%3B%0ATHREE%2EPointLightHelper%2Eprototype%2Edispose%3Dfunction%28%29%7Bthis%2Egeometry%2Edispose%28%29%3Bthis%2Ematerial%2Edispose%28%29%7D%3BTHREE%2EPointLightHelper%2Eprototype%2Eupdate%3Dfunction%28%29%7Bthis%2Ematerial%2Ecolor%2Ecopy%28this%2Elight%2Ecolor%29%2EmultiplyScalar%28this%2Elight%2Eintensity%29%7D%3B%0ATHREE%2ESkeletonHelper%3Dfunction%28a%29%7Bthis%2Ebones%3Dthis%2EgetBoneList%28a%29%3Bfor%28var%20b%3Dnew%20THREE%2EGeometry%2Cc%3D0%3Bc%3Cthis%2Ebones%2Elength%3Bc%2B%2B%29this%2Ebones%5Bc%5D%2Eparent%20instanceof%20THREE%2EBone%26%26%28b%2Evertices%2Epush%28new%20THREE%2EVector3%29%2Cb%2Evertices%2Epush%28new%20THREE%2EVector3%29%2Cb%2Ecolors%2Epush%28new%20THREE%2EColor%280%2C0%2C1%29%29%2Cb%2Ecolors%2Epush%28new%20THREE%2EColor%280%2C1%2C0%29%29%29%3Bc%3Dnew%20THREE%2ELineBasicMaterial%28%7BvertexColors%3ATHREE%2EVertexColors%2CdepthTest%3A%211%2CdepthWrite%3A%211%2Ctransparent%3A%210%7D%29%3BTHREE%2ELine%2Ecall%28this%2Cb%2Cc%2CTHREE%2ELinePieces%29%3Bthis%2Eroot%3Da%3Bthis%2Ematrix%3Da%2EmatrixWorld%3B%0Athis%2EmatrixAutoUpdate%3D%211%3Bthis%2Eupdate%28%29%7D%3BTHREE%2ESkeletonHelper%2Eprototype%3DObject%2Ecreate%28THREE%2ELine%2Eprototype%29%3BTHREE%2ESkeletonHelper%2Eprototype%2Econstructor%3DTHREE%2ESkeletonHelper%3BTHREE%2ESkeletonHelper%2Eprototype%2EgetBoneList%3Dfunction%28a%29%7Bvar%20b%3D%5B%5D%3Ba%20instanceof%20THREE%2EBone%26%26b%2Epush%28a%29%3Bfor%28var%20c%3D0%3Bc%3Ca%2Echildren%2Elength%3Bc%2B%2B%29b%2Epush%2Eapply%28b%2Cthis%2EgetBoneList%28a%2Echildren%5Bc%5D%29%29%3Breturn%20b%7D%3B%0ATHREE%2ESkeletonHelper%2Eprototype%2Eupdate%3Dfunction%28%29%7Bfor%28var%20a%3Dthis%2Egeometry%2Cb%3D%28new%20THREE%2EMatrix4%29%2EgetInverse%28this%2Eroot%2EmatrixWorld%29%2Cc%3Dnew%20THREE%2EMatrix4%2Cd%3D0%2Ce%3D0%3Be%3Cthis%2Ebones%2Elength%3Be%2B%2B%29%7Bvar%20f%3Dthis%2Ebones%5Be%5D%3Bf%2Eparent%20instanceof%20THREE%2EBone%26%26%28c%2EmultiplyMatrices%28b%2Cf%2EmatrixWorld%29%2Ca%2Evertices%5Bd%5D%2EsetFromMatrixPosition%28c%29%2Cc%2EmultiplyMatrices%28b%2Cf%2Eparent%2EmatrixWorld%29%2Ca%2Evertices%5Bd%2B1%5D%2EsetFromMatrixPosition%28c%29%2Cd%2B%3D2%29%7Da%2EverticesNeedUpdate%3D%210%3Ba%2EcomputeBoundingSphere%28%29%7D%3B%0ATHREE%2ESpotLightHelper%3Dfunction%28a%29%7BTHREE%2EObject3D%2Ecall%28this%29%3Bthis%2Elight%3Da%3Bthis%2Elight%2EupdateMatrixWorld%28%29%3Bthis%2Ematrix%3Da%2EmatrixWorld%3Bthis%2EmatrixAutoUpdate%3D%211%3Ba%3Dnew%20THREE%2ECylinderGeometry%280%2C1%2C1%2C8%2C1%2C%210%29%3Ba%2EapplyMatrix%28%28new%20THREE%2EMatrix4%29%2EmakeTranslation%280%2C%2D%2E5%2C0%29%29%3Ba%2EapplyMatrix%28%28new%20THREE%2EMatrix4%29%2EmakeRotationX%28%2DMath%2EPI%2F2%29%29%3Bvar%20b%3Dnew%20THREE%2EMeshBasicMaterial%28%7Bwireframe%3A%210%2Cfog%3A%211%7D%29%3Bthis%2Econe%3Dnew%20THREE%2EMesh%28a%2Cb%29%3Bthis%2Eadd%28this%2Econe%29%3Bthis%2Eupdate%28%29%7D%3BTHREE%2ESpotLightHelper%2Eprototype%3DObject%2Ecreate%28THREE%2EObject3D%2Eprototype%29%3B%0ATHREE%2ESpotLightHelper%2Eprototype%2Econstructor%3DTHREE%2ESpotLightHelper%3BTHREE%2ESpotLightHelper%2Eprototype%2Edispose%3Dfunction%28%29%7Bthis%2Econe%2Egeometry%2Edispose%28%29%3Bthis%2Econe%2Ematerial%2Edispose%28%29%7D%3B%0ATHREE%2ESpotLightHelper%2Eprototype%2Eupdate%3Dfunction%28%29%7Bvar%20a%3Dnew%20THREE%2EVector3%2Cb%3Dnew%20THREE%2EVector3%3Breturn%20function%28%29%7Bvar%20c%3Dthis%2Elight%2Edistance%3Fthis%2Elight%2Edistance%3A1E4%2Cd%3Dc%2AMath%2Etan%28this%2Elight%2Eangle%29%3Bthis%2Econe%2Escale%2Eset%28d%2Cd%2Cc%29%3Ba%2EsetFromMatrixPosition%28this%2Elight%2EmatrixWorld%29%3Bb%2EsetFromMatrixPosition%28this%2Elight%2Etarget%2EmatrixWorld%29%3Bthis%2Econe%2ElookAt%28b%2Esub%28a%29%29%3Bthis%2Econe%2Ematerial%2Ecolor%2Ecopy%28this%2Elight%2Ecolor%29%2EmultiplyScalar%28this%2Elight%2Eintensity%29%7D%7D%28%29%3B%0ATHREE%2EVertexNormalsHelper%3Dfunction%28a%2Cb%2Cc%2Cd%29%7Bthis%2Eobject%3Da%3Bthis%2Esize%3Dvoid%200%21%3D%3Db%3Fb%3A1%3Bb%3Dvoid%200%21%3D%3Dc%3Fc%3A16711680%3Bd%3Dvoid%200%21%3D%3Dd%3Fd%3A1%3Bc%3Dnew%20THREE%2EGeometry%3Ba%3Da%2Egeometry%2Efaces%3Bfor%28var%20e%3D0%2Cf%3Da%2Elength%3Be%3Cf%3Be%2B%2B%29for%28var%20g%3D0%2Ch%3Da%5Be%5D%2EvertexNormals%2Elength%3Bg%3Ch%3Bg%2B%2B%29c%2Evertices%2Epush%28new%20THREE%2EVector3%2Cnew%20THREE%2EVector3%29%3BTHREE%2ELine%2Ecall%28this%2Cc%2Cnew%20THREE%2ELineBasicMaterial%28%7Bcolor%3Ab%2Clinewidth%3Ad%7D%29%2CTHREE%2ELinePieces%29%3Bthis%2EmatrixAutoUpdate%3D%211%3Bthis%2EnormalMatrix%3Dnew%20THREE%2EMatrix3%3Bthis%2Eupdate%28%29%7D%3BTHREE%2EVertexNormalsHelper%2Eprototype%3DObject%2Ecreate%28THREE%2ELine%2Eprototype%29%3B%0ATHREE%2EVertexNormalsHelper%2Eprototype%2Econstructor%3DTHREE%2EVertexNormalsHelper%3B%0ATHREE%2EVertexNormalsHelper%2Eprototype%2Eupdate%3Dfunction%28a%29%7Bvar%20b%3Dnew%20THREE%2EVector3%3Breturn%20function%28a%29%7Ba%3D%5B%22a%22%2C%22b%22%2C%22c%22%2C%22d%22%5D%3Bthis%2Eobject%2EupdateMatrixWorld%28%210%29%3Bthis%2EnormalMatrix%2EgetNormalMatrix%28this%2Eobject%2EmatrixWorld%29%3Bfor%28var%20d%3Dthis%2Egeometry%2Evertices%2Ce%3Dthis%2Eobject%2Egeometry%2Evertices%2Cf%3Dthis%2Eobject%2Egeometry%2Efaces%2Cg%3Dthis%2Eobject%2EmatrixWorld%2Ch%3D0%2Ck%3D0%2Cn%3Df%2Elength%3Bk%3Cn%3Bk%2B%2B%29for%28var%20p%3Df%5Bk%5D%2Cq%3D0%2Cm%3Dp%2EvertexNormals%2Elength%3Bq%3Cm%3Bq%2B%2B%29%7Bvar%20t%3Dp%2EvertexNormals%5Bq%5D%3Bd%5Bh%5D%2Ecopy%28e%5Bp%5Ba%5Bq%5D%5D%5D%29%2EapplyMatrix4%28g%29%3Bb%2Ecopy%28t%29%2EapplyMatrix3%28this%2EnormalMatrix%29%2Enormalize%28%29%2EmultiplyScalar%28this%2Esize%29%3B%0Ab%2Eadd%28d%5Bh%5D%29%3Bh%2B%3D1%3Bd%5Bh%5D%2Ecopy%28b%29%3Bh%2B%3D1%7Dthis%2Egeometry%2EverticesNeedUpdate%3D%210%3Breturn%20this%7D%7D%28%29%3B%0ATHREE%2EVertexTangentsHelper%3Dfunction%28a%2Cb%2Cc%2Cd%29%7Bthis%2Eobject%3Da%3Bthis%2Esize%3Dvoid%200%21%3D%3Db%3Fb%3A1%3Bb%3Dvoid%200%21%3D%3Dc%3Fc%3A255%3Bd%3Dvoid%200%21%3D%3Dd%3Fd%3A1%3Bc%3Dnew%20THREE%2EGeometry%3Ba%3Da%2Egeometry%2Efaces%3Bfor%28var%20e%3D0%2Cf%3Da%2Elength%3Be%3Cf%3Be%2B%2B%29for%28var%20g%3D0%2Ch%3Da%5Be%5D%2EvertexTangents%2Elength%3Bg%3Ch%3Bg%2B%2B%29c%2Evertices%2Epush%28new%20THREE%2EVector3%29%2Cc%2Evertices%2Epush%28new%20THREE%2EVector3%29%3BTHREE%2ELine%2Ecall%28this%2Cc%2Cnew%20THREE%2ELineBasicMaterial%28%7Bcolor%3Ab%2Clinewidth%3Ad%7D%29%2CTHREE%2ELinePieces%29%3Bthis%2EmatrixAutoUpdate%3D%211%3Bthis%2Eupdate%28%29%7D%3BTHREE%2EVertexTangentsHelper%2Eprototype%3DObject%2Ecreate%28THREE%2ELine%2Eprototype%29%3B%0ATHREE%2EVertexTangentsHelper%2Eprototype%2Econstructor%3DTHREE%2EVertexTangentsHelper%3B%0ATHREE%2EVertexTangentsHelper%2Eprototype%2Eupdate%3Dfunction%28a%29%7Bvar%20b%3Dnew%20THREE%2EVector3%3Breturn%20function%28a%29%7Ba%3D%5B%22a%22%2C%22b%22%2C%22c%22%2C%22d%22%5D%3Bthis%2Eobject%2EupdateMatrixWorld%28%210%29%3Bfor%28var%20d%3Dthis%2Egeometry%2Evertices%2Ce%3Dthis%2Eobject%2Egeometry%2Evertices%2Cf%3Dthis%2Eobject%2Egeometry%2Efaces%2Cg%3Dthis%2Eobject%2EmatrixWorld%2Ch%3D0%2Ck%3D0%2Cn%3Df%2Elength%3Bk%3Cn%3Bk%2B%2B%29for%28var%20p%3Df%5Bk%5D%2Cq%3D0%2Cm%3Dp%2EvertexTangents%2Elength%3Bq%3Cm%3Bq%2B%2B%29%7Bvar%20t%3Dp%2EvertexTangents%5Bq%5D%3Bd%5Bh%5D%2Ecopy%28e%5Bp%5Ba%5Bq%5D%5D%5D%29%2EapplyMatrix4%28g%29%3Bb%2Ecopy%28t%29%2EtransformDirection%28g%29%2EmultiplyScalar%28this%2Esize%29%3Bb%2Eadd%28d%5Bh%5D%29%3Bh%2B%3D1%3Bd%5Bh%5D%2Ecopy%28b%29%3B%0Ah%2B%3D1%7Dthis%2Egeometry%2EverticesNeedUpdate%3D%210%3Breturn%20this%7D%7D%28%29%3B%0ATHREE%2EWireframeHelper%3Dfunction%28a%2Cb%29%7Bvar%20c%3Dvoid%200%21%3D%3Db%3Fb%3A16777215%2Cd%3D%5B0%2C0%5D%2Ce%3D%7B%7D%2Cf%3Dfunction%28a%2Cb%29%7Breturn%20a%2Db%7D%2Cg%3D%5B%22a%22%2C%22b%22%2C%22c%22%5D%2Ch%3Dnew%20THREE%2EBufferGeometry%3Bif%28a%2Egeometry%20instanceof%20THREE%2EGeometry%29%7Bfor%28var%20k%3Da%2Egeometry%2Evertices%2Cn%3Da%2Egeometry%2Efaces%2Cp%3D0%2Cq%3Dnew%20Uint32Array%286%2An%2Elength%29%2Cm%3D0%2Ct%3Dn%2Elength%3Bm%3Ct%3Bm%2B%2B%29for%28var%20s%3Dn%5Bm%5D%2Cr%3D0%3B3%3Er%3Br%2B%2B%29%7Bd%5B0%5D%3Ds%5Bg%5Br%5D%5D%3Bd%5B1%5D%3Ds%5Bg%5B%28r%2B1%29%253%5D%5D%3Bd%2Esort%28f%29%3Bvar%20u%3Dd%2EtoString%28%29%3Bvoid%200%3D%3D%3De%5Bu%5D%26%26%28q%5B2%2Ap%5D%3Dd%5B0%5D%2Cq%5B2%2Ap%2B1%5D%3Dd%5B1%5D%2Ce%5Bu%5D%3D%210%2Cp%2B%2B%29%7Dd%3Dnew%20Float32Array%286%2Ap%29%3Bm%3D0%3Bfor%28t%3Dp%3Bm%3Ct%3Bm%2B%2B%29for%28r%3D0%3B2%3Er%3Br%2B%2B%29p%3D%0Ak%5Bq%5B2%2Am%2Br%5D%5D%2Cg%3D6%2Am%2B3%2Ar%2Cd%5Bg%2B0%5D%3Dp%2Ex%2Cd%5Bg%2B1%5D%3Dp%2Ey%2Cd%5Bg%2B2%5D%3Dp%2Ez%3Bh%2EaddAttribute%28%22position%22%2Cnew%20THREE%2EBufferAttribute%28d%2C3%29%29%7Delse%20if%28a%2Egeometry%20instanceof%20THREE%2EBufferGeometry%29%7Bif%28void%200%21%3D%3Da%2Egeometry%2Eattributes%2Eindex%29%7Bk%3Da%2Egeometry%2Eattributes%2Eposition%2Earray%3Bt%3Da%2Egeometry%2Eattributes%2Eindex%2Earray%3Bn%3Da%2Egeometry%2Edrawcalls%3Bp%3D0%3B0%3D%3D%3Dn%2Elength%26%26%28n%3D%5B%7Bcount%3At%2Elength%2Cindex%3A0%2Cstart%3A0%7D%5D%29%3Bfor%28var%20q%3Dnew%20Uint32Array%282%2At%2Elength%29%2Cs%3D0%2Cv%3Dn%2Elength%3Bs%3Cv%3B%2B%2Bs%29for%28var%20r%3Dn%5Bs%5D%2Estart%2Cu%3Dn%5Bs%5D%2Ecount%2Cg%3Dn%5Bs%5D%2Eindex%2Cm%3Dr%2Cy%3Dr%2Bu%3Bm%3Cy%3Bm%2B%3D3%29for%28r%3D0%3B3%3Er%3Br%2B%2B%29d%5B0%5D%3D%0Ag%2Bt%5Bm%2Br%5D%2Cd%5B1%5D%3Dg%2Bt%5Bm%2B%28r%2B1%29%253%5D%2Cd%2Esort%28f%29%2Cu%3Dd%2EtoString%28%29%2Cvoid%200%3D%3D%3De%5Bu%5D%26%26%28q%5B2%2Ap%5D%3Dd%5B0%5D%2Cq%5B2%2Ap%2B1%5D%3Dd%5B1%5D%2Ce%5Bu%5D%3D%210%2Cp%2B%2B%29%3Bd%3Dnew%20Float32Array%286%2Ap%29%3Bm%3D0%3Bfor%28t%3Dp%3Bm%3Ct%3Bm%2B%2B%29for%28r%3D0%3B2%3Er%3Br%2B%2B%29g%3D6%2Am%2B3%2Ar%2Cp%3D3%2Aq%5B2%2Am%2Br%5D%2Cd%5Bg%2B0%5D%3Dk%5Bp%5D%2Cd%5Bg%2B1%5D%3Dk%5Bp%2B1%5D%2Cd%5Bg%2B2%5D%3Dk%5Bp%2B2%5D%7Delse%20for%28k%3Da%2Egeometry%2Eattributes%2Eposition%2Earray%2Cp%3Dk%2Elength%2F3%2Cq%3Dp%2F3%2Cd%3Dnew%20Float32Array%286%2Ap%29%2Cm%3D0%2Ct%3Dq%3Bm%3Ct%3Bm%2B%2B%29for%28r%3D0%3B3%3Er%3Br%2B%2B%29g%3D18%2Am%2B6%2Ar%2Cq%3D9%2Am%2B3%2Ar%2Cd%5Bg%2B0%5D%3Dk%5Bq%5D%2Cd%5Bg%2B1%5D%3Dk%5Bq%2B1%5D%2Cd%5Bg%2B2%5D%3Dk%5Bq%2B2%5D%2Cp%3D9%2Am%2B%28r%2B1%29%253%2A3%2Cd%5Bg%2B3%5D%3Dk%5Bp%5D%2Cd%5Bg%2B4%5D%3Dk%5Bp%2B1%5D%2Cd%5Bg%2B5%5D%3Dk%5Bp%2B2%5D%3Bh%2EaddAttribute%28%22position%22%2Cnew%20THREE%2EBufferAttribute%28d%2C%0A3%29%29%7DTHREE%2ELine%2Ecall%28this%2Ch%2Cnew%20THREE%2ELineBasicMaterial%28%7Bcolor%3Ac%7D%29%2CTHREE%2ELinePieces%29%3Bthis%2Ematrix%3Da%2EmatrixWorld%3Bthis%2EmatrixAutoUpdate%3D%211%7D%3BTHREE%2EWireframeHelper%2Eprototype%3DObject%2Ecreate%28THREE%2ELine%2Eprototype%29%3BTHREE%2EWireframeHelper%2Eprototype%2Econstructor%3DTHREE%2EWireframeHelper%3BTHREE%2EImmediateRenderObject%3Dfunction%28%29%7BTHREE%2EObject3D%2Ecall%28this%29%3Bthis%2Erender%3Dfunction%28a%29%7B%7D%7D%3BTHREE%2EImmediateRenderObject%2Eprototype%3DObject%2Ecreate%28THREE%2EObject3D%2Eprototype%29%3BTHREE%2EImmediateRenderObject%2Eprototype%2Econstructor%3DTHREE%2EImmediateRenderObject%3B%0ATHREE%2EMorphBlendMesh%3Dfunction%28a%2Cb%29%7BTHREE%2EMesh%2Ecall%28this%2Ca%2Cb%29%3Bthis%2EanimationsMap%3D%7B%7D%3Bthis%2EanimationsList%3D%5B%5D%3Bvar%20c%3Dthis%2Egeometry%2EmorphTargets%2Elength%3Bthis%2EcreateAnimation%28%22%5F%5Fdefault%22%2C0%2Cc%2D1%2Cc%2F1%29%3Bthis%2EsetAnimationWeight%28%22%5F%5Fdefault%22%2C1%29%7D%3BTHREE%2EMorphBlendMesh%2Eprototype%3DObject%2Ecreate%28THREE%2EMesh%2Eprototype%29%3BTHREE%2EMorphBlendMesh%2Eprototype%2Econstructor%3DTHREE%2EMorphBlendMesh%3B%0ATHREE%2EMorphBlendMesh%2Eprototype%2EcreateAnimation%3Dfunction%28a%2Cb%2Cc%2Cd%29%7Bb%3D%7BstartFrame%3Ab%2CendFrame%3Ac%2Clength%3Ac%2Db%2B1%2Cfps%3Ad%2Cduration%3A%28c%2Db%29%2Fd%2ClastFrame%3A0%2CcurrentFrame%3A0%2Cactive%3A%211%2Ctime%3A0%2Cdirection%3A1%2Cweight%3A1%2CdirectionBackwards%3A%211%2CmirroredLoop%3A%211%7D%3Bthis%2EanimationsMap%5Ba%5D%3Db%3Bthis%2EanimationsList%2Epush%28b%29%7D%3B%0ATHREE%2EMorphBlendMesh%2Eprototype%2EautoCreateAnimations%3Dfunction%28a%29%7Bfor%28var%20b%3D%2F%28%5Ba%2Dz%5D%2B%29%5F%3F%28%5Cd%2B%29%2F%2Cc%2Cd%3D%7B%7D%2Ce%3Dthis%2Egeometry%2Cf%3D0%2Cg%3De%2EmorphTargets%2Elength%3Bf%3Cg%3Bf%2B%2B%29%7Bvar%20h%3De%2EmorphTargets%5Bf%5D%2Ename%2Ematch%28b%29%3Bif%28h%26%261%3Ch%2Elength%29%7Bvar%20k%3Dh%5B1%5D%3Bd%5Bk%5D%7C%7C%28d%5Bk%5D%3D%7Bstart%3AInfinity%2Cend%3A%2DInfinity%7D%29%3Bh%3Dd%5Bk%5D%3Bf%3Ch%2Estart%26%26%28h%2Estart%3Df%29%3Bf%3Eh%2Eend%26%26%28h%2Eend%3Df%29%3Bc%7C%7C%28c%3Dk%29%7D%7Dfor%28k%20in%20d%29h%3Dd%5Bk%5D%2Cthis%2EcreateAnimation%28k%2Ch%2Estart%2Ch%2Eend%2Ca%29%3Bthis%2EfirstAnimation%3Dc%7D%3B%0ATHREE%2EMorphBlendMesh%2Eprototype%2EsetAnimationDirectionForward%3Dfunction%28a%29%7Bif%28a%3Dthis%2EanimationsMap%5Ba%5D%29a%2Edirection%3D1%2Ca%2EdirectionBackwards%3D%211%7D%3BTHREE%2EMorphBlendMesh%2Eprototype%2EsetAnimationDirectionBackward%3Dfunction%28a%29%7Bif%28a%3Dthis%2EanimationsMap%5Ba%5D%29a%2Edirection%3D%2D1%2Ca%2EdirectionBackwards%3D%210%7D%3BTHREE%2EMorphBlendMesh%2Eprototype%2EsetAnimationFPS%3Dfunction%28a%2Cb%29%7Bvar%20c%3Dthis%2EanimationsMap%5Ba%5D%3Bc%26%26%28c%2Efps%3Db%2Cc%2Eduration%3D%28c%2Eend%2Dc%2Estart%29%2Fc%2Efps%29%7D%3B%0ATHREE%2EMorphBlendMesh%2Eprototype%2EsetAnimationDuration%3Dfunction%28a%2Cb%29%7Bvar%20c%3Dthis%2EanimationsMap%5Ba%5D%3Bc%26%26%28c%2Eduration%3Db%2Cc%2Efps%3D%28c%2Eend%2Dc%2Estart%29%2Fc%2Eduration%29%7D%3BTHREE%2EMorphBlendMesh%2Eprototype%2EsetAnimationWeight%3Dfunction%28a%2Cb%29%7Bvar%20c%3Dthis%2EanimationsMap%5Ba%5D%3Bc%26%26%28c%2Eweight%3Db%29%7D%3BTHREE%2EMorphBlendMesh%2Eprototype%2EsetAnimationTime%3Dfunction%28a%2Cb%29%7Bvar%20c%3Dthis%2EanimationsMap%5Ba%5D%3Bc%26%26%28c%2Etime%3Db%29%7D%3BTHREE%2EMorphBlendMesh%2Eprototype%2EgetAnimationTime%3Dfunction%28a%29%7Bvar%20b%3D0%3Bif%28a%3Dthis%2EanimationsMap%5Ba%5D%29b%3Da%2Etime%3Breturn%20b%7D%3B%0ATHREE%2EMorphBlendMesh%2Eprototype%2EgetAnimationDuration%3Dfunction%28a%29%7Bvar%20b%3D%2D1%3Bif%28a%3Dthis%2EanimationsMap%5Ba%5D%29b%3Da%2Eduration%3Breturn%20b%7D%3BTHREE%2EMorphBlendMesh%2Eprototype%2EplayAnimation%3Dfunction%28a%29%7Bvar%20b%3Dthis%2EanimationsMap%5Ba%5D%3Bb%3F%28b%2Etime%3D0%2Cb%2Eactive%3D%210%29%3Aconsole%2Ewarn%28%22animation%5B%22%2Ba%2B%22%5D%20undefined%22%29%7D%3BTHREE%2EMorphBlendMesh%2Eprototype%2EstopAnimation%3Dfunction%28a%29%7Bif%28a%3Dthis%2EanimationsMap%5Ba%5D%29a%2Eactive%3D%211%7D%3B%0ATHREE%2EMorphBlendMesh%2Eprototype%2Eupdate%3Dfunction%28a%29%7Bfor%28var%20b%3D0%2Cc%3Dthis%2EanimationsList%2Elength%3Bb%3Cc%3Bb%2B%2B%29%7Bvar%20d%3Dthis%2EanimationsList%5Bb%5D%3Bif%28d%2Eactive%29%7Bvar%20e%3Dd%2Eduration%2Fd%2Elength%3Bd%2Etime%2B%3Dd%2Edirection%2Aa%3Bif%28d%2EmirroredLoop%29%7Bif%28d%2Etime%3Ed%2Eduration%7C%7C0%3Ed%2Etime%29d%2Edirection%2A%3D%2D1%2Cd%2Etime%3Ed%2Eduration%26%26%28d%2Etime%3Dd%2Eduration%2Cd%2EdirectionBackwards%3D%210%29%2C0%3Ed%2Etime%26%26%28d%2Etime%3D0%2Cd%2EdirectionBackwards%3D%211%29%7Delse%20d%2Etime%25%3Dd%2Eduration%2C0%3Ed%2Etime%26%26%28d%2Etime%2B%3Dd%2Eduration%29%3Bvar%20f%3Dd%2EstartFrame%2BTHREE%2EMath%2Eclamp%28Math%2Efloor%28d%2Etime%2Fe%29%2C0%2Cd%2Elength%2D1%29%2Cg%3Dd%2Eweight%3B%0Af%21%3D%3Dd%2EcurrentFrame%26%26%28this%2EmorphTargetInfluences%5Bd%2ElastFrame%5D%3D0%2Cthis%2EmorphTargetInfluences%5Bd%2EcurrentFrame%5D%3D1%2Ag%2Cthis%2EmorphTargetInfluences%5Bf%5D%3D0%2Cd%2ElastFrame%3Dd%2EcurrentFrame%2Cd%2EcurrentFrame%3Df%29%3Be%3Dd%2Etime%25e%2Fe%3Bd%2EdirectionBackwards%26%26%28e%3D1%2De%29%3Bthis%2EmorphTargetInfluences%5Bd%2EcurrentFrame%5D%3De%2Ag%3Bthis%2EmorphTargetInfluences%5Bd%2ElastFrame%5D%3D%281%2De%29%2Ag%7D%7D%7D%3B%0A"></script>
<script src="data:application/x-javascript,%2F%2A%2A%0A%20%2A%20%40author%20alteredq%20%2F%20http%3A%2F%2Falteredqualia%2Ecom%2F%0A%20%2A%20%40author%20mr%2Edoob%20%2F%20http%3A%2F%2Fmrdoob%2Ecom%2F%0A%20%2A%2F%0A%0Avar%20Detector%20%3D%20%7B%0A%0A%09canvas%3A%20%21%21%20window%2ECanvasRenderingContext2D%2C%0A%09webgl%3A%20%28%20function%20%28%29%20%7B%20try%20%7B%20var%20canvas%20%3D%20document%2EcreateElement%28%20%27canvas%27%20%29%3B%20return%20%21%21%20%28%20window%2EWebGLRenderingContext%20%26%26%20%28%20canvas%2EgetContext%28%20%27webgl%27%20%29%20%7C%7C%20canvas%2EgetContext%28%20%27experimental%2Dwebgl%27%20%29%20%29%20%29%3B%20%7D%20catch%28%20e%20%29%20%7B%20return%20false%3B%20%7D%20%7D%20%29%28%29%2C%0A%09workers%3A%20%21%21%20window%2EWorker%2C%0A%09fileapi%3A%20window%2EFile%20%26%26%20window%2EFileReader%20%26%26%20window%2EFileList%20%26%26%20window%2EBlob%2C%0A%0A%09getWebGLErrorMessage%3A%20function%20%28%29%20%7B%0A%0A%09%09var%20element%20%3D%20document%2EcreateElement%28%20%27div%27%20%29%3B%0A%09%09element%2Eid%20%3D%20%27webgl%2Derror%2Dmessage%27%3B%0A%09%09element%2Estyle%2EfontFamily%20%3D%20%27monospace%27%3B%0A%09%09element%2Estyle%2EfontSize%20%3D%20%2713px%27%3B%0A%09%09element%2Estyle%2EfontWeight%20%3D%20%27normal%27%3B%0A%09%09element%2Estyle%2EtextAlign%20%3D%20%27center%27%3B%0A%09%09element%2Estyle%2Ebackground%20%3D%20%27%23fff%27%3B%0A%09%09element%2Estyle%2Ecolor%20%3D%20%27%23000%27%3B%0A%09%09element%2Estyle%2Epadding%20%3D%20%271%2E5em%27%3B%0A%09%09element%2Estyle%2Ewidth%20%3D%20%27400px%27%3B%0A%09%09element%2Estyle%2Emargin%20%3D%20%275em%20auto%200%27%3B%0A%0A%09%09if%20%28%20%21%20this%2Ewebgl%20%29%20%7B%0A%0A%09%09%09element%2EinnerHTML%20%3D%20window%2EWebGLRenderingContext%20%3F%20%5B%0A%09%09%09%09%27Your%20graphics%20card%20does%20not%20seem%20to%20support%20%3Ca%20href%3D%22http%3A%2F%2Fkhronos%2Eorg%2Fwebgl%2Fwiki%2FGetting%5Fa%5FWebGL%5FImplementation%22%20style%3D%22color%3A%23000%22%3EWebGL%3C%2Fa%3E%2E%3Cbr%20%2F%3E%27%2C%0A%09%09%09%09%27Find%20out%20how%20to%20get%20it%20%3Ca%20href%3D%22http%3A%2F%2Fget%2Ewebgl%2Eorg%2F%22%20style%3D%22color%3A%23000%22%3Ehere%3C%2Fa%3E%2E%27%0A%09%09%09%5D%2Ejoin%28%20%27%5Cn%27%20%29%20%3A%20%5B%0A%09%09%09%09%27Your%20browser%20does%20not%20seem%20to%20support%20%3Ca%20href%3D%22http%3A%2F%2Fkhronos%2Eorg%2Fwebgl%2Fwiki%2FGetting%5Fa%5FWebGL%5FImplementation%22%20style%3D%22color%3A%23000%22%3EWebGL%3C%2Fa%3E%2E%3Cbr%2F%3E%27%2C%0A%09%09%09%09%27Find%20out%20how%20to%20get%20it%20%3Ca%20href%3D%22http%3A%2F%2Fget%2Ewebgl%2Eorg%2F%22%20style%3D%22color%3A%23000%22%3Ehere%3C%2Fa%3E%2E%27%0A%09%09%09%5D%2Ejoin%28%20%27%5Cn%27%20%29%3B%0A%0A%09%09%7D%0A%0A%09%09return%20element%3B%0A%0A%09%7D%2C%0A%0A%09addGetWebGLMessage%3A%20function%20%28%20parameters%20%29%20%7B%0A%0A%09%09var%20parent%2C%20id%2C%20element%3B%0A%0A%09%09parameters%20%3D%20parameters%20%7C%7C%20%7B%7D%3B%0A%0A%09%09parent%20%3D%20parameters%2Eparent%20%21%3D%3D%20undefined%20%3F%20parameters%2Eparent%20%3A%20document%2Ebody%3B%0A%09%09id%20%3D%20parameters%2Eid%20%21%3D%3D%20undefined%20%3F%20parameters%2Eid%20%3A%20%27oldie%27%3B%0A%0A%09%09element%20%3D%20Detector%2EgetWebGLErrorMessage%28%29%3B%0A%09%09element%2Eid%20%3D%20id%3B%0A%0A%09%09parent%2EappendChild%28%20element%20%29%3B%0A%0A%09%7D%0A%0A%7D%3B%0A%0A%2F%2F%20browserify%20support%0Aif%20%28%20typeof%20module%20%3D%3D%3D%20%27object%27%20%29%20%7B%0A%0A%09module%2Eexports%20%3D%20Detector%3B%0A%0A%7D%0A"></script>
<script src="data:application/x-javascript,%2F%2A%2A%0A%20%2A%20%40author%20mrdoob%20%2F%20http%3A%2F%2Fmrdoob%2Ecom%2F%0A%20%2A%20%40author%20supereggbert%20%2F%20http%3A%2F%2Fwww%2Epaulbrunt%2Eco%2Euk%2F%0A%20%2A%20%40author%20julianwa%20%2F%20https%3A%2F%2Fgithub%2Ecom%2Fjulianwa%0A%20%2A%2F%0A%0ATHREE%2ERenderableObject%20%3D%20function%20%28%29%20%7B%0A%0A%09this%2Eid%20%3D%200%3B%0A%0A%09this%2Eobject%20%3D%20null%3B%0A%09this%2Ez%20%3D%200%3B%0A%0A%7D%3B%0A%0A%2F%2F%0A%0ATHREE%2ERenderableFace%20%3D%20function%20%28%29%20%7B%0A%0A%09this%2Eid%20%3D%200%3B%0A%0A%09this%2Ev1%20%3D%20new%20THREE%2ERenderableVertex%28%29%3B%0A%09this%2Ev2%20%3D%20new%20THREE%2ERenderableVertex%28%29%3B%0A%09this%2Ev3%20%3D%20new%20THREE%2ERenderableVertex%28%29%3B%0A%0A%09this%2EnormalModel%20%3D%20new%20THREE%2EVector3%28%29%3B%0A%0A%09this%2EvertexNormalsModel%20%3D%20%5B%20new%20THREE%2EVector3%28%29%2C%20new%20THREE%2EVector3%28%29%2C%20new%20THREE%2EVector3%28%29%20%5D%3B%0A%09this%2EvertexNormalsLength%20%3D%200%3B%0A%0A%09this%2Ecolor%20%3D%20new%20THREE%2EColor%28%29%3B%0A%09this%2Ematerial%20%3D%20null%3B%0A%09this%2Euvs%20%3D%20%5B%20new%20THREE%2EVector2%28%29%2C%20new%20THREE%2EVector2%28%29%2C%20new%20THREE%2EVector2%28%29%20%5D%3B%0A%0A%09this%2Ez%20%3D%200%3B%0A%0A%7D%3B%0A%0A%2F%2F%0A%0ATHREE%2ERenderableVertex%20%3D%20function%20%28%29%20%7B%0A%0A%09this%2Eposition%20%3D%20new%20THREE%2EVector3%28%29%3B%0A%09this%2EpositionWorld%20%3D%20new%20THREE%2EVector3%28%29%3B%0A%09this%2EpositionScreen%20%3D%20new%20THREE%2EVector4%28%29%3B%0A%0A%09this%2Evisible%20%3D%20true%3B%0A%0A%7D%3B%0A%0ATHREE%2ERenderableVertex%2Eprototype%2Ecopy%20%3D%20function%20%28%20vertex%20%29%20%7B%0A%0A%09this%2EpositionWorld%2Ecopy%28%20vertex%2EpositionWorld%20%29%3B%0A%09this%2EpositionScreen%2Ecopy%28%20vertex%2EpositionScreen%20%29%3B%0A%0A%7D%3B%0A%0A%2F%2F%0A%0ATHREE%2ERenderableLine%20%3D%20function%20%28%29%20%7B%0A%0A%09this%2Eid%20%3D%200%3B%0A%0A%09this%2Ev1%20%3D%20new%20THREE%2ERenderableVertex%28%29%3B%0A%09this%2Ev2%20%3D%20new%20THREE%2ERenderableVertex%28%29%3B%0A%0A%09this%2EvertexColors%20%3D%20%5B%20new%20THREE%2EColor%28%29%2C%20new%20THREE%2EColor%28%29%20%5D%3B%0A%09this%2Ematerial%20%3D%20null%3B%0A%0A%09this%2Ez%20%3D%200%3B%0A%0A%7D%3B%0A%0A%2F%2F%0A%0ATHREE%2ERenderableSprite%20%3D%20function%20%28%29%20%7B%0A%0A%09this%2Eid%20%3D%200%3B%0A%0A%09this%2Eobject%20%3D%20null%3B%0A%0A%09this%2Ex%20%3D%200%3B%0A%09this%2Ey%20%3D%200%3B%0A%09this%2Ez%20%3D%200%3B%0A%0A%09this%2Erotation%20%3D%200%3B%0A%09this%2Escale%20%3D%20new%20THREE%2EVector2%28%29%3B%0A%0A%09this%2Ematerial%20%3D%20null%3B%0A%0A%7D%3B%0A%0A%2F%2F%0A%0ATHREE%2EProjector%20%3D%20function%20%28%29%20%7B%0A%0A%09var%20%5Fobject%2C%20%5FobjectCount%2C%20%5FobjectPool%20%3D%20%5B%5D%2C%20%5FobjectPoolLength%20%3D%200%2C%0A%09%5Fvertex%2C%20%5FvertexCount%2C%20%5FvertexPool%20%3D%20%5B%5D%2C%20%5FvertexPoolLength%20%3D%200%2C%0A%09%5Fface%2C%20%5FfaceCount%2C%20%5FfacePool%20%3D%20%5B%5D%2C%20%5FfacePoolLength%20%3D%200%2C%0A%09%5Fline%2C%20%5FlineCount%2C%20%5FlinePool%20%3D%20%5B%5D%2C%20%5FlinePoolLength%20%3D%200%2C%0A%09%5Fsprite%2C%20%5FspriteCount%2C%20%5FspritePool%20%3D%20%5B%5D%2C%20%5FspritePoolLength%20%3D%200%2C%0A%0A%09%5FrenderData%20%3D%20%7B%20objects%3A%20%5B%5D%2C%20lights%3A%20%5B%5D%2C%20elements%3A%20%5B%5D%20%7D%2C%0A%0A%09%5FvA%20%3D%20new%20THREE%2EVector3%28%29%2C%0A%09%5FvB%20%3D%20new%20THREE%2EVector3%28%29%2C%0A%09%5FvC%20%3D%20new%20THREE%2EVector3%28%29%2C%0A%0A%09%5Fvector3%20%3D%20new%20THREE%2EVector3%28%29%2C%0A%09%5Fvector4%20%3D%20new%20THREE%2EVector4%28%29%2C%0A%0A%09%5FclipBox%20%3D%20new%20THREE%2EBox3%28%20new%20THREE%2EVector3%28%20%2D%201%2C%20%2D%201%2C%20%2D%201%20%29%2C%20new%20THREE%2EVector3%28%201%2C%201%2C%201%20%29%20%29%2C%0A%09%5FboundingBox%20%3D%20new%20THREE%2EBox3%28%29%2C%0A%09%5Fpoints3%20%3D%20new%20Array%28%203%20%29%2C%0A%09%5Fpoints4%20%3D%20new%20Array%28%204%20%29%2C%0A%0A%09%5FviewMatrix%20%3D%20new%20THREE%2EMatrix4%28%29%2C%0A%09%5FviewProjectionMatrix%20%3D%20new%20THREE%2EMatrix4%28%29%2C%0A%0A%09%5FmodelMatrix%2C%0A%09%5FmodelViewProjectionMatrix%20%3D%20new%20THREE%2EMatrix4%28%29%2C%0A%0A%09%5FnormalMatrix%20%3D%20new%20THREE%2EMatrix3%28%29%2C%0A%0A%09%5Ffrustum%20%3D%20new%20THREE%2EFrustum%28%29%2C%0A%0A%09%5FclippedVertex1PositionScreen%20%3D%20new%20THREE%2EVector4%28%29%2C%0A%09%5FclippedVertex2PositionScreen%20%3D%20new%20THREE%2EVector4%28%29%3B%0A%0A%09%2F%2F%0A%0A%09this%2EprojectVector%20%3D%20function%20%28%20vector%2C%20camera%20%29%20%7B%0A%0A%09%09console%2Ewarn%28%20%27THREE%2EProjector%3A%20%2EprojectVector%28%29%20is%20now%20vector%2Eproject%28%29%2E%27%20%29%3B%0A%09%09vector%2Eproject%28%20camera%20%29%3B%0A%0A%09%7D%3B%0A%0A%09this%2EunprojectVector%20%3D%20function%20%28%20vector%2C%20camera%20%29%20%7B%0A%0A%09%09console%2Ewarn%28%20%27THREE%2EProjector%3A%20%2EunprojectVector%28%29%20is%20now%20vector%2Eunproject%28%29%2E%27%20%29%3B%0A%09%09vector%2Eunproject%28%20camera%20%29%3B%0A%0A%09%7D%3B%0A%0A%09this%2EpickingRay%20%3D%20function%20%28%20vector%2C%20camera%20%29%20%7B%0A%0A%09%09console%2Eerror%28%20%27THREE%2EProjector%3A%20%2EpickingRay%28%29%20is%20now%20raycaster%2EsetFromCamera%28%29%2E%27%20%29%3B%0A%0A%09%7D%3B%0A%0A%09%2F%2F%0A%0A%09var%20RenderList%20%3D%20function%20%28%29%20%7B%0A%0A%09%09var%20normals%20%3D%20%5B%5D%3B%0A%09%09var%20uvs%20%3D%20%5B%5D%3B%0A%0A%09%09var%20object%20%3D%20null%3B%0A%09%09var%20material%20%3D%20null%3B%0A%0A%09%09var%20normalMatrix%20%3D%20new%20THREE%2EMatrix3%28%29%3B%0A%0A%09%09var%20setObject%20%3D%20function%20%28%20value%20%29%20%7B%0A%0A%09%09%09object%20%3D%20value%3B%0A%09%09%09material%20%3D%20object%2Ematerial%3B%0A%0A%09%09%09normalMatrix%2EgetNormalMatrix%28%20object%2EmatrixWorld%20%29%3B%0A%0A%09%09%09normals%2Elength%20%3D%200%3B%0A%09%09%09uvs%2Elength%20%3D%200%3B%0A%0A%09%09%7D%3B%0A%0A%09%09var%20projectVertex%20%3D%20function%20%28%20vertex%20%29%20%7B%0A%0A%09%09%09var%20position%20%3D%20vertex%2Eposition%3B%0A%09%09%09var%20positionWorld%20%3D%20vertex%2EpositionWorld%3B%0A%09%09%09var%20positionScreen%20%3D%20vertex%2EpositionScreen%3B%0A%0A%09%09%09positionWorld%2Ecopy%28%20position%20%29%2EapplyMatrix4%28%20%5FmodelMatrix%20%29%3B%0A%09%09%09positionScreen%2Ecopy%28%20positionWorld%20%29%2EapplyMatrix4%28%20%5FviewProjectionMatrix%20%29%3B%0A%0A%09%09%09var%20invW%20%3D%201%20%2F%20positionScreen%2Ew%3B%0A%0A%09%09%09positionScreen%2Ex%20%2A%3D%20invW%3B%0A%09%09%09positionScreen%2Ey%20%2A%3D%20invW%3B%0A%09%09%09positionScreen%2Ez%20%2A%3D%20invW%3B%0A%0A%09%09%09vertex%2Evisible%20%3D%20positionScreen%2Ex%20%3E%3D%20%2D%201%20%26%26%20positionScreen%2Ex%20%3C%3D%201%20%26%26%0A%09%09%09%09%09%20positionScreen%2Ey%20%3E%3D%20%2D%201%20%26%26%20positionScreen%2Ey%20%3C%3D%201%20%26%26%0A%09%09%09%09%09%20positionScreen%2Ez%20%3E%3D%20%2D%201%20%26%26%20positionScreen%2Ez%20%3C%3D%201%3B%0A%0A%09%09%7D%3B%0A%0A%09%09var%20pushVertex%20%3D%20function%20%28%20x%2C%20y%2C%20z%20%29%20%7B%0A%0A%09%09%09%5Fvertex%20%3D%20getNextVertexInPool%28%29%3B%0A%09%09%09%5Fvertex%2Eposition%2Eset%28%20x%2C%20y%2C%20z%20%29%3B%0A%0A%09%09%09projectVertex%28%20%5Fvertex%20%29%3B%0A%0A%09%09%7D%3B%0A%0A%09%09var%20pushNormal%20%3D%20function%20%28%20x%2C%20y%2C%20z%20%29%20%7B%0A%0A%09%09%09normals%2Epush%28%20x%2C%20y%2C%20z%20%29%3B%0A%0A%09%09%7D%3B%0A%0A%09%09var%20pushUv%20%3D%20function%20%28%20x%2C%20y%20%29%20%7B%0A%0A%09%09%09uvs%2Epush%28%20x%2C%20y%20%29%3B%0A%0A%09%09%7D%3B%0A%0A%09%09var%20checkTriangleVisibility%20%3D%20function%20%28%20v1%2C%20v2%2C%20v3%20%29%20%7B%0A%0A%09%09%09if%20%28%20v1%2Evisible%20%3D%3D%3D%20true%20%7C%7C%20v2%2Evisible%20%3D%3D%3D%20true%20%7C%7C%20v3%2Evisible%20%3D%3D%3D%20true%20%29%20return%20true%3B%0A%0A%09%09%09%5Fpoints3%5B%200%20%5D%20%3D%20v1%2EpositionScreen%3B%0A%09%09%09%5Fpoints3%5B%201%20%5D%20%3D%20v2%2EpositionScreen%3B%0A%09%09%09%5Fpoints3%5B%202%20%5D%20%3D%20v3%2EpositionScreen%3B%0A%0A%09%09%09return%20%5FclipBox%2EisIntersectionBox%28%20%5FboundingBox%2EsetFromPoints%28%20%5Fpoints3%20%29%20%29%3B%0A%0A%09%09%7D%3B%0A%0A%09%09var%20checkBackfaceCulling%20%3D%20function%20%28%20v1%2C%20v2%2C%20v3%20%29%20%7B%0A%0A%09%09%09return%20%28%20%28%20v3%2EpositionScreen%2Ex%20%2D%20v1%2EpositionScreen%2Ex%20%29%20%2A%0A%09%09%09%09%20%20%20%20%28%20v2%2EpositionScreen%2Ey%20%2D%20v1%2EpositionScreen%2Ey%20%29%20%2D%0A%09%09%09%09%20%20%20%20%28%20v3%2EpositionScreen%2Ey%20%2D%20v1%2EpositionScreen%2Ey%20%29%20%2A%0A%09%09%09%09%20%20%20%20%28%20v2%2EpositionScreen%2Ex%20%2D%20v1%2EpositionScreen%2Ex%20%29%20%29%20%3C%200%3B%0A%0A%09%09%7D%3B%0A%0A%09%09var%20pushLine%20%3D%20function%20%28%20a%2C%20b%20%29%20%7B%0A%0A%09%09%09var%20v1%20%3D%20%5FvertexPool%5B%20a%20%5D%3B%0A%09%09%09var%20v2%20%3D%20%5FvertexPool%5B%20b%20%5D%3B%0A%0A%09%09%09%5Fline%20%3D%20getNextLineInPool%28%29%3B%0A%0A%09%09%09%5Fline%2Eid%20%3D%20object%2Eid%3B%0A%09%09%09%5Fline%2Ev1%2Ecopy%28%20v1%20%29%3B%0A%09%09%09%5Fline%2Ev2%2Ecopy%28%20v2%20%29%3B%0A%09%09%09%5Fline%2Ez%20%3D%20%28%20v1%2EpositionScreen%2Ez%20%2B%20v2%2EpositionScreen%2Ez%20%29%20%2F%202%3B%0A%0A%09%09%09%5Fline%2Ematerial%20%3D%20object%2Ematerial%3B%0A%0A%09%09%09%5FrenderData%2Eelements%2Epush%28%20%5Fline%20%29%3B%0A%0A%09%09%7D%3B%0A%0A%09%09var%20pushTriangle%20%3D%20function%20%28%20a%2C%20b%2C%20c%20%29%20%7B%0A%0A%09%09%09var%20v1%20%3D%20%5FvertexPool%5B%20a%20%5D%3B%0A%09%09%09var%20v2%20%3D%20%5FvertexPool%5B%20b%20%5D%3B%0A%09%09%09var%20v3%20%3D%20%5FvertexPool%5B%20c%20%5D%3B%0A%0A%09%09%09if%20%28%20checkTriangleVisibility%28%20v1%2C%20v2%2C%20v3%20%29%20%3D%3D%3D%20false%20%29%20return%3B%0A%0A%09%09%09if%20%28%20material%2Eside%20%3D%3D%3D%20THREE%2EDoubleSide%20%7C%7C%20checkBackfaceCulling%28%20v1%2C%20v2%2C%20v3%20%29%20%3D%3D%3D%20true%20%29%20%7B%0A%0A%09%09%09%09%5Fface%20%3D%20getNextFaceInPool%28%29%3B%0A%0A%09%09%09%09%5Fface%2Eid%20%3D%20object%2Eid%3B%0A%09%09%09%09%5Fface%2Ev1%2Ecopy%28%20v1%20%29%3B%0A%09%09%09%09%5Fface%2Ev2%2Ecopy%28%20v2%20%29%3B%0A%09%09%09%09%5Fface%2Ev3%2Ecopy%28%20v3%20%29%3B%0A%09%09%09%09%5Fface%2Ez%20%3D%20%28%20v1%2EpositionScreen%2Ez%20%2B%20v2%2EpositionScreen%2Ez%20%2B%20v3%2EpositionScreen%2Ez%20%29%20%2F%203%3B%0A%0A%09%09%09%09for%20%28%20var%20i%20%3D%200%3B%20i%20%3C%203%3B%20i%20%2B%2B%20%29%20%7B%0A%0A%09%09%09%09%09var%20offset%20%3D%20arguments%5B%20i%20%5D%20%2A%203%3B%0A%09%09%09%09%09var%20normal%20%3D%20%5Fface%2EvertexNormalsModel%5B%20i%20%5D%3B%0A%0A%09%09%09%09%09normal%2Eset%28%20normals%5B%20offset%20%5D%2C%20normals%5B%20offset%20%2B%201%20%5D%2C%20normals%5B%20offset%20%2B%202%20%5D%20%29%3B%0A%09%09%09%09%09normal%2EapplyMatrix3%28%20normalMatrix%20%29%2Enormalize%28%29%3B%0A%0A%09%09%09%09%09var%20offset2%20%3D%20arguments%5B%20i%20%5D%20%2A%202%3B%0A%0A%09%09%09%09%09var%20uv%20%3D%20%5Fface%2Euvs%5B%20i%20%5D%3B%0A%09%09%09%09%09uv%2Eset%28%20uvs%5B%20offset2%20%5D%2C%20uvs%5B%20offset2%20%2B%201%20%5D%20%29%3B%0A%0A%09%09%09%09%7D%0A%0A%09%09%09%09%5Fface%2EvertexNormalsLength%20%3D%203%3B%0A%0A%09%09%09%09%5Fface%2Ematerial%20%3D%20object%2Ematerial%3B%0A%0A%09%09%09%09%5FrenderData%2Eelements%2Epush%28%20%5Fface%20%29%3B%0A%0A%09%09%09%7D%0A%0A%09%09%7D%3B%0A%0A%09%09return%20%7B%0A%09%09%09setObject%3A%20setObject%2C%0A%09%09%09projectVertex%3A%20projectVertex%2C%0A%09%09%09checkTriangleVisibility%3A%20checkTriangleVisibility%2C%0A%09%09%09checkBackfaceCulling%3A%20checkBackfaceCulling%2C%0A%09%09%09pushVertex%3A%20pushVertex%2C%0A%09%09%09pushNormal%3A%20pushNormal%2C%0A%09%09%09pushUv%3A%20pushUv%2C%0A%09%09%09pushLine%3A%20pushLine%2C%0A%09%09%09pushTriangle%3A%20pushTriangle%0A%09%09%7D%0A%0A%09%7D%3B%0A%0A%09var%20renderList%20%3D%20new%20RenderList%28%29%3B%0A%0A%09this%2EprojectScene%20%3D%20function%20%28%20scene%2C%20camera%2C%20sortObjects%2C%20sortElements%20%29%20%7B%0A%0A%09%09%5FfaceCount%20%3D%200%3B%0A%09%09%5FlineCount%20%3D%200%3B%0A%09%09%5FspriteCount%20%3D%200%3B%0A%0A%09%09%5FrenderData%2Eelements%2Elength%20%3D%200%3B%0A%0A%09%09if%20%28%20scene%2EautoUpdate%20%3D%3D%3D%20true%20%29%20scene%2EupdateMatrixWorld%28%29%3B%0A%09%09if%20%28%20camera%2Eparent%20%3D%3D%3D%20undefined%20%29%20camera%2EupdateMatrixWorld%28%29%3B%0A%0A%09%09%5FviewMatrix%2Ecopy%28%20camera%2EmatrixWorldInverse%2EgetInverse%28%20camera%2EmatrixWorld%20%29%20%29%3B%0A%09%09%5FviewProjectionMatrix%2EmultiplyMatrices%28%20camera%2EprojectionMatrix%2C%20%5FviewMatrix%20%29%3B%0A%0A%09%09%5Ffrustum%2EsetFromMatrix%28%20%5FviewProjectionMatrix%20%29%3B%0A%0A%09%09%2F%2F%0A%0A%09%09%5FobjectCount%20%3D%200%3B%0A%0A%09%09%5FrenderData%2Eobjects%2Elength%20%3D%200%3B%0A%09%09%5FrenderData%2Elights%2Elength%20%3D%200%3B%0A%0A%09%09scene%2EtraverseVisible%28%20function%20%28%20object%20%29%20%7B%0A%0A%09%09%09if%20%28%20object%20instanceof%20THREE%2ELight%20%29%20%7B%0A%0A%09%09%09%09%5FrenderData%2Elights%2Epush%28%20object%20%29%3B%0A%0A%09%09%09%7D%20else%20if%20%28%20object%20instanceof%20THREE%2EMesh%20%7C%7C%20object%20instanceof%20THREE%2ELine%20%7C%7C%20object%20instanceof%20THREE%2ESprite%20%29%20%7B%0A%0A%09%09%09%09if%20%28%20object%2Ematerial%2Evisible%20%3D%3D%3D%20false%20%29%20return%3B%0A%0A%09%09%09%09if%20%28%20object%2EfrustumCulled%20%3D%3D%3D%20false%20%7C%7C%20%5Ffrustum%2EintersectsObject%28%20object%20%29%20%3D%3D%3D%20true%20%29%20%7B%0A%0A%09%09%09%09%09%5Fobject%20%3D%20getNextObjectInPool%28%29%3B%0A%09%09%09%09%09%5Fobject%2Eid%20%3D%20object%2Eid%3B%0A%09%09%09%09%09%5Fobject%2Eobject%20%3D%20object%3B%0A%0A%09%09%09%09%09%5Fvector3%2EsetFromMatrixPosition%28%20object%2EmatrixWorld%20%29%3B%0A%09%09%09%09%09%5Fvector3%2EapplyProjection%28%20%5FviewProjectionMatrix%20%29%3B%0A%09%09%09%09%09%5Fobject%2Ez%20%3D%20%5Fvector3%2Ez%3B%0A%0A%09%09%09%09%09%5FrenderData%2Eobjects%2Epush%28%20%5Fobject%20%29%3B%0A%0A%09%09%09%09%7D%0A%0A%09%09%09%7D%0A%0A%09%09%7D%20%29%3B%0A%0A%09%09if%20%28%20sortObjects%20%3D%3D%3D%20true%20%29%20%7B%0A%0A%09%09%09%5FrenderData%2Eobjects%2Esort%28%20painterSort%20%29%3B%0A%0A%09%09%7D%0A%0A%09%09%2F%2F%0A%0A%09%09for%20%28%20var%20o%20%3D%200%2C%20ol%20%3D%20%5FrenderData%2Eobjects%2Elength%3B%20o%20%3C%20ol%3B%20o%20%2B%2B%20%29%20%7B%0A%0A%09%09%09var%20object%20%3D%20%5FrenderData%2Eobjects%5B%20o%20%5D%2Eobject%3B%0A%09%09%09var%20geometry%20%3D%20object%2Egeometry%3B%0A%0A%09%09%09renderList%2EsetObject%28%20object%20%29%3B%0A%0A%09%09%09%5FmodelMatrix%20%3D%20object%2EmatrixWorld%3B%0A%0A%09%09%09%5FvertexCount%20%3D%200%3B%0A%0A%09%09%09if%20%28%20object%20instanceof%20THREE%2EMesh%20%29%20%7B%0A%0A%09%09%09%09if%20%28%20geometry%20instanceof%20THREE%2EBufferGeometry%20%29%20%7B%0A%0A%09%09%09%09%09var%20attributes%20%3D%20geometry%2Eattributes%3B%0A%09%09%09%09%09var%20offsets%20%3D%20geometry%2Eoffsets%3B%0A%0A%09%09%09%09%09if%20%28%20attributes%2Eposition%20%3D%3D%3D%20undefined%20%29%20continue%3B%0A%0A%09%09%09%09%09var%20positions%20%3D%20attributes%2Eposition%2Earray%3B%0A%0A%09%09%09%09%09for%20%28%20var%20i%20%3D%200%2C%20l%20%3D%20positions%2Elength%3B%20i%20%3C%20l%3B%20i%20%2B%3D%203%20%29%20%7B%0A%0A%09%09%09%09%09%09renderList%2EpushVertex%28%20positions%5B%20i%20%5D%2C%20positions%5B%20i%20%2B%201%20%5D%2C%20positions%5B%20i%20%2B%202%20%5D%20%29%3B%0A%0A%09%09%09%09%09%7D%0A%0A%09%09%09%09%09if%20%28%20attributes%2Enormal%20%21%3D%3D%20undefined%20%29%20%7B%0A%0A%09%09%09%09%09%09var%20normals%20%3D%20attributes%2Enormal%2Earray%3B%0A%0A%09%09%09%09%09%09for%20%28%20var%20i%20%3D%200%2C%20l%20%3D%20normals%2Elength%3B%20i%20%3C%20l%3B%20i%20%2B%3D%203%20%29%20%7B%0A%0A%09%09%09%09%09%09%09renderList%2EpushNormal%28%20normals%5B%20i%20%5D%2C%20normals%5B%20i%20%2B%201%20%5D%2C%20normals%5B%20i%20%2B%202%20%5D%20%29%3B%0A%0A%09%09%09%09%09%09%7D%0A%0A%09%09%09%09%09%7D%0A%0A%09%09%09%09%09if%20%28%20attributes%2Euv%20%21%3D%3D%20undefined%20%29%20%7B%0A%0A%09%09%09%09%09%09var%20uvs%20%3D%20attributes%2Euv%2Earray%3B%0A%0A%09%09%09%09%09%09for%20%28%20var%20i%20%3D%200%2C%20l%20%3D%20uvs%2Elength%3B%20i%20%3C%20l%3B%20i%20%2B%3D%202%20%29%20%7B%0A%0A%09%09%09%09%09%09%09renderList%2EpushUv%28%20uvs%5B%20i%20%5D%2C%20uvs%5B%20i%20%2B%201%20%5D%20%29%3B%0A%0A%09%09%09%09%09%09%7D%0A%0A%09%09%09%09%09%7D%0A%0A%09%09%09%09%09if%20%28%20attributes%2Eindex%20%21%3D%3D%20undefined%20%29%20%7B%0A%0A%09%09%09%09%09%09var%20indices%20%3D%20attributes%2Eindex%2Earray%3B%0A%0A%09%09%09%09%09%09if%20%28%20offsets%2Elength%20%3E%200%20%29%20%7B%0A%0A%09%09%09%09%09%09%09for%20%28%20var%20o%20%3D%200%3B%20o%20%3C%20offsets%2Elength%3B%20o%20%2B%2B%20%29%20%7B%0A%0A%09%09%09%09%09%09%09%09var%20offset%20%3D%20offsets%5B%20o%20%5D%3B%0A%09%09%09%09%09%09%09%09var%20index%20%3D%20offset%2Eindex%3B%0A%0A%09%09%09%09%09%09%09%09for%20%28%20var%20i%20%3D%20offset%2Estart%2C%20l%20%3D%20offset%2Estart%20%2B%20offset%2Ecount%3B%20i%20%3C%20l%3B%20i%20%2B%3D%203%20%29%20%7B%0A%0A%09%09%09%09%09%09%09%09%09renderList%2EpushTriangle%28%20indices%5B%20i%20%5D%20%2B%20index%2C%20indices%5B%20i%20%2B%201%20%5D%20%2B%20index%2C%20indices%5B%20i%20%2B%202%20%5D%20%2B%20index%20%29%3B%0A%0A%09%09%09%09%09%09%09%09%7D%0A%0A%09%09%09%09%09%09%09%7D%0A%0A%09%09%09%09%09%09%7D%20else%20%7B%0A%0A%09%09%09%09%09%09%09for%20%28%20var%20i%20%3D%200%2C%20l%20%3D%20indices%2Elength%3B%20i%20%3C%20l%3B%20i%20%2B%3D%203%20%29%20%7B%0A%0A%09%09%09%09%09%09%09%09renderList%2EpushTriangle%28%20indices%5B%20i%20%5D%2C%20indices%5B%20i%20%2B%201%20%5D%2C%20indices%5B%20i%20%2B%202%20%5D%20%29%3B%0A%0A%09%09%09%09%09%09%09%7D%0A%0A%09%09%09%09%09%09%7D%0A%0A%09%09%09%09%09%7D%20else%20%7B%0A%0A%09%09%09%09%09%09for%20%28%20var%20i%20%3D%200%2C%20l%20%3D%20positions%2Elength%20%2F%203%3B%20i%20%3C%20l%3B%20i%20%2B%3D%203%20%29%20%7B%0A%0A%09%09%09%09%09%09%09renderList%2EpushTriangle%28%20i%2C%20i%20%2B%201%2C%20i%20%2B%202%20%29%3B%0A%0A%09%09%09%09%09%09%7D%0A%0A%09%09%09%09%09%7D%0A%0A%09%09%09%09%7D%20else%20if%20%28%20geometry%20instanceof%20THREE%2EGeometry%20%29%20%7B%0A%0A%09%09%09%09%09var%20vertices%20%3D%20geometry%2Evertices%3B%0A%09%09%09%09%09var%20faces%20%3D%20geometry%2Efaces%3B%0A%09%09%09%09%09var%20faceVertexUvs%20%3D%20geometry%2EfaceVertexUvs%5B%200%20%5D%3B%0A%0A%09%09%09%09%09%5FnormalMatrix%2EgetNormalMatrix%28%20%5FmodelMatrix%20%29%3B%0A%0A%09%09%09%09%09var%20isFaceMaterial%20%3D%20object%2Ematerial%20instanceof%20THREE%2EMeshFaceMaterial%3B%0A%09%09%09%09%09var%20objectMaterials%20%3D%20isFaceMaterial%20%3D%3D%3D%20true%20%3F%20object%2Ematerial%20%3A%20null%3B%0A%0A%09%09%09%09%09for%20%28%20var%20v%20%3D%200%2C%20vl%20%3D%20vertices%2Elength%3B%20v%20%3C%20vl%3B%20v%20%2B%2B%20%29%20%7B%0A%0A%09%09%09%09%09%09var%20vertex%20%3D%20vertices%5B%20v%20%5D%3B%0A%09%09%09%09%09%09renderList%2EpushVertex%28%20vertex%2Ex%2C%20vertex%2Ey%2C%20vertex%2Ez%20%29%3B%0A%0A%09%09%09%09%09%7D%0A%0A%09%09%09%09%09for%20%28%20var%20f%20%3D%200%2C%20fl%20%3D%20faces%2Elength%3B%20f%20%3C%20fl%3B%20f%20%2B%2B%20%29%20%7B%0A%0A%09%09%09%09%09%09var%20face%20%3D%20faces%5B%20f%20%5D%3B%0A%0A%09%09%09%09%09%09var%20material%20%3D%20isFaceMaterial%20%3D%3D%3D%20true%0A%09%09%09%09%09%09%09%20%3F%20objectMaterials%2Ematerials%5B%20face%2EmaterialIndex%20%5D%0A%09%09%09%09%09%09%09%20%3A%20object%2Ematerial%3B%0A%0A%09%09%09%09%09%09if%20%28%20material%20%3D%3D%3D%20undefined%20%29%20continue%3B%0A%0A%09%09%09%09%09%09var%20side%20%3D%20material%2Eside%3B%0A%0A%09%09%09%09%09%09var%20v1%20%3D%20%5FvertexPool%5B%20face%2Ea%20%5D%3B%0A%09%09%09%09%09%09var%20v2%20%3D%20%5FvertexPool%5B%20face%2Eb%20%5D%3B%0A%09%09%09%09%09%09var%20v3%20%3D%20%5FvertexPool%5B%20face%2Ec%20%5D%3B%0A%0A%09%09%09%09%09%09if%20%28%20material%2EmorphTargets%20%3D%3D%3D%20true%20%29%20%7B%0A%0A%09%09%09%09%09%09%09var%20morphTargets%20%3D%20geometry%2EmorphTargets%3B%0A%09%09%09%09%09%09%09var%20morphInfluences%20%3D%20object%2EmorphTargetInfluences%3B%0A%0A%09%09%09%09%09%09%09var%20v1p%20%3D%20v1%2Eposition%3B%0A%09%09%09%09%09%09%09var%20v2p%20%3D%20v2%2Eposition%3B%0A%09%09%09%09%09%09%09var%20v3p%20%3D%20v3%2Eposition%3B%0A%0A%09%09%09%09%09%09%09%5FvA%2Eset%28%200%2C%200%2C%200%20%29%3B%0A%09%09%09%09%09%09%09%5FvB%2Eset%28%200%2C%200%2C%200%20%29%3B%0A%09%09%09%09%09%09%09%5FvC%2Eset%28%200%2C%200%2C%200%20%29%3B%0A%0A%09%09%09%09%09%09%09for%20%28%20var%20t%20%3D%200%2C%20tl%20%3D%20morphTargets%2Elength%3B%20t%20%3C%20tl%3B%20t%20%2B%2B%20%29%20%7B%0A%0A%09%09%09%09%09%09%09%09var%20influence%20%3D%20morphInfluences%5B%20t%20%5D%3B%0A%0A%09%09%09%09%09%09%09%09if%20%28%20influence%20%3D%3D%3D%200%20%29%20continue%3B%0A%0A%09%09%09%09%09%09%09%09var%20targets%20%3D%20morphTargets%5B%20t%20%5D%2Evertices%3B%0A%0A%09%09%09%09%09%09%09%09%5FvA%2Ex%20%2B%3D%20%28%20targets%5B%20face%2Ea%20%5D%2Ex%20%2D%20v1p%2Ex%20%29%20%2A%20influence%3B%0A%09%09%09%09%09%09%09%09%5FvA%2Ey%20%2B%3D%20%28%20targets%5B%20face%2Ea%20%5D%2Ey%20%2D%20v1p%2Ey%20%29%20%2A%20influence%3B%0A%09%09%09%09%09%09%09%09%5FvA%2Ez%20%2B%3D%20%28%20targets%5B%20face%2Ea%20%5D%2Ez%20%2D%20v1p%2Ez%20%29%20%2A%20influence%3B%0A%0A%09%09%09%09%09%09%09%09%5FvB%2Ex%20%2B%3D%20%28%20targets%5B%20face%2Eb%20%5D%2Ex%20%2D%20v2p%2Ex%20%29%20%2A%20influence%3B%0A%09%09%09%09%09%09%09%09%5FvB%2Ey%20%2B%3D%20%28%20targets%5B%20face%2Eb%20%5D%2Ey%20%2D%20v2p%2Ey%20%29%20%2A%20influence%3B%0A%09%09%09%09%09%09%09%09%5FvB%2Ez%20%2B%3D%20%28%20targets%5B%20face%2Eb%20%5D%2Ez%20%2D%20v2p%2Ez%20%29%20%2A%20influence%3B%0A%0A%09%09%09%09%09%09%09%09%5FvC%2Ex%20%2B%3D%20%28%20targets%5B%20face%2Ec%20%5D%2Ex%20%2D%20v3p%2Ex%20%29%20%2A%20influence%3B%0A%09%09%09%09%09%09%09%09%5FvC%2Ey%20%2B%3D%20%28%20targets%5B%20face%2Ec%20%5D%2Ey%20%2D%20v3p%2Ey%20%29%20%2A%20influence%3B%0A%09%09%09%09%09%09%09%09%5FvC%2Ez%20%2B%3D%20%28%20targets%5B%20face%2Ec%20%5D%2Ez%20%2D%20v3p%2Ez%20%29%20%2A%20influence%3B%0A%0A%09%09%09%09%09%09%09%7D%0A%0A%09%09%09%09%09%09%09v1%2Eposition%2Eadd%28%20%5FvA%20%29%3B%0A%09%09%09%09%09%09%09v2%2Eposition%2Eadd%28%20%5FvB%20%29%3B%0A%09%09%09%09%09%09%09v3%2Eposition%2Eadd%28%20%5FvC%20%29%3B%0A%0A%09%09%09%09%09%09%09renderList%2EprojectVertex%28%20v1%20%29%3B%0A%09%09%09%09%09%09%09renderList%2EprojectVertex%28%20v2%20%29%3B%0A%09%09%09%09%09%09%09renderList%2EprojectVertex%28%20v3%20%29%3B%0A%0A%09%09%09%09%09%09%7D%0A%0A%09%09%09%09%09%09if%20%28%20renderList%2EcheckTriangleVisibility%28%20v1%2C%20v2%2C%20v3%20%29%20%3D%3D%3D%20false%20%29%20continue%3B%0A%0A%09%09%09%09%09%09var%20visible%20%3D%20renderList%2EcheckBackfaceCulling%28%20v1%2C%20v2%2C%20v3%20%29%3B%0A%0A%09%09%09%09%09%09if%20%28%20side%20%21%3D%3D%20THREE%2EDoubleSide%20%29%20%7B%0A%09%09%09%09%09%09%09if%20%28%20side%20%3D%3D%3D%20THREE%2EFrontSide%20%26%26%20visible%20%3D%3D%3D%20false%20%29%20continue%3B%0A%09%09%09%09%09%09%09if%20%28%20side%20%3D%3D%3D%20THREE%2EBackSide%20%26%26%20visible%20%3D%3D%3D%20true%20%29%20continue%3B%0A%09%09%09%09%09%09%7D%0A%0A%09%09%09%09%09%09%5Fface%20%3D%20getNextFaceInPool%28%29%3B%0A%0A%09%09%09%09%09%09%5Fface%2Eid%20%3D%20object%2Eid%3B%0A%09%09%09%09%09%09%5Fface%2Ev1%2Ecopy%28%20v1%20%29%3B%0A%09%09%09%09%09%09%5Fface%2Ev2%2Ecopy%28%20v2%20%29%3B%0A%09%09%09%09%09%09%5Fface%2Ev3%2Ecopy%28%20v3%20%29%3B%0A%0A%09%09%09%09%09%09%5Fface%2EnormalModel%2Ecopy%28%20face%2Enormal%20%29%3B%0A%0A%09%09%09%09%09%09if%20%28%20visible%20%3D%3D%3D%20false%20%26%26%20%28%20side%20%3D%3D%3D%20THREE%2EBackSide%20%7C%7C%20side%20%3D%3D%3D%20THREE%2EDoubleSide%20%29%20%29%20%7B%0A%0A%09%09%09%09%09%09%09%5Fface%2EnormalModel%2Enegate%28%29%3B%0A%0A%09%09%09%09%09%09%7D%0A%0A%09%09%09%09%09%09%5Fface%2EnormalModel%2EapplyMatrix3%28%20%5FnormalMatrix%20%29%2Enormalize%28%29%3B%0A%0A%09%09%09%09%09%09var%20faceVertexNormals%20%3D%20face%2EvertexNormals%3B%0A%0A%09%09%09%09%09%09for%20%28%20var%20n%20%3D%200%2C%20nl%20%3D%20Math%2Emin%28%20faceVertexNormals%2Elength%2C%203%20%29%3B%20n%20%3C%20nl%3B%20n%20%2B%2B%20%29%20%7B%0A%0A%09%09%09%09%09%09%09var%20normalModel%20%3D%20%5Fface%2EvertexNormalsModel%5B%20n%20%5D%3B%0A%09%09%09%09%09%09%09normalModel%2Ecopy%28%20faceVertexNormals%5B%20n%20%5D%20%29%3B%0A%0A%09%09%09%09%09%09%09if%20%28%20visible%20%3D%3D%3D%20false%20%26%26%20%28%20side%20%3D%3D%3D%20THREE%2EBackSide%20%7C%7C%20side%20%3D%3D%3D%20THREE%2EDoubleSide%20%29%20%29%20%7B%0A%0A%09%09%09%09%09%09%09%09normalModel%2Enegate%28%29%3B%0A%0A%09%09%09%09%09%09%09%7D%0A%0A%09%09%09%09%09%09%09normalModel%2EapplyMatrix3%28%20%5FnormalMatrix%20%29%2Enormalize%28%29%3B%0A%0A%09%09%09%09%09%09%7D%0A%0A%09%09%09%09%09%09%5Fface%2EvertexNormalsLength%20%3D%20faceVertexNormals%2Elength%3B%0A%0A%09%09%09%09%09%09var%20vertexUvs%20%3D%20faceVertexUvs%5B%20f%20%5D%3B%0A%0A%09%09%09%09%09%09if%20%28%20vertexUvs%20%21%3D%3D%20undefined%20%29%20%7B%0A%0A%09%09%09%09%09%09%09for%20%28%20var%20u%20%3D%200%3B%20u%20%3C%203%3B%20u%20%2B%2B%20%29%20%7B%0A%0A%09%09%09%09%09%09%09%09%5Fface%2Euvs%5B%20u%20%5D%2Ecopy%28%20vertexUvs%5B%20u%20%5D%20%29%3B%0A%0A%09%09%09%09%09%09%09%7D%0A%0A%09%09%09%09%09%09%7D%0A%0A%09%09%09%09%09%09%5Fface%2Ecolor%20%3D%20face%2Ecolor%3B%0A%09%09%09%09%09%09%5Fface%2Ematerial%20%3D%20material%3B%0A%0A%09%09%09%09%09%09%5Fface%2Ez%20%3D%20%28%20v1%2EpositionScreen%2Ez%20%2B%20v2%2EpositionScreen%2Ez%20%2B%20v3%2EpositionScreen%2Ez%20%29%20%2F%203%3B%0A%0A%09%09%09%09%09%09%5FrenderData%2Eelements%2Epush%28%20%5Fface%20%29%3B%0A%0A%09%09%09%09%09%7D%0A%0A%09%09%09%09%7D%0A%0A%09%09%09%7D%20else%20if%20%28%20object%20instanceof%20THREE%2ELine%20%29%20%7B%0A%0A%09%09%09%09if%20%28%20geometry%20instanceof%20THREE%2EBufferGeometry%20%29%20%7B%0A%0A%09%09%09%09%09var%20attributes%20%3D%20geometry%2Eattributes%3B%0A%0A%09%09%09%09%09if%20%28%20attributes%2Eposition%20%21%3D%3D%20undefined%20%29%20%7B%0A%0A%09%09%09%09%09%09var%20positions%20%3D%20attributes%2Eposition%2Earray%3B%0A%0A%09%09%09%09%09%09for%20%28%20var%20i%20%3D%200%2C%20l%20%3D%20positions%2Elength%3B%20i%20%3C%20l%3B%20i%20%2B%3D%203%20%29%20%7B%0A%0A%09%09%09%09%09%09%09renderList%2EpushVertex%28%20positions%5B%20i%20%5D%2C%20positions%5B%20i%20%2B%201%20%5D%2C%20positions%5B%20i%20%2B%202%20%5D%20%29%3B%0A%0A%09%09%09%09%09%09%7D%0A%0A%09%09%09%09%09%09if%20%28%20attributes%2Eindex%20%21%3D%3D%20undefined%20%29%20%7B%0A%0A%09%09%09%09%09%09%09var%20indices%20%3D%20attributes%2Eindex%2Earray%3B%0A%0A%09%09%09%09%09%09%09for%20%28%20var%20i%20%3D%200%2C%20l%20%3D%20indices%2Elength%3B%20i%20%3C%20l%3B%20i%20%2B%3D%202%20%29%20%7B%0A%0A%09%09%09%09%09%09%09%09renderList%2EpushLine%28%20indices%5B%20i%20%5D%2C%20indices%5B%20i%20%2B%201%20%5D%20%29%3B%0A%0A%09%09%09%09%09%09%09%7D%0A%0A%09%09%09%09%09%09%7D%20else%20%7B%0A%0A%09%09%09%09%09%09%09var%20step%20%3D%20object%2Emode%20%3D%3D%3D%20THREE%2ELinePieces%20%3F%202%20%3A%201%3B%0A%0A%09%09%09%09%09%09%09for%20%28%20var%20i%20%3D%200%2C%20l%20%3D%20%28%20positions%2Elength%20%2F%203%20%29%20%2D%201%3B%20i%20%3C%20l%3B%20i%20%2B%3D%20step%20%29%20%7B%0A%0A%09%09%09%09%09%09%09%09renderList%2EpushLine%28%20i%2C%20i%20%2B%201%20%29%3B%0A%0A%09%09%09%09%09%09%09%7D%0A%0A%09%09%09%09%09%09%7D%0A%0A%09%09%09%09%09%7D%0A%0A%09%09%09%09%7D%20else%20if%20%28%20geometry%20instanceof%20THREE%2EGeometry%20%29%20%7B%0A%0A%09%09%09%09%09%5FmodelViewProjectionMatrix%2EmultiplyMatrices%28%20%5FviewProjectionMatrix%2C%20%5FmodelMatrix%20%29%3B%0A%0A%09%09%09%09%09var%20vertices%20%3D%20object%2Egeometry%2Evertices%3B%0A%0A%09%09%09%09%09if%20%28%20vertices%2Elength%20%3D%3D%3D%200%20%29%20continue%3B%0A%0A%09%09%09%09%09v1%20%3D%20getNextVertexInPool%28%29%3B%0A%09%09%09%09%09v1%2EpositionScreen%2Ecopy%28%20vertices%5B%200%20%5D%20%29%2EapplyMatrix4%28%20%5FmodelViewProjectionMatrix%20%29%3B%0A%0A%09%09%09%09%09%2F%2F%20Handle%20LineStrip%20and%20LinePieces%0A%09%09%09%09%09var%20step%20%3D%20object%2Emode%20%3D%3D%3D%20THREE%2ELinePieces%20%3F%202%20%3A%201%3B%0A%0A%09%09%09%09%09for%20%28%20var%20v%20%3D%201%2C%20vl%20%3D%20vertices%2Elength%3B%20v%20%3C%20vl%3B%20v%20%2B%2B%20%29%20%7B%0A%0A%09%09%09%09%09%09v1%20%3D%20getNextVertexInPool%28%29%3B%0A%09%09%09%09%09%09v1%2EpositionScreen%2Ecopy%28%20vertices%5B%20v%20%5D%20%29%2EapplyMatrix4%28%20%5FmodelViewProjectionMatrix%20%29%3B%0A%0A%09%09%09%09%09%09if%20%28%20%28%20v%20%2B%201%20%29%20%25%20step%20%3E%200%20%29%20continue%3B%0A%0A%09%09%09%09%09%09v2%20%3D%20%5FvertexPool%5B%20%5FvertexCount%20%2D%202%20%5D%3B%0A%0A%09%09%09%09%09%09%5FclippedVertex1PositionScreen%2Ecopy%28%20v1%2EpositionScreen%20%29%3B%0A%09%09%09%09%09%09%5FclippedVertex2PositionScreen%2Ecopy%28%20v2%2EpositionScreen%20%29%3B%0A%0A%09%09%09%09%09%09if%20%28%20clipLine%28%20%5FclippedVertex1PositionScreen%2C%20%5FclippedVertex2PositionScreen%20%29%20%3D%3D%3D%20true%20%29%20%7B%0A%0A%09%09%09%09%09%09%09%2F%2F%20Perform%20the%20perspective%20divide%0A%09%09%09%09%09%09%09%5FclippedVertex1PositionScreen%2EmultiplyScalar%28%201%20%2F%20%5FclippedVertex1PositionScreen%2Ew%20%29%3B%0A%09%09%09%09%09%09%09%5FclippedVertex2PositionScreen%2EmultiplyScalar%28%201%20%2F%20%5FclippedVertex2PositionScreen%2Ew%20%29%3B%0A%0A%09%09%09%09%09%09%09%5Fline%20%3D%20getNextLineInPool%28%29%3B%0A%0A%09%09%09%09%09%09%09%5Fline%2Eid%20%3D%20object%2Eid%3B%0A%09%09%09%09%09%09%09%5Fline%2Ev1%2EpositionScreen%2Ecopy%28%20%5FclippedVertex1PositionScreen%20%29%3B%0A%09%09%09%09%09%09%09%5Fline%2Ev2%2EpositionScreen%2Ecopy%28%20%5FclippedVertex2PositionScreen%20%29%3B%0A%0A%09%09%09%09%09%09%09%5Fline%2Ez%20%3D%20Math%2Emax%28%20%5FclippedVertex1PositionScreen%2Ez%2C%20%5FclippedVertex2PositionScreen%2Ez%20%29%3B%0A%0A%09%09%09%09%09%09%09%5Fline%2Ematerial%20%3D%20object%2Ematerial%3B%0A%0A%09%09%09%09%09%09%09if%20%28%20object%2Ematerial%2EvertexColors%20%3D%3D%3D%20THREE%2EVertexColors%20%29%20%7B%0A%0A%09%09%09%09%09%09%09%09%5Fline%2EvertexColors%5B%200%20%5D%2Ecopy%28%20object%2Egeometry%2Ecolors%5B%20v%20%5D%20%29%3B%0A%09%09%09%09%09%09%09%09%5Fline%2EvertexColors%5B%201%20%5D%2Ecopy%28%20object%2Egeometry%2Ecolors%5B%20v%20%2D%201%20%5D%20%29%3B%0A%0A%09%09%09%09%09%09%09%7D%0A%0A%09%09%09%09%09%09%09%5FrenderData%2Eelements%2Epush%28%20%5Fline%20%29%3B%0A%0A%09%09%09%09%09%09%7D%0A%0A%09%09%09%09%09%7D%0A%0A%09%09%09%09%7D%0A%0A%09%09%09%7D%20else%20if%20%28%20object%20instanceof%20THREE%2ESprite%20%29%20%7B%0A%0A%09%09%09%09%5Fvector4%2Eset%28%20%5FmodelMatrix%2Eelements%5B%2012%20%5D%2C%20%5FmodelMatrix%2Eelements%5B%2013%20%5D%2C%20%5FmodelMatrix%2Eelements%5B%2014%20%5D%2C%201%20%29%3B%0A%09%09%09%09%5Fvector4%2EapplyMatrix4%28%20%5FviewProjectionMatrix%20%29%3B%0A%0A%09%09%09%09var%20invW%20%3D%201%20%2F%20%5Fvector4%2Ew%3B%0A%0A%09%09%09%09%5Fvector4%2Ez%20%2A%3D%20invW%3B%0A%0A%09%09%09%09if%20%28%20%5Fvector4%2Ez%20%3E%3D%20%2D%201%20%26%26%20%5Fvector4%2Ez%20%3C%3D%201%20%29%20%7B%0A%0A%09%09%09%09%09%5Fsprite%20%3D%20getNextSpriteInPool%28%29%3B%0A%09%09%09%09%09%5Fsprite%2Eid%20%3D%20object%2Eid%3B%0A%09%09%09%09%09%5Fsprite%2Ex%20%3D%20%5Fvector4%2Ex%20%2A%20invW%3B%0A%09%09%09%09%09%5Fsprite%2Ey%20%3D%20%5Fvector4%2Ey%20%2A%20invW%3B%0A%09%09%09%09%09%5Fsprite%2Ez%20%3D%20%5Fvector4%2Ez%3B%0A%09%09%09%09%09%5Fsprite%2Eobject%20%3D%20object%3B%0A%0A%09%09%09%09%09%5Fsprite%2Erotation%20%3D%20object%2Erotation%3B%0A%0A%09%09%09%09%09%5Fsprite%2Escale%2Ex%20%3D%20object%2Escale%2Ex%20%2A%20Math%2Eabs%28%20%5Fsprite%2Ex%20%2D%20%28%20%5Fvector4%2Ex%20%2B%20camera%2EprojectionMatrix%2Eelements%5B%200%20%5D%20%29%20%2F%20%28%20%5Fvector4%2Ew%20%2B%20camera%2EprojectionMatrix%2Eelements%5B%2012%20%5D%20%29%20%29%3B%0A%09%09%09%09%09%5Fsprite%2Escale%2Ey%20%3D%20object%2Escale%2Ey%20%2A%20Math%2Eabs%28%20%5Fsprite%2Ey%20%2D%20%28%20%5Fvector4%2Ey%20%2B%20camera%2EprojectionMatrix%2Eelements%5B%205%20%5D%20%29%20%2F%20%28%20%5Fvector4%2Ew%20%2B%20camera%2EprojectionMatrix%2Eelements%5B%2013%20%5D%20%29%20%29%3B%0A%0A%09%09%09%09%09%5Fsprite%2Ematerial%20%3D%20object%2Ematerial%3B%0A%0A%09%09%09%09%09%5FrenderData%2Eelements%2Epush%28%20%5Fsprite%20%29%3B%0A%0A%09%09%09%09%7D%0A%0A%09%09%09%7D%0A%0A%09%09%7D%0A%0A%09%09if%20%28%20sortElements%20%3D%3D%3D%20true%20%29%20%7B%0A%0A%09%09%09%5FrenderData%2Eelements%2Esort%28%20painterSort%20%29%3B%0A%0A%09%09%7D%0A%0A%09%09return%20%5FrenderData%3B%0A%0A%09%7D%3B%0A%0A%09%2F%2F%20Pools%0A%0A%09function%20getNextObjectInPool%28%29%20%7B%0A%0A%09%09if%20%28%20%5FobjectCount%20%3D%3D%3D%20%5FobjectPoolLength%20%29%20%7B%0A%0A%09%09%09var%20object%20%3D%20new%20THREE%2ERenderableObject%28%29%3B%0A%09%09%09%5FobjectPool%2Epush%28%20object%20%29%3B%0A%09%09%09%5FobjectPoolLength%20%2B%2B%3B%0A%09%09%09%5FobjectCount%20%2B%2B%3B%0A%09%09%09return%20object%3B%0A%0A%09%09%7D%0A%0A%09%09return%20%5FobjectPool%5B%20%5FobjectCount%20%2B%2B%20%5D%3B%0A%0A%09%7D%0A%0A%09function%20getNextVertexInPool%28%29%20%7B%0A%0A%09%09if%20%28%20%5FvertexCount%20%3D%3D%3D%20%5FvertexPoolLength%20%29%20%7B%0A%0A%09%09%09var%20vertex%20%3D%20new%20THREE%2ERenderableVertex%28%29%3B%0A%09%09%09%5FvertexPool%2Epush%28%20vertex%20%29%3B%0A%09%09%09%5FvertexPoolLength%20%2B%2B%3B%0A%09%09%09%5FvertexCount%20%2B%2B%3B%0A%09%09%09return%20vertex%3B%0A%0A%09%09%7D%0A%0A%09%09return%20%5FvertexPool%5B%20%5FvertexCount%20%2B%2B%20%5D%3B%0A%0A%09%7D%0A%0A%09function%20getNextFaceInPool%28%29%20%7B%0A%0A%09%09if%20%28%20%5FfaceCount%20%3D%3D%3D%20%5FfacePoolLength%20%29%20%7B%0A%0A%09%09%09var%20face%20%3D%20new%20THREE%2ERenderableFace%28%29%3B%0A%09%09%09%5FfacePool%2Epush%28%20face%20%29%3B%0A%09%09%09%5FfacePoolLength%20%2B%2B%3B%0A%09%09%09%5FfaceCount%20%2B%2B%3B%0A%09%09%09return%20face%3B%0A%0A%09%09%7D%0A%0A%09%09return%20%5FfacePool%5B%20%5FfaceCount%20%2B%2B%20%5D%3B%0A%0A%0A%09%7D%0A%0A%09function%20getNextLineInPool%28%29%20%7B%0A%0A%09%09if%20%28%20%5FlineCount%20%3D%3D%3D%20%5FlinePoolLength%20%29%20%7B%0A%0A%09%09%09var%20line%20%3D%20new%20THREE%2ERenderableLine%28%29%3B%0A%09%09%09%5FlinePool%2Epush%28%20line%20%29%3B%0A%09%09%09%5FlinePoolLength%20%2B%2B%3B%0A%09%09%09%5FlineCount%20%2B%2B%0A%09%09%09return%20line%3B%0A%0A%09%09%7D%0A%0A%09%09return%20%5FlinePool%5B%20%5FlineCount%20%2B%2B%20%5D%3B%0A%0A%09%7D%0A%0A%09function%20getNextSpriteInPool%28%29%20%7B%0A%0A%09%09if%20%28%20%5FspriteCount%20%3D%3D%3D%20%5FspritePoolLength%20%29%20%7B%0A%0A%09%09%09var%20sprite%20%3D%20new%20THREE%2ERenderableSprite%28%29%3B%0A%09%09%09%5FspritePool%2Epush%28%20sprite%20%29%3B%0A%09%09%09%5FspritePoolLength%20%2B%2B%3B%0A%09%09%09%5FspriteCount%20%2B%2B%0A%09%09%09return%20sprite%3B%0A%0A%09%09%7D%0A%0A%09%09return%20%5FspritePool%5B%20%5FspriteCount%20%2B%2B%20%5D%3B%0A%0A%09%7D%0A%0A%09%2F%2F%0A%0A%09function%20painterSort%28%20a%2C%20b%20%29%20%7B%0A%0A%09%09if%20%28%20a%2Ez%20%21%3D%3D%20b%2Ez%20%29%20%7B%0A%0A%09%09%09return%20b%2Ez%20%2D%20a%2Ez%3B%0A%0A%09%09%7D%20else%20if%20%28%20a%2Eid%20%21%3D%3D%20b%2Eid%20%29%20%7B%0A%0A%09%09%09return%20a%2Eid%20%2D%20b%2Eid%3B%0A%0A%09%09%7D%20else%20%7B%0A%0A%09%09%09return%200%3B%0A%0A%09%09%7D%0A%0A%09%7D%0A%0A%09function%20clipLine%28%20s1%2C%20s2%20%29%20%7B%0A%0A%09%09var%20alpha1%20%3D%200%2C%20alpha2%20%3D%201%2C%0A%0A%09%09%2F%2F%20Calculate%20the%20boundary%20coordinate%20of%20each%20vertex%20for%20the%20near%20and%20far%20clip%20planes%2C%0A%09%09%2F%2F%20Z%20%3D%20%2D1%20and%20Z%20%3D%20%2B1%2C%20respectively%2E%0A%09%09bc1near%20%3D%20%20s1%2Ez%20%2B%20s1%2Ew%2C%0A%09%09bc2near%20%3D%20%20s2%2Ez%20%2B%20s2%2Ew%2C%0A%09%09bc1far%20%3D%20%20%2D%20s1%2Ez%20%2B%20s1%2Ew%2C%0A%09%09bc2far%20%3D%20%20%2D%20s2%2Ez%20%2B%20s2%2Ew%3B%0A%0A%09%09if%20%28%20bc1near%20%3E%3D%200%20%26%26%20bc2near%20%3E%3D%200%20%26%26%20bc1far%20%3E%3D%200%20%26%26%20bc2far%20%3E%3D%200%20%29%20%7B%0A%0A%09%09%09%2F%2F%20Both%20vertices%20lie%20entirely%20within%20all%20clip%20planes%2E%0A%09%09%09return%20true%3B%0A%0A%09%09%7D%20else%20if%20%28%20%28%20bc1near%20%3C%200%20%26%26%20bc2near%20%3C%200%20%29%20%7C%7C%20%28%20bc1far%20%3C%200%20%26%26%20bc2far%20%3C%200%20%29%20%29%20%7B%0A%0A%09%09%09%2F%2F%20Both%20vertices%20lie%20entirely%20outside%20one%20of%20the%20clip%20planes%2E%0A%09%09%09return%20false%3B%0A%0A%09%09%7D%20else%20%7B%0A%0A%09%09%09%2F%2F%20The%20line%20segment%20spans%20at%20least%20one%20clip%20plane%2E%0A%0A%09%09%09if%20%28%20bc1near%20%3C%200%20%29%20%7B%0A%0A%09%09%09%09%2F%2F%20v1%20lies%20outside%20the%20near%20plane%2C%20v2%20inside%0A%09%09%09%09alpha1%20%3D%20Math%2Emax%28%20alpha1%2C%20bc1near%20%2F%20%28%20bc1near%20%2D%20bc2near%20%29%20%29%3B%0A%0A%09%09%09%7D%20else%20if%20%28%20bc2near%20%3C%200%20%29%20%7B%0A%0A%09%09%09%09%2F%2F%20v2%20lies%20outside%20the%20near%20plane%2C%20v1%20inside%0A%09%09%09%09alpha2%20%3D%20Math%2Emin%28%20alpha2%2C%20bc1near%20%2F%20%28%20bc1near%20%2D%20bc2near%20%29%20%29%3B%0A%0A%09%09%09%7D%0A%0A%09%09%09if%20%28%20bc1far%20%3C%200%20%29%20%7B%0A%0A%09%09%09%09%2F%2F%20v1%20lies%20outside%20the%20far%20plane%2C%20v2%20inside%0A%09%09%09%09alpha1%20%3D%20Math%2Emax%28%20alpha1%2C%20bc1far%20%2F%20%28%20bc1far%20%2D%20bc2far%20%29%20%29%3B%0A%0A%09%09%09%7D%20else%20if%20%28%20bc2far%20%3C%200%20%29%20%7B%0A%0A%09%09%09%09%2F%2F%20v2%20lies%20outside%20the%20far%20plane%2C%20v2%20inside%0A%09%09%09%09alpha2%20%3D%20Math%2Emin%28%20alpha2%2C%20bc1far%20%2F%20%28%20bc1far%20%2D%20bc2far%20%29%20%29%3B%0A%0A%09%09%09%7D%0A%0A%09%09%09if%20%28%20alpha2%20%3C%20alpha1%20%29%20%7B%0A%0A%09%09%09%09%2F%2F%20The%20line%20segment%20spans%20two%20boundaries%2C%20but%20is%20outside%20both%20of%20them%2E%0A%09%09%09%09%2F%2F%20%28This%20can%27t%20happen%20when%20we%27re%20only%20clipping%20against%20just%20near%2Ffar%20but%20good%0A%09%09%09%09%2F%2F%20%20to%20leave%20the%20check%20here%20for%20future%20usage%20if%20other%20clip%20planes%20are%20added%2E%29%0A%09%09%09%09return%20false%3B%0A%0A%09%09%09%7D%20else%20%7B%0A%0A%09%09%09%09%2F%2F%20Update%20the%20s1%20and%20s2%20vertices%20to%20match%20the%20clipped%20line%20segment%2E%0A%09%09%09%09s1%2Elerp%28%20s2%2C%20alpha1%20%29%3B%0A%09%09%09%09s2%2Elerp%28%20s1%2C%201%20%2D%20alpha2%20%29%3B%0A%0A%09%09%09%09return%20true%3B%0A%0A%09%09%09%7D%0A%0A%09%09%7D%0A%0A%09%7D%0A%0A%7D%3B%0A"></script>
<script src="data:application/x-javascript,%2F%2A%2A%0A%20%2A%20%40author%20mrdoob%20%2F%20http%3A%2F%2Fmrdoob%2Ecom%2F%0A%20%2A%2F%0A%0ATHREE%2ESpriteCanvasMaterial%20%3D%20function%20%28%20parameters%20%29%20%7B%0A%0A%09THREE%2EMaterial%2Ecall%28%20this%20%29%3B%0A%0A%09this%2Etype%20%3D%20%27SpriteCanvasMaterial%27%3B%0A%0A%09this%2Ecolor%20%3D%20new%20THREE%2EColor%28%200xffffff%20%29%3B%0A%09this%2Eprogram%20%3D%20function%20%28%20context%2C%20color%20%29%20%7B%7D%3B%0A%0A%09this%2EsetValues%28%20parameters%20%29%3B%0A%0A%7D%3B%0A%0ATHREE%2ESpriteCanvasMaterial%2Eprototype%20%3D%20Object%2Ecreate%28%20THREE%2EMaterial%2Eprototype%20%29%3B%0ATHREE%2ESpriteCanvasMaterial%2Eprototype%2Econstructor%20%3D%20THREE%2ESpriteCanvasMaterial%3B%0A%0ATHREE%2ESpriteCanvasMaterial%2Eprototype%2Eclone%20%3D%20function%20%28%29%20%7B%0A%0A%09var%20material%20%3D%20new%20THREE%2ESpriteCanvasMaterial%28%29%3B%0A%0A%09THREE%2EMaterial%2Eprototype%2Eclone%2Ecall%28%20this%2C%20material%20%29%3B%0A%0A%09material%2Ecolor%2Ecopy%28%20this%2Ecolor%20%29%3B%0A%09material%2Eprogram%20%3D%20this%2Eprogram%3B%0A%0A%09return%20material%3B%0A%0A%7D%3B%0A%0A%2F%2F%0A%0ATHREE%2ECanvasRenderer%20%3D%20function%20%28%20parameters%20%29%20%7B%0A%0A%09console%2Elog%28%20%27THREE%2ECanvasRenderer%27%2C%20THREE%2EREVISION%20%29%3B%0A%0A%09var%20smoothstep%20%3D%20THREE%2EMath%2Esmoothstep%3B%0A%0A%09parameters%20%3D%20parameters%20%7C%7C%20%7B%7D%3B%0A%0A%09var%20%5Fthis%20%3D%20this%2C%0A%09%5FrenderData%2C%20%5Felements%2C%20%5Flights%2C%0A%09%5Fprojector%20%3D%20new%20THREE%2EProjector%28%29%2C%0A%0A%09%5Fcanvas%20%3D%20parameters%2Ecanvas%20%21%3D%3D%20undefined%0A%09%09%09%20%3F%20parameters%2Ecanvas%0A%09%09%09%20%3A%20document%2EcreateElement%28%20%27canvas%27%20%29%2C%0A%0A%09%5FcanvasWidth%20%3D%20%5Fcanvas%2Ewidth%2C%0A%09%5FcanvasHeight%20%3D%20%5Fcanvas%2Eheight%2C%0A%09%5FcanvasWidthHalf%20%3D%20Math%2Efloor%28%20%5FcanvasWidth%20%2F%202%20%29%2C%0A%09%5FcanvasHeightHalf%20%3D%20Math%2Efloor%28%20%5FcanvasHeight%20%2F%202%20%29%2C%0A%0A%09%5FviewportX%20%3D%200%2C%0A%09%5FviewportY%20%3D%200%2C%0A%09%5FviewportWidth%20%3D%20%5FcanvasWidth%2C%0A%09%5FviewportHeight%20%3D%20%5FcanvasHeight%2C%0A%0A%09pixelRatio%20%3D%201%2C%0A%0A%09%5Fcontext%20%3D%20%5Fcanvas%2EgetContext%28%20%272d%27%2C%20%7B%0A%09%09alpha%3A%20parameters%2Ealpha%20%3D%3D%3D%20true%0A%09%7D%20%29%2C%0A%0A%09%5FclearColor%20%3D%20new%20THREE%2EColor%28%200x000000%20%29%2C%0A%09%5FclearAlpha%20%3D%20parameters%2Ealpha%20%3D%3D%3D%20true%20%3F%200%20%3A%201%2C%0A%0A%09%5FcontextGlobalAlpha%20%3D%201%2C%0A%09%5FcontextGlobalCompositeOperation%20%3D%200%2C%0A%09%5FcontextStrokeStyle%20%3D%20null%2C%0A%09%5FcontextFillStyle%20%3D%20null%2C%0A%09%5FcontextLineWidth%20%3D%20null%2C%0A%09%5FcontextLineCap%20%3D%20null%2C%0A%09%5FcontextLineJoin%20%3D%20null%2C%0A%09%5FcontextLineDash%20%3D%20%5B%5D%2C%0A%0A%09%5Fcamera%2C%0A%0A%09%5Fv1%2C%20%5Fv2%2C%20%5Fv3%2C%20%5Fv4%2C%0A%09%5Fv5%20%3D%20new%20THREE%2ERenderableVertex%28%29%2C%0A%09%5Fv6%20%3D%20new%20THREE%2ERenderableVertex%28%29%2C%0A%0A%09%5Fv1x%2C%20%5Fv1y%2C%20%5Fv2x%2C%20%5Fv2y%2C%20%5Fv3x%2C%20%5Fv3y%2C%0A%09%5Fv4x%2C%20%5Fv4y%2C%20%5Fv5x%2C%20%5Fv5y%2C%20%5Fv6x%2C%20%5Fv6y%2C%0A%0A%09%5Fcolor%20%3D%20new%20THREE%2EColor%28%29%2C%0A%09%5Fcolor1%20%3D%20new%20THREE%2EColor%28%29%2C%0A%09%5Fcolor2%20%3D%20new%20THREE%2EColor%28%29%2C%0A%09%5Fcolor3%20%3D%20new%20THREE%2EColor%28%29%2C%0A%09%5Fcolor4%20%3D%20new%20THREE%2EColor%28%29%2C%0A%0A%09%5FdiffuseColor%20%3D%20new%20THREE%2EColor%28%29%2C%0A%09%5FemissiveColor%20%3D%20new%20THREE%2EColor%28%29%2C%0A%0A%09%5FlightColor%20%3D%20new%20THREE%2EColor%28%29%2C%0A%0A%09%5Fpatterns%20%3D%20%7B%7D%2C%0A%0A%09%5Fimage%2C%20%5Fuvs%2C%0A%09%5Fuv1x%2C%20%5Fuv1y%2C%20%5Fuv2x%2C%20%5Fuv2y%2C%20%5Fuv3x%2C%20%5Fuv3y%2C%0A%0A%09%5FclipBox%20%3D%20new%20THREE%2EBox2%28%29%2C%0A%09%5FclearBox%20%3D%20new%20THREE%2EBox2%28%29%2C%0A%09%5FelemBox%20%3D%20new%20THREE%2EBox2%28%29%2C%0A%0A%09%5FambientLight%20%3D%20new%20THREE%2EColor%28%29%2C%0A%09%5FdirectionalLights%20%3D%20new%20THREE%2EColor%28%29%2C%0A%09%5FpointLights%20%3D%20new%20THREE%2EColor%28%29%2C%0A%0A%09%5Fvector3%20%3D%20new%20THREE%2EVector3%28%29%2C%20%2F%2F%20Needed%20for%20PointLight%0A%09%5Fcentroid%20%3D%20new%20THREE%2EVector3%28%29%2C%0A%09%5Fnormal%20%3D%20new%20THREE%2EVector3%28%29%2C%0A%09%5FnormalViewMatrix%20%3D%20new%20THREE%2EMatrix3%28%29%3B%0A%0A%09%2F%2F%20dash%2Bgap%20fallbacks%20for%20Firefox%20and%20everything%20else%0A%0A%09if%20%28%20%5Fcontext%2EsetLineDash%20%3D%3D%3D%20undefined%20%29%20%7B%0A%0A%09%09%5Fcontext%2EsetLineDash%20%3D%20function%20%28%29%20%7B%7D%0A%0A%09%7D%0A%0A%09this%2EdomElement%20%3D%20%5Fcanvas%3B%0A%0A%09this%2EautoClear%20%3D%20true%3B%0A%09this%2EsortObjects%20%3D%20true%3B%0A%09this%2EsortElements%20%3D%20true%3B%0A%0A%09this%2Einfo%20%3D%20%7B%0A%0A%09%09render%3A%20%7B%0A%0A%09%09%09vertices%3A%200%2C%0A%09%09%09faces%3A%200%0A%0A%09%09%7D%0A%0A%09%7D%0A%0A%09%2F%2F%20WebGLRenderer%20compatibility%0A%0A%09this%2EsupportsVertexTextures%20%3D%20function%20%28%29%20%7B%7D%3B%0A%09this%2EsetFaceCulling%20%3D%20function%20%28%29%20%7B%7D%3B%0A%0A%09%2F%2F%0A%0A%09this%2EgetPixelRatio%20%3D%20function%20%28%29%20%7B%0A%0A%09%09return%20pixelRatio%3B%0A%0A%09%7D%3B%0A%0A%09this%2EsetPixelRatio%20%3D%20function%20%28%20value%20%29%20%7B%0A%0A%09%09pixelRatio%20%3D%20value%3B%0A%0A%09%7D%3B%0A%0A%09this%2EsetSize%20%3D%20function%20%28%20width%2C%20height%2C%20updateStyle%20%29%20%7B%0A%0A%09%09%5FcanvasWidth%20%3D%20width%20%2A%20pixelRatio%3B%0A%09%09%5FcanvasHeight%20%3D%20height%20%2A%20pixelRatio%3B%0A%0A%09%09%5Fcanvas%2Ewidth%20%3D%20%5FcanvasWidth%3B%0A%09%09%5Fcanvas%2Eheight%20%3D%20%5FcanvasHeight%3B%0A%0A%09%09%5FcanvasWidthHalf%20%3D%20Math%2Efloor%28%20%5FcanvasWidth%20%2F%202%20%29%3B%0A%09%09%5FcanvasHeightHalf%20%3D%20Math%2Efloor%28%20%5FcanvasHeight%20%2F%202%20%29%3B%0A%0A%09%09if%20%28%20updateStyle%20%21%3D%3D%20false%20%29%20%7B%0A%0A%09%09%09%5Fcanvas%2Estyle%2Ewidth%20%3D%20width%20%2B%20%27px%27%3B%0A%09%09%09%5Fcanvas%2Estyle%2Eheight%20%3D%20height%20%2B%20%27px%27%3B%0A%0A%09%09%7D%0A%0A%09%09%5FclipBox%2Emin%2Eset%28%20%2D%5FcanvasWidthHalf%2C%20%2D%5FcanvasHeightHalf%20%29%2C%0A%09%09%5FclipBox%2Emax%2Eset%28%20%20%20%5FcanvasWidthHalf%2C%20%20%20%5FcanvasHeightHalf%20%29%3B%0A%0A%09%09%5FclearBox%2Emin%2Eset%28%20%2D%20%5FcanvasWidthHalf%2C%20%2D%20%5FcanvasHeightHalf%20%29%3B%0A%09%09%5FclearBox%2Emax%2Eset%28%20%20%20%5FcanvasWidthHalf%2C%20%20%20%5FcanvasHeightHalf%20%29%3B%0A%0A%09%09%5FcontextGlobalAlpha%20%3D%201%3B%0A%09%09%5FcontextGlobalCompositeOperation%20%3D%200%3B%0A%09%09%5FcontextStrokeStyle%20%3D%20null%3B%0A%09%09%5FcontextFillStyle%20%3D%20null%3B%0A%09%09%5FcontextLineWidth%20%3D%20null%3B%0A%09%09%5FcontextLineCap%20%3D%20null%3B%0A%09%09%5FcontextLineJoin%20%3D%20null%3B%0A%0A%09%09this%2EsetViewport%28%200%2C%200%2C%20width%2C%20height%20%29%3B%0A%0A%09%7D%3B%0A%0A%09this%2EsetViewport%20%3D%20function%20%28%20x%2C%20y%2C%20width%2C%20height%20%29%20%7B%0A%0A%09%09%5FviewportX%20%3D%20x%20%2A%20pixelRatio%3B%0A%09%09%5FviewportY%20%3D%20y%20%2A%20pixelRatio%3B%0A%0A%09%09%5FviewportWidth%20%3D%20width%20%2A%20pixelRatio%3B%0A%09%09%5FviewportHeight%20%3D%20height%20%2A%20pixelRatio%3B%0A%0A%09%7D%3B%0A%0A%09this%2EsetScissor%20%3D%20function%20%28%29%20%7B%7D%3B%0A%09this%2EenableScissorTest%20%3D%20function%20%28%29%20%7B%7D%3B%0A%0A%09this%2EsetClearColor%20%3D%20function%20%28%20color%2C%20alpha%20%29%20%7B%0A%0A%09%09%5FclearColor%2Eset%28%20color%20%29%3B%0A%09%09%5FclearAlpha%20%3D%20alpha%20%21%3D%3D%20undefined%20%3F%20alpha%20%3A%201%3B%0A%0A%09%09%5FclearBox%2Emin%2Eset%28%20%2D%20%5FcanvasWidthHalf%2C%20%2D%20%5FcanvasHeightHalf%20%29%3B%0A%09%09%5FclearBox%2Emax%2Eset%28%20%20%20%5FcanvasWidthHalf%2C%20%20%20%5FcanvasHeightHalf%20%29%3B%0A%0A%09%7D%3B%0A%0A%09this%2EsetClearColorHex%20%3D%20function%20%28%20hex%2C%20alpha%20%29%20%7B%0A%0A%09%09console%2Ewarn%28%20%27THREE%2ECanvasRenderer%3A%20%2EsetClearColorHex%28%29%20is%20being%20removed%2E%20Use%20%2EsetClearColor%28%29%20instead%2E%27%20%29%3B%0A%09%09this%2EsetClearColor%28%20hex%2C%20alpha%20%29%3B%0A%0A%09%7D%3B%0A%0A%09this%2EgetClearColor%20%3D%20function%20%28%29%20%7B%0A%0A%09%09return%20%5FclearColor%3B%0A%0A%09%7D%3B%0A%0A%09this%2EgetClearAlpha%20%3D%20function%20%28%29%20%7B%0A%0A%09%09return%20%5FclearAlpha%3B%0A%0A%09%7D%3B%0A%0A%09this%2EgetMaxAnisotropy%20%3D%20function%20%28%29%20%7B%0A%0A%09%09return%200%3B%0A%0A%09%7D%3B%0A%0A%09this%2Eclear%20%3D%20function%20%28%29%20%7B%0A%0A%09%09if%20%28%20%5FclearBox%2Eempty%28%29%20%3D%3D%3D%20false%20%29%20%7B%0A%0A%09%09%09%5FclearBox%2Eintersect%28%20%5FclipBox%20%29%3B%0A%09%09%09%5FclearBox%2EexpandByScalar%28%202%20%29%3B%0A%0A%09%09%09%5FclearBox%2Emin%2Ex%20%3D%20%5FclearBox%2Emin%2Ex%20%2B%20%5FcanvasWidthHalf%3B%0A%09%09%09%5FclearBox%2Emin%2Ey%20%3D%20%20%2D%20%5FclearBox%2Emin%2Ey%20%2B%20%5FcanvasHeightHalf%3B%09%09%2F%2F%20higher%20y%20value%20%21%0A%09%09%09%5FclearBox%2Emax%2Ex%20%3D%20%5FclearBox%2Emax%2Ex%20%2B%20%5FcanvasWidthHalf%3B%0A%09%09%09%5FclearBox%2Emax%2Ey%20%3D%20%20%2D%20%5FclearBox%2Emax%2Ey%20%2B%20%5FcanvasHeightHalf%3B%09%09%2F%2F%20lower%20y%20value%20%21%0A%0A%09%09%09if%20%28%20%5FclearAlpha%20%3C%201%20%29%20%7B%0A%0A%09%09%09%09%5Fcontext%2EclearRect%28%0A%09%09%09%09%09%5FclearBox%2Emin%2Ex%20%7C%200%2C%0A%09%09%09%09%09%5FclearBox%2Emax%2Ey%20%7C%200%2C%0A%09%09%09%09%09%28%20%5FclearBox%2Emax%2Ex%20%2D%20%5FclearBox%2Emin%2Ex%20%29%20%7C%200%2C%0A%09%09%09%09%09%28%20%5FclearBox%2Emin%2Ey%20%2D%20%5FclearBox%2Emax%2Ey%20%29%20%7C%200%0A%09%09%09%09%29%3B%0A%0A%09%09%09%7D%0A%0A%09%09%09if%20%28%20%5FclearAlpha%20%3E%200%20%29%20%7B%0A%0A%09%09%09%09setBlending%28%20THREE%2ENormalBlending%20%29%3B%0A%09%09%09%09setOpacity%28%201%20%29%3B%0A%0A%09%09%09%09setFillStyle%28%20%27rgba%28%27%20%2B%20Math%2Efloor%28%20%5FclearColor%2Er%20%2A%20255%20%29%20%2B%20%27%2C%27%20%2B%20Math%2Efloor%28%20%5FclearColor%2Eg%20%2A%20255%20%29%20%2B%20%27%2C%27%20%2B%20Math%2Efloor%28%20%5FclearColor%2Eb%20%2A%20255%20%29%20%2B%20%27%2C%27%20%2B%20%5FclearAlpha%20%2B%20%27%29%27%20%29%3B%0A%0A%09%09%09%09%5Fcontext%2EfillRect%28%0A%09%09%09%09%09%5FclearBox%2Emin%2Ex%20%7C%200%2C%0A%09%09%09%09%09%5FclearBox%2Emax%2Ey%20%7C%200%2C%0A%09%09%09%09%09%28%20%5FclearBox%2Emax%2Ex%20%2D%20%5FclearBox%2Emin%2Ex%20%29%20%7C%200%2C%0A%09%09%09%09%09%28%20%5FclearBox%2Emin%2Ey%20%2D%20%5FclearBox%2Emax%2Ey%20%29%20%7C%200%0A%09%09%09%09%29%3B%0A%0A%09%09%09%7D%0A%0A%09%09%09%5FclearBox%2EmakeEmpty%28%29%3B%0A%0A%09%09%7D%0A%0A%09%7D%3B%0A%0A%09%2F%2F%20compatibility%0A%0A%09this%2EclearColor%20%3D%20function%20%28%29%20%7B%7D%3B%0A%09this%2EclearDepth%20%3D%20function%20%28%29%20%7B%7D%3B%0A%09this%2EclearStencil%20%3D%20function%20%28%29%20%7B%7D%3B%0A%0A%09this%2Erender%20%3D%20function%20%28%20scene%2C%20camera%20%29%20%7B%0A%0A%09%09if%20%28%20camera%20instanceof%20THREE%2ECamera%20%3D%3D%3D%20false%20%29%20%7B%0A%0A%09%09%09console%2Eerror%28%20%27THREE%2ECanvasRenderer%2Erender%3A%20camera%20is%20not%20an%20instance%20of%20THREE%2ECamera%2E%27%20%29%3B%0A%09%09%09return%3B%0A%0A%09%09%7D%0A%0A%09%09if%20%28%20this%2EautoClear%20%3D%3D%3D%20true%20%29%20this%2Eclear%28%29%3B%0A%0A%09%09%5Fthis%2Einfo%2Erender%2Evertices%20%3D%200%3B%0A%09%09%5Fthis%2Einfo%2Erender%2Efaces%20%3D%200%3B%0A%0A%09%09%5Fcontext%2EsetTransform%28%20%5FviewportWidth%20%2F%20%5FcanvasWidth%2C%200%2C%200%2C%20%2D%20%5FviewportHeight%20%2F%20%5FcanvasHeight%2C%20%5FviewportX%2C%20%5FcanvasHeight%20%2D%20%5FviewportY%20%29%3B%0A%09%09%5Fcontext%2Etranslate%28%20%5FcanvasWidthHalf%2C%20%5FcanvasHeightHalf%20%29%3B%0A%0A%09%09%5FrenderData%20%3D%20%5Fprojector%2EprojectScene%28%20scene%2C%20camera%2C%20this%2EsortObjects%2C%20this%2EsortElements%20%29%3B%0A%09%09%5Felements%20%3D%20%5FrenderData%2Eelements%3B%0A%09%09%5Flights%20%3D%20%5FrenderData%2Elights%3B%0A%09%09%5Fcamera%20%3D%20camera%3B%0A%0A%09%09%5FnormalViewMatrix%2EgetNormalMatrix%28%20camera%2EmatrixWorldInverse%20%29%3B%0A%0A%09%09%2F%2A%20DEBUG%0A%09%09setFillStyle%28%20%27rgba%28%200%2C%20255%2C%20255%2C%200%2E5%20%29%27%20%29%3B%0A%09%09%5Fcontext%2EfillRect%28%20%5FclipBox%2Emin%2Ex%2C%20%5FclipBox%2Emin%2Ey%2C%20%5FclipBox%2Emax%2Ex%20%2D%20%5FclipBox%2Emin%2Ex%2C%20%5FclipBox%2Emax%2Ey%20%2D%20%5FclipBox%2Emin%2Ey%20%29%3B%0A%09%09%2A%2F%0A%0A%09%09calculateLights%28%29%3B%0A%0A%09%09for%20%28%20var%20e%20%3D%200%2C%20el%20%3D%20%5Felements%2Elength%3B%20e%20%3C%20el%3B%20e%20%2B%2B%20%29%20%7B%0A%0A%09%09%09var%20element%20%3D%20%5Felements%5B%20e%20%5D%3B%0A%0A%09%09%09var%20material%20%3D%20element%2Ematerial%3B%0A%0A%09%09%09if%20%28%20material%20%3D%3D%3D%20undefined%20%7C%7C%20material%2Eopacity%20%3D%3D%3D%200%20%29%20continue%3B%0A%0A%09%09%09%5FelemBox%2EmakeEmpty%28%29%3B%0A%0A%09%09%09if%20%28%20element%20instanceof%20THREE%2ERenderableSprite%20%29%20%7B%0A%0A%09%09%09%09%5Fv1%20%3D%20element%3B%0A%09%09%09%09%5Fv1%2Ex%20%2A%3D%20%5FcanvasWidthHalf%3B%20%5Fv1%2Ey%20%2A%3D%20%5FcanvasHeightHalf%3B%0A%0A%09%09%09%09renderSprite%28%20%5Fv1%2C%20element%2C%20material%20%29%3B%0A%0A%09%09%09%7D%20else%20if%20%28%20element%20instanceof%20THREE%2ERenderableLine%20%29%20%7B%0A%0A%09%09%09%09%5Fv1%20%3D%20element%2Ev1%3B%20%5Fv2%20%3D%20element%2Ev2%3B%0A%0A%09%09%09%09%5Fv1%2EpositionScreen%2Ex%20%2A%3D%20%5FcanvasWidthHalf%3B%20%5Fv1%2EpositionScreen%2Ey%20%2A%3D%20%5FcanvasHeightHalf%3B%0A%09%09%09%09%5Fv2%2EpositionScreen%2Ex%20%2A%3D%20%5FcanvasWidthHalf%3B%20%5Fv2%2EpositionScreen%2Ey%20%2A%3D%20%5FcanvasHeightHalf%3B%0A%0A%09%09%09%09%5FelemBox%2EsetFromPoints%28%20%5B%0A%09%09%09%09%09%5Fv1%2EpositionScreen%2C%0A%09%09%09%09%09%5Fv2%2EpositionScreen%0A%09%09%09%09%5D%20%29%3B%0A%0A%09%09%09%09if%20%28%20%5FclipBox%2EisIntersectionBox%28%20%5FelemBox%20%29%20%3D%3D%3D%20true%20%29%20%7B%0A%0A%09%09%09%09%09renderLine%28%20%5Fv1%2C%20%5Fv2%2C%20element%2C%20material%20%29%3B%0A%0A%09%09%09%09%7D%0A%0A%09%09%09%7D%20else%20if%20%28%20element%20instanceof%20THREE%2ERenderableFace%20%29%20%7B%0A%0A%09%09%09%09%5Fv1%20%3D%20element%2Ev1%3B%20%5Fv2%20%3D%20element%2Ev2%3B%20%5Fv3%20%3D%20element%2Ev3%3B%0A%0A%09%09%09%09if%20%28%20%5Fv1%2EpositionScreen%2Ez%20%3C%20%2D%201%20%7C%7C%20%5Fv1%2EpositionScreen%2Ez%20%3E%201%20%29%20continue%3B%0A%09%09%09%09if%20%28%20%5Fv2%2EpositionScreen%2Ez%20%3C%20%2D%201%20%7C%7C%20%5Fv2%2EpositionScreen%2Ez%20%3E%201%20%29%20continue%3B%0A%09%09%09%09if%20%28%20%5Fv3%2EpositionScreen%2Ez%20%3C%20%2D%201%20%7C%7C%20%5Fv3%2EpositionScreen%2Ez%20%3E%201%20%29%20continue%3B%0A%0A%09%09%09%09%5Fv1%2EpositionScreen%2Ex%20%2A%3D%20%5FcanvasWidthHalf%3B%20%5Fv1%2EpositionScreen%2Ey%20%2A%3D%20%5FcanvasHeightHalf%3B%0A%09%09%09%09%5Fv2%2EpositionScreen%2Ex%20%2A%3D%20%5FcanvasWidthHalf%3B%20%5Fv2%2EpositionScreen%2Ey%20%2A%3D%20%5FcanvasHeightHalf%3B%0A%09%09%09%09%5Fv3%2EpositionScreen%2Ex%20%2A%3D%20%5FcanvasWidthHalf%3B%20%5Fv3%2EpositionScreen%2Ey%20%2A%3D%20%5FcanvasHeightHalf%3B%0A%0A%09%09%09%09if%20%28%20material%2Eoverdraw%20%3E%200%20%29%20%7B%0A%0A%09%09%09%09%09expand%28%20%5Fv1%2EpositionScreen%2C%20%5Fv2%2EpositionScreen%2C%20material%2Eoverdraw%20%29%3B%0A%09%09%09%09%09expand%28%20%5Fv2%2EpositionScreen%2C%20%5Fv3%2EpositionScreen%2C%20material%2Eoverdraw%20%29%3B%0A%09%09%09%09%09expand%28%20%5Fv3%2EpositionScreen%2C%20%5Fv1%2EpositionScreen%2C%20material%2Eoverdraw%20%29%3B%0A%0A%09%09%09%09%7D%0A%0A%09%09%09%09%5FelemBox%2EsetFromPoints%28%20%5B%0A%09%09%09%09%09%5Fv1%2EpositionScreen%2C%0A%09%09%09%09%09%5Fv2%2EpositionScreen%2C%0A%09%09%09%09%09%5Fv3%2EpositionScreen%0A%09%09%09%09%5D%20%29%3B%0A%0A%09%09%09%09if%20%28%20%5FclipBox%2EisIntersectionBox%28%20%5FelemBox%20%29%20%3D%3D%3D%20true%20%29%20%7B%0A%0A%09%09%09%09%09renderFace3%28%20%5Fv1%2C%20%5Fv2%2C%20%5Fv3%2C%200%2C%201%2C%202%2C%20element%2C%20material%20%29%3B%0A%0A%09%09%09%09%7D%0A%0A%09%09%09%7D%0A%0A%09%09%09%2F%2A%20DEBUG%0A%09%09%09setLineWidth%28%201%20%29%3B%0A%09%09%09setStrokeStyle%28%20%27rgba%28%200%2C%20255%2C%200%2C%200%2E5%20%29%27%20%29%3B%0A%09%09%09%5Fcontext%2EstrokeRect%28%20%5FelemBox%2Emin%2Ex%2C%20%5FelemBox%2Emin%2Ey%2C%20%5FelemBox%2Emax%2Ex%20%2D%20%5FelemBox%2Emin%2Ex%2C%20%5FelemBox%2Emax%2Ey%20%2D%20%5FelemBox%2Emin%2Ey%20%29%3B%0A%09%09%09%2A%2F%0A%0A%09%09%09%5FclearBox%2Eunion%28%20%5FelemBox%20%29%3B%0A%0A%09%09%7D%0A%0A%09%09%2F%2A%20DEBUG%0A%09%09setLineWidth%28%201%20%29%3B%0A%09%09setStrokeStyle%28%20%27rgba%28%20255%2C%200%2C%200%2C%200%2E5%20%29%27%20%29%3B%0A%09%09%5Fcontext%2EstrokeRect%28%20%5FclearBox%2Emin%2Ex%2C%20%5FclearBox%2Emin%2Ey%2C%20%5FclearBox%2Emax%2Ex%20%2D%20%5FclearBox%2Emin%2Ex%2C%20%5FclearBox%2Emax%2Ey%20%2D%20%5FclearBox%2Emin%2Ey%20%29%3B%0A%09%09%2A%2F%0A%0A%09%09%5Fcontext%2EsetTransform%28%201%2C%200%2C%200%2C%201%2C%200%2C%200%20%29%3B%0A%0A%09%7D%3B%0A%0A%09%2F%2F%0A%0A%09function%20calculateLights%28%29%20%7B%0A%0A%09%09%5FambientLight%2EsetRGB%28%200%2C%200%2C%200%20%29%3B%0A%09%09%5FdirectionalLights%2EsetRGB%28%200%2C%200%2C%200%20%29%3B%0A%09%09%5FpointLights%2EsetRGB%28%200%2C%200%2C%200%20%29%3B%0A%0A%09%09for%20%28%20var%20l%20%3D%200%2C%20ll%20%3D%20%5Flights%2Elength%3B%20l%20%3C%20ll%3B%20l%20%2B%2B%20%29%20%7B%0A%0A%09%09%09var%20light%20%3D%20%5Flights%5B%20l%20%5D%3B%0A%09%09%09var%20lightColor%20%3D%20light%2Ecolor%3B%0A%0A%09%09%09if%20%28%20light%20instanceof%20THREE%2EAmbientLight%20%29%20%7B%0A%0A%09%09%09%09%5FambientLight%2Eadd%28%20lightColor%20%29%3B%0A%0A%09%09%09%7D%20else%20if%20%28%20light%20instanceof%20THREE%2EDirectionalLight%20%29%20%7B%0A%0A%09%09%09%09%2F%2F%20for%20sprites%0A%0A%09%09%09%09%5FdirectionalLights%2Eadd%28%20lightColor%20%29%3B%0A%0A%09%09%09%7D%20else%20if%20%28%20light%20instanceof%20THREE%2EPointLight%20%29%20%7B%0A%0A%09%09%09%09%2F%2F%20for%20sprites%0A%0A%09%09%09%09%5FpointLights%2Eadd%28%20lightColor%20%29%3B%0A%0A%09%09%09%7D%0A%0A%09%09%7D%0A%0A%09%7D%0A%0A%09function%20calculateLight%28%20position%2C%20normal%2C%20color%20%29%20%7B%0A%0A%09%09for%20%28%20var%20l%20%3D%200%2C%20ll%20%3D%20%5Flights%2Elength%3B%20l%20%3C%20ll%3B%20l%20%2B%2B%20%29%20%7B%0A%0A%09%09%09var%20light%20%3D%20%5Flights%5B%20l%20%5D%3B%0A%0A%09%09%09%5FlightColor%2Ecopy%28%20light%2Ecolor%20%29%3B%0A%0A%09%09%09if%20%28%20light%20instanceof%20THREE%2EDirectionalLight%20%29%20%7B%0A%0A%09%09%09%09var%20lightPosition%20%3D%20%5Fvector3%2EsetFromMatrixPosition%28%20light%2EmatrixWorld%20%29%2Enormalize%28%29%3B%0A%0A%09%09%09%09var%20amount%20%3D%20normal%2Edot%28%20lightPosition%20%29%3B%0A%0A%09%09%09%09if%20%28%20amount%20%3C%3D%200%20%29%20continue%3B%0A%0A%09%09%09%09amount%20%2A%3D%20light%2Eintensity%3B%0A%0A%09%09%09%09color%2Eadd%28%20%5FlightColor%2EmultiplyScalar%28%20amount%20%29%20%29%3B%0A%0A%09%09%09%7D%20else%20if%20%28%20light%20instanceof%20THREE%2EPointLight%20%29%20%7B%0A%0A%09%09%09%09var%20lightPosition%20%3D%20%5Fvector3%2EsetFromMatrixPosition%28%20light%2EmatrixWorld%20%29%3B%0A%0A%09%09%09%09var%20amount%20%3D%20normal%2Edot%28%20%5Fvector3%2EsubVectors%28%20lightPosition%2C%20position%20%29%2Enormalize%28%29%20%29%3B%0A%0A%09%09%09%09if%20%28%20amount%20%3C%3D%200%20%29%20continue%3B%0A%0A%09%09%09%09amount%20%2A%3D%20light%2Edistance%20%3D%3D%200%20%3F%201%20%3A%201%20%2D%20Math%2Emin%28%20position%2EdistanceTo%28%20lightPosition%20%29%20%2F%20light%2Edistance%2C%201%20%29%3B%0A%0A%09%09%09%09if%20%28%20amount%20%3D%3D%200%20%29%20continue%3B%0A%0A%09%09%09%09amount%20%2A%3D%20light%2Eintensity%3B%0A%0A%09%09%09%09color%2Eadd%28%20%5FlightColor%2EmultiplyScalar%28%20amount%20%29%20%29%3B%0A%0A%09%09%09%7D%0A%0A%09%09%7D%0A%0A%09%7D%0A%0A%09function%20renderSprite%28%20v1%2C%20element%2C%20material%20%29%20%7B%0A%0A%09%09setOpacity%28%20material%2Eopacity%20%29%3B%0A%09%09setBlending%28%20material%2Eblending%20%29%3B%0A%0A%09%09var%20scaleX%20%3D%20element%2Escale%2Ex%20%2A%20%5FcanvasWidthHalf%3B%0A%09%09var%20scaleY%20%3D%20element%2Escale%2Ey%20%2A%20%5FcanvasHeightHalf%3B%0A%0A%09%09var%20dist%20%3D%200%2E5%20%2A%20Math%2Esqrt%28%20scaleX%20%2A%20scaleX%20%2B%20scaleY%20%2A%20scaleY%20%29%3B%20%2F%2F%20allow%20for%20rotated%20sprite%0A%09%09%5FelemBox%2Emin%2Eset%28%20v1%2Ex%20%2D%20dist%2C%20v1%2Ey%20%2D%20dist%20%29%3B%0A%09%09%5FelemBox%2Emax%2Eset%28%20v1%2Ex%20%2B%20dist%2C%20v1%2Ey%20%2B%20dist%20%29%3B%0A%0A%09%09if%20%28%20material%20instanceof%20THREE%2ESpriteMaterial%20%29%20%7B%0A%0A%09%09%09var%20texture%20%3D%20material%2Emap%3B%0A%0A%09%09%09if%20%28%20texture%20%21%3D%3D%20null%20%26%26%20texture%2Eimage%20%21%3D%3D%20undefined%20%29%20%7B%0A%0A%09%09%09%09if%20%28%20texture%2EhasEventListener%28%20%27update%27%2C%20onTextureUpdate%20%29%20%3D%3D%3D%20false%20%29%20%7B%0A%0A%09%09%09%09%09if%20%28%20texture%2Eimage%2Ewidth%20%3E%200%20%29%20%7B%0A%0A%09%09%09%09%09%09textureToPattern%28%20texture%20%29%3B%0A%0A%09%09%09%09%09%7D%0A%0A%09%09%09%09%09texture%2EaddEventListener%28%20%27update%27%2C%20onTextureUpdate%20%29%3B%0A%0A%09%09%09%09%7D%0A%0A%09%09%09%09var%20pattern%20%3D%20%5Fpatterns%5B%20texture%2Eid%20%5D%3B%0A%0A%09%09%09%09if%20%28%20pattern%20%21%3D%3D%20undefined%20%29%20%7B%0A%0A%09%09%09%09%09setFillStyle%28%20pattern%20%29%3B%0A%0A%09%09%09%09%7D%20else%20%7B%0A%0A%09%09%09%09%09setFillStyle%28%20%27rgba%28%200%2C%200%2C%200%2C%201%20%29%27%20%29%3B%0A%0A%09%09%09%09%7D%0A%0A%09%09%09%09%2F%2F%0A%0A%09%09%09%09var%20bitmap%20%3D%20texture%2Eimage%3B%0A%0A%09%09%09%09var%20ox%20%3D%20bitmap%2Ewidth%20%2A%20texture%2Eoffset%2Ex%3B%0A%09%09%09%09var%20oy%20%3D%20bitmap%2Eheight%20%2A%20texture%2Eoffset%2Ey%3B%0A%0A%09%09%09%09var%20sx%20%3D%20bitmap%2Ewidth%20%2A%20texture%2Erepeat%2Ex%3B%0A%09%09%09%09var%20sy%20%3D%20bitmap%2Eheight%20%2A%20texture%2Erepeat%2Ey%3B%0A%0A%09%09%09%09var%20cx%20%3D%20scaleX%20%2F%20sx%3B%0A%09%09%09%09var%20cy%20%3D%20scaleY%20%2F%20sy%3B%0A%0A%09%09%09%09%5Fcontext%2Esave%28%29%3B%0A%09%09%09%09%5Fcontext%2Etranslate%28%20v1%2Ex%2C%20v1%2Ey%20%29%3B%0A%09%09%09%09if%20%28%20material%2Erotation%20%21%3D%3D%200%20%29%20%5Fcontext%2Erotate%28%20material%2Erotation%20%29%3B%0A%09%09%09%09%5Fcontext%2Etranslate%28%20%2D%20scaleX%20%2F%202%2C%20%2D%20scaleY%20%2F%202%20%29%3B%0A%09%09%09%09%5Fcontext%2Escale%28%20cx%2C%20cy%20%29%3B%0A%09%09%09%09%5Fcontext%2Etranslate%28%20%2D%20ox%2C%20%2D%20oy%20%29%3B%0A%09%09%09%09%5Fcontext%2EfillRect%28%20ox%2C%20oy%2C%20sx%2C%20sy%20%29%3B%0A%09%09%09%09%5Fcontext%2Erestore%28%29%3B%0A%0A%09%09%09%7D%20else%20%7B%0A%0A%09%09%09%09%2F%2F%20no%20texture%0A%0A%09%09%09%09setFillStyle%28%20material%2Ecolor%2EgetStyle%28%29%20%29%3B%0A%0A%09%09%09%09%5Fcontext%2Esave%28%29%3B%0A%09%09%09%09%5Fcontext%2Etranslate%28%20v1%2Ex%2C%20v1%2Ey%20%29%3B%0A%09%09%09%09if%20%28%20material%2Erotation%20%21%3D%3D%200%20%29%20%5Fcontext%2Erotate%28%20material%2Erotation%20%29%3B%0A%09%09%09%09%5Fcontext%2Escale%28%20scaleX%2C%20%2D%20scaleY%20%29%3B%0A%09%09%09%09%5Fcontext%2EfillRect%28%20%2D%200%2E5%2C%20%2D%200%2E5%2C%201%2C%201%20%29%3B%0A%09%09%09%09%5Fcontext%2Erestore%28%29%3B%0A%0A%09%09%09%7D%0A%0A%09%09%7D%20else%20if%20%28%20material%20instanceof%20THREE%2ESpriteCanvasMaterial%20%29%20%7B%0A%0A%09%09%09setStrokeStyle%28%20material%2Ecolor%2EgetStyle%28%29%20%29%3B%0A%09%09%09setFillStyle%28%20material%2Ecolor%2EgetStyle%28%29%20%29%3B%0A%0A%09%09%09%5Fcontext%2Esave%28%29%3B%0A%09%09%09%5Fcontext%2Etranslate%28%20v1%2Ex%2C%20v1%2Ey%20%29%3B%0A%09%09%09if%20%28%20material%2Erotation%20%21%3D%3D%200%20%29%20%5Fcontext%2Erotate%28%20material%2Erotation%20%29%3B%0A%09%09%09%5Fcontext%2Escale%28%20scaleX%2C%20scaleY%20%29%3B%0A%0A%09%09%09material%2Eprogram%28%20%5Fcontext%20%29%3B%0A%0A%09%09%09%5Fcontext%2Erestore%28%29%3B%0A%0A%09%09%7D%0A%0A%09%09%2F%2A%20DEBUG%0A%09%09setStrokeStyle%28%20%27rgb%28255%2C255%2C0%29%27%20%29%3B%0A%09%09%5Fcontext%2EbeginPath%28%29%3B%0A%09%09%5Fcontext%2EmoveTo%28%20v1%2Ex%20%2D%2010%2C%20v1%2Ey%20%29%3B%0A%09%09%5Fcontext%2ElineTo%28%20v1%2Ex%20%2B%2010%2C%20v1%2Ey%20%29%3B%0A%09%09%5Fcontext%2EmoveTo%28%20v1%2Ex%2C%20v1%2Ey%20%2D%2010%20%29%3B%0A%09%09%5Fcontext%2ElineTo%28%20v1%2Ex%2C%20v1%2Ey%20%2B%2010%20%29%3B%0A%09%09%5Fcontext%2Estroke%28%29%3B%0A%09%09%2A%2F%0A%0A%09%7D%0A%0A%09function%20renderLine%28%20v1%2C%20v2%2C%20element%2C%20material%20%29%20%7B%0A%0A%09%09setOpacity%28%20material%2Eopacity%20%29%3B%0A%09%09setBlending%28%20material%2Eblending%20%29%3B%0A%0A%09%09%5Fcontext%2EbeginPath%28%29%3B%0A%09%09%5Fcontext%2EmoveTo%28%20v1%2EpositionScreen%2Ex%2C%20v1%2EpositionScreen%2Ey%20%29%3B%0A%09%09%5Fcontext%2ElineTo%28%20v2%2EpositionScreen%2Ex%2C%20v2%2EpositionScreen%2Ey%20%29%3B%0A%0A%09%09if%20%28%20material%20instanceof%20THREE%2ELineBasicMaterial%20%29%20%7B%0A%0A%09%09%09setLineWidth%28%20material%2Elinewidth%20%29%3B%0A%09%09%09setLineCap%28%20material%2Elinecap%20%29%3B%0A%09%09%09setLineJoin%28%20material%2Elinejoin%20%29%3B%0A%0A%09%09%09if%20%28%20material%2EvertexColors%20%21%3D%3D%20THREE%2EVertexColors%20%29%20%7B%0A%0A%09%09%09%09setStrokeStyle%28%20material%2Ecolor%2EgetStyle%28%29%20%29%3B%0A%0A%09%09%09%7D%20else%20%7B%0A%0A%09%09%09%09var%20colorStyle1%20%3D%20element%2EvertexColors%5B%200%20%5D%2EgetStyle%28%29%3B%0A%09%09%09%09var%20colorStyle2%20%3D%20element%2EvertexColors%5B%201%20%5D%2EgetStyle%28%29%3B%0A%0A%09%09%09%09if%20%28%20colorStyle1%20%3D%3D%3D%20colorStyle2%20%29%20%7B%0A%0A%09%09%09%09%09setStrokeStyle%28%20colorStyle1%20%29%3B%0A%0A%09%09%09%09%7D%20else%20%7B%0A%0A%09%09%09%09%09try%20%7B%0A%0A%09%09%09%09%09%09var%20grad%20%3D%20%5Fcontext%2EcreateLinearGradient%28%0A%09%09%09%09%09%09%09v1%2EpositionScreen%2Ex%2C%0A%09%09%09%09%09%09%09v1%2EpositionScreen%2Ey%2C%0A%09%09%09%09%09%09%09v2%2EpositionScreen%2Ex%2C%0A%09%09%09%09%09%09%09v2%2EpositionScreen%2Ey%0A%09%09%09%09%09%09%29%3B%0A%09%09%09%09%09%09grad%2EaddColorStop%28%200%2C%20colorStyle1%20%29%3B%0A%09%09%09%09%09%09grad%2EaddColorStop%28%201%2C%20colorStyle2%20%29%3B%0A%0A%09%09%09%09%09%7D%20catch%20%28%20exception%20%29%20%7B%0A%0A%09%09%09%09%09%09grad%20%3D%20colorStyle1%3B%0A%0A%09%09%09%09%09%7D%0A%0A%09%09%09%09%09setStrokeStyle%28%20grad%20%29%3B%0A%0A%09%09%09%09%7D%0A%0A%09%09%09%7D%0A%0A%09%09%09%5Fcontext%2Estroke%28%29%3B%0A%09%09%09%5FelemBox%2EexpandByScalar%28%20material%2Elinewidth%20%2A%202%20%29%3B%0A%0A%09%09%7D%20else%20if%20%28%20material%20instanceof%20THREE%2ELineDashedMaterial%20%29%20%7B%0A%0A%09%09%09setLineWidth%28%20material%2Elinewidth%20%29%3B%0A%09%09%09setLineCap%28%20material%2Elinecap%20%29%3B%0A%09%09%09setLineJoin%28%20material%2Elinejoin%20%29%3B%0A%09%09%09setStrokeStyle%28%20material%2Ecolor%2EgetStyle%28%29%20%29%3B%0A%09%09%09setLineDash%28%20%5B%20material%2EdashSize%2C%20material%2EgapSize%20%5D%20%29%3B%0A%0A%09%09%09%5Fcontext%2Estroke%28%29%3B%0A%0A%09%09%09%5FelemBox%2EexpandByScalar%28%20material%2Elinewidth%20%2A%202%20%29%3B%0A%0A%09%09%09setLineDash%28%20%5B%5D%20%29%3B%0A%0A%09%09%7D%0A%0A%09%7D%0A%0A%09function%20renderFace3%28%20v1%2C%20v2%2C%20v3%2C%20uv1%2C%20uv2%2C%20uv3%2C%20element%2C%20material%20%29%20%7B%0A%0A%09%09%5Fthis%2Einfo%2Erender%2Evertices%20%2B%3D%203%3B%0A%09%09%5Fthis%2Einfo%2Erender%2Efaces%20%2B%2B%3B%0A%0A%09%09setOpacity%28%20material%2Eopacity%20%29%3B%0A%09%09setBlending%28%20material%2Eblending%20%29%3B%0A%0A%09%09%5Fv1x%20%3D%20v1%2EpositionScreen%2Ex%3B%20%5Fv1y%20%3D%20v1%2EpositionScreen%2Ey%3B%0A%09%09%5Fv2x%20%3D%20v2%2EpositionScreen%2Ex%3B%20%5Fv2y%20%3D%20v2%2EpositionScreen%2Ey%3B%0A%09%09%5Fv3x%20%3D%20v3%2EpositionScreen%2Ex%3B%20%5Fv3y%20%3D%20v3%2EpositionScreen%2Ey%3B%0A%0A%09%09drawTriangle%28%20%5Fv1x%2C%20%5Fv1y%2C%20%5Fv2x%2C%20%5Fv2y%2C%20%5Fv3x%2C%20%5Fv3y%20%29%3B%0A%0A%09%09if%20%28%20%28%20material%20instanceof%20THREE%2EMeshLambertMaterial%20%7C%7C%20material%20instanceof%20THREE%2EMeshPhongMaterial%20%29%20%26%26%20material%2Emap%20%3D%3D%3D%20null%20%29%20%7B%0A%0A%09%09%09%5FdiffuseColor%2Ecopy%28%20material%2Ecolor%20%29%3B%0A%09%09%09%5FemissiveColor%2Ecopy%28%20material%2Eemissive%20%29%3B%0A%0A%09%09%09if%20%28%20material%2EvertexColors%20%3D%3D%3D%20THREE%2EFaceColors%20%29%20%7B%0A%0A%09%09%09%09%5FdiffuseColor%2Emultiply%28%20element%2Ecolor%20%29%3B%0A%0A%09%09%09%7D%0A%0A%09%09%09%5Fcolor%2Ecopy%28%20%5FambientLight%20%29%3B%0A%0A%09%09%09%5Fcentroid%2Ecopy%28%20v1%2EpositionWorld%20%29%2Eadd%28%20v2%2EpositionWorld%20%29%2Eadd%28%20v3%2EpositionWorld%20%29%2EdivideScalar%28%203%20%29%3B%0A%0A%09%09%09calculateLight%28%20%5Fcentroid%2C%20element%2EnormalModel%2C%20%5Fcolor%20%29%3B%0A%0A%09%09%09%5Fcolor%2Emultiply%28%20%5FdiffuseColor%20%29%2Eadd%28%20%5FemissiveColor%20%29%3B%0A%0A%09%09%09material%2Ewireframe%20%3D%3D%3D%20true%0A%09%09%09%09%20%3F%20strokePath%28%20%5Fcolor%2C%20material%2EwireframeLinewidth%2C%20material%2EwireframeLinecap%2C%20material%2EwireframeLinejoin%20%29%0A%09%09%09%09%20%3A%20fillPath%28%20%5Fcolor%20%29%3B%0A%0A%09%09%7D%20else%20if%20%28%20material%20instanceof%20THREE%2EMeshBasicMaterial%20%7C%7C%0A%09%09%09%09%20%20%20%20material%20instanceof%20THREE%2EMeshLambertMaterial%20%7C%7C%0A%09%09%09%09%20%20%20%20material%20instanceof%20THREE%2EMeshPhongMaterial%20%29%20%7B%0A%0A%09%09%09if%20%28%20material%2Emap%20%21%3D%3D%20null%20%29%20%7B%0A%0A%09%09%09%09var%20mapping%20%3D%20material%2Emap%2Emapping%3B%0A%0A%09%09%09%09if%20%28%20mapping%20%3D%3D%3D%20THREE%2EUVMapping%20%29%20%7B%0A%0A%09%09%09%09%09%5Fuvs%20%3D%20element%2Euvs%3B%0A%09%09%09%09%09patternPath%28%20%5Fv1x%2C%20%5Fv1y%2C%20%5Fv2x%2C%20%5Fv2y%2C%20%5Fv3x%2C%20%5Fv3y%2C%20%5Fuvs%5B%20uv1%20%5D%2Ex%2C%20%5Fuvs%5B%20uv1%20%5D%2Ey%2C%20%5Fuvs%5B%20uv2%20%5D%2Ex%2C%20%5Fuvs%5B%20uv2%20%5D%2Ey%2C%20%5Fuvs%5B%20uv3%20%5D%2Ex%2C%20%5Fuvs%5B%20uv3%20%5D%2Ey%2C%20material%2Emap%20%29%3B%0A%0A%09%09%09%09%7D%0A%0A%09%09%09%7D%20else%20if%20%28%20material%2EenvMap%20%21%3D%3D%20null%20%29%20%7B%0A%0A%09%09%09%09if%20%28%20material%2EenvMap%2Emapping%20%3D%3D%3D%20THREE%2ESphericalReflectionMapping%20%29%20%7B%0A%0A%09%09%09%09%09%5Fnormal%2Ecopy%28%20element%2EvertexNormalsModel%5B%20uv1%20%5D%20%29%2EapplyMatrix3%28%20%5FnormalViewMatrix%20%29%3B%0A%09%09%09%09%09%5Fuv1x%20%3D%200%2E5%20%2A%20%5Fnormal%2Ex%20%2B%200%2E5%3B%0A%09%09%09%09%09%5Fuv1y%20%3D%200%2E5%20%2A%20%5Fnormal%2Ey%20%2B%200%2E5%3B%0A%0A%09%09%09%09%09%5Fnormal%2Ecopy%28%20element%2EvertexNormalsModel%5B%20uv2%20%5D%20%29%2EapplyMatrix3%28%20%5FnormalViewMatrix%20%29%3B%0A%09%09%09%09%09%5Fuv2x%20%3D%200%2E5%20%2A%20%5Fnormal%2Ex%20%2B%200%2E5%3B%0A%09%09%09%09%09%5Fuv2y%20%3D%200%2E5%20%2A%20%5Fnormal%2Ey%20%2B%200%2E5%3B%0A%0A%09%09%09%09%09%5Fnormal%2Ecopy%28%20element%2EvertexNormalsModel%5B%20uv3%20%5D%20%29%2EapplyMatrix3%28%20%5FnormalViewMatrix%20%29%3B%0A%09%09%09%09%09%5Fuv3x%20%3D%200%2E5%20%2A%20%5Fnormal%2Ex%20%2B%200%2E5%3B%0A%09%09%09%09%09%5Fuv3y%20%3D%200%2E5%20%2A%20%5Fnormal%2Ey%20%2B%200%2E5%3B%0A%0A%09%09%09%09%09patternPath%28%20%5Fv1x%2C%20%5Fv1y%2C%20%5Fv2x%2C%20%5Fv2y%2C%20%5Fv3x%2C%20%5Fv3y%2C%20%5Fuv1x%2C%20%5Fuv1y%2C%20%5Fuv2x%2C%20%5Fuv2y%2C%20%5Fuv3x%2C%20%5Fuv3y%2C%20material%2EenvMap%20%29%3B%0A%0A%09%09%09%09%7D%0A%0A%09%09%09%7D%20else%20%7B%0A%0A%09%09%09%09%5Fcolor%2Ecopy%28%20material%2Ecolor%20%29%3B%0A%0A%09%09%09%09if%20%28%20material%2EvertexColors%20%3D%3D%3D%20THREE%2EFaceColors%20%29%20%7B%0A%0A%09%09%09%09%09%5Fcolor%2Emultiply%28%20element%2Ecolor%20%29%3B%0A%0A%09%09%09%09%7D%0A%0A%09%09%09%09material%2Ewireframe%20%3D%3D%3D%20true%0A%09%09%09%09%09%20%3F%20strokePath%28%20%5Fcolor%2C%20material%2EwireframeLinewidth%2C%20material%2EwireframeLinecap%2C%20material%2EwireframeLinejoin%20%29%0A%09%09%09%09%09%20%3A%20fillPath%28%20%5Fcolor%20%29%3B%0A%0A%09%09%09%7D%0A%0A%09%09%7D%20else%20if%20%28%20material%20instanceof%20THREE%2EMeshDepthMaterial%20%29%20%7B%0A%0A%09%09%09%5Fcolor%2Er%20%3D%20%5Fcolor%2Eg%20%3D%20%5Fcolor%2Eb%20%3D%201%20%2D%20smoothstep%28%20v1%2EpositionScreen%2Ez%20%2A%20v1%2EpositionScreen%2Ew%2C%20%5Fcamera%2Enear%2C%20%5Fcamera%2Efar%20%29%3B%0A%0A%09%09%09material%2Ewireframe%20%3D%3D%3D%20true%0A%09%09%09%09%09%20%3F%20strokePath%28%20%5Fcolor%2C%20material%2EwireframeLinewidth%2C%20material%2EwireframeLinecap%2C%20material%2EwireframeLinejoin%20%29%0A%09%09%09%09%09%20%3A%20fillPath%28%20%5Fcolor%20%29%3B%0A%0A%09%09%7D%20else%20if%20%28%20material%20instanceof%20THREE%2EMeshNormalMaterial%20%29%20%7B%0A%0A%09%09%09%5Fnormal%2Ecopy%28%20element%2EnormalModel%20%29%2EapplyMatrix3%28%20%5FnormalViewMatrix%20%29%3B%0A%0A%09%09%09%5Fcolor%2EsetRGB%28%20%5Fnormal%2Ex%2C%20%5Fnormal%2Ey%2C%20%5Fnormal%2Ez%20%29%2EmultiplyScalar%28%200%2E5%20%29%2EaddScalar%28%200%2E5%20%29%3B%0A%0A%09%09%09material%2Ewireframe%20%3D%3D%3D%20true%0A%09%09%09%09%20%3F%20strokePath%28%20%5Fcolor%2C%20material%2EwireframeLinewidth%2C%20material%2EwireframeLinecap%2C%20material%2EwireframeLinejoin%20%29%0A%09%09%09%09%20%3A%20fillPath%28%20%5Fcolor%20%29%3B%0A%0A%09%09%7D%20else%20%7B%0A%0A%09%09%09%5Fcolor%2EsetRGB%28%201%2C%201%2C%201%20%29%3B%0A%0A%09%09%09material%2Ewireframe%20%3D%3D%3D%20true%0A%09%09%09%09%20%3F%20strokePath%28%20%5Fcolor%2C%20material%2EwireframeLinewidth%2C%20material%2EwireframeLinecap%2C%20material%2EwireframeLinejoin%20%29%0A%09%09%09%09%20%3A%20fillPath%28%20%5Fcolor%20%29%3B%0A%0A%09%09%7D%0A%0A%09%7D%0A%0A%09%2F%2F%0A%0A%09function%20drawTriangle%28%20x0%2C%20y0%2C%20x1%2C%20y1%2C%20x2%2C%20y2%20%29%20%7B%0A%0A%09%09%5Fcontext%2EbeginPath%28%29%3B%0A%09%09%5Fcontext%2EmoveTo%28%20x0%2C%20y0%20%29%3B%0A%09%09%5Fcontext%2ElineTo%28%20x1%2C%20y1%20%29%3B%0A%09%09%5Fcontext%2ElineTo%28%20x2%2C%20y2%20%29%3B%0A%09%09%5Fcontext%2EclosePath%28%29%3B%0A%0A%09%7D%0A%0A%09function%20strokePath%28%20color%2C%20linewidth%2C%20linecap%2C%20linejoin%20%29%20%7B%0A%0A%09%09setLineWidth%28%20linewidth%20%29%3B%0A%09%09setLineCap%28%20linecap%20%29%3B%0A%09%09setLineJoin%28%20linejoin%20%29%3B%0A%09%09setStrokeStyle%28%20color%2EgetStyle%28%29%20%29%3B%0A%0A%09%09%5Fcontext%2Estroke%28%29%3B%0A%0A%09%09%5FelemBox%2EexpandByScalar%28%20linewidth%20%2A%202%20%29%3B%0A%0A%09%7D%0A%0A%09function%20fillPath%28%20color%20%29%20%7B%0A%0A%09%09setFillStyle%28%20color%2EgetStyle%28%29%20%29%3B%0A%09%09%5Fcontext%2Efill%28%29%3B%0A%0A%09%7D%0A%0A%09function%20onTextureUpdate%20%28%20event%20%29%20%7B%0A%0A%09%09textureToPattern%28%20event%2Etarget%20%29%3B%0A%0A%09%7D%0A%0A%09function%20textureToPattern%28%20texture%20%29%20%7B%0A%0A%09%09if%20%28%20texture%20instanceof%20THREE%2ECompressedTexture%20%29%20return%3B%0A%0A%09%09var%20repeatX%20%3D%20texture%2EwrapS%20%3D%3D%3D%20THREE%2ERepeatWrapping%3B%0A%09%09var%20repeatY%20%3D%20texture%2EwrapT%20%3D%3D%3D%20THREE%2ERepeatWrapping%3B%0A%0A%09%09var%20image%20%3D%20texture%2Eimage%3B%0A%0A%09%09var%20canvas%20%3D%20document%2EcreateElement%28%20%27canvas%27%20%29%3B%0A%09%09canvas%2Ewidth%20%3D%20image%2Ewidth%3B%0A%09%09canvas%2Eheight%20%3D%20image%2Eheight%3B%0A%0A%09%09var%20context%20%3D%20canvas%2EgetContext%28%20%272d%27%20%29%3B%0A%09%09context%2EsetTransform%28%201%2C%200%2C%200%2C%20%2D%201%2C%200%2C%20image%2Eheight%20%29%3B%0A%09%09context%2EdrawImage%28%20image%2C%200%2C%200%20%29%3B%0A%0A%09%09%5Fpatterns%5B%20texture%2Eid%20%5D%20%3D%20%5Fcontext%2EcreatePattern%28%0A%09%09%09canvas%2C%20repeatX%20%3D%3D%3D%20true%20%26%26%20repeatY%20%3D%3D%3D%20true%0A%09%09%09%09%20%3F%20%27repeat%27%0A%09%09%09%09%20%3A%20repeatX%20%3D%3D%3D%20true%20%26%26%20repeatY%20%3D%3D%3D%20false%0A%09%09%09%09%09%20%3F%20%27repeat%2Dx%27%0A%09%09%09%09%09%20%3A%20repeatX%20%3D%3D%3D%20false%20%26%26%20repeatY%20%3D%3D%3D%20true%0A%09%09%09%09%09%09%20%3F%20%27repeat%2Dy%27%0A%09%09%09%09%09%09%20%3A%20%27no%2Drepeat%27%0A%09%09%29%3B%0A%0A%09%7D%0A%0A%09function%20patternPath%28%20x0%2C%20y0%2C%20x1%2C%20y1%2C%20x2%2C%20y2%2C%20u0%2C%20v0%2C%20u1%2C%20v1%2C%20u2%2C%20v2%2C%20texture%20%29%20%7B%0A%0A%09%09if%20%28%20texture%20instanceof%20THREE%2EDataTexture%20%29%20return%3B%0A%0A%09%09if%20%28%20texture%2EhasEventListener%28%20%27update%27%2C%20onTextureUpdate%20%29%20%3D%3D%3D%20false%20%29%20%7B%0A%0A%09%09%09if%20%28%20texture%2Eimage%20%21%3D%3D%20undefined%20%26%26%20texture%2Eimage%2Ewidth%20%3E%200%20%29%20%7B%0A%0A%09%09%09%09textureToPattern%28%20texture%20%29%3B%0A%0A%09%09%09%7D%0A%0A%09%09%09texture%2EaddEventListener%28%20%27update%27%2C%20onTextureUpdate%20%29%3B%0A%0A%09%09%7D%0A%0A%09%09var%20pattern%20%3D%20%5Fpatterns%5B%20texture%2Eid%20%5D%3B%0A%0A%09%09if%20%28%20pattern%20%21%3D%3D%20undefined%20%29%20%7B%0A%0A%09%09%09setFillStyle%28%20pattern%20%29%3B%0A%0A%09%09%7D%20else%20%7B%0A%0A%09%09%09setFillStyle%28%20%27rgba%280%2C0%2C0%2C1%29%27%20%29%3B%0A%09%09%09%5Fcontext%2Efill%28%29%3B%0A%0A%09%09%09return%3B%0A%0A%09%09%7D%0A%0A%09%09%2F%2F%20http%3A%2F%2Fextremelysatisfactorytotalitarianism%2Ecom%2Fblog%2F%3Fp%3D2120%0A%0A%09%09var%20a%2C%20b%2C%20c%2C%20d%2C%20e%2C%20f%2C%20det%2C%20idet%2C%0A%09%09offsetX%20%3D%20texture%2Eoffset%2Ex%20%2F%20texture%2Erepeat%2Ex%2C%0A%09%09offsetY%20%3D%20texture%2Eoffset%2Ey%20%2F%20texture%2Erepeat%2Ey%2C%0A%09%09width%20%3D%20texture%2Eimage%2Ewidth%20%2A%20texture%2Erepeat%2Ex%2C%0A%09%09height%20%3D%20texture%2Eimage%2Eheight%20%2A%20texture%2Erepeat%2Ey%3B%0A%0A%09%09u0%20%3D%20%28%20u0%20%2B%20offsetX%20%29%20%2A%20width%3B%0A%09%09v0%20%3D%20%28%20v0%20%2B%20offsetY%20%29%20%2A%20height%3B%0A%0A%09%09u1%20%3D%20%28%20u1%20%2B%20offsetX%20%29%20%2A%20width%3B%0A%09%09v1%20%3D%20%28%20v1%20%2B%20offsetY%20%29%20%2A%20height%3B%0A%0A%09%09u2%20%3D%20%28%20u2%20%2B%20offsetX%20%29%20%2A%20width%3B%0A%09%09v2%20%3D%20%28%20v2%20%2B%20offsetY%20%29%20%2A%20height%3B%0A%0A%09%09x1%20%2D%3D%20x0%3B%20y1%20%2D%3D%20y0%3B%0A%09%09x2%20%2D%3D%20x0%3B%20y2%20%2D%3D%20y0%3B%0A%0A%09%09u1%20%2D%3D%20u0%3B%20v1%20%2D%3D%20v0%3B%0A%09%09u2%20%2D%3D%20u0%3B%20v2%20%2D%3D%20v0%3B%0A%0A%09%09det%20%3D%20u1%20%2A%20v2%20%2D%20u2%20%2A%20v1%3B%0A%0A%09%09if%20%28%20det%20%3D%3D%3D%200%20%29%20return%3B%0A%0A%09%09idet%20%3D%201%20%2F%20det%3B%0A%0A%09%09a%20%3D%20%28%20v2%20%2A%20x1%20%2D%20v1%20%2A%20x2%20%29%20%2A%20idet%3B%0A%09%09b%20%3D%20%28%20v2%20%2A%20y1%20%2D%20v1%20%2A%20y2%20%29%20%2A%20idet%3B%0A%09%09c%20%3D%20%28%20u1%20%2A%20x2%20%2D%20u2%20%2A%20x1%20%29%20%2A%20idet%3B%0A%09%09d%20%3D%20%28%20u1%20%2A%20y2%20%2D%20u2%20%2A%20y1%20%29%20%2A%20idet%3B%0A%0A%09%09e%20%3D%20x0%20%2D%20a%20%2A%20u0%20%2D%20c%20%2A%20v0%3B%0A%09%09f%20%3D%20y0%20%2D%20b%20%2A%20u0%20%2D%20d%20%2A%20v0%3B%0A%0A%09%09%5Fcontext%2Esave%28%29%3B%0A%09%09%5Fcontext%2Etransform%28%20a%2C%20b%2C%20c%2C%20d%2C%20e%2C%20f%20%29%3B%0A%09%09%5Fcontext%2Efill%28%29%3B%0A%09%09%5Fcontext%2Erestore%28%29%3B%0A%0A%09%7D%0A%0A%09function%20clipImage%28%20x0%2C%20y0%2C%20x1%2C%20y1%2C%20x2%2C%20y2%2C%20u0%2C%20v0%2C%20u1%2C%20v1%2C%20u2%2C%20v2%2C%20image%20%29%20%7B%0A%0A%09%09%2F%2F%20http%3A%2F%2Fextremelysatisfactorytotalitarianism%2Ecom%2Fblog%2F%3Fp%3D2120%0A%0A%09%09var%20a%2C%20b%2C%20c%2C%20d%2C%20e%2C%20f%2C%20det%2C%20idet%2C%0A%09%09width%20%3D%20image%2Ewidth%20%2D%201%2C%0A%09%09height%20%3D%20image%2Eheight%20%2D%201%3B%0A%0A%09%09u0%20%2A%3D%20width%3B%20v0%20%2A%3D%20height%3B%0A%09%09u1%20%2A%3D%20width%3B%20v1%20%2A%3D%20height%3B%0A%09%09u2%20%2A%3D%20width%3B%20v2%20%2A%3D%20height%3B%0A%0A%09%09x1%20%2D%3D%20x0%3B%20y1%20%2D%3D%20y0%3B%0A%09%09x2%20%2D%3D%20x0%3B%20y2%20%2D%3D%20y0%3B%0A%0A%09%09u1%20%2D%3D%20u0%3B%20v1%20%2D%3D%20v0%3B%0A%09%09u2%20%2D%3D%20u0%3B%20v2%20%2D%3D%20v0%3B%0A%0A%09%09det%20%3D%20u1%20%2A%20v2%20%2D%20u2%20%2A%20v1%3B%0A%0A%09%09idet%20%3D%201%20%2F%20det%3B%0A%0A%09%09a%20%3D%20%28%20v2%20%2A%20x1%20%2D%20v1%20%2A%20x2%20%29%20%2A%20idet%3B%0A%09%09b%20%3D%20%28%20v2%20%2A%20y1%20%2D%20v1%20%2A%20y2%20%29%20%2A%20idet%3B%0A%09%09c%20%3D%20%28%20u1%20%2A%20x2%20%2D%20u2%20%2A%20x1%20%29%20%2A%20idet%3B%0A%09%09d%20%3D%20%28%20u1%20%2A%20y2%20%2D%20u2%20%2A%20y1%20%29%20%2A%20idet%3B%0A%0A%09%09e%20%3D%20x0%20%2D%20a%20%2A%20u0%20%2D%20c%20%2A%20v0%3B%0A%09%09f%20%3D%20y0%20%2D%20b%20%2A%20u0%20%2D%20d%20%2A%20v0%3B%0A%0A%09%09%5Fcontext%2Esave%28%29%3B%0A%09%09%5Fcontext%2Etransform%28%20a%2C%20b%2C%20c%2C%20d%2C%20e%2C%20f%20%29%3B%0A%09%09%5Fcontext%2Eclip%28%29%3B%0A%09%09%5Fcontext%2EdrawImage%28%20image%2C%200%2C%200%20%29%3B%0A%09%09%5Fcontext%2Erestore%28%29%3B%0A%0A%09%7D%0A%0A%09%2F%2F%20Hide%20anti%2Dalias%20gaps%0A%0A%09function%20expand%28%20v1%2C%20v2%2C%20pixels%20%29%20%7B%0A%0A%09%09var%20x%20%3D%20v2%2Ex%20%2D%20v1%2Ex%2C%20y%20%3D%20v2%2Ey%20%2D%20v1%2Ey%2C%0A%09%09det%20%3D%20x%20%2A%20x%20%2B%20y%20%2A%20y%2C%20idet%3B%0A%0A%09%09if%20%28%20det%20%3D%3D%3D%200%20%29%20return%3B%0A%0A%09%09idet%20%3D%20pixels%20%2F%20Math%2Esqrt%28%20det%20%29%3B%0A%0A%09%09x%20%2A%3D%20idet%3B%20y%20%2A%3D%20idet%3B%0A%0A%09%09v2%2Ex%20%2B%3D%20x%3B%20v2%2Ey%20%2B%3D%20y%3B%0A%09%09v1%2Ex%20%2D%3D%20x%3B%20v1%2Ey%20%2D%3D%20y%3B%0A%0A%09%7D%0A%0A%09%2F%2F%20Context%20cached%20methods%2E%0A%0A%09function%20setOpacity%28%20value%20%29%20%7B%0A%0A%09%09if%20%28%20%5FcontextGlobalAlpha%20%21%3D%3D%20value%20%29%20%7B%0A%0A%09%09%09%5Fcontext%2EglobalAlpha%20%3D%20value%3B%0A%09%09%09%5FcontextGlobalAlpha%20%3D%20value%3B%0A%0A%09%09%7D%0A%0A%09%7D%0A%0A%09function%20setBlending%28%20value%20%29%20%7B%0A%0A%09%09if%20%28%20%5FcontextGlobalCompositeOperation%20%21%3D%3D%20value%20%29%20%7B%0A%0A%09%09%09if%20%28%20value%20%3D%3D%3D%20THREE%2ENormalBlending%20%29%20%7B%0A%0A%09%09%09%09%5Fcontext%2EglobalCompositeOperation%20%3D%20%27source%2Dover%27%3B%0A%0A%09%09%09%7D%20else%20if%20%28%20value%20%3D%3D%3D%20THREE%2EAdditiveBlending%20%29%20%7B%0A%0A%09%09%09%09%5Fcontext%2EglobalCompositeOperation%20%3D%20%27lighter%27%3B%0A%0A%09%09%09%7D%20else%20if%20%28%20value%20%3D%3D%3D%20THREE%2ESubtractiveBlending%20%29%20%7B%0A%0A%09%09%09%09%5Fcontext%2EglobalCompositeOperation%20%3D%20%27darker%27%3B%0A%0A%09%09%09%7D%0A%0A%09%09%09%5FcontextGlobalCompositeOperation%20%3D%20value%3B%0A%0A%09%09%7D%0A%0A%09%7D%0A%0A%09function%20setLineWidth%28%20value%20%29%20%7B%0A%0A%09%09if%20%28%20%5FcontextLineWidth%20%21%3D%3D%20value%20%29%20%7B%0A%0A%09%09%09%5Fcontext%2ElineWidth%20%3D%20value%3B%0A%09%09%09%5FcontextLineWidth%20%3D%20value%3B%0A%0A%09%09%7D%0A%0A%09%7D%0A%0A%09function%20setLineCap%28%20value%20%29%20%7B%0A%0A%09%09%2F%2F%20%22butt%22%2C%20%22round%22%2C%20%22square%22%0A%0A%09%09if%20%28%20%5FcontextLineCap%20%21%3D%3D%20value%20%29%20%7B%0A%0A%09%09%09%5Fcontext%2ElineCap%20%3D%20value%3B%0A%09%09%09%5FcontextLineCap%20%3D%20value%3B%0A%0A%09%09%7D%0A%0A%09%7D%0A%0A%09function%20setLineJoin%28%20value%20%29%20%7B%0A%0A%09%09%2F%2F%20%22round%22%2C%20%22bevel%22%2C%20%22miter%22%0A%0A%09%09if%20%28%20%5FcontextLineJoin%20%21%3D%3D%20value%20%29%20%7B%0A%0A%09%09%09%5Fcontext%2ElineJoin%20%3D%20value%3B%0A%09%09%09%5FcontextLineJoin%20%3D%20value%3B%0A%0A%09%09%7D%0A%0A%09%7D%0A%0A%09function%20setStrokeStyle%28%20value%20%29%20%7B%0A%0A%09%09if%20%28%20%5FcontextStrokeStyle%20%21%3D%3D%20value%20%29%20%7B%0A%0A%09%09%09%5Fcontext%2EstrokeStyle%20%3D%20value%3B%0A%09%09%09%5FcontextStrokeStyle%20%3D%20value%3B%0A%0A%09%09%7D%0A%0A%09%7D%0A%0A%09function%20setFillStyle%28%20value%20%29%20%7B%0A%0A%09%09if%20%28%20%5FcontextFillStyle%20%21%3D%3D%20value%20%29%20%7B%0A%0A%09%09%09%5Fcontext%2EfillStyle%20%3D%20value%3B%0A%09%09%09%5FcontextFillStyle%20%3D%20value%3B%0A%0A%09%09%7D%0A%0A%09%7D%0A%0A%09function%20setLineDash%28%20value%20%29%20%7B%0A%0A%09%09if%20%28%20%5FcontextLineDash%2Elength%20%21%3D%3D%20value%2Elength%20%29%20%7B%0A%0A%09%09%09%5Fcontext%2EsetLineDash%28%20value%20%29%3B%0A%09%09%09%5FcontextLineDash%20%3D%20value%3B%0A%0A%09%09%7D%0A%0A%09%7D%0A%0A%7D%3B%0A"></script>
<script src="data:application/x-javascript,%2F%2A%2A%0A%20%20XXX%20Switch%20to%20a%20FFM%20algorithm%20for%20better%20performance%2E%20XXX%0A%20%20Based%20on%3A%0A%0A%20%20%40author%20David%20Piegza%0A%0A%20%20Implements%20a%20force%2Ddirected%20layout%2C%20the%20algorithm%20is%20based%20on%20Fruchterman%20and%20Reingold%20and%0A%20%20the%20JUNG%20implementation%2E%0A%0A%0A%20%20Parameters%3A%0A%20%20graph%20%2D%20data%20structure%0A%20%20options%20%3D%20%7B%0A%20%20%20%20attraction%3A%20%3Cfloat%3E%2C%20attraction%20value%20for%20force%2Ddirected%20layout%0A%20%20%20%20repulsion%3A%20%3Cfloat%3E%2C%20repulsion%20value%20for%20force%2Ddirected%20layout%0A%20%20%20%20iterations%3A%20%3Cint%3E%2C%20maximum%20number%20of%20iterations%0A%20%20%20%20width%3A%20%3Cint%3E%2C%20width%20of%20the%20viewport%0A%20%20%20%20height%3A%20%3Cint%3E%2C%20height%20of%20the%20viewport%0A%0A%20%20%20%20positionUpdated%3A%20%3Cfunction%3E%2C%20called%20when%20the%20position%20of%20the%20node%20has%20been%20updated%0A%20%20%7D%0A%20%20%0A%20%20call%20init%20when%20graph%20is%20loaded%20%28and%20for%20reset%20or%20when%20new%20nodes%20has%20been%20added%20to%20the%20graph%29%3A%0A%20%20layout%2Einit%28%29%3B%0A%20%20%0A%20%20call%20generate%20in%20a%20render%20method%2C%20returns%20true%20if%20it%27s%20still%20calculating%20and%20false%20if%20it%27s%20finished%0A%20%20layout%2Egenerate%28%29%3B%0A%20%2A%2F%0A%0Avar%20Layout%20%3D%20Layout%20%7C%7C%20%7B%7D%3B%0A%0ALayout%2EForceDirected%20%3D%20function%28graph%2C%20options%29%0A%7B%0A%20%20var%20options%20%3D%20options%20%7C%7C%20%7B%7D%3B%0A%20%20this%2Eattraction%5Fmultiplier%20%3D%20options%2Eattraction%20%7C%7C%205%3B%0A%20%20this%2Erepulsion%5Fmultiplier%20%3D%20options%2Erepulsion%20%7C%7C%200%2E75%3B%0A%20%20this%2Emax%5Fiterations%20%3D%20options%2Eiterations%20%7C%7C%201000%3B%0A%20%20this%2Egraph%20%3D%20graph%3B%0A%20%20this%2Ewidth%20%3D%20options%2Ewidth%20%7C%7C%20200%3B%0A%20%20this%2Eheight%20%3D%20options%2Eheight%20%7C%7C%20200%3B%0A%20%20this%2Efinished%20%3D%20false%3B%0A%0A%20%20var%20callback%5FpositionUpdated%20%3D%20options%2EpositionUpdated%3B%0A%20%20%0A%20%20var%20EPSILON%20%3D%200%2E000001%3B%0A%20%20var%20attraction%5Fconstant%3B%0A%20%20var%20repulsion%5Fconstant%3B%0A%20%20var%20forceConstant%3B%0A%20%20var%20layout%5Fiterations%20%3D%200%3B%0A%20%20var%20temperature%20%3D%200%3B%0A%20%20var%20nodes%5Flength%3B%0A%20%20var%20edges%5Flength%3B%0A%20%20var%20that%20%3D%20this%3B%0A%20%20var%20ds%5Fold%20%3D%200%3B%0A%20%20%0A%20%20%2F%2A%2A%0A%20%20%20%2A%20Initialize%20parameters%20used%20by%20the%20algorithm%2E%0A%20%20%20%2A%2F%0A%20%20this%2Einit%20%3D%20function%28%29%20%7B%0A%20%20%20%20this%2Efinished%20%3D%20false%3B%0A%20%20%20%20layout%5Fiterations%20%3D%200%3B%0A%20%20%20%20temperature%20%3D%20this%2Ewidth%20%2F%2010%2E0%3B%0A%20%20%20%20nodes%5Flength%20%3D%20this%2Egraph%2Enodes%2Elength%3B%0A%20%20%20%20edges%5Flength%20%3D%20this%2Egraph%2Eedges%2Elength%3B%0A%20%20%20%20forceConstant%20%3D%20Math%2Esqrt%28this%2Eheight%20%2A%20this%2Ewidth%20%2F%20nodes%5Flength%29%3B%0A%20%20%20%20attraction%5Fconstant%20%3D%20this%2Eattraction%5Fmultiplier%20%2F%20forceConstant%3B%0A%20%20%20%20repulsion%5Fconstant%20%3D%20this%2Erepulsion%5Fmultiplier%20%2A%20forceConstant%3B%0A%20%20%7D%3B%0A%0A%20%20%2F%2A%2A%0A%20%20%20%2A%20Generates%20the%20force%2Ddirected%20layout%2E%0A%20%20%20%2A%0A%20%20%20%2A%20It%20finishes%20when%20the%20number%20of%20max%5Fiterations%20has%20been%20reached%20or%20when%0A%20%20%20%2A%20the%20temperature%20is%20nearly%20zero%2E%0A%20%20%20%2A%2F%0A%20%20this%2Egenerate%20%3D%20function%28%29%0A%20%20%7B%0A%20%20%20%20if%28layout%5Fiterations%20%3C%20this%2Emax%5Fiterations%20%26%26%20temperature%20%3E%200%2E000001%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%2F%2F%20calculate%20repulsion%0A%20%20%20%20%20%20for%28var%20i%3D0%3B%20i%20%3C%20nodes%5Flength%3B%20i%2B%2B%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20var%20node%5Fv%20%3D%20graph%2Enodes%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20node%5Fv%2Elayout%20%3D%20node%5Fv%2Elayout%20%7C%7C%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20if%28i%3D%3D0%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20node%5Fv%2Elayout%2Eoffset%5Fx%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20%20node%5Fv%2Elayout%2Eoffset%5Fy%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20%20node%5Fv%2Elayout%2Eoffset%5Fz%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20node%5Fv%2Elayout%2Eforce%20%3D%200%3B%0A%20%20%20%20%20%20%20%20node%5Fv%2Elayout%2Etmp%5Fpos%5Fx%20%3D%20node%5Fv%2Elayout%2Etmp%5Fpos%5Fx%20%7C%7C%20node%5Fv%2Eposition%2Ex%3B%0A%20%20%20%20%20%20%20%20node%5Fv%2Elayout%2Etmp%5Fpos%5Fy%20%3D%20node%5Fv%2Elayout%2Etmp%5Fpos%5Fy%20%7C%7C%20node%5Fv%2Eposition%2Ey%3B%0A%20%20%20%20%20%20%20%20node%5Fv%2Elayout%2Etmp%5Fpos%5Fz%20%3D%20node%5Fv%2Elayout%2Etmp%5Fpos%5Fz%20%7C%7C%20node%5Fv%2Eposition%2Ez%3B%0A%20%20%20%20%20%20%20%20for%28var%20j%3Di%2B1%3B%20j%20%3C%20nodes%5Flength%3B%20j%2B%2B%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20node%5Fu%20%3D%20graph%2Enodes%5Bj%5D%3B%0A%20%20%20%20%20%20%20%20%20%20if%28i%20%21%3D%20j%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20node%5Fu%2Elayout%20%3D%20node%5Fu%2Elayout%20%7C%7C%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20node%5Fu%2Elayout%2Etmp%5Fpos%5Fx%20%3D%20node%5Fu%2Elayout%2Etmp%5Fpos%5Fx%20%7C%7C%20node%5Fu%2Eposition%2Ex%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20node%5Fu%2Elayout%2Etmp%5Fpos%5Fy%20%3D%20node%5Fu%2Elayout%2Etmp%5Fpos%5Fy%20%7C%7C%20node%5Fu%2Eposition%2Ey%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20node%5Fu%2Elayout%2Etmp%5Fpos%5Fz%20%3D%20node%5Fu%2Elayout%2Etmp%5Fpos%5Fz%20%7C%7C%20node%5Fu%2Eposition%2Ez%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20delta%5Fx%20%3D%20node%5Fv%2Elayout%2Etmp%5Fpos%5Fx%20%2D%20node%5Fu%2Elayout%2Etmp%5Fpos%5Fx%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20delta%5Fy%20%3D%20node%5Fv%2Elayout%2Etmp%5Fpos%5Fy%20%2D%20node%5Fu%2Elayout%2Etmp%5Fpos%5Fy%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20delta%5Fz%20%3D%20node%5Fv%2Elayout%2Etmp%5Fpos%5Fz%20%2D%20node%5Fu%2Elayout%2Etmp%5Fpos%5Fz%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20delta%5Flength%20%3D%20Math%2Emax%28EPSILON%2C%20Math%2Esqrt%28%28delta%5Fx%20%2A%20delta%5Fx%29%20%2B%20%28delta%5Fy%20%2A%20delta%5Fy%29%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20delta%5Flength%5Fz%20%3D%20Math%2Emax%28EPSILON%2C%20Math%2Esqrt%28%28delta%5Fz%20%2A%20delta%5Fz%29%20%2B%20%28delta%5Fy%20%2A%20delta%5Fy%29%20%2B%20%28delta%5Fx%20%2A%20delta%5Fx%29%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20force%20%3D%20%28repulsion%5Fconstant%20%2A%20repulsion%5Fconstant%29%20%2F%20delta%5Flength%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20force%5Fz%20%3D%20%28repulsion%5Fconstant%20%2A%20repulsion%5Fconstant%29%20%2F%20delta%5Flength%5Fz%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20node%5Fv%2Elayout%2Eforce%20%2B%3D%20force%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20node%5Fu%2Elayout%2Eforce%20%2B%3D%20force%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20node%5Fv%2Elayout%2Eoffset%5Fx%20%2B%3D%20%28delta%5Fx%20%2F%20delta%5Flength%29%20%2A%20force%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20node%5Fv%2Elayout%2Eoffset%5Fy%20%2B%3D%20%28delta%5Fy%20%2F%20delta%5Flength%29%20%2A%20force%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%28i%3D%3D0%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20node%5Fu%2Elayout%2Eoffset%5Fx%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20node%5Fu%2Elayout%2Eoffset%5Fy%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20node%5Fu%2Elayout%2Eoffset%5Fz%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20node%5Fu%2Elayout%2Eoffset%5Fx%20%2D%3D%20%28delta%5Fx%20%2F%20delta%5Flength%29%20%2A%20force%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20node%5Fu%2Elayout%2Eoffset%5Fy%20%2D%3D%20%28delta%5Fy%20%2F%20delta%5Flength%29%20%2A%20force%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20node%5Fv%2Elayout%2Eoffset%5Fz%20%2B%3D%20%28delta%5Fz%20%2F%20delta%5Flength%5Fz%29%20%2A%20force%5Fz%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20node%5Fu%2Elayout%2Eoffset%5Fz%20%2D%3D%20%28delta%5Fz%20%2F%20delta%5Flength%5Fz%29%20%2A%20force%5Fz%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20%2F%2F%20calculate%20attraction%0A%20%20%20%20%20%20for%28var%20i%3D0%3B%20i%20%3C%20edges%5Flength%3B%20i%2B%2B%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20var%20edge%20%3D%20graph%2Eedges%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20var%20delta%5Fx%20%3D%20edge%2Esource%2Elayout%2Etmp%5Fpos%5Fx%20%2D%20edge%2Etarget%2Elayout%2Etmp%5Fpos%5Fx%3B%0A%20%20%20%20%20%20%20%20var%20delta%5Fy%20%3D%20edge%2Esource%2Elayout%2Etmp%5Fpos%5Fy%20%2D%20edge%2Etarget%2Elayout%2Etmp%5Fpos%5Fy%3B%0A%20%20%20%20%20%20%20%20var%20delta%5Fz%20%3D%20edge%2Esource%2Elayout%2Etmp%5Fpos%5Fz%20%2D%20edge%2Etarget%2Elayout%2Etmp%5Fpos%5Fz%3B%0A%0A%20%20%20%20%20%20%20%20var%20delta%5Flength%20%3D%20Math%2Emax%28EPSILON%2C%20Math%2Esqrt%28%28delta%5Fx%20%2A%20delta%5Fx%29%20%2B%20%28delta%5Fy%20%2A%20delta%5Fy%29%29%29%3B%0A%20%20%20%20%20%20%20%20var%20delta%5Flength%5Fz%20%3D%20Math%2Emax%28EPSILON%2C%20Math%2Esqrt%28%28delta%5Fz%20%2A%20delta%5Fz%29%20%2B%20%28delta%5Fy%20%2A%20delta%5Fy%29%20%2B%20%28delta%5Fx%20%2A%20delta%5Fx%29%29%29%3B%0A%20%20%20%20%20%20%20%20var%20force%20%3D%20%28delta%5Flength%20%2A%20delta%5Flength%29%20%2A%20attraction%5Fconstant%3B%0A%20%20%20%20%20%20%20%20var%20force%5Fz%20%3D%20%28delta%5Flength%5Fz%20%2A%20delta%5Flength%5Fz%29%20%2A%20attraction%5Fconstant%3B%0A%0A%20%20%20%20%20%20%20%20edge%2Esource%2Elayout%2Eforce%20%2D%3D%20force%3B%0A%20%20%20%20%20%20%20%20edge%2Etarget%2Elayout%2Eforce%20%2B%3D%20force%3B%0A%0A%20%20%20%20%20%20%20%20edge%2Esource%2Elayout%2Eoffset%5Fx%20%2D%3D%20%28delta%5Fx%20%2F%20delta%5Flength%29%20%2A%20force%3B%0A%20%20%20%20%20%20%20%20edge%2Esource%2Elayout%2Eoffset%5Fy%20%2D%3D%20%28delta%5Fy%20%2F%20delta%5Flength%29%20%2A%20force%3B%0A%20%20%20%20%20%20%20%20edge%2Esource%2Elayout%2Eoffset%5Fz%20%2D%3D%20%28delta%5Fz%20%2F%20delta%5Flength%5Fz%29%20%2A%20force%5Fz%3B%0A%0A%20%20%20%20%20%20%20%20edge%2Etarget%2Elayout%2Eoffset%5Fx%20%2B%3D%20%28delta%5Fx%20%2F%20delta%5Flength%29%20%2A%20force%3B%0A%20%20%20%20%20%20%20%20edge%2Etarget%2Elayout%2Eoffset%5Fy%20%2B%3D%20%28delta%5Fy%20%2F%20delta%5Flength%29%20%2A%20force%3B%0A%20%20%20%20%20%20%20%20edge%2Etarget%2Elayout%2Eoffset%5Fz%20%2B%3D%20%28delta%5Fz%20%2F%20delta%5Flength%5Fz%29%20%2A%20force%5Fz%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20%2F%2F%20calculate%20positions%0A%20%20%20%20%20%20var%20ds%20%3D%200%3B%0A%20%20%20%20%20%20for%28var%20i%3D0%3B%20i%20%3C%20nodes%5Flength%3B%20i%2B%2B%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20var%20node%20%3D%20graph%2Enodes%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20var%20delta%5Flength%20%3D%20Math%2Emax%28EPSILON%2C%20Math%2Esqrt%28node%2Elayout%2Eoffset%5Fx%20%2A%20node%2Elayout%2Eoffset%5Fx%20%2B%20node%2Elayout%2Eoffset%5Fy%20%2A%20node%2Elayout%2Eoffset%5Fy%29%29%3B%0A%20%20%20%20%20%20%20%20var%20delta%5Flength%5Fz%20%3D%20Math%2Emax%28EPSILON%2C%20Math%2Esqrt%28node%2Elayout%2Eoffset%5Fz%20%2A%20node%2Elayout%2Eoffset%5Fz%20%2B%20node%2Elayout%2Eoffset%5Fy%20%2A%20node%2Elayout%2Eoffset%5Fy%29%29%3B%0A%20%20%20%20%20%20%20%20var%20delta%5Flength%5Fx%20%3D%20Math%2Emax%28EPSILON%2C%20Math%2Esqrt%28node%2Elayout%2Eoffset%5Fz%20%2A%20node%2Elayout%2Eoffset%5Fz%20%2B%20node%2Elayout%2Eoffset%5Fx%20%2A%20node%2Elayout%2Eoffset%5Fx%29%29%3B%0A%0A%20%20%20%20%20%20%20%20node%2Elayout%2Etmp%5Fpos%5Fx%20%2B%3D%20%28node%2Elayout%2Eoffset%5Fx%20%2F%20delta%5Flength%5Fx%29%20%2A%20Math%2Emin%28delta%5Flength%5Fx%2C%20temperature%29%3B%0A%20%20%20%20%20%20%20%20node%2Elayout%2Etmp%5Fpos%5Fy%20%2B%3D%20%28node%2Elayout%2Eoffset%5Fy%20%2F%20delta%5Flength%29%20%2A%20Math%2Emin%28delta%5Flength%2C%20temperature%29%3B%0A%20%20%20%20%20%20%20%20node%2Elayout%2Etmp%5Fpos%5Fz%20%2B%3D%20%28node%2Elayout%2Eoffset%5Fz%20%2F%20delta%5Flength%5Fz%29%20%2A%20Math%2Emin%28delta%5Flength%5Fz%2C%20temperature%29%3B%0A%0A%20%20%20%20%20%20%20%20ds%20%2B%3D%20Math%2Eabs%28node%2Eposition%2Ex%20%2D%20node%2Elayout%2Etmp%5Fpos%5Fx%29%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20Math%2Eabs%28node%2Eposition%2Ey%20%2D%20node%2Elayout%2Etmp%5Fpos%5Fy%29%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20Math%2Eabs%28node%2Eposition%2Ez%20%2D%20node%2Elayout%2Etmp%5Fpos%5Fz%29%3B%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20var%20updated%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20if%28node%2EnodesFrom%2Elength%20%2B%20node%2EnodesTo%2Elength%20%3C%201%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20don%27t%20allow%20singletons%20to%20stray%20too%20far%20away%0A%20%20%20%20%20%20%20%20%20%20node%2Eposition%2Ex%20%3D%20node%2Eposition%2Ex%2A0%2E7%3B%0A%20%20%20%20%20%20%20%20%20%20node%2Eposition%2Ey%20%3D%20node%2Eposition%2Ey%2A0%2E7%3B%0A%20%20%20%20%20%20%20%20%20%20node%2Eposition%2Ez%20%3D%20node%2Eposition%2Ez%2A0%2E7%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20node%2Eposition%2Ex%20%2D%3D%20%20%28node%2Eposition%2Ex%20%2D%20node%2Elayout%2Etmp%5Fpos%5Fx%29%2F10%3B%0A%20%20%20%20%20%20%20%20node%2Eposition%2Ey%20%2D%3D%20%20%28node%2Eposition%2Ey%20%2D%20node%2Elayout%2Etmp%5Fpos%5Fy%29%2F10%3B%0A%20%20%20%20%20%20%20%20node%2Eposition%2Ez%20%2D%3D%20%20%28node%2Eposition%2Ez%20%2D%20node%2Elayout%2Etmp%5Fpos%5Fz%29%2F10%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20execute%20callback%20function%20if%20positions%20has%20been%20updated%0A%20%20%20%20%20%20%20%20if%28updated%20%26%26%20typeof%20callback%5FpositionUpdated%20%3D%3D%3D%20%27function%27%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20callback%5FpositionUpdated%28node%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20temperature%20%2A%3D%20%281%20%2D%20%28layout%5Fiterations%20%2F%20this%2Emax%5Fiterations%29%29%3B%0A%20%20%20%20%20%20ds%20%3D%20ds%2Fgraph%2Enodes%2Elength%3B%0A%20%20%20%20%20%20if%28Math%2Eabs%28ds%20%2D%20ds%5Fold%29%20%3C%200%2E001%29%20temperature%20%3D%200%3B%0A%20%20%20%20%20%20ds%5Fold%20%3D%20ds%3B%0A%20%20%20%20%20%20layout%5Fiterations%2B%2B%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20this%2Efinished%20%3D%20true%3B%0A%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20true%3B%0A%20%20%7D%3B%0A%0A%20%20%2F%2A%2A%0A%20%20%20%2A%20Stops%20the%20calculation%20by%20setting%20the%20current%5Fiterations%20to%20max%5Fiterations%2E%0A%20%20%20%2A%2F%0A%20%20this%2Estop%5Fcalculating%20%3D%20function%28%29%20%7B%0A%20%20%20%20layout%5Fiterations%20%3D%20this%2Emax%5Fiterations%3B%0A%20%20%7D%0A%7D%3B%0A"></script>
<script src="data:application/x-javascript,%2F%2A%2A%0A%20%20%40author%20David%20Piegza%0A%0A%20%20Implements%20a%20graph%20structure%2E%0A%20%20Consists%20of%20Graph%2C%20Nodes%20and%20Edges%2E%0A%0A%20%20Nodes%3A%0A%20%20Create%20a%20new%20Node%20with%20an%20id%2E%20A%20node%20has%20the%20properties%0A%20%20id%2C%20position%20and%20data%2E%0A%0A%20%20Example%3A%0A%20%20node%20%3D%20new%20Node%281%29%3B%0A%20%20node%2Eposition%2Ex%20%3D%20100%3B%0A%20%20node%2Eposition%2Ey%20%3D%20100%3B%0A%20%20node%2Edata%2Etitle%20%3D%20%22Title%20of%20the%20node%22%3B%0A%0A%20%20The%20data%20property%20can%20be%20used%20to%20extend%20the%20node%20with%20custom%0A%20%20informations%2E%20Then%2C%20they%20can%20be%20used%20in%20a%20visualization%2E%0A%0A%20%20Edges%3A%0A%20%20Connects%20two%20nodes%20together%2E%0A%20%20%0A%20%20Example%3A%0A%20%20edge%20%3D%20new%20Edge%28node1%2C%20node2%29%3B%0A%0A%20%20An%20edge%20can%20also%20be%20extended%20with%20the%20data%20attribute%2E%20E%2Eg%2E%20set%20a%0A%20%20type%20like%20%22friends%22%2C%20different%20types%20can%20then%20be%20draw%20in%20differnt%20ways%2E%20%0A%0A%20%20Methods%3A%0A%20%20addNode%28node%29%20%2D%20adds%20a%20new%20node%20and%20returns%20true%20if%20the%20node%20has%20been%20added%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20otherwise%20false%2E%0A%20%20getNode%28node%5Fid%29%20%2D%20returns%20the%20node%20with%20node%5Fid%20or%20undefined%2C%20if%20it%20not%20exist%0A%20%20addEdge%28node1%2C%20node2%29%20%2D%20adds%20an%20edge%20for%20node1%20and%20node2%2E%20Returns%20true%20if%20the%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20edge%20has%20been%20added%2C%20otherwise%20false%20%28e%2Eg%2E%29%20when%20the%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20edge%20between%20these%20nodes%20already%20exist%2E%0A%20%2A%2F%0A%0Afunction%20Graph%28options%29%20%7B%0A%20%20this%2Eoptions%20%3D%20options%20%7C%7C%20%7B%7D%3B%0A%20%20this%2EnodeSet%20%3D%20%7B%7D%3B%0A%20%20this%2Enodes%20%3D%20%5B%5D%3B%0A%20%20this%2Eedges%20%3D%20%5B%5D%3B%0A%20%20this%2Elayout%3B%0A%7D%0A%0AGraph%2Eprototype%2EaddNode%20%3D%20function%28node%29%0A%7B%0A%20%20this%2EnodeSet%5Bnode%2Eid%5D%20%3D%20node%3B%0A%20%20this%2Enodes%2Epush%28node%29%3B%0A%20%20return%20true%3B%0A%7D%3B%0A%0AGraph%2Eprototype%2EgetNode%20%3D%20function%28node%5Fid%29%0A%7B%0A%20%20return%20this%2EnodeSet%5Bnode%5Fid%5D%3B%0A%7D%3B%0A%0AGraph%2Eprototype%2EaddEdge%20%3D%20function%28source%2C%20target%29%0A%7B%0A%20%20if%28source%2EaddConnectedTo%28target%29%20%3D%3D%3D%20true%29%20%7B%0A%20%20%20%20var%20edge%20%3D%20new%20Edge%28source%2C%20target%29%3B%0A%20%20%20%20this%2Eedges%2Epush%28edge%29%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%20%20return%20false%3B%0A%7D%3B%0A%0Afunction%20Node%28node%5Fid%29%0A%7B%0A%20%20this%2Eid%20%3D%20node%5Fid%3B%0A%20%20this%2EnodesTo%20%3D%20%5B%5D%3B%0A%20%20this%2EnodesFrom%20%3D%20%5B%5D%3B%0A%20%20this%2Eposition%20%3D%20%7B%7D%3B%0A%20%20this%2Edata%20%3D%20%7B%7D%3B%0A%7D%0A%0ANode%2Eprototype%2EaddConnectedTo%20%3D%20function%28node%29%0A%7B%0A%20%20if%28this%2EconnectedTo%28node%29%20%3D%3D%3D%20false%29%20%7B%0A%20%20%20%20this%2EnodesTo%2Epush%28node%29%3B%0A%20%20%20%20node%2EnodesFrom%2Epush%28this%29%3B%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%20%20return%20false%3B%0A%7D%3B%0A%0ANode%2Eprototype%2EconnectedTo%20%3D%20function%28node%29%0A%7B%0A%20%20for%28var%20i%3D0%3B%20i%20%3C%20this%2EnodesTo%2Elength%3B%20i%2B%2B%29%20%7B%0A%20%20%20%20var%20connectedNode%20%3D%20this%2EnodesTo%5Bi%5D%3B%0A%20%20%20%20if%28connectedNode%2Eid%20%3D%3D%20node%2Eid%29%20%7B%0A%20%20%20%20%20%20return%20true%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20false%3B%0A%7D%3B%0A%0Afunction%20Edge%28source%2C%20target%29%0A%7B%0A%20%20this%2Esource%20%3D%20source%3B%0A%20%20this%2Etarget%20%3D%20target%3B%0A%20%20this%2Edata%20%3D%20%7B%7D%3B%0A%7D%0A"></script>
<script src="data:application/x-javascript,THREE%2ELabel%20%3D%20function%28text%2C%20color%2C%20scale%2C%20parameters%29%0A%7B%0A%20%20var%20parameters%20%3D%20parameters%20%7C%7C%20%7B%7D%3B%0A%20%20var%20color%20%3D%20color%20%7C%7C%200x000000%3B%0A%20%20var%20scale%20%3D%20scale%20%7C%7C%201%3B%0A%20%20var%20canvas%20%3D%20document%2EcreateElement%28%20%22canvas%22%20%29%3B%0A%0A%20%20function%20create%28%29%0A%20%20%7B%0A%20%20%20%20var%20width%2C%20height%3B%0A%20%20%20%20height%20%3D%2064%3B%0A%20%20%20%20width%20%3D%20512%3B%0A%20%20%20%20canvas%2Ewidth%20%3D%20width%3B%0A%20%20%20%20canvas%2Eheight%20%3D%20height%3B%0A%20%20%20%20var%20context%20%3D%20canvas%2EgetContext%28%272d%27%29%3B%0A%20%20%20%20context%2EfillStyle%20%3D%20%22%23%22%20%2B%20color%2EgetHexString%28%29%3B%0A%20%20%20%20context%2EtextAlign%20%3D%20%22center%22%3B%0A%20%20%20%20context%2EtextBaseline%20%3D%20%22top%22%3B%0A%20%20%20%20context%2Efont%20%3D%20%2248px%20Arial%22%3B%0A%20%20%20%20context%2EfillText%28text%2C%20width%20%2F%202%2C%200%29%3B%0A%20%20%20%20var%20amap%20%3D%20new%20THREE%2ETexture%28canvas%29%3B%0A%20%20%20%20amap%2EgenerateMipmaps%20%3D%20false%3B%0A%20%20%20%20amap%2EminFilter%20%3D%20THREE%2ELinearFilter%3B%0A%20%20%20%20amap%2EmagFilter%20%3D%20THREE%2ELinearFilter%3B%0A%20%20%20%20amap%2EneedsUpdate%20%3D%20true%3B%0A%20%20%20%20var%20mat%20%3D%20new%20THREE%2ESpriteMaterial%28%7B%0A%20%20%20%20%20%20map%3A%20amap%2C%0A%20%20%20%20%20%20transparent%3A%20true%2C%0A%20%20%20%20%20%20useScreenCoordinates%3A%20false%2C%0A%20%20%20%20%20%20color%3A%200xffffff%20%7D%29%3B%0A%20%20%20%20sp%20%3D%20new%20THREE%2ESprite%28mat%29%3B%0A%20%20%20%20sp%2Escale%2Eset%28scale%2C%20scale%2F8%2C%20scale%29%3B%0A%20%20%20%20return%20sp%3B%0A%20%20%7D%0A%20%20return%20create%28%29%3B%0A%7D%0A"></script>
<script src="data:application/x-javascript,%2F%2A%2A%0A%20%20%40author%20David%20Piegza%0A%0A%20%20Implements%20a%20selection%20for%20objects%20in%20a%20scene%2E%0A%0A%20%20It%20invokes%20a%20callback%20function%20when%20the%20mouse%20enters%20and%20when%20it%20leaves%20the%20object%2E%0A%20%20Based%20on%20a%20Three%2Ejs%20selection%20example%2E%0A%0A%20%20Parameters%3A%0A%20%20%20%20domElement%3A%20HTMLDomElement%0A%20%20%20%20selected%3A%20callback%20function%2C%20passes%20the%20current%20selected%20object%20%28on%20mouseover%29%0A%20%20%20%20clicked%3A%20callback%20function%2C%20passes%20the%20current%20clicked%20object%0A%20%2A%2F%0A%0ATHREE%2EObjectSelection%20%3D%20function%28parameters%29%0A%7B%0A%20%20var%20parameters%20%3D%20parameters%20%7C%7C%20%7B%7D%3B%0A%0A%20%20this%2EdomElement%20%3D%20parameters%2EdomElement%20%7C%7C%20document%3B%0A%20%20this%2Econtrols%20%3D%20parameters%2Econtrols%20%7C%7C%20%7B%7D%3B%0A%20%20this%2Egraph%20%3D%20parameters%2Egraph%20%7C%7C%20%7B%7D%3B%0A%2F%2F%20%20this%2Eprojector%20%3D%20new%20THREE%2EProjector%28%29%3B%0A%20%20this%2EINTERSECTED%3B%0A%0A%20%20var%20%5Fthis%20%3D%20this%3B%0A%0A%20%20var%20callbackSelected%20%3D%20parameters%2Eselected%3B%0A%20%20var%20callbackClicked%20%3D%20parameters%2Eclicked%3B%0A%20%20var%20mouse%20%3D%20%7B%20x%3A%200%2C%20y%3A%200%20%7D%3B%0A%20%20var%20down%20%3D%20false%3B%0A%20%20var%20cam%3B%0A%0A%20%20this%2EdomElement%2EaddEventListener%28%20%27mousedown%27%2C%20onDocumentMouseDown%2C%20false%20%29%3B%0A%20%20function%20onDocumentMouseDown%28event%29%0A%20%20%7B%0A%20%20%20%20down%20%3D%20true%3B%0A%20%20%20%20if%28%5Fthis%2EINTERSECTED%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%5Fthis%2Econtrols%2Eenabled%20%3D%20false%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20this%2EdomElement%2EaddEventListener%28%20%27mouseup%27%2C%20onDocumentMouseUp%2C%20false%20%29%3B%0A%20%20function%20onDocumentMouseUp%28event%29%0A%20%20%7B%0A%20%20%20%20down%20%3D%20false%3B%0A%20%20%20%20%5Fthis%2Econtrols%2Eenabled%20%3D%20true%3B%0A%20%20%7D%0A%0A%2F%2F%20The%20next%20two%20functions%20walk%20the%20graph%20to%20assemble%20connections%20and%20distances%0A%2F%2F%20from%20the%20starting%20node%2E%20They%20are%20not%20efficient%20%28especially%20setdiff%29%21%21%0A%2F%2F%20Improve%20me%21%21%0A%20%20function%20setdiff%28A%2C%20B%29%0A%20%20%7B%0A%20%20%20%20return%20A%2Efilter%28function%28x%29%20%7B%20return%20B%2EindexOf%28x%29%20%3C%200%20%7D%29%3B%0A%20%20%7D%0A%0A%20%20function%20tribe%28node%2C%20family%2C%20distance%29%0A%20%20%7B%0A%20%20%20%20var%20ext%20%3D%20setdiff%28node%2EnodesFrom%2Econcat%28node%2EnodesTo%29%2C%20family%29%3B%0A%20%20%20%20for%28var%20j%3D0%3B%20j%20%3C%20ext%2Elength%3B%20j%2B%2B%29%20ext%5Bj%5D%2Edistance%20%3D%20distance%3B%0A%20%20%20%20family%20%3D%20family%2Econcat%28ext%29%3B%0A%20%20%20%20for%28var%20j%3D0%3B%20j%20%3C%20ext%2Elength%3B%20j%2B%2B%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20family%20%3D%20family%2Econcat%28setdiff%28tribe%28ext%5Bj%5D%2C%20family%2C%20distance%20%2B%201%29%2C%20family%29%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20family%3B%0A%20%20%7D%0A%0A%20%20this%2EdomElement%2EaddEventListener%28%20%27mousemove%27%2C%20onDocumentMouseMove%2C%20false%20%29%3B%0A%20%20function%20onDocumentMouseMove%28ev%29%0A%20%20%7B%0A%20%20%20%20var%20canvasRect%20%3D%20this%2EgetBoundingClientRect%28%29%3B%0A%20%20%20%20var%20dx%2C%20dy%3B%0A%20%20%20%20mouse%2Ex%20%3D%202%20%2A%20%28ev%2EclientX%20%2D%20canvasRect%2Eleft%29%20%2F%20canvasRect%2Ewidth%20%2D%201%3B%0A%20%20%20%20mouse%2Ey%20%3D%20%2D2%20%2A%20%28ev%2EclientY%20%2D%20canvasRect%2Etop%29%20%2F%20canvasRect%2Eheight%20%2B%201%3B%0A%0A%20%20%20%20if%28down%20%26%26%20%5Fthis%2EINTERSECTED%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20var%20vector%20%3D%20new%20THREE%2EVector3%28%29%3B%0A%20%20%20%20%20%20vector%2Eset%28mouse%2Ex%2C%20mouse%2Ey%2C%200%2E5%29%3B%0A%20%20%20%20%20%20vector%2Eunproject%28cam%29%3B%0A%20%20%20%20%20%20var%20dir%20%3D%20vector%2Esub%28cam%2Eposition%29%2Enormalize%28%29%3B%0A%20%20%20%20%20%20var%20distance%20%3D%20%2D%20cam%2Eposition%2Ez%20%2F%20dir%2Ez%3B%0A%20%20%20%20%20%20var%20pos%20%3D%20cam%2Eposition%2Eclone%28%29%2Eadd%28dir%2EmultiplyScalar%28distance%29%29%3B%0A%20%20%20%20%20%20var%20N%20%3D%20%5Fthis%2Egraph%2EgetNode%28%5Fthis%2EINTERSECTED%2Enodeid%29%3B%0A%20%20%20%20%20%20if%28typeof%28N%29%20%3D%3D%20%22undefined%22%29%20return%3B%0A%20%20%20%20%20%20dx%20%3D%20N%2Eposition%2Ex%20%2D%20pos%2Ex%3B%0A%20%20%20%20%20%20dy%20%3D%20N%2Eposition%2Ey%20%2D%20pos%2Ey%3B%0A%20%20%20%20%20%20N%2Eposition%2Ex%20%3D%20pos%2Ex%3B%0A%20%20%20%20%20%20N%2Eposition%2Ey%20%3D%20pos%2Ey%3B%0A%20%20%20%20%20%20var%20others%20%3D%20tribe%28N%2C%20%5BN%5D%2C%201%29%3B%0A%20%20%20%20%20%20for%28var%20j%3D1%3B%20j%20%3C%20others%2Elength%3B%20j%2B%2B%29%20%20%2F%2F%20start%20at%201%20cause%20others%5B0%5D%20%3D%20N%2E%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20var%20d%20%3D%20Math%2Epow%280%2E70%2C%201%2E5%2Aothers%5Bj%5D%2Edistance%29%3B%0A%20%20%20%20%20%20%20%20others%5Bj%5D%2Eposition%2Ex%20%3D%20others%5Bj%5D%2Eposition%2Ex%20%2D%20dx%20%2A%20d%3B%0A%20%20%20%20%20%20%20%20others%5Bj%5D%2Eposition%2Ey%20%3D%20others%5Bj%5D%2Eposition%2Ey%20%2D%20dy%20%2A%20d%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20this%2EdomElement%2EaddEventListener%28%20%27click%27%2C%20onDocumentMouseClick%2C%20false%20%29%3B%0A%20%20function%20onDocumentMouseClick%28%20event%20%29%7B%0A%20%20%20%20if%28%5Fthis%2EINTERSECTED%29%20%7B%0A%20%20%20%20%20%20if%28typeof%20callbackClicked%20%3D%3D%3D%20%27function%27%29%20%7B%0A%20%20%20%20%20%20%20%20callbackClicked%28%5Fthis%2EINTERSECTED%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20this%2Erender%20%3D%20function%28scene%2C%20camera%29%20%7B%0A%20%20%20%20var%20vector%20%3D%20new%20THREE%2EVector3%28%20mouse%2Ex%2C%20mouse%2Ey%2C%200%2E5%20%29%3B%0A%20%20%20%20vector%2Eunproject%28%20camera%20%29%3B%0A%20%20%20%20var%20raycaster%20%3D%20new%20THREE%2ERaycaster%28camera%2Eposition%2C%20vector%2Esub%28camera%2Eposition%29%2Enormalize%28%29%29%3B%0A%20%20%20%20var%20intersects%20%3D%20raycaster%2EintersectObject%28scene%2C%20true%29%3B%0Acam%20%3D%20camera%3B%0Aif%28%21down%29%0A%7B%0A%20%20%20%20if%28%20intersects%2Elength%20%3E%200%20%29%20%7B%0A%20%20%20%20%20%20if%20%28%20this%2EINTERSECTED%20%21%3D%20intersects%5B%200%20%5D%2Eobject%20%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28%20this%2EINTERSECTED%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20this%2EINTERSECTED%2Ematerial%2Ecolor%2EsetHex%28%20this%2EINTERSECTED%2EcurrentHex%20%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20this%2EINTERSECTED%20%3D%20intersects%5B%200%20%5D%2Eobject%3B%0A%20%20%20%20%20%20%20%20this%2EINTERSECTED%2EcurrentHex%20%3D%20this%2EINTERSECTED%2Ematerial%2Ecolor%2EgetHex%28%29%3B%0A%20%20%20%20%20%20%20%20if%28this%2EINTERSECTED%2Ematerial%2Ecolor%2EgetHexString%28%29%2EstartsWith%28%22ff%22%29%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20this%2EINTERSECTED%2Ematerial%2Ecolor%2EsetHex%28%200x00ffff%20%29%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20this%2EINTERSECTED%2Ematerial%2Ecolor%2EsetHex%28%200xff0000%20%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20if%28typeof%20callbackSelected%20%3D%3D%3D%20%27function%27%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20callbackSelected%28this%2EINTERSECTED%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20if%20%28%20this%2EINTERSECTED%20%29%20%7B%0A%20%20%20%20%20%20%20%20this%2EINTERSECTED%2Ematerial%2Ecolor%2EsetHex%28%20this%2EINTERSECTED%2EcurrentHex%20%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20this%2EINTERSECTED%20%3D%20null%3B%0A%20%20%20%20%20%20if%28typeof%20callbackSelected%20%3D%3D%3D%20%27function%27%29%20%7B%0A%20%20%20%20%20%20%20%20callbackSelected%28this%2EINTERSECTED%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%7D%0A%20%20%7D%0A%7D%0A"></script>
<script src="data:application/x-javascript,%2F%2A%2A%0A%20%2A%20%40author%20Eberhard%20Graether%20%2F%20http%3A%2F%2Fegraether%2Ecom%2F%0A%20%2A%20%40author%20Mark%20Lundin%20%20%2F%20http%3A%2F%2Fmark%2Dlundin%2Ecom%0A%20%2A%2F%0A%0ATHREE%2ETrackballControls%20%3D%20function%20%28%20object%2C%20domElement%20%29%20%7B%0A%0A%20%20var%20%5Fthis%20%3D%20this%3B%0A%20%20var%20STATE%20%3D%20%7B%20NONE%3A%20%2D1%2C%20ROTATE%3A%200%2C%20ZOOM%3A%201%2C%20PAN%3A%202%2C%20TOUCH%5FROTATE%3A%203%2C%20TOUCH%5FZOOM%3A%204%2C%20TOUCH%5FPAN%3A%205%20%7D%3B%0A%20%20this%2Eobject%20%3D%20object%3B%0A%20%20this%2EdomElement%20%3D%20%28%20domElement%20%21%3D%3D%20undefined%20%29%20%3F%20domElement%20%3A%20document%3B%0A%0A%20%20%2F%2F%20API%0A%20%20this%2Eenabled%20%3D%20true%3B%0A%20%20this%2Escreen%20%3D%20%7B%20left%3A%200%2C%20top%3A%200%2C%20width%3A%200%2C%20height%3A%200%20%7D%3B%0A%20%20this%2ErotateSpeed%20%3D%201%2E0%3B%0A%20%20this%2EzoomSpeed%20%3D%201%2E2%3B%0A%20%20this%2EpanSpeed%20%3D%200%2E3%3B%0A%20%20this%2EnoRotate%20%3D%20false%3B%0A%20%20this%2EnoZoom%20%3D%20false%3B%0A%20%20this%2EnoPan%20%3D%20false%3B%0A%20%20this%2EnoRoll%20%3D%20false%3B%0A%20%20this%2EstaticMoving%20%3D%20false%3B%0A%20%20this%2EdynamicDampingFactor%20%3D%200%2E2%3B%0A%20%20this%2EminDistance%20%3D%200%3B%0A%20%20this%2EmaxDistance%20%3D%20Infinity%3B%0A%20%20this%2Eidle%20%3D%20true%3B%0A%0A%20%20%2F%2F%20internals%0A%20%20this%2Etarget%20%3D%20new%20THREE%2EVector3%28%29%3B%0A%20%20var%20lastPosition%20%3D%20new%20THREE%2EVector3%28%29%3B%0A%20%20var%20%5Fstate%20%3D%20STATE%2ENONE%2C%0A%20%20%5FprevState%20%3D%20STATE%2ENONE%2C%0A%20%20%5Feye%20%3D%20new%20THREE%2EVector3%28%29%2C%0A%20%20%5FrotateStart%20%3D%20new%20THREE%2EVector3%28%29%2C%0A%20%20%5FrotateEnd%20%3D%20new%20THREE%2EVector3%28%29%2C%0A%20%20%5FzoomStart%20%3D%20new%20THREE%2EVector2%28%29%2C%0A%20%20%5FzoomEnd%20%3D%20new%20THREE%2EVector2%28%29%2C%0A%20%20%5FtouchZoomDistanceStart%20%3D%200%2C%0A%20%20%5FtouchZoomDistanceEnd%20%3D%200%2C%0A%20%20%5FpanStart%20%3D%20new%20THREE%2EVector2%28%29%2C%0A%20%20%5FpanEnd%20%3D%20new%20THREE%2EVector2%28%29%3B%0A%0A%20%20%2F%2F%20for%20reset%0A%20%20this%2Etarget0%20%3D%20this%2Etarget%2Eclone%28%29%3B%0A%20%20this%2Eposition0%20%3D%20this%2Eobject%2Eposition%2Eclone%28%29%3B%0A%20%20this%2Eup0%20%3D%20this%2Eobject%2Eup%2Eclone%28%29%3B%0A%0A%20%20%2F%2F%20events%0A%20%20var%20changeEvent%20%3D%20%7B%20type%3A%20%27change%27%20%7D%3B%0A%20%20var%20startEvent%20%3D%20%7B%20type%3A%20%27start%27%7D%3B%0A%20%20var%20endEvent%20%3D%20%7B%20type%3A%20%27end%27%7D%3B%0A%0A%0A%20%20%2F%2F%20methods%0A%20%20this%2EhandleResize%20%3D%20function%20%28%29%20%7B%0A%20%20%20%20if%20%28%20this%2EdomElement%20%3D%3D%3D%20document%20%29%20%7B%0A%20%20%20%20%20%20this%2Escreen%2Eleft%20%3D%200%3B%0A%20%20%20%20%20%20this%2Escreen%2Etop%20%3D%200%3B%0A%20%20%20%20%20%20this%2Escreen%2Ewidth%20%3D%20window%2EinnerWidth%3B%0A%20%20%20%20%20%20this%2Escreen%2Eheight%20%3D%20window%2EinnerHeight%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20this%2Escreen%20%3D%20this%2EdomElement%2EgetBoundingClientRect%28%29%3B%0A%20%20%20%20%20%20%2F%2F%20adjustments%20come%20from%20similar%20code%20in%20the%20jquery%20offset%28%29%20function%0A%20%20%20%20%20%20var%20d%20%3D%20this%2EdomElement%2EownerDocument%2EdocumentElement%0A%20%20%20%20%20%20this%2Escreen%2Eleft%20%2B%3D%20window%2EpageXOffset%20%2D%20d%2EclientLeft%0A%20%20%20%20%20%20this%2Escreen%2Etop%20%2B%3D%20window%2EpageYOffset%20%2D%20d%2EclientTop%0A%20%20%20%20%7D%0A%20%20%7D%3B%0A%0A%20%20this%2EhandleEvent%20%3D%20function%20%28%20event%20%29%20%7B%0A%20%20%20%20if%20%28%20typeof%20this%5B%20event%2Etype%20%5D%20%3D%3D%20%27function%27%20%29%20%7B%0A%20%20%20%20%20%20this%5B%20event%2Etype%20%5D%28%20event%20%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%3B%0A%0A%20%20this%2EgetMouseOnScreen%20%3D%20function%20%28%20pageX%2C%20pageY%2C%20vector%20%29%20%7B%0A%20%20%20%20return%20vector%2Eset%28%0A%20%20%20%20%20%20%28%20pageX%20%2D%20%5Fthis%2Escreen%2Eleft%20%29%20%2F%20%5Fthis%2Escreen%2Ewidth%2C%0A%20%20%20%20%20%20%28%20pageY%20%2D%20%5Fthis%2Escreen%2Etop%20%29%20%2F%20%5Fthis%2Escreen%2Eheight%0A%20%20%20%20%29%3B%0A%20%20%7D%3B%0A%0A%20%20this%2EgetMouseProjectionOnBall%20%3D%20%28function%28%29%7B%0A%20%20%20%20var%20objectUp%20%3D%20new%20THREE%2EVector3%28%29%2C%0A%20%20%20%20%20%20%20%20mouseOnBall%20%3D%20new%20THREE%2EVector3%28%29%3B%0A%20%20%20%20return%20function%20%28%20pageX%2C%20pageY%2C%20projection%20%29%20%7B%0A%20%20%20%20%20%20mouseOnBall%2Eset%28%0A%20%20%20%20%20%20%20%20%28%20pageX%20%2D%20%5Fthis%2Escreen%2Ewidth%20%2A%200%2E5%20%2D%20%5Fthis%2Escreen%2Eleft%20%29%20%2F%20%28%5Fthis%2Escreen%2Ewidth%2A%2E5%29%2C%0A%20%20%20%20%20%20%20%20%28%20%5Fthis%2Escreen%2Eheight%20%2A%200%2E5%20%2B%20%5Fthis%2Escreen%2Etop%20%2D%20pageY%20%29%20%2F%20%28%5Fthis%2Escreen%2Eheight%2A%2E5%29%2C%0A%20%20%20%20%20%20%20%200%2E0%0A%20%20%20%20%20%20%29%3B%0A%20%20%20%20%20%20var%20length%20%3D%20mouseOnBall%2Elength%28%29%3B%0A%20%20%20%20%20%20if%20%28%20%5Fthis%2EnoRoll%20%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28%20length%20%3C%20Math%2ESQRT1%5F2%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20mouseOnBall%2Ez%20%3D%20Math%2Esqrt%28%201%2E0%20%2D%20length%2Alength%20%29%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20mouseOnBall%2Ez%20%3D%20%2E5%20%2F%20length%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%20else%20if%20%28%20length%20%3E%201%2E0%20%29%20%7B%0A%20%20%20%20%20%20%20%20mouseOnBall%2Enormalize%28%29%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20mouseOnBall%2Ez%20%3D%20Math%2Esqrt%28%201%2E0%20%2D%20length%20%2A%20length%20%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%5Feye%2Ecopy%28%20%5Fthis%2Eobject%2Eposition%20%29%2Esub%28%20%5Fthis%2Etarget%20%29%3B%0A%20%20%20%20%20%20projection%2Ecopy%28%20%5Fthis%2Eobject%2Eup%20%29%2EsetLength%28%20mouseOnBall%2Ey%20%29%0A%20%20%20%20%20%20projection%2Eadd%28%20objectUp%2Ecopy%28%20%5Fthis%2Eobject%2Eup%20%29%2Ecross%28%20%5Feye%20%29%2EsetLength%28%20mouseOnBall%2Ex%20%29%20%29%3B%0A%20%20%20%20%20%20projection%2Eadd%28%20%5Feye%2EsetLength%28%20mouseOnBall%2Ez%20%29%20%29%3B%0A%20%20%20%20%20%20return%20projection%3B%0A%20%20%20%20%7D%0A%20%20%7D%28%29%29%3B%0A%0A%20%20this%2ErotateCamera%20%3D%20%28function%28%29%7B%0A%20%20%20%20var%20axis%20%3D%20new%20THREE%2EVector3%28%29%2C%0A%20%20%20%20%20%20quaternion%20%3D%20new%20THREE%2EQuaternion%28%29%3B%0A%20%20%20%20return%20function%20%28%29%20%7B%0A%20%20%20%20%20%20var%20angle%20%3D%20Math%2Eacos%28%20%5FrotateStart%2Edot%28%20%5FrotateEnd%20%29%20%2F%20%5FrotateStart%2Elength%28%29%20%2F%20%5FrotateEnd%2Elength%28%29%20%29%3B%0A%20%20%20%20%20%20if%20%28%20angle%20%29%20%7B%0A%20%20%20%20%20%20%20%20axis%2EcrossVectors%28%20%5FrotateStart%2C%20%5FrotateEnd%20%29%2Enormalize%28%29%3B%0A%20%20%20%20%20%20%20%20angle%20%2A%3D%20%5Fthis%2ErotateSpeed%3B%0A%20%20%20%20%20%20%20%20quaternion%2EsetFromAxisAngle%28%20axis%2C%20%2Dangle%20%29%3B%0A%20%20%20%20%20%20%20%20%5Feye%2EapplyQuaternion%28%20quaternion%20%29%3B%0A%20%20%20%20%20%20%20%20%5Fthis%2Eobject%2Eup%2EapplyQuaternion%28%20quaternion%20%29%3B%0A%20%20%20%20%20%20%20%20%5FrotateEnd%2EapplyQuaternion%28%20quaternion%20%29%3B%0A%20%20%20%20%20%20%20%20if%20%28%20%5Fthis%2EstaticMoving%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%5FrotateStart%2Ecopy%28%20%5FrotateEnd%20%29%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20quaternion%2EsetFromAxisAngle%28%20axis%2C%20angle%20%2A%20%28%20%5Fthis%2EdynamicDampingFactor%20%2D%201%2E0%20%29%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%5FrotateStart%2EapplyQuaternion%28%20quaternion%20%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%28%29%29%3B%0A%0A%20%20this%2EzoomCamera%20%3D%20function%20%28%29%20%7B%0A%20%20%20%20if%20%28%20%5Fstate%20%3D%3D%3D%20STATE%2ETOUCH%5FZOOM%20%29%20%7B%0A%20%20%20%20%20%20var%20factor%20%3D%20%5FtouchZoomDistanceStart%20%2F%20%5FtouchZoomDistanceEnd%3B%0A%20%20%20%20%20%20%5FtouchZoomDistanceStart%20%3D%20%5FtouchZoomDistanceEnd%3B%0A%20%20%20%20%20%20%5Feye%2EmultiplyScalar%28%20factor%20%29%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20var%20factor%20%3D%201%2E0%20%2B%20%28%20%5FzoomEnd%2Ey%20%2D%20%5FzoomStart%2Ey%20%29%20%2A%20%5Fthis%2EzoomSpeed%3B%0A%20%20%20%20%20%20if%20%28%20factor%20%21%3D%3D%201%2E0%20%26%26%20factor%20%3E%200%2E0%20%29%20%7B%0A%20%20%20%20%20%20%20%20%5Feye%2EmultiplyScalar%28%20factor%20%29%3B%0A%20%20%20%20%20%20%20%20if%20%28%20%5Fthis%2EstaticMoving%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%5FzoomStart%2Ecopy%28%20%5FzoomEnd%20%29%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%5FzoomStart%2Ey%20%2B%3D%20%28%20%5FzoomEnd%2Ey%20%2D%20%5FzoomStart%2Ey%20%29%20%2A%20this%2EdynamicDampingFactor%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%3B%0A%0A%20%20this%2EpanCamera%20%3D%20%28function%28%29%7B%0A%20%20%20%20var%20mouseChange%20%3D%20new%20THREE%2EVector2%28%29%2C%0A%20%20%20%20%20%20objectUp%20%3D%20new%20THREE%2EVector3%28%29%2C%0A%20%20%20%20%20%20pan%20%3D%20new%20THREE%2EVector3%28%29%3B%0A%20%20%20%20return%20function%20%28%29%20%7B%0A%20%20%20%20%20%20mouseChange%2Ecopy%28%20%5FpanEnd%20%29%2Esub%28%20%5FpanStart%20%29%3B%0A%20%20%20%20%20%20if%20%28%20mouseChange%2ElengthSq%28%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20mouseChange%2EmultiplyScalar%28%20%5Feye%2Elength%28%29%20%2A%20%5Fthis%2EpanSpeed%20%29%3B%0A%20%20%20%20%20%20%20%20pan%2Ecopy%28%20%5Feye%20%29%2Ecross%28%20%5Fthis%2Eobject%2Eup%20%29%2EsetLength%28%20mouseChange%2Ex%20%29%3B%0A%20%20%20%20%20%20%20%20pan%2Eadd%28%20objectUp%2Ecopy%28%20%5Fthis%2Eobject%2Eup%20%29%2EsetLength%28%20mouseChange%2Ey%20%29%20%29%3B%0A%20%20%20%20%20%20%20%20%5Fthis%2Eobject%2Eposition%2Eadd%28%20pan%20%29%3B%0A%20%20%20%20%20%20%20%20%5Fthis%2Etarget%2Eadd%28%20pan%20%29%3B%0A%20%20%20%20%20%20%20%20if%20%28%20%5Fthis%2EstaticMoving%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%5FpanStart%2Ecopy%28%20%5FpanEnd%20%29%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%5FpanStart%2Eadd%28%20mouseChange%2EsubVectors%28%20%5FpanEnd%2C%20%5FpanStart%20%29%2EmultiplyScalar%28%20%5Fthis%2EdynamicDampingFactor%20%29%20%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%28%29%29%3B%0A%0A%20%20this%2EcheckDistances%20%3D%20function%20%28%29%20%7B%0A%20%20%20%20if%20%28%20%21%5Fthis%2EnoZoom%20%7C%7C%20%21%5Fthis%2EnoPan%20%29%20%7B%0A%20%20%20%20%20%20if%20%28%20%5Feye%2ElengthSq%28%29%20%3E%20%5Fthis%2EmaxDistance%20%2A%20%5Fthis%2EmaxDistance%20%29%20%7B%0A%20%20%20%20%20%20%20%20%5Fthis%2Eobject%2Eposition%2EaddVectors%28%20%5Fthis%2Etarget%2C%20%5Feye%2EsetLength%28%20%5Fthis%2EmaxDistance%20%29%20%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20if%20%28%20%5Feye%2ElengthSq%28%29%20%3C%20%5Fthis%2EminDistance%20%2A%20%5Fthis%2EminDistance%20%29%20%7B%0A%20%20%20%20%20%20%20%20%5Fthis%2Eobject%2Eposition%2EaddVectors%28%20%5Fthis%2Etarget%2C%20%5Feye%2EsetLength%28%20%5Fthis%2EminDistance%20%29%20%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%3B%0A%0A%20%20this%2Eupdate%20%3D%20function%20%28%29%0A%20%20%7B%0A%20%20%20%20%5Feye%2EsubVectors%28%20%5Fthis%2Eobject%2Eposition%2C%20%5Fthis%2Etarget%20%29%3B%0A%20%20%20%20if%20%28%20%21%5Fthis%2EnoRotate%20%29%20%7B%0A%20%20%20%20%20%20%5Fthis%2ErotateCamera%28%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20%28%20%21%5Fthis%2EnoZoom%20%29%20%7B%0A%20%20%20%20%20%20%5Fthis%2EzoomCamera%28%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20%28%20%21%5Fthis%2EnoPan%20%29%20%7B%0A%20%20%20%20%20%20%5Fthis%2EpanCamera%28%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20%5Fthis%2Eobject%2Eposition%2EaddVectors%28%20%5Fthis%2Etarget%2C%20%5Feye%20%29%3B%0A%20%20%20%20%5Fthis%2EcheckDistances%28%29%3B%0A%20%20%20%20%5Fthis%2Eobject%2ElookAt%28%20%5Fthis%2Etarget%20%29%3B%0A%20%20%20%20if%20%28%20lastPosition%2EdistanceToSquared%28%20%5Fthis%2Eobject%2Eposition%20%29%20%3E%200%20%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%5Fthis%2EdispatchEvent%28%20changeEvent%20%29%3B%0A%20%20%20%20%20%20lastPosition%2Ecopy%28%20%5Fthis%2Eobject%2Eposition%20%29%3B%0A%20%20%20%20%20%20%5Fthis%2Eidle%20%3D%20false%0A%20%20%20%20%7D%20else%20%7B%5Fthis%2Eidle%20%3D%20true%7D%3B%0A%20%20%7D%3B%0A%0A%20%20this%2Ereset%20%3D%20function%20%28%29%20%7B%0A%20%20%20%20%5Fstate%20%3D%20STATE%2ENONE%3B%0A%20%20%20%20%5FprevState%20%3D%20STATE%2ENONE%3B%0A%20%20%20%20%5Fthis%2Etarget%2Ecopy%28%20%5Fthis%2Etarget0%20%29%3B%0A%20%20%20%20%5Fthis%2Eobject%2Eposition%2Ecopy%28%20%5Fthis%2Eposition0%20%29%3B%0A%20%20%20%20%5Fthis%2Eobject%2Eup%2Ecopy%28%20%5Fthis%2Eup0%20%29%3B%0A%20%20%20%20%5Feye%2EsubVectors%28%20%5Fthis%2Eobject%2Eposition%2C%20%5Fthis%2Etarget%20%29%3B%0A%20%20%20%20%5Fthis%2Eobject%2ElookAt%28%20%5Fthis%2Etarget%20%29%3B%0A%20%20%20%20%5Fthis%2EdispatchEvent%28%20changeEvent%20%29%3B%0A%20%20%20%20lastPosition%2Ecopy%28%20%5Fthis%2Eobject%2Eposition%20%29%3B%0A%20%20%7D%3B%0A%0A%20%20%2F%2F%20listeners%0A%0A%20%20function%20mousedown%28%20event%20%29%20%7B%0A%20%20%20%20if%20%28%20%5Fthis%2Eenabled%20%3D%3D%3D%20false%20%29%20return%3B%0A%20%20%20%20if%20%28%20%5Fstate%20%3D%3D%3D%20STATE%2ENONE%20%29%20%7B%0A%20%20%20%20%20%20%5Fstate%20%3D%20event%2Ebutton%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20%28%20%5Fstate%20%3D%3D%3D%20STATE%2EROTATE%20%26%26%20%21%5Fthis%2EnoRotate%20%29%20%7B%0A%20%20%20%20%20%20%5Fthis%2EgetMouseProjectionOnBall%28%20event%2EpageX%2C%20event%2EpageY%2C%20%5FrotateStart%20%29%3B%0A%20%20%20%20%20%20%5FrotateEnd%2Ecopy%28%5FrotateStart%29%0A%20%20%20%20%7D%20else%20if%20%28%20%5Fstate%20%3D%3D%3D%20STATE%2EZOOM%20%26%26%20%21%5Fthis%2EnoZoom%20%29%20%7B%0A%20%20%20%20%20%20%5Fthis%2EgetMouseOnScreen%28%20event%2EpageX%2C%20event%2EpageY%2C%20%5FzoomStart%20%29%3B%0A%20%20%20%20%20%20%5FzoomEnd%2Ecopy%28%5FzoomStart%29%3B%0A%20%20%20%20%7D%20else%20if%20%28%20%5Fstate%20%3D%3D%3D%20STATE%2EPAN%20%26%26%20%21%5Fthis%2EnoPan%20%29%20%7B%0A%20%20%20%20%20%20%5Fthis%2EgetMouseOnScreen%28%20event%2EpageX%2C%20event%2EpageY%2C%20%5FpanStart%20%29%3B%0A%20%20%20%20%20%20%5FpanEnd%2Ecopy%28%5FpanStart%29%0A%20%20%20%20%7D%0A%20%20%20%20document%2EaddEventListener%28%20%27mousemove%27%2C%20mousemove%2C%20false%20%29%3B%0A%20%20%20%20document%2EaddEventListener%28%20%27mouseup%27%2C%20mouseup%2C%20false%20%29%3B%0A%20%20%20%20%5Fthis%2EdispatchEvent%28%20startEvent%20%29%3B%0A%20%20%7D%0A%0A%20%20function%20mousemove%28%20event%20%29%20%7B%0A%20%20%20%20if%20%28%20%5Fthis%2Eenabled%20%3D%3D%3D%20false%20%29%20return%3B%0A%20%20%20%20if%20%28%20%5Fstate%20%3D%3D%3D%20STATE%2EROTATE%20%26%26%20%21%5Fthis%2EnoRotate%20%29%20%7B%0A%20%20%20%20%20%20%5Fthis%2EgetMouseProjectionOnBall%28%20event%2EpageX%2C%20event%2EpageY%2C%20%5FrotateEnd%20%29%3B%0A%20%20%20%20%7D%20else%20if%20%28%20%5Fstate%20%3D%3D%3D%20STATE%2EZOOM%20%26%26%20%21%5Fthis%2EnoZoom%20%29%20%7B%0A%20%20%20%20%20%20%5Fthis%2EgetMouseOnScreen%28%20event%2EpageX%2C%20event%2EpageY%2C%20%5FzoomEnd%20%29%3B%0A%20%20%20%20%7D%20else%20if%20%28%20%5Fstate%20%3D%3D%3D%20STATE%2EPAN%20%26%26%20%21%5Fthis%2EnoPan%20%29%20%7B%0A%20%20%20%20%20%20%5Fthis%2EgetMouseOnScreen%28%20event%2EpageX%2C%20event%2EpageY%2C%20%5FpanEnd%20%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20function%20mouseup%28%20event%20%29%20%7B%0A%20%20%20%20if%20%28%20%5Fthis%2Eenabled%20%3D%3D%3D%20false%20%29%20return%3B%0A%20%20%20%20%5Fstate%20%3D%20STATE%2ENONE%3B%0A%20%20%20%20document%2EremoveEventListener%28%20%27mousemove%27%2C%20mousemove%20%29%3B%0A%20%20%20%20document%2EremoveEventListener%28%20%27mouseup%27%2C%20mouseup%20%29%3B%0A%20%20%20%20%5Fthis%2EdispatchEvent%28%20endEvent%20%29%3B%0A%20%20%7D%0A%0A%20%20function%20mousewheel%28%20event%20%29%20%7B%0A%20%20%20%20if%20%28%20%5Fthis%2Eenabled%20%3D%3D%3D%20false%20%29%20return%3B%0A%20%20%20%20event%2EpreventDefault%28%29%3B%0A%20%20%20%20event%2EstopPropagation%28%29%3B%0A%20%20%20%20var%20delta%20%3D%200%3B%0A%20%20%20%20if%20%28%20event%2EwheelDelta%20%29%20%7B%20%2F%2F%20WebKit%20%2F%20Opera%20%2F%20Explorer%209%0A%20%20%20%20%20%20delta%20%3D%20event%2EwheelDelta%20%2F%2040%3B%0A%20%20%20%20%7D%20else%20if%20%28%20event%2Edetail%20%29%20%7B%20%2F%2F%20Firefox%0A%20%20%20%20%20%20delta%20%3D%20%2D%20event%2Edetail%20%2F%203%3B%0A%20%20%20%20%7D%0A%20%20%20%20%5FzoomStart%2Ey%20%2B%3D%20delta%20%2A%200%2E01%3B%0A%20%20%20%20%5Fthis%2EdispatchEvent%28%20startEvent%20%29%3B%0A%20%20%20%20%5Fthis%2EdispatchEvent%28%20endEvent%20%29%3B%0A%20%20%7D%0A%0A%20%20function%20touchstart%28%20event%20%29%20%7B%0A%20%20%20%20if%20%28%20%5Fthis%2Eenabled%20%3D%3D%3D%20false%20%29%20return%3B%0A%20%20%20%20switch%20%28%20event%2Etouches%2Elength%20%29%20%7B%0A%20%20%20%20%20%20case%201%3A%0A%20%20%20%20%20%20%20%20%5Fstate%20%3D%20STATE%2ETOUCH%5FROTATE%3B%0A%20%20%20%20%20%20%20%20%5FrotateEnd%2Ecopy%28%20%5Fthis%2EgetMouseProjectionOnBall%28%20event%2Etouches%5B%200%20%5D%2EpageX%2C%20event%2Etouches%5B%200%20%5D%2EpageY%2C%20%5FrotateStart%20%29%29%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20case%202%3A%0A%20%20%20%20%20%20%20%20%5Fstate%20%3D%20STATE%2ETOUCH%5FZOOM%3B%0A%20%20%20%20%20%20%20%20var%20dx%20%3D%20event%2Etouches%5B%200%20%5D%2EpageX%20%2D%20event%2Etouches%5B%201%20%5D%2EpageX%3B%0A%20%20%20%20%20%20%20%20var%20dy%20%3D%20event%2Etouches%5B%200%20%5D%2EpageY%20%2D%20event%2Etouches%5B%201%20%5D%2EpageY%3B%0A%20%20%20%20%20%20%20%20%5FtouchZoomDistanceEnd%20%3D%20%5FtouchZoomDistanceStart%20%3D%20Math%2Esqrt%28%20dx%20%2A%20dx%20%2B%20dy%20%2A%20dy%20%29%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20case%203%3A%0A%20%20%20%20%20%20%20%20%5Fstate%20%3D%20STATE%2ETOUCH%5FPAN%3B%0A%20%20%20%20%20%20%20%20%5FpanEnd%2Ecopy%28%20%5Fthis%2EgetMouseOnScreen%28%20event%2Etouches%5B%200%20%5D%2EpageX%2C%20event%2Etouches%5B%200%20%5D%2EpageY%2C%20%5FpanStart%20%29%29%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20default%3A%0A%20%20%20%20%20%20%20%20%5Fstate%20%3D%20STATE%2ENONE%3B%0A%20%20%20%20%7D%0A%20%20%20%20%5Fthis%2EdispatchEvent%28%20startEvent%20%29%3B%0A%20%20%7D%0A%0A%20%20function%20touchmove%28%20event%20%29%20%7B%0A%20%20%20%20if%20%28%20%5Fthis%2Eenabled%20%3D%3D%3D%20false%20%29%20return%3B%0A%20%20%20%20event%2EpreventDefault%28%29%3B%0A%20%20%20%20event%2EstopPropagation%28%29%3B%0A%20%20%20%20switch%20%28%20event%2Etouches%2Elength%20%29%20%7B%0A%20%20%20%20%20%20case%201%3A%0A%20%20%20%20%20%20%20%20%5Fthis%2EgetMouseProjectionOnBall%28%20event%2Etouches%5B%200%20%5D%2EpageX%2C%20event%2Etouches%5B%200%20%5D%2EpageY%2C%20%5FrotateEnd%20%29%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20case%202%3A%0A%20%20%20%20%20%20%20%20var%20dx%20%3D%20event%2Etouches%5B%200%20%5D%2EpageX%20%2D%20event%2Etouches%5B%201%20%5D%2EpageX%3B%0A%20%20%20%20%20%20%20%20var%20dy%20%3D%20event%2Etouches%5B%200%20%5D%2EpageY%20%2D%20event%2Etouches%5B%201%20%5D%2EpageY%3B%0A%20%20%20%20%20%20%20%20%5FtouchZoomDistanceEnd%20%3D%20Math%2Esqrt%28%20dx%20%2A%20dx%20%2B%20dy%20%2A%20dy%20%29%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20case%203%3A%0A%20%20%20%20%20%20%20%20%5Fthis%2EgetMouseOnScreen%28%20event%2Etouches%5B%200%20%5D%2EpageX%2C%20event%2Etouches%5B%200%20%5D%2EpageY%2C%20%5FpanEnd%20%29%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20default%3A%0A%20%20%20%20%20%20%20%20%5Fstate%20%3D%20STATE%2ENONE%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20function%20touchend%28%20event%20%29%20%7B%0A%20%20%20%20if%20%28%20%5Fthis%2Eenabled%20%3D%3D%3D%20false%20%29%20return%3B%0A%20%20%20%20switch%20%28%20event%2Etouches%2Elength%20%29%20%7B%0A%20%20%20%20%20%20case%201%3A%0A%20%20%20%20%20%20%20%20%5FrotateStart%2Ecopy%28%20%5Fthis%2EgetMouseProjectionOnBall%28%20event%2Etouches%5B%200%20%5D%2EpageX%2C%20event%2Etouches%5B%200%20%5D%2EpageY%2C%20%5FrotateEnd%20%29%29%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20case%202%3A%0A%20%20%20%20%20%20%20%20%5FtouchZoomDistanceStart%20%3D%20%5FtouchZoomDistanceEnd%20%3D%200%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20case%203%3A%0A%20%20%20%20%20%20%20%20%5FpanStart%2Ecopy%28%20%5Fthis%2EgetMouseOnScreen%28%20event%2Etouches%5B%200%20%5D%2EpageX%2C%20event%2Etouches%5B%200%20%5D%2EpageY%2C%20%5FpanEnd%20%29%29%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%7D%0A%20%20%20%20%5Fstate%20%3D%20STATE%2ENONE%3B%0A%20%20%20%20%5Fthis%2EdispatchEvent%28endEvent%29%3B%0A%20%20%7D%0A%0A%20%20this%2EdomElement%2EaddEventListener%28%20%27contextmenu%27%2C%20function%20%28%20event%20%29%20%7B%20event%2EpreventDefault%28%29%3B%20%7D%2C%20false%20%29%3B%0A%20%20this%2EdomElement%2EaddEventListener%28%20%27mousedown%27%2C%20mousedown%2C%20false%20%29%3B%0A%20%20this%2EdomElement%2EaddEventListener%28%20%27mousewheel%27%2C%20mousewheel%2C%20false%20%29%3B%0A%20%20this%2EdomElement%2EaddEventListener%28%20%27DOMMouseScroll%27%2C%20mousewheel%2C%20false%20%29%3B%20%2F%2F%20firefox%0A%20%20this%2EdomElement%2EaddEventListener%28%20%27touchstart%27%2C%20touchstart%2C%20false%20%29%3B%0A%20%20this%2EdomElement%2EaddEventListener%28%20%27touchend%27%2C%20touchend%2C%20false%20%29%3B%0A%20%20this%2EdomElement%2EaddEventListener%28%20%27touchmove%27%2C%20touchmove%2C%20false%20%29%3B%0A%20%20this%2EhandleResize%28%29%3B%0A%7D%3B%0A%0ATHREE%2ETrackballControls%2Eprototype%20%3D%20Object%2Ecreate%28%20THREE%2EEventDispatcher%2Eprototype%20%29%3B%0A"></script>
<script src="data:application/x-javascript,%2F%2A%0A%20%2A%20Adapted%20from%20simple%5Fgraph%2Ejs%20by%20David%20Piegza%2C%20see%0A%20%2A%20https%3A%2F%2Fgithub%2Ecom%2Fdavidpiegza%2FGraph%2DVisualization%0A%20%2A%20Copyright%20%28c%29%202011%20David%20Piegza%0A%20%2A%0A%20%2A%20Implements%20a%20simple%20graph%20drawing%20with%20force%2Ddirected%20placement%20in%203D%2E%0A%20%2A%0A%20%2A%20Parameters%3A%0A%20%2A%20options%20%3D%20%7B%0A%20%2A%20%20%20nodes%3A%20A%20data%20frame%20with%20at%20least%20the%205%20columns%20id%2C%20label%2C%20size%2C%0A%20%2A%20%20%20%20%20%20%20%20%20%20color%2C%20type%2E%20The%20id%20column%20is%20the%20data%20frame%20row%20number%2E%0A%20%2A%20%20%20edges%3A%20A%20data%20frame%20with%20at%20least%20the%204%20columns%20from%2C%20to%2C%20size%2C%20color%2E%0A%20%2A%20%20%20%20%20%20%20%20%20%20The%20from%20and%20to%20columns%20indicate%20node%20ids%2E%0A%20%2A%20%7D%0A%20%2A%2F%0A%0AHTMLWidgets%2Ewidget%28%0A%7B%0A%20%20name%3A%20%22graph%22%2C%0A%20%20type%3A%20%22output%22%2C%0A%0A%20%20initialize%3A%20function%28el%2C%20width%2C%20height%29%0A%20%20%7B%0A%20%20%20%20var%20g%20%3D%20new%20Widget%2ESimpleGraph%28%29%3B%0A%20%20%20%20g%2Einit%28el%2C%20parseInt%28width%29%2C%20parseInt%28height%29%29%3B%0A%20%20%20%20return%20%7Bwidget%3A%20g%2C%20width%3A%20parseInt%28width%29%2C%20height%3A%20parseInt%28height%29%7D%3B%0A%20%20%7D%2C%0A%0A%20%20resize%3A%20function%28el%2C%20width%2C%20height%2C%20obj%29%0A%20%20%7B%0A%20%20%20%20obj%2Ewidth%20%3D%20parseInt%28width%29%3B%0A%20%20%20%20obj%2Eheight%20%3D%20parseInt%28height%29%3B%0A%20%20%20%20obj%2Ewidget%2Erenderer%2EsetSize%28width%2C%20height%29%3B%0A%20%20%20%20obj%2Ewidget%2Ereset%28%29%3B%0A%20%20%7D%2C%0A%0A%20%20renderValue%3A%20function%28el%2C%20x%2C%20obj%29%0A%20%20%7B%0A%20%20%20%20obj%2Ewidget%2Ecreate%5Fgraph%28x%29%3B%0A%20%20%20%20obj%2Ewidget%2Erenderer%2EsetSize%28obj%2Ewidth%2C%20obj%2Eheight%29%3B%0A%20%20%20%20obj%2Ewidget%2Eanimate%28%29%3B%20%0A%20%20%7D%0A%7D%29%0A%0A%0A%2F%2A%20Define%20a%20force%2Ddirected%20graph%20widget%20with%20methods%0A%20%2A%20init%28el%2C%20width%2C%20height%29%0A%20%2A%20create%5Fgraph%28options%29%0A%20%2A%20reset%28%29%0A%20%2A%20animate%28%29%0A%20%2A%2F%0Avar%20Widget%20%3D%20Widget%20%7C%7C%20%7B%7D%3B%0AWidget%2ESimpleGraph%20%3D%20function%28%29%0A%7B%0A%2F%2F%20%20var%20options%20%3D%20options%20%7C%7C%20%7B%7D%3B%0A%20%20this%2Eshow%5Ftitle%20%3D%20true%3B%0A%20%20this%2Eshow%5Flabels%20%3D%20false%3B%0A%20%20this%2Elayout%5Foptions%20%3D%20%7B%7D%3B%0A%20%20this%2Eidle%20%3D%20true%3B%0A%0A%20%20var%20camera%2C%20controls%2C%20scene%2C%20object%5Fselection%2C%20sprite%5Fmap%2C%20scene2%3B%0A%20%20var%20info%5Ftext%20%3D%20%7B%7D%3B%0A%20%20var%20graph%20%3D%20new%20Graph%28%29%3B%0A%20%20var%20geometries%20%3D%20%5B%5D%3B%0A%20%20var%20%5Fthis%20%3D%20this%3B%0A%0A%20%20%5Fthis%2Einit%20%3D%20function%20%28el%2C%20width%2C%20height%29%0A%20%20%7B%0A%20%20%20%20%5Fthis%2Erenderer%20%3D%20new%20THREE%2EWebGLRenderer%28%7Balpha%3A%20true%7D%29%3B%0A%20%20%20%20%5Fthis%2Erenderer%2EsortObjects%20%3D%20false%3B%20%2F%2F%20we%20control%20z%2Dorder%20with%20two%20scenes%0A%20%20%20%20%5Fthis%2Erenderer%2EautoClearColor%20%3D%20false%3B%0A%20%20%20%20%5Fthis%2Erenderer%2EsetSize%28el%2EinnerWidth%2C%20el%2EinnerHeight%29%3B%0A%20%20%20%20%5Fthis%2Eel%20%3D%20el%3B%0A%0A%20%20%20%20el%2Eonmousemove%20%3D%20function%28ev%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20if%28%5Fthis%2Eidle%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%5Fthis%2Eidle%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%5Fthis%2Eanimate%28%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20%5Fthis%2Erenderer%2EdomElement%2EaddEventListener%28%27dblclick%27%2C%20function%28ev%29%20%7B%20%5Fthis%2Ereset%28%29%3B%20%7D%2C%20true%29%3B%0A%0A%20%20%20%20camera%20%3D%20new%20THREE%2EPerspectiveCamera%2840%2C%20width%2Fheight%2C%201%2C%201000000%29%3B%0A%20%20%20%20camera%2Eposition%2Ez%20%3D%205000%3B%0A%0A%20%20%20%20controls%20%3D%20new%20THREE%2ETrackballControls%28camera%2C%20el%29%3B%0A%20%20%20%20controls%2ErotateSpeed%20%3D%200%2E5%3B%0A%20%20%20%20controls%2EzoomSpeed%20%3D%205%2E2%3B%0A%20%20%20%20controls%2EpanSpeed%20%3D%201%3B%0A%20%20%20%20controls%2EnoZoom%20%3D%20false%3B%0A%20%20%20%20controls%2EnoPan%20%3D%20false%3B%0A%20%20%20%20controls%2EstaticMoving%20%3D%20false%3B%0A%20%20%20%20controls%2EdynamicDampingFactor%20%3D%200%2E3%3B%0A%20%20%20%20controls%2EaddEventListener%28%27change%27%2C%20render%29%3B%0A%0A%20%20%20%20scene%20%3D%20new%20THREE%2EScene%28%29%3B%0A%20%20%20%20scene2%20%3D%20new%20THREE%2EScene%28%29%3B%0A%0A%20%20%20%20object%5Fselection%20%3D%20new%20THREE%2EObjectSelection%28%7B%0A%20%20%20%20%20%20domElement%3A%20%5Fthis%2Erenderer%2EdomElement%2C%0A%20%20%20%20%20%20controls%3A%20controls%2C%0A%20%20%20%20%20%20graph%3A%20graph%2C%0A%20%20%20%20%20%20selected%3A%20function%28obj%29%20%7B%0A%20%20%20%20%20%20%20%20if%28obj%20%21%3D%20null%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%28typeof%28obj%2Enodeid%29%3D%3D%22number%22%29%20info%5Ftext%2Eselect%20%3D%20graph%2EgetNode%28obj%2Enodeid%29%2Edata%2Etitle%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20delete%20info%5Ftext%2Eselect%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20clicked%3A%20function%28obj%29%20%7B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%29%3B%0A%0A%20%20%20%20el%2EappendChild%28%5Fthis%2Erenderer%2EdomElement%29%3B%0A%0A%20%20%20%20%2F%2F%20Create%20title%2Finfo%20box%0A%20%20%20%20if%28%5Fthis%2Eshow%5Ftitle%29%20%7B%0A%20%20%20%20%20%20var%20info%20%3D%20document%2EcreateElement%28%22div%22%29%3B%0A%20%20%20%20%20%20var%20id%5Fattr%20%3D%20document%2EcreateAttribute%28%22id%22%29%3B%0A%20%20%20%20%20%20id%5Fattr%2EnodeValue%20%3D%20%22graph%2Dinfo%22%3B%0A%20%20%20%20%20%20info%2EsetAttributeNode%28id%5Fattr%29%3B%0A%20%20%20%20%20%20info%2Estyle%2EtextAlign%20%3D%20%22center%22%3B%0A%20%20%20%20%20%20info%2Estyle%2EzIndex%20%3D%20100%3B%0A%20%20%20%20%20%20info%2Estyle%2EfontFamily%20%3D%20%22Sans%22%3B%0A%20%20%20%20%20%20info%2Estyle%2EfontSize%20%3D%20%22x%2Dlarge%22%3B%0A%20%20%20%20%20%20info%2Estyle%2Eposition%20%3D%20%22relative%22%3B%0A%20%20%20%20%20%20info%2Estyle%2Ecolor%20%3D%20%5Fthis%2Efgcss%3B%0A%20%20%20%20%20%20info%2Estyle%2Etop%20%3D%2010%20%2D%20%5Fthis%2Erenderer%2EdomElement%2Eheight%3B%0A%20%20%20%20%20%20el%2EappendChild%28info%29%3B%0A%20%20%20%20%20%20%5Fthis%2Einfobox%20%3D%20info%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20%5Fthis%2Ereset%20%3D%20function%28%29%0A%20%20%7B%0A%20%20%20%20controls%2Ereset%28%29%3B%0A%20%20%20%20graph%2Elayout%2Einit%28%29%3B%0A%20%20%20%20if%28%5Fthis%2Eidle%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%5Fthis%2Eidle%20%3D%20false%3B%0A%20%20%20%20%20%20%5Fthis%2Eanimate%28%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20%2F%2A%20create%5Fgraph%0A%20%20%20%2A%20x%2Enodes%20a%20data%20frame%20with%20at%20least%20columns%20id%2C%20label%2C%20size%2C%20color%0A%20%20%20%2A%20x%2Eedges%20a%20data%20frame%20with%20at%20least%20columns%20from%2C%20to%2C%20size%2C%20color%0A%20%20%20%2A%20x%2Etitle%20a%20character%20plot%20title%0A%20%20%20%2A%20x%2Efg%20foreground%20text%20color%0A%20%20%20%2A%20x%2Ecurvature%20numeric%20edge%20curvature%20%280%20for%20no%20cuvature%29%0A%20%20%20%2A%20x%2EshowLabels%20logical%20if%20true%20show%20node%20labels%0A%20%20%20%2A%20x%2Eattraction%20node%20graph%20attraction%0A%20%20%20%2A%20x%2Erepulsion%20node%20graph%20repulsion%0A%20%20%20%2A%2F%0A%20%20%5Fthis%2Ecreate%5Fgraph%20%3D%20function%28x%29%0A%20%20%7B%0A%20%20%20%20%5Fthis%2Erenderer%2EdomElement%2Estyle%2EbackgroundColor%20%3D%20x%2Ebg%3B%0A%20%20%20%20%5Fthis%2Efg%20%3D%20new%20THREE%2EColor%28x%2Efg%29%3B%0A%20%20%20%20%5Fthis%2Efgcss%20%3D%20x%2Efg%3B%0A%20%20%20%20%5Fthis%2Ecurvature%20%3D%20x%2Ecurvature%20%2F%202%3B%0A%0A%20%20%20%20%2F%2F%20node%20sprite%20%28used%20by%20circular%20nodes%29%2C%20with%20user%2Dsupplied%20stroke%20color%0A%20%20%20%20var%20sz%20%3D%20512%3B%0A%20%20%20%20var%20dataColor%20%3D%20new%20Uint8Array%28%20sz%20%2A%20sz%20%2A%204%20%29%3B%0A%20%20%20%20var%20stroke%20%3D%20new%20THREE%2EColor%28x%2Estroke%29%3B%0A%20%20%20%20var%20alpha%20%3D%20255%20%2A%20x%2Eopacity%3B%0A%20%20%20%20for%28var%20i%20%3D%200%3B%20i%20%3C%20sz%20%2A%20sz%20%2A%204%3B%20i%2B%2B%29%20dataColor%5Bi%5D%20%3D%200%3B%0A%20%20%20%20for%28var%20i%20%3D%200%3B%20i%20%3C%20sz%3B%20i%2B%2B%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20for%28var%20j%20%3D%200%3B%20j%20%3C%20sz%3B%20j%2B%2B%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20var%20dx%20%3D%202%2Ai%2F%28sz%2D1%29%20%2D%201%3B%0A%20%20%20%20%20%20%20%20var%20dy%20%3D%202%2Aj%2F%28sz%2D1%29%20%2D%201%3B%0A%20%20%20%20%20%20%20%20var%20dz%20%3D%20dx%2Adx%20%2B%20dy%2Ady%3B%0A%20%20%20%20%20%20%20%20var%20k%20%3D%20i%2Asz%20%2B%20j%3B%0A%20%20%20%20%20%20%20%20if%28dz%20%3C%3D%200%2E85%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20dataColor%5Bk%2A4%5D%20%3D%20255%3B%0A%20%20%20%20%20%20%20%20%20%20dataColor%5Bk%2A4%20%2B%201%5D%20%3D%20255%3B%0A%20%20%20%20%20%20%20%20%20%20dataColor%5Bk%2A4%20%2B%202%5D%20%3D%20255%3B%0A%20%20%20%20%20%20%20%20%20%20dataColor%5Bk%2A4%20%2B%203%5D%20%3D%20alpha%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20if%28dz%20%3E%200%2E85%20%26%26%20dz%20%3C%201%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20dataColor%5Bk%2A4%5D%20%3D%20Math%2Efloor%28stroke%2Er%20%2A%20255%29%3B%0A%20%20%20%20%20%20%20%20%20%20dataColor%5Bk%2A4%20%2B%201%5D%20%3D%20Math%2Efloor%28stroke%2Eg%20%2A%20255%29%3B%0A%20%20%20%20%20%20%20%20%20%20dataColor%5Bk%2A4%20%2B%202%5D%20%3D%20Math%2Efloor%28stroke%2Eb%20%2A%20255%29%3B%0A%20%20%20%20%20%20%20%20%20%20dataColor%5Bk%2A4%20%2B%203%5D%20%3D%20alpha%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20sprite%5Fmap%20%3D%20new%20THREE%2EDataTexture%28dataColor%2C%20sz%2C%20sz%2C%20THREE%2ERGBAFormat%2C%20THREE%2EUnsignedByteType%20%29%3B%0A%20%20%20%20sprite%5Fmap%2EneedsUpdate%20%3D%20true%3B%0A%0A%20%20%20%20for%28var%20j%3D0%3B%20j%20%3C%20x%2Enodes%2Elength%3B%20j%2B%2B%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20var%20node%20%3D%20new%20Node%28x%2Enodes%5Bj%5D%2Eid%29%3B%0A%20%20%20%20%20%20node%2Edata%2Etitle%20%3D%20x%2Enodes%5Bj%5D%2Elabel%3B%0A%20%20%20%20%20%20node%2Ecolor%20%3D%20new%20THREE%2EColor%28x%2Enodes%5Bj%5D%2Ecolor%29%3B%0A%20%20%20%20%20%20node%2Escale%20%3D%20x%2Enodes%5Bj%5D%2Esize%3B%0A%20%20%20%20%20%20graph%2EaddNode%28node%29%3B%0A%20%20%20%20%20%20drawNode%28node%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20for%28var%20j%3D0%3B%20j%20%3C%20x%2Eedges%2Elength%3B%20j%2B%2B%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20var%20source%20%3D%20graph%2EgetNode%28x%2Eedges%5Bj%5D%2Efrom%29%3B%0A%20%20%20%20%20%20var%20target%20%3D%20graph%2EgetNode%28x%2Eedges%5Bj%5D%2Eto%29%3B%0A%20%20%20%20%20%20graph%2EaddEdge%28source%2C%20target%29%3B%0A%20%20%20%20%20%20drawEdge%28source%2C%20target%2C%20new%20THREE%2EColor%28x%2Eedges%5Bj%5D%2Ecolor%29%2C%202%2Ax%2Eedges%5Bj%5D%2Esize%2C%20x%2Ecurvature%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20%5Fthis%2Eshow%5Flabels%20%3D%20x%2EshowLabels%3B%0A%20%20%20%20%5Fthis%2Elayout%5Foptions%2Ewidth%20%3D%20%5Fthis%2Elayout%5Foptions%2Ewidth%20%7C%7C%202000%3B%0A%20%20%20%20%5Fthis%2Elayout%5Foptions%2Eheight%20%3D%20%5Fthis%2Elayout%5Foptions%2Eheight%20%7C%7C%202000%3B%0A%20%20%20%20%5Fthis%2Elayout%5Foptions%2Eattraction%20%3D%20x%2Eattraction%3B%0A%20%20%20%20%5Fthis%2Elayout%5Foptions%2Erepulsion%20%3D%20x%2Erepulsion%3B%0A%20%20%20%20%5Fthis%2Elayout%5Foptions%2Eiterations%20%3D%20x%2Eiterations%3B%0A%20%20%20%20graph%2Elayout%20%3D%20new%20Layout%2EForceDirected%28graph%2C%20%5Fthis%2Elayout%5Foptions%29%3B%0A%20%20%20%20graph%2Elayout%2Einit%28%29%3B%0A%20%20%20%20info%5Ftext%2Etitle%20%3D%20x%2Emain%3B%0A%20%20%20%20%5Fthis%2Eidle%20%3D%20false%3B%0A%20%20%7D%0A%0A%0A%20%20%2F%2A%0A%20%20%20%2A%20%20Create%20a%20node%20object%20and%20add%20it%20to%20the%20scene2%2E%0A%20%20%20%2A%2F%0A%20%20function%20drawNode%28node%29%0A%20%20%7B%0A%20%20%20%20var%20draw%5Fobject%3B%0A%20%20%20%20var%20draw%5Fscale%20%3D%20100%3B%0A%20%20%20%20var%20smaterial%20%3D%20new%20THREE%2ESpriteMaterial%28%7Bcolor%3A%20node%2Ecolor%2C%20map%3A%20sprite%5Fmap%7D%29%3B%0A%20%20%20%20draw%5Fobject%20%3D%20new%20THREE%2ESprite%28smaterial%29%3B%0A%20%20%20%20draw%5Fobject%2Escale%2Ex%20%3D%20draw%5Fobject%2Escale%2Ey%20%3D%20draw%5Fscale%20%2A%20node%2Escale%3B%0A%20%20%20%20var%20area%20%3D%2050%3B%0A%20%20%20%20draw%5Fobject%2Eposition%2Ex%20%3D%20Math%2Efloor%28Math%2Erandom%28%29%20%2A%20%28area%20%2B%20area%20%2B%201%29%20%2D%20area%29%3B%0A%20%20%20%20draw%5Fobject%2Eposition%2Ey%20%3D%20Math%2Efloor%28Math%2Erandom%28%29%20%2A%20%28area%20%2B%20area%20%2B%201%29%20%2D%20area%29%3B%0A%20%20%20%20draw%5Fobject%2Eposition%2Ez%20%3D%20Math%2Efloor%28Math%2Erandom%28%29%20%2A%20%28area%20%2B%20area%20%2B%201%29%20%2D%20area%29%3B%0A%20%20%20%20draw%5Fobject%2Enodeid%20%3D%20node%2Eid%3B%0A%20%20%20%20node%2Edata%2Edraw%5Fobject%20%3D%20draw%5Fobject%3B%0A%20%20%20%20node%2Eposition%20%3D%20draw%5Fobject%2Eposition%3B%0A%20%20%20%20scene2%2Eadd%28node%2Edata%2Edraw%5Fobject%29%3B%0A%20%20%7D%0A%0A%20%20update%5Fedge%20%3D%20function%28geo%2C%20curvature%29%0A%20%20%7B%0A%20%20%20%20geo%2Evertices%20%3D%20%5B%5D%3B%0A%20%20%20%20if%28curvature%20%3E%200%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20var%20dx%20%3D%20geo%2Esource%2Edata%2Edraw%5Fobject%2Eposition%2Ex%20%2D%20%20geo%2Etarget%2Edata%2Edraw%5Fobject%2Eposition%2Ex%3B%0A%20%20%20%20%20%20var%20dy%20%3D%20geo%2Esource%2Edata%2Edraw%5Fobject%2Eposition%2Ey%20%2D%20%20geo%2Etarget%2Edata%2Edraw%5Fobject%2Eposition%2Ey%3B%0A%20%20%20%20%20%20var%20dz%20%3D%20geo%2Esource%2Edata%2Edraw%5Fobject%2Eposition%2Ez%20%2D%20%20geo%2Etarget%2Edata%2Edraw%5Fobject%2Eposition%2Ez%3B%0A%20%20%20%20%20%20var%20sx%20%3D%20geo%2Esource%2Edata%2Edraw%5Fobject%2Eposition%2Ex%20%2B%20%20geo%2Etarget%2Edata%2Edraw%5Fobject%2Eposition%2Ex%3B%0A%20%20%20%20%20%20var%20sy%20%3D%20geo%2Esource%2Edata%2Edraw%5Fobject%2Eposition%2Ey%20%2B%20%20geo%2Etarget%2Edata%2Edraw%5Fobject%2Eposition%2Ey%3B%0A%20%20%20%20%20%20var%20sz%20%3D%20geo%2Esource%2Edata%2Edraw%5Fobject%2Eposition%2Ez%20%2B%20%20geo%2Etarget%2Edata%2Edraw%5Fobject%2Eposition%2Ez%3B%0A%20%20%20%20%20%20var%20n%20%20%3D%20Math%2Esqrt%28geo%2Esource%2Edata%2Edraw%5Fobject%2Eposition%2Ex%20%2A%20geo%2Esource%2Edata%2Edraw%5Fobject%2Eposition%2Ex%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20geo%2Esource%2Edata%2Edraw%5Fobject%2Eposition%2Ey%20%2A%20geo%2Esource%2Edata%2Edraw%5Fobject%2Eposition%2Ey%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20geo%2Esource%2Edata%2Edraw%5Fobject%2Eposition%2Ez%20%2A%20geo%2Esource%2Edata%2Edraw%5Fobject%2Eposition%2Ez%29%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Math%2Esqrt%28geo%2Etarget%2Edata%2Edraw%5Fobject%2Eposition%2Ex%20%2A%20geo%2Etarget%2Edata%2Edraw%5Fobject%2Eposition%2Ex%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20geo%2Etarget%2Edata%2Edraw%5Fobject%2Eposition%2Ey%20%2A%20geo%2Etarget%2Edata%2Edraw%5Fobject%2Eposition%2Ey%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20geo%2Etarget%2Edata%2Edraw%5Fobject%2Eposition%2Ez%20%2A%20geo%2Etarget%2Edata%2Edraw%5Fobject%2Eposition%2Ez%29%3B%0A%20%20%20%20%20%20var%20a%20%20%3D%20curvature%20%2A%20Math%2Esign%28geo%2Esource%2Eid%20%2D%20geo%2Etarget%2Eid%29%20%2A%20Math%2Esqrt%28dx%20%2A%20dx%20%2B%20dy%20%2A%20dy%20%2B%20dz%20%2A%20dz%29%20%2F%20n%3B%0A%20%20%20%20%20%20var%20v%20%3D%20new%20THREE%2EVector3%28sx%2F2%2C%20sy%2F2%2C%20sz%2F2%20%2B%20a%2Asz%2F2%29%3B%0A%20%20%20%20%20%20var%20curve%20%3D%20new%20THREE%2ESplineCurve3%28%5Bgeo%2Esource%2Edata%2Edraw%5Fobject%2Eposition%2C%20v%2C%20geo%2Etarget%2Edata%2Edraw%5Fobject%2Eposition%5D%29%3B%0A%20%20%20%20%20%20geo%2Evertices%20%3D%20curve%2EgetPoints%2820%29%3B%0A%20%20%20%20%7D%20else%0A%20%20%20%20%7B%0A%20%20%20%20%20%20geo%2Evertices%2Epush%28geo%2Esource%2Edata%2Edraw%5Fobject%2Eposition%29%3B%0A%20%20%20%20%20%20geo%2Evertices%2Epush%28geo%2Etarget%2Edata%2Edraw%5Fobject%2Eposition%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20function%20drawEdge%28source%2C%20target%2C%20color%2C%20size%2C%20curvature%29%20%7B%0A%20%20%20%20var%20material%20%3D%20new%20THREE%2ELineBasicMaterial%28%7B%20color%3A%20color%2C%20opacity%3A%201%2C%20linewidth%3A%20size%20%7D%29%3B%0A%20%20%20%20var%20geo%20%3D%20new%20THREE%2EGeometry%28%29%3B%0A%20%20%20%20geo%2Esource%20%3D%20source%3B%0A%20%20%20%20geo%2Etarget%20%3D%20target%3B%0A%20%20%20%20update%5Fedge%28geo%2C%20curvature%29%3B%0A%20%20%20%20var%20line%20%3D%20new%20THREE%2ELine%28%20geo%2C%20material%20%29%3B%0A%20%20%20%20line%2Escale%2Ex%20%3D%20line%2Escale%2Ey%20%3D%20line%2Escale%2Ez%20%3D%201%3B%0A%20%20%20%20line%2EoriginalScale%20%3D%201%3B%0A%20%20%20%20geometries%2Epush%28geo%29%3B%0A%20%20%20%20scene%2Eadd%28line%29%3B%0A%20%20%7D%0A%0A%20%20%0A%20%20%5Fthis%2Eanimate%20%3D%20function%20%28%29%0A%20%20%7B%0A%20%20%20%20controls%2Eupdate%28%29%3B%0A%20%20%20%20render%28%29%3B%0A%20%20%20%20if%28%5Fthis%2Eshow%5Ftitle%29%20%7B%0A%20%20%20%20%20%20printInfo%28%29%3B%20%2F%2F%20XXX%20why%20repeat%20this%20over%20and%20over%3F%20Improve%2E%2E%2E%0A%20%20%20%20%7D%0A%20%20%20%20if%28%21%20%5Fthis%2Eidle%29%20%20requestAnimationFrame%28%5Fthis%2Eanimate%29%3B%20%2F%2F%20Aggressive%20render%20loop%20%28hogs%20CPU%29%0A%20%20%7D%3B%0A%0A%20%20function%20render%28%29%0A%20%20%7B%0A%20%20%20%20if%28graph%2Elayout%2Efinished%20%26%26%20controls%2Eidle%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%5Fthis%2Eidle%20%3D%20true%3B%20%2F%2F%20Conserve%20CPU%20by%20terminating%20render%20loop%20when%20not%20needed%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20if%28%21graph%2Elayout%2Efinished%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2F%20continue%20layout%20if%20not%20finished%0A%20%20%20%20%20%20%20%20graph%2Elayout%2Egenerate%28%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F%2F%20Update%20position%20of%20lines%20%28edges%29%0A%20%20%20%20for%28var%20i%3D0%3B%20i%3C%20geometries%2Elength%3B%20i%2B%2B%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20if%28%5Fthis%2Ecurvature%20%3E%200%29%20%20update%5Fedge%28geometries%5Bi%5D%2C%20%5Fthis%2Ecurvature%29%3B%20%20%20%2F%2F%20only%20needed%20if%20spline%20edge%0A%20%20%20%20%20%20geometries%5Bi%5D%2EverticesNeedUpdate%20%3D%20true%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F%2F%20Show%20labels%20if%20set%0A%20%20%20%20%2F%2F%20It%20creates%20the%20labels%20when%20this%20options%20is%20set%20during%20visualization%0A%20%20%20%20if%28%5Fthis%2Eshow%5Flabels%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20var%20length%20%3D%20graph%2Enodes%2Elength%3B%0A%20%20%20%20%20%20for%28var%20i%3D0%3B%20i%3Clength%3B%20i%2B%2B%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20var%20node%20%3D%20graph%2Enodes%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20var%20text%5Fscale%20%3D%20500%20%2A%20Math%2Emax%280%2E75%2C%20node%2Escale%29%3B%0A%20%20%20%20%20%20%20%20if%28node%2Edata%2Elabel%5Fobject%20%21%3D%20undefined%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20node%2Edata%2Elabel%5Fobject%2Eposition%2Ex%20%3D%20node%2Edata%2Edraw%5Fobject%2Eposition%2Ex%3B%0A%20%20%20%20%20%20%20%20%20%20node%2Edata%2Elabel%5Fobject%2Eposition%2Ey%20%3D%20node%2Edata%2Edraw%5Fobject%2Eposition%2Ey%20%2D%20100%3B%0A%20%20%20%20%20%20%20%20%20%20node%2Edata%2Elabel%5Fobject%2Eposition%2Ez%20%3D%20node%2Edata%2Edraw%5Fobject%2Eposition%2Ez%20%2D%205%2AMath%2Esign%28node%2Edata%2Edraw%5Fobject%2Eposition%2Ez%29%3B%0A%20%20%20%20%20%20%20%20%20%20node%2Edata%2Elabel%5Fobject%2ElookAt%28camera%2Eposition%29%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%28node%2Edata%2Etitle%20%21%3D%20undefined%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20label%5Fobject%20%3D%20new%20THREE%2ELabel%28node%2Edata%2Etitle%2C%20%5Fthis%2Efg%2C%20text%5Fscale%2C%20node%2Edata%2Edraw%5Fobject%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20node%2Edata%2Elabel%5Fobject%20%3D%20label%5Fobject%3B%0A%20%20%20%20%20%20%20%20%20%20scene%2Eadd%28%20node%2Edata%2Elabel%5Fobject%20%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20var%20length%20%3D%20graph%2Enodes%2Elength%3B%0A%20%20%20%20%20%20for%28var%20i%3D0%3B%20i%3Clength%3B%20i%2B%2B%29%20%7B%0A%20%20%20%20%20%20%20%20var%20node%20%3D%20graph%2Enodes%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20if%28node%2Edata%2Elabel%5Fobject%20%21%3D%20undefined%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20scene%2Eremove%28%20node%2Edata%2Elabel%5Fobject%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20node%2Edata%2Elabel%5Fobject%20%3D%20undefined%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F%2F%20render%20scenes%0A%20%20%20%20%5Fthis%2Erenderer%2Erender%28%20scene%2C%20camera%20%29%3B%0A%20%20%20%20object%5Fselection%2Erender%28scene2%2C%20camera%29%3B%0A%20%20%20%20%5Fthis%2Erenderer%2Erender%28%20scene2%2C%20camera%20%29%3B%0A%20%20%7D%0A%0A%20%20%2F%2A%2A%0A%20%20%20%2A%20%20Prints%20info%20from%20the%20attribute%20info%5Ftext%2E%0A%20%20%20%2A%2F%0A%20%20function%20printInfo%28text%29%20%7B%0A%20%20%20%20var%20str%20%3D%20%27%27%3B%0A%20%20%20%20for%28var%20index%20in%20info%5Ftext%29%20%7B%0A%20%20%20%20%20%20if%28str%20%21%3D%20%27%27%20%26%26%20info%5Ftext%5Bindex%5D%20%21%3D%20%27%27%29%20%7B%0A%20%20%20%20%20%20%20%20str%20%2B%3D%20%22%20%2D%20%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20str%20%2B%3D%20info%5Ftext%5Bindex%5D%3B%0A%20%20%20%20%7D%0A%20%20%20%20%5Fthis%2Einfobox%2EinnerHTML%20%3D%20str%3B%0A%20%20%20%20%5Fthis%2Einfobox%2Estyle%2Ecolor%20%3D%20%5Fthis%2Efgcss%3B%0A%20%20%20%20%5Fthis%2Einfobox%2Estyle%2Etop%20%3D%20%22%22%20%2B%2010%20%2D%20%5Fthis%2Erenderer%2EdomElement%2Eheight%20%2B%20%22px%22%3B%0A%20%20%7D%0A%7D%3B%0A"></script>
</head>
<body style="background-color:white;">
<div align="left" style="padding-left: 0.95cm;">
<p id="p01">
3D network visualization of the mouse social network using <a href="https://github.com/bwlewis/rthreejs">threejs R package</a>.<br><br>
Node color refers to community membership.<br>
Nodes are sized by out-degree. <br>
Edges represent frequency of interaction.<br><br>
Hover over nodes to get hub score and I&SI rank.<br>
Use mouse to rotate network and zoom.<br>
If fails to load, hit refresh<br>
<br>
<br>
More details about study <a href="socdom1.html">on previous page</a>
<br>
Back to <a href="https://labs.la.utexas.edu/curley/social-hierarchies-and-networks/">Curley Lab Site</a></p>
</div>
<div id="htmlwidget_container">
<div id="htmlwidget-7983" style="width:960px;height:500px;" class="graph"></div>
</div>
</div>
</div>
<script type="application/json" data-for="htmlwidget-7983">{"x":{"nodes":[{"label":"Community= Other/B; ISI= 22; Hub.Score= 0.23","id":1,"size":0.6897,"color":"blue"},{"label":"Community= A; ISI= 11; Hub.Score= 0.46","id":2,"size":1.2503,"color":"sienna"},{"label":"Community= B; ISI= 15; Hub.Score= 0.35","id":3,"size":0.883,"color":"dodgerblue"},{"label":"Community= A; ISI= 4; Hub.Score= 0.89","id":4,"size":1.8631,"color":"sienna"},{"label":"Community= A; ISI= 30; Hub.Score= 0.06","id":5,"size":0.5287,"color":"sienna"},{"label":"Community= A; ISI= 18; Hub.Score= 0.45","id":6,"size":0.8992,"color":"sienna"},{"label":"Community= B; ISI= 5; Hub.Score= 0.87","id":7,"size":1.7375,"color":"dodgerblue"},{"label":"Community= B; ISI= 14; Hub.Score= 0.54","id":8,"size":1.2607,"color":"dodgerblue"},{"label":"Community= A; ISI= 24; Hub.Score= 0.24","id":9,"size":0.2697,"color":"sienna"},{"label":"Community= A; ISI= 27; Hub.Score= 0.29","id":10,"size":0.5601,"color":"sienna"},{"label":"Community= A; ISI= 26; Hub.Score= 0.11","id":11,"size":0.4181,"color":"sienna"},{"label":"Community= B; ISI= 25; Hub.Score= 0.1","id":12,"size":0.4609,"color":"dodgerblue"},{"label":"Community= A; ISI= 13; Hub.Score= 0.53","id":13,"size":1.001,"color":"sienna"},{"label":"Community= A; ISI= 3; Hub.Score= 0.85","id":14,"size":2.0412,"color":"sienna"},{"label":"Community= B; ISI= 12; Hub.Score= 0.51","id":15,"size":1.112,"color":"dodgerblue"},{"label":"Community= A; ISI= 16; Hub.Score= 0.55","id":16,"size":0.9183,"color":"sienna"},{"label":"Community= A; ISI= 23; Hub.Score= 0.1","id":17,"size":0.7102,"color":"sienna"},{"label":"Community= Other/A; ISI= 17; Hub.Score= 0.32","id":18,"size":1.098,"color":"wheat"},{"label":"Community= A; ISI= 19; Hub.Score= 0.23","id":19,"size":0.6379,"color":"sienna"},{"label":"Community= A; ISI= 8; Hub.Score= 0.53","id":20,"size":1.2761,"color":"sienna"},{"label":"Community= B; ISI= 6; Hub.Score= 0.61","id":21,"size":1.547,"color":"dodgerblue"},{"label":"Community= A; ISI= 28; Hub.Score= 0.06","id":22,"size":0.2,"color":"sienna"},{"label":"Community= A; ISI= 20; Hub.Score= 0.14","id":23,"size":0.839,"color":"sienna"},{"label":"Community= A; ISI= 21; Hub.Score= 0.3","id":24,"size":0.7714,"color":"sienna"},{"label":"Community= Other/B; ISI= 7; Hub.Score= 0.57","id":25,"size":1.1569,"color":"blue"},{"label":"Community= B; ISI= 2; Hub.Score= 0.87","id":26,"size":2.2,"color":"dodgerblue"},{"label":"Community= A; ISI= 10; Hub.Score= 0.61","id":27,"size":1.4512,"color":"sienna"},{"label":"Community= A; ISI= 29; Hub.Score= 0.15","id":28,"size":0.5158,"color":"sienna"},{"label":"Community= B; ISI= 9; Hub.Score= 0.57","id":29,"size":1.2902,"color":"dodgerblue"},{"label":"Community= A; ISI= 1; Hub.Score= 1","id":30,"size":2.1385,"color":"sienna"}],"edges":[{"from":1,"to":21,"size":3,"color":"blue"},{"from":1,"to":26,"size":3,"color":"blue"},{"from":1,"to":3,"size":3,"color":"blue"},{"from":10,"to":14,"size":4,"color":"sienna"},{"from":10,"to":16,"size":4,"color":"sienna"},{"from":10,"to":19,"size":11,"color":"sienna"},{"from":10,"to":22,"size":6,"color":"sienna"},{"from":10,"to":23,"size":3,"color":"sienna"},{"from":10,"to":26,"size":3,"color":"lightgray"},{"from":10,"to":28,"size":4,"color":"sienna"},{"from":11,"to":26,"size":3,"color":"lightgray"},{"from":12,"to":26,"size":5,"color":"dodgerblue"},{"from":13,"to":16,"size":4,"color":"sienna"},{"from":13,"to":23,"size":3,"color":"sienna"},{"from":14,"to":16,"size":4,"color":"sienna"},{"from":14,"to":19,"size":5,"color":"sienna"},{"from":14,"to":24,"size":4,"color":"sienna"},{"from":14,"to":25,"size":3,"color":"lightgray"},{"from":14,"to":26,"size":5,"color":"lightgray"},{"from":14,"to":30,"size":5,"color":"sienna"},{"from":15,"to":21,"size":3,"color":"dodgerblue"},{"from":15,"to":26,"size":6,"color":"dodgerblue"},{"from":16,"to":28,"size":4,"color":"sienna"},{"from":17,"to":27,"size":7,"color":"sienna"},{"from":18,"to":26,"size":3,"color":"lightgray"},{"from":19,"to":22,"size":5,"color":"sienna"},{"from":19,"to":24,"size":6,"color":"sienna"},{"from":19,"to":27,"size":5,"color":"sienna"},{"from":2,"to":23,"size":4,"color":"sienna"},{"from":2,"to":24,"size":4,"color":"sienna"},{"from":2,"to":26,"size":4,"color":"lightgray"},{"from":2,"to":30,"size":3,"color":"sienna"},{"from":20,"to":27,"size":3,"color":"sienna"},{"from":21,"to":25,"size":3,"color":"blue"},{"from":21,"to":26,"size":6,"color":"dodgerblue"},{"from":21,"to":27,"size":3,"color":"lightgray"},{"from":21,"to":29,"size":7,"color":"dodgerblue"},{"from":22,"to":27,"size":8,"color":"sienna"},{"from":23,"to":29,"size":3,"color":"lightgray"},{"from":25,"to":26,"size":3,"color":"blue"},{"from":26,"to":29,"size":12,"color":"dodgerblue"},{"from":28,"to":30,"size":3,"color":"sienna"},{"from":3,"to":21,"size":3,"color":"dodgerblue"},{"from":3,"to":26,"size":3,"color":"dodgerblue"},{"from":3,"to":30,"size":3,"color":"lightgray"},{"from":3,"to":7,"size":4,"color":"dodgerblue"},{"from":3,"to":8,"size":4,"color":"dodgerblue"},{"from":4,"to":10,"size":4,"color":"sienna"},{"from":4,"to":13,"size":3,"color":"sienna"},{"from":4,"to":16,"size":4,"color":"sienna"},{"from":4,"to":17,"size":3,"color":"sienna"},{"from":4,"to":19,"size":9,"color":"sienna"},{"from":4,"to":26,"size":5,"color":"lightgray"},{"from":4,"to":28,"size":3,"color":"sienna"},{"from":4,"to":30,"size":8,"color":"sienna"},{"from":4,"to":7,"size":3,"color":"lightgray"},{"from":4,"to":9,"size":3,"color":"sienna"},{"from":5,"to":13,"size":3,"color":"sienna"},{"from":5,"to":16,"size":3,"color":"sienna"},{"from":6,"to":10,"size":3,"color":"sienna"},{"from":6,"to":14,"size":6,"color":"sienna"},{"from":6,"to":22,"size":3,"color":"sienna"},{"from":6,"to":30,"size":5,"color":"sienna"},{"from":7,"to":11,"size":3,"color":"lightgray"},{"from":7,"to":13,"size":4,"color":"lightgray"},{"from":7,"to":14,"size":4,"color":"lightgray"},{"from":7,"to":21,"size":20,"color":"dodgerblue"},{"from":7,"to":22,"size":3,"color":"lightgray"},{"from":7,"to":26,"size":8,"color":"dodgerblue"},{"from":7,"to":29,"size":7,"color":"dodgerblue"},{"from":7,"to":8,"size":10,"color":"dodgerblue"},{"from":8,"to":13,"size":4,"color":"lightgray"},{"from":8,"to":14,"size":4,"color":"lightgray"},{"from":8,"to":15,"size":4,"color":"dodgerblue"},{"from":8,"to":26,"size":7,"color":"dodgerblue"},{"from":8,"to":28,"size":3,"color":"lightgray"},{"from":9,"to":10,"size":4,"color":"sienna"},{"from":9,"to":11,"size":3,"color":"sienna"},{"from":9,"to":13,"size":4,"color":"sienna"},{"from":9,"to":14,"size":4,"color":"sienna"},{"from":9,"to":16,"size":3,"color":"sienna"},{"from":9,"to":20,"size":3,"color":"sienna"},{"from":9,"to":27,"size":3,"color":"sienna"}],"main":"","bg":"#fbfbfb","fg":"black","showLabels":false,"attraction":1,"repulsion":1,"iterations":1500,"curvature":0,"opacity":1,"stroke":"black"},"evals":[]}</script>
<script type="application/htmlwidget-sizing" data-for="htmlwidget-7983">{"viewer":{"width":450,"height":350,"padding":0,"fill":true},"browser":{"width":960,"height":500,"padding":0,"fill":true}}</script>
</body>
</html>