From d28d98ea4b8940a96dce0fbd5a2b582b8af75527 Mon Sep 17 00:00:00 2001 From: jiannibang <271381693@qq.com> Date: Thu, 30 Mar 2023 16:33:38 +0800 Subject: [PATCH] feat: init --- .DS_Store | Bin 0 -> 8196 bytes .gitignore | 2 + .vscode/settings.json | 3 + app.js | 50 + app.json | 22 + app.wxss | 16 + data-helper.js | 357 ++ getMapData.js | 164 + images/2dmap.jpg | Bin 0 -> 53140 bytes images/location.png | Bin 0 -> 1129 bytes loader/gltfLoader.js | 3498 +++++++++++++++++ miniprogram_npm/dijkstrajs/index.js | 178 + miniprogram_npm/dijkstrajs/index.js.map | 1 + miniprogram_npm/lottie-miniprogram/index.d.ts | 50 + miniprogram_npm/lottie-miniprogram/index.js | 9 + miniprogram_npm/threejs-miniprogram/index.js | 3 + package.json | 35 + pages/.DS_Store | Bin 0 -> 6148 bytes pages/agreement/index.js | 84 + pages/agreement/index.json | 6 + pages/agreement/index.wxml | 21 + pages/agreement/index.wxss | 91 + pages/agreement/logo.png | Bin 0 -> 2911 bytes pages/destination/close.png | Bin 0 -> 596 bytes pages/destination/destination.js | 23 + pages/destination/destination.json | 4 + pages/destination/destination.wxml | 10 + pages/destination/destination.wxss | 70 + pages/detail/index.js | 51 + pages/detail/index.json | 3 + pages/detail/index.wxml | 2 + pages/detail/index.wxss | 1 + pages/gesture/gesture.js | 17 + pages/gesture/gesture.json | 5 + pages/gesture/gesture.wxml | 12 + pages/gesture/gesture.wxs | 263 ++ pages/h5map/index.js | 120 + pages/h5map/index.json | 3 + pages/h5map/index.wxml | 2 + pages/h5map/index.wxss | 1 + pages/h5map/share1.png | Bin 0 -> 34747 bytes pages/h5map/share2.png | Bin 0 -> 34399 bytes pages/index/.DS_Store | Bin 0 -> 6148 bytes pages/index/VPASSDK-1.2.4.js | 1 + pages/index/close.png | Bin 0 -> 596 bytes pages/index/elevator-down.png | Bin 0 -> 6058 bytes pages/index/elevator-up.png | Bin 0 -> 7502 bytes pages/index/end.png | Bin 0 -> 22192 bytes pages/index/escalator-down.png | Bin 0 -> 7859 bytes pages/index/escalator-up.png | Bin 0 -> 7857 bytes pages/index/flashoff.png | Bin 0 -> 2528 bytes pages/index/flashon.png | Bin 0 -> 2405 bytes pages/index/floor-bg.png | Bin 0 -> 130125 bytes pages/index/index-helper.js | 112 + pages/index/index.js | 752 ++++ pages/index/index.json | 10 + pages/index/index.wxml | 70 + pages/index/index.wxss | 406 ++ pages/index/left.png | Bin 0 -> 8550 bytes pages/index/leftyaw.png | Bin 0 -> 12924 bytes pages/index/loc.png | Bin 0 -> 977 bytes pages/index/logo.png | Bin 0 -> 975 bytes pages/index/mask.png | Bin 0 -> 3382 bytes pages/index/right.png | Bin 0 -> 8466 bytes pages/index/rightyaw.png | Bin 0 -> 12903 bytes pages/index/scanning-tip.png | Bin 0 -> 31309 bytes pages/index/share.png | Bin 0 -> 2578 bytes pages/index/straight.png | Bin 0 -> 3096 bytes pages/index/success.png | Bin 0 -> 7146 bytes pages/index/tomap.png | Bin 0 -> 3982 bytes pages/login/back.svg | 4 + pages/login/checkbox.svg | 4 + pages/login/emptycheckbox.svg | 3 + pages/login/index.js | 57 + pages/login/index.json | 3 + pages/login/index.wxml | 10 + pages/login/index.wxss | 75 + pages/login/logo.png | Bin 0 -> 1462 bytes pages/map2d/L1.png | Bin 0 -> 236043 bytes pages/map2d/L2.png | Bin 0 -> 205743 bytes pages/map2d/MAPAPP.js | 454 +++ pages/map2d/arrow.png | Bin 0 -> 1390 bytes pages/map2d/close.png | Bin 0 -> 596 bytes pages/map2d/end.png | Bin 0 -> 3404 bytes pages/map2d/events.js | 64 + pages/map2d/map2d.js | 112 + pages/map2d/map2d.json | 6 + pages/map2d/map2d.wxml | 6 + pages/map2d/map2d.wxss | 35 + pages/map2d/start.png | Bin 0 -> 2860 bytes pages/map2d/util.js | 31 + pages/nav/bubble.png | Bin 0 -> 865 bytes pages/nav/close.png | Bin 0 -> 596 bytes pages/nav/nav.js | 14 + pages/nav/nav.json | 4 + pages/nav/nav.wxml | 6 + pages/nav/nav.wxss | 123 + pages/privacy/index.js | 66 + pages/privacy/index.json | 3 + pages/privacy/index.wxml | 2 + pages/privacy/index.wxss | 4 + pages/prompt/back.png | Bin 0 -> 411 bytes pages/prompt/bluetooth.png | Bin 0 -> 5862 bytes pages/prompt/elevator.png | Bin 0 -> 4332 bytes pages/prompt/end.png | Bin 0 -> 7397 bytes pages/prompt/escalator.png | Bin 0 -> 4578 bytes pages/prompt/info.png | Bin 0 -> 7380 bytes pages/prompt/mall.png | Bin 0 -> 3695 bytes pages/prompt/park.png | Bin 0 -> 3634 bytes pages/prompt/prompt.js | 35 + pages/prompt/prompt.json | 4 + pages/prompt/prompt.wxml | 17 + pages/prompt/prompt.wxss | 136 + pages/prompt/question.png | Bin 0 -> 8308 bytes pages/prompt/tomap.png | Bin 0 -> 2729 bytes pages/scan/scan.js | 40 + pages/scan/scan.json | 4 + pages/scan/scan.wxml | 9 + pages/scan/scan.wxss | 50 + pages/tabs/relocate.png | Bin 0 -> 3695 bytes pages/tabs/tabs.js | 56 + pages/tabs/tabs.json | 4 + pages/tabs/tabs.wxml | 16 + pages/tabs/tabs.wxss | 161 + pages/tabs/tomap.png | Bin 0 -> 2708 bytes pages/tabs/warning.png | Bin 0 -> 3699 bytes project.config.json | 71 + project.private.config.json | 28 + sitemap.json | 7 + utils/util.js | 25 + wasm/bdar_vpas.wasm | Bin 0 -> 8141 bytes wasm/module_basic.wasm | Bin 0 -> 53300 bytes 132 files changed, 8277 insertions(+) create mode 100644 .DS_Store create mode 100644 .gitignore create mode 100644 .vscode/settings.json create mode 100644 app.js create mode 100644 app.json create mode 100644 app.wxss create mode 100644 data-helper.js create mode 100644 getMapData.js create mode 100644 images/2dmap.jpg create mode 100644 images/location.png create mode 100644 loader/gltfLoader.js create mode 100644 miniprogram_npm/dijkstrajs/index.js create mode 100644 miniprogram_npm/dijkstrajs/index.js.map create mode 100644 miniprogram_npm/lottie-miniprogram/index.d.ts create mode 100644 miniprogram_npm/lottie-miniprogram/index.js create mode 100644 miniprogram_npm/threejs-miniprogram/index.js create mode 100644 package.json create mode 100644 pages/.DS_Store create mode 100644 pages/agreement/index.js create mode 100644 pages/agreement/index.json create mode 100644 pages/agreement/index.wxml create mode 100644 pages/agreement/index.wxss create mode 100644 pages/agreement/logo.png create mode 100644 pages/destination/close.png create mode 100644 pages/destination/destination.js create mode 100644 pages/destination/destination.json create mode 100644 pages/destination/destination.wxml create mode 100644 pages/destination/destination.wxss create mode 100644 pages/detail/index.js create mode 100644 pages/detail/index.json create mode 100644 pages/detail/index.wxml create mode 100644 pages/detail/index.wxss create mode 100644 pages/gesture/gesture.js create mode 100644 pages/gesture/gesture.json create mode 100644 pages/gesture/gesture.wxml create mode 100644 pages/gesture/gesture.wxs create mode 100644 pages/h5map/index.js create mode 100644 pages/h5map/index.json create mode 100644 pages/h5map/index.wxml create mode 100644 pages/h5map/index.wxss create mode 100644 pages/h5map/share1.png create mode 100644 pages/h5map/share2.png create mode 100644 pages/index/.DS_Store create mode 100644 pages/index/VPASSDK-1.2.4.js create mode 100644 pages/index/close.png create mode 100644 pages/index/elevator-down.png create mode 100644 pages/index/elevator-up.png create mode 100644 pages/index/end.png create mode 100644 pages/index/escalator-down.png create mode 100644 pages/index/escalator-up.png create mode 100644 pages/index/flashoff.png create mode 100644 pages/index/flashon.png create mode 100644 pages/index/floor-bg.png create mode 100644 pages/index/index-helper.js create mode 100644 pages/index/index.js create mode 100644 pages/index/index.json create mode 100644 pages/index/index.wxml create mode 100644 pages/index/index.wxss create mode 100644 pages/index/left.png create mode 100644 pages/index/leftyaw.png create mode 100644 pages/index/loc.png create mode 100644 pages/index/logo.png create mode 100644 pages/index/mask.png create mode 100644 pages/index/right.png create mode 100644 pages/index/rightyaw.png create mode 100644 pages/index/scanning-tip.png create mode 100644 pages/index/share.png create mode 100644 pages/index/straight.png create mode 100644 pages/index/success.png create mode 100644 pages/index/tomap.png create mode 100644 pages/login/back.svg create mode 100644 pages/login/checkbox.svg create mode 100644 pages/login/emptycheckbox.svg create mode 100644 pages/login/index.js create mode 100644 pages/login/index.json create mode 100644 pages/login/index.wxml create mode 100644 pages/login/index.wxss create mode 100644 pages/login/logo.png create mode 100644 pages/map2d/L1.png create mode 100644 pages/map2d/L2.png create mode 100644 pages/map2d/MAPAPP.js create mode 100644 pages/map2d/arrow.png create mode 100644 pages/map2d/close.png create mode 100644 pages/map2d/end.png create mode 100644 pages/map2d/events.js create mode 100644 pages/map2d/map2d.js create mode 100644 pages/map2d/map2d.json create mode 100644 pages/map2d/map2d.wxml create mode 100644 pages/map2d/map2d.wxss create mode 100644 pages/map2d/start.png create mode 100644 pages/map2d/util.js create mode 100644 pages/nav/bubble.png create mode 100644 pages/nav/close.png create mode 100644 pages/nav/nav.js create mode 100644 pages/nav/nav.json create mode 100644 pages/nav/nav.wxml create mode 100644 pages/nav/nav.wxss create mode 100644 pages/privacy/index.js create mode 100644 pages/privacy/index.json create mode 100644 pages/privacy/index.wxml create mode 100644 pages/privacy/index.wxss create mode 100644 pages/prompt/back.png create mode 100644 pages/prompt/bluetooth.png create mode 100644 pages/prompt/elevator.png create mode 100644 pages/prompt/end.png create mode 100644 pages/prompt/escalator.png create mode 100644 pages/prompt/info.png create mode 100644 pages/prompt/mall.png create mode 100644 pages/prompt/park.png create mode 100644 pages/prompt/prompt.js create mode 100644 pages/prompt/prompt.json create mode 100644 pages/prompt/prompt.wxml create mode 100644 pages/prompt/prompt.wxss create mode 100644 pages/prompt/question.png create mode 100644 pages/prompt/tomap.png create mode 100644 pages/scan/scan.js create mode 100644 pages/scan/scan.json create mode 100644 pages/scan/scan.wxml create mode 100644 pages/scan/scan.wxss create mode 100644 pages/tabs/relocate.png create mode 100644 pages/tabs/tabs.js create mode 100644 pages/tabs/tabs.json create mode 100644 pages/tabs/tabs.wxml create mode 100644 pages/tabs/tabs.wxss create mode 100644 pages/tabs/tomap.png create mode 100644 pages/tabs/warning.png create mode 100644 project.config.json create mode 100644 project.private.config.json create mode 100644 sitemap.json create mode 100644 utils/util.js create mode 100644 wasm/bdar_vpas.wasm create mode 100644 wasm/module_basic.wasm diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..8edf28114c5ce8b0df23b2f0da916b291f037680 GIT binary patch literal 8196 zcmeHM-EPw`6h7YCk(Qwq0qQPugTzHatpp5&kg75+c86317l69-hb~*2R82|;rKmT& z!*~SVgg4+pcmVj0ZK5=3xT8YFuI%I3=Zlx`v*R3(h(u%3tr6`Lk%i2*bQ#5p#QmI8 zX-l`0<;+`sc5E?3Uh#?dl{WiP9*0o(I ztKcLQoP-`(=m(E~&Cm%aLBkop;;Uy)c+%GO=e|FP>Q4KG+ncsZ*Pr-a=(t{QEWvKK z2bb3`U9am;8~()W2J${l)nQo$tI#TyXS2Jtid}nne_pX?2M5)PeeXeSJ}+41o3+PB z$HVs@W*_IDF7P}^Lch{zPhCgl7u1&cc-I_z1K;a2NcIh&fJ0qyHD1<1{6K$Pw>_}x zl7~E^F;IP!4%%918_{qXEmgmWseTnc4t3~ED|4H8WWJVjCOr?NuJJqUChm}hV~yju zyu_`V4g7=|o*OzBVq7F9oB^2LhpW-My#^1Vk+-qeY!yR>;oMM9$-O|g1{RclS0$5e>?Hk6_0`4aqKIh(Xr z2Da5``yBs2%|8EM>)&JsGYl98*2{p%9X1ae81wgsXmWUtwQb~MWKQh2P*y@v$Z#B1 xhU2i&KMYZ~;mVl0whLv^g0%L7fWP~_9{Uzb>~GP&m;Tl^`@ftDrdT5bzW|OaG35XN literal 0 HcmV?d00001 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5726835 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/node_modules +./package-lock.json \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..cac0e10 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "editor.formatOnSave": true +} \ No newline at end of file diff --git a/app.js b/app.js new file mode 100644 index 0000000..920834c --- /dev/null +++ b/app.js @@ -0,0 +1,50 @@ +import { getMapData,post, code } from "./getMapData"; + + + +const floors = [ + { + name: "L1", + floorOrder: 0, + url: null, + floorId: "0", + isPark: false, + }, + { + name: "L2", + floorOrder: 1, + url: true, + floorId: "F2", + isPark: false, + }, +]; +App({ + async onLaunch() { + // 展示本地存储能力 + getMapData(); + const { code } = await new Promise((resolve, reject) => { + wx.login({ + success: resolve, + fail: reject, + }); + }); + const { data } = await post("/api/ar/v1/applet/MemberLogin", { + code, + }); + this.globalData.openid = data.openid; + this.globalData.memberID = data.memberID; + this.globalData.isShopMember = data.isShopMember; + this.openidCbs.forEach((cb) => cb(data.openid)); + }, + onOpenid(cb) { + this.openidCbs.push(cb); + }, + openidCbs: [], + globalData: { + floors, + floorIdFloorOrderMap: floors.reduce( + (acc, nxt) => ({ ...acc, [nxt.floorId]: nxt.floorOrder }), + {} + ), + }, +}); diff --git a/app.json b/app.json new file mode 100644 index 0000000..fc91782 --- /dev/null +++ b/app.json @@ -0,0 +1,22 @@ +{ + "pages": [ + "pages/h5map/index", + "pages/index/index", + "pages/login/index", + "pages/privacy/index", + "pages/detail/index" + ], + "window": { + "navigationStyle": "custom", + "navigationBarBackgroundColor": "#F0F0F0", + "navigationBarTitleText": "", + "navigationBarTextStyle": "black" + }, + "style": "v2", + "sitemapLocation": "sitemap.json", + "permission": { + "scope.userLocation": { + "desc": "你的位置信息将用于小程序位置接口的效果展示" + } + } +} diff --git a/app.wxss b/app.wxss new file mode 100644 index 0000000..e2c30fa --- /dev/null +++ b/app.wxss @@ -0,0 +1,16 @@ +/**app.wxss**/ +.container { + height: 100%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-between; + padding: 200rpx 0; + box-sizing: border-box; +} + +view, +input, +scroll-view { + box-sizing: border-box; +} diff --git a/data-helper.js b/data-helper.js new file mode 100644 index 0000000..3044f5a --- /dev/null +++ b/data-helper.js @@ -0,0 +1,357 @@ +const FacilityCodeMap = { + ft: 0, + upft: 0, + downft: 0, + mys: 3, + xsj: 4, + fwt: 7, + dt: 5, + lt: 88, + dit: 89, + cjr: 10, + tcc: 8, + xsjn: 12, + xsjv: 13, + xxt: 14, + tczl: 8, + fcjcg: 7, + door: 39, + czc: 500, + vip: 34, + pq: 40, + ksgj: 30, + xcgc: 57, + tthy: 58, + bc: 26, + etxsj: 69, +}; + +export const attachGraphSingle = ({ graph, key, value }) => { + graph[key] = { + ...graph[key], + ...value, + }; +}; +export const attachGraph = ({ + graph, + leftKey, + rightKey, + leftValue, + rightValue, +}) => { + graph[leftKey] = { + ...graph[leftKey], + ...leftValue, + }; + graph[rightKey] = { + ...graph[rightKey], + ...rightValue, + }; +}; + +export const getDataNew = async (map) => { + const { + mall: { shopInfo, mapData }, + } = map; + return { + serverShopInfo: shopInfo, + mapData, + }; +}; + +export const handleData = ( + shopInfo, + mapData, + ftData, + excludeNodes, + extraCosts, + portals, + mall, + facilityTypeMap, + facilityCodeMap +) => { + Object.assign(FacilityCodeMap, facilityCodeMap); + const { floors } = mall; + let shopMap = {}; + let shopNavSet = new Set(); + const parkingSpaceByFloor = []; + const excludeSet = excludeNodes + ? excludeNodes.reduce((acc, nxt) => { + acc.add(nxt); + return acc; + }, new Set()) + : new Set(); + shopInfo.forEach(({ shopList }, floorOrder) => { + shopList.forEach((shop) => { + shopMap[shop.houseNum] = shop; + shopNavSet.add(floorOrder + "_" + shop.yaxis); + }); + }); + const noUpMap = {}; + const noDownMap = {}; + const list = mapData.buildArr + .map(({ mapData }) => mapData) + .map(({ icons, path, stairs, shopArea, floorArea, parkArea }, i) => { + const nodes = path ? path.nodes : []; + let points = []; + let routes = []; + let height = Number(floorArea ? floorArea.toHeight : 0); + nodes.forEach(({ id, list, x, y }) => { + points[id] = { + name: id, + position: [x, height + 0.1, y], + }; + list.forEach((node) => { + const needIncrease = extraCosts[`${i}_${id}_${node.id}`]; + routes.push({ + src: id, + des: node.id, + cost: needIncrease ? 1000 : node.cost, + }); + }); + }); + let facilities = []; + icons.forEach(({ navCode, facCode, Type }) => { + if (points[Number(navCode)]) + facilities.push({ + Escalator: 0, + NavPoint: Number(navCode), + Type: FacilityCodeMap[facCode], + Images: facCode, + point: points[Number(navCode)].position, + }); + }); + stairs.forEach(({ navCode, facCode, no, downState, upState }) => { + if (points[Number(navCode)]) { + const NavPoint = Number(navCode); + const key = `${i}_${NavPoint}`; + const value = ftData[key]; + if (downState) noDownMap[key] = true; + if (upState) noUpMap[key] = true; + facilities.push({ + Escalator: Number(no), + NavPoint: NavPoint, + Type: FacilityCodeMap[facCode], + Images: facCode, + point: points[Number(navCode)].position, + entrances: value ? Object.keys(value) : [], + }); + } + }); + shopArea.forEach(({ name, shopNav, xaxis, yaxis }) => { + if (shopMap[name]) { + shopMap[name].yaxis = shopNav; + shopMap[name].xaxis = [xaxis, height, yaxis]; + } + }); + parkingSpaceByFloor[i] = parkArea; + return { + facilities, + points, + routes, + }; + }); + + const facilities = list.map(({ facilities }) => facilities); + facilities.forEach((facilitiesOnSameFloor, floorOrder) => { + facilitiesOnSameFloor.forEach((facility) => { + facility.floorOrder = floorOrder; + }); + }); + + const flatFacilities = facilities.reduce((acc, nxt) => acc.concat(nxt), []); + flatFacilities.forEach((fac) => { + fac.isFac = true; + fac.floorName = floors[fac.floorOrder][1]; + fac.name = fac.floorName + facilityTypeMap[fac.Type]; + fac.xaxis = fac.point; + fac.yaxis = Number(fac.NavPoint); + fac.id = `${fac.floorOrder}_${fac.Type}_${fac.NavPoint}`; + }); + + const facilityLiftMap = flatFacilities.reduce( + (acc, nxt) => + !(nxt.Type === 0 || nxt.Type === 5) + ? acc + : { + ...acc, + [`${nxt.floorOrder}_${nxt.NavPoint}`]: nxt, + }, + {} + ); + const facilityMap = flatFacilities.reduce( + (acc, nxt) => ({ + ...acc, + [nxt.id]: nxt, + }), + {} + ); + const routes = list.map(({ routes }) => routes); + const points = list.map(({ points }) => points); + const graph = {}; + routes.forEach((route, floorOrder) => { + route.forEach(({ src, des, cost }) => { + const srcId = floorOrder + "_" + src; + const desId = floorOrder + "_" + des; + if (excludeSet.has(srcId) || excludeSet.has(desId)) return; + graph[srcId] = { + ...graph[srcId], + [desId]: cost, + }; + graph[desId] = { + ...graph[desId], + [srcId]: cost, + }; + }); + }); + const graphDt = JSON.parse(JSON.stringify(graph)); + const graphFt = JSON.parse(JSON.stringify(graph)); + let escalatorMap = flatFacilities.reduce( + (acc, { NavPoint, Escalator, Type, floorOrder }) => { + if (NavPoint !== undefined && (Type === 0 || Type === 5)) { + if (acc[`${Type}_${Escalator}`]) + acc[`${Type}_${Escalator}`].push({ + NavPoint, + floorOrder, + Type, + }); + else + acc[`${Type}_${Escalator}`] = [ + { + NavPoint, + floorOrder, + Type, + }, + ]; + acc[`${Type}_${Escalator}`].isEscalator = Type === 0; + } + return acc; + }, + {} + ); + + Object.values(ftData).forEach((value) => { + Object.entries(value).forEach(([key, dsts]) => { + dsts.forEach((dst) => { + const value = { + [dst]: 6000, + }; + attachGraphSingle({ + graph, + key, + value, + }); + attachGraphSingle({ + graph: graphFt, + key, + value, + }); + }); + }); + }); + Object.values(escalatorMap).forEach((list) => { + for (let i = 0; i < list.length - 1; i++) { + for (let j = i + 1; j < list.length; j++) { + const { floorOrder: floorOrderI, NavPoint: src } = list[i]; + const { floorOrder: floorOrderJ, NavPoint: des } = list[j]; + const leftKey = floorOrderI + "_" + src; + const rightKey = floorOrderJ + "_" + des; + const floorDiff = Math.abs(floorOrderI - floorOrderJ); + const isUp = Number(floorOrderJ) > Number(floorOrderI); + if (ftData[leftKey]) return; + if (ftData[rightKey]) return; + const leftValue = { + [rightKey]: + (isUp && noUpMap[leftKey]) || (!isUp && noDownMap[leftKey]) + ? Infinity + : list.isEscalator + ? 7000 * floorDiff + : 10000 + floorDiff * 1000, + }; + const rightValue = { + [leftKey]: + (!isUp && noUpMap[rightKey]) || (isUp && noDownMap[rightKey]) + ? Infinity + : list.isEscalator + ? 7000 * floorDiff + : 10000 + floorDiff * 1000, + }; + attachGraph({ + graph, + leftKey, + rightKey, + leftValue, + rightValue, + }); + if (list.isEscalator) + attachGraph({ + graph: graphFt, + leftKey, + rightKey, + leftValue, + rightValue, + }); + else + attachGraph({ + graph: graphDt, + leftKey, + rightKey, + leftValue, + rightValue, + }); + } + } + }); + const grahps = [graph, graphDt, graphFt]; + portals.forEach(({ leftKey, rightKey, leftValue, rightValue }) => + grahps.forEach((graph) => + attachGraph({ + graph, + leftKey, + rightKey, + leftValue, + rightValue, + }) + ) + ); + return { + points, + routes, + graph, + graphDt, + graphFt, + facilities, + flatFacilities, + excludeSet, + parkingSpaceByFloor, + facilityLiftMap, + facilityMap, + }; +}; + +const dataHelper = async (map) => { + const { + ftData = {}, + excludeNodes, + extraCosts = {}, + portals = [], + serverShopInfo, + mapData, + mall, + facilityTypeMap, + facilityCodeMap, + } = map; + + return handleData( + serverShopInfo, + mapData, + ftData, + excludeNodes, + extraCosts, + portals, + mall, + facilityTypeMap, + facilityCodeMap + ); +}; +export default dataHelper; diff --git a/getMapData.js b/getMapData.js new file mode 100644 index 0000000..29a7dbc --- /dev/null +++ b/getMapData.js @@ -0,0 +1,164 @@ +import { get } from "./pages/map2d/util"; +import dataHelper from "./data-helper"; +const baseUrl = "https://iot-dev.123.1000my.com"; +export const cdnUrl = "https://test-598d.1000my.com"; +export const code = "project-k5chc3vt0vkodjbmhl8rua"; +export const post = (url, data) => + new Promise((resolve) => { + wx.request({ + url: baseUrl + url, + method: "POST", + header: { projectCode: code }, + data: { ...data }, + success({ data, statusCode }) { + if (statusCode !== 200) return reject(); + resolve(data); + }, + }); + }); + +let mapDataAndShop = null; + +export const mall = { + isNew: true, + baseUrl, + cdnUrl, + code, + floors: [ + [true, "L1"], + [true, "L2"], + ], +}; +const config = { + mapDataUrl: `${baseUrl}/api/guide/v1/web/getMallMapData/${code}/Aeditor`, + shopInfoUrl: `${baseUrl}/api/guide/v1/web/getMapInfo?projectCode=${code}`, +}; +export const getMapData = async () => { + if (mapDataAndShop) return mapDataAndShop; + // try { + // const { mapUrl, shopUrl } = await get( + // `${cdnUrl}/test-projects/${code}/config.json?t=${new Date().getTime()}` + // ); + // if (mapUrl) config.mapDataUrl = mapUrl; + // if (shopUrl) config.shopInfoUrl = shopUrl; + // } catch (error) { + // console.log("获取config失败"); + // } + let [ + { + data: { mapData }, + }, + { + data: { buildingList, shopList: serverShopInfo }, + }, + { data: facs }, + { data: sdkMapList }, + { + data: { projectConfig: sdkConfig }, + }, + { data: pois }, + ...rest + ] = await Promise.all([ + get(config.mapDataUrl), + get(config.shopInfoUrl), + get( + `${baseUrl}/api/guide/v1/web/getProjectUsedIconList?projectCode=${code}` + ), + post(`/api/ar/v1/applet/GetSdkConfigList`, { mallCode: code }), + post(`/api/ar/v1/applet/ProjectConfig`, { mallCode: code }), + post(`/api/ar/v1/applet/GetPoiList`, { mallCode: code }), + ...mall.floors.map((_, i) => + get(`${baseUrl}/api/guide/v1/web/getMallMapData/${code}/${i}`) + ), + ]); + const poiMap = pois.reduce((acc, nxt) => ({ ...acc, [nxt.code]: nxt }), {}); + const sdkMap = sdkMapList.map( + ({ + poiid: poi_id, + floorid: floor_id, + isPark: is_park, + appid: app_id, + mapid: map_id, + caseid: case_id, + transMatrix: transform_matrix, + scale, + }) => ({ + app_id, + map_id, + poi_id, + floor_id, + transform_matrix, + scale, + case_id, + is_park, + }) + ); + const map2dData = rest + .map((res) => (res.data && res.data.mapData ? res.data.mapData : null)) + .map((mapData) => (mapData ? JSON.parse(mapData) : null)); + mall.floors.forEach((floor, i) => { + floor[2] = map2dData[i]; + }); + serverShopInfo = serverShopInfo + .filter(({ buildingOrder }) => buildingOrder === 0) + .map((iot) => ({ + ...iot, + name: iot.shopName, + houseNum: iot.houseNumber, + nameEn: iot.shopNameEn, + logoPath: cdnUrl + iot.logoUrl, + shopFormat: iot.industryFatherName, + intro: true, + })) + .reduce((acc, nxt) => { + if (!acc[nxt.floorOrder]) acc[nxt.floorOrder] = [nxt]; + else acc[nxt.floorOrder] = [...acc[nxt.floorOrder], nxt]; + return acc; + }, []) + .map((shopList, floorOrder) => ({ floorOrder, shopList })); + mapData = JSON.parse(mapData)[0]; + const facilityTypeMap = facs.reduce( + (acc, nxt) => ({ + ...acc, + [nxt.node]: nxt.customFacilityName || nxt.name, + }), + {} + ); + const facilityCodeMap = facs.reduce( + (acc, nxt) => ({ + ...acc, + [nxt.abbreviation]: Number(nxt.objCode), + }), + {} + ); + const floors = mall.floors; + let shopMap = {}; + serverShopInfo.forEach(({ shopList }) => { + shopList.forEach((shop) => { + shop.floorName = floors[shop.floorOrder] + ? floors[shop.floorOrder][1] + : ""; + shopMap[shop.houseNum] = shop; + }); + }); + + const dataHelperResponse = await dataHelper({ + serverShopInfo, + mapData, + mall, + facilityTypeMap, + facilityCodeMap, + }); + const pMap = {}; + mapDataAndShop = { + ...dataHelperResponse, + serverShopInfo, + mapData, + mall, + shopMap, + pMap, + poiMap, + config: { ...sdkConfig, map: sdkMap }, + }; + return mapDataAndShop; +}; diff --git a/images/2dmap.jpg b/images/2dmap.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8e686b12d9b4a25af03d646a9fe85af485a18300 GIT binary patch literal 53140 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 literal 0 HcmV?d00001 diff --git a/images/location.png b/images/location.png new file mode 100644 index 0000000000000000000000000000000000000000..b9e731ea6a3c2d1660047e4d868bb601f3557453 GIT binary patch literal 1129 zcmV-v1eW`WP)Px(BS}O-RA>e5SW9RVK^UG{o07(2p;V}%SOnjoAcC(pYCTA74;A#{(Tj-SNd&=z zo`k9wK@U9$f+$kK9&FQs)f%-H1flq-4-l+^f<;hj8k%&+|4Ta|ZfABkv#X~an9l6~ z`2PRVn@*;`s}ankp%F=qq!#h~@6&>b6GE_rTRNPxENA?(h%G#y-j@F5X6siM3X!&F z$#r%?^bmp7egngf2)(zect`K{%vdFUD%-$BQklK$1hfee!iXY*4qEH zb%kx`KhVh(n-6Os;Vf@iu~mILAABBo(BH zsWos{RJp75TKXom>9k0=wyI`R_l|)dWj43yJs6lQOpVeJy{t@Ln$BTfDhVo>7_SIt zVx=w)ee_N_NEA&WgHG$`f~oV7a$_P)@J0#Z9OE_ikW(g~-E?l4(qA_k6QOO8(}9}G zgJ2pHq2q2`mvC;%+HIn9!_?tPxiJyC1wNM`&QS=_srtYbKcJ*@+LxYPFiSR?iSemL zH>Do>7#>mK;#9)vwEyw0Q}Ug_Dv_*HcVf-r0Mo1)6IoufrvG#H?F1#(pbCwIX=QF^ zvr=oziE^YPdjgn@JyPnugvMK|YfD#NaCX}(fL}eZfa%xXX=h9XKntqa6}pPMm)aRo z@eB-LDOA2ifr!lhj^HlE6d|uD0GfL;HNZve3n!y5sPz)K6s}3X$#&Lz9B@W2yjdGWfvP z&Bm`T6e0-L-<;{AZF1djVA#UPuf3ODXhaaGp)P)$Ufy?JL19z0^)&QvK=-uJS`n-L z@t%zZF*8Efm$(|4)2%tSwLdxda!yZ|-ry~)6_Ewu_gWsl5(Rctml||L;x*|@K04b< zK4-7PlInz>_7+ZSm5SAz^X65<~gu!WEGr>S`hg9xG{nFZ95Ts8IhaL4Ec zd&(}|#W05qx;Y!z!Uw*ATTl?`kA%=sX%Hz^Jl+_OHDB9&k)GL;BQH+ozU6QOC{V{Z zJvYwKh>m9bzQ{yoVJiPC{gp%ruDs$%5()nkB3Rxa4atEFMs(bSktiDG@*Tjl)JrnZ zOFyZ{Xw-rdkwKA=+#ZsQBq3K#CJnvp@PRyVlR<(4NgRyMUXCrvl#kE{CL=2.0 are supported. Use LegacyGLTFLoader instead.' + )); + } + return; + + } + + if (json.extensionsUsed) { + + for (let i = 0; i < json.extensionsUsed.length; ++i) { + + let extensionName = json.extensionsUsed[i]; + let extensionsRequired = json.extensionsRequired || []; + + switch (extensionName) { + + case EXTENSIONS.KHR_LIGHTS_PUNCTUAL: + extensions[extensionName] = + new GLTFLightsExtension(json); + break; + + case EXTENSIONS.KHR_MATERIALS_UNLIT: + extensions[extensionName] = + new GLTFMaterialsUnlitExtension(); + break; + + case EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS: + extensions[extensionName] = + new GLTFMaterialsPbrSpecularGlossinessExtension(); + break; + + case EXTENSIONS.KHR_DRACO_MESH_COMPRESSION: + extensions[extensionName] = + new GLTFDracoMeshCompressionExtension(json, this.dracoLoader); + break; + + case EXTENSIONS.MSFT_TEXTURE_DDS: + extensions[EXTENSIONS.MSFT_TEXTURE_DDS] = + new GLTFTextureDDSExtension(this.ddsLoader); + break; + + case EXTENSIONS.KHR_TEXTURE_TRANSFORM: + extensions[EXTENSIONS.KHR_TEXTURE_TRANSFORM] = + new GLTFTextureTransformExtension(); + break; + + default: + + if (extensionsRequired.indexOf(extensionName) >= 0) { + + console.warn('THREE.GLTFLoader: Unknown extension "' + extensionName + '".'); + + } + + } + + } + + } + + let parser = new GLTFParser(json, extensions, { + + path: path || this.resourcePath || '', + crossOrigin: this.crossOrigin, + manager: this.manager, + + }); + + parser.parse(onLoad, onError); + + }, + + }; + + /* GLTFREGISTRY */ + + function GLTFRegistry() { + + let objects = {}; + + return { + + get: function (key) { + + return objects[key]; + + }, + + add: function (key, object) { + + objects[key] = object; + + }, + + remove: function (key) { + + delete objects[key]; + + }, + + removeAll: function () { + + objects = {}; + + }, + + }; + + } + + // /** ****************************** */ + // /** ******** EXTENSIONS ********** */ + // /** ****************************** */ + + // var EXTENSIONS = { + // KHR_BINARY_GLTF: 'KHR_binary_glTF', + // KHR_DRACO_MESH_COMPRESSION: 'KHR_draco_mesh_compression', + // KHR_LIGHTS_PUNCTUAL: 'KHR_lights_punctual', + // KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS: 'KHR_materials_pbrSpecularGlossiness', + // KHR_MATERIALS_UNLIT: 'KHR_materials_unlit', + // KHR_TEXTURE_TRANSFORM: 'KHR_texture_transform', + // MSFT_TEXTURE_DDS: 'MSFT_texture_dds', + // }; + + /** + * DDS Texture Extension + * + * Specification: + * https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/MSFT_texture_dds + * + */ + function GLTFTextureDDSExtension(ddsLoader) { + + if (!ddsLoader) { + + throw new Error('THREE.GLTFLoader: Attempting to load .dds texture without importing THREE.DDSLoader'); + + } + + this.name = EXTENSIONS.MSFT_TEXTURE_DDS; + this.ddsLoader = ddsLoader; + + } + + /** + * Lights Extension + * + * Specification: PENDING + */ + function GLTFLightsExtension(json) { + + this.name = EXTENSIONS.KHR_LIGHTS_PUNCTUAL; + + let extension = (json.extensions && + json.extensions[EXTENSIONS.KHR_LIGHTS_PUNCTUAL]) || {}; + this.lightDefs = extension.lights || []; + + } + + GLTFLightsExtension.prototype.loadLight = function (lightIndex) { + + let lightDef = this.lightDefs[lightIndex]; + let lightNode; + + let color = new THREE.Color(0xffffff); + if (lightDef.color !== undefined) { + color.fromArray(lightDef.color); + } + + let range = lightDef.range !== undefined ? lightDef.range : 0; + + switch (lightDef.type) { + + case 'directional': + lightNode = new THREE.DirectionalLight(color); + lightNode.target.position.set(0, 0, -1); + lightNode.add(lightNode.target); + break; + + case 'point': + lightNode = new THREE.PointLight(color); + lightNode.distance = range; + break; + + case 'spot': + lightNode = new THREE.SpotLight(color); + lightNode.distance = range; + // Handle spotlight properties. + lightDef.spot = lightDef.spot || {}; + lightDef.spot.innerConeAngle = lightDef.spot.innerConeAngle !== + undefined ? lightDef.spot.innerConeAngle : 0; + lightDef.spot.outerConeAngle = lightDef.spot.outerConeAngle !== + undefined ? lightDef.spot.outerConeAngle : Math.PI / 4.0; + lightNode.angle = lightDef.spot.outerConeAngle; + lightNode.penumbra = 1.0 - lightDef.spot.innerConeAngle / lightDef.spot.outerConeAngle; + lightNode.target.position.set(0, 0, -1); + lightNode.add(lightNode.target); + break; + + default: + throw new Error('THREE.GLTFLoader: Unexpected light type, "' + lightDef.type + '".'); + + } + + // Some lights (e.g. spot) default to a position other than the origin. Reset the position + // here, because node-level parsing will only override position if explicitly specified. + lightNode.position.set(0, 0, 0); + + lightNode.decay = 2; + + if (lightDef.intensity !== undefined) { + lightNode.intensity = lightDef.intensity; + } + + lightNode.name = lightDef.name || ('light_' + lightIndex); + + return Promise.resolve(lightNode); + + }; + + /** + * Unlit Materials Extension (pending) + * + * PR: https://github.com/KhronosGroup/glTF/pull/1163 + */ + function GLTFMaterialsUnlitExtension() { + + this.name = EXTENSIONS.KHR_MATERIALS_UNLIT; + + } + + GLTFMaterialsUnlitExtension.prototype.getMaterialType = function () { + + return THREE.MeshBasicMaterial; + + }; + + GLTFMaterialsUnlitExtension.prototype.extendParams = + function (materialParams, materialDef, parser) { + + let pending = []; + + materialParams.color = new THREE.Color(1.0, 1.0, 1.0); + materialParams.opacity = 1.0; + + let metallicRoughness = materialDef.pbrMetallicRoughness; + + if (metallicRoughness) { + + if (Array.isArray(metallicRoughness.baseColorFactor)) { + + let array = metallicRoughness.baseColorFactor; + + materialParams.color.fromArray(array); + materialParams.opacity = array[3]; + + } + + if (metallicRoughness.baseColorTexture !== undefined) { + + pending.push(parser.assignTexture(materialParams, + 'map', metallicRoughness.baseColorTexture)); + + } + + } + + return Promise.all(pending); + + }; + + // /* BINARY EXTENSION */ + // var BINARY_EXTENSION_HEADER_MAGIC = 'glTF'; + // let BINARY_EXTENSION_HEADER_LENGTH = 12; + // let BINARY_EXTENSION_CHUNK_TYPES = { + // JSON: 0x4E4F534A, + // BIN: 0x004E4942, + // }; + + function GLTFBinaryExtension(data) { + + this.name = EXTENSIONS.KHR_BINARY_GLTF; + this.content = null; + this.body = null; + + let headerView = new DataView(data, 0, BINARY_EXTENSION_HEADER_LENGTH); + + this.header = { + magic: THREE.LoaderUtils.decodeText(new Uint8Array(data.slice(0, 4))), + version: headerView.getUint32(4, true), + length: headerView.getUint32(8, true), + }; + + if (this.header.magic !== BINARY_EXTENSION_HEADER_MAGIC) { + + throw new Error('THREE.GLTFLoader: Unsupported glTF-Binary header.'); + + } else if (this.header.version < 2.0) { + + throw new Error('THREE.GLTFLoader: Legacy binary file detected. Use LegacyGLTFLoader instead.'); + + } + + let chunkView = new DataView(data, BINARY_EXTENSION_HEADER_LENGTH); + let chunkIndex = 0; + + while (chunkIndex < chunkView.byteLength) { + + let chunkLength = chunkView.getUint32(chunkIndex, true); + chunkIndex += 4; + + let chunkType = chunkView.getUint32(chunkIndex, true); + chunkIndex += 4; + + if (chunkType === BINARY_EXTENSION_CHUNK_TYPES.JSON) { + + let contentArray = new Uint8Array(data, + BINARY_EXTENSION_HEADER_LENGTH + chunkIndex, chunkLength); + this.content = THREE.LoaderUtils.decodeText(contentArray); + + } else if (chunkType === BINARY_EXTENSION_CHUNK_TYPES.BIN) { + + let byteOffset = BINARY_EXTENSION_HEADER_LENGTH + chunkIndex; + this.body = data.slice(byteOffset, byteOffset + chunkLength); + + } + + // Clients must ignore chunks with unknown types. + + chunkIndex += chunkLength; + + } + + if (this.content === null) { + + throw new Error('THREE.GLTFLoader: JSON content not found.'); + + } + + } + + /** + * DRACO Mesh Compression Extension + * + * Specification: https://github.com/KhronosGroup/glTF/pull/874 + */ + function GLTFDracoMeshCompressionExtension(json, dracoLoader) { + + if (!dracoLoader) { + + throw new Error('THREE.GLTFLoader: No DRACOLoader instance provided.'); + + } + + this.name = EXTENSIONS.KHR_DRACO_MESH_COMPRESSION; + this.json = json; + this.dracoLoader = dracoLoader; + + } + + GLTFDracoMeshCompressionExtension.prototype.decodePrimitive = + function (primitive, parser) { + + let json = this.json; + let dracoLoader = this.dracoLoader; + let bufferViewIndex = primitive.extensions[this.name].bufferView; + let gltfAttributeMap = primitive.extensions[this.name].attributes; + let threeAttributeMap = {}; + let attributeNormalizedMap = {}; + let attributeTypeMap = {}; + + for (var attributeName in gltfAttributeMap) { + + var threeAttributeName = ATTRIBUTES[attributeName] || + attributeName.toLowerCase(); + + threeAttributeMap[threeAttributeName] = gltfAttributeMap[attributeName]; + + } + + for (attributeName in primitive.attributes) { + + var threeAttributeName = ATTRIBUTES[attributeName] || + attributeName.toLowerCase(); + + if (gltfAttributeMap[attributeName] !== undefined) { + + let accessorDef = json.accessors[primitive.attributes[attributeName]]; + let componentType = WEBGL_COMPONENT_TYPES[accessorDef.componentType]; + + attributeTypeMap[threeAttributeName] = componentType; + attributeNormalizedMap[threeAttributeName] = + accessorDef.normalized === true; + + } + + } + + return parser.getDependency('bufferView', + bufferViewIndex).then(function (bufferView) { + + return new Promise(function (resolve) { + + dracoLoader.decodeDracoFile(bufferView, function (geometry) { + + for (let attributeName in geometry.attributes) { + + let attribute = geometry.attributes[attributeName]; + let normalized = attributeNormalizedMap[attributeName]; + + if (normalized !== undefined) { + attribute.normalized = normalized; + } + + } + + resolve(geometry); + + }, threeAttributeMap, attributeTypeMap); + + }); + + }); + + }; + + /** + * Texture Transform Extension + * + * Specification: + */ + function GLTFTextureTransformExtension() { + + this.name = EXTENSIONS.KHR_TEXTURE_TRANSFORM; + + } + + GLTFTextureTransformExtension.prototype.extendTexture = + function (texture, transform) { + + texture = texture.clone(); + + if (transform.offset !== undefined) { + + texture.offset.fromArray(transform.offset); + + } + + if (transform.rotation !== undefined) { + + texture.rotation = transform.rotation; + + } + + if (transform.scale !== undefined) { + + texture.repeat.fromArray(transform.scale); + + } + + if (transform.texCoord !== undefined) { + + console.warn('THREE.GLTFLoader: Custom UV sets in "' + + this.name + '" extension not yet supported.'); + + } + + texture.needsUpdate = true; + + return texture; + + }; + + /** + * Specular-Glossiness Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_pbrSpecularGlossiness + */ + function GLTFMaterialsPbrSpecularGlossinessExtension() { + + return { + + name: EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS, + + specularGlossinessParams: [ + 'color', + 'map', + 'lightMap', + 'lightMapIntensity', + 'aoMap', + 'aoMapIntensity', + 'emissive', + 'emissiveIntensity', + 'emissiveMap', + 'bumpMap', + 'bumpScale', + 'normalMap', + 'displacementMap', + 'displacementScale', + 'displacementBias', + 'specularMap', + 'specular', + 'glossinessMap', + 'glossiness', + 'alphaMap', + 'envMap', + 'envMapIntensity', + 'refractionRatio', + ], + + getMaterialType: function () { + + return THREE.ShaderMaterial; + + }, + + extendParams: function (materialParams, materialDef, parser) { + + let pbrSpecularGlossiness = materialDef.extensions[this.name]; + + let shader = THREE.ShaderLib.standard; + + let uniforms = THREE.UniformsUtils.clone(shader.uniforms); + + let specularMapParsFragmentChunk = [ + '#ifdef USE_SPECULARMAP', + ' uniform sampler2D specularMap;', + '#endif', + ].join('\n'); + + let glossinessMapParsFragmentChunk = [ + '#ifdef USE_GLOSSINESSMAP', + ' uniform sampler2D glossinessMap;', + '#endif', + ].join('\n'); + + let specularMapFragmentChunk = [ + 'vec3 specularFactor = specular;', + '#ifdef USE_SPECULARMAP', + ' vec4 texelSpecular = texture2D( specularMap, vUv );', + ' texelSpecular = sRGBToLinear( texelSpecular );', + ' // reads channel RGB, compatible with a glTF Specular-Glossiness (RGBA) texture', + ' specularFactor *= texelSpecular.rgb;', + '#endif', + ].join('\n'); + + let glossinessMapFragmentChunk = [ + 'float glossinessFactor = glossiness;', + '#ifdef USE_GLOSSINESSMAP', + ' vec4 texelGlossiness = texture2D( glossinessMap, vUv );', + ' // reads channel A, compatible with a glTF Specular-Glossiness (RGBA) texture', + ' glossinessFactor *= texelGlossiness.a;', + '#endif', + ].join('\n'); + + let lightPhysicalFragmentChunk = [ + 'PhysicalMaterial material;', + 'material.diffuseColor = diffuseColor.rgb;', + 'material.specularRoughness = clamp( 1.0 - glossinessFactor, 0.04, 1.0 );', + 'material.specularColor = specularFactor.rgb;', + ].join('\n'); + + let fragmentShader = shader.fragmentShader + .replace('uniform float roughness;', 'uniform vec3 specular;') + .replace('uniform float metalness;', 'uniform float glossiness;') + .replace('#include ', specularMapParsFragmentChunk) + .replace('#include ', glossinessMapParsFragmentChunk) + .replace('#include ', specularMapFragmentChunk) + .replace('#include ', glossinessMapFragmentChunk) + .replace('#include ', lightPhysicalFragmentChunk); + + delete uniforms.roughness; + delete uniforms.metalness; + delete uniforms.roughnessMap; + delete uniforms.metalnessMap; + + uniforms.specular = { + value: new THREE.Color().setHex(0x111111), + }; + uniforms.glossiness = { + value: 0.5, + }; + uniforms.specularMap = { + value: null, + }; + uniforms.glossinessMap = { + value: null, + }; + + materialParams.vertexShader = shader.vertexShader; + materialParams.fragmentShader = fragmentShader; + materialParams.uniforms = uniforms; + materialParams.defines = { + 'STANDARD': '', + }; + + materialParams.color = new THREE.Color(1.0, 1.0, 1.0); + materialParams.opacity = 1.0; + + let pending = []; + + if (Array.isArray(pbrSpecularGlossiness.diffuseFactor)) { + + let array = pbrSpecularGlossiness.diffuseFactor; + + materialParams.color.fromArray(array); + materialParams.opacity = array[3]; + + } + + if (pbrSpecularGlossiness.diffuseTexture !== undefined) { + + pending.push(parser.assignTexture(materialParams, + 'map', pbrSpecularGlossiness.diffuseTexture)); + + } + + materialParams.emissive = new THREE.Color(0.0, 0.0, 0.0); + materialParams.glossiness = pbrSpecularGlossiness.glossinessFactor !== + undefined ? pbrSpecularGlossiness.glossinessFactor : 1.0; + materialParams.specular = new THREE.Color(1.0, 1.0, 1.0); + + if (Array.isArray(pbrSpecularGlossiness.specularFactor)) { + + materialParams.specular.fromArray(pbrSpecularGlossiness.specularFactor); + + } + + if (pbrSpecularGlossiness.specularGlossinessTexture !== undefined) { + + let specGlossMapDef = pbrSpecularGlossiness.specularGlossinessTexture; + pending.push(parser.assignTexture(materialParams, + 'glossinessMap', specGlossMapDef)); + pending.push(parser.assignTexture(materialParams, + 'specularMap', specGlossMapDef)); + + } + + return Promise.all(pending); + + }, + + createMaterial: function (params) { + + // setup material properties based on MeshStandardMaterial for Specular-Glossiness + + let material = new THREE.ShaderMaterial({ + defines: params.defines, + vertexShader: params.vertexShader, + fragmentShader: params.fragmentShader, + uniforms: params.uniforms, + fog: true, + lights: true, + opacity: params.opacity, + transparent: params.transparent, + }); + + material.isGLTFSpecularGlossinessMaterial = true; + + material.color = params.color; + + material.map = params.map === undefined ? null : params.map; + + material.lightMap = null; + material.lightMapIntensity = 1.0; + + material.aoMap = params.aoMap === undefined ? null : params.aoMap; + material.aoMapIntensity = 1.0; + + material.emissive = params.emissive; + material.emissiveIntensity = 1.0; + material.emissiveMap = params.emissiveMap === + undefined ? null : params.emissiveMap; + + material.bumpMap = params.bumpMap === undefined ? null : params.bumpMap; + material.bumpScale = 1; + + material.normalMap = params.normalMap === + undefined ? null : params.normalMap; + + if (params.normalScale) { + material.normalScale = params.normalScale; + } + + material.displacementMap = null; + material.displacementScale = 1; + material.displacementBias = 0; + + material.specularMap = params.specularMap === + undefined ? null : params.specularMap; + material.specular = params.specular; + + material.glossinessMap = params.glossinessMap === + undefined ? null : params.glossinessMap; + material.glossiness = params.glossiness; + + material.alphaMap = null; + + material.envMap = params.envMap === undefined ? null : params.envMap; + material.envMapIntensity = 1.0; + + material.refractionRatio = 0.98; + + material.extensions.derivatives = true; + + return material; + + }, + + /** + * Clones a GLTFSpecularGlossinessMaterial instance. The ShaderMaterial.copy() method can + * copy only properties it knows about or inherits, and misses many properties that would + * normally be defined by MeshStandardMaterial. + * + * This method allows GLTFSpecularGlossinessMaterials to be cloned in the process of + * loading a glTF model, but cloning later (e.g. by the user) would require these changes + * AND also updating `.onBeforeRender` on the parent mesh. + * + * @param {THREE.ShaderMaterial} source + * @return {THREE.ShaderMaterial} + */ + cloneMaterial: function (source) { + + let target = source.clone(); + + target.isGLTFSpecularGlossinessMaterial = true; + + let params = this.specularGlossinessParams; + + for (let i = 0, il = params.length; i < il; i++) { + + let value = source[params[i]]; + target[params[i]] = (value && value.isColor) ? value.clone() : value; + + } + + return target; + + }, + + // Here's based on refreshUniformsCommon() and refreshUniformsStandard() in WebGLRenderer. + refreshUniforms: function (renderer, scene, camera, geometry, material) { + + if (material.isGLTFSpecularGlossinessMaterial !== true) { + + return; + + } + + let uniforms = material.uniforms; + let defines = material.defines; + + uniforms.opacity.value = material.opacity; + + uniforms.diffuse.value.copy(material.color); + uniforms.emissive.value.copy(material.emissive) + .multiplyScalar(material.emissiveIntensity); + + uniforms.map.value = material.map; + uniforms.specularMap.value = material.specularMap; + uniforms.alphaMap.value = material.alphaMap; + + uniforms.lightMap.value = material.lightMap; + uniforms.lightMapIntensity.value = material.lightMapIntensity; + + uniforms.aoMap.value = material.aoMap; + uniforms.aoMapIntensity.value = material.aoMapIntensity; + + // uv repeat and offset setting priorities + // 1. color map + // 2. specular map + // 3. normal map + // 4. bump map + // 5. alpha map + // 6. emissive map + + let uvScaleMap; + + if (material.map) { + + uvScaleMap = material.map; + + } else if (material.specularMap) { + + uvScaleMap = material.specularMap; + + } else if (material.displacementMap) { + + uvScaleMap = material.displacementMap; + + } else if (material.normalMap) { + + uvScaleMap = material.normalMap; + + } else if (material.bumpMap) { + + uvScaleMap = material.bumpMap; + + } else if (material.glossinessMap) { + + uvScaleMap = material.glossinessMap; + + } else if (material.alphaMap) { + + uvScaleMap = material.alphaMap; + + } else if (material.emissiveMap) { + + uvScaleMap = material.emissiveMap; + + } + + if (uvScaleMap !== undefined) { + + // backwards compatibility + if (uvScaleMap.isWebGLRenderTarget) { + + uvScaleMap = uvScaleMap.texture; + + } + + if (uvScaleMap.matrixAutoUpdate === true) { + + uvScaleMap.updateMatrix(); + + } + + uniforms.uvTransform.value.copy(uvScaleMap.matrix); + + } + + if (material.envMap) { + + uniforms.envMap.value = material.envMap; + uniforms.envMapIntensity.value = material.envMapIntensity; + + // don't flip CubeTexture envMaps, flip everything else: + // WebGLRenderTargetCube will be flipped for backwards compatibility + // WebGLRenderTargetCube.texture will be flipped because it's a Texture and NOT a CubeTexture + // this check must be handled differently, or removed entirely, if WebGLRenderTargetCube uses a CubeTexture in the future + uniforms.flipEnvMap.value = material.envMap.isCubeTexture ? -1 : 1; + + uniforms.reflectivity.value = material.reflectivity; + uniforms.refractionRatio.value = material.refractionRatio; + + uniforms.maxMipLevel.value = renderer.properties + .get(material.envMap).__maxMipLevel; + + } + + uniforms.specular.value.copy(material.specular); + uniforms.glossiness.value = material.glossiness; + + uniforms.glossinessMap.value = material.glossinessMap; + + uniforms.emissiveMap.value = material.emissiveMap; + uniforms.bumpMap.value = material.bumpMap; + uniforms.normalMap.value = material.normalMap; + + uniforms.displacementMap.value = material.displacementMap; + uniforms.displacementScale.value = material.displacementScale; + uniforms.displacementBias.value = material.displacementBias; + + if (uniforms.glossinessMap.value !== null && + defines.USE_GLOSSINESSMAP === undefined) { + + defines.USE_GLOSSINESSMAP = ''; + // set USE_ROUGHNESSMAP to enable vUv + defines.USE_ROUGHNESSMAP = ''; + + } + + if (uniforms.glossinessMap.value === null && + defines.USE_GLOSSINESSMAP !== undefined) { + + delete defines.USE_GLOSSINESSMAP; + delete defines.USE_ROUGHNESSMAP; + + } + + }, + + }; + + } + + /** ****************************** */ + /** ******** INTERPOLATION ******* */ + /** ****************************** */ + + // Spline Interpolation + // Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#appendix-c-spline-interpolation + function GLTFCubicSplineInterpolant(parameterPositions, sampleValues, + sampleSize, resultBuffer) { + + THREE.Interpolant.call(this, parameterPositions, + sampleValues, sampleSize, resultBuffer); + + } + + GLTFCubicSplineInterpolant.prototype = Object.create(THREE.Interpolant.prototype); + GLTFCubicSplineInterpolant.prototype.constructor = GLTFCubicSplineInterpolant; + + GLTFCubicSplineInterpolant.prototype.copySampleValue_ = function (index) { + + // Copies a sample value to the result buffer. See description of glTF + // CUBICSPLINE values layout in interpolate_() function below. + + let result = this.resultBuffer; + let values = this.sampleValues; + let valueSize = this.valueSize; + let offset = index * valueSize * 3 + valueSize; + + for (let i = 0; i !== valueSize; i++) { + + result[i] = values[offset + i]; + + } + + return result; + + }; + + GLTFCubicSplineInterpolant.prototype.beforeStart_ = + GLTFCubicSplineInterpolant.prototype.copySampleValue_; + + GLTFCubicSplineInterpolant.prototype.afterEnd_ = + GLTFCubicSplineInterpolant.prototype.copySampleValue_; + + GLTFCubicSplineInterpolant.prototype.interpolate_ = function (i1, t0, t, t1) { + + let result = this.resultBuffer; + let values = this.sampleValues; + let stride = this.valueSize; + + let stride2 = stride * 2; + let stride3 = stride * 3; + + let td = t1 - t0; + + let p = (t - t0) / td; + let pp = p * p; + let ppp = pp * p; + + let offset1 = i1 * stride3; + let offset0 = offset1 - stride3; + + let s2 = -2 * ppp + 3 * pp; + let s3 = ppp - pp; + let s0 = 1 - s2; + let s1 = s3 - pp + p; + + // Layout of keyframe output values for CUBICSPLINE animations: + // [ inTangent_1, splineVertex_1, outTangent_1, inTangent_2, splineVertex_2, ... ] + for (let i = 0; i !== stride; i++) { + + let p0 = values[offset0 + i + stride]; // splineVertex_k + let m0 = values[offset0 + i + stride2] * td; // outTangent_k * (t_k+1 - t_k) + let p1 = values[offset1 + i + stride]; // splineVertex_k+1 + let m1 = values[offset1 + i] * td; // inTangent_k+1 * (t_k+1 - t_k) + + result[i] = s0 * p0 + s1 * m0 + s2 * p1 + s3 * m1; + + } + + return result; + + }; + + /** ****************************** */ + /** ******** INTERNALS *********** */ + /** ****************************** */ + + /* CONSTANTS */ + + let WEBGL_CONSTANTS = { + FLOAT: 5126, + // FLOAT_MAT2: 35674, + FLOAT_MAT3: 35675, + FLOAT_MAT4: 35676, + FLOAT_VEC2: 35664, + FLOAT_VEC3: 35665, + FLOAT_VEC4: 35666, + LINEAR: 9729, + REPEAT: 10497, + SAMPLER_2D: 35678, + POINTS: 0, + LINES: 1, + LINE_LOOP: 2, + LINE_STRIP: 3, + TRIANGLES: 4, + TRIANGLE_STRIP: 5, + TRIANGLE_FAN: 6, + UNSIGNED_BYTE: 5121, + UNSIGNED_SHORT: 5123, + }; + + // var WEBGL_COMPONENT_TYPES = { + // 5120: Int8Array, + // 5121: Uint8Array, + // 5122: Int16Array, + // 5123: Uint16Array, + // 5125: Uint32Array, + // 5126: Float32Array, + // }; + + let WEBGL_FILTERS = { + 9728: THREE.NearestFilter, + 9729: THREE.LinearFilter, + 9984: THREE.NearestMipmapNearestFilter, + 9985: THREE.LinearMipmapNearestFilter, + 9986: THREE.NearestMipmapLinearFilter, + 9987: THREE.LinearMipmapLinearFilter, + }; + + let WEBGL_WRAPPINGS = { + 33071: THREE.ClampToEdgeWrapping, + 33648: THREE.MirroredRepeatWrapping, + 10497: THREE.RepeatWrapping, + }; + + let WEBGL_TYPE_SIZES = { + 'SCALAR': 1, + 'VEC2': 2, + 'VEC3': 3, + 'VEC4': 4, + 'MAT2': 4, + 'MAT3': 9, + 'MAT4': 16, + }; + + // var ATTRIBUTES = { + // POSITION: 'position', + // NORMAL: 'normal', + // TANGENT: 'tangent', + // TEXCOORD_0: 'uv', + // TEXCOORD_1: 'uv2', + // COLOR_0: 'color', + // WEIGHTS_0: 'skinWeight', + // JOINTS_0: 'skinIndex', + // }; + + let PATH_PROPERTIES = { + scale: 'scale', + translation: 'position', + rotation: 'quaternion', + weights: 'morphTargetInfluences', + }; + + let INTERPOLATION = { + CUBICSPLINE: undefined, // We use a custom interpolant (GLTFCubicSplineInterpolation) for CUBICSPLINE tracks. Each + // keyframe track will be initialized with a default interpolation type, then modified. + LINEAR: THREE.InterpolateLinear, + STEP: THREE.InterpolateDiscrete, + }; + + let ALPHA_MODES = { + OPAQUE: 'OPAQUE', + MASK: 'MASK', + BLEND: 'BLEND', + }; + + let MIME_TYPE_FORMATS = { + 'image/png': THREE.RGBAFormat, + 'image/jpeg': THREE.RGBFormat, + }; + + /* UTILITY FUNCTIONS */ + + function resolveURL(url, path) { + + // Invalid URL + if (typeof url !== 'string' || url === '') { + return ''; + } + + // Host Relative URL + if (/^https?:\/\//i.test(path) && /^\//.test(url)) { + + path = path.replace(/(^https?:\/\/[^\/]+).*/i, '$1'); + + } + + // Absolute URL http://,https://,// + if (/^(https?:)?\/\//i.test(url)) { + return url; + } + + // Data URI + if (/^data:.*,.*$/i.test(url)) { + return url; + } + + // Blob URL + if (/^blob:.*$/i.test(url)) { + return url; + } + + // Relative URL + return path + url; + + } + + let defaultMaterial; + + /** + * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#default-material + */ + function createDefaultMaterial() { + + defaultMaterial = defaultMaterial || new THREE.MeshStandardMaterial({ + color: 0xFFFFFF, + emissive: 0x000000, + metalness: 1, + roughness: 1, + transparent: false, + depthTest: true, + side: THREE.FrontSide, + }); + + return defaultMaterial; + + } + + function addUnknownExtensionsToUserData(knownExtensions, object, objectDef) { + + // Add unknown glTF extensions to an object's userData. + + for (let name in objectDef.extensions) { + + if (knownExtensions[name] === undefined) { + + object.userData.gltfExtensions = object.userData.gltfExtensions || {}; + object.userData.gltfExtensions[name] = objectDef.extensions[name]; + + } + + } + + } + + /** + * @param {THREE.Object3D|THREE.Material|THREE.BufferGeometry} object + * @param {GLTF.definition} gltfDef + */ + function assignExtrasToUserData(object, gltfDef) { + + if (gltfDef.extras !== undefined) { + + if (typeof gltfDef.extras === 'object') { + + Object.assign(object.userData, gltfDef.extras); + + } else { + + console.warn('THREE.GLTFLoader: Ignoring primitive type .extras, ' + + gltfDef.extras); + + } + + } + + } + + /** + * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#morph-targets + * + * @param {THREE.BufferGeometry} geometry + * @param {Array} targets + * @param {GLTFParser} parser + * @return {Promise} + */ + function addMorphTargets(geometry, targets, parser) { + + let hasMorphPosition = false; + let hasMorphNormal = false; + + for (var i = 0, il = targets.length; i < il; i++) { + + var target = targets[i]; + + if (target.POSITION !== undefined) { + hasMorphPosition = true; + } + if (target.NORMAL !== undefined) { + hasMorphNormal = true; + } + + if (hasMorphPosition && hasMorphNormal) { + break; + } + + } + + if (!hasMorphPosition && !hasMorphNormal) { + return Promise.resolve(geometry); + } + + let pendingPositionAccessors = []; + let pendingNormalAccessors = []; + + for (var i = 0, il = targets.length; i < il; i++) { + + var target = targets[i]; + + if (hasMorphPosition) { + + var pendingAccessor = target.POSITION !== undefined ? + parser.getDependency('accessor', target.POSITION) : + geometry.attributes.position; + + pendingPositionAccessors.push(pendingAccessor); + + } + + if (hasMorphNormal) { + + var pendingAccessor = target.NORMAL !== undefined ? + parser.getDependency('accessor', target.NORMAL) : + geometry.attributes.normal; + + pendingNormalAccessors.push(pendingAccessor); + + } + + } + + return Promise.all([ + Promise.all(pendingPositionAccessors), + Promise.all(pendingNormalAccessors), + ]).then(function (accessors) { + + let morphPositions = accessors[0]; + let morphNormals = accessors[1]; + + // Clone morph target accessors before modifying them. + + for (var i = 0, il = morphPositions.length; i < il; i++) { + + if (geometry.attributes.position === morphPositions[i]) { + continue; + } + + morphPositions[i] = cloneBufferAttribute(morphPositions[i]); + + } + + for (var i = 0, il = morphNormals.length; i < il; i++) { + + if (geometry.attributes.normal === morphNormals[i]) { + continue; + } + + morphNormals[i] = cloneBufferAttribute(morphNormals[i]); + + } + + for (var i = 0, il = targets.length; i < il; i++) { + + let target = targets[i]; + let attributeName = 'morphTarget' + i; + + if (hasMorphPosition) { + + // Three.js morph position is absolute value. The formula is + // basePosition + // + weight0 * ( morphPosition0 - basePosition ) + // + weight1 * ( morphPosition1 - basePosition ) + // ... + // while the glTF one is relative + // basePosition + // + weight0 * glTFmorphPosition0 + // + weight1 * glTFmorphPosition1 + // ... + // then we need to convert from relative to absolute here. + + if (target.POSITION !== undefined) { + + let positionAttribute = morphPositions[i]; + positionAttribute.name = attributeName; + + let position = geometry.attributes.position; + + for (var j = 0, jl = positionAttribute.count; j < jl; j++) { + + positionAttribute.setXYZ( + j, + positionAttribute.getX(j) + position.getX(j), + positionAttribute.getY(j) + position.getY(j), + positionAttribute.getZ(j) + position.getZ(j) + ); + + } + + } + + } + + if (hasMorphNormal) { + + // see target.POSITION's comment + + if (target.NORMAL !== undefined) { + + let normalAttribute = morphNormals[i]; + normalAttribute.name = attributeName; + + let normal = geometry.attributes.normal; + + for (var j = 0, jl = normalAttribute.count; j < jl; j++) { + + normalAttribute.setXYZ( + j, + normalAttribute.getX(j) + normal.getX(j), + normalAttribute.getY(j) + normal.getY(j), + normalAttribute.getZ(j) + normal.getZ(j) + ); + + } + + } + + } + + } + + if (hasMorphPosition) { + geometry.morphAttributes.position = morphPositions; + } + if (hasMorphNormal) { + geometry.morphAttributes.normal = morphNormals; + } + + return geometry; + + }); + + } + + /** + * @param {THREE.Mesh} mesh + * @param {GLTF.Mesh} meshDef + */ + function updateMorphTargets(mesh, meshDef) { + + mesh.updateMorphTargets(); + + if (meshDef.weights !== undefined) { + + for (var i = 0, il = meshDef.weights.length; i < il; i++) { + + mesh.morphTargetInfluences[i] = meshDef.weights[i]; + + } + + } + + // .extras has user-defined data, so check that .extras.targetNames is an array. + if (meshDef.extras && Array.isArray(meshDef.extras.targetNames)) { + + let targetNames = meshDef.extras.targetNames; + + if (mesh.morphTargetInfluences.length === targetNames.length) { + + mesh.morphTargetDictionary = {}; + + for (var i = 0, il = targetNames.length; i < il; i++) { + + mesh.morphTargetDictionary[targetNames[i]] = i; + + } + + } else { + + console.warn('THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.'); + + } + + } + + } + + function createPrimitiveKey(primitiveDef) { + + let dracoExtension = primitiveDef.extensions && + primitiveDef.extensions[EXTENSIONS.KHR_DRACO_MESH_COMPRESSION]; + let geometryKey; + + if (dracoExtension) { + + geometryKey = 'draco:' + dracoExtension.bufferView + + ':' + dracoExtension.indices + + ':' + createAttributesKey(dracoExtension.attributes); + + } else { + + geometryKey = primitiveDef.indices + ':' + + createAttributesKey(primitiveDef.attributes) + ':' + primitiveDef.mode; + + } + + return geometryKey; + + } + + function createAttributesKey(attributes) { + + let attributesKey = ''; + + let keys = Object.keys(attributes).sort(); + + for (let i = 0, il = keys.length; i < il; i++) { + + attributesKey += keys[i] + ':' + attributes[keys[i]] + ';'; + + } + + return attributesKey; + + } + + function cloneBufferAttribute(attribute) { + + if (attribute.isInterleavedBufferAttribute) { + + let count = attribute.count; + let itemSize = attribute.itemSize; + let array = attribute.array.slice(0, count * itemSize); + + for (let i = 0, j = 0; i < count; ++i) { + + array[j++] = attribute.getX(i); + if (itemSize >= 2) { + array[j++] = attribute.getY(i); + } + if (itemSize >= 3) { + array[j++] = attribute.getZ(i); + } + if (itemSize >= 4) { + array[j++] = attribute.getW(i); + } + + } + + return new THREE.BufferAttribute(array, itemSize, attribute.normalized); + + } + + return attribute.clone(); + + } + + /* GLTF PARSER */ + + function GLTFParser(json, extensions, options) { + + this.json = json || {}; + this.extensions = extensions || {}; + this.options = options || {}; + + // loader object cache + this.cache = new GLTFRegistry(); + + // BufferGeometry caching + this.primitiveCache = {}; + + this.textureLoader = new THREE.TextureLoader(this.options.manager); + this.textureLoader.setCrossOrigin(this.options.crossOrigin); + + this.fileLoader = new THREE.FileLoader(this.options.manager); + this.fileLoader.setResponseType('arraybuffer'); + + if (this.options.crossOrigin === 'use-credentials') { + + this.fileLoader.setWithCredentials(true); + + } + + } + + GLTFParser.prototype.parse = function (onLoad, onError) { + + let parser = this; + let json = this.json; + let extensions = this.extensions; + + // Clear the loader cache + this.cache.removeAll(); + + // Mark the special nodes/meshes in json for efficient parse + this.markDefs(); + + Promise.all([ + + this.getDependencies('scene'), + this.getDependencies('animation'), + this.getDependencies('camera'), + + ]).then(function (dependencies) { + + let result = { + scene: dependencies[0][json.scene || 0], + scenes: dependencies[0], + animations: dependencies[1], + cameras: dependencies[2], + asset: json.asset, + parser: parser, + userData: {}, + }; + + addUnknownExtensionsToUserData(extensions, result, json); + + assignExtrasToUserData(result, json); + + onLoad(result); + + }).catch(onError); + + }; + + /** + * Marks the special nodes/meshes in json for efficient parse. + */ + GLTFParser.prototype.markDefs = function () { + + let nodeDefs = this.json.nodes || []; + let skinDefs = this.json.skins || []; + let meshDefs = this.json.meshes || []; + + let meshReferences = {}; + let meshUses = {}; + + // Nothing in the node definition indicates whether it is a Bone or an + // Object3D. Use the skins' joint references to mark bones. + for (let skinIndex = 0, skinLength = skinDefs.length; skinIndex < skinLength; skinIndex++) { + + let joints = skinDefs[skinIndex].joints; + + for (let i = 0, il = joints.length; i < il; i++) { + + nodeDefs[joints[i]].isBone = true; + + } + + } + + // Meshes can (and should) be reused by multiple nodes in a glTF asset. To + // avoid having more than one THREE.Mesh with the same name, count + // references and rename instances below. + // + // Example: CesiumMilkTruck sample model reuses "Wheel" meshes. + for (let nodeIndex = 0, nodeLength = nodeDefs.length; nodeIndex < nodeLength; nodeIndex++) { + + let nodeDef = nodeDefs[nodeIndex]; + + if (nodeDef.mesh !== undefined) { + + if (meshReferences[nodeDef.mesh] === undefined) { + + meshReferences[nodeDef.mesh] = meshUses[nodeDef.mesh] = 0; + + } + + meshReferences[nodeDef.mesh]++; + + // Nothing in the mesh definition indicates whether it is + // a SkinnedMesh or Mesh. Use the node's mesh reference + // to mark SkinnedMesh if node has skin. + if (nodeDef.skin !== undefined) { + + meshDefs[nodeDef.mesh].isSkinnedMesh = true; + + } + + } + + } + + this.json.meshReferences = meshReferences; + this.json.meshUses = meshUses; + + }; + + /** + * Requests the specified dependency asynchronously, with caching. + * @param {string} type + * @param {number} index + * @return {Promise} + */ + GLTFParser.prototype.getDependency = function (type, index) { + + let cacheKey = type + ':' + index; + let dependency = this.cache.get(cacheKey); + + if (!dependency) { + + switch (type) { + + case 'scene': + dependency = this.loadScene(index); + break; + + case 'node': + dependency = this.loadNode(index); + break; + + case 'mesh': + dependency = this.loadMesh(index); + break; + + case 'accessor': + dependency = this.loadAccessor(index); + break; + + case 'bufferView': + dependency = this.loadBufferView(index); + break; + + case 'buffer': + dependency = this.loadBuffer(index); + break; + + case 'material': + dependency = this.loadMaterial(index); + break; + + case 'texture': + dependency = this.loadTexture(index); + break; + + case 'skin': + dependency = this.loadSkin(index); + break; + + case 'animation': + dependency = this.loadAnimation(index); + break; + + case 'camera': + dependency = this.loadCamera(index); + break; + + case 'light': + dependency = this.extensions[EXTENSIONS.KHR_LIGHTS_PUNCTUAL] + .loadLight(index); + break; + + default: + throw new Error('Unknown type: ' + type); + + } + + this.cache.add(cacheKey, dependency); + + } + + return dependency; + + }; + + /** + * Requests all dependencies of the specified type asynchronously, with caching. + * @param {string} type + * @return {Promise>} + */ + GLTFParser.prototype.getDependencies = function (type) { + + let dependencies = this.cache.get(type); + + if (!dependencies) { + + let parser = this; + let defs = this.json[type + (type === 'mesh' ? 'es' : 's')] || []; + + dependencies = Promise.all(defs.map(function (def, index) { + + return parser.getDependency(type, index); + + })); + + this.cache.add(type, dependencies); + + } + + return dependencies; + + }; + + /** + * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#buffers-and-buffer-views + * @param {number} bufferIndex + * @return {Promise} + */ + GLTFParser.prototype.loadBuffer = function (bufferIndex) { + + let bufferDef = this.json.buffers[bufferIndex]; + let loader = this.fileLoader; + + if (bufferDef.type && bufferDef.type !== 'arraybuffer') { + + throw new Error('THREE.GLTFLoader: ' + + bufferDef.type + ' buffer type is not supported.'); + + } + + // If present, GLB container is required to be the first buffer. + if (bufferDef.uri === undefined && bufferIndex === 0) { + + return Promise.resolve(this.extensions[EXTENSIONS.KHR_BINARY_GLTF].body); + + } + + let options = this.options; + + return new Promise(function (resolve, reject) { + + loader.load(resolveURL(bufferDef.uri, options.path), + resolve, undefined, + function () { + + reject(new Error('THREE.GLTFLoader: Failed to load buffer "' + + bufferDef.uri + '".')); + + }); + + }); + + }; + + /** + * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#buffers-and-buffer-views + * @param {number} bufferViewIndex + * @return {Promise} + */ + GLTFParser.prototype.loadBufferView = function (bufferViewIndex) { + + let bufferViewDef = this.json.bufferViews[bufferViewIndex]; + + return this.getDependency('buffer', bufferViewDef.buffer) + .then(function (buffer) { + + let byteLength = bufferViewDef.byteLength || 0; + let byteOffset = bufferViewDef.byteOffset || 0; + return buffer.slice(byteOffset, byteOffset + byteLength); + + }); + + }; + + /** + * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#accessors + * @param {number} accessorIndex + * @return {Promise} + */ + GLTFParser.prototype.loadAccessor = function (accessorIndex) { + + let parser = this; + let json = this.json; + + let accessorDef = this.json.accessors[accessorIndex]; + + if (accessorDef.bufferView === undefined && + accessorDef.sparse === undefined) { + + // Ignore empty accessors, which may be used to declare runtime + // information about attributes coming from another source (e.g. Draco + // compression extension). + return Promise.resolve(null); + + } + + let pendingBufferViews = []; + + if (accessorDef.bufferView !== undefined) { + + pendingBufferViews.push(this.getDependency('bufferView', + accessorDef.bufferView)); + + } else { + + pendingBufferViews.push(null); + + } + + if (accessorDef.sparse !== undefined) { + + pendingBufferViews.push(this.getDependency('bufferView', + accessorDef.sparse.indices.bufferView)); + pendingBufferViews.push(this.getDependency('bufferView', + accessorDef.sparse.values.bufferView)); + + } + + return Promise.all(pendingBufferViews).then(function (bufferViews) { + + let bufferView = bufferViews[0]; + + let itemSize = WEBGL_TYPE_SIZES[accessorDef.type]; + let TypedArray = WEBGL_COMPONENT_TYPES[accessorDef.componentType]; + + // For VEC3: itemSize is 3, elementBytes is 4, itemBytes is 12. + let elementBytes = TypedArray.BYTES_PER_ELEMENT; + let itemBytes = elementBytes * itemSize; + let byteOffset = accessorDef.byteOffset || 0; + let byteStride = accessorDef.bufferView !== + undefined ? json.bufferViews[accessorDef.bufferView].byteStride : undefined; + let normalized = accessorDef.normalized === true; + let array; + let bufferAttribute; + + // The buffer is not interleaved if the stride is the item size in bytes. + if (byteStride && byteStride !== itemBytes) { + + // Each "slice" of the buffer, as defined by 'count' elements of 'byteStride' bytes, gets its own InterleavedBuffer + // This makes sure that IBA.count reflects accessor.count properly + let ibSlice = Math.floor(byteOffset / byteStride); + let ibCacheKey = 'InterleavedBuffer:' + accessorDef.bufferView + + ':' + accessorDef.componentType + ':' + ibSlice + ':' + accessorDef.count; + let ib = parser.cache.get(ibCacheKey); + + if (!ib) { + + array = new TypedArray(bufferView, ibSlice * byteStride, + accessorDef.count * byteStride / elementBytes); + + // Integer parameters to IB/IBA are in array elements, not bytes. + ib = new THREE.InterleavedBuffer(array, byteStride / elementBytes); + + parser.cache.add(ibCacheKey, ib); + + } + + bufferAttribute = new THREE.InterleavedBufferAttribute(ib, itemSize, + (byteOffset % byteStride) / elementBytes, normalized); + + } else { + + if (bufferView === null) { + + array = new TypedArray(accessorDef.count * itemSize); + + } else { + + array = new TypedArray(bufferView, byteOffset, accessorDef.count * itemSize); + + } + + bufferAttribute = new THREE.BufferAttribute(array, itemSize, normalized); + + } + + // https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#sparse-accessors + if (accessorDef.sparse !== undefined) { + + let itemSizeIndices = WEBGL_TYPE_SIZES.SCALAR; + let TypedArrayIndices = + WEBGL_COMPONENT_TYPES[accessorDef.sparse.indices.componentType]; + + let byteOffsetIndices = accessorDef.sparse.indices.byteOffset || 0; + let byteOffsetValues = accessorDef.sparse.values.byteOffset || 0; + + let sparseIndices = new TypedArrayIndices(bufferViews[1], + byteOffsetIndices, accessorDef.sparse.count * itemSizeIndices); + let sparseValues = new TypedArray(bufferViews[2], + byteOffsetValues, accessorDef.sparse.count * itemSize); + + if (bufferView !== null) { + + // Avoid modifying the original ArrayBuffer, if the bufferView wasn't initialized with zeroes. + bufferAttribute.setArray(bufferAttribute.array.slice()); + + } + + for (let i = 0, il = sparseIndices.length; i < il; i++) { + + let index = sparseIndices[i]; + + bufferAttribute.setX(index, sparseValues[i * itemSize]); + if (itemSize >= 2) { + bufferAttribute.setY(index, sparseValues[i * itemSize + 1]); + } + if (itemSize >= 3) { + bufferAttribute.setZ(index, sparseValues[i * itemSize + 2]); + } + if (itemSize >= 4) { + bufferAttribute.setW(index, sparseValues[i * itemSize + 3]); + } + if (itemSize >= 5) { + throw new Error('THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.'); + } + + } + + } + + return bufferAttribute; + + }); + + }; + + /** + * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#textures + * @param {number} textureIndex + * @return {Promise} + */ + GLTFParser.prototype.loadTexture = function (textureIndex) { + + let parser = this; + let json = this.json; + let options = this.options; + let textureLoader = this.textureLoader; + + // var URL = window.URL || window.webkitURL; + + let URL = {}; + + let textureDef = json.textures[textureIndex]; + + let textureExtensions = textureDef.extensions || {}; + + let source; + + if (textureExtensions[EXTENSIONS.MSFT_TEXTURE_DDS]) { + + source = json.images[textureExtensions[EXTENSIONS.MSFT_TEXTURE_DDS].source]; + + } else { + + source = json.images[textureDef.source]; + + } + + let sourceURI = source.uri; + let isObjectURL = false; + + if (source.bufferView !== undefined) { + + // Load binary image data from bufferView, if provided. + + sourceURI = parser.getDependency('bufferView', source.bufferView) + .then(function (bufferView) { + + isObjectURL = true; + let blob = new Blob([bufferView], { + type: source.mimeType, + }); + sourceURI = URL.createObjectURL(blob); + return sourceURI; + + }); + + } + + return Promise.resolve(sourceURI).then(function (sourceURI) { + + // Load Texture resource. + + let loader = THREE.Loader.Handlers.get(sourceURI); + + if (!loader) { + + loader = textureExtensions[EXTENSIONS.MSFT_TEXTURE_DDS] ? + parser.extensions[EXTENSIONS.MSFT_TEXTURE_DDS].ddsLoader : + textureLoader; + + } + + return new Promise(function (resolve, reject) { + + loader.load(resolveURL(sourceURI, options.path), + resolve, undefined, reject); + + }); + + }).then(function (texture) { + + // Clean up resources and configure Texture. + + if (isObjectURL === true) { + + URL.revokeObjectURL(sourceURI); + + } + + texture.flipY = false; + + if (textureDef.name !== undefined) { + texture.name = textureDef.name; + } + + // Ignore unknown mime types, like DDS files. + if (source.mimeType in MIME_TYPE_FORMATS) { + + texture.format = MIME_TYPE_FORMATS[source.mimeType]; + + } + + let samplers = json.samplers || {}; + let sampler = samplers[textureDef.sampler] || {}; + + texture.magFilter = WEBGL_FILTERS[sampler.magFilter] || + THREE.LinearFilter; + texture.minFilter = WEBGL_FILTERS[sampler.minFilter] || + THREE.LinearMipmapLinearFilter; + texture.wrapS = WEBGL_WRAPPINGS[sampler.wrapS] || + THREE.RepeatWrapping; + texture.wrapT = WEBGL_WRAPPINGS[sampler.wrapT] || + THREE.RepeatWrapping; + + return texture; + + }); + + }; + + /** + * Asynchronously assigns a texture to the given material parameters. + * @param {Object} materialParams + * @param {string} mapName + * @param {Object} mapDef + * @return {Promise} + */ + GLTFParser.prototype.assignTexture = + function (materialParams, mapName, mapDef) { + + let parser = this; + + return this.getDependency('texture', mapDef.index) + .then(function (texture) { + + if (!texture.isCompressedTexture) { + + switch (mapName) { + + case 'aoMap': + case 'emissiveMap': + case 'metalnessMap': + case 'normalMap': + case 'roughnessMap': + texture.format = THREE.RGBFormat; + break; + + } + + } + + if (parser.extensions[EXTENSIONS.KHR_TEXTURE_TRANSFORM]) { + + let transform = mapDef.extensions !== + undefined ? + mapDef.extensions[EXTENSIONS.KHR_TEXTURE_TRANSFORM] : undefined; + + if (transform) { + + texture = parser.extensions[EXTENSIONS.KHR_TEXTURE_TRANSFORM] + .extendTexture(texture, transform); + + } + + } + + materialParams[mapName] = texture; + + }); + + }; + + /** + * Assigns final material to a Mesh, Line, or Points instance. The instance + * already has a material (generated from the glTF material options alone) + * but reuse of the same glTF material may require multiple threejs materials + * to accomodate different primitive types, defines, etc. New materials will + * be created if necessary, and reused from a cache. + * @param {THREE.Object3D} mesh Mesh, Line, or Points instance. + */ + GLTFParser.prototype.assignFinalMaterial = function (mesh) { + + let geometry = mesh.geometry; + let material = mesh.material; + let extensions = this.extensions; + + let useVertexTangents = geometry.attributes.tangent !== undefined; + let useVertexColors = geometry.attributes.color !== undefined; + let useFlatShading = geometry.attributes.normal === undefined; + let useSkinning = mesh.isSkinnedMesh === true; + let useMorphTargets = Object.keys(geometry.morphAttributes).length > 0; + let useMorphNormals = useMorphTargets && + geometry.morphAttributes.normal !== undefined; + + if (mesh.isPoints) { + + var cacheKey = 'PointsMaterial:' + material.uuid; + + let pointsMaterial = this.cache.get(cacheKey); + + if (!pointsMaterial) { + + pointsMaterial = new THREE.PointsMaterial(); + THREE.Material.prototype.copy.call(pointsMaterial, material); + pointsMaterial.color.copy(material.color); + pointsMaterial.map = material.map; + pointsMaterial.lights = false; // PointsMaterial doesn't support lights yet + pointsMaterial.sizeAttenuation = false; // glTF spec says points should be 1px + + this.cache.add(cacheKey, pointsMaterial); + + } + + material = pointsMaterial; + + } else if (mesh.isLine) { + + var cacheKey = 'LineBasicMaterial:' + material.uuid; + + let lineMaterial = this.cache.get(cacheKey); + + if (!lineMaterial) { + + lineMaterial = new THREE.LineBasicMaterial(); + THREE.Material.prototype.copy.call(lineMaterial, material); + lineMaterial.color.copy(material.color); + lineMaterial.lights = false; // LineBasicMaterial doesn't support lights yet + + this.cache.add(cacheKey, lineMaterial); + + } + + material = lineMaterial; + + } + + // Clone the material if it will be modified + if (useVertexTangents || useVertexColors || + useFlatShading || useSkinning || useMorphTargets) { + + var cacheKey = 'ClonedMaterial:' + material.uuid + ':'; + + if (material.isGLTFSpecularGlossinessMaterial) { + cacheKey += 'specular-glossiness:'; + } + if (useSkinning) { + cacheKey += 'skinning:'; + } + if (useVertexTangents) { + cacheKey += 'vertex-tangents:'; + } + if (useVertexColors) { + cacheKey += 'vertex-colors:'; + } + if (useFlatShading) { + cacheKey += 'flat-shading:'; + } + if (useMorphTargets) { + cacheKey += 'morph-targets:'; + } + if (useMorphNormals) { + cacheKey += 'morph-normals:'; + } + + let cachedMaterial = this.cache.get(cacheKey); + + if (!cachedMaterial) { + + cachedMaterial = material.isGLTFSpecularGlossinessMaterial ? + extensions[EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS] + .cloneMaterial(material) : + material.clone(); + + if (useSkinning) { + cachedMaterial.skinning = true; + } + if (useVertexTangents) { + cachedMaterial.vertexTangents = true; + } + if (useVertexColors) { + cachedMaterial.vertexColors = THREE.VertexColors; + } + if (useFlatShading) { + cachedMaterial.flatShading = true; + } + if (useMorphTargets) { + cachedMaterial.morphTargets = true; + } + if (useMorphNormals) { + cachedMaterial.morphNormals = true; + } + + this.cache.add(cacheKey, cachedMaterial); + + } + + material = cachedMaterial; + + } + + // workarounds for mesh and geometry + + if (material.aoMap && geometry.attributes.uv2 === + undefined && geometry.attributes.uv !== undefined) { + + console.log('THREE.GLTFLoader: Duplicating UVs to support aoMap.'); + geometry.addAttribute('uv2', + new THREE.BufferAttribute(geometry.attributes.uv.array, 2)); + + } + + if (material.isGLTFSpecularGlossinessMaterial) { + + // for GLTFSpecularGlossinessMaterial(ShaderMaterial) uniforms runtime update + mesh.onBeforeRender = extensions[ + EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].refreshUniforms; + + } + + mesh.material = material; + + }; + + /** + * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#materials + * @param {number} materialIndex + * @return {Promise} + */ + GLTFParser.prototype.loadMaterial = function (materialIndex) { + + let parser = this; + let json = this.json; + let extensions = this.extensions; + let materialDef = json.materials[materialIndex]; + + let materialType; + let materialParams = {}; + let materialExtensions = materialDef.extensions || {}; + + let pending = []; + + if (materialExtensions[EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]) { + + let sgExtension = extensions[EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]; + materialType = sgExtension.getMaterialType(); + pending.push(sgExtension.extendParams(materialParams, materialDef, parser)); + + } else if (materialExtensions[EXTENSIONS.KHR_MATERIALS_UNLIT]) { + + let kmuExtension = extensions[EXTENSIONS.KHR_MATERIALS_UNLIT]; + materialType = kmuExtension.getMaterialType(); + pending.push(kmuExtension.extendParams(materialParams, materialDef, parser)); + + } else { + + // Specification: + // https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#metallic-roughness-material + + materialType = THREE.MeshStandardMaterial; + + let metallicRoughness = materialDef.pbrMetallicRoughness || {}; + + materialParams.color = new THREE.Color(1.0, 1.0, 1.0); + materialParams.opacity = 1.0; + + if (Array.isArray(metallicRoughness.baseColorFactor)) { + + let array = metallicRoughness.baseColorFactor; + + materialParams.color.fromArray(array); + materialParams.opacity = array[3]; + + } + + if (metallicRoughness.baseColorTexture !== undefined) { + + pending.push(parser.assignTexture(materialParams, + 'map', metallicRoughness.baseColorTexture)); + + } + + materialParams.metalness = metallicRoughness.metallicFactor !== + undefined ? metallicRoughness.metallicFactor : 1.0; + materialParams.roughness = + metallicRoughness.roughnessFactor !== + undefined ? metallicRoughness.roughnessFactor : 1.0; + + if (metallicRoughness.metallicRoughnessTexture !== undefined) { + + pending.push(parser.assignTexture(materialParams, + 'metalnessMap', metallicRoughness.metallicRoughnessTexture)); + pending.push(parser.assignTexture(materialParams, + 'roughnessMap', metallicRoughness.metallicRoughnessTexture)); + + } + + } + + if (materialDef.doubleSided === true) { + + materialParams.side = THREE.DoubleSide; + + } + + let alphaMode = materialDef.alphaMode || ALPHA_MODES.OPAQUE; + + if (alphaMode === ALPHA_MODES.BLEND) { + + materialParams.transparent = true; + + } else { + + materialParams.transparent = false; + + if (alphaMode === ALPHA_MODES.MASK) { + + materialParams.alphaTest = materialDef.alphaCutoff !== + undefined ? materialDef.alphaCutoff : 0.5; + + } + + } + + if (materialDef.normalTexture !== undefined && + materialType !== THREE.MeshBasicMaterial) { + + pending.push(parser.assignTexture(materialParams, 'normalMap', + materialDef.normalTexture)); + + materialParams.normalScale = new THREE.Vector2(1, 1); + + if (materialDef.normalTexture.scale !== undefined) { + + materialParams.normalScale.set(materialDef.normalTexture.scale, + materialDef.normalTexture.scale); + + } + + } + + if (materialDef.occlusionTexture !== undefined && + materialType !== THREE.MeshBasicMaterial) { + + pending.push(parser.assignTexture(materialParams, 'aoMap', + materialDef.occlusionTexture)); + + if (materialDef.occlusionTexture.strength !== undefined) { + + materialParams.aoMapIntensity = materialDef.occlusionTexture.strength; + + } + + } + + if (materialDef.emissiveFactor !== undefined && + materialType !== THREE.MeshBasicMaterial) { + + materialParams.emissive = new THREE.Color().fromArray(materialDef.emissiveFactor); + + } + + if (materialDef.emissiveTexture !== undefined && + materialType !== THREE.MeshBasicMaterial) { + + pending.push(parser.assignTexture(materialParams, 'emissiveMap', materialDef.emissiveTexture)); + + } + + return Promise.all(pending).then(function () { + + let material; + + if (materialType === THREE.ShaderMaterial) { + + material = extensions[EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS] + .createMaterial(materialParams); + + } else { + + material = new materialType(materialParams); + + } + + if (materialDef.name !== undefined) { + material.name = materialDef.name; + } + + // baseColorTexture, emissiveTexture, and specularGlossinessTexture use sRGB encoding. + if (material.map) { + material.map.encoding = THREE.sRGBEncoding; + } + if (material.emissiveMap) { + material.emissiveMap.encoding = THREE.sRGBEncoding; + } + if (material.specularMap) { + material.specularMap.encoding = THREE.sRGBEncoding; + } + + assignExtrasToUserData(material, materialDef); + + if (materialDef.extensions) { + addUnknownExtensionsToUserData(extensions, material, materialDef); + } + + return material; + + }); + + }; + + /** + * @param {THREE.BufferGeometry} geometry + * @param {GLTF.Primitive} primitiveDef + * @param {GLTFParser} parser + * @return {Promise} + */ + function addPrimitiveAttributes(geometry, primitiveDef, parser) { + + let attributes = primitiveDef.attributes; + + let pending = []; + + function assignAttributeAccessor(accessorIndex, attributeName) { + + return parser.getDependency('accessor', accessorIndex) + .then(function (accessor) { + + geometry.addAttribute(attributeName, accessor); + + }); + + } + + for (let gltfAttributeName in attributes) { + + let threeAttributeName = ATTRIBUTES[gltfAttributeName] || + gltfAttributeName.toLowerCase(); + + // Skip attributes already provided by e.g. Draco extension. + if (threeAttributeName in geometry.attributes) { + continue; + } + + pending.push(assignAttributeAccessor(attributes[gltfAttributeName], + threeAttributeName)); + + } + + if (primitiveDef.indices !== undefined && !geometry.index) { + + let accessor = parser.getDependency('accessor', primitiveDef.indices) + .then(function (accessor) { + + geometry.setIndex(accessor); + + }); + + pending.push(accessor); + + } + + assignExtrasToUserData(geometry, primitiveDef); + + return Promise.all(pending).then(function () { + + return primitiveDef.targets !== undefined ? + addMorphTargets(geometry, primitiveDef.targets, parser) : + geometry; + + }); + + } + + /** + * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#geometry + * + * Creates BufferGeometries from primitives. + * + * @param {Array} primitives + * @return {Promise>} + */ + GLTFParser.prototype.loadGeometries = function (primitives) { + + let parser = this; + let extensions = this.extensions; + let cache = this.primitiveCache; + + function createDracoPrimitive(primitive) { + + return extensions[EXTENSIONS.KHR_DRACO_MESH_COMPRESSION] + .decodePrimitive(primitive, parser) + .then(function (geometry) { + + return addPrimitiveAttributes(geometry, primitive, parser); + + }); + + } + + let pending = []; + + for (let i = 0, il = primitives.length; i < il; i++) { + + let primitive = primitives[i]; + let cacheKey = createPrimitiveKey(primitive); + + // See if we've already created this geometry + let cached = cache[cacheKey]; + + if (cached) { + + // Use the cached geometry if it exists + pending.push(cached.promise); + + } else { + + var geometryPromise; + + if (primitive.extensions && + primitive.extensions[EXTENSIONS.KHR_DRACO_MESH_COMPRESSION]) { + + // Use DRACO geometry if available + geometryPromise = createDracoPrimitive(primitive); + + } else { + + // Otherwise create a new geometry + geometryPromise = addPrimitiveAttributes(new THREE.BufferGeometry(), + primitive, parser); + + } + + // Cache this geometry + cache[cacheKey] = { + primitive: primitive, + promise: geometryPromise, + }; + + pending.push(geometryPromise); + + } + + } + + return Promise.all(pending); + + }; + + /** + * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#meshes + * @param {number} meshIndex + * @return {Promise} + */ + GLTFParser.prototype.loadMesh = function (meshIndex) { + + let parser = this; + let json = this.json; + + let meshDef = json.meshes[meshIndex]; + let primitives = meshDef.primitives; + + let pending = []; + + for (let i = 0, il = primitives.length; i < il; i++) { + + let material = primitives[i].material === undefined ? + createDefaultMaterial() : + this.getDependency('material', primitives[i].material); + + pending.push(material); + + } + + return Promise.all(pending).then(function (originalMaterials) { + + return parser.loadGeometries(primitives).then(function (geometries) { + + let meshes = []; + + for (var i = 0, il = geometries.length; i < il; i++) { + + let geometry = geometries[i]; + let primitive = primitives[i]; + + // 1. create Mesh + + var mesh; + + let material = originalMaterials[i]; + + if (primitive.mode === WEBGL_CONSTANTS.TRIANGLES || + primitive.mode === WEBGL_CONSTANTS.TRIANGLE_STRIP || + primitive.mode === WEBGL_CONSTANTS.TRIANGLE_FAN || + primitive.mode === undefined) { + + // .isSkinnedMesh isn't in glTF spec. See .markDefs() + mesh = meshDef.isSkinnedMesh === true ? + new THREE.SkinnedMesh(geometry, material) : + new THREE.Mesh(geometry, material); + + if (mesh.isSkinnedMesh === true && !mesh.geometry.attributes.skinWeight.normalized) { + + // we normalize floating point skin weight array to fix malformed assets (see #15319) + // it's important to skip this for non-float32 data since normalizeSkinWeights assumes non-normalized inputs + mesh.normalizeSkinWeights(); + + } + + if (primitive.mode === WEBGL_CONSTANTS.TRIANGLE_STRIP) { + + mesh.drawMode = THREE.TriangleStripDrawMode; + + } else if (primitive.mode === WEBGL_CONSTANTS.TRIANGLE_FAN) { + + mesh.drawMode = THREE.TriangleFanDrawMode; + + } + + } else if (primitive.mode === WEBGL_CONSTANTS.LINES) { + + mesh = new THREE.LineSegments(geometry, material); + + } else if (primitive.mode === WEBGL_CONSTANTS.LINE_STRIP) { + + mesh = new THREE.Line(geometry, material); + + } else if (primitive.mode === WEBGL_CONSTANTS.LINE_LOOP) { + + mesh = new THREE.LineLoop(geometry, material); + + } else if (primitive.mode === WEBGL_CONSTANTS.POINTS) { + + mesh = new THREE.Points(geometry, material); + + } else { + + throw new Error('THREE.GLTFLoader: Primitive mode unsupported: ' + primitive.mode); + + } + + if (Object.keys(mesh.geometry.morphAttributes).length > 0) { + + updateMorphTargets(mesh, meshDef); + + } + + mesh.name = meshDef.name || ('mesh_' + meshIndex); + + if (geometries.length > 1) { + mesh.name += '_' + i; + } + + assignExtrasToUserData(mesh, meshDef); + + parser.assignFinalMaterial(mesh); + + meshes.push(mesh); + + } + + if (meshes.length === 1) { + + return meshes[0]; + + } + + let group = new THREE.Group(); + + for (var i = 0, il = meshes.length; i < il; i++) { + + group.add(meshes[i]); + + } + + return group; + + }); + + }); + + }; + + /** + * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#cameras + * @param {number} cameraIndex + * @return {Promise} + */ + GLTFParser.prototype.loadCamera = function (cameraIndex) { + + let camera; + let cameraDef = this.json.cameras[cameraIndex]; + let params = cameraDef[cameraDef.type]; + + if (!params) { + + console.warn('THREE.GLTFLoader: Missing camera parameters.'); + return; + + } + + if (cameraDef.type === 'perspective') { + + camera = new THREE.PerspectiveCamera( + THREE.Math.radToDeg(params.yfov), + params.aspectRatio || 1, + params.znear || 1, + params.zfar || 2e6); + + } else if (cameraDef.type === 'orthographic') { + + camera = new THREE.OrthographicCamera(params.xmag / -2, params.xmag / 2, + params.ymag / 2, params.ymag / -2, params.znear, params.zfar); + + } + + if (cameraDef.name !== undefined) { + camera.name = cameraDef.name; + } + + assignExtrasToUserData(camera, cameraDef); + + return Promise.resolve(camera); + + }; + + /** + * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#skins + * @param {number} skinIndex + * @return {Promise} + */ + GLTFParser.prototype.loadSkin = function (skinIndex) { + + let skinDef = this.json.skins[skinIndex]; + + let skinEntry = { + joints: skinDef.joints, + }; + + if (skinDef.inverseBindMatrices === undefined) { + + return Promise.resolve(skinEntry); + + } + + return this.getDependency('accessor', skinDef.inverseBindMatrices) + .then(function (accessor) { + + skinEntry.inverseBindMatrices = accessor; + + return skinEntry; + + }); + + }; + + /** + * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#animations + * @param {number} animationIndex + * @return {Promise} + */ + GLTFParser.prototype.loadAnimation = function (animationIndex) { + + let json = this.json; + + let animationDef = json.animations[animationIndex]; + + let pendingNodes = []; + let pendingInputAccessors = []; + let pendingOutputAccessors = []; + let pendingSamplers = []; + let pendingTargets = []; + + for (let i = 0, il = animationDef.channels.length; i < il; i++) { + + let channel = animationDef.channels[i]; + let sampler = animationDef.samplers[channel.sampler]; + let target = channel.target; + let name = target.node !== undefined ? target.node : target.id; // NOTE: target.id is deprecated. + let input = animationDef.parameters !== + undefined ? animationDef.parameters[sampler.input] : sampler.input; + let output = animationDef.parameters !== + undefined ? animationDef.parameters[sampler.output] : sampler.output; + + pendingNodes.push(this.getDependency('node', name)); + pendingInputAccessors.push(this.getDependency('accessor', input)); + pendingOutputAccessors.push(this.getDependency('accessor', output)); + pendingSamplers.push(sampler); + pendingTargets.push(target); + + } + + return Promise.all([ + + Promise.all(pendingNodes), + Promise.all(pendingInputAccessors), + Promise.all(pendingOutputAccessors), + Promise.all(pendingSamplers), + Promise.all(pendingTargets), + + ]).then(function (dependencies) { + + let nodes = dependencies[0]; + let inputAccessors = dependencies[1]; + let outputAccessors = dependencies[2]; + let samplers = dependencies[3]; + let targets = dependencies[4]; + + let tracks = []; + + for (let i = 0, il = nodes.length; i < il; i++) { + + let node = nodes[i]; + let inputAccessor = inputAccessors[i]; + let outputAccessor = outputAccessors[i]; + let sampler = samplers[i]; + let target = targets[i]; + + if (node === undefined) { + continue; + } + + node.updateMatrix(); + node.matrixAutoUpdate = true; + + var TypedKeyframeTrack; + + switch (PATH_PROPERTIES[target.path]) { + + case PATH_PROPERTIES.weights: + + TypedKeyframeTrack = THREE.NumberKeyframeTrack; + break; + + case PATH_PROPERTIES.rotation: + + TypedKeyframeTrack = THREE.QuaternionKeyframeTrack; + break; + + case PATH_PROPERTIES.position: + case PATH_PROPERTIES.scale: + default: + + TypedKeyframeTrack = THREE.VectorKeyframeTrack; + break; + + } + + let targetName = node.name ? node.name : node.uuid; + + let interpolation = sampler.interpolation !== + undefined ? INTERPOLATION[sampler.interpolation] : THREE.InterpolateLinear; + + var targetNames = []; + + if (PATH_PROPERTIES[target.path] === PATH_PROPERTIES.weights) { + + // Node may be a THREE.Group (glTF mesh with several primitives) or a THREE.Mesh. + node.traverse(function (object) { + + if (object.isMesh === true && object.morphTargetInfluences) { + + targetNames.push(object.name ? object.name : object.uuid); + + } + + }); + + } else { + + targetNames.push(targetName); + + } + + let outputArray = outputAccessor.array; + + if (outputAccessor.normalized) { + + var scale; + + if (outputArray.constructor === Int8Array) { + + scale = 1 / 127; + + } else if (outputArray.constructor === Uint8Array) { + + scale = 1 / 255; + + } else if (outputArray.constructor === Int16Array) { + + scale = 1 / 32767; + + } else if (outputArray.constructor === Uint16Array) { + + scale = 1 / 65535; + + } else { + + throw new Error('THREE.GLTFLoader: Unsupported output accessor component type.'); + + } + + let scaled = new Float32Array(outputArray.length); + + for (var j = 0, jl = outputArray.length; j < jl; j++) { + + scaled[j] = outputArray[j] * scale; + + } + + outputArray = scaled; + + } + + for (var j = 0, jl = targetNames.length; j < jl; j++) { + + let track = new TypedKeyframeTrack( + targetNames[j] + '.' + PATH_PROPERTIES[target.path], + inputAccessor.array, + outputArray, + interpolation + ); + + // Override interpolation with custom factory method. + if (sampler.interpolation === 'CUBICSPLINE') { + + track.createInterpolant = function InterpolantFactoryMethodGLTFCubicSpline(result) { + + // A CUBICSPLINE keyframe in glTF has three output values for each input value, + // representing inTangent, splineVertex, and outTangent. As a result, track.getValueSize() + // must be divided by three to get the interpolant's sampleSize argument. + + return new GLTFCubicSplineInterpolant(this.times, this.values, + this.getValueSize() / 3, result); + + }; + + // Mark as CUBICSPLINE. `track.getInterpolation()` doesn't support custom interpolants. + track.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline = true; + + } + + tracks.push(track); + + } + + } + + let name = animationDef.name !== + undefined ? animationDef.name : 'animation_' + animationIndex; + + return new THREE.AnimationClip(name, undefined, tracks); + + }); + + }; + + /** + * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#nodes-and-hierarchy + * @param {number} nodeIndex + * @return {Promise} + */ + GLTFParser.prototype.loadNode = function (nodeIndex) { + + let json = this.json; + let extensions = this.extensions; + let parser = this; + + let meshReferences = json.meshReferences; + let meshUses = json.meshUses; + + let nodeDef = json.nodes[nodeIndex]; + + return (function () { + + let pending = []; + + if (nodeDef.mesh !== undefined) { + + pending.push(parser.getDependency('mesh', nodeDef.mesh).then(function (mesh) { + + let node; + + if (meshReferences[nodeDef.mesh] > 1) { + + let instanceNum = meshUses[nodeDef.mesh]++; + + node = mesh.clone(); + node.name += '_instance_' + instanceNum; + + // onBeforeRender copy for Specular-Glossiness + node.onBeforeRender = mesh.onBeforeRender; + + for (let i = 0, il = node.children.length; i < il; i++) { + + node.children[i].name += '_instance_' + instanceNum; + node.children[i].onBeforeRender = mesh.children[i].onBeforeRender; + + } + + } else { + + node = mesh; + + } + + // if weights are provided on the node, override weights on the mesh. + if (nodeDef.weights !== undefined) { + + node.traverse(function (o) { + + if (!o.isMesh) { + return; + } + + for (let i = 0, il = nodeDef.weights.length; i < il; i++) { + + o.morphTargetInfluences[i] = nodeDef.weights[i]; + + } + + }); + + } + + return node; + + })); + + } + + if (nodeDef.camera !== undefined) { + + pending.push(parser.getDependency('camera', nodeDef.camera)); + + } + + if (nodeDef.extensions && + nodeDef.extensions[EXTENSIONS.KHR_LIGHTS_PUNCTUAL] && + nodeDef.extensions[EXTENSIONS.KHR_LIGHTS_PUNCTUAL].light !== undefined) { + + pending.push(parser.getDependency('light', + nodeDef.extensions[EXTENSIONS.KHR_LIGHTS_PUNCTUAL].light)); + + } + + return Promise.all(pending); + + }()).then(function (objects) { + + let node; + + // .isBone isn't in glTF spec. See .markDefs + if (nodeDef.isBone === true) { + + node = new THREE.Bone(); + + } else if (objects.length > 1) { + + node = new THREE.Group(); + + } else if (objects.length === 1) { + + node = objects[0]; + + } else { + + node = new THREE.Object3D(); + + } + + if (node !== objects[0]) { + + for (let i = 0, il = objects.length; i < il; i++) { + + node.add(objects[i]); + + } + + } + + if (nodeDef.name !== undefined) { + + node.userData.name = nodeDef.name; + node.name = THREE.PropertyBinding.sanitizeNodeName(nodeDef.name); + + } + + assignExtrasToUserData(node, nodeDef); + + if (nodeDef.extensions) { + addUnknownExtensionsToUserData(extensions, node, nodeDef); + } + + if (nodeDef.matrix !== undefined) { + + let matrix = new THREE.Matrix4(); + matrix.fromArray(nodeDef.matrix); + node.applyMatrix(matrix); + + } else { + + if (nodeDef.translation !== undefined) { + + node.position.fromArray(nodeDef.translation); + + } + + if (nodeDef.rotation !== undefined) { + + node.quaternion.fromArray(nodeDef.rotation); + + } + + if (nodeDef.scale !== undefined) { + + node.scale.fromArray(nodeDef.scale); + + } + + } + + return node; + + }); + + }; + + /** + * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#scenes + * @param {number} sceneIndex + * @return {Promise} + */ + GLTFParser.prototype.loadScene = (function () { + + // scene node hierachy builder + + function buildNodeHierachy(nodeId, parentObject, json, parser) { + + let nodeDef = json.nodes[nodeId]; + + return parser.getDependency('node', nodeId).then(function (node) { + + if (nodeDef.skin === undefined) { + return node; + } + + // build skeleton here as well + + let skinEntry; + + return parser.getDependency('skin', nodeDef.skin).then(function (skin) { + + skinEntry = skin; + + let pendingJoints = []; + + for (let i = 0, il = skinEntry.joints.length; i < il; i++) { + + pendingJoints.push(parser.getDependency('node', skinEntry.joints[i])); + + } + + return Promise.all(pendingJoints); + + }).then(function (jointNodes) { + + node.traverse(function (mesh) { + + if (!mesh.isMesh) { + return; + } + + let bones = []; + let boneInverses = []; + + for (let j = 0, jl = jointNodes.length; j < jl; j++) { + + let jointNode = jointNodes[j]; + + if (jointNode) { + + bones.push(jointNode); + + let mat = new THREE.Matrix4(); + + if (skinEntry.inverseBindMatrices !== undefined) { + + mat.fromArray(skinEntry.inverseBindMatrices.array, j * 16); + + } + + boneInverses.push(mat); + + } else { + + console.warn('THREE.GLTFLoader: Joint "%s" could not be found.', + skinEntry.joints[j]); + + } + + } + + mesh.bind(new THREE.Skeleton(bones, boneInverses), mesh.matrixWorld); + + }); + + return node; + + }); + + }).then(function (node) { + + // build node hierachy + + parentObject.add(node); + + let pending = []; + + if (nodeDef.children) { + + let children = nodeDef.children; + + for (let i = 0, il = children.length; i < il; i++) { + + let child = children[i]; + pending.push(buildNodeHierachy(child, node, json, parser)); + + } + + } + + return Promise.all(pending); + + }); + + } + + return function loadScene(sceneIndex) { + + let json = this.json; + let extensions = this.extensions; + let sceneDef = this.json.scenes[sceneIndex]; + let parser = this; + + let scene = new THREE.Scene(); + if (sceneDef.name !== undefined) { + scene.name = sceneDef.name; + } + + assignExtrasToUserData(scene, sceneDef); + + if (sceneDef.extensions) { + addUnknownExtensionsToUserData(extensions, scene, sceneDef); + } + + let nodeIds = sceneDef.nodes || []; + + let pending = []; + + for (let i = 0, il = nodeIds.length; i < il; i++) { + + pending.push(buildNodeHierachy(nodeIds[i], scene, json, parser)); + + } + + return Promise.all(pending).then(function () { + + return scene; + + }); + + }; + + }()); + + return GLTFLoader; + + })(); +} \ No newline at end of file diff --git a/miniprogram_npm/dijkstrajs/index.js b/miniprogram_npm/dijkstrajs/index.js new file mode 100644 index 0000000..18795fb --- /dev/null +++ b/miniprogram_npm/dijkstrajs/index.js @@ -0,0 +1,178 @@ +module.exports = (function() { +var __MODS__ = {}; +var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; }; +var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; }; +var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } }; +var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; }; +__DEFINE__(1629248775416, function(require, module, exports) { + + +/****************************************************************************** + * Created 2008-08-19. + * + * Dijkstra path-finding functions. Adapted from the Dijkstar Python project. + * + * Copyright (C) 2008 + * Wyatt Baldwin + * All rights reserved + * + * Licensed under the MIT license. + * + * http://www.opensource.org/licenses/mit-license.php + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + *****************************************************************************/ +var dijkstra = { + single_source_shortest_paths: function(graph, s, d) { + // Predecessor map for each node that has been encountered. + // node ID => predecessor node ID + var predecessors = {}; + + // Costs of shortest paths from s to all nodes encountered. + // node ID => cost + var costs = {}; + costs[s] = 0; + + // Costs of shortest paths from s to all nodes encountered; differs from + // `costs` in that it provides easy access to the node that currently has + // the known shortest path from s. + // XXX: Do we actually need both `costs` and `open`? + var open = dijkstra.PriorityQueue.make(); + open.push(s, 0); + + var closest, + u, v, + cost_of_s_to_u, + adjacent_nodes, + cost_of_e, + cost_of_s_to_u_plus_cost_of_e, + cost_of_s_to_v, + first_visit; + while (!open.empty()) { + // In the nodes remaining in graph that have a known cost from s, + // find the node, u, that currently has the shortest path from s. + closest = open.pop(); + u = closest.value; + cost_of_s_to_u = closest.cost; + + // Get nodes adjacent to u... + adjacent_nodes = graph[u] || {}; + + // ...and explore the edges that connect u to those nodes, updating + // the cost of the shortest paths to any or all of those nodes as + // necessary. v is the node across the current edge from u. + for (v in adjacent_nodes) { + if (adjacent_nodes.hasOwnProperty(v)) { + // Get the cost of the edge running from u to v. + cost_of_e = adjacent_nodes[v]; + + // Cost of s to u plus the cost of u to v across e--this is *a* + // cost from s to v that may or may not be less than the current + // known cost to v. + cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e; + + // If we haven't visited v yet OR if the current known cost from s to + // v is greater than the new cost we just found (cost of s to u plus + // cost of u to v across e), update v's cost in the cost list and + // update v's predecessor in the predecessor list (it's now u). + cost_of_s_to_v = costs[v]; + first_visit = (typeof costs[v] === 'undefined'); + if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) { + costs[v] = cost_of_s_to_u_plus_cost_of_e; + open.push(v, cost_of_s_to_u_plus_cost_of_e); + predecessors[v] = u; + } + } + } + } + + if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') { + var msg = ['Could not find a path from ', s, ' to ', d, '.'].join(''); + throw new Error(msg); + } + + return predecessors; + }, + + extract_shortest_path_from_predecessor_list: function(predecessors, d) { + var nodes = []; + var u = d; + var predecessor; + while (u) { + nodes.push(u); + predecessor = predecessors[u]; + u = predecessors[u]; + } + nodes.reverse(); + return nodes; + }, + + find_path: function(graph, s, d) { + var predecessors = dijkstra.single_source_shortest_paths(graph, s, d); + return dijkstra.extract_shortest_path_from_predecessor_list( + predecessors, d); + }, + + /** + * A very naive priority queue implementation. + */ + PriorityQueue: { + make: function (opts) { + var T = dijkstra.PriorityQueue, + t = {}, + key; + opts = opts || {}; + for (key in T) { + if (T.hasOwnProperty(key)) { + t[key] = T[key]; + } + } + t.queue = []; + t.sorter = opts.sorter || T.default_sorter; + return t; + }, + + default_sorter: function (a, b) { + return a.cost - b.cost; + }, + + /** + * Add a new item to the queue and ensure the highest priority element + * is at the front of the queue. + */ + push: function (value, cost) { + var item = {value: value, cost: cost}; + this.queue.push(item); + this.queue.sort(this.sorter); + }, + + /** + * Return the highest priority element in the queue. + */ + pop: function () { + return this.queue.shift(); + }, + + empty: function () { + return this.queue.length === 0; + } + } +}; + + +// node.js module exports +if (typeof module !== 'undefined') { + module.exports = dijkstra; +} + +}, function(modId) {var map = {}; return __REQUIRE__(map[modId], modId); }) +return __REQUIRE__(1629248775416); +})() +//miniprogram-npm-outsideDeps=[] +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/miniprogram_npm/dijkstrajs/index.js.map b/miniprogram_npm/dijkstrajs/index.js.map new file mode 100644 index 0000000..49ad7f7 --- /dev/null +++ b/miniprogram_npm/dijkstrajs/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["dijkstra.js"],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.js","sourcesContent":["\n\n/******************************************************************************\n * Created 2008-08-19.\n *\n * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n *\n * Copyright (C) 2008\n * Wyatt Baldwin \n * All rights reserved\n *\n * Licensed under the MIT license.\n *\n * http://www.opensource.org/licenses/mit-license.php\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *****************************************************************************/\nvar dijkstra = {\n single_source_shortest_paths: function(graph, s, d) {\n // Predecessor map for each node that has been encountered.\n // node ID => predecessor node ID\n var predecessors = {};\n\n // Costs of shortest paths from s to all nodes encountered.\n // node ID => cost\n var costs = {};\n costs[s] = 0;\n\n // Costs of shortest paths from s to all nodes encountered; differs from\n // `costs` in that it provides easy access to the node that currently has\n // the known shortest path from s.\n // XXX: Do we actually need both `costs` and `open`?\n var open = dijkstra.PriorityQueue.make();\n open.push(s, 0);\n\n var closest,\n u, v,\n cost_of_s_to_u,\n adjacent_nodes,\n cost_of_e,\n cost_of_s_to_u_plus_cost_of_e,\n cost_of_s_to_v,\n first_visit;\n while (!open.empty()) {\n // In the nodes remaining in graph that have a known cost from s,\n // find the node, u, that currently has the shortest path from s.\n closest = open.pop();\n u = closest.value;\n cost_of_s_to_u = closest.cost;\n\n // Get nodes adjacent to u...\n adjacent_nodes = graph[u] || {};\n\n // ...and explore the edges that connect u to those nodes, updating\n // the cost of the shortest paths to any or all of those nodes as\n // necessary. v is the node across the current edge from u.\n for (v in adjacent_nodes) {\n if (adjacent_nodes.hasOwnProperty(v)) {\n // Get the cost of the edge running from u to v.\n cost_of_e = adjacent_nodes[v];\n\n // Cost of s to u plus the cost of u to v across e--this is *a*\n // cost from s to v that may or may not be less than the current\n // known cost to v.\n cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n // If we haven't visited v yet OR if the current known cost from s to\n // v is greater than the new cost we just found (cost of s to u plus\n // cost of u to v across e), update v's cost in the cost list and\n // update v's predecessor in the predecessor list (it's now u).\n cost_of_s_to_v = costs[v];\n first_visit = (typeof costs[v] === 'undefined');\n if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n costs[v] = cost_of_s_to_u_plus_cost_of_e;\n open.push(v, cost_of_s_to_u_plus_cost_of_e);\n predecessors[v] = u;\n }\n }\n }\n }\n\n if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n throw new Error(msg);\n }\n\n return predecessors;\n },\n\n extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n var nodes = [];\n var u = d;\n var predecessor;\n while (u) {\n nodes.push(u);\n predecessor = predecessors[u];\n u = predecessors[u];\n }\n nodes.reverse();\n return nodes;\n },\n\n find_path: function(graph, s, d) {\n var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n return dijkstra.extract_shortest_path_from_predecessor_list(\n predecessors, d);\n },\n\n /**\n * A very naive priority queue implementation.\n */\n PriorityQueue: {\n make: function (opts) {\n var T = dijkstra.PriorityQueue,\n t = {},\n key;\n opts = opts || {};\n for (key in T) {\n if (T.hasOwnProperty(key)) {\n t[key] = T[key];\n }\n }\n t.queue = [];\n t.sorter = opts.sorter || T.default_sorter;\n return t;\n },\n\n default_sorter: function (a, b) {\n return a.cost - b.cost;\n },\n\n /**\n * Add a new item to the queue and ensure the highest priority element\n * is at the front of the queue.\n */\n push: function (value, cost) {\n var item = {value: value, cost: cost};\n this.queue.push(item);\n this.queue.sort(this.sorter);\n },\n\n /**\n * Return the highest priority element in the queue.\n */\n pop: function () {\n return this.queue.shift();\n },\n\n empty: function () {\n return this.queue.length === 0;\n }\n }\n};\n\n\n// node.js module exports\nif (typeof module !== 'undefined') {\n module.exports = dijkstra;\n}\n"]} \ No newline at end of file diff --git a/miniprogram_npm/lottie-miniprogram/index.d.ts b/miniprogram_npm/lottie-miniprogram/index.d.ts new file mode 100644 index 0000000..4798b6e --- /dev/null +++ b/miniprogram_npm/lottie-miniprogram/index.d.ts @@ -0,0 +1,50 @@ +type BaseRendererConfig = { + imagePreserveAspectRatio?: string; + className?: string; +}; + +type CanvasRendererConfig = BaseRendererConfig & { + clearCanvas?: boolean; + context: CanvasRenderingContext2D; + progressiveLoad?: boolean; + preserveAspectRatio?: string; +}; + +interface LoadAnimationParameter { + renderer?: 'canvas'; + loop?: boolean | number; + autoplay?: boolean; + name?: string; + rendererSettings?: CanvasRendererConfig; + animationData?: any; + path?: string; +} + +type AnimationDirection = 1 | -1; +type AnimationSegment = [number, number]; +type AnimationEventName = 'enterFrame' | 'loopComplete' | 'complete' | 'segmentStart' | 'destroy'; +type AnimationEventCallback = (args: T) => void; + +interface LoadAnimationReturnType { + play(): void; + stop(): void; + pause(): void; + setSpeed(speed: number): void; + goToAndPlay(value: number, isFrame?: boolean): void; + goToAndStop(value: number, isFrame?: boolean): void; + setDirection(direction: AnimationDirection): void; + playSegments(segments: AnimationSegment | AnimationSegment[], forceFlag?: boolean): void; + setSubframe(useSubFrames: boolean): void; + destroy(): void; + getDuration(inFrames?: boolean): number; + triggerEvent(name: AnimationEventName, args: T): void; + addEventListener(name: AnimationEventName, callback: AnimationEventCallback): void; + removeEventListener(name: AnimationEventName, callback: AnimationEventCallback): void; +} + +declare module lottie { + var loadAnimation: (options: LoadAnimationParameter) => LoadAnimationReturnType; + var setup: (node: any) => void; +} + +export default lottie; diff --git a/miniprogram_npm/lottie-miniprogram/index.js b/miniprogram_npm/lottie-miniprogram/index.js new file mode 100644 index 0000000..f776464 --- /dev/null +++ b/miniprogram_npm/lottie-miniprogram/index.js @@ -0,0 +1,9 @@ +!function(t,e){for(var r in e)t[r]=e[r]}(exports,function(t){var e={};function r(i){if(e[i])return e[i].exports;var s=e[i]={i:i,l:!1,exports:{}};return t[i].call(s.exports,s,s.exports,r),s.l=!0,s.exports}return r.m=t,r.c=e,r.d=function(t,e,i){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(r.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var s in t)r.d(i,s,function(e){return t[e]}.bind(null,s));return i},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=1)}([function(t,e,r){"use strict";function i(t,e){for(var r=0;r1?e-1:0),i=1;i0&&void 0!==arguments[0]?arguments[0]:"";if(this.readyState!==t.OPENED)throw new Error("Failed to execute 'send' on 'XMLHttpRequest': The object's state must be OPENED.");wx.request({data:r,url:a.get(this),method:n.get(this),header:o.get(this),success:function(r){var i=r.data,s=r.statusCode,a=r.header;if("string"!=typeof i&&!(i instanceof ArrayBuffer))try{i=JSON.stringify(i)}catch(t){}if(e.status=s,h.set(e,a),p.call(e,"loadstart"),f.call(e,t.HEADERS_RECEIVED),f.call(e,t.LOADING),e.response=i,i instanceof ArrayBuffer){e.responseText="";for(var n=new Uint8Array(i),o=n.byteLength,l=0;l1?r[1]=1:r[1]<=0&&(r[1]=0),HSVtoRGB(r[0],r[1],r[2])}function addBrightnessToRGB(t,e){var r=RGBtoHSV(255*t[0],255*t[1],255*t[2]);return r[2]+=e,r[2]>1?r[2]=1:r[2]<0&&(r[2]=0),HSVtoRGB(r[0],r[1],r[2])}function addHueToRGB(t,e){var r=RGBtoHSV(255*t[0],255*t[1],255*t[2]);return r[0]+=e/360,r[0]>1?r[0]-=1:r[0]<0&&(r[0]+=1),HSVtoRGB(r[0],r[1],r[2])}var rgbToHex=function(){var t,e,r=[];for(t=0;t<256;t+=1)e=t.toString(16),r[t]=1==e.length?"0"+e:e;return function(t,e,i){return t<0&&(t=0),e<0&&(e=0),i<0&&(i=0),"#"+r[t]+r[e]+r[i]}}();function BaseEvent(){}BaseEvent.prototype={triggerEvent:function(t,e){if(this._cbs[t])for(var r=this._cbs[t].length,i=0;i0||t>-1e-6&&t<0?i(1e4*t)/1e4:t}function I(){var t=this.props;return"matrix("+M(t[0])+","+M(t[1])+","+M(t[4])+","+M(t[5])+","+M(t[12])+","+M(t[13])+")"}return function(){this.reset=s,this.rotate=a,this.rotateX=n,this.rotateY=o,this.rotateZ=h,this.skew=p,this.skewFromAxis=f,this.shear=l,this.scale=m,this.setTransform=c,this.translate=d,this.transform=u,this.applyToPoint=P,this.applyToX=_,this.applyToY=x,this.applyToZ=S,this.applyToPointArray=A,this.applyToTriplePoints=C,this.applyToPointStringified=k,this.toCSS=D,this.to2dCSS=I,this.clone=v,this.cloneFromProps=b,this.equals=g,this.inversePoints=T,this.inversePoint=E,this._t=this.transform,this.isIdentity=y,this._identity=!0,this._identityCalculated=!1,this.props=createTypedArray("float32",16),this.reset()}}(); +/*! + Transformation Matrix v2.0 + (c) Epistemex 2014-2015 + www.epistemex.com + By Ken Fyrstenberg + Contributions by leeoniya. + License: MIT, header required. + */!function(t,e){var r=this,i=e.pow(256,6),s=e.pow(2,52),a=2*s;function n(t){var e,r=t.length,i=this,s=0,a=i.i=i.j=0,n=i.S=[];for(r||(t=[r++]);s<256;)n[s]=s++;for(s=0;s<256;s++)n[s]=n[a=255&a+t[s%r]+(e=n[s])],n[a]=e;i.g=function(t){for(var e,r=0,s=i.i,a=i.j,n=i.S;t--;)e=n[s=255&s+1],r=256*r+n[255&(n[s]=n[a=255&a+e])+(n[a]=e)];return i.i=s,i.j=a,r}}function o(t,e){return e.i=t.i,e.j=t.j,e.S=t.S.slice(),e}function h(t,e){for(var r,i=t+"",s=0;s=a;)t/=2,e/=2,r>>>=1;return(t+r)/e};return y.int32=function(){return 0|u.g(4)},y.quick=function(){return u.g(4)/4294967296},y.double=y,h(l(u.S),t),(f.pass||m||function(t,r,i,s){return s&&(s.S&&o(s,u),t.state=function(){return o(u,{})}),i?(e.random=t,r):t})(y,d,"global"in f?f.global:this==e,f.state)},h(e.random(),t)}([],BMMath);var BezierFactory=function(){var t={getBezierEasing:function(t,r,i,s,a){var n=a||("bez_"+t+"_"+r+"_"+i+"_"+s).replace(/\./g,"p");if(e[n])return e[n];var o=new h([t,r,i,s]);return e[n]=o,o}},e={};var r="function"==typeof Float32Array;function i(t,e){return 1-3*e+3*t}function s(t,e){return 3*e-6*t}function a(t){return 3*t}function n(t,e,r){return((i(e,r)*t+s(e,r))*t+a(e))*t}function o(t,e,r){return 3*i(e,r)*t*t+2*s(e,r)*t+a(e)}function h(t){this._p=t,this._mSampleValues=r?new Float32Array(11):new Array(11),this._precomputed=!1,this.get=this.get.bind(this)}return h.prototype={get:function(t){var e=this._p[0],r=this._p[1],i=this._p[2],s=this._p[3];return this._precomputed||this._precompute(),e===r&&i===s?t:0===t?0:1===t?1:n(this._getTForX(t),r,s)},_precompute:function(){var t=this._p[0],e=this._p[1],r=this._p[2],i=this._p[3];this._precomputed=!0,t===e&&r===i||this._calcSampleValues()},_calcSampleValues:function(){for(var t=this._p[0],e=this._p[2],r=0;r<11;++r)this._mSampleValues[r]=n(.1*r,t,e)},_getTForX:function(t){for(var e=this._p[0],r=this._p[2],i=this._mSampleValues,s=0,a=1;10!==a&&i[a]<=t;++a)s+=.1;var h=s+.1*((t-i[--a])/(i[a+1]-i[a])),l=o(h,e,r);return l>=.001?function(t,e,r,i){for(var s=0;s<4;++s){var a=o(e,r,i);if(0===a)return e;e-=(n(e,r,i)-t)/a}return e}(t,h,e,r):0===l?h:function(t,e,r,i,s){var a,o,h=0;do{(a=n(o=e+(r-e)/2,i,s)-t)>0?r=o:e=o}while(Math.abs(a)>1e-7&&++h<10);return o}(t,s,s+.1,e,r)}},t}();function extendPrototype(t,e){var r,i,s=t.length;for(r=0;r-.001&&n<.001}var e=function(t,e,r,i){var s,a,n,o,h,l,p=defaultCurveSegments,f=0,m=[],c=[],d=bezier_length_pool.newElement();for(n=r.length,s=0;sn?-1:1,l=!0;l;)if(i[a]<=n&&i[a+1]>n?(o=(n-i[a])/(i[a+1]-i[a]),l=!1):a+=h,a<0||a>=s-1){if(a===s-1)return r[a];l=!1}return r[a]+(r[a+1]-r[a])*o}var o=createTypedArray("float32",8);return{getSegmentsLength:function(t){var r,i=segments_length_pool.newElement(),s=t.c,a=t.v,n=t.o,o=t.i,h=t._length,l=i.lengths,p=0;for(r=0;r1?1:s,h),f=n(a=a>1?1:a,h),m=t.length,c=1-p,d=1-f,u=c*c*c,y=p*c*c*3,g=p*p*c*3,v=p*p*p,b=c*c*d,P=p*c*d+c*p*d+c*c*f,_=p*p*d+c*p*f+p*c*f,x=p*p*f,S=c*d*d,E=p*d*d+c*f*d+c*d*f,T=p*f*d+c*f*f+p*d*f,C=p*f*f,A=d*d*d,k=f*d*d+d*f*d+d*d*f,D=f*f*d+d*f*f+f*d*f,M=f*f*f;for(l=0;lm?f>c?f-m-c:c-m-f:c>m?c-m-f:m-f-c)>-1e-4&&p<1e-4}}}!function(){for(var t=0,e=["ms","moz","webkit","o"],r=0;r=0;i-=1)if("sh"==t[i].ty){if(t[i].ks.k.i)r(t[i].ks.k);else for(a=t[i].ks.k.length,s=0;sr[0]||!(r[0]>t[0])&&(t[1]>r[1]||!(r[1]>t[1])&&(t[2]>r[2]||!(r[2]>t[2])&&void 0))}var s,a=function(){var t=[4,4,14];function e(t){var e,r,i,s=t.length;for(e=0;e=0;r-=1)if("sh"==t[r].ty){if(t[r].ks.k.i)t[r].ks.k.c=t[r].closed;else for(s=t[r].ks.k.length,i=0;i0&&(p=!1),p){var f=createTag("style");f.setAttribute("f-forigin",a[s].fOrigin),f.setAttribute("f-origin",a[s].origin),f.setAttribute("f-family",a[s].fFamily),f.type="text/css",f.innerHTML="@font-face {font-family: "+a[s].fFamily+"; font-style: normal; src: url('"+a[s].fPath+"');}",e.appendChild(f)}}else if("g"===a[s].fOrigin||1===a[s].origin){for(h=document.querySelectorAll('link[f-forigin="g"], link[f-origin="1"]'),l=0;l=n.t-s){a.h&&(a=n),c=0;break}if(n.t-s>t){c=d;break}d=v||t=v?P.points.length-1:0;for(h=P.points[_].point.length,o=0;o=E&&S=v)r[0]=g[0],r[1]=g[1],r[2]=g[2];else if(t<=b)r[0]=a.s[0],r[1]=a.s[1],r[2]=a.s[2];else{!function(t,e){var r=e[0],i=e[1],s=e[2],a=e[3],n=Math.atan2(2*i*a-2*r*s,1-2*i*i-2*s*s),o=Math.asin(2*r*i+2*s*a),h=Math.atan2(2*r*a-2*i*s,1-2*r*r-2*s*s);t[0]=n/degToRads,t[1]=o/degToRads,t[2]=h/degToRads}(r,function(t,e,r){var i,s,a,n,o,h=[],l=t[0],p=t[1],f=t[2],m=t[3],c=e[0],d=e[1],u=e[2],y=e[3];(s=l*c+p*d+f*u+m*y)<0&&(s=-s,c=-c,d=-d,u=-u,y=-y);1-s>1e-6?(i=Math.acos(s),a=Math.sin(i),n=Math.sin((1-r)*i)/a,o=Math.sin(r*i)/a):(n=1-r,o=r);return h[0]=n*l+o*c,h[1]=n*p+o*d,h[2]=n*f+o*u,h[3]=n*m+o*y,h}(i(a.s),i(g),(t-b)/(v-b)))}else for(d=0;d=v?l=1:t=i&&e>=i||this._caching.lastFrame=e&&(this._caching._lastKeyframeIndex=-1,this._caching.lastIndex=0);var s=this.interpolateValue(e,this._caching);this.pv=s}return this._caching.lastFrame=e,this.pv}function a(t){var r;if("unidimensional"===this.propType)r=t*this.mult,e(this.v-r)>1e-5&&(this.v=r,this._mdf=!0);else for(var i=0,s=this.v.length;i1e-5&&(this.v[i]=r,this._mdf=!0),i+=1}function n(){if(this.elem.globalData.frameId!==this.frameId&&this.effectsSequence.length)if(this.lock)this.setVValue(this.pv);else{this.lock=!0,this._mdf=this._isFirstFrame;var t,e=this.effectsSequence.length,r=this.kf?this.pv:this.data.k;for(t=0;t=this.p.keyframes[this.p.keyframes.length-1].t?(e=this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length-1].t/i,0),r=this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length-1].t-.01)/i,0)):(e=this.p.pv,r=this.p.getValueAtTime((this.p._caching.lastFrame+this.p.offsetTime-.01)/i,this.p.offsetTime));else if(this.px&&this.px.keyframes&&this.py.keyframes&&this.px.getValueAtTime&&this.py.getValueAtTime){e=[],r=[];var s=this.px,a=this.py;s._caching.lastFrame+s.offsetTime<=s.keyframes[0].t?(e[0]=s.getValueAtTime((s.keyframes[0].t+.01)/i,0),e[1]=a.getValueAtTime((a.keyframes[0].t+.01)/i,0),r[0]=s.getValueAtTime(s.keyframes[0].t/i,0),r[1]=a.getValueAtTime(a.keyframes[0].t/i,0)):s._caching.lastFrame+s.offsetTime>=s.keyframes[s.keyframes.length-1].t?(e[0]=s.getValueAtTime(s.keyframes[s.keyframes.length-1].t/i,0),e[1]=a.getValueAtTime(a.keyframes[a.keyframes.length-1].t/i,0),r[0]=s.getValueAtTime((s.keyframes[s.keyframes.length-1].t-.01)/i,0),r[1]=a.getValueAtTime((a.keyframes[a.keyframes.length-1].t-.01)/i,0)):(e=[s.pv,a.pv],r[0]=s.getValueAtTime((s._caching.lastFrame+s.offsetTime-.01)/i,s.offsetTime),r[1]=a.getValueAtTime((a._caching.lastFrame+a.offsetTime-.01)/i,a.offsetTime))}this.v.rotate(-Math.atan2(e[1]-r[1],e[0]-r[0]))}this.data.p&&this.data.p.s?this.data.p.z?this.v.translate(this.px.v,this.py.v,-this.pz.v):this.v.translate(this.px.v,this.py.v,0):this.v.translate(this.p.v[0],this.p.v[1],-this.p.v[2])}this.frameId=this.elem.globalData.frameId}},precalculateMatrix:function(){if(!this.a.k&&(this.pre.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]),this.appliedTransformations=1,!this.s.effectsSequence.length)){if(this.pre.scale(this.s.v[0],this.s.v[1],this.s.v[2]),this.appliedTransformations=2,this.sk){if(this.sk.effectsSequence.length||this.sa.effectsSequence.length)return;this.pre.skewFromAxis(-this.sk.v,this.sa.v),this.appliedTransformations=3}if(this.r){if(this.r.effectsSequence.length)return;this.pre.rotate(-this.r.v),this.appliedTransformations=4}else this.rz.effectsSequence.length||this.ry.effectsSequence.length||this.rx.effectsSequence.length||this.or.effectsSequence.length||(this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]),this.appliedTransformations=4)}},autoOrient:function(){}},extendPrototype([DynamicPropertyContainer],t),t.prototype.addDynamicProperty=function(t){this._addDynamicProperty(t),this.elem.addDynamicProperty(t),this._isDirty=!0},t.prototype._addDynamicProperty=DynamicPropertyContainer.prototype.addDynamicProperty,{getTransformProperty:function(e,r,i){return new t(e,r,i)}}}();function ShapePath(){this.c=!1,this._length=0,this._maxLength=8,this.v=createSizedArray(this._maxLength),this.o=createSizedArray(this._maxLength),this.i=createSizedArray(this._maxLength)}ShapePath.prototype.setPathData=function(t,e){this.c=t,this.setLength(e);for(var r=0;r=this._maxLength&&this.doubleArrayLength(),r){case"v":a=this.v;break;case"i":a=this.i;break;case"o":a=this.o}(!a[i]||a[i]&&!s)&&(a[i]=point_pool.newElement()),a[i][0]=t,a[i][1]=e},ShapePath.prototype.setTripleAt=function(t,e,r,i,s,a,n,o){this.setXYAt(t,e,"v",n,o),this.setXYAt(r,i,"o",n,o),this.setXYAt(s,a,"i",n,o)},ShapePath.prototype.reverse=function(){var t=new ShapePath;t.setPathData(this.c,this._length);var e=this.v,r=this.o,i=this.i,s=0;this.c&&(t.setTripleAt(e[0][0],e[0][1],i[0][0],i[0][1],r[0][0],r[0][1],0,!1),s=1);var a,n=this._length-1,o=this._length;for(a=s;a=c[c.length-1].t-this.offsetTime)i=c[c.length-1].s?c[c.length-1].s[0]:c[c.length-2].e[0],a=!0;else{for(var d,u,y=m,g=c.length-1,v=!0;v&&(d=c[y],!((u=c[y+1]).t-this.offsetTime>t));)y=u.t-this.offsetTime)p=1;else if(tr&&t>r)||(this._caching.lastIndex=i=1?a.push({s:t-1,e:e-1}):(a.push({s:t,e:1}),a.push({s:0,e:e-1}));var n,o,h=[],l=a.length;for(n=0;ni+r);else p=o.s*s<=i?0:(o.s*s-i)/r,f=o.e*s>=i+r?1:(o.e*s-i)/r,h.push([p,f])}return h.length||h.push([0,0]),h},TrimModifier.prototype.releasePathsData=function(t){var e,r=t.length;for(e=0;e1?1:this.s.v<0?0:this.s.v)+s)>(r=(this.e.v>1?1:this.e.v<0?0:this.e.v)+s)){var a=e;e=r,r=a}e=1e-4*Math.round(1e4*e),r=1e-4*Math.round(1e4*r),this.sValue=e,this.eValue=r}else e=this.sValue,r=this.eValue;var n,o,h,l,p,f,m=this.shapes.length,c=0;if(r===e)for(n=0;n=0;n-=1)if((d=this.shapes[n]).shape._mdf){for((u=d.localShapeCollection).releaseShapes(),2===this.m&&m>1?(g=this.calculateShapeEdges(e,r,d.totalShapeLength,P,c),P+=d.totalShapeLength):g=[[v,b]],h=g.length,o=0;o=1?y.push({s:d.totalShapeLength*(v-1),e:d.totalShapeLength*(b-1)}):(y.push({s:d.totalShapeLength*v,e:d.totalShapeLength}),y.push({s:0,e:d.totalShapeLength*(b-1)}));var _=this.addShapes(d,y[0]);if(y[0].s!==y[0].e){if(y.length>1)if(d.shape.paths.shapes[d.shape.paths._length-1].c){var x=_.pop();this.addPaths(_,u),_=this.addShapes(d,y[1],x)}else this.addPaths(_,u),_=this.addShapes(d,y[1]);this.addPaths(_,u)}}d.shape.paths=u}}},TrimModifier.prototype.addPaths=function(t,e){var r,i=t.length;for(r=0;re.e){r.c=!1;break}e.s<=d&&e.e>=d+n.addedLength?(this.addSegment(m[i].v[s-1],m[i].o[s-1],m[i].i[s],m[i].v[s],r,o,y),y=!1):(l=bez.getNewSegment(m[i].v[s-1],m[i].v[s],m[i].o[s-1],m[i].i[s],(e.s-d)/n.addedLength,(e.e-d)/n.addedLength,h[s-1]),this.addSegmentFromArray(l,r,o,y),y=!1,r.c=!1),d+=n.addedLength,o+=1}if(m[i].c&&h.length){if(n=h[s-1],d<=e.e){var g=h[s-1].addedLength;e.s<=d&&e.e>=d+g?(this.addSegment(m[i].v[s-1],m[i].o[s-1],m[i].i[0],m[i].v[0],r,o,y),y=!1):(l=bez.getNewSegment(m[i].v[s-1],m[i].v[0],m[i].o[s-1],m[i].i[0],(e.s-d)/g,(e.e-d)/g,h[s-1]),this.addSegmentFromArray(l,r,o,y),y=!1,r.c=!1)}else r.c=!1;d+=n.addedLength,o+=1}if(r._length&&(r.setXYAt(r.v[p][0],r.v[p][1],"i",p),r.setXYAt(r.v[r._length-1][0],r.v[r._length-1][1],"o",r._length-1)),d>e.e)break;i0;)r-=1,this._elements.unshift(e[r]),1;this.dynamicProperties.length?this.k=!0:this.getValue(!0)},RepeaterModifier.prototype.resetElements=function(t){var e,r=t.length;for(e=0;e0?Math.floor(l):Math.ceil(l),m=(this.tr.v.props,this.pMatrix.props),c=this.rMatrix.props,d=this.sMatrix.props;this.pMatrix.reset(),this.rMatrix.reset(),this.sMatrix.reset(),this.tMatrix.reset(),this.matrix.reset();var u,y,g=0;if(l>0){for(;gf;)this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!0),g-=1;p&&(this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,-p,!0),g-=p)}for(i=1===this.data.m?0:this._currentCopies-1,s=1===this.data.m?1:-1,a=this._currentCopies;a;){if(y=(r=(e=this.elemsData[i].it)[e.length-1].transform.mProps.v.props).length,e[e.length-1].transform.mProps._mdf=!0,e[e.length-1].transform.op._mdf=!0,e[e.length-1].transform.op.v=this.so.v+(this.eo.v-this.so.v)*(i/(this._currentCopies-1)),0!==g){for((0!==i&&1===s||i!==this._currentCopies-1&&-1===s)&&this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!1),this.matrix.transform(c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8],c[9],c[10],c[11],c[12],c[13],c[14],c[15]),this.matrix.transform(d[0],d[1],d[2],d[3],d[4],d[5],d[6],d[7],d[8],d[9],d[10],d[11],d[12],d[13],d[14],d[15]),this.matrix.transform(m[0],m[1],m[2],m[3],m[4],m[5],m[6],m[7],m[8],m[9],m[10],m[11],m[12],m[13],m[14],m[15]),u=0;u.01)return!1;r+=1}return!0},GradientProperty.prototype.checkCollapsable=function(){if(this.o.length/2!=this.c.length/4)return!1;if(this.data.k.k[0].s)for(var t=0,e=this.data.k.k.length;t=o+ot||!d?(v=(o+ot-l)/h.partialLength,z=c.point[0]+(h.point[0]-c.point[0])*v,B=c.point[1]+(h.point[1]-c.point[1])*v,E.translate(-_[0]*A[s].an/200,-_[1]*R/100),p=!1):d&&(l+=h.partialLength,(f+=1)>=d.length&&(f=0,u[m+=1]?d=u[m].points:P.v.c?(f=0,d=u[m=0].points):(l-=h.partialLength,d=null)),d&&(c=h,y=(h=d[f]).partialLength));O=A[s].an/2-A[s].add,E.translate(-O,0,0)}else O=A[s].an/2-A[s].add,E.translate(-O,0,0),E.translate(-_[0]*A[s].an/200,-_[1]*R/100,0);for(A[s].l/2,I=0;I1,this.kf&&this.addEffect(this.getKeyframeValue.bind(this)),this.kf},TextProperty.prototype.addEffect=function(t){this.effectsSequence.push(t),this.elem.addDynamicProperty(this)},TextProperty.prototype.getValue=function(t){if(this.elem.globalData.frameId!==this.frameId&&this.effectsSequence.length||t){this.currentData.t=this.data.d.k[this.keysIndex].s.t;var e=this.currentData,r=this.keysIndex;if(this.lock)this.setCurrentData(this.currentData);else{this.lock=!0,this._mdf=!1;var i,s=this.effectsSequence.length,a=t||this.data.d.k[this.keysIndex].s;for(i=0;ie));)r+=1;return this.keysIndex!==r&&(this.keysIndex=r),this.data.d.k[this.keysIndex].s},TextProperty.prototype.buildFinalText=function(t){for(var e,r=FontManager.getCombinedCharacterCodes(),i=[],s=0,a=t.length;s=55296&&e<=56319&&(e=t.charCodeAt(s+1))>=56320&&e<=57343?(i.push(t.substr(s,2)),++s):i.push(t.charAt(s)),s+=1;return i},TextProperty.prototype.completeTextData=function(t){t.__complete=!0;var e,r,i,s,a,n,o,h=this.elem.globalData.fontManager,l=this.data,p=[],f=0,m=l.m.g,c=0,d=0,u=0,y=[],g=0,v=0,b=h.getFontByName(t.f),P=0,_=b.fStyle?b.fStyle.split(" "):[],x="normal",S="normal";for(r=_.length,e=0;eD&&" "!==A[e]?(-1===I?r+=1:e=I,C+=t.finalLineHeight||1.2*t.finalSize,A.splice(e,I===e?1:0,"\r"),I=-1,g=0):(g+=P,g+=T);C+=b.ascent*t.finalSize/100,this.canResize&&t.finalSize>this.minimumFontSize&&Mv?g:v,g=-2*T,s="",i=!0,u+=1):s=t.finalText[e],h.chars?(o=h.getCharData(w,b.fStyle,h.getFontByName(t.f).fFamily),P=i?0:o.w*t.finalSize/100):P=h.measureText(s,t.f,t.finalSize)," "===w?F+=P+T:(g+=P+T+F,F=0),p.push({l:P,an:P,add:c,n:i,anIndexes:[],val:s,line:u,animatorJustifyOffset:0}),2==m){if(c+=P,""===s||" "===s||e===r-1){for(""!==s&&" "!==s||(c-=P);d<=e;)p[d].an=c,p[d].ind=f,p[d].extra=P,d+=1;f+=1,c=0}}else if(3==m){if(c+=P,""===s||e===r-1){for(""===s&&(c-=P);d<=e;)p[d].an=c,p[d].ind=f,p[d].extra=P,d+=1;c=0,f+=1}}else p[f].ind=f,p[f].extra=0,f+=1;if(t.l=p,v=g>v?g:v,y.push(g),t.sz)t.boxWidth=t.sz[0],t.justifyOffset=0;else switch(t.boxWidth=v,t.j){case 1:t.justifyOffset=-t.boxWidth;break;case 2:t.justifyOffset=-t.boxWidth/2;break;default:t.justifyOffset=0}t.lineWidths=y;var R,V,L=l.a;n=L.length;var O,z,B=[];for(a=0;a=o?1:0:t(0,e(.5/(o-n)+(i-n)/(o-n),1)));else if(3==h)a=s(a=o===n?i>=o?0:1:1-t(0,e(.5/(o-n)+(i-n)/(o-n),1)));else if(4==h)o===n?a=0:(a=t(0,e(.5/(o-n)+(i-n)/(o-n),1)))<.5?a*=2:a=1-2*(a-.5),a=s(a);else if(5==h){if(o===n)a=0;else{var l=o-n,p=-l/2+(i=e(t(0,i+.5-n),o-n)),f=l/2;a=Math.sqrt(1-p*p/(f*f))}a=s(a)}else 6==h?(o===n?a=0:(i=e(t(0,i+.5-n),o-n),a=(1+Math.cos(Math.PI+2*Math.PI*i/(o-n)))/2),a=s(a)):(i>=r(n)&&(a=i-n<0?1-(n-i):t(0,e(o-i,1))),a=s(a));return a*this.a.v},getValue:function(t){this.iterateDynamicProperties(),this._mdf=t||this._mdf,this._currentTextLength=this.elem.textProperty.currentData.l.length||0,t&&2===this.data.r&&(this.e.v=this._currentTextLength);var e=2===this.data.r?1:100/this.data.totalChars,r=this.o.v/e,i=this.s.v/e+r,s=this.e.v/e+r;if(i>s){var a=i;i=s,s=a}this.finalS=i,this.finalE=s}},extendPrototype([DynamicPropertyContainer],i),{getTextSelectorProp:function(t,e,r){return new i(t,e,r)}}}(),pool_factory=function(t,e,r,i){var s=0,a=t,n=createSizedArray(a);function o(){return s?n[s-=1]:e()}return{newElement:o,release:function(t){s===a&&(n=pooling.double(n),a*=2),r&&r(t),n[s]=t,s+=1}}},pooling={double:function(t){return t.concat(createSizedArray(t.length))}},point_pool=pool_factory(8,(function(){return createTypedArray("float32",2)})),shape_pool=(factory=pool_factory(4,(function(){return new ShapePath}),(function(t){var e,r=t._length;for(e=0;e0&&(this.maskElement.setAttribute("id",y),this.element.maskedElement.setAttribute(v,"url("+locationHref+"#"+y+")"),s.appendChild(this.maskElement)),this.viewData.length&&this.element.addRenderableComponent(this)}function HierarchyElement(){}function FrameElement(){}function TransformElement(){}function RenderableElement(){}function RenderableDOMElement(){}function ProcessedElement(t,e){this.elem=t,this.pos=e}function SVGShapeData(t,e,r){this.caches=[],this.styles=[],this.transformers=t,this.lStr="",this.sh=r,this.lvl=e,this._isAnimated=!!r.k;for(var i=0,s=t.length;i=0;e--)this.elements[e]||(r=this.layers[e]).ip-r.st<=t-this.layers[e].st&&r.op-r.st>t-this.layers[e].st&&this.buildItem(e),this.completeLayers=!!this.elements[e]&&this.completeLayers;this.checkPendingElements()},BaseRenderer.prototype.createItem=function(t){switch(t.ty){case 2:return this.createImage(t);case 0:return this.createComp(t);case 1:return this.createSolid(t);case 3:return this.createNull(t);case 4:return this.createShape(t);case 5:return this.createText(t);case 13:return this.createCamera(t)}return this.createNull(t)},BaseRenderer.prototype.createCamera=function(){throw new Error("You're using a 3d camera. Try the html renderer.")},BaseRenderer.prototype.buildAllItems=function(){var t,e=this.layers.length;for(t=0;t=0;e--)(this.completeLayers||this.elements[e])&&this.elements[e].prepareFrame(t-this.layers[e].st);if(this.globalData._mdf)for(e=0;er&&"meet"===a||ir&&"slice"===a)?(t-this.transformCanvas.w*(e/this.transformCanvas.h))/2*this.renderConfig.dpr:"xMax"===o&&(ir&&"slice"===a)?(t-this.transformCanvas.w*(e/this.transformCanvas.h))*this.renderConfig.dpr:0,this.transformCanvas.ty="YMid"===h&&(i>r&&"meet"===a||ir&&"meet"===a||i=0;t-=1)this.elements[t]&&this.elements[t].destroy();this.elements.length=0,this.globalData.canvasContext=null,this.animationItem.container=null,this.destroyed=!0},CanvasRenderer.prototype.renderFrame=function(t,e){if((this.renderedFrame!==t||!0!==this.renderConfig.clearCanvas||e)&&!this.destroyed&&-1!==t){this.renderedFrame=t,this.globalData.frameNum=t-this.animationItem._isFirstFrame,this.globalData.frameId+=1,this.globalData._mdf=!this.renderConfig.clearCanvas||e,this.globalData.projectInterface.currentFrame=t;var r,i=this.layers.length;for(this.completeLayers||this.checkLayers(t),r=0;r=0;r-=1)(this.completeLayers||this.elements[r])&&this.elements[r].renderFrame();!0!==this.renderConfig.clearCanvas&&this.restore()}}},CanvasRenderer.prototype.buildItem=function(t){var e=this.elements;if(!e[t]&&99!=this.layers[t].ty){var r=this.createItem(this.layers[t],this,this.globalData);e[t]=r,r.initExpressions()}},CanvasRenderer.prototype.checkPendingElements=function(){for(;this.pendingElements.length;){this.pendingElements.pop().checkParenting()}},CanvasRenderer.prototype.hide=function(){this.animationItem.container.style.display="none"},CanvasRenderer.prototype.show=function(){this.animationItem.container.style.display="block"},MaskElement.prototype.getMaskProperty=function(t){return this.viewData[t].prop},MaskElement.prototype.renderFrame=function(t){var e,r=this.element.finalTransform.mat,i=this.masksProperties.length;for(e=0;e1&&(a+=" C"+e.o[i-1][0]+","+e.o[i-1][1]+" "+e.i[0][0]+","+e.i[0][1]+" "+e.v[0][0]+","+e.v[0][1]),r.lastPath!==a){var n="";r.elem&&(e.c&&(n=t.inv?this.solidPath+a:a),r.elem.setAttribute("d",n)),r.lastPath=a}},MaskElement.prototype.destroy=function(){this.element=null,this.globalData=null,this.maskElement=null,this.data=null,this.masksProperties=null},HierarchyElement.prototype={initHierarchy:function(){this.hierarchy=[],this._isParent=!1,this.checkParenting()},setHierarchy:function(t){this.hierarchy=t},setAsParent:function(){this._isParent=!0},checkParenting:function(){void 0!==this.data.parent&&this.comp.buildElementParenting(this,this.data.parent,[])}},FrameElement.prototype={initFrame:function(){this._isFirstFrame=!1,this.dynamicProperties=[],this._mdf=!1},prepareProperties:function(t,e){var r,i=this.dynamicProperties.length;for(r=0;rt?!0!==this.isInRange&&(this.globalData._mdf=!0,this._mdf=!0,this.isInRange=!0,this.show()):!1!==this.isInRange&&(this.globalData._mdf=!0,this.isInRange=!1,this.hide())},renderRenderable:function(){var t,e=this.renderableComponents.length;for(t=0;t=0;i-=1)r=t.transforms[i].transform.mProps.v.props,t.finalTransform.transform(r[0],r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],r[13],r[14],r[15]);t._mdf=a},processSequences:function(t){var e,r=this.sequenceList.length;for(e=0;e=0;t-=1)this.shapeModifiers[t].processShapes(this._isFirstFrame)}},lcEnum:{1:"butt",2:"round",3:"square"},ljEnum:{1:"miter",2:"round",3:"bevel"},searchProcessedElement:function(t){for(var e=this.processedElements,r=0,i=e.length;r=0;r-=1)(this.completeLayers||this.elements[r])&&(this.elements[r].prepareFrame(this.renderedFrame-this.layers[r].st),this.elements[r]._mdf&&(this._mdf=!0))}},ICompElement.prototype.renderInnerContent=function(){var t,e=this.layers.length;for(t=0;t1&&o&&this.setShapesAsAnimated(n)}},SVGShapeElement.prototype.setShapesAsAnimated=function(t){var e,r=t.length;for(e=0;e=0;o-=1){if((m=this.searchProcessedElement(t[o]))?e[o]=r[m-1]:t[o]._render=n,"fl"==t[o].ty||"st"==t[o].ty||"gf"==t[o].ty||"gs"==t[o].ty)m?e[o].style.closed=!1:e[o]=this.createStyleElement(t[o],s),t[o]._render&&i.appendChild(e[o].style.pElem),u.push(e[o].style);else if("gr"==t[o].ty){if(m)for(l=e[o].it.length,h=0;ho&&"xMidYMid slice"===h||n=0;t-=1)(this.completeLayers||this.elements[t])&&this.elements[t].renderFrame()},CVCompElement.prototype.destroy=function(){var t;for(t=this.layers.length-1;t>=0;t-=1)this.elements[t]&&this.elements[t].destroy();this.layers=null,this.elements=null},CVMaskElement.prototype.renderFrame=function(){if(this.hasMasks){var t,e,r,i,s=this.element.finalTransform.mat,a=this.element.canvasContext,n=this.masksProperties.length;for(a.beginPath(),t=0;t=0;a-=1){if((h=this.searchProcessedElement(t[a]))?e[a]=r[h-1]:t[a]._shouldRender=i,"fl"==t[a].ty||"st"==t[a].ty||"gf"==t[a].ty||"gs"==t[a].ty)h?e[a].style.closed=!1:e[a]=this.createStyleElement(t[a],d),m.push(e[a].style);else if("gr"==t[a].ty){if(h)for(o=e[a].it.length,n=0;n=0;s-=1)"tr"==e[s].ty?(a=r[s].transform,this.renderShapeTransform(t,a)):"sh"==e[s].ty||"el"==e[s].ty||"rc"==e[s].ty||"sr"==e[s].ty?this.renderPath(e[s],r[s]):"fl"==e[s].ty?this.renderFill(e[s],r[s],a):"st"==e[s].ty?this.renderStroke(e[s],r[s],a):"gf"==e[s].ty||"gs"==e[s].ty?this.renderGradientFill(e[s],r[s],a):"gr"==e[s].ty?this.renderShape(a,e[s].it,r[s].it):e[s].ty;i&&this.drawLayer()},CVShapeElement.prototype.renderStyledShape=function(t,e){if(this._isFirstFrame||e._mdf||t.transforms._mdf){var r,i,s,a=t.trNodes,n=e.paths,o=n._length;a.length=0;var h=t.transforms.finalTransform;for(s=0;s=1?.99:e.h.v<=-1?-.99:e.h.v),p=Math.cos(h+e.a.v)*l+a[0],f=Math.sin(h+e.a.v)*l+a[1],m=s.createRadialGradient(p,f,0,a[0],a[1],o);var c,d=t.g.p,u=e.g.c,y=1;for(c=0;c=0;r-=1)e[r].animation.destroy(t)},t.freeze=function(){n=!0},t.unfreeze=function(){n=!1,d()},t.getRegisteredAnimations=function(){var t,r=e.length,i=[];for(t=0;tthis.animationData.op&&(this.animationData.op=t.op,this.totalFrames=Math.floor(t.op-this.animationData.ip));var e,r,i=this.animationData.layers,s=i.length,a=t.layers,n=a.length;for(r=0;rthis.timeCompleted&&(this.currentFrame=this.timeCompleted),this.trigger("enterFrame"),this.renderFrame()},AnimationItem.prototype.renderFrame=function(){!1!==this.isLoaded&&this.renderer.renderFrame(this.currentFrame+this.firstFrame)},AnimationItem.prototype.play=function(t){t&&this.name!=t||!0===this.isPaused&&(this.isPaused=!1,this._idle&&(this._idle=!1,this.trigger("_active")))},AnimationItem.prototype.pause=function(t){t&&this.name!=t||!1===this.isPaused&&(this.isPaused=!0,this._idle=!0,this.trigger("_idle"))},AnimationItem.prototype.togglePause=function(t){t&&this.name!=t||(!0===this.isPaused?this.play():this.pause())},AnimationItem.prototype.stop=function(t){t&&this.name!=t||(this.pause(),this.playCount=0,this._completedLoop=!1,this.setCurrentRawFrameValue(0))},AnimationItem.prototype.goToAndStop=function(t,e,r){r&&this.name!=r||(e?this.setCurrentRawFrameValue(t):this.setCurrentRawFrameValue(t*this.frameModifier),this.pause())},AnimationItem.prototype.goToAndPlay=function(t,e,r){this.goToAndStop(t,e,r),this.play()},AnimationItem.prototype.advanceTime=function(t){if(!0!==this.isPaused&&!1!==this.isLoaded){var e=this.currentRawFrame+t*this.frameModifier,r=!1;e>=this.totalFrames-1&&this.frameModifier>0?this.loop&&this.playCount!==this.loop?e>=this.totalFrames?(this.playCount+=1,this.checkSegments(e%this.totalFrames)||(this.setCurrentRawFrameValue(e%this.totalFrames),this._completedLoop=!0,this.trigger("loopComplete"))):this.setCurrentRawFrameValue(e):this.checkSegments(e>this.totalFrames?e%this.totalFrames:0)||(r=!0,e=this.totalFrames-1):e<0?this.checkSegments(e%this.totalFrames)||(!this.loop||this.playCount--<=0&&!0!==this.loop?(r=!0,e=0):(this.setCurrentRawFrameValue(this.totalFrames+e%this.totalFrames),this._completedLoop?this.trigger("loopComplete"):this._completedLoop=!0)):this.setCurrentRawFrameValue(e),r&&(this.setCurrentRawFrameValue(e),this.pause(),this.trigger("complete"))}},AnimationItem.prototype.adjustSegment=function(t,e){this.playCount=0,t[1]0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(-1)),this.timeCompleted=this.totalFrames=t[0]-t[1],this.firstFrame=t[1],this.setCurrentRawFrameValue(this.totalFrames-.001-e)):t[1]>t[0]&&(this.frameModifier<0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(1)),this.timeCompleted=this.totalFrames=t[1]-t[0],this.firstFrame=t[0],this.setCurrentRawFrameValue(.001+e)),this.trigger("segmentStart")},AnimationItem.prototype.setSegment=function(t,e){var r=-1;this.isPaused&&(this.currentRawFrame+this.firstFramee&&(r=e-t)),this.firstFrame=t,this.timeCompleted=this.totalFrames=e-t,-1!==r&&this.goToAndStop(r,!0)},AnimationItem.prototype.playSegments=function(t,e){if(e&&(this.segments.length=0),"object"===_typeof(t[0])){var r,i=t.length;for(r=0;rr){var i=r;r=e,e=i}return Math.min(Math.max(t,e),r)}function radiansToDegrees(t){return t/degToRads}var radians_to_degrees=radiansToDegrees;function degreesToRadians(t){return t*degToRads}var degrees_to_radians=radiansToDegrees,helperLengthArray=[0,0,0,0,0,0];function length(t,e){if("number"==typeof t||t instanceof Number)return e=e||0,Math.abs(t-e);e||(e=helperLengthArray);var r,i=Math.min(t.length,e.length),s=0;for(r=0;r.5?l/(2-n-o):l/(n+o),n){case i:e=(s-a)/l+(s1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}function hslToRgb(t){var e,r,i,s=t[0],a=t[1],n=t[2];if(0===a)e=r=i=n;else{var o=n<.5?n*(1+a):n+a-n*a,h=2*n-o;e=hue2rgb(h,o,s+1/3),r=hue2rgb(h,o,s),i=hue2rgb(h,o,s-1/3)}return[e,r,i,t[3]]}function linear(t,e,r,i,s){if(void 0!==i&&void 0!==s||(i=e,s=r,e=0,r=1),r=r)return s;var n=r===e?0:(t-e)/(r-e);if(!i.length)return i+(s-i)*n;var o,h=i.length,l=createTypedArray("float32",h);for(o=0;o1){for(i=0;i1?1:e<0?0:e);if($bm_isInstanceOfArray(s)){var o,h=s.length,l=createTypedArray("float32",h);for(o=0;odata.k[e].t&&tdata.k[e+1].t-t?(r=e+2,i=data.k[e+1].t):(r=e+1,i=data.k[e].t);break}}-1===r&&(r=e+1,i=data.k[e].t)}else r=0,i=0;var a={};return a.index=r,a.time=i/elem.comp.globalData.frameRate,a}function key(t){var e,r,i;if(!data.k.length||"number"==typeof data.k[0])throw new Error("The property has no keyframe at index "+t);t-=1,e={time:data.k[t].t/elem.comp.globalData.frameRate,value:[]};var s=data.k[t].hasOwnProperty("s")?data.k[t].s:data.k[t-1].e;for(i=s.length,r=0;rl.length-1)&&(e=l.length-1),i=p-(s=l[l.length-1-e].t)),"pingpong"===t){if(Math.floor((h-s)/i)%2!=0)return this.getValueAtTime((i-(h-s)%i+s)/this.comp.globalData.frameRate,0)}else{if("offset"===t){var f=this.getValueAtTime(s/this.comp.globalData.frameRate,0),m=this.getValueAtTime(p/this.comp.globalData.frameRate,0),c=this.getValueAtTime(((h-s)%i+s)/this.comp.globalData.frameRate,0),d=Math.floor((h-s)/i);if(this.pv.length){for(n=(o=new Array(f.length)).length,a=0;a=p)return this.pv;if(r?s=p+(i=e?Math.abs(elem.comp.globalData.frameRate*e):Math.max(0,this.elem.data.op-p)):((!e||e>l.length-1)&&(e=l.length-1),i=(s=l[e].t)-p),"pingpong"===t){if(Math.floor((p-h)/i)%2==0)return this.getValueAtTime(((p-h)%i+p)/this.comp.globalData.frameRate,0)}else{if("offset"===t){var f=this.getValueAtTime(p/this.comp.globalData.frameRate,0),m=this.getValueAtTime(s/this.comp.globalData.frameRate,0),c=this.getValueAtTime((i-(p-h)%i+p)/this.comp.globalData.frameRate,0),d=Math.floor((p-h)/i)+1;if(this.pv.length){for(n=(o=new Array(f.length)).length,a=0;a1?(s+t-a)/(e-1):1,o=0,h=0;for(r=this.pv.length?createTypedArray("float32",this.pv.length):0;on){var p=o,f=r.c&&o===h-1?0:o+1,m=(n-l)/a[o].addedLength;i=bez.getPointInSegment(r.v[p],r.v[f],r.o[p],r.i[f],m,a[o]);break}l+=a[o].addedLength,o+=1}return i||(i=r.c?[r.v[0][0],r.v[0][1]]:[r.v[r._length-1][0],r.v[r._length-1][1]]),i},vectorOnPath:function(t,e,r){t=1==t?this.v.c?0:.999:t;var i=this.pointOnPath(t,e),s=this.pointOnPath(t+.001,e),a=s[0]-i[0],n=s[1]-i[1],o=Math.sqrt(Math.pow(a,2)+Math.pow(n,2));return 0===o?[0,0]:"tangent"===r?[a/o,n/o]:[-n/o,a/o]},tangentOnPath:function(t,e){return this.vectorOnPath(t,e,"tangent")},normalOnPath:function(t,e){return this.vectorOnPath(t,e,"normal")},setGroupProperty:expressionHelpers.setGroupProperty,getValueAtTime:expressionHelpers.getStaticValueAtTime},extendPrototype([l],o),extendPrototype([l],h),h.prototype.getValueAtTime=function(t){return this._cachingAtTime||(this._cachingAtTime={shapeValue:shape_pool.clone(this.pv),lastIndex:0,lastTime:initialDefaultFrame}),t*=this.elem.globalData.frameRate,(t-=this.offsetTime)!==this._cachingAtTime.lastTime&&(this._cachingAtTime.lastIndex=this._cachingAtTime.lastTime1&&(defaultCurveSegments=t);roundValues(!(defaultCurveSegments>=50))}function inBrowser(){return void 0!==navigator}function installPlugin(t,e){"expressions"===t&&(expressionsPlugin=e)}function getFactory(t){switch(t){case"propertyFactory":return PropertyFactory;case"shapePropertyFactory":return ShapePropertyFactory;case"matrix":return Matrix}}function checkReady(){"complete"===document.readyState&&(clearInterval(readyStateCheckInterval),searchAnimations())}function getQueryVariable(t){for(var e=queryString.split("&"),r=0;r>16),e+=String.fromCharCode((65280&r)>>8),e+=String.fromCharCode(255&r),r=i=0);return 12===i?(r>>=4,e+=String.fromCharCode(r)):18===i&&(r>>=2,e+=String.fromCharCode((65280&r)>>8),e+=String.fromCharCode(255&r)),e}},function(t,e,r){"use strict";function n(t){if(t>=0&&t<64)return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[t]}t.exports=function(t){let e;for(t=""+t,e=0;e255)return null;let r="";for(e=0;e>2,i[1]=(3&t.charCodeAt(e))<<4,t.length>e+1&&(i[1]|=t.charCodeAt(e+1)>>4,i[2]=(15&t.charCodeAt(e+1))<<2),t.length>e+2&&(i[2]|=t.charCodeAt(e+2)>>6,i[3]=63&t.charCodeAt(e+2));for(let t=0;t2&&void 0!==arguments[2]?arguments[2]:{},n=l.get(this);n||(n={},l.set(this,n)),n[t]||(n[t]=[]),n[t].push(e),r.capture,r.once,r.passive}},{key:"removeEventListener",value:function(t,e){var r=l.get(this);if(r){var n=r[t];if(n&&n.length>0)for(var i=n.length;i--;i>0)if(n[i]===e){n.splice(i,1);break}}}},{key:"dispatchEvent",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};"function"!=typeof t.preventDefault&&(t.preventDefault=function(){}),"function"!=typeof t.stopPropagation&&(t.stopPropagation=function(){});var e=l.get(this)[t.type];if(e)for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=a({},this),r={changedTouches:t.changedTouches.map((function(t){return new h(t)})),touches:t.touches.map((function(t){return new h(t)})),targetTouches:Array.prototype.slice.call(t.touches.map((function(t){return new h(t)}))),timeStamp:t.timeStamp,target:e,currentTarget:e,type:t.type,cancelBubble:!1,cancelable:!1};this.dispatchEvent(r)}}])&&s(e.prototype,r),n&&s(e,n),t}();function p(t){return(p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function d(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:{};e.target=e.target||this,"function"==typeof this["on".concat(t)]&&this["on".concat(t)].call(this,e)}function M(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.readyState=t,e.readyState=t,_.call(this,"readystatechange",e)}function S(t){return!/^(http|https|ftp|wxfile):\/\/.*/i.test(t)}var T=function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&f(t,e)}(a,t);var e,r,n,i=m(a);function a(){var t;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,a),(t=i.call(this)).onabort=null,t.onerror=null,t.onload=null,t.onloadstart=null,t.onprogress=null,t.ontimeout=null,t.onloadend=null,t.onreadystatechange=null,t.readyState=0,t.response=null,t.responseText=null,t.responseType="text",t.dataType="string",t.responseXML=null,t.status=0,t.statusText="",t.upload={},t.withCredentials=!1,x.set(v(t),{"content-type":"application/x-www-form-urlencoded"}),b.set(v(t),{}),t}return e=a,(r=[{key:"abort",value:function(){var t=w.get(this);t&&t.abort()}},{key:"getAllResponseHeaders",value:function(){var t=b.get(this);return Object.keys(t).map((function(e){return"".concat(e,": ").concat(t[e])})).join("\n")}},{key:"getResponseHeader",value:function(t){return b.get(this)[t]}},{key:"open",value:function(t,e){this._method=t,this._url=e,M.call(this,a.OPENED)}},{key:"overrideMimeType",value:function(){}},{key:"send",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";if(this.readyState!==a.OPENED)throw new Error("Failed to execute 'send' on 'XMLHttpRequest': The object's state must be OPENED.");var r,n=this._url,i=x.get(this),o=this.responseType,s=this.dataType,c=S(n);"arraybuffer"===o||(r="utf8"),delete this.response,this.response=null;var l=function(e){var r=e.data,n=e.statusCode,i=e.header;if(n=void 0===n?200:n,"string"!=typeof r&&!(r instanceof ArrayBuffer))try{r=JSON.stringify(r)}catch(t){}t.status=n,i&&b.set(t,i),_.call(t,"loadstart"),M.call(t,a.HEADERS_RECEIVED),M.call(t,a.LOADING),t.response=r,r instanceof ArrayBuffer?Object.defineProperty(t,"responseText",{enumerable:!0,configurable:!0,get:function(){throw"InvalidStateError : responseType is "+this.responseType}}):t.responseText=r,M.call(t,a.DONE),_.call(t,"load"),_.call(t,"loadend")},h=function(e){var r=e.errMsg;-1!==r.indexOf("abort")?_.call(t,"abort"):_.call(t,"error",{message:r}),_.call(t,"loadend"),c&&console.warn(r)};if(c){var u=wx.getFileSystemManager(),p={filePath:n,success:l,fail:h};return r&&(p.encoding=r),void u.readFile(p)}wx.request({data:e,url:n,method:this._method,header:i,dataType:s,responseType:o,success:l,fail:h})}},{key:"setRequestHeader",value:function(t,e){var r=x.get(this);r[t]=e,x.set(this,r)}},{key:"addEventListener",value:function(t,e){var r=this;"function"==typeof e&&(this["on"+t]=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t.target=t.target||r,e.call(r,t)})}},{key:"removeEventListener",value:function(t,e){this["on"+t]===e&&(this["on"+t]=null)}}])&&d(e.prototype,r),n&&d(e,n),a}(u);function E(t,e){var r;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"==typeof t)return A(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return A(t,e)}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=t[Symbol.iterator]()},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function A(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r0?1:+t}),"name"in Function.prototype==0&&Object.defineProperty(Function.prototype,"name",{get:function(){return this.toString().match(/^\s*function\s*([^\(\s]*)/)[1]}}),void 0===Object.assign&&(Object.assign=function(t){if(null==t)throw new TypeError("Cannot convert undefined or null to object");for(var e=Object(t),r=1;r>8&255]+r[t>>16&255]+r[t>>24&255]+"-"+r[255&e]+r[e>>8&255]+"-"+r[e>>16&15|64]+r[e>>24&255]+"-"+r[63&n|128]+r[n>>8&255]+"-"+r[n>>16&255]+r[n>>24&255]+r[255&i]+r[i>>8&255]+r[i>>16&255]+r[i>>24&255]).toUpperCase()},clamp:function(t,e,r){return Math.max(e,Math.min(r,t))},euclideanModulo:function(t,e){return(t%e+e)%e},mapLinear:function(t,e,r,n,i){return n+(t-e)*(i-n)/(r-e)},lerp:function(t,e,r){return(1-r)*t+r*e},smoothstep:function(t,e,r){return t<=e?0:t>=r?1:(t=(t-e)/(r-e))*t*(3-2*t)},smootherstep:function(t,e,r){return t<=e?0:t>=r?1:(t=(t-e)/(r-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())},degToRad:function(t){return t*s.DEG2RAD},radToDeg:function(t){return t*s.RAD2DEG},isPowerOfTwo:function(t){return 0==(t&t-1)&&0!==t},ceilPowerOfTwo:function(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))},floorPowerOfTwo:function(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}};function l(t,e){this.x=t||0,this.y=e||0}function h(t,e,r,n){this._x=t||0,this._y=e||0,this._z=r||0,this._w=void 0!==n?n:1}Object.defineProperties(l.prototype,{width:{get:function(){return this.x},set:function(t){this.x=t}},height:{get:function(){return this.y},set:function(t){this.y=t}}}),Object.assign(l.prototype,{isVector2:!0,set:function(t,e){return this.x=t,this.y=e,this},setScalar:function(t){return this.x=t,this.y=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setComponent:function(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:function(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}},clone:function(){return new this.constructor(this.x,this.y)},copy:function(t){return this.x=t.x,this.y=t.y,this},add:function(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:function(t){return this.x+=t,this.y+=t,this},addVectors:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this},addScaledVector:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this},sub:function(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:function(t){return this.x-=t,this.y-=t,this},subVectors:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this},multiply:function(t){return this.x*=t.x,this.y*=t.y,this},multiplyScalar:function(t){return this.x*=t,this.y*=t,this},divide:function(t){return this.x/=t.x,this.y/=t.y,this},divideScalar:function(t){return this.multiplyScalar(1/t)},applyMatrix3:function(t){var e=this.x,r=this.y,n=t.elements;return this.x=n[0]*e+n[3]*r+n[6],this.y=n[1]*e+n[4]*r+n[7],this},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this},clamp:function(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:function(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:function(t,e){var r=this.length();return this.divideScalar(r||1).multiplyScalar(Math.max(t,Math.min(e,r)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},roundToZero:function(){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:function(){return this.x=-this.x,this.y=-this.y,this},dot:function(t){return this.x*t.x+this.y*t.y},cross:function(t){return this.x*t.y-this.y*t.x},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)},normalize:function(){return this.divideScalar(this.length()||1)},angle:function(){var t=Math.atan2(this.y,this.x);return t<0&&(t+=2*Math.PI),t},distanceTo:function(t){return Math.sqrt(this.distanceToSquared(t))},distanceToSquared:function(t){var e=this.x-t.x,r=this.y-t.y;return e*e+r*r},manhattanDistanceTo:function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)},setLength:function(t){return this.normalize().multiplyScalar(t)},lerp:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this},lerpVectors:function(t,e,r){return this.subVectors(e,t).multiplyScalar(r).add(t)},equals:function(t){return t.x===this.x&&t.y===this.y},fromArray:function(t,e){return void 0===e&&(e=0),this.x=t[e],this.y=t[e+1],this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this.x,t[e+1]=this.y,t},fromBufferAttribute:function(t,e,r){return void 0!==r&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this},rotateAround:function(t,e){var r=Math.cos(e),n=Math.sin(e),i=this.x-t.x,a=this.y-t.y;return this.x=i*r-a*n+t.x,this.y=i*n+a*r+t.y,this}}),Object.assign(h,{slerp:function(t,e,r,n){return r.copy(t).slerp(e,n)},slerpFlat:function(t,e,r,n,i,a,o){var s=r[n+0],c=r[n+1],l=r[n+2],h=r[n+3],u=i[a+0],p=i[a+1],d=i[a+2],f=i[a+3];if(h!==f||s!==u||c!==p||l!==d){var m=1-o,g=s*u+c*p+l*d+h*f,v=g>=0?1:-1,y=1-g*g;if(y>Number.EPSILON){var x=Math.sqrt(y),b=Math.atan2(x,g*v);m=Math.sin(m*b)/x,o=Math.sin(o*b)/x}var w=o*v;if(s=s*m+u*w,c=c*m+p*w,l=l*m+d*w,h=h*m+f*w,m===1-o){var _=1/Math.sqrt(s*s+c*c+l*l+h*h);s*=_,c*=_,l*=_,h*=_}}t[e]=s,t[e+1]=c,t[e+2]=l,t[e+3]=h}}),Object.defineProperties(h.prototype,{x:{get:function(){return this._x},set:function(t){this._x=t,this._onChangeCallback()}},y:{get:function(){return this._y},set:function(t){this._y=t,this._onChangeCallback()}},z:{get:function(){return this._z},set:function(t){this._z=t,this._onChangeCallback()}},w:{get:function(){return this._w},set:function(t){this._w=t,this._onChangeCallback()}}}),Object.assign(h.prototype,{isQuaternion:!0,set:function(t,e,r,n){return this._x=t,this._y=e,this._z=r,this._w=n,this._onChangeCallback(),this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._w)},copy:function(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this},setFromEuler:function(t,e){if(!t||!t.isEuler)throw new Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");var r=t._x,n=t._y,i=t._z,a=t.order,o=Math.cos,s=Math.sin,c=o(r/2),l=o(n/2),h=o(i/2),u=s(r/2),p=s(n/2),d=s(i/2);return"XYZ"===a?(this._x=u*l*h+c*p*d,this._y=c*p*h-u*l*d,this._z=c*l*d+u*p*h,this._w=c*l*h-u*p*d):"YXZ"===a?(this._x=u*l*h+c*p*d,this._y=c*p*h-u*l*d,this._z=c*l*d-u*p*h,this._w=c*l*h+u*p*d):"ZXY"===a?(this._x=u*l*h-c*p*d,this._y=c*p*h+u*l*d,this._z=c*l*d+u*p*h,this._w=c*l*h-u*p*d):"ZYX"===a?(this._x=u*l*h-c*p*d,this._y=c*p*h+u*l*d,this._z=c*l*d-u*p*h,this._w=c*l*h+u*p*d):"YZX"===a?(this._x=u*l*h+c*p*d,this._y=c*p*h+u*l*d,this._z=c*l*d-u*p*h,this._w=c*l*h-u*p*d):"XZY"===a&&(this._x=u*l*h-c*p*d,this._y=c*p*h-u*l*d,this._z=c*l*d+u*p*h,this._w=c*l*h+u*p*d),!1!==e&&this._onChangeCallback(),this},setFromAxisAngle:function(t,e){var r=e/2,n=Math.sin(r);return this._x=t.x*n,this._y=t.y*n,this._z=t.z*n,this._w=Math.cos(r),this._onChangeCallback(),this},setFromRotationMatrix:function(t){var e,r=t.elements,n=r[0],i=r[4],a=r[8],o=r[1],s=r[5],c=r[9],l=r[2],h=r[6],u=r[10],p=n+s+u;return p>0?(e=.5/Math.sqrt(p+1),this._w=.25/e,this._x=(h-c)*e,this._y=(a-l)*e,this._z=(o-i)*e):n>s&&n>u?(e=2*Math.sqrt(1+n-s-u),this._w=(h-c)/e,this._x=.25*e,this._y=(i+o)/e,this._z=(a+l)/e):s>u?(e=2*Math.sqrt(1+s-n-u),this._w=(a-l)/e,this._x=(i+o)/e,this._y=.25*e,this._z=(c+h)/e):(e=2*Math.sqrt(1+u-n-s),this._w=(o-i)/e,this._x=(a+l)/e,this._y=(c+h)/e,this._z=.25*e),this._onChangeCallback(),this},setFromUnitVectors:function(t,e){var r=t.dot(e)+1;return r<1e-6?(r=0,Math.abs(t.x)>Math.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=r):(this._x=0,this._y=-t.z,this._z=t.y,this._w=r)):(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=r),this.normalize()},angleTo:function(t){return 2*Math.acos(Math.abs(s.clamp(this.dot(t),-1,1)))},rotateTowards:function(t,e){var r=this.angleTo(t);if(0===r)return this;var n=Math.min(1,e/r);return this.slerp(t,n),this},inverse:function(){return this.conjugate()},conjugate:function(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this},dot:function(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w},lengthSq:function(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w},length:function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)},normalize:function(){var 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:function(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:function(t){return this.multiplyQuaternions(t,this)},multiplyQuaternions:function(t,e){var r=t._x,n=t._y,i=t._z,a=t._w,o=e._x,s=e._y,c=e._z,l=e._w;return this._x=r*l+a*o+n*c-i*s,this._y=n*l+a*s+i*o-r*c,this._z=i*l+a*c+r*s-n*o,this._w=a*l-r*o-n*s-i*c,this._onChangeCallback(),this},slerp:function(t,e){if(0===e)return this;if(1===e)return this.copy(t);var r=this._x,n=this._y,i=this._z,a=this._w,o=a*t._w+r*t._x+n*t._y+i*t._z;if(o<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,o=-o):this.copy(t),o>=1)return this._w=a,this._x=r,this._y=n,this._z=i,this;var s=1-o*o;if(s<=Number.EPSILON){var c=1-e;return this._w=c*a+e*this._w,this._x=c*r+e*this._x,this._y=c*n+e*this._y,this._z=c*i+e*this._z,this.normalize(),this._onChangeCallback(),this}var l=Math.sqrt(s),h=Math.atan2(l,o),u=Math.sin((1-e)*h)/l,p=Math.sin(e*h)/l;return this._w=a*u+this._w*p,this._x=r*u+this._x*p,this._y=n*u+this._y*p,this._z=i*u+this._z*p,this._onChangeCallback(),this},equals:function(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w},fromArray:function(t,e){return void 0===e&&(e=0),this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t},_onChange:function(t){return this._onChangeCallback=t,this},_onChangeCallback:function(){}});var u=new d,p=new h;function d(t,e,r){this.x=t||0,this.y=e||0,this.z=r||0}Object.assign(d.prototype,{isVector3:!0,set:function(t,e,r){return this.x=t,this.y=e,this.z=r,this},setScalar:function(t){return this.x=t,this.y=t,this.z=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setZ:function(t){return this.z=t,this},setComponent:function(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:function(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:function(){return new this.constructor(this.x,this.y,this.z)},copy:function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this},add:function(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:function(t){return this.x+=t,this.y+=t,this.z+=t,this},addVectors:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this},addScaledVector:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this},sub:function(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:function(t){return this.x-=t,this.y-=t,this.z-=t,this},subVectors:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this},multiply:function(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:function(t){return this.x*=t,this.y*=t,this.z*=t,this},multiplyVectors:function(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this},applyEuler:function(t){return t&&t.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order."),this.applyQuaternion(p.setFromEuler(t))},applyAxisAngle:function(t,e){return this.applyQuaternion(p.setFromAxisAngle(t,e))},applyMatrix3:function(t){var e=this.x,r=this.y,n=this.z,i=t.elements;return this.x=i[0]*e+i[3]*r+i[6]*n,this.y=i[1]*e+i[4]*r+i[7]*n,this.z=i[2]*e+i[5]*r+i[8]*n,this},applyMatrix4:function(t){var e=this.x,r=this.y,n=this.z,i=t.elements,a=1/(i[3]*e+i[7]*r+i[11]*n+i[15]);return this.x=(i[0]*e+i[4]*r+i[8]*n+i[12])*a,this.y=(i[1]*e+i[5]*r+i[9]*n+i[13])*a,this.z=(i[2]*e+i[6]*r+i[10]*n+i[14])*a,this},applyQuaternion:function(t){var e=this.x,r=this.y,n=this.z,i=t.x,a=t.y,o=t.z,s=t.w,c=s*e+a*n-o*r,l=s*r+o*e-i*n,h=s*n+i*r-a*e,u=-i*e-a*r-o*n;return this.x=c*s+u*-i+l*-o-h*-a,this.y=l*s+u*-a+h*-i-c*-o,this.z=h*s+u*-o+c*-a-l*-i,this},project:function(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)},unproject:function(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)},transformDirection:function(t){var e=this.x,r=this.y,n=this.z,i=t.elements;return this.x=i[0]*e+i[4]*r+i[8]*n,this.y=i[1]*e+i[5]*r+i[9]*n,this.z=i[2]*e+i[6]*r+i[10]*n,this.normalize()},divide:function(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this},divideScalar:function(t){return this.multiplyScalar(1/t)},min:function(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:function(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:function(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:function(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:function(t,e){var r=this.length();return this.divideScalar(r||1).multiplyScalar(Math.max(t,Math.min(e,r)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this},roundToZero:function(){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:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this},dot:function(t){return this.x*t.x+this.y*t.y+this.z*t.z},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(t){return this.normalize().multiplyScalar(t)},lerp:function(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:function(t,e,r){return this.subVectors(e,t).multiplyScalar(r).add(t)},cross:function(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:function(t,e){var r=t.x,n=t.y,i=t.z,a=e.x,o=e.y,s=e.z;return this.x=n*s-i*o,this.y=i*a-r*s,this.z=r*o-n*a,this},projectOnVector:function(t){var e=t.dot(this)/t.lengthSq();return this.copy(t).multiplyScalar(e)},projectOnPlane:function(t){return u.copy(this).projectOnVector(t),this.sub(u)},reflect:function(t){return this.sub(u.copy(t).multiplyScalar(2*this.dot(t)))},angleTo:function(t){var e=this.dot(t)/Math.sqrt(this.lengthSq()*t.lengthSq());return Math.acos(s.clamp(e,-1,1))},distanceTo:function(t){return Math.sqrt(this.distanceToSquared(t))},distanceToSquared:function(t){var e=this.x-t.x,r=this.y-t.y,n=this.z-t.z;return e*e+r*r+n*n},manhattanDistanceTo:function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)},setFromSpherical:function(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)},setFromSphericalCoords:function(t,e,r){var n=Math.sin(e)*t;return this.x=n*Math.sin(r),this.y=Math.cos(e)*t,this.z=n*Math.cos(r),this},setFromCylindrical:function(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)},setFromCylindricalCoords:function(t,e,r){return this.x=t*Math.sin(e),this.y=r,this.z=t*Math.cos(e),this},setFromMatrixPosition:function(t){var e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this},setFromMatrixScale:function(t){var e=this.setFromMatrixColumn(t,0).length(),r=this.setFromMatrixColumn(t,1).length(),n=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=r,this.z=n,this},setFromMatrixColumn:function(t,e){return this.fromArray(t.elements,4*e)},equals:function(t){return t.x===this.x&&t.y===this.y&&t.z===this.z},fromArray:function(t,e){return void 0===e&&(e=0),this.x=t[e],this.y=t[e+1],this.z=t[e+2],this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t},fromBufferAttribute:function(t,e,r){return void 0!==r&&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}});var f=new d;function m(){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.")}Object.assign(m.prototype,{isMatrix3:!0,set:function(t,e,r,n,i,a,o,s,c){var l=this.elements;return l[0]=t,l[1]=n,l[2]=o,l[3]=e,l[4]=i,l[5]=s,l[6]=r,l[7]=a,l[8]=c,this},identity:function(){return this.set(1,0,0,0,1,0,0,0,1),this},clone:function(){return(new this.constructor).fromArray(this.elements)},copy:function(t){var e=this.elements,r=t.elements;return e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],e[4]=r[4],e[5]=r[5],e[6]=r[6],e[7]=r[7],e[8]=r[8],this},setFromMatrix4:function(t){var 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},applyToBufferAttribute:function(t){for(var e=0,r=t.count;e1)switch(this.wrapS){case 1e3:t.x=t.x-Math.floor(t.x);break;case 1001:t.x=t.x<0?0:1;break;case 1002: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 1e3:t.y=t.y-Math.floor(t.y);break;case 1001:t.y=t.y<0?0:1;break;case 1002: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}}),Object.defineProperty(y.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}}),Object.defineProperties(x.prototype,{width:{get:function(){return this.z},set:function(t){this.z=t}},height:{get:function(){return this.w},set:function(t){this.w=t}}}),Object.assign(x.prototype,{isVector4:!0,set:function(t,e,r,n){return this.x=t,this.y=e,this.z=r,this.w=n,this},setScalar:function(t){return this.x=t,this.y=t,this.z=t,this.w=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setZ:function(t){return this.z=t,this},setW:function(t){return this.w=t,this},setComponent:function(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:function(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:function(){return new this.constructor(this.x,this.y,this.z,this.w)},copy:function(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:function(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:function(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this},addVectors:function(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:function(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:function(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:function(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this},subVectors:function(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},multiplyScalar:function(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this},applyMatrix4:function(t){var e=this.x,r=this.y,n=this.z,i=this.w,a=t.elements;return this.x=a[0]*e+a[4]*r+a[8]*n+a[12]*i,this.y=a[1]*e+a[5]*r+a[9]*n+a[13]*i,this.z=a[2]*e+a[6]*r+a[10]*n+a[14]*i,this.w=a[3]*e+a[7]*r+a[11]*n+a[15]*i,this},divideScalar:function(t){return this.multiplyScalar(1/t)},setAxisAngleFromQuaternion:function(t){this.w=2*Math.acos(t.w);var 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:function(t){var e,r,n,i,a=t.elements,o=a[0],s=a[4],c=a[8],l=a[1],h=a[5],u=a[9],p=a[2],d=a[6],f=a[10];if(Math.abs(s-l)<.01&&Math.abs(c-p)<.01&&Math.abs(u-d)<.01){if(Math.abs(s+l)<.1&&Math.abs(c+p)<.1&&Math.abs(u+d)<.1&&Math.abs(o+h+f-3)<.1)return this.set(1,0,0,0),this;e=Math.PI;var m=(o+1)/2,g=(h+1)/2,v=(f+1)/2,y=(s+l)/4,x=(c+p)/4,b=(u+d)/4;return m>g&&m>v?m<.01?(r=0,n=.707106781,i=.707106781):(n=y/(r=Math.sqrt(m)),i=x/r):g>v?g<.01?(r=.707106781,n=0,i=.707106781):(r=y/(n=Math.sqrt(g)),i=b/n):v<.01?(r=.707106781,n=.707106781,i=0):(r=x/(i=Math.sqrt(v)),n=b/i),this.set(r,n,i,e),this}var w=Math.sqrt((d-u)*(d-u)+(c-p)*(c-p)+(l-s)*(l-s));return Math.abs(w)<.001&&(w=1),this.x=(d-u)/w,this.y=(c-p)/w,this.z=(l-s)/w,this.w=Math.acos((o+h+f-1)/2),this},min:function(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.w=Math.min(this.w,t.w),this},max:function(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.w=Math.max(this.w,t.w),this},clamp:function(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.w=Math.max(t.w,Math.min(e.w,this.w)),this},clampScalar:function(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.w=Math.max(t,Math.min(e,this.w)),this},clampLength:function(t,e){var r=this.length();return this.divideScalar(r||1).multiplyScalar(Math.max(t,Math.min(e,r)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this},roundToZero:function(){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.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this},dot:function(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(t){return this.normalize().multiplyScalar(t)},lerp:function(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.w+=(t.w-this.w)*e,this},lerpVectors:function(t,e,r){return this.subVectors(e,t).multiplyScalar(r).add(t)},equals:function(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w},fromArray:function(t,e){return void 0===e&&(e=0),this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t},fromBufferAttribute:function(t,e,r){return void 0!==r&&console.warn("THREE.Vector4: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}}),b.prototype=Object.assign(Object.create(e.prototype),{constructor:b,isWebGLRenderTarget:!0,setSize:function(t,e){this.width===t&&this.height===e||(this.width=t,this.height=e,this.texture.image.width=t,this.texture.image.height=e,this.dispose()),this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.width=t.width,this.height=t.height,this.viewport.copy(t.viewport),this.texture=t.texture.clone(),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.depthTexture=t.depthTexture,this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),w.prototype=Object.assign(Object.create(b.prototype),{constructor:w,isWebGLMultisampleRenderTarget:!0,copy:function(t){return b.prototype.copy.call(this,t),this.samples=t.samples,this}});var _=new d,M=new P,S=new d(0,0,0),T=new d(1,1,1),E=new d,A=new d,L=new d;function P(){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.")}Object.assign(P.prototype,{isMatrix4:!0,set:function(t,e,r,n,i,a,o,s,c,l,h,u,p,d,f,m){var g=this.elements;return g[0]=t,g[4]=e,g[8]=r,g[12]=n,g[1]=i,g[5]=a,g[9]=o,g[13]=s,g[2]=c,g[6]=l,g[10]=h,g[14]=u,g[3]=p,g[7]=d,g[11]=f,g[15]=m,this},identity:function(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this},clone:function(){return(new P).fromArray(this.elements)},copy:function(t){var e=this.elements,r=t.elements;return e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],e[4]=r[4],e[5]=r[5],e[6]=r[6],e[7]=r[7],e[8]=r[8],e[9]=r[9],e[10]=r[10],e[11]=r[11],e[12]=r[12],e[13]=r[13],e[14]=r[14],e[15]=r[15],this},copyPosition:function(t){var e=this.elements,r=t.elements;return e[12]=r[12],e[13]=r[13],e[14]=r[14],this},extractBasis:function(t,e,r){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),r.setFromMatrixColumn(this,2),this},makeBasis:function(t,e,r){return this.set(t.x,e.x,r.x,0,t.y,e.y,r.y,0,t.z,e.z,r.z,0,0,0,0,1),this},extractRotation:function(t){var e=this.elements,r=t.elements,n=1/_.setFromMatrixColumn(t,0).length(),i=1/_.setFromMatrixColumn(t,1).length(),a=1/_.setFromMatrixColumn(t,2).length();return e[0]=r[0]*n,e[1]=r[1]*n,e[2]=r[2]*n,e[3]=0,e[4]=r[4]*i,e[5]=r[5]*i,e[6]=r[6]*i,e[7]=0,e[8]=r[8]*a,e[9]=r[9]*a,e[10]=r[10]*a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this},makeRotationFromEuler:function(t){t&&t.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");var e=this.elements,r=t.x,n=t.y,i=t.z,a=Math.cos(r),o=Math.sin(r),s=Math.cos(n),c=Math.sin(n),l=Math.cos(i),h=Math.sin(i);if("XYZ"===t.order){var u=a*l,p=a*h,d=o*l,f=o*h;e[0]=s*l,e[4]=-s*h,e[8]=c,e[1]=p+d*c,e[5]=u-f*c,e[9]=-o*s,e[2]=f-u*c,e[6]=d+p*c,e[10]=a*s}else if("YXZ"===t.order){var m=s*l,g=s*h,v=c*l,y=c*h;e[0]=m+y*o,e[4]=v*o-g,e[8]=a*c,e[1]=a*h,e[5]=a*l,e[9]=-o,e[2]=g*o-v,e[6]=y+m*o,e[10]=a*s}else if("ZXY"===t.order)m=s*l,g=s*h,v=c*l,y=c*h,e[0]=m-y*o,e[4]=-a*h,e[8]=v+g*o,e[1]=g+v*o,e[5]=a*l,e[9]=y-m*o,e[2]=-a*c,e[6]=o,e[10]=a*s;else if("ZYX"===t.order)u=a*l,p=a*h,d=o*l,f=o*h,e[0]=s*l,e[4]=d*c-p,e[8]=u*c+f,e[1]=s*h,e[5]=f*c+u,e[9]=p*c-d,e[2]=-c,e[6]=o*s,e[10]=a*s;else if("YZX"===t.order){var x=a*s,b=a*c,w=o*s,_=o*c;e[0]=s*l,e[4]=_-x*h,e[8]=w*h+b,e[1]=h,e[5]=a*l,e[9]=-o*l,e[2]=-c*l,e[6]=b*h+w,e[10]=x-_*h}else"XZY"===t.order&&(x=a*s,b=a*c,w=o*s,_=o*c,e[0]=s*l,e[4]=-h,e[8]=c*l,e[1]=x*h+_,e[5]=a*l,e[9]=b*h-w,e[2]=w*h-b,e[6]=o*l,e[10]=_*h+x);return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this},makeRotationFromQuaternion:function(t){return this.compose(S,t,T)},lookAt:function(t,e,r){var n=this.elements;return L.subVectors(t,e),0===L.lengthSq()&&(L.z=1),L.normalize(),E.crossVectors(r,L),0===E.lengthSq()&&(1===Math.abs(r.z)?L.x+=1e-4:L.z+=1e-4,L.normalize(),E.crossVectors(r,L)),E.normalize(),A.crossVectors(L,E),n[0]=E.x,n[4]=A.x,n[8]=L.x,n[1]=E.y,n[5]=A.y,n[9]=L.y,n[2]=E.z,n[6]=A.z,n[10]=L.z,this},multiply:function(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:function(t){return this.multiplyMatrices(t,this)},multiplyMatrices:function(t,e){var r=t.elements,n=e.elements,i=this.elements,a=r[0],o=r[4],s=r[8],c=r[12],l=r[1],h=r[5],u=r[9],p=r[13],d=r[2],f=r[6],m=r[10],g=r[14],v=r[3],y=r[7],x=r[11],b=r[15],w=n[0],_=n[4],M=n[8],S=n[12],T=n[1],E=n[5],A=n[9],L=n[13],R=n[2],P=n[6],C=n[10],O=n[14],D=n[3],N=n[7],I=n[11],z=n[15];return i[0]=a*w+o*T+s*R+c*D,i[4]=a*_+o*E+s*P+c*N,i[8]=a*M+o*A+s*C+c*I,i[12]=a*S+o*L+s*O+c*z,i[1]=l*w+h*T+u*R+p*D,i[5]=l*_+h*E+u*P+p*N,i[9]=l*M+h*A+u*C+p*I,i[13]=l*S+h*L+u*O+p*z,i[2]=d*w+f*T+m*R+g*D,i[6]=d*_+f*E+m*P+g*N,i[10]=d*M+f*A+m*C+g*I,i[14]=d*S+f*L+m*O+g*z,i[3]=v*w+y*T+x*R+b*D,i[7]=v*_+y*E+x*P+b*N,i[11]=v*M+y*A+x*C+b*I,i[15]=v*S+y*L+x*O+b*z,this},multiplyScalar:function(t){var 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},applyToBufferAttribute:function(t){for(var e=0,r=t.count;e1){for(var e=0;e1){for(var e=0;e0)for(n.children=[],s=0;s0&&(r.geometries=u),p.length>0&&(r.materials=p),d.length>0&&(r.textures=d),f.length>0&&(r.images=f),o.length>0&&(r.shapes=o)}return r.object=n,r;function m(t){var e=[];for(var r in t){var n=t[r];delete n.metadata,e.push(n)}return e}},clone:function(t){return(new this.constructor).copy(this,t)},copy:function(t,e){if(void 0===e&&(e=!0),this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),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(var r=0;rs)return!1}return!0}Object.assign(ct.prototype,{isBox3:!0,set:function(t,e){return this.min.copy(t),this.max.copy(e),this},setFromArray:function(t){for(var e=1/0,r=1/0,n=1/0,i=-1/0,a=-1/0,o=-1/0,s=0,c=t.length;si&&(i=l),h>a&&(a=h),u>o&&(o=u)}return this.min.set(e,r,n),this.max.set(i,a,o),this},setFromBufferAttribute:function(t){for(var e=1/0,r=1/0,n=1/0,i=-1/0,a=-1/0,o=-1/0,s=0,c=t.count;si&&(i=l),h>a&&(a=h),u>o&&(o=u)}return this.min.set(e,r,n),this.max.set(i,a,o),this},setFromPoints:function(t){this.makeEmpty();for(var e=0,r=t.length;ethis.max.x||t.ythis.max.y||t.zthis.max.z)},containsBox:function(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:function(t,e){return void 0===e&&(console.warn("THREE.Box3: .getParameter() target is now required"),e=new d),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:function(t){return!(t.max.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)},intersectsSphere:function(t){return this.clampPoint(t.center,Q),Q.distanceToSquared(t.center)<=t.radius*t.radius},intersectsPlane:function(t){var e,r;return t.normal.x>0?(e=t.normal.x*this.min.x,r=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,r=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,r+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,r+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,r+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,r+=t.normal.z*this.min.z),e<=-t.constant&&r>=-t.constant},intersectsTriangle:function(t){if(this.isEmpty())return!1;this.getCenter(it),at.subVectors(this.max,it),K.subVectors(t.a,it),$.subVectors(t.b,it),tt.subVectors(t.c,it),et.subVectors($,K),rt.subVectors(tt,$),nt.subVectors(K,tt);var e=[0,-et.z,et.y,0,-rt.z,rt.y,0,-nt.z,nt.y,et.z,0,-et.x,rt.z,0,-rt.x,nt.z,0,-nt.x,-et.y,et.x,0,-rt.y,rt.x,0,-nt.y,nt.x,0];return!!lt(e,K,$,tt,at)&&!!lt(e=[1,0,0,0,1,0,0,0,1],K,$,tt,at)&&(ot.crossVectors(et,rt),lt(e=[ot.x,ot.y,ot.z],K,$,tt,at))},clampPoint:function(t,e){return void 0===e&&(console.warn("THREE.Box3: .clampPoint() target is now required"),e=new d),e.copy(t).clamp(this.min,this.max)},distanceToPoint:function(t){return Q.copy(t).clamp(this.min,this.max).sub(t).length()},getBoundingSphere:function(t){return void 0===t&&console.error("THREE.Box3: .getBoundingSphere() target is now required"),this.getCenter(t.center),t.radius=.5*this.getSize(Q).length(),t},intersect:function(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this},union:function(t){return this.min.min(t.min),this.max.max(t.max),this},applyMatrix4:function(t){return this.isEmpty()||(Z[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),Z[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),Z[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),Z[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),Z[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),Z[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),Z[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),Z[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(Z)),this},translate:function(t){return this.min.add(t),this.max.add(t),this},equals:function(t){return t.min.equals(this.min)&&t.max.equals(this.max)}});var ht=new ct;function ut(t,e){this.center=void 0!==t?t:new d,this.radius=void 0!==e?e:0}Object.assign(ut.prototype,{set:function(t,e){return this.center.copy(t),this.radius=e,this},setFromPoints:function(t,e){var r=this.center;void 0!==e?r.copy(e):ht.setFromPoints(t).getCenter(r);for(var n=0,i=0,a=t.length;ithis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e},getBoundingBox:function(t){return void 0===t&&(console.warn("THREE.Sphere: .getBoundingBox() target is now required"),t=new ct),t.set(this.center,this.center),t.expandByScalar(this.radius),t},applyMatrix4:function(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this},translate:function(t){return this.center.add(t),this},equals:function(t){return t.center.equals(this.center)&&t.radius===this.radius}});var pt=new d,dt=new d,ft=new d,mt=new d,gt=new d,vt=new d,yt=new d;function xt(t,e){this.origin=void 0!==t?t:new d,this.direction=void 0!==e?e:new d}Object.assign(xt.prototype,{set:function(t,e){return this.origin.copy(t),this.direction.copy(e),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this},at:function(t,e){return void 0===e&&(console.warn("THREE.Ray: .at() target is now required"),e=new d),e.copy(this.direction).multiplyScalar(t).add(this.origin)},lookAt:function(t){return this.direction.copy(t).sub(this.origin).normalize(),this},recast:function(t){return this.origin.copy(this.at(t,pt)),this},closestPointToPoint:function(t,e){void 0===e&&(console.warn("THREE.Ray: .closestPointToPoint() target is now required"),e=new d),e.subVectors(t,this.origin);var r=e.dot(this.direction);return r<0?e.copy(this.origin):e.copy(this.direction).multiplyScalar(r).add(this.origin)},distanceToPoint:function(t){return Math.sqrt(this.distanceSqToPoint(t))},distanceSqToPoint:function(t){var e=pt.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(pt.copy(this.direction).multiplyScalar(e).add(this.origin),pt.distanceToSquared(t))},distanceSqToSegment:function(t,e,r,n){dt.copy(t).add(e).multiplyScalar(.5),ft.copy(e).sub(t).normalize(),mt.copy(this.origin).sub(dt);var i,a,o,s,c=.5*t.distanceTo(e),l=-this.direction.dot(ft),h=mt.dot(this.direction),u=-mt.dot(ft),p=mt.lengthSq(),d=Math.abs(1-l*l);if(d>0)if(a=l*h-u,s=c*d,(i=l*u-h)>=0)if(a>=-s)if(a<=s){var f=1/d;o=(i*=f)*(i+l*(a*=f)+2*h)+a*(l*i+a+2*u)+p}else a=c,o=-(i=Math.max(0,-(l*a+h)))*i+a*(a+2*u)+p;else a=-c,o=-(i=Math.max(0,-(l*a+h)))*i+a*(a+2*u)+p;else a<=-s?o=-(i=Math.max(0,-(-l*c+h)))*i+(a=i>0?-c:Math.min(Math.max(-c,-u),c))*(a+2*u)+p:a<=s?(i=0,o=(a=Math.min(Math.max(-c,-u),c))*(a+2*u)+p):o=-(i=Math.max(0,-(l*c+h)))*i+(a=i>0?c:Math.min(Math.max(-c,-u),c))*(a+2*u)+p;else a=l>0?-c:c,o=-(i=Math.max(0,-(l*a+h)))*i+a*(a+2*u)+p;return r&&r.copy(this.direction).multiplyScalar(i).add(this.origin),n&&n.copy(ft).multiplyScalar(a).add(dt),o},intersectSphere:function(t,e){pt.subVectors(t.center,this.origin);var r=pt.dot(this.direction),n=pt.dot(pt)-r*r,i=t.radius*t.radius;if(n>i)return null;var a=Math.sqrt(i-n),o=r-a,s=r+a;return o<0&&s<0?null:o<0?this.at(s,e):this.at(o,e)},intersectsSphere:function(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius},distanceToPlane:function(t){var e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;var r=-(this.origin.dot(t.normal)+t.constant)/e;return r>=0?r:null},intersectPlane:function(t,e){var r=this.distanceToPlane(t);return null===r?null:this.at(r,e)},intersectsPlane:function(t){var e=t.distanceToPoint(this.origin);return 0===e||t.normal.dot(this.direction)*e<0},intersectBox:function(t,e){var r,n,i,a,o,s,c=1/this.direction.x,l=1/this.direction.y,h=1/this.direction.z,u=this.origin;return c>=0?(r=(t.min.x-u.x)*c,n=(t.max.x-u.x)*c):(r=(t.max.x-u.x)*c,n=(t.min.x-u.x)*c),l>=0?(i=(t.min.y-u.y)*l,a=(t.max.y-u.y)*l):(i=(t.max.y-u.y)*l,a=(t.min.y-u.y)*l),r>a||i>n?null:((i>r||r!=r)&&(r=i),(a=0?(o=(t.min.z-u.z)*h,s=(t.max.z-u.z)*h):(o=(t.max.z-u.z)*h,s=(t.min.z-u.z)*h),r>s||o>n?null:((o>r||r!=r)&&(r=o),(s=0?r:n,e)))},intersectsBox:function(t){return null!==this.intersectBox(t,pt)},intersectTriangle:function(t,e,r,n,i){gt.subVectors(e,t),vt.subVectors(r,t),yt.crossVectors(gt,vt);var a,o=this.direction.dot(yt);if(o>0){if(n)return null;a=1}else{if(!(o<0))return null;a=-1,o=-o}mt.subVectors(this.origin,t);var s=a*this.direction.dot(vt.crossVectors(mt,vt));if(s<0)return null;var c=a*this.direction.dot(gt.cross(mt));if(c<0)return null;if(s+c>o)return null;var l=-a*mt.dot(yt);return l<0?null:this.at(l/o,i)},applyMatrix4:function(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this},equals:function(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}});var bt=new d,wt=new d,_t=new d,Mt=new d,St=new d,Tt=new d,Et=new d,At=new d,Lt=new d,Rt=new d;function Pt(t,e,r){this.a=void 0!==t?t:new d,this.b=void 0!==e?e:new d,this.c=void 0!==r?r:new d}Object.assign(Pt,{getNormal:function(t,e,r,n){void 0===n&&(console.warn("THREE.Triangle: .getNormal() target is now required"),n=new d),n.subVectors(r,e),bt.subVectors(t,e),n.cross(bt);var i=n.lengthSq();return i>0?n.multiplyScalar(1/Math.sqrt(i)):n.set(0,0,0)},getBarycoord:function(t,e,r,n,i){bt.subVectors(n,e),wt.subVectors(r,e),_t.subVectors(t,e);var a=bt.dot(bt),o=bt.dot(wt),s=bt.dot(_t),c=wt.dot(wt),l=wt.dot(_t),h=a*c-o*o;if(void 0===i&&(console.warn("THREE.Triangle: .getBarycoord() target is now required"),i=new d),0===h)return i.set(-2,-1,-1);var u=1/h,p=(c*s-o*l)*u,f=(a*l-o*s)*u;return i.set(1-p-f,f,p)},containsPoint:function(t,e,r,n){return Pt.getBarycoord(t,e,r,n,Mt),Mt.x>=0&&Mt.y>=0&&Mt.x+Mt.y<=1},getUV:function(t,e,r,n,i,a,o,s){return this.getBarycoord(t,e,r,n,Mt),s.set(0,0),s.addScaledVector(i,Mt.x),s.addScaledVector(a,Mt.y),s.addScaledVector(o,Mt.z),s},isFrontFacing:function(t,e,r,n){return bt.subVectors(r,e),wt.subVectors(t,e),bt.cross(wt).dot(n)<0}}),Object.assign(Pt.prototype,{set:function(t,e,r){return this.a.copy(t),this.b.copy(e),this.c.copy(r),this},setFromPointsAndIndices:function(t,e,r,n){return this.a.copy(t[e]),this.b.copy(t[r]),this.c.copy(t[n]),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this},getArea:function(){return bt.subVectors(this.c,this.b),wt.subVectors(this.a,this.b),.5*bt.cross(wt).length()},getMidpoint:function(t){return void 0===t&&(console.warn("THREE.Triangle: .getMidpoint() target is now required"),t=new d),t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},getNormal:function(t){return Pt.getNormal(this.a,this.b,this.c,t)},getPlane:function(t){return void 0===t&&(console.warn("THREE.Triangle: .getPlane() target is now required"),t=new d),t.setFromCoplanarPoints(this.a,this.b,this.c)},getBarycoord:function(t,e){return Pt.getBarycoord(t,this.a,this.b,this.c,e)},getUV:function(t,e,r,n,i){return Pt.getUV(t,this.a,this.b,this.c,e,r,n,i)},containsPoint:function(t){return Pt.containsPoint(t,this.a,this.b,this.c)},isFrontFacing:function(t){return Pt.isFrontFacing(this.a,this.b,this.c,t)},intersectsBox:function(t){return t.intersectsTriangle(this)},closestPointToPoint:function(t,e){void 0===e&&(console.warn("THREE.Triangle: .closestPointToPoint() target is now required"),e=new d);var r,n,i=this.a,a=this.b,o=this.c;St.subVectors(a,i),Tt.subVectors(o,i),At.subVectors(t,i);var s=St.dot(At),c=Tt.dot(At);if(s<=0&&c<=0)return e.copy(i);Lt.subVectors(t,a);var l=St.dot(Lt),h=Tt.dot(Lt);if(l>=0&&h<=l)return e.copy(a);var u=s*h-l*c;if(u<=0&&s>=0&&l<=0)return r=s/(s-l),e.copy(i).addScaledVector(St,r);Rt.subVectors(t,o);var p=St.dot(Rt),f=Tt.dot(Rt);if(f>=0&&p<=f)return e.copy(o);var m=p*c-s*f;if(m<=0&&c>=0&&f<=0)return n=c/(c-f),e.copy(i).addScaledVector(Tt,n);var g=l*f-p*h;if(g<=0&&h-l>=0&&p-f>=0)return Et.subVectors(o,a),n=(h-l)/(h-l+(p-f)),e.copy(a).addScaledVector(Et,n);var v=1/(g+m+u);return r=m*v,n=u*v,e.copy(i).addScaledVector(St,r).addScaledVector(Tt,n)},equals:function(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}});var Ct={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},Ot={h:0,s:0,l:0},Dt={h:0,s:0,l:0};function Nt(t,e,r){return void 0===e&&void 0===r?this.set(t):this.setRGB(t,e,r)}function It(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+6*(e-t)*(2/3-r):t}function zt(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function Bt(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}function Ft(t,e,r,n,i,a){this.a=t,this.b=e,this.c=r,this.normal=n&&n.isVector3?n:new d,this.vertexNormals=Array.isArray(n)?n:[],this.color=i&&i.isColor?i:new Nt,this.vertexColors=Array.isArray(i)?i:[],this.materialIndex=void 0!==a?a:0}Object.assign(Nt.prototype,{isColor:!0,r:1,g:1,b:1,set:function(t){return t&&t.isColor?this.copy(t):"number"==typeof t?this.setHex(t):"string"==typeof t&&this.setStyle(t),this},setScalar:function(t){return this.r=t,this.g=t,this.b=t,this},setHex:function(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:function(t,e,r){return this.r=t,this.g=e,this.b=r,this},setHSL:function(t,e,r){if(t=s.euclideanModulo(t,1),e=s.clamp(e,0,1),r=s.clamp(r,0,1),0===e)this.r=this.g=this.b=r;else{var n=r<=.5?r*(1+e):r+e-r*e,i=2*r-n;this.r=It(i,n,t+1/3),this.g=It(i,n,t),this.b=It(i,n,t-1/3)}return this},setStyle:function(t){function e(e){void 0!==e&&parseFloat(e)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}var r;if(r=/^((?:rgb|hsl)a?)\(\s*([^\)]*)\)/.exec(t)){var n,i=r[1],a=r[2];switch(i){case"rgb":case"rgba":if(n=/^(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(a))return this.r=Math.min(255,parseInt(n[1],10))/255,this.g=Math.min(255,parseInt(n[2],10))/255,this.b=Math.min(255,parseInt(n[3],10))/255,e(n[5]),this;if(n=/^(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(a))return this.r=Math.min(100,parseInt(n[1],10))/100,this.g=Math.min(100,parseInt(n[2],10))/100,this.b=Math.min(100,parseInt(n[3],10))/100,e(n[5]),this;break;case"hsl":case"hsla":if(n=/^([0-9]*\.?[0-9]+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(a)){var o=parseFloat(n[1])/360,s=parseInt(n[2],10)/100,c=parseInt(n[3],10)/100;return e(n[5]),this.setHSL(o,s,c)}}}else if(r=/^\#([A-Fa-f0-9]+)$/.exec(t)){var l,h=(l=r[1]).length;if(3===h)return this.r=parseInt(l.charAt(0)+l.charAt(0),16)/255,this.g=parseInt(l.charAt(1)+l.charAt(1),16)/255,this.b=parseInt(l.charAt(2)+l.charAt(2),16)/255,this;if(6===h)return this.r=parseInt(l.charAt(0)+l.charAt(1),16)/255,this.g=parseInt(l.charAt(2)+l.charAt(3),16)/255,this.b=parseInt(l.charAt(4)+l.charAt(5),16)/255,this}return t&&t.length>0&&(void 0!==(l=Ct[t])?this.setHex(l):console.warn("THREE.Color: Unknown color "+t)),this},clone:function(){return new this.constructor(this.r,this.g,this.b)},copy:function(t){return this.r=t.r,this.g=t.g,this.b=t.b,this},copyGammaToLinear:function(t,e){return void 0===e&&(e=2),this.r=Math.pow(t.r,e),this.g=Math.pow(t.g,e),this.b=Math.pow(t.b,e),this},copyLinearToGamma:function(t,e){void 0===e&&(e=2);var r=e>0?1/e:1;return this.r=Math.pow(t.r,r),this.g=Math.pow(t.g,r),this.b=Math.pow(t.b,r),this},convertGammaToLinear:function(t){return this.copyGammaToLinear(this,t),this},convertLinearToGamma:function(t){return this.copyLinearToGamma(this,t),this},copySRGBToLinear:function(t){return this.r=zt(t.r),this.g=zt(t.g),this.b=zt(t.b),this},copyLinearToSRGB:function(t){return this.r=Bt(t.r),this.g=Bt(t.g),this.b=Bt(t.b),this},convertSRGBToLinear:function(){return this.copySRGBToLinear(this),this},convertLinearToSRGB:function(){return this.copyLinearToSRGB(this),this},getHex:function(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0},getHexString:function(){return("000000"+this.getHex().toString(16)).slice(-6)},getHSL:function(t){void 0===t&&(console.warn("THREE.Color: .getHSL() target is now required"),t={h:0,s:0,l:0});var e,r,n=this.r,i=this.g,a=this.b,o=Math.max(n,i,a),s=Math.min(n,i,a),c=(s+o)/2;if(s===o)e=0,r=0;else{var l=o-s;switch(r=c<=.5?l/(o+s):l/(2-o-s),o){case n:e=(i-a)/l+(ie&&(e=t[r]);return e}Ut.prototype=Object.assign(Object.create(e.prototype),{constructor:Ut,isMaterial:!0,onBeforeCompile:function(){},setValues:function(t){if(void 0!==t)for(var e in t){var r=t[e];if(void 0!==r)if("shading"!==e){var n=this[e];void 0!==n?n&&n.isColor?n.set(r):n&&n.isVector3&&r&&r.isVector3?n.copy(r):this[e]=r:console.warn("THREE."+this.type+": '"+e+"' is not a property of this material.")}else console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===r;else console.warn("THREE.Material: '"+e+"' parameter is undefined.")}},toJSON:function(t){var e=void 0===t||"string"==typeof t;e&&(t={textures:{},images:{}});var r={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};function n(t){var e=[];for(var r in t){var n=t[r];delete n.metadata,e.push(n)}return e}if(r.uuid=this.uuid,r.type=this.type,""!==this.name&&(r.name=this.name),this.color&&this.color.isColor&&(r.color=this.color.getHex()),void 0!==this.roughness&&(r.roughness=this.roughness),void 0!==this.metalness&&(r.metalness=this.metalness),this.emissive&&this.emissive.isColor&&(r.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(r.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(r.specular=this.specular.getHex()),void 0!==this.shininess&&(r.shininess=this.shininess),void 0!==this.clearcoat&&(r.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(r.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(r.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,r.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.map&&this.map.isTexture&&(r.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(r.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(r.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(r.lightMap=this.lightMap.toJSON(t).uuid),this.aoMap&&this.aoMap.isTexture&&(r.aoMap=this.aoMap.toJSON(t).uuid,r.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(r.bumpMap=this.bumpMap.toJSON(t).uuid,r.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(r.normalMap=this.normalMap.toJSON(t).uuid,r.normalMapType=this.normalMapType,r.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(r.displacementMap=this.displacementMap.toJSON(t).uuid,r.displacementScale=this.displacementScale,r.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(r.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(r.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(r.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(r.specularMap=this.specularMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(r.envMap=this.envMap.toJSON(t).uuid,r.reflectivity=this.reflectivity,r.refractionRatio=this.refractionRatio,void 0!==this.combine&&(r.combine=this.combine),void 0!==this.envMapIntensity&&(r.envMapIntensity=this.envMapIntensity)),this.gradientMap&&this.gradientMap.isTexture&&(r.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.size&&(r.size=this.size),void 0!==this.sizeAttenuation&&(r.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(r.blending=this.blending),!0===this.flatShading&&(r.flatShading=this.flatShading),0!==this.side&&(r.side=this.side),0!==this.vertexColors&&(r.vertexColors=this.vertexColors),this.opacity<1&&(r.opacity=this.opacity),!0===this.transparent&&(r.transparent=this.transparent),r.depthFunc=this.depthFunc,r.depthTest=this.depthTest,r.depthWrite=this.depthWrite,r.stencilWrite=this.stencilWrite,r.stencilFunc=this.stencilFunc,r.stencilRef=this.stencilRef,r.stencilMask=this.stencilMask,r.stencilFail=this.stencilFail,r.stencilZFail=this.stencilZFail,r.stencilZPass=this.stencilZPass,this.rotation&&0!==this.rotation&&(r.rotation=this.rotation),!0===this.polygonOffset&&(r.polygonOffset=!0),0!==this.polygonOffsetFactor&&(r.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(r.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth&&1!==this.linewidth&&(r.linewidth=this.linewidth),void 0!==this.dashSize&&(r.dashSize=this.dashSize),void 0!==this.gapSize&&(r.gapSize=this.gapSize),void 0!==this.scale&&(r.scale=this.scale),!0===this.dithering&&(r.dithering=!0),this.alphaTest>0&&(r.alphaTest=this.alphaTest),!0===this.premultipliedAlpha&&(r.premultipliedAlpha=this.premultipliedAlpha),!0===this.wireframe&&(r.wireframe=this.wireframe),this.wireframeLinewidth>1&&(r.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(r.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(r.wireframeLinejoin=this.wireframeLinejoin),!0===this.morphTargets&&(r.morphTargets=!0),!0===this.morphNormals&&(r.morphNormals=!0),!0===this.skinning&&(r.skinning=!0),!1===this.visible&&(r.visible=!1),!1===this.toneMapped&&(r.toneMapped=!1),"{}"!==JSON.stringify(this.userData)&&(r.userData=this.userData),e){var i=n(t.textures),a=n(t.images);i.length>0&&(r.textures=i),a.length>0&&(r.images=a)}return r},clone:function(){return(new this.constructor).copy(this)},copy:function(t){this.name=t.name,this.fog=t.fog,this.lights=t.lights,this.blending=t.blending,this.side=t.side,this.flatShading=t.flatShading,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.stencilWrite=t.stencilWrite,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilMask=t.stencilMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,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.premultipliedAlpha=t.premultipliedAlpha,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this.clipShadows=t.clipShadows,this.clipIntersection=t.clipIntersection;var e=t.clippingPlanes,r=null;if(null!==e){var n=e.length;r=new Array(n);for(var i=0;i!==n;++i)r[i]=e[i].clone()}return this.clippingPlanes=r,this.shadowSide=t.shadowSide,this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),Ht.prototype=Object.create(Ut.prototype),Ht.prototype.constructor=Ht,Ht.prototype.isMeshBasicMaterial=!0,Ht.prototype.copy=function(t){return Ut.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this},Object.defineProperty(Vt.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}}),Object.assign(Vt.prototype,{isBufferAttribute:!0,onUploadCallback:function(){},setArray:function(t){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");return this.count=void 0!==t?t.length/this.itemSize:0,this.array=t,this},setDynamic:function(t){return this.dynamic=t,this},copy:function(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.dynamic=t.dynamic,this},copyAt:function(t,e,r){t*=this.itemSize,r*=e.itemSize;for(var n=0,i=this.itemSize;n0,o=i[1]&&i[1].length>0,s=t.morphTargets,c=s.length;if(c>0){e=[];for(var h=0;h0){for(u=[],h=0;h0&&0===r.length&&console.error("THREE.DirectGeometry: Faceless geometries are not supported."),h=0;h65535?Jt:Xt)(t,1):this.index=t},addAttribute:function(t,e){return e&&e.isBufferAttribute||e&&e.isInterleavedBufferAttribute?"index"===t?(console.warn("THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute."),this.setIndex(e),this):(this.attributes[t]=e,this):(console.warn("THREE.BufferGeometry: .addAttribute() now expects ( name, attribute )."),this.addAttribute(t,new Vt(arguments[1],arguments[2])))},getAttribute:function(t){return this.attributes[t]},removeAttribute:function(t){return delete this.attributes[t],this},addGroup:function(t,e,r){this.groups.push({start:t,count:e,materialIndex:void 0!==r?r:0})},clearGroups:function(){this.groups=[]},setDrawRange:function(t,e){this.drawRange.start=t,this.drawRange.count=e},applyMatrix:function(t){var e=this.attributes.position;void 0!==e&&(t.applyToBufferAttribute(e),e.needsUpdate=!0);var r=this.attributes.normal;void 0!==r&&((new m).getNormalMatrix(t).applyToBufferAttribute(r),r.needsUpdate=!0);var n=this.attributes.tangent;return void 0!==n&&((new m).getNormalMatrix(t).applyToBufferAttribute(n),n.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this},rotateX:function(t){return ee.makeRotationX(t),this.applyMatrix(ee),this},rotateY:function(t){return ee.makeRotationY(t),this.applyMatrix(ee),this},rotateZ:function(t){return ee.makeRotationZ(t),this.applyMatrix(ee),this},translate:function(t,e,r){return ee.makeTranslation(t,e,r),this.applyMatrix(ee),this},scale:function(t,e,r){return ee.makeScale(t,e,r),this.applyMatrix(ee),this},lookAt:function(t){return re.lookAt(t),re.updateMatrix(),this.applyMatrix(re.matrix),this},center:function(){return this.computeBoundingBox(),this.boundingBox.getCenter(ne).negate(),this.translate(ne.x,ne.y,ne.z),this},setFromObject:function(t){var e=t.geometry;if(t.isPoints||t.isLine){var r=new Zt(3*e.vertices.length,3),n=new Zt(3*e.colors.length,3);if(this.addAttribute("position",r.copyVector3sArray(e.vertices)),this.addAttribute("color",n.copyColorsArray(e.colors)),e.lineDistances&&e.lineDistances.length===e.vertices.length){var i=new Zt(e.lineDistances.length,1);this.addAttribute("lineDistance",i.copyArray(e.lineDistances))}null!==e.boundingSphere&&(this.boundingSphere=e.boundingSphere.clone()),null!==e.boundingBox&&(this.boundingBox=e.boundingBox.clone())}else t.isMesh&&e&&e.isGeometry&&this.fromGeometry(e);return this},setFromPoints:function(t){for(var e=[],r=0,n=t.length;r0){var r=new Float32Array(3*t.normals.length);this.addAttribute("normal",new Vt(r,3).copyVector3sArray(t.normals))}if(t.colors.length>0){var n=new Float32Array(3*t.colors.length);this.addAttribute("color",new Vt(n,3).copyColorsArray(t.colors))}if(t.uvs.length>0){var i=new Float32Array(2*t.uvs.length);this.addAttribute("uv",new Vt(i,2).copyVector2sArray(t.uvs))}if(t.uvs2.length>0){var a=new Float32Array(2*t.uvs2.length);this.addAttribute("uv2",new Vt(a,2).copyVector2sArray(t.uvs2))}for(var o in this.groups=t.groups,t.morphTargets){for(var s=[],c=t.morphTargets[o],l=0,h=c.length;l0){var d=new Zt(4*t.skinIndices.length,4);this.addAttribute("skinIndex",d.copyVector4sArray(t.skinIndices))}if(t.skinWeights.length>0){var f=new Zt(4*t.skinWeights.length,4);this.addAttribute("skinWeight",f.copyVector4sArray(t.skinWeights))}return null!==t.boundingSphere&&(this.boundingSphere=t.boundingSphere.clone()),null!==t.boundingBox&&(this.boundingBox=t.boundingBox.clone()),this},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new ct);var t=this.attributes.position,e=this.morphAttributes.position;if(void 0!==t){if(this.boundingBox.setFromBufferAttribute(t),e)for(var r=0,n=e.length;r0&&(t.userData=this.userData),void 0!==this.parameters){var e=this.parameters;for(var r in e)void 0!==e[r]&&(t[r]=e[r]);return t}t.data={attributes:{}};var n=this.index;null!==n&&(t.data.index={type:n.array.constructor.name,array:Array.prototype.slice.call(n.array)});var i=this.attributes;for(var r in i){var a=(p=i[r]).toJSON();""!==p.name&&(a.name=p.name),t.data.attributes[r]=a}var o={},s=!1;for(var r in this.morphAttributes){for(var c=this.morphAttributes[r],l=[],h=0,u=c.length;h0&&(o[r]=l,s=!0)}s&&(t.data.morphAttributes=o);var d=this.groups;d.length>0&&(t.data.groups=JSON.parse(JSON.stringify(d)));var f=this.boundingSphere;return null!==f&&(t.data.boundingSphere={center:f.center.toArray(),radius:f.radius}),t},clone:function(){return(new se).copy(this)},copy:function(t){var e,r,n;this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.name=t.name;var i=t.index;null!==i&&this.setIndex(i.clone());var a=t.attributes;for(e in a){var o=a[e];this.addAttribute(e,o.clone())}var s=t.morphAttributes;for(e in s){var c=[],l=s[e];for(r=0,n=l.length;rr.far?null:{distance:c,point:Se.clone(),object:t}}function Ae(t,e,r,n,i,a,o,s,c,h,u){ue.fromBufferAttribute(i,c),pe.fromBufferAttribute(i,h),de.fromBufferAttribute(i,u);var p=t.morphTargetInfluences;if(e.morphTargets&&a&&p){ve.set(0,0,0),ye.set(0,0,0),xe.set(0,0,0);for(var d=0,f=a.length;d0){var o=i[a[0]];if(void 0!==o)for(this.morphTargetInfluences=[],this.morphTargetDictionary={},t=0,e=o.length;t0&&console.error("THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}},raycast:function(t,e){var r,n=this.geometry,i=this.material,a=this.matrixWorld;if(void 0!==i&&(null===n.boundingSphere&&n.computeBoundingSphere(),he.copy(n.boundingSphere),he.applyMatrix4(a),!1!==t.ray.intersectsSphere(he)&&(ce.getInverse(a),le.copy(t.ray).applyMatrix4(ce),null===n.boundingBox||!1!==le.intersectsBox(n.boundingBox))))if(n.isBufferGeometry){var o,s,c,h,u,p,d,f,m,g=n.index,v=n.attributes.position,y=n.morphAttributes.position,x=n.attributes.uv,b=n.attributes.uv2,w=n.groups,_=n.drawRange;if(null!==g)if(Array.isArray(i))for(h=0,p=w.length;h0&&(E=P);for(var C=0,O=R.length;C0?1:-1,l.push(P.x,P.y,P.z),h.push(x/g),h.push(1-b/v),L+=1}}for(b=0;b0)for(h=0;h0&&(this.normalsNeedUpdate=!0)},computeFlatVertexNormals:function(){var t,e,r;for(this.computeFaceNormals(),t=0,e=this.faces.length;t0&&(this.normalsNeedUpdate=!0)},computeMorphNormals:function(){var t,e,r,n,i;for(r=0,n=this.faces.length;r=0;r--){var f=p[r];for(this.faces.splice(f,1),o=0,s=this.faceVertexUvs.length;o0,g=d.vertexNormals.length>0,v=1!==d.color.r||1!==d.color.g||1!==d.color.b,y=d.vertexColors.length>0,x=0;if(x=M(x,0,0),x=M(x,1,!0),x=M(x,2,!1),x=M(x,3,f),x=M(x,4,m),x=M(x,5,g),x=M(x,6,v),x=M(x,7,y),o.push(x),o.push(d.a,d.b,d.c),o.push(d.materialIndex),f){var b=this.faceVertexUvs[0][i];o.push(E(b[0]),E(b[1]),E(b[2]))}if(m&&o.push(S(d.normal)),g){var w=d.vertexNormals;o.push(S(w[0]),S(w[1]),S(w[2]))}if(v&&o.push(T(d.color)),y){var _=d.vertexColors;o.push(T(_[0]),T(_[1]),T(_[2]))}}function M(t,e,r){return r?t|1<0&&(t.data.colors=l),u.length>0&&(t.data.uvs=[u]),t.data.faces=o,t},clone:function(){return(new Oe).copy(this)},copy:function(t){var e,r,n,i,a,o;this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.name=t.name;var s=t.vertices;for(e=0,r=s.length;e0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader;var i={};for(var a in this.extensions)!0===this.extensions[a]&&(i[a]=!0);return Object.keys(i).length>0&&(e.extensions=i),e},Ge.prototype=Object.assign(Object.create(Y.prototype),{constructor:Ge,isCamera:!0,copy:function(t,e){return Y.prototype.copy.call(this,t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this},getWorldDirection:function(t){void 0===t&&(console.warn("THREE.Camera: .getWorldDirection() target is now required"),t=new d),this.updateMatrixWorld(!0);var e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()},updateMatrixWorld:function(t){Y.prototype.updateMatrixWorld.call(this,t),this.matrixWorldInverse.getInverse(this.matrixWorld)},clone:function(){return(new this.constructor).copy(this)}}),Ue.prototype=Object.assign(Object.create(Ge.prototype),{constructor:Ue,isPerspectiveCamera:!0,copy:function(t,e){return Ge.prototype.copy.call(this,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:function(t){var e=.5*this.getFilmHeight()/t;this.fov=2*s.RAD2DEG*Math.atan(e),this.updateProjectionMatrix()},getFocalLength:function(){var t=Math.tan(.5*s.DEG2RAD*this.fov);return.5*this.getFilmHeight()/t},getEffectiveFOV:function(){return 2*s.RAD2DEG*Math.atan(Math.tan(.5*s.DEG2RAD*this.fov)/this.zoom)},getFilmWidth:function(){return this.filmGauge*Math.min(this.aspect,1)},getFilmHeight:function(){return this.filmGauge/Math.max(this.aspect,1)},setViewOffset:function(t,e,r,n,i,a){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=r,this.view.offsetY=n,this.view.width=i,this.view.height=a,this.updateProjectionMatrix()},clearViewOffset:function(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()},updateProjectionMatrix:function(){var t=this.near,e=t*Math.tan(.5*s.DEG2RAD*this.fov)/this.zoom,r=2*e,n=this.aspect*r,i=-.5*n,a=this.view;if(null!==this.view&&this.view.enabled){var o=a.fullWidth,c=a.fullHeight;i+=a.offsetX*n/o,e-=a.offsetY*r/c,n*=a.width/o,r*=a.height/c}var l=this.filmOffset;0!==l&&(i+=t*l/this.getFilmWidth()),this.projectionMatrix.makePerspective(i,i+n,e,e-r,t,this.far),this.projectionMatrixInverse.getInverse(this.projectionMatrix)},toJSON:function(t){var e=Y.prototype.toJSON.call(this,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}}),He.prototype=Object.create(Y.prototype),He.prototype.constructor=He,Ve.prototype=Object.create(b.prototype),Ve.prototype.constructor=Ve,Ve.prototype.isWebGLRenderTargetCube=!0,Ve.prototype.fromEquirectangularTexture=function(t,e){this.texture.type=e.type,this.texture.format=e.format,this.texture.encoding=e.encoding;var r=new J,n={uniforms:{tEquirect:{value:null}},vertexShader:["varying vec3 vWorldDirection;","vec3 transformDirection( in vec3 dir, in mat4 matrix ) {","\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );","}","void main() {","\tvWorldDirection = transformDirection( position, modelMatrix );","\t#include ","\t#include ","}"].join("\n"),fragmentShader:["uniform sampler2D tEquirect;","varying vec3 vWorldDirection;","#define RECIPROCAL_PI 0.31830988618","#define RECIPROCAL_PI2 0.15915494","void main() {","\tvec3 direction = normalize( vWorldDirection );","\tvec2 sampleUV;","\tsampleUV.y = asin( clamp( direction.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;","\tsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;","\tgl_FragColor = texture2D( tEquirect, sampleUV );","}"].join("\n")},i=new Fe({type:"CubemapFromEquirect",uniforms:Ie(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:1,blending:0});i.uniforms.tEquirect.value=e;var a=new Te(new Ne(5,5,5),i);r.add(a);var o=new He(1,10,1);return o.renderTarget=this,o.renderTarget.texture.name="CubeCameraTexture",o.update(t,r),a.geometry.dispose(),a.material.dispose(),this},je.prototype=Object.create(y.prototype),je.prototype.constructor=je,je.prototype.isDataTexture=!0;var ke=new d,We=new d,qe=new m;function Xe(t,e){this.normal=void 0!==t?t:new d(1,0,0),this.constant=void 0!==e?e:0}Object.assign(Xe.prototype,{isPlane:!0,set:function(t,e){return this.normal.copy(t),this.constant=e,this},setComponents:function(t,e,r,n){return this.normal.set(t,e,r),this.constant=n,this},setFromNormalAndCoplanarPoint:function(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this},setFromCoplanarPoints:function(t,e,r){var n=ke.subVectors(r,e).cross(We.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(n,t),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.normal.copy(t.normal),this.constant=t.constant,this},normalize:function(){var t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this},negate:function(){return this.constant*=-1,this.normal.negate(),this},distanceToPoint:function(t){return this.normal.dot(t)+this.constant},distanceToSphere:function(t){return this.distanceToPoint(t.center)-t.radius},projectPoint:function(t,e){return void 0===e&&(console.warn("THREE.Plane: .projectPoint() target is now required"),e=new d),e.copy(this.normal).multiplyScalar(-this.distanceToPoint(t)).add(t)},intersectLine:function(t,e){void 0===e&&(console.warn("THREE.Plane: .intersectLine() target is now required"),e=new d);var r=t.delta(ke),n=this.normal.dot(r);if(0===n)return 0===this.distanceToPoint(t.start)?e.copy(t.start):void 0;var i=-(t.start.dot(this.normal)+this.constant)/n;return i<0||i>1?void 0:e.copy(r).multiplyScalar(i).add(t.start)},intersectsLine:function(t){var e=this.distanceToPoint(t.start),r=this.distanceToPoint(t.end);return e<0&&r>0||r<0&&e>0},intersectsBox:function(t){return t.intersectsPlane(this)},intersectsSphere:function(t){return t.intersectsPlane(this)},coplanarPoint:function(t){return void 0===t&&(console.warn("THREE.Plane: .coplanarPoint() target is now required"),t=new d),t.copy(this.normal).multiplyScalar(-this.constant)},applyMatrix4:function(t,e){var r=e||qe.getNormalMatrix(t),n=this.coplanarPoint(ke).applyMatrix4(t),i=this.normal.applyMatrix3(r).normalize();return this.constant=-n.dot(i),this},translate:function(t){return this.constant-=t.dot(this.normal),this},equals:function(t){return t.normal.equals(this.normal)&&t.constant===this.constant}});var Ye=new ut,Je=new d;function Ze(t,e,r,n,i,a){this.planes=[void 0!==t?t:new Xe,void 0!==e?e:new Xe,void 0!==r?r:new Xe,void 0!==n?n:new Xe,void 0!==i?i:new Xe,void 0!==a?a:new Xe]}Object.assign(Ze.prototype,{set:function(t,e,r,n,i,a){var o=this.planes;return o[0].copy(t),o[1].copy(e),o[2].copy(r),o[3].copy(n),o[4].copy(i),o[5].copy(a),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){for(var e=this.planes,r=0;r<6;r++)e[r].copy(t.planes[r]);return this},setFromMatrix:function(t){var e=this.planes,r=t.elements,n=r[0],i=r[1],a=r[2],o=r[3],s=r[4],c=r[5],l=r[6],h=r[7],u=r[8],p=r[9],d=r[10],f=r[11],m=r[12],g=r[13],v=r[14],y=r[15];return e[0].setComponents(o-n,h-s,f-u,y-m).normalize(),e[1].setComponents(o+n,h+s,f+u,y+m).normalize(),e[2].setComponents(o+i,h+c,f+p,y+g).normalize(),e[3].setComponents(o-i,h-c,f-p,y-g).normalize(),e[4].setComponents(o-a,h-l,f-d,y-v).normalize(),e[5].setComponents(o+a,h+l,f+d,y+v).normalize(),this},intersectsObject:function(t){var e=t.geometry;return null===e.boundingSphere&&e.computeBoundingSphere(),Ye.copy(e.boundingSphere).applyMatrix4(t.matrixWorld),this.intersectsSphere(Ye)},intersectsSprite:function(t){return Ye.center.set(0,0,0),Ye.radius=.7071067811865476,Ye.applyMatrix4(t.matrixWorld),this.intersectsSphere(Ye)},intersectsSphere:function(t){for(var e=this.planes,r=t.center,n=-t.radius,i=0;i<6;i++)if(e[i].distanceToPoint(r)0?t.max.x:t.min.x,Je.y=n.normal.y>0?t.max.y:t.min.y,Je.z=n.normal.z>0?t.max.z:t.min.z,n.distanceToPoint(Je)<0)return!1}return!0},containsPoint:function(t){for(var e=this.planes,r=0;r<6;r++)if(e[r].distanceToPoint(t)<0)return!1;return!0}});var Qe={alphamap_fragment:"#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\n#endif",alphamap_pars_fragment:"#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",alphatest_fragment:"#ifdef ALPHATEST\n\tif ( diffuseColor.a < ALPHATEST ) discard;\n#endif",aomap_fragment:"#ifdef USE_AOMAP\n\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\n\t#if defined( USE_ENVMAP ) && defined( STANDARD )\n\t\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.specularRoughness );\n\t#endif\n#endif",aomap_pars_fragment:"#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif",begin_vertex:"vec3 transformed = vec3( position );",beginnormal_vertex:"vec3 objectNormal = vec3( normal );\n#ifdef USE_TANGENT\n\tvec3 objectTangent = vec3( tangent.xyz );\n#endif",bsdfs:"vec2 integrateSpecularBRDF( const in float dotNV, const in float roughness ) {\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\treturn vec2( -1.04, 1.04 ) * a004 + r.zw;\n}\nfloat punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\tif( cutoffDistance > 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 ) {\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 );\n\t\tfDet *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\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\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vViewPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vViewPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\t#if ! defined( STANDARD ) && ! defined( PHONG ) && ! defined( MATCAP )\n\t\tvarying vec3 vViewPosition;\n\t#endif\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0 && ! defined( STANDARD ) && ! defined( PHONG ) && ! defined( MATCAP )\n\tvarying vec3 vViewPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0 && ! defined( STANDARD ) && ! defined( PHONG ) && ! defined( MATCAP )\n\tvViewPosition = - mvPosition.xyz;\n#endif",color_fragment:"#ifdef USE_COLOR\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif",color_vertex:"#ifdef USE_COLOR\n\tvColor.xyz = color.xyz;\n#endif",common:"#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI_HALF 1.5707963267949\n#define RECIPROCAL_PI 0.31830988618\n#define RECIPROCAL_PI2 0.15915494\n#define LOG2 1.442695\n#define EPSILON 1e-6\n#define saturate(a) clamp( a, 0.0, 1.0 )\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}",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n#define cubeUV_textureSize (1024.0)\nint getFaceFromDirection(vec3 direction) {\n\tvec3 absDirection = abs(direction);\n\tint face = -1;\n\tif( absDirection.x > absDirection.z ) {\n\t\tif(absDirection.x > absDirection.y )\n\t\t\tface = direction.x > 0.0 ? 0 : 3;\n\t\telse\n\t\t\tface = direction.y > 0.0 ? 1 : 4;\n\t}\n\telse {\n\t\tif(absDirection.z > absDirection.y )\n\t\t\tface = direction.z > 0.0 ? 2 : 5;\n\t\telse\n\t\t\tface = direction.y > 0.0 ? 1 : 4;\n\t}\n\treturn face;\n}\n#define cubeUV_maxLods1 (log2(cubeUV_textureSize*0.25) - 1.0)\n#define cubeUV_rangeClamp (exp2((6.0 - 1.0) * 2.0))\nvec2 MipLevelInfo( vec3 vec, float roughnessLevel, float roughness ) {\n\tfloat scale = exp2(cubeUV_maxLods1 - roughnessLevel);\n\tfloat dxRoughness = dFdx(roughness);\n\tfloat dyRoughness = dFdy(roughness);\n\tvec3 dx = dFdx( vec * scale * dxRoughness );\n\tvec3 dy = dFdy( vec * scale * dyRoughness );\n\tfloat d = max( dot( dx, dx ), dot( dy, dy ) );\n\td = clamp(d, 1.0, cubeUV_rangeClamp);\n\tfloat mipLevel = 0.5 * log2(d);\n\treturn vec2(floor(mipLevel), fract(mipLevel));\n}\n#define cubeUV_maxLods2 (log2(cubeUV_textureSize*0.25) - 2.0)\n#define cubeUV_rcpTextureSize (1.0 / cubeUV_textureSize)\nvec2 getCubeUV(vec3 direction, float roughnessLevel, float mipLevel) {\n\tmipLevel = roughnessLevel > cubeUV_maxLods2 - 3.0 ? 0.0 : mipLevel;\n\tfloat a = 16.0 * cubeUV_rcpTextureSize;\n\tvec2 exp2_packed = exp2( vec2( roughnessLevel, mipLevel ) );\n\tvec2 rcp_exp2_packed = vec2( 1.0 ) / exp2_packed;\n\tfloat powScale = exp2_packed.x * exp2_packed.y;\n\tfloat scale = rcp_exp2_packed.x * rcp_exp2_packed.y * 0.25;\n\tfloat mipOffset = 0.75*(1.0 - rcp_exp2_packed.y) * rcp_exp2_packed.x;\n\tbool bRes = mipLevel == 0.0;\n\tscale = bRes && (scale < a) ? a : scale;\n\tvec3 r;\n\tvec2 offset;\n\tint face = getFaceFromDirection(direction);\n\tfloat rcpPowScale = 1.0 / powScale;\n\tif( face == 0) {\n\t\tr = vec3(direction.x, -direction.z, direction.y);\n\t\toffset = vec2(0.0+mipOffset,0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 1) {\n\t\tr = vec3(direction.y, direction.x, direction.z);\n\t\toffset = vec2(scale+mipOffset, 0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 2) {\n\t\tr = vec3(direction.z, direction.x, direction.y);\n\t\toffset = vec2(2.0*scale+mipOffset, 0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 3) {\n\t\tr = vec3(direction.x, direction.z, direction.y);\n\t\toffset = vec2(0.0+mipOffset,0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\telse if( face == 4) {\n\t\tr = vec3(direction.y, direction.x, -direction.z);\n\t\toffset = vec2(scale+mipOffset, 0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\telse {\n\t\tr = vec3(direction.z, -direction.x, direction.y);\n\t\toffset = vec2(2.0*scale+mipOffset, 0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\tr = normalize(r);\n\tfloat texelOffset = 0.5 * cubeUV_rcpTextureSize;\n\tvec2 s = ( r.yz / abs( r.x ) + vec2( 1.0 ) ) * 0.5;\n\tvec2 base = offset + vec2( texelOffset );\n\treturn base + s * ( scale - 2.0 * texelOffset );\n}\n#define cubeUV_maxLods3 (log2(cubeUV_textureSize*0.25) - 3.0)\nvec4 textureCubeUV( sampler2D envMap, vec3 reflectedDirection, float roughness ) {\n\tfloat roughnessVal = roughness* cubeUV_maxLods3;\n\tfloat r1 = floor(roughnessVal);\n\tfloat r2 = r1 + 1.0;\n\tfloat t = fract(roughnessVal);\n\tvec2 mipInfo = MipLevelInfo(reflectedDirection, r1, roughness);\n\tfloat s = mipInfo.y;\n\tfloat level0 = mipInfo.x;\n\tfloat level1 = level0 + 1.0;\n\tlevel1 = level1 > 5.0 ? 5.0 : level1;\n\tlevel0 += min( floor( s + 0.5 ), 5.0 );\n\tvec2 uv_10 = getCubeUV(reflectedDirection, r1, level0);\n\tvec4 color10 = envMapTexelToLinear(texture2D(envMap, uv_10));\n\tvec2 uv_20 = getCubeUV(reflectedDirection, r2, level0);\n\tvec4 color20 = envMapTexelToLinear(texture2D(envMap, uv_20));\n\tvec4 result = mix(color10, color20, t);\n\treturn vec4(result.rgb, 1.0);\n}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = normalMatrix * objectNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = normalMatrix * objectTangent;\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, uv ).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 = min( floor( D ) / 255.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 cameraToVertex = normalize( vWorldPosition - cameraPosition );\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToVertex, 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_EQUIREC )\n\t\tvec2 sampleUV;\n\t\treflectVec = normalize( reflectVec );\n\t\tsampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\t\tsampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\tvec4 envColor = texture2D( envMap, sampleUV );\n\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\treflectVec = normalize( reflectVec );\n\t\tvec3 reflectView = normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) );\n\t\tvec4 envColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5 );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\tenvColor = envMapTexelToLinear( envColor );\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\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, queryVec, 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 vec3 reflectVec = reflect( -viewDir, normal );\n\t\t reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t#else\n\t\t vec3 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\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, queryReflectVec, roughness );\n\t\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\t\tvec2 sampleUV;\n\t\t\tsampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\t\t\tsampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = texture2DLodEXT( envMap, sampleUV, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = texture2D( envMap, sampleUV, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\t\tvec3 reflectView = normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0,0.0,1.0 ) );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = texture2DLodEXT( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\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 = normalize( worldPosition.xyz - cameraPosition );\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 TOON\n\tuniform sampler2D gradientMap;\n\tvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\t\tfloat dotNL = dot( normal, lightDirection );\n\t\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t\t#ifdef USE_GRADIENTMAP\n\t\t\treturn texture2D( gradientMap, coord ).rgb;\n\t\t#else\n\t\t\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\n\t\t#endif\n\t}\n#endif",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\treflectedLight.indirectDiffuse += PI * texture2D( lightMap, vUv2 ).xyz * 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 = 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;\n#if NUM_POINT_LIGHTS > 0\n\t#pragma unroll_loop\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#endif\n#if NUM_SPOT_LIGHTS > 0\n\t#pragma unroll_loop\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#endif\n#if NUM_DIR_LIGHTS > 0\n\t#pragma unroll_loop\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#endif\n#if NUM_HEMI_LIGHTS > 0\n\t#pragma unroll_loop\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#endif",lights_pars_begin:"uniform 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\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\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\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t\tfloat shadowCameraNear;\n\t\tfloat shadowCameraFar;\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\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\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_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\tdiffuseColor;\n\tvec3\tspecularColor;\n\tfloat\tspecularShininess;\n\tfloat\tspecularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\t#ifdef TOON\n\t\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\t#else\n\t\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\t\tvec3 irradiance = dotNL * directLight.color;\n\t#endif\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 );\nmaterial.specularRoughness = clamp( roughnessFactor, 0.04, 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 = saturate( clearcoat );\tmaterial.clearcoatRoughness = clamp( clearcoatRoughness, 0.04, 1.0 );\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheen;\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3\tdiffuseColor;\n\tfloat\tspecularRoughness;\n\tvec3\tspecularColor;\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( 0, 1, 0 ),\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.indirectDiffuse += 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 = 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#pragma unroll_loop\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\tdirectLight.color *= all( bvec2( pointLight.shadow, directLight.visible ) ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\t#pragma unroll_loop\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\tdirectLight.color *= all( bvec2( spotLight.shadow, directLight.visible ) ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#pragma unroll_loop\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\tdirectLight.color *= all( bvec2( directionalLight.shadow, directLight.visible ) ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop\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#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\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t}\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\tvec3 lightMapIrradiance = texture2D( lightMap, vUv2 ).xyz * 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 = 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#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\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#else\n\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\tgl_Position.z *= gl_Position.w;\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:"#ifdef USE_MAP\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\tvec4 mapTexel = texture2D( map, uv );\n\tdiffuseColor *= mapTexelToLinear( mapTexel );\n#endif",map_particle_pars_fragment:"#ifdef USE_MAP\n\tuniform mat3 uvTransform;\n\tuniform sampler2D map;\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 += ( morphNormal0 - normal ) * morphTargetInfluences[ 0 ];\n\tobjectNormal += ( morphNormal1 - normal ) * morphTargetInfluences[ 1 ];\n\tobjectNormal += ( morphNormal2 - normal ) * morphTargetInfluences[ 2 ];\n\tobjectNormal += ( morphNormal3 - normal ) * morphTargetInfluences[ 3 ];\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\t#ifndef USE_MORPHNORMALS\n\tuniform float morphTargetInfluences[ 8 ];\n\t#else\n\tuniform float morphTargetInfluences[ 4 ];\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed += ( morphTarget0 - position ) * morphTargetInfluences[ 0 ];\n\ttransformed += ( morphTarget1 - position ) * morphTargetInfluences[ 1 ];\n\ttransformed += ( morphTarget2 - position ) * morphTargetInfluences[ 2 ];\n\ttransformed += ( morphTarget3 - position ) * morphTargetInfluences[ 3 ];\n\t#ifndef USE_MORPHNORMALS\n\ttransformed += ( morphTarget4 - position ) * morphTargetInfluences[ 4 ];\n\ttransformed += ( morphTarget5 - position ) * morphTargetInfluences[ 5 ];\n\ttransformed += ( morphTarget6 - position ) * morphTargetInfluences[ 6 ];\n\ttransformed += ( morphTarget7 - position ) * morphTargetInfluences[ 7 ];\n\t#endif\n#endif",normal_fragment_begin:"#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 * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\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 * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t\tbitangent = bitangent * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\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 * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( TANGENTSPACE_NORMALMAP )\n\t#ifdef USE_TANGENT\n\t\tmat3 vTBN = mat3( tangent, bitangent, normal );\n\t\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t\tmapN.xy = normalScale * mapN.xy;\n\t\tnormal = normalize( vTBN * mapN );\n\t#else\n\t\tnormal = perturbNormal2Arb( -vViewPosition, normal, normalScale, normalMap );\n\t#endif\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\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, vec2 normalScale, in sampler2D normalMap ) {\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\tfloat scale = sign( st1.t * st0.s - st0.t * st1.s );\n\t\tvec3 S = normalize( ( q0 * st1.t - q1 * st0.t ) * scale );\n\t\tvec3 T = normalize( ( - q0 * st1.s + q1 * st0.s ) * scale );\n\t\tvec3 N = normalize( surf_norm );\n\t\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t\tmapN.xy *= normalScale;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvec3 NfromST = cross( S, T );\n\t\t\tif( dot( NfromST, N ) > 0.0 ) {\n\t\t\t\tS *= -1.0;\n\t\t\t\tT *= -1.0;\n\t\t\t}\n\t\t#else\n\t\t\tmapN.xy *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t#endif\n\t\tmat3 tsn = mat3( S, T, N );\n\t\treturn normalize( tsn * mapN );\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\t#ifdef USE_TANGENT\n\t\tmat3 vTBN = mat3( tangent, bitangent, clearcoatNormal );\n\t\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t\tmapN.xy = clearcoatNormalScale * mapN.xy;\n\t\tclearcoatNormal = normalize( vTBN * mapN );\n\t#else\n\t\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatNormalScale, clearcoatNormalMap );\n\t#endif\n#endif",clearcoat_normalmap_pars_fragment:"#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 encodeHalfRGBA ( vec2 v ) {\n\tvec4 encoded = vec4( 0.0 );\n\tconst vec2 offset = vec2( 1.0 / 255.0, 0.0 );\n\tencoded.xy = vec2( v.x, fract( v.x * 255.0 ) );\n\tencoded.xy = encoded.xy - ( encoded.yy * offset );\n\tencoded.zw = vec2( v.y, fract( v.y * 255.0 ) );\n\tencoded.zw = encoded.zw - ( encoded.ww * offset );\n\treturn encoded;\n}\nvec2 decodeHalfRGBA( 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 = modelViewMatrix * vec4( transformed, 1.0 );\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#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#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#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 decodeHalfRGBA( 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 texture2DShadowLerp( sampler2D depths, vec2 size, vec2 uv, float compare ) {\n\t\tconst vec2 offset = vec2( 0.0, 1.0 );\n\t\tvec2 texelSize = vec2( 1.0 ) / size;\n\t\tvec2 centroidUV = ( floor( uv * size - 0.5 ) + 0.5 ) * texelSize;\n\t\tfloat lb = texture2DCompare( depths, centroidUV + texelSize * offset.xx, compare );\n\t\tfloat lt = texture2DCompare( depths, centroidUV + texelSize * offset.xy, compare );\n\t\tfloat rb = texture2DCompare( depths, centroidUV + texelSize * offset.yx, compare );\n\t\tfloat rt = texture2DCompare( depths, centroidUV + texelSize * offset.yy, compare );\n\t\tvec2 f = fract( uv * size + 0.5 );\n\t\tfloat a = mix( lb, lt, f.y );\n\t\tfloat b = mix( rb, rt, f.y );\n\t\tfloat c = mix( a, b, f.x );\n\t\treturn c;\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 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\tshadow = (\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\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#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#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#endif\n#endif",shadowmap_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * worldPosition;\n\t}\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\tDirectionalLight directionalLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tshadow *= bool( directionalLight.shadow ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLight spotLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tshadow *= bool( spotLight.shadow ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t}\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLight pointLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tshadow *= bool( pointLight.shadow ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\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\t#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nuniform float toneMappingWhitePoint;\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}\n#define Uncharted2Helper( x ) max( ( ( x * ( 0.15 * x + 0.10 * 0.50 ) + 0.20 * 0.02 ) / ( x * ( 0.15 * x + 0.50 ) + 0.20 * 0.30 ) ) - 0.02 / 0.30, vec3( 0.0 ) )\nvec3 Uncharted2ToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( Uncharted2Helper( color ) / Uncharted2Helper( vec3( toneMappingWhitePoint ) ) );\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 ACESFilmicToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( ( color * ( 2.51 * color + 0.03 ) ) / ( color * ( 2.43 * color + 0.59 ) + 0.14 ) );\n}",uv_pars_fragment:"#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif",uv_pars_vertex:"#ifdef USE_UV\n\tvarying vec2 vUv;\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#endif",uv2_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = uv2;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\n\tvec4 worldPosition = modelMatrix * vec4( transformed, 1.0 );\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:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = mapTexelToLinear( texColor );\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 \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\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - gl_FragCoord.z ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( gl_FragCoord.z );\n\t#endif\n}",depth_vert:"#include \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}",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;\n\tsampleUV.y = asin( clamp( direction.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\tsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\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 \nvoid main() {\n\t#include \n\tvLineDistance = scale * lineDistance;\n\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n\tgl_Position = projectionMatrix * mvPosition;\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 \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\treflectedLight.indirectDiffuse += texture2D( lightMap, vUv2 ).xyz * 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}",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 \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\treflectedLight.indirectDiffuse = getAmbientLightIrradiance( ambientLightColor );\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 \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\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}",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 \nvoid main() {\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}",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 TRANSPARENCY\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef TRANSPARENCY\n\tuniform float transparency;\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 \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\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#ifdef TRANSPARENCY\n\t\tdiffuseColor.a *= saturate( 1. - transparency + linearToRelativeLuminance( reflectedLight.directSpecular + reflectedLight.indirectSpecular ) );\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 \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 = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 );\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}",shadow_vert:"#include \n#include \nvoid main() {\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 \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\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 = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 );\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}"},Ke={common:{diffuse:{value:new Nt(15658734)},opacity:{value:1},map:{value:null},uvTransform:{value:new m},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 l(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 Nt(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}}},points:{diffuse:{value:new Nt(15658734)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},uvTransform:{value:new m}},sprite:{diffuse:{value:new Nt(15658734)},opacity:{value:1},center:{value:new l(.5,.5)},rotation:{value:0},map:{value:null},uvTransform:{value:new m}}},$e={basic:{uniforms:ze([Ke.common,Ke.specularmap,Ke.envmap,Ke.aomap,Ke.lightmap,Ke.fog]),vertexShader:Qe.meshbasic_vert,fragmentShader:Qe.meshbasic_frag},lambert:{uniforms:ze([Ke.common,Ke.specularmap,Ke.envmap,Ke.aomap,Ke.lightmap,Ke.emissivemap,Ke.fog,Ke.lights,{emissive:{value:new Nt(0)}}]),vertexShader:Qe.meshlambert_vert,fragmentShader:Qe.meshlambert_frag},phong:{uniforms:ze([Ke.common,Ke.specularmap,Ke.envmap,Ke.aomap,Ke.lightmap,Ke.emissivemap,Ke.bumpmap,Ke.normalmap,Ke.displacementmap,Ke.gradientmap,Ke.fog,Ke.lights,{emissive:{value:new Nt(0)},specular:{value:new Nt(1118481)},shininess:{value:30}}]),vertexShader:Qe.meshphong_vert,fragmentShader:Qe.meshphong_frag},standard:{uniforms:ze([Ke.common,Ke.envmap,Ke.aomap,Ke.lightmap,Ke.emissivemap,Ke.bumpmap,Ke.normalmap,Ke.displacementmap,Ke.roughnessmap,Ke.metalnessmap,Ke.fog,Ke.lights,{emissive:{value:new Nt(0)},roughness:{value:.5},metalness:{value:.5},envMapIntensity:{value:1}}]),vertexShader:Qe.meshphysical_vert,fragmentShader:Qe.meshphysical_frag},matcap:{uniforms:ze([Ke.common,Ke.bumpmap,Ke.normalmap,Ke.displacementmap,Ke.fog,{matcap:{value:null}}]),vertexShader:Qe.meshmatcap_vert,fragmentShader:Qe.meshmatcap_frag},points:{uniforms:ze([Ke.points,Ke.fog]),vertexShader:Qe.points_vert,fragmentShader:Qe.points_frag},dashed:{uniforms:ze([Ke.common,Ke.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Qe.linedashed_vert,fragmentShader:Qe.linedashed_frag},depth:{uniforms:ze([Ke.common,Ke.displacementmap]),vertexShader:Qe.depth_vert,fragmentShader:Qe.depth_frag},normal:{uniforms:ze([Ke.common,Ke.bumpmap,Ke.normalmap,Ke.displacementmap,{opacity:{value:1}}]),vertexShader:Qe.normal_vert,fragmentShader:Qe.normal_frag},sprite:{uniforms:ze([Ke.sprite,Ke.fog]),vertexShader:Qe.sprite_vert,fragmentShader:Qe.sprite_frag},background:{uniforms:{uvTransform:{value:new m},t2D:{value:null}},vertexShader:Qe.background_vert,fragmentShader:Qe.background_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Qe.cube_vert,fragmentShader:Qe.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Qe.equirect_vert,fragmentShader:Qe.equirect_frag},distanceRGBA:{uniforms:ze([Ke.common,Ke.displacementmap,{referencePosition:{value:new d},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Qe.distanceRGBA_vert,fragmentShader:Qe.distanceRGBA_frag},shadow:{uniforms:ze([Ke.lights,Ke.fog,{color:{value:new Nt(0)},opacity:{value:1}}]),vertexShader:Qe.shadow_vert,fragmentShader:Qe.shadow_frag}};function tr(){var t=null,e=!1,r=null;function n(i,a){!1!==e&&(r(i,a),t.requestAnimationFrame(n))}return{start:function(){!0!==e&&null!==r&&(t.requestAnimationFrame(n),e=!0)},stop:function(){e=!1},setAnimationLoop:function(t){r=t},setContext:function(e){t=e}}}function er(t){var e=new WeakMap;return{get:function(t){return t.isInterleavedBufferAttribute&&(t=t.data),e.get(t)},remove:function(r){r.isInterleavedBufferAttribute&&(r=r.data);var n=e.get(r);n&&(t.deleteBuffer(n.buffer),e.delete(r))},update:function(r,n){r.isInterleavedBufferAttribute&&(r=r.data);var i=e.get(r);void 0===i?e.set(r,function(e,r){var n=e.array,i=e.dynamic?35048:35044,a=t.createBuffer();t.bindBuffer(r,a),t.bufferData(r,n,i),e.onUploadCallback();var o=5126;return n instanceof Float32Array?o=5126:n instanceof Float64Array?console.warn("THREE.WebGLAttributes: Unsupported data buffer format: Float64Array."):n instanceof Uint16Array?o=5123:n instanceof Int16Array?o=5122:n instanceof Uint32Array?o=5125:n instanceof Int32Array?o=5124:n instanceof Int8Array?o=5120:n instanceof Uint8Array&&(o=5121),{buffer:a,type:o,bytesPerElement:n.BYTES_PER_ELEMENT,version:e.version}}(r,n)):i.version0&&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"}var a="undefined"!=typeof WebGL2RenderingContext&&t instanceof WebGL2RenderingContext,o=void 0!==r.precision?r.precision:"highp",s=i(o);s!==o&&(console.warn("THREE.WebGLRenderer:",o,"not supported, using",s,"instead."),o=s);var c=!0===r.logarithmicDepthBuffer,l=t.getParameter(34930),h=t.getParameter(35660),u=t.getParameter(3379),p=t.getParameter(34076),d=t.getParameter(34921),f=t.getParameter(36347),m=t.getParameter(36348),g=t.getParameter(36349),v=h>0,y=a||!!e.get("OES_texture_float");return{isWebGL2:a,getMaxAnisotropy:function(){if(void 0!==n)return n;var r=e.get("EXT_texture_filter_anisotropic");return n=null!==r?t.getParameter(r.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0},getMaxPrecision:i,precision:o,logarithmicDepthBuffer:c,maxTextures:l,maxVertexTextures:h,maxTextureSize:u,maxCubemapSize:p,maxAttributes:d,maxVertexUniforms:f,maxVaryings:m,maxFragmentUniforms:g,vertexTextures:v,floatFragmentTextures:y,floatVertexTextures:v&&y,maxSamples:a?t.getParameter(36183):0}}function sr(){var t=this,e=null,r=0,n=!1,i=!1,a=new Xe,o=new m,s={value:null,needsUpdate:!1};function c(){s.value!==e&&(s.value=e,s.needsUpdate=r>0),t.numPlanes=r,t.numIntersection=0}function l(e,r,n,i){var c=null!==e?e.length:0,l=null;if(0!==c){if(l=s.value,!0!==i||null===l){var h=n+4*c,u=r.matrixWorldInverse;o.getNormalMatrix(u),(null===l||l.length65535?Jt:Xt)(r,1);d.version=o,e.update(d,34963);var f=i.get(t);f&&e.remove(f),i.set(t,d)}return{get:function(t,e){var i=n.get(e);return i||(e.addEventListener("dispose",a),e.isBufferGeometry?i=e:e.isGeometry&&(void 0===e._bufferGeometry&&(e._bufferGeometry=(new se).setFromObject(t)),i=e._bufferGeometry),n.set(e,i),r.memory.geometries++,i)},update:function(t){var r=t.index,n=t.attributes;for(var i in null!==r&&e.update(r,34963),n)e.update(n[i],34962);var a=t.morphAttributes;for(var i in a)for(var o=a[i],s=0,c=o.length;s0)return t;var i=e*r,a=_r[i];if(void 0===a&&(a=new Float32Array(i),_r[i]=a),0!==e){n.toArray(a,0);for(var o=1,s=0;o!==e;++o)s+=r,t[o].toArray(a,s)}return a}function Lr(t,e){if(t.length!==e.length)return!1;for(var r=0,n=t.length;r/gm,(function(t,e){var r=Qe[e];if(void 0===r)throw new Error("Can not resolve #include <"+e+">");return _n(r)}))}function Mn(t){return t.replace(/#pragma unroll_loop[\s]+?for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g,(function(t,e,r,n){for(var i="",a=parseInt(e);a0?t.gammaFactor:1,w=o.isWebGL2?"":function(t,e,r){return[(t=t||{}).derivatives||e.envMapCubeUV||e.bumpMap||e.tangentSpaceNormalMap||e.clearcoatNormalMap||e.flatShading?"#extension GL_OES_standard_derivatives : enable":"",(t.fragDepth||e.logarithmicDepthBuffer)&&r.get("EXT_frag_depth")?"#extension GL_EXT_frag_depth : enable":"",t.drawBuffers&&r.get("WEBGL_draw_buffers")?"#extension GL_EXT_draw_buffers : require":"",(t.shaderTextureLOD||e.envMap)&&r.get("EXT_shader_texture_lod")?"#extension GL_EXT_shader_texture_lod : enable":""].filter(xn).join("\n")}(n.extensions,a,e),_=function(t){var e=[];for(var r in t){var n=t[r];!1!==n&&e.push("#define "+r+" "+n)}return e.join("\n")}(c),M=s.createProgram();if(n.isRawShaderMaterial?((m=[_].filter(xn).join("\n")).length>0&&(m+="\n"),(g=[w,_].filter(xn).join("\n")).length>0&&(g+="\n")):(m=["precision "+a.precision+" float;","precision "+a.precision+" int;","highp"===a.precision?"#define HIGH_PRECISION":"","#define SHADER_NAME "+i.name,_,a.supportsVertexTextures?"#define VERTEX_TEXTURES":"","#define GAMMA_FACTOR "+b,"#define MAX_BONES "+a.maxBones,a.useFog&&a.fog?"#define USE_FOG":"",a.useFog&&a.fogExp2?"#define FOG_EXP2":"",a.map?"#define USE_MAP":"",a.envMap?"#define USE_ENVMAP":"",a.envMap?"#define "+d:"",a.lightMap?"#define USE_LIGHTMAP":"",a.aoMap?"#define USE_AOMAP":"",a.emissiveMap?"#define USE_EMISSIVEMAP":"",a.bumpMap?"#define USE_BUMPMAP":"",a.normalMap?"#define USE_NORMALMAP":"",a.normalMap&&a.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",a.normalMap&&a.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",a.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",a.displacementMap&&a.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",a.specularMap?"#define USE_SPECULARMAP":"",a.roughnessMap?"#define USE_ROUGHNESSMAP":"",a.metalnessMap?"#define USE_METALNESSMAP":"",a.alphaMap?"#define USE_ALPHAMAP":"",a.vertexTangents?"#define USE_TANGENT":"",a.vertexColors?"#define USE_COLOR":"",a.vertexUvs?"#define USE_UV":"",a.flatShading?"#define FLAT_SHADED":"",a.skinning?"#define USE_SKINNING":"",a.useVertexTexture?"#define BONE_TEXTURE":"",a.morphTargets?"#define USE_MORPHTARGETS":"",a.morphNormals&&!1===a.flatShading?"#define USE_MORPHNORMALS":"",a.doubleSided?"#define DOUBLE_SIDED":"",a.flipSided?"#define FLIP_SIDED":"",a.shadowMapEnabled?"#define USE_SHADOWMAP":"",a.shadowMapEnabled?"#define "+u:"",a.sizeAttenuation?"#define USE_SIZEATTENUATION":"",a.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",a.logarithmicDepthBuffer&&(o.isWebGL2||e.get("EXT_frag_depth"))?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#ifdef 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(xn).join("\n"),g=[w,"precision "+a.precision+" float;","precision "+a.precision+" int;","highp"===a.precision?"#define HIGH_PRECISION":"","#define SHADER_NAME "+i.name,_,a.alphaTest?"#define ALPHATEST "+a.alphaTest+(a.alphaTest%1?"":".0"):"","#define GAMMA_FACTOR "+b,a.useFog&&a.fog?"#define USE_FOG":"",a.useFog&&a.fogExp2?"#define FOG_EXP2":"",a.map?"#define USE_MAP":"",a.matcap?"#define USE_MATCAP":"",a.envMap?"#define USE_ENVMAP":"",a.envMap?"#define "+p:"",a.envMap?"#define "+d:"",a.envMap?"#define "+f:"",a.lightMap?"#define USE_LIGHTMAP":"",a.aoMap?"#define USE_AOMAP":"",a.emissiveMap?"#define USE_EMISSIVEMAP":"",a.bumpMap?"#define USE_BUMPMAP":"",a.normalMap?"#define USE_NORMALMAP":"",a.normalMap&&a.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",a.normalMap&&a.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",a.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",a.specularMap?"#define USE_SPECULARMAP":"",a.roughnessMap?"#define USE_ROUGHNESSMAP":"",a.metalnessMap?"#define USE_METALNESSMAP":"",a.alphaMap?"#define USE_ALPHAMAP":"",a.sheen?"#define USE_SHEEN":"",a.vertexTangents?"#define USE_TANGENT":"",a.vertexColors?"#define USE_COLOR":"",a.vertexUvs?"#define USE_UV":"",a.gradientMap?"#define USE_GRADIENTMAP":"",a.flatShading?"#define FLAT_SHADED":"",a.doubleSided?"#define DOUBLE_SIDED":"",a.flipSided?"#define FLIP_SIDED":"",a.shadowMapEnabled?"#define USE_SHADOWMAP":"",a.shadowMapEnabled?"#define "+u:"",a.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",a.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",a.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",a.logarithmicDepthBuffer&&(o.isWebGL2||e.get("EXT_frag_depth"))?"#define USE_LOGDEPTHBUF_EXT":"",(n.extensions&&n.extensions.shaderTextureLOD||a.envMap)&&(o.isWebGL2||e.get("EXT_shader_texture_lod"))?"#define TEXTURE_LOD_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;",0!==a.toneMapping?"#define TONE_MAPPING":"",0!==a.toneMapping?Qe.tonemapping_pars_fragment:"",0!==a.toneMapping?yn("toneMapping",a.toneMapping):"",a.dithering?"#define DITHERING":"",a.outputEncoding||a.mapEncoding||a.matcapEncoding||a.envMapEncoding||a.emissiveMapEncoding?Qe.encodings_pars_fragment:"",a.mapEncoding?vn("mapTexelToLinear",a.mapEncoding):"",a.matcapEncoding?vn("matcapTexelToLinear",a.matcapEncoding):"",a.envMapEncoding?vn("envMapTexelToLinear",a.envMapEncoding):"",a.emissiveMapEncoding?vn("emissiveMapTexelToLinear",a.emissiveMapEncoding):"",a.outputEncoding?(v="linearToOutputTexel",y=a.outputEncoding,x=mn(y),"vec4 "+v+"( vec4 value ) { return LinearTo"+x[0]+x[1]+"; }"):"",a.depthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(xn).join("\n")),l=wn(l=bn(l=_n(l),a),a),h=wn(h=bn(h=_n(h),a),a),l=Mn(l),h=Mn(h),o.isWebGL2&&!n.isRawShaderMaterial){var S=!1,T=/^\s*#version\s+300\s+es\s*\n/;n.isShaderMaterial&&null!==l.match(T)&&null!==h.match(T)&&(S=!0,l=l.replace(T,""),h=h.replace(T,"")),m=["#version 300 es\n","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+m,g=["#version 300 es\n","#define varying in",S?"":"out highp vec4 pc_fragColor;",S?"":"#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"+g}var E,A,L=g+h,R=dn(s,35633,m+l),P=dn(s,35632,L);if(s.attachShader(M,R),s.attachShader(M,P),void 0!==n.index0AttributeName?s.bindAttribLocation(M,0,n.index0AttributeName):!0===a.morphTargets&&s.bindAttribLocation(M,0,"position"),s.linkProgram(M),t.debug.checkShaderErrors){var C=s.getProgramInfoLog(M).trim(),O=s.getShaderInfoLog(R).trim(),D=s.getShaderInfoLog(P).trim(),N=!0,I=!0;if(!1===s.getProgramParameter(M,35714)){N=!1;var z=gn(s,R,"vertex"),B=gn(s,P,"fragment");console.error("THREE.WebGLProgram: shader error: ",s.getError(),"35715",s.getProgramParameter(M,35715),"gl.getProgramInfoLog",C,z,B)}else""!==C?console.warn("THREE.WebGLProgram: gl.getProgramInfoLog()",C):""!==O&&""!==D||(I=!1);I&&(this.diagnostics={runnable:N,material:n,programLog:C,vertexShader:{log:O,prefix:m},fragmentShader:{log:D,prefix:g}})}return s.deleteShader(R),s.deleteShader(P),this.getUniforms=function(){return void 0===E&&(E=new pn(s,M)),E},this.getAttributes=function(){return void 0===A&&(A=function(t,e){for(var r={},n=t.getProgramParameter(e,35721),i=0;i0,maxBones:p,useVertexTexture:r.floatVertexTextures,morphTargets:e.morphTargets,morphNormals:e.morphNormals,maxMorphTargets:t.maxMorphTargets,maxMorphNormals:t.maxMorphNormals,numDirLights:n.directional.length,numPointLights:n.point.length,numSpotLights:n.spot.length,numRectAreaLights:n.rectArea.length,numHemiLights:n.hemi.length,numDirLightShadows:n.directionalShadowMap.length,numPointLightShadows:n.pointShadowMap.length,numSpotLightShadows:n.spotShadowMap.length,numClippingPlanes:c,numClipIntersection:l,dithering:e.dithering,shadowMapEnabled:t.shadowMap.enabled&&h.receiveShadow&&a.length>0,shadowMapType:t.shadowMap.type,toneMapping:e.toneMapped?t.toneMapping:0,physicallyCorrectLights:t.physicallyCorrectLights,premultipliedAlpha:e.premultipliedAlpha,alphaTest:e.alphaTest,doubleSided:2===e.side,flipSided:1===e.side,depthPacking:void 0!==e.depthPacking&&e.depthPacking}},this.getProgramCode=function(e,r){var n=[];if(r.shaderID?n.push(r.shaderID):(n.push(e.fragmentShader),n.push(e.vertexShader)),void 0!==e.defines)for(var i in e.defines)n.push(i),n.push(e.defines[i]);for(var o=0;o1&&r.sort(An),n.length>1&&n.sort(Ln)}}}function Pn(){var t=new WeakMap;function e(r){var n=r.target;n.removeEventListener("dispose",e),t.delete(n)}return{get:function(r,n){var i,a=t.get(r);return void 0===a?(i=new Rn,t.set(r,new WeakMap),t.get(r).set(n,i),r.addEventListener("dispose",e)):void 0===(i=a.get(n))&&(i=new Rn,a.set(n,i)),i},dispose:function(){t=new WeakMap}}}function Cn(){var t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];var r;switch(e.type){case"DirectionalLight":r={direction:new d,color:new Nt,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new l};break;case"SpotLight":r={position:new d,direction:new d,color:new Nt,distance:0,coneCos:0,penumbraCos:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new l};break;case"PointLight":r={position:new d,color:new Nt,distance:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new l,shadowCameraNear:1,shadowCameraFar:1e3};break;case"HemisphereLight":r={direction:new d,skyColor:new Nt,groundColor:new Nt};break;case"RectAreaLight":r={color:new Nt,position:new d,halfWidth:new d,halfHeight:new d}}return t[e.id]=r,r}}}var On=0;function Dn(t,e){return(e.castShadow?1:0)-(t.castShadow?1:0)}function Nn(){for(var t=new Cn,e={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:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],point:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},r=0;r<9;r++)e.probe.push(new d);var n=new d,i=new P,a=new P;return{setup:function(r,o,s){for(var c=0,l=0,h=0,u=0;u<9;u++)e.probe[u].set(0,0,0);var p=0,d=0,f=0,m=0,g=0,v=0,y=0,x=0,b=s.matrixWorldInverse;r.sort(Dn),u=0;for(var w=r.length;u\nvoid main() {\n float mean = 0.0;\n float squared_mean = 0.0;\n \n\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy ) / resolution ) );\n for ( float i = -1.0; i < 1.0 ; i += SAMPLE_RATE) {\n #ifdef HORIZONAL_PASS\n vec2 distribution = decodeHalfRGBA ( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( i, 0.0 ) * radius ) / resolution ) );\n mean += distribution.x;\n squared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n #else\n float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, i ) * radius ) / resolution ) );\n mean += depth;\n squared_mean += depth * depth;\n #endif\n }\n mean = mean * HALF_SAMPLE_RATE;\n squared_mean = squared_mean * HALF_SAMPLE_RATE;\n float std_dev = pow( squared_mean - mean * mean, 0.5 );\n gl_FragColor = encodeHalfRGBA( vec2( mean, std_dev ) );\n}"}),d=p.clone();d.defines.HORIZONAL_PASS=1;var f=new se;f.addAttribute("position",new Vt(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));for(var m=new Te(f,p),g=0;4!==g;++g){var v=0!=(1&g),y=0!=(2&g),w=new Bn({depthPacking:3201,morphTargets:v,skinning:y});s[g]=w;var _=new Fn({morphTargets:v,skinning:y});c[g]=_}var M=this;function S(r,n){var i=e.update(m);p.uniforms.shadow_pass.value=r.map.texture,p.uniforms.resolution.value=r.mapSize,p.uniforms.radius.value=r.radius,t.setRenderTarget(r.mapPass),t.clear(),t.renderBufferDirect(n,null,i,p,m,null),d.uniforms.shadow_pass.value=r.mapPass.texture,d.uniforms.resolution.value=r.mapSize,d.uniforms.radius.value=r.radius,t.setRenderTarget(r.map),t.clear(),t.renderBufferDirect(n,null,i,d,m,null)}function T(e,r,n,i,a,o){var l=e.geometry,p=null,d=s,f=e.customDepthMaterial;if(n.isPointLight&&(d=c,f=e.customDistanceMaterial),f)p=f;else{var m=!1;r.morphTargets&&(l&&l.isBufferGeometry?m=l.morphAttributes&&l.morphAttributes.position&&l.morphAttributes.position.length>0:l&&l.isGeometry&&(m=l.morphTargets&&l.morphTargets.length>0)),e.isSkinnedMesh&&!1===r.skinning&&console.warn("THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:",e);var g=0;m&&(g|=1),e.isSkinnedMesh&&r.skinning&&(g|=2),p=d[g]}if(t.localClippingEnabled&&!0===r.clipShadows&&0!==r.clippingPlanes.length){var v=p.uuid,y=r.uuid,x=h[v];void 0===x&&(x={},h[v]=x);var b=x[y];void 0===b&&(b=p.clone(),x[y]=b),p=b}return p.visible=r.visible,p.wireframe=r.wireframe,p.side=3===o?null!=r.shadowSide?r.shadowSide:r.side:null!=r.shadowSide?r.shadowSide:u[r.side],p.clipShadows=r.clipShadows,p.clippingPlanes=r.clippingPlanes,p.clipIntersection=r.clipIntersection,p.wireframeLinewidth=r.wireframeLinewidth,p.linewidth=r.linewidth,n.isPointLight&&p.isMeshDistanceMaterial&&(p.referencePosition.setFromMatrixPosition(n.matrixWorld),p.nearDistance=i,p.farDistance=a),p}function E(r,i,a,o,s){if(!1!==r.visible){if(r.layers.test(i.layers)&&(r.isMesh||r.isLine||r.isPoints)&&(r.castShadow||r.receiveShadow&&3===s)&&(!r.frustumCulled||n.intersectsObject(r))){r.modelViewMatrix.multiplyMatrices(a.matrixWorldInverse,r.matrixWorld);var c=e.update(r),l=r.material;if(Array.isArray(l))for(var h=c.groups,u=0,p=h.length;ur||i.y>r)&&(console.warn("THREE.WebGLShadowMap:",m,"has shadow exceeding max texture size, reducing"),i.x>r&&(a.x=Math.floor(r/v.x),i.x=a.x*v.x,g.mapSize.x=a.x),i.y>r&&(a.y=Math.floor(r/v.y),i.y=a.y*v.y,g.mapSize.y=a.y)),null===g.map&&!g.isPointLightShadow&&3===this.type){var y={minFilter:1006,magFilter:1006,format:1023};g.map=new b(i.x,i.y,y),g.map.texture.name=m.name+".shadowMap",g.mapPass=new b(i.x,i.y,y),g.camera.updateProjectionMatrix()}null===g.map&&(y={minFilter:1003,magFilter:1003,format:1023},g.map=new b(i.x,i.y,y),g.map.texture.name=m.name+".shadowMap",g.camera.updateProjectionMatrix()),t.setRenderTarget(g.map),t.clear();for(var x=g.getViewportCount(),w=0;w=1):-1!==O.indexOf("OpenGL ES")&&(C=parseFloat(/^OpenGL\ ES\ ([0-9])/.exec(O)[1]),P=C>=2);var D=null,N={},I=new x,z=new x;function B(e,r,n){var i=new Uint8Array(4),a=t.createTexture();t.bindTexture(e,a),t.texParameteri(e,10241,9728),t.texParameteri(e,10240,9728);for(var o=0;on||t.height>n)&&(i=n/Math.max(t.width,t.height)),i<1||!0===e){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){var a=e?s.floorPowerOfTwo:Math.floor,o=a(i*t.width),c=a(i*t.height);void 0===l&&(l=p(o,c));var h=r?p(o,c):l;return h.width=o,h.height=c,h.getContext("2d").drawImage(t,0,0,o,c),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+t.width+"x"+t.height+") to ("+o+"x"+c+")."),h}return"data"in t&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+t.width+"x"+t.height+")."),t}return t}function f(t){return s.isPowerOfTwo(t.width)&&s.isPowerOfTwo(t.height)}function m(t,e){return t.generateMipmaps&&e&&1003!==t.minFilter&&1006!==t.minFilter}function g(e,r,i,a){t.generateMipmap(e),n.get(r).__maxMipLevel=Math.log(Math.max(i,a))*Math.LOG2E}function v(t,r){if(!a.isWebGL2)return t;var n=t;return 6403===t&&(5126===r&&(n=33326),5131===r&&(n=33325),5121===r&&(n=33321)),6407===t&&(5126===r&&(n=34837),5131===r&&(n=34843),5121===r&&(n=32849)),6408===t&&(5126===r&&(n=34836),5131===r&&(n=34842),5121===r&&(n=32856)),33325===n||33326===n||34842===n||34836===n?e.get("EXT_color_buffer_float"):34843!==n&&34837!==n||console.warn("THREE.WebGLRenderer: Floating point textures with RGB format not supported. Please use RGBA instead."),n}function y(t){return 1003===t||1004===t||1005===t?9728:9729}function x(e){var r=e.target;r.removeEventListener("dispose",x),function(e){var r=n.get(e);void 0!==r.__webglInit&&(t.deleteTexture(r.__webglTexture),n.remove(e))}(r),r.isVideoTexture&&h.delete(r),c.memory.textures--}function b(e){var r=e.target;r.removeEventListener("dispose",b),function(e){var r=n.get(e),i=n.get(e.texture);if(e){if(void 0!==i.__webglTexture&&t.deleteTexture(i.__webglTexture),e.depthTexture&&e.depthTexture.dispose(),e.isWebGLRenderTargetCube)for(var a=0;a<6;a++)t.deleteFramebuffer(r.__webglFramebuffer[a]),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer[a]);else t.deleteFramebuffer(r.__webglFramebuffer),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer);n.remove(e.texture),n.remove(e)}}(r),c.memory.textures--}var w=0;function _(t,e){var i=n.get(t);if(t.isVideoTexture&&function(t){var e=c.render.frame;h.get(t)!==e&&(h.set(t,e),t.update())}(t),t.version>0&&i.__version!==t.version){var a=t.image;if(void 0===a)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined");else{if(!1!==a.complete)return void A(i,t,e);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}r.activeTexture(33984+e),r.bindTexture(3553,i.__webglTexture)}function M(e,i){if(6===e.image.length){var s=n.get(e);if(e.version>0&&s.__version!==e.version){E(s,e),r.activeTexture(33984+i),r.bindTexture(34067,s.__webglTexture),t.pixelStorei(37440,e.flipY);for(var c=e&&e.isCompressedTexture,l=e.image[0]&&e.image[0].isDataTexture,h=[],u=0;u<6;u++)h[u]=c||l?l?e.image[u].image:e.image[u]:d(e.image[u],!1,!0,a.maxCubemapSize);var p,y=h[0],x=f(y)||a.isWebGL2,b=o.convert(e.format),w=o.convert(e.type),_=v(b,w);if(T(34067,e,x),c){for(u=0;u<6;u++){p=h[u].mipmaps;for(var M=0;M-1?r.compressedTexImage2D(34069+u,M,_,S.width,S.height,0,S.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):r.texImage2D(34069+u,M,_,S.width,S.height,0,b,w,S.data)}}s.__maxMipLevel=p.length-1}else{for(p=e.mipmaps,u=0;u<6;u++)if(l)for(r.texImage2D(34069+u,0,_,h[u].width,h[u].height,0,b,w,h[u].data),M=0;M1||n.get(i).__currentAnisotropy)&&(t.texParameterf(r,c.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(i.anisotropy,a.getMaxAnisotropy())),n.get(i).__currentAnisotropy=i.anisotropy)}}function E(e,r){void 0===e.__webglInit&&(e.__webglInit=!0,r.addEventListener("dispose",x),e.__webglTexture=t.createTexture(),c.memory.textures++)}function A(e,n,i){var s=3553;n.isDataTexture2DArray&&(s=35866),n.isDataTexture3D&&(s=32879),E(e,n),r.activeTexture(33984+i),r.bindTexture(s,e.__webglTexture),t.pixelStorei(37440,n.flipY),t.pixelStorei(37441,n.premultiplyAlpha),t.pixelStorei(3317,n.unpackAlignment);var c=function(t){return!a.isWebGL2&&(1001!==t.wrapS||1001!==t.wrapT||1003!==t.minFilter&&1006!==t.minFilter)}(n)&&!1===f(n.image),l=d(n.image,c,!1,a.maxTextureSize),h=f(l)||a.isWebGL2,u=o.convert(n.format),p=o.convert(n.type),y=v(u,p);T(s,n,h);var x,b=n.mipmaps;if(n.isDepthTexture){if(y=6402,1015===n.type){if(!a.isWebGL2)throw new Error("Float Depth Texture only supported in WebGL2.0");y=36012}else a.isWebGL2&&(y=33189);1026===n.format&&6402===y&&1012!==n.type&&1014!==n.type&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),n.type=1012,p=o.convert(n.type)),1027===n.format&&(y=34041,1020!==n.type&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),n.type=1020,p=o.convert(n.type))),r.texImage2D(3553,0,y,l.width,l.height,0,u,p,null)}else if(n.isDataTexture)if(b.length>0&&h){for(var w=0,_=b.length;w<_;w++)x=b[w],r.texImage2D(3553,w,y,x.width,x.height,0,u,p,x.data);n.generateMipmaps=!1,e.__maxMipLevel=b.length-1}else r.texImage2D(3553,0,y,l.width,l.height,0,u,p,l.data),e.__maxMipLevel=0;else if(n.isCompressedTexture){for(w=0,_=b.length;w<_;w++)x=b[w],1023!==n.format&&1022!==n.format?r.getCompressedTextureFormats().indexOf(u)>-1?r.compressedTexImage2D(3553,w,y,x.width,x.height,0,x.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):r.texImage2D(3553,w,y,x.width,x.height,0,u,p,x.data);e.__maxMipLevel=b.length-1}else if(n.isDataTexture2DArray)r.texImage3D(35866,0,y,l.width,l.height,l.depth,0,u,p,l.data),e.__maxMipLevel=0;else if(n.isDataTexture3D)r.texImage3D(32879,0,y,l.width,l.height,l.depth,0,u,p,l.data),e.__maxMipLevel=0;else if(b.length>0&&h){for(w=0,_=b.length;w<_;w++)x=b[w],r.texImage2D(3553,w,y,u,p,x);n.generateMipmaps=!1,e.__maxMipLevel=b.length-1}else r.texImage2D(3553,0,y,u,p,l),e.__maxMipLevel=0;m(n,h)&&g(3553,n,l.width,l.height),e.__version=n.version,n.onUpdate&&n.onUpdate(n)}function L(e,i,a,s){var c=o.convert(i.texture.format),l=o.convert(i.texture.type),h=v(c,l);r.texImage2D(s,0,h,i.width,i.height,0,c,l,null),t.bindFramebuffer(36160,e),t.framebufferTexture2D(36160,a,s,n.get(i.texture).__webglTexture,0),t.bindFramebuffer(36160,null)}function R(e,r,n){if(t.bindRenderbuffer(36161,e),r.depthBuffer&&!r.stencilBuffer){if(n){var i=C(r);t.renderbufferStorageMultisample(36161,i,33189,r.width,r.height)}else t.renderbufferStorage(36161,33189,r.width,r.height);t.framebufferRenderbuffer(36160,36096,36161,e)}else if(r.depthBuffer&&r.stencilBuffer)n?(i=C(r),t.renderbufferStorageMultisample(36161,i,35056,r.width,r.height)):t.renderbufferStorage(36161,34041,r.width,r.height),t.framebufferRenderbuffer(36160,33306,36161,e);else{var a=v(o.convert(r.texture.format),o.convert(r.texture.type));n?(i=C(r),t.renderbufferStorageMultisample(36161,i,a,r.width,r.height)):t.renderbufferStorage(36161,a,r.width,r.height)}t.bindRenderbuffer(36161,null)}function P(e){var r=n.get(e),i=!0===e.isWebGLRenderTargetCube;if(e.depthTexture){if(i)throw new Error("target.depthTexture not supported in Cube render targets");!function(e,r){if(r&&r.isWebGLRenderTargetCube)throw new Error("Depth Texture with cube render targets is not supported");if(t.bindFramebuffer(36160,e),!r.depthTexture||!r.depthTexture.isDepthTexture)throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");n.get(r.depthTexture).__webglTexture&&r.depthTexture.image.width===r.width&&r.depthTexture.image.height===r.height||(r.depthTexture.image.width=r.width,r.depthTexture.image.height=r.height,r.depthTexture.needsUpdate=!0),_(r.depthTexture,0);var i=n.get(r.depthTexture).__webglTexture;if(1026===r.depthTexture.format)t.framebufferTexture2D(36160,36096,3553,i,0);else{if(1027!==r.depthTexture.format)throw new Error("Unknown depthTexture format");t.framebufferTexture2D(36160,33306,3553,i,0)}}(r.__webglFramebuffer,e)}else if(i){r.__webglDepthbuffer=[];for(var a=0;a<6;a++)t.bindFramebuffer(36160,r.__webglFramebuffer[a]),r.__webglDepthbuffer[a]=t.createRenderbuffer(),R(r.__webglDepthbuffer[a],e)}else t.bindFramebuffer(36160,r.__webglFramebuffer),r.__webglDepthbuffer=t.createRenderbuffer(),R(r.__webglDepthbuffer,e);t.bindFramebuffer(36160,null)}function C(t){return a.isWebGL2&&t.isWebGLMultisampleRenderTarget?Math.min(a.maxSamples,t.samples):0}var O=!1,D=!1;this.allocateTextureUnit=function(){var t=w;return t>=a.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+t+" texture units while this GPU supports only "+a.maxTextures),w+=1,t},this.resetTextureUnits=function(){w=0},this.setTexture2D=_,this.setTexture2DArray=function(t,e){var i=n.get(t);t.version>0&&i.__version!==t.version?A(i,t,e):(r.activeTexture(33984+e),r.bindTexture(35866,i.__webglTexture))},this.setTexture3D=function(t,e){var i=n.get(t);t.version>0&&i.__version!==t.version?A(i,t,e):(r.activeTexture(33984+e),r.bindTexture(32879,i.__webglTexture))},this.setTextureCube=M,this.setTextureCubeDynamic=S,this.setupRenderTarget=function(e){var i=n.get(e),s=n.get(e.texture);e.addEventListener("dispose",b),s.__webglTexture=t.createTexture(),c.memory.textures++;var l=!0===e.isWebGLRenderTargetCube,h=!0===e.isWebGLMultisampleRenderTarget,u=f(e)||a.isWebGL2;if(l){i.__webglFramebuffer=[];for(var p=0;p<6;p++)i.__webglFramebuffer[p]=t.createFramebuffer()}else if(i.__webglFramebuffer=t.createFramebuffer(),h)if(a.isWebGL2){i.__webglMultisampledFramebuffer=t.createFramebuffer(),i.__webglColorRenderbuffer=t.createRenderbuffer(),t.bindRenderbuffer(36161,i.__webglColorRenderbuffer);var d=v(o.convert(e.texture.format),o.convert(e.texture.type)),y=C(e);t.renderbufferStorageMultisample(36161,y,d,e.width,e.height),t.bindFramebuffer(36160,i.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(36160,36064,36161,i.__webglColorRenderbuffer),t.bindRenderbuffer(36161,null),e.depthBuffer&&(i.__webglDepthRenderbuffer=t.createRenderbuffer(),R(i.__webglDepthRenderbuffer,e,!0)),t.bindFramebuffer(36160,null)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.");if(l){for(r.bindTexture(34067,s.__webglTexture),T(34067,e.texture,u),p=0;p<6;p++)L(i.__webglFramebuffer[p],e,36064,34069+p);m(e.texture,u)&&g(34067,e.texture,e.width,e.height),r.bindTexture(34067,null)}else r.bindTexture(3553,s.__webglTexture),T(3553,e.texture,u),L(i.__webglFramebuffer,e,36064,3553),m(e.texture,u)&&g(3553,e.texture,e.width,e.height),r.bindTexture(3553,null);e.depthBuffer&&P(e)},this.updateRenderTargetMipmap=function(t){var e=t.texture;if(m(e,f(t)||a.isWebGL2)){var i=t.isWebGLRenderTargetCube?34067:3553,o=n.get(e).__webglTexture;r.bindTexture(i,o),g(i,e,t.width,t.height),r.bindTexture(i,null)}},this.updateMultisampleRenderTarget=function(e){if(e.isWebGLMultisampleRenderTarget)if(a.isWebGL2){var r=n.get(e);t.bindFramebuffer(36008,r.__webglMultisampledFramebuffer),t.bindFramebuffer(36009,r.__webglFramebuffer);var i=e.width,o=e.height,s=16384;e.depthBuffer&&(s|=256),e.stencilBuffer&&(s|=1024),t.blitFramebuffer(0,0,i,o,0,0,i,o,s,9728)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.")},this.safeSetTexture2D=function(t,e){t&&t.isWebGLRenderTarget&&(!1===O&&(console.warn("THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead."),O=!0),t=t.texture),_(t,e)},this.safeSetTextureCube=function(t,e){t&&t.isWebGLRenderTargetCube&&(!1===D&&(console.warn("THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead."),D=!0),t=t.texture),t&&t.isCubeTexture||Array.isArray(t.image)&&6===t.image.length?M(t,e):S(t,e)}}function Vn(t,e,r){return{convert:function(t){var n;if(1e3===t)return 10497;if(1001===t)return 33071;if(1002===t)return 33648;if(1003===t)return 9728;if(1004===t)return 9984;if(1005===t)return 9986;if(1006===t)return 9729;if(1007===t)return 9985;if(1008===t)return 9987;if(1009===t)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(1012===t)return 5123;if(1013===t)return 5124;if(1014===t)return 5125;if(1015===t)return 5126;if(1016===t){if(r.isWebGL2)return 5131;if(null!==(n=e.get("OES_texture_half_float")))return n.HALF_FLOAT_OES}if(1021===t)return 6406;if(1022===t)return 6407;if(1023===t)return 6408;if(1024===t)return 6409;if(1025===t)return 6410;if(1026===t)return 6402;if(1027===t)return 34041;if(1028===t)return 6403;if(100===t)return 32774;if(101===t)return 32778;if(102===t)return 32779;if(200===t)return 0;if(201===t)return 1;if(202===t)return 768;if(203===t)return 769;if(204===t)return 770;if(205===t)return 771;if(206===t)return 772;if(207===t)return 773;if(208===t)return 774;if(209===t)return 775;if(210===t)return 776;if((33776===t||33777===t||33778===t||33779===t)&&null!==(n=e.get("WEBGL_compressed_texture_s3tc"))){if(33776===t)return n.COMPRESSED_RGB_S3TC_DXT1_EXT;if(33777===t)return n.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(33778===t)return n.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(33779===t)return n.COMPRESSED_RGBA_S3TC_DXT5_EXT}if((35840===t||35841===t||35842===t||35843===t)&&null!==(n=e.get("WEBGL_compressed_texture_pvrtc"))){if(35840===t)return n.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(35841===t)return n.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(35842===t)return n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(35843===t)return n.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(36196===t&&null!==(n=e.get("WEBGL_compressed_texture_etc1")))return n.COMPRESSED_RGB_ETC1_WEBGL;if((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)&&null!==(n=e.get("WEBGL_compressed_texture_astc")))return t;if(103===t||104===t){if(r.isWebGL2){if(103===t)return 32775;if(104===t)return 32776}if(null!==(n=e.get("EXT_blend_minmax"))){if(103===t)return n.MIN_EXT;if(104===t)return n.MAX_EXT}}if(1020===t){if(r.isWebGL2)return 34042;if(null!==(n=e.get("WEBGL_depth_texture")))return n.UNSIGNED_INT_24_8_WEBGL}return 0}}}function jn(){Y.call(this),this.type="Group"}function kn(t){Ue.call(this),this.cameras=t||[]}Bn.prototype=Object.create(Ut.prototype),Bn.prototype.constructor=Bn,Bn.prototype.isMeshDepthMaterial=!0,Bn.prototype.copy=function(t){return Ut.prototype.copy.call(this,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},Fn.prototype=Object.create(Ut.prototype),Fn.prototype.constructor=Fn,Fn.prototype.isMeshDistanceMaterial=!0,Fn.prototype.copy=function(t){return Ut.prototype.copy.call(this,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},jn.prototype=Object.assign(Object.create(Y.prototype),{constructor:jn,isGroup:!0}),kn.prototype=Object.assign(Object.create(Ue.prototype),{constructor:kn,isArrayCamera:!0});var Wn,qn=new d,Xn=new d;function Yn(t,e,r){qn.setFromMatrixPosition(e.matrixWorld),Xn.setFromMatrixPosition(r.matrixWorld);var n=qn.distanceTo(Xn),i=e.projectionMatrix.elements,a=r.projectionMatrix.elements,o=i[14]/(i[10]-1),s=i[14]/(i[10]+1),c=(i[9]+1)/i[5],l=(i[9]-1)/i[5],h=(i[8]-1)/i[0],u=(a[8]+1)/a[0],p=o*h,d=o*u,f=n/(-h+u),m=f*-h;e.matrixWorld.decompose(t.position,t.quaternion,t.scale),t.translateX(m),t.translateZ(f),t.matrixWorld.compose(t.position,t.quaternion,t.scale),t.matrixWorldInverse.getInverse(t.matrixWorld);var g=o+f,v=s+f,y=p-m,x=d+(n-m),b=c*s/v*g,w=l*s/v*g;t.projectionMatrix.makePerspective(y,x,b,w,g,v)}function Jn(t){var e,r,n=this,i=null,o=null,s=null,c=[],u=new P,p=new P,f=1,m="local-floor";void 0!==a&&"VRFrameData"in a&&(o=new a.VRFrameData,a.addEventListener("vrdisplaypresentchange",E,!1));var g=new P,v=new h,y=new d,b=new Ue;b.viewport=new x,b.layers.enable(1);var w=new Ue;w.viewport=new x,w.layers.enable(2);var _=new kn([b,w]);function M(){return null!==i&&!0===i.isPresenting}_.layers.enable(1),_.layers.enable(2);var S,T=new l;function E(){if(M()){var a=i.getEyeParameters("left");e=2*a.renderWidth*f,r=a.renderHeight*f,S=t.getPixelRatio(),t.getSize(T),t.setDrawingBufferSize(e,r,1),b.viewport.set(0,0,e/2,r),w.viewport.set(e/2,0,e/2,r),C.start(),n.dispatchEvent({type:"sessionstart"})}else n.enabled&&t.setDrawingBufferSize(T.width,T.height,S),C.stop(),n.dispatchEvent({type:"sessionend"})}var A=[];function L(t){for(var e=navigator.getGamepads&&navigator.getGamepads(),r=0,n=0,i=e.length;r=0){var c=n[o];if(void 0!==c){var l=c.normalized,h=c.itemSize,u=E.get(c);if(void 0===u)continue;var p=u.buffer,d=u.type,f=u.bytesPerElement;if(c.isInterleavedBufferAttribute){var m=c.data,g=m.stride,v=c.offset;m&&m.isInstancedInterleavedBuffer?(_.enableAttributeAndDivisor(s,m.meshPerAttribute),void 0===r.maxInstancedCount&&(r.maxInstancedCount=m.meshPerAttribute*m.count)):_.enableAttribute(s),y.bindBuffer(34962,p),y.vertexAttribPointer(s,h,d,l,g*f,v*f)}else c.isInstancedBufferAttribute?(_.enableAttributeAndDivisor(s,c.meshPerAttribute),void 0===r.maxInstancedCount&&(r.maxInstancedCount=c.meshPerAttribute*c.count)):_.enableAttribute(s),y.bindBuffer(34962,p),y.vertexAttribPointer(s,h,d,l,0,0)}else if(void 0!==a){var x=a[o];if(void 0!==x)switch(x.length){case 2:y.vertexAttrib2fv(s,x);break;case 3:y.vertexAttrib3fv(s,x);break;case 4:y.vertexAttrib4fv(s,x);break;default:y.vertexAttrib1fv(s,x)}}}}_.disableUnusedAttributes()}}(n,s,r),null!==h&&y.bindBuffer(34963,l.buffer));var f=1/0;null!==h?f=h.count:void 0!==u&&(f=u.count);var m=r.drawRange.start*p,g=r.drawRange.count*p,v=null!==a?a.start*p:0,x=null!==a?a.count*p:1/0,M=Math.max(m,v),S=Math.min(f,m+g,v+x)-1,T=Math.max(0,S-M+1);if(0!==T){if(i.isMesh)if(!0===n.wireframe)_.setLineWidth(n.wireframeLinewidth*ht()),d.setMode(1);else switch(i.drawMode){case 0:d.setMode(4);break;case 1:d.setMode(5);break;case 2:d.setMode(6)}else if(i.isLine){var L=n.linewidth;void 0===L&&(L=1),_.setLineWidth(L*ht()),i.isLineSegments?d.setMode(1):i.isLineLoop?d.setMode(2):d.setMode(3)}else i.isPoints?d.setMode(0):i.isSprite&&d.setMode(4);r&&r.isInstancedBufferGeometry?r.maxInstancedCount>0&&d.renderInstances(r,M,T):d.render(M,T)}},this.compile=function(t,e){(v=O.get(t,e)).init(),t.traverse((function(t){t.isLight&&(v.pushLight(t),t.castShadow&&v.pushShadow(t))})),v.setupLights(e),t.traverse((function(e){if(e.material)if(Array.isArray(e.material))for(var r=0;r=0&&t.numSupportedMorphTargets++}if(t.morphNormals)for(t.numSupportedMorphNormals=0,d=0;d=0&&t.numSupportedMorphNormals++;var f=n.shader.uniforms;(t.isShaderMaterial||t.isRawShaderMaterial)&&!0!==t.clipping||(n.numClippingPlanes=at.numPlanes,n.numIntersection=at.numIntersection,f.clippingPlanes=at.uniform),n.fog=e,n.lightsStateVersion=o,t.lights&&(f.ambientLightColor.value=i.state.ambient,f.lightProbe.value=i.state.probe,f.directionalLights.value=i.state.directional,f.spotLights.value=i.state.spot,f.rectAreaLights.value=i.state.rectArea,f.pointLights.value=i.state.point,f.hemisphereLights.value=i.state.hemi,f.directionalShadowMap.value=i.state.directionalShadowMap,f.directionalShadowMatrix.value=i.state.directionalShadowMatrix,f.spotShadowMap.value=i.state.spotShadowMap,f.spotShadowMatrix.value=i.state.spotShadowMatrix,f.pointShadowMap.value=i.state.pointShadowMap,f.pointShadowMatrix.value=i.state.pointShadowMatrix);var m=n.program.getUniforms(),g=pn.seqWithValue(m.seq,f);n.uniformsList=g}function Tt(t,e,r,n){T.resetTextureUnits();var i=S.get(r),a=v.state.lights;if(ot&&(st||t!==X)){var o=t===X&&r.id===W;at.setState(r.clippingPlanes,r.clipIntersection,r.clipShadows,t,i,o)}!1===r.needsUpdate&&(void 0===i.program||r.fog&&i.fog!==e||r.lights&&i.lightsStateVersion!==a.state.version?r.needsUpdate=!0:void 0===i.numClippingPlanes||i.numClippingPlanes===at.numPlanes&&i.numIntersection===at.numIntersection||(r.needsUpdate=!0)),r.needsUpdate&&(St(r,e,n),r.needsUpdate=!1);var c,l,h=!1,u=!1,p=!1,d=i.program,f=d.getUniforms(),m=i.shader.uniforms;if(_.useProgram(d.program)&&(h=!0,u=!0,p=!0),r.id!==W&&(W=r.id,u=!0),h||X!==t){if(f.setValue(y,"projectionMatrix",t.projectionMatrix),w.logarithmicDepthBuffer&&f.setValue(y,"logDepthBufFC",2/(Math.log(t.far+1)/Math.LN2)),X!==t&&(X=t,u=!0,p=!0),r.isShaderMaterial||r.isMeshPhongMaterial||r.isMeshStandardMaterial||r.envMap){var g=f.map.cameraPosition;void 0!==g&&g.setValue(y,lt.setFromMatrixPosition(t.matrixWorld))}(r.isMeshPhongMaterial||r.isMeshLambertMaterial||r.isMeshBasicMaterial||r.isMeshStandardMaterial||r.isShaderMaterial||r.skinning)&&f.setValue(y,"viewMatrix",t.matrixWorldInverse)}if(r.skinning){f.setOptional(y,n,"bindMatrix"),f.setOptional(y,n,"bindMatrixInverse");var x=n.skeleton;if(x){var b=x.bones;if(w.floatVertexTextures){if(void 0===x.boneTexture){var M=Math.sqrt(4*b.length);M=s.ceilPowerOfTwo(M),M=Math.max(M,4);var E=new Float32Array(M*M*4);E.set(x.boneMatrices);var A=new je(E,M,M,1023,1015);A.needsUpdate=!0,x.boneMatrices=E,x.boneTexture=A,x.boneTextureSize=M}f.setValue(y,"boneTexture",x.boneTexture,T),f.setValue(y,"boneTextureSize",x.boneTextureSize)}else f.setOptional(y,x,"boneMatrices")}}return u&&(f.setValue(y,"toneMappingExposure",F.toneMappingExposure),f.setValue(y,"toneMappingWhitePoint",F.toneMappingWhitePoint),r.lights&&(l=p,(c=m).ambientLightColor.needsUpdate=l,c.lightProbe.needsUpdate=l,c.directionalLights.needsUpdate=l,c.pointLights.needsUpdate=l,c.spotLights.needsUpdate=l,c.rectAreaLights.needsUpdate=l,c.hemisphereLights.needsUpdate=l),e&&r.fog&&function(t,e){t.fogColor.value.copy(e.color),e.isFog?(t.fogNear.value=e.near,t.fogFar.value=e.far):e.isFogExp2&&(t.fogDensity.value=e.density)}(m,e),r.isMeshBasicMaterial?Et(m,r):r.isMeshLambertMaterial?(Et(m,r),function(t,e){e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap)}(m,r)):r.isMeshPhongMaterial?(Et(m,r),r.isMeshToonMaterial?function(t,e){At(t,e),e.gradientMap&&(t.gradientMap.value=e.gradientMap)}(m,r):At(m,r)):r.isMeshStandardMaterial?(Et(m,r),r.isMeshPhysicalMaterial?function(t,e){Lt(t,e),t.reflectivity.value=e.reflectivity,t.clearcoat.value=e.clearcoat,t.clearcoatRoughness.value=e.clearcoatRoughness,e.sheen&&t.sheen.value.copy(e.sheen),e.clearcoatNormalMap&&(t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale),t.clearcoatNormalMap.value=e.clearcoatNormalMap,1===e.side&&t.clearcoatNormalScale.value.negate()),t.transparency.value=e.transparency}(m,r):Lt(m,r)):r.isMeshMatcapMaterial?(Et(m,r),function(t,e){e.matcap&&(t.matcap.value=e.matcap),e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1)),e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate()),e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(m,r)):r.isMeshDepthMaterial?(Et(m,r),function(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(m,r)):r.isMeshDistanceMaterial?(Et(m,r),function(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias),t.referencePosition.value.copy(e.referencePosition),t.nearDistance.value=e.nearDistance,t.farDistance.value=e.farDistance}(m,r)):r.isMeshNormalMaterial?(Et(m,r),function(t,e){e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1)),e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate()),e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(m,r)):r.isLineBasicMaterial?(function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity}(m,r),r.isLineDashedMaterial&&function(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}(m,r)):r.isPointsMaterial?function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.size.value=e.size*tt,t.scale.value=.5*$,t.map.value=e.map,null!==e.map&&(!0===e.map.matrixAutoUpdate&&e.map.updateMatrix(),t.uvTransform.value.copy(e.map.matrix))}(m,r):r.isSpriteMaterial?function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.rotation.value=e.rotation,t.map.value=e.map,null!==e.map&&(!0===e.map.matrixAutoUpdate&&e.map.updateMatrix(),t.uvTransform.value.copy(e.map.matrix))}(m,r):r.isShadowMaterial&&(m.color.value.copy(r.color),m.opacity.value=r.opacity),void 0!==m.ltc_1&&(m.ltc_1.value=Ke.LTC_1),void 0!==m.ltc_2&&(m.ltc_2.value=Ke.LTC_2),pn.upload(y,i.uniformsList,m,T)),r.isShaderMaterial&&!0===r.uniformsNeedUpdate&&(pn.upload(y,i.uniformsList,m,T),r.uniformsNeedUpdate=!1),r.isSpriteMaterial&&f.setValue(y,"center",n.center),f.setValue(y,"modelViewMatrix",n.modelViewMatrix),f.setValue(y,"normalMatrix",n.normalMatrix),f.setValue(y,"modelMatrix",n.matrixWorld),d}function Et(t,e){var r;t.opacity.value=e.opacity,e.color&&t.diffuse.value.copy(e.color),e.emissive&&t.emissive.value.copy(e.emissive).multiplyScalar(e.emissiveIntensity),e.map&&(t.map.value=e.map),e.alphaMap&&(t.alphaMap.value=e.alphaMap),e.specularMap&&(t.specularMap.value=e.specularMap),e.envMap&&(t.envMap.value=e.envMap,t.flipEnvMap.value=e.envMap.isCubeTexture?-1:1,t.reflectivity.value=e.reflectivity,t.refractionRatio.value=e.refractionRatio,t.maxMipLevel.value=S.get(e.envMap).__maxMipLevel),e.lightMap&&(t.lightMap.value=e.lightMap,t.lightMapIntensity.value=e.lightMapIntensity),e.aoMap&&(t.aoMap.value=e.aoMap,t.aoMapIntensity.value=e.aoMapIntensity),e.map?r=e.map:e.specularMap?r=e.specularMap:e.displacementMap?r=e.displacementMap:e.normalMap?r=e.normalMap:e.bumpMap?r=e.bumpMap:e.roughnessMap?r=e.roughnessMap:e.metalnessMap?r=e.metalnessMap:e.alphaMap?r=e.alphaMap:e.emissiveMap&&(r=e.emissiveMap),void 0!==r&&(r.isWebGLRenderTarget&&(r=r.texture),!0===r.matrixAutoUpdate&&r.updateMatrix(),t.uvTransform.value.copy(r.matrix))}function At(t,e){t.specular.value.copy(e.specular),t.shininess.value=Math.max(e.shininess,1e-4),e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap),e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1)),e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate()),e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}function Lt(t,e){t.roughness.value=e.roughness,t.metalness.value=e.metalness,e.roughnessMap&&(t.roughnessMap.value=e.roughnessMap),e.metalnessMap&&(t.metalnessMap.value=e.metalnessMap),e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap),e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1)),e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate()),e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias),e.envMap&&(t.envMapIntensity.value=e.envMapIntensity)}bt.setAnimationLoop((function(t){dt.isPresenting()||xt&&xt(t)})),void 0!==a&&bt.setContext(a),this.setAnimationLoop=function(t){xt=t,dt.setAnimationLoop(t),bt.start()},this.render=function(t,e){var r,n;if(void 0!==arguments[2]&&(console.warn("THREE.WebGLRenderer.render(): the renderTarget argument has been removed. Use .setRenderTarget() instead."),r=arguments[2]),void 0!==arguments[3]&&(console.warn("THREE.WebGLRenderer.render(): the forceClear argument has been removed. Use .clear() instead."),n=arguments[3]),e&&e.isCamera){if(!G){q.geometry=null,q.program=null,q.wireframe=!1,W=-1,X=null,!0===t.autoUpdate&&t.updateMatrixWorld(),null===e.parent&&e.updateMatrixWorld(),dt.enabled&&(e=dt.getCamera(e)),(v=O.get(t,e)).init(),t.onBeforeRender(F,t,e,r||j),ct.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),it.setFromMatrix(ct),st=this.localClippingEnabled,ot=at.init(this.clippingPlanes,st,e),(g=C.get(t,e)).init(),wt(t,e,0,F.sortObjects),!0===F.sortObjects&&g.sort(),ot&&at.beginShadows();var i=v.state.shadowsArray;ft.render(i,t,e),v.setupLights(e),ot&&at.endShadows(),this.info.autoReset&&this.info.reset(),void 0!==r&&this.setRenderTarget(r),D.render(g,t,e,n);var a=g.opaque,o=g.transparent;if(t.overrideMaterial){var s=t.overrideMaterial;a.length&&_t(a,t,e,s),o.length&&_t(o,t,e,s)}else a.length&&_t(a,t,e),o.length&&_t(o,t,e);t.onAfterRender(F,t,e),null!==j&&(T.updateRenderTargetMipmap(j),T.updateMultisampleRenderTarget(j)),_.buffers.depth.setTest(!0),_.buffers.depth.setMask(!0),_.buffers.color.setMask(!0),_.setPolygonOffset(!1),dt.enabled&&dt.submitFrame(),g=null,v=null}}else console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.")},this.setFramebuffer=function(t){U!==t&&y.bindFramebuffer(36160,t),U=t},this.getActiveCubeFace=function(){return H},this.getActiveMipmapLevel=function(){return V},this.getRenderTarget=function(){return j},this.setRenderTarget=function(t,e,r){j=t,H=e,V=r,t&&void 0===S.get(t).__webglFramebuffer&&T.setupRenderTarget(t);var n=U,i=!1;if(t){var a=S.get(t).__webglFramebuffer;t.isWebGLRenderTargetCube?(n=a[e||0],i=!0):n=t.isWebGLMultisampleRenderTarget?S.get(t).__webglMultisampledFramebuffer:a,J.copy(t.viewport),Z.copy(t.scissor),Q=t.scissorTest}else J.copy(et).multiplyScalar(tt).floor(),Z.copy(rt).multiplyScalar(tt).floor(),Q=nt;if(k!==n&&(y.bindFramebuffer(36160,n),k=n),_.viewport(J),_.scissor(Z),_.setScissorTest(Q),i){var o=S.get(t.texture);y.framebufferTexture2D(36160,36064,34069+(e||0),o.__webglTexture,r||0)}},this.readRenderTargetPixels=function(t,e,r,n,i,a,o){if(t&&t.isWebGLRenderTarget){var s=S.get(t).__webglFramebuffer;if(t.isWebGLRenderTargetCube&&void 0!==o&&(s=s[o]),s){var c=!1;s!==k&&(y.bindFramebuffer(36160,s),c=!0);try{var l=t.texture,h=l.format,u=l.type;if(1023!==h&&B.convert(h)!==y.getParameter(35739))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");if(!(1009===u||B.convert(u)===y.getParameter(35738)||1015===u&&(w.isWebGL2||b.get("OES_texture_float")||b.get("WEBGL_color_buffer_float"))||1016===u&&(w.isWebGL2?b.get("EXT_color_buffer_float"):b.get("EXT_color_buffer_half_float"))))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");36053===y.checkFramebufferStatus(36160)?e>=0&&e<=t.width-n&&r>=0&&r<=t.height-i&&y.readPixels(e,r,n,i,B.convert(h),B.convert(u),a):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.")}finally{c&&y.bindFramebuffer(36160,k)}}}else console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.")},this.copyFramebufferToTexture=function(t,e,r){var n=e.image.width,i=e.image.height,a=B.convert(e.format);T.setTexture2D(e,0),y.copyTexImage2D(3553,r||0,a,t.x,t.y,n,i,0)},this.copyTextureToTexture=function(t,e,r,n){var i=e.image.width,a=e.image.height,o=B.convert(r.format),s=B.convert(r.type);T.setTexture2D(r,0),e.isDataTexture?y.texSubImage2D(3553,n||0,t.x,t.y,i,a,o,s,e.image.data):y.texSubImage2D(3553,n||0,t.x,t.y,o,s,e.image)},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}function Kn(t,e){this.name="",this.color=new Nt(t),this.density=void 0!==e?e:25e-5}function $n(t,e,r){this.name="",this.color=new Nt(t),this.near=void 0!==e?e:1,this.far=void 0!==r?r:1e3}function ti(t,e){this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.dynamic=!1,this.updateRange={offset:0,count:-1},this.version=0}function ei(t,e,r,n){this.data=t,this.itemSize=e,this.offset=r,this.normalized=!0===n}function ri(t){Ut.call(this),this.type="SpriteMaterial",this.color=new Nt(16777215),this.map=null,this.rotation=0,this.sizeAttenuation=!0,this.lights=!1,this.transparent=!0,this.setValues(t)}Object.assign(Jn.prototype,e.prototype),Object.assign(Zn.prototype,e.prototype),Object.assign(Kn.prototype,{isFogExp2:!0,clone:function(){return new Kn(this.color,this.density)},toJSON:function(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}}),Object.assign($n.prototype,{isFog:!0,clone:function(){return new $n(this.color,this.near,this.far)},toJSON:function(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}}),Object.defineProperty(ti.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}}),Object.assign(ti.prototype,{isInterleavedBuffer:!0,onUploadCallback:function(){},setArray:function(t){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");return this.count=void 0!==t?t.length/this.stride:0,this.array=t,this},setDynamic:function(t){return this.dynamic=t,this},copy:function(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.dynamic=t.dynamic,this},copyAt:function(t,e,r){t*=this.stride,r*=e.stride;for(var n=0,i=this.stride;nt.far||e.push({distance:s,point:ni.clone(),uv:Pt.getUV(ni,li,hi,ui,pi,di,fi,new l),face:null,object:this})}},clone:function(){return new this.constructor(this.material).copy(this)},copy:function(t){return Y.prototype.copy.call(this,t),void 0!==t.center&&this.center.copy(t.center),this}});var vi=new d,yi=new d;function xi(){Y.call(this),this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]}}),this.autoUpdate=!0}function bi(t,e){t&&t.isGeometry&&console.error("THREE.SkinnedMesh no longer supports THREE.Geometry. Use THREE.BufferGeometry instead."),Te.call(this,t,e),this.type="SkinnedMesh",this.bindMode="attached",this.bindMatrix=new P,this.bindMatrixInverse=new P}xi.prototype=Object.assign(Object.create(Y.prototype),{constructor:xi,isLOD:!0,copy:function(t){Y.prototype.copy.call(this,t,!1);for(var e=t.levels,r=0,n=e.length;r1){vi.setFromMatrixPosition(t.matrixWorld),yi.setFromMatrixPosition(this.matrixWorld);var r=vi.distanceTo(yi);e[0].object.visible=!0;for(var n=1,i=e.length;n=e[n].distance;n++)e[n-1].object.visible=!1,e[n].object.visible=!0;for(;no||(h.applyMatrix4(this.matrixWorld),(_=t.ray.origin.distanceTo(h))t.far||e.push({distance:_,point:l.clone().applyMatrix4(this.matrixWorld),index:g,face:null,faceIndex:null,object:this}))}else for(g=0,v=f.length/3-1;go||(h.applyMatrix4(this.matrixWorld),(_=t.ray.origin.distanceTo(h))t.far||e.push({distance:_,point:l.clone().applyMatrix4(this.matrixWorld),index:g,face:null,faceIndex:null,object:this}))}else if(n.isGeometry){var b=n.vertices,w=b.length;for(g=0;go||(h.applyMatrix4(this.matrixWorld),(_=t.ray.origin.distanceTo(h))t.far||e.push({distance:_,point:l.clone().applyMatrix4(this.matrixWorld),index:g,face:null,faceIndex:null,object:this}))}}}},clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}});var Oi=new d,Di=new d;function Ni(t,e){Ci.call(this,t,e),this.type="LineSegments"}function Ii(t,e){Ci.call(this,t,e),this.type="LineLoop"}function zi(t){Ut.call(this),this.type="PointsMaterial",this.color=new Nt(16777215),this.map=null,this.size=1,this.sizeAttenuation=!0,this.morphTargets=!1,this.lights=!1,this.setValues(t)}Ni.prototype=Object.assign(Object.create(Ci.prototype),{constructor:Ni,isLineSegments:!0,computeLineDistances:function(){var t=this.geometry;if(t.isBufferGeometry)if(null===t.index){for(var e=t.attributes.position,r=[],n=0,i=e.count;ni.far)return;a.push({distance:l,distanceToRay:Math.sqrt(s),point:c,index:e,face:null,object:o})}}function ji(t,e,r,n,i,a,o,s,c){y.call(this,t,e,r,n,i,a,o,s,c),this.format=void 0!==o?o:1022,this.minFilter=void 0!==a?a:1006,this.magFilter=void 0!==i?i:1006,this.generateMipmaps=!1}function ki(t,e,r,n,i,a,o,s,c,l,h,u){y.call(this,null,a,o,s,c,l,n,i,h,u),this.image={width:e,height:r},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}function Wi(t,e,r,n,i,a,o,s,c){y.call(this,t,e,r,n,i,a,o,s,c),this.needsUpdate=!0}function qi(t,e,r,n,i,a,o,s,c,l){if(1026!==(l=void 0!==l?l:1026)&&1027!==l)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===r&&1026===l&&(r=1012),void 0===r&&1027===l&&(r=1020),y.call(this,null,n,i,a,o,s,l,r,c),this.image={width:t,height:e},this.magFilter=void 0!==o?o:1003,this.minFilter=void 0!==s?s:1003,this.flipY=!1,this.generateMipmaps=!1}function Xi(t){se.call(this),this.type="WireframeGeometry";var e,r,n,i,a,o,s,c,l,h,u=[],p=[0,0],f={},m=["a","b","c"];if(t&&t.isGeometry){var g=t.faces;for(e=0,n=g.length;e=0?(t(y-l,v,p),f.subVectors(u,p)):(t(y+l,v,p),f.subVectors(p,u)),v-l>=0?(t(y,v-l,p),m.subVectors(u,p)):(t(y,v+l,p),m.subVectors(p,u)),h.crossVectors(f,m).normalize(),s.push(h.x,h.y,h.z),c.push(y,v)}}for(n=0;n.9&&o<.1&&(e<.2&&(a[t+0]+=1),r<.2&&(a[t+2]+=1),n<.2&&(a[t+4]+=1))}}()}(),this.addAttribute("position",new Zt(i,3)),this.addAttribute("normal",new Zt(i.slice(),3)),this.addAttribute("uv",new Zt(a,2)),0===n?this.computeVertexNormals():this.normalizeNormals()}function Ki(t,e){Oe.call(this),this.type="TetrahedronGeometry",this.parameters={radius:t,detail:e},this.fromBufferGeometry(new $i(t,e)),this.mergeVertices()}function $i(t,e){Qi.call(this,[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],t,e),this.type="TetrahedronBufferGeometry",this.parameters={radius:t,detail:e}}function ta(t,e){Oe.call(this),this.type="OctahedronGeometry",this.parameters={radius:t,detail:e},this.fromBufferGeometry(new ea(t,e)),this.mergeVertices()}function ea(t,e){Qi.call(this,[1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2],t,e),this.type="OctahedronBufferGeometry",this.parameters={radius:t,detail:e}}function ra(t,e){Oe.call(this),this.type="IcosahedronGeometry",this.parameters={radius:t,detail:e},this.fromBufferGeometry(new na(t,e)),this.mergeVertices()}function na(t,e){var r=(1+Math.sqrt(5))/2,n=[-1,r,0,1,r,0,-1,-r,0,1,-r,0,0,-1,r,0,1,r,0,-1,-r,0,1,-r,r,0,-1,r,0,1,-r,0,-1,-r,0,1];Qi.call(this,n,[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],t,e),this.type="IcosahedronBufferGeometry",this.parameters={radius:t,detail:e}}function ia(t,e){Oe.call(this),this.type="DodecahedronGeometry",this.parameters={radius:t,detail:e},this.fromBufferGeometry(new aa(t,e)),this.mergeVertices()}function aa(t,e){var r=(1+Math.sqrt(5))/2,n=1/r,i=[-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,-n,-r,0,-n,r,0,n,-r,0,n,r,-n,-r,0,-n,r,0,n,-r,0,n,r,0,-r,0,-n,r,0,-n,-r,0,n,r,0,n];Qi.call(this,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="DodecahedronBufferGeometry",this.parameters={radius:t,detail:e}}function oa(t,e,r,n,i,a){Oe.call(this),this.type="TubeGeometry",this.parameters={path:t,tubularSegments:e,radius:r,radialSegments:n,closed:i},void 0!==a&&console.warn("THREE.TubeGeometry: taper has been removed.");var o=new sa(t,e,r,n,i);this.tangents=o.tangents,this.normals=o.normals,this.binormals=o.binormals,this.fromBufferGeometry(o),this.mergeVertices()}function sa(t,e,r,n,i){se.call(this),this.type="TubeBufferGeometry",this.parameters={path:t,tubularSegments:e,radius:r,radialSegments:n,closed:i},e=e||64,r=r||1,n=n||8,i=i||!1;var a=t.computeFrenetFrames(e,i);this.tangents=a.tangents,this.normals=a.normals,this.binormals=a.binormals;var o,s,c=new d,h=new d,u=new l,p=new d,f=[],m=[],g=[],v=[];function y(i){p=t.getPointAt(i/e,p);var o=a.normals[i],l=a.binormals[i];for(s=0;s<=n;s++){var u=s/n*Math.PI*2,d=Math.sin(u),g=-Math.cos(u);h.x=g*o.x+d*l.x,h.y=g*o.y+d*l.y,h.z=g*o.z+d*l.z,h.normalize(),m.push(h.x,h.y,h.z),c.x=p.x+r*h.x,c.y=p.y+r*h.y,c.z=p.z+r*h.z,f.push(c.x,c.y,c.z)}}!function(){for(o=0;o0){var o=i[a[0]];if(void 0!==o)for(this.morphTargetInfluences=[],this.morphTargetDictionary={},t=0,e=o.length;t0&&console.error("THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}},clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}}),ji.prototype=Object.assign(Object.create(y.prototype),{constructor:ji,isVideoTexture:!0,update:function(){var t=this.image;t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}),ki.prototype=Object.create(y.prototype),ki.prototype.constructor=ki,ki.prototype.isCompressedTexture=!0,Wi.prototype=Object.create(y.prototype),Wi.prototype.constructor=Wi,Wi.prototype.isCanvasTexture=!0,qi.prototype=Object.create(y.prototype),qi.prototype.constructor=qi,qi.prototype.isDepthTexture=!0,Xi.prototype=Object.create(se.prototype),Xi.prototype.constructor=Xi,Yi.prototype=Object.create(Oe.prototype),Yi.prototype.constructor=Yi,Ji.prototype=Object.create(se.prototype),Ji.prototype.constructor=Ji,Zi.prototype=Object.create(Oe.prototype),Zi.prototype.constructor=Zi,Qi.prototype=Object.create(se.prototype),Qi.prototype.constructor=Qi,Ki.prototype=Object.create(Oe.prototype),Ki.prototype.constructor=Ki,$i.prototype=Object.create(Qi.prototype),$i.prototype.constructor=$i,ta.prototype=Object.create(Oe.prototype),ta.prototype.constructor=ta,ea.prototype=Object.create(Qi.prototype),ea.prototype.constructor=ea,ra.prototype=Object.create(Oe.prototype),ra.prototype.constructor=ra,na.prototype=Object.create(Qi.prototype),na.prototype.constructor=na,ia.prototype=Object.create(Oe.prototype),ia.prototype.constructor=ia,aa.prototype=Object.create(Qi.prototype),aa.prototype.constructor=aa,oa.prototype=Object.create(Oe.prototype),oa.prototype.constructor=oa,sa.prototype=Object.create(se.prototype),sa.prototype.constructor=sa,sa.prototype.toJSON=function(){var t=se.prototype.toJSON.call(this);return t.path=this.parameters.path.toJSON(),t},ca.prototype=Object.create(Oe.prototype),ca.prototype.constructor=ca,la.prototype=Object.create(se.prototype),la.prototype.constructor=la,ha.prototype=Object.create(Oe.prototype),ha.prototype.constructor=ha,ua.prototype=Object.create(se.prototype),ua.prototype.constructor=ua;var pa=function(t,e,r){r=r||2;var n,i,a,o,s,c,l,h=e&&e.length,u=h?e[0]*r:t.length,p=da(t,0,u,r,!0),d=[];if(!p||p.next===p.prev)return d;if(h&&(p=function(t,e,r,n){var i,a,o,s,c,l=[];for(i=0,a=e.length;i80*r){n=a=t[0],i=o=t[1];for(var f=r;fa&&(a=s),c>o&&(o=c);l=0!==(l=Math.max(a-n,o-i))?1/l:0}return ma(p,d,r,n,i,l),d};function da(t,e,r,n,i){var a,o;if(i===function(t,e,r,n){for(var i=0,a=e,o=r-n;a0)for(a=e;a=e;a-=n)o=Ca(a,t[a],t[a+1],o);return o&&Aa(o,o.next)&&(Oa(o),o=o.next),o}function fa(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!Aa(n,n.next)&&0!==Ea(n.prev,n,n.next))n=n.next;else{if(Oa(n),(n=e=n.prev)===n.next)break;r=!0}}while(r||n!==e);return e}function ma(t,e,r,n,i,a,o){if(t){!o&&a&&function(t,e,r,n){var i=t;do{null===i.z&&(i.z=_a(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,r,n,i,a,o,s,c,l=1;do{for(r=t,t=null,a=null,o=0;r;){for(o++,n=r,s=0,e=0;e0||c>0&&n;)0!==s&&(0===c||!n||r.z<=n.z)?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,c--),a?a.nextZ=i:t=i,i.prevZ=a,a=i;r=n}a.nextZ=null,l*=2}while(o>1)}(i)}(t,n,i,a);for(var s,c,l=t;t.prev!==t.next;)if(s=t.prev,c=t.next,a?va(t,n,i,a):ga(t))e.push(s.i/r),e.push(t.i/r),e.push(c.i/r),Oa(t),t=c.next,l=c.next;else if((t=c)===l){o?1===o?ma(t=ya(t,e,r),e,r,n,i,a,2):2===o&&xa(t,e,r,n,i,a):ma(fa(t),e,r,n,i,a,1);break}}}function ga(t){var e=t.prev,r=t,n=t.next;if(Ea(e,r,n)>=0)return!1;for(var i=t.next.next;i!==t.prev;){if(Sa(e.x,e.y,r.x,r.y,n.x,n.y,i.x,i.y)&&Ea(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function va(t,e,r,n){var i=t.prev,a=t,o=t.next;if(Ea(i,a,o)>=0)return!1;for(var s=i.xa.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,h=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,u=_a(s,c,e,r,n),p=_a(l,h,e,r,n),d=t.prevZ,f=t.nextZ;d&&d.z>=u&&f&&f.z<=p;){if(d!==t.prev&&d!==t.next&&Sa(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&Ea(d.prev,d,d.next)>=0)return!1;if(d=d.prevZ,f!==t.prev&&f!==t.next&&Sa(i.x,i.y,a.x,a.y,o.x,o.y,f.x,f.y)&&Ea(f.prev,f,f.next)>=0)return!1;f=f.nextZ}for(;d&&d.z>=u;){if(d!==t.prev&&d!==t.next&&Sa(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&Ea(d.prev,d,d.next)>=0)return!1;d=d.prevZ}for(;f&&f.z<=p;){if(f!==t.prev&&f!==t.next&&Sa(i.x,i.y,a.x,a.y,o.x,o.y,f.x,f.y)&&Ea(f.prev,f,f.next)>=0)return!1;f=f.nextZ}return!0}function ya(t,e,r){var n=t;do{var i=n.prev,a=n.next.next;!Aa(i,a)&&La(i,n,n.next,a)&&Ra(i,a)&&Ra(a,i)&&(e.push(i.i/r),e.push(n.i/r),e.push(a.i/r),Oa(n),Oa(n.next),n=t=a),n=n.next}while(n!==t);return n}function xa(t,e,r,n,i,a){var o=t;do{for(var s=o.next.next;s!==o.prev;){if(o.i!==s.i&&Ta(o,s)){var c=Pa(o,s);return o=fa(o,o.next),c=fa(c,c.next),ma(o,e,r,n,i,a),void ma(c,e,r,n,i,a)}s=s.next}o=o.next}while(o!==t)}function ba(t,e){return t.x-e.x}function wa(t,e){if(e=function(t,e){var r,n=e,i=t.x,a=t.y,o=-1/0;do{if(a<=n.y&&a>=n.next.y&&n.next.y!==n.y){var s=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(s<=i&&s>o){if(o=s,s===i){if(a===n.y)return n;if(a===n.next.y)return n.next}r=n.x=n.x&&n.x>=h&&i!==n.x&&Sa(ar.x)&&Ra(n,t)&&(r=n,p=c),n=n.next;return r}(t,e)){var r=Pa(e,t);fa(r,r.next)}}function _a(t,e,r,n,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-r)*i)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*i)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function Ma(t){var e=t,r=t;do{(e.x=0&&(t-o)*(n-s)-(r-o)*(e-s)>=0&&(r-o)*(a-s)-(i-o)*(n-s)>=0}function Ta(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&La(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}(t,e)&&Ra(t,e)&&Ra(e,t)&&function(t,e){var r=t,n=!1,i=(t.x+e.x)/2,a=(t.y+e.y)/2;do{r.y>a!=r.next.y>a&&r.next.y!==r.y&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==t);return n}(t,e)}function Ea(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function Aa(t,e){return t.x===e.x&&t.y===e.y}function La(t,e,r,n){return!!(Aa(t,r)&&Aa(e,n)||Aa(t,n)&&Aa(r,e))||Ea(t,e,r)>0!=Ea(t,e,n)>0&&Ea(r,n,t)>0!=Ea(r,n,e)>0}function Ra(t,e){return Ea(t.prev,t,t.next)<0?Ea(t,e,t.next)>=0&&Ea(t,t.prev,e)>=0:Ea(t,e,t.prev)<0||Ea(t,t.next,e)<0}function Pa(t,e){var r=new Da(t.i,t.x,t.y),n=new Da(e.i,e.x,e.y),i=t.next,a=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function Ca(t,e,r,n){var i=new Da(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function Oa(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 Da(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}var Na={area:function(t){for(var e=t.length,r=0,n=e-1,i=0;i2&&t[e-1].equals(t[0])&&t.pop()}function za(t,e){for(var r=0;rNumber.EPSILON){var d=Math.sqrt(u),f=Math.sqrt(c*c+h*h),m=e.x-s/d,g=e.y+o/d,v=((r.x-h/f-m)*h-(r.y+c/f-g)*c)/(o*h-s*c),y=(n=m+o*v-t.x)*n+(i=g+s*v-t.y)*i;if(y<=2)return new l(n,i);a=Math.sqrt(y/2)}else{var x=!1;o>Number.EPSILON?c>Number.EPSILON&&(x=!0):o<-Number.EPSILON?c<-Number.EPSILON&&(x=!0):Math.sign(s)===Math.sign(h)&&(x=!0),x?(n=-s,i=o,a=Math.sqrt(u)):(n=o,i=s,a=Math.sqrt(u/2))}return new l(n/a,i/a)}for(var V=[],j=0,k=C.length,W=k-1,q=j+1;j=0;D--){for(I=D/m,z=u*Math.cos(I*Math.PI/2),N=p*Math.sin(I*Math.PI/2)+f,j=0,k=C.length;j=0;){r=j,(n=j-1)<0&&(n=t.length-1);var i=0,a=s+2*m;for(i=0;i0)&&m.push(M,S,E),(c!==r-1||l0&&x(!0),e>0&&x(!1)),this.setIndex(h),this.addAttribute("position",new Zt(u,3)),this.addAttribute("normal",new Zt(p,3)),this.addAttribute("uv",new Zt(f,2))}function eo(t,e,r,n,i,a,o){$a.call(this,0,t,e,r,n,i,a,o),this.type="ConeGeometry",this.parameters={radius:t,height:e,radialSegments:r,heightSegments:n,openEnded:i,thetaStart:a,thetaLength:o}}function ro(t,e,r,n,i,a,o){to.call(this,0,t,e,r,n,i,a,o),this.type="ConeBufferGeometry",this.parameters={radius:t,height:e,radialSegments:r,heightSegments:n,openEnded:i,thetaStart:a,thetaLength:o}}function no(t,e,r,n){Oe.call(this),this.type="CircleGeometry",this.parameters={radius:t,segments:e,thetaStart:r,thetaLength:n},this.fromBufferGeometry(new io(t,e,r,n)),this.mergeVertices()}function io(t,e,r,n){se.call(this),this.type="CircleBufferGeometry",this.parameters={radius:t,segments:e,thetaStart:r,thetaLength:n},t=t||1,e=void 0!==e?Math.max(3,e):8,r=void 0!==r?r:0,n=void 0!==n?n:2*Math.PI;var i,a,o=[],s=[],c=[],h=[],u=new d,p=new l;for(s.push(0,0,0),c.push(0,0,1),h.push(.5,.5),a=0,i=3;a<=e;a++,i+=3){var f=r+a/e*n;u.x=t*Math.cos(f),u.y=t*Math.sin(f),s.push(u.x,u.y,u.z),c.push(0,0,1),p.x=(s[i]/t+1)/2,p.y=(s[i+1]/t+1)/2,h.push(p.x,p.y)}for(i=1;i<=e;i++)o.push(i,i+1,0);this.setIndex(o),this.addAttribute("position",new Zt(s,3)),this.addAttribute("normal",new Zt(c,3)),this.addAttribute("uv",new Zt(h,2))}Ha.prototype=Object.create(Oe.prototype),Ha.prototype.constructor=Ha,Va.prototype=Object.create(Fa.prototype),Va.prototype.constructor=Va,ja.prototype=Object.create(Oe.prototype),ja.prototype.constructor=ja,ka.prototype=Object.create(se.prototype),ka.prototype.constructor=ka,Wa.prototype=Object.create(Oe.prototype),Wa.prototype.constructor=Wa,qa.prototype=Object.create(se.prototype),qa.prototype.constructor=qa,Xa.prototype=Object.create(Oe.prototype),Xa.prototype.constructor=Xa,Ya.prototype=Object.create(se.prototype),Ya.prototype.constructor=Ya,Ja.prototype=Object.create(Oe.prototype),Ja.prototype.constructor=Ja,Ja.prototype.toJSON=function(){var t=Oe.prototype.toJSON.call(this);return Qa(this.parameters.shapes,t)},Za.prototype=Object.create(se.prototype),Za.prototype.constructor=Za,Za.prototype.toJSON=function(){var t=se.prototype.toJSON.call(this);return Qa(this.parameters.shapes,t)},Ka.prototype=Object.create(se.prototype),Ka.prototype.constructor=Ka,$a.prototype=Object.create(Oe.prototype),$a.prototype.constructor=$a,to.prototype=Object.create(se.prototype),to.prototype.constructor=to,eo.prototype=Object.create($a.prototype),eo.prototype.constructor=eo,ro.prototype=Object.create(to.prototype),ro.prototype.constructor=ro,no.prototype=Object.create(Oe.prototype),no.prototype.constructor=no,io.prototype=Object.create(se.prototype),io.prototype.constructor=io;var ao=Object.freeze({WireframeGeometry:Xi,ParametricGeometry:Yi,ParametricBufferGeometry:Ji,TetrahedronGeometry:Ki,TetrahedronBufferGeometry:$i,OctahedronGeometry:ta,OctahedronBufferGeometry:ea,IcosahedronGeometry:ra,IcosahedronBufferGeometry:na,DodecahedronGeometry:ia,DodecahedronBufferGeometry:aa,PolyhedronGeometry:Zi,PolyhedronBufferGeometry:Qi,TubeGeometry:oa,TubeBufferGeometry:sa,TorusKnotGeometry:ca,TorusKnotBufferGeometry:la,TorusGeometry:ha,TorusBufferGeometry:ua,TextGeometry:Ha,TextBufferGeometry:Va,SphereGeometry:ja,SphereBufferGeometry:ka,RingGeometry:Wa,RingBufferGeometry:qa,PlaneGeometry:rr,PlaneBufferGeometry:nr,LatheGeometry:Xa,LatheBufferGeometry:Ya,ShapeGeometry:Ja,ShapeBufferGeometry:Za,ExtrudeGeometry:Ba,ExtrudeBufferGeometry:Fa,EdgesGeometry:Ka,ConeGeometry:eo,ConeBufferGeometry:ro,CylinderGeometry:$a,CylinderBufferGeometry:to,CircleGeometry:no,CircleBufferGeometry:io,BoxGeometry:De,BoxBufferGeometry:Ne});function oo(t){Ut.call(this),this.type="ShadowMaterial",this.color=new Nt(0),this.transparent=!0,this.setValues(t)}function so(t){Fe.call(this,t),this.type="RawShaderMaterial"}function co(t){Ut.call(this),this.defines={STANDARD:""},this.type="MeshStandardMaterial",this.color=new Nt(16777215),this.roughness=.5,this.metalness=.5,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Nt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new l(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function lo(t){co.call(this),this.defines={STANDARD:"",PHYSICAL:""},this.type="MeshPhysicalMaterial",this.reflectivity=.5,this.clearcoat=0,this.clearcoatRoughness=0,this.sheen=null,this.clearcoatNormalScale=new l(1,1),this.clearcoatNormalMap=null,this.transparency=0,this.setValues(t)}function ho(t){Ut.call(this),this.type="MeshPhongMaterial",this.color=new Nt(16777215),this.specular=new Nt(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Nt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new l(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function uo(t){ho.call(this),this.defines={TOON:""},this.type="MeshToonMaterial",this.gradientMap=null,this.setValues(t)}function po(t){Ut.call(this),this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new l(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function fo(t){Ut.call(this),this.type="MeshLambertMaterial",this.color=new Nt(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Nt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function mo(t){Ut.call(this),this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Nt(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new l(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.lights=!1,this.setValues(t)}function go(t){Ti.call(this),this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}oo.prototype=Object.create(Ut.prototype),oo.prototype.constructor=oo,oo.prototype.isShadowMaterial=!0,oo.prototype.copy=function(t){return Ut.prototype.copy.call(this,t),this.color.copy(t.color),this},so.prototype=Object.create(Fe.prototype),so.prototype.constructor=so,so.prototype.isRawShaderMaterial=!0,co.prototype=Object.create(Ut.prototype),co.prototype.constructor=co,co.prototype.isMeshStandardMaterial=!0,co.prototype.copy=function(t){return Ut.prototype.copy.call(this,t),this.defines={STANDARD:""},this.color.copy(t.color),this.roughness=t.roughness,this.metalness=t.metalness,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.roughnessMap=t.roughnessMap,this.metalnessMap=t.metalnessMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapIntensity=t.envMapIntensity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},lo.prototype=Object.create(co.prototype),lo.prototype.constructor=lo,lo.prototype.isMeshPhysicalMaterial=!0,lo.prototype.copy=function(t){return co.prototype.copy.call(this,t),this.defines={STANDARD:"",PHYSICAL:""},this.reflectivity=t.reflectivity,this.clearcoat=t.clearcoat,this.clearcoatRoughness=t.clearcoatRoughness,t.sheen?this.sheen=(this.sheen||new Nt).copy(t.sheen):this.sheen=null,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.transparency=t.transparency,this},ho.prototype=Object.create(Ut.prototype),ho.prototype.constructor=ho,ho.prototype.isMeshPhongMaterial=!0,ho.prototype.copy=function(t){return Ut.prototype.copy.call(this,t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},uo.prototype=Object.create(ho.prototype),uo.prototype.constructor=uo,uo.prototype.isMeshToonMaterial=!0,uo.prototype.copy=function(t){return ho.prototype.copy.call(this,t),this.gradientMap=t.gradientMap,this},po.prototype=Object.create(Ut.prototype),po.prototype.constructor=po,po.prototype.isMeshNormalMaterial=!0,po.prototype.copy=function(t){return Ut.prototype.copy.call(this,t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},fo.prototype=Object.create(Ut.prototype),fo.prototype.constructor=fo,fo.prototype.isMeshLambertMaterial=!0,fo.prototype.copy=function(t){return Ut.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},mo.prototype=Object.create(Ut.prototype),mo.prototype.constructor=mo,mo.prototype.isMeshMatcapMaterial=!0,mo.prototype.copy=function(t){return Ut.prototype.copy.call(this,t),this.defines={MATCAP:""},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},go.prototype=Object.create(Ti.prototype),go.prototype.constructor=go,go.prototype.isLineDashedMaterial=!0,go.prototype.copy=function(t){return Ti.prototype.copy.call(this,t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this};var vo=Object.freeze({ShadowMaterial:oo,SpriteMaterial:ri,RawShaderMaterial:so,ShaderMaterial:Fe,PointsMaterial:zi,MeshPhysicalMaterial:lo,MeshStandardMaterial:co,MeshPhongMaterial:ho,MeshToonMaterial:uo,MeshNormalMaterial:po,MeshLambertMaterial:fo,MeshDepthMaterial:Bn,MeshDistanceMaterial:Fn,MeshBasicMaterial:Ht,MeshMatcapMaterial:mo,LineDashedMaterial:go,LineBasicMaterial:Ti,Material:Ut}),yo={arraySlice:function(t,e,r){return yo.isTypedArray(t)?new t.constructor(t.subarray(e,void 0!==r?r:t.length)):t.slice(e,r)},convertArray:function(t,e,r){return!t||!r&&t.constructor===e?t:"number"==typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)},isTypedArray:function(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)},getKeyframeOrder:function(t){for(var e=t.length,r=new Array(e),n=0;n!==e;++n)r[n]=n;return r.sort((function(e,r){return t[e]-t[r]})),r},sortedArray:function(t,e,r){for(var n=t.length,i=new t.constructor(n),a=0,o=0;o!==n;++a)for(var s=r[a]*e,c=0;c!==e;++c)i[o++]=t[s+c];return i},flattenJSON:function(t,e,r,n){for(var i=1,a=t[0];void 0!==a&&void 0===a[n];)a=t[i++];if(void 0!==a){var o=a[n];if(void 0!==o)if(Array.isArray(o))do{void 0!==(o=a[n])&&(e.push(a.time),r.push.apply(r,o)),a=t[i++]}while(void 0!==a);else if(void 0!==o.toArray)do{void 0!==(o=a[n])&&(e.push(a.time),o.toArray(r,r.length)),a=t[i++]}while(void 0!==a);else do{void 0!==(o=a[n])&&(e.push(a.time),r.push(o)),a=t[i++]}while(void 0!==a)}}};function xo(t,e,r,n){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=void 0!==n?n:new e.constructor(r),this.sampleValues=e,this.valueSize=r}function bo(t,e,r,n){xo.call(this,t,e,r,n),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0}function wo(t,e,r,n){xo.call(this,t,e,r,n)}function _o(t,e,r,n){xo.call(this,t,e,r,n)}function Mo(t,e,r,n){if(void 0===t)throw new Error("THREE.KeyframeTrack: track name is undefined");if(void 0===e||0===e.length)throw new Error("THREE.KeyframeTrack: no keyframes in track named "+t);this.name=t,this.times=yo.convertArray(e,this.TimeBufferType),this.values=yo.convertArray(r,this.ValueBufferType),this.setInterpolation(n||this.DefaultInterpolation)}function So(t,e,r){Mo.call(this,t,e,r)}function To(t,e,r,n){Mo.call(this,t,e,r,n)}function Eo(t,e,r,n){Mo.call(this,t,e,r,n)}function Ao(t,e,r,n){xo.call(this,t,e,r,n)}function Lo(t,e,r,n){Mo.call(this,t,e,r,n)}function Ro(t,e,r,n){Mo.call(this,t,e,r,n)}function Po(t,e,r,n){Mo.call(this,t,e,r,n)}function Co(t,e,r){this.name=t,this.tracks=r,this.duration=void 0!==e?e:-1,this.uuid=s.generateUUID(),this.duration<0&&this.resetDuration()}function Oo(t){if(void 0===t.type)throw new Error("THREE.KeyframeTrack: track type undefined, can not parse");var e=function(t){switch(t.toLowerCase()){case"scalar":case"double":case"float":case"number":case"integer":return Eo;case"vector":case"vector2":case"vector3":case"vector4":return Po;case"color":return To;case"quaternion":return Lo;case"bool":case"boolean":return So;case"string":return Ro}throw new Error("THREE.KeyframeTrack: Unsupported typeName: "+t)}(t.type);if(void 0===t.times){var r=[],n=[];yo.flattenJSON(t.keys,r,n,"value"),t.times=r,t.values=n}return void 0!==e.parse?e.parse(t):new e(t.name,t.times,t.values,t.interpolation)}Object.assign(xo.prototype,{evaluate:function(t){var e=this.parameterPositions,r=this._cachedIndex,n=e[r],i=e[r-1];t:{e:{var a;r:{n:if(!(t=i)break t;var s=e[1];for(t=(i=e[--r-1]))break e}a=r,r=0}for(;r>>1;te;)--a;if(++a,0!==i||a!==n){i>=a&&(i=(a=Math.max(a,1))-1);var o=this.getValueSize();this.times=yo.arraySlice(r,i,a),this.values=yo.arraySlice(this.values,i*o,a*o)}return this},validate:function(){var t=!0,e=this.getValueSize();e-Math.floor(e)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);var r=this.times,n=this.values,i=r.length;0===i&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);for(var a=null,o=0;o!==i;o++){var s=r[o];if("number"==typeof s&&isNaN(s)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,o,s),t=!1;break}if(null!==a&&a>s){console.error("THREE.KeyframeTrack: Out of order keys.",this,o,s,a),t=!1;break}a=s}if(void 0!==n&&yo.isTypedArray(n)){o=0;for(var c=n.length;o!==c;++o){var l=n[o];if(isNaN(l)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,o,l),t=!1;break}}}return t},optimize:function(){for(var t=this.times,e=this.values,r=this.getValueSize(),n=2302===this.getInterpolation(),i=1,a=t.length-1,o=1;o0){for(t[i]=t[a],f=a*r,m=i*r,p=0;p!==r;++p)e[m+p]=e[f+p];++i}return i!==t.length&&(this.times=yo.arraySlice(t,0,i),this.values=yo.arraySlice(e,0,i*r)),this},clone:function(){var t=yo.arraySlice(this.times,0),e=yo.arraySlice(this.values,0),r=new(0,this.constructor)(this.name,t,e);return r.createInterpolant=this.createInterpolant,r}}),So.prototype=Object.assign(Object.create(Mo.prototype),{constructor:So,ValueTypeName:"bool",ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0}),To.prototype=Object.assign(Object.create(Mo.prototype),{constructor:To,ValueTypeName:"color"}),Eo.prototype=Object.assign(Object.create(Mo.prototype),{constructor:Eo,ValueTypeName:"number"}),Ao.prototype=Object.assign(Object.create(xo.prototype),{constructor:Ao,interpolate_:function(t,e,r,n){for(var i=this.resultBuffer,a=this.sampleValues,o=this.valueSize,s=t*o,c=(r-e)/(n-e),l=s+o;s!==l;s+=4)h.slerpFlat(i,0,a,s-o,a,s,c);return i}}),Lo.prototype=Object.assign(Object.create(Mo.prototype),{constructor:Lo,ValueTypeName:"quaternion",DefaultInterpolation:2301,InterpolantFactoryMethodLinear:function(t){return new Ao(this.times,this.values,this.getValueSize(),t)},InterpolantFactoryMethodSmooth:void 0}),Ro.prototype=Object.assign(Object.create(Mo.prototype),{constructor:Ro,ValueTypeName:"string",ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0}),Po.prototype=Object.assign(Object.create(Mo.prototype),{constructor:Po,ValueTypeName:"vector"}),Object.assign(Co,{parse:function(t){for(var e=[],r=t.tracks,n=1/(t.fps||1),i=0,a=r.length;i!==a;++i)e.push(Oo(r[i]).scale(n));return new Co(t.name,t.duration,e)},toJSON:function(t){for(var e=[],r=t.tracks,n={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid},i=0,a=r.length;i!==a;++i)e.push(Mo.toJSON(r[i]));return n},CreateFromMorphTargetSequence:function(t,e,r,n){for(var i=e.length,a=[],o=0;o1){var l=n[u=c[1]];l||(n[u]=l=[]),l.push(s)}}var h=[];for(var u in n)h.push(Co.CreateFromMorphTargetSequence(u,n[u],e,r));return h},parseAnimation:function(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;for(var r=function(t,e,r,n,i){if(0!==r.length){var a=[],o=[];yo.flattenJSON(r,a,o,n),0!==a.length&&i.push(new t(e,a,o))}},n=[],i=t.name||"default",a=t.length||-1,o=t.fps||30,s=t.hierarchy||[],c=0;c0||0===t.search(/^data\:image\/jpeg/);i.format=n?1022:1023,i.needsUpdate=!0,void 0!==e&&e(i)}),r,n),i}}),Object.assign(Wo.prototype,{getPoint:function(){return console.warn("THREE.Curve: .getPoint() not implemented."),null},getPointAt:function(t,e){var r=this.getUtoTmapping(t);return this.getPoint(r,e)},getPoints:function(t){void 0===t&&(t=5);for(var e=[],r=0;r<=t;r++)e.push(this.getPoint(r/t));return e},getSpacedPoints:function(t){void 0===t&&(t=5);for(var e=[],r=0;r<=t;r++)e.push(this.getPointAt(r/t));return e},getLength:function(){var t=this.getLengths();return t[t.length-1]},getLengths:function(t){if(void 0===t&&(t=this.arcLengthDivisions),this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;var e,r,n=[],i=this.getPoint(0),a=0;for(n.push(0),r=1;r<=t;r++)a+=(e=this.getPoint(r/t)).distanceTo(i),n.push(a),i=e;return this.cacheArcLengths=n,n},updateArcLengths:function(){this.needsUpdate=!0,this.getLengths()},getUtoTmapping:function(t,e){var r,n=this.getLengths(),i=0,a=n.length;r=e||t*n[a-1];for(var o,s=0,c=a-1;s<=c;)if((o=n[i=Math.floor(s+(c-s)/2)]-r)<0)s=i+1;else{if(!(o>0)){c=i;break}c=i-1}if(n[i=c]===r)return i/(a-1);var l=n[i];return(i+(r-l)/(n[i+1]-l))/(a-1)},getTangent:function(t){var e=t-1e-4,r=t+1e-4;e<0&&(e=0),r>1&&(r=1);var n=this.getPoint(e);return this.getPoint(r).clone().sub(n).normalize()},getTangentAt:function(t){var e=this.getUtoTmapping(t);return this.getTangent(e)},computeFrenetFrames:function(t,e){var r,n,i,a=new d,o=[],c=[],l=[],h=new d,u=new P;for(r=0;r<=t;r++)n=r/t,o[r]=this.getTangentAt(n),o[r].normalize();c[0]=new d,l[0]=new d;var p=Number.MAX_VALUE,f=Math.abs(o[0].x),m=Math.abs(o[0].y),g=Math.abs(o[0].z);for(f<=p&&(p=f,a.set(1,0,0)),m<=p&&(p=m,a.set(0,1,0)),g<=p&&a.set(0,0,1),h.crossVectors(o[0],a).normalize(),c[0].crossVectors(o[0],h),l[0].crossVectors(o[0],c[0]),r=1;r<=t;r++)c[r]=c[r-1].clone(),l[r]=l[r-1].clone(),h.crossVectors(o[r-1],o[r]),h.length()>Number.EPSILON&&(h.normalize(),i=Math.acos(s.clamp(o[r-1].dot(o[r]),-1,1)),c[r].applyMatrix4(u.makeRotationAxis(h,i))),l[r].crossVectors(o[r],c[r]);if(!0===e)for(i=Math.acos(s.clamp(c[0].dot(c[t]),-1,1)),i/=t,o[0].dot(h.crossVectors(c[0],c[t]))>0&&(i=-i),r=1;r<=t;r++)c[r].applyMatrix4(u.makeRotationAxis(o[r],i*r)),l[r].crossVectors(o[r],c[r]);return{tangents:o,normals:c,binormals:l}},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.arcLengthDivisions=t.arcLengthDivisions,this},toJSON:function(){var t={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t},fromJSON:function(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}),qo.prototype=Object.create(Wo.prototype),qo.prototype.constructor=qo,qo.prototype.isEllipseCurve=!0,qo.prototype.getPoint=function(t,e){for(var r=e||new l,n=2*Math.PI,i=this.aEndAngle-this.aStartAngle,a=Math.abs(i)n;)i-=n;i0?0:(Math.floor(Math.abs(h)/c)+1)*c:0===u&&h===c-1&&(h=c-2,u=1),this.closed||h>0?r=s[(h-1)%c]:(Jo.subVectors(s[0],s[1]).add(s[0]),r=Jo),n=s[h%c],i=s[(h+1)%c],this.closed||h+2n.length-2?n.length-1:a+1],u=n[a>n.length-3?n.length-1:a+2];return r.set(ts(o,s.x,c.x,h.x,u.x),ts(o,s.y,c.y,h.y,u.y)),r},ls.prototype.copy=function(t){Wo.prototype.copy.call(this,t),this.points=[];for(var e=0,r=t.points.length;e=e){var i=r[n]-e,a=this.curves[n],o=a.getLength(),s=0===o?0:1-i/o;return a.getPointAt(s)}n++}return null},getLength:function(){var t=this.getCurveLengths();return t[t.length-1]},updateArcLengths:function(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()},getCurveLengths:function(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;for(var t=[],e=0,r=0,n=this.curves.length;r1&&!r[r.length-1].equals(r[0])&&r.push(r[0]),r},copy:function(t){Wo.prototype.copy.call(this,t),this.curves=[];for(var e=0,r=t.curves.length;e0){var l=c.getPoint(0);l.equals(this.currentPoint)||this.lineTo(l.x,l.y)}this.curves.push(c);var h=c.getPoint(1);this.currentPoint.copy(h)},copy:function(t){return us.prototype.copy.call(this,t),this.currentPoint.copy(t.currentPoint),this},toJSON:function(){var t=us.prototype.toJSON.call(this);return t.currentPoint=this.currentPoint.toArray(),t},fromJSON:function(t){return us.prototype.fromJSON.call(this,t),this.currentPoint.fromArray(t.currentPoint),this}}),ds.prototype=Object.assign(Object.create(ps.prototype),{constructor:ds,getPointsHoles:function(t){for(var e=[],r=0,n=this.holes.length;r0){var a=new Vo(new No(e));a.setCrossOrigin(this.crossOrigin);for(var o=0,s=t.length;o0?new bi(o,s):new Te(o,s),void 0!==t.drawMode&&n.setDrawMode(t.drawMode);break;case"LOD":n=new xi;break;case"Line":n=new Ci(i(t.geometry),a(t.material),t.mode);break;case"LineLoop":n=new Ii(i(t.geometry),a(t.material));break;case"LineSegments":n=new Ni(i(t.geometry),a(t.material));break;case"PointCloud":case"Points":n=new Hi(i(t.geometry),a(t.material));break;case"Sprite":n=new mi(a(t.material));break;case"Group":n=new jn;break;default:n=new Y}if(n.uuid=t.uuid,void 0!==t.name&&(n.name=t.name),void 0!==t.matrix?(n.matrix.fromArray(t.matrix),void 0!==t.matrixAutoUpdate&&(n.matrixAutoUpdate=t.matrixAutoUpdate),n.matrixAutoUpdate&&n.matrix.decompose(n.position,n.quaternion,n.scale)):(void 0!==t.position&&n.position.fromArray(t.position),void 0!==t.rotation&&n.rotation.fromArray(t.rotation),void 0!==t.quaternion&&n.quaternion.fromArray(t.quaternion),void 0!==t.scale&&n.scale.fromArray(t.scale)),void 0!==t.castShadow&&(n.castShadow=t.castShadow),void 0!==t.receiveShadow&&(n.receiveShadow=t.receiveShadow),t.shadow&&(void 0!==t.shadow.bias&&(n.shadow.bias=t.shadow.bias),void 0!==t.shadow.radius&&(n.shadow.radius=t.shadow.radius),void 0!==t.shadow.mapSize&&n.shadow.mapSize.fromArray(t.shadow.mapSize),void 0!==t.shadow.camera&&(n.shadow.camera=this.parseObject(t.shadow.camera))),void 0!==t.visible&&(n.visible=t.visible),void 0!==t.frustumCulled&&(n.frustumCulled=t.frustumCulled),void 0!==t.renderOrder&&(n.renderOrder=t.renderOrder),void 0!==t.userData&&(n.userData=t.userData),void 0!==t.layers&&(n.layers.mask=t.layers),void 0!==t.children)for(var c=t.children,l=0;lNumber.EPSILON){if(l<0&&(o=e[a],c=-c,s=e[i],l=-l),t.ys.y)continue;if(t.y===o.y){if(t.x===o.x)return!0}else{var h=l*(t.x-o.x)-c*(t.y-o.y);if(0===h)return!0;if(h<0)continue;n=!n}}else{if(t.y!==o.y)continue;if(s.x<=t.x&&t.x<=o.x||o.x<=t.x&&t.x<=s.x)return!0}}return n}var i=Na.isClockWise,a=this.subPaths;if(0===a.length)return[];if(!0===e)return r(a);var o,s,c,l=[];if(1===a.length)return s=a[0],(c=new ds).curves=s.curves,l.push(c),l;var h=!i(a[0].getPoints());h=t?!h:h;var u,p,d=[],f=[],m=[],g=0;f[g]=void 0,m[g]=[];for(var v=0,y=a.length;v1){for(var x=!1,b=[],w=0,_=f.length;w<_;w++)d[w]=[];for(w=0,_=f.length;w<_;w++)for(var M=m[w],S=0;S0&&(x||(m=d))}v=0;for(var L=f.length;v0){this.source.connect(this.filters[0]);for(var t=1,e=this.filters.length;t0){this.source.disconnect(this.filters[0]);for(var t=1,e=this.filters.length;t=.5)for(var a=0;a!==i;++a)t[e+a]=t[r+a]},_slerp:function(t,e,r,n){h.slerpFlat(t,e,t,e,t,r,n)},_lerp:function(t,e,r,n,i){for(var a=1-n,o=0;o!==i;++o){var s=e+o;t[s]=t[s]*a+t[r+o]*n}}});var uc=new RegExp("[\\[\\]\\.:\\/]","g"),pc="[^"+"\\[\\]\\.:\\/".replace("\\.","")+"]",dc=/((?:WC+[\/:])*)/.source.replace("WC","[^\\[\\]\\.:\\/]"),fc=/(WCOD+)?/.source.replace("WCOD",pc),mc=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC","[^\\[\\]\\.:\\/]"),gc=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC","[^\\[\\]\\.:\\/]"),vc=new RegExp("^"+dc+fc+mc+gc+"$"),yc=["material","materials","bones"];function xc(t,e,r){var n=r||bc.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,n)}function bc(t,e,r){this.path=e,this.parsedPath=r||bc.parseTrackName(e),this.node=bc.findNode(t,this.parsedPath.nodeName)||t,this.rootNode=t}function wc(){this.uuid=s.generateUUID(),this._objects=Array.prototype.slice.call(arguments),this.nCachedObjects_=0;var t={};this._indicesByUUID=t;for(var e=0,r=arguments.length;e!==r;++e)t[arguments[e].uuid]=e;this._paths=[],this._parsedPaths=[],this._bindings=[],this._bindingsIndicesByPath={};var n=this;this.stats={objects:{get total(){return n._objects.length},get inUse(){return this.total-n.nCachedObjects_}},get bindingsPerObject(){return n._bindings.length}}}function _c(t,e,r){this._mixer=t,this._clip=e,this._localRoot=r||null;for(var n=e.tracks,i=n.length,a=new Array(i),o={endingStart:2400,endingEnd:2400},s=0;s!==i;++s){var c=n[s].createInterpolant(null);a[s]=c,c.settings=o}this._interpolantSettings=o,this._interpolants=a,this._propertyBindings=new Array(i),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}function Mc(t){this._root=t,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}function Sc(t){"string"==typeof t&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),t=arguments[1]),this.value=t}function Tc(t,e,r){ti.call(this,t,e),this.meshPerAttribute=r||1}function Ec(t,e,r,n){this.ray=new xt(t,e),this.near=r||0,this.far=n||1/0,this.camera=null,this.params={Mesh:{},Line:{},LOD:{},Points:{threshold:1},Sprite:{}},Object.defineProperties(this.params,{PointCloud:{get:function(){return console.warn("THREE.Raycaster: params.PointCloud has been renamed to params.Points."),this.Points}}})}function Ac(t,e){return t.distance-e.distance}function Lc(t,e,r,n){if(!1!==t.visible&&(t.raycast(e,r),!0===n))for(var i=t.children,a=0,o=i.length;a=e){var h=e++,u=t[h];r[u.uuid]=l,t[l]=u,r[c]=h,t[h]=s;for(var p=0,d=i;p!==d;++p){var f=n[p],m=f[h],g=f[l];f[l]=m,f[h]=g}}}this.nCachedObjects_=e},uncache:function(){for(var t=this._objects,e=t.length,r=this.nCachedObjects_,n=this._indicesByUUID,i=this._bindings,a=i.length,o=0,s=arguments.length;o!==s;++o){var c=arguments[o],l=c.uuid,h=n[l];if(void 0!==h)if(delete n[l],h0)for(var c=this._interpolants,l=this._propertyBindings,h=0,u=c.length;h!==u;++h)c[h].evaluate(o),l[h].accumulate(n,s)}else this._updateWeight(t)},_updateWeight:function(t){var e=0;if(this.enabled){e=this.weight;var r=this._weightInterpolant;if(null!==r){var n=r.evaluate(t)[0];e*=n,t>r.parameterPositions[1]&&(this.stopFading(),0===n&&(this.enabled=!1))}}return this._effectiveWeight=e,e},_updateTimeScale:function(t){var e=0;if(!this.paused){e=this.timeScale;var r=this._timeScaleInterpolant;null!==r&&(e*=r.evaluate(t)[0],t>r.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e))}return this._effectiveTimeScale=e,e},_updateTime:function(t){var e=this.time+t,r=this._clip.duration,n=this.loop,i=this._loopCount,a=2202===n;if(0===t)return-1===i?e:a&&1==(1&i)?r-e:e;if(2200===n){-1===i&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(e>=r)e=r;else{if(!(e<0)){this.time=e;break t}e=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=e,this._mixer.dispatchEvent({type:"finished",action:this,direction:t<0?-1:1})}}else{if(-1===i&&(t>=0?(i=0,this._setEndings(!0,0===this.repetitions,a)):this._setEndings(0===this.repetitions,!0,a)),e>=r||e<0){var o=Math.floor(e/r);e-=r*o,i+=Math.abs(o);var s=this.repetitions-i;if(s<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,e=t>0?r:0,this.time=e,this._mixer.dispatchEvent({type:"finished",action:this,direction:t>0?1:-1});else{if(1===s){var c=t<0;this._setEndings(c,!c,a)}else this._setEndings(!1,!1,a);this._loopCount=i,this.time=e,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:o})}}else this.time=e;if(a&&1==(1&i))return r-e}return e},_setEndings:function(t,e,r){var n=this._interpolantSettings;r?(n.endingStart=2401,n.endingEnd=2401):(n.endingStart=t?this.zeroSlopeAtStart?2401:2400:2402,n.endingEnd=e?this.zeroSlopeAtEnd?2401:2400:2402)},_scheduleFading:function(t,e,r){var n=this._mixer,i=n.time,a=this._weightInterpolant;null===a&&(a=n._lendControlInterpolant(),this._weightInterpolant=a);var o=a.parameterPositions,s=a.sampleValues;return o[0]=i,s[0]=e,o[1]=i+t,s[1]=r,this}}),Mc.prototype=Object.assign(Object.create(e.prototype),{constructor:Mc,_bindAction:function(t,e){var r=t._localRoot||this._root,n=t._clip.tracks,i=n.length,a=t._propertyBindings,o=t._interpolants,s=r.uuid,c=this._bindingsByRootAndName,l=c[s];void 0===l&&(l={},c[s]=l);for(var h=0;h!==i;++h){var u=n[h],p=u.name,d=l[p];if(void 0!==d)a[h]=d;else{if(void 0!==(d=a[h])){null===d._cacheIndex&&(++d.referenceCount,this._addInactiveBinding(d,s,p));continue}var f=e&&e._propertyBindings[h].binding.parsedPath;++(d=new hc(bc.create(r,p,f),u.ValueTypeName,u.getValueSize())).referenceCount,this._addInactiveBinding(d,s,p),a[h]=d}o[h].resultBuffer=d.buffer}},_activateAction:function(t){if(!this._isActiveAction(t)){if(null===t._cacheIndex){var e=(t._localRoot||this._root).uuid,r=t._clip.uuid,n=this._actionsByClip[r];this._bindAction(t,n&&n.knownActions[0]),this._addInactiveAction(t,r,e)}for(var i=t._propertyBindings,a=0,o=i.length;a!==o;++a){var s=i[a];0==s.useCount++&&(this._lendBinding(s),s.saveOriginalState())}this._lendAction(t)}},_deactivateAction:function(t){if(this._isActiveAction(t)){for(var e=t._propertyBindings,r=0,n=e.length;r!==n;++r){var i=e[r];0==--i.useCount&&(i.restoreOriginalState(),this._takeBackBinding(i))}this._takeBackAction(t)}},_initMemoryManager:function(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;var 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:function(t){var e=t._cacheIndex;return null!==e&&ethis.max.x||t.ythis.max.y)},containsBox:function(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:function(t,e){return void 0===e&&(console.warn("THREE.Box2: .getParameter() target is now required"),e=new l),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:function(t){return!(t.max.xthis.max.x||t.max.ythis.max.y)},clampPoint:function(t,e){return void 0===e&&(console.warn("THREE.Box2: .clampPoint() target is now required"),e=new l),e.copy(t).clamp(this.min,this.max)},distanceToPoint:function(t){return Cc.copy(t).clamp(this.min,this.max).sub(t).length()},intersect:function(t){return this.min.max(t.min),this.max.min(t.max),this},union:function(t){return this.min.min(t.min),this.max.max(t.max),this},translate:function(t){return this.min.add(t),this.max.add(t),this},equals:function(t){return t.min.equals(this.min)&&t.max.equals(this.max)}});var Dc=new d,Nc=new d;function Ic(t,e){this.start=void 0!==t?t:new d,this.end=void 0!==e?e:new d}function zc(t){Y.call(this),this.material=t,this.render=function(){}}Object.assign(Ic.prototype,{set:function(t,e){return this.start.copy(t),this.end.copy(e),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.start.copy(t.start),this.end.copy(t.end),this},getCenter:function(t){return void 0===t&&(console.warn("THREE.Line3: .getCenter() target is now required"),t=new d),t.addVectors(this.start,this.end).multiplyScalar(.5)},delta:function(t){return void 0===t&&(console.warn("THREE.Line3: .delta() target is now required"),t=new d),t.subVectors(this.end,this.start)},distanceSq:function(){return this.start.distanceToSquared(this.end)},distance:function(){return this.start.distanceTo(this.end)},at:function(t,e){return void 0===e&&(console.warn("THREE.Line3: .at() target is now required"),e=new d),this.delta(e).multiplyScalar(t).add(this.start)},closestPointToPointParameter:function(t,e){Dc.subVectors(t,this.start),Nc.subVectors(this.end,this.start);var r=Nc.dot(Nc),n=Nc.dot(Dc)/r;return e&&(n=s.clamp(n,0,1)),n},closestPointToPoint:function(t,e,r){var n=this.closestPointToPointParameter(t,e);return void 0===r&&(console.warn("THREE.Line3: .closestPointToPoint() target is now required"),r=new d),this.delta(r).multiplyScalar(n).add(this.start)},applyMatrix4:function(t){return this.start.applyMatrix4(t),this.end.applyMatrix4(t),this},equals:function(t){return t.start.equals(this.start)&&t.end.equals(this.end)}}),zc.prototype=Object.create(Y.prototype),zc.prototype.constructor=zc,zc.prototype.isImmediateRenderObject=!0;var Bc=new d,Fc=new d,Gc=new m,Uc=["a","b","c"];function Hc(t,e,r,n){this.object=t,this.size=void 0!==e?e:1;var i=void 0!==r?r:16711680,a=void 0!==n?n:1,o=0,s=this.object.geometry;s&&s.isGeometry?o=3*s.faces.length:s&&s.isBufferGeometry&&(o=s.attributes.normal.count);var c=new se,l=new Zt(2*o*3,3);c.addAttribute("position",l),Ni.call(this,c,new Ti({color:i,linewidth:a})),this.matrixAutoUpdate=!1,this.update()}Hc.prototype=Object.create(Ni.prototype),Hc.prototype.constructor=Hc,Hc.prototype.update=function(){this.object.updateMatrixWorld(!0),Gc.getNormalMatrix(this.object.matrixWorld);var t=this.object.matrixWorld,e=this.geometry.attributes.position,r=this.object.geometry;if(r&&r.isGeometry)for(var n=r.vertices,i=r.faces,a=0,o=0,s=i.length;o1&&t.multiplyScalar(1/e),this.children[0].material.color.copy(this.material.color)}},Jc.prototype.dispose=function(){this.geometry.dispose(),this.material.dispose(),this.children[0].geometry.dispose(),this.children[0].material.dispose()};var Zc=new d,Qc=new Nt,Kc=new Nt;function $c(t,e,r){Y.call(this),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=r;var n=new ea(e);n.rotateY(.5*Math.PI),this.material=new Ht({wireframe:!0,fog:!1}),void 0===this.color&&(this.material.vertexColors=2);var i=n.getAttribute("position"),a=new Float32Array(3*i.count);n.addAttribute("color",new Vt(a,3)),this.add(new Te(n,this.material)),this.update()}function tl(t,e){this.lightProbe=t,this.size=e;var r={GAMMA_OUTPUT:""},n=new Fe({defines:r,uniforms:{sh:{value:this.lightProbe.sh.coefficients},intensity:{value:this.lightProbe.intensity}},vertexShader:["varying vec3 vNormal;","void main() {","\tvNormal = normalize( normalMatrix * normal );","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["#define RECIPROCAL_PI 0.318309886","vec3 inverseTransformDirection( in vec3 normal, in mat4 matrix ) {","\t// matrix is assumed to be orthogonal","\treturn normalize( ( vec4( normal, 0.0 ) * matrix ).xyz );","}","vec3 linearToOutput( in vec3 a ) {","\t#ifdef GAMMA_OUTPUT","\t\treturn pow( a, vec3( 1.0 / float( GAMMA_FACTOR ) ) );","\t#else","\t\treturn a;","\t#endif","}","// source: https://graphics.stanford.edu/papers/envmap/envmap.pdf","vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {","\t// normal is assumed to have unit length","\tfloat x = normal.x, y = normal.y, z = normal.z;","\t// band 0","\tvec3 result = shCoefficients[ 0 ] * 0.886227;","\t// band 1","\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;","\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;","\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;","\t// band 2","\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;","\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;","\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );","\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;","\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );","\treturn result;","}","uniform vec3 sh[ 9 ]; // sh coefficients","uniform float intensity; // light probe intensity","varying vec3 vNormal;","void main() {","\tvec3 normal = normalize( vNormal );","\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );","\tvec3 irradiance = shGetIrradianceAt( worldNormal, sh );","\tvec3 outgoingLight = RECIPROCAL_PI * irradiance * intensity;","\toutgoingLight = linearToOutput( outgoingLight );","\tgl_FragColor = vec4( outgoingLight, 1.0 );","}"].join("\n")}),i=new ka(1,32,16);Te.call(this,i,n),this.onBeforeRender()}function el(t,e,r,n){t=t||10,e=e||10,r=new Nt(void 0!==r?r:4473924),n=new Nt(void 0!==n?n:8947848);for(var i=e/2,a=t/e,o=t/2,s=[],c=[],l=0,h=0,u=-o;l<=e;l++,u+=a){s.push(-o,0,u,o,0,u),s.push(u,0,-o,u,0,o);var p=l===i?r:n;p.toArray(c,h),h+=3,p.toArray(c,h),h+=3,p.toArray(c,h),h+=3,p.toArray(c,h),h+=3}var d=new se;d.addAttribute("position",new Zt(s,3)),d.addAttribute("color",new Zt(c,3));var f=new Ti({vertexColors:2});Ni.call(this,d,f)}function rl(t,e,r,n,i,a){t=t||10,e=e||16,r=r||8,n=n||64,i=new Nt(void 0!==i?i:4473924),a=new Nt(void 0!==a?a:8947848);var o,s,c,l,h,u,p,d=[],f=[];for(l=0;l<=e;l++)c=l/e*(2*Math.PI),o=Math.sin(c)*t,s=Math.cos(c)*t,d.push(0,0,0),d.push(o,0,s),p=1&l?i:a,f.push(p.r,p.g,p.b),f.push(p.r,p.g,p.b);for(l=0;l<=r;l++)for(p=1&l?i:a,u=t-t/r*l,h=0;h.99999)this.quaternion.set(0,0,0,1);else if(t.y<-.99999)this.quaternion.set(1,0,0,0);else{_l.set(t.z,0,-t.x).normalize();var e=Math.acos(t.y);this.quaternion.setFromAxisAngle(_l,e)}},Ml.prototype.setLength=function(t,e,r){void 0===e&&(e=.2*t),void 0===r&&(r=.2*e),this.line.scale.set(1,Math.max(0,t-e),1),this.line.updateMatrix(),this.cone.scale.set(r,e,r),this.cone.position.y=t,this.cone.updateMatrix()},Ml.prototype.setColor=function(t){this.line.material.color.set(t),this.cone.material.color.set(t)},Ml.prototype.copy=function(t){return Y.prototype.copy.call(this,t,!1),this.line.copy(t.line),this.cone.copy(t.cone),this},Ml.prototype.clone=function(){return(new this.constructor).copy(this)},Sl.prototype=Object.create(Ni.prototype),Sl.prototype.constructor=Sl,Wo.create=function(t,e){return console.log("THREE.Curve.create() has been deprecated"),t.prototype=Object.create(Wo.prototype),t.prototype.constructor=t,t.prototype.getPoint=e,t},Object.assign(us.prototype,{createPointsGeometry:function(t){console.warn("THREE.CurvePath: .createPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");var e=this.getPoints(t);return this.createGeometry(e)},createSpacedPointsGeometry:function(t){console.warn("THREE.CurvePath: .createSpacedPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");var e=this.getSpacedPoints(t);return this.createGeometry(e)},createGeometry:function(t){console.warn("THREE.CurvePath: .createGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");for(var e=new Oe,r=0,n=t.length;rlR&DH_~pcS}Xe*`bYkO zpQAHLDwXO{QJI0so1M&LH!mUCVT|#5FLW3yF~$TaVy*zqCxZQ`6Oyx@DL}5rxM{}f zEQnPw5lfEW$pEh1G>cfmLe^&E>xWxn3v}gGi~jtv$e`c7vMc=@T*Xm0tyW)nZYn=L zGb=<<6z7X4-i7LWsh{?`b-#0jPkVlP5m*J5VS zq%&@d4{qPgZH2=1+hKgE!x?uCQcDaF10NZ{+7G0J_y6wK^}i0Hh8Q3Q{wD)G-|!lB zn47&@CuWIvtpsg>qF`KR@I3_#eHBA2Ud2nGTEH*S0CX*82EhYDKLVNtYKVa!W#A2@ CWL$p$ literal 0 HcmV?d00001 diff --git a/pages/agreement/index.js b/pages/agreement/index.js new file mode 100644 index 0000000..db96bf1 --- /dev/null +++ b/pages/agreement/index.js @@ -0,0 +1,84 @@ +// pages/agreement/index.js +Page({ + /** + * 页面的初始数据 + */ + data: { + stage: "first", + q: "", + e: "", + s: "", + }, + toStage2() { + this.setData({ stage: "second" }); + }, + async agree() { + wx.showLoading(); + const app = getApp(); + const openid = app.globalData.openid; + const db = wx.cloud.database(); + try { + await db.collection("agreement").add({ data: { _id: openid } }); + wx.hideLoading(); + app.globalData.agreed = true; + const { q, e, s } = this.data; + wx.redirectTo({ + url: `/pages/h5map/index?q=${q}&e=${e}&s=${s}`, + }); + } catch (error) { + console.log(error); + wx.hideLoading(); + } + }, + exit() { + wx.exitMiniProgram(); + }, + toPrivacy() { + wx.navigateTo({ + url: "/pages/privacy/index", + }); + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad({ q, e, s }) { + q && this.setData({ q }); + e && this.setData({ e }); + s && this.setData({ s }); + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () {}, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () {}, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () {}, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () {}, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () {}, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () {}, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () {}, +}); diff --git a/pages/agreement/index.json b/pages/agreement/index.json new file mode 100644 index 0000000..cfbf977 --- /dev/null +++ b/pages/agreement/index.json @@ -0,0 +1,6 @@ +{ + "usingComponents": {}, + "navigationStyle": "default", + "navigationBarTitleText": "武汉荟聚实景导航", + "navigationBarBackgroundColor": "#FFFFFF" +} diff --git a/pages/agreement/index.wxml b/pages/agreement/index.wxml new file mode 100644 index 0000000..36ed84c --- /dev/null +++ b/pages/agreement/index.wxml @@ -0,0 +1,21 @@ + + + 武汉荟聚 + + 荟聚隐私政策提示 + 欢迎您使用武汉荟聚实景导航小程序,为更好地保护您的个人信息安全,请您仔细阅读并理解《隐私政策》 + 我们将严格按照您同意的《隐私政策》中的各项条款使用和保护您的个人信息。 + 为继续使用我们的产品或服务,请您阅读并同意《隐私政策》内容。 + + + 不同意 + 同意 + + + 不同意并退出 + 同意并继续 + + \ No newline at end of file diff --git a/pages/agreement/index.wxss b/pages/agreement/index.wxss new file mode 100644 index 0000000..6d81ffa --- /dev/null +++ b/pages/agreement/index.wxss @@ -0,0 +1,91 @@ +.ag { + display: inline-flex; + flex-direction: column; + width: 100vw; + height: 100vh; + align-items: center; +} +.logo { + width: 86px; + height: 86px; + margin-top: 40px; +} +.name { + font-family: Noto IKEA Simplified Chinese; + font-style: normal; + font-weight: bold; + font-size: 14px; + line-height: 21px; + height: 23px; + display: flex; + align-items: center; + text-align: center; + + /* Font color/深灰 */ + + color: #6a6665; + margin-top: 8px; +} +.desc { + margin-top: 70px; + width: calc(100vw - 102px); + height: 198px; + text-align: left; +} +.title { + font-family: Noto IKEA Simplified Chinese; + font-style: normal; + font-weight: bold; + font-size: 14px; + line-height: 21px; + color: #474747; +} +.p { + font-family: Noto IKEA Simplified Chinese; + font-style: normal; + font-weight: normal; + font-size: 14px; + line-height: 21px; + color: #474747; + margin-top: 16px; + text-indent: 2em; +} +.og { + color: #ef9617; +} +.btns { + width: calc(100vw - 70px); + display: flex; + justify-content: space-between; +} +.btn1 { + width: 140px; + height: 50px; + font-family: Noto IKEA Simplified Chinese; + font-style: normal; + font-weight: bold; + font-size: 16px; + line-height: 50px; + text-align: center; + color: #767571; + border: 1px solid #b3aea7; + box-sizing: border-box; + border-radius: 100px; +} + +.btn2 { + width: 140px; + height: 50px; + font-family: Noto IKEA Simplified Chinese; + font-style: normal; + font-weight: bold; + font-size: 16px; + line-height: 50px; + text-align: center; + color: #474747; + border: 1px solid #ffdb00; + box-sizing: border-box; + background: #ffdb00; + box-shadow: 0px 4px 20px rgba(215, 148, 87, 0.33); + border-radius: 30px; +} diff --git a/pages/agreement/logo.png b/pages/agreement/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..98c475b8eb8580239ab38b3683a9db8e2fbce783 GIT binary patch literal 2911 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 + + {{shop.name}} + + {{shop.floorName}} + {{shop.shopFormat}} + + + + \ No newline at end of file diff --git a/pages/destination/destination.wxss b/pages/destination/destination.wxss new file mode 100644 index 0000000..918617b --- /dev/null +++ b/pages/destination/destination.wxss @@ -0,0 +1,70 @@ +.destination { + position: fixed; + height: 110px; + left: 10px; + right: 10px; + bottom: 116px; + background: #ffffff; + z-index: 12 !important; + border-radius: 18px 18px 0 0; +} +.destination > .logo { + position: absolute; + top: 14px; + left: 14px; + width: 80px; + height: 80px; + background: #ffffff; + border-radius: 6px; + padding: 8px; + box-sizing: border-box; + box-shadow: 0px 8px 16px rgba(104, 110, 127, 0.08); +} +.destination > .name { + position: absolute; + top: 24px; + left: 108px; + font-family: PingFang SC; + font-style: normal; + font-weight: 600; + font-size: 24px; + line-height: 34px; + + color: #323337; +} +.destination > .name.noicon { + left: 14px; +} +.destination > .meta { + display: flex; + align-items: center; + justify-content: space-between; + position: absolute; + top: 68px; + left: 108px; + right: 20px; + font-family: PingFang SC; + font-style: normal; + font-weight: 500; + font-size: 14px; + line-height: 20px; + color: #a1a5b3; +} +.destination > .meta.noicon { + left: 14px; +} +.destination > .border { + position: absolute; + left: 20px; + right: 20px; + bottom: 0; + border-top: 1px dashed #edeff3; +} +.destination > .exit { + position: absolute; + top: 16px; + left: auto; + right: 16px; + width: 24px; + height: 24px; +} diff --git a/pages/detail/index.js b/pages/detail/index.js new file mode 100644 index 0000000..cbb62cc --- /dev/null +++ b/pages/detail/index.js @@ -0,0 +1,51 @@ +// pages/detail/index.js +Page({ + /** + * 页面的初始数据 + */ + data: { + url: "", + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad({ url }) { + this.setData({ url: decodeURIComponent(url) }); + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() {}, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() {}, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() {}, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() {}, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() {}, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() {}, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() {}, +}); diff --git a/pages/detail/index.json b/pages/detail/index.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/pages/detail/index.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/detail/index.wxml b/pages/detail/index.wxml new file mode 100644 index 0000000..fa399ce --- /dev/null +++ b/pages/detail/index.wxml @@ -0,0 +1,2 @@ + + > \ No newline at end of file diff --git a/pages/detail/index.wxss b/pages/detail/index.wxss new file mode 100644 index 0000000..cc42ee9 --- /dev/null +++ b/pages/detail/index.wxss @@ -0,0 +1 @@ +/* pages/detail/index.wxss */ \ No newline at end of file diff --git a/pages/gesture/gesture.js b/pages/gesture/gesture.js new file mode 100644 index 0000000..29e6960 --- /dev/null +++ b/pages/gesture/gesture.js @@ -0,0 +1,17 @@ +Component({ + options: { + addGlobalClass: true, + multipleSlots: true, + }, + properties: { + propagation: { + type: Boolean, + value: true, + }, + requireFailure: { + type: Boolean, + value: true, + }, + }, + methods: {} +}) diff --git a/pages/gesture/gesture.json b/pages/gesture/gesture.json new file mode 100644 index 0000000..a2006db --- /dev/null +++ b/pages/gesture/gesture.json @@ -0,0 +1,5 @@ + +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/gesture/gesture.wxml b/pages/gesture/gesture.wxml new file mode 100644 index 0000000..eb35c79 --- /dev/null +++ b/pages/gesture/gesture.wxml @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/pages/gesture/gesture.wxs b/pages/gesture/gesture.wxs new file mode 100644 index 0000000..8598899 --- /dev/null +++ b/pages/gesture/gesture.wxs @@ -0,0 +1,263 @@ + +/* eslint-disable */ +// @ts-ignore +function getLen(v) { + return Math.sqrt(v.x * v.x + v.y * v.y) +} +function dot(v1, v2) { + return v1.x * v2.x + v1.y * v2.y +} +function getAngle(v1, v2) { + var mr = getLen(v1) * getLen(v2) + if (mr === 0) return 0 + var r = dot(v1, v2) / mr + if (r > 1) r = 1 + return Math.acos(r) +} +function cross(v1, v2) { + return v1.x * v2.y - v2.x * v1.y +} +function getRotateAngle(v1, v2) { + var angle = getAngle(v1, v2) + if (cross(v1, v2) > 0) { + angle *= -1 + } + return angle * 180 / Math.PI +} +function _swipeDirection(x1, x2, y1, y2) { + if (Math.abs(x1 - x2) >= Math.abs(y1 - y2)) { + return x1 - x2 > 0 ? 'Left' : 'Right' + } else { + return y1 - y2 > 0 ? 'Up' : 'Down' + } +} +// 实现setTimeout功能 +var setTimeout = function(callback, interval, instance) { + var now = Date.now + var stime = now() + var loop = function() { + if (now() - stime >= interval) { + callback() + } else { + instance.requestAnimationFrame(loop) + } + } + instance.requestAnimationFrame(loop) +} +var start = function(event, ownerInstance) { + var instance = event.instance; + var State = instance.getState() + if(!State._init) { + State.preV = {x: null, y: null} + State.pinchStartLen = null + State.zoom = 1 + State.isDoubleTap = false + State.delta = null + State.last = null + State.now = null + State.x1 = State.x2 = State.y1 = State.y2 = null + State.preTapPosition = {x: null, y: null} + // 控制定时器 + State._cancelLongTap = function() { + State.longTapTimeout = false + } + State._cancelSingleTap = function() { + State.singleTapTimeout = false + } + State._tapTimeout = function() { + State.tapTimeout = false + } + State._swipeTimeout = function() { + State.swipeTimeout = false + } + State._init = true // 表示已经初始化完成 + } + State.tapTimeout = true + State.singleTapTimeout = true + State.longTapTimeout = true + State.swipeTimeout = true + State.now = Date.now() + State.x1 = event.touches[0].pageX + State.y1 = event.touches[0].pageY + State.delta = State.now - (State.last || State.now) + // 触发 touchStart 事件 + ownerInstance.triggerEvent('touchStart', event) + if (State.preTapPosition.x !== null) { + State.isDoubleTap = (State.delta > 0 && + State.delta <= 250 && + Math.abs(State.preTapPosition.x - State.x1) < 30 && + Math.abs(State.preTapPosition.y - State.y1) < 30) + if (State.isDoubleTap) { + State._cancelSingleTap() + } + } + State.preTapPosition.x = State.x1 + State.preTapPosition.y = State.y1 + State.last = State.now + var preV = State.preV + var len = event.touches.length + if (len > 1) { + State._cancelLongTap() + State._cancelSingleTap() + var v = {x: event.touches[1].pageX - State.x1, y: event.touches[1].pageY - State.y1} + preV.x = v.x + preV.y = v.y + State.pinchStartLen = getLen(preV) + // 触发 multipointStart 多指点按 事件 + ownerInstance.triggerEvent('multipointStart', event) + } + State._preventTap = false + setTimeout(function () { + // 触发 longTap(长按) 事件 + if(State.longTapTimeout) { + ownerInstance.triggerEvent('longTap', event) + State._preventTap = true + State.longTapTimeout = true + } + }, 750, instance) + + if (!instance.getDataset()['propagation']) return false +} +var move = function(event, ownerInstance) { + var instance = event.instance; + var State = instance.getState() + var preV = State.preV + var len = event.touches.length + var currentX = event.touches[0].pageX + var currentY = event.touches[0].pageY + State.isDoubleTap = false + if (len > 1) { + var sCurrentX = event.touches[1].pageX + var sCurrentY = event.touches[1].pageY + var v = {x: event.touches[1].pageX - currentX, y: event.touches[1].pageY - currentY} + if (preV.x !== null) { + if (State.pinchStartLen > 0) { + event.zoom = getLen(v) / State.pinchStartLen + // 触发 pinch 事件 + ownerInstance.triggerEvent('pinch', event) + } + event.angle = getRotateAngle(v, preV) + // 触发 rotate 事件 + ownerInstance.triggerEvent('rotate', event) + } + preV.x = v.x + preV.y = v.y + if (State.x2 !== null && State.sx2 !== null) { + event.deltaX = (currentX - State.x2 + sCurrentX - State.sx2) / 2 + event.deltaY = (currentY - State.y2 + sCurrentY - State.sy2) / 2 + } else { + event.deltaX = 0 + event.deltaY = 0 + } + // 触发 twoFingerPressMove 事件 + ownerInstance.triggerEvent('twoFingerPressMove', event) + State.sx2 = sCurrentX + State.sy2 = sCurrentY + } else { + if (State.x2 !== null) { + event.deltaX = currentX - State.x2 + event.deltaY = currentY - State.y2 + // move事件中添加对当前触摸点到初始触摸点的判断, + // 如果曾经大于过某个距离(比如10),就认为是移动到某个地方又移回来,应该不再触发tap事件才对。 + var movedX = Math.abs(State.x1 - State.x2) + var movedY = Math.abs(State.y1 - State.y2) + if (movedX > 10 || movedY > 10) { + State._preventTap = true + } + } else { + event.deltaX = 0 + event.deltaY = 0 + } + // 触发 pressMove 单指点按移动 事件 + ownerInstance.triggerEvent('pressMove', event) + } + // 触发 touchMove 移动事件 + ownerInstance.triggerEvent('touchMove', event) + State._cancelLongTap() + State.x2 = currentX + State.y2 = currentY + // if (len > 1) { + // // event.preventDefault() + // } + if (!instance.getDataset()['propagation']) return false +} +var end = function(event, ownerInstance) { + var instance = event.instance; + var State = instance.getState() + State._cancelLongTap() + if (event.touches.length < 2) { + // 触发 multipointEnd 多指点按结束 事件 + ownerInstance.triggerEvent('multipointEnd', event) + State.sx2 = State.sy2 = null + } + // swipe + if ((State.x2 && Math.abs(State.x1 - State.x2) > 30) || + (State.y2 && Math.abs(State.y1 - State.y2) > 30)) { + event.direction = _swipeDirection(State.x1, State.x2, State.y1, State.y2) + setTimeout(function () { + if(State.swipeTimeout) { + // 触发 swipe 滑动 上下左右 事件 + ownerInstance.triggerEvent('swipe', event) + State.swipeTimeout = true + } + }, 0, instance) + } else { + setTimeout(function () { + if(State.tapTimeout) { + if (!State._preventTap) { + // 触发 tap 事件 + ownerInstance.triggerEvent('tap', event) + } + // trigger double tap immediately + if (State.isDoubleTap) { + // 触发 doubleTap 事件 + ownerInstance.triggerEvent('doubleTap', event) + State.isDoubleTap = false + } + State.tapTimeout = true + } + }, 0, instance) + if (!State.isDoubleTap) { + if (instance.getDataset()['requirefailure']) { // requireFailure + setTimeout(function () { + if(State.singleTapTimeout) { + // 触发 singleTap 事件 + ownerInstance.triggerEvent('singleTap', event) + State.singleTapTimeout = true + } + }, 250, instance) + } else { + ownerInstance.triggerEvent('singleTap', event) + State.singleTapTimeout = true + } + } + } + // 触发 touchEnd 事件 + ownerInstance.triggerEvent('touchEnd', event) + State.preV.x = 0 + State.preV.y = 0 + State.zoom = 1 + State.pinchStartLen = null + State.x1 = State.x2 = null + State.y1 = State.y2 = null + + if (!instance.getDataset()['propagation']) return false +} +var cancel = function(event, ownerInstance) { + var instance = event.instance; + var State = instance.getState() + State._cancelLongTap() + State._cancelSingleTap() + State._tapTimeout() + State._swipeTimeout() + // 触发 touchCancel 事件 + ownerInstance.triggerEvent('touchCancel', event) + + if (!instance.getDataset()['propagation']) return false +} +module.exports = { + start: start, + move: move, + end: end, + cancel: cancel +} diff --git a/pages/h5map/index.js b/pages/h5map/index.js new file mode 100644 index 0000000..62b8ee0 --- /dev/null +++ b/pages/h5map/index.js @@ -0,0 +1,120 @@ +import { cdnUrl, code } from "../../getMapData"; +const baseUrl = `${cdnUrl}/test-projects/${code}/index.html`; + +Page({ + /** + * 页面的初始数据 + */ + data: { + url: "", + }, + + /** + * 生命周期函数--监听页面加载 + */ + async onLoad({ q = "", e = "", s = "", plate = "" } = {}) { + if (q) { + q = decodeURIComponent(q); + const kvs = q + .split("?") + .pop() + .split("&") + .map((kv) => kv.split("=")); + s = kvs.find(([k]) => k === "s") ? kvs.find(([k]) => k === "s")[1] : ""; + e = kvs.find(([k]) => k === "e") ? kvs.find(([k]) => k === "e")[1] : ""; + } + const app = getApp(); + const openid = app.globalData.openid + ? app.globalData.openid + : await new Promise((resolve) => app.onOpenid(resolve)); + const { memberID, isShopMember } = app.globalData; + if (memberID) { + return this.setData({ + url: `${baseUrl}?t=${new Date().getTime()}#/?openid=${openid}&memberID=${memberID}${ + isShopMember ? "&isShop=true" : "" + }${e ? "&e=" + e : ""}${e && s ? "&s=" + s : ""}${ + plate ? "&plate=" + plate : "" + }`, + }); + } + if (!openid) { + console.warn("获取openid失败"); + app.globalData.userDeny = true; + } + if (app.globalData.userDeny) { + return this.setData({ + url: `${baseUrl}?t=${new Date().getTime()}#/?openid=${openid}${ + e ? "&e=" + e : "" + }${e && s ? "&s=" + s : ""}${plate ? "&plate=" + plate : ""}`, + }); + } + return wx.redirectTo({ + url: "/pages/login/index", + }); + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () {}, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () {}, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () {}, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () {}, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () {}, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () {}, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage({ webViewUrl: q }) { + let e; + let name; + if (q) { + q = decodeURIComponent(q); + const kvs = q + .split("?") + .pop() + .split("&") + .map((kv) => kv.split("=")); + console.log(kvs); + if (kvs.find(([k]) => k === "e")) { + e = kvs.find(([k]) => k === "e")[1]; + } + if (kvs.find(([k]) => k === "name")) { + name = kvs.find(([k]) => k === "name")[1]; + } + } + + return name + ? { + title: name, + path: `/pages/h5map/index?e=${e}`, + imageUrl: "/pages/h5map/share.png", + } + : { + title: "", + path: "/pages/h5map/index", + imageUrl: "/pages/h5map/share.png", + }; + }, +}); diff --git a/pages/h5map/index.json b/pages/h5map/index.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/pages/h5map/index.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/h5map/index.wxml b/pages/h5map/index.wxml new file mode 100644 index 0000000..fa399ce --- /dev/null +++ b/pages/h5map/index.wxml @@ -0,0 +1,2 @@ + + > \ No newline at end of file diff --git a/pages/h5map/index.wxss b/pages/h5map/index.wxss new file mode 100644 index 0000000..f63f996 --- /dev/null +++ b/pages/h5map/index.wxss @@ -0,0 +1 @@ +/* pages/h5map/index.wxss */ \ No newline at end of file diff --git a/pages/h5map/share1.png b/pages/h5map/share1.png new file mode 100644 index 0000000000000000000000000000000000000000..b326cd477909e652dccd325dc5b974dd2b986965 GIT binary patch literal 34747 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 literal 0 HcmV?d00001 diff --git a/pages/h5map/share2.png b/pages/h5map/share2.png new file mode 100644 index 0000000000000000000000000000000000000000..76c78318a0a86f875d3510bb48a2928ac3f884cd GIT binary patch literal 34399 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 literal 0 HcmV?d00001 diff --git a/pages/index/VPASSDK-1.2.4.js b/pages/index/VPASSDK-1.2.4.js new file mode 100644 index 0000000..33ea0c6 --- /dev/null +++ b/pages/index/VPASSDK-1.2.4.js @@ -0,0 +1 @@ +var VPASSDK=function(t){var e={};function i(o){if(e[o])return e[o].exports;var s=e[o]={i:o,l:!1,exports:{}};return t[o].call(s.exports,s,s.exports,i),s.l=!0,s.exports}return i.m=t,i.c=e,i.d=function(t,e,o){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(i.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var s in t)i.d(o,s,function(e){return t[e]}.bind(null,s));return o},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=39)}([function(t,e,i){var o=t.exports,s=i(17);o.LongBits=i(11),o.Long=i(32),o.pool=i(33),o.float=i(34),o.asPromise=i(35),o.EventEmitter=i(36),o.path=i(37),o.base64=i(18),o.utf8=i(8),o.compareFieldsById=function(t,e){return t.id-e.id},o.toArray=function(t){if(t){for(var e=Object.keys(t),i=new Array(e.length),o=0;o-1;--i)if(1===e[t[i]]&&void 0!==this[t[i]]&&null!==this[t[i]])return t[i]}},o.oneOfSetter=function(t){return function(e){for(var i=0;i=65536&&i<=1114111?(o.push(i>>18&7|240),o.push(i>>12&63|128),o.push(i>>6&63|128),o.push(63&i|128)):i>=2048&&i<=65535?(o.push(i>>12&15|224),o.push(i>>6&63|128),o.push(63&i|128)):i>=128&&i<=2047?(o.push(i>>6&31|192),o.push(63&i|128)):o.push(255&i);return o},o.byteToString=function(t){if("string"==typeof t)return t;for(var e="",i=t,o=0;o-1;--i)if(1===e[t[i]]&&void 0!==this[t[i]]&&null!==this[t[i]])return t[i]}}}(this._oneofsArray[i].oneof);o[s]={get:r.getter,set:r.setter}}i&&Object.defineProperties(t.prototype,o)}}}),v.generateConstructor=function(t){return function(e){for(var i,o=0;o=e)return!0;return!1},c.isReservedName=function(t,e){if(t)for(var i=0;i0;){var o=t.shift();if(i.nested&&i.nested[o]){if(!((i=i.nested[o])instanceof c))throw Error("path conflicts with non-namespace objects")}else i.add(i=new c(o))}return e&&i.addJSON(e),i},c.prototype.resolveAll=function(){for(var t=this.nestedArray,e=0;e-1)return o}else if(o instanceof c&&(o=o.lookup(t.slice(1),e,!0)))return o}else for(var s=0;s-1&&this.oneof.splice(e,1),t.partOf=null,this},r.prototype.onAdd=function(t){n.prototype.onAdd.call(this,t);for(var e=0;e191&&o<224?n[r++]=(31&o)<<6|63&t[e++]:o>239&&o<365?(o=((7&o)<<18|(63&t[e++])<<12|(63&t[e++])<<6|63&t[e++])-65536,n[r++]=55296+(o>>10),n[r++]=56320+(1023&o)):n[r++]=(15&o)<<12|(63&t[e++])<<6|63&t[e++],r>8191&&((s||(s=[])).push(String.fromCharCode.apply(String,n)),r=0);return s?(r&&s.push(String.fromCharCode.apply(String,n.slice(0,r))),s.join("")):String.fromCharCode.apply(String,n.slice(0,r))},o.write=function(t,e,i){for(var o,s,n=i,r=0;r>6|192,e[i++]=63&o|128):55296==(64512&o)&&56320==(64512&(s=t.charCodeAt(r+1)))?(o=65536+((1023&o)<<10)+(1023&s),++r,e[i++]=o>>18|240,e[i++]=o>>12&63|128,e[i++]=o>>6&63|128,e[i++]=63&o|128):(e[i++]=o>>12|224,e[i++]=o>>6&63|128,e[i++]=63&o|128);return i-n}},function(t,e,i){t.exports=d;var o=i(6);((d.prototype=Object.create(o.prototype)).constructor=d).className="Root";var s,n,r,a=i(2),l=i(1),h=i(7),c=i(0);function d(t){o.call(this,"",t),this.deferred=[],this.files=[],this.names=[]}function f(){}d.fromJSON=function(t,e){return t="string"==typeof t?JSON.parse(t):t,e||(e=new d),t.options&&e.setOptions(t.options),e.addJSON(t.nested)},d.prototype.resolvePath=c.path.resolve,d.prototype.parseFromPbString=function t(e,i,o){"function"==typeof i&&(o=i,i=void 0);var s=this;if(!o)return c.asPromise(t,s,e,i);var a=null;if("string"==typeof e)a=JSON.parse(e);else{if("object"!=typeof e)return void console.log("pb格式转化失败");a=e}function l(t,e){if(o){var i=o;o=null,i(t,e)}}function h(t,e){try{if(c.isString(e)&&"{"===e.charAt(0)&&(e=JSON.parse(e)),c.isString(e)){n.filename=t;var o,r=n(e,s,i),a=0;if(r.imports)for(;a-1||(s.names.push(t),t in r&&h(t,r[t]))}h(a.name,a.pbJsonStr)},d.prototype.load=function t(e,i,o){"function"==typeof i&&(o=i,i=void 0);var s=this;if(!o)return c.asPromise(t,s,e,i);var a=o===f;function l(t,e){if(o){var i=o;if(o=null,a)throw t;i(t,e)}}function h(t,e){try{if(c.isString(e)&&"{"===e.charAt(0)&&(e=JSON.parse(e)),c.isString(e)){n.filename=t;var o,r=n(e,s,i),h=0;if(r.imports)for(;h-1){var n=t.substring(i);n in r&&(t=n)}if(!(s.files.indexOf(t)>-1))if(s.files.push(t),t in r)a?h(t,r[t]):(++u,setTimeout((function(){--u,h(t,r[t])})));else if(a){var d;try{d=c.fs.readFileSync(t).toString("utf8")}catch(t){return void(e||l(t))}h(t,d)}else++u,c.fetch(t,(function(i,n){--u,o&&(i?e?u||l(null,s):l(i):h(t,n))}))}var u=0;c.isString(e)&&(e=[e]);for(var p,y=0;y-1&&this.deferred.splice(e,1)}}else if(t instanceof l)u.test(t.name)&&delete t.parent[t.name];else if(t instanceof o){for(var i=0;i>>0,this.hi=e>>>0}t.exports=i;var o=i.zero=new i(0,0);o.toNumber=function(){return 0},o.zzEncode=o.zzDecode=function(){return this},o.length=function(){return 1};var s=i.zeroHash="\0\0\0\0\0\0\0\0";i.fromNumber=function(t){if(0===t)return o;var e=t<0;e&&(t=-t);var s=t>>>0,n=(t-s)/4294967296>>>0;return e&&(n=~n>>>0,s=~s>>>0,++s>4294967295&&(s=0,++n>4294967295&&(n=0))),new i(s,n)},i.from=function(t){return"number"==typeof t?i.fromNumber(t):"string"==typeof t||t instanceof String?i.fromNumber(parseInt(t,10)):t.low||t.high?new i(t.low>>>0,t.high>>>0):o},i.prototype.toNumber=function(t){if(!t&&this.hi>>>31){var e=1+~this.lo>>>0,i=~this.hi>>>0;return e||(i=i+1>>>0),-(e+4294967296*i)}return this.lo+4294967296*this.hi},i.prototype.toLong=function(t){return{low:0|this.lo,high:0|this.hi,unsigned:Boolean(t)}};var n=String.prototype.charCodeAt;i.fromHash=function(t){return t===s?o:new i((n.call(t,0)|n.call(t,1)<<8|n.call(t,2)<<16|n.call(t,3)<<24)>>>0,(n.call(t,4)|n.call(t,5)<<8|n.call(t,6)<<16|n.call(t,7)<<24)>>>0)},i.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},i.prototype.zzEncode=function(){var t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this},i.prototype.zzDecode=function(){var t=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this},i.prototype.length=function(){var t=this.lo,e=(this.lo>>>28|this.hi<<4)>>>0,i=this.hi>>>24;return 0===i?0===e?t<16384?t<128?1:2:t<2097152?3:4:e<16384?e<128?5:6:e<2097152?7:8:i<128?9:10}},function(t,e,i){t.exports=r;var o,s,n=i(2);function r(t,e,i,o,r,a){if(n.call(this,t,e,o,void 0,void 0,r,a),!s.isString(i))throw TypeError("keyType must be a string");this.keyType=i,this.resolvedKeyType=null,this.map=!0}((r.prototype=Object.create(n.prototype)).constructor=r).className="MapField",r.fromJSON=function(t,e){return new r(t,e.id,e.keyType,e.type,e.options,e.comment)},r.prototype.toJSON=function(t){var e=!!t&&Boolean(t.keepComments);return s.toObject(["keyType",this.keyType,"type",this.type,"id",this.id,"extend",this.extend,"options",this.options,"comment",e?this.comment:void 0])},r.prototype.resolve=function(){if(this.resolved)return this;if(void 0===o.mapKey[this.keyType])throw Error("invalid key type: "+this.keyType);return n.prototype.resolve.call(this)},r.d=function(t,e,i){return"function"==typeof i?i=s.decorateType(i).name:i&&"object"==typeof i&&(i=s.decorateEnum(i).name),function(o,n){s.decorateType(o.constructor).add(new r(n,t,e,i))}},r._configure=function(){o=i(5),s=i(0)}},function(t,e,i){"use strict";t.exports=n;var o,s=i(4);function n(t,e,i,n,r,a,l,h){if(o.isObject(r)?(l=r,r=a=void 0):o.isObject(a)&&(l=a,a=void 0),void 0!==e&&!o.isString(e))throw TypeError("type must be a string");if(!o.isString(i))throw TypeError("requestType must be a string");if(!o.isString(n))throw TypeError("responseType must be a string");s.call(this,t,l),this.type=e||"rpc",this.requestType=i,this.requestStream=!!r||void 0,this.responseType=n,this.responseStream=!!a||void 0,this.resolvedRequestType=null,this.resolvedResponseType=null,this.comment=h}((n.prototype=Object.create(s.prototype)).constructor=n).className="Method",n.fromJSON=function(t,e){return new n(t,e.type,e.requestType,e.responseType,e.requestStream,e.responseStream,e.options,e.comment)},n.prototype.toJSON=function(t){var e=!!t&&Boolean(t.keepComments);return o.toObject(["type","rpc"!==this.type&&this.type||void 0,"requestType",this.requestType,"requestStream",this.requestStream,"responseType",this.responseType,"responseStream",this.responseStream,"options",this.options,"comment",e?this.comment:void 0])},n.prototype.resolve=function(){return this.resolved?this:(this.resolvedRequestType=this.parent.lookupType(this.requestType),this.resolvedResponseType=this.parent.lookupType(this.responseType),s.prototype.resolve.call(this))},n._configure=function(){o=i(0)}},function(t,e,i){"use strict";var o;function s(t){if(t)for(var e=Object.keys(t),i=0;i>16)+(e>>16)+(i>>16)<<16|65535&i}function r(t,e,i,o,s,r){return n((a=n(n(e,t),n(o,r)))<<(l=s)|a>>>32-l,i);var a,l}function a(t,e,i,o,s,n,a){return r(e&i|~e&o,t,e,s,n,a)}function l(t,e,i,o,s,n,a){return r(e&o|i&~o,t,e,s,n,a)}function h(t,e,i,o,s,n,a){return r(e^i^o,t,e,s,n,a)}function c(t,e,i,o,s,n,a){return r(i^(e|~o),t,e,s,n,a)}function d(t,e){var i,o,s,r,d;t[e>>5]|=128<>>9<<4)]=e;var f=1732584193,u=-271733879,p=-1732584194,y=271733878;for(i=0;i>5]>>>e%32&255);return i}function u(t){var e,i=[];for(i[(t.length>>2)-1]=void 0,e=0;e>5]|=(255&t.charCodeAt(e/8))<>>4&15)+"0123456789abcdef".charAt(15&e);return o}function y(t){return unescape(encodeURIComponent(t))}function m(t){return function(t){return f(d(u(t),8*t.length))}(y(t))}function g(t,e){return function(t,e){var i,o,s=u(t),n=[],r=[];for(n[15]=r[15]=void 0,s.length>16&&(s=d(s,8*t.length)),i=0;i<16;i+=1)n[i]=909522486^s[i],r[i]=1549556828^s[i];return o=d(n.concat(u(e)),512+8*e.length),f(d(r.concat(o),640))}(y(t),y(e))}function v(t,e,i){return e?i?g(e,t):p(g(e,t)):i?m(t):p(m(t))}void 0===(o=function(){return v}.call(e,i,e,t))||(t.exports=o)}()},function(t,e,i){t.exports=h;var o,s=i(0),n=i(8);function r(t,e,i){this.fn=t,this.len=e,this.next=void 0,this.val=i}function a(){}function l(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}function h(){this.len=0,this.head=new r(a,0,0),this.tail=this.head,this.states=null}function c(t,e,i){e[i]=255&t}function d(t,e){this.len=t,this.next=void 0,this.val=e}function f(t,e,i){for(;t.hi;)e[i++]=127&t.lo|128,t.lo=(t.lo>>>7|t.hi<<25)>>>0,t.hi>>>=7;for(;t.lo>127;)e[i++]=127&t.lo|128,t.lo=t.lo>>>7;e[i++]=t.lo}function u(t,e,i){e[i]=255&t,e[i+1]=t>>>8&255,e[i+2]=t>>>16&255,e[i+3]=t>>>24}h.create=s.Buffer?function(){return(h.create=function(){return new(void 0)})()}:function(){return new h},h.alloc=function(t){return new s.Array(t)},s.Array!==Array&&(h.alloc=s.pool(h.alloc,s.Array.prototype.subarray)),h.prototype._push=function(t,e,i){return this.tail=this.tail.next=new r(t,e,i),this.len+=e,this},d.prototype=Object.create(r.prototype),d.prototype.fn=function(t,e,i){for(;t>127;)e[i++]=127&t|128,t>>>=7;e[i]=t},h.prototype.uint32=function(t){return this.len+=(this.tail=this.tail.next=new d((t>>>=0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this},h.prototype.int32=function(t){return t<0?this._push(f,10,o.fromNumber(t)):this.uint32(t)},h.prototype.sint32=function(t){return this.uint32((t<<1^t>>31)>>>0)},h.prototype.uint64=function(t){var e=o.from(t);return this._push(f,e.length(),e)},h.prototype.int64=h.prototype.uint64,h.prototype.sint64=function(t){var e=o.from(t).zzEncode();return this._push(f,e.length(),e)},h.prototype.bool=function(t){return this._push(c,1,t?1:0)},h.prototype.fixed32=function(t){return this._push(u,4,t>>>0)},h.prototype.sfixed32=h.prototype.fixed32,h.prototype.fixed64=function(t){var e=o.from(t);return this._push(u,4,e.lo)._push(u,4,e.hi)},h.prototype.sfixed64=h.prototype.fixed64,h.prototype.float=function(t){return this._push(s.float.writeFloatLE,4,t)},h.prototype.double=function(t){return this._push(s.float.writeDoubleLE,8,t)};var p=s.Array.prototype.set?function(t,e,i){e.set(t,i)}:function(t,e,i){for(var o=0;o>>0;if(!e)return this._push(c,1,0);if(s.isString(t)){var i=h.alloc(e=n.length(t));n.write(t,i,0),t=i}return this.uint32(e)._push(p,e,t)},h.prototype.string=function(t){var e=n.length(t);return e?this.uint32(e)._push(n.write,e,t):this._push(c,1,0)},h.prototype.fork=function(){return this.states=new l(this),this.head=this.tail=new r(a,0,0),this.len=0,this},h.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new r(a,0,0),this.len=0),this},h.prototype.ldelim=function(){var t=this.head,e=this.tail,i=this.len;return this.reset().uint32(i),i&&(this.tail.next=t.next,this.tail=e,this.len+=i),this},h.prototype.finish=function(){for(var t=this.head.next,e=this.constructor.alloc(this.len),i=0;t;)t.fn(t.val,e,i),i+=t.len,t=t.next;return e},h._configure=function(){o=i(11),i(18),n=i(8)}},function(t,e){t.exports={}},function(t,e,i){"use strict";var o=t.exports;o.length=function(t){var e=t.length;if(!e)return 0;for(var i=0;--e%4>1&&"="===t.charAt(e);)++i;return Math.ceil(3*t.length)/4-i};for(var s=new Array(64),n=new Array(123),r=0;r<64;)n[s[r]=r<26?r+65:r<52?r+71:r<62?r-4:r-59|43]=r++;o.encode=function(t,e,i){for(var o,n=null,r=[],a=0,l=0;e>2],o=(3&h)<<4,l=1;break;case 1:r[a++]=s[o|h>>4],o=(15&h)<<2,l=2;break;case 2:r[a++]=s[o|h>>6],r[a++]=s[63&h],l=0}a>8191&&((n||(n=[])).push(String.fromCharCode.apply(String,r)),a=0)}return l&&(r[a++]=s[o],r[a++]=61,1===l&&(r[a++]=61)),n?(a&&n.push(String.fromCharCode.apply(String,r.slice(0,a))),n.join("")):String.fromCharCode.apply(String,r.slice(0,a))};o.decode=function(t,e,i){for(var o,s=i,r=0,a=0;a1)break;if(void 0===(l=n[l]))throw Error("invalid encoding");switch(r){case 0:o=l,r=1;break;case 1:e[i++]=o<<2|(48&l)>>4,o=l,r=2;break;case 2:e[i++]=(15&o)<<4|(60&l)>>2,o=l,r=3;break;case 3:e[i++]=(3&o)<<6|l,r=0}}if(1===r)throw Error("invalid encoding");return i-s},o.test=function(t){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(t)}},function(t,e,i){"use strict";var o,s,n,r,a,l,h,c,d,f,u;t.exports=T,T.filename=null,T.defaults={keepCase:!1};var p=/^[1-9][0-9]*$/,y=/^-?[1-9][0-9]*$/,m=/^0[x][0-9a-fA-F]+$/,g=/^-?0[x][0-9a-fA-F]+$/,v=/^0[0-7]+$/,w=/^-?0[0-7]+$/,b=/^(?![eE])[0-9]*(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?$/,_=/^[a-zA-Z_][a-zA-Z_0-9]*$/,x=/^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)+$/,P=/^(?:\.[a-zA-Z][a-zA-Z_0-9]*)+$/;function T(t,e,i){e instanceof s||(i=e,e=new s),i||(i=T.defaults);var A,M,C,S,E,O=o(t,i.alternateCommentMode||!1),I=O.next,k=O.push,R=O.peek,D=O.skip,L=O.cmnt,N=!0,V=!1,F=e,B=i.keepCase?function(t){return t}:u.camelCase;function j(t,e,i){var o=T.filename;return i||(T.filename=null),Error("illegal "+(e||"token")+" '"+t+"' ("+(o?o+", ":"")+"line "+O.line+")")}function W(){var t,e=[];do{if('"'!==(t=I())&&"'"!==t)throw j(t);e.push(I()),D(t),t=R()}while('"'===t||"'"===t);return e.join("")}function z(t){var e=I();switch(e){case"'":case'"':return k(e),W();case"true":case"TRUE":return!0;case"false":case"FALSE":return!1}try{return function(t,e){var i=1;"-"===t.charAt(0)&&(i=-1,t=t.substring(1));switch(t){case"inf":case"INF":case"Inf":return i*(1/0);case"nan":case"NAN":case"Nan":case"NaN":return NaN;case"0":return 0}if(p.test(t))return i*parseInt(t,10);if(m.test(t))return i*parseInt(t,16);if(v.test(t))return i*parseInt(t,8);if(b.test(t))return i*parseFloat(t);throw j(t,"number",e)}(e,!0)}catch(i){if(t&&x.test(e))return e;throw j(e,"value")}}function U(t,e){var i,o;do{!e||'"'!==(i=R())&&"'"!==i?t.push([o=H(I()),D("to",!0)?H(I()):o]):t.push(W())}while(D(",",!0));D(";")}function H(t,e){switch(t){case"max":case"MAX":case"Max":return 536870911;case"0":return 0}if(!e&&"-"===t.charAt(0))throw j(t,"id");if(y.test(t))return parseInt(t,10);if(g.test(t))return parseInt(t,16);if(w.test(t))return parseInt(t,8);throw j(t,"id")}function q(){if(void 0!==A)throw j("package");if(A=I(),!x.test(A))throw j(A,"name");F=F.define(A),D(";")}function J(){var t,e=R();switch(e){case"weak":t=C||(C=[]),I();break;case"public":I();default:t=M||(M=[])}e=W(),D(";"),t.push(e)}function X(){if(D("="),S=W(),!(V="proto3"===S)&&"proto2"!==S)throw j(S,"syntax");D(";")}function $(t,e){switch(e){case"option":return Y(t,e),D(";"),!0;case"message":return function(t,e){if(!_.test(e=I()))throw j(e,"type name");var i=new n(e);Z(i,(function(t){if(!$(i,t))switch(t){case"map":!function(t){D("<");var e=I();if(void 0===f.mapKey[e])throw j(e,"type");D(",");var i=I();if(!x.test(i))throw j(i,"type");D(">");var o=I();if(!_.test(o))throw j(o,"name");D("=");var s=new a(B(o),H(I()),e,i);Z(s,(function(t){if("option"!==t)throw j(t);Y(s,t),D(";")}),(function(){tt(s)})),t.add(s)}(i);break;case"required":case"optional":case"repeated":G(i,t);break;case"oneof":!function(t,e){if(!_.test(e=I()))throw j(e,"name");var i=new l(B(e));Z(i,(function(t){"option"===t?(Y(i,t),D(";")):(k(t),G(i,"optional"))})),t.add(i)}(i,t);break;case"extensions":U(i.extensions||(i.extensions=[]));break;case"reserved":U(i.reserved||(i.reserved=[]),!0);break;default:if(!V||!x.test(t))throw j(t);k(t),G(i,"optional")}})),t.add(i)}(t,e),!0;case"enum":return function(t,e){if(!_.test(e=I()))throw j(e,"name");var i=new h(e);Z(i,(function(t){switch(t){case"option":Y(i,t),D(";");break;case"reserved":U(i.reserved||(i.reserved=[]),!0);break;default:!function(t,e){if(!_.test(e))throw j(e,"name");D("=");var i=H(I(),!0),o={};Z(o,(function(t){if("option"!==t)throw j(t);Y(o,t),D(";")}),(function(){tt(o)})),t.add(e,i,o.comment)}(i,t)}})),t.add(i)}(t,e),!0;case"service":return function(t,e){if(!_.test(e=I()))throw j(e,"service name");var i=new c(e);Z(i,(function(t){if(!$(i,t)){if("rpc"!==t)throw j(t);!function(t,e){var i=e;if(!_.test(e=I()))throw j(e,"name");var o,s,n,r,a=e;D("("),D("stream",!0)&&(s=!0);if(!x.test(e=I()))throw j(e);o=e,D(")"),D("returns"),D("("),D("stream",!0)&&(r=!0);if(!x.test(e=I()))throw j(e);n=e,D(")");var l=new d(a,i,o,n,s,r);Z(l,(function(t){if("option"!==t)throw j(t);Y(l,t),D(";")})),t.add(l)}(i,t)}})),t.add(i)}(t,e),!0;case"extend":return function(t,e){if(!x.test(e=I()))throw j(e,"reference");var i=e;Z(null,(function(e){switch(e){case"required":case"repeated":case"optional":G(t,e,i);break;default:if(!V||!x.test(e))throw j(e);k(e),G(t,"optional",i)}}))}(t,e),!0}return!1}function Z(t,e,i){var o=O.line;if(t&&(t.comment=L(),t.filename=T.filename),D("{",!0)){for(var s;"}"!==(s=I());)e(s);D(";",!0)}else i&&i(),D(";"),t&&"string"!=typeof t.comment&&(t.comment=L(o))}function G(t,e,i){var o=I();if("group"!==o){if(!x.test(o))throw j(o,"type");var s=I();if(!_.test(s))throw j(s,"name");s=B(s),D("=");var a=new r(s,H(I()),o,e,i);Z(a,(function(t){if("option"!==t)throw j(t);Y(a,t),D(";")}),(function(){tt(a)})),t.add(a),V||!a.repeated||void 0===f.packed[o]&&void 0!==f.basic[o]||a.setOption("packed",!1,!0)}else!function(t,e){var i=I();if(!_.test(i))throw j(i,"name");var o=u.lcFirst(i);i===o&&(i=u.ucFirst(i));D("=");var s=H(I()),a=new n(i);a.group=!0;var l=new r(o,s,i,e);l.filename=T.filename,Z(a,(function(t){switch(t){case"option":Y(a,t),D(";");break;case"required":case"optional":case"repeated":G(a,t);break;default:throw j(t)}})),t.add(a).add(l)}(t,e)}function Y(t,e){var i=D("(",!0);if(!x.test(e=I()))throw j(e,"name");var o=e;i&&(D(")"),o="("+o+")",e=R(),P.test(e)&&(o+=e,I())),D("="),K(t,o)}function K(t,e){if(D("{",!0))do{if(!_.test(E=I()))throw j(E,"name");"{"===R()?K(t,e+"."+E):(D(":"),"{"===R()?K(t,e+"."+E):Q(t,e+"."+E,z(!0)))}while(!D("}",!0));else Q(t,e,z(!0))}function Q(t,e,i){t.setOption&&t.setOption(e,i)}function tt(t){if(D("[",!0)){do{Y(t,"option")}while(D(",",!0));D("]")}return t}for(;null!==(E=I());)switch(E){case"package":if(!N)throw j(E);q();break;case"import":if(!N)throw j(E);J();break;case"syntax":if(!N)throw j(E);X();break;case"option":if(!N)throw j(E);Y(F,E),D(";");break;default:if($(F,E)){N=!1;continue}throw j(E)}return T.filename=null,{package:A,imports:M,weakImports:C,syntax:S,root:e}}T._configure=function(){o=i(20),s=i(9),n=i(3),r=i(2),a=i(12),l=i(7),h=i(1),c=i(10),d=i(13),f=i(5),u=i(0)}},function(t,e){t.exports=f;var i=/[\s{}=;:[\],'"()<>]/g,o=/(?:"([^"\\]*(?:\\.[^"\\]*)*)")/g,s=/(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g,n=/^ *[*/]+ */,r=/^\s*\*?\/*/,a=/\n/g,l=/\s/,h=/\\(.?)/g,c={0:"\0",r:"\r",n:"\n",t:"\t"};function d(t){return t.replace(h,(function(t,e){switch(e){case"\\":case"":return e;default:return c[e]||""}}))}function f(t,e){t=t.toString();var h=0,c=t.length,f=1,u=null,p=null,y=0,m=!1,g=[],v=null;function w(t){return Error("illegal "+t+" (line "+f+")")}function b(e){return t.charAt(e)}function _(i,o){u=t.charAt(i++),y=f,m=!1;var s,l=i-(e?2:3);do{if(--l<0||"\n"===(s=t.charAt(l))){m=!0;break}}while(" "===s||"\t"===s);for(var h=t.substring(i,o).split(a),c=0;c0)return g.shift();if(v)return function(){var e="'"===v?s:o;e.lastIndex=h-1;var i=e.exec(t);if(!i)throw w("string");return h=e.lastIndex,A(v),v=null,d(i[1])}();var n,r,a,u,p;do{if(h===c)return null;for(n=!1;l.test(a=b(h));)if("\n"===a&&++f,++h===c)return null;if("/"===b(h)){if(++h===c)throw w("comment");if("/"===b(h))if(e){if(u=h,p=!1,x(h)){p=!0;do{if((h=P(h))===c)break;h++}while(x(h))}else h=Math.min(c,P(h)+1);p&&_(u,h),f++,n=!0}else{for(p="/"===b(u=h+1);"\n"!==b(++h);)if(h===c)return null;++h,p&&_(u,h-1),++f,n=!0}else{if("*"!==(a=b(h)))return"/";u=h+1,p=e||"*"===b(u);do{if("\n"===a&&++f,++h===c)throw w("comment");r=a,a=b(h)}while("*"!==r||"/"!==a);++h,p&&_(u,h-2),n=!0}}}while(n);var y=h;if(i.lastIndex=0,!i.test(b(y++)))for(;y "+t.len)}function a(t){this.buf=t,this.pos=0,this.len=t.length}var l,h="undefined"!=typeof Uint8Array?function(t){if(t instanceof Uint8Array||Array.isArray(t))return new a(t);if("undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer)return new a(new Uint8Array(t));throw Error("illegal buffer")}:function(t){if(Array.isArray(t))return new a(t);throw Error("illegal buffer")};function c(){var t=new o(0,0),e=0;if(!(this.len-this.pos>4)){for(;e<3;++e){if(this.pos>=this.len)throw r(this);if(t.lo=(t.lo|(127&this.buf[this.pos])<<7*e)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(127&this.buf[this.pos++])<<7*e)>>>0,t}for(;e<4;++e)if(t.lo=(t.lo|(127&this.buf[this.pos])<<7*e)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(127&this.buf[this.pos])<<28)>>>0,t.hi=(t.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return t;if(e=0,this.len-this.pos>4){for(;e<5;++e)if(t.hi=(t.hi|(127&this.buf[this.pos])<<7*e+3)>>>0,this.buf[this.pos++]<128)return t}else for(;e<5;++e){if(this.pos>=this.len)throw r(this);if(t.hi=(t.hi|(127&this.buf[this.pos])<<7*e+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}function d(t,e){return(t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24)>>>0}function f(){if(this.pos+8>this.len)throw r(this,8);return new o(d(this.buf,this.pos+=4),d(this.buf,this.pos+=4))}a.create=n.Buffer?function(t){return(a.create=function(t){return n.Buffer.isBuffer(t)?new(void 0)(t):h(t)})(t)}:h,a.prototype._slice=n.Array.prototype.subarray||n.Array.prototype.slice,a.prototype.uint32=(l=4294967295,function(){if(l=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return l;if(l=(l|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return l;if(l=(l|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return l;if(l=(l|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return l;if(l=(l|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return l;if((this.pos+=5)>this.len)throw this.pos=this.len,r(this,10);return l}),a.prototype.int32=function(){return 0|this.uint32()},a.prototype.sint32=function(){var t=this.uint32();return t>>>1^-(1&t)|0},a.prototype.bool=function(){return 0!==this.uint32()},a.prototype.fixed32=function(){if(this.pos+4>this.len)throw r(this,4);return d(this.buf,this.pos+=4)},a.prototype.sfixed32=function(){if(this.pos+4>this.len)throw r(this,4);return 0|d(this.buf,this.pos+=4)},a.prototype.float=function(){if(this.pos+4>this.len)throw r(this,4);var t=n.float.readFloatLE(this.buf,this.pos);return this.pos+=4,t},a.prototype.double=function(){if(this.pos+8>this.len)throw r(this,4);var t=n.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,t},a.prototype.bytes=function(){var t=this.uint32(),e=this.pos,i=this.pos+t;if(i>this.len)throw r(this,t);return this.pos+=t,Array.isArray(this.buf)?this.buf.slice(e,i):e===i?new this.buf.constructor(0):this._slice.call(this.buf,e,i)},a.prototype.string=function(){var t=this.bytes();return s.read(t,0,t.length)},a.prototype.skip=function(t){if("number"==typeof t){if(this.pos+t>this.len)throw r(this,t);this.pos+=t}else do{if(this.pos>=this.len)throw r(this)}while(128&this.buf[this.pos++]);return this},a.prototype.skipType=function(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;;){if(4==(t=7&this.uint32()))break;this.skipType(t)}break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+t+" at offset "+this.pos)}return this},a._configure=function(){o=i(11),s=i(8);var t=n.Long?"toLong":"toNumber";n.merge(a.prototype,{int64:function(){return c.call(this)[t](!1)},uint64:function(){return c.call(this)[t](!0)},sint64:function(){return c.call(this).zzDecode()[t](!1)},fixed64:function(){return f.call(this)[t](!0)},sfixed64:function(){return f.call(this)[t](!1)}})}},function(t,e,i){var o,s;function n(t,e){return t.name+": "+e+(t.repeated&&"array"!==e?"[]":t.map&&"object"!==e?"{k:"+t.keyType+"}":"")+" expected"}function r(t,e,i,r){var a=r.types;if(t.resolvedType)if(t.resolvedType instanceof o){if(Object.keys(t.resolvedType.values).indexOf(i)<0)return n(t,"enum value")}else{var l=a[e].verify(i);if(l)return t.name+"."+l}else switch(t.type){case"int32":case"uint32":case"sint32":case"fixed32":case"sfixed32":if(!s.isInteger(i))return n(t,"integer");break;case"int64":case"uint64":case"sint64":case"fixed64":case"sfixed64":if(!(s.isInteger(i)||i&&s.isInteger(i.low)&&s.isInteger(i.high)))return n(t,"integer|Long");break;case"float":case"double":if("number"!=typeof i)return n(t,"number");break;case"bool":if("boolean"!=typeof i)return n(t,"boolean");break;case"string":if(!s.isString(i))return n(t,"string");break;case"bytes":if(!(i&&"number"==typeof i.length||s.isString(i)))return n(t,"buffer")}}function a(t,e){switch(t.keyType){case"int32":case"uint32":case"sint32":case"fixed32":case"sfixed32":if(!s.key32Re.test(e))return n(t,"integer key");break;case"int64":case"uint64":case"sint64":case"fixed64":case"sfixed64":if(!s.key64Re.test(e))return n(t,"integer|Long key");break;case"bool":if(!s.key2Re.test(e))return n(t,"boolean key")}}function l(t){return function(e){return function(i){var o;if("object"!=typeof i||null===i)return"object expected";var l,h={};t.oneofsArray.length&&(l={});for(var c=0;c>>0).fork().uint32(8|s.mapKey[c.keyType])[c.keyType](y[m]),void 0===u?n[d].encode(p[y[m]],a.uint32(18).fork()).ldelim().ldelim():a.uint32(16|u)[f](p[y[m]]).ldelim()}else if(c.repeated){if(p&&p.length)if(c.packed&&void 0!==s.packed[f]){a.uint32((c.id<<3|2)>>>0).fork();for(var g=0;g>>0)).uint32((c.id<<3|4)>>>0):n[d].encode(p[v],a.uint32((c.id<<3|2)>>>0).fork()).ldelim():a.uint32((c.id<<3|u)>>>0)[f](p[v])}else(!c.optional||null!=p&&e.hasOwnProperty(c.name))&&(c.optional||null!=p&&e.hasOwnProperty(c.name)||console.warn("注意啦!!!很大概率会报错 类型:",e.$type?e.$type.name:"不晓得","没有设置对应的属性:",c.name,"检查是不是proto文件属性设置为了required"),void 0===u?c.resolvedType.group?n[d].encode(p,a.uint32((c.id<<3|3)>>>0)).uint32((c.id<<3|4)>>>0):n[d].encode(p,a.uint32((c.id<<3|2)>>>0).fork()).ldelim():a.uint32((c.id<<3|u)>>>0)[f](p))}return a}}}t.exports=n,n._configure=function(){o=i(1),s=i(5)}},function(t,e,i){var o,s,n;function r(t){return"missing required '"+t.name+"'"}function a(t){return function(e){var i=e.Reader,a=e.types,l=e.util;return function(e,h){e instanceof i||(e=i.create(e));for(var c,d=void 0===h?e.len:e.pos+h,f=new this.ctor;e.pos>>3,y=0,m=!1;y>>0:r[i]=a[i]>>>0;break;case"int32":case"sint32":case"sfixed32":c?r[i][h]=0|a[i][h]:r[i]=0|a[i];break;case"uint64":y=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":s.Long?c?r[i][h]=s.Long.fromValue(a[i][h]).unsigned=y:r[i]=s.Long.fromValue(a[i]).unsigned=y:"string"==typeof(c?a[i][h]:a[i])?c?r[i][h]=parseInt(a[i][h],10):r[i]=parseInt(a[i],10):"number"==typeof(c?a[i][h]:a[i])?c?r[i][h]=a[i][h]:r[i]=a[i]:"object"==typeof(c?a[i][h]:a[i])&&(c?r[i][h]=new s.LongBits(a[i][h].low>>>0,a[i][h].high>>>0).toNumber(y):r[i]=new s.LongBits(a[i].low>>>0,a[i].high>>>0).toNumber(y));break;case"bytes":"string"==typeof(c?a[i][h]:a[i])?c?s.base64.decode(a[i][h],r[i][h]=s.newBuffer(s.base64.length(a[i][h])),0):s.base64.decode(a[i],r[i]=s.newBuffer(s.base64.length(a[i])),0):(c?a[i][h]:a[i]).length&&(c?r[i][h]=a[i][h]:r[i]=a[i]);break;case"string":c?r[i][h]=String(a[i][h]):r[i]=String(a[i]);break;case"bool":c?r[i][h]=Boolean(a[i][h]):r[i]=Boolean(a[i])}}}function a(t,e,i,n){var r=n.m,a=n.d,l=n.types,h=n.ksi,c=n.o,d=void 0!==h;if(t.resolvedType)t.resolvedType instanceof o?d?a[i][h]=c.enums===String?l[e].values[r[i][h]]:r[i][h]:a[i]=c.enums===String?l[e].values[r[i]]:r[i]:d?a[i][h]=l[e].toObject(r[i][h],c):a[i]=l[e].toObject(r[i],c);else{var f=!1;switch(t.type){case"double":case"float":d?a[i][h]=c.json&&!isFinite(r[i][h])?String(r[i][h]):r[i][h]:a[i]=c.json&&!isFinite(r[i])?String(r[i]):r[i];break;case"uint64":f=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":"number"==typeof r[i][h]?d?a[i][h]=c.longs===String?String(r[i][h]):r[i][h]:a[i]=c.longs===String?String(r[i]):r[i]:d?a[i][h]=c.longs===String?s.Long.prototype.toString.call(r[i][h]):c.longs===Number?new s.LongBits(r[i][h].low>>>0,r[i][h].high>>>0).toNumber(f):r[i][h]:a[i]=c.longs===String?s.Long.prototype.toString.call(r[i]):c.longs===Number?new s.LongBits(r[i].low>>>0,r[i].high>>>0).toNumber(f):r[i];break;case"bytes":d?a[i][h]=c.bytes===String?s.base64.encode(r[i][h],0,r[i][h].length):c.bytes===Array?Array.prototype.slice.call(r[i][h]):r[i][h]:a[i]=c.bytes===String?s.base64.encode(r[i],0,r[i].length):c.bytes===Array?Array.prototype.slice.call(r[i]):r[i];break;default:d?a[i][h]=r[i][h]:a[i]=r[i]}}}n._configure=function(){o=i(1),s=i(0)},n.fromObject=function(t){var e=t.fieldsArray;return function(t){return function(i){if(i instanceof this.ctor)return i;if(!e.length)return new this.ctor;for(var n=new this.ctor,a=0;a255)return!1;return!0}return{toBytes:function(i){var o=[],s=0;for(i=encodeURI(i);s>>7==0?(e+=String.fromCharCode(t[i]),i+=1):252==(252&o)?(s=(3&t[i])<<30,s|=(63&t[i+1])<<24,s|=(63&t[i+2])<<18,s|=(63&t[i+3])<<12,s|=(63&t[i+4])<<6,s|=63&t[i+5],e+=String.fromCodePoint(s),i+=6):248==(248&o)?(s=(7&t[i])<<24,s|=(63&t[i+1])<<18,s|=(63&t[i+2])<<12,s|=(63&t[i+3])<<6,s|=63&t[i+4],e+=String.fromCodePoint(s),i+=5):240==(240&o)?(s=(15&t[i])<<18,s|=(63&t[i+1])<<12,s|=(63&t[i+2])<<6,s|=63&t[i+3],e+=String.fromCodePoint(s),i+=4):224==(224&o)?(s=(31&t[i])<<12,s|=(63&t[i+1])<<6,s|=63&t[i+2],e+=String.fromCharCode(s),i+=3):192==(192&o)?(s=(63&t[i])<<6,s|=63&t[i+1],e+=String.fromCharCode(s),i+=2):(e+=String.fromCharCode(t[i]),i+=1)}return e}}}();t.exports=i},function(t,e){var i=function(){const t={width:720,height:1280,intrinstics:[1110.828383,0,360,0,1111.21832,640,0,0,1],undistorts:[1e-5,0,0,0,0]},e={width:720,height:960,intrinstics:[720,0,360,0,720,480,0,0,1],undistorts:[0,0,0,0,0]},i={width:288,height:352,intrinstics:[594.25994,0,237.531106,0,594.825983,313.414084,0,0,1],undistorts:[.184825,-.433983,-.003168,-.010542,0]};function o(t,e){const i=[],o=[];for(var s=0;sn?(e=1200*s/1280,i=e):(e=1200*n/1280,i=e),o=s/2,r=n/2,c.intrinstics=[e,0,o,0,i,r,0,0,1],c.undistorts=t.undistorts,c}return{intrinstics:[],undistorts:[]}}}}();t.exports=i},function(t,e,i){t.exports=function(){var t={};function e(e,i,o){return"function"==typeof i?(o=i,i=new t.Root):i||(i=new t.Root),i.load(e,o)}function o(e,i){return i||(i=new t.Root),i.loadSync(e)}function s(e,i,o){return"function"==typeof i?(o=i,i=new t.Root):i||(i=new t.Root),i.parseFromPbString(e,o)}function n(){t.converter._configure(),t.decoder._configure(),t.encoder._configure(),t.Field._configure(),t.MapField._configure(),t.Message._configure(),t.Namespace._configure(),t.Method._configure(),t.ReflectionObject._configure(),t.OneOf._configure(),t.parse._configure(),t.Reader._configure(),t.Root._configure(),t.Service._configure(),t.verifier._configure(),t.Type._configure(),t.types._configure(),t.wrappers._configure(),t.Writer._configure()}if(t.build="minimal",t.Writer=i(16),t.encoder=i(25),t.Reader=i(23),t.util=i(0),t.rpc=i(21),t.roots=i(17),t.verifier=i(24),t.tokenize=i(20),t.parse=i(19),t.common=i(22),t.ReflectionObject=i(4),t.Namespace=i(6),t.Root=i(9),t.Enum=i(1),t.Type=i(3),t.Field=i(2),t.OneOf=i(7),t.MapField=i(12),t.Service=i(10),t.Method=i(13),t.converter=i(28),t.decoder=i(26),t.Message=i(14),t.wrappers=i(27),t.types=i(5),t.util=i(0),t.configure=n,t.load=e,t.loadSync=o,t.parseFromPbString=s,n(),arguments&&arguments.length)for(var r=0;r>>=0)&&t<256)&&(o=r[t])?o:(i=h(t,(0|t)<0?-1:0,!0),s&&(r[t]=i),i):(s=-128<=(t|=0)&&t<128)&&(o=n[t])?o:(i=h(t,t<0?-1:0,!1),s&&(n[t]=i),i)}function l(t,e){if(isNaN(t))return e?v:g;if(e){if(t<0)return v;if(t>=p)return P}else{if(t<=-y)return T;if(t+1>=y)return x}return t<0?l(-t,e).neg():h(t%u|0,t/u|0,e)}function h(t,e,i){return new o(t,e,i)}o.fromInt=a,o.fromNumber=l,o.fromBits=h;var c=Math.pow;function d(t,e,i){if(0===t.length)throw Error("empty string");if("NaN"===t||"Infinity"===t||"+Infinity"===t||"-Infinity"===t)return g;if("number"==typeof e?(i=e,e=!1):e=!!e,(i=i||10)<2||360)throw Error("interior hyphen");if(0===o)return d(t.substring(1),e,i).neg();for(var s=l(c(i,8)),n=g,r=0;r>>0:this.low},A.toNumber=function(){return this.unsigned?(this.high>>>0)*u+(this.low>>>0):this.high*u+(this.low>>>0)},A.toString=function(t){if((t=t||10)<2||36>>0).toString(t);if((n=a).isZero())return h+r;for(;h.length<6;)h="0"+h;r=""+h+r}},A.getHighBits=function(){return this.high},A.getHighBitsUnsigned=function(){return this.high>>>0},A.getLowBits=function(){return this.low},A.getLowBitsUnsigned=function(){return this.low>>>0},A.getNumBitsAbs=function(){if(this.isNegative())return this.eq(T)?64:this.neg().getNumBitsAbs();for(var t=0!=this.high?this.high:this.low,e=31;e>0&&0==(t&1<=0},A.isOdd=function(){return 1==(1&this.low)},A.isEven=function(){return 0==(1&this.low)},A.equals=function(t){return s(t)||(t=f(t)),(this.unsigned===t.unsigned||this.high>>>31!=1||t.high>>>31!=1)&&(this.high===t.high&&this.low===t.low)},A.eq=A.equals,A.notEquals=function(t){return!this.eq(t)},A.neq=A.notEquals,A.ne=A.notEquals,A.lessThan=function(t){return this.comp(t)<0},A.lt=A.lessThan,A.lessThanOrEqual=function(t){return this.comp(t)<=0},A.lte=A.lessThanOrEqual,A.le=A.lessThanOrEqual,A.greaterThan=function(t){return this.comp(t)>0},A.gt=A.greaterThan,A.greaterThanOrEqual=function(t){return this.comp(t)>=0},A.gte=A.greaterThanOrEqual,A.ge=A.greaterThanOrEqual,A.compare=function(t){if(s(t)||(t=f(t)),this.eq(t))return 0;var e=this.isNegative(),i=t.isNegative();return e&&!i?-1:!e&&i?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1},A.comp=A.compare,A.negate=function(){return!this.unsigned&&this.eq(T)?T:this.not().add(w)},A.neg=A.negate,A.add=function(t){s(t)||(t=f(t));var e=this.high>>>16,i=65535&this.high,o=this.low>>>16,n=65535&this.low,r=t.high>>>16,a=65535&t.high,l=t.low>>>16,c=0,d=0,u=0,p=0;return u+=(p+=n+(65535&t.low))>>>16,d+=(u+=o+l)>>>16,c+=(d+=i+a)>>>16,c+=e+r,h((u&=65535)<<16|(p&=65535),(c&=65535)<<16|(d&=65535),this.unsigned)},A.subtract=function(t){return s(t)||(t=f(t)),this.add(t.neg())},A.sub=A.subtract,A.multiply=function(t){if(this.isZero())return g;if(s(t)||(t=f(t)),i)return h(i.mul(this.low,this.high,t.low,t.high),i.get_high(),this.unsigned);if(t.isZero())return g;if(this.eq(T))return t.isOdd()?T:g;if(t.eq(T))return this.isOdd()?T:g;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(m)&&t.lt(m))return l(this.toNumber()*t.toNumber(),this.unsigned);var e=this.high>>>16,o=65535&this.high,n=this.low>>>16,r=65535&this.low,a=t.high>>>16,c=65535&t.high,d=t.low>>>16,u=65535&t.low,p=0,y=0,v=0,w=0;return v+=(w+=r*u)>>>16,y+=(v+=n*u)>>>16,v&=65535,y+=(v+=r*d)>>>16,p+=(y+=o*u)>>>16,y&=65535,p+=(y+=n*d)>>>16,y&=65535,p+=(y+=r*c)>>>16,p+=e*u+o*d+n*c+r*a,h((v&=65535)<<16|(w&=65535),(p&=65535)<<16|(y&=65535),this.unsigned)},A.mul=A.multiply,A.divide=function(t){if(s(t)||(t=f(t)),t.isZero())throw Error("division by zero");var e,o,n;if(i)return this.unsigned||-2147483648!==this.high||-1!==t.low||-1!==t.high?h((this.unsigned?i.div_u:i.div_s)(this.low,this.high,t.low,t.high),i.get_high(),this.unsigned):this;if(this.isZero())return this.unsigned?v:g;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return v;if(t.gt(this.shru(1)))return b;n=v}else{if(this.eq(T))return t.eq(w)||t.eq(_)?T:t.eq(T)?w:(e=this.shr(1).div(t).shl(1)).eq(g)?t.isNegative()?w:_:(o=this.sub(t.mul(e)),n=e.add(o.div(t)));if(t.eq(T))return this.unsigned?v:g;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();n=g}for(o=this;o.gte(t);){e=Math.max(1,Math.floor(o.toNumber()/t.toNumber()));for(var r=Math.ceil(Math.log(e)/Math.LN2),a=r<=48?1:c(2,r-48),d=l(e),u=d.mul(t);u.isNegative()||u.gt(o);)u=(d=l(e-=a,this.unsigned)).mul(t);d.isZero()&&(d=w),n=n.add(d),o=o.sub(u)}return n},A.div=A.divide,A.modulo=function(t){return s(t)||(t=f(t)),i?h((this.unsigned?i.rem_u:i.rem_s)(this.low,this.high,t.low,t.high),i.get_high(),this.unsigned):this.sub(this.div(t).mul(t))},A.mod=A.modulo,A.rem=A.modulo,A.not=function(){return h(~this.low,~this.high,this.unsigned)},A.and=function(t){return s(t)||(t=f(t)),h(this.low&t.low,this.high&t.high,this.unsigned)},A.or=function(t){return s(t)||(t=f(t)),h(this.low|t.low,this.high|t.high,this.unsigned)},A.xor=function(t){return s(t)||(t=f(t)),h(this.low^t.low,this.high^t.high,this.unsigned)},A.shiftLeft=function(t){return s(t)&&(t=t.toInt()),0==(t&=63)?this:t<32?h(this.low<>>32-t,this.unsigned):h(0,this.low<>>t|this.high<<32-t,this.high>>t,this.unsigned):h(this.high>>t-32,this.high>=0?0:-1,this.unsigned)},A.shr=A.shiftRight,A.shiftRightUnsigned=function(t){if(s(t)&&(t=t.toInt()),0===(t&=63))return this;var e=this.high;return t<32?h(this.low>>>t|e<<32-t,e>>>t,this.unsigned):h(32===t?e:e>>>t-32,0,this.unsigned)},A.shru=A.shiftRightUnsigned,A.shr_u=A.shiftRightUnsigned,A.toSigned=function(){return this.unsigned?h(this.low,this.high,!1):this},A.toUnsigned=function(){return this.unsigned?this:h(this.low,this.high,!0)},A.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()},A.toBytesLE=function(){var t=this.high,e=this.low;return[255&e,e>>>8&255,e>>>16&255,e>>>24,255&t,t>>>8&255,t>>>16&255,t>>>24]},A.toBytesBE=function(){var t=this.high,e=this.low;return[t>>>24,t>>>16&255,t>>>8&255,255&t,e>>>24,e>>>16&255,e>>>8&255,255&e]},o.fromBytes=function(t,e,i){return i?o.fromBytesLE(t,e):o.fromBytesBE(t,e)},o.fromBytesLE=function(t,e){return new o(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,e)},o.fromBytesBE=function(t,e){return new o(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],e)}},function(t,e){t.exports=function(t,e,i){var o=i||8192,s=o>>>1,n=null,r=o;return function(i){if(i<1||i>s)return t(i);r+i>o&&(n=t(o),r=0);var a=e.call(n,r,r+=i);return 7&r&&(r=1+(7|r)),a}}},function(t,e){function i(t){return"undefined"!=typeof Float32Array?function(){var e=new Float32Array([-0]),i=new Uint8Array(e.buffer),o=128===i[3];function s(t,o,s){e[0]=t,o[s]=i[0],o[s+1]=i[1],o[s+2]=i[2],o[s+3]=i[3]}function n(t,o,s){e[0]=t,o[s]=i[3],o[s+1]=i[2],o[s+2]=i[1],o[s+3]=i[0]}function r(t,o){return i[0]=t[o],i[1]=t[o+1],i[2]=t[o+2],i[3]=t[o+3],e[0]}function a(t,o){return i[3]=t[o],i[2]=t[o+1],i[1]=t[o+2],i[0]=t[o+3],e[0]}t.writeFloatLE=o?s:n,t.writeFloatBE=o?n:s,t.readFloatLE=o?r:a,t.readFloatBE=o?a:r}():function(){function e(t,e,i,o){var s=e<0?1:0;if(s&&(e=-e),0===e)t(1/e>0?0:2147483648,i,o);else if(isNaN(e))t(2143289344,i,o);else if(e>34028234663852886e22)t((s<<31|2139095040)>>>0,i,o);else if(e<11754943508222875e-54)t((s<<31|Math.round(e/1401298464324817e-60))>>>0,i,o);else{var n=Math.floor(Math.log(e)/Math.LN2);t((s<<31|n+127<<23|8388607&Math.round(e*Math.pow(2,-n)*8388608))>>>0,i,o)}}function i(t,e,i){var o=t(e,i),s=2*(o>>31)+1,n=o>>>23&255,r=8388607&o;return 255===n?r?NaN:s*(1/0):0===n?1401298464324817e-60*s*r:s*Math.pow(2,n-150)*(r+8388608)}t.writeFloatLE=e.bind(null,o),t.writeFloatBE=e.bind(null,s),t.readFloatLE=i.bind(null,n),t.readFloatBE=i.bind(null,r)}(),"undefined"!=typeof Float64Array?function(){var e=new Float64Array([-0]),i=new Uint8Array(e.buffer),o=128===i[7];function s(t,o,s){e[0]=t,o[s]=i[0],o[s+1]=i[1],o[s+2]=i[2],o[s+3]=i[3],o[s+4]=i[4],o[s+5]=i[5],o[s+6]=i[6],o[s+7]=i[7]}function n(t,o,s){e[0]=t,o[s]=i[7],o[s+1]=i[6],o[s+2]=i[5],o[s+3]=i[4],o[s+4]=i[3],o[s+5]=i[2],o[s+6]=i[1],o[s+7]=i[0]}function r(t,o){return i[0]=t[o],i[1]=t[o+1],i[2]=t[o+2],i[3]=t[o+3],i[4]=t[o+4],i[5]=t[o+5],i[6]=t[o+6],i[7]=t[o+7],e[0]}function a(t,o){return i[7]=t[o],i[6]=t[o+1],i[5]=t[o+2],i[4]=t[o+3],i[3]=t[o+4],i[2]=t[o+5],i[1]=t[o+6],i[0]=t[o+7],e[0]}t.writeDoubleLE=o?s:n,t.writeDoubleBE=o?n:s,t.readDoubleLE=o?r:a,t.readDoubleBE=o?a:r}():function(){function e(t,e,i,o,s,n){var r=o<0?1:0;if(r&&(o=-o),0===o)t(0,s,n+e),t(1/o>0?0:2147483648,s,n+i);else if(isNaN(o))t(0,s,n+e),t(2146959360,s,n+i);else if(o>17976931348623157e292)t(0,s,n+e),t((r<<31|2146435072)>>>0,s,n+i);else{var a;if(o<22250738585072014e-324)t((a=o/5e-324)>>>0,s,n+e),t((r<<31|a/4294967296)>>>0,s,n+i);else{var l=Math.floor(Math.log(o)/Math.LN2);1024===l&&(l=1023),t(4503599627370496*(a=o*Math.pow(2,-l))>>>0,s,n+e),t((r<<31|l+1023<<20|1048576*a&1048575)>>>0,s,n+i)}}}function i(t,e,i,o,s){var n=t(o,s+e),r=t(o,s+i),a=2*(r>>31)+1,l=r>>>20&2047,h=4294967296*(1048575&r)+n;return 2047===l?h?NaN:a*(1/0):0===l?5e-324*a*h:a*Math.pow(2,l-1075)*(h+4503599627370496)}t.writeDoubleLE=e.bind(null,o,0,4),t.writeDoubleBE=e.bind(null,s,4,0),t.readDoubleLE=i.bind(null,n,0,4),t.readDoubleBE=i.bind(null,r,4,0)}(),t}function o(t,e,i){e[i]=255&t,e[i+1]=t>>>8&255,e[i+2]=t>>>16&255,e[i+3]=t>>>24}function s(t,e,i){e[i]=t>>>24,e[i+1]=t>>>16&255,e[i+2]=t>>>8&255,e[i+3]=255&t}function n(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24)>>>0}function r(t,e){return(t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3])>>>0}t.exports=i(i)},function(t,e,i){"use strict";t.exports=function(t,e){var i=new Array(arguments.length-1),o=0,s=2,n=!0;for(;s0&&".."!==e[n-1]?e.splice(--n,2):i?e.splice(n,1):++n:"."===e[n]?e.splice(n,1):++n;return s+e.join("/")};i.resolve=function(t,e,i){return i||(e=s(e)),o(e)?e:(i||(t=s(t)),(t=t.replace(/(?:\/|^)[^/]+$/,"")).length?s(t+"/"+e):e)}},function(t,e){t.exports={nested:{bdarvps:{nested:{BdarVector12f:{fields:{f1:{type:"float",id:1},f2:{type:"float",id:2},f3:{type:"float",id:3},f4:{type:"float",id:4},f5:{type:"float",id:5},f6:{type:"float",id:6},f7:{type:"float",id:7},f8:{type:"float",id:8},f9:{type:"float",id:9},f10:{type:"float",id:10},f11:{type:"float",id:11},f12:{type:"float",id:12}}},BdarVector9f:{fields:{f1:{type:"float",id:1},f2:{type:"float",id:2},f3:{type:"float",id:3},f4:{type:"float",id:4},f5:{type:"float",id:5},f6:{type:"float",id:6},f7:{type:"float",id:7},f8:{type:"float",id:8},f9:{type:"float",id:9}}},BdarVector5f:{fields:{f1:{type:"float",id:1},f2:{type:"float",id:2},f3:{type:"float",id:3},f4:{type:"float",id:4},f5:{type:"float",id:5}}},BdarVector4f:{fields:{f1:{type:"float",id:1},f2:{type:"float",id:2},f3:{type:"float",id:3},f4:{type:"float",id:4}}},BdarVector3f:{fields:{x:{type:"float",id:1},y:{type:"float",id:2},z:{type:"float",id:3}}},BdarVector2f:{fields:{x:{type:"float",id:1},y:{type:"float",id:2}}},BdarVector2d:{fields:{x:{type:"double",id:1},y:{type:"double",id:2}}},BdarVector3d:{fields:{x:{type:"double",id:1},y:{type:"double",id:2},z:{type:"double",id:3}}},BdarTrackerData:{fields:{pose:{type:"BdarVector12f",id:1},poseOrig:{type:"BdarVector12f",id:2},timestamp:{type:"bytes",id:3},frameId:{type:"int32",id:4},status:{type:"int32",id:5},magnet:{rule:"repeated",type:"double",id:6}}},BdarLocalizerData:{fields:{pose:{type:"BdarVector12f",id:1},timestamp:{type:"bytes",id:2},frameId:{type:"int32",id:3},consistent:{type:"int32",id:4}}},BdarTrackerOptimizeData:{fields:{sampleRate:{type:"int32",id:1},trackerData:{rule:"repeated",type:"BdarTrackerData",id:2},localizerData:{rule:"repeated",type:"BdarLocalizerData",id:3}}},BdarPosePrior:{fields:{type:{type:"int32",id:1},prior:{type:"BdarVector12f",id:2},priorAccuracy:{type:"float",id:3},priorConfidence:{type:"float",id:4}}},BdarOCRPrior:{fields:{status:{type:"bytes",id:1},roiCoordinate:{type:"BdarVector4f",id:2}}},BdarVPSRequestData:{fields:{methodType:{type:"int32",id:1},trackerType:{type:"int32",id:2},phoneType:{type:"bytes",id:3},userId:{type:"bytes",id:4},frameId:{type:"int32",id:5},timestamp:{type:"bytes",id:6},trackerStatus:{type:"bool",id:7},trackerPose:{type:"BdarVector12f",id:8},pointIndices:{rule:"repeated",type:"int32",id:9},points_2d:{rule:"repeated",type:"BdarVector2f",id:10},points_3d:{rule:"repeated",type:"BdarVector3f",id:11},cameraIntrinsics:{type:"BdarVector9f",id:12},cameraDistort:{type:"BdarVector5f",id:13},gps:{type:"BdarVector3d",id:14},gravityDirection:{type:"BdarVector3f",id:15},imu:{type:"BdarVector12f",id:16},frame:{type:"bytes",id:17},frameWidth:{type:"int32",id:18},frameHeight:{type:"int32",id:19},frameChannels:{type:"int32",id:20},frameCompressType:{type:"int32",id:21},requestCorrespondence:{type:"bool",id:22},sessionId:{type:"bytes",id:23},version:{type:"bytes",id:24},sceneType:{type:"int32",id:25},trackerOptimizeData:{type:"BdarTrackerOptimizeData",id:26},posePriors:{rule:"repeated",type:"BdarPosePrior",id:27},floorId:{type:"bytes",id:28},bdarOCRPrior:{type:"BdarOCRPrior",id:29}}},BdarMapInfo:{fields:{mapTag:{type:"bytes",id:1},mapQueryConfidence:{type:"float",id:2}}},BdarClientResult:{fields:{buildingId:{type:"bytes",id:1},floorId:{type:"bytes",id:2},locationPoint:{type:"BdarVector2d",id:3},locationTransform:{type:"BdarVector12f",id:4}}},BdarCoupledPose:{fields:{pose:{type:"BdarVector12f",id:1},trackerPose:{type:"BdarVector12f",id:2},timestamp:{type:"bytes",id:3},frameId:{type:"int32",id:4}}},BdarCoupleResult:{fields:{status:{type:"int32",id:1},coupledPose:{rule:"repeated",type:"BdarCoupledPose",id:2},scale:{type:"float",id:3},transform:{type:"BdarVector12f",id:4}}},BdarVPSResponseData:{fields:{userId:{type:"bytes",id:1},frameId:{type:"int32",id:2},timestamp:{type:"bytes",id:3},trackerPose:{type:"BdarVector12f",id:4},imu:{type:"BdarVector12f",id:5},vpsStatus:{type:"bool",id:6},vpsPose:{type:"BdarVector12f",id:7},scale:{type:"float",id:8},points_2d:{rule:"repeated",type:"BdarVector2f",id:9},points_3d:{rule:"repeated",type:"BdarVector3f",id:10},vpsPosition:{type:"BdarVector3d",id:11},version:{type:"bytes",id:12},vpsPoseAccuracy:{type:"float",id:13},vpsPoseConfidence:{type:"float",id:14},sceneType:{type:"int32",id:15},trackerType:{type:"int32",id:16},mapInfo:{type:"BdarMapInfo",id:17},clientResult:{type:"BdarClientResult",id:18},session:{type:"bytes",id:19},trackerOptimizeData:{type:"BdarTrackerOptimizeData",id:20},coupleResult:{type:"BdarCoupleResult",id:21},vpsStatusMsg:{type:"int32",id:22}}},BdarVPSResponseDataList:{fields:{data:{rule:"repeated",type:"BdarVPSResponseData",id:1}}},LocationResponse:{fields:{errCode:{type:"int32",id:1},errMsg:{type:"string",id:2},data:{type:"bytes",id:3}}},SubBdarVPSRequestData:{fields:{sessionId:{type:"bytes",id:23}}},TrackFrameResp:{fields:{errCode:{type:"int32",id:1},errMsg:{type:"string",id:2},data:{type:"bytes",id:3}}},TrackFrameResp2:{fields:{errCode:{type:"int32",id:1},errMsg:{type:"string",id:2},data:{type:"string",id:3}}}}}}}},function(t,e,i){"use strict";function o(t){return{data:function(t){const e=new t.constructor(t.byteLength);return new Uint8Array(e).set(new Uint8Array(t)),e}(t.data),width:t.width,height:t.height}}i.r(e),i.d(e,"SDKWrapper",(function(){return Pt}));const s=i(29),n=i(15);function r(t){return s.toBytes(t)}function a(t){for(var e={},i=0,o=t.length;i{e.floor_id===t.floor_id&&(i=e)}),this.baseURL=this._configData.interface.baseURL,console.log("createSession-this.baseURL",this.baseURL),{task:new Promise((t,s)=>{e=wx.request({url:this.baseURL+this._configData.interface.sessionInterface,method:"POST",data:{app_id:i.app_id,poi_id:i.poi_id,map_id:i.map_id,timestamp:o,sign:h({app_id:i.app_id,poi_id:i.poi_id,map_id:i.map_id,timestamp:o})},headers:{"Content-Type":"application/json; charset=UTF-8",Connection:"keep-alive"},success:e=>{0===e.data.err_code&&(console.log("createSssion",e),k=!1,p=e.data.data.session_id,t(e))},fail(t){s({msg:"创建session请求失败",data:t})}})}),taskController:e}}sendTrackframe(t){let e;return this.baseURL=this._configData.interface.baseURL,{trackframe:new Promise((i,o)=>{e=wx.request({url:this.baseURL+this._configData.interface.trackFrameInterface,method:"POST",data:t,headers:{"Content-Type":"multipart/protobuf",Connection:"keep-alive"},dataType:"protobuf",responseType:"arraybuffer",success:t=>{let e=function(t,e,i){let o=M.decode(t.data);if(0===o.errCode&&o.data){return A.decode(o.data)}i||e.onError({type:10004,msg:o.errMsg+" err_code:"+o.errCode})}(t,u,k);if(void 0===e)return{undefined:void 0,undefined:void 0};let o={};e.data.map(t=>{t.clientResult&&(o.floor=t.clientResult.floorId?l(t.clientResult.floorId):"",o.buildingId=t.clientResult.buildingId?l(t.clientResult.buildingId):"",o.locPoint=t.clientResult.locationPoint),t.session&&(o.session=l(t.session)),t.mapInfo&&t.mapInfo.mapTag&&(o.mapTag=l(t.mapInfo.mapTag)),o.vpsStatusMsg=t.vpsStatusMsg,!0===t.vpsStatus?(o.vpsStatus=t.vpsStatus,o.vpsPose=t.vpsPose,o.trackerPose=t.trackerPose,i(o)):(o.vpsStatus=!1,i(o))})},fail:t=>{o(t),console.log(t)}})}),trackframeController:e}}destroylocatesession(){this.baseURL=this._configData.interface.baseURL,console.log("destroylocatesession-this.baseURL",this.baseURL);let t,e=(new Date).getTime();if(void 0!==p){return{destroy:new Promise((i,o)=>{t=wx.request({url:this.baseURL+this._configData.interface.destroySessionInterface,method:"POST",data:{session_id:p,timestamp:e,app_id:0,sign:h({session_id:p,timestamp:e,app_id:0})},headers:{"Content-Type":"application/json; charset=UTF-8",Connection:"keep-alive"},success:t=>{console.log("destroylocatesession",t.data),0!==t.data.err_code?(u.onError({type:10006,msg:t.data.err_msg}),console.log(t.data.err_msg)):i(t.data),p=void 0},fail:t=>{o({msg:"销毁session请求失败",data:t}),p=void 0}})}),destroyController:t}}}getMapPoi(t){let e,i=((new Date).getTime()/1e3).toFixed();return{getPoi:new Promise((o,s)=>{e=wx.request({url:this._configData.interface.getMapPoiBaseUrl+this._configData.interface.getMapPoiInterface,method:"POST",data:{case_id:t,timestamp:Number(i),sign:c({case_id:t,timestamp:Number(i)})},headers:{"Content-Type":"application/json; charset=UTF-8",Connection:"keep-alive"},success:t=>{o(t)},fail(t){s({msg:"获取poi数据失败",data:t})}})}),getPoiController:e}}}function D(t,e){let i=e.x-t.x,o=e.y-t.y;return 0===i&&0===o?0:Math.atan2(o,i)-Math.PI/2}function L(t,e){return Math.sqrt((t.x-e.x)*(t.x-e.x)+(t.y-e.y)*(t.y-e.y))}let N,V,F=null,B=0,j=!1,W=!1,z=!1,U=!1,H=!1,q=null,J=0,X="",$={f1:0,f2:0,f3:0,f4:0},Z=[],G=0,Y=0,K=0,Q=0;const tt=i(15);class et{constructor(t,e,i,o,s){this.renderer=e,this._configData=t,this.option=i,void 0===I&&this.initWXwasm(),this.cContex=wx.createCameraContext(),this.initSystemInfo(),this.initGyroscope(),this.initDevice(),this.initAccelerometer(),this.allSuccessProxy=o,this.initCamera(o,s),this.algorithm=new d,this.severInterface=new R(this._configData),this.isPark=!1,this.hasIndoorLoc=!1,this.ak="",this.minTimeQueryServer=1e3,this.haveReceiveSessionMsg=!0,this.haveTrackFrame=!1,this.minDistanceToFinalThreshold=this._configData.minTriggerDistance.final,this.minDistanceToTransferThreshold=this._configData.minTriggerDistance.transfer,this.btDataPath=null,this.startTime=0,this.geo_map_transform_matrix=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],this.with_bt_but_not_work=!1,this.userId="default_user"}forEachMap(){let t=this;t._configData.map.forEach(e=>{e.floor_id===t.locationOption.floor_id&&(console.log("item.ak =",e.ak),""===e.ak||void 0===e.ak?t.locationOption.onBluetoothAndScanStatus({type:100,msg:"只开启ocr扫描"}):(t.ak=e.ak,console.log("需要打开蓝牙 ak = ",t.ak),wx.getSetting({success(e){e.authSetting["scope.bluetooth"]?(wx.openBluetoothAdapter({success:e=>{t.locationOption.onBluetoothAndScanStatus({type:1,msg:"蓝牙已打开"}),t.getWxBtLocation()},fail:e=>{console.log("打开蓝牙错误:",e),t.locationOption.onBluetoothAndScanStatus({type:99,msg:"提示打开蓝牙"})}}),wx.onBluetoothAdapterStateChange((function(e){t.locationOption.onBluetoothAndScanStatus({type:e.available,msg:"打开蓝牙"})}))):wx.authorize({scope:"scope.bluetooth",success(){wx.openBluetoothAdapter({success:e=>{t.locationOption.onBluetoothAndScanStatus({type:1,msg:"蓝牙已打开"}),t.getWxBtLocation()},fail:e=>{console.log("打开蓝牙错误:",e),t.locationOption.onBluetoothAndScanStatus({type:99,msg:"提示打开蓝牙"})}}),wx.onBluetoothAdapterStateChange((function(e){t.locationOption.onBluetoothAndScanStatus({type:e.available,msg:"打开蓝牙"})}))}})}})))})}initSystemInfo(){let t;wx.getSystemInfo({success:e=>{this.phonetype=e.system,console.log("phonetype = ",this.phonetype),t=e.platform}}),"ios"===t&&(B=1),function(t){let e=t.getAccountInfoSync().miniProgram.appId;e=tt(e+"*-#-$--%%%=216").toUpperCase();for(let t=0;t{I=e.instance.exports;I.constructor();t.setAlgoParam(),console.log("WXWebAssembly-初始化成功");I.add_test()},t=>{console.log("WXWebAssembly-初始化失败",t)})}initGyroscope(){wx.startGyroscope({interval:"game"}),wx.onGyroscopeChange(t=>{let e=1e6*(new Date).getTime();void 0!==I&&I.process_gyro(t.x,t.y,t.z,e)})}stopGyroscope(){wx.stopGyroscope({success:t=>{},fail:t=>{}})}initAccelerometer(){wx.startAccelerometer({interval:"game"}),wx.onAccelerometerChange(t=>{{let e=1e6*(new Date).getTime();void 0!==I&&I.process_acc(9.8*t.x,9.8*t.y,9.8*t.z,e)}let e=this.algorithm.stepFunc(t.x,t.y,t.z,I);e.acc=[(9.8*t.x).toFixed(2),(9.8*t.y).toFixed(2),(9.8*t.z).toFixed(2)],void 0!==this.orientation?e.orientation=[this.orientation[0].toFixed(2),this.orientation[1].toFixed(2),this.orientation[2].toFixed(2)]:e.orientation=[0,0,0],this.acc=[9.8*t.x,9.8*t.y,9.8*t.z],this.locationOption.onStep(e),void 0!==this.locationOption.onSaveAcc&&this.locationOption.onSaveAcc(this.acc)})}stopAccelerometer(){wx.stopAccelerometer({success:t=>{console.log("success = ",t)},fail:t=>{console.log("fail = ",t)}})}initDevice(){wx.startDeviceMotionListening({interval:"game"}),wx.onDeviceMotionChange(t=>{{let t=1e6*(new Date).getTime();F=this.algorithm.odometryFusionFunc(t,I)}this.orientation=[t.alpha,t.beta,t.gamma],Math.abs(t.beta)<45&&this.allSuccessProxy.firstTrackFrameSuccess&&void 0!==this.locationOption&&this.locationOption.onError({type:10010,msg:"手机姿态异常"})})}stopDevice(){wx.stopDeviceMotionListening({success:t=>{console.log("success = ",t)},fail:t=>{console.log("fail = ",t)}})}setLoactionData(t,e){this.locationOption=t,e.map.forEach(e=>{if(e.floor_id===t.floor_id){if(this.ak=e.ak,this.algorithm.set_map_transform(e.transform_matrix,e.scale),void 0!==e.geo_map_transform_matrix&&(this.geo_map_transform_matrix=e.geo_map_transform_matrix,this.algorithm.set_geo_map_transform(e.geo_map_transform_matrix)),void 0!==I)for(let t=0;t<12;t++)I.set_geo_to_vpas_transform_matrix(1,this.geo_map_transform_matrix[t],t);0===e.is_park||void 0===e.is_park?(this.isPark=!1,X=""):(this.isPark=!0,X=e.is_ocr)}}),this.startLocation=!0}setCanvasData(t){this._canvas=t}setGlCanvas(t){this.gl_canvas=t}initCamera(t,e){let i,s;V=(new Date).getTime(),N=V;let n=!1,r=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],l=[-1,-1,0],h=3;i=this.cContex.onCameraFrame(t=>{if(n||void 0!==this._canvas&&(this._canvas.width=t.width,this._canvas.height=t.height,n=!0),n){let i=o(t);if(0===$.f1&&0===$.f2&&0===$.f3&&0===$.f4&&this.isPark){console.log("canvas size = ",this.gl_canvas.width/3,this.gl_canvas.height/3,i.width,i.height);let t=this.gl_canvas.width/3*4/5,e=this.gl_canvas.height/3*1/10,o=(this.gl_canvas.height/3-e)/2,s=(this.gl_canvas.width/3-t)/2;$=function(t,e,i,o,s,n,r,a){let l=t-(s-r)/2,h=e-(n-a)/2;return[l,h,i+l,o+h]}(s,o,t,e,this.gl_canvas.width/3,this.gl_canvas.height/3,i.width,i.height)}if(null!==F&&!0===this.startLocation&&void 0!==this._canvas){null===q&&this.haveReceiveSessionMsg&&(this.severInterface.createSession(this.locationOption).task.then(t=>{0===t.data.err_code?q=t.data.data.session_id:(this.locationOption.onError({type:10003,msg:t.data.msg}),console.log(t.data.msg)),this.haveReceiveSessionMsg=!0}),this.haveReceiveSessionMsg=!1);let t=(new Date).getTime(),o=t-V,n=t-N;if(null!==q&&this.haveReceiveSessionMsg){let t={};if(o>this.minTimeQueryServer&&!H&&!this.haveTrackFrame&&void 0!==this.acc){if(this.haveTrackFrame=!0,""!==this.ak&&void 0!==this.ak){if(I.get_vpas_translation_from_geo)for(let t=0;t<3;t++)l[t]=I.get_vpas_translation_from_geo(t);if(-1!==l[0]&&-1!==l[1]&&l[0]!==Number.NaN&&l[1]!==Number.NaN&&""!==l[0]&&""!==l[1]){r[0]=l[0],r[1]=l[1],h=1;let t={type:h,prior:null,priorAccuracy:10,priorConfidence:0},e=a(r),i=1;t.prior=e,t.priorConfidence=i,Z[0]=t,this.with_bt_but_not_work=!1}else this.with_bt_but_not_work=!0,this.haveTrackFrame=!1}if(void 0!==this.renderer.priorCrossFloor&&!this.allSuccessProxy.firstTrackFrameSuccess){I.transform_map_coodinate_to_translation(this.renderer.priorCrossFloor[0],this.renderer.priorCrossFloor[1]);let t=[];for(let e=0;e<2;e++)t[e]=I.get_transform_vpas_translation(e);r[0]=t[0],r[1]=t[1],h=1;let e={type:h,prior:null,priorAccuracy:10,priorConfidence:0},i=a(r),o=1;e.prior=i,e.priorConfidence=o,Z[0]=e}s={pixels:i.data,pixelWidth:i.width,pixelHeight:i.height,phonetype:this.phonetype,lng:void 0,lat:void 0,posePriors:Z,odometry:F,ocrStatus:X,ocrCoordinate:$,acc:this.acc,deviceOrientation:this.orientation,floorId:this.locationOption.floor_id};let o=O(q,this._canvas,s,0,this.locationOption,this.userId);if(o!=={}&&!this.with_bt_but_not_work){let i=this.severInterface.sendTrackframe(o).trackframe;if(void 0===i)return void(this.haveTrackFrame=!1);V=(new Date).getTime(),Q+=1,i.then(i=>{if(this.haveTrackFrame=!1,!0===i.vpsStatus&&this.startLocation){X="",t.vpsStatus=i.vpsStatus,t.vpsPose=i.vpsPose,t.trackerPose=i.trackerPose;let o=this.algorithm.locationSuccessEvery(I,t);if(null===o)j=!1;else{N=(new Date).getTime(),j=!0,i.locX=o.locX,i.locY=o.locY,i.vpasX=o.vpasX,i.vpasY=o.vpasY,G=o.vpasX,Y=o.vpasY,this.allSuccessProxy.firstTrackFrameSuccess||(Object.assign(e,i,{wasmFunction:I}),this.allSuccessProxy.firstTrackFrameSuccess=!0,this.minTimeQueryServer=this._configData.minTimeQueryServer),K+=1;let t={locStatus:!0,locX:o.locX,locY:o.locY};this.locationOption.onLocateEvent(t)}}else{let t={locStatus:!1};this.locationOption.onLocateEvent(t)}-1===i.vpsStatusMsg&&(console.log("无效的车位号"),this.locationOption.onError({type:10009,msg:"无效的车位号"})),(!1===i.vpsStatus&&!1===this.allSuccessProxy.firstTrackFrameSuccess||!1===j)&&(n>5e3&&!1===W&&(this.locationOption.onError({type:10005,msg:"首帧定位超时5s"}),W=!0),n>8e3&&!1===z&&(this.locationOption.onError({type:10007,msg:"首帧定位超时8s"}),z=!0))}),this.haveTrackFrame=!1}}}}if(U&&this.allSuccessProxy.firstTrackFrameSuccess&&!H){let t=this.algorithm.locationOnceSuccessFun(I,this.renderer);if(null===t)return;let e={type:t.priorType,prior:null,priorAccuracy:10,priorConfidence:0};e.prior=t.posePriors,e.priorConfidence=t.priorConfidence,Z[0]=e,t.vpasX=G,t.vpasY=Y,this.locationOption.distanceOfNextPoint(t.distanceToNextPoint),this.locationOption.onEverySuccess(t),7===t.type?t.distance=s){let r=n.add(this.segments[i].direction().multiplyScalar(s));e.push(r),n=r.clone(),o+=s,s=t}else s-=a,n=this.segments[i].ep.clone(),i+=1,o=0;i>=this.segments.length&&(r=!0)}return e}}class st{constructor(t,e,i,o,s,n){this.THREE=t,this.scene=e,this.camera=i,this.onResLoaded=o,this.onScreenModelInfo=s.onScreenArrow,this.onScreenModel=void 0,this.loadArrowModel(n),this.position=new t.Vector3(0,-.05,-.25)}loadArrowModel(t){let e=this.THREE,i=this.onScreenModelInfo.arrowURL.split("/"),o=i[i.length-1],s=this.onScreenModelInfo.arrowURL.replace(o,""),n=this.onScreenModelInfo.arrowPosition,r=this.onScreenModelInfo.arrowRotation,a=this.onScreenModelInfo.arrowScale;const l=(new e.GLTFLoader).setPath(s);let h=this;l.load(o,(function(e){h.onScreenModel=e.scene,h.onScreenModel.position.set(n[0],n[1],n[2]),h.onScreenModel.scale.set(a[0],a[1],a[2]),h.onScreenModel.visible=!1,h.onScreenModel.rotateX(r[0]),h.onResLoaded(),console.log("Arrow on screen (3 dof) has loaded"),h.camera.add(h.onScreenModel),t.hasOnScreenArrowLoaded=!0}))}setScreenArrowPosition(t){this.position=t}reset(t){void 0!==this.onScreenModel&&(this.onScreenModel.visible=!1,t&&(this.camera.remove(this.onScreenModel),this.onScreenModel=void 0))}release(){void 0!==this.onScreenModel&&(this.onScreenModel.visible=!1,this.camera.remove(this.onScreenModel),this.onScreenModel=void 0)}hide(){void 0!==this.onScreenModel&&(this.onScreenModel.visible=!1)}update(t){void 0!==this.onScreenModel?(this.onScreenModel.visible=!0,this.onScreenModel.position.set(this.position.x,this.position.y,this.position.z),this.onScreenModel.quaternion.x=t.x,this.onScreenModel.quaternion.y=t.y,this.onScreenModel.quaternion.z=t.z,this.onScreenModel.quaternion.w=t.w,this.onScreenModel.rotateZ(Math.PI)):console.log("this.onScreenModel === undefined")}}class nt{constructor(t,e,i,o,s,n){this.THREE=t,this.scene=e,this.camera=i,this.onResLoaded=o,this.arrowRenderMode=2,this.arrowInfo=s.arrow,this.finalInfo=s.final,this.onScreenArrowCtrl=new st(t,e,i,o,s,n),this.arrows=[],this.allFinalWayPointsModel=[],this.loadArrowModel(n),this.loadFinalModel(0,0,0),this.inited=!1,this.oneMaterial=new t.MeshStandardMaterial({color:350973}),this.twoMaterial=new t.MeshStandardMaterial({color:41120}),this.allModels=[],this.allModelsStatus=[1,1,1,1,1,1],this.frameCount=0,this.intervalCount=15,this.showArrowCount=6,this.lastWayPointPosition=void 0,this.speed=s.arrow.arrowMoveSpeed,this.time=[],this.localWayPoints=[],this.destination=[],this.positionKF=null,this.mixer=null,this.clipAction=null,this.clip=null,this.clock=new t.Clock,this.moveArrow=null,this.localNextPoint=[30,0,0],this.localNextNextPoint=[0,20,0],this.localNextNextNextPoint=[0,0,0],this.newLocalNextPoint=[0,0,0],this.newLocalNextNextPoint=[0,0,0],this.cameraPosition=[0,0,0],this.moveStart=!0,this.totalTime=0,this.totalCountTime=0,this.moveArrowRenderMode=!0,this.moveArrowShowDistance=s.arrow.showDistance,this.finalShowDistance=s.final.showDistance,this.startTime=0,this.intervalTime=0,this.lastRadians=0,this.lostUpdateTime=0,this.segmentNum=2,this.locationOption=null,this.timeOut=this.arrowInfo.downloadTimeout}setScreenArrowPosition(t){void 0!==this.onScreenArrowCtrl&&this.onScreenArrowCtrl.setScreenArrowPosition(t)}loadFinalModel(t,e,i){let o=this.THREE,s=this.finalInfo.URL.split("/"),n=s[s.length-1],r=this.finalInfo.URL.replace(n,""),a=this.finalInfo.rotation,l=this.finalInfo.scale;const h=(new o.GLTFLoader).setPath(r);let c=this;h.load(n,(function(o){let s=o.scene;s.position.set(t,e,i),s.scale.set(l[0],l[1],l[2]),s.rotateX(a[0]),s.visible=!1,c.allFinalWayPointsModel.push(s),c.scene.add(s)}))}loadArrowModel(t){let e=this.THREE,i=this.arrowInfo.arrowURL.split("/"),o=i[i.length-1],s=this.arrowInfo.arrowURL.replace(o,""),n=this.arrowInfo.arrowPosition,r=this.arrowInfo.arrowRotation,a=(new e.GLTFLoader).setPath(s),l=this;a.load(o,(function(e){l.arrow_prototype=e.scene,l.arrow_prototype.position.set(n[0],n[1],n[2]),l.arrow_prototype.visible=!1,l.arrow_prototype.rotateX(r[0]),l.onResLoaded(),t.hasNavigationArrowLoaded=!0,console.log("Moving arrow has loaded")}))}setMoveArrow(){if(void 0===this.arrow_prototype)return;let t=this.arrow_prototype.clone();t.scale.set(100,100,100),t.rotateZ(Math.PI/2),t.rotateX(-Math.PI/2),t.visible=!1,this.moveArrow=t.clone(),this.moveArrow.position.set(0,0,0),1!==this.arrowRenderMode&&this.scene.add(this.moveArrow)}setArrow(t){let e=this.arrow_prototype.clone();e.position.set(t.x,t.y,t.z),e.scale.set(this.arrowInfo.arrowScale[0],this.arrowInfo.arrowScale[1],this.arrowInfo.arrowScale[2]),e.rotateZ(this.arrowInfo.arrowRotation[2]),e.rotateX(this.arrowInfo.arrowRotation[0]),e.rotateY(this.arrowInfo.arrowRotation[1]),e.visible=!1,this.arrows.push(e),this.moveArrow=e.clone(),this.moveArrow.position.set(this.arrowInfo.arrowPosition),1!==this.arrowRenderMode&&(this.scene.add(e),this.scene.add(this.moveArrow))}setArrowRenderMode(t){this.arrowRenderMode=t,console.log("this.arrowRenderMode = ",this.arrowRenderMode),0===this.arrowRenderMode&&void 0!==this.onScreenArrowCtrl&&this.onScreenArrowCtrl.reset()}updateRoute(t,e,i){this.lastWayPointPosition=t[t.length-1].clone(),t.push(e),this.locationOption=i;let o=(new Date).getTime(),s=0;for(;void 0===this.arrow_prototype;){if(this.locationOption.onResourceLoaded({status:-1}),(new Date).getTime()-o>=this.timeOut&&(this.loadArrowModel(),o=(new Date).getTime(),s+=1),2===s)return this.locationOption.onResourceLoaded({status:-2}),void console.log("load arrow model time is out")}this.locationOption.onResourceLoaded({status:0}),void 0!==this.allFinalWayPointsModel[0]&&(this.allFinalWayPointsModel[0].position.set(e.x,e.y,e.z-0),this.scene.add(this.allFinalWayPointsModel[0]));let n=new ot(t).sampling(1);this.arrows.length=0;for(let t=0;t=t*this.intervalCount&&this.frameCount<(t+1)*this.intervalCount)for(let e=0;e1&&(r=1),Math.acos(r)}getFootOfPerpendicular(t,e,i){let o=this.THREE;const s=e[0]-i[0],n=e[1]-i[1],r=e[2]-i[2];if(Math.abs(s)<1e-8&&Math.abs(n)<1e-8&&Math.abs(r)<1e-8)return e;let a=(t.x-e[0])*(e[0]-i[0])+(t.y-e[1])*(e[1]-i[1])+(t.z-e[2])*(e[2]-i[2]);return a/=Math.pow(s,2)+Math.pow(n,2)+Math.pow(r,2),new o.Vector3(e[0]+a*s,e[1]+a*n,e[2]+a*r)}decidePointBetweenTwo(t,e,i){if(void 0===t||void 0===e||void 0===i)return!1;let o=this.getFootOfPerpendicular(t,e,i),s=new this.THREE.Vector3(e[0],e[1],e[2]),n=new this.THREE.Vector3(i[0],i[1],i[2]);this.distanceCameraToFootPoint=L(o,t),this.segmentLength=L(s,n),this.footPointToFirstPointDistance=L(s,o);let r=new this.THREE.Vector3;r.subVectors(s,o);let a=new this.THREE.Vector3;a.subVectors(n,o);let l=r.dot(a)/(r.length()*a.length());l>1&&(l=1),l<-1&&(l=-1);let h=180*Math.acos(l)/Math.PI;return!(h>=0&&h<90)}update(t,e,i,o,s,n,r,a){if(0===s.length)return console.error("Error:::remainingWayPoints length is 0!"),[void 0,void 0,void 0,void 0];n||r||(this.isAlmostArrive=3===o||4===o||5===o||6===o||7===o||8===o||9===o),0===this.startTime||(this.intervalTime=(new Date).getTime()-this.startTime),this.startTime=(new Date).getTime();let l=this.THREE;if(!this.inited)return[0,void 0,void 0,void 0];if(this.moveArrowRenderMode){if(null!==this.moveArrow&&this.moveStart&&void 0!==this.clock){this.totalCountTime=0,this.moveArrow.visible=!0,this.time=[0],this.localWayPoints=[];let e=Math.sqrt(Math.pow(t.x-s[0][0],2)+Math.pow(t.y-s[0][1],2)),i=0,o=0,n=0,r=0;if(this.localWayPoints.push([t.x,t.y,0]),e>this.moveArrowShowDistance){let e=s[0][0]-t.x,i=s[0][1]-t.y,o=Math.sqrt(e*e+i*i);this.localWayPoints.push([t.x+this.moveArrowShowDistance*e/o,t.y+this.moveArrowShowDistance*i/o,0]),this.time.push(this.moveArrowShowDistance/this.speed),this.totalTime=this.time[1]}else{for(r=1,o=e,this.localWayPoints.push(s[0]),this.time.push(e/this.speed),this.totalTime=this.time[1];os.length-1);)i=Math.sqrt(Math.pow(s[r][0]-s[r-1][0],2)+Math.pow(s[r][1]-s[r-1][1],2)),o+=i,this.localWayPoints.push(s[r]),this.time.push(this.time[r]+i/this.speed),r++;if(o>=this.moveArrowShowDistance){n=this.moveArrowShowDistance-o+i;let t=s[r-1][0]-s[r-2][0],e=s[r-1][1]-s[r-2][1],a=Math.sqrt(t*t+e*e);this.localWayPoints[r][0]=this.localWayPoints[r-1][0]+n*t/a,this.localWayPoints[r][1]=this.localWayPoints[r-1][1]+n*e/a,this.time[r]=this.time[r-1]+n/this.speed,this.totalTime=this.time[r]}else r>1&&(this.localWayPoints.push(s[r-1]),i=Math.sqrt(Math.pow(s[r-1][0]-s[r-2][0],2)+Math.pow(s[r-1][1]-s[r-2][1],2)),this.time.push(this.time[r-1]+i/this.speed),this.totalTime=this.time[r])}let a=[];for(let t=0;t=this.totalTime&&(this.clipAction.stop(),this.mixer.uncacheAction(this.clipAction,this.moveArrow),this.positionKF,this.clip=null,this.moveArrow.position.set(this.camera.position),this.moveStart=!0,this.localWayPoints[1][0]+=1e-7,this.localWayPoints[1][2]=0,t.fromArray(this.localWayPoints),this.moveArrow.lookAt(t),this.moveArrow.rotateX(this.arrowInfo.arrowRotation[0]),this.moveArrow.rotateY(this.arrowInfo.arrowRotation[1]),this.moveArrow.rotateZ(this.arrowInfo.arrowRotation[2])),this.totalCountTime>=this.time[this.time.length-2]&&this.totalCountTime3)for(let e=1;e=this.time[e]&&this.totalCountTime1&&(p.x=this.localWayPoints[this.localWayPoints.length-1][0],p.y=this.localWayPoints[this.localWayPoints.length-1][1]);let y=this.calculateNaviArrowOrientation(t,p,c);f=y[1],u=y[0];let m=new l.Euler(Math.PI/2,u,0,"XYZ"),g=new l.Matrix4,v=new l.Matrix4;v.makeRotationFromEuler(m),g=(new l.Matrix4).getInverse(e),g.multiply(v);let w=new l.Euler;if(w.setFromRotationMatrix(g),0!==this.arrowRenderMode){let t=new l.Quaternion;t.setFromRotationMatrix(g),this.onScreenArrowCtrl.update(t)}if(!this.moveArrowRenderMode&&(fthis.finalShowDistance||7!==o)){for(let t=0;t{t.isMesh&&(t.material=s)}),i.panel=o}))}loadTextFont(){let t=this.THREE,e=this;(new t.FontLoader).load("https://ar-fm.cdn.bcebos.com/home_3d_model/vpas_applet/font/PingFang_SC_Regular_Regular.json",(function(t){e.font=t}))}reset(t){void 0!==this.textMesh&&(this.scene.remove(this.textMesh),t&&(this.textMesh=void 0)),void 0!==this.panel&&(this.scene.remove(this.panel),t&&(this.panel=void 0)),void 0!==this.font&&t&&(this.font=void 0)}createText(t,e,i){let o=this.THREE;if(void 0!==this.panel&&(this.panel.visible=!0),t!==this.last_message){void 0!==this.textMesh&&(this.scene.remove(this.textMesh),this.textMesh.geometry.dispose(),this.textMesh.material.dispose(),this.textMesh=void 0);let e=new o.MeshBasicMaterial({color:this.textColor,transparent:!0,opacity:1,side:o.DoubleSide}),i=this.font.generateShapes(t+"米",.15),s=new o.ShapeBufferGeometry(i);s.computeBoundingBox(),this.textMesh=new o.Mesh(s,e),this.textMesh.rotation.x=-Math.PI/2,this.textMesh.rotation.y=0,this.textMesh.add(this.panel),this.scene.add(this.textMesh),this.last_message=t,s.center()}this.textMesh.position.set(e.x,e.y,e.z-1.7),void 0!==this.textMesh&&void 0!==this.panel&&(this.textMesh.rotation.y=-D(this.textMesh.position,i),this.panel.rotation.x=-1*Math.PI/180,this.panel.position.set(0,0,-.1))}loadTextModel(t,e,i){void 0!==this.font&&this.createText(t,e,i)}hideTextModel(){void 0!==this.textMesh&&(this.textMesh.visible=!1),void 0!==this.panel&&(this.panel.visible=!1)}setVisible(t){void 0!==this.textMesh&&(this.textMesh.visible=t)}}class at{constructor(t,e,i,o,s,n,r,a){this.THREE=t,this.scene=e,this.configInfo=r,this.isShow=a,this.turnLeftAngleThreshold=this.configInfo.turnLeft.angleThreshold,this.turnRightAngleThreshold=this.configInfo.turnRight.angleThreshold,this.showDistance=15,n?(this.location=new t.Vector3(s.x,s.y,s.z),this.postLocation=new t.Vector3(i.x,i.y,i.z),this.preLocation=new t.Vector3(o.x,o.y,o.z)):(this.location=new t.Vector3(i.x,i.y,i.z),this.postLocation=new t.Vector3(s.x,s.y,s.z),this.preLocation=new t.Vector3(o.x,o.y,o.z)),this.isAppended=n,this.isLeftArrow=!1,this.model=void 0,this.angle=0,this.angleThreshold=15,this.isAppended&&(this.angleThreshold=10),this.isNormalArrow=!1,this.isLeft()?this.angle>this.turnLeftAngleThreshold?(this.loadModelLeft(),this.isLeftArrow=!0):this.isNormalArrow=!0:this.angle>this.turnRightAngleThreshold?(this.loadModelRight(),this.isLeftArrow=!1):this.isNormalArrow=!0,this.arTextCtrl=new rt(t,e,r),this.distance=Number.MAX_VALUE}reset(t){void 0!==this.model&&(this.scene.remove(this.model),t&&(this.model=void 0)),void 0!==this.arTextCtrl&&(this.arTextCtrl.reset(),t&&(this.arTextCtrl=void 0))}loadModelLeft(){let t=this.THREE;this.showDistance=this.configInfo.turnLeft.showDistance;let e=this.configInfo.turnLeft.URL,i=e.split("/"),o=i[i.length-1],s=e.replace(o,""),n=this.configInfo.turnLeft.scale,r=this.configInfo.turnLeft.rotation;const a=(new t.GLTFLoader).setPath(s);let l=this;a.load(o,(function(e){console.log("zuo.gltf loaded");let i=e.scene;i.scale.set(n[0],n[1],n[2]),i.visible=!0,i.rotateX(r[0]),i.rotateY(r[1]),i.rotateZ(r[2]),l.m_model=i;let o=new t.Object3D;o.add(i),l.model=o,l.model.position.set(l.location.x,l.location.y,-1.5),l.scene.add(l.model),l.model.visible=!1}))}loadModelRight(){let t=this.THREE;this.showDistance=this.configInfo.turnRight.showDistance;let e=this.configInfo.turnRight.URL,i=e.split("/"),o=i[i.length-1],s=e.replace(o,""),n=this.configInfo.turnRight.scale,r=this.configInfo.turnRight.rotation;const a=(new t.GLTFLoader).setPath(s);let l=this;a.load(o,(function(e){console.log("you.gltf loaded");let i=e.scene;i.scale.set(n[0],n[1],n[2]),i.visible=!0,i.rotateZ(r[2]),i.rotateX(r[0]),i.rotateY(r[1]),l.m_model=i;let o=new t.Object3D;o.add(i),l.model=o,l.model.position.set(l.location.x,l.location.y,-1.5),l.scene.add(l.model),l.model.visible=!1}))}isLeft(){let t=this.THREE,e=new t.Vector3,i=new t.Vector3;this.isAppended?(e.subVectors(this.location,this.preLocation),i.subVectors(this.postLocation,this.preLocation)):(e.subVectors(this.location,this.preLocation),i.subVectors(this.postLocation,this.location)),e.normalize(),i.normalize();let o=new t.Vector3;o.crossVectors(e,i);let s=e.dot(i)/(e.length()*i.length());s>1?s=1:s<-1&&(s=-1),this.angle=180*Math.acos(s)/Math.PI;let n=!1;return n=this.isAppended?o.z>0:o.z<0,n}setVisible(t){void 0!==this.model&&(t&&this.distancethis.showDistance)this.model.visible=!1,this.arTextCtrl.hideTextModel();else{this.model.visible=!0;let e=Math.round(this.distance);this.arTextCtrl.loadTextModel(e,this.location,t)}return this.model.position.set(this.location.x,this.location.y,-1.5),this.model.rotation.z=D(this.model.position,t),e=null,[this.distance,this.isLeftArrow,this.location]}}class lt{constructor(t,e,i,o,s){this.THREE=t,this.scene=e,this.isUp=o,this.configInfo=s,this.showDistance=15,this.location=new t.Vector3(i.x,i.y,i.z),this.model=null,this.isUp?this.loadModelUp():this.loadModelDown(),console.log("Load EscalatorCtrl"),this.arTextCtrl=new rt(t,e,s),this.distance=Number.MAX_VALUE}reset(t){null!==this.model&&(this.scene.remove(this.model),t&&(this.model=null)),void 0!==this.arTextCtrl&&(this.arTextCtrl.reset(),t&&(this.arTextCtrl=void 0))}setVisible(t){null!==this.model&&(t&&this.distancethis.showDistance)this.model.visible=!1,this.arTextCtrl.hideTextModel();else{this.model.visible=!0;let e=Math.round(this.distance);this.arTextCtrl.loadTextModel(e,this.location,t)}return this.model.position.set(this.location.x,this.location.y,-1.5),this.model.rotation.z=D(this.model.position,t),e=null,[this.distance,this.isUp,this.location]}}class ht{constructor(t,e,i,o,s){this.THREE=t,this.scene=e,this.isUp=o,this.configInfo=s,this.showDistance=15,this.location=new t.Vector3(i.x,i.y,i.z),this.model=null,this.isUp?this.loadModelUp():this.loadModelDown(),console.log("Load ElevatorCtrl"),this.arTextCtrl=new rt(t,e,s),this.distance=Number.MAX_VALUE}reset(t){null!==this.model&&(this.scene.remove(this.model),t&&(this.model=null)),void 0!==this.arTextCtrl&&(this.arTextCtrl.reset(),t&&(this.arTextCtrl=void 0))}setVisible(t){null!==this.model&&(t&&this.distancethis.showDistance)this.model.visible=!1,this.arTextCtrl.hideTextModel();else{this.model.visible=!0;let e=Math.round(this.distance);this.arTextCtrl.loadTextModel(e,this.location,t)}return this.model.position.set(this.location.x,this.location.y,-1.5),this.model.rotation.z=D(this.model.position,t),e=null,[this.distance,this.isUp,this.location]}}let ct=1,dt=1;class ft{constructor(t,e,i,o,s){this.THREE=t,this.scene=e,this.camera=i,this.name=null,this.res_type=0,this.res_url=null,this.position=[0,0,0],this.orientation=[0,0,0],this.scale=1,this.event_type=0,this.event_url=null,this.showing=1,this.rotate_type=1,this.poiModel=null,this.box=null,this.eventCallBack=o,this.configInfo=s,this.rayCaster=new t.Raycaster,this.touchPoint=[0,0]}updateData(t,e,i,o,s,n,r,a,l,h){this.THREE;this.name=t,this.res_type="img"===e?0:1,this.res_url=i,console.log("this.res_type = ",this.res_type),this.position=JSON.parse(o),this.orientation=""===s?[0,0,0]:JSON.parse(s),this.event_type=r,this.event_url=a,this.showing=l,this.rotate_type=h,this.scale=n;let c=this,d=this.res_url.split("://");"http"===d[0]&&(this.res_url=d[0]+"s://"+d[1]),0===this.res_type?wx.getImageInfo({src:this.res_url,success(t){ct=t.width,dt=t.height,c.createPoiContent(c.poiModel)}}):c.createPoiContent(c.poiModel)}createPoiContent(t){let e=this.THREE;switch(this.res_type){case 0:let t=(new e.TextureLoader).load(this.res_url),i=(new e.TextureLoader).load(this.res_url);i.center=new e.Vector2(.5,.5),i.rotation=Math.PI,i.flipY=!1;let o=[new e.MeshBasicMaterial({map:t,side:e.FrontSide}),new e.MeshBasicMaterial({map:i,side:e.BackSide})],s=new e.PlaneGeometry(1,dt/ct);for(let t=0,e=s.faces.length;t0){if(this.intersected=e[0].object,this.intersected.name==="poi"+this.name){let t={};t.poiName=this.name,t.eventType=this.event_type,t.eventUrl=this.event_url,this.eventCallBack.onPoiEvent(t)}}else this.intersected=null}update(){if(null===this.poiModel)return;if(!this.showing&&null!==this.poiModel)return this.poiModel.visible=!1,void(null!==this.box&&(this.box.visible=!1));if(L(this.poiModel.position,this.camera.position)>this.configInfo.mapPoi.showDistance)return this.poiModel.visible=!1,void(null!==this.box&&(this.box.visible=!1));switch(this.poiModel.visible=!0,null!==this.box&&(this.box.visible=!0),this.rotate_type){case 1:this.poiModel.rotateY(.1);break;case 2:this.poiModel.rotation.y=-D(this.poiModel.position,this.camera.position),null!==this.box&&(this.box.rotation.y=-D(this.box.position,this.camera.position))}}}class ut{constructor(t,e,i,o,s){this.THREE=t,this.scene=e,this.isParkToMall=o,this.configInfo=s,this.showDistance=15,this.location=new t.Vector3(i.x,i.y,i.z),this.model=null,this.isParkToMall?this.loadPark():this.loadMall(),this.arTextCtrl=new rt(t,e,s),this.distance=Number.MAX_VALUE}reset(t){null!==this.model&&(this.scene.remove(this.model),t&&(this.model=null)),void 0!==this.arTextCtrl&&(this.arTextCtrl.reset(),t&&(this.arTextCtrl=void 0))}setVisible(t){null!==this.model&&(t&&this.distancethis.showDistance)this.model.visible=!1,this.arTextCtrl.hideTextModel();else{this.model.visible=!0;let e=Math.round(this.distance);this.arTextCtrl.loadTextModel(e,this.location,t)}return this.model.position.set(this.location.x,this.location.y,-1.5),this.model.rotation.z=D(this.model.position,t),[this.distance,this.isParkToMall,this.location]}}class pt{constructor(t,e,i,o,s){this.THREE=t,this.scene=e,this.isStepLadderUp=o,this.configInfo=s,this.showDistance=15,this.location=new t.Vector3(i.x,i.y,i.z),this.model=null,this.isStepLadderUp?this.loadStepLadderUp():this.loadStepLadderDown(),this.arTextCtrl=new rt(t,e,s),this.distance=Number.MAX_VALUE}reset(t){null!==this.model&&(this.scene.remove(this.model),t&&(this.model=null)),void 0!==this.arTextCtrl&&(this.arTextCtrl.reset(),t&&(this.arTextCtrl=void 0))}setVisible(t){null!==this.model&&(t&&this.distancethis.showDistance)this.model.visible=!1,this.arTextCtrl.hideTextModel();else{this.model.visible=!0;let e=Math.round(this.distance);this.arTextCtrl.loadTextModel(e,this.location,t)}return this.model.position.set(this.location.x,this.location.y,-1.5),this.model.rotation.z=D(this.model.position,t),[this.distance,this.isStepLadderUp,this.location]}}class yt{constructor(t,e,i){this.THREE=t,this.scene=e,this.location=new t.Vector3(i.x,i.y,i.z),this.distance=Number.MAX_VALUE}reset(){}setVisible(){}update(t){let e=new this.THREE.Vector3;return e.subVectors(this.location,t),e.z=0,this.distance=e.length(),[this.distance,0,this.location]}}let mt,gt,vt,wt;class bt{constructor(t,e,i,o,s){this.THREE=t,this.canvas=e,this.onResLoaded=i,this.configInfo=o,this.minCoverPointDistance=this.configInfo.interaction.minCoverPointDistance,this.renderer=null,this.camera=null,this.scene=null,this.initScene(this.THREE,this.canvas),this.arrowCtrl=new nt(t,this.scene,this.camera,i,this.configInfo,s),this.textCtrl=new rt(t,this.scene,this.configInfo,this.camera,i),this.wayPointCtrls=[],this.wayPointCtrlsClone=[],this.wayPointCtrlsStatus=[],this.driftAwayDistanceThreshold=5,this.driftAwayAngleThreshold=60,this.driftAwayAngle=0,this.nextLocation=void 0,this.nextNextLocation=void 0,this.final=void 0,this.finalClone=void 0,this.type=-1,this.way_point_index=0,this.min_distance=Number.MAX_VALUE,this.next_point_distance=Number.MAX_VALUE,this.allMapPois=[],this.touchPoint=[0,0],this.rayCaster=new t.Raycaster,this.naviData=void 0,this.haveFoundNextPoint=!1,this.cameraToLstFootPointDistance=Number.MAX_VALUE,this.distanceCameraToFootPoint=0,this.segmentLength=0,this.footPointToFirstPointDistance=0,this.nextPointIsFinal=!1,this.threshold_to_next_point=5,this.wayPointIndex=[],this.wayPointindexClone=[],this.nextIsFinal=!1,this.nextIsTransfer=!1,this.lastNextPoint=[0,0,0],this.lostUpdateTime=0,this.testLastNextPoint=void 0,this.newLocalWayPoints=[],this.localWayPoints=[],this.isInited=!1}screenCoordinate(t){if(this.touchPoint[0]=t.x/(this.canvas.width/2)*2-1,this.touchPoint[1]=-t.y/(this.canvas.height/2)*2+1,this.THREE){let t=new this.THREE.Vector3(this.touchPoint[0],this.touchPoint[1],.5).unproject(this.camera);this.rayCaster.set(this.camera.position,t.sub(this.camera.position).normalize());for(let t=0;t{console.log(t.data),e(t.data)},fail:t=>{console.log("error message = ",t.data)}})}generateOtherRoute(t,e,i,o,s,n){this.THREE;for(let r=s;r3))break;this.generateOtherRoute(t,e,i,o,s,n)}}}updateOnScreenArrowPosition(t){this.arrowCtrl.setScreenArrowPosition(t)}drawRoute(t,e,i,o,s){let n=this.THREE;this.naviData=t,this.arrowCtrl.setArrowRenderMode(o.ArrowRenderMode.mode);let r=o.ThreeDofArrowPosition.position;this.arrowCtrl.setScreenArrowPosition(new n.Vector3(r[0],r[1],r[2])),this.final=new n.Vector3(0,0,0),1===o.InputCoordinateMode.mode?(this.final=e,this.finalClone=new n.Vector3(this.final.x,this.final.y,this.final.z)):(i.transform_map_coodinate_to_translation(e.x,e.y),this.final.x=i.get_transform_vpas_translation(0),this.final.y=i.get_transform_vpas_translation(1),this.finalClone=new n.Vector3(this.final.x,this.final.y,this.final.z));let a=[],l=[];for(let e=0;e0){let s,a=null,h=null,c=t[e-1];if(s=e===t.length-1?this.final:t[e+1],1===o.InputCoordinateMode.mode)a=new n.Vector3(c.x,c.y,0),h=new n.Vector3(s.x,s.y,0);else{i.transform_map_coodinate_to_translation(c.x,c.y);for(let t=0;t<2;t++)l[t]=i.get_transform_vpas_translation(t);if(a=new n.Vector3(l[0],l[1],0),e===t.length-1)h=new n.Vector3(s.x,s.y,0);else{i.transform_map_coodinate_to_translation(s.x,s.y);for(let t=0;t<2;t++)l[t]=i.get_transform_vpas_translation(t);h=new n.Vector3(l[0],l[1],0)}}let d=new at(this.THREE,this.scene,r,a,h,!1,this.configInfo),f=new at(this.THREE,this.scene,r,a,h,!1,this.configInfo);if(d.isNormalArrow){let t=new yt(this.THREE,this.scene,r),e=new yt(this.THREE,this.scene,r);this.wayPointCtrls.push(t),this.wayPointCtrlsClone.push(e)}else this.wayPointCtrls.push(d),this.wayPointCtrlsClone.push(f),this.wayPointIndex.push(this.wayPointCtrls.length-1),this.wayPointindexClone.push(e)}let a,h,c=!0,d=!0;switch(s.pointType){case 4:c=!0,a=new lt(this.THREE,this.scene,r,c,this.configInfo),h=new lt(this.THREE,this.scene,r,c,this.configInfo),this.wayPointCtrls.push(a),this.wayPointCtrlsClone.push(h),this.wayPointIndex.push(this.wayPointCtrls.length-1);break;case 5:c=!1,a=new lt(this.THREE,this.scene,r,c,this.configInfo),h=new lt(this.THREE,this.scene,r,c,this.configInfo),this.wayPointCtrls.push(a),this.wayPointCtrlsClone.push(h),this.wayPointIndex.push(this.wayPointCtrls.length-1);break;case 2:c=!0,a=new ht(this.THREE,this.scene,r,c,this.configInfo),h=new ht(this.THREE,this.scene,r,c,this.configInfo),this.wayPointCtrls.push(a),this.wayPointCtrlsClone.push(h),this.wayPointIndex.push(this.wayPointCtrls.length-1);break;case 3:c=!1,a=new ht(this.THREE,this.scene,r,c,this.configInfo),h=new ht(this.THREE,this.scene,r,c,this.configInfo),this.wayPointCtrls.push(a),this.wayPointCtrlsClone.push(h),this.wayPointIndex.push(this.wayPointCtrls.length-1);break;case 7:d=!1,a=new ut(this.THREE,this.scene,r,d,this.configInfo),h=new ut(this.THREE,this.scene,r,d,this.configInfo),this.wayPointCtrls.push(a),this.wayPointCtrlsClone.push(h),this.wayPointIndex.push(this.wayPointCtrls.length-1);break;case 8:d=!0,a=new ut(this.THREE,this.scene,r,d,this.configInfo),h=new ut(this.THREE,this.scene,r,d,this.configInfo),this.wayPointCtrls.push(a),this.wayPointCtrlsClone.push(h),this.wayPointIndex.push(this.wayPointCtrls.length-1);break;case 9:c=!0,a=new pt(this.THREE,this.scene,r,c,this.configInfo),h=new pt(this.THREE,this.scene,r,c,this.configInfo),this.wayPointCtrls.push(a),this.wayPointCtrlsClone.push(h),this.wayPointIndex.push(this.wayPointCtrls.length-1);break;case 10:c=!1,a=new pt(this.THREE,this.scene,r,c,this.configInfo),h=new pt(this.THREE,this.scene,r,c,this.configInfo),this.wayPointCtrls.push(a),this.wayPointCtrlsClone.push(h),this.wayPointIndex.push(this.wayPointCtrls.length-1)}}for(let t=0;tthis.driftAwayAngleThreshold&&n>this.driftAwayDistanceThreshold){let t=new o.Vector3;if(t.crossVectors(r,a),t.z<0){return 0}return 1}return 2}getFootOfPerpendicular(t,e,i){let o=this.THREE;const s=e.x-i.x,n=e.y-i.y,r=e.z-i.z;if(Math.abs(s)<1e-8&&Math.abs(n)<1e-8&&Math.abs(r)<1e-8)return e;let a=(t.x-e.x)*(e.x-i.x)+(t.y-e.y)*(e.y-i.y)+(t.z-e.z)*(e.z-i.z);return a/=Math.pow(s,2)+Math.pow(n,2)+Math.pow(r,2),new o.Vector3(e.x+a*s,e.y+a*n,e.z+a*r)}decidePointBetweenTwo(t,e,i){if(void 0===t||void 0===e||void 0===i)return[!1,[0,0,0]];let o=this.getFootOfPerpendicular(t,e,i);this.distanceCameraToFootPoint=L(o,t),this.segmentLength=L(e,i),this.footPointToFirstPointDistance=L(e,o);let s=new this.THREE.Vector3;s.subVectors(e,o);let n=new this.THREE.Vector3;n.subVectors(i,o);let r=s.dot(n)/(s.length()*n.length());r>1&&(r=1),r<-1&&(r=-1);let a=180*Math.acos(r)/Math.PI;return a>=0&&a<90?[!1,o]:[!0,o]}updateNewLocalWayPoints(t,e,i){let o,s=this.THREE,n=[0,0,0];if(o=0===this.way_point_index?this.decidePointBetweenTwo(this.camera.position,new s.Vector3(t[0][0],t[0][1],t[0][2]),new s.Vector3(t[1][0],t[1][1],t[1][2])):this.decidePointBetweenTwo(this.camera.position,this.wayPointCtrls[this.way_point_index-1].location,this.wayPointCtrls[this.way_point_index].location),n=o[1],!i){for(let i=0;i0&&this.wayPointIndex.length>1){for(let t=0;tthis.min_distance&&(this.min_distance=p,this.next_point_distance=p),this.min_distance===Number.MAX_VALUE||this.next_point_distance===Number.MAX_VALUE)return this.type=-1,[u,c,this.next_point_distance,this.type,2,this.newLocalWayPoints]}let y=[0,0,0],m=[0,0,0],g=0;if(this.localWayPoints=[],this.wayPointCtrls.length>0){for(let t=this.way_point_index;t1){y=this.updateNewLocalWayPoints(this.localWayPoints,this.newLocalWayPoints,this.isInited),this.isInited=!0;let t=this.localWayPoints[0][0]-y.x,e=this.localWayPoints[0][1]-y.y,i=Math.sqrt(t*t+e*e),o=Math.sqrt(Math.pow(y.x-this.localWayPoints[0][0],2)+Math.pow(y.y-this.localWayPoints[0][1],2));if(m[0]=this.camera.position.x+o*t/i,m[1]=this.camera.position.y+o*e/i,g=Math.sqrt(Math.pow(this.camera.position.x-m[0],2)+Math.pow(this.camera.position.y-m[1],2)),this.min_distance=g,this.min_distancethis.wayPointIndex[this.wayPointIndex.length-1]||this.nextIsFinal)&&(Math.abs(this.final.x-this.wayPointCtrls[this.wayPointCtrls.length-1].location.x)<1e-7&&Math.abs(this.final.y-this.wayPointCtrls[this.wayPointCtrls.length-1].location.y)<1e-7?(this.arrowCtrl.hideFinalModel(),this.arrowCtrl.hideMoveArrowModel()):(this.next_point_distance=u,this.type=7,this.way_point_index===this.wayPointCtrls.length-1&&(this.min_distance=u,this.nextLocation=this.finalClone),void 0!==this.wayPointCtrls[this.way_point_index]&&this.wayPointCtrls[this.way_point_index].setVisible(!1),void 0!==this.wayPointCtrlsClone[this.way_point_index]&&this.wayPointCtrlsClone[this.way_point_index].setVisible(!1)));let v=this.arrowCtrl.update(this.camera.position,a,u,this.type,this.localWayPoints,this.nextIsFinal,this.nextIsTransfer,this.final);v[0];if(void 0!==v[1]){let t=(new s.Matrix4).getInverse(v[1]);h.multiply(t),c.setFromRotationMatrix(h,"XYZ")}let w=0,b=v[2];w=Math.abs(b)>20&&b<0?1:Math.abs(b)>20&&b>0?0:2;for(let t=0;t{this.updateRenderer()}),this.renderer.renderWebGL()}requestVPASLocation(t){this.locationOption=t,function(t){wx.getNetworkType({success(e){t.onNetWork({type:e.networkType,msg:"获取网络类型"})},fail(e){t.onError({type:10008,msg:"监听网络信号失败"})}}),wx.onNetworkStatusChange((function(e){e.isConnected?t.onNetWork({type:e.networkType,msg:"监听到网络状态发生变化"}):t.onError({type:10008,msg:"监听网络信号失败"})}))}(t),this.platform.setLoactionData(t,this._configData),this.resetARNavigationAgain(),this.requestGetPOi(t)}updateBluetoothLocation(t,e){this.platform.updateBluetoothLocation(t,e)}setUserId(t){this.platform.setUserId(t)}get2DPosition(){}getScreenCoordinate(t){this.renderer.screenCoordinate(t)}requestGetPOi(t){this._configData.map.forEach(e=>{if(e.floor_id===t.floor_id&&void 0!==e.case_id&&""!==e.case_id){this.severInterface.getMapPoi(Number(e.case_id)).getPoi.then(e=>{this.renderer.setPoiList(e.data.data.pois,t)})}})}setNavigationData(t,e,i,o){this.renderer.drawRoute(t,e,i,this._configData,o)}startARNavigation(){_t=!0,this.platform.startARTrue(_t)}resetARNavigationAgain(){xt=!1,this.platform.resetARTrue(xt)}resetRender(){this.renderer.reset(),void 0!==this.intervalId&&clearInterval(this.intervalId)}releaseRender(){this.renderer&&this.renderer.dispose()}finishARNavigation(t){_t=!1,xt=!0,void 0!==this.platform&&(this.platform.stopARTrue(xt),this.platform.release(t)),void 0!==this.severInterface&&this.severInterface.destroylocatesession(),void 0!==this.renderer&&this.renderer.reset(t)}}function Tt(){}function At(t){wx.createSelectorQuery().select(t).fields({node:!0}).exec(t=>{const e=t[0].node;vt=e,wt.setCanvasData(vt)})}function Mt(){let t=this;return new Proxy({firstTrackFrameSuccess:!1,hasNavigationArrowLoaded:!1,hasOnScreenArrowLoaded:!1},{set:function(e,i,o,s){return(!0===e.firstTrackFrameSuccess&&!0===e.hasOnScreenArrowLoaded&&"hasNavigationArrowLoaded"===i&&!0===o||!0===e.hasNavigationArrowLoaded&&!0===e.hasOnScreenArrowLoaded&&"firstTrackFrameSuccess"===i&&!0===o||!0===e.hasNavigationArrowLoaded&&!0===e.hasOnScreenArrowLoaded&&"hasOnScreenArrowLoaded"===i&&!0===o)&&t.locationOption.onFirstSuccess(t.firstTrackFrameSuccessResponseData),Reflect.set(e,i,o,s)}})}}]);void 0===VPASSDK&&console.error("esm-webpack-plugin: nothing exported!");const _VPASSDK$SDKWrapper=VPASSDK.SDKWrapper;export{_VPASSDK$SDKWrapper as SDKWrapper}; \ No newline at end of file diff --git a/pages/index/close.png b/pages/index/close.png new file mode 100644 index 0000000000000000000000000000000000000000..47bcaaf78eb7f59f28bffc53527f97318e80f7bc GIT binary patch literal 596 zcmV-a0;~OrP)(A z!Y~wvTQE`YG$9g=Aa7v#W1Ls+5qJaf$;2m7??{YpJOLvixI0aZ(L`L`F-{0<>~uYi zH~nr1&D#Dx)~$y!X0cc-7K`QoD63p7TzBWNQgQa`brw!0FN~06?CEqGsPro-UHtm) zMY4QT`jjKlb}kqZtrMpgkNpf|x7w#8A>18oU$j7{w_V$P~y5A2HtZ zy}=zrqVy2QA$09XlA;eY4S zN3`ONh^GfEmEt)Jg$GCkfGmkLsKNtUOK6d-<+KcCcz{d*$djNB4=5FLr~yfTl6**~ z%X-@+6fHZ}K_-wFK7m?-WC^W%&qtD9u1-o*iUZnrAa9eRDgd+462R`TCM60BsFnw& zBnk->t!+$5C=2KoX4Dc&0#sEcr3AW|6OPk>`0YpSZL_|bHL_|bHL_|bHL_|bHL_|bHL_|bHL_|bHL_|bH>=!5qj1zC- zNjf}RD0ogGEWtiQ@wF*5)M^yxxtJ$z+A6U zx@*G}F8${zwGIIhj6f%^;Nn*~T%_Fo6!tOluK*HD4n|1|OO&!iRh4M&8j|{W>neU0 zrjZ9=l4zcvm3L077a$OV5r`zuRm$)(>~j=Epppzy%77q?g_cU*eP0UMXl6>4S(qlJ z0A@L=(tgvpSRB&;Knyu+Q)w;{5r9hjS=P7QKhv%RpIul48B;5y0 zfmKLk2_i{U>PP<3lUmwu0gd5^gEh(c(q@Z@mY^dB5YY%)%GlaNug$UD`IA@wUcC)H z!SOe-!e@!j3NQrfg&kN}5uifU#5O`rahpdm-wKgHP2nrfYOK#-h#J`j;GAx4ux|-O z1++oU$vSKUDm}1boS;Sqy~Ml|am; z6vxs?D7D#8ZNfG{W)UE4HupS%s4!M&fb)`18i}Oq69pH zVh^#EIiL&nbQ4Auc>Y})7@S2OAMc(~mx~-uQP_283o%?#8K&qtwu9q)mOz?3XVgp3 z0&71~>#a%TTcXGL>17kvCK2I53G41?Qk8u=WVg)2t*bB z8UzGOAz(AWoKXH)76=K{a{~DsKaiH_Y!iM9p`lVjK%=3NdA)qL}u$`HF@_fn)!Uk3o1WLPKanqNtgvb0+pV z_MQ@ra1z3!(WE%6naS1j8671;5326HCamZ_4O2odglwX6ch~8LVyYX^H!n9e8 zU9k5Eq~Ij41c5-H0)D=Ue>o2t_ki??Lm87;9F5>b2!Lm<;4+o!*(PDoo5I@XVT?M& zCXAurxu^dP&qD{W6r&-LSD_&)y{@`nPa)?5g`B>$XS?w#g%?k}ju)W?^kT>yt~Ako zN`zJ-wi$J+Hsp0z?CtqL30ye-7QWm>C*lcZM4qdy$TKY;vX%l`qB*Z8exY|eX$`-b z3O%U0_ouXy4l~N&ED`B4;pn1iQLQ8N~%UP4#fc>*BjFsU8&hi}h<8M}r%guWa-CL4t#3m*lcLbRi&ZCu* zPrr#5-aV~?OkrV!BvTy9XbRC>$uY5zS&80wqx-JRS#}AeiwoMY(xk+K7O18iyCM>(DbSlk zCiI`KmBQWjEj^I|wT(h81?7RY1L=`vgv(TEt9475=f(1?xTx-fKT{(b+2`$uo32vz z&AK4E^eqjE)NQ|r^B6bDPm<{#TI+6o$mVQM5QrB5(nFuUdOFO$JC=BF+usYVmpj|n zx$7HkhgN<%Z_RSIp2ED+bkFBd<6jcJZ^Dq*zJCM9uAbSxO`G&`=OG+xv_?$MM(n6a z+irW4W@)j_-jp?hvom^4AbQ}7P1nA+1@DUTib1KNuFul_ANnS=IYiL zbwR_Sw*+Fz6ViM?FW&uYN)u-+HpI!^Ru?;vo)yp%b9L*J=@Mt(8WLIO;VoNWmyi#E z=Ni>ZJ*=5f-?DAcx>vVZ0Vin?`T1EMyYP%&5{SC97k8rBng(vph!nNolkn#i zJGTkPEx_LvnXB8r6%bZtcIySf4}>L}rOz+_M!f>N3|6e6MhfYUmp`1*qDH>XNXmto zleB2N_0!>zTTW~3ivCHUz-!;TfXe*x6!%V3{Pbu$gxlfYcI%gFZ%V_bkVK&r>E79a z=xy!|fygfOHkEW`?zOVEAC%Vs)lVF30c*brsftX8f(_*ceYYXS{xxAkcn^Ald<6CD z@NsgIdU??^r~)=D=gVQ2eXT@?_=eSXL)QaBWviFI?~y1?4-iFyYqb)p370laxYa&AyxJ7E(&u7DYhy|5106U`XbjMW7cm61SgAp7vpoH)y` z;u1-%t9l}RT@&Nx8POqqaK1S6435tFhKTa*4uKGxu!fje$}D?gd_IRIdhI7_9dlTL z5nYUIn9=x$)=iCIE>N-;r;$h7fke+S>Oeh!KZ(9oJ$wx>5lJ>6hcSulFUjqBzI8Nq z{`l74PV$^eKf@r;H89=Vr7X#=lbV^73W5K z21w(iy;fKyei!s_UDyy_e)=t3p;zbsrum@)*!bn&s@ChrcoE*_Xp8TTC2${=@%f3@ z)U!gDd4g_l^y&+0<1hXdUr@Kr_d6;*JekfMyN6W#o4u9BhE5f>8{fa741^_m#+6yG z2R-*X9al&Q+Pudwf8z;2ylrjJcY^1q4BPB&=d%@rm9f05+i|HLQ029>-F68%p$zNB@j49M({Q3p9aq)NOwZIzZ0{Vlkn{-T06*CnJH{z;)xd z8LUu42srx>h9wUpHeoGMJDwD>W+7+NQ$}yBTw%S7pRB}d;y|PBWWBd^fAoU*&M<{pRGZdZ$y7HZj*o5so z$~izaJHGeP4n!5aQO<|PNu4M_{1Hu{u(~wHDW-k>S`SGez4eP!^qmi7J?86KaVANg!0P2pu4sFR7ra9=2hXo$9?wa0hlUl`3lK#OrtwTHu*CaG4G- zLRZMj*eh0P5BqX${Jg*fE*yUoFF-@+RV`gBS}4y5{T>Ia*nw5bv;p;XK9JPc0ynpjKrNu^<`_edr4R$X_3?oa*M+r#RU%x4 zl)8{PSv|3W;}6iug?#SZtP*`25>Q5y_aSy$*DL^ki5G!D7q@7>?YE~Y-uoi335#5_GY`@Xd zzJVAIE9=Zzsi(c^l5C#7h{ICuRU}Bz9oj%2Nw02gVgFsLa z7|XxFr6h$56!S7gz6|>e!(Tz!gPPctRe5#pcfp0b48xbYw=MOenl3qbah2{~e9oUR zC9Ko=Ym~-IA(|~e`5niN8#nGPihCa1+{};o_eM%7Bq%x=4(rWc>}QAzbnmWky$AI5 z!aXn=Z7SHL$}Yp-BmCVR`}M4zQZ8*e=X@;CIht@X?M?Et zuprW>^U*h(I*!W2vY$;qujV;Mwu~0;yZ81NpMLn+Q%^m$2|J7(B@mTkdhOa54-W>( zgTo;pKW#>(FrZT4LRZ8Z_mRFKZ+OdL$RC&Ci2Q+Y)0rP}{znuqh1UhG-#YtD`GYJgj?~>B42GCxBUR_7 zk4%iw_#2QzDrq8B#SgpdIOyJh3OnP9ADMXMy)u4VLB_p|8C*J?2D*5JI|#2Z^75-h znU2P<1OGR90;P|ciIcN~<@NM3(a&r1oMkZ1uPXzaZh`sjPd6Xt#@wh0;d_y(Paokm~e}10Kl|yRE zq0CZE{_cLGKKbDf@Bc0A0CsFFEKL{w5HZ)9LzdF_sqJ?*fAMuKkixhnA&jVvyk6IhxEpr`-?!B<_jq%!z|^3 zL@<)Wyx?g<#R`S~$|Dyp{nv%8-#aR_EHjnM{RyPe!AyrOAWg^Ls-;MDIvh7Y6cLD< zCL^9Go{Z^<34jw>7FmY66gUqi{shLdFCn6`PM=d+i86i-MROvDj-QjJ_%cqP?kAK_ zm2yYGZ2s%QWdm0ZiB6OB72v*CMh`RK@H)xDoZIIB>sLx9EZq`Oj)~2&6_`n~V=c>$ z5hy9(e@0OJ@xZ)Gz;8CcZKfAXRWizLZVE0GddmxQFDE5ei~Q6QiS?PB>Z(vFhhsTr zn+10yk-~)KR7q!0hFna%l#?Jrj`DHS!YtJFKj>wFY5L6ex6|bNa?F-ODLI3*0m? zF_||xi$x9HG&qy1Cfi7pSHI}xP=U^iHqBxW`WcImS+*}?Bx#h?S<(kHr>If9t%;G5h^49-;^c&bA?6@81+O^M*(;N3Ee4Y#w zEQ+GcLz0ZIQ(I%Ea6va$?h~S1X4+PySjWh<1f!tln&ZI)nFV=Kl<_Je3e^r8&C8hB zavPTmqf@i@%A5Kg(_NMMGE&IIlUsi#zXeMT{alKkBe(ISHXhDojXTGIei)8ZrmLSx z73K34%9Rt8*;NJpdSm0kU!6FiMzBNJ6+_~!TerURyWb7|iZq3X%K>JUD=llNX-Vk4 z)8DxQ-f5j03X;jvU**1tcYK|*GEHR2ZQ-;3-1;%@iIskg!ls?r>L}yZ?#5p^=HnPw z13%tMT;(&4<14@$OCoL-Xyoa%F{Uz4A}vhSXLr8Nu0HkDAKZW)#;y>^;r;hNek8r; z@E?(W^aHM$!ZatWy4p%$`J)uS^My6cn|s#XNi0pWp+09xWc-@f7@0n0JPG%zOs~m8 z$4#%ft5Fjt+g?&#yDn`6(^@zN6(SDQT1@?_Fb=O98_PN!PNyTEsrr0e4vA@GSy!~F zj?2fOxI0LOACW5mo28}S{|t5syGkI3pa1-WdmjD%y^kMB4?Rw*dcRE!I? zDh|wfI#$xl@bY>RCLGa{h{H;5I_XzmT6vL9hLz2o&L6j9sdr9NG#}+P&)}t#!VIXp zM59}Ip8opUwJ$&V@sFRp3%iV75Xi^1Yo9)vrbnL0^U-&yPQT~e{U!_a8#&$=%!z$n z)rtAgh=jcFyI0(b!bM=pCy{%PDJ}8XO*TVD`XyL*t>bb2?YT{-5~j>s#T`GUp65;K zom~TX;PWS+RJ%?ZiCz-O$A=$&@jWsDd^auBW02^TrvrLRCfau+~ZI zMY(25hu4(}Rwqg1wJ8_p*VMfBRi;^htz@I!n5Na_gzwcTIhHga(-8Uu=8wz=#neMvNFSV#J6MBSwrEF=E7s5hF&77%^hRh!G=3j2JOu z#E20i?i3(o#`eF^@uG&$62aqqxCI2j>8>;Kf6(N&10Y3&x?j@me411_s(P-RAjTej zq3KuC!B8~}LihJEI5gnl?jXX>MhR!Xbpo$KMr324?elb`xDTG>h5C}qP>ZY=Aj;Rj zpcYvzdf|`B44M=z%~ZC%W*T>l-LYjp2<3*sNY@X29U=zO;Bz?l?N8zpkO|os=;%Mw zWuD}1caV?*VKGw+jb;&3zk4xFl7aj`XvPvTNTO}v_lUvn5C#&6M5-rnV&?>2hXqkU z1|0iWI!DON6J}Vg7=;B;d6sJ_#l}7_NDMOhElpJq6+McpM??@IdFj|THKoh*EB@7j zhrd0U!5PSag{NZsY1+aWycF3gMtZoiM1GXEd3)4BOB-U9W!0fD4b>1MB>|yt7wL3R zar99*^x$ zV^tK|X*EiisDH@SRuYY;ybu;%ok&!H_T~KWywi7Xg z8B;hMWVAiFj}7nRmp_Hygf+pV&n{Q#=1^gAI-zcKB54~L8%i%;YtNukQ7P$#@u3|6 z0t^f+&Z9ZSBl^h0K-M7E?y{|J77>T&Xiw%s21OP zR!ZCSY#uVU&2R_(-$-?JhVgYizN*J{OU7_QN<~t0WVQ%-Y#^Pr792by*dk8^2k7@a$X;SZz~T&~7nYQZ zome1=LIx=KKImT(bI6XSLZRi`}^v)@KV&~MY@98izU8pNK!St{8`ca^S@!fiY zOZ96G7Z#61;~sW_b=z%SWm}-KYn0~e)%CW{>76g&mth~+`AfV?%tV~Ls-xGMc@ZFr zZ1=`6!Xb+UvPNu3N5Hf;(hFBp7q96dW}XZCWu5?GB9=s_9LWL0If_N;{E>-TWbwj! z_t-#p1@~P1@aq=^b!I42E_|RB)v4etWB@bKC7yu`I`3ATw2^;0WMQCoqtdwWJwbw< zO_2%)VoG`;*gdZcZ1Y@&OsJ=DQIE}Rn<zglLE4ZX+RGc!Ag>puj(fI{b$5)x3|fjQnrKy74L^eXxYTvf_0vdUDMzx_S^9J>C$PC^i+tvm$^|)xx@!K4Wdtv?`tAZju zW^t>FfPEFnjI{7=m>Q4$109zQ)}-AA5QQ7uShC;0uw0P3BVifH=7m`mW~E8U3ze;n zM24Q0LZsSL4ac{?N?VW#HNqEMzXMEdw=r;(KoPRUfucqB|B#hLhDmB)4;7v88w~PD zfOX7wgd0Bv86dZLa5pF0@flArl_ne(tZzr;i9|zZ+Gxhno=iYsxDek-Erz}+%^KV; zi{SC?f1=Z{0JhK57MAdIOBc#e}>dbpu44Xr-ghXO_s)FSV0ye*@yP79@~qHMj2zFzMJ zdR5omv{t~G?XS@J+p&p`ou`v5!7h^+&S9LsKWm2tUg_O&0IR{V|Dcn{|C){bHO9hs zB--_z>wIY=be^j`kB(o_AnBOiNtnUOV_%^QIEAkjn{f5N{w$7Gv&7lvE9G%+_SyD1 zHb@xAJ~M<2P>)%0)2f7!y9Kwo#2?acp9&}Y*(`R_r|^t~aQt`wma^^zE{ZH$8G3@PdI9Ky zg?)pg|4Req?LsE(812FJf|i2=@5gp5LsK?SJIxG{TwG0@|^sn0rx(;mn@bmy!Y1B4Qpt2sr(TuhPYD z{b}BJKJN!v+;~hHJkY5d>JHl?jF}G2uX6p*(OYoz^5>WL(x#m+;ssuuquk|%Xbc)d z=a>QBZBMEt$3Xm7mp#H)k@ zLbh94TY^f$Xud(Crow@fIuspW-T53|gad{c)KjV%iZ>&`$5));OQ%}*+( zlDa|bAdTk~g8d^1=dc>laX66A3&Q~elS~q!@3kc&)$4*)1r!e}vfR?zilt>-2y(5vV1W6dv`X+cx8Q1H2X(QNsaz=RMeLDx31MC;3UZWD! z+d4`i&D+`|8_^)olc~l7v(LFl-dV~nqV-h^IU~?_B9?YLMbWiJN7GPJF@^iJYe#cXsgY0>v_NH6s#HYK3E8`R~9D{e3N1> zh+{}-)kmhq(@dTsXX2271ln7 zX4KcvXQ*hNxXKK-PZqoNYvZdmox>b%T& z{txi1d#$m!?VrK}+il+qS)R(Uj#lbe+cG^nNoOc;#}aopo$2}+2d*C;L_Lh(w+hs=T3+GJe7h;LC{0AUPTmG1Xs?_gxxOr1BcnolA|0b{FT zyl;l4pJiP5gRv%C4v^*jh<6(DJ(V$VEa+(`?5DL#Lo0z0dLe*?f#x@Khzaj7Rdfz!-U@}S2z?iY^9$gf<9;Hx=d@omk0X3xZ=3V7O zY75nGu7#WF14Yw)+*XalZo9N!AR47mi>!e}8puzjtpTm=p{R~&o9*g1bb|5TGxDJy zZ6762hwNV1P@YAKQ6euH`v!Na?V_+Ml^|BHQ62L;V#!{ZV8|9~HIKQ)5uSqx6Zflsgh>piE=1j?ovrw|Qh%VbSfgw<21`U}A)*I@z}| zvb~{fp3P&t;vQ0JFGvSnrux`A_H}v^_JQrEX`31Gsnn(}3=AkR)9AwYk?qlD3!0PG zY7b3$d-J{jMUxkZPyuI-{u`YM>Mk%_TTY!S40-NYTj8qn!3#he)FXOW>RWkIk|nHJ zig^IKtpZd8Qua?|uc(5E(M-o=3G@i6>KGSCbw)|lVkv<{t#VRvp@d3`Z6)gR+WG?v zZQG-2)Y?ukf6U1-fQey^Op`>mo9YDwX{G^y`J1ZH_sF7qqcJVX+C-34Myf<%0O%xJ z@6l@Pry~i6qXrv778^*bBdwNhb!Pyeug;>yRF$G<)+z2E6ZE3{td(TboNLD%q?k@? zn`|BmgiDV;`}SeC9G`o-DnBWv8B!1W*e*N_)SEkmlzIzNiDGFLz4Q|lUwH|J17dSP za~^8&-0Z-DSUiwO@Jxz1QcQ6xwn(ZDDWY1f4B0}h&`{C}wUMps8#M>EFG>)TjOZmoj&>=W>R(I#^#qy_8eW?Ho;`^p#^37KuZ=cY}ULGsTGH}qPq4n zGY4%V9M&X}WW$8CK#1N6L~}atNvM?gJfz?`xRC2juUV(#v1duP2u|-+FQF;+h8Hp6 zC75IbHP(tJh~r5r0v)_MO0*fIXUdBQ;822xevX-E;g7roWWS!=$J9zV!(6`2#J80f zoRmy+)s`u5w=7Z&FtE@mhSGVMqN6${)nEI5B1Z9UI5Z&flq-0quHnnM-*k2$0{Pmt zYxmXlT@UQ;R`=SnDIyXBIkB;ket<^mY|ti`-Bh`Efji#33#QXugk6BH{avcw&91I( z+tSwUn)*Vsp{LVoOm4iJG{w+2r)3p1tkl`HV{Oi3 z>gQUa6OsBDc1v)=LSEO@lTm9w|5im)SEvi&R29@x^1K3+e5RUyQMCn(?BV(`k1($p6il0NwAbp((?m_IP+s z-1+)3&t}k#H_U#GicpRB?B1OK1 zfOnzFnrW2I;*jIAM4C~B^1TgdJL9%tJhNFC7muaffQCL&HEZg~088Tjfb+>QjH@f< zvvSu}a5O=#LOu^BIOSt3cpO#D{d4OQQQApb=()Ni^qTXK^D9fwhNYZph12!|Dj}S+ zn={EQHe8)>F7jLYcI~-v-MjC0FXp_n7>LShv!r5UR?0*YG?Jsaz{`TC6>4;8nQUGM z`E}PFPugtOEUx$y#QylqwXLBnn?-TFP&Vu*wB@9jfkZVm;)&_ZggxDdH@wL5n9az| zf{dY|UqC1O3T9NX=_~H5z@~1)q7^fTqc2@Ey_xjSV{4F(@T6L;LxX`Tw_d6wbh&oT;;deW>WIjYE`T6L5Ayk<9r#jlociX1XhHV zG0@i5yI*|i$FDs&tLppRIST_&>4Ur?O)x}&k%a&?3&ay%G?OKD_rveQim>uH(3LAcdz7!Z-;#8(QBYmi?HG!pJ1+f-HIoZY zU4>7F$(*@Z5sHmbISIy1n`5Cv1ql~a{$pT57nxCbb*Qntn%%F;(+X`|Z@#Q8bY;Ts z*p91_LJghD*K5XGi_~!Eg?t{Br&D@5GRQ=}&>-7JXzG65Ibq$NUyWg&pdBvO^xf;% zANcRb9>XcD2nP~KeD&2=-|>rIOn#p&h4-~P3|OI)HLO|+zV0Ny`5+uC3YN*bUR18= zcE^<%)65K&pM0rb`8rL0;iaFT_I($AIa=B-zp2-58U~I_z|xIqwddH;tHEqWGH=$@ z$kU-s%63euFDmin8*j`mKk~@0UxO9nK(_|J_q`v#zr5?7-(>sfW3n=JqfW$h^@||# z2T`v1+V7b+Wj;ShEXQOUE-jL%soPw}B<$1DDa5O4ye1Dvn=kXQq76-ny_9ZsL*E3A zwg?&vmYy>qnnce10+yMWbZJR`k7g^V6WdIVm=N$fo@Fx3+%m zWjG+L#oqEazVU;*9{liqAG)`^`$KF>epr{4VG>(a(M@VB4w`h?8R>0%ecVUWj@gnK zM~vLEU)LRac~SP;YIWzvCwi8FG_z?;lQuU1w0-78mK|KVpo^O2iy zz*q|gvbb{Prw^9py$@H_^gX<$9|-wYWr4dQ3)1D_>&UlNQ{O`c=)a($M>l+&HP~lG zq0|yOi6?nl4K>oQpwzLW6YBf4?0jxEZkAG7EA3VUZ)0N(Ypk9-6VoM|-Hl7TE< zeDSppa0uW%WsM(%vU(@h#d{^c5%t}j8h$}BGCX{A(pSNtrd)fsnBZ-aLLWEt66&^J z=PkNEYw(NQST~JoZAKzx2_wfd4d_0UeZ`qYeU0}dUg2T9GTXTM%5Q(@{jabMy;clk zaVQulh5vc!)%R}f7DuXLc4QNaBP{yg%M*V$FYWtVaZ>oz)1s(|S4TTwR(np~@Ey8h;y|9|c1(TA4$7L8@$&@#|Gy!6sb zcfW=2xc^?5+&!Jn?ys=E2P?XV4ecY&h_35*iLt=}m%BM$d{3}FcrxyXpuL2UX95ng zaCjMm1QB=b^|mu&hM zUfES1xX-!wf7H85Qc110x>enl?M96o904Z4(B%ZeB#wz$GYa7mUMrb33kZ*_%#e6& zmlPlw7+63UGAjc^41_g_#Ttyw@G=X^I5>b27;v}SwyZ97t6MFVq9ur=WZ=KCx(<*#`F$Yl%~d*{o%LX? zhs&4E|iZx9&@SkvqKao^XY`=+}Brl%LsrqWJR{R-TB|(me?vUoV%D(MrIvC-Ccf-rAu~YW+uy5 zR`Ll1&bD)T^Q-TFGqR@t-j3$qQKvH4KSsEo_qze2Z}X5`gNT>#+g9fR2JRJ58DCw~ z3_M(PtKFX{FK&FS|FM+|ZhN~RAYtJOVr8>S(0ZwpQ7uAnV>Y?{}uDp>W^ z6p8WP2M`%^&w=O_2T($J%)n+Z2hfm!O#4O`x2d;1IG26i=Ls_ncqp{lx08TzG$LXQz*d=}!<_o1HCZmzS9$ z(RK!@(Mbdm2#D@Q+31xm5w?jpW*2a1Lm45@k>cb69Mq^9t#5hLKeE%U@56?i(C4d; zOEs$G9W~HMuQOh#KPr&at^*`3qbw}ED?FD9)3%b8QYv%1BE3w{WM=F!2?>SBFUZ6l0?Kl?gIHX-=O|;`Q`~B=dzn^cetr6vE z!j~U@XyglKe++W-*80;oVNJEs4|SQOCPb^CE%;5T+E96_{(g_on)E%p&^z$%^t`@z z+x_Iq&;8X;Gy!@J+1kX$1_{~a7J_L`WF&}ogL_N3eq{i(oAMAT$k3XbH7;My_96Ab z#%toqM&lda^bPsG*1N$9)wx+pSW%=D;R4*a%~N2(KxYq=ajH60ARKc2Hp*DbuIqlc z{L5>ndVlo%(C*L@Iz<$M%g={qcy3jGH0HHaFZ6=Xx!lmT* zpxjXtfQP8*FnE9R4BQ~U^xes+>bI9u15K@RQ;i}qJ6-QSwf4>K_n!HL8yoA5ZEf}7 zz=7i8)vE=9sYGL{KOsW)y+DaxHUP1al^QF!Bj}Vx(|+C}xd%sD7BsDvKQ=u(`qdBo zGT!@np@e1t6jh_gj!D5&V_SOORnL$_vE2u^QQ(G50(Bsd$DVW{GV>L_hEtTgz|c05 z2d3JxXa>)~Og6#pYr}B4O5X2pLMu{vX^3{^mODStegCKbBbKO(Med_yT_9`klf4L8 znma+V5nAZYsZ;Ki)XrX>HxJ4@Cr;RK)`TC8vVnOW``fbO5*tYCD59m}o+F zumyIy3BxVj0MRObQ*xD_^Wd&_|9KBVgaGPdTXoSvTO1%Q?fCH$4jy!d4tAv56AUbtJQ9P>l;6a4$nvGs(H$40EX}gsH##O zyOj=<&+mY{(y3%40*b9VxNgqj--L7HNG2J4sTbuR>%(x;dijL?QT7Mh$eY^;s1dkD zyNKdvcC%N#$N7!^r&s==`=jMgl${Pyq8_?IqNTzl&I&AU2rJN$KF|sDYo}n)xJ%oWYlm;u3!5fph9^u16b{-v*1Gl5dIbk77z6b0H`0H3*U1oDT*!L&2DrMxnX{gwXt z_1|6kI`{PYWo)l5!m%?QC{gsK0Yts=Wd+fm0VvhDK)};Ja>R~ayx3?=Of+&-RdFP> zC%*2DUyo$}hi_VxD2%EY6{wL%ftP{vEQNF7T~;XzYPxvLATa?*@@P1(g0~3(^CFAK z7V+E>MwnG36a*RzLWey64sw!EA|H=k{d@oy*!xBypHm=J4FwhljdM2#SFil|#=rmM zHzV)r5P)#s>mEAP-?)6aI3`*dyaFKFQvjWk4akNuH)pRdEj5~f^0aXHjEueI;KTWe z`+fmC_5SK93#p+^gbx^$d&-MjP%LeRW)sT7(6C0pV}l?}=dF!^2>=T+y%!`IQ%NDp z%an&i8l)u+ZYaTpl4~_j`<%b#=jY9zC*1AwUc^z#z3Kjv0WtJ6y zLu`ye1Q4kY!NUrOtXdR!sG2D1RNT?0@{imRo{cIz5hi@P6iOqNR=Gzhk8Y0lj?wB% zXFLN7^J^N&AD#kxpk1}xE;-MO_%5j9JQ+H(a@%UPnvYD)nFHKjw&AND~aIr}sSV z6$Rq)&srC;uBoZ!R#CLFt*tg*7;SvR@&Db7Hr`QD9f;(*3YVyK=khbFWK>fM1D-lQ z3!P1G!aYr|3DFsNji^l2ysU^ZLUy9zN>Hhv+V$P)5tld9%_R!*<)rKjH;dr0=VxZ}(Uq0F8De^x z_RX_L(JktOLtVjDEqv@7(&_^?#AI+oeTLM(RW>#1YwJL7;|&j_q063l^pTGUz1D_OGm1 zlzVd2IT{6d*&jXlofTl9;`suo7@OX6(0>Bu9g49M*1~LwC{IJ!7XBs{;qjQ*Lu4U= zJsHa&GeIp0GSMm?{vbSa?Y^_W@zht@-+b~X8~$}?m*(b*GcfF5RE6F%vNS*nvIo}CaLT=s7A9#4jdc(()&MD840Bb-luGZ_h`Zgzt;E4 zwy0BV9;gt>9Yl=6OfVLn4YRUfGz{vNRne0*s8#&?Q}Eo%{|RR=tqR%9j@s&EukU`m}*}9Df`y|2)3qs1X(4MeDR-3L`uZ*_l|YOC(E3fSCH=VPIv> zuohQ1V<#HWIKCf-I%8A9z1sQp?GJqBT?oNVv{LV&=e`4I8-mN1gOL&IxYy3sy#Npq zVA4(Vb#haTj<)*S+oO52IoAGr$Np6|mcPATf=b@emMJc*qYrB*sN`8C*aDAg7NSM# zLKG2(Sne^*IifZebMqfDuJ{i4|3AB=4yd~kU+hK0mpWK@$D{AXjNhBcM?og?CWuX* zMV2yA7Lnes!UkUcmaYq2{SzQ6OEPtW(SZeGSl-z3`*Dk>-} zA`P3L@3Wt5kL^NtorOIS!Zhr81Q1QV>1}T_iOugDdoXKeZ?D*wba5?M6TyR4Wq+mP zNi{c_Xj75=ThXYPeKC-NR%Aq&X6ZA8dWGzN%6#ZkZ-X!T#wB_aQ5jLq;iV>#%Q-*l zO8DR>PeIv#J?4I)G7|(d1FcY>i~N6_;El@!0snWkK7lnR#r5d&FqnV zZ{>zd8zbfKv_pBvUEU^nh1ir)uxNt|_2G@rv#cR9PSmo3h1ps7cKG0v-_LK9Ip}+m zlvxo#e*H7&O|N_#9)ChKz)E&!*(hwxeuLb`bFqcW8kLp8Toh}{i#V9pdkJt%GFvRP znVlW|2R1}1;2(@7u*?aYq+8Bxvn%bIg%YXHW_i2&#S`&$h zkn-D4Ey2Fow_zDR;Z;Kue;k*OZBOD_VVe{S{w7dU87P*InN9bX) zERnw>fID0c(+8wpB3p5lbG3p^!5>ZGQdJKXot6;4~lj#47Y0g2=A2+f2xji3=z&*o;zJ_Up;uF4!%App5KJ}Ob&=3vh8f#9GrN-2A?CXg~asj`7rB6`*=@4 zbk_ky%dMEr&8#QtyvdQGwz9YIMW#S%6bq4GOnJ!Uub%WwsE!KF;uH5EnO>#)=;9A*z8`BcDeMN48$0^dP(H5}UD zXaot%2oxy@nWAB7V>5+vb^HD=m=EA+zgLqfzdils!PhJqad23%cSTj-M0tto?v}SJ zEsRnk5}1kB8TGUACCgBeqI**#rPlwbQ??( zF;qoB<@Fd1hvixaYJvRWag>AdH)@-sHkMsMB__LiRisCt70_TW(p?7-XD6ePS=nHInW=1sWZ-?HKBXTQfgg zv;WBEw)?E2s&%$9owwt5y7jug&@EaYatcD=0vUJrD&2i#Zf_gY zY8hxYO+oy)k=@7V2S~0XQfyK|k*E*IIa`&CjfKIZWTfTe3?H(7;{00X%)2`ee_%^LwGj zTj+KzY6P^l4^?`+rZMR8PQm0uNVYL?3Qp8?b>pqk~bR2qo^v%Xl#+QC3(2l^-&X3-efnS5YEi8tKhybw;tHSTGe8 z0tmB8g8Rd(3By>C{b*v3u&>alKrZVE&ZXCrsROvp%y4e=us7-MQ=oQR$)%Y4%y{&D z$!H-G9D=+exe;05hF1&)0K?cA=gkJi`FYrjboVJxrvpa0INA`g!efIT zDc|d>flM?H@G{-T=u8O{Cp)koAja4LM1{=2M&~c!Rgl!R!oas?mFp5_e^l|*CM@${ zKrQVoU9RNWAI{{B2DHY;LTheq8N0F)`gn2i)gc36GR zMa^du`F5{VEj)1Q!1ImDKYY7Hl^YF?*UZB%Q2fQERd^L86UgUrNZl1MCEBo(3+8Y_DC*(EHeNAxY ziGh8uDioy5E*(!M#*Z2e2bD(Fd+72K+-qqt+Msqx{qjKu3Ru#AL3mEuLM3Bk)OQw) zjI!rJ<;e)Ebei7ntPTEJdJr{XQeHRFBE392YtK=bO*)P0CS|>obk_mYO`Bm?GPJ~Y z&@`ChSQYhxfFz-*Dm;s~y)up@bB;aSod&qu$%~T3fJxdx9v2jyt0XA4oY>B(!hgSVkn?Pr&lA)lKwk-VFP)W5{EXBNtw2y8*C zAGpm(W~rT$HI@WFJ_?D-)~Zk*pZo<-b7Htw;Au;0z#JUl zFQM)3I)GaAhnI(J5Qu1A_-1McA^}>W?sSB4ELcUK`Zc zrV7L!(2=I%r8qSNFd`kqyHImmn;Ha6&|<0l9E62mZ}d^dBpI~T z;#Qy7*zgCgUiA=UAg}d^|D>Thb)t%F%v}fg|yR1 zQp^|yk@gcr%Sf1L9tcvRomBLp@NWrs3T23%Ng0y^=e0AHibVDkd#M_YgR(+c6*0PX z>uG?c)hJUcxSo7$4s-cJRk*xQu0{zZEU_o#LdsoXGKPJyp(E08g3U&6ySI)Wc~3ep zK39$s1=7JF6eyt3*ZS?nQXfip1wge%?R30vwKVq7xn6N8-UZ5vYAiYq3{$m{#ticb zUkS;99;rre&EvzU2;ZmyH#)+6o$=QwOI41lffKYm zy(j<;8>#w9B51dv+3k`+i{v0*Zgf9eg>#q?bth}}#6}XCCsvNmIu|vNgz`pmC92pL z!q+`?G?puEfVA@gV#g~xOIg(*xCR?G?&W+Eg6EaYypUq z$_kWxO<)-&6SKk>Z!gz8nu=9LTjgojqG;xoP`&otH464BSS#GXPa)cVFY7 ziD=?G9oG$f*!8eN#ifm>szm{k?g%ZU4P;_hsjzKqXdsu80!3lf5>Pb1ts1}H*Cg}m zMyRo_7zdaDKV(-824Tr*iuXp(Zt^Yzb(S@l-tovBKK;(5L=kk#b)_?X;7wj6BNM5v zwpn~8ShM+evC}_`Ctai0E1S@Du(RX+)|U6{>)zQI60LJEeL6_ewy9Cz+emi=AhD!Y zV9}cEq6TuCpCaW59BKrvyt1~A4_rz`HJ```UK<{20*48U>wpoo%Cr~}oI)QfD8C23 z;^?&0J4(3qg2NEj;;T9hbb8I6lVqs%uY_DF^#cA`s6Auglo{~9m~V@T?a=4ogqOQ?Gqn?&`@!~%g`6Pyq%MLqG>;lF7Y`+H7I=oH2yaY`f|B2 zlp;RPO^Xyq&JD_wx5Liv2tcWNn`W;3Q`9Qrzpg3jWUt>Z{dV`$anxEHAL79ucnYLq zj)|QmGdhDKDHK7UO^SsI$@el9qRwK}nW~hrvtvi-_u5Uohp#IY(JG#LO)wN)a|^!{d6^xH{yEJT}Vne%>^ra}q%E@}X! z558g&>dNAC*MF~)fnx7hzG$WF9#o(eHOm-T&|8`^G;~*`ojU`t{pO=s z;POX#1HYKS0N~JBEOS zoiyp;z?;yogcN9FV;3rRvF}tag59ibC?4Prlh!W^ngeNbeEdLGZZ^BV-ORji7~gHu zET_@=<3DHe{Dd#M;0un24y$&X5RDk3$0>Jluo6g&#Kl%(F$B|O1MVYLP&DDU;`RiY0E?m9f zQFz`#^J+62>p8nsl-YEFcA;W+Y^;DU{^CBIIa7UNI+d-GG|1X+mF`T4P5~EfH@bN5TG7qqud^%tOu$@s>wYF(oA)Xgx?#JusC|eW~6I;%3OHvS!tZonGyNM z>ICMo>Syz12l>)&Fqn$;Y2T%Nd^_?_?1NjS)co(OSJ(IQU5vGlc@5m7q?Y=Y#MYiy+@Y49ArCH{L|#{_I&F1BugnIn9S`PAt~X(>v%KrTdP(8w>kh zZ5^qPNt#eJ1eI+9IK(y-&*>O)z7+iM0-+=eA@P|6x7qoD-p8N$6$n#TdL#pt*>>Mq zD5n}IP`7bAgxkZ|XlJ6fQg7!0Y835al_9t0-bvGKQJ@<-5mN-~%huK?jLG>iu28|U zkZHNj^5!ZUyZ$7!qtFtF(5qW#A(3~qPP%@!aSAk}k}YUpa8M%Vz&Ae(Bgc-$vJn8N zV+j~^%z!z8=TDdj9=&ga0C1KrC->?#-SD0h8@tadcn-h*JpnursAIGUf*SF>=s3}S z7^%2A@`D@4%NJYf!C)L%mUBCFuWx>=6Z!|`9<=?KZG7SD_$|xSBKe$$iFwa#TbtMH z>R@SPA2mO<q~4oOU32_C%E@ zrP2GQ;n3@U4vX*}fQr$IK`;n(U@BvzXr?+p%!sKn_y?=e&$4&;%#{x-GKj3$E6#ME zS)oNNNGj(KDL6ZUZT*~|HZ#b+4m*wt<+KoX!5mW6Csl;1@L``?r*9??-8KtLjD0mB z%ZC<@qel-O9-MPa&)=B*yI?BwIe{sZa_Z-uh!HK;zd$%CFno-_8yUep zx&_i}l#V_87?kE$Nam@vQRMv|Dh5`$W)(0>8sgXpmiSO5U7d`#aF4a4(0TUizx3y? z{45p@bK7yFcD&d?AQgFD%pA-dY+XebcFe(B&K2-}U#-@vRA^8TxkdO z8FpP$na#Q>J0qjPk~&$oOs9bGnGxrB{@PFV}-MrWH`2sE)3r)c9xuNvkJA)#zqx zWGEI#bH`ie@W;ntZtiE{;qohM6(bN3yn)uF$L$CnADJ_}-^TX&)H%abgY_KUzqACf zznq3g%)4R6qmk6SCr0eByi&bfsuI_9@liTfsw>8>H~@Skq|u`8AQ%)^6p95-jDP=H>;_Sewsb3jyces zBd!aL!ifTPMVFL-B_x(51fxc}aM~vtq~(JP_~)nb>PO*|PyZ#%NzNn3kS!G^PWV{D z3x}5swD5`U5!`ptt~34^KKIR-(>t(i(?-9r7+xDnVKvCvCqY~WqOKatmbM+#>*I|I z4q{P-X#eT2^4W;iD;NZ=P!M+>ms`kFEG59F%_#kg^+*wz<(IcX1twXb!H}+$>k^RrE7VGA_1= z0>PNM{>ha;Jn*IY$Dq;pGJ|%;@R1S~kYz$0$pAKC*}}JDZ$vXK1ez56Aw~&(l$XM- zP{q$0P)5(ybQ(eQll$`+IxJHI(OJ$ZS3eH|wEO*@)sHob2Aa+bM6_OM^dFCxz- zmQ32AXqu-|#29}g%96%P-H3Rk>Be8{F=jx{f#I3>1kJQVr`?g>h=I;u*#qvPqg4}E z%F^c|-He+pEaA9yJG~!8)O>(3n%m?R%KtU*F!+KI&3j&~TSYv*-$xcJd|d$|w>Xfn zK3{=|&$+-1ol&<)c)|(g5Zxho7D7>?;Wzq7aX;*t6ruB2g)2BFNdQIR^lIloegLk* z+USG1S$)Qsu?Y*C8vv6Ne)Nsgzt+3D_2uo?O-7+E6qdTvR^%j7m~bVb1og2oWH5uP zNN?pk3xW~nX~9&yur^8|vKSb6pQ*0-n4b`yD#*)MC94D^VNYQRGWvuje{k0)em$tS zu)M$ALAmGIHKabP~#E4$VSSe!WP=SlV<-`)b$(`g+>H)dru z)^!sKbW<%%NPjeZ)ks?HZPJ9KCQ_kE?Zr{BgjUc44OAx^hs#d4+v_zC^e4I-y@^Bn zdJ{XSLpcA#wuSQc^=%$y>8H3uqq};YJXCJ^uosf+6Y%(&0K{4m4PxU=^d-e9LNPwa z*N)R&U{Ud&K-rROl9LomroTHuRZtRR;X{iH+j5|6JIFl&(K=A7Jxw<)Vf*3=xNdjN zcgueR`%y5S!k6%dat_&~2s~tQK8xofcou?V_{o!1@1OQJq$W`Bd~JoBYGMX%C$DN? z+<-4?n=8FOY1vV!iR=)IxSwByn(KfbnLYa9jn7W;3ClNfg@Q9NTJ=UqSkrG*UAK3iL?zQa?caaK>KfE7o zGfOg#xk5!-6wShj^jz#Y;}cb0`b;n;q7a)jtqEF@Ne~;ygES)F>om+lSvsi0v&H~? zgl~;?1vZ)Vh)<4Uh-@`rf&&#|k#=5KXA130w+1`qw@gnz^xJITq0~%rOM!G2yx_+t z5h)cbI|Y?Sa1-`an{4o6SlF=SqqG=v*0+VLXU+t~YfR1ja@dnkDg_T~2xu98cKi>T zGb10NXSbHFgX=rZR(deelmP}bb)CHsBonVsYFK(jlj1iuyw;kjjxse7vV1}y=(r4O zb2RLw(iC^JNVi^FT4b3ZSO;j@Djq&<#pqNGEjlR1@wv{G4F(S-q(J|9`t!@*848}* zp7BrxQlp_uF$gZHLTH{L)JDAygVTV9q?-aLHrb%HGE!|{U0Vp9y-Q$QTnslLU#?#` z8%K?46Ie3{kr9QQgP{yh+?CQ-BB%mYqx`#tJJE zaVL-?qvi&!JKL9dr7W)mu-=aRH^%*Veg_zhI0WIq5M&|(59~a@rc1bh>-C@Uw)|OY zBu;ZsQ6Wgyf8LQ06%wN7Wlu>}c@izSe@uuMPh}uUHG7Y;Xc!JEO*aHkYV%Q13kF*z zZ7d2}Ur6pD;LI-i7+T6veG}n<7zS~!dVYI(6}7OR$wvcoF9}2!t}8nWp(;|a%9O06 zUrL#h+l15UR|S;i`{*3=RnvIoeu2)IB<3g#S0|(;ZA+m^0laaz)viZssg_Cb5r8r7 zJKWJ*-G=Q;YcUQ1`>*3m|6BVHA4ckPvC8(MJ|ZC~#KK010-Xral&XPIqR?BCf9Ug< zr)6}XhQz75tG$f+!L;-@qd+%haQ+t8IV}v_bDI9pbQXy}o}U*0EmrrXaWqFEgiR~~ zkFH*E=#RHAtv;smiEZUDc4W%ihI|k;1_Xi8x#4V(tGH8bNI{Gds$Cm80zokugN{{w zGj-kECwx-hsv1>_u*3igHK(ep9Is(CFy+~PVLeuY5)PuzqIcqJrVqenXddy@02*_TA~lL^Ok5ae=RM0olu~v6l$Hr@nQlgXZkmN~MSoi$qNG3ywuWk! z0wq@8lW8S8XDbqXw1)sXS6v%>;PIWyTffy^*^+`7R_(_hm6qOBNend}VjQ5nN{Jk+`cduI$10OkN&r=DH?>Gg6Tu$d8p6lwZ6+`1Uf+bBW%(+h zXba92S6sLFw+B8SevAQfjm`=iyL8brfQS;&wWz|YjCmGnvD&k8d^|aK`j)`(Vq1HW zu8dg68{EUeNvA_W6g)~I=TBFxkyzKDP^T0~sgH(Hbe9ZTS&i!)`H_uhu6;Ls0$T?F zQXm++e;TrOt_Aav!kEMmRe>np7OsRK{EA{oPup-cEG4tMs!@I(q(G5cX-W)E@lr%& zJQILuLB;XT)lKMJ+p4#+@rB#z|8~~)-#hg%ya3I^c<&`(5FJ4fEhB)a%|1&vix@DK znC%BA0FWp_iDV%XQvGQ!6C`)JDU@iKnmy~r>9zq>Uszz^j*yj+c~#Yvnneigc)E4sU78kxDpQ!S?yMA!hlG{l) z_k}^UqE)jP2UUBL>UkTI!945+j|Q}>9fKnM=5S8|TTG^Lq;;;Ywf2wv&m>TXFZSRj z-ySC8+Vh3Pc1_&n{ySArCXv6`XUiOU^8W)JCgc~)O8 zghr^5z)($%0lThWz{bStkd!+cc< zPKo`81wB$fRRde9Y#YeFLPKGrUF?5!bpP1Ts5;9Vfr%y~tao4&HMC-<2dZuwG2Ybb z0M#iIhd!u3R49)R5rnjtu#ZT+LqsG*ZOsZoq?x1I?xOUp)@4=Z!fDm|@ppG+o6GK8 zSy3LV`ke0+z2Xm>q=UJTy6{C$bhtEnLOAs^)Qd0>$ z)JVO{28zqZj`ja_bE17A8Z32B#x-hTxD#1tP{)aW%+EQ?cX(d47D!Q zzd7;8vJM3>T^r!bM~29i+TJPUXVGE-wXidRJf9MBTo>DF$=`-}GtdS%PBo+AU`hq( zh0}o&Q96IZM)!qIUA&)fIQ(75hlU2;NG7=!2<3ewF>;aqFZN3wlUg2z&4Dh*sR zn-CS69iT*28IwkgjS`Qvso)mrh5%B~q#52YrM4i}#0VT`pk_qWL>5y8509WZ;Km>s zh^SBm(JV!~;<>9(v}V6+^YX^O*6BM@$x?${1d@f3LzB>G=TOOO8laZ8Rtk`$<(wC6 z#EBE4z1IOK>TMFZFM<<9Z$BRtJAKx$3i_@^Gy_!;LNTt$0kW?Cznp#8{aa{I*88xX zt~-u+J_r!ic(MhN3O|o+_Mexk&TSsA42f*4U4&XV2T>my+_8@$?rTjTrK$jQ8=Bbd zQ6TLOm5Yply80&qnHG|$(DD%QP*PH>R7S}#0jO6R=3^7WTKjmd*oPzOy4hNt{N>(u z_w8w+!rrJ8AqE8G?Itv*T7c|NOKp@DsaL9vX_a&)m%KnE#K z(dqMD-lTCpP>pX%MW_24vk&`k#I{1Vj~7M}Qbd8Spd55$*)t2fb~zM zi9+dB23o|tcub>lmsaPX!Jeq^yR>VS8E;b)yZw1#5QkXRV3bIjXW*QwlS(C>69Z&0 zCADuzFOaGJQjmdQHk?|S^|0?c9?ZblLHk{KD}N?*fT=bXtc?h0p+-fo2ivHvt)o-6 zx7jh|UY{xZ0^^Le`g&B>O}N18@g0vQYmzG1MK=29~!lF*B? zORt3fb`Lefov5toaMMWW3NZBy@%iT=?|too*Td)d1j*MsNHO-~G0Q+Skd_10iPmTU zra%gs3ki7m+zH^7Mc||l>lVqirNdCEs@Ql}51=@(FZ>**={75WH9j->E|X|u z;iI(GzB)ES0m4Rd$oBH4S%2m_Y&^39TbI_MgZ`&tyH8r2Hm6kACqi+oAKIQA+HQKt zo&u%Wz`Tgsbl0{6c$nIFDTh!VDND5Tn5dU^yzl*Q2Ofm;usP$I^3XQP+Lol{fwnyY zk$q9yDR@Q_Kyh2o)3b)rL)tNG$fv{QQwtR)yoX(@lnpvnZ;@_`0(pR4$Q-;O6pqdl zi99V-XkGxi2yxw=sEI+aL?4<%E9nwZ=t}$AMSOTGRzEck zAJ{kc^L!!42WD42SCK%pE?}ahk%!lW3NeUqz%9)IFC3*-XkG9@DbPt0o==8Fv{E7Z zl;k(i0A`5x9Pu1Q)sD zzUC<=@R0TN4P=d;gJ9FR7+4qyi<+)o#YQ~f89XyMJXfc~hG}BPez$GppG@Toa(D1? z=A%H(EF=q?k8Y7fCedS}I+>|{Yo79~-m7^Ivds89Esv4Nqa;s&yxXNsK!l|>8mBE(rS3Lfg1im<|L8V2Rc=vd=>Qx*-g)X`q-gFh=!U zhkkeZ!OivVuQ^Y1*R>40n;^2SiuG5lO{u3a=Oof2R$8fx#sPuVdwfNLguQvYi$+%> zM_K-9J1@R^V+G%+xrLeQ*vpt;HPyRpx+5s~B^!cOy$XAMk4HkJiM7ndsbR--<| zz8-cw3nmTWI4z}5XV2WQFNMS1Z8bi1s_qJPq#_JDRTsFz6?iy_FwK=dKJbPk6~EU# zv##qwE+F}Uh|knoAp4jaS^2E7#XGGvYk^{zic%zdKZH`~aimm4WoYU;?p;=$b3)bl zIr@SgQmL4aP%NcTp0zs>q|?z(*UI9VW@f&V!4uP3pr~<{>Ge=&m7QO>47*~1mgHJ< z2&Et+qRxU*0Xp;r)WD;FPWqBB39r3t-uRetGNw(U?s>gLSJMC`651%GX7t6uT%Qao z=tYULBMU2yyr!)eo>*8g1?^7xhMykqKRaTIcVZ#dYX!DR4HI_7g$*Ih32XBehy(z1 z9N3`=OBqE_`Z`DzEOBlsB=(+A74&gk@gxSW;dEx{s9S z7Ve8Q-5!9{CzgCV(pNFSRU#V$`B|vo#KOoT&B08#r}*47Dv{XPg=UDVW6%6tb*XW< z5+KnR#vs~U@$l?w&{imIO;s;P8{YK(t>4IU`#tJyk-0fi{;ESwv|dZ?`MX=b5_s8S z43)h`fv120xz0iM@(!hN10&o!haOb-L$mk8f8rC_Mg<&7#Ez$@!$2YYtcws$Ri{Bj zGNBGGii2j2^;nP{IVH=taO9!pE!M-70!2!>OMJa!s*|SMhnl`{&@(^GBF#CI!AeHJ zNeI5NMWC>bx*$!BbVLN{IsE-;@`+tcyz)34CzpdN0cRGN=}+7Eba?J6lKwFgswWJY zyYXHg4A(o&?{N;^9RdWC&W+5!GA37TCT!TsJ;|4)Yt_8PaO0<=3Bhlb{qo-&y3hS2 zQAq+h-$YcXYaN4!fI~(^67a|Z-I%Qg4twFz2ext9)uIpyP#4g7%8P)C|0~XihYCb$ z`-zTIpOjLLhJ@?D9i}@55GS=@*241mLKwD6G6_Fw6CwZ&bF6AuYwA=bm3|8WK{5b& z<*8B8_QNiX6=Y=-D*_&R25l+Dx`7hHHUj3_O8!s0v+riODCKZf+i3JD7(Y-T6SXm2 z+$z=!f{vE{PM-^F_y|0`+ba6Sho;-DceV4*76Yg`;Yel+wjX@))>@!OGc!SjCqZu< zK}7hu&J>B-%P||1k7cp_M?+Y7Myh(?(^*Ktj>$`A!~LY%?brN6DB*H zg8E#6AuKH5{>9Of{7!B*YT+2-JAvrMWeT)=it{{}xH^XhJO!Uv$c((p#L8Mro`q>v zT`z+=Qdu?_K{<%n7|GKVDM1}Ewk|@pbP!S?I={bB{Pgu+jt&T+m43hca!3C5r^B+B^s>WK6pv;T>w`Cz}wp{eh&>sAE*tp#3=cVT=E(bnd-a zwr;(3y-*nam86=?1QPUaVAm*C>Z4MqE1&Q8i;s;!<6Sf3NJn-yCEE=M6o}GfT}`L7 zp8TeIvgQRrHXM|FqU~p3je)agU7W&vT&FM#c>DmiQmz4_q~3>335V zM1v$yDG*m=K^K{-$ZahlD|^GS>L)o1FAG@6n07?{K?lNhWnToME|PlH$R>!5O+W+^ z5`aVdi~q+%`5vSaT`sri_9;e8>MaLpZVd!V28PBWrR_~eWm!JcFN!}IX~27C?(1C% z0`oY5!Esq4^;r*PuGxI3PPEMi>cjO+z_J9%RAzwMYGe$g`6^_C2CRk@^Zc&?qhfDyb#n6s4fq^NHT#K%Y)4{9~3(&v?i*S(?l5H=S;f}&O_hHz zlJ)e*LY=bgf5JieYcn~#r#+4Eh~QxWNSQ@w9$62+ zSpg7vF|x1O5HwGznT1e|rO*t4`kbrRG0t|ub|lKqi$^Ua-hc&Z|IovMRVUue0x zq9~rQS>ydv4<7wL+>xUlxPQ*V-0RKOk%uhI-e+Ln8!e2WjcRgIWVHdGm$I?zDC1ox z5{DLNo^^p*=$zC)4y7_lLMk*Rp zr$Uq#5@TYTYC-oxg(&fwL2{lnGF^p&fTV^+VrR>u+LMrd|BQtrk7Up;&1Qc(GiJ&f z)3u|M(`Ki?Deq{auW8em9QPgkoo}19kNx2{nqG%K2-gY}$JYo`T9aydX-GYa&PS7>(qSdaW!D-PEC^d+4V zUbx_3>8fKe(Ey?E4jvnjcgRMTdfnA%sGrunvjQ#EeM24E?sNcQVQ~lTybPeB%I1Zk&(cCsnr^oX#raRo7EgWrXHX3OLY9|} zfF%iA)O8z>YONREUw}sY&qm(x*Zy7p&?8q{^pV>#^PPgetJlW-Gkmh+I(Xd9b9&Sf zkUGF;V5e+&Xt$v?W*ltdGvniiK9SzCW#6y&%kDFO)I0F>pA}*81n|4!o%M@~3?Qf$ z&A0h_4}4umxZ1ZR0(*WZ?L` z^r&iQ6wThWnd$Y=nAB@P|M!3CZ}{sMzstJvO^MLMYz)Cvpurn?i#>1mAO5x0*L>6O zG?8Q=RR~e_^!6+ZoDRW4KYRH8=1AK~QJ~dqLT9JJ*IJF-cXmqO${W6$Wu}=~*C|mL zZg%cpjYVC24SAM@8s1!c}i4y)+gE z($0fs@LetrkhO?$&)-o8sN!{H^$3lZCQ9_?iR|(>{ENxbjF= z9yV>mIp5Daw%H>MsxWlUIMkbH?Lq<(H9rCfpO?b)pplKBv9f3T2&hIuAVhLkW~Tf5 z|L>RBOG{tld)sd+i~eDgH2+b|L(_{haT7_ib6I_pOv1TN%!DJh!v6J z744T9voYAj_l=Hv`f^~8%Hwi0R*!N6H5&+`CKm}S(!lc#T71(qvfQ!F0nZg(Tg+@d zxi-kN>+SeAV#-MPqCnEQ%)mZDWwIKm%L2DEOld*v!7)=~%iz&*Y_bg>w>w--l)! zkGqaO=|?OLdr3^i$hMHF8IoS16iP)%K!+Mp5M)m_Cotlf20cp`U7#!lf-i5-NAgg{ zq4TsF2Z=b67X!+);`%%d1Wpg1H3-~B-uB%xbIm4J2X7p0Ti0j9Qv>KcfvaC^BiKeg z)s3*^vk`}6$OI}!lq;xx))s5Upa1H$xuw&ADn+?R4ax(;8`LS#OBI-hr8{zE3`@0n zMQRgDd2R|GODkog{i>Hnv9e*IF4?^Vy0;p?g^cDmlZofi0FUT+@H8)Y@ zJ_5udwZZ#BbO~OkjoZ7R+fBy8Eh7f8)T3|@>^R^*v@5l5=mI?}05Q&SKAzcB7XFK% zOy83X&z9j)%8)^Wz1w&6mE`bl`c5O|nKgY43|Wh8R8%dRJ>rr2L?8uVN+P`Ab5i>t zpvP-DV+`Bs*}4DtzGsGh=OU4Rv|sij-L+g*nBHX*8niy73CZroZ~N~5u5=~0lIfPV zEW6zCr2r;e2*4if3{&A;+*IYmaQag8or0-5;ZArd>2t8e1}03g0&6Dwcvu% zd?V}2Jd~d?gy-mUgIN!ubCzceDr^wMdDfqM!|Wdn>yMNR z?3MgO=_SiRng-Vv-hG3B=#(*)&Eholi~p&G9ne4p*7wk+lcT&)&jCv+7 z`3p$|F6>H69Ymi8r_swX@68dGT?*`c!*TE>^(Ow!iF&YY*;{7{>g)yy)-AH{(eei1 zQ2wz5K1*;zP&V+MlE{vL&g1j6Vhqs)haHRWC1CW4Qt=ncZCHN8S*(Ec93EJURm%u~ z74;}X05%EhK|m)6H3R)F(TQk3Mr&9CR==R8@hq zN8q7!*8o%#*kFjKx1vC)%IWR5UwXFa`bS7@HMzF|FqQ-wgRTOy<_6aSMH^xR2Pzag zB;!7%3~^LCWKov7n&2R@hDhfvKF^D8kO09fMV_ShIW+d6A&`tjq1Vt7P%=G0Z5yaZ z=>y40%uL2>-P7ZIHv%cM%GyG%J*ILQy(_XE&)J7}W(~gC2Z)ylR+Ol*p3EG@TtlnV z=FlV~n`5F#7K{v~KTp(*X%uHt+U$I#eZ?lN2C^}CU2Pvsdj`!KB^oNkiBN%WY6TR`X)D6 zIv1KEfRHFB3Ej+Qtr#dvTH=`3Qs-NFkWe<|({po&{v?>op)T|6A;lR?d-J9tKC-Ch z*TCeXqw?v`Tzh8X16D+7bJ7=xxNYNH`U37LE2{` zL6AYekcJpGu<(^)_>t zeOs|3J-!V`-_kAoBXlY=p|cqR0t|;Th!v@pjcY)7A^=e5 z2x?sXXdP1|t8xlS$(0>L1$v;>O0wo@2 z^67F^3`k(ZuC<|foG-H~;W-(v1VU7c%0!@{YV`#%oHzSYkk%n!ku-ISqFgG=wLg2) zBadtjQ&{#|WgnLAz8xs>k=;?;ZDNW)|KYQf?(o#>Og8?-$oZ$VN0}91gJw)qgdI_X zJ6)v}JqY;E8KyLqV8YZwz9cTFaQuwZ$3p(LT8x8O6j~c`urpO+$kH|bPA+*$=pB)Q zAV|^p$NmTIcxP>vm;4@7@lcR*R?5MzVtfan5m1W45tgvIT4v^`9`LejGrnAuCwbq?kaQZ*&2N&Ofz)fi^uPScY^Qzbb*Ngs0Tr_c z`5qT23l3W%^~5x233_jI?}(z%T0gFmHypz)fDJpFVMc5IScV)!FLWpfN3%lZgvAkH z=}Xc!$9ERYURtY2lQ90Jd7Ffeer6IDGye zez0ZV@aBV^PBG_OBM&(54&ggSJKi3UWoTq$Es<}maxv7u5^W{l3L0VrvFp8?1#a={7t=5z@U_8unrK!>ue&Ak6{6Rny;GebAj>f*<*%Zul5n zQqNP6tY5rah8)_CFQeR(rkDM#{*K=%nwpxKI5al#;?JJ+@v~B#=7HmkHo&~_gTFDo zJ+Xhr_`F@VM`lpPCQs-H+FsgdQ<^4Lf|R5ksF(cbfz!spUIouFbX(KKKqfuOc@nrH$?bG5AFhqaSkKCn6=jH3_7U}oP^ecdr z;`iB)S2ICt3mRxT5f%_lKlsM+-t*PRZ*`TDlgT$gV=x%_TI8lQjHX%}4fwlWDd0d= zwwE{6JY&OF$l{v@Y(-kkg&UOj$>jX|r3ttXtf^;RgC@&^1idPyu0Ix6$GpWZoHG=u-qe_DhaiY_M)QIPw z;R7i((x~$@XLfz{niC7-^ANu)s!1tTx)4N4$(S9TF(PjHTHd-UYWz)9=d`TVb1IZE zm30PE`q8(+@0Gj~TGlX;;8y{6}JfAVC;*FZKprgJBu+UC*4 zP8N~Rv`Z=Wpc#n<@LX#N!& z_=D-5DTt?;VLr00000NkvXXu0mjf DUgM5E literal 0 HcmV?d00001 diff --git a/pages/index/escalator-down.png b/pages/index/escalator-down.png new file mode 100644 index 0000000000000000000000000000000000000000..6bf08a43480d936bda0f4c660e810ecb8c776f27 GIT binary patch literal 7859 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 literal 0 HcmV?d00001 diff --git a/pages/index/escalator-up.png b/pages/index/escalator-up.png new file mode 100644 index 0000000000000000000000000000000000000000..f2914db5b14ac6ff74575d2c8f2eb27d5cc6d51c GIT binary patch literal 7857 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 m`BMD<*OdLQaf{5j3mO#P$v<{xYLjMP1&gb9& literal 0 HcmV?d00001 diff --git a/pages/index/flashoff.png b/pages/index/flashoff.png new file mode 100644 index 0000000000000000000000000000000000000000..44e88d13c4a3c178fa0a52c708fa8bb15c9cc47a GIT binary patch literal 2528 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 XMOaOaq+|K(00000NkvXXu0mjf4n=c& literal 0 HcmV?d00001 diff --git a/pages/index/floor-bg.png b/pages/index/floor-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..0a325ed687adc32a6dd6d7bdedf7f5eeb7476dfd GIT binary patch literal 130125 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�Pv%91EBInN~#Agr#j?b3up)$9~4 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�qV`x5->|}Bi1XF;;{f*{ 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 url !== null && !isPark + ), + filteredParkFloors: floors.filter( + ({ url, isPark }) => url !== null && isPark + ), + windowHeight, + e: decodeURIComponent(e), + searchType: Number(searchType), + }); + this.initSDK(config); + }, + initSDK(config) { + console.log(config); + this.SDK = new VPASSDK.SDKWrapper(config); + wx.createSelectorQuery() + .select("#webgl") + .node() + .exec((res) => { + _canvas = res[0].node; + // todo 初始化引擎放到我们系统初始化中 + // 创建一个与 canvas 绑定的 three.js + THREE = createScopedThreejs(_canvas); + // SXC + registerGLTFLoader(THREE); + }); + }, + requestLocation() { + this.ignoreArriveEnd = false; + if (!(this.data.inited && this.data.floorOrder !== null)) return; + if (!this.sdkInited) { + try { + this.SDK.initAR( + { + rgba2JpegCanvas: "#capture", // 压缩jpeg的Canvas,必填 + webGLCanvas: "#webgl", // 绘制AR内容canvas,必填 + }, + THREE, + _canvas + ); + } catch (error) { + console.log(error); + } + } + this.sdkInited = true; + locationOption = { + floor_id: this.data.floorId, + onLocateEvent: () => {}, + distanceOfNextPoint: () => {}, + onVerticalYaw: () => { + this.setData({ warningCount: this.data.warningCount + 1 }); + }, + onLocateEvent: (res) => {}, + onSaveViewmatrix: (res) => {}, + onSaveFusion_pose: (res) => {}, + distanceOfNextPoint: (res) => { + // console.log("distanceOfNextPoint", res); + }, + onFirstSuccess: (res) => { + this.firstSuccess(res); + this.setData({ + totalDistance: 0, + lastLoc: [res.locX, res.locY], + state: STATES.successPrompt, + flash: "off", + }); + }, + onBluetoothAndScanStatus: (res) => { + console.log("关于蓝牙和扫描框状态:", res.type); + // if (res.type === true) { + // if (this.data.state === STATES.bluetoothRequired) { + // this.requestLocation(); + // } + // } else if (res.type === 99) { + // this.setState(STATES.bluetoothRequired); + // this.finishARNavigation(); + // } + }, + onError: (e) => { + const { type } = e; + if (type !== 10010) console.log("error:", e); + if (type === 10005) return this.setState(STATES.fail5s); + if (type === 10007) { + this.finishARNavigation(); + return this.setState(STATES.fail8s); + } + if (type === 10008) { + return wx.showModal({ + title: "提示", + content: "断网了,重新链接?", + showCancel: false, + success: (res) => { + if (res.confirm) { + console.log("用户点击确定"); + // 获取网络信号 + wx.getNetworkType({ + success: (res) => { + locationOption.onNetWork({ + type: res.networkType, + msg: "获取网络类型", + }); + if (res.networkType !== "none") { + this.SDK.requestVPASLocation(locationOption); + } else { + locationOption.onError({ + type: 10008, + msg: "监听网络信号失败", + }); + } + }, + fail: (err) => { + locationOption.onError({ + type: 10008, + msg: "监听网络信号失败", + }); + }, + }); + } + }, + }); + } + if (type === 10009) { + return wx.showToast({ + icon: "none", + title: "车位号无效\n换个试试吧", + }); + } + if (type === 10010) { + return wx.showToast({ + icon: "none", + title: "请以垂直水平角度手持手机", + }); + } + wx.showToast({ + icon: "none", + title: "定位失败\n错误码:" + type, + }); + }, + onEverySuccess: (res) => { + // 跟踪回调 + const lastLoc = [res.locX, res.locY]; + const { + distance, + distanceToNextPoint, + type: nextPointType, + orientation: theta, + } = res; + if (!this.data.totalDistance) this.setData({ totalDistance: distance }); + const remainMinutes = Math.floor(distance / 1.4 / 60); + this.setData({ + theta, + distance, + distanceToNextPoint, + nextPointType, + msgBottomLeft: "剩余" + Math.floor(distance) + "米", + msgBottomRight: remainMinutes ? remainMinutes + "分钟" : "< 1 分钟", + }); + this.setMsgTopAndIcon(); + if ( + this.data.lastLoc && + this.data.lastLoc[0] === lastLoc[0] && + this.data.lastLoc[1] === lastLoc[1] + ) + return; + + this.setData({ + lastLoc, + }); + }, + onNetWork: (status) => { + console.log("network", status); + }, + onArrive: (res) => { + // console.log("onArrive", res); + if (res.type === 3 || res.type === 4) { + this.finishARNavigation(); + this.setState(STATES.arriveElevator); + } else if (res.type === 5 || res.type === 6) { + this.finishARNavigation(); + this.setState(STATES.arriveEscalator); + } else if (res.type === 8 || res.type === 9) { + this.finishARNavigation(); + this.setState(res.type === 8 ? STATES.arrivePark : STATES.arriveMall); + } else if (res.type === 7) { + if (this.ignoreArriveEnd) return; + this.setData({ arriveEnd: true }); + this.setMsgTopAndIcon(); + this.setState(STATES.arriveEnd); + this.ignoreArriveEnd = true; + } + }, + onResourceLoaded: (res) => { + console.log("AR资源导航加载完成"); + }, + onStep: (res) => { + // console.log(res) + }, + onYaw: ({ type }) => { + this.setData({ + leftYaw: type === 1 || type === 2, + rightYaw: type === 0 || type === 2, + }); + }, + onPoiEvent: async ({ eventUrl }) => { + if (eventUrl.includes("***")) { + let [appId, path] = eventUrl.split("***"); + wx.navigateToMiniProgram({ + appId, + path, + }); + return; + } + const poi = this.poiMap[eventUrl]; + console.log(eventUrl, poi); + if (poi && !this.locked) { + this.locked = true; + setTimeout(() => { + this.locked = false; + }, 5000); + const memberID = getApp().globalData.memberID; + if (poi.responseType === "活动" && memberID) { + const { msg } = await post("/api/ar/v1/applet/GetUserAward", { + memberID, + poiCode: poi.code, + }); + return wx.showModal({ + content: msg, + }); + } + if (poi.appId) { + return wx.navigateToMiniProgram({ + appId: poi.appId, + path: poi.path, + }); + } + if (poi.webUrl) { + wx.navigateTo({ + url: `/pages/detail/index?url=${encodeURIComponent(poi.webUrl)}`, + }); + } + } + }, + }; + console.log(locationOption); + this.SDK.requestVPASLocation(locationOption); + this.setData({ + state: STATES.startScan, + arriveEnd: false, + showTabs: false, + }); + }, + setMsgTopAndIcon() { + const { + distanceToNextPoint, + nextPointType, + arriveEnd, + nextFloor, + floors, + } = this.data; + if ( + distanceToNextPoint !== null && + nextPointType !== null && + nextPointType !== -1 + ) { + const flooredDistance = Math.floor(distanceToNextPoint); + const nextFloorName = nextFloor ? nextFloor.name : ""; + this.setData({ + msgTop: arriveEnd + ? "已到达" + : distanceToNextPoint > 20 + ? `直行${flooredDistance}米` + : nextPointType === 7 + ? `${flooredDistance}米后 到达终点` + : nextPointType === 8 + ? `${ + distanceToNextPoint < 5 ? "" : `${flooredDistance}米后 ` + }到达停车位入口` + : nextPointType === 9 + ? `${ + distanceToNextPoint < 5 ? "" : `${flooredDistance}米后 ` + }到达商场入口` + : [3, 4, 5, 6].includes(nextPointType) + ? `${ + distanceToNextPoint < 5 ? "" : `${flooredDistance}米后 ` + }乘梯至${nextFloorName}` + : [1, 2].includes(nextPointType) + ? `${ + distanceToNextPoint < 5 + ? nextPointType === 1 + ? "左转" + : "右转" + : `${flooredDistance}米后 ${ + nextPointType === 1 ? "左转" : "右转" + }` + }` + : distanceToNextPoint < 5 + ? `${nextPointType === 1 ? "左转" : "右转"}` + : "", + navIcon: arriveEnd + ? icons.end + : distanceToNextPoint > 20 + ? icons.straight + : { + 1: icons.left, + 2: icons.right, + 3: icons.elevatorUp, + 4: icons.elevatorDown, + 5: icons.escalatorUp, + 6: icons.escalatorDown, + 7: icons.end, + }[nextPointType], + }); + } + }, + setFloor({ currentTarget: { id } }) { + const floor = this.data[ + this.data.selectMall ? "filteredMallFloors" : "filteredParkFloors" + ][id]; + this.setData({ + floorOrder: floor.floorOrder, + point: null, + floorId: floor.floorId, + floorName: floor.name, + }); + }, + firstSuccess(res) { + console.log("firstSuccess---", this.data.e); + if (!map) return; + let shop = map.shopMap[this.data.e] + ? map.shopMap[this.data.e] + : map.facilityMap[this.data.e] + ? map.facilityMap[this.data.e] + : map.pMap[this.data.e]; + + if (!shop) { + const endParamList = this.data.e.split("_"); + if (endParamList.length === 3) { + let [efloororder, epoint, ename] = endParamList; + efloororder = Number(efloororder); + epoint = Number(epoint); + shop = { + isDevice: true, + name: ename, + navPoint: epoint, + yaxis: epoint, + floorOrder: efloororder, + floorName: map.mall.floors[efloororder][1], + }; + } + } + console.log("end", shop); + if (!shop) + return wx.showToast({ + icon: "none", + title: `未匹配到该终点:${this.data.e}`, + }); + + this.setData({ + shop: { + ...shop, + logoPath: shop.logoPath ? shop.logoPath.replaceAll("\\", "/") : null, + }, + }); + + const { naviData, nextFloorId, nextNextFloorId } = map.requestRoute( + [res.locX, res.locY, this.data.floorId], + { floorOrder: shop.floorOrder, navPoint: shop.yaxis } + ); + if (!naviData) return; + let nextFloor = this.data.floors.find( + ({ floorId }) => nextFloorId == floorId + ); + let nextNextFloor = this.data.floors.find( + ({ floorId }) => nextNextFloorId == floorId + ); + this.setData({ nextFloor, nextNextFloor }); + + let final = new THREE.Vector3( + naviData[naviData.length - 1].x, + naviData[naviData.length - 1].y, + 0 + ); + if (!nextFloor) { + naviData.pop(); + if (naviData.length === 1) { + naviData.push({ + ...naviData[0], + pointType: 1, + x: (naviData[0].x + final.x) / 2, + y: (naviData[0].y + final.y) / 2, + }); + } + } + console.log("naviData", naviData, "final", final); + + this.SDK.setNavigationData( + naviData, + final, + res.wasmFunction, + locationOption + ); + this.SDK.startARNavigation(); + setTimeout(() => { + this.setState(STATES.inNav); + this.setData({ + showTabs: true, + tab: 1, + }); + }, 1000); + }, + exit() { + wx.redirectTo({ + url: "/pages/h5map/index", + }); + }, + handleToMap() { + this.setState(STATES.tomap); + }, + handlePromptBtn({ detail: { btn } }) { + const { state } = this.data; + if (state === STATES.bluetoothRequired) { + if (btn === "3") return this.exit(); + } + if (state === STATES.fail8s) { + if (btn === "1") return this.requestLocation(); + if (btn === "2") return this.setState(STATES.selectFloor); + if (btn === "3") return this.exit(); + } + if (state === STATES.wrongLocation) return this.exit(); + if (state === STATES.badConnection) return this.requestLocation(); + if ( + state === STATES.arriveEscalator || + state === STATES.arriveElevator || + state === STATES.arriveMall || + state === STATES.arrivePark + ) { + const nextFloor = this.data.nextNextFloor + ? this.data.nextNextFloor + : this.data.nextFloor; + if (nextFloor) + this.setData({ + floorOrder: nextFloor.floorOrder, + point: null, + floorId: nextFloor.floorId, + floorName: nextFloor.name, + }); + return this.requestLocation(); + } + if (state === STATES.requestEnd || state === STATES.arriveEnd) { + if (btn === "1") return this.exit(); + if (btn === "2") return this.setState(STATES.inNav); + } + if (state === STATES.noCamera) { + if (btn === "1") + return wx.openSetting({ + withSubscriptions: true, + success: ({ authSetting }) => { + if (authSetting["scope.camera"]) { + wx.redirectTo({ + url: `/pages/index/index?e=${this.data.e}`, + }); + } + }, + }); + if (btn === "2") return this.exit(); + } + if (state === STATES.tomap) { + if (btn === "1") + return wx.redirectTo({ + url: `/pages/h5map/index?e=${this.data.e}`, + }); + if (btn === "2") return this.setState(STATES.inNav); + } + }, + setState(state) { + if ( + (this.data.state === STATES.arriveEscalator || + this.data.state === STATES.arriveElevator || + this.data.state === STATES.arriveMall || + this.data.state === STATES.arrivePark) && + state === STATES.inNav + ) + return console.log("到达弹窗出现忽略导航中状态变更触发"); + if ( + this.data.state === STATES.bluetoothRequired && + state !== STATES.startScan + ) + return console.log("蓝牙弹窗状态只能进入开始定位状态"); + this.setData({ + state, + }); + }, + handleMap({ detail }) { + map = detail; + this.setData({ + inited: true, + }); + const { floors } = this.data; + const floor = floors[initFloorOrder]; + initFloorOrder = undefined; + if (floor) { + this.setData({ + floorOrder: floor.floorOrder, + point: null, + floorId: floor.floorId, + floorName: floor.name, + }); + this.requestLocation(); + } + }, + handleTabChange({ detail }) { + this.setData({ + tab: detail, + }); + if (this.SDK) { + this.SDK.updateOnScreenArrowPosition( + detail == 0 + ? new THREE.Vector3(0, -0.015, -0.25) + : new THREE.Vector3(0, -0.06, -0.25) + ); + } + }, + handleRelocate() { + this.SDK.finishARNavigation(); + this.requestLocation(); + }, + handleNavExit() { + this.setState(STATES.requestEnd); + }, + handleNoCamera() { + this.setState(STATES.noCamera); + }, + flashlightBtn() { + if (this.data.flash === "off") { + this.setData({ + flash: "on", + flash_isFilter: "true", + }); + } else { + this.setData({ + flash: "off", + }); + } + }, + getSystemInfo() { + wx.getSystemInfo({ + success: (res) => { + console.log("设备信息:", res); + let parkWidth = 248; + let parkHeight = 70; + let parkTop = res.windowHeight - parkHeight; + let parkLeft = res.windowWidth - parkWidth; + this.setData({ + parkWidth: parkWidth, + parkHeight: parkHeight, + parkTop: parkTop / 2, + parkLeft: parkLeft / 2, + safeTop: res.safeArea.top, + frameSize: res.system.includes("iOS") ? "medium" : "small", + resolution: res.system.includes("iOS") ? "high" : "small", + }); + console.log( + "宽高左上:", + this.data.parkWidth, + this.data.parkHeight, + this.data.parkTop, + this.data.parkLeft + ); + }, + }); + }, + + clickScreen(e) { + let detail = e.detail; + this.SDK.getScreenCoordinate({ x: detail.x, y: detail.y }); + console.log("点击屏幕x, y:", detail.x, detail.y); + }, + + touchMove(event) { + this.SDK.getScreenCoordinate(event.touches[0]); + }, + + touchCancel(event) { + this.SDK.touchCancel(); + }, + + touchStart() { + console.log("touch Start"); + this.SDK.touchStart(); + }, + + touchEnd() { + console.log("touch End"); + this.SDK.touchCancel(); + }, + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + this.getSystemInfo(); + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () {}, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + this.finishARNavigation(true); + if (this.SDK) this.SDK.releaseRender(); + }, + finishARNavigation(isUnload = false) { + if (this.SDK) this.SDK.finishARNavigation(isUnload); + this.setData({ totalDistance: 0 }); + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () {}, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () {}, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage({ from }) { + const e = + from === "button" && this.data.point !== null + ? `${this.data.floorOrder}_${this.data.point}_来自分享的位置` + : null; + return e === null + ? { + title: "", + path: "/pages/h5map/index", + imageUrl: "/pages/h5map/share.png", + } + : { + title: "来自分享的位置", + path: `/pages/h5map/index?e=${e}`, + imageUrl: "/pages/h5map/share.png", + }; + }, + handlePoint({ detail }) { + this.setData({ point: detail }); + }, +}); diff --git a/pages/index/index.json b/pages/index/index.json new file mode 100644 index 0000000..6ff22f5 --- /dev/null +++ b/pages/index/index.json @@ -0,0 +1,10 @@ +{ + "usingComponents": { + "prompt": "../prompt/prompt", + "map2d": "../map2d/map2d", + "tabs": "../tabs/tabs", + "destination": "../destination/destination", + "nav": "../nav/nav", + "scan": "../scan/scan" + } +} diff --git a/pages/index/index.wxml b/pages/index/index.wxml new file mode 100644 index 0000000..2741194 --- /dev/null +++ b/pages/index/index.wxml @@ -0,0 +1,70 @@ + + + + + + + + + +导航助手 + + + + {{floorName}} + + + + + + + 为了更精确定位 + 请选择您当前所在楼层 + + + + {{item.name}} + + + + + + + + + + + + + + + {{state===states.startScan?'开始定位':'努力定位中'}} + {{state===states.startScan?'请摆正手机扫描临近车位号':'再试试扫描其他车位号'}} + + + 示例 + + + + 您身边的车位号置于此区域,并对齐扫描边缘 + + + + + + + + + + 定位成功 + 请跟随路线指示行走 + + + + + + + \ No newline at end of file diff --git a/pages/index/index.wxss b/pages/index/index.wxss new file mode 100644 index 0000000..790236a --- /dev/null +++ b/pages/index/index.wxss @@ -0,0 +1,406 @@ +#map { + /* z-index: 10000 !important; */ + position: relative; +} + +#loc { + width: 50rpx; + height: 50rpx; + position: absolute; + /* bottom: 90px; + right: 80px; */ + z-index: 1000000000 !important; +} + +.floor-modal { + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + background: rgba(0, 0, 0, 0.4); + z-index: 10 !important; +} + +.floor-modal > .content { + position: absolute; + width: 100%; + height: 560px; + bottom: 0; + background: linear-gradient( + 180deg, + #9fcdff 0%, + #e1f4ff 29.17%, + #ffffff 51.56%, + #ffffff 100% + ); + font-style: normal; + font-weight: bold; + font-size: 20px; + line-height: 28px; + text-align: center; + letter-spacing: 1px; + color: #554936; + padding-top: 245px; + text-align: left; +} +.floor-modal > .content > .bg { + position: absolute; + top: 28px; + + left: 22px; + right: 22px; + + z-index: 1; +} +.floor-modal > .content > .meta1 { + font-family: PingFang SC; + font-style: normal; + font-weight: normal; + font-size: 14px; + line-height: 20px; + letter-spacing: 1px; + padding-left: 28px; + color: #474a56; +} +.floor-modal > .content > .meta2 { + font-family: PingFang SC; + font-style: normal; + font-weight: 600; + font-size: 22px; + line-height: 31px; + letter-spacing: 1px; + padding-left: 28px; + color: #323337; +} + +.content > .list { + width: 100vw; + height: 100px; + margin-top: 32px; + white-space: nowrap; +} + +.content > .list .item { + display: inline-flex; + width: 64px; + height: 100px; + background: #f3f4f8; + border-radius: 8px; + justify-content: center; + align-items: center; + margin-left: 28px; + font-family: PingFang SC; + font-style: normal; + font-weight: 600; + font-size: 18px; + line-height: 25px; + text-align: center; + letter-spacing: 1px; + color: #323337; +} +.content > .list .item + .item { + margin-left: 8px; +} +.content > .list .item.active { + border: 2px solid #437af7; +} +.list .list-container { + display: inline-flex; + padding-right: 28px; +} +.content > .tip { + margin-top: 10px; + margin-bottom: 9px; + font-family: PingFang SC; + font-style: normal; + font-weight: bold; + font-size: 12px; + line-height: 17px; + text-align: center; + color: #7a7e8d; +} +.content > .btn { + display: flex; + align-items: center; + justify-content: center; + width: calc(100vw - 28px - 28px); + margin-left: 28px; + height: 48px; + background: linear-gradient(180deg, #508af7 0%, #5ea5f9 100%); + box-shadow: 0px 6px 12px rgba(93, 172, 249, 0.2); + border-radius: 10px; + font-family: PingFang SC; + font-style: normal; + font-weight: 600; + font-size: 16px; + text-align: center; + color: #ffffff; + padding: 0; +} + +.content > .btn.disabled { + color: #fff; + box-shadow: none; + background: #a1a5b3; +} + +.content > .close { + position: absolute; + width: 24px; + height: 24px; + top: 16px; + right: 16px; +} +.success-prompt { + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + background: rgba(0, 0, 0, 80%); + z-index: 10 !important; +} + +.success-prompt > image { + position: absolute; + width: 128px; + height: 128px; + top: 221px; + left: 0; + right: 0; + margin: auto; +} + +.success-prompt > .title { + position: absolute; + top: 429px; + left: 0; + right: 0; + font-family: PingFang SC; + font-style: normal; + font-weight: bold; + font-size: 28px; + line-height: 39px; + text-align: center; + letter-spacing: 1px; + color: #ffffff; +} + +.success-prompt > .meta { + position: absolute; + top: 476px; + left: 0; + right: 0; + font-family: PingFang SC; + font-style: normal; + font-weight: normal; + font-size: 14px; + line-height: 20px; + text-align: center; + letter-spacing: 1px; + color: #c9cbd1; +} +.zzcImg { + width: 100%; + height: 100%; + /* border: 1px solid red; */ + z-index: 10; + position: absolute; + left: 0; + top: 0; +} +.zzcimg_ys { + width: 100%; + height: 100%; +} +.scan_lo_tow { + width: 90%; + z-index: 1000000000000 !important; + position: absolute; + left: 5%; + top: 510rpx; + height: 72.4; +} +.trans-y { + animation: site-transy 2s infinite ease-in-out; +} +@keyframes site-transy { + 0% { + transform: translateY(-410px); + } + + 100% { + transform: translateY(300px); + } +} +.scanning_textnl { + z-index: 1000000000000 !important; + position: absolute; + left: 0; + right: 0; + width: 100%; + text-align: center; + font-family: PingFang SC; + font-style: normal; + font-weight: bold; + font-size: 20px; + line-height: 28px; + color: #eee9de; +} +.scanning_tip { + position: absolute; + left: 0; + right: 0; + width: 100%; + text-align: center; + font-family: PingFang SC; + font-style: normal; + font-weight: normal; + font-size: 14px; + line-height: 21px; + text-align: center; + color: #fdd02f; +} +.scanning_tip > image { + display: flex; + width: 180px; + height: 50px; + margin: auto; + margin-top: 8px; +} +.scanning_text { + position: absolute; + left: 0; + right: 0; + width: 100%; + font-family: PingFang SC; + font-style: normal; + font-weight: bold; + font-size: 12px; + line-height: 17px; + text-align: center; + letter-spacing: 1px; + color: rgba(238, 233, 222, 0.5); +} +.flashlightBtn { + position: fixed; + top: 1086rpx; + left: 50%; + transform: translate(-50rpx); + color: red; + z-index: 1000000000000 !important; +} +.on_img { + width: 112rpx; + height: 96rpx; +} +.logo { + position: fixed; + z-index: 11; + left: 16px; + width: 24px; + height: 24px; +} +.title { + position: fixed; + z-index: 11; + height: 27px; + left: 16px; + font-family: PingFang SC; + font-style: normal; + font-weight: bold; + font-size: 20px; + line-height: 28px; + + color: #000000; +} +.floorname { + position: fixed; + display: inline-flex; + align-items: center; + justify-content: center; + z-index: 16; + height: 40px; + left: 8px; + padding-left: 8px; + padding-right: 12px; + background: #ffffff; + border-radius: 20px; + font-family: PingFang SC; + font-style: normal; + font-weight: 500; + font-size: 14px; + line-height: 20px; + color: #323337; +} +.floorname > .loc { + width: 16px; + height: 16px; +} +.floorname > .sep { + width: 1px; + height: 10px; + background: #c9cbd1; + margin: 0 8px; +} +@keyframes pointleft { + from { + left: 8px; + } + 50% { + left: 0; + } + to { + left: 8px; + } +} +@keyframes pointright { + from { + right: 8px; + } + 50% { + right: 0; + } + to { + right: 8px; + } +} +.leftyaw { + position: fixed; + width: 98px; + height: 40px; + top: 0; + bottom: 0; + z-index: 11; + left: 8px; + margin: auto; + animation: pointleft 0.5s infinite ease; +} +.rightyaw { + position: fixed; + width: 98px; + height: 40px; + top: 0; + bottom: 0; + z-index: 11; + right: 8px; + margin: auto; + animation: pointright 0.5s infinite ease; +} +.share { + position: fixed; + z-index: 11; + right: 8px; + width: 40px !important; + height: 54px; + background: none; +} +.share-img { + position: fixed; + z-index: 12; + right: 8px; + width: 40px; + height: 54px; + pointer-events: none; +} diff --git a/pages/index/left.png b/pages/index/left.png new file mode 100644 index 0000000000000000000000000000000000000000..2e4b74581f30d3c4987b1bd3d386c874a0be3aba GIT binary patch literal 8550 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 literal 0 HcmV?d00001 diff --git a/pages/index/leftyaw.png b/pages/index/leftyaw.png new file mode 100644 index 0000000000000000000000000000000000000000..16583a42000e4f422bb0034afb07a0b2beb51fee GIT binary patch literal 12924 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 ms3HW%bng&*3oo_;)b#gCPd2`)#T|A40000 literal 0 HcmV?d00001 diff --git a/pages/index/loc.png b/pages/index/loc.png new file mode 100644 index 0000000000000000000000000000000000000000..d3fcc9b9226240396892c6a3fc9b8055609edc63 GIT binary patch literal 977 zcmV;?11|iDP)nNin1a9~48OhAD? zma;4azF^RNjJXjS(ETg%wqYNP6PQg#pk}qoKxh$A77_`LndEi-qS9Tfx$4k$wd?`G zuD0y}(vbIt1j2ER$SnWKGf7=mPEYt zR-8b6{p8sCw5viBQ;u1jQomYj=Jm~~kUk+H0^9Kf2=numQ@=R8)sK)w$5$ih{=&Ow z>XTa58-~%-?=@s{ zqPb)!Lr=Z6Br(>{qF%m=z<72EA*XLXg3QQ|C0AnA>X_b{TFa>@&;NBM0>3XfPJ6xs`Hwyy22HNdBmuwg)wqQf>3xHI75>2L(tW+%>;=qg?fhuy>S1R>2mE zYx0wk^0Rijp&Y+$_dRfBD+)Z8fJ!(u0fP<(#Z5>kaO7d-fh${ay0LvgO*6vj#w2ub z7AI<&>azAX;R&}@BxB%p$fyY!2M+vzOT8thA&`_r8t}vf){#gHz7c^q5?rR37JOp@ zkt71y7(5k$7!s+#Qxgc0fVAKb7DYmR@BsM-EiCAAUoMex00000NkvXXu0mjfZ&tNW literal 0 HcmV?d00001 diff --git a/pages/index/logo.png b/pages/index/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..10a34345f9e64894ab1a1c161b46e4d48e17a60f GIT binary patch literal 975 zcmV;=12FuFP)<+?%CoeW! z{(BrkeCi~G5Wg82SqQXyyL-2{iy#Ng9V&Rl2MG50Zxsf01iWT=L^t7{@89$61_NB< zIc}t8|6d6~My$|JIN|95k0!EUs7!!U?BF`9GN~1a1Q&do7~xeBoKul@T18SRU~UoS zF8C~MdBf*;;-vsby~^QChqg%n`QK{ zi^gS0xl)(bay&D<%|hL0d&x5!5MTYx0uA&GmOEKRrC4CJnwKZh?MjW}GA{ zc)@JIVJ)ylqdy|D!q5Vb8MDdF5m{lVfQ(JDMKtw~Y@z#%dBCfH!CPFCmNzf)KH$86 zfNf=fy2ilvT0l?@O1<(XVblV$#R>>2i952AQ`z;r@sb;gBNPaeHqAUewv;kViW1n& zmePZOQ&F-4n+fz}1z7D1sKQO+jSO_tEzSxyJMfv_MHMifl`yV)C<@=?lBG#i;JfF| z$0!QHN3Z+nJ>qJef8oa=XQK|*NUG%W3AKQ`d=26b{8<04?a8y8L-&zAje#K@_|Y^! zZApDCxMG@LZl+~T$|?uLeDI_FD>@(|7wURm1YbCuu_nGOLzv{@DXA~$`7STDMe zhJ04TM|dUuPYs6FXlc_8`JsZJvetPvYFzk|{l^|dMVhX%owd5xu}22MM`TtYPNWR5 xuYD|A1elB$O;dVy|2?2SA literal 0 HcmV?d00001 diff --git a/pages/index/mask.png b/pages/index/mask.png new file mode 100644 index 0000000000000000000000000000000000000000..d94f75d1d263b2884c3291cfcc8303dd07bb3590 GIT binary patch literal 3382 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 TyKp|fFu=%3DNELhn*{wIohCsQ literal 0 HcmV?d00001 diff --git a/pages/index/rightyaw.png b/pages/index/rightyaw.png new file mode 100644 index 0000000000000000000000000000000000000000..202d95d86745fa480ff5717a0909ea48e6f9e008 GIT binary patch literal 12903 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 UV%jN3KmY&$07*qoM6N<$f`!rW0ssI2 literal 0 HcmV?d00001 diff --git a/pages/index/share.png b/pages/index/share.png new file mode 100644 index 0000000000000000000000000000000000000000..7906bc774034d59c9542ef0eca02874bd5927fe5 GIT binary patch literal 2578 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 + + + diff --git a/pages/login/checkbox.svg b/pages/login/checkbox.svg new file mode 100644 index 0000000..21659c4 --- /dev/null +++ b/pages/login/checkbox.svg @@ -0,0 +1,4 @@ + + + + diff --git a/pages/login/emptycheckbox.svg b/pages/login/emptycheckbox.svg new file mode 100644 index 0000000..85ed79b --- /dev/null +++ b/pages/login/emptycheckbox.svg @@ -0,0 +1,3 @@ + + + diff --git a/pages/login/index.js b/pages/login/index.js new file mode 100644 index 0000000..18158ef --- /dev/null +++ b/pages/login/index.js @@ -0,0 +1,57 @@ +import { post } from "../../getMapData"; + +Page({ + /** + * 页面的初始数据 + */ + data: { + agreed: true, + }, + toPrivacy() { + wx.navigateTo({ + url: "/pages/privacy/index", + }); + }, + toggleAgreed() { + this.setData({ agreed: !this.data.agreed }); + }, + toMainPage() { + const app = getApp(); + app.globalData.userDeny = true; + return wx.redirectTo({ + url: "/pages/h5map/index", + }); + }, + async ongetphonenumber(e) { + if (!e.detail.code) { + return this.toMainPage(); + } + try { + wx.showLoading(); + const app = getApp(); + const { openid } = app.globalData; + const { + code: resCode, + data: { isShopMember, memberID }, + } = await post("/api/ar/v1/applet/MemberRegister", { + code: e.detail.code, + wechatID: openid, + }); + + if (resCode === "200") { + app.globalData.memberID = memberID; + app.globalData.isShopMember = isShopMember; + wx.reLaunch({ + url: "/pages/h5map/index", + }); + } else { + this.toMainPage(); + } + } catch (error) { + this.toMainPage(); + console.log(error); + } finally { + wx.hideLoading(); + } + }, +}); diff --git a/pages/login/index.json b/pages/login/index.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/pages/login/index.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/login/index.wxml b/pages/login/index.wxml new file mode 100644 index 0000000..a37cf26 --- /dev/null +++ b/pages/login/index.wxml @@ -0,0 +1,10 @@ + \ No newline at end of file diff --git a/pages/login/index.wxss b/pages/login/index.wxss new file mode 100644 index 0000000..2b8b2a3 --- /dev/null +++ b/pages/login/index.wxss @@ -0,0 +1,75 @@ +.login { + position: relative; + width: 100vw; + height: 100vh; + background: #e5e5e5; +} +.back { + position: absolute; + width: 60px; + height: 60px; + left: 10px; + top: 104px; +} +.logo { + position: absolute; + width: 80px; + height: 80px; + left: 0; + right: 0; + top: 172px; + margin: auto; +} +.title { + position: absolute; + top: 288px; + left: 0; + right: 0; + text-align: center; + font-family: "PingFang SC"; + font-style: normal; + font-weight: 600; + font-size: 18px; + line-height: 25px; + color: #474a56; +} +.login-btn { + display: flex; + align-items: center; + justify-content: center; + position: absolute; + top: 399px; + left: 0; + right: 0; + margin: auto; + width: 220px; + height: 60px; + background: #56b23a; + border-radius: 10px; + font-style: normal; + font-weight: 600; + font-size: 16px; + line-height: 22px; + color: #ffffff; +} +.privacy { + position: absolute; + top: 483px; + left: 0; + right: 0; + display: flex; + font-weight: 400; + font-size: 14px; + line-height: 20px; + justify-content: center; + align-items: center; + color: #7a7e8d; +} +.privacy image { + width: 14px; + height: 14px; + margin-right: 8px; +} +.privacy > .bold { + color: #000; +} diff --git a/pages/login/logo.png b/pages/login/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ba70bc8ea0231dcdf6adedf05cef85480d238fa3 GIT binary patch literal 1462 zcma)+eK^wz0LN#Dv3W^z!#VOYZ?lFq70HIY&)aBW8uPLzMws`v&HEBvp>UOrx$=_i zTJoA7S5r@DD2>aZ7kQUdit5h&ea~~x{qgyJ{`>y<;dm3BVG5cGAP@-V>f-3T>zIF# z-?O{tBTo$PN`vV{X8OfNGE+hmB0%`?xUdLaS4L=5gl|M>cv}3U2wMGA++MCqA*OF$_IhrxX|a1Twnd`|G|_68 zVmM64SbbWI&Dpvf&^<<}w>0f5n%Uld;`{uk4V55D(cohpEkhx;^Qw1&2udyxsr)C4 zV$D{HL!(#%HiK(MQw<3;Cs#;xsY6$-k1c?Ti7rOd0@puu(o zRgtoO<6Q?KT91ADV{J6+*=FYF%GN|ihd)GIBY(C_hRiFG!u6Y$X$g_KC@Z_^<*DOq z^QBXfyDx0&uwLVm)g205I<^5H4F)WmG^1wwQ$P%TNZ>0~k}|se)_W7W^t{sQ!&ib> z%e)3)!JS3*2gDAT%nDq+8LB?kyJxJ-7SN1Ra<3TEbS8@;az0@-aMz~O*AsQhGFn0i zWQKo@O`9QNT=pX5fH?|g{gFFQ5)&yjE)k%H^%#7Afml9^AfE2;*RaTIXXEaofnX74 z>HcRaVy4p7PwZQGRZ@g|WZhgc@N53eP}YFk zn@4H%O}nN6-MS6A<=_QH?ZWqy8m2I9ZnBT0n0n6jp{u$>gXf&+Ja`5A<(rMpS__7L zwCS?@;@+J7MuJl@!IQl$AHEA}&z-2wsL5Z*XE3#{5Qa1uZh18INkm&%*`s;#zVqb|%Kc(oOSq0qyALNfOdy)8p-SsQKK z%%bG=m6P`j!8OkX(FVLsj#lh^$7Bs4X_*?M<(qTG!T8@s-*kEISUZwmC)L=EnI#r@ zneYRqdSf>)s8mY&EvIL0*RAub{YqD(FTq8kvf%n`gN^6gw79<`H@}6-OgM}$VS?wE^pI|P^^ahJq%@gMjnWpJbDo=gw-GO zw@Fe@J1}}Ef$8CaevEPn%qNi&sE6${q@NhCHK(7fAIk>COEX&MHcgTI*FZw9=%zuI zmE-^E&%gWh;pm8=18wK!sxMEF?U&9GOZuknVd*RE$~~SkZ5O#5sQ?A658%c^DpfJ* kdTiH1qO^#GB~Ww!2H9_xXaE2J literal 0 HcmV?d00001 diff --git a/pages/map2d/L1.png b/pages/map2d/L1.png new file mode 100644 index 0000000000000000000000000000000000000000..e3938bca999bf5468741a897386824c59cd0a7e7 GIT binary patch literal 236043 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 R`U)HCF*CBdQE|;V`u}VTMqdB` literal 0 HcmV?d00001 diff --git a/pages/map2d/MAPAPP.js b/pages/map2d/MAPAPP.js new file mode 100644 index 0000000..4a491c4 --- /dev/null +++ b/pages/map2d/MAPAPP.js @@ -0,0 +1,454 @@ +import { getCrossPoint } from "./util"; +import Events from "./events"; + +import dijkstra from "dijkstrajs"; +import { getMapData, mall } from "../../getMapData"; + +const getDistance = (a, b) => + Math.sqrt((a.x - b.x) * (a.x - b.x) + (a.z - b.z) * (a.z - b.z)); +export const minScale = 0.3; +export const maxScale = 1; + +export default class MAPAPP { + events = new Events(); + mall = mall; + groups = []; + x = null; + y = null; + intervals = []; + shown = false; + scale = minScale; + constructor(query, component) { + this.searchType = component.data.searchType; + const canvas = query.node; + const ctx = canvas.getContext("2d"); + const dpr = wx.getSystemInfoSync().pixelRatio; + canvas.width = query.width * dpr; + canvas.height = query.height * dpr; + const start = canvas.createImage(); + start.src = "/pages/map2d/start.png"; + const end = canvas.createImage(); + end.src = "/pages/map2d/end.png"; + const arrow = canvas.createImage(); + arrow.src = "/pages/map2d/arrow.png"; + ctx.scale(dpr, dpr); + Object.assign(this, { + canvas, + ctx, + start, + end, + arrow, + width: query.width, + height: query.height, + }); + this.init(); + } + + on(event, cb) { + return this.events.on(event, cb); + } + once(event, cb) { + return this.events.once(event, cb); + } + off(event, cb) { + return this.events.off(event, cb); + } + dispose() { + console.log("map interval disposed"); + this.intervals && this.intervals.forEach(clearInterval); + this.intervals = []; + } + + async init() { + const data = await getMapData(); + Object.assign(this, data); + const { floors } = this.mall; + const { canvas } = this; + const groups = floors.map(([_, name, map2dData]) => { + const floor = canvas.createImage(); + if (map2dData) floor.src = map2dData.data; + return floor; + }); + this.groups = groups; + this.events.dispatch("loaded", this); + this.intervals.push( + setInterval(() => { + this.animate(); + }, 1000 / 30) + ); + } + get shops() { + return !this.serverShopInfo + ? [] + : this.serverShopInfo[this.floorOrder].shopList; + } + get currentFloorObject() { + return this.groups[this.floorOrder]; + } + setXY(x, y) { + this.x = x; + this.y = y; + } + scaleX(number) { + const { x, width, scale } = this; + return (number - x) * scale + width / 2; + } + scaleY(number) { + const { y, height, scale } = this; + return (number - y) * scale + height / 2; + } + scaleLen(number) { + const { scale } = this; + return number * scale; + } + animate() { + const { shown, ctx, x, y, width, height } = this; + if (!shown) return; + ctx.clearRect(0, 0, width, height); + ctx.save(); + // ctx.translate(this.scaleX(-x) + width / 2, this.scaleY(-y) + height / 2); + this.drawFloor(); + this.drawLines(); + ctx.restore(); + this.drawArrow(); + } + drawArrow() { + const { ctx, arrow, width, height } = this; + ctx.save(); + ctx.translate(width / 2, height / 2); + ctx.drawImage(arrow, -16, -16, 32, 32); + ctx.restore(); + } + drawPath() { + const { linePath, ctx } = this; + const start = linePath[0]; + const end = linePath[linePath.length - 1]; + ctx.fillStyle = "#518cf7"; + ctx.beginPath(); + ctx.arc( + this.scaleX(start[0]), + this.scaleY(start[1]), + // this.scaleLen(10), + 10, + 0, + 2 * Math.PI + ); + ctx.fill(); + ctx.beginPath(); + ctx.arc( + this.scaleX(end[0]), + this.scaleY(end[1]), + // this.scaleLen(10), + 10, + 0, + 2 * Math.PI + ); + ctx.fill(); + + ctx.beginPath(); + linePath.forEach(([x, y], i) => { + if (i === 0) { + ctx.moveTo(this.scaleX(x), this.scaleY(y)); + } else { + ctx.lineTo(this.scaleX(x), this.scaleY(y)); + } + }); + } + drawLines() { + const { linePath, ctx } = this; + if (!linePath || !linePath.length) return; + this.drawPath(); + ctx.lineCap = "round"; + ctx.lineJoin = "round"; + // ctx.lineWidth = this.scaleLen(11); + ctx.lineWidth = 11; + ctx.strokeStyle = "#518cf7"; + ctx.stroke(); + for (let i = 9; i >= 1; i -= 1) { + ctx.lineCap = "butt"; + ctx.lineJoin = "butt"; + // ctx.lineWidth = this.scaleLen(i); + ctx.lineWidth = i; + ctx.strokeStyle = "#fff"; + // ctx.setLineDash([this.scaleLen(4), this.scaleLen(13)]); + ctx.setLineDash([4, 13]); + // ctx.lineDashOffset = this.scaleLen(i - 9); + ctx.lineDashOffset = i - 9; + ctx.stroke(); + ctx.strokeStyle = "#437af7"; + // ctx.setLineDash([0, this.scaleLen(4), this.scaleLen(13), 0]); + ctx.setLineDash([0, 4, 13, 0]); + // ctx.lineDashOffset = this.scaleLen(i - 9); + ctx.lineDashOffset = i - 9; + ctx.stroke(); + } + const start = linePath[0]; + const end = linePath[linePath.length - 1]; + ctx.fillStyle = "#437af7"; + // ctx.lineWidth = this.scaleLen(1); + ctx.lineWidth = 1; + ctx.beginPath(); + ctx.arc( + this.scaleX(start[0]), + this.scaleY(start[1]), + // this.scaleLen(9), + 9, + 0, + 2 * Math.PI + ); + ctx.fill(); + ctx.beginPath(); + ctx.arc( + this.scaleX(end[0]), + this.scaleY(end[1]), + // this.scaleLen(9), + 9, + 0, + 2 * Math.PI + ); + ctx.fill(); + ctx.fillStyle = "#fff"; + ctx.beginPath(); + ctx.arc( + this.scaleX(start[0]), + this.scaleY(start[1]), + // this.scaleLen(4.5), + 4.5, + 0, + 2 * Math.PI + ); + ctx.fill(); + ctx.beginPath(); + ctx.arc( + this.scaleX(end[0]), + this.scaleY(end[1]), + // this.scaleLen(4.5), + 4.5, + 0, + 2 * Math.PI + ); + ctx.fill(); + } + + drawFloor() { + const { floorOrder, groups, ctx } = this; + const floor = groups[floorOrder]; + ctx.save(); + ctx.drawImage( + floor, + this.scaleX(-floor.width / 2), + this.scaleY(-floor.height / 2), + this.scaleLen(floor.width), + this.scaleLen(floor.height) + ); + ctx.restore(); + } + + async changeFloor(num) { + this.floorOrder = num; + this.x = null; + this.y = null; + this.events.dispatch("floorchange", Number(num)); + return; + } + + cross({ x, y }) { + const point = { x, y }; + const { positions } = this; + if (!(positions && positions.length)) return point; + let minDisance = Infinity; + let crossPoint = null; + let index = 1; + for (let k = 1; k < positions.length; k++) { + let point1 = positions[k - 1]; + let point2 = positions[k]; + let cross = getCrossPoint(point, point1, point2); + let d = Math.sqrt( + (point.x - cross.x) * (point.x - cross.x) + + (point.y - cross.y) * (point.y - cross.y) + ); + + if (d < minDisance) { + minDisance = d; + crossPoint = cross; + index = k; + if (d < 0.5) break; + } + } + return crossPoint; + } + requestRoute(start, end, draw = true) { + if (!(start && end)) return; + const startFloorId = start[2]; + const startFloorOrder = getApp().globalData.floorIdFloorOrderMap[ + startFloorId + ]; + const { name: sname } = this.getNearestPoint({ + x: start[0], + z: start[1], + floorOrder: startFloorOrder, + }); + const startFloor = startFloorOrder; + const startPoint = Number(sname); + + const endFloor = end.floorOrder; + const endPoint = end.navPoint; + + let path = this.shortestPath( + { + floorOrder: startFloor, + NavPoint: startPoint, + }, + { + floorOrder: endFloor, + NavPoint: endPoint, + } + ); + if (!path) { + console.log("寻路失败", "start", start, "end", end); + return { naviData: null, nextFloorId: null }; + } + let floorIdPoints = path.map((str) => str.split("_")); + const byFirstDiffFloor = ([floorId], i) => + i === 0 ? false : floorIdPoints[i - 1][0] !== floorId; + const index = floorIdPoints.findIndex(byFirstDiffFloor); + console.log("index", index); + + const isFloorChange = + index !== -1 && getApp().globalData.floors[path[index].split("_")[0]]; + const currentFloorOrder = Number(floorIdPoints[0][0]); + const nextFloorOrder = !isFloorChange + ? null + : Number(floorIdPoints[index][0]); + const fac = !isFloorChange ? null : this.facilityLiftMap[path[index - 1]]; + let naviData = floorIdPoints.slice(0, index === -1 ? undefined : index); + naviData = naviData.reduce((acc, [floorOrder, point]) => { + const last = acc[acc.length - 1]; + const x = this.points[floorOrder][point].position[0]; + const y = this.points[floorOrder][point].position[2]; + const floorId = startFloorId; + if (last && Math.abs(last.y - y) <= 3 && Math.abs(last.x - x) <= 3) + return acc; + else return [...acc, { x, y, floorId }]; + }, []); + + if (naviData.length === 1) { + naviData.unshift({ + x: start[0], + y: start[1], + flooorId: naviData[0].flooorId, + }); + } + naviData.forEach((data, i) => { + data.pointType = + i === 0 + ? 0 + : i !== naviData.length - 1 + ? 1 + : !isFloorChange + ? 6 + : nextFloorOrder > currentFloorOrder + ? fac.Type == 5 + ? 2 + : 4 + : fac.Type == 5 + ? 3 + : 5; + }); + this.positions = naviData; + console.log("originalNaviData", naviData); + if (draw && naviData.length) { + this.linePath = naviData.map(({ x, y }) => [x, y]); + } + const nextFloorId = !isFloorChange + ? null + : getApp().globalData.floors[path[index].split("_")[0]].floorId; + console.log("nextFloorId", nextFloorId); + return { + naviData, + nextFloorId, + }; + } + shortestPath( + { floorOrder: floorOrder1, NavPoint: NavPoint1 }, + { floorOrder: floorOrder2, NavPoint: NavPoint2 }, + searchType + ) { + const { graph, graphDt, graphFt } = this; + searchType = [0, 1, 2].includes(searchType) ? searchType : this.searchType; + try { + let currentGraph = + searchType === 0 ? graph : searchType === 1 ? graphFt : graphDt; + const s = floorOrder1 + "_" + NavPoint1; + const d = floorOrder2 + "_" + NavPoint2; + if (currentGraph && currentGraph[s] && currentGraph[d]) { + let path = dijkstra.find_path(currentGraph, s, d); + return path; + } else return null; + } catch (e) { + console.log(e); + return this.shortestPath( + { floorOrder: floorOrder1, NavPoint: NavPoint1 }, + { floorOrder: floorOrder2, NavPoint: NavPoint2 }, + 0 + ); + } + } + getNearestPoint({ x, z, floorOrder }) { + const { points } = this; + const [nearest] = points[floorOrder].reduce( + ([last, min], nxt) => { + if (last === null) { + return [ + nxt, + getDistance( + { + x, + z, + }, + { + x: nxt.position[0], + z: nxt.position[2], + } + ), + ]; + } + const dis = getDistance( + { + x, + z, + }, + { + x: nxt.position[0], + z: nxt.position[2], + } + ); + if (dis < min) return [nxt, dis]; + else return [last, min]; + }, + [null, Infinity] + ); + return nearest; + } + getFloorHeightByFloorOrder(floorOrder) { + const { config, groups } = this; + const floor = groups[floorOrder]; + const { floorHeights } = config; + return floorOrder in floorHeights + ? floorHeights[floorOrder] + : floor.floorHeight; + } + getBoxHeightByFloorOrder(floorOrder) { + const { groups } = this; + const floor = groups[floorOrder]; + return floor.boxHeight; + } + getNavIconY(floorOrder) { + const { groups } = this; + const floor = groups[floorOrder]; + if (!floor) return this.getNavIconY(this.floorOrder); + const boxHeight = this.getBoxHeightByFloorOrder(floorOrder); + const radius = PathLine.getPathLineRadius(this, floor); + return boxHeight + radius * 5; + } +} diff --git a/pages/map2d/arrow.png b/pages/map2d/arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..713367dbaee5dac0373d3e89bd5a52f3e2064eec GIT binary patch literal 1390 zcmV-!1(EuRP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1p`S$K~z{rrI*WZ zTSXMc&%J)zv7MyNTTP`X%Ay3JLIeRMC=wuq5ZxfLM-;XovEeUZgV=Nh>IOC}P$eWD z8zfK{5Qx%UX;6TY=7Cc;4?B*Z*S?qUo6I%Wuh?;Z(#hPJiSPMl=FH5whV+QzI1v<= zU~{l3*dQzhBYD_9Y#VkDcE>P`BFe6G6#&QQQM?3OfSGLT0Sk5;b_+swR7(ds3V>rj zidSLJ!<6G{fNFQB0FxK$JL-(86p z%Mw(brz94U^2D&@{629|J%rtWh)vb0X%GPC!zkW^#g9r7fb)cnX;z(m0_U|0qmm6_ ziBP48>kzT4Izj#Add=U3#dBEat%s64t8-GViErb943;hNp_+hQ)4mj52d}|KEBMFM zp2RU}9Rrjg0FBgv9lf8nA=o)FHW;iN5PyRz%5V!1|61mQDz^<+a-Q zuWPlL?LB)GFXX5c$(WIQblP|S<;%XmqoMW@pNL6m@|@)GXv03@Qn&)%M6sAHNGOGM zXInFwyc7K5Cu?Ejp-r(Ji3E+()u#e03$x|}-PFLvF*%5YgaVf#;7b$EdBQ!x&b_Qe zSvEuG*T1V=>E@giD^B>UpDRyurgT#S`-gQO3-rwxn1=5uB<=B_=at35*z-z---xE7AE%k<+M z1@K}~$1KZce*3eg1op!^mW(?^SL+6u@LcU8yX+j3msS zl8TcU2un#n*72F@aw2&O$neQ?hu4Wm#2Okfvbx$AGvj8<6&%0?r62bxfN7L4nPAz> z+?1*M`(Yp=`T1$zp03u3{GTUmQ@|RZk})Z>Z042A{=Z_O-txO}hs2T4Yygm~k-=cn_>4dO#5kb0*V4q`YV?rh$sZ}&FjVe=u(+(rtPD@d5_ z&7=;T=*^|dW9tu`N!`>yB5E8x_lR#5Bj3iIT$*57pl<&??m|34`v|XwQmUntgGMELzbp2~Scm?p# z`2aS?^oeN{#4twA47VMfGtN+Dp71dQsHCOtKsVfg9WsHuI4%cFC{^bfU|{22u5%`( zpSjLS%Q1 literal 0 HcmV?d00001 diff --git a/pages/map2d/close.png b/pages/map2d/close.png new file mode 100644 index 0000000000000000000000000000000000000000..47bcaaf78eb7f59f28bffc53527f97318e80f7bc GIT binary patch literal 596 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 this.defineEvent[event].splice(i, 1), 0); + break; + } + } + } + } + } + + // once 方法,监听一次 + once(event, cb) { + let onceCb = () => { + cb && cb(); + this.off(event, onceCb); + }; + this.register(event, onceCb); + } +} diff --git a/pages/map2d/map2d.js b/pages/map2d/map2d.js new file mode 100644 index 0000000..af36e93 --- /dev/null +++ b/pages/map2d/map2d.js @@ -0,0 +1,112 @@ +import MAPAPP, { minScale, maxScale } from "./MAPAPP"; +let map = null; +let initScale = 1; +Component({ + /** + * 组件的属性列表 + */ + properties: { + floororder: Number, + hidden: Boolean, + loc: Array, + searchType: Number, + }, + data: { + loaded: false, + dpr: wx.getSystemInfoSync().pixelRatio, + shops: [], + floors: [], + pageHidden: false, + sliderValue: 0, + }, + observers: { + hidden(val) { + if (val) { + wx.stopCompass({ fail: console.log }); + if (map) { + map.shown = false; + } + } else { + wx.startCompass({ fail: console.log }); + if (map) { + map.shown = true; + } + } + }, + floororder(num) { + if (map && num !== null && num !== undefined && this.data.loaded) + map.changeFloor(num); + }, + loc([x, y]) { + if (map) { + const crossPoint = map.cross({ x, y }); + map.setXY(crossPoint.x, crossPoint.y); + try { + const { name } = map.getNearestPoint({ + x, + z: y, + floorOrder: this.data.floororder, + }); + this.triggerEvent("point", name); + } catch (error) { + console.log(error); + } + } + }, + }, + lifetimes: { + attached() {}, + detached() { + console.log("map2d detached"); + map.dispose(); + map = null; + }, + ready() { + this.createSelectorQuery() + .select(".map2d") + .fields({ + node: true, + size: true, + }) + .exec((res) => { + map = new MAPAPP(res[0], this); + initScale = map.scale; + this.setData({ + floors: map.mall.floors, + sceneIndex: map.mall.groundFloorIndex, + }); + map.on("loaded", (map) => { + this.setData({ loaded: true }); + if (typeof this.data.floororder === "number") + map.changeFloor(this.data.floororder); + this.triggerEvent("map", map); + }); + }); + }, + moved: function () {}, + }, + pageLifetimes: { + hide() { + this.setData({ pageHidden: true }); + }, + show() { + this.setData({ pageHidden: false }); + }, + }, + methods: { + handlePinch(e) { + if (map) { + let newScale = initScale * e.detail.zoom; + newScale = Math.max(minScale, newScale); + newScale = Math.min(maxScale, newScale); + map.scale = newScale; + } + }, + handleMultitouchstart() { + initScale = map.scale; + }, + handleTap() { + this.triggerEvent("exit"); + }, + }, +}); diff --git a/pages/map2d/map2d.json b/pages/map2d/map2d.json new file mode 100644 index 0000000..85e9d42 --- /dev/null +++ b/pages/map2d/map2d.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "gesture": "/pages/gesture/gesture" + } +} \ No newline at end of file diff --git a/pages/map2d/map2d.wxml b/pages/map2d/map2d.wxml new file mode 100644 index 0000000..898ff7b --- /dev/null +++ b/pages/map2d/map2d.wxml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/pages/map2d/map2d.wxss b/pages/map2d/map2d.wxss new file mode 100644 index 0000000..f96d299 --- /dev/null +++ b/pages/map2d/map2d.wxss @@ -0,0 +1,35 @@ +.map2d-wrapper { + position: fixed; + bottom: 116px; + left: 10px; + right: 10px; + height: 210px; + border-radius: 18px 18px 0 0; + overflow: hidden; + background: #fff; + z-index: 12 !important; +} + +.map2d-wrapper.hidden { + bottom: -99999999px; +} + +.map2d { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + width: calc(100vw - 20px); + height: 210px; + z-index: 1; +} +.map2d-wrapper > .exit { + z-index: 2; + position: absolute; + top: 16px; + left: auto; + right: 16px; + width: 24px; + height: 24px; +} diff --git a/pages/map2d/start.png b/pages/map2d/start.png new file mode 100644 index 0000000000000000000000000000000000000000..cc9bf39eb4e1254902f2eb307408e1e409894ebd GIT binary patch literal 2860 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 + new Promise((resolve) => { + wx.request({ + url, + success({ data }) { + resolve(data); + }, + }); + }); + + +export const getCrossPoint = (point, point1, point2) => { + const cross = + (point2.x - point1.x) * (point.x - point1.x) + + (point2.y - point1.y) * (point.y - point1.y); + + if (cross <= 0) return point1; + + const d2 = + (point2.x - point1.x) * (point2.x - point1.x) + + (point2.y - point1.y) * (point2.y - point1.y); + + if (cross >= d2) return point2; + + const r = cross / d2; + + const px = point1.x + (point2.x - point1.x) * r; + const py = point1.y + (point2.y - point1.y) * r; + + return { x: px, y: py }; +}; diff --git a/pages/nav/bubble.png b/pages/nav/bubble.png new file mode 100644 index 0000000000000000000000000000000000000000..99853e6993e0a87212d9588de6b8d3d88a46c041 GIT binary patch literal 865 zcmV-n1D^beP)00009a7bBm000&x z000&x0ZCFM@Bjb+0drDELIAGL9O(c600d`2O+f$vv5yPB2~GK}_Uh#D%cYK7sfIoj!r`1Z8CxhE%MHvVfFm zq6-r-lAw*!3M3kVFa@SxGv#_up`>adF+oTff5{}hCpS&+zvrBL&KZVXh(toNeZw^f z8?J)GBTODtCz^Psz}OQLd{j~TlRIr>m5k3LVUG!f9Ck;0Q?nPx8yit~tRA(s5~`7O zT1Q4a3ttmhUitw&qYoE=U?pMx5aij&qroH2nt=C=PxiK+h27!6VI%%=8u6JA8s`Xh z_YFMUabt8Otd75U%G3HfKkU#M>8#PmVYOU?Z4V*Oa7#xYT)xr)ca?_5-$G&Z`sD<4 zef@sPQ;LEVa|Xw|Yn@%PRm3PkqD)SVX<0LWiE@gKj3U7VeCOLNCk8=h_O|+DJ4cAt zjJ(6?mJ%JEU9c*Kk;nL06xpS({SP>tc=6qL{oDM>~*etB4l{)snad6Iz^{o zXt#+9^r97W$M4k1^+F1GD5=WTT7m8*qygI!1EFNH}tY_~5WVN4h6p^liEKw*-x z2aw3rVUy66m>1LW1yKs5M8UX6Z4kbI<}<^nTpVuoAW zOEcV(=g~j;_RTA-rdDDcTrH$>?|1w0|AKuNq?~9Z9B{iOl{|%F`}?AGA!~yaX0e?BQM)uC100000NkvXXu0mjfyVQkj literal 0 HcmV?d00001 diff --git a/pages/nav/close.png b/pages/nav/close.png new file mode 100644 index 0000000000000000000000000000000000000000..47bcaaf78eb7f59f28bffc53527f97318e80f7bc GIT binary patch literal 596 zcmV-a0;~OrP)(A z!Y~wvTQE`YG$9g=Aa7v#W1Ls+5qJaf$;2m7??{YpJOLvixI0aZ(L`L`F-{0<>~uYi zH~nr1&D#Dx)~$y!X0cc-7K`QoD63p7TzBWNQgQa`brw!0FN~06?CEqGsPro-UHtm) zMY4QT`jjKlb}kqZtrMpgkNpf|x7w#8A>18oU$j7{w_V$P~y5A2HtZ zy}=zrqVy2QA$09XlA;eY4S zN3`ONh^GfEmEt)Jg$GCkfGmkLsKNtUOK6d-<+KcCcz{d*$djNB4=5FLr~yfTl6**~ z%X-@+6fHZ}K_-wFK7m?-WC^W%&qtD9u1-o*iUZnrAa9eRDgd+462R`TCM60BsFnw& zBnk->t!+$5C=2KoX4Dc&0#sEcr3AW|6OPk> + + {{end?'已到达': t1}} + {{end?'': t2}} + + \ No newline at end of file diff --git a/pages/nav/nav.wxss b/pages/nav/nav.wxss new file mode 100644 index 0000000..b99d364 --- /dev/null +++ b/pages/nav/nav.wxss @@ -0,0 +1,123 @@ +.nav { + position: fixed; + height: 110px; + left: 10px; + right: 10px; + bottom: 116px; + background: #ffffff; + z-index: 12 !important; + border-radius: 18px 18px 0 0; +} +.nav > image { + position: absolute; + top: 14px; + left: 14px; + width: 80px; + height: 80px; + padding: 4px; +} +.nav > .t1 { + position: absolute; + top: 20px; + left: 108px; + right: 40px; + font-family: PingFang SC; + font-style: normal; + font-weight: 600; + font-size: 24px; + line-height: 34px; + color: #323337; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.nav > .t2 { + position: absolute; + top: 65px; + left: 108px; + right: 10px; + font-family: PingFang SC; + font-style: normal; + font-weight: 500; + font-size: 14px; + line-height: 20px; + color: #a1a5b3; + align-items: center; +} +.nav > .t2 > .val { + font-family: DINPro; + font-style: normal; + font-weight: normal; + font-size: 18px; + line-height: 23px; + color: #7a7e8d; + margin: 0 4px; +} +.nav > .exit { + position: absolute; + top: 16px; + left: auto; + right: 16px; + width: 24px; + height: 24px; +} +.progress { + position: absolute; + left: 20px; + right: 20px; + bottom: 10px; + height: 2px; + background: #eee9de; + border-radius: 5px; + z-index: 1; +} +.bar { + position: absolute; + left: 20px; + right: 20px; + bottom: 10px; + height: 2px; + background: #ffdb00; + border-radius: 5px; + z-index: 2; +} +.thumb { + position: absolute; + width: 12px; + height: 12px; + bottom: 5px; + border-radius: 50%; + border: 2px solid rgba(239, 150, 23, 0.5); + background: #fff; + z-index: 3; + transform: translate(-50%, 0); +} +.bubble { + position: absolute; + width: 34px; + height: 14px; + bottom: 18px; + transform: translate(-50%, 0); +} +.bubble image { + position: absolute; + top: 0; + left: 0; + right: 0; + width: 34px; + height: 14px; + z-index: 0; +} +.bubble view { + position: absolute; + top: 1px; + left: 0; + right: 0; + z-index: 1; + text-align: center; + font-style: normal; + font-weight: 900; + font-size: 8px; + line-height: 11px; + color: #6a6665; +} diff --git a/pages/privacy/index.js b/pages/privacy/index.js new file mode 100644 index 0000000..ad7557c --- /dev/null +++ b/pages/privacy/index.js @@ -0,0 +1,66 @@ +// pages/privacy/index.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/pages/privacy/index.json b/pages/privacy/index.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/pages/privacy/index.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/privacy/index.wxml b/pages/privacy/index.wxml new file mode 100644 index 0000000..5e4187c --- /dev/null +++ b/pages/privacy/index.wxml @@ -0,0 +1,2 @@ +隐私政策 + \ No newline at end of file diff --git a/pages/privacy/index.wxss b/pages/privacy/index.wxss new file mode 100644 index 0000000..d761e65 --- /dev/null +++ b/pages/privacy/index.wxss @@ -0,0 +1,4 @@ +.content { + display: block; + padding: 20px; +} diff --git a/pages/prompt/back.png b/pages/prompt/back.png new file mode 100644 index 0000000000000000000000000000000000000000..7e9112a9ed277d27ea60353423c5b5aa88837181 GIT binary patch literal 411 zcmV;M0c8G(P)rcJIGupLY{lYs9X@u|SeaB_i z`k63m{Y)6S)+^{QX}A(PkoYo7=H5QVIEYdnQdL?A&Im6v#f2qfr|wiO~^eIr{U z0tvb{CZIpD1tO53U&bUldjCIkK)W*OB>aECV*NnVA_CTrl(|PthPg*L!8_O^!t@7P zV-jKd11~bRh>XK6rh*aXXz~@gJoUHV(&USCic2Y7-#@OQ*@zXB6gdC@002ovPDHLk FV1lu6s`>x` literal 0 HcmV?d00001 diff --git a/pages/prompt/bluetooth.png b/pages/prompt/bluetooth.png new file mode 100644 index 0000000000000000000000000000000000000000..faadbdac5725f8f8b7e7801430fe5d453628f574 GIT binary patch literal 5862 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 CPOvHf literal 0 HcmV?d00001 diff --git a/pages/prompt/end.png b/pages/prompt/end.png new file mode 100644 index 0000000000000000000000000000000000000000..81a3b348d9f7ac7b0c0294bcf568ddca446694a3 GIT binary patch literal 7397 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 literal 0 HcmV?d00001 diff --git a/pages/prompt/escalator.png b/pages/prompt/escalator.png new file mode 100644 index 0000000000000000000000000000000000000000..a953c2c27f51b21473ed6273eb86489162a9215d GIT binary patch literal 4578 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 literal 0 HcmV?d00001 diff --git a/pages/prompt/info.png b/pages/prompt/info.png new file mode 100644 index 0000000000000000000000000000000000000000..b73d90777f4f8a3deaad7961d2cd6b6892e18677 GIT binary patch literal 7380 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 MD~8&onz+dS0ANOj8~^|S literal 0 HcmV?d00001 diff --git a/pages/prompt/mall.png b/pages/prompt/mall.png new file mode 100644 index 0000000000000000000000000000000000000000..ec85112845576a894f4da255e4a83280798de95c GIT binary patch literal 3695 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 N002ovPDHLkV1fv{A_)Kh literal 0 HcmV?d00001 diff --git a/pages/prompt/park.png b/pages/prompt/park.png new file mode 100644 index 0000000000000000000000000000000000000000..d928eb2c5a96d2a1283f6929b28a1d0b6db34a7d GIT binary patch literal 3634 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 Eg06@W4*&oF literal 0 HcmV?d00001 diff --git a/pages/prompt/prompt.js b/pages/prompt/prompt.js new file mode 100644 index 0000000..ba12061 --- /dev/null +++ b/pages/prompt/prompt.js @@ -0,0 +1,35 @@ +import { promptIcons } from "../index/index-helper"; + +Component({ + /** + * 组件的属性列表 + */ + properties: { + icon: String, + title: String, + subTitle: String, + meta: String, + btn1Meta: String, + btn1: String, + btn2: String, + btn3: String, + }, + + /** + * 组件的初始数据 + */ + data: { + promptIcons, + }, + + /** + * 组件的方法列表 + */ + methods: { + handleTap({ currentTarget: { id } }) { + this.triggerEvent("btn", { + btn: id, + }); + }, + }, +}); diff --git a/pages/prompt/prompt.json b/pages/prompt/prompt.json new file mode 100644 index 0000000..a89ef4d --- /dev/null +++ b/pages/prompt/prompt.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} diff --git a/pages/prompt/prompt.wxml b/pages/prompt/prompt.wxml new file mode 100644 index 0000000..488d54f --- /dev/null +++ b/pages/prompt/prompt.wxml @@ -0,0 +1,17 @@ + + + {{title}} + {{subTitle}} + {{title}} + {{meta}} + + {{btn2}} + {{btn1}} + + + {{btn1Meta}} + + + {{btn3}} + + \ No newline at end of file diff --git a/pages/prompt/prompt.wxss b/pages/prompt/prompt.wxss new file mode 100644 index 0000000..929ee97 --- /dev/null +++ b/pages/prompt/prompt.wxss @@ -0,0 +1,136 @@ +.prompt { + position: absolute; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + background: rgba(0, 0, 0, 80%); + z-index: 20 !important; + text-align: center; +} + +.prompt > .icon { + position: absolute; + width: 128px; + height: 128px; + left: 0; + right: 0; + bottom: calc(50vh + 57px); + margin: auto; +} + +.prompt > .title { + position: absolute; + top: calc(50vh + 23px); + left: 0; + right: 0; + margin: auto; + font-family: PingFang SC; + font-style: normal; + font-weight: 600; + font-size: 28px; + line-height: 39px; + text-align: center; + letter-spacing: 1px; + color: #ffffff; +} +.prompt > .title.top { + top: calc(50vh - 16px); +} + +.prompt > .meta { + position: absolute; + left: 0; + right: 0; + top: calc(50vh + 70px); + margin: auto; + font-family: PingFang SC; + font-style: normal; + font-weight: 500; + font-size: 14px; + line-height: 20px; + text-align: center; + letter-spacing: 1px; + color: #c9cbd1; +} +.btns { + position: absolute; + top: calc(50vh + 170px); + left: 24px; + right: 24px; + display: flex; + height: 56px; +} +.btn2 + .btn1 { + margin-left: 4px; +} +.btn1 { + display: flex; + align-items: center; + justify-content: center; + width: 100%; + height: 100%; + background: linear-gradient(180deg, #508af7 0%, #5ea5f9 100%); + box-shadow: 0px 6px 12px rgba(93, 172, 249, 0.2); + border-radius: 10px; + font-family: PingFang SC; + font-style: normal; + font-weight: 600; + font-size: 16px; + line-height: 22px; + text-align: center; + color: #ffffff; +} + +.btn2 { + display: flex; + align-items: center; + justify-content: center; + width: 100%; + height: 100%; + border: 1px solid #c9cbd1; + box-sizing: border-box; + border-radius: 10px; + font-family: PingFang SC; + font-style: normal; + font-weight: 500; + font-size: 16px; + line-height: 22px; + text-align: center; + + /* VI/0 */ + + color: #ffffff; +} +.btn1-meta { + position: absolute; + height: 50px; + left: 0; + right: 0; + top: calc(50vh + 170px + 48px + 12px); + font-family: PingFang SC; + font-style: normal; + font-weight: 500; + font-size: 14px; + line-height: 20px; + text-align: center; + color: #c9cbd1; +} + +.btn3 { + position: absolute; + left: 10px; + top: 104px; + display: inline-flex; + align-items: center; + font-family: PingFang SC; + font-style: normal; + font-weight: bold; + font-size: 18px; + line-height: 25px; + color: #ffffff; +} +.back { + width: 24px; + height: 24px; +} diff --git a/pages/prompt/question.png b/pages/prompt/question.png new file mode 100644 index 0000000000000000000000000000000000000000..bb49c128feeeb57bd427698240b2e6c60fb3c485 GIT binary patch literal 8308 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 aO{u3>=;fQ>TPeA>M!4f=Big5CF z0)Ur!>Jp+d03aPaT%1lPAy!!#aWikURA$4Cm2p~s4SjTbG-ffZ@R^3@EK zETR(GXz(nU9dJl}eL*3@crGPvvI}bJ=r-w(^Czdz^8{%cOOA`)YYbs)$w)L}vtVBX zH-xZ}V;HuT4_-W9s!-GHvIKtL{J&$HCwvS!4gEbV`++dM2oLbKa-`y^8gp;ic^g~N|Up0wcCadR>#HWr}Ws0Nf5 zO0RNTW0IhetIsEd7OCY74Tx>6oOJecFq=Mn$WS6>Ok>2J(%1f&>~D;c39S2J`Y`SC zQwmSja4>a6>}~VPM3RxvhT=z|tDHMi(&W8DBY~Wxf)7iE)CKArf<2me1n=1#k zU?hyDF}-R!1k(6wUJiBe224@dGG1Af)@aZc+h@;&1!IMq;l|G0`bzROoFkrVL76v)NaW#<;Jutq- z^i5THQ}Z78Zc`Fc*ZTSAKz5~fx@~k8h*lpm=Qnet+#?u(6BZYOG7R z#V?L9Nei0r>;<9v#+i{$jYJ<^)oJEHW$9F9WLU+qkJs!(^m{GiY_UTB&S=^}oh%Th zd$3d?-IUp!67`i;YqTDUyxoaa-nJu}#=2FMW=WZ8;Ko|*SrIEz%muB_@46e`*Ug(U zGuV%Wa4nbm&gH`U6o?7YUwcB*gc+h-^w%!HE;)yH3%V?!y{AOZwJ<7+^ue_1{2+SY#h~hYelk)%MoH0k(Lz&Slz;TN-VRVzeGL zGT0ye3~YjabLArJ3ghm@;Jk(2xx*jxG{_PUu1-8p%!&vv`^#FZb=&o$kkD%0 zTDJp1e@Dxf*hmYANp6}lub4ACdOR^}#vyC<4MI8Ve)n5TJIk&46o+5MWB;(%>Qu=6 znEJt-DBL00l|%tnoqbTaL z!T}i{|s9L75&_Gq&*6BO1Chn<{_uDWM5W zdmH$2BL=+AdIBUufF@L!YIKYU!1f#EuoTea)a>h{!5`GgKE- zaoTQO?Xs1xKHtCH-q;oiT|B6OE6CN&{sAMxx7gLt*J%gyTQ*{vz?FhztF5fnvWVRL zUy`R(S00EBvx$zy)j1sTSV=QQRwjzyUkIq@$2or?7R^2B^a)sMg0Fo_o3G8b2#uM~ zmXLY*&0aJPzh<@7Ts0zrZ$#mQqv2<&&uG+D&pi4WeQo1N)gj$|8G4l`R6m8INp_K* zHRV^)Msps=shTp!JL3U*70rbX(LbU}d;gR^Yjguoe@qPW*)Qzc`D4s!sdpdH=tIrP z#20=@W|O!%3gaHk!DB}ThhQ$&c0}E%1HQYqQyLqdZhjpVpnU1x=5qU#e$?1W(JroM z@qINy*Dt>B$^|A(EJbPkxDa#rvx(K>i8pt9&lZInpAvo0+R<}jHDaV=fEf|lz(O4> z9bkgTrQYv>#+a_Z6q_&0(oA|dV?Y05yL2&l+7I%Pl-yDyuwwMq%2TXPa!^C&0>Q>T z>a-ijx77t$VK@iz!uz@clyP@ixhYeYVxL#2{LOLp=pQuGAvdMQbZ4cL!Cvv}R|(Td zC_R5ObKl?=A)=aB6SbGjC;2C{ORu=VM%gR&BtKnMpEO8DSIz&;K`9rzE$3~q9f;!; zYz8as==oM`yJyl*6n}=i6!vDWSJ(ta|4!The}E-VS*p9IZ-!jQi{^RBX522bo^{NJ z|Lbkt(UV-#X^(?nKKOep8frvsw-A#ZDCR#hW(><(x-;{#?lmdl_TA~vLXYW;`Z@Es z3PXo>?a?vJ0&nkEz=8gIbn1DkDMefEsN4em{~*&(m1c+sdU?OA6lR%?qF z(OMk}u?Y@XRdnIJziAhRAt7yVB~tc=7_ffO3h~F~li+9( zW#rBj9aJIn&s=xtiC^j|9Ixy}FS?#j#wTgY>Tambrgm-6c!h?>ZXE>M$wm%FQ7g^2^DIIyyQb+U*Aw2&8`urM10#cLTe}W0WRn zhXjL2pCO=Uw*QJ3=2RMd-LssKY_adFqhYd-+edfTYFIG%~z|hvL`LTzh%t3EO92U}keU z9~|Y=359^]`ggF>D2w2$OlAX)G>5OwmpSKul$GlO!R { + const canvas = res.node; + canvas.width = 325 * pixelRatio; + canvas.height = 256 * pixelRatio; + + const context = canvas.getContext("2d"); + + lottie.setup(canvas); + lottie.loadAnimation({ + loop: true, + path: "https://cdn.1000my.cn/models/shoushi.json", + rendererSettings: { context }, + }); + }) + .exec(); + }, + }, + /** + * 组件的初始数据 + */ + data: {}, + + /** + * 组件的方法列表 + */ + methods: {}, +}); diff --git a/pages/scan/scan.json b/pages/scan/scan.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/pages/scan/scan.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/scan/scan.wxml b/pages/scan/scan.wxml new file mode 100644 index 0000000..7c0e4e1 --- /dev/null +++ b/pages/scan/scan.wxml @@ -0,0 +1,9 @@ + + + + {{!fail5s?'开始定位':'努力定位中'}} + + + {{!fail5s?'请选择光线明亮、遮挡少的环境进行定位':'请扫描其他区域试试'}} + + \ No newline at end of file diff --git a/pages/scan/scan.wxss b/pages/scan/scan.wxss new file mode 100644 index 0000000..55bef87 --- /dev/null +++ b/pages/scan/scan.wxss @@ -0,0 +1,50 @@ +.scan-modal { + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + width: 100vw; + height: 100vh; + background: rgba(0, 0, 0, 0.6); + z-index: 10 !important; +} +.scan-modal canvas { + position: absolute; + width: 325px; + height: 256px; + left: 0; + right: 0; + bottom: 348px; + margin: auto; +} + +.scan-modal > .title { + position: absolute; + bottom: 181px; + left: 0; + right: 0; + height: 34px; + font-family: PingFang SC; + font-style: normal; + font-weight: 600; + font-size: 22px; + line-height: 31px; + text-align: center; + letter-spacing: 1px; + color: #ffffff; +} + +.scan-modal > .meta { + position: absolute; + bottom: 153px; + left: 0; + right: 0; + font-style: normal; + font-weight: 500; + font-size: 14px; + line-height: 20px; + text-align: center; + letter-spacing: 1px; + color: #c9cbd1; +} diff --git a/pages/tabs/relocate.png b/pages/tabs/relocate.png new file mode 100644 index 0000000000000000000000000000000000000000..d2fbd518a503f61cc74d5423f74b99869dbbedd1 GIT binary patch literal 3695 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 N002ovPDHLkV1i7#+ynps literal 0 HcmV?d00001 diff --git a/pages/tabs/tabs.js b/pages/tabs/tabs.js new file mode 100644 index 0000000..c942291 --- /dev/null +++ b/pages/tabs/tabs.js @@ -0,0 +1,56 @@ +let timeout = null; +Component({ + /** + * 组件的属性列表 + */ + properties: { + tab: Number, + floor: String, + progress: Number, + end: Boolean, warningCount: Number, + }, + + /** + * 组件的初始数据 + */ + data: { + tabs: ["平面地图", "导航", "目的地"], + progressText: "0%", + progressNum: 0, showWarning: false, + }, + + observers: { warningCount(val) { + if (!val) return; + if (this.data.showWarning && timeout) clearTimeout(timeout); + this.setData({ showWarning: true }); + timeout = setTimeout(() => { + this.setData({ showWarning: false }); + timeout = null; + }, 3000); + }, + progress(val) { + let progressNum = this.data.end ? 1 : val; + if (isNaN(progressNum)) return; + if (progressNum < 0) progressNum = 0; + if (progressNum > 1) progressNum = 1; + this.setData({ + progressText: parseInt(progressNum * 100) + "%", + progressNum, + }); + }, + }, + /** + * 组件的方法列表 + */ + methods: { + handleTap({ currentTarget: { id } }) { + this.triggerEvent("change", Number(id)); + }, + handleRelocate() { + this.triggerEvent("relocate"); + }, + handleToMap() { + this.triggerEvent("tomap"); + }, + }, +}); diff --git a/pages/tabs/tabs.json b/pages/tabs/tabs.json new file mode 100644 index 0000000..a89ef4d --- /dev/null +++ b/pages/tabs/tabs.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} diff --git a/pages/tabs/tabs.wxml b/pages/tabs/tabs.wxml new file mode 100644 index 0000000..17c774d --- /dev/null +++ b/pages/tabs/tabs.wxml @@ -0,0 +1,16 @@ + + + + {{item}} + + + + + {{progressText}} + + + + + + + \ No newline at end of file diff --git a/pages/tabs/tabs.wxss b/pages/tabs/tabs.wxss new file mode 100644 index 0000000..7502c31 --- /dev/null +++ b/pages/tabs/tabs.wxss @@ -0,0 +1,161 @@ +.tabs-wrapper { + position: fixed; + display: flex; + bottom: 26px; + left: 10px; + right: 10px; + height: 90px; + z-index: 15 !important; + background: #ffffff; + padding: 14px; + padding-top: 20px; + border-radius: 0 0 18px 18px; +} +.tabs { + display: flex; + align-items: center; + justify-content: center; + width: 100%; + height: 100%; + padding: 0 4px; + background: #f3f4f8; + border-radius: 10px; +} + +.tabs > .tab { + flex: 1; + height: 50px; + text-align: center; +} + +.tabs > .tab > .btn { + display: flex; + align-items: center; + justify-content: center; + height: 48px; + margin: auto; + border-radius: 10px; + font-family: PingFang SC; + font-style: normal; + font-weight: 600; + font-size: 16px; + line-height: 22px; + text-align: center; + color: #323337; +} + +.tabs > .tab > .btn.active { + background: linear-gradient(180deg, #508af7 0%, #5ea5f9 100%); + box-shadow: 0px 6px 12px rgba(93, 172, 249, 0.2); + color: #ffffff; +} + +.warning { + position: fixed; + z-index: 15 !important; + right: 10px; + width: 115px; + height: 29px; + bottom: 282px; +} +.warning.high { + bottom: 382px; +} + +.relocate { + position: fixed; + z-index: 15 !important; + right: 10px; + width: 48px; + height: 57px; + bottom: 238px; +} + +.relocate.high { + bottom: 338px; +} + +.floor { + display: inline-flex; + z-index: 15 !important; + position: fixed; + left: 8px; + bottom: 211px; + height: 24px; + padding: 0 12px; + font-style: normal; + font-weight: normal; + font-size: 12px; + line-height: 24px; + color: #6a6665; + background: #fff; + border-radius: 24px; + align-content: center; + justify-content: center; + align-items: center; +} +.floor.high { + bottom: 338px; +} + +.floor > .sep { + height: 12px; + width: 1px; + margin: 0 8px; + background: #e2e1df; +} + +.floor > .value { + font-size: 14px; + color: #ef9617; +} +.tomap { + z-index: 15 !important; + position: fixed; + width: 48px; + height: 57px; + bottom: 238px; + left: 10px; +} +.tomap.high { + bottom: 338px; +} +.progress { + position: absolute; + left: 20px; + right: 20px; + top: -2px; + height: 4px; + background: #edeff3; + border-radius: 5px; + z-index: 1; +} +.bar { + position: absolute; + left: 20px; + top: -2px; + height: 4px; + background: #437af7; + border-radius: 5px; + z-index: 2; +} +.bubble { + display: flex; + position: absolute; + z-index: 3; + width: 33px; + height: 14px; + top: -6.5px; + background: #ffffff; + text-align: center; + border: 2px solid #437af7; + border-radius: 12px; + font-family: DINPro; + font-style: normal; + font-weight: bold; + font-size: 10px; + color: #437af7; + justify-content: center; + align-items: center; + transform: translate(-50%, 0); +} diff --git a/pages/tabs/tomap.png b/pages/tabs/tomap.png new file mode 100644 index 0000000000000000000000000000000000000000..9090c912c5d18949b5ee03b605f33a793de2768c GIT binary patch literal 2708 zcmV;F3TyR=P)WzBojNB=Bt)JOyxE z=OP)BWTz0}wEAY108WF8m~X;PvOE!GrP?ri2{1u+BVtINaUsA;`3+Yi?8N@N!Gs^JbixA$$e@c4AwUlqbkPd|7W`%AndfD?^`JyoZq8B4bhpp~?fJs!_aBz& z>ew7zzf+>8;x*`B(M0WSb>AwFO7DUaz|ZJRS7#wj~+?o!}y@#1c+nwz7@?CL+|_f zrE8r*4dDkggaAnyUEbcUiIVHRo@K@ZTqJFD8Fad2kbb_|k!t!`AyWd(r_p6b?RFnV{64xfLOs?lX`Kgf>pLFxiL z75R4<QCGr^BPxK*pvLe6a7Qe9moX;OkIQuCk5^VKe)J@G_o$(W(McEz zp>M-iFI?}P+y92P3b$i9=ojDphH(Pm)^z-bO zZ;(#33&5n|6^GByS`9yg@9*E-N;=7m05bFC6ezHh=Bb-SAn6O>}Bf^+L zApP9+qx<^L?_al(ZZdr>2sM2F7CS@)c?I4>398LmOFx-x97PBa^HIysiAHm9Wph=? zfu{tKwe*u|7y%ge3ib?!y}*ksUHw#PH~|=h5H*bWc|n%0eyTLA007yKjGq@|>FTFS zLkker3$k?eQ>CE=0JXdzYga#28eV`}UXa!FlWBMXK#&(?HT`6AA%LG3WI6q0av=cl z@&dI%&Qkix;+j&KbcJ5luv^DQ)ODd zG@IcEQ}WV+7EQ5kNCW0L>TyG-CwNj1fRHMgYwi0W@O-(2Nm4Ge!W- z7y&e61kg;~gY+WQ`&iwf*^!i?dqVe!7=8gcjCu}j>+w9?~7z+k)L*1HP zWy&r+#cIQ0^yF2aS#M=Q@qNE>WDt7WH!mm-^-OyZdzfnfJI#SL8z&}@PM5)yHTzDu z$L?-*jBsdME8S3r7NG{ez0{7H%f)h2pM9?vf&~rG3;UCqI=mvb05E>gQwK}hgaO8a z=VZprD9atgVmuemC#25hYd&MYn1_9H2L;+Y|M z8ftLb#1uy*0u0y6BjzuR z&e6z?;B(v5*J6nuhj|Y{%<{JiG$Kw4Mpf5uUyPCPC1J$ZCyX{=$zr>D| z;Q$Bx>2ELT*yVCnje{{@6top`O&E z2r~2h^}3u`$n#DhV?v0Hq+}gDQ4$(QZ0lXeNZX|>C@Pqa46wm@kX|MJJE^Ew0uTg@ zk8MJzr;E$>_7i-TFtPy1Owuw^vH^?0Zskp+OUQZHZLjxj z9aBd#KX(#44YlTC5C^sEhnLogMtKsMje_r>jZou1*IIR(*dIa{Lf9tJ5#sT{F#MI9 zcBc!*LBT%YT`)GXDb;)ZjEL=S3em|@r^1N}1i%kV*8S_*Xkc-r6Gni0{`C2xP-z~I zVuwfB{QzOiKAzXVT$ERP$RO-p zxM5FOfZB|G;n)E02VtxF*y7dd2u$Ma#wmfHvXVuBp%5!ki%`RnNvQC2lL!me>t#(9 zkHG&{!+CekkwF*Z@BqaB$7Ik!vB~*y`DTho(`}&X}SzyyO>YG&pIPUQU8ItB>IrK1|SDeI(r^I5I3`v2w z|BKfLffw#YdoV;sh`7M`hx|UQdFMokut6+Nl1Wdaf|$Qo82@z8N}=u_3K6=+;x9_z zzQFEEV7L?ez0;u$P2JB` zI6@4FvWFIK$L*R^A{(AbWJri4Mi1FybW^_CiziM&Y@c+Nzt(GXng0QQnJrgA1GL%z O0000o$Bw&)>^u3-f18^@cs>4k3A5L4m>&YO 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 RVD|t3002ovPDHLkV1jd|B+&o> literal 0 HcmV?d00001 diff --git a/project.config.json b/project.config.json new file mode 100644 index 0000000..cd8b0c1 --- /dev/null +++ b/project.config.json @@ -0,0 +1,71 @@ +{ + "description": "项目配置文件,详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", + "cloudfunctionRoot": "cloudfunctions/", + "setting": { + "urlCheck": false, + "es6": false, + "enhance": true, + "postcss": true, + "preloadBackgroundData": false, + "minified": true, + "newFeature": false, + "coverView": true, + "nodeModules": false, + "autoAudits": false, + "showShadowRootInWxmlPanel": true, + "scopeDataCheck": false, + "uglifyFileName": false, + "checkInvalidKey": true, + "checkSiteMap": true, + "uploadWithSourceMap": true, + "compileHotReLoad": false, + "lazyloadPlaceholderEnable": false, + "useMultiFrameRuntime": true, + "babelSetting": { + "ignore": [], + "disablePlugins": [], + "outputPath": "" + }, + "useIsolateContext": false, + "userConfirmedBundleSwitch": false, + "packNpmManually": false, + "packNpmRelationList": [], + "minifyWXSS": true, + "disableUseStrict": false, + "minifyWXML": true, + "showES6CompileOption": false, + "useCompilerPlugins": false, + "ignoreUploadUnusedFiles": true, + "useStaticServer": true + }, + "compileType": "miniprogram", + "condition": { + "search": { + "list": [] + }, + "conversation": { + "list": [] + }, + "game": { + "list": [] + }, + "plugin": { + "list": [] + }, + "gamePlugin": { + "list": [] + }, + "miniprogram": { + "list": [] + } + }, + "editorSetting": { + "tabIndent": "insertSpaces", + "tabSize": 2 + }, + "packOptions": { + "ignore": [], + "include": [] + }, + "appid": "wxb013aa2df3b70893" +} \ No newline at end of file diff --git a/project.private.config.json b/project.private.config.json new file mode 100644 index 0000000..952a2b1 --- /dev/null +++ b/project.private.config.json @@ -0,0 +1,28 @@ +{ + "setting": { + "compileHotReLoad": true + }, + "condition": { + "miniprogram": { + "list": [ + { + "name": "login", + "pathName": "pages/login/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "活动进入", + "pathName": "pages/h5map/index", + "query": "e=activities026eb3c7-41a7-4e07-bd4a-07e3d9dc3af1", + "launchMode": "default", + "scene": null + } + ] + } + }, + "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", + "projectname": "iot_ar_miniprogram", + "libVersion": "2.26.0" +} \ No newline at end of file diff --git a/sitemap.json b/sitemap.json new file mode 100644 index 0000000..ca02add --- /dev/null +++ b/sitemap.json @@ -0,0 +1,7 @@ +{ + "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html", + "rules": [{ + "action": "allow", + "page": "*" + }] +} \ No newline at end of file diff --git a/utils/util.js b/utils/util.js new file mode 100644 index 0000000..061f235 --- /dev/null +++ b/utils/util.js @@ -0,0 +1,25 @@ +const formatTime = (date) => { + const year = date.getFullYear(); + const month = date.getMonth() + 1; + const day = date.getDate(); + const hour = date.getHours(); + const minute = date.getMinutes(); + const second = date.getSeconds(); + + return `${[year, month, day].map(formatNumber).join("/")} ${[ + hour, + minute, + second, + ] + .map(formatNumber) + .join(":")}`; +}; + +const formatNumber = (n) => { + n = n.toString(); + return n[1] ? n : `0${n}`; +}; + +module.exports = { + formatTime, +}; diff --git a/wasm/bdar_vpas.wasm b/wasm/bdar_vpas.wasm new file mode 100644 index 0000000000000000000000000000000000000000..86f4cddc611c717462f90ec3a4f2e2fa89176028 GIT binary patch literal 8141 zcmeHMJ!~Au6`q}4Qb+C`?H@m26Y=AN_ZvWIMX?uVg!kk)&`DfMz7xA@xI< zr0pb-zyp$kg#i<^0uYXXoGva{xL_eLER2MO3nFkqASzg>V4;FV3KlL@7(u@8&F<}y zwgWfmLP+<$dGpP@H}huZ&F-qv>5HCH%6l&Vwl}Nr-@E#@Qg7=kC@60h|F2Ma2GUR;%#cv6+z%#-^snCod_lIE~WT_ot@DE}lGUStpNyw47tW?$RX7&t0dCiCLx<&l}G(M!|sOio=yX=ZBt zH>#t|M&DW0`Cu#i^2piA$#dhEMrX!GW+q)n7e;63Yeu`iYf3@v zQC1K8%0NO9Qp2EJHV|_n4pJ;N>h%*~p&9hlIG)LP!x=B^ z@x-p+OFv|0QKS>(AKbaKb1o=rC36bR>$hvWs2T zJE>A;E~(h;)A`v`S5W(?QbF~ovTJSUWA7MvFQ_4ZDR4MXthv9tr-uByzSA$a>i<4F z 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

mNTE{6L|p`P_wCU?Xw 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