From 76ca1a66a55841f868ff0e4a1822a0813d9c1491 Mon Sep 17 00:00:00 2001 From: Luigi Fusco Date: Wed, 21 Jul 2021 17:20:58 +0200 Subject: [PATCH 01/19] Add function to get JSON of draw data and record a video --- .vscode/settings.json | 5 +++ DebugGUI/src/DebugGUI.cxx | 77 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..ce48fa6 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "iosfwd": "cpp" + } +} \ No newline at end of file diff --git a/DebugGUI/src/DebugGUI.cxx b/DebugGUI/src/DebugGUI.cxx index e5869b9..1fa617a 100644 --- a/DebugGUI/src/DebugGUI.cxx +++ b/DebugGUI/src/DebugGUI.cxx @@ -9,6 +9,9 @@ #include #include #include +#include +#include +#include static void default_error_callback(int error, const char* description) { @@ -51,9 +54,80 @@ void* initGUI(const char* name, void(*error_callback)(int, char const*descriptio io.Fonts->AddFontFromMemoryTTF((void*)s_iconsFontAwesomeTtf, sizeof(s_iconsFontAwesomeTtf), 12.0f, &icons_config, icons_ranges); ImPlot::CreateContext(); + return window; } +// returns a string containing drawing data in JSON format +// the returned JSON is composed of a list of draw commands +std::string getFrameJSON(ImDrawData *draw_data) { + std::ostringstream json_data; + + json_data << "["; + + for (int cmd_id = 0; cmd_id < draw_data->CmdListsCount; ++cmd_id) { + const auto cmd_list = draw_data->CmdLists[cmd_id]; + const auto vtx_buffer = cmd_list->VtxBuffer; + const auto idx_buffer = cmd_list->IdxBuffer; + const auto cmd_buffer = cmd_list->CmdBuffer; + + + json_data << "{\"vtx\":["; + for (int i = 0; i < vtx_buffer.size(); ++i) { + auto v = vtx_buffer[i]; + json_data << "[" << v.pos.x << "," << v.pos.y << "," << v.col << ',' << v.uv.x << "," << v.uv.y << "]"; + if (i < vtx_buffer.size() - 1) json_data << ","; + } + + json_data << "],\"idx\":["; + for (int i = 0; i < idx_buffer.size(); ++i) { + auto id = idx_buffer[i]; + json_data << id; + if (i < idx_buffer.size() - 1) json_data << ","; + } + + json_data << "],\"cmd\":["; + for (int i = 0; i < cmd_buffer.size(); ++i) { + auto cmd = cmd_buffer[i]; + json_data << "{\"cnt\":" << cmd.ElemCount << ", \"clp\":[" << cmd.ClipRect.x << "," << cmd.ClipRect.y << "," << cmd.ClipRect.z << "," << cmd.ClipRect.w << "]}"; + if (i < cmd_buffer.size() - 1) json_data << ","; + } + json_data << "]}"; + if (cmd_id < draw_data->CmdListsCount - 1) json_data << ","; + } + + json_data << "]"; + + return json_data.str(); +} + +// records a video to a stream as a list of JSON frames +bool recordVideoCallback(ImDrawData *draw_data, std::ostream& stream) { + const int framerate = 10; + const int max_frames = 20; + static bool first = true; + static int curr_frame = 0; + if (curr_frame % framerate == 0 && draw_data->CmdListsCount > 0 && curr_frame/framerate <= max_frames) { + if (first) { + stream << "["; + } + first = false; + + stream << getFrameJSON(draw_data); + + if (curr_frame/framerate < max_frames) { + stream << ",\n"; + } else { + stream << "]" << std::endl; + std::cout << "Video recorded!" << std::endl; + curr_frame++; + return true; + } + } + curr_frame++; + return false; +} + /// @return true if we do not need to exit, false if we do. bool pollGUI(void* context, std::function guiCallback) { @@ -77,7 +151,8 @@ bool pollGUI(void* context, std::function guiCallback) guiCallback(); } ImGui::Render(); - ImGui_ImplGlfwGL3_RenderDrawLists(ImGui::GetDrawData()); + auto draw_data = ImGui::GetDrawData(); + ImGui_ImplGlfwGL3_RenderDrawLists(draw_data); glfwSwapBuffers(window); return true; } From afb136500a3424fefa3e9055d19262fdfc872466 Mon Sep 17 00:00:00 2001 From: Luigi Fusco Date: Wed, 21 Jul 2021 17:26:32 +0200 Subject: [PATCH 02/19] remove settings.json --- .vscode/settings.json | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index ce48fa6..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "files.associations": { - "iosfwd": "cpp" - } -} \ No newline at end of file From 471b6c375f188f4d51309bff28355ff9ed0ad764 Mon Sep 17 00:00:00 2001 From: Luigi Fusco Date: Fri, 23 Jul 2021 13:43:16 +0200 Subject: [PATCH 03/19] remove video function and fix suggestions --- .vscode/settings.json | 5 ++ DebugGUI/src/DebugGUI.cxx | 45 ++-------- texture.png | Bin 0 -> 225431 bytes three.html | 180 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 191 insertions(+), 39 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 texture.png create mode 100644 three.html diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..0cba2e6 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "iostream": "cpp" + } +} \ No newline at end of file diff --git a/DebugGUI/src/DebugGUI.cxx b/DebugGUI/src/DebugGUI.cxx index 1fa617a..6a64bd1 100644 --- a/DebugGUI/src/DebugGUI.cxx +++ b/DebugGUI/src/DebugGUI.cxx @@ -9,9 +9,7 @@ #include #include #include -#include -#include -#include +#include static void default_error_callback(int error, const char* description) { @@ -54,15 +52,14 @@ void* initGUI(const char* name, void(*error_callback)(int, char const*descriptio io.Fonts->AddFontFromMemoryTTF((void*)s_iconsFontAwesomeTtf, sizeof(s_iconsFontAwesomeTtf), 12.0f, &icons_config, icons_ranges); ImPlot::CreateContext(); - return window; } -// returns a string containing drawing data in JSON format -// the returned JSON is composed of a list of draw commands -std::string getFrameJSON(ImDrawData *draw_data) { - std::ostringstream json_data; - +// fills a stream with drawing data in JSON format +// the JSON is composed of a list of draw commands +/// FIXME: document the actual schema of the format. +void getFrameJSON(ImDrawData *draw_data, std::ostream& json_data) +{ json_data << "["; for (int cmd_id = 0; cmd_id < draw_data->CmdListsCount; ++cmd_id) { @@ -71,7 +68,6 @@ std::string getFrameJSON(ImDrawData *draw_data) { const auto idx_buffer = cmd_list->IdxBuffer; const auto cmd_buffer = cmd_list->CmdBuffer; - json_data << "{\"vtx\":["; for (int i = 0; i < vtx_buffer.size(); ++i) { auto v = vtx_buffer[i]; @@ -97,35 +93,6 @@ std::string getFrameJSON(ImDrawData *draw_data) { } json_data << "]"; - - return json_data.str(); -} - -// records a video to a stream as a list of JSON frames -bool recordVideoCallback(ImDrawData *draw_data, std::ostream& stream) { - const int framerate = 10; - const int max_frames = 20; - static bool first = true; - static int curr_frame = 0; - if (curr_frame % framerate == 0 && draw_data->CmdListsCount > 0 && curr_frame/framerate <= max_frames) { - if (first) { - stream << "["; - } - first = false; - - stream << getFrameJSON(draw_data); - - if (curr_frame/framerate < max_frames) { - stream << ",\n"; - } else { - stream << "]" << std::endl; - std::cout << "Video recorded!" << std::endl; - curr_frame++; - return true; - } - } - curr_frame++; - return false; } /// @return true if we do not need to exit, false if we do. diff --git a/texture.png b/texture.png new file mode 100644 index 0000000000000000000000000000000000000000..818e804890c0d5fc4437838a773f420e7656cc71 GIT binary patch literal 225431 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

-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 z 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%0Dwy?CS|6~ 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�HBp(HD~A&yo4o$ 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 UcbwpeT>$xcuKH31@x(IxzY~N+F#rGn literal 0 HcmV?d00001 diff --git a/three.html b/three.html new file mode 100644 index 0000000..4a4dfe5 --- /dev/null +++ b/three.html @@ -0,0 +1,180 @@ + + + + + My first three.js app + + + + + + + + From b2d8acfc40179278240c9150fad7afcb680dba25 Mon Sep 17 00:00:00 2001 From: Luigi Fusco Date: Fri, 23 Jul 2021 13:49:10 +0200 Subject: [PATCH 04/19] fixup! remove video function and fix suggestions remove files --- .vscode/settings.json | 5 -- texture.png | Bin 225431 -> 0 bytes three.html | 180 ------------------------------------------ 3 files changed, 185 deletions(-) delete mode 100644 .vscode/settings.json delete mode 100644 texture.png delete mode 100644 three.html diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 0cba2e6..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "files.associations": { - "iostream": "cpp" - } -} \ No newline at end of file diff --git a/texture.png b/texture.png deleted file mode 100644 index 818e804890c0d5fc4437838a773f420e7656cc71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 225431 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

-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 z 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%0Dwy?CS|6~ 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�HBp(HD~A&yo4o$ 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 UcbwpeT>$xcuKH31@x(IxzY~N+F#rGn diff --git a/three.html b/three.html deleted file mode 100644 index 4a4dfe5..0000000 --- a/three.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - My first three.js app - - - - - - - - From f9ff957f2a38f69b0031014bde13cd38d1e20caf Mon Sep 17 00:00:00 2001 From: Luigi Fusco Date: Fri, 23 Jul 2021 14:11:37 +0200 Subject: [PATCH 05/19] split pollGUI functionalities --- DebugGUI/src/DebugGUI.cxx | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/DebugGUI/src/DebugGUI.cxx b/DebugGUI/src/DebugGUI.cxx index 6a64bd1..ae2c0c9 100644 --- a/DebugGUI/src/DebugGUI.cxx +++ b/DebugGUI/src/DebugGUI.cxx @@ -95,17 +95,14 @@ void getFrameJSON(ImDrawData *draw_data, std::ostream& json_data) json_data << "]"; } -/// @return true if we do not need to exit, false if we do. -bool pollGUI(void* context, std::function guiCallback) +bool pollGUI_gl_init(GLFWwindow* window) { - GLFWwindow* window = reinterpret_cast(context); if (glfwWindowShouldClose(window)) { return false; } glfwPollEvents(); ImGui_ImplGlfwGL3_NewFrame(); - // Rendering int display_w, display_h; glfwGetFramebufferSize(window, &display_w, &display_h); @@ -113,14 +110,38 @@ bool pollGUI(void* context, std::function guiCallback) ImVec4 clear_color = ImColor(114, 144, 154); glClearColor(clear_color.x, clear_color.y, clear_color.z, clear_color.w); glClear(GL_COLOR_BUFFER_BIT); + + return true; +} + +ImDrawData *pollGUI_render(std::function guiCallback) +{ // This is where the magic actually happens... if (guiCallback) { guiCallback(); } ImGui::Render(); - auto draw_data = ImGui::GetDrawData(); + + return ImGui::GetDrawData(); +} + +void pollGUI_gl_end(GLFWwindow* window, ImDrawData *draw_data) +{ ImGui_ImplGlfwGL3_RenderDrawLists(draw_data); glfwSwapBuffers(window); +} + +/// @return true if we do not need to exit, false if we do. +bool pollGUI(void* context, std::function guiCallback) +{ + GLFWwindow* window = reinterpret_cast(context); + + if (!pollGUI_gl_init(window)) { + return false; + } + auto draw_data = pollGUI_render(guiCallback); + pollGUI_gl_end(window, draw_data); + return true; } From 9e336b49d39daaf9e3040976f47bcc810f904770 Mon Sep 17 00:00:00 2001 From: Luigi Fusco Date: Fri, 23 Jul 2021 14:21:07 +0200 Subject: [PATCH 06/19] use void* instead of ImDrawData* --- DebugGUI/src/DebugGUI.cxx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/DebugGUI/src/DebugGUI.cxx b/DebugGUI/src/DebugGUI.cxx index ae2c0c9..da5390f 100644 --- a/DebugGUI/src/DebugGUI.cxx +++ b/DebugGUI/src/DebugGUI.cxx @@ -114,7 +114,8 @@ bool pollGUI_gl_init(GLFWwindow* window) return true; } -ImDrawData *pollGUI_render(std::function guiCallback) +/// @return draw data as void* to avoid dependencies +void *pollGUI_render(std::function guiCallback) { // This is where the magic actually happens... if (guiCallback) { @@ -125,9 +126,9 @@ ImDrawData *pollGUI_render(std::function guiCallback) return ImGui::GetDrawData(); } -void pollGUI_gl_end(GLFWwindow* window, ImDrawData *draw_data) +void pollGUI_gl_end(GLFWwindow* window, void *draw_data) { - ImGui_ImplGlfwGL3_RenderDrawLists(draw_data); + ImGui_ImplGlfwGL3_RenderDrawLists((ImDrawData*)draw_data); glfwSwapBuffers(window); } From c33e17ddc3d2796b893fcfe11ef82865f1467989 Mon Sep 17 00:00:00 2001 From: Luigi Fusco Date: Fri, 23 Jul 2021 18:05:07 +0200 Subject: [PATCH 07/19] add functions in header file and add remote --- DebugGUI/src/DebugGUI.cxx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/DebugGUI/src/DebugGUI.cxx b/DebugGUI/src/DebugGUI.cxx index da5390f..7653593 100644 --- a/DebugGUI/src/DebugGUI.cxx +++ b/DebugGUI/src/DebugGUI.cxx @@ -58,8 +58,10 @@ void* initGUI(const char* name, void(*error_callback)(int, char const*descriptio // fills a stream with drawing data in JSON format // the JSON is composed of a list of draw commands /// FIXME: document the actual schema of the format. -void getFrameJSON(ImDrawData *draw_data, std::ostream& json_data) +void getFrameJSON(void *data, std::ostream& json_data) { + auto draw_data = (ImDrawData*)data; + json_data << "["; for (int cmd_id = 0; cmd_id < draw_data->CmdListsCount; ++cmd_id) { From 9683f766e366576bb654ba427b80613b5d1ced40 Mon Sep 17 00:00:00 2001 From: Luigi Fusco Date: Fri, 23 Jul 2021 18:05:58 +0200 Subject: [PATCH 08/19] fix --- DebugGUI/src/DebugGUI.cxx | 14 +-- DebugGUI/src/DebugGUI.h | 5 + remote/remote.html | 192 ++++++++++++++++++++++++++++++++++++++ remote/texture.png | Bin 0 -> 225431 bytes remote/three.min.js | 6 ++ 5 files changed, 211 insertions(+), 6 deletions(-) create mode 100644 remote/remote.html create mode 100644 remote/texture.png create mode 100644 remote/three.min.js diff --git a/DebugGUI/src/DebugGUI.cxx b/DebugGUI/src/DebugGUI.cxx index 7653593..8d5ec9e 100644 --- a/DebugGUI/src/DebugGUI.cxx +++ b/DebugGUI/src/DebugGUI.cxx @@ -97,8 +97,10 @@ void getFrameJSON(void *data, std::ostream& json_data) json_data << "]"; } -bool pollGUI_gl_init(GLFWwindow* window) +bool pollGUI_gl_init(void* context) { + GLFWwindow* window = reinterpret_cast(context); + if (glfwWindowShouldClose(window)) { return false; } @@ -128,8 +130,10 @@ void *pollGUI_render(std::function guiCallback) return ImGui::GetDrawData(); } -void pollGUI_gl_end(GLFWwindow* window, void *draw_data) +void pollGUI_gl_end(void* context, void *draw_data) { + GLFWwindow* window = reinterpret_cast(context); + ImGui_ImplGlfwGL3_RenderDrawLists((ImDrawData*)draw_data); glfwSwapBuffers(window); } @@ -137,13 +141,11 @@ void pollGUI_gl_end(GLFWwindow* window, void *draw_data) /// @return true if we do not need to exit, false if we do. bool pollGUI(void* context, std::function guiCallback) { - GLFWwindow* window = reinterpret_cast(context); - - if (!pollGUI_gl_init(window)) { + if (!pollGUI_gl_init(context)) { return false; } auto draw_data = pollGUI_render(guiCallback); - pollGUI_gl_end(window, draw_data); + pollGUI_gl_end(context, draw_data); return true; } diff --git a/DebugGUI/src/DebugGUI.h b/DebugGUI/src/DebugGUI.h index d1b432e..23cec0b 100644 --- a/DebugGUI/src/DebugGUI.h +++ b/DebugGUI/src/DebugGUI.h @@ -11,6 +11,7 @@ #define FRAMEWORK_DEBUGGUI_H #include +#include namespace o2::framework { @@ -19,6 +20,10 @@ void default_error_callback(int, const char*); void* initGUI(const char* name, decltype(default_error_callback) = nullptr); bool pollGUI(void* context, std::function guiCallback); +void getFrameJSON(void *data, std::ostream& json_data); +bool pollGUI_gl_init(void* context); +void* pollGUI_render(std::function guiCallback); +void pollGUI_gl_end(void* context, void* draw_data); void disposeGUI(); } // namespace o2::framework diff --git a/remote/remote.html b/remote/remote.html new file mode 100644 index 0000000..d68c9d2 --- /dev/null +++ b/remote/remote.html @@ -0,0 +1,192 @@ + + + + + Remote DebugGUI + + + + + + + + diff --git a/remote/texture.png b/remote/texture.png new file mode 100644 index 0000000000000000000000000000000000000000..818e804890c0d5fc4437838a773f420e7656cc71 GIT binary patch literal 225431 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

-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 z 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%0Dwy?CS|6~ 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�HBp(HD~A&yo4o$ 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 UcbwpeT>$xcuKH31@x(IxzY~N+F#rGn literal 0 HcmV?d00001 diff --git a/remote/three.min.js b/remote/three.min.js new file mode 100644 index 0000000..888ee89 --- /dev/null +++ b/remote/three.min.js @@ -0,0 +1,6 @@ +/** + * @license + * Copyright 2010-2021 Three.js Authors + * SPDX-License-Identifier: MIT + */ + !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).THREE={})}(this,(function(t){"use strict";const e="128",n=100,i=300,r=301,s=302,a=303,o=304,l=306,c=307,h=1e3,u=1001,d=1002,p=1003,m=1004,f=1005,g=1006,v=1007,y=1008,x=1009,_=1012,w=1014,b=1015,M=1016,S=1020,T=1022,E=1023,A=1026,L=1027,R=33776,C=33777,P=33778,D=33779,I=35840,N=35841,B=35842,z=35843,F=37492,O=37496,H=2300,G=2301,U=2302,k=2400,V=2401,W=2402,j=2500,q=2501,X=3e3,Y=3001,Z=3007,J=3002,Q=3004,K=3005,$=3006,tt=7680,et=35044,nt=35048,it="300 es";class rt{addEventListener(t,e){void 0===this._listeners&&(this._listeners={});const n=this._listeners;void 0===n[t]&&(n[t]=[]),-1===n[t].indexOf(e)&&n[t].push(e)}hasEventListener(t,e){if(void 0===this._listeners)return!1;const n=this._listeners;return void 0!==n[t]&&-1!==n[t].indexOf(e)}removeEventListener(t,e){if(void 0===this._listeners)return;const n=this._listeners[t];if(void 0!==n){const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}dispatchEvent(t){if(void 0===this._listeners)return;const e=this._listeners[t.type];if(void 0!==e){t.target=this;const n=e.slice(0);for(let e=0,i=n.length;e>8&255]+st[t>>16&255]+st[t>>24&255]+"-"+st[255&e]+st[e>>8&255]+"-"+st[e>>16&15|64]+st[e>>24&255]+"-"+st[63&n|128]+st[n>>8&255]+"-"+st[n>>16&255]+st[n>>24&255]+st[255&i]+st[i>>8&255]+st[i>>16&255]+st[i>>24&255]).toUpperCase()}function ht(t,e,n){return Math.max(e,Math.min(n,t))}function ut(t,e){return(t%e+e)%e}function dt(t,e,n){return(1-n)*t+n*e}function pt(t){return 0==(t&t-1)&&0!==t}function mt(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function ft(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}var gt=Object.freeze({__proto__:null,DEG2RAD:ot,RAD2DEG:lt,generateUUID:ct,clamp:ht,euclideanModulo:ut,mapLinear:function(t,e,n,i,r){return i+(t-e)*(r-i)/(n-e)},inverseLerp:function(t,e,n){return t!==e?(n-t)/(e-t):0},lerp:dt,damp:function(t,e,n,i){return dt(t,e,1-Math.exp(-n*i))},pingpong:function(t,e=1){return e-Math.abs(ut(t,2*e)-e)},smoothstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*(3-2*t)},smootherstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*t*(t*(6*t-15)+10)},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},seededRandom:function(t){return void 0!==t&&(at=t%2147483647),at=16807*at%2147483647,(at-1)/2147483646},degToRad:function(t){return t*ot},radToDeg:function(t){return t*lt},isPowerOfTwo:pt,ceilPowerOfTwo:mt,floorPowerOfTwo:ft,setQuaternionFromProperEuler:function(t,e,n,i,r){const s=Math.cos,a=Math.sin,o=s(n/2),l=a(n/2),c=s((e+i)/2),h=a((e+i)/2),u=s((e-i)/2),d=a((e-i)/2),p=s((i-e)/2),m=a((i-e)/2);switch(r){case"XYX":t.set(o*h,l*u,l*d,o*c);break;case"YZY":t.set(l*d,o*h,l*u,o*c);break;case"ZXZ":t.set(l*u,l*d,o*h,o*c);break;case"XZX":t.set(o*h,l*m,l*p,o*c);break;case"YXY":t.set(l*p,o*h,l*m,o*c);break;case"ZYZ":t.set(l*m,l*p,o*h,o*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}}});class vt{constructor(t=0,e=0){this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t,e){return void 0!==e?(console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this)}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t,e){return void 0!==e?(console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this)}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),i=Math.sin(e),r=this.x-t.x,s=this.y-t.y;return this.x=r*n-s*i+t.x,this.y=r*i+s*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}}vt.prototype.isVector2=!0;class yt{constructor(){this.elements=[1,0,0,0,1,0,0,0,1],arguments.length>0&&console.error("THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.")}set(t,e,n,i,r,s,a,o,l){const c=this.elements;return c[0]=t,c[1]=i,c[2]=a,c[3]=e,c[4]=r,c[5]=o,c[6]=n,c[7]=s,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[3],o=n[6],l=n[1],c=n[4],h=n[7],u=n[2],d=n[5],p=n[8],m=i[0],f=i[3],g=i[6],v=i[1],y=i[4],x=i[7],_=i[2],w=i[5],b=i[8];return r[0]=s*m+a*v+o*_,r[3]=s*f+a*y+o*w,r[6]=s*g+a*x+o*b,r[1]=l*m+c*v+h*_,r[4]=l*f+c*y+h*w,r[7]=l*g+c*x+h*b,r[2]=u*m+d*v+p*_,r[5]=u*f+d*y+p*w,r[8]=u*g+d*x+p*b,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8];return e*s*c-e*a*l-n*r*c+n*a*o+i*r*l-i*s*o}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=c*s-a*l,u=a*o-c*r,d=l*r-s*o,p=e*h+n*u+i*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const m=1/p;return t[0]=h*m,t[1]=(i*l-c*n)*m,t[2]=(a*n-i*s)*m,t[3]=u*m,t[4]=(c*e-i*o)*m,t[5]=(i*r-a*e)*m,t[6]=d*m,t[7]=(n*o-l*e)*m,t[8]=(s*e-n*r)*m,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,i,r,s,a){const o=Math.cos(r),l=Math.sin(r);return this.set(n*o,n*l,-n*(o*s+l*a)+s+t,-i*l,i*o,-i*(-l*s+o*a)+a+e,0,0,1),this}scale(t,e){const n=this.elements;return n[0]*=t,n[3]*=t,n[6]*=t,n[1]*=e,n[4]*=e,n[7]*=e,this}rotate(t){const e=Math.cos(t),n=Math.sin(t),i=this.elements,r=i[0],s=i[3],a=i[6],o=i[1],l=i[4],c=i[7];return i[0]=e*r+n*o,i[3]=e*s+n*l,i[6]=e*a+n*c,i[1]=-n*r+e*o,i[4]=-n*s+e*l,i[7]=-n*a+e*c,this}translate(t,e){const n=this.elements;return n[0]+=t*n[2],n[3]+=t*n[5],n[6]+=t*n[8],n[1]+=e*n[2],n[4]+=e*n[5],n[7]+=e*n[8],this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<9;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}let xt;yt.prototype.isMatrix3=!0;class _t{static getDataURL(t){if(/^data:/i.test(t.src))return t.src;if("undefined"==typeof HTMLCanvasElement)return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{void 0===xt&&(xt=document.createElementNS("http://www.w3.org/1999/xhtml","canvas")),xt.width=t.width,xt.height=t.height;const n=xt.getContext("2d");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=xt}return e.width>2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}}let wt=0;class bt extends rt{constructor(t=bt.DEFAULT_IMAGE,e=bt.DEFAULT_MAPPING,n=1001,i=1001,r=1006,s=1008,a=1023,o=1009,l=1,c=3e3){super(),Object.defineProperty(this,"id",{value:wt++}),this.uuid=ct(),this.name="",this.image=t,this.mipmaps=[],this.mapping=e,this.wrapS=n,this.wrapT=i,this.magFilter=r,this.minFilter=s,this.anisotropy=l,this.format=a,this.internalFormat=null,this.type=o,this.offset=new vt(0,0),this.repeat=new vt(1,1),this.center=new vt(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new yt,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.encoding=c,this.version=0,this.onUpdate=null}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return(new this.constructor).copy(this)}copy(t){return this.name=t.name,this.image=t.image,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.internalFormat=t.internalFormat,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotation=t.rotation,this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrix.copy(t.matrix),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.encoding=t.encoding,this}toJSON(t){const e=void 0===t||"string"==typeof t;if(!e&&void 0!==t.textures[this.uuid])return t.textures[this.uuid];const n={metadata:{version:4.5,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,type:this.type,encoding:this.encoding,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};if(void 0!==this.image){const i=this.image;if(void 0===i.uuid&&(i.uuid=ct()),!e&&void 0===t.images[i.uuid]){let e;if(Array.isArray(i)){e=[];for(let t=0,n=i.length;t1)switch(this.wrapS){case h:t.x=t.x-Math.floor(t.x);break;case u:t.x=t.x<0?0:1;break;case d:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case h:t.y=t.y-Math.floor(t.y);break;case u:t.y=t.y<0?0:1;break;case d:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){!0===t&&this.version++}}function Mt(t){return"undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap?_t.getDataURL(t):t.data?{data:Array.prototype.slice.call(t.data),width:t.width,height:t.height,type:t.data.constructor.name}:(console.warn("THREE.Texture: Unable to serialize Texture."),{})}bt.DEFAULT_IMAGE=void 0,bt.DEFAULT_MAPPING=i,bt.prototype.isTexture=!0;class St{constructor(t=0,e=0,n=0,i=1){this.x=t,this.y=e,this.z=n,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){return this.x=t,this.y=e,this.z=n,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t,e){return void 0!==e?(console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t,e){return void 0!==e?(console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=this.w,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*i+s[12]*r,this.y=s[1]*e+s[5]*n+s[9]*i+s[13]*r,this.z=s[2]*e+s[6]*n+s[10]*i+s[14]*r,this.w=s[3]*e+s[7]*n+s[11]*i+s[15]*r,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,i,r;const s=.01,a=.1,o=t.elements,l=o[0],c=o[4],h=o[8],u=o[1],d=o[5],p=o[9],m=o[2],f=o[6],g=o[10];if(Math.abs(c-u)o&&t>v?tv?o=0?1:-1,i=1-e*e;if(i>Number.EPSILON){const r=Math.sqrt(i),s=Math.atan2(r,e*n);t=Math.sin(t*s)/r,a=Math.sin(a*s)/r}const r=a*n;if(o=o*t+u*r,l=l*t+d*r,c=c*t+p*r,h=h*t+m*r,t===1-a){const t=1/Math.sqrt(o*o+l*l+c*c+h*h);o*=t,l*=t,c*=t,h*=t}}t[e]=o,t[e+1]=l,t[e+2]=c,t[e+3]=h}static multiplyQuaternionsFlat(t,e,n,i,r,s){const a=n[i],o=n[i+1],l=n[i+2],c=n[i+3],h=r[s],u=r[s+1],d=r[s+2],p=r[s+3];return t[e]=a*p+c*h+o*d-l*u,t[e+1]=o*p+c*u+l*h-a*d,t[e+2]=l*p+c*d+a*u-o*h,t[e+3]=c*p-a*h-o*u-l*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){if(!t||!t.isEuler)throw new Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");const n=t._x,i=t._y,r=t._z,s=t._order,a=Math.cos,o=Math.sin,l=a(n/2),c=a(i/2),h=a(r/2),u=o(n/2),d=o(i/2),p=o(r/2);switch(s){case"XYZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"YXZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"ZXY":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"ZYX":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"YZX":this._x=u*c*h+l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h-u*d*p;break;case"XZY":this._x=u*c*h-l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h+u*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+s)}return!1!==e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],i=e[4],r=e[8],s=e[1],a=e[5],o=e[9],l=e[2],c=e[6],h=e[10],u=n+a+h;if(u>0){const t=.5/Math.sqrt(u+1);this._w=.25/t,this._x=(c-o)*t,this._y=(r-l)*t,this._z=(s-i)*t}else if(n>a&&n>h){const t=2*Math.sqrt(1+n-a-h);this._w=(c-o)/t,this._x=.25*t,this._y=(i+s)/t,this._z=(r+l)/t}else if(a>h){const t=2*Math.sqrt(1+a-n-h);this._w=(r-l)/t,this._x=(i+s)/t,this._y=.25*t,this._z=(o+c)/t}else{const t=2*Math.sqrt(1+h-n-a);this._w=(s-i)/t,this._x=(r+l)/t,this._y=(o+c)/t,this._z=.25*t}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return nMath.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(ht(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(0===n)return this;const i=Math.min(1,e/n);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t,e){return void 0!==e?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(t,e)):this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,i=t._y,r=t._z,s=t._w,a=e._x,o=e._y,l=e._z,c=e._w;return this._x=n*c+s*a+i*l-r*o,this._y=i*c+s*o+r*a-n*l,this._z=r*c+s*l+n*o-i*a,this._w=s*c-n*a-i*o-r*l,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const n=this._x,i=this._y,r=this._z,s=this._w;let a=s*t._w+n*t._x+i*t._y+r*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=s,this._x=n,this._y=i,this._z=r,this;const o=1-a*a;if(o<=Number.EPSILON){const t=1-e;return this._w=t*s+e*this._w,this._x=t*n+e*this._x,this._y=t*i+e*this._y,this._z=t*r+e*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(o),c=Math.atan2(l,a),h=Math.sin((1-e)*c)/l,u=Math.sin(e*c)/l;return this._w=s*h+this._w*u,this._x=n*h+this._x*u,this._y=i*h+this._y*u,this._z=r*h+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){this.copy(t).slerp(e,n)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}At.prototype.isQuaternion=!0;class Lt{constructor(t=0,e=0,n=0){this.x=t,this.y=e,this.z=n}set(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t,e){return void 0!==e?(console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t,e){return void 0!==e?(console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t,e){return void 0!==e?(console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(t,e)):(this.x*=t.x,this.y*=t.y,this.z*=t.z,this)}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return t&&t.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order."),this.applyQuaternion(Ct.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(Ct.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6]*i,this.y=r[1]*e+r[4]*n+r[7]*i,this.z=r[2]*e+r[5]*n+r[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=t.elements,s=1/(r[3]*e+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*e+r[4]*n+r[8]*i+r[12])*s,this.y=(r[1]*e+r[5]*n+r[9]*i+r[13])*s,this.z=(r[2]*e+r[6]*n+r[10]*i+r[14])*s,this}applyQuaternion(t){const e=this.x,n=this.y,i=this.z,r=t.x,s=t.y,a=t.z,o=t.w,l=o*e+s*i-a*n,c=o*n+a*e-r*i,h=o*i+r*n-s*e,u=-r*e-s*n-a*i;return this.x=l*o+u*-r+c*-a-h*-s,this.y=c*o+u*-s+h*-r-l*-a,this.z=h*o+u*-a+l*-s-c*-r,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*i,this.y=r[1]*e+r[5]*n+r[9]*i,this.z=r[2]*e+r[6]*n+r[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t,e){return void 0!==e?(console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(t,e)):this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,i=t.y,r=t.z,s=e.x,a=e.y,o=e.z;return this.x=i*o-r*a,this.y=r*s-n*o,this.z=n*a-i*s,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return Rt.copy(this).projectOnVector(t),this.sub(Rt)}reflect(t){return this.sub(Rt.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(ht(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const i=Math.sin(e)*t;return this.x=i*Math.sin(n),this.y=Math.cos(e)*t,this.z=i*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}}Lt.prototype.isVector3=!0;const Rt=new Lt,Ct=new At;class Pt{constructor(t=new Lt(1/0,1/0,1/0),e=new Lt(-1/0,-1/0,-1/0)){this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){let e=1/0,n=1/0,i=1/0,r=-1/0,s=-1/0,a=-1/0;for(let o=0,l=t.length;or&&(r=l),c>s&&(s=c),h>a&&(a=h)}return this.min.set(e,n,i),this.max.set(r,s,a),this}setFromBufferAttribute(t){let e=1/0,n=1/0,i=1/0,r=-1/0,s=-1/0,a=-1/0;for(let o=0,l=t.count;or&&(r=l),c>s&&(s=c),h>a&&(a=h)}return this.min.set(e,n,i),this.max.set(r,s,a),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;ethis.max.x||t.ythis.max.y||t.zthis.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return void 0===e&&(console.warn("THREE.Box3: .getParameter() target is now required"),e=new Lt),e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)}intersectsSphere(t){return this.clampPoint(t.center,It),It.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(Ut),kt.subVectors(this.max,Ut),Bt.subVectors(t.a,Ut),zt.subVectors(t.b,Ut),Ft.subVectors(t.c,Ut),Ot.subVectors(zt,Bt),Ht.subVectors(Ft,zt),Gt.subVectors(Bt,Ft);let e=[0,-Ot.z,Ot.y,0,-Ht.z,Ht.y,0,-Gt.z,Gt.y,Ot.z,0,-Ot.x,Ht.z,0,-Ht.x,Gt.z,0,-Gt.x,-Ot.y,Ot.x,0,-Ht.y,Ht.x,0,-Gt.y,Gt.x,0];return!!jt(e,Bt,zt,Ft,kt)&&(e=[1,0,0,0,1,0,0,0,1],!!jt(e,Bt,zt,Ft,kt)&&(Vt.crossVectors(Ot,Ht),e=[Vt.x,Vt.y,Vt.z],jt(e,Bt,zt,Ft,kt)))}clampPoint(t,e){return void 0===e&&(console.warn("THREE.Box3: .clampPoint() target is now required"),e=new Lt),e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return It.copy(t).clamp(this.min,this.max).sub(t).length()}getBoundingSphere(t){return void 0===t&&console.error("THREE.Box3: .getBoundingSphere() target is now required"),this.getCenter(t.center),t.radius=.5*this.getSize(It).length(),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(Dt[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),Dt[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),Dt[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),Dt[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),Dt[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),Dt[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),Dt[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),Dt[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(Dt)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}Pt.prototype.isBox3=!0;const Dt=[new Lt,new Lt,new Lt,new Lt,new Lt,new Lt,new Lt,new Lt],It=new Lt,Nt=new Pt,Bt=new Lt,zt=new Lt,Ft=new Lt,Ot=new Lt,Ht=new Lt,Gt=new Lt,Ut=new Lt,kt=new Lt,Vt=new Lt,Wt=new Lt;function jt(t,e,n,i,r){for(let s=0,a=t.length-3;s<=a;s+=3){Wt.fromArray(t,s);const a=r.x*Math.abs(Wt.x)+r.y*Math.abs(Wt.y)+r.z*Math.abs(Wt.z),o=e.dot(Wt),l=n.dot(Wt),c=i.dot(Wt);if(Math.max(-Math.max(o,l,c),Math.min(o,l,c))>a)return!1}return!0}const qt=new Pt,Xt=new Lt,Yt=new Lt,Zt=new Lt;class Jt{constructor(t=new Lt,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;void 0!==e?n.copy(e):qt.setFromPoints(t).getCenter(n);let i=0;for(let e=0,r=t.length;ethis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return void 0===t&&(console.warn("THREE.Sphere: .getBoundingBox() target is now required"),t=new Pt),this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){Zt.subVectors(t,this.center);const e=Zt.lengthSq();if(e>this.radius*this.radius){const t=Math.sqrt(e),n=.5*(t-this.radius);this.center.add(Zt.multiplyScalar(n/t)),this.radius+=n}return this}union(t){return Yt.subVectors(t.center,this.center).normalize().multiplyScalar(t.radius),this.expandByPoint(Xt.copy(t.center).add(Yt)),this.expandByPoint(Xt.copy(t.center).sub(Yt)),this}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Qt=new Lt,Kt=new Lt,$t=new Lt,te=new Lt,ee=new Lt,ne=new Lt,ie=new Lt;class re{constructor(t=new Lt,e=new Lt(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return void 0===e&&(console.warn("THREE.Ray: .at() target is now required"),e=new Lt),e.copy(this.direction).multiplyScalar(t).add(this.origin)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,Qt)),this}closestPointToPoint(t,e){void 0===e&&(console.warn("THREE.Ray: .closestPointToPoint() target is now required"),e=new Lt),e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.direction).multiplyScalar(n).add(this.origin)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=Qt.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(Qt.copy(this.direction).multiplyScalar(e).add(this.origin),Qt.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){Kt.copy(t).add(e).multiplyScalar(.5),$t.copy(e).sub(t).normalize(),te.copy(this.origin).sub(Kt);const r=.5*t.distanceTo(e),s=-this.direction.dot($t),a=te.dot(this.direction),o=-te.dot($t),l=te.lengthSq(),c=Math.abs(1-s*s);let h,u,d,p;if(c>0)if(h=s*o-a,u=s*a-o,p=r*c,h>=0)if(u>=-p)if(u<=p){const t=1/c;h*=t,u*=t,d=h*(h+s*u+2*a)+u*(s*h+u+2*o)+l}else u=r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u=-r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u<=-p?(h=Math.max(0,-(-s*r+a)),u=h>0?-r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l):u<=p?(h=0,u=Math.min(Math.max(-r,-o),r),d=u*(u+2*o)+l):(h=Math.max(0,-(s*r+a)),u=h>0?r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l);else u=s>0?-r:r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;return n&&n.copy(this.direction).multiplyScalar(h).add(this.origin),i&&i.copy($t).multiplyScalar(u).add(Kt),d}intersectSphere(t,e){Qt.subVectors(t.center,this.origin);const n=Qt.dot(this.direction),i=Qt.dot(Qt)-n*n,r=t.radius*t.radius;if(i>r)return null;const s=Math.sqrt(r-i),a=n-s,o=n+s;return a<0&&o<0?null:a<0?this.at(o,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return null===n?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);if(0===e)return!0;return t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,i,r,s,a,o;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z,u=this.origin;return l>=0?(n=(t.min.x-u.x)*l,i=(t.max.x-u.x)*l):(n=(t.max.x-u.x)*l,i=(t.min.x-u.x)*l),c>=0?(r=(t.min.y-u.y)*c,s=(t.max.y-u.y)*c):(r=(t.max.y-u.y)*c,s=(t.min.y-u.y)*c),n>s||r>i?null:((r>n||n!=n)&&(n=r),(s=0?(a=(t.min.z-u.z)*h,o=(t.max.z-u.z)*h):(a=(t.max.z-u.z)*h,o=(t.min.z-u.z)*h),n>o||a>i?null:((a>n||n!=n)&&(n=a),(o=0?n:i,e)))}intersectsBox(t){return null!==this.intersectBox(t,Qt)}intersectTriangle(t,e,n,i,r){ee.subVectors(e,t),ne.subVectors(n,t),ie.crossVectors(ee,ne);let s,a=this.direction.dot(ie);if(a>0){if(i)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}te.subVectors(this.origin,t);const o=s*this.direction.dot(ne.crossVectors(te,ne));if(o<0)return null;const l=s*this.direction.dot(ee.cross(te));if(l<0)return null;if(o+l>a)return null;const c=-s*te.dot(ie);return c<0?null:this.at(c/a,r)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class se{constructor(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],arguments.length>0&&console.error("THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.")}set(t,e,n,i,r,s,a,o,l,c,h,u,d,p,m,f){const g=this.elements;return g[0]=t,g[4]=e,g[8]=n,g[12]=i,g[1]=r,g[5]=s,g[9]=a,g[13]=o,g[2]=l,g[6]=c,g[10]=h,g[14]=u,g[3]=d,g[7]=p,g[11]=m,g[15]=f,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new se).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,i=1/ae.setFromMatrixColumn(t,0).length(),r=1/ae.setFromMatrixColumn(t,1).length(),s=1/ae.setFromMatrixColumn(t,2).length();return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=0,e[4]=n[4]*r,e[5]=n[5]*r,e[6]=n[6]*r,e[7]=0,e[8]=n[8]*s,e[9]=n[9]*s,e[10]=n[10]*s,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){t&&t.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");const e=this.elements,n=t.x,i=t.y,r=t.z,s=Math.cos(n),a=Math.sin(n),o=Math.cos(i),l=Math.sin(i),c=Math.cos(r),h=Math.sin(r);if("XYZ"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=-o*h,e[8]=l,e[1]=n+i*l,e[5]=t-r*l,e[9]=-a*o,e[2]=r-t*l,e[6]=i+n*l,e[10]=s*o}else if("YXZ"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t+r*a,e[4]=i*a-n,e[8]=s*l,e[1]=s*h,e[5]=s*c,e[9]=-a,e[2]=n*a-i,e[6]=r+t*a,e[10]=s*o}else if("ZXY"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t-r*a,e[4]=-s*h,e[8]=i+n*a,e[1]=n+i*a,e[5]=s*c,e[9]=r-t*a,e[2]=-s*l,e[6]=a,e[10]=s*o}else if("ZYX"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=i*l-n,e[8]=t*l+r,e[1]=o*h,e[5]=r*l+t,e[9]=n*l-i,e[2]=-l,e[6]=a*o,e[10]=s*o}else if("YZX"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=r-t*h,e[8]=i*h+n,e[1]=h,e[5]=s*c,e[9]=-a*c,e[2]=-l*c,e[6]=n*h+i,e[10]=t-r*h}else if("XZY"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=-h,e[8]=l*c,e[1]=t*h+r,e[5]=s*c,e[9]=n*h-i,e[2]=i*h-n,e[6]=a*c,e[10]=r*h+t}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(le,t,ce)}lookAt(t,e,n){const i=this.elements;return de.subVectors(t,e),0===de.lengthSq()&&(de.z=1),de.normalize(),he.crossVectors(n,de),0===he.lengthSq()&&(1===Math.abs(n.z)?de.x+=1e-4:de.z+=1e-4,de.normalize(),he.crossVectors(n,de)),he.normalize(),ue.crossVectors(de,he),i[0]=he.x,i[4]=ue.x,i[8]=de.x,i[1]=he.y,i[5]=ue.y,i[9]=de.y,i[2]=he.z,i[6]=ue.z,i[10]=de.z,this}multiply(t,e){return void 0!==e?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(t,e)):this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[4],o=n[8],l=n[12],c=n[1],h=n[5],u=n[9],d=n[13],p=n[2],m=n[6],f=n[10],g=n[14],v=n[3],y=n[7],x=n[11],_=n[15],w=i[0],b=i[4],M=i[8],S=i[12],T=i[1],E=i[5],A=i[9],L=i[13],R=i[2],C=i[6],P=i[10],D=i[14],I=i[3],N=i[7],B=i[11],z=i[15];return r[0]=s*w+a*T+o*R+l*I,r[4]=s*b+a*E+o*C+l*N,r[8]=s*M+a*A+o*P+l*B,r[12]=s*S+a*L+o*D+l*z,r[1]=c*w+h*T+u*R+d*I,r[5]=c*b+h*E+u*C+d*N,r[9]=c*M+h*A+u*P+d*B,r[13]=c*S+h*L+u*D+d*z,r[2]=p*w+m*T+f*R+g*I,r[6]=p*b+m*E+f*C+g*N,r[10]=p*M+m*A+f*P+g*B,r[14]=p*S+m*L+f*D+g*z,r[3]=v*w+y*T+x*R+_*I,r[7]=v*b+y*E+x*C+_*N,r[11]=v*M+y*A+x*P+_*B,r[15]=v*S+y*L+x*D+_*z,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],i=t[8],r=t[12],s=t[1],a=t[5],o=t[9],l=t[13],c=t[2],h=t[6],u=t[10],d=t[14];return t[3]*(+r*o*h-i*l*h-r*a*u+n*l*u+i*a*d-n*o*d)+t[7]*(+e*o*d-e*l*u+r*s*u-i*s*d+i*l*c-r*o*c)+t[11]*(+e*l*h-e*a*d-r*s*h+n*s*d+r*a*c-n*l*c)+t[15]*(-i*a*c-e*o*h+e*a*u+i*s*h-n*s*u+n*o*c)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=t[9],u=t[10],d=t[11],p=t[12],m=t[13],f=t[14],g=t[15],v=h*f*l-m*u*l+m*o*d-a*f*d-h*o*g+a*u*g,y=p*u*l-c*f*l-p*o*d+s*f*d+c*o*g-s*u*g,x=c*m*l-p*h*l+p*a*d-s*m*d-c*a*g+s*h*g,_=p*h*o-c*m*o-p*a*u+s*m*u+c*a*f-s*h*f,w=e*v+n*y+i*x+r*_;if(0===w)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const b=1/w;return t[0]=v*b,t[1]=(m*u*r-h*f*r-m*i*d+n*f*d+h*i*g-n*u*g)*b,t[2]=(a*f*r-m*o*r+m*i*l-n*f*l-a*i*g+n*o*g)*b,t[3]=(h*o*r-a*u*r-h*i*l+n*u*l+a*i*d-n*o*d)*b,t[4]=y*b,t[5]=(c*f*r-p*u*r+p*i*d-e*f*d-c*i*g+e*u*g)*b,t[6]=(p*o*r-s*f*r-p*i*l+e*f*l+s*i*g-e*o*g)*b,t[7]=(s*u*r-c*o*r+c*i*l-e*u*l-s*i*d+e*o*d)*b,t[8]=x*b,t[9]=(p*h*r-c*m*r-p*n*d+e*m*d+c*n*g-e*h*g)*b,t[10]=(s*m*r-p*a*r+p*n*l-e*m*l-s*n*g+e*a*g)*b,t[11]=(c*a*r-s*h*r-c*n*l+e*h*l+s*n*d-e*a*d)*b,t[12]=_*b,t[13]=(c*m*i-p*h*i+p*n*u-e*m*u-c*n*f+e*h*f)*b,t[14]=(p*a*i-s*m*i-p*n*o+e*m*o+s*n*f-e*a*f)*b,t[15]=(s*h*i-c*a*i+c*n*o-e*h*o-s*n*u+e*a*u)*b,this}scale(t){const e=this.elements,n=t.x,i=t.y,r=t.z;return e[0]*=n,e[4]*=i,e[8]*=r,e[1]*=n,e[5]*=i,e[9]*=r,e[2]*=n,e[6]*=i,e[10]*=r,e[3]*=n,e[7]*=i,e[11]*=r,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){return this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),i=Math.sin(e),r=1-n,s=t.x,a=t.y,o=t.z,l=r*s,c=r*a;return this.set(l*s+n,l*a-i*o,l*o+i*a,0,l*a+i*o,c*a+n,c*o-i*s,0,l*o-i*a,c*o+i*s,r*o*o+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n){return this.set(1,e,n,0,t,1,n,0,t,e,1,0,0,0,0,1),this}compose(t,e,n){const i=this.elements,r=e._x,s=e._y,a=e._z,o=e._w,l=r+r,c=s+s,h=a+a,u=r*l,d=r*c,p=r*h,m=s*c,f=s*h,g=a*h,v=o*l,y=o*c,x=o*h,_=n.x,w=n.y,b=n.z;return i[0]=(1-(m+g))*_,i[1]=(d+x)*_,i[2]=(p-y)*_,i[3]=0,i[4]=(d-x)*w,i[5]=(1-(u+g))*w,i[6]=(f+v)*w,i[7]=0,i[8]=(p+y)*b,i[9]=(f-v)*b,i[10]=(1-(u+m))*b,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){const i=this.elements;let r=ae.set(i[0],i[1],i[2]).length();const s=ae.set(i[4],i[5],i[6]).length(),a=ae.set(i[8],i[9],i[10]).length();this.determinant()<0&&(r=-r),t.x=i[12],t.y=i[13],t.z=i[14],oe.copy(this);const o=1/r,l=1/s,c=1/a;return oe.elements[0]*=o,oe.elements[1]*=o,oe.elements[2]*=o,oe.elements[4]*=l,oe.elements[5]*=l,oe.elements[6]*=l,oe.elements[8]*=c,oe.elements[9]*=c,oe.elements[10]*=c,e.setFromRotationMatrix(oe),n.x=r,n.y=s,n.z=a,this}makePerspective(t,e,n,i,r,s){void 0===s&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");const a=this.elements,o=2*r/(e-t),l=2*r/(n-i),c=(e+t)/(e-t),h=(n+i)/(n-i),u=-(s+r)/(s-r),d=-2*s*r/(s-r);return a[0]=o,a[4]=0,a[8]=c,a[12]=0,a[1]=0,a[5]=l,a[9]=h,a[13]=0,a[2]=0,a[6]=0,a[10]=u,a[14]=d,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(t,e,n,i,r,s){const a=this.elements,o=1/(e-t),l=1/(n-i),c=1/(s-r),h=(e+t)*o,u=(n+i)*l,d=(s+r)*c;return a[0]=2*o,a[4]=0,a[8]=0,a[12]=-h,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-u,a[2]=0,a[6]=0,a[10]=-2*c,a[14]=-d,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<16;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}se.prototype.isMatrix4=!0;const ae=new Lt,oe=new se,le=new Lt(0,0,0),ce=new Lt(1,1,1),he=new Lt,ue=new Lt,de=new Lt,pe=new se,me=new At;class fe{constructor(t=0,e=0,n=0,i=fe.DefaultOrder){this._x=t,this._y=e,this._z=n,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._order=i||this._order,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e,n){const i=t.elements,r=i[0],s=i[4],a=i[8],o=i[1],l=i[5],c=i[9],h=i[2],u=i[6],d=i[10];switch(e=e||this._order){case"XYZ":this._y=Math.asin(ht(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,d),this._z=Math.atan2(-s,r)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-ht(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-h,r),this._z=0);break;case"ZXY":this._x=Math.asin(ht(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-h,d),this._z=Math.atan2(-s,l)):(this._y=0,this._z=Math.atan2(o,r));break;case"ZYX":this._y=Math.asin(-ht(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(o,r)):(this._x=0,this._z=Math.atan2(-s,l));break;case"YZX":this._z=Math.asin(ht(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-h,r)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-ht(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(a,r)):(this._x=Math.atan2(-c,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,!1!==n&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return pe.makeRotationFromQuaternion(t),this.setFromRotationMatrix(pe,e,n)}setFromVector3(t,e){return this.set(t.x,t.y,t.z,e||this._order)}reorder(t){return me.setFromEuler(this),this.setFromQuaternion(me,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}toVector3(t){return t?t.set(this._x,this._y,this._z):new Lt(this._x,this._y,this._z)}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}fe.prototype.isEuler=!0,fe.DefaultOrder="XYZ",fe.RotationOrders=["XYZ","YZX","ZXY","XZY","YXZ","ZYX"];class ge{constructor(){this.mask=1}set(t){this.mask=1<1){for(let t=0;t1){for(let t=0;t0){i.children=[];for(let e=0;e0){i.animations=[];for(let e=0;e0&&(n.geometries=e),i.length>0&&(n.materials=i),r.length>0&&(n.textures=r),a.length>0&&(n.images=a),o.length>0&&(n.shapes=o),l.length>0&&(n.skeletons=l),c.length>0&&(n.animations=c)}return n.object=i,n;function s(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}}clone(t){return(new this.constructor).copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(let e=0;e1?null:e.copy(n).multiplyScalar(r).add(t.start)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return void 0===t&&(console.warn("THREE.Plane: .coplanarPoint() target is now required"),t=new Lt),t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||Ie.getNormalMatrix(t),i=this.coplanarPoint(Pe).applyMatrix4(t),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}Ne.prototype.isPlane=!0;const Be=new Lt,ze=new Lt,Fe=new Lt,Oe=new Lt,He=new Lt,Ge=new Lt,Ue=new Lt,ke=new Lt,Ve=new Lt,We=new Lt;class je{constructor(t=new Lt,e=new Lt,n=new Lt){this.a=t,this.b=e,this.c=n}static getNormal(t,e,n,i){void 0===i&&(console.warn("THREE.Triangle: .getNormal() target is now required"),i=new Lt),i.subVectors(n,e),Be.subVectors(t,e),i.cross(Be);const r=i.lengthSq();return r>0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(t,e,n,i,r){Be.subVectors(i,e),ze.subVectors(n,e),Fe.subVectors(t,e);const s=Be.dot(Be),a=Be.dot(ze),o=Be.dot(Fe),l=ze.dot(ze),c=ze.dot(Fe),h=s*l-a*a;if(void 0===r&&(console.warn("THREE.Triangle: .getBarycoord() target is now required"),r=new Lt),0===h)return r.set(-2,-1,-1);const u=1/h,d=(l*o-a*c)*u,p=(s*c-a*o)*u;return r.set(1-d-p,p,d)}static containsPoint(t,e,n,i){return this.getBarycoord(t,e,n,i,Oe),Oe.x>=0&&Oe.y>=0&&Oe.x+Oe.y<=1}static getUV(t,e,n,i,r,s,a,o){return this.getBarycoord(t,e,n,i,Oe),o.set(0,0),o.addScaledVector(r,Oe.x),o.addScaledVector(s,Oe.y),o.addScaledVector(a,Oe.z),o}static isFrontFacing(t,e,n,i){return Be.subVectors(n,e),ze.subVectors(t,e),Be.cross(ze).dot(i)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,i){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[i]),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return Be.subVectors(this.c,this.b),ze.subVectors(this.a,this.b),.5*Be.cross(ze).length()}getMidpoint(t){return void 0===t&&(console.warn("THREE.Triangle: .getMidpoint() target is now required"),t=new Lt),t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return je.getNormal(this.a,this.b,this.c,t)}getPlane(t){return void 0===t&&(console.warn("THREE.Triangle: .getPlane() target is now required"),t=new Ne),t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return je.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,i,r){return je.getUV(t,this.a,this.b,this.c,e,n,i,r)}containsPoint(t){return je.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return je.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){void 0===e&&(console.warn("THREE.Triangle: .closestPointToPoint() target is now required"),e=new Lt);const n=this.a,i=this.b,r=this.c;let s,a;He.subVectors(i,n),Ge.subVectors(r,n),ke.subVectors(t,n);const o=He.dot(ke),l=Ge.dot(ke);if(o<=0&&l<=0)return e.copy(n);Ve.subVectors(t,i);const c=He.dot(Ve),h=Ge.dot(Ve);if(c>=0&&h<=c)return e.copy(i);const u=o*h-c*l;if(u<=0&&o>=0&&c<=0)return s=o/(o-c),e.copy(n).addScaledVector(He,s);We.subVectors(t,r);const d=He.dot(We),p=Ge.dot(We);if(p>=0&&d<=p)return e.copy(r);const m=d*l-o*p;if(m<=0&&l>=0&&p<=0)return a=l/(l-p),e.copy(n).addScaledVector(Ge,a);const f=c*p-d*h;if(f<=0&&h-c>=0&&d-p>=0)return Ue.subVectors(r,i),a=(h-c)/(h-c+(d-p)),e.copy(i).addScaledVector(Ue,a);const g=1/(f+m+u);return s=m*g,a=u*g,e.copy(n).addScaledVector(He,s).addScaledVector(Ge,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}let qe=0;function Xe(){Object.defineProperty(this,"id",{value:qe++}),this.uuid=ct(),this.name="",this.type="Material",this.fog=!0,this.blending=1,this.side=0,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=204,this.blendDst=205,this.blendEquation=n,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=3,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=519,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=tt,this.stencilZFail=tt,this.stencilZPass=tt,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaTest=0,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0}Xe.prototype=Object.assign(Object.create(rt.prototype),{constructor:Xe,isMaterial:!0,onBuild:function(){},onBeforeCompile:function(){},customProgramCacheKey:function(){return this.onBeforeCompile.toString()},setValues:function(t){if(void 0!==t)for(const e in t){const n=t[e];if(void 0===n){console.warn("THREE.Material: '"+e+"' parameter is undefined.");continue}if("shading"===e){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===n;continue}const i=this[e];void 0!==i?i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n:console.warn("THREE."+this.type+": '"+e+"' is not a property of this material.")}},toJSON:function(t){const e=void 0===t||"string"==typeof t;e&&(t={textures:{},images:{}});const n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};function i(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),this.sheen&&this.sheen.isColor&&(n.sheen=this.sheen.getHex()),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(n.blending=this.blending),0!==this.side&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(n.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.morphTargets&&(n.morphTargets=!0),!0===this.morphNormals&&(n.morphNormals=!0),!0===this.skinning&&(n.skinning=!0),!0===this.flatShading&&(n.flatShading=this.flatShading),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),"{}"!==JSON.stringify(this.userData)&&(n.userData=this.userData),e){const e=i(t.textures),r=i(t.images);e.length>0&&(n.textures=e),r.length>0&&(n.images=r)}return n},clone:function(){return(new this.constructor).copy(this)},copy:function(t){this.name=t.name,this.fog=t.fog,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(null!==e){const t=e.length;n=new Array(t);for(let i=0;i!==t;++i)n[i]=e[i].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),Object.defineProperty(Xe.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}});const Ye={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Ze={h:0,s:0,l:0},Je={h:0,s:0,l:0};function Qe(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}function Ke(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function $e(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}class tn{constructor(t,e,n){return void 0===e&&void 0===n?this.set(t):this.setRGB(t,e,n)}set(t){return t&&t.isColor?this.copy(t):"number"==typeof t?this.setHex(t):"string"==typeof t&&this.setStyle(t),this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,this}setRGB(t,e,n){return this.r=t,this.g=e,this.b=n,this}setHSL(t,e,n){if(t=ut(t,1),e=ht(e,0,1),n=ht(n,0,1),0===e)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+e):n+e-n*e,r=2*n-i;this.r=Qe(r,i,t+1/3),this.g=Qe(r,i,t),this.b=Qe(r,i,t-1/3)}return this}setStyle(t){function e(e){void 0!==e&&parseFloat(e)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let n;if(n=/^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec(t)){let t;const i=n[1],r=n[2];switch(i){case"rgb":case"rgba":if(t=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(r))return this.r=Math.min(255,parseInt(t[1],10))/255,this.g=Math.min(255,parseInt(t[2],10))/255,this.b=Math.min(255,parseInt(t[3],10))/255,e(t[4]),this;if(t=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(r))return this.r=Math.min(100,parseInt(t[1],10))/100,this.g=Math.min(100,parseInt(t[2],10))/100,this.b=Math.min(100,parseInt(t[3],10))/100,e(t[4]),this;break;case"hsl":case"hsla":if(t=/^\s*(\d*\.?\d+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(r)){const n=parseFloat(t[1])/360,i=parseInt(t[2],10)/100,r=parseInt(t[3],10)/100;return e(t[4]),this.setHSL(n,i,r)}}}else if(n=/^\#([A-Fa-f\d]+)$/.exec(t)){const t=n[1],e=t.length;if(3===e)return this.r=parseInt(t.charAt(0)+t.charAt(0),16)/255,this.g=parseInt(t.charAt(1)+t.charAt(1),16)/255,this.b=parseInt(t.charAt(2)+t.charAt(2),16)/255,this;if(6===e)return this.r=parseInt(t.charAt(0)+t.charAt(1),16)/255,this.g=parseInt(t.charAt(2)+t.charAt(3),16)/255,this.b=parseInt(t.charAt(4)+t.charAt(5),16)/255,this}return t&&t.length>0?this.setColorName(t):this}setColorName(t){const e=Ye[t.toLowerCase()];return void 0!==e?this.setHex(e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copyGammaToLinear(t,e=2){return this.r=Math.pow(t.r,e),this.g=Math.pow(t.g,e),this.b=Math.pow(t.b,e),this}copyLinearToGamma(t,e=2){const n=e>0?1/e:1;return this.r=Math.pow(t.r,n),this.g=Math.pow(t.g,n),this.b=Math.pow(t.b,n),this}convertGammaToLinear(t){return this.copyGammaToLinear(this,t),this}convertLinearToGamma(t){return this.copyLinearToGamma(this,t),this}copySRGBToLinear(t){return this.r=Ke(t.r),this.g=Ke(t.g),this.b=Ke(t.b),this}copyLinearToSRGB(t){return this.r=$e(t.r),this.g=$e(t.g),this.b=$e(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0}getHexString(){return("000000"+this.getHex().toString(16)).slice(-6)}getHSL(t){void 0===t&&(console.warn("THREE.Color: .getHSL() target is now required"),t={h:0,s:0,l:0});const e=this.r,n=this.g,i=this.b,r=Math.max(e,n,i),s=Math.min(e,n,i);let a,o;const l=(s+r)/2;if(s===r)a=0,o=0;else{const t=r-s;switch(o=l<=.5?t/(r+s):t/(2-r-s),r){case e:a=(n-i)/t+(ne&&(e=t[n]);return e}const vn={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function yn(t,e){return new vn[t](e)}let xn=0;const _n=new se,wn=new Ce,bn=new Lt,Mn=new Pt,Sn=new Pt,Tn=new Lt;class En extends rt{constructor(){super(),Object.defineProperty(this,"id",{value:xn++}),this.uuid=ct(),this.name="",this.type="BufferGeometry",this.index=null,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}getIndex(){return this.index}setIndex(t){return Array.isArray(t)?this.index=new(gn(t)>65535?dn:hn)(t,1):this.index=t,this}getAttribute(t){return this.attributes[t]}setAttribute(t,e){return this.attributes[t]=e,this}deleteAttribute(t){return delete this.attributes[t],this}hasAttribute(t){return void 0!==this.attributes[t]}addGroup(t,e,n=0){this.groups.push({start:t,count:e,materialIndex:n})}clearGroups(){this.groups=[]}setDrawRange(t,e){this.drawRange.start=t,this.drawRange.count=e}applyMatrix4(t){const e=this.attributes.position;void 0!==e&&(e.applyMatrix4(t),e.needsUpdate=!0);const n=this.attributes.normal;if(void 0!==n){const e=(new yt).getNormalMatrix(t);n.applyNormalMatrix(e),n.needsUpdate=!0}const i=this.attributes.tangent;return void 0!==i&&(i.transformDirection(t),i.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this}rotateX(t){return _n.makeRotationX(t),this.applyMatrix4(_n),this}rotateY(t){return _n.makeRotationY(t),this.applyMatrix4(_n),this}rotateZ(t){return _n.makeRotationZ(t),this.applyMatrix4(_n),this}translate(t,e,n){return _n.makeTranslation(t,e,n),this.applyMatrix4(_n),this}scale(t,e,n){return _n.makeScale(t,e,n),this.applyMatrix4(_n),this}lookAt(t){return wn.lookAt(t),wn.updateMatrix(),this.applyMatrix4(wn.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(bn).negate(),this.translate(bn.x,bn.y,bn.z),this}setFromPoints(t){const e=[];for(let n=0,i=t.length;n0&&(t.userData=this.userData),void 0!==this.parameters){const e=this.parameters;for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const e in n){const i=n[e];t.data.attributes[e]=i.toJSON(t.data)}const i={};let r=!1;for(const e in this.morphAttributes){const n=this.morphAttributes[e],s=[];for(let e=0,i=n.length;e0&&(i[e]=s,r=!0)}r&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(t.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;return null!==a&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return(new En).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;null!==n&&this.setIndex(n.clone(e));const i=t.attributes;for(const t in i){const n=i[t];this.setAttribute(t,n.clone(e))}const r=t.morphAttributes;for(const t in r){const n=[],i=r[t];for(let t=0,r=i.length;t0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e0&&console.error("THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}}raycast(t,e){const n=this.geometry,i=this.material,r=this.matrixWorld;if(void 0===i)return;if(null===n.boundingSphere&&n.computeBoundingSphere(),Rn.copy(n.boundingSphere),Rn.applyMatrix4(r),!1===t.ray.intersectsSphere(Rn))return;if(An.copy(r).invert(),Ln.copy(t.ray).applyMatrix4(An),null!==n.boundingBox&&!1===Ln.intersectsBox(n.boundingBox))return;let s;if(n.isBufferGeometry){const r=n.index,a=n.attributes.position,o=n.morphAttributes.position,l=n.morphTargetsRelative,c=n.attributes.uv,h=n.attributes.uv2,u=n.groups,d=n.drawRange;if(null!==r)if(Array.isArray(i))for(let n=0,p=u.length;nn.far?null:{distance:c,point:Vn.clone(),object:t}}(t,e,n,i,Cn,Pn,Dn,kn);if(p){o&&(Hn.fromBufferAttribute(o,c),Gn.fromBufferAttribute(o,h),Un.fromBufferAttribute(o,u),p.uv=je.getUV(kn,Cn,Pn,Dn,Hn,Gn,Un,new vt)),l&&(Hn.fromBufferAttribute(l,c),Gn.fromBufferAttribute(l,h),Un.fromBufferAttribute(l,u),p.uv2=je.getUV(kn,Cn,Pn,Dn,Hn,Gn,Un,new vt));const t={a:c,b:h,c:u,normal:new Lt,materialIndex:0};je.getNormal(Cn,Pn,Dn,t.normal),p.face=t}return p}Wn.prototype.isMesh=!0;class qn extends En{constructor(t=1,e=1,n=1,i=1,r=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:r,depthSegments:s};const a=this;i=Math.floor(i),r=Math.floor(r),s=Math.floor(s);const o=[],l=[],c=[],h=[];let u=0,d=0;function p(t,e,n,i,r,s,p,m,f,g,v){const y=s/f,x=p/g,_=s/2,w=p/2,b=m/2,M=f+1,S=g+1;let T=0,E=0;const A=new Lt;for(let s=0;s0?1:-1,c.push(A.x,A.y,A.z),h.push(o/f),h.push(1-s/g),T+=1}}for(let t=0;t0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader;const n={};for(const t in this.extensions)!0===this.extensions[t]&&(n[t]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}Jn.prototype.isShaderMaterial=!0;class Qn extends Ce{constructor(){super(),this.type="Camera",this.matrixWorldInverse=new se,this.projectionMatrix=new se,this.projectionMatrixInverse=new se}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this}getWorldDirection(t){void 0===t&&(console.warn("THREE.Camera: .getWorldDirection() target is now required"),t=new Lt),this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}Qn.prototype.isCamera=!0;class Kn extends Qn{constructor(t=50,e=1,n=.1,i=2e3){super(),this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*lt*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*ot*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*lt*Math.atan(Math.tan(.5*ot*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,i,r,s){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*ot*this.fov)/this.zoom,n=2*e,i=this.aspect*n,r=-.5*i;const s=this.view;if(null!==this.view&&this.view.enabled){const t=s.fullWidth,a=s.fullHeight;r+=s.offsetX*i/t,e-=s.offsetY*n/a,i*=s.width/t,n*=s.height/a}const a=this.filmOffset;0!==a&&(r+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,e,e-n,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}Kn.prototype.isPerspectiveCamera=!0;const $n=90;class ti extends Ce{constructor(t,e,n){if(super(),this.type="CubeCamera",!0!==n.isWebGLCubeRenderTarget)return void console.error("THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.");this.renderTarget=n;const i=new Kn($n,1,t,e);i.layers=this.layers,i.up.set(0,-1,0),i.lookAt(new Lt(1,0,0)),this.add(i);const r=new Kn($n,1,t,e);r.layers=this.layers,r.up.set(0,-1,0),r.lookAt(new Lt(-1,0,0)),this.add(r);const s=new Kn($n,1,t,e);s.layers=this.layers,s.up.set(0,0,1),s.lookAt(new Lt(0,1,0)),this.add(s);const a=new Kn($n,1,t,e);a.layers=this.layers,a.up.set(0,0,-1),a.lookAt(new Lt(0,-1,0)),this.add(a);const o=new Kn($n,1,t,e);o.layers=this.layers,o.up.set(0,-1,0),o.lookAt(new Lt(0,0,1)),this.add(o);const l=new Kn($n,1,t,e);l.layers=this.layers,l.up.set(0,-1,0),l.lookAt(new Lt(0,0,-1)),this.add(l)}update(t,e){null===this.parent&&this.updateMatrixWorld();const n=this.renderTarget,[i,r,s,a,o,l]=this.children,c=t.xr.enabled,h=t.getRenderTarget();t.xr.enabled=!1;const u=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,i),t.setRenderTarget(n,1),t.render(e,r),t.setRenderTarget(n,2),t.render(e,s),t.setRenderTarget(n,3),t.render(e,a),t.setRenderTarget(n,4),t.render(e,o),n.texture.generateMipmaps=u,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(h),t.xr.enabled=c}}class ei extends bt{constructor(t,e,n,i,s,a,o,l,c,h){super(t=void 0!==t?t:[],e=void 0!==e?e:r,n,i,s,a,o=void 0!==o?o:T,l,c,h),this._needsFlipEnvMap=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}ei.prototype.isCubeTexture=!0;class ni extends Tt{constructor(t,e,n){Number.isInteger(e)&&(console.warn("THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )"),e=n),super(t,t,e),e=e||{},this.texture=new ei(void 0,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.encoding),this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:g,this.texture._needsFlipEnvMap=!1}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.format=E,this.texture.encoding=e.encoding,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t"},i=new qn(5,5,5),r=new Jn({name:"CubemapFromEquirect",uniforms:Xn(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:1,blending:0});r.uniforms.tEquirect.value=e;const s=new Wn(i,r),a=e.minFilter;e.minFilter===y&&(e.minFilter=g);return new ti(1,10,this).update(t,s),e.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(t,e,n,i){const r=t.getRenderTarget();for(let r=0;r<6;r++)t.setRenderTarget(this,r),t.clear(e,n,i);t.setRenderTarget(r)}}ni.prototype.isWebGLCubeRenderTarget=!0;class ii extends bt{constructor(t,e,n,i,r,s,a,o,l,c,h,u){super(null,s,a,o,l,c,i,r,h,u),this.image={data:t||null,width:e||1,height:n||1},this.magFilter=void 0!==l?l:p,this.minFilter=void 0!==c?c:p,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}}ii.prototype.isDataTexture=!0;const ri=new Jt,si=new Lt;class ai{constructor(t=new Ne,e=new Ne,n=new Ne,i=new Ne,r=new Ne,s=new Ne){this.planes=[t,e,n,i,r,s]}set(t,e,n,i,r,s){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(n),a[3].copy(i),a[4].copy(r),a[5].copy(s),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t){const e=this.planes,n=t.elements,i=n[0],r=n[1],s=n[2],a=n[3],o=n[4],l=n[5],c=n[6],h=n[7],u=n[8],d=n[9],p=n[10],m=n[11],f=n[12],g=n[13],v=n[14],y=n[15];return e[0].setComponents(a-i,h-o,m-u,y-f).normalize(),e[1].setComponents(a+i,h+o,m+u,y+f).normalize(),e[2].setComponents(a+r,h+l,m+d,y+g).normalize(),e[3].setComponents(a-r,h-l,m-d,y-g).normalize(),e[4].setComponents(a-s,h-c,m-p,y-v).normalize(),e[5].setComponents(a+s,h+c,m+p,y+v).normalize(),this}intersectsObject(t){const e=t.geometry;return null===e.boundingSphere&&e.computeBoundingSphere(),ri.copy(e.boundingSphere).applyMatrix4(t.matrixWorld),this.intersectsSphere(ri)}intersectsSprite(t){return ri.center.set(0,0,0),ri.radius=.7071067811865476,ri.applyMatrix4(t.matrixWorld),this.intersectsSphere(ri)}intersectsSphere(t){const e=this.planes,n=t.center,i=-t.radius;for(let t=0;t<6;t++){if(e[t].distanceToPoint(n)0?t.max.x:t.min.x,si.y=i.normal.y>0?t.max.y:t.min.y,si.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(si)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function oi(){let t=null,e=!1,n=null,i=null;function r(e,s){n(e,s),i=t.requestAnimationFrame(r)}return{start:function(){!0!==e&&null!==n&&(i=t.requestAnimationFrame(r),e=!0)},stop:function(){t.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function li(t,e){const n=e.isWebGL2,i=new WeakMap;return{get:function(t){return t.isInterleavedBufferAttribute&&(t=t.data),i.get(t)},remove:function(e){e.isInterleavedBufferAttribute&&(e=e.data);const n=i.get(e);n&&(t.deleteBuffer(n.buffer),i.delete(e))},update:function(e,r){if(e.isGLBufferAttribute){const t=i.get(e);return void((!t||t.version 0.0 ) {\n\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t}\n\treturn distanceFalloff;\n#else\n\tif( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t}\n\treturn 1.0;\n#endif\n}\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );\n\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\n}\nvec3 F_Schlick_RoughnessDependent( const in vec3 F0, const in float dotNV, const in float roughness ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotNV - 6.98316 ) * dotNV );\n\tvec3 Fr = max( vec3( 1.0 - roughness ), F0 ) - F0;\n\treturn Fr * fresnel + F0;\n}\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\treturn 1.0 / ( gl * gv );\n}\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( incidentLight.direction + viewDir );\n\tfloat dotNL = saturate( dot( normal, incidentLight.direction ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( G * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\nvec3 BRDF_Specular_GGX_Environment( const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\n\treturn specularColor * brdf.x + brdf.y;\n}\nvoid BRDF_Specular_Multiscattering_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\tvec3 F = F_Schlick_RoughnessDependent( specularColor, dotNV, roughness );\n\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\n\tvec3 FssEss = F * brdf.x + brdf.y;\n\tfloat Ess = brdf.x + brdf.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\nfloat G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\n\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\n}\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\n\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie(float roughness, float NoH) {\n\tfloat invAlpha = 1.0 / roughness;\n\tfloat cos2h = NoH * NoH;\n\tfloat sin2h = max(1.0 - cos2h, 0.0078125);\treturn (2.0 + invAlpha) * pow(sin2h, invAlpha * 0.5) / (2.0 * PI);\n}\nfloat V_Neubelt(float NoV, float NoL) {\n\treturn saturate(1.0 / (4.0 * (NoL + NoV - NoL * NoV)));\n}\nvec3 BRDF_Specular_Sheen( const in float roughness, const in vec3 L, const in GeometricContext geometry, vec3 specularColor ) {\n\tvec3 N = geometry.normal;\n\tvec3 V = geometry.viewDir;\n\tvec3 H = normalize( V + L );\n\tfloat dotNH = saturate( dot( N, H ) );\n\treturn specularColor * D_Charlie( roughness, dotNH ) * V_Neubelt( dot(N, V), dot(N, L) );\n}\n#endif",bumpmap_pars_fragment:"#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\n\t\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\n\t\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif",clipping_planes_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement(a) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract(sin(sn) * c);\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat max3( vec3 v ) { return max( max( v.x, v.y ), v.z ); }\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\tfloat distance = dot( planeNormal, point - pointOnPlane );\n\treturn - distance * planeNormal + point;\n}\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn sign( dot( point - pointOnPlane, planeNormal ) );\n}\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat linearToRelativeLuminance( const in vec3 color ) {\n\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\n\treturn dot( weights, color.rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_maxMipLevel 8.0\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_maxTileSize 256.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\tfloat texelSize = 1.0 / ( 3.0 * cubeUV_maxTileSize );\n\t\tvec2 uv = getUV( direction, face ) * ( faceSize - 1.0 );\n\t\tvec2 f = fract( uv );\n\t\tuv += 0.5 - f;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tif ( mipInt < cubeUV_maxMipLevel ) {\n\t\t\tuv.y += 2.0 * cubeUV_maxTileSize;\n\t\t}\n\t\tuv.y += filterInt * 2.0 * cubeUV_minTileSize;\n\t\tuv.x += 3.0 * max( 0.0, cubeUV_maxTileSize - 2.0 * faceSize );\n\t\tuv *= texelSize;\n\t\tvec3 tl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.x += texelSize;\n\t\tvec3 tr = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.y += texelSize;\n\t\tvec3 br = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.x -= texelSize;\n\t\tvec3 bl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tvec3 tm = mix( tl, tr, f.x );\n\t\tvec3 bm = mix( bl, br, f.x );\n\t\treturn mix( tm, bm, f.y );\n\t}\n\t#define r0 1.0\n\t#define v0 0.339\n\t#define m0 - 2.0\n\t#define r1 0.8\n\t#define v1 0.276\n\t#define m1 - 1.0\n\t#define r4 0.4\n\t#define v4 0.046\n\t#define m4 2.0\n\t#define r5 0.305\n\t#define v5 0.016\n\t#define m5 3.0\n\t#define r6 0.21\n\t#define v6 0.0038\n\t#define m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= r1 ) {\n\t\t\tmip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0;\n\t\t} else if ( roughness >= r4 ) {\n\t\t\tmip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1;\n\t\t} else if ( roughness >= r5 ) {\n\t\t\tmip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4;\n\t\t} else if ( roughness >= r6 ) {\n\t\t\tmip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), m0, cubeUV_maxMipLevel );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",encodings_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",encodings_pars_fragment:"\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( gammaFactor ) ), value.a );\n}\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( 1.0 / gammaFactor ) ), value.a );\n}\nvec4 sRGBToLinear( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}\nvec4 RGBEToLinear( in vec4 value ) {\n\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\n}\nvec4 LinearToRGBE( in vec4 value ) {\n\tfloat maxComponent = max( max( value.r, value.g ), value.b );\n\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\n\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\n}\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * value.a * maxRange, 1.0 );\n}\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\n\tM = ceil( M * 255.0 ) / 255.0;\n\treturn vec4( value.rgb / ( M * maxRange ), M );\n}\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\n}\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat D = max( maxRange / maxRGB, 1.0 );\n\tD = clamp( floor( D ) / 255.0, 0.0, 1.0 );\n\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\n}\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\nvec4 LinearToLogLuv( in vec4 value ) {\n\tvec3 Xp_Y_XYZp = cLogLuvM * value.rgb;\n\tXp_Y_XYZp = max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );\n\tvec4 vResult;\n\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\n\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\n\tvResult.w = fract( Le );\n\tvResult.z = ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;\n\treturn vResult;\n}\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\nvec4 LogLuvToLinear( in vec4 value ) {\n\tfloat Le = value.z * 255.0 + value.w;\n\tvec3 Xp_Y_XYZp;\n\tXp_Y_XYZp.y = exp2( ( Le - 127.0 ) / 2.0 );\n\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\n\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\n\tvec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;\n\treturn vec4( max( vRGB, 0.0 ), 1.0 );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifndef ENVMAP_TYPE_CUBE_UV\n\t\tenvColor = envMapTexelToLinear( envColor );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\tuniform int maxMipLevel;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#if defined( USE_ENVMAP )\n\t#ifdef ENVMAP_MODE_REFRACTION\n\t\tuniform float refractionRatio;\n\t#endif\n\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\n\t\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t#else\n\t\t\tvec4 envMapColor = vec4( 0.0 );\n\t\t#endif\n\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t}\n\tfloat getSpecularMIPLevel( const in float roughness, const in int maxMIPLevel ) {\n\t\tfloat maxMIPLevelScalar = float( maxMIPLevel );\n\t\tfloat sigma = PI * roughness * roughness / ( 1.0 + roughness );\n\t\tfloat desiredMIPLevel = maxMIPLevelScalar + log2( sigma );\n\t\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\n\t}\n\tvec3 getLightProbeIndirectRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in int maxMIPLevel ) {\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( -viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( -viewDir, normal, refractionRatio );\n\t\t#endif\n\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\tfloat specularMIPLevel = getSpecularMIPLevel( roughness, maxMIPLevel );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t#endif\n\t\treturn envMapColor.rgb * envMapIntensity;\n\t}\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tfogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float fogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * fogDepth * fogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float fogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn texture2D( gradientMap, coord ).rgb;\n\t#else\n\t\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\treflectedLight.indirectDiffuse += PI * lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_vertex:"vec3 diffuse = vec3( 1.0 );\nGeometricContext geometry;\ngeometry.position = mvPosition.xyz;\ngeometry.normal = normalize( transformedNormal );\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );\nGeometricContext backGeometry;\nbackGeometry.position = geometry.position;\nbackGeometry.normal = -geometry.normal;\nbackGeometry.viewDir = geometry.viewDir;\nvLightFront = vec3( 0.0 );\nvIndirectFront = vec3( 0.0 );\n#ifdef DOUBLE_SIDED\n\tvLightBack = vec3( 0.0 );\n\tvIndirectBack = vec3( 0.0 );\n#endif\nIncidentLight directLight;\nfloat dotNL;\nvec3 directLightColor_Diffuse;\nvIndirectFront += getAmbientLightIrradiance( ambientLightColor );\nvIndirectFront += getLightProbeIrradiance( lightProbe, geometry );\n#ifdef DOUBLE_SIDED\n\tvIndirectBack += getAmbientLightIrradiance( ambientLightColor );\n\tvIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry );\n#endif\n#if NUM_POINT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_DIR_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\tvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in GeometricContext geometry ) {\n\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treturn irradiance;\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tdirectLight.color = directionalLight.color;\n\t\tdirectLight.direction = directionalLight.direction;\n\t\tdirectLight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tdirectLight.color = pointLight.color;\n\t\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\n\t\tdirectLight.visible = ( directLight.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tfloat angleCos = dot( directLight.direction, spotLight.direction );\n\t\tif ( angleCos > spotLight.coneCos ) {\n\t\t\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\t\tdirectLight.color = spotLight.color;\n\t\t\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tdirectLight.visible = true;\n\t\t} else {\n\t\t\tdirectLight.color = vec3( 0.0 );\n\t\t\tdirectLight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\n\t\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tirradiance *= PI;\n\t\t#endif\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon\n#define Material_LightProbeLOD( material )\t(0)",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\n#define Material_LightProbeLOD( material )\t(0)",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.specularRoughness = max( roughnessFactor, 0.0525 );material.specularRoughness += geometryRoughness;\nmaterial.specularRoughness = min( material.specularRoughness, 1.0 );\n#ifdef REFLECTIVITY\n\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\n#endif\n#ifdef CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheen;\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat specularRoughness;\n\tvec3 specularColor;\n#ifdef CLEARCOAT\n\tfloat clearcoat;\n\tfloat clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tvec3 sheenColor;\n#endif\n};\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\nfloat clearcoatDHRApprox( const in float roughness, const in float dotNL ) {\n\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.specularRoughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3(\t\t0, 1,\t\t0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\t#ifdef CLEARCOAT\n\t\tfloat ccDotNL = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = ccDotNL * directLight.color;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tccIrradiance *= PI;\n\t\t#endif\n\t\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\n\t\treflectedLight.directSpecular += ccIrradiance * material.clearcoat * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\n\t#else\n\t\tfloat clearcoatDHR = 0.0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_Sheen(\n\t\t\tmaterial.specularRoughness,\n\t\t\tdirectLight.direction,\n\t\t\tgeometry,\n\t\t\tmaterial.sheenColor\n\t\t);\n\t#else\n\t\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.normal, material.specularColor, material.specularRoughness);\n\t#endif\n\treflectedLight.directDiffuse += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef CLEARCOAT\n\t\tfloat ccDotNV = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular += clearcoatRadiance * material.clearcoat * BRDF_Specular_GGX_Environment( geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\n\t\tfloat ccDotNL = ccDotNV;\n\t\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\n\t#else\n\t\tfloat clearcoatDHR = 0.0;\n\t#endif\n\tfloat clearcoatInv = 1.0 - clearcoatDHR;\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\tBRDF_Specular_Multiscattering_Environment( geometry, material.specularColor, material.specularRoughness, singleScattering, multiScattering );\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\n\treflectedLight.indirectSpecular += clearcoatInv * radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\t\tvec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tlightMapIrradiance *= PI;\n\t\t#endif\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getLightProbeIndirectIrradiance( geometry, maxMipLevel );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.normal, material.specularRoughness, maxMipLevel );\n\t#ifdef CLEARCOAT\n\t\tclearcoatRadiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness, maxMipLevel );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tvec4 texelColor = texture2D( map, vUv );\n\ttexelColor = mapTexelToLinear( texelColor );\n\tdiffuseColor *= texelColor;\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n#endif\n#ifdef USE_MAP\n\tvec4 mapTexel = texture2D( map, uv );\n\tdiffuseColor *= mapTexelToLinear( mapTexel );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tuniform mat3 uvTransform;\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifndef USE_MORPHNORMALS\n\t\tuniform float morphTargetInfluences[ 8 ];\n\t#else\n\t\tuniform float morphTargetInfluences[ 4 ];\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t#ifndef USE_MORPHNORMALS\n\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t#endif\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\n\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\t#ifdef USE_TANGENT\n\t\tvec3 tangent = normalize( vTangent );\n\t\tvec3 bitangent = normalize( vBitangent );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\ttangent = tangent * faceDirection;\n\t\t\tbitangent = bitangent * faceDirection;\n\t\t#endif\n\t\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tmat3 vTBN = mat3( tangent, bitangent, normal );\n\t\t#endif\n\t#endif\n#endif\nvec3 geometryNormal = normal;",normal_fragment_maps:"#ifdef OBJECTSPACE_NORMALMAP\n\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( TANGENTSPACE_NORMALMAP )\n\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\t#ifdef USE_TANGENT\n\t\tnormal = normalize( vTBN * mapN );\n\t#else\n\t\tnormal = perturbNormal2Arb( -vViewPosition, normal, mapN, faceDirection );\n\t#endif\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) {\n\t\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\n\t\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det );\n\t\treturn normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\t#ifdef USE_TANGENT\n\t\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\n\t#else\n\t\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection );\n\t#endif\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ));\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w);\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n\treturn linearClipZ * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn (( near + viewZ ) * far ) / (( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n\t\tbool inFrustum = all( inFrustumVec );\n\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\t\tbool frustumTest = all( frustumTestVec );\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), \n\t\t\t\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t\tf.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), \n\t\t\t\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t\tf.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",shadowmap_pars_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\n\t\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\tvec4 shadowWorldPosition;\n\t#endif\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\t#ifdef BONE_TEXTURE\n\t\tuniform highp sampler2D boneTexture;\n\t\tuniform int boneTextureSize;\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tfloat j = i * 4.0;\n\t\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\t\ty = dy * ( y + 0.5 );\n\t\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\t\treturn bone;\n\t\t}\n\t#else\n\t\tuniform mat4 boneMatrices[ MAX_BONES ];\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tmat4 bone = boneMatrices[ int(i) ];\n\t\t\treturn bone;\n\t\t}\n\t#endif\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3(\t1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108,\t1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605,\t1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmissionmap_fragment:"#ifdef USE_TRANSMISSIONMAP\n\ttotalTransmission *= texture2D( transmissionMap, vUv ).r;\n#endif",transmissionmap_pars_fragment:"#ifdef USE_TRANSMISSIONMAP\n\tuniform sampler2D transmissionMap;\n#endif",uv_pars_fragment:"#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\n\tvarying vec2 vUv;\n#endif",uv_pars_vertex:"#ifdef USE_UV\n\t#ifdef UVS_VERTEX_ONLY\n\t\tvec2 vUv;\n\t#else\n\t\tvarying vec2 vUv;\n\t#endif\n\tuniform mat3 uvTransform;\n#endif",uv_vertex:"#ifdef USE_UV\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif",uv2_pars_fragment:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif",uv2_pars_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n\tuniform mat3 uv2Transform;\n#endif",uv2_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_frag:"uniform sampler2D t2D;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\t#include \n\t#include \n}",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",cube_frag:"#include \nuniform float opacity;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 vReflect = vWorldDirection;\n\t#include \n\tgl_FragColor = envColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}",cube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tvec4 texColor = texture2D( tEquirect, sampleUV );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\t#include \n\t#include \n}",equirect_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\n\t\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#ifdef USE_ENVMAP\n\t#include \n\t#include \n\t#include \n\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_frag:"uniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\n\t#else\n\t\treflectedLight.indirectDiffuse += vIndirectFront;\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\n\t#else\n\t\treflectedLight.directDiffuse = vLightFront;\n\t#endif\n\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t\tmatcapColor = matcapTexelToLinear( matcapColor );\n\t#else\n\t\tvec4 matcapColor = vec4( 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#ifndef FLAT_SHADED\n\t\tvNormal = normalize( transformedNormal );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define REFLECTIVITY\n\t#define CLEARCOAT\n\t#define TRANSMISSION\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef TRANSMISSION\n\tuniform float transmission;\n#endif\n#ifdef REFLECTIVITY\n\tuniform float reflectivity;\n#endif\n#ifdef CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheen;\n#endif\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#ifdef TRANSMISSION\n\t\tfloat totalTransmission = transmission;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#ifdef TRANSMISSION\n\t\tdiffuseColor.a *= mix( saturate( 1. - totalTransmission + linearToRelativeLuminance( reflectedLight.directSpecular + reflectedLight.indirectSpecular ) ), 1.0, metalness );\n\t#endif\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",normal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n}",normal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}",points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}",shadow_vert:"#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}"},ui={common:{diffuse:{value:new tn(15658734)},opacity:{value:1},map:{value:null},uvTransform:{value:new yt},uv2Transform:{value:new yt},alphaMap:{value:null}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},refractionRatio:{value:.98},maxMipLevel:{value:0}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new vt(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new tn(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new tn(15658734)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},uvTransform:{value:new yt}},sprite:{diffuse:{value:new tn(15658734)},opacity:{value:1},center:{value:new vt(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},uvTransform:{value:new yt}}},di={basic:{uniforms:Yn([ui.common,ui.specularmap,ui.envmap,ui.aomap,ui.lightmap,ui.fog]),vertexShader:hi.meshbasic_vert,fragmentShader:hi.meshbasic_frag},lambert:{uniforms:Yn([ui.common,ui.specularmap,ui.envmap,ui.aomap,ui.lightmap,ui.emissivemap,ui.fog,ui.lights,{emissive:{value:new tn(0)}}]),vertexShader:hi.meshlambert_vert,fragmentShader:hi.meshlambert_frag},phong:{uniforms:Yn([ui.common,ui.specularmap,ui.envmap,ui.aomap,ui.lightmap,ui.emissivemap,ui.bumpmap,ui.normalmap,ui.displacementmap,ui.fog,ui.lights,{emissive:{value:new tn(0)},specular:{value:new tn(1118481)},shininess:{value:30}}]),vertexShader:hi.meshphong_vert,fragmentShader:hi.meshphong_frag},standard:{uniforms:Yn([ui.common,ui.envmap,ui.aomap,ui.lightmap,ui.emissivemap,ui.bumpmap,ui.normalmap,ui.displacementmap,ui.roughnessmap,ui.metalnessmap,ui.fog,ui.lights,{emissive:{value:new tn(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:hi.meshphysical_vert,fragmentShader:hi.meshphysical_frag},toon:{uniforms:Yn([ui.common,ui.aomap,ui.lightmap,ui.emissivemap,ui.bumpmap,ui.normalmap,ui.displacementmap,ui.gradientmap,ui.fog,ui.lights,{emissive:{value:new tn(0)}}]),vertexShader:hi.meshtoon_vert,fragmentShader:hi.meshtoon_frag},matcap:{uniforms:Yn([ui.common,ui.bumpmap,ui.normalmap,ui.displacementmap,ui.fog,{matcap:{value:null}}]),vertexShader:hi.meshmatcap_vert,fragmentShader:hi.meshmatcap_frag},points:{uniforms:Yn([ui.points,ui.fog]),vertexShader:hi.points_vert,fragmentShader:hi.points_frag},dashed:{uniforms:Yn([ui.common,ui.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:hi.linedashed_vert,fragmentShader:hi.linedashed_frag},depth:{uniforms:Yn([ui.common,ui.displacementmap]),vertexShader:hi.depth_vert,fragmentShader:hi.depth_frag},normal:{uniforms:Yn([ui.common,ui.bumpmap,ui.normalmap,ui.displacementmap,{opacity:{value:1}}]),vertexShader:hi.normal_vert,fragmentShader:hi.normal_frag},sprite:{uniforms:Yn([ui.sprite,ui.fog]),vertexShader:hi.sprite_vert,fragmentShader:hi.sprite_frag},background:{uniforms:{uvTransform:{value:new yt},t2D:{value:null}},vertexShader:hi.background_vert,fragmentShader:hi.background_frag},cube:{uniforms:Yn([ui.envmap,{opacity:{value:1}}]),vertexShader:hi.cube_vert,fragmentShader:hi.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:hi.equirect_vert,fragmentShader:hi.equirect_frag},distanceRGBA:{uniforms:Yn([ui.common,ui.displacementmap,{referencePosition:{value:new Lt},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:hi.distanceRGBA_vert,fragmentShader:hi.distanceRGBA_frag},shadow:{uniforms:Yn([ui.lights,ui.fog,{color:{value:new tn(0)},opacity:{value:1}}]),vertexShader:hi.shadow_vert,fragmentShader:hi.shadow_frag}};function pi(t,e,n,i,r){const s=new tn(0);let a,o,c=0,h=null,u=0,d=null;function p(t,e){n.buffers.color.setClear(t.r,t.g,t.b,e,r)}return{getClearColor:function(){return s},setClearColor:function(t,e=1){s.set(t),c=e,p(s,c)},getClearAlpha:function(){return c},setClearAlpha:function(t){c=t,p(s,c)},render:function(n,r,m,f){let g=!0===r.isScene?r.background:null;g&&g.isTexture&&(g=e.get(g));const v=t.xr,y=v.getSession&&v.getSession();y&&"additive"===y.environmentBlendMode&&(g=null),null===g?p(s,c):g&&g.isColor&&(p(g,1),f=!0),(t.autoClear||f)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),g&&(g.isCubeTexture||g.mapping===l)?(void 0===o&&(o=new Wn(new qn(1,1,1),new Jn({name:"BackgroundCubeMaterial",uniforms:Xn(di.cube.uniforms),vertexShader:di.cube.vertexShader,fragmentShader:di.cube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),o.geometry.deleteAttribute("normal"),o.geometry.deleteAttribute("uv"),o.onBeforeRender=function(t,e,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(o.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),i.update(o)),o.material.uniforms.envMap.value=g,o.material.uniforms.flipEnvMap.value=g.isCubeTexture&&g._needsFlipEnvMap?-1:1,h===g&&u===g.version&&d===t.toneMapping||(o.material.needsUpdate=!0,h=g,u=g.version,d=t.toneMapping),n.unshift(o,o.geometry,o.material,0,0,null)):g&&g.isTexture&&(void 0===a&&(a=new Wn(new ci(2,2),new Jn({name:"BackgroundMaterial",uniforms:Xn(di.background.uniforms),vertexShader:di.background.vertexShader,fragmentShader:di.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),a.geometry.deleteAttribute("normal"),Object.defineProperty(a.material,"map",{get:function(){return this.uniforms.t2D.value}}),i.update(a)),a.material.uniforms.t2D.value=g,!0===g.matrixAutoUpdate&&g.updateMatrix(),a.material.uniforms.uvTransform.value.copy(g.matrix),h===g&&u===g.version&&d===t.toneMapping||(a.material.needsUpdate=!0,h=g,u=g.version,d=t.toneMapping),n.unshift(a,a.geometry,a.material,0,0,null))}}}function mi(t,e,n,i){const r=t.getParameter(34921),s=i.isWebGL2?null:e.get("OES_vertex_array_object"),a=i.isWebGL2||null!==s,o={},l=d(null);let c=l;function h(e){return i.isWebGL2?t.bindVertexArray(e):s.bindVertexArrayOES(e)}function u(e){return i.isWebGL2?t.deleteVertexArray(e):s.deleteVertexArrayOES(e)}function d(t){const e=[],n=[],i=[];for(let t=0;t=0){const s=l[e];if(void 0!==s){const e=s.normalized,r=s.itemSize,a=n.get(s);if(void 0===a)continue;const l=a.buffer,c=a.type,h=a.bytesPerElement;if(s.isInterleavedBufferAttribute){const n=s.data,a=n.stride,u=s.offset;n&&n.isInstancedInterleavedBuffer?(f(i,n.meshPerAttribute),void 0===o._maxInstanceCount&&(o._maxInstanceCount=n.meshPerAttribute*n.count)):m(i),t.bindBuffer(34962,l),v(i,r,c,e,a*h,u*h)}else s.isInstancedBufferAttribute?(f(i,s.meshPerAttribute),void 0===o._maxInstanceCount&&(o._maxInstanceCount=s.meshPerAttribute*s.count)):m(i),t.bindBuffer(34962,l),v(i,r,c,e,0,0)}else if("instanceMatrix"===e){const e=n.get(r.instanceMatrix);if(void 0===e)continue;const s=e.buffer,a=e.type;f(i+0,1),f(i+1,1),f(i+2,1),f(i+3,1),t.bindBuffer(34962,s),t.vertexAttribPointer(i+0,4,a,!1,64,0),t.vertexAttribPointer(i+1,4,a,!1,64,16),t.vertexAttribPointer(i+2,4,a,!1,64,32),t.vertexAttribPointer(i+3,4,a,!1,64,48)}else if("instanceColor"===e){const e=n.get(r.instanceColor);if(void 0===e)continue;const s=e.buffer,a=e.type;f(i,1),t.bindBuffer(34962,s),t.vertexAttribPointer(i,3,a,!1,12,0)}else if(void 0!==h){const n=h[e];if(void 0!==n)switch(n.length){case 2:t.vertexAttrib2fv(i,n);break;case 3:t.vertexAttrib3fv(i,n);break;case 4:t.vertexAttrib4fv(i,n);break;default:t.vertexAttrib1fv(i,n)}}}}g()}(r,l,u,y),null!==x&&t.bindBuffer(34963,n.get(x).buffer))},reset:y,resetDefaultState:x,dispose:function(){y();for(const t in o){const e=o[t];for(const t in e){const n=e[t];for(const t in n)u(n[t].object),delete n[t];delete e[t]}delete o[t]}},releaseStatesOfGeometry:function(t){if(void 0===o[t.id])return;const e=o[t.id];for(const t in e){const n=e[t];for(const t in n)u(n[t].object),delete n[t];delete e[t]}delete o[t.id]},releaseStatesOfProgram:function(t){for(const e in o){const n=o[e];if(void 0===n[t.id])continue;const i=n[t.id];for(const t in i)u(i[t].object),delete i[t];delete n[t.id]}},initAttributes:p,enableAttribute:m,disableUnusedAttributes:g}}function fi(t,e,n,i){const r=i.isWebGL2;let s;this.setMode=function(t){s=t},this.render=function(e,i){t.drawArrays(s,e,i),n.update(i,s,1)},this.renderInstances=function(i,a,o){if(0===o)return;let l,c;if(r)l=t,c="drawArraysInstanced";else if(l=e.get("ANGLE_instanced_arrays"),c="drawArraysInstancedANGLE",null===l)return void console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");l[c](s,i,a,o),n.update(a,s,o)}}function gi(t,e,n){let i;function r(e){if("highp"===e){if(t.getShaderPrecisionFormat(35633,36338).precision>0&&t.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";e="mediump"}return"mediump"===e&&t.getShaderPrecisionFormat(35633,36337).precision>0&&t.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}const s="undefined"!=typeof WebGL2RenderingContext&&t instanceof WebGL2RenderingContext||"undefined"!=typeof WebGL2ComputeRenderingContext&&t instanceof WebGL2ComputeRenderingContext;let a=void 0!==n.precision?n.precision:"highp";const o=r(a);o!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",o,"instead."),a=o);const l=!0===n.logarithmicDepthBuffer,c=t.getParameter(34930),h=t.getParameter(35660),u=t.getParameter(3379),d=t.getParameter(34076),p=t.getParameter(34921),m=t.getParameter(36347),f=t.getParameter(36348),g=t.getParameter(36349),v=h>0,y=s||e.has("OES_texture_float");return{isWebGL2:s,getMaxAnisotropy:function(){if(void 0!==i)return i;if(!0===e.has("EXT_texture_filter_anisotropic")){const n=e.get("EXT_texture_filter_anisotropic");i=t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else i=0;return i},getMaxPrecision:r,precision:a,logarithmicDepthBuffer:l,maxTextures:c,maxVertexTextures:h,maxTextureSize:u,maxCubemapSize:d,maxAttributes:p,maxVertexUniforms:m,maxVaryings:f,maxFragmentUniforms:g,vertexTextures:v,floatFragmentTextures:y,floatVertexTextures:v&&y,maxSamples:s?t.getParameter(36183):0}}function vi(t){const e=this;let n=null,i=0,r=!1,s=!1;const a=new Ne,o=new yt,l={value:null,needsUpdate:!1};function c(){l.value!==n&&(l.value=n,l.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function h(t,n,i,r){const s=null!==t?t.length:0;let c=null;if(0!==s){if(c=l.value,!0!==r||null===c){const e=i+4*s,r=n.matrixWorldInverse;o.getNormalMatrix(r),(null===c||c.length0){const a=t.getRenderTarget(),o=new ni(s.height/2);return o.fromEquirectangularTexture(t,r),e.set(r,o),t.setRenderTarget(a),r.addEventListener("dispose",i),n(o.texture,r.mapping)}return null}}}return r},dispose:function(){e=new WeakMap}}}function xi(t){const e={};function n(n){if(void 0!==e[n])return e[n];let i;switch(n){case"WEBGL_depth_texture":i=t.getExtension("WEBGL_depth_texture")||t.getExtension("MOZ_WEBGL_depth_texture")||t.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":i=t.getExtension("EXT_texture_filter_anisotropic")||t.getExtension("MOZ_EXT_texture_filter_anisotropic")||t.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":i=t.getExtension("WEBGL_compressed_texture_s3tc")||t.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":i=t.getExtension("WEBGL_compressed_texture_pvrtc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:i=t.getExtension(n)}return e[n]=i,i}return{has:function(t){return null!==n(t)},init:function(t){t.isWebGL2?n("EXT_color_buffer_float"):(n("WEBGL_depth_texture"),n("OES_texture_float"),n("OES_texture_half_float"),n("OES_texture_half_float_linear"),n("OES_standard_derivatives"),n("OES_element_index_uint"),n("OES_vertex_array_object"),n("ANGLE_instanced_arrays")),n("OES_texture_float_linear"),n("EXT_color_buffer_half_float")},get:function(t){const e=n(t);return null===e&&console.warn("THREE.WebGLRenderer: "+t+" extension not supported."),e}}}function _i(t,e,n,i){const r={},s=new WeakMap;function a(t){const o=t.target;null!==o.index&&e.remove(o.index);for(const t in o.attributes)e.remove(o.attributes[t]);o.removeEventListener("dispose",a),delete r[o.id];const l=s.get(o);l&&(e.remove(l),s.delete(o)),i.releaseStatesOfGeometry(o),!0===o.isInstancedBufferGeometry&&delete o._maxInstanceCount,n.memory.geometries--}function o(t){const n=[],i=t.index,r=t.attributes.position;let a=0;if(null!==i){const t=i.array;a=i.version;for(let e=0,i=t.length;e65535?dn:hn)(n,1);o.version=a;const l=s.get(t);l&&e.remove(l),s.set(t,o)}return{get:function(t,e){return!0===r[e.id]||(e.addEventListener("dispose",a),r[e.id]=!0,n.memory.geometries++),e},update:function(t){const n=t.attributes;for(const t in n)e.update(n[t],34962);const i=t.morphAttributes;for(const t in i){const n=i[t];for(let t=0,i=n.length;t0)return t;const r=e*n;let s=Ii[r];if(void 0===s&&(s=new Float32Array(r),Ii[r]=s),0!==e){i.toArray(s,0);for(let i=1,r=0;i!==e;++i)r+=n,t[i].toArray(s,r)}return s}function Hi(t,e){if(t.length!==e.length)return!1;for(let n=0,i=t.length;n/gm;function kr(t){return t.replace(Ur,Vr)}function Vr(t,e){const n=hi[e];if(void 0===n)throw new Error("Can not resolve #include <"+e+">");return kr(n)}const Wr=/#pragma unroll_loop[\s]+?for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g,jr=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function qr(t){return t.replace(jr,Yr).replace(Wr,Xr)}function Xr(t,e,n,i){return console.warn("WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead."),Yr(t,e,n,i)}function Yr(t,e,n,i){let r="";for(let t=parseInt(e);t0?t.gammaFactor:1,v=n.isWebGL2?"":function(t){return[t.extensionDerivatives||t.envMapCubeUV||t.bumpMap||t.tangentSpaceNormalMap||t.clearcoatNormalMap||t.flatShading||"physical"===t.shaderID?"#extension GL_OES_standard_derivatives : enable":"",(t.extensionFragDepth||t.logarithmicDepthBuffer)&&t.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",t.extensionDrawBuffers&&t.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(t.extensionShaderTextureLOD||t.envMap)&&t.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(Or).join("\n")}(n),y=function(t){const e=[];for(const n in t){const i=t[n];!1!==i&&e.push("#define "+n+" "+i)}return e.join("\n")}(o),x=a.createProgram();let _,w,b=n.glslVersion?"#version "+n.glslVersion+"\n":"";n.isRawShaderMaterial?(_=[y].filter(Or).join("\n"),_.length>0&&(_+="\n"),w=[v,y].filter(Or).join("\n"),w.length>0&&(w+="\n")):(_=[Zr(n),"#define SHADER_NAME "+n.shaderName,y,n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.supportsVertexTextures?"#define VERTEX_TEXTURES":"","#define GAMMA_FACTOR "+g,"#define MAX_BONES "+n.maxBones,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+m:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMap&&n.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",n.normalMap&&n.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.displacementMap&&n.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUvs?"#define USE_UV":"",n.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.useVertexTexture?"#define BONE_TEXTURE":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+d:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#ifdef USE_MORPHTARGETS","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(Or).join("\n"),w=[v,Zr(n),"#define SHADER_NAME "+n.shaderName,y,n.alphaTest?"#define ALPHATEST "+n.alphaTest+(n.alphaTest%1?"":".0"):"","#define GAMMA_FACTOR "+g,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+p:"",n.envMap?"#define "+m:"",n.envMap?"#define "+f:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMap&&n.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",n.normalMap&&n.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.sheen?"#define USE_SHEEN":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUvs?"#define USE_UV":"",n.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+d:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"",(n.extensionShaderTextureLOD||n.envMap)&&n.rendererExtensionShaderTextureLod?"#define TEXTURE_LOD_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",0!==n.toneMapping?"#define TONE_MAPPING":"",0!==n.toneMapping?hi.tonemapping_pars_fragment:"",0!==n.toneMapping?Fr("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",hi.encodings_pars_fragment,n.map?Br("mapTexelToLinear",n.mapEncoding):"",n.matcap?Br("matcapTexelToLinear",n.matcapEncoding):"",n.envMap?Br("envMapTexelToLinear",n.envMapEncoding):"",n.emissiveMap?Br("emissiveMapTexelToLinear",n.emissiveMapEncoding):"",n.lightMap?Br("lightMapTexelToLinear",n.lightMapEncoding):"",zr("linearToOutputTexel",n.outputEncoding),n.depthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(Or).join("\n")),h=kr(h),h=Hr(h,n),h=Gr(h,n),u=kr(u),u=Hr(u,n),u=Gr(u,n),h=qr(h),u=qr(u),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(b="#version 300 es\n",_=["#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+_,w=["#define varying in",n.glslVersion===it?"":"out highp vec4 pc_fragColor;",n.glslVersion===it?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+w);const M=b+w+u,S=Pr(a,35633,b+_+h),T=Pr(a,35632,M);if(a.attachShader(x,S),a.attachShader(x,T),void 0!==n.index0AttributeName?a.bindAttribLocation(x,0,n.index0AttributeName):!0===n.morphTargets&&a.bindAttribLocation(x,0,"position"),a.linkProgram(x),t.debug.checkShaderErrors){const t=a.getProgramInfoLog(x).trim(),e=a.getShaderInfoLog(S).trim(),n=a.getShaderInfoLog(T).trim();let i=!0,r=!0;if(!1===a.getProgramParameter(x,35714)){i=!1;const e=Nr(a,S,"vertex"),n=Nr(a,T,"fragment");console.error("THREE.WebGLProgram: shader error: ",a.getError(),"35715",a.getProgramParameter(x,35715),"gl.getProgramInfoLog",t,e,n)}else""!==t?console.warn("THREE.WebGLProgram: gl.getProgramInfoLog()",t):""!==e&&""!==n||(r=!1);r&&(this.diagnostics={runnable:i,programLog:t,vertexShader:{log:e,prefix:_},fragmentShader:{log:n,prefix:w}})}let E,A;return a.deleteShader(S),a.deleteShader(T),this.getUniforms=function(){return void 0===E&&(E=new Cr(a,x)),E},this.getAttributes=function(){return void 0===A&&(A=function(t,e){const n={},i=t.getProgramParameter(e,35721);for(let r=0;r0,maxBones:S,useVertexTexture:u,morphTargets:r.morphTargets,morphNormals:r.morphNormals,numDirLights:a.directional.length,numPointLights:a.point.length,numSpotLights:a.spot.length,numRectAreaLights:a.rectArea.length,numHemiLights:a.hemi.length,numDirLightShadows:a.directionalShadowMap.length,numPointLightShadows:a.pointShadowMap.length,numSpotLightShadows:a.spotShadowMap.length,numClippingPlanes:s.numPlanes,numClipIntersection:s.numIntersection,dithering:r.dithering,shadowMapEnabled:t.shadowMap.enabled&&g.length>0,shadowMapType:t.shadowMap.type,toneMapping:r.toneMapped?t.toneMapping:0,physicallyCorrectLights:t.physicallyCorrectLights,premultipliedAlpha:r.premultipliedAlpha,alphaTest:r.alphaTest,doubleSided:2===r.side,flipSided:1===r.side,depthPacking:void 0!==r.depthPacking&&r.depthPacking,index0AttributeName:r.index0AttributeName,extensionDerivatives:r.extensions&&r.extensions.derivatives,extensionFragDepth:r.extensions&&r.extensions.fragDepth,extensionDrawBuffers:r.extensions&&r.extensions.drawBuffers,extensionShaderTextureLOD:r.extensions&&r.extensions.shaderTextureLOD,rendererExtensionFragDepth:o||n.has("EXT_frag_depth"),rendererExtensionDrawBuffers:o||n.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:o||n.has("EXT_shader_texture_lod"),customProgramCacheKey:r.customProgramCacheKey()}},getProgramCacheKey:function(e){const n=[];if(e.shaderID?n.push(e.shaderID):(n.push(e.fragmentShader),n.push(e.vertexShader)),void 0!==e.defines)for(const t in e.defines)n.push(t),n.push(e.defines[t]);if(!1===e.isRawShaderMaterial){for(let t=0;t1&&i.sort(t||$r),r.length>1&&r.sort(e||ts)}}}function ns(t){let e=new WeakMap;return{get:function(n,i){let r;return!1===e.has(n)?(r=new es(t),e.set(n,[r])):i>=e.get(n).length?(r=new es(t),e.get(n).push(r)):r=e.get(n)[i],r},dispose:function(){e=new WeakMap}}}function is(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":n={direction:new Lt,color:new tn};break;case"SpotLight":n={position:new Lt,direction:new Lt,color:new tn,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new Lt,color:new tn,distance:0,decay:0};break;case"HemisphereLight":n={direction:new Lt,skyColor:new tn,groundColor:new tn};break;case"RectAreaLight":n={color:new tn,position:new Lt,halfWidth:new Lt,halfHeight:new Lt}}return t[e.id]=n,n}}}let rs=0;function ss(t,e){return(e.castShadow?1:0)-(t.castShadow?1:0)}function as(t,e){const n=new is,i=function(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":case"SpotLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new vt};break;case"PointLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new vt,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=n,n}}}(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadow:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]};for(let t=0;t<9;t++)r.probe.push(new Lt);const s=new Lt,a=new se,o=new se;return{setup:function(s){let a=0,o=0,l=0;for(let t=0;t<9;t++)r.probe[t].set(0,0,0);let c=0,h=0,u=0,d=0,p=0,m=0,f=0,g=0;s.sort(ss);for(let t=0,e=s.length;t0&&(e.isWebGL2||!0===t.has("OES_texture_float_linear")?(r.rectAreaLTC1=ui.LTC_FLOAT_1,r.rectAreaLTC2=ui.LTC_FLOAT_2):!0===t.has("OES_texture_half_float_linear")?(r.rectAreaLTC1=ui.LTC_HALF_1,r.rectAreaLTC2=ui.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=a,r.ambient[1]=o,r.ambient[2]=l;const v=r.hash;v.directionalLength===c&&v.pointLength===h&&v.spotLength===u&&v.rectAreaLength===d&&v.hemiLength===p&&v.numDirectionalShadows===m&&v.numPointShadows===f&&v.numSpotShadows===g||(r.directional.length=c,r.spot.length=u,r.rectArea.length=d,r.point.length=h,r.hemi.length=p,r.directionalShadow.length=m,r.directionalShadowMap.length=m,r.pointShadow.length=f,r.pointShadowMap.length=f,r.spotShadow.length=g,r.spotShadowMap.length=g,r.directionalShadowMatrix.length=m,r.pointShadowMatrix.length=f,r.spotShadowMatrix.length=g,v.directionalLength=c,v.pointLength=h,v.spotLength=u,v.rectAreaLength=d,v.hemiLength=p,v.numDirectionalShadows=m,v.numPointShadows=f,v.numSpotShadows=g,r.version=rs++)},setupView:function(t,e){let n=0,i=0,l=0,c=0,h=0;const u=e.matrixWorldInverse;for(let e=0,d=t.length;e=n.get(i).length?(s=new os(t,e),n.get(i).push(s)):s=n.get(i)[r],s},dispose:function(){n=new WeakMap}}}class cs extends Xe{constructor(t){super(),this.type="MeshDepthMaterial",this.depthPacking=3200,this.skinning=!1,this.morphTargets=!1,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}cs.prototype.isMeshDepthMaterial=!0;class hs extends Xe{constructor(t){super(),this.type="MeshDistanceMaterial",this.referencePosition=new Lt,this.nearDistance=1,this.farDistance=1e3,this.skinning=!1,this.morphTargets=!1,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.fog=!1,this.setValues(t)}copy(t){return super.copy(t),this.referencePosition.copy(t.referencePosition),this.nearDistance=t.nearDistance,this.farDistance=t.farDistance,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}hs.prototype.isMeshDistanceMaterial=!0;function us(t,e,n){let i=new ai;const r=new vt,s=new vt,a=new St,o=[],l=[],c={},h=n.maxTextureSize,u={0:1,1:0,2:2},d=new Jn({defines:{SAMPLE_RATE:2/8,HALF_SAMPLE_RATE:1/8},uniforms:{shadow_pass:{value:null},resolution:{value:new vt},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy ) / resolution ) );\n\tfor ( float i = -1.0; i < 1.0 ; i += SAMPLE_RATE) {\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( i, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, i ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean * HALF_SAMPLE_RATE;\n\tsquared_mean = squared_mean * HALF_SAMPLE_RATE;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),m=d.clone();m.defines.HORIZONTAL_PASS=1;const f=new En;f.setAttribute("position",new sn(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const v=new Wn(f,d),y=this;function x(n,i){const r=e.update(v);d.uniforms.shadow_pass.value=n.map.texture,d.uniforms.resolution.value=n.mapSize,d.uniforms.radius.value=n.radius,t.setRenderTarget(n.mapPass),t.clear(),t.renderBufferDirect(i,null,r,d,v,null),m.uniforms.shadow_pass.value=n.mapPass.texture,m.uniforms.resolution.value=n.mapSize,m.uniforms.radius.value=n.radius,t.setRenderTarget(n.map),t.clear(),t.renderBufferDirect(i,null,r,m,v,null)}function _(t,e,n){const i=t<<0|e<<1|n<<2;let r=o[i];return void 0===r&&(r=new cs({depthPacking:3201,morphTargets:t,skinning:e}),o[i]=r),r}function w(t,e,n){const i=t<<0|e<<1|n<<2;let r=l[i];return void 0===r&&(r=new hs({morphTargets:t,skinning:e}),l[i]=r),r}function b(e,n,i,r,s,a,o){let l=null,h=_,d=e.customDepthMaterial;if(!0===r.isPointLight&&(h=w,d=e.customDistanceMaterial),void 0===d){let t=!1;!0===i.morphTargets&&(t=n.morphAttributes&&n.morphAttributes.position&&n.morphAttributes.position.length>0);let r=!1;!0===e.isSkinnedMesh&&(!0===i.skinning?r=!0:console.warn("THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:",e));l=h(t,r,!0===e.isInstancedMesh)}else l=d;if(t.localClippingEnabled&&!0===i.clipShadows&&0!==i.clippingPlanes.length){const t=l.uuid,e=i.uuid;let n=c[t];void 0===n&&(n={},c[t]=n);let r=n[e];void 0===r&&(r=l.clone(),n[e]=r),l=r}return l.visible=i.visible,l.wireframe=i.wireframe,l.side=3===o?null!==i.shadowSide?i.shadowSide:i.side:null!==i.shadowSide?i.shadowSide:u[i.side],l.clipShadows=i.clipShadows,l.clippingPlanes=i.clippingPlanes,l.clipIntersection=i.clipIntersection,l.wireframeLinewidth=i.wireframeLinewidth,l.linewidth=i.linewidth,!0===r.isPointLight&&!0===l.isMeshDistanceMaterial&&(l.referencePosition.setFromMatrixPosition(r.matrixWorld),l.nearDistance=s,l.farDistance=a),l}function M(n,r,s,a,o){if(!1===n.visible)return;if(n.layers.test(r.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&3===o)&&(!n.frustumCulled||i.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,n.matrixWorld);const i=e.update(n),r=n.material;if(Array.isArray(r)){const e=i.groups;for(let l=0,c=e.length;lh||r.y>h)&&(r.x>h&&(s.x=Math.floor(h/m.x),r.x=s.x*m.x,u.mapSize.x=s.x),r.y>h&&(s.y=Math.floor(h/m.y),r.y=s.y*m.y,u.mapSize.y=s.y)),null===u.map&&!u.isPointLightShadow&&3===this.type){const t={minFilter:g,magFilter:g,format:E};u.map=new Tt(r.x,r.y,t),u.map.texture.name=c.name+".shadowMap",u.mapPass=new Tt(r.x,r.y,t),u.camera.updateProjectionMatrix()}if(null===u.map){const t={minFilter:p,magFilter:p,format:E};u.map=new Tt(r.x,r.y,t),u.map.texture.name=c.name+".shadowMap",u.camera.updateProjectionMatrix()}t.setRenderTarget(u.map),t.clear();const f=u.getViewportCount();for(let t=0;t=1):-1!==R.indexOf("OpenGL ES")&&(L=parseFloat(/^OpenGL ES (\d)/.exec(R)[1]),A=L>=2);let C=null,P={};const D=new St(0,0,t.canvas.width,t.canvas.height),I=new St(0,0,t.canvas.width,t.canvas.height);function N(e,n,i){const r=new Uint8Array(4),s=t.createTexture();t.bindTexture(e,s),t.texParameteri(e,10241,9728),t.texParameteri(e,10240,9728);for(let e=0;ei||t.height>i)&&(r=i/Math.max(t.width,t.height)),r<1||!0===e){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const i=e?ft:Math.floor,s=i(r*t.width),a=i(r*t.height);void 0===P&&(P=I(s,a));const o=n?I(s,a):P;o.width=s,o.height=a;return o.getContext("2d").drawImage(t,0,0,s,a),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+t.width+"x"+t.height+") to ("+s+"x"+a+")."),o}return"data"in t&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+t.width+"x"+t.height+")."),t}return t}function B(t){return pt(t.width)&&pt(t.height)}function z(t,e){return t.generateMipmaps&&e&&t.minFilter!==p&&t.minFilter!==g}function F(e,n,r,s){t.generateMipmap(e);i.get(n).__maxMipLevel=Math.log2(Math.max(r,s))}function O(n,i,r){if(!1===o)return i;if(null!==n){if(void 0!==t[n])return t[n];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+n+"'")}let s=i;return 6403===i&&(5126===r&&(s=33326),5131===r&&(s=33325),5121===r&&(s=33321)),6407===i&&(5126===r&&(s=34837),5131===r&&(s=34843),5121===r&&(s=32849)),6408===i&&(5126===r&&(s=34836),5131===r&&(s=34842),5121===r&&(s=32856)),33325!==s&&33326!==s&&34842!==s&&34836!==s||e.get("EXT_color_buffer_float"),s}function H(t){return t===p||t===m||t===f?9728:9729}function G(e){const n=e.target;n.removeEventListener("dispose",G),function(e){const n=i.get(e);if(void 0===n.__webglInit)return;t.deleteTexture(n.__webglTexture),i.remove(e)}(n),n.isVideoTexture&&C.delete(n),a.memory.textures--}function U(e){const n=e.target;n.removeEventListener("dispose",U),function(e){const n=e.texture,r=i.get(e),s=i.get(n);if(!e)return;void 0!==s.__webglTexture&&t.deleteTexture(s.__webglTexture);e.depthTexture&&e.depthTexture.dispose();if(e.isWebGLCubeRenderTarget)for(let e=0;e<6;e++)t.deleteFramebuffer(r.__webglFramebuffer[e]),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer[e]);else t.deleteFramebuffer(r.__webglFramebuffer),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer),r.__webglMultisampledFramebuffer&&t.deleteFramebuffer(r.__webglMultisampledFramebuffer),r.__webglColorRenderbuffer&&t.deleteRenderbuffer(r.__webglColorRenderbuffer),r.__webglDepthRenderbuffer&&t.deleteRenderbuffer(r.__webglDepthRenderbuffer);i.remove(n),i.remove(e)}(n),a.memory.textures--}let k=0;function V(t,e){const r=i.get(t);if(t.isVideoTexture&&function(t){const e=a.render.frame;C.get(t)!==e&&(C.set(t,e),t.update())}(t),t.version>0&&r.__version!==t.version){const n=t.image;if(void 0===n)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined");else{if(!1!==n.complete)return void Z(r,t,e);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.activeTexture(33984+e),n.bindTexture(3553,r.__webglTexture)}function W(e,r){const a=i.get(e);e.version>0&&a.__version!==e.version?function(e,i,r){if(6!==i.image.length)return;Y(e,i),n.activeTexture(33984+r),n.bindTexture(34067,e.__webglTexture),t.pixelStorei(37440,i.flipY),t.pixelStorei(37441,i.premultiplyAlpha),t.pixelStorei(3317,i.unpackAlignment),t.pixelStorei(37443,0);const a=i&&(i.isCompressedTexture||i.image[0].isCompressedTexture),l=i.image[0]&&i.image[0].isDataTexture,h=[];for(let t=0;t<6;t++)h[t]=a||l?l?i.image[t].image:i.image[t]:N(i.image[t],!1,!0,c);const u=h[0],d=B(u)||o,p=s.convert(i.format),m=s.convert(i.type),f=O(i.internalFormat,p,m);let g;if(X(34067,i,d),a){for(let t=0;t<6;t++){g=h[t].mipmaps;for(let e=0;e1||i.get(s).__currentAnisotropy)&&(t.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,r.getMaxAnisotropy())),i.get(s).__currentAnisotropy=s.anisotropy)}}function Y(e,n){void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener("dispose",G),e.__webglTexture=t.createTexture(),a.memory.textures++)}function Z(e,i,r){let a=3553;i.isDataTexture2DArray&&(a=35866),i.isDataTexture3D&&(a=32879),Y(e,i),n.activeTexture(33984+r),n.bindTexture(a,e.__webglTexture),t.pixelStorei(37440,i.flipY),t.pixelStorei(37441,i.premultiplyAlpha),t.pixelStorei(3317,i.unpackAlignment),t.pixelStorei(37443,0);const l=function(t){return!o&&(t.wrapS!==u||t.wrapT!==u||t.minFilter!==p&&t.minFilter!==g)}(i)&&!1===B(i.image),c=N(i.image,l,!1,x),h=B(c)||o,d=s.convert(i.format);let m,f=s.convert(i.type),v=O(i.internalFormat,d,f);X(a,i,h);const y=i.mipmaps;if(i.isDepthTexture)v=6402,o?v=i.type===b?36012:i.type===w?33190:i.type===S?35056:33189:i.type===b&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),i.format===A&&6402===v&&i.type!==_&&i.type!==w&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),i.type=_,f=s.convert(i.type)),i.format===L&&6402===v&&(v=34041,i.type!==S&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),i.type=S,f=s.convert(i.type))),n.texImage2D(3553,0,v,c.width,c.height,0,d,f,null);else if(i.isDataTexture)if(y.length>0&&h){for(let t=0,e=y.length;t0&&h){for(let t=0,e=y.length;t=l&&console.warn("THREE.WebGLTextures: Trying to use "+t+" texture units while this GPU supports only "+l),k+=1,t},this.resetTextureUnits=function(){k=0},this.setTexture2D=V,this.setTexture2DArray=function(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?Z(r,t,e):(n.activeTexture(33984+e),n.bindTexture(35866,r.__webglTexture))},this.setTexture3D=function(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?Z(r,t,e):(n.activeTexture(33984+e),n.bindTexture(32879,r.__webglTexture))},this.setTextureCube=W,this.setupRenderTarget=function(e){const r=e.texture,l=i.get(e),c=i.get(r);e.addEventListener("dispose",U),c.__webglTexture=t.createTexture(),c.__version=r.version,a.memory.textures++;const h=!0===e.isWebGLCubeRenderTarget,u=!0===e.isWebGLMultisampleRenderTarget,d=r.isDataTexture3D||r.isDataTexture2DArray,p=B(e)||o;if(!o||r.format!==T||r.type!==b&&r.type!==M||(r.format=E,console.warn("THREE.WebGLRenderer: Rendering to textures with RGB format is not supported. Using RGBA format instead.")),h){l.__webglFramebuffer=[];for(let e=0;e<6;e++)l.__webglFramebuffer[e]=t.createFramebuffer()}else if(l.__webglFramebuffer=t.createFramebuffer(),u)if(o){l.__webglMultisampledFramebuffer=t.createFramebuffer(),l.__webglColorRenderbuffer=t.createRenderbuffer(),t.bindRenderbuffer(36161,l.__webglColorRenderbuffer);const i=s.convert(r.format),a=s.convert(r.type),o=O(r.internalFormat,i,a),c=$(e);t.renderbufferStorageMultisample(36161,c,o,e.width,e.height),n.bindFramebuffer(36160,l.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(36160,36064,36161,l.__webglColorRenderbuffer),t.bindRenderbuffer(36161,null),e.depthBuffer&&(l.__webglDepthRenderbuffer=t.createRenderbuffer(),Q(l.__webglDepthRenderbuffer,e,!0)),n.bindFramebuffer(36160,null)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.");if(h){n.bindTexture(34067,c.__webglTexture),X(34067,r,p);for(let t=0;t<6;t++)J(l.__webglFramebuffer[t],e,36064,34069+t);z(r,p)&&F(34067,r,e.width,e.height),n.bindTexture(34067,null)}else{let t=3553;if(d)if(o){t=r.isDataTexture3D?32879:35866}else console.warn("THREE.DataTexture3D and THREE.DataTexture2DArray only supported with WebGL2.");n.bindTexture(t,c.__webglTexture),X(t,r,p),J(l.__webglFramebuffer,e,36064,t),z(r,p)&&F(3553,r,e.width,e.height),n.bindTexture(3553,null)}e.depthBuffer&&K(e)},this.updateRenderTargetMipmap=function(t){const e=t.texture;if(z(e,B(t)||o)){const r=t.isWebGLCubeRenderTarget?34067:3553,s=i.get(e).__webglTexture;n.bindTexture(r,s),F(r,e,t.width,t.height),n.bindTexture(r,null)}},this.updateMultisampleRenderTarget=function(e){if(e.isWebGLMultisampleRenderTarget)if(o){const r=e.width,s=e.height;let a=16384;e.depthBuffer&&(a|=256),e.stencilBuffer&&(a|=1024);const o=i.get(e);n.bindFramebuffer(36008,o.__webglMultisampledFramebuffer),n.bindFramebuffer(36009,o.__webglFramebuffer),t.blitFramebuffer(0,0,r,s,0,0,r,s,a,9728),n.bindFramebuffer(36008,null),n.bindFramebuffer(36009,o.__webglMultisampledFramebuffer)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.")},this.safeSetTexture2D=function(t,e){t&&t.isWebGLRenderTarget&&(!1===tt&&(console.warn("THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead."),tt=!0),t=t.texture),V(t,e)},this.safeSetTextureCube=function(t,e){t&&t.isWebGLCubeRenderTarget&&(!1===et&&(console.warn("THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead."),et=!0),t=t.texture),W(t,e)}}function ms(t,e,n){const i=n.isWebGL2;return{convert:function(t){let n;if(t===x)return 5121;if(1017===t)return 32819;if(1018===t)return 32820;if(1019===t)return 33635;if(1010===t)return 5120;if(1011===t)return 5122;if(t===_)return 5123;if(1013===t)return 5124;if(t===w)return 5125;if(t===b)return 5126;if(t===M)return i?5131:(n=e.get("OES_texture_half_float"),null!==n?n.HALF_FLOAT_OES:null);if(1021===t)return 6406;if(t===T)return 6407;if(t===E)return 6408;if(1024===t)return 6409;if(1025===t)return 6410;if(t===A)return 6402;if(t===L)return 34041;if(1028===t)return 6403;if(1029===t)return 36244;if(1030===t)return 33319;if(1031===t)return 33320;if(1032===t)return 36248;if(1033===t)return 36249;if(t===R||t===C||t===P||t===D){if(n=e.get("WEBGL_compressed_texture_s3tc"),null===n)return null;if(t===R)return n.COMPRESSED_RGB_S3TC_DXT1_EXT;if(t===C)return n.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(t===P)return n.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(t===D)return n.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(t===I||t===N||t===B||t===z){if(n=e.get("WEBGL_compressed_texture_pvrtc"),null===n)return null;if(t===I)return n.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(t===N)return n.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(t===B)return n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(t===z)return n.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(36196===t)return n=e.get("WEBGL_compressed_texture_etc1"),null!==n?n.COMPRESSED_RGB_ETC1_WEBGL:null;if((t===F||t===O)&&(n=e.get("WEBGL_compressed_texture_etc"),null!==n)){if(t===F)return n.COMPRESSED_RGB8_ETC2;if(t===O)return n.COMPRESSED_RGBA8_ETC2_EAC}return 37808===t||37809===t||37810===t||37811===t||37812===t||37813===t||37814===t||37815===t||37816===t||37817===t||37818===t||37819===t||37820===t||37821===t||37840===t||37841===t||37842===t||37843===t||37844===t||37845===t||37846===t||37847===t||37848===t||37849===t||37850===t||37851===t||37852===t||37853===t?(n=e.get("WEBGL_compressed_texture_astc"),null!==n?t:null):36492===t?(n=e.get("EXT_texture_compression_bptc"),null!==n?t:null):t===S?i?34042:(n=e.get("WEBGL_depth_texture"),null!==n?n.UNSIGNED_INT_24_8_WEBGL:null):void 0}}}class fs extends Kn{constructor(t=[]){super(),this.cameras=t}}fs.prototype.isArrayCamera=!0;class gs extends Ce{constructor(){super(),this.type="Group"}}gs.prototype.isGroup=!0;const vs={type:"move"};class ys{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return null===this._hand&&(this._hand=new gs,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return null===this._targetRay&&(this._targetRay=new gs,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new Lt,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new Lt),this._targetRay}getGripSpace(){return null===this._grip&&(this._grip=new gs,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new Lt,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new Lt),this._grip}dispatchEvent(t){return null!==this._targetRay&&this._targetRay.dispatchEvent(t),null!==this._grip&&this._grip.dispatchEvent(t),null!==this._hand&&this._hand.dispatchEvent(t),this}disconnect(t){return this.dispatchEvent({type:"disconnected",data:t}),null!==this._targetRay&&(this._targetRay.visible=!1),null!==this._grip&&(this._grip.visible=!1),null!==this._hand&&(this._hand.visible=!1),this}update(t,e,n){let i=null,r=null,s=null;const a=this._targetRay,o=this._grip,l=this._hand;if(t&&"visible-blurred"!==e.session.visibilityState)if(null!==a&&(i=e.getPose(t.targetRaySpace,n),null!==i&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(vs))),l&&t.hand){s=!0;for(const i of t.hand.values()){const t=e.getJointPose(i,n);if(void 0===l.joints[i.jointName]){const t=new gs;t.matrixAutoUpdate=!1,t.visible=!1,l.joints[i.jointName]=t,l.add(t)}const r=l.joints[i.jointName];null!==t&&(r.matrix.fromArray(t.transform.matrix),r.matrix.decompose(r.position,r.rotation,r.scale),r.jointRadius=t.radius),r.visible=null!==t}const i=l.joints["index-finger-tip"],r=l.joints["thumb-tip"],a=i.position.distanceTo(r.position),o=.02,c=.005;l.inputState.pinching&&a>o+c?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&a<=o-c&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==o&&t.gripSpace&&(r=e.getPose(t.gripSpace,n),null!==r&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1));return null!==a&&(a.visible=null!==i),null!==o&&(o.visible=null!==r),null!==l&&(l.visible=null!==s),this}}class xs extends rt{constructor(t,e){super();const n=this,i=t.state;let r=null,s=1,a=null,o="local-floor",l=null;const c=[],h=new Map,u=new Kn;u.layers.enable(1),u.viewport=new St;const d=new Kn;d.layers.enable(2),d.viewport=new St;const p=[u,d],m=new fs;m.layers.enable(1),m.layers.enable(2);let f=null,g=null;function v(t){const e=h.get(t.inputSource);e&&e.dispatchEvent({type:t.type,data:t.inputSource})}function y(){h.forEach((function(t,e){t.disconnect(e)})),h.clear(),f=null,g=null,i.bindXRFramebuffer(null),t.setRenderTarget(t.getRenderTarget()),S.stop(),n.isPresenting=!1,n.dispatchEvent({type:"sessionend"})}function x(t){const e=r.inputSources;for(let t=0;t0&&Rt(s,t,e),a.length>0&&Rt(a,t,e),null!==_&&(J.updateRenderTargetMipmap(_),J.updateMultisampleRenderTarget(_)),!0===t.isScene&&t.onAfterRender(f,t,e),q.buffers.depth.setTest(!0),q.buffers.depth.setMask(!0),q.buffers.color.setMask(!0),q.setPolygonOffset(!1),dt.resetDefaultState(),w=-1,S=null,m.pop(),d=m.length>0?m[m.length-1]:null,p.pop(),u=p.length>0?p[p.length-1]:null},this.getActiveCubeFace=function(){return v},this.getActiveMipmapLevel=function(){return y},this.getRenderTarget=function(){return _},this.setRenderTarget=function(t,e=0,n=0){_=t,v=e,y=n,t&&void 0===Z.get(t).__webglFramebuffer&&J.setupRenderTarget(t);let i=null,r=!1,s=!1;if(t){const n=t.texture;(n.isDataTexture3D||n.isDataTexture2DArray)&&(s=!0);const a=Z.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(i=a[e],r=!0):i=t.isWebGLMultisampleRenderTarget?Z.get(t).__webglMultisampledFramebuffer:a,T.copy(t.viewport),A.copy(t.scissor),L=t.scissorTest}else T.copy(N).multiplyScalar(P).floor(),A.copy(B).multiplyScalar(P).floor(),L=z;if(q.bindFramebuffer(36160,i),q.viewport(T),q.scissor(A),q.setScissorTest(L),r){const i=Z.get(t.texture);pt.framebufferTexture2D(36160,36064,34069+e,i.__webglTexture,n)}else if(s){const i=Z.get(t.texture),r=e||0;pt.framebufferTextureLayer(36160,36064,i.__webglTexture,n||0,r)}},this.readRenderTargetPixels=function(t,e,n,i,r,s,a){if(!t||!t.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=Z.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){q.bindFramebuffer(36160,o);try{const a=t.texture,o=a.format,l=a.type;if(o!==E&&ut.convert(o)!==pt.getParameter(35739))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const c=l===M&&(W.has("EXT_color_buffer_half_float")||j.isWebGL2&&W.has("EXT_color_buffer_float"));if(!(l===x||ut.convert(l)===pt.getParameter(35738)||l===b&&(j.isWebGL2||W.has("OES_texture_float")||W.has("WEBGL_color_buffer_float"))||c))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");36053===pt.checkFramebufferStatus(36160)?e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r&&pt.readPixels(e,n,i,r,ut.convert(o),ut.convert(l),s):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.")}finally{const t=null!==_?Z.get(_).__webglFramebuffer:null;q.bindFramebuffer(36160,t)}}},this.copyFramebufferToTexture=function(t,e,n=0){const i=Math.pow(2,-n),r=Math.floor(e.image.width*i),s=Math.floor(e.image.height*i),a=ut.convert(e.format);J.setTexture2D(e,0),pt.copyTexImage2D(3553,n,a,t.x,t.y,r,s,0),q.unbindTexture()},this.copyTextureToTexture=function(t,e,n,i=0){const r=e.image.width,s=e.image.height,a=ut.convert(n.format),o=ut.convert(n.type);J.setTexture2D(n,0),pt.pixelStorei(37440,n.flipY),pt.pixelStorei(37441,n.premultiplyAlpha),pt.pixelStorei(3317,n.unpackAlignment),e.isDataTexture?pt.texSubImage2D(3553,i,t.x,t.y,r,s,a,o,e.image.data):e.isCompressedTexture?pt.compressedTexSubImage2D(3553,i,t.x,t.y,e.mipmaps[0].width,e.mipmaps[0].height,a,e.mipmaps[0].data):pt.texSubImage2D(3553,i,t.x,t.y,a,o,e.image),0===i&&n.generateMipmaps&&pt.generateMipmap(3553),q.unbindTexture()},this.copyTextureToTexture3D=function(t,e,n,i,r=0){if(f.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");const{width:s,height:a,data:o}=n.image,l=ut.convert(i.format),c=ut.convert(i.type);let h;if(i.isDataTexture3D)J.setTexture3D(i,0),h=32879;else{if(!i.isDataTexture2DArray)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");J.setTexture2DArray(i,0),h=35866}pt.pixelStorei(37440,i.flipY),pt.pixelStorei(37441,i.premultiplyAlpha),pt.pixelStorei(3317,i.unpackAlignment);const u=pt.getParameter(3314),d=pt.getParameter(32878),p=pt.getParameter(3316),m=pt.getParameter(3315),g=pt.getParameter(32877);pt.pixelStorei(3314,s),pt.pixelStorei(32878,a),pt.pixelStorei(3316,t.min.x),pt.pixelStorei(3315,t.min.y),pt.pixelStorei(32877,t.min.z),pt.texSubImage3D(h,r,e.x,e.y,e.z,t.max.x-t.min.x+1,t.max.y-t.min.y+1,t.max.z-t.min.z+1,l,c,o),pt.pixelStorei(3314,u),pt.pixelStorei(32878,d),pt.pixelStorei(3316,p),pt.pixelStorei(3315,m),pt.pixelStorei(32877,g),0===r&&i.generateMipmaps&&pt.generateMipmap(h),q.unbindTexture()},this.initTexture=function(t){J.setTexture2D(t,0),q.unbindTexture()},this.resetState=function(){v=0,y=0,_=null,q.reset(),dt.reset()},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}class bs extends ws{}bs.prototype.isWebGL1Renderer=!0;class Ms{constructor(t,e=25e-5){this.name="",this.color=new tn(t),this.density=e}clone(){return new Ms(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}}Ms.prototype.isFogExp2=!0;class Ss{constructor(t,e=1,n=1e3){this.name="",this.color=new tn(t),this.near=e,this.far=n}clone(){return new Ss(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}}Ss.prototype.isFog=!0;class Ts extends Ce{constructor(){super(),this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0,"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.autoUpdate=t.autoUpdate,this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.background&&(e.object.background=this.background.toJSON(t)),null!==this.environment&&(e.object.environment=this.environment.toJSON(t)),null!==this.fog&&(e.object.fog=this.fog.toJSON()),e}}Ts.prototype.isScene=!0;class Es{constructor(t,e){this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=et,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=ct(),this.onUploadCallback=function(){}}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let i=0,r=this.stride;it.far||e.push({distance:o,point:Ps.clone(),uv:je.getUV(Ps,Fs,Os,Hs,Gs,Us,ks,new vt),face:null,object:this})}copy(t){return super.copy(t),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}}function Ws(t,e,n,i,r,s){Ns.subVectors(t,n).addScalar(.5).multiply(i),void 0!==r?(Bs.x=s*Ns.x-r*Ns.y,Bs.y=r*Ns.x+s*Ns.y):Bs.copy(Ns),t.copy(e),t.x+=Bs.x,t.y+=Bs.y,t.applyMatrix4(zs)}Vs.prototype.isSprite=!0;const js=new Lt,qs=new Lt;class Xs extends Ce{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(t){super.copy(t,!1);const e=t.levels;for(let t=0,n=e.length;t0){let n,i;for(n=1,i=e.length;n0){js.setFromMatrixPosition(this.matrixWorld);const n=t.ray.origin.distanceTo(js);this.getObjectForDistance(n).raycast(t,e)}}update(t){const e=this.levels;if(e.length>1){js.setFromMatrixPosition(t.matrixWorld),qs.setFromMatrixPosition(this.matrixWorld);const n=js.distanceTo(qs)/t.zoom;let i,r;for(e[0].object.visible=!0,i=1,r=e.length;i=e[i].distance;i++)e[i-1].object.visible=!1,e[i].object.visible=!0;for(this._currentLevel=i-1;io)continue;u.applyMatrix4(this.matrixWorld);const d=t.ray.origin.distanceTo(u);dt.far||e.push({distance:d,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}else{for(let n=Math.max(0,s.start),i=Math.min(r.count,s.start+s.count)-1;no)continue;u.applyMatrix4(this.matrixWorld);const i=t.ray.origin.distanceTo(u);it.far||e.push({distance:i,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}}else n.isGeometry&&console.error("THREE.Line.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e0&&console.error("THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}}fa.prototype.isLine=!0;const ga=new Lt,va=new Lt;class ya extends fa{constructor(t,e){super(t,e),this.type="LineSegments"}computeLineDistances(){const t=this.geometry;if(t.isBufferGeometry)if(null===t.index){const e=t.attributes.position,n=[];for(let t=0,i=e.count;t0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e0&&console.error("THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}}function Ea(t,e,n,i,r,s,a){const o=ba.distanceSqToPoint(t);if(or.far)return;s.push({distance:l,distanceToRay:Math.sqrt(o),point:n,index:e,face:null,object:a})}}Ta.prototype.isPoints=!0;class Aa extends bt{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.format=void 0!==a?a:T,this.minFilter=void 0!==s?s:g,this.magFilter=void 0!==r?r:g,this.generateMipmaps=!1;const c=this;"requestVideoFrameCallback"in t&&t.requestVideoFrameCallback((function e(){c.needsUpdate=!0,t.requestVideoFrameCallback(e)}))}clone(){return new this.constructor(this.image).copy(this)}update(){const t=this.image;!1==="requestVideoFrameCallback"in t&&t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}Aa.prototype.isVideoTexture=!0;class La extends bt{constructor(t,e,n,i,r,s,a,o,l,c,h,u){super(null,s,a,o,l,c,i,r,h,u),this.image={width:e,height:n},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}}La.prototype.isCompressedTexture=!0;class Ra extends bt{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.needsUpdate=!0}}Ra.prototype.isCanvasTexture=!0;class Ca extends bt{constructor(t,e,n,i,r,s,a,o,l,c){if((c=void 0!==c?c:A)!==A&&c!==L)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===n&&c===A&&(n=_),void 0===n&&c===L&&(n=S),super(null,i,r,s,a,o,c,n,l),this.image={width:t,height:e},this.magFilter=void 0!==a?a:p,this.minFilter=void 0!==o?o:p,this.flipY=!1,this.generateMipmaps=!1}}Ca.prototype.isDepthTexture=!0;class Pa extends En{constructor(t=1,e=8,n=0,i=2*Math.PI){super(),this.type="CircleGeometry",this.parameters={radius:t,segments:e,thetaStart:n,thetaLength:i},e=Math.max(3,e);const r=[],s=[],a=[],o=[],l=new Lt,c=new vt;s.push(0,0,0),a.push(0,0,1),o.push(.5,.5);for(let r=0,h=3;r<=e;r++,h+=3){const u=n+r/e*i;l.x=t*Math.cos(u),l.y=t*Math.sin(u),s.push(l.x,l.y,l.z),a.push(0,0,1),c.x=(s[h]/t+1)/2,c.y=(s[h+1]/t+1)/2,o.push(c.x,c.y)}for(let t=1;t<=e;t++)r.push(t,t+1,0);this.setIndex(r),this.setAttribute("position",new mn(s,3)),this.setAttribute("normal",new mn(a,3)),this.setAttribute("uv",new mn(o,2))}}class Da extends En{constructor(t=1,e=1,n=1,i=8,r=1,s=!1,a=0,o=2*Math.PI){super(),this.type="CylinderGeometry",this.parameters={radiusTop:t,radiusBottom:e,height:n,radialSegments:i,heightSegments:r,openEnded:s,thetaStart:a,thetaLength:o};const l=this;i=Math.floor(i),r=Math.floor(r);const c=[],h=[],u=[],d=[];let p=0;const m=[],f=n/2;let g=0;function v(n){const r=p,s=new vt,m=new Lt;let v=0;const y=!0===n?t:e,x=!0===n?1:-1;for(let t=1;t<=i;t++)h.push(0,f*x,0),u.push(0,x,0),d.push(.5,.5),p++;const _=p;for(let t=0;t<=i;t++){const e=t/i*o+a,n=Math.cos(e),r=Math.sin(e);m.x=y*r,m.y=f*x,m.z=y*n,h.push(m.x,m.y,m.z),u.push(0,x,0),s.x=.5*n+.5,s.y=.5*r*x+.5,d.push(s.x,s.y),p++}for(let t=0;t0&&v(!0),e>0&&v(!1)),this.setIndex(c),this.setAttribute("position",new mn(h,3)),this.setAttribute("normal",new mn(u,3)),this.setAttribute("uv",new mn(d,2))}}class Ia extends Da{constructor(t=1,e=1,n=8,i=1,r=!1,s=0,a=2*Math.PI){super(0,t,e,n,i,r,s,a),this.type="ConeGeometry",this.parameters={radius:t,height:e,radialSegments:n,heightSegments:i,openEnded:r,thetaStart:s,thetaLength:a}}}class Na extends En{constructor(t,e,n=1,i=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:t,indices:e,radius:n,detail:i};const r=[],s=[];function a(t,e,n,i){const r=i+1,s=[];for(let i=0;i<=r;i++){s[i]=[];const a=t.clone().lerp(n,i/r),o=e.clone().lerp(n,i/r),l=r-i;for(let t=0;t<=l;t++)s[i][t]=0===t&&i===r?a:a.clone().lerp(o,t/l)}for(let t=0;t.9&&a<.1&&(e<.2&&(s[t+0]+=1),n<.2&&(s[t+2]+=1),i<.2&&(s[t+4]+=1))}}()}(),this.setAttribute("position",new mn(r,3)),this.setAttribute("normal",new mn(r.slice(),3)),this.setAttribute("uv",new mn(s,2)),0===i?this.computeVertexNormals():this.normalizeNormals()}}class Ba extends Na{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2,i=1/n;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-n,0,-i,n,0,i,-n,0,i,n,-i,-n,0,-i,n,0,i,-n,0,i,n,0,-n,0,-i,n,0,-i,-n,0,i,n,0,i],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],t,e),this.type="DodecahedronGeometry",this.parameters={radius:t,detail:e}}}const za=new Lt,Fa=new Lt,Oa=new Lt,Ha=new je;class Ga extends En{constructor(t,e){if(super(),this.type="EdgesGeometry",this.parameters={thresholdAngle:e},e=void 0!==e?e:1,!0===t.isGeometry)return void console.error("THREE.EdgesGeometry no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");const n=Math.pow(10,4),i=Math.cos(ot*e),r=t.getIndex(),s=t.getAttribute("position"),a=r?r.count:s.count,o=[0,0,0],l=["a","b","c"],c=new Array(3),h={},u=[];for(let t=0;t80*n){o=c=t[0],l=h=t[1];for(let e=n;ec&&(c=u),d>h&&(h=d);p=Math.max(c-o,h-l),p=0!==p?1/p:0}return Wa(s,a,n,o,l,p),a};function ka(t,e,n,i,r){let s,a;if(r===function(t,e,n,i){let r=0;for(let s=e,a=n-i;s0)for(s=e;s=e;s-=i)a=co(s,t[s],t[s+1],a);return a&&io(a,a.next)&&(ho(a),a=a.next),a}function Va(t,e){if(!t)return t;e||(e=t);let n,i=t;do{if(n=!1,i.steiner||!io(i,i.next)&&0!==no(i.prev,i,i.next))i=i.next;else{if(ho(i),i=e=i.prev,i===i.next)break;n=!0}}while(n||i!==e);return e}function Wa(t,e,n,i,r,s,a){if(!t)return;!a&&s&&function(t,e,n,i){let r=t;do{null===r.z&&(r.z=Ka(r.x,r.y,e,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,function(t){let e,n,i,r,s,a,o,l,c=1;do{for(n=t,t=null,s=null,a=0;n;){for(a++,i=n,o=0,e=0;e0||l>0&&i;)0!==o&&(0===l||!i||n.z<=i.z)?(r=n,n=n.nextZ,o--):(r=i,i=i.nextZ,l--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;n=i}s.nextZ=null,c*=2}while(a>1)}(r)}(t,i,r,s);let o,l,c=t;for(;t.prev!==t.next;)if(o=t.prev,l=t.next,s?qa(t,i,r,s):ja(t))e.push(o.i/n),e.push(t.i/n),e.push(l.i/n),ho(t),t=l.next,c=l.next;else if((t=l)===c){a?1===a?Wa(t=Xa(Va(t),e,n),e,n,i,r,s,2):2===a&&Ya(t,e,n,i,r,s):Wa(Va(t),e,n,i,r,s,1);break}}function ja(t){const e=t.prev,n=t,i=t.next;if(no(e,n,i)>=0)return!1;let r=t.next.next;for(;r!==t.prev;){if(to(e.x,e.y,n.x,n.y,i.x,i.y,r.x,r.y)&&no(r.prev,r,r.next)>=0)return!1;r=r.next}return!0}function qa(t,e,n,i){const r=t.prev,s=t,a=t.next;if(no(r,s,a)>=0)return!1;const o=r.xs.x?r.x>a.x?r.x:a.x:s.x>a.x?s.x:a.x,h=r.y>s.y?r.y>a.y?r.y:a.y:s.y>a.y?s.y:a.y,u=Ka(o,l,e,n,i),d=Ka(c,h,e,n,i);let p=t.prevZ,m=t.nextZ;for(;p&&p.z>=u&&m&&m.z<=d;){if(p!==t.prev&&p!==t.next&&to(r.x,r.y,s.x,s.y,a.x,a.y,p.x,p.y)&&no(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,m!==t.prev&&m!==t.next&&to(r.x,r.y,s.x,s.y,a.x,a.y,m.x,m.y)&&no(m.prev,m,m.next)>=0)return!1;m=m.nextZ}for(;p&&p.z>=u;){if(p!==t.prev&&p!==t.next&&to(r.x,r.y,s.x,s.y,a.x,a.y,p.x,p.y)&&no(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;m&&m.z<=d;){if(m!==t.prev&&m!==t.next&&to(r.x,r.y,s.x,s.y,a.x,a.y,m.x,m.y)&&no(m.prev,m,m.next)>=0)return!1;m=m.nextZ}return!0}function Xa(t,e,n){let i=t;do{const r=i.prev,s=i.next.next;!io(r,s)&&ro(r,i,i.next,s)&&oo(r,s)&&oo(s,r)&&(e.push(r.i/n),e.push(i.i/n),e.push(s.i/n),ho(i),ho(i.next),i=t=s),i=i.next}while(i!==t);return Va(i)}function Ya(t,e,n,i,r,s){let a=t;do{let t=a.next.next;for(;t!==a.prev;){if(a.i!==t.i&&eo(a,t)){let o=lo(a,t);return a=Va(a,a.next),o=Va(o,o.next),Wa(a,e,n,i,r,s),void Wa(o,e,n,i,r,s)}t=t.next}a=a.next}while(a!==t)}function Za(t,e){return t.x-e.x}function Ja(t,e){if(e=function(t,e){let n=e;const i=t.x,r=t.y;let s,a=-1/0;do{if(r<=n.y&&r>=n.next.y&&n.next.y!==n.y){const t=n.x+(r-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(t<=i&&t>a){if(a=t,t===i){if(r===n.y)return n;if(r===n.next.y)return n.next}s=n.x=n.x&&n.x>=l&&i!==n.x&&to(rs.x||n.x===s.x&&Qa(s,n)))&&(s=n,u=h)),n=n.next}while(n!==o);return s}(t,e)){const n=lo(e,t);Va(e,e.next),Va(n,n.next)}}function Qa(t,e){return no(t.prev,t,e.prev)<0&&no(e.next,t,t.next)<0}function Ka(t,e,n,i,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-n)*r)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-i)*r)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function $a(t){let e=t,n=t;do{(e.x=0&&(t-a)*(i-o)-(n-a)*(e-o)>=0&&(n-a)*(s-o)-(r-a)*(i-o)>=0}function eo(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&ro(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&(oo(t,e)&&oo(e,t)&&function(t,e){let n=t,i=!1;const r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{n.y>s!=n.next.y>s&&n.next.y!==n.y&&r<(n.next.x-n.x)*(s-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next}while(n!==t);return i}(t,e)&&(no(t.prev,t,e.prev)||no(t,e.prev,e))||io(t,e)&&no(t.prev,t,t.next)>0&&no(e.prev,e,e.next)>0)}function no(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function io(t,e){return t.x===e.x&&t.y===e.y}function ro(t,e,n,i){const r=ao(no(t,e,n)),s=ao(no(t,e,i)),a=ao(no(n,i,t)),o=ao(no(n,i,e));return r!==s&&a!==o||(!(0!==r||!so(t,n,e))||(!(0!==s||!so(t,i,e))||(!(0!==a||!so(n,t,i))||!(0!==o||!so(n,e,i)))))}function so(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function ao(t){return t>0?1:t<0?-1:0}function oo(t,e){return no(t.prev,t,t.next)<0?no(t,e,t.next)>=0&&no(t,t.prev,e)>=0:no(t,e,t.prev)<0||no(t,t.next,e)<0}function lo(t,e){const n=new uo(t.i,t.x,t.y),i=new uo(e.i,e.x,e.y),r=t.next,s=e.prev;return t.next=e,e.prev=t,n.next=r,r.prev=n,i.next=n,n.prev=i,s.next=i,i.prev=s,i}function co(t,e,n,i){const r=new uo(t,e,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function ho(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function uo(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}class po{static area(t){const e=t.length;let n=0;for(let i=e-1,r=0;r2&&t[e-1].equals(t[0])&&t.pop()}function fo(t,e){for(let n=0;nNumber.EPSILON){const u=Math.sqrt(h),d=Math.sqrt(l*l+c*c),p=e.x-o/u,m=e.y+a/u,f=((n.x-c/d-p)*c-(n.y+l/d-m)*l)/(a*c-o*l);i=p+a*f-t.x,r=m+o*f-t.y;const g=i*i+r*r;if(g<=2)return new vt(i,r);s=Math.sqrt(g/2)}else{let t=!1;a>Number.EPSILON?l>Number.EPSILON&&(t=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(t=!0):Math.sign(o)===Math.sign(c)&&(t=!0),t?(i=-o,r=a,s=Math.sqrt(h)):(i=a,r=o,s=Math.sqrt(h/2))}return new vt(i/s,r/s)}const P=[];for(let t=0,e=E.length,n=e-1,i=t+1;t=0;t--){const e=t/p,n=h*Math.cos(e*Math.PI/2),i=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=E.length;t=0;){const i=n;let r=n-1;r<0&&(r=t.length-1);for(let t=0,n=o+2*p;t=0?(t(i-o,p,h),u.subVectors(c,h)):(t(i+o,p,h),u.subVectors(h,c)),p-o>=0?(t(i,p-o,h),d.subVectors(c,h)):(t(i,p+o,h),d.subVectors(h,c)),l.crossVectors(u,d).normalize(),s.push(l.x,l.y,l.z),a.push(i,p)}}for(let t=0;t0)&&d.push(e,r,l),(t!==n-1||o=i)){l.push(e.times[t]);for(let n=0;ns.tracks[t].times[0]&&(o=s.tracks[t].times[0]);for(let t=0;t=i.times[u]){const t=u*l+o,e=t+l-o;d=Vo.arraySlice(i.values,t,e)}else{const t=i.createInterpolant(),e=o,n=l-o;t.evaluate(s),d=Vo.arraySlice(t.resultBuffer,e,n)}if("quaternion"===r){(new At).fromArray(d).normalize().conjugate().toArray(d)}const p=a.times.length;for(let t=0;t=r)break t;{const a=e[1];t=r)break e}s=n,n=0}}for(;n>>1;te;)--s;if(++s,0!==r||s!==i){r>=s&&(s=Math.max(s,1),r=s-1);const t=this.getValueSize();this.times=Vo.arraySlice(n,r,s),this.values=Vo.arraySlice(this.values,r*t,s*t)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const n=this.times,i=this.values,r=n.length;0===r&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let s=null;for(let e=0;e!==r;e++){const i=n[e];if("number"==typeof i&&isNaN(i)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,e,i),t=!1;break}if(null!==s&&s>i){console.error("THREE.KeyframeTrack: Out of order keys.",this,e,i,s),t=!1;break}s=i}if(void 0!==i&&Vo.isTypedArray(i))for(let e=0,n=i.length;e!==n;++e){const n=i[e];if(isNaN(n)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,e,n),t=!1;break}}return t}optimize(){const t=Vo.arraySlice(this.times),e=Vo.arraySlice(this.values),n=this.getValueSize(),i=this.getInterpolation()===U,r=t.length-1;let s=1;for(let a=1;a0){t[s]=t[r];for(let t=r*n,i=s*n,a=0;a!==n;++a)e[i+a]=e[t+a];++s}return s!==t.length?(this.times=Vo.arraySlice(t,0,s),this.values=Vo.arraySlice(e,0,s*n)):(this.times=t,this.values=e),this}clone(){const t=Vo.arraySlice(this.times,0),e=Vo.arraySlice(this.values,0),n=new(0,this.constructor)(this.name,t,e);return n.createInterpolant=this.createInterpolant,n}}Yo.prototype.TimeBufferType=Float32Array,Yo.prototype.ValueBufferType=Float32Array,Yo.prototype.DefaultInterpolation=G;class Zo extends Yo{}Zo.prototype.ValueTypeName="bool",Zo.prototype.ValueBufferType=Array,Zo.prototype.DefaultInterpolation=H,Zo.prototype.InterpolantFactoryMethodLinear=void 0,Zo.prototype.InterpolantFactoryMethodSmooth=void 0;class Jo extends Yo{}Jo.prototype.ValueTypeName="color";class Qo extends Yo{}Qo.prototype.ValueTypeName="number";class Ko extends Wo{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(n-e)/(i-e);let l=t*a;for(let t=l+a;l!==t;l+=4)At.slerpFlat(r,0,s,l-a,s,l,o);return r}}class $o extends Yo{InterpolantFactoryMethodLinear(t){return new Ko(this.times,this.values,this.getValueSize(),t)}}$o.prototype.ValueTypeName="quaternion",$o.prototype.DefaultInterpolation=G,$o.prototype.InterpolantFactoryMethodSmooth=void 0;class tl extends Yo{}tl.prototype.ValueTypeName="string",tl.prototype.ValueBufferType=Array,tl.prototype.DefaultInterpolation=H,tl.prototype.InterpolantFactoryMethodLinear=void 0,tl.prototype.InterpolantFactoryMethodSmooth=void 0;class el extends Yo{}el.prototype.ValueTypeName="vector";class nl{constructor(t,e=-1,n,i=2500){this.name=t,this.tracks=n,this.duration=e,this.blendMode=i,this.uuid=ct(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,i=1/(t.fps||1);for(let t=0,r=n.length;t!==r;++t)e.push(il(n[t]).scale(i));const r=new this(t.name,t.duration,e,t.blendMode);return r.uuid=t.uuid,r}static toJSON(t){const e=[],n=t.tracks,i={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let t=0,i=n.length;t!==i;++t)e.push(Yo.toJSON(n[t]));return i}static CreateFromMorphTargetSequence(t,e,n,i){const r=e.length,s=[];for(let t=0;t1){const t=s[1];let e=i[t];e||(i[t]=e=[]),e.push(n)}}const s=[];for(const t in i)s.push(this.CreateFromMorphTargetSequence(t,i[t],e,n));return s}static parseAnimation(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(t,e,n,i,r){if(0!==n.length){const s=[],a=[];Vo.flattenJSON(n,s,a,i),0!==s.length&&r.push(new t(e,s,a))}},i=[],r=t.name||"default",s=t.fps||30,a=t.blendMode;let o=t.length||-1;const l=t.hierarchy||[];for(let t=0;t0||0===t.search(/^data\:image\/jpeg/);r.format=i?T:E,r.needsUpdate=!0,void 0!==e&&e(r)}),n,i),r}}class ml{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,i=this.getPoint(0),r=0;e.push(0);for(let s=1;s<=t;s++)n=this.getPoint(s/t),r+=n.distanceTo(i),e.push(r),i=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let i=0;const r=n.length;let s;s=e||t*n[r-1];let a,o=0,l=r-1;for(;o<=l;)if(i=Math.floor(o+(l-o)/2),a=n[i]-s,a<0)o=i+1;else{if(!(a>0)){l=i;break}l=i-1}if(i=l,n[i]===s)return i/(r-1);const c=n[i];return(i+(s-c)/(n[i+1]-c))/(r-1)}getTangent(t,e){const n=1e-4;let i=t-n,r=t+n;i<0&&(i=0),r>1&&(r=1);const s=this.getPoint(i),a=this.getPoint(r),o=e||(s.isVector2?new vt:new Lt);return o.copy(a).sub(s).normalize(),o}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new Lt,i=[],r=[],s=[],a=new Lt,o=new se;for(let e=0;e<=t;e++){const n=e/t;i[e]=this.getTangentAt(n,new Lt),i[e].normalize()}r[0]=new Lt,s[0]=new Lt;let l=Number.MAX_VALUE;const c=Math.abs(i[0].x),h=Math.abs(i[0].y),u=Math.abs(i[0].z);c<=l&&(l=c,n.set(1,0,0)),h<=l&&(l=h,n.set(0,1,0)),u<=l&&n.set(0,0,1),a.crossVectors(i[0],n).normalize(),r[0].crossVectors(i[0],a),s[0].crossVectors(i[0],r[0]);for(let e=1;e<=t;e++){if(r[e]=r[e-1].clone(),s[e]=s[e-1].clone(),a.crossVectors(i[e-1],i[e]),a.length()>Number.EPSILON){a.normalize();const t=Math.acos(ht(i[e-1].dot(i[e]),-1,1));r[e].applyMatrix4(o.makeRotationAxis(a,t))}s[e].crossVectors(i[e],r[e])}if(!0===e){let e=Math.acos(ht(r[0].dot(r[t]),-1,1));e/=t,i[0].dot(a.crossVectors(r[0],r[t]))>0&&(e=-e);for(let n=1;n<=t;n++)r[n].applyMatrix4(o.makeRotationAxis(i[n],e*n)),s[n].crossVectors(i[n],r[n])}return{tangents:i,normals:r,binormals:s}}clone(){return(new this.constructor).copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class fl extends ml{constructor(t=0,e=0,n=1,i=1,r=0,s=2*Math.PI,a=!1,o=0){super(),this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=i,this.aStartAngle=r,this.aEndAngle=s,this.aClockwise=a,this.aRotation=o}getPoint(t,e){const n=e||new vt,i=2*Math.PI;let r=this.aEndAngle-this.aStartAngle;const s=Math.abs(r)i;)r-=i;r0?0:(Math.floor(Math.abs(l)/r)+1)*r:0===c&&l===r-1&&(l=r-2,c=1),this.closed||l>0?a=i[(l-1)%r]:(yl.subVectors(i[0],i[1]).add(i[0]),a=yl);const h=i[l%r],u=i[(l+1)%r];if(this.closed||l+2i.length-2?i.length-1:s+1],h=i[s>i.length-3?i.length-1:s+2];return n.set(Ml(a,o.x,l.x,c.x,h.x),Ml(a,o.y,l.y,c.y,h.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e=e){const t=n[i]-e,r=this.curves[i],s=r.getLength(),a=0===s?0:1-t/s;return r.getPointAt(a)}i++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,i=this.curves.length;n1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e0){const t=l.getPoint(0);t.equals(this.currentPoint)||this.lineTo(t.x,t.y)}this.curves.push(l);const c=l.getPoint(1);return this.currentPoint.copy(c),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class zl extends Bl{constructor(t){super(t),this.uuid=ct(),this.type="Shape",this.holes=[]}getPointsHoles(t){const e=[];for(let n=0,i=this.holes.length;n0:i.vertexColors=t.vertexColors),void 0!==t.uniforms)for(const e in t.uniforms){const r=t.uniforms[e];switch(i.uniforms[e]={},r.type){case"t":i.uniforms[e].value=n(r.value);break;case"c":i.uniforms[e].value=(new tn).setHex(r.value);break;case"v2":i.uniforms[e].value=(new vt).fromArray(r.value);break;case"v3":i.uniforms[e].value=(new Lt).fromArray(r.value);break;case"v4":i.uniforms[e].value=(new St).fromArray(r.value);break;case"m3":i.uniforms[e].value=(new yt).fromArray(r.value);break;case"m4":i.uniforms[e].value=(new se).fromArray(r.value);break;default:i.uniforms[e].value=r.value}}if(void 0!==t.defines&&(i.defines=t.defines),void 0!==t.vertexShader&&(i.vertexShader=t.vertexShader),void 0!==t.fragmentShader&&(i.fragmentShader=t.fragmentShader),void 0!==t.extensions)for(const e in t.extensions)i.extensions[e]=t.extensions[e];if(void 0!==t.shading&&(i.flatShading=1===t.shading),void 0!==t.size&&(i.size=t.size),void 0!==t.sizeAttenuation&&(i.sizeAttenuation=t.sizeAttenuation),void 0!==t.map&&(i.map=n(t.map)),void 0!==t.matcap&&(i.matcap=n(t.matcap)),void 0!==t.alphaMap&&(i.alphaMap=n(t.alphaMap)),void 0!==t.bumpMap&&(i.bumpMap=n(t.bumpMap)),void 0!==t.bumpScale&&(i.bumpScale=t.bumpScale),void 0!==t.normalMap&&(i.normalMap=n(t.normalMap)),void 0!==t.normalMapType&&(i.normalMapType=t.normalMapType),void 0!==t.normalScale){let e=t.normalScale;!1===Array.isArray(e)&&(e=[e,e]),i.normalScale=(new vt).fromArray(e)}return void 0!==t.displacementMap&&(i.displacementMap=n(t.displacementMap)),void 0!==t.displacementScale&&(i.displacementScale=t.displacementScale),void 0!==t.displacementBias&&(i.displacementBias=t.displacementBias),void 0!==t.roughnessMap&&(i.roughnessMap=n(t.roughnessMap)),void 0!==t.metalnessMap&&(i.metalnessMap=n(t.metalnessMap)),void 0!==t.emissiveMap&&(i.emissiveMap=n(t.emissiveMap)),void 0!==t.emissiveIntensity&&(i.emissiveIntensity=t.emissiveIntensity),void 0!==t.specularMap&&(i.specularMap=n(t.specularMap)),void 0!==t.envMap&&(i.envMap=n(t.envMap)),void 0!==t.envMapIntensity&&(i.envMapIntensity=t.envMapIntensity),void 0!==t.reflectivity&&(i.reflectivity=t.reflectivity),void 0!==t.refractionRatio&&(i.refractionRatio=t.refractionRatio),void 0!==t.lightMap&&(i.lightMap=n(t.lightMap)),void 0!==t.lightMapIntensity&&(i.lightMapIntensity=t.lightMapIntensity),void 0!==t.aoMap&&(i.aoMap=n(t.aoMap)),void 0!==t.aoMapIntensity&&(i.aoMapIntensity=t.aoMapIntensity),void 0!==t.gradientMap&&(i.gradientMap=n(t.gradientMap)),void 0!==t.clearcoatMap&&(i.clearcoatMap=n(t.clearcoatMap)),void 0!==t.clearcoatRoughnessMap&&(i.clearcoatRoughnessMap=n(t.clearcoatRoughnessMap)),void 0!==t.clearcoatNormalMap&&(i.clearcoatNormalMap=n(t.clearcoatNormalMap)),void 0!==t.clearcoatNormalScale&&(i.clearcoatNormalScale=(new vt).fromArray(t.clearcoatNormalScale)),void 0!==t.transmission&&(i.transmission=t.transmission),void 0!==t.transmissionMap&&(i.transmissionMap=n(t.transmissionMap)),i}setTextures(t){return this.textures=t,this}}class rc{static decodeText(t){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(t);let e="";for(let n=0,i=t.length;nNumber.EPSILON){if(l<0&&(n=e[s],o=-o,a=e[r],l=-l),t.ya.y)continue;if(t.y===n.y){if(t.x===n.x)return!0}else{const e=l*(t.x-n.x)-o*(t.y-n.y);if(0===e)return!0;if(e<0)continue;i=!i}}else{if(t.y!==n.y)continue;if(a.x<=t.x&&t.x<=n.x||n.x<=t.x&&t.x<=a.x)return!0}}return i}const r=po.isClockWise,s=this.subPaths;if(0===s.length)return[];if(!0===e)return n(s);let a,o,l;const c=[];if(1===s.length)return o=s[0],l=new zl,l.curves=o.curves,c.push(l),c;let h=!r(s[0].getPoints());h=t?!h:h;const u=[],d=[];let p,m,f=[],g=0;d[g]=void 0,f[g]=[];for(let e=0,n=s.length;e1){let t=!1;const e=[];for(let t=0,e=d.length;t0&&(t||(f=u))}for(let t=0,e=d.length;t0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t0&&this._mixBufferRegionAdditive(n,i,this._addIndex*e,1,e);for(let t=e,r=e+e;t!==r;++t)if(n[t]!==n[t+e]){a.setValue(n,i);break}}saveOriginalState(){const t=this.binding,e=this.buffer,n=this.valueSize,i=n*this._origIndex;t.getValue(e,i);for(let t=n,r=i;t!==r;++t)e[t]=e[i+t%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const t=3*this.valueSize;this.binding.setValue(this.buffer,t)}_setAdditiveIdentityNumeric(){const t=this._addIndex*this.valueSize,e=t+this.valueSize;for(let n=t;n=.5)for(let i=0;i!==r;++i)t[e+i]=t[n+i]}_slerp(t,e,n,i){At.slerpFlat(t,e,t,e,t,n,i)}_slerpAdditive(t,e,n,i,r){const s=this._workIndex*r;At.multiplyQuaternionsFlat(t,s,t,e,t,n),At.slerpFlat(t,e,t,e,t,s,i)}_lerp(t,e,n,i,r){const s=1-i;for(let a=0;a!==r;++a){const r=e+a;t[r]=t[r]*s+t[n+a]*i}}_lerpAdditive(t,e,n,i,r){for(let s=0;s!==r;++s){const r=e+s;t[r]=t[r]+t[n+s]*i}}}const Bc="\\[\\]\\.:\\/",zc=new RegExp("[\\[\\]\\.:\\/]","g"),Fc="[^\\[\\]\\.:\\/]",Oc="[^"+Bc.replace("\\.","")+"]",Hc=/((?:WC+[\/:])*)/.source.replace("WC",Fc),Gc=/(WCOD+)?/.source.replace("WCOD",Oc),Uc=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",Fc),kc=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",Fc),Vc=new RegExp("^"+Hc+Gc+Uc+kc+"$"),Wc=["material","materials","bones"];class jc{constructor(t,e,n){this.path=e,this.parsedPath=n||jc.parseTrackName(e),this.node=jc.findNode(t,this.parsedPath.nodeName)||t,this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new jc.Composite(t,e,n):new jc(t,e,n)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(zc,"")}static parseTrackName(t){const e=Vc.exec(t);if(!e)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==i&&-1!==i){const t=n.nodeName.substring(i+1);-1!==Wc.indexOf(t)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=t)}if(null===n.propertyName||0===n.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(!e||""===e||"."===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(void 0!==n)return n}if(t.children){const n=function(t){for(let i=0;i=r){const s=r++,c=t[s];e[c.uuid]=l,t[l]=c,e[o]=s,t[s]=a;for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[s],r=e[l];e[l]=i,e[s]=r}}}this.nCachedObjects_=r}uncache(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_,s=t.length;for(let a=0,o=arguments.length;a!==o;++a){const o=arguments[a].uuid,l=e[o];if(void 0!==l)if(delete e[o],l0&&(e[a.uuid]=l),t[l]=a,t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t];e[l]=e[r],e.pop()}}}this.nCachedObjects_=r}subscribe_(t,e){const n=this._bindingsIndicesByPath;let i=n[t];const r=this._bindings;if(void 0!==i)return r[i];const s=this._paths,a=this._parsedPaths,o=this._objects,l=o.length,c=this.nCachedObjects_,h=new Array(l);i=r.length,n[t]=i,s.push(t),a.push(e),r.push(h);for(let n=c,i=o.length;n!==i;++n){const i=o[n];h[n]=new jc(i,t,e)}return h}unsubscribe_(t){const e=this._bindingsIndicesByPath,n=e[t];if(void 0!==n){const i=this._paths,r=this._parsedPaths,s=this._bindings,a=s.length-1,o=s[a];e[t[a]]=n,s[n]=o,s.pop(),r[n]=r[a],r.pop(),i[n]=i[a],i.pop()}}}qc.prototype.isAnimationObjectGroup=!0;class Xc{constructor(t,e,n=null,i=e.blendMode){this._mixer=t,this._clip=e,this._localRoot=n,this.blendMode=i;const r=e.tracks,s=r.length,a=new Array(s),o={endingStart:k,endingEnd:k};for(let t=0;t!==s;++t){const e=r[t].createInterpolant(null);a[t]=e,e.settings=o}this._interpolantSettings=o,this._interpolants=a,this._propertyBindings=new Array(s),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=2201,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(t){return this._startTime=t,this}setLoop(t,e){return this.loop=t,this.repetitions=e,this}setEffectiveWeight(t){return this.weight=t,this._effectiveWeight=this.enabled?t:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(t){return this._scheduleFading(t,0,1)}fadeOut(t){return this._scheduleFading(t,1,0)}crossFadeFrom(t,e,n){if(t.fadeOut(e),this.fadeIn(e),n){const n=this._clip.duration,i=t._clip.duration,r=i/n,s=n/i;t.warp(1,r,e),this.warp(s,1,e)}return this}crossFadeTo(t,e,n){return t.crossFadeFrom(this,e,n)}stopFading(){const t=this._weightInterpolant;return null!==t&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}setEffectiveTimeScale(t){return this.timeScale=t,this._effectiveTimeScale=this.paused?0:t,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(t){return this.timeScale=this._clip.duration/t,this.stopWarping()}syncWith(t){return this.time=t.time,this.timeScale=t.timeScale,this.stopWarping()}halt(t){return this.warp(this._effectiveTimeScale,0,t)}warp(t,e,n){const i=this._mixer,r=i.time,s=this.timeScale;let a=this._timeScaleInterpolant;null===a&&(a=i._lendControlInterpolant(),this._timeScaleInterpolant=a);const o=a.parameterPositions,l=a.sampleValues;return o[0]=r,o[1]=r+n,l[0]=t/s,l[1]=e/s,this}stopWarping(){const t=this._timeScaleInterpolant;return null!==t&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(t,e,n,i){if(!this.enabled)return void this._updateWeight(t);const r=this._startTime;if(null!==r){const i=(t-r)*n;if(i<0||0===n)return;this._startTime=null,e=n*i}e*=this._updateTimeScale(t);const s=this._updateTime(e),a=this._updateWeight(t);if(a>0){const t=this._interpolants,e=this._propertyBindings;switch(this.blendMode){case q:for(let n=0,i=t.length;n!==i;++n)t[n].evaluate(s),e[n].accumulateAdditive(a);break;case j:default:for(let n=0,r=t.length;n!==r;++n)t[n].evaluate(s),e[n].accumulate(i,a)}}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;const n=this._weightInterpolant;if(null!==n){const i=n.evaluate(t)[0];e*=i,t>n.parameterPositions[1]&&(this.stopFading(),0===i&&(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;const n=this._timeScaleInterpolant;if(null!==n){e*=n.evaluate(t)[0],t>n.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e}_updateTime(t){const e=this._clip.duration,n=this.loop;let i=this.time+t,r=this._loopCount;const s=2202===n;if(0===t)return-1===r?i:s&&1==(1&r)?e-i:i;if(2200===n){-1===r&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(i>=e)i=e;else{if(!(i<0)){this.time=i;break t}i=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t<0?-1:1})}}else{if(-1===r&&(t>=0?(r=0,this._setEndings(!0,0===this.repetitions,s)):this._setEndings(0===this.repetitions,!0,s)),i>=e||i<0){const n=Math.floor(i/e);i-=e*n,r+=Math.abs(n);const a=this.repetitions-r;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=t>0?e:0,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t>0?1:-1});else{if(1===a){const e=t<0;this._setEndings(e,!e,s)}else this._setEndings(!1,!1,s);this._loopCount=r,this.time=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:n})}}else this.time=i;if(s&&1==(1&r))return e-i}return i}_setEndings(t,e,n){const i=this._interpolantSettings;n?(i.endingStart=V,i.endingEnd=V):(i.endingStart=t?this.zeroSlopeAtStart?V:k:W,i.endingEnd=e?this.zeroSlopeAtEnd?V:k:W)}_scheduleFading(t,e,n){const i=this._mixer,r=i.time;let s=this._weightInterpolant;null===s&&(s=i._lendControlInterpolant(),this._weightInterpolant=s);const a=s.parameterPositions,o=s.sampleValues;return a[0]=r,o[0]=e,a[1]=r+t,o[1]=n,this}}class Yc extends rt{constructor(t){super(),this._root=t,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(t,e){const n=t._localRoot||this._root,i=t._clip.tracks,r=i.length,s=t._propertyBindings,a=t._interpolants,o=n.uuid,l=this._bindingsByRootAndName;let c=l[o];void 0===c&&(c={},l[o]=c);for(let t=0;t!==r;++t){const r=i[t],l=r.name;let h=c[l];if(void 0!==h)s[t]=h;else{if(h=s[t],void 0!==h){null===h._cacheIndex&&(++h.referenceCount,this._addInactiveBinding(h,o,l));continue}const i=e&&e._propertyBindings[t].binding.parsedPath;h=new Nc(jc.create(n,l,i),r.ValueTypeName,r.getValueSize()),++h.referenceCount,this._addInactiveBinding(h,o,l),s[t]=h}a[t].resultBuffer=h.buffer}}_activateAction(t){if(!this._isActiveAction(t)){if(null===t._cacheIndex){const e=(t._localRoot||this._root).uuid,n=t._clip.uuid,i=this._actionsByClip[n];this._bindAction(t,i&&i.knownActions[0]),this._addInactiveAction(t,n,e)}const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==n.useCount++&&(this._lendBinding(n),n.saveOriginalState())}this._lendAction(t)}}_deactivateAction(t){if(this._isActiveAction(t)){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==--n.useCount&&(n.restoreOriginalState(),this._takeBackBinding(n))}this._takeBackAction(t)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}}_isActiveAction(t){const e=t._cacheIndex;return null!==e&&e=0;--e)t[e].stop();return this}update(t){t*=this.timeScale;const e=this._actions,n=this._nActiveActions,i=this.time+=t,r=Math.sign(t),s=this._accuIndex^=1;for(let a=0;a!==n;++a){e[a]._update(i,t,r,s)}const a=this._bindings,o=this._nActiveBindings;for(let t=0;t!==o;++t)a[t].apply(s);return this}setTime(t){this.time=0;for(let t=0;tthis.max.x||t.ythis.max.y)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return void 0===e&&(console.warn("THREE.Box2: .getParameter() target is now required"),e=new vt),e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y)}clampPoint(t,e){return void 0===e&&(console.warn("THREE.Box2: .clampPoint() target is now required"),e=new vt),e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return th.copy(t).clamp(this.min,this.max).sub(t).length()}intersect(t){return this.min.max(t.min),this.max.min(t.max),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}eh.prototype.isBox2=!0;const nh=new Lt,ih=new Lt;class rh{constructor(t=new Lt,e=new Lt){this.start=t,this.end=e}set(t,e){return this.start.copy(t),this.end.copy(e),this}copy(t){return this.start.copy(t.start),this.end.copy(t.end),this}getCenter(t){return void 0===t&&(console.warn("THREE.Line3: .getCenter() target is now required"),t=new Lt),t.addVectors(this.start,this.end).multiplyScalar(.5)}delta(t){return void 0===t&&(console.warn("THREE.Line3: .delta() target is now required"),t=new Lt),t.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(t,e){return void 0===e&&(console.warn("THREE.Line3: .at() target is now required"),e=new Lt),this.delta(e).multiplyScalar(t).add(this.start)}closestPointToPointParameter(t,e){nh.subVectors(t,this.start),ih.subVectors(this.end,this.start);const n=ih.dot(ih);let i=ih.dot(nh)/n;return e&&(i=ht(i,0,1)),i}closestPointToPoint(t,e,n){const i=this.closestPointToPointParameter(t,e);return void 0===n&&(console.warn("THREE.Line3: .closestPointToPoint() target is now required"),n=new Lt),this.delta(n).multiplyScalar(i).add(this.start)}applyMatrix4(t){return this.start.applyMatrix4(t),this.end.applyMatrix4(t),this}equals(t){return t.start.equals(this.start)&&t.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}}class sh extends Ce{constructor(t){super(),this.material=t,this.render=function(){},this.hasPositions=!1,this.hasNormals=!1,this.hasColors=!1,this.hasUvs=!1,this.positionArray=null,this.normalArray=null,this.colorArray=null,this.uvArray=null,this.count=0}}sh.prototype.isImmediateRenderObject=!0;const ah=new Lt;const oh=new Lt,lh=new se,ch=new se;class hh extends ya{constructor(t){const e=uh(t),n=new En,i=[],r=[],s=new tn(0,0,1),a=new tn(0,1,0);for(let t=0;t4?a=Ph[r-8+4-1]:0==r&&(a=0),n.push(a);const o=1/(s-1),l=-o/2,c=1+o/2,h=[l,l,c,l,c,c,l,l,c,c,l,c],u=6,d=6,p=3,m=2,f=1,g=new Float32Array(p*d*u),v=new Float32Array(m*d*u),y=new Float32Array(f*d*u);for(let t=0;t2?0:-1,i=[e,n,0,e+2/3,n,0,e+2/3,n+1,0,e,n,0,e+2/3,n+1,0,e,n+1,0];g.set(i,p*d*t),v.set(h,m*d*t);const r=[t,t,t,t,t,t];y.set(r,f*d*t)}const x=new En;x.setAttribute("position",new sn(g,p)),x.setAttribute("uv",new sn(v,m)),x.setAttribute("faceIndex",new sn(y,f)),t.push(x),i>4&&i--}return{_lodPlanes:t,_sizeLods:e,_sigmas:n}}function Zh(t){const e=new Tt(3*Ch,3*Ch,t);return e.texture.mapping=l,e.texture.name="PMREM.cubeUv",e.scissorTest=!0,e}function Jh(t,e,n,i,r){t.viewport.set(e,n,i,r),t.scissor.set(e,n,i,r)}function Qh(){const t=new vt(1,1);return new Io({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null},texelSize:{value:t},inputEncoding:{value:Nh[3e3]},outputEncoding:{value:Nh[3e3]}},vertexShader:$h(),fragmentShader:`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform vec2 texelSize;\n\n\t\t\t${tu()}\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tvec2 f = fract( uv / texelSize - 0.5 );\n\t\t\t\tuv -= f * texelSize;\n\t\t\t\tvec3 tl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\t\t\t\tuv.x += texelSize.x;\n\t\t\t\tvec3 tr = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\t\t\t\tuv.y += texelSize.y;\n\t\t\t\tvec3 br = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\t\t\t\tuv.x -= texelSize.x;\n\t\t\t\tvec3 bl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\n\t\t\t\tvec3 tm = mix( tl, tr, f.x );\n\t\t\t\tvec3 bm = mix( bl, br, f.x );\n\t\t\t\tgl_FragColor.rgb = mix( tm, bm, f.y );\n\n\t\t\t\tgl_FragColor = linearToOutputTexel( gl_FragColor );\n\n\t\t\t}\n\t\t`,blending:0,depthTest:!1,depthWrite:!1})}function Kh(){return new Io({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},inputEncoding:{value:Nh[3e3]},outputEncoding:{value:Nh[3e3]}},vertexShader:$h(),fragmentShader:`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\t${tu()}\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb = envMapTexelToLinear( textureCube( envMap, vec3( - vOutputDirection.x, vOutputDirection.yz ) ) ).rgb;\n\t\t\t\tgl_FragColor = linearToOutputTexel( gl_FragColor );\n\n\t\t\t}\n\t\t`,blending:0,depthTest:!1,depthWrite:!1})}function $h(){return"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute vec3 position;\n\t\tattribute vec2 uv;\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t"}function tu(){return"\n\n\t\tuniform int inputEncoding;\n\t\tuniform int outputEncoding;\n\n\t\t#include \n\n\t\tvec4 inputTexelToLinear( vec4 value ) {\n\n\t\t\tif ( inputEncoding == 0 ) {\n\n\t\t\t\treturn value;\n\n\t\t\t} else if ( inputEncoding == 1 ) {\n\n\t\t\t\treturn sRGBToLinear( value );\n\n\t\t\t} else if ( inputEncoding == 2 ) {\n\n\t\t\t\treturn RGBEToLinear( value );\n\n\t\t\t} else if ( inputEncoding == 3 ) {\n\n\t\t\t\treturn RGBMToLinear( value, 7.0 );\n\n\t\t\t} else if ( inputEncoding == 4 ) {\n\n\t\t\t\treturn RGBMToLinear( value, 16.0 );\n\n\t\t\t} else if ( inputEncoding == 5 ) {\n\n\t\t\t\treturn RGBDToLinear( value, 256.0 );\n\n\t\t\t} else {\n\n\t\t\t\treturn GammaToLinear( value, 2.2 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tvec4 linearToOutputTexel( vec4 value ) {\n\n\t\t\tif ( outputEncoding == 0 ) {\n\n\t\t\t\treturn value;\n\n\t\t\t} else if ( outputEncoding == 1 ) {\n\n\t\t\t\treturn LinearTosRGB( value );\n\n\t\t\t} else if ( outputEncoding == 2 ) {\n\n\t\t\t\treturn LinearToRGBE( value );\n\n\t\t\t} else if ( outputEncoding == 3 ) {\n\n\t\t\t\treturn LinearToRGBM( value, 7.0 );\n\n\t\t\t} else if ( outputEncoding == 4 ) {\n\n\t\t\t\treturn LinearToRGBM( value, 16.0 );\n\n\t\t\t} else if ( outputEncoding == 5 ) {\n\n\t\t\t\treturn LinearToRGBD( value, 256.0 );\n\n\t\t\t} else {\n\n\t\t\t\treturn LinearToGamma( value, 2.2 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tvec4 envMapTexelToLinear( vec4 color ) {\n\n\t\t\treturn inputTexelToLinear( color );\n\n\t\t}\n\t"}ml.create=function(t,e){return console.log("THREE.Curve.create() has been deprecated"),t.prototype=Object.create(ml.prototype),t.prototype.constructor=t,t.prototype.getPoint=e,t},Bl.prototype.fromPoints=function(t){return console.warn("THREE.Path: .fromPoints() has been renamed to .setFromPoints()."),this.setFromPoints(t)},fh.prototype.setColors=function(){console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.")},hh.prototype.update=function(){console.error("THREE.SkeletonHelper: update() no longer needs to be called.")},ol.prototype.extractUrlBase=function(t){return console.warn("THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead."),rc.extractUrlBase(t)},ol.Handlers={add:function(){console.error("THREE.Loader: Handlers.add() has been removed. Use LoadingManager.addHandler() instead.")},get:function(){console.error("THREE.Loader: Handlers.get() has been removed. Use LoadingManager.getHandler() instead.")}},eh.prototype.center=function(t){return console.warn("THREE.Box2: .center() has been renamed to .getCenter()."),this.getCenter(t)},eh.prototype.empty=function(){return console.warn("THREE.Box2: .empty() has been renamed to .isEmpty()."),this.isEmpty()},eh.prototype.isIntersectionBox=function(t){return console.warn("THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},eh.prototype.size=function(t){return console.warn("THREE.Box2: .size() has been renamed to .getSize()."),this.getSize(t)},Pt.prototype.center=function(t){return console.warn("THREE.Box3: .center() has been renamed to .getCenter()."),this.getCenter(t)},Pt.prototype.empty=function(){return console.warn("THREE.Box3: .empty() has been renamed to .isEmpty()."),this.isEmpty()},Pt.prototype.isIntersectionBox=function(t){return console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},Pt.prototype.isIntersectionSphere=function(t){return console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(t)},Pt.prototype.size=function(t){return console.warn("THREE.Box3: .size() has been renamed to .getSize()."),this.getSize(t)},Jt.prototype.empty=function(){return console.warn("THREE.Sphere: .empty() has been renamed to .isEmpty()."),this.isEmpty()},ai.prototype.setFromMatrix=function(t){return console.warn("THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix()."),this.setFromProjectionMatrix(t)},rh.prototype.center=function(t){return console.warn("THREE.Line3: .center() has been renamed to .getCenter()."),this.getCenter(t)},yt.prototype.flattenToArrayOffset=function(t,e){return console.warn("THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(t,e)},yt.prototype.multiplyVector3=function(t){return console.warn("THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead."),t.applyMatrix3(this)},yt.prototype.multiplyVector3Array=function(){console.error("THREE.Matrix3: .multiplyVector3Array() has been removed.")},yt.prototype.applyToBufferAttribute=function(t){return console.warn("THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead."),t.applyMatrix3(this)},yt.prototype.applyToVector3Array=function(){console.error("THREE.Matrix3: .applyToVector3Array() has been removed.")},yt.prototype.getInverse=function(t){return console.warn("THREE.Matrix3: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead."),this.copy(t).invert()},se.prototype.extractPosition=function(t){return console.warn("THREE.Matrix4: .extractPosition() has been renamed to .copyPosition()."),this.copyPosition(t)},se.prototype.flattenToArrayOffset=function(t,e){return console.warn("THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(t,e)},se.prototype.getPosition=function(){return console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead."),(new Lt).setFromMatrixColumn(this,3)},se.prototype.setRotationFromQuaternion=function(t){return console.warn("THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion()."),this.makeRotationFromQuaternion(t)},se.prototype.multiplyToArray=function(){console.warn("THREE.Matrix4: .multiplyToArray() has been removed.")},se.prototype.multiplyVector3=function(t){return console.warn("THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},se.prototype.multiplyVector4=function(t){return console.warn("THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},se.prototype.multiplyVector3Array=function(){console.error("THREE.Matrix4: .multiplyVector3Array() has been removed.")},se.prototype.rotateAxis=function(t){console.warn("THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead."),t.transformDirection(this)},se.prototype.crossVector=function(t){return console.warn("THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},se.prototype.translate=function(){console.error("THREE.Matrix4: .translate() has been removed.")},se.prototype.rotateX=function(){console.error("THREE.Matrix4: .rotateX() has been removed.")},se.prototype.rotateY=function(){console.error("THREE.Matrix4: .rotateY() has been removed.")},se.prototype.rotateZ=function(){console.error("THREE.Matrix4: .rotateZ() has been removed.")},se.prototype.rotateByAxis=function(){console.error("THREE.Matrix4: .rotateByAxis() has been removed.")},se.prototype.applyToBufferAttribute=function(t){return console.warn("THREE.Matrix4: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},se.prototype.applyToVector3Array=function(){console.error("THREE.Matrix4: .applyToVector3Array() has been removed.")},se.prototype.makeFrustum=function(t,e,n,i,r,s){return console.warn("THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead."),this.makePerspective(t,e,i,n,r,s)},se.prototype.getInverse=function(t){return console.warn("THREE.Matrix4: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead."),this.copy(t).invert()},Ne.prototype.isIntersectionLine=function(t){return console.warn("THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine()."),this.intersectsLine(t)},At.prototype.multiplyVector3=function(t){return console.warn("THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead."),t.applyQuaternion(this)},At.prototype.inverse=function(){return console.warn("THREE.Quaternion: .inverse() has been renamed to invert()."),this.invert()},re.prototype.isIntersectionBox=function(t){return console.warn("THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},re.prototype.isIntersectionPlane=function(t){return console.warn("THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane()."),this.intersectsPlane(t)},re.prototype.isIntersectionSphere=function(t){return console.warn("THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(t)},je.prototype.area=function(){return console.warn("THREE.Triangle: .area() has been renamed to .getArea()."),this.getArea()},je.prototype.barycoordFromPoint=function(t,e){return console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord()."),this.getBarycoord(t,e)},je.prototype.midpoint=function(t){return console.warn("THREE.Triangle: .midpoint() has been renamed to .getMidpoint()."),this.getMidpoint(t)},je.prototypenormal=function(t){return console.warn("THREE.Triangle: .normal() has been renamed to .getNormal()."),this.getNormal(t)},je.prototype.plane=function(t){return console.warn("THREE.Triangle: .plane() has been renamed to .getPlane()."),this.getPlane(t)},je.barycoordFromPoint=function(t,e,n,i,r){return console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord()."),je.getBarycoord(t,e,n,i,r)},je.normal=function(t,e,n,i){return console.warn("THREE.Triangle: .normal() has been renamed to .getNormal()."),je.getNormal(t,e,n,i)},zl.prototype.extractAllPoints=function(t){return console.warn("THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead."),this.extractPoints(t)},zl.prototype.extrude=function(t){return console.warn("THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead."),new go(this,t)},zl.prototype.makeGeometry=function(t){return console.warn("THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead."),new Mo(this,t)},vt.prototype.fromAttribute=function(t,e,n){return console.warn("THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,e,n)},vt.prototype.distanceToManhattan=function(t){return console.warn("THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(t)},vt.prototype.lengthManhattan=function(){return console.warn("THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()},Lt.prototype.setEulerFromRotationMatrix=function(){console.error("THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.")},Lt.prototype.setEulerFromQuaternion=function(){console.error("THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.")},Lt.prototype.getPositionFromMatrix=function(t){return console.warn("THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition()."),this.setFromMatrixPosition(t)},Lt.prototype.getScaleFromMatrix=function(t){return console.warn("THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale()."),this.setFromMatrixScale(t)},Lt.prototype.getColumnFromMatrix=function(t,e){return console.warn("THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn()."),this.setFromMatrixColumn(e,t)},Lt.prototype.applyProjection=function(t){return console.warn("THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead."),this.applyMatrix4(t)},Lt.prototype.fromAttribute=function(t,e,n){return console.warn("THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,e,n)},Lt.prototype.distanceToManhattan=function(t){return console.warn("THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(t)},Lt.prototype.lengthManhattan=function(){return console.warn("THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()},St.prototype.fromAttribute=function(t,e,n){return console.warn("THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,e,n)},St.prototype.lengthManhattan=function(){return console.warn("THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()},Ce.prototype.getChildByName=function(t){return console.warn("THREE.Object3D: .getChildByName() has been renamed to .getObjectByName()."),this.getObjectByName(t)},Ce.prototype.renderDepth=function(){console.warn("THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.")},Ce.prototype.translate=function(t,e){return console.warn("THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead."),this.translateOnAxis(e,t)},Ce.prototype.getWorldRotation=function(){console.error("THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.")},Ce.prototype.applyMatrix=function(t){return console.warn("THREE.Object3D: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(t)},Object.defineProperties(Ce.prototype,{eulerOrder:{get:function(){return console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order},set:function(t){console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order=t}},useQuaternion:{get:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")},set:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")}}}),Wn.prototype.setDrawMode=function(){console.error("THREE.Mesh: .setDrawMode() has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.")},Object.defineProperties(Wn.prototype,{drawMode:{get:function(){return console.error("THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode."),0},set:function(){console.error("THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.")}}}),$s.prototype.initBones=function(){console.error("THREE.SkinnedMesh: initBones() has been removed.")},Kn.prototype.setLens=function(t,e){console.warn("THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup."),void 0!==e&&(this.filmGauge=e),this.setFocalLength(t)},Object.defineProperties(Fl.prototype,{onlyShadow:{set:function(){console.warn("THREE.Light: .onlyShadow has been removed.")}},shadowCameraFov:{set:function(t){console.warn("THREE.Light: .shadowCameraFov is now .shadow.camera.fov."),this.shadow.camera.fov=t}},shadowCameraLeft:{set:function(t){console.warn("THREE.Light: .shadowCameraLeft is now .shadow.camera.left."),this.shadow.camera.left=t}},shadowCameraRight:{set:function(t){console.warn("THREE.Light: .shadowCameraRight is now .shadow.camera.right."),this.shadow.camera.right=t}},shadowCameraTop:{set:function(t){console.warn("THREE.Light: .shadowCameraTop is now .shadow.camera.top."),this.shadow.camera.top=t}},shadowCameraBottom:{set:function(t){console.warn("THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom."),this.shadow.camera.bottom=t}},shadowCameraNear:{set:function(t){console.warn("THREE.Light: .shadowCameraNear is now .shadow.camera.near."),this.shadow.camera.near=t}},shadowCameraFar:{set:function(t){console.warn("THREE.Light: .shadowCameraFar is now .shadow.camera.far."),this.shadow.camera.far=t}},shadowCameraVisible:{set:function(){console.warn("THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.")}},shadowBias:{set:function(t){console.warn("THREE.Light: .shadowBias is now .shadow.bias."),this.shadow.bias=t}},shadowDarkness:{set:function(){console.warn("THREE.Light: .shadowDarkness has been removed.")}},shadowMapWidth:{set:function(t){console.warn("THREE.Light: .shadowMapWidth is now .shadow.mapSize.width."),this.shadow.mapSize.width=t}},shadowMapHeight:{set:function(t){console.warn("THREE.Light: .shadowMapHeight is now .shadow.mapSize.height."),this.shadow.mapSize.height=t}}}),Object.defineProperties(sn.prototype,{length:{get:function(){return console.warn("THREE.BufferAttribute: .length has been deprecated. Use .count instead."),this.array.length}},dynamic:{get:function(){return console.warn("THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead."),this.usage===nt},set:function(){console.warn("THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead."),this.setUsage(nt)}}}),sn.prototype.setDynamic=function(t){return console.warn("THREE.BufferAttribute: .setDynamic() has been deprecated. Use .setUsage() instead."),this.setUsage(!0===t?nt:et),this},sn.prototype.copyIndicesArray=function(){console.error("THREE.BufferAttribute: .copyIndicesArray() has been removed.")},sn.prototype.setArray=function(){console.error("THREE.BufferAttribute: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers")},En.prototype.addIndex=function(t){console.warn("THREE.BufferGeometry: .addIndex() has been renamed to .setIndex()."),this.setIndex(t)},En.prototype.addAttribute=function(t,e){return console.warn("THREE.BufferGeometry: .addAttribute() has been renamed to .setAttribute()."),e&&e.isBufferAttribute||e&&e.isInterleavedBufferAttribute?"index"===t?(console.warn("THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute."),this.setIndex(e),this):this.setAttribute(t,e):(console.warn("THREE.BufferGeometry: .addAttribute() now expects ( name, attribute )."),this.setAttribute(t,new sn(arguments[1],arguments[2])))},En.prototype.addDrawCall=function(t,e,n){void 0!==n&&console.warn("THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset."),console.warn("THREE.BufferGeometry: .addDrawCall() is now .addGroup()."),this.addGroup(t,e)},En.prototype.clearDrawCalls=function(){console.warn("THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups()."),this.clearGroups()},En.prototype.computeOffsets=function(){console.warn("THREE.BufferGeometry: .computeOffsets() has been removed.")},En.prototype.removeAttribute=function(t){return console.warn("THREE.BufferGeometry: .removeAttribute() has been renamed to .deleteAttribute()."),this.deleteAttribute(t)},En.prototype.applyMatrix=function(t){return console.warn("THREE.BufferGeometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(t)},Object.defineProperties(En.prototype,{drawcalls:{get:function(){return console.error("THREE.BufferGeometry: .drawcalls has been renamed to .groups."),this.groups}},offsets:{get:function(){return console.warn("THREE.BufferGeometry: .offsets has been renamed to .groups."),this.groups}}}),Es.prototype.setDynamic=function(t){return console.warn("THREE.InterleavedBuffer: .setDynamic() has been deprecated. Use .setUsage() instead."),this.setUsage(!0===t?nt:et),this},Es.prototype.setArray=function(){console.error("THREE.InterleavedBuffer: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers")},go.prototype.getArrays=function(){console.error("THREE.ExtrudeGeometry: .getArrays() has been removed.")},go.prototype.addShapeList=function(){console.error("THREE.ExtrudeGeometry: .addShapeList() has been removed.")},go.prototype.addShape=function(){console.error("THREE.ExtrudeGeometry: .addShape() has been removed.")},Ts.prototype.dispose=function(){console.error("THREE.Scene: .dispose() has been removed.")},Zc.prototype.onUpdate=function(){return console.warn("THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead."),this},Object.defineProperties(Xe.prototype,{wrapAround:{get:function(){console.warn("THREE.Material: .wrapAround has been removed.")},set:function(){console.warn("THREE.Material: .wrapAround has been removed.")}},overdraw:{get:function(){console.warn("THREE.Material: .overdraw has been removed.")},set:function(){console.warn("THREE.Material: .overdraw has been removed.")}},wrapRGB:{get:function(){return console.warn("THREE.Material: .wrapRGB has been removed."),new tn}},shading:{get:function(){console.error("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead.")},set:function(t){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===t}},stencilMask:{get:function(){return console.warn("THREE."+this.type+": .stencilMask has been removed. Use .stencilFuncMask instead."),this.stencilFuncMask},set:function(t){console.warn("THREE."+this.type+": .stencilMask has been removed. Use .stencilFuncMask instead."),this.stencilFuncMask=t}}}),Object.defineProperties(Jn.prototype,{derivatives:{get:function(){return console.warn("THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives},set:function(t){console.warn("THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives=t}}}),ws.prototype.clearTarget=function(t,e,n,i){console.warn("THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead."),this.setRenderTarget(t),this.clear(e,n,i)},ws.prototype.animate=function(t){console.warn("THREE.WebGLRenderer: .animate() is now .setAnimationLoop()."),this.setAnimationLoop(t)},ws.prototype.getCurrentRenderTarget=function(){return console.warn("THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget()."),this.getRenderTarget()},ws.prototype.getMaxAnisotropy=function(){return console.warn("THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy()."),this.capabilities.getMaxAnisotropy()},ws.prototype.getPrecision=function(){return console.warn("THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision."),this.capabilities.precision},ws.prototype.resetGLState=function(){return console.warn("THREE.WebGLRenderer: .resetGLState() is now .state.reset()."),this.state.reset()},ws.prototype.supportsFloatTextures=function(){return console.warn("THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' )."),this.extensions.get("OES_texture_float")},ws.prototype.supportsHalfFloatTextures=function(){return console.warn("THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' )."),this.extensions.get("OES_texture_half_float")},ws.prototype.supportsStandardDerivatives=function(){return console.warn("THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' )."),this.extensions.get("OES_standard_derivatives")},ws.prototype.supportsCompressedTextureS3TC=function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' )."),this.extensions.get("WEBGL_compressed_texture_s3tc")},ws.prototype.supportsCompressedTexturePVRTC=function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' )."),this.extensions.get("WEBGL_compressed_texture_pvrtc")},ws.prototype.supportsBlendMinMax=function(){return console.warn("THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' )."),this.extensions.get("EXT_blend_minmax")},ws.prototype.supportsVertexTextures=function(){return console.warn("THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures."),this.capabilities.vertexTextures},ws.prototype.supportsInstancedArrays=function(){return console.warn("THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' )."),this.extensions.get("ANGLE_instanced_arrays")},ws.prototype.enableScissorTest=function(t){console.warn("THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest()."),this.setScissorTest(t)},ws.prototype.initMaterial=function(){console.warn("THREE.WebGLRenderer: .initMaterial() has been removed.")},ws.prototype.addPrePlugin=function(){console.warn("THREE.WebGLRenderer: .addPrePlugin() has been removed.")},ws.prototype.addPostPlugin=function(){console.warn("THREE.WebGLRenderer: .addPostPlugin() has been removed.")},ws.prototype.updateShadowMap=function(){console.warn("THREE.WebGLRenderer: .updateShadowMap() has been removed.")},ws.prototype.setFaceCulling=function(){console.warn("THREE.WebGLRenderer: .setFaceCulling() has been removed.")},ws.prototype.allocTextureUnit=function(){console.warn("THREE.WebGLRenderer: .allocTextureUnit() has been removed.")},ws.prototype.setTexture=function(){console.warn("THREE.WebGLRenderer: .setTexture() has been removed.")},ws.prototype.setTexture2D=function(){console.warn("THREE.WebGLRenderer: .setTexture2D() has been removed.")},ws.prototype.setTextureCube=function(){console.warn("THREE.WebGLRenderer: .setTextureCube() has been removed.")},ws.prototype.getActiveMipMapLevel=function(){return console.warn("THREE.WebGLRenderer: .getActiveMipMapLevel() is now .getActiveMipmapLevel()."),this.getActiveMipmapLevel()},Object.defineProperties(ws.prototype,{shadowMapEnabled:{get:function(){return this.shadowMap.enabled},set:function(t){console.warn("THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled."),this.shadowMap.enabled=t}},shadowMapType:{get:function(){return this.shadowMap.type},set:function(t){console.warn("THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type."),this.shadowMap.type=t}},shadowMapCullFace:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.")}},context:{get:function(){return console.warn("THREE.WebGLRenderer: .context has been removed. Use .getContext() instead."),this.getContext()}},vr:{get:function(){return console.warn("THREE.WebGLRenderer: .vr has been renamed to .xr"),this.xr}},gammaInput:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead."),!1},set:function(){console.warn("THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.")}},gammaOutput:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead."),!1},set:function(t){console.warn("THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead."),this.outputEncoding=!0===t?Y:X}},toneMappingWhitePoint:{get:function(){return console.warn("THREE.WebGLRenderer: .toneMappingWhitePoint has been removed."),1},set:function(){console.warn("THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.")}}}),Object.defineProperties(us.prototype,{cullFace:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")}},renderReverseSided:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.")}},renderSingleSided:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")}}}),Object.defineProperties(Tt.prototype,{wrapS:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS},set:function(t){console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS=t}},wrapT:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT},set:function(t){console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT=t}},magFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter},set:function(t){console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter=t}},minFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter},set:function(t){console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter=t}},anisotropy:{get:function(){return console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy},set:function(t){console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy=t}},offset:{get:function(){return console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset},set:function(t){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset=t}},repeat:{get:function(){return console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat},set:function(t){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat=t}},format:{get:function(){return console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format},set:function(t){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format=t}},type:{get:function(){return console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type},set:function(t){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type=t}},generateMipmaps:{get:function(){return console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps},set:function(t){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps=t}}}),Lc.prototype.load=function(t){console.warn("THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.");const e=this;return(new vc).load(t,(function(t){e.setBuffer(t)})),this},Ic.prototype.getData=function(){return console.warn("THREE.AudioAnalyser: .getData() is now .getFrequencyData()."),this.getFrequencyData()},ti.prototype.updateCubeMap=function(t,e){return console.warn("THREE.CubeCamera: .updateCubeMap() is now .update()."),this.update(t,e)},ti.prototype.clear=function(t,e,n,i){return console.warn("THREE.CubeCamera: .clear() is now .renderTarget.clear()."),this.renderTarget.clear(t,e,n,i)},_t.crossOrigin=void 0,_t.loadTexture=function(t,e,n,i){console.warn("THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.");const r=new pl;r.setCrossOrigin(this.crossOrigin);const s=r.load(t,n,void 0,i);return e&&(s.mapping=e),s},_t.loadTextureCube=function(t,e,n,i){console.warn("THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.");const r=new ul;r.setCrossOrigin(this.crossOrigin);const s=r.load(t,n,void 0,i);return e&&(s.mapping=e),s},_t.loadCompressedTexture=function(){console.error("THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.")},_t.loadCompressedTextureCube=function(){console.error("THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.")};const eu={createMultiMaterialObject:function(){console.error("THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js")},detach:function(){console.error("THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js")},attach:function(){console.error("THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js")}};"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:e}})),"undefined"!=typeof window&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=e),t.ACESFilmicToneMapping=4,t.AddEquation=n,t.AddOperation=2,t.AdditiveAnimationBlendMode=q,t.AdditiveBlending=2,t.AlphaFormat=1021,t.AlwaysDepth=1,t.AlwaysStencilFunc=519,t.AmbientLight=$l,t.AmbientLightProbe=xc,t.AnimationClip=nl,t.AnimationLoader=class extends ol{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new cl(this.manager);s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):console.error(e),r.manager.itemError(t)}}),n,i)}parse(t){const e=[];for(let n=0;n.99999)this.quaternion.set(0,0,0,1);else if(t.y<-.99999)this.quaternion.set(1,0,0,0);else{Sh.set(t.z,0,-t.x).normalize();const e=Math.acos(t.y);this.quaternion.setFromAxisAngle(Sh,e)}}setLength(t,e=.2*t,n=.2*e){this.line.scale.set(1,Math.max(1e-4,t-e),1),this.line.updateMatrix(),this.cone.scale.set(n,e,n),this.cone.position.y=t,this.cone.updateMatrix()}setColor(t){this.line.material.color.set(t),this.cone.material.color.set(t)}copy(t){return super.copy(t,!1),this.line.copy(t.line),this.cone.copy(t.cone),this}},t.Audio=Lc,t.AudioAnalyser=Ic,t.AudioContext=gc,t.AudioListener=class extends Ce{constructor(){super(),this.type="AudioListener",this.context=gc.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new bc}getInput(){return this.gain}removeFilter(){return null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(t){return null!==this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=t,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}updateMatrixWorld(t){super.updateMatrixWorld(t);const e=this.context.listener,n=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(Sc,Tc,Ec),Ac.set(0,0,-1).applyQuaternion(Tc),e.positionX){const t=this.context.currentTime+this.timeDelta;e.positionX.linearRampToValueAtTime(Sc.x,t),e.positionY.linearRampToValueAtTime(Sc.y,t),e.positionZ.linearRampToValueAtTime(Sc.z,t),e.forwardX.linearRampToValueAtTime(Ac.x,t),e.forwardY.linearRampToValueAtTime(Ac.y,t),e.forwardZ.linearRampToValueAtTime(Ac.z,t),e.upX.linearRampToValueAtTime(n.x,t),e.upY.linearRampToValueAtTime(n.y,t),e.upZ.linearRampToValueAtTime(n.z,t)}else e.setPosition(Sc.x,Sc.y,Sc.z),e.setOrientation(Ac.x,Ac.y,Ac.z,n.x,n.y,n.z)}},t.AudioLoader=vc,t.AxesHelper=Ah,t.AxisHelper=function(t){return console.warn("THREE.AxisHelper has been renamed to THREE.AxesHelper."),new Ah(t)},t.BackSide=1,t.BasicDepthPacking=3200,t.BasicShadowMap=0,t.BinaryTextureLoader=function(t){return console.warn("THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader."),new dl(t)},t.Bone=ta,t.BooleanKeyframeTrack=Zo,t.BoundingBoxHelper=function(t,e){return console.warn("THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead."),new Mh(t,e)},t.Box2=eh,t.Box3=Pt,t.Box3Helper=class extends ya{constructor(t,e=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),i=new En;i.setIndex(new sn(n,1)),i.setAttribute("position",new mn([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3)),super(i,new ca({color:e,toneMapped:!1})),this.box=t,this.type="Box3Helper",this.geometry.computeBoundingSphere()}updateMatrixWorld(t){const e=this.box;e.isEmpty()||(e.getCenter(this.position),e.getSize(this.scale),this.scale.multiplyScalar(.5),super.updateMatrixWorld(t))}},t.BoxBufferGeometry=qn,t.BoxGeometry=qn,t.BoxHelper=Mh,t.BufferAttribute=sn,t.BufferGeometry=En,t.BufferGeometryLoader=oc,t.ByteType=1010,t.Cache=rl,t.Camera=Qn,t.CameraHelper=class extends ya{constructor(t){const e=new En,n=new ca({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],r=[],s={},a=new tn(16755200),o=new tn(16711680),l=new tn(43775),c=new tn(16777215),h=new tn(3355443);function u(t,e,n){d(t,n),d(e,n)}function d(t,e){i.push(0,0,0),r.push(e.r,e.g,e.b),void 0===s[t]&&(s[t]=[]),s[t].push(i.length/3-1)}u("n1","n2",a),u("n2","n4",a),u("n4","n3",a),u("n3","n1",a),u("f1","f2",a),u("f2","f4",a),u("f4","f3",a),u("f3","f1",a),u("n1","f1",a),u("n2","f2",a),u("n3","f3",a),u("n4","f4",a),u("p","n1",o),u("p","n2",o),u("p","n3",o),u("p","n4",o),u("u1","u2",l),u("u2","u3",l),u("u3","u1",l),u("c","t",c),u("p","c",h),u("cn1","cn2",h),u("cn3","cn4",h),u("cf1","cf2",h),u("cf3","cf4",h),e.setAttribute("position",new mn(i,3)),e.setAttribute("color",new mn(r,3)),super(e,n),this.type="CameraHelper",this.camera=t,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=s,this.update()}update(){const t=this.geometry,e=this.pointMap;_h.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse),wh("c",e,t,_h,0,0,-1),wh("t",e,t,_h,0,0,1),wh("n1",e,t,_h,-1,-1,-1),wh("n2",e,t,_h,1,-1,-1),wh("n3",e,t,_h,-1,1,-1),wh("n4",e,t,_h,1,1,-1),wh("f1",e,t,_h,-1,-1,1),wh("f2",e,t,_h,1,-1,1),wh("f3",e,t,_h,-1,1,1),wh("f4",e,t,_h,1,1,1),wh("u1",e,t,_h,.7,1.1,-1),wh("u2",e,t,_h,-.7,1.1,-1),wh("u3",e,t,_h,0,2,-1),wh("cf1",e,t,_h,-1,0,1),wh("cf2",e,t,_h,1,0,1),wh("cf3",e,t,_h,0,-1,1),wh("cf4",e,t,_h,0,1,1),wh("cn1",e,t,_h,-1,0,-1),wh("cn2",e,t,_h,1,0,-1),wh("cn3",e,t,_h,0,-1,-1),wh("cn4",e,t,_h,0,1,-1),t.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}},t.CanvasRenderer=function(){console.error("THREE.CanvasRenderer has been removed")},t.CanvasTexture=Ra,t.CatmullRomCurve3=bl,t.CineonToneMapping=3,t.CircleBufferGeometry=Pa,t.CircleGeometry=Pa,t.ClampToEdgeWrapping=u,t.Clock=bc,t.Color=tn,t.ColorKeyframeTrack=Jo,t.CompressedTexture=La,t.CompressedTextureLoader=class extends ol{constructor(t){super(t)}load(t,e,n,i){const r=this,s=[],a=new La,o=new cl(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(r.withCredentials);let l=0;function c(c){o.load(t[c],(function(t){const n=r.parse(t,!0);s[c]={width:n.width,height:n.height,format:n.format,mipmaps:n.mipmaps},l+=1,6===l&&(1===n.mipmapCount&&(a.minFilter=g),a.image=s,a.format=n.format,a.needsUpdate=!0,e&&e(a))}),n,i)}if(Array.isArray(t))for(let e=0,n=t.length;e>16&32768,i=e>>12&2047;const r=e>>23&255;return r<103?n:r>142?(n|=31744,n|=(255==r?0:1)&&8388607&e,n):r<113?(i|=2048,n|=(i>>114-r)+(i>>113-r&1),n):(n|=r-112<<10|i>>1,n+=1&i,n)}},t.DecrementStencilOp=7683,t.DecrementWrapStencilOp=34056,t.DefaultLoadingManager=al,t.DepthFormat=A,t.DepthStencilFormat=L,t.DepthTexture=Ca,t.DirectionalLight=Kl,t.DirectionalLightHelper=class extends Ce{constructor(t,e,n){super(),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=n,void 0===e&&(e=1);let i=new En;i.setAttribute("position",new mn([-e,e,0,e,e,0,e,-e,0,-e,-e,0,-e,e,0],3));const r=new ca({fog:!1,toneMapped:!1});this.lightPlane=new fa(i,r),this.add(this.lightPlane),i=new En,i.setAttribute("position",new mn([0,0,0,0,0,1],3)),this.targetLine=new fa(i,r),this.add(this.targetLine),this.update()}dispose(){this.lightPlane.geometry.dispose(),this.lightPlane.material.dispose(),this.targetLine.geometry.dispose(),this.targetLine.material.dispose()}update(){gh.setFromMatrixPosition(this.light.matrixWorld),vh.setFromMatrixPosition(this.light.target.matrixWorld),yh.subVectors(vh,gh),this.lightPlane.lookAt(vh),void 0!==this.color?(this.lightPlane.material.color.set(this.color),this.targetLine.material.color.set(this.color)):(this.lightPlane.material.color.copy(this.light.color),this.targetLine.material.color.copy(this.light.color)),this.targetLine.lookAt(vh),this.targetLine.scale.z=yh.length()}},t.DiscreteInterpolant=Xo,t.DodecahedronBufferGeometry=Ba,t.DodecahedronGeometry=Ba,t.DoubleSide=2,t.DstAlphaFactor=206,t.DstColorFactor=208,t.DynamicBufferAttribute=function(t,e){return console.warn("THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setUsage( THREE.DynamicDrawUsage ) instead."),new sn(t,e).setUsage(nt)},t.DynamicCopyUsage=35050,t.DynamicDrawUsage=nt,t.DynamicReadUsage=35049,t.EdgesGeometry=Ga,t.EdgesHelper=function(t,e){return console.warn("THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead."),new ya(new Ga(t.geometry),new ca({color:void 0!==e?e:16777215}))},t.EllipseCurve=fl,t.EqualDepth=4,t.EqualStencilFunc=514,t.EquirectangularReflectionMapping=a,t.EquirectangularRefractionMapping=o,t.Euler=fe,t.EventDispatcher=rt,t.ExtrudeBufferGeometry=go,t.ExtrudeGeometry=go,t.FaceColors=1,t.FileLoader=cl,t.FlatShading=1,t.Float16BufferAttribute=pn,t.Float32Attribute=function(t,e){return console.warn("THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead."),new mn(t,e)},t.Float32BufferAttribute=mn,t.Float64Attribute=function(t,e){return console.warn("THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead."),new fn(t,e)},t.Float64BufferAttribute=fn,t.FloatType=b,t.Fog=Ss,t.FogExp2=Ms,t.Font=pc,t.FontLoader=class extends ol{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new cl(this.manager);s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(r.withCredentials),s.load(t,(function(t){let n;try{n=JSON.parse(t)}catch(e){console.warn("THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead."),n=JSON.parse(t.substring(65,t.length-2))}const i=r.parse(n);e&&e(i)}),n,i)}parse(t){return new pc(t)}},t.FrontSide=0,t.Frustum=ai,t.GLBufferAttribute=Qc,t.GLSL1="100",t.GLSL3=it,t.GammaEncoding=Z,t.GreaterDepth=6,t.GreaterEqualDepth=5,t.GreaterEqualStencilFunc=518,t.GreaterStencilFunc=516,t.GridHelper=fh,t.Group=gs,t.HalfFloatType=M,t.HemisphereLight=Ol,t.HemisphereLightHelper=class extends Ce{constructor(t,e,n){super(),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=n;const i=new _o(e);i.rotateY(.5*Math.PI),this.material=new en({wireframe:!0,fog:!1,toneMapped:!1}),void 0===this.color&&(this.material.vertexColors=!0);const r=i.getAttribute("position"),s=new Float32Array(3*r.count);i.setAttribute("color",new sn(s,3)),this.add(new Wn(i,this.material)),this.update()}dispose(){this.children[0].geometry.dispose(),this.children[0].material.dispose()}update(){const t=this.children[0];if(void 0!==this.color)this.material.color.set(this.color);else{const e=t.geometry.getAttribute("color");ph.copy(this.light.color),mh.copy(this.light.groundColor);for(let t=0,n=e.count;t0){const n=new sl(e);r=new hl(n),r.setCrossOrigin(this.crossOrigin);for(let e=0,n=t.length;e\n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t\tgl_FragColor = linearToOutputTexel( gl_FragColor );\n\n\t\t\t}\n\t\t`,blending:0,depthTest:!1,depthWrite:!1})}(Ih),this._equirectShader=null,this._cubemapShader=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){kh=this._renderer.getRenderTarget();const r=this._allocateTargets();return this._sceneToCubeUV(t,n,i,r),e>0&&this._blur(r,0,0,e),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(t){return this._fromTexture(t)}fromCubemap(t){return this._fromTexture(t)}compileCubemapShader(){null===this._cubemapShader&&(this._cubemapShader=Kh(),this._compileMaterial(this._cubemapShader))}compileEquirectangularShader(){null===this._equirectShader&&(this._equirectShader=Qh(),this._compileMaterial(this._equirectShader))}dispose(){this._blurMaterial.dispose(),null!==this._cubemapShader&&this._cubemapShader.dispose(),null!==this._equirectShader&&this._equirectShader.dispose();for(let t=0;t2?Ch:0,Ch,Ch),o.setRenderTarget(i),u&&o.render(zh,r),o.render(t,r)}o.toneMapping=h,o.outputEncoding=c,o.autoClear=l}_textureToCubeUV(t,e){const n=this._renderer;t.isCubeTexture?null==this._cubemapShader&&(this._cubemapShader=Kh()):null==this._equirectShader&&(this._equirectShader=Qh());const i=t.isCubeTexture?this._cubemapShader:this._equirectShader,r=new Wn(Oh[0],i),s=i.uniforms;s.envMap.value=t,t.isCubeTexture||s.texelSize.value.set(1/t.image.width,1/t.image.height),s.inputEncoding.value=Nh[t.encoding],s.outputEncoding.value=Nh[e.texture.encoding],Jh(e,0,0,3*Ch,2*Ch),n.setRenderTarget(e),n.render(r,Fh)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let e=1;eIh&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${m} samples when the maximum is set to 20`);const f=[];let g=0;for(let t=0;t4?i-8+4:0),3*v,2*v),o.setRenderTarget(e),o.render(c,Fh)}},t.ParametricBufferGeometry=wo,t.ParametricGeometry=wo,t.Particle=function(t){return console.warn("THREE.Particle has been renamed to THREE.Sprite."),new Vs(t)},t.ParticleBasicMaterial=function(t){return console.warn("THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial."),new _a(t)},t.ParticleSystem=function(t,e){return console.warn("THREE.ParticleSystem has been renamed to THREE.Points."),new Ta(t,e)},t.ParticleSystemMaterial=function(t){return console.warn("THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial."),new _a(t)},t.Path=Bl,t.PerspectiveCamera=Kn,t.Plane=Ne,t.PlaneBufferGeometry=ci,t.PlaneGeometry=ci,t.PlaneHelper=class extends fa{constructor(t,e=1,n=16776960){const i=n,r=new En;r.setAttribute("position",new mn([1,-1,1,-1,1,1,-1,-1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,0,0,1,0,0,0],3)),r.computeBoundingSphere(),super(r,new ca({color:i,toneMapped:!1})),this.type="PlaneHelper",this.plane=t,this.size=e;const s=new En;s.setAttribute("position",new mn([1,1,1,-1,1,1,-1,-1,1,1,1,1,-1,-1,1,1,-1,1],3)),s.computeBoundingSphere(),this.add(new Wn(s,new en({color:i,opacity:.2,transparent:!0,depthWrite:!1,toneMapped:!1})))}updateMatrixWorld(t){let e=-this.plane.constant;Math.abs(e)<1e-8&&(e=1e-8),this.scale.set(.5*this.size,.5*this.size,e),this.children[0].material.side=e<0?1:0,this.lookAt(this.plane.normal),super.updateMatrixWorld(t)}},t.PointCloud=function(t,e){return console.warn("THREE.PointCloud has been renamed to THREE.Points."),new Ta(t,e)},t.PointCloudMaterial=function(t){return console.warn("THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial."),new _a(t)},t.PointLight=Zl,t.PointLightHelper=class extends Wn{constructor(t,e,n){super(new So(e,4,2),new en({wireframe:!0,fog:!1,toneMapped:!1})),this.light=t,this.light.updateMatrixWorld(),this.color=n,this.type="PointLightHelper",this.matrix=this.light.matrixWorld,this.matrixAutoUpdate=!1,this.update()}dispose(){this.geometry.dispose(),this.material.dispose()}update(){void 0!==this.color?this.material.color.set(this.color):this.material.color.copy(this.light.color)}},t.Points=Ta,t.PointsMaterial=_a,t.PolarGridHelper=class extends ya{constructor(t=10,e=16,n=8,i=64,r=4473924,s=8947848){r=new tn(r),s=new tn(s);const a=[],o=[];for(let n=0;n<=e;n++){const i=n/e*(2*Math.PI),l=Math.sin(i)*t,c=Math.cos(i)*t;a.push(0,0,0),a.push(l,0,c);const h=1&n?r:s;o.push(h.r,h.g,h.b),o.push(h.r,h.g,h.b)}for(let e=0;e<=n;e++){const l=1&e?r:s,c=t-t/n*e;for(let t=0;t Date: Fri, 23 Jul 2021 23:26:04 +0200 Subject: [PATCH 09/19] refactor remote.html and add option to choose ip --- remote/remote.html | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/remote/remote.html b/remote/remote.html index d68c9d2..728aac5 100644 --- a/remote/remote.html +++ b/remote/remote.html @@ -8,22 +8,26 @@ + From 240001662bbf37ee10c75702ca658fe342c53744 Mon Sep 17 00:00:00 2001 From: Luigi Fusco Date: Wed, 11 Aug 2021 14:58:24 +0200 Subject: [PATCH 16/19] add initial support for remote control --- DebugGUI/src/DebugGUI.cxx | 38 +++++++++++++++--------- DebugGUI/src/imgui_impl_glfw_gl3.cpp | 2 +- remote/remote.html | 43 ++++++++++++++++++++++++++-- 3 files changed, 67 insertions(+), 16 deletions(-) diff --git a/DebugGUI/src/DebugGUI.cxx b/DebugGUI/src/DebugGUI.cxx index ed5cad8..725c246 100644 --- a/DebugGUI/src/DebugGUI.cxx +++ b/DebugGUI/src/DebugGUI.cxx @@ -25,7 +25,7 @@ namespace framework void* initGUI(const char* name, void(*error_callback)(int, char const*description)) { // Setup window - if (error_callback == nullptr) { + /*if (error_callback == nullptr) { glfwSetErrorCallback(default_error_callback); } if (!glfwInit()) @@ -38,10 +38,12 @@ void* initGUI(const char* name, void(*error_callback)(int, char const*descriptio #endif GLFWwindow* window = glfwCreateWindow(1280, 720, name, nullptr, nullptr); glfwMakeContextCurrent(window); - gl3wInit(); + gl3wInit();*/ // Setup ImGui binding - ImGui_ImplGlfwGL3_Init(window, true); + + //ImGui_ImplGlfwGL3_Init(window, true); + ImGui::CreateContext(); // Load Fonts // (there is a default font, this is only if you want to change it. see extra_fonts/README.txt for more details) @@ -50,9 +52,14 @@ void* initGUI(const char* name, void(*error_callback)(int, char const*descriptio static const ImWchar icons_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 }; ImFontConfig icons_config; icons_config.MergeMode = true; icons_config.PixelSnapH = true; icons_config.FontDataOwnedByAtlas = false; io.Fonts->AddFontFromMemoryTTF((void*)s_iconsFontAwesomeTtf, sizeof(s_iconsFontAwesomeTtf), 12.0f, &icons_config, icons_ranges); + unsigned char* pixels; + int width, height; + io.Fonts->GetTexDataAsRGBA32(&pixels, &width, &height); ImPlot::CreateContext(); - return window; + io.DisplaySize = ImVec2(1000, 1000); + //return window; + return nullptr; } // fills a stream with drawing data in JSON format @@ -188,21 +195,26 @@ void getFrameRaw(void *data, void **raw_data, int *size) bool pollGUIPreRender(void* context) { - GLFWwindow* window = reinterpret_cast(context); + //GLFWwindow* window = reinterpret_cast(context); +/* if (glfwWindowShouldClose(window)) { return false; } - glfwPollEvents(); - ImGui_ImplGlfwGL3_NewFrame(); + glfwPollEvents();*/ + ImGuiIO& io = ImGui::GetIO(); + + io.DeltaTime = (float)(1.0f/60.0f); + ImGui::NewFrame(); // Rendering + /* int display_w, display_h; glfwGetFramebufferSize(window, &display_w, &display_h); glViewport(0, 0, display_w, display_h); ImVec4 clear_color = ImColor(114, 144, 154); glClearColor(clear_color.x, clear_color.y, clear_color.z, clear_color.w); - glClear(GL_COLOR_BUFFER_BIT); + glClear(GL_COLOR_BUFFER_BIT);*/ return true; } @@ -221,10 +233,10 @@ void *pollGUIRender(std::function guiCallback) void pollGUIPostRender(void* context, void *draw_data) { - GLFWwindow* window = reinterpret_cast(context); + //GLFWwindow* window = reinterpret_cast(context); - ImGui_ImplGlfwGL3_RenderDrawLists((ImDrawData*)draw_data); - glfwSwapBuffers(window); + //ImGui_ImplGlfwGL3_RenderDrawLists((ImDrawData*)draw_data); + //glfwSwapBuffers(window); } /// @return true if we do not need to exit, false if we do. @@ -243,8 +255,8 @@ void disposeGUI() { ImPlot::DestroyContext(); // Cleanup - ImGui_ImplGlfwGL3_Shutdown(); - glfwTerminate(); + //ImGui_ImplGlfwGL3_Shutdown(); + //glfwTerminate(); } } // namespace framework diff --git a/DebugGUI/src/imgui_impl_glfw_gl3.cpp b/DebugGUI/src/imgui_impl_glfw_gl3.cpp index f819c48..ffd3108 100644 --- a/DebugGUI/src/imgui_impl_glfw_gl3.cpp +++ b/DebugGUI/src/imgui_impl_glfw_gl3.cpp @@ -386,10 +386,10 @@ void ImGui_ImplGlfwGL3_NewFrame() io.MouseDown[i] = g_MousePressed[i] || glfwGetMouseButton(g_Window, i) != 0; // If a mouse press event came, always pass it as "mouse held this frame", so we don't miss click-release events that are shorter than 1 frame. g_MousePressed[i] = false; } + io.MouseWheel = g_MouseWheel; } - io.MouseWheel = g_MouseWheel; g_MouseWheel = 0.0f; // Hide OS mouse cursor if ImGui is drawing it diff --git a/remote/remote.html b/remote/remote.html index 241a744..52851b6 100644 --- a/remote/remote.html +++ b/remote/remote.html @@ -2,7 +2,7 @@ - Remote DebugGUI + DebugGUI @@ -12,6 +12,8 @@ From 530cdcc6829083ab7eb31bfeccc2d3999792f630 Mon Sep 17 00:00:00 2001 From: Luigi Fusco Date: Fri, 13 Aug 2021 09:41:35 +0200 Subject: [PATCH 17/19] add support for headless and variable framerate --- DebugGUI/src/DebugGUI.cxx | 107 +++++++++++++++++++++----------------- remote/remote.html | 21 +++++++- 2 files changed, 78 insertions(+), 50 deletions(-) diff --git a/DebugGUI/src/DebugGUI.cxx b/DebugGUI/src/DebugGUI.cxx index 725c246..ebec4eb 100644 --- a/DebugGUI/src/DebugGUI.cxx +++ b/DebugGUI/src/DebugGUI.cxx @@ -24,26 +24,29 @@ namespace framework // @return an object of kind GLFWwindow* as void* to avoid having a direct dependency void* initGUI(const char* name, void(*error_callback)(int, char const*description)) { - // Setup window - /*if (error_callback == nullptr) { - glfwSetErrorCallback(default_error_callback); + GLFWwindow* window = nullptr; + if (name) { + // Setup window + if (error_callback == nullptr) { + glfwSetErrorCallback(default_error_callback); + } + if (!glfwInit()) + return nullptr; + glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); + glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); + glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); + #if __APPLE__ + glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); + #endif + window = glfwCreateWindow(1280, 720, name, nullptr, nullptr); + glfwMakeContextCurrent(window); + gl3wInit(); + + // Setup ImGui binding + ImGui_ImplGlfwGL3_Init(window, true); + } else { + ImGui::CreateContext(); } - if (!glfwInit()) - return nullptr; - glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); - glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); - glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); -#if __APPLE__ - glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); -#endif - GLFWwindow* window = glfwCreateWindow(1280, 720, name, nullptr, nullptr); - glfwMakeContextCurrent(window); - gl3wInit();*/ - - // Setup ImGui binding - - //ImGui_ImplGlfwGL3_Init(window, true); - ImGui::CreateContext(); // Load Fonts // (there is a default font, this is only if you want to change it. see extra_fonts/README.txt for more details) @@ -52,14 +55,15 @@ void* initGUI(const char* name, void(*error_callback)(int, char const*descriptio static const ImWchar icons_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 }; ImFontConfig icons_config; icons_config.MergeMode = true; icons_config.PixelSnapH = true; icons_config.FontDataOwnedByAtlas = false; io.Fonts->AddFontFromMemoryTTF((void*)s_iconsFontAwesomeTtf, sizeof(s_iconsFontAwesomeTtf), 12.0f, &icons_config, icons_ranges); - unsigned char* pixels; - int width, height; - io.Fonts->GetTexDataAsRGBA32(&pixels, &width, &height); - + + // this initializes the texture + if (io.Fonts->ConfigData.empty()) + io.Fonts->AddFontDefault(); + io.Fonts->Build(); + io.DisplaySize = ImVec2(1280, 720); + ImPlot::CreateContext(); - io.DisplaySize = ImVec2(1000, 1000); - //return window; - return nullptr; + return window; } // fills a stream with drawing data in JSON format @@ -195,26 +199,29 @@ void getFrameRaw(void *data, void **raw_data, int *size) bool pollGUIPreRender(void* context) { - //GLFWwindow* window = reinterpret_cast(context); + if (context) { + GLFWwindow* window = reinterpret_cast(context); -/* - if (glfwWindowShouldClose(window)) { - return false; + if (glfwWindowShouldClose(window)) { + return false; + } + glfwPollEvents(); + ImGui_ImplGlfwGL3_NewFrame(); + + // Clearing the viewport + int display_w, display_h; + glfwGetFramebufferSize(window, &display_w, &display_h); + glViewport(0, 0, display_w, display_h); + ImVec4 clear_color = ImColor(114, 144, 154); + glClearColor(clear_color.x, clear_color.y, clear_color.z, clear_color.w); + glClear(GL_COLOR_BUFFER_BIT); + } else { + // Just initialize new frame + ImGuiIO& io = ImGui::GetIO(); + io.DeltaTime = (float)(1.0f/60.0f); + ImGui::NewFrame(); } - glfwPollEvents();*/ - ImGuiIO& io = ImGui::GetIO(); - - io.DeltaTime = (float)(1.0f/60.0f); - ImGui::NewFrame(); - - // Rendering - /* - int display_w, display_h; - glfwGetFramebufferSize(window, &display_w, &display_h); - glViewport(0, 0, display_w, display_h); - ImVec4 clear_color = ImColor(114, 144, 154); - glClearColor(clear_color.x, clear_color.y, clear_color.z, clear_color.w); - glClear(GL_COLOR_BUFFER_BIT);*/ + return true; } @@ -233,10 +240,12 @@ void *pollGUIRender(std::function guiCallback) void pollGUIPostRender(void* context, void *draw_data) { - //GLFWwindow* window = reinterpret_cast(context); + if (context) { + GLFWwindow* window = reinterpret_cast(context); - //ImGui_ImplGlfwGL3_RenderDrawLists((ImDrawData*)draw_data); - //glfwSwapBuffers(window); + ImGui_ImplGlfwGL3_RenderDrawLists((ImDrawData*)draw_data); + glfwSwapBuffers(window); + } } /// @return true if we do not need to exit, false if we do. @@ -255,8 +264,8 @@ void disposeGUI() { ImPlot::DestroyContext(); // Cleanup - //ImGui_ImplGlfwGL3_Shutdown(); - //glfwTerminate(); + ImGui_ImplGlfwGL3_Shutdown(); + glfwTerminate(); } } // namespace framework diff --git a/remote/remote.html b/remote/remote.html index 52851b6..0e75cc0 100644 --- a/remote/remote.html +++ b/remote/remote.html @@ -165,6 +165,8 @@ let idx_length = data.getInt(); let cmd_length = data.getInt(); + console.log(vtx_length); + let idx = 0; for (let i = 0; i < vtx_length; ++i) { posArr[i*3] = data.getFloat(); @@ -272,7 +274,6 @@ } case 'f': { - if (!interactive) break; let buffer = new ArrayBuffer(9); let stream = dataToStream(buffer); stream.setChar(4); @@ -281,6 +282,24 @@ ws.send(buffer); break; } + case '+': + { + let buffer = new ArrayBuffer(2); + let stream = dataToStream(buffer); + stream.setChar(5); + stream.setChar(1); + ws.send(buffer); + break; + } + case '-': + { + let buffer = new ArrayBuffer(2); + let stream = dataToStream(buffer); + stream.setChar(5); + stream.setChar(-1); + ws.send(buffer); + break; + } } } }); From c81532d3387da29c13a19baec379cf505b689117 Mon Sep 17 00:00:00 2001 From: Luigi Fusco Date: Tue, 24 Aug 2021 12:57:39 +0200 Subject: [PATCH 18/19] add support for keyboard input and commands through dat.gui --- DebugGUI/src/DebugGUI.cxx | 27 +++++- DebugGUI/src/DebugGUI.h | 2 +- remote/dat.gui.min.js | 13 +++ remote/remote.html | 168 ++++++++++++++++++++++++++------------ 4 files changed, 154 insertions(+), 56 deletions(-) create mode 100644 remote/dat.gui.min.js diff --git a/DebugGUI/src/DebugGUI.cxx b/DebugGUI/src/DebugGUI.cxx index ebec4eb..8bebf5e 100644 --- a/DebugGUI/src/DebugGUI.cxx +++ b/DebugGUI/src/DebugGUI.cxx @@ -46,6 +46,27 @@ void* initGUI(const char* name, void(*error_callback)(int, char const*descriptio ImGui_ImplGlfwGL3_Init(window, true); } else { ImGui::CreateContext(); + ImGuiIO& io = ImGui::GetIO(); + ImGui::StyleColorsDark(); + io.KeyMap[ImGuiKey_Tab] = GLFW_KEY_TAB; + io.KeyMap[ImGuiKey_LeftArrow] = GLFW_KEY_LEFT; + io.KeyMap[ImGuiKey_RightArrow] = GLFW_KEY_RIGHT; + io.KeyMap[ImGuiKey_UpArrow] = GLFW_KEY_UP; + io.KeyMap[ImGuiKey_DownArrow] = GLFW_KEY_DOWN; + io.KeyMap[ImGuiKey_PageUp] = GLFW_KEY_PAGE_UP; + io.KeyMap[ImGuiKey_PageDown] = GLFW_KEY_PAGE_DOWN; + io.KeyMap[ImGuiKey_Home] = GLFW_KEY_HOME; + io.KeyMap[ImGuiKey_End] = GLFW_KEY_END; + io.KeyMap[ImGuiKey_Delete] = GLFW_KEY_DELETE; + io.KeyMap[ImGuiKey_Backspace] = GLFW_KEY_BACKSPACE; + io.KeyMap[ImGuiKey_Enter] = GLFW_KEY_ENTER; + io.KeyMap[ImGuiKey_Escape] = GLFW_KEY_ESCAPE; + io.KeyMap[ImGuiKey_A] = GLFW_KEY_A; + io.KeyMap[ImGuiKey_C] = GLFW_KEY_C; + io.KeyMap[ImGuiKey_V] = GLFW_KEY_V; + io.KeyMap[ImGuiKey_X] = GLFW_KEY_X; + io.KeyMap[ImGuiKey_Y] = GLFW_KEY_Y; + io.KeyMap[ImGuiKey_Z] = GLFW_KEY_Z; } // Load Fonts @@ -197,7 +218,7 @@ void getFrameRaw(void *data, void **raw_data, int *size) *raw_data = local_data_base; } -bool pollGUIPreRender(void* context) +bool pollGUIPreRender(void* context, float delta) { if (context) { GLFWwindow* window = reinterpret_cast(context); @@ -218,7 +239,7 @@ bool pollGUIPreRender(void* context) } else { // Just initialize new frame ImGuiIO& io = ImGui::GetIO(); - io.DeltaTime = (float)(1.0f/60.0f); + io.DeltaTime = delta; ImGui::NewFrame(); } @@ -251,7 +272,7 @@ void pollGUIPostRender(void* context, void *draw_data) /// @return true if we do not need to exit, false if we do. bool pollGUI(void* context, std::function guiCallback) { - if (!pollGUIPreRender(context)) { + if (!pollGUIPreRender(context, 1.0f/60.0f)) { return false; } void *draw_data = pollGUIRender(guiCallback); diff --git a/DebugGUI/src/DebugGUI.h b/DebugGUI/src/DebugGUI.h index 373f4df..ae43bc1 100644 --- a/DebugGUI/src/DebugGUI.h +++ b/DebugGUI/src/DebugGUI.h @@ -22,7 +22,7 @@ void* initGUI(const char* name, decltype(default_error_callback) = nullptr); bool pollGUI(void* context, std::function guiCallback); void getFrameJSON(void *data, std::ostream& json_data); void getFrameRaw(void *data, void **raw_data, int *size); -bool pollGUIPreRender(void* context); +bool pollGUIPreRender(void* context, float delta); void* pollGUIRender(std::function guiCallback); void pollGUIPostRender(void* context, void* draw_data); void disposeGUI(); diff --git a/remote/dat.gui.min.js b/remote/dat.gui.min.js new file mode 100644 index 0000000..658e022 --- /dev/null +++ b/remote/dat.gui.min.js @@ -0,0 +1,13 @@ +/** + * dat-gui JavaScript Controller Library + * http://code.google.com/p/dat-gui + * + * Copyright 2011 Data Arts Team, Google Creative Lab + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e.dat={})}(this,function(e){"use strict";function t(e,t){var n=e.__state.conversionName.toString(),o=Math.round(e.r),i=Math.round(e.g),r=Math.round(e.b),s=e.a,a=Math.round(e.h),l=e.s.toFixed(1),d=e.v.toFixed(1);if(t||"THREE_CHAR_HEX"===n||"SIX_CHAR_HEX"===n){for(var c=e.hex.toString(16);c.length<6;)c="0"+c;return"#"+c}return"CSS_RGB"===n?"rgb("+o+","+i+","+r+")":"CSS_RGBA"===n?"rgba("+o+","+i+","+r+","+s+")":"HEX"===n?"0x"+e.hex.toString(16):"RGB_ARRAY"===n?"["+o+","+i+","+r+"]":"RGBA_ARRAY"===n?"["+o+","+i+","+r+","+s+"]":"RGB_OBJ"===n?"{r:"+o+",g:"+i+",b:"+r+"}":"RGBA_OBJ"===n?"{r:"+o+",g:"+i+",b:"+r+",a:"+s+"}":"HSV_OBJ"===n?"{h:"+a+",s:"+l+",v:"+d+"}":"HSVA_OBJ"===n?"{h:"+a+",s:"+l+",v:"+d+",a:"+s+"}":"unknown format"}function n(e,t,n){Object.defineProperty(e,t,{get:function(){return"RGB"===this.__state.space?this.__state[t]:(I.recalculateRGB(this,t,n),this.__state[t])},set:function(e){"RGB"!==this.__state.space&&(I.recalculateRGB(this,t,n),this.__state.space="RGB"),this.__state[t]=e}})}function o(e,t){Object.defineProperty(e,t,{get:function(){return"HSV"===this.__state.space?this.__state[t]:(I.recalculateHSV(this),this.__state[t])},set:function(e){"HSV"!==this.__state.space&&(I.recalculateHSV(this),this.__state.space="HSV"),this.__state[t]=e}})}function i(e){if("0"===e||S.isUndefined(e))return 0;var t=e.match(U);return S.isNull(t)?0:parseFloat(t[1])}function r(e){var t=e.toString();return t.indexOf(".")>-1?t.length-t.indexOf(".")-1:0}function s(e,t){var n=Math.pow(10,t);return Math.round(e*n)/n}function a(e,t,n,o,i){return o+(e-t)/(n-t)*(i-o)}function l(e,t,n,o){e.style.background="",S.each(ee,function(i){e.style.cssText+="background: "+i+"linear-gradient("+t+", "+n+" 0%, "+o+" 100%); "})}function d(e){e.style.background="",e.style.cssText+="background: -moz-linear-gradient(top, #ff0000 0%, #ff00ff 17%, #0000ff 34%, #00ffff 50%, #00ff00 67%, #ffff00 84%, #ff0000 100%);",e.style.cssText+="background: -webkit-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",e.style.cssText+="background: -o-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",e.style.cssText+="background: -ms-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",e.style.cssText+="background: linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);"}function c(e,t,n){var o=document.createElement("li");return t&&o.appendChild(t),n?e.__ul.insertBefore(o,n):e.__ul.appendChild(o),e.onResize(),o}function u(e){X.unbind(window,"resize",e.__resizeHandler),e.saveToLocalStorageIfPossible&&X.unbind(window,"unload",e.saveToLocalStorageIfPossible)}function _(e,t){var n=e.__preset_select[e.__preset_select.selectedIndex];n.innerHTML=t?n.value+"*":n.value}function h(e,t,n){if(n.__li=t,n.__gui=e,S.extend(n,{options:function(t){if(arguments.length>1){var o=n.__li.nextElementSibling;return n.remove(),f(e,n.object,n.property,{before:o,factoryArgs:[S.toArray(arguments)]})}if(S.isArray(t)||S.isObject(t)){var i=n.__li.nextElementSibling;return n.remove(),f(e,n.object,n.property,{before:i,factoryArgs:[t]})}},name:function(e){return n.__li.firstElementChild.firstElementChild.innerHTML=e,n},listen:function(){return n.__gui.listen(n),n},remove:function(){return n.__gui.remove(n),n}}),n instanceof q){var o=new Q(n.object,n.property,{min:n.__min,max:n.__max,step:n.__step});S.each(["updateDisplay","onChange","onFinishChange","step","min","max"],function(e){var t=n[e],i=o[e];n[e]=o[e]=function(){var e=Array.prototype.slice.call(arguments);return i.apply(o,e),t.apply(n,e)}}),X.addClass(t,"has-slider"),n.domElement.insertBefore(o.domElement,n.domElement.firstElementChild)}else if(n instanceof Q){var i=function(t){if(S.isNumber(n.__min)&&S.isNumber(n.__max)){var o=n.__li.firstElementChild.firstElementChild.innerHTML,i=n.__gui.__listening.indexOf(n)>-1;n.remove();var r=f(e,n.object,n.property,{before:n.__li.nextElementSibling,factoryArgs:[n.__min,n.__max,n.__step]});return r.name(o),i&&r.listen(),r}return t};n.min=S.compose(i,n.min),n.max=S.compose(i,n.max)}else n instanceof K?(X.bind(t,"click",function(){X.fakeEvent(n.__checkbox,"click")}),X.bind(n.__checkbox,"click",function(e){e.stopPropagation()})):n instanceof Z?(X.bind(t,"click",function(){X.fakeEvent(n.__button,"click")}),X.bind(t,"mouseover",function(){X.addClass(n.__button,"hover")}),X.bind(t,"mouseout",function(){X.removeClass(n.__button,"hover")})):n instanceof $&&(X.addClass(t,"color"),n.updateDisplay=S.compose(function(e){return t.style.borderLeftColor=n.__color.toString(),e},n.updateDisplay),n.updateDisplay());n.setValue=S.compose(function(t){return e.getRoot().__preset_select&&n.isModified()&&_(e.getRoot(),!0),t},n.setValue)}function p(e,t){var n=e.getRoot(),o=n.__rememberedObjects.indexOf(t.object);if(-1!==o){var i=n.__rememberedObjectIndecesToControllers[o];if(void 0===i&&(i={},n.__rememberedObjectIndecesToControllers[o]=i),i[t.property]=t,n.load&&n.load.remembered){var r=n.load.remembered,s=void 0;if(r[e.preset])s=r[e.preset];else{if(!r[se])return;s=r[se]}if(s[o]&&void 0!==s[o][t.property]){var a=s[o][t.property];t.initialValue=a,t.setValue(a)}}}}function f(e,t,n,o){if(void 0===t[n])throw new Error('Object "'+t+'" has no property "'+n+'"');var i=void 0;if(o.color)i=new $(t,n);else{var r=[t,n].concat(o.factoryArgs);i=ne.apply(e,r)}o.before instanceof z&&(o.before=o.before.__li),p(e,i),X.addClass(i.domElement,"c");var s=document.createElement("span");X.addClass(s,"property-name"),s.innerHTML=i.property;var a=document.createElement("div");a.appendChild(s),a.appendChild(i.domElement);var l=c(e,a,o.before);return X.addClass(l,he.CLASS_CONTROLLER_ROW),i instanceof $?X.addClass(l,"color"):X.addClass(l,H(i.getValue())),h(e,l,i),e.__controllers.push(i),i}function m(e,t){return document.location.href+"."+t}function g(e,t,n){var o=document.createElement("option");o.innerHTML=t,o.value=t,e.__preset_select.appendChild(o),n&&(e.__preset_select.selectedIndex=e.__preset_select.length-1)}function b(e,t){t.style.display=e.useLocalStorage?"block":"none"}function v(e){var t=e.__save_row=document.createElement("li");X.addClass(e.domElement,"has-save"),e.__ul.insertBefore(t,e.__ul.firstChild),X.addClass(t,"save-row");var n=document.createElement("span");n.innerHTML=" ",X.addClass(n,"button gears");var o=document.createElement("span");o.innerHTML="Save",X.addClass(o,"button"),X.addClass(o,"save");var i=document.createElement("span");i.innerHTML="New",X.addClass(i,"button"),X.addClass(i,"save-as");var r=document.createElement("span");r.innerHTML="Revert",X.addClass(r,"button"),X.addClass(r,"revert");var s=e.__preset_select=document.createElement("select");if(e.load&&e.load.remembered?S.each(e.load.remembered,function(t,n){g(e,n,n===e.preset)}):g(e,se,!1),X.bind(s,"change",function(){for(var t=0;t=0;n--)t=[e[n].apply(this,t)];return t[0]}},each:function(e,t,n){if(e)if(A&&e.forEach&&e.forEach===A)e.forEach(t,n);else if(e.length===e.length+0){var o=void 0,i=void 0;for(o=0,i=e.length;o1?S.toArray(arguments):arguments[0];return S.each(O,function(t){if(t.litmus(e))return S.each(t.conversions,function(t,n){if(T=t.read(e),!1===L&&!1!==T)return L=T,T.conversionName=n,T.conversion=t,S.BREAK}),S.BREAK}),L},B=void 0,N={hsv_to_rgb:function(e,t,n){var o=Math.floor(e/60)%6,i=e/60-Math.floor(e/60),r=n*(1-t),s=n*(1-i*t),a=n*(1-(1-i)*t),l=[[n,a,r],[s,n,r],[r,n,a],[r,s,n],[a,r,n],[n,r,s]][o];return{r:255*l[0],g:255*l[1],b:255*l[2]}},rgb_to_hsv:function(e,t,n){var o=Math.min(e,t,n),i=Math.max(e,t,n),r=i-o,s=void 0,a=void 0;return 0===i?{h:NaN,s:0,v:0}:(a=r/i,s=e===i?(t-n)/r:t===i?2+(n-e)/r:4+(e-t)/r,(s/=6)<0&&(s+=1),{h:360*s,s:a,v:i/255})},rgb_to_hex:function(e,t,n){var o=this.hex_with_component(0,2,e);return o=this.hex_with_component(o,1,t),o=this.hex_with_component(o,0,n)},component_from_hex:function(e,t){return e>>8*t&255},hex_with_component:function(e,t,n){return n<<(B=8*t)|e&~(255<this.__max&&(n=this.__max),void 0!==this.__step&&n%this.__step!=0&&(n=Math.round(n/this.__step)*this.__step),D(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"setValue",this).call(this,n)}},{key:"min",value:function(e){return this.__min=e,this}},{key:"max",value:function(e){return this.__max=e,this}},{key:"step",value:function(e){return this.__step=e,this.__impliedStep=e,this.__precision=r(e),this}}]),t}(),Q=function(e){function t(e,n,o){function i(){l.__onFinishChange&&l.__onFinishChange.call(l,l.getValue())}function r(e){var t=d-e.clientY;l.setValue(l.getValue()+t*l.__impliedStep),d=e.clientY}function s(){X.unbind(window,"mousemove",r),X.unbind(window,"mouseup",s),i()}F(this,t);var a=V(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,n,o));a.__truncationSuspended=!1;var l=a,d=void 0;return a.__input=document.createElement("input"),a.__input.setAttribute("type","text"),X.bind(a.__input,"change",function(){var e=parseFloat(l.__input.value);S.isNaN(e)||l.setValue(e)}),X.bind(a.__input,"blur",function(){i()}),X.bind(a.__input,"mousedown",function(e){X.bind(window,"mousemove",r),X.bind(window,"mouseup",s),d=e.clientY}),X.bind(a.__input,"keydown",function(e){13===e.keyCode&&(l.__truncationSuspended=!0,this.blur(),l.__truncationSuspended=!1,i())}),a.updateDisplay(),a.domElement.appendChild(a.__input),a}return j(t,W),P(t,[{key:"updateDisplay",value:function(){return this.__input.value=this.__truncationSuspended?this.getValue():s(this.getValue(),this.__precision),D(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"updateDisplay",this).call(this)}}]),t}(),q=function(e){function t(e,n,o,i,r){function s(e){e.preventDefault();var t=_.__background.getBoundingClientRect();return _.setValue(a(e.clientX,t.left,t.right,_.__min,_.__max)),!1}function l(){X.unbind(window,"mousemove",s),X.unbind(window,"mouseup",l),_.__onFinishChange&&_.__onFinishChange.call(_,_.getValue())}function d(e){var t=e.touches[0].clientX,n=_.__background.getBoundingClientRect();_.setValue(a(t,n.left,n.right,_.__min,_.__max))}function c(){X.unbind(window,"touchmove",d),X.unbind(window,"touchend",c),_.__onFinishChange&&_.__onFinishChange.call(_,_.getValue())}F(this,t);var u=V(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,n,{min:o,max:i,step:r})),_=u;return u.__background=document.createElement("div"),u.__foreground=document.createElement("div"),X.bind(u.__background,"mousedown",function(e){document.activeElement.blur(),X.bind(window,"mousemove",s),X.bind(window,"mouseup",l),s(e)}),X.bind(u.__background,"touchstart",function(e){1===e.touches.length&&(X.bind(window,"touchmove",d),X.bind(window,"touchend",c),d(e))}),X.addClass(u.__background,"slider"),X.addClass(u.__foreground,"slider-fg"),u.updateDisplay(),u.__background.appendChild(u.__foreground),u.domElement.appendChild(u.__background),u}return j(t,W),P(t,[{key:"updateDisplay",value:function(){var e=(this.getValue()-this.__min)/(this.__max-this.__min);return this.__foreground.style.width=100*e+"%",D(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"updateDisplay",this).call(this)}}]),t}(),Z=function(e){function t(e,n,o){F(this,t);var i=V(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,n)),r=i;return i.__button=document.createElement("div"),i.__button.innerHTML=void 0===o?"Fire":o,X.bind(i.__button,"click",function(e){return e.preventDefault(),r.fire(),!1}),X.addClass(i.__button,"button"),i.domElement.appendChild(i.__button),i}return j(t,z),P(t,[{key:"fire",value:function(){this.__onChange&&this.__onChange.call(this),this.getValue().call(this.object),this.__onFinishChange&&this.__onFinishChange.call(this,this.getValue())}}]),t}(),$=function(e){function t(e,n){function o(e){u(e),X.bind(window,"mousemove",u),X.bind(window,"touchmove",u),X.bind(window,"mouseup",r),X.bind(window,"touchend",r)}function i(e){_(e),X.bind(window,"mousemove",_),X.bind(window,"touchmove",_),X.bind(window,"mouseup",s),X.bind(window,"touchend",s)}function r(){X.unbind(window,"mousemove",u),X.unbind(window,"touchmove",u),X.unbind(window,"mouseup",r),X.unbind(window,"touchend",r),c()}function s(){X.unbind(window,"mousemove",_),X.unbind(window,"touchmove",_),X.unbind(window,"mouseup",s),X.unbind(window,"touchend",s),c()}function a(){var e=R(this.value);!1!==e?(p.__color.__state=e,p.setValue(p.__color.toOriginal())):this.value=p.__color.toString()}function c(){p.__onFinishChange&&p.__onFinishChange.call(p,p.__color.toOriginal())}function u(e){-1===e.type.indexOf("touch")&&e.preventDefault();var t=p.__saturation_field.getBoundingClientRect(),n=e.touches&&e.touches[0]||e,o=n.clientX,i=n.clientY,r=(o-t.left)/(t.right-t.left),s=1-(i-t.top)/(t.bottom-t.top);return s>1?s=1:s<0&&(s=0),r>1?r=1:r<0&&(r=0),p.__color.v=s,p.__color.s=r,p.setValue(p.__color.toOriginal()),!1}function _(e){-1===e.type.indexOf("touch")&&e.preventDefault();var t=p.__hue_field.getBoundingClientRect(),n=1-((e.touches&&e.touches[0]||e).clientY-t.top)/(t.bottom-t.top);return n>1?n=1:n<0&&(n=0),p.__color.h=360*n,p.setValue(p.__color.toOriginal()),!1}F(this,t);var h=V(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,n));h.__color=new I(h.getValue()),h.__temp=new I(0);var p=h;h.domElement=document.createElement("div"),X.makeSelectable(h.domElement,!1),h.__selector=document.createElement("div"),h.__selector.className="selector",h.__saturation_field=document.createElement("div"),h.__saturation_field.className="saturation-field",h.__field_knob=document.createElement("div"),h.__field_knob.className="field-knob",h.__field_knob_border="2px solid ",h.__hue_knob=document.createElement("div"),h.__hue_knob.className="hue-knob",h.__hue_field=document.createElement("div"),h.__hue_field.className="hue-field",h.__input=document.createElement("input"),h.__input.type="text",h.__input_textShadow="0 1px 1px ",X.bind(h.__input,"keydown",function(e){13===e.keyCode&&a.call(this)}),X.bind(h.__input,"blur",a),X.bind(h.__selector,"mousedown",function(){X.addClass(this,"drag").bind(window,"mouseup",function(){X.removeClass(p.__selector,"drag")})}),X.bind(h.__selector,"touchstart",function(){X.addClass(this,"drag").bind(window,"touchend",function(){X.removeClass(p.__selector,"drag")})});var f=document.createElement("div");return S.extend(h.__selector.style,{width:"122px",height:"102px",padding:"3px",backgroundColor:"#222",boxShadow:"0px 1px 3px rgba(0,0,0,0.3)"}),S.extend(h.__field_knob.style,{position:"absolute",width:"12px",height:"12px",border:h.__field_knob_border+(h.__color.v<.5?"#fff":"#000"),boxShadow:"0px 1px 3px rgba(0,0,0,0.5)",borderRadius:"12px",zIndex:1}),S.extend(h.__hue_knob.style,{position:"absolute",width:"15px",height:"2px",borderRight:"4px solid #fff",zIndex:1}),S.extend(h.__saturation_field.style,{width:"100px",height:"100px",border:"1px solid #555",marginRight:"3px",display:"inline-block",cursor:"pointer"}),S.extend(f.style,{width:"100%",height:"100%",background:"none"}),l(f,"top","rgba(0,0,0,0)","#000"),S.extend(h.__hue_field.style,{width:"15px",height:"100px",border:"1px solid #555",cursor:"ns-resize",position:"absolute",top:"3px",right:"3px"}),d(h.__hue_field),S.extend(h.__input.style,{outline:"none",textAlign:"center",color:"#fff",border:0,fontWeight:"bold",textShadow:h.__input_textShadow+"rgba(0,0,0,0.7)"}),X.bind(h.__saturation_field,"mousedown",o),X.bind(h.__saturation_field,"touchstart",o),X.bind(h.__field_knob,"mousedown",o),X.bind(h.__field_knob,"touchstart",o),X.bind(h.__hue_field,"mousedown",i),X.bind(h.__hue_field,"touchstart",i),h.__saturation_field.appendChild(f),h.__selector.appendChild(h.__field_knob),h.__selector.appendChild(h.__saturation_field),h.__selector.appendChild(h.__hue_field),h.__hue_field.appendChild(h.__hue_knob),h.domElement.appendChild(h.__input),h.domElement.appendChild(h.__selector),h.updateDisplay(),h}return j(t,z),P(t,[{key:"updateDisplay",value:function(){var e=R(this.getValue());if(!1!==e){var t=!1;S.each(I.COMPONENTS,function(n){if(!S.isUndefined(e[n])&&!S.isUndefined(this.__color.__state[n])&&e[n]!==this.__color.__state[n])return t=!0,{}},this),t&&S.extend(this.__color.__state,e)}S.extend(this.__temp.__state,this.__color.__state),this.__temp.a=1;var n=this.__color.v<.5||this.__color.s>.5?255:0,o=255-n;S.extend(this.__field_knob.style,{marginLeft:100*this.__color.s-7+"px",marginTop:100*(1-this.__color.v)-7+"px",backgroundColor:this.__temp.toHexString(),border:this.__field_knob_border+"rgb("+n+","+n+","+n+")"}),this.__hue_knob.style.marginTop=100*(1-this.__color.h/360)+"px",this.__temp.s=1,this.__temp.v=1,l(this.__saturation_field,"left","#fff",this.__temp.toHexString()),this.__input.value=this.__color.toString(),S.extend(this.__input.style,{backgroundColor:this.__color.toHexString(),color:"rgb("+n+","+n+","+n+")",textShadow:this.__input_textShadow+"rgba("+o+","+o+","+o+",.7)"})}}]),t}(),ee=["-moz-","-o-","-webkit-","-ms-",""],te={load:function(e,t){var n=t||document,o=n.createElement("link");o.type="text/css",o.rel="stylesheet",o.href=e,n.getElementsByTagName("head")[0].appendChild(o)},inject:function(e,t){var n=t||document,o=document.createElement("style");o.type="text/css",o.innerHTML=e;var i=n.getElementsByTagName("head")[0];try{i.appendChild(o)}catch(e){}}},ne=function(e,t){var n=e[t];return S.isArray(arguments[2])||S.isObject(arguments[2])?new Y(e,t,arguments[2]):S.isNumber(n)?S.isNumber(arguments[2])&&S.isNumber(arguments[3])?S.isNumber(arguments[4])?new q(e,t,arguments[2],arguments[3],arguments[4]):new q(e,t,arguments[2],arguments[3]):S.isNumber(arguments[4])?new Q(e,t,{min:arguments[2],max:arguments[3],step:arguments[4]}):new Q(e,t,{min:arguments[2],max:arguments[3]}):S.isString(n)?new J(e,t):S.isFunction(n)?new Z(e,t,""):S.isBoolean(n)?new K(e,t):null},oe=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e){setTimeout(e,1e3/60)},ie=function(){function e(){F(this,e),this.backgroundElement=document.createElement("div"),S.extend(this.backgroundElement.style,{backgroundColor:"rgba(0,0,0,0.8)",top:0,left:0,display:"none",zIndex:"1000",opacity:0,WebkitTransition:"opacity 0.2s linear",transition:"opacity 0.2s linear"}),X.makeFullscreen(this.backgroundElement),this.backgroundElement.style.position="fixed",this.domElement=document.createElement("div"),S.extend(this.domElement.style,{position:"fixed",display:"none",zIndex:"1001",opacity:0,WebkitTransition:"-webkit-transform 0.2s ease-out, opacity 0.2s linear",transition:"transform 0.2s ease-out, opacity 0.2s linear"}),document.body.appendChild(this.backgroundElement),document.body.appendChild(this.domElement);var t=this;X.bind(this.backgroundElement,"click",function(){t.hide()})}return P(e,[{key:"show",value:function(){var e=this;this.backgroundElement.style.display="block",this.domElement.style.display="block",this.domElement.style.opacity=0,this.domElement.style.webkitTransform="scale(1.1)",this.layout(),S.defer(function(){e.backgroundElement.style.opacity=1,e.domElement.style.opacity=1,e.domElement.style.webkitTransform="scale(1)"})}},{key:"hide",value:function(){var e=this,t=function t(){e.domElement.style.display="none",e.backgroundElement.style.display="none",X.unbind(e.domElement,"webkitTransitionEnd",t),X.unbind(e.domElement,"transitionend",t),X.unbind(e.domElement,"oTransitionEnd",t)};X.bind(this.domElement,"webkitTransitionEnd",t),X.bind(this.domElement,"transitionend",t),X.bind(this.domElement,"oTransitionEnd",t),this.backgroundElement.style.opacity=0,this.domElement.style.opacity=0,this.domElement.style.webkitTransform="scale(1.1)"}},{key:"layout",value:function(){this.domElement.style.left=window.innerWidth/2-X.getWidth(this.domElement)/2+"px",this.domElement.style.top=window.innerHeight/2-X.getHeight(this.domElement)/2+"px"}}]),e}(),re=function(e){if(e&&"undefined"!=typeof window){var t=document.createElement("style");return t.setAttribute("type","text/css"),t.innerHTML=e,document.head.appendChild(t),e}}(".dg ul{list-style:none;margin:0;padding:0;width:100%;clear:both}.dg.ac{position:fixed;top:0;left:0;right:0;height:0;z-index:0}.dg:not(.ac) .main{overflow:hidden}.dg.main{-webkit-transition:opacity .1s linear;-o-transition:opacity .1s linear;-moz-transition:opacity .1s linear;transition:opacity .1s linear}.dg.main.taller-than-window{overflow-y:auto}.dg.main.taller-than-window .close-button{opacity:1;margin-top:-1px;border-top:1px solid #2c2c2c}.dg.main ul.closed .close-button{opacity:1 !important}.dg.main:hover .close-button,.dg.main .close-button.drag{opacity:1}.dg.main .close-button{-webkit-transition:opacity .1s linear;-o-transition:opacity .1s linear;-moz-transition:opacity .1s linear;transition:opacity .1s linear;border:0;line-height:19px;height:20px;cursor:pointer;text-align:center;background-color:#000}.dg.main .close-button.close-top{position:relative}.dg.main .close-button.close-bottom{position:absolute}.dg.main .close-button:hover{background-color:#111}.dg.a{float:right;margin-right:15px;overflow-y:visible}.dg.a.has-save>ul.close-top{margin-top:0}.dg.a.has-save>ul.close-bottom{margin-top:27px}.dg.a.has-save>ul.closed{margin-top:0}.dg.a .save-row{top:0;z-index:1002}.dg.a .save-row.close-top{position:relative}.dg.a .save-row.close-bottom{position:fixed}.dg li{-webkit-transition:height .1s ease-out;-o-transition:height .1s ease-out;-moz-transition:height .1s ease-out;transition:height .1s ease-out;-webkit-transition:overflow .1s linear;-o-transition:overflow .1s linear;-moz-transition:overflow .1s linear;transition:overflow .1s linear}.dg li:not(.folder){cursor:auto;height:27px;line-height:27px;padding:0 4px 0 5px}.dg li.folder{padding:0;border-left:4px solid rgba(0,0,0,0)}.dg li.title{cursor:pointer;margin-left:-4px}.dg .closed li:not(.title),.dg .closed ul li,.dg .closed ul li>*{height:0;overflow:hidden;border:0}.dg .cr{clear:both;padding-left:3px;height:27px;overflow:hidden}.dg .property-name{cursor:default;float:left;clear:left;width:40%;overflow:hidden;text-overflow:ellipsis}.dg .c{float:left;width:60%;position:relative}.dg .c input[type=text]{border:0;margin-top:4px;padding:3px;width:100%;float:right}.dg .has-slider input[type=text]{width:30%;margin-left:0}.dg .slider{float:left;width:66%;margin-left:-5px;margin-right:0;height:19px;margin-top:4px}.dg .slider-fg{height:100%}.dg .c input[type=checkbox]{margin-top:7px}.dg .c select{margin-top:5px}.dg .cr.function,.dg .cr.function .property-name,.dg .cr.function *,.dg .cr.boolean,.dg .cr.boolean *{cursor:pointer}.dg .cr.color{overflow:visible}.dg .selector{display:none;position:absolute;margin-left:-9px;margin-top:23px;z-index:10}.dg .c:hover .selector,.dg .selector.drag{display:block}.dg li.save-row{padding:0}.dg li.save-row .button{display:inline-block;padding:0px 6px}.dg.dialogue{background-color:#222;width:460px;padding:15px;font-size:13px;line-height:15px}#dg-new-constructor{padding:10px;color:#222;font-family:Monaco, monospace;font-size:10px;border:0;resize:none;box-shadow:inset 1px 1px 1px #888;word-wrap:break-word;margin:12px 0;display:block;width:440px;overflow-y:scroll;height:100px;position:relative}#dg-local-explain{display:none;font-size:11px;line-height:17px;border-radius:3px;background-color:#333;padding:8px;margin-top:10px}#dg-local-explain code{font-size:10px}#dat-gui-save-locally{display:none}.dg{color:#eee;font:11px 'Lucida Grande', sans-serif;text-shadow:0 -1px 0 #111}.dg.main::-webkit-scrollbar{width:5px;background:#1a1a1a}.dg.main::-webkit-scrollbar-corner{height:0;display:none}.dg.main::-webkit-scrollbar-thumb{border-radius:5px;background:#676767}.dg li:not(.folder){background:#1a1a1a;border-bottom:1px solid #2c2c2c}.dg li.save-row{line-height:25px;background:#dad5cb;border:0}.dg li.save-row select{margin-left:5px;width:108px}.dg li.save-row .button{margin-left:5px;margin-top:1px;border-radius:2px;font-size:9px;line-height:7px;padding:4px 4px 5px 4px;background:#c5bdad;color:#fff;text-shadow:0 1px 0 #b0a58f;box-shadow:0 -1px 0 #b0a58f;cursor:pointer}.dg li.save-row .button.gears{background:#c5bdad url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAANCAYAAAB/9ZQ7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQJJREFUeNpiYKAU/P//PwGIC/ApCABiBSAW+I8AClAcgKxQ4T9hoMAEUrxx2QSGN6+egDX+/vWT4e7N82AMYoPAx/evwWoYoSYbACX2s7KxCxzcsezDh3evFoDEBYTEEqycggWAzA9AuUSQQgeYPa9fPv6/YWm/Acx5IPb7ty/fw+QZblw67vDs8R0YHyQhgObx+yAJkBqmG5dPPDh1aPOGR/eugW0G4vlIoTIfyFcA+QekhhHJhPdQxbiAIguMBTQZrPD7108M6roWYDFQiIAAv6Aow/1bFwXgis+f2LUAynwoIaNcz8XNx3Dl7MEJUDGQpx9gtQ8YCueB+D26OECAAQDadt7e46D42QAAAABJRU5ErkJggg==) 2px 1px no-repeat;height:7px;width:8px}.dg li.save-row .button:hover{background-color:#bab19e;box-shadow:0 -1px 0 #b0a58f}.dg li.folder{border-bottom:0}.dg li.title{padding-left:16px;background:#000 url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlI+hKgFxoCgAOw==) 6px 10px no-repeat;cursor:pointer;border-bottom:1px solid rgba(255,255,255,0.2)}.dg .closed li.title{background-image:url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlGIWqMCbWAEAOw==)}.dg .cr.boolean{border-left:3px solid #806787}.dg .cr.color{border-left:3px solid}.dg .cr.function{border-left:3px solid #e61d5f}.dg .cr.number{border-left:3px solid #2FA1D6}.dg .cr.number input[type=text]{color:#2FA1D6}.dg .cr.string{border-left:3px solid #1ed36f}.dg .cr.string input[type=text]{color:#1ed36f}.dg .cr.function:hover,.dg .cr.boolean:hover{background:#111}.dg .c input[type=text]{background:#303030;outline:none}.dg .c input[type=text]:hover{background:#3c3c3c}.dg .c input[type=text]:focus{background:#494949;color:#fff}.dg .c .slider{background:#303030;cursor:ew-resize}.dg .c .slider-fg{background:#2FA1D6;max-width:100%}.dg .c .slider:hover{background:#3c3c3c}.dg .c .slider:hover .slider-fg{background:#44abda}\n");te.inject(re);var se="Default",ae=function(){try{return!!window.localStorage}catch(e){return!1}}(),le=void 0,de=!0,ce=void 0,ue=!1,_e=[],he=function e(t){var n=this,o=t||{};this.domElement=document.createElement("div"),this.__ul=document.createElement("ul"),this.domElement.appendChild(this.__ul),X.addClass(this.domElement,"dg"),this.__folders={},this.__controllers=[],this.__rememberedObjects=[],this.__rememberedObjectIndecesToControllers=[],this.__listening=[],o=S.defaults(o,{closeOnTop:!1,autoPlace:!0,width:e.DEFAULT_WIDTH}),o=S.defaults(o,{resizable:o.autoPlace,hideable:o.autoPlace}),S.isUndefined(o.load)?o.load={preset:se}:o.preset&&(o.load.preset=o.preset),S.isUndefined(o.parent)&&o.hideable&&_e.push(this),o.resizable=S.isUndefined(o.parent)&&o.resizable,o.autoPlace&&S.isUndefined(o.scrollable)&&(o.scrollable=!0);var i=ae&&"true"===localStorage.getItem(m(this,"isLocal")),r=void 0,s=void 0;if(Object.defineProperties(this,{parent:{get:function(){return o.parent}},scrollable:{get:function(){return o.scrollable}},autoPlace:{get:function(){return o.autoPlace}},closeOnTop:{get:function(){return o.closeOnTop}},preset:{get:function(){return n.parent?n.getRoot().preset:o.load.preset},set:function(e){n.parent?n.getRoot().preset=e:o.load.preset=e,E(this),n.revert()}},width:{get:function(){return o.width},set:function(e){o.width=e,w(n,e)}},name:{get:function(){return o.name},set:function(e){o.name=e,s&&(s.innerHTML=o.name)}},closed:{get:function(){return o.closed},set:function(t){o.closed=t,o.closed?X.addClass(n.__ul,e.CLASS_CLOSED):X.removeClass(n.__ul,e.CLASS_CLOSED),this.onResize(),n.__closeButton&&(n.__closeButton.innerHTML=t?e.TEXT_OPEN:e.TEXT_CLOSED)}},load:{get:function(){return o.load}},useLocalStorage:{get:function(){return i},set:function(e){ae&&(i=e,e?X.bind(window,"unload",r):X.unbind(window,"unload",r),localStorage.setItem(m(n,"isLocal"),e))}}}),S.isUndefined(o.parent)){if(this.closed=o.closed||!1,X.addClass(this.domElement,e.CLASS_MAIN),X.makeSelectable(this.domElement,!1),ae&&i){n.useLocalStorage=!0;var a=localStorage.getItem(m(this,"gui"));a&&(o.load=JSON.parse(a))}this.__closeButton=document.createElement("div"),this.__closeButton.innerHTML=e.TEXT_CLOSED,X.addClass(this.__closeButton,e.CLASS_CLOSE_BUTTON),o.closeOnTop?(X.addClass(this.__closeButton,e.CLASS_CLOSE_TOP),this.domElement.insertBefore(this.__closeButton,this.domElement.childNodes[0])):(X.addClass(this.__closeButton,e.CLASS_CLOSE_BOTTOM),this.domElement.appendChild(this.__closeButton)),X.bind(this.__closeButton,"click",function(){n.closed=!n.closed})}else{void 0===o.closed&&(o.closed=!0);var l=document.createTextNode(o.name);X.addClass(l,"controller-name"),s=c(n,l);X.addClass(this.__ul,e.CLASS_CLOSED),X.addClass(s,"title"),X.bind(s,"click",function(e){return e.preventDefault(),n.closed=!n.closed,!1}),o.closed||(this.closed=!1)}o.autoPlace&&(S.isUndefined(o.parent)&&(de&&(ce=document.createElement("div"),X.addClass(ce,"dg"),X.addClass(ce,e.CLASS_AUTO_PLACE_CONTAINER),document.body.appendChild(ce),de=!1),ce.appendChild(this.domElement),X.addClass(this.domElement,e.CLASS_AUTO_PLACE)),this.parent||w(n,o.width)),this.__resizeHandler=function(){n.onResizeDebounced()},X.bind(window,"resize",this.__resizeHandler),X.bind(this.__ul,"webkitTransitionEnd",this.__resizeHandler),X.bind(this.__ul,"transitionend",this.__resizeHandler),X.bind(this.__ul,"oTransitionEnd",this.__resizeHandler),this.onResize(),o.resizable&&y(this),r=function(){ae&&"true"===localStorage.getItem(m(n,"isLocal"))&&localStorage.setItem(m(n,"gui"),JSON.stringify(n.getSaveObject()))},this.saveToLocalStorageIfPossible=r,o.parent||function(){var e=n.getRoot();e.width+=1,S.defer(function(){e.width-=1})}()};he.toggleHide=function(){ue=!ue,S.each(_e,function(e){e.domElement.style.display=ue?"none":""})},he.CLASS_AUTO_PLACE="a",he.CLASS_AUTO_PLACE_CONTAINER="ac",he.CLASS_MAIN="main",he.CLASS_CONTROLLER_ROW="cr",he.CLASS_TOO_TALL="taller-than-window",he.CLASS_CLOSED="closed",he.CLASS_CLOSE_BUTTON="close-button",he.CLASS_CLOSE_TOP="close-top",he.CLASS_CLOSE_BOTTOM="close-bottom",he.CLASS_DRAG="drag",he.DEFAULT_WIDTH=245,he.TEXT_CLOSED="Close Controls",he.TEXT_OPEN="Open Controls",he._keydownHandler=function(e){"text"===document.activeElement.type||72!==e.which&&72!==e.keyCode||he.toggleHide()},X.bind(window,"keydown",he._keydownHandler,!1),S.extend(he.prototype,{add:function(e,t){return f(this,e,t,{factoryArgs:Array.prototype.slice.call(arguments,2)})},addColor:function(e,t){return f(this,e,t,{color:!0})},remove:function(e){this.__ul.removeChild(e.__li),this.__controllers.splice(this.__controllers.indexOf(e),1);var t=this;S.defer(function(){t.onResize()})},destroy:function(){if(this.parent)throw new Error("Only the root GUI should be removed with .destroy(). For subfolders, use gui.removeFolder(folder) instead.");this.autoPlace&&ce.removeChild(this.domElement);var e=this;S.each(this.__folders,function(t){e.removeFolder(t)}),X.unbind(window,"keydown",he._keydownHandler,!1),u(this)},addFolder:function(e){if(void 0!==this.__folders[e])throw new Error('You already have a folder in this GUI by the name "'+e+'"');var t={name:e,parent:this};t.autoPlace=this.autoPlace,this.load&&this.load.folders&&this.load.folders[e]&&(t.closed=this.load.folders[e].closed,t.load=this.load.folders[e]);var n=new he(t);this.__folders[e]=n;var o=c(this,n.domElement);return X.addClass(o,"folder"),n},removeFolder:function(e){this.__ul.removeChild(e.domElement.parentElement),delete this.__folders[e.name],this.load&&this.load.folders&&this.load.folders[e.name]&&delete this.load.folders[e.name],u(e);var t=this;S.each(e.__folders,function(t){e.removeFolder(t)}),S.defer(function(){t.onResize()})},open:function(){this.closed=!1},close:function(){this.closed=!0},hide:function(){this.domElement.style.display="none"},show:function(){this.domElement.style.display=""},onResize:function(){var e=this.getRoot();if(e.scrollable){var t=X.getOffset(e.__ul).top,n=0;S.each(e.__ul.childNodes,function(t){e.autoPlace&&t===e.__save_row||(n+=X.getHeight(t))}),window.innerHeight-t-20GUI\'s constructor:\n\n \n\n

\n\n'),this.parent)throw new Error("You can only call remember on a top level GUI.");var e=this;S.each(Array.prototype.slice.call(arguments),function(t){0===e.__rememberedObjects.length&&v(e),-1===e.__rememberedObjects.indexOf(t)&&e.__rememberedObjects.push(t)}),this.autoPlace&&w(this,this.width)},getRoot:function(){for(var e=this;e.parent;)e=e.parent;return e},getSaveObject:function(){var e=this.load;return e.closed=this.closed,this.__rememberedObjects.length>0&&(e.preset=this.preset,e.remembered||(e.remembered={}),e.remembered[this.preset]=x(this)),e.folders={},S.each(this.__folders,function(t,n){e.folders[n]=t.getSaveObject()}),e},save:function(){this.load.remembered||(this.load.remembered={}),this.load.remembered[this.preset]=x(this),_(this,!1),this.saveToLocalStorageIfPossible()},saveAs:function(e){this.load.remembered||(this.load.remembered={},this.load.remembered[se]=x(this,!0)),this.load.remembered[e]=x(this),this.preset=e,g(this,e,!0),this.saveToLocalStorageIfPossible()},revert:function(e){S.each(this.__controllers,function(t){this.getRoot().load.remembered?p(e||this.getRoot(),t):t.setValue(t.initialValue),t.__onFinishChange&&t.__onFinishChange.call(t,t.getValue())},this),S.each(this.__folders,function(e){e.revert(e)}),e||_(this.getRoot(),!1)},listen:function(e){var t=0===this.__listening.length;this.__listening.push(e),t&&C(this.__listening)},updateDisplay:function(){S.each(this.__controllers,function(e){e.updateDisplay()}),S.each(this.__folders,function(e){e.updateDisplay()})}});var pe={Color:I,math:N,interpret:R},fe={Controller:z,BooleanController:K,OptionController:Y,StringController:J,NumberController:W,NumberControllerBox:Q,NumberControllerSlider:q,FunctionController:Z,ColorController:$},me={dom:X},ge={GUI:he},be=he,ve={color:pe,controllers:fe,dom:me,gui:ge,GUI:be};e.color=pe,e.controllers=fe,e.dom=me,e.gui=ge,e.GUI=be,e.default=ve,Object.defineProperty(e,"__esModule",{value:!0})}); \ No newline at end of file diff --git a/remote/remote.html b/remote/remote.html index 0e75cc0..975de0d 100644 --- a/remote/remote.html +++ b/remote/remote.html @@ -11,15 +11,51 @@ +