123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- <!-- <link rel="stylesheet" href="./index.css" /> -->
-
- <link rel="stylesheet" href="./css/toastify.min.css" />
- <style>
- .loading {
- position: absolute;
- width: 100%;
- height: 100%;
- background: #fff url("./assets/loading.gif") center;
- background-repeat: no-repeat;
- background-size: 600px 600px;
- }
- .tip {
- position: absolute;
- top: 2rem;
- left: 50%;
- transform: translateX(-50%);
- padding: 1rem 1.6rem;
- background-color: #5bc1d1;
- color: white;
- z-index: 9999;
- border-radius: 0.2rem;
- opacity: 1;
- transition: opacity .2s;
- }
- </style>
- </head>
- <body>
- <!-- Babylon.js -->
- <script src="./libs/jquery-1.10.2.min.js"></script>
- <script src="./libs/dat.gui.min.js"></script>
- <script src="./libs/ammo.js"></script>
- <script src="./libs/cannon.js"></script>
- <script src="./libs/Oimo.js"></script>
- <script src="./libs/earcut.min.js"></script>
- <script src="./libs/recast.js"></script>
- <script src="./libs/babylon.js"></script>
- <script src="./libs/babylonjs.materials.min.js"></script>
- <script src="./libs/babylonjs.proceduralTextures.min.js"></script>
- <script src="./libs/babylonjs.postProcess.min.js"></script>
- <script src="./libs/babylonjs.loaders.js"></script>
- <script src="./libs/babylonjs.serializers.min.js"></script>
- <script src="./libs/babylon.gui.min.js"></script>
- <script src="./libs/babylon.inspector.bundle.js"></script>
- <script src="./libs/babylonjs.expand.js"></script>
- <script src="./libs/socket.2.3.js"></script>
- <script src="./libs/events.js"></script>
- <script src="./libs/axios.min.js"></script>
- <script src="./libs/VisibilityChangeHandler.js"></script>
- <script src="./libs/md5.js"></script>
- <script src="./libs/crypto-js.js"></script>
- <script src="./libs/decoder.js"></script>
- <script src="./libs/nipplejs.min.js"></script>
- <script src="./libs/clipboard.min.js"></script>
- <script src="./libs/toastify-js.js"></script>
- <script src="./shader.js"></script>
- <!-- <script src="./webrtc//adapter-7.4.0.min.js"></script>
- <script src="./webrtc/srs.sdk.js"></script> -->
- <link rel="stylesheet" href="./css/index.3c280baa.css" />
- <div id="root">
- <!-- <div class="loading" style="z-index: 9999"></div> -->
- <div class = "App">
- <canvas id = "canvas" class = "stream unselect">
- </canvas>
- </div>
- <!-- <div class="debug_control_btns">
- <button class="debugger1">Toggle Stats</button>
- <button class="debugger2">取消低模着色</button>
- <button class="debugger3">画质:高</button>
- <button class="font-size-small debugger4" onclick="room.debug.toggleNearbyBreathPoint">Toggle周边呼吸点</button>
- <button class="font-size-small debugger5" onclick="room.debug.toggleTapBreathPoint">Toggle点击呼吸点</button>
- <button class="font-size-small debugger7" >开始录制</button>
- <button class="font-size-small debugger8" style="display: none; background-color: brown;" >结束录制</button>
- </div> -->
- </div>
-
- <script>
- function _mergeNamespaces(d, o) {
- return o.forEach(function(s) {
- s && typeof s != "string" && !Array.isArray(s) && Object.keys(s).forEach(function(c) {
- if (c !== "default" && !(c in d)) {
- var _ = Object.getOwnPropertyDescriptor(s, c);
- Object.defineProperty(d, c, _.get ? _ : {
- enumerable: !0,
- get: function() {
- return s[c]
- }
- })
- }
- })
- }),
- Object.freeze(Object.defineProperty(d, Symbol.toStringTag, {
- value: "Module"
- }))
- }
- const VERSION = "1.1.47";
- const checkOS = ()=>{
- const d = navigator.userAgent
- , o = /(?:Windows Phone)/.test(d)
- , s = /(?:SymbianOS)/.test(d) || o
- , c = /(?:Android)/.test(d)
- , _ = /(?:Firefox)/.test(d);
- /(?:Chrome|CriOS)/.test(d);
- const b = /(?:iPad|PlayBook)/.test(d) || c && !/(?:Mobile)/.test(d) || _ && /(?:Tablet)/.test(d)
- , k = /(?:iPhone|ipad|ipod)/.test(d) && !b
- , j = !k && !c && !s;
- return {
- isTablet: b,
- isPhone: k,
- isIOS: /iPhone|iPod|iPad/.test(navigator.userAgent),
- isAndroid: c,
- isPc: j
- }
- }
- , get2DPointFromWorldPoint = d=>{
- if (d == null)
- return null;
- const o = ue4Position2Xverse(d)
- , s = BABYLON.EngineStore.LastCreatedScene;
- return o == null || s == null ? null : BABYLON.Vector3.Project(o, BABYLON.Matrix.Identity(), s.getTransformMatrix(), s.activeCamera.viewport.toGlobal(s.getEngine().getRenderWidth() * s.getEngine().getHardwareScalingLevel(), s.getEngine().getRenderHeight() * s.getEngine().getHardwareScalingLevel()))
- }
- , ue4Rotation2Xverse = d=>isRotationCorrect() ? (d.pitch >= 89.5 ? d.pitch = 89.5 : d.pitch <= -89.5 && (d.pitch = -89.5),
- new BABYLON.Vector3(-1 * Math.PI * d.pitch / 180,Math.PI * d.yaw / 180 - Math.PI * 27 / 18,Math.abs(Math.PI * d.roll) / 180 < .001 ? 0 : -1 * Math.PI * d.roll / 180)) : null
- , ue4Rotation2Xverse_mesh = d=>isRotationCorrect() ? new BABYLON.Vector3(Math.PI * d.pitch / 180,Math.PI * d.yaw / 180,Math.abs(Math.PI * d.roll) / 180 < .001 ? 0 : -1 * (Math.PI * d.roll) / 180) : null
- , scaleFromUE4toXverse = 100
- , ue4Scaling2Xverse = d=>isScalingCorrect() ? new BABYLON.Vector3(d.x,d.z,-1 * d.y) : null
- , ue4Position2Xverse = d=>isPositionCorrect() ? new BABYLON.Vector3(d.x * .01,d.z * .01,-1 * d.y * .01) : null
- , xversePosition2Ue4 = d=>isPositionCorrect() ? {
- x: d.x * 100,
- y: -1 * d.z * 100,
- z: d.y * 100
- } : null
- , xverseRotation2Ue4 = d=>{
- if (isPositionCorrect()) {
- let o = 0;
- return d.z == 0 ? o = 0 : o = -180 * d.z / Math.PI,
- {
- pitch: 180 * d.x * -1 / Math.PI,
- yaw: (d.y + Math.PI * 27 / 18) * 180 / Math.PI,
- roll: o
- }
- } else
- return null
- }
- , xverseRotation2Ue4_mesh = d=>{
- if (isPositionCorrect()) {
- let o = 0;
- return d.z == 0 ? o = 0 : o = -1 * (180 * d.z) / Math.PI,
- {
- pitch: 180 * d.x / Math.PI,
- yaw: d.y * 180 / Math.PI,
- roll: o
- }
- } else
- return null
- }
- , calcDistance3D = (d,o)=>Math.sqrt((d.x - o.x) * (d.x - o.x) + (d.y - o.y) * (d.y - o.y) + (d.z - o.z) * (d.z - o.z))
- , calcDistance3DVector = (d,o)=>Math.sqrt((d.x - o.x) * (d.x - o.x) + (d.y - o.y) * (d.y - o.y) + (d.z - o.z) * (d.z - o.z))
- , isPositionCorrect = d=>!0
- , isScalingCorrect = d=>!0
- , calcDistance3DAngle = (d,o)=>Math.sqrt((d.roll - o.roll) * (d.roll - o.roll) + (d.pitch - o.pitch) * (d.pitch - o.pitch) + (d.yaw - o.yaw) * (d.yaw - o.yaw))
- , isRotationCorrect = d=>!0
- , getStringBoundaries = (d,o,s=new Map)=>{
- let c = 0
- , _ = ""
- , b = -1
- , k = 0;
- const j = [0];
- for (let$ = 0; $ < d.length; $++) {
- const _e = d.codePointAt($);
- let et = s.get(_e);
- if (et)
- c += et,
- _ += d[$],
- _e > 64 && _e < 91 || _e > 96 && _e < 123 ? (b == -1 && (b = $),
- k += et) : (b = -1,
- k = 0);
- else if (_e < 975 || _e > 1024 && _e < 1920)
- et = 1,
- c++,
- _ += d[$],
- _e > 64 && _e < 91 || _e > 96 && _e < 123 ? (b == -1 && (b = $),
- k += et) : (b = -1,
- k = 0);
- else if (_e > 4499 && _e < 4600 || _e > 8207 && _e < 8232 || _e > 8238 && _e < 8287 || _e > 8238 && _e < 8287 || _e > 8304 && _e < 8384 || _e > 8447 && _e < 9211 || _e > 11263 && _e < 11624 || _e > 11646 && _e < 11671 || _e > 11679 && _e < 11845 || _e > 11903 && _e < 12020 || _e > 12031 && _e < 12246 || _e > 12287 && _e < 12544 || _e > 12548 && _e < 12728 || _e > 12735 && _e < 12772 || _e > 12783 && _e < 19894 || _e > 19967 && _e < 40918 || _e > 42191 && _e < 42240 || _e > 44031 && _e < 55204 || _e > 59276 && _e < 59287 || _e > 59412 && _e < 59493 || _e > 63743 && _e < 64207 || _e > 65039 && _e < 65050 || _e > 65071 && _e < 65510)
- et = 2,
- c += 2,
- b = -1,
- k = 0,
- _ += d[$];
- else if (_e > 9311 && _e < 11158) {
- et = 2,
- c += 2,
- b = -1,
- k = 0,
- _ += d[$];
- const tt = d.codePointAt($ + 1);
- tt > 65023 && tt < 65040 && (_ += d[$ + 1],
- $++)
- } else
- _e > 126979 && _e < 129783 && (et = 2,
- c += 2,
- b = -1,
- k = 0,
- $++,
- _ += String.fromCodePoint(_e));
- if ($ == j[j.length - 1] + 1 && b > 0 ? (j[j.length - 1] = b,
- c = 0 + k) : c > o && (j.push($),
- k >= c && (k = 0 + et,
- b = 0),
- c = 0 + et),
- $ >= d.length - 1)
- break
- }
- return j[j.length - 1] != d.length && j.push(d.length),
- [_, j]
- }
- , getAlphaWidthMap = (d,o)=>{
- const s = new BABYLON.DynamicTexture("test",3,o)
- , c = new Map;
- for (let _ = 32; _ < 127; _++) {
- const b = String.fromCodePoint(_)
- , k = 2 + "px " + d;
- s.drawText(b, null, null, k, "#000000", "#ffffff", !0);
- const j = s.getContext();
- j.font = k;
- const $ = j.measureText(b).width;
- c.set(_, $)
- }
- return s.dispose(),
- c
- }
- , _RegisteredClass = {};
- function RegisterXObjectClass(d, o) {
- _RegisteredClass[d] = o
- }
- function GetXObjectClass(d) {
- return _RegisteredClass[d]
- }
- const DEFAULT_LOGGER = {
- debug: console.log,
- info: console.log,
- warn: console.warn,
- error: console.error
- }
- const __decoratorInitialStore = {}
- , __mergedStore = {}
- , deepCopy = function(d, o, s) {
- let c;
- if (o || (o = ""),
- s || (s = !1),
- d == null || typeof d != "object")
- return d;
- if (d instanceof Date)
- return c = new Date,
- c.setTime(d.getTime()),
- c;
- if (d instanceof Array) {
- c = [];
- for (let _ = 0, b = d.length; _ < b; _++)
- c[_] = deepCopy(d[_], o, s);
- return c
- }
- if (d instanceof Object) {
- if (d instanceof XObject)
- return c = _copySource(d, o, s),
- c;
- if (d instanceof AssetContainer)
- return s ? c = d.clone(o, !1, {
- doNotInstantiate: !0
- }, !1) : c = d.clone(o),
- c;
- for (const _ in d)
- Object.prototype.hasOwnProperty.call(d, _) && (c[_] = deepCopy(d[_]));
- return c
- }
- throw new Error("Unable to copy obj! Its type isn't supported.")
- }
- , _copySource = function(d, o, s) {
- const c = GetXObjectClass(d.getClassName())
- , _ = new c
- , b = getPropertiesMarkAsSerializable(_);
- o || (o = ""),
- s || (s = !1);
- for (const k in b) {
- const j = d[k];
- if (j != null) {
- const $ = _;
- j instanceof XObject ? $[k] = _copySource(j, o, s) : $[k] = deepCopy(j, o, s)
- }
- }
- return _.name = o,
- _
- };
- function getDirectStore(d) {
- const o = d.getClassName();
- return __decoratorInitialStore[o] || (__decoratorInitialStore[o] = {}),
- __decoratorInitialStore[o]
- }
- function generateSerializableMember(d, o) {
- return (s,c)=>{
- const _ = getDirectStore(s);
- _[c] || (_[c] = {
- type: d,
- sourceName: o
- })
- }
- }
- function xProperty(d) {
- return generateSerializableMember(0, d)
- }
- function getPropertiesMarkAsSerializable(d) {
- const o = d.getClassName();
- if (__mergedStore[o])
- return __mergedStore[o];
- __mergedStore[o] = {};
- const s = __mergedStore[o];
- let c = d
- , _ = o;
- for (; _; ) {
- const b = __decoratorInitialStore[_];
- for (const $ in b)
- s[$] = b[$];
- let k, j = !1;
- do {
- if (k = Object.getPrototypeOf(c),
- !k.getClassName) {
- j = !0;
- break
- }
- if (k.getClassName() !== _)
- break;
- c = k
- } while (k);
- if (j)
- break;
- _ = k.getClassName(),
- c = k
- }
- return s
- }
- var __defProp = Object.defineProperty
- , __getOwnPropDesc = Object.getOwnPropertyDescriptor
- , __decorateClass = (d,o,s,c)=>{
- for (var _ = c > 1 ? void 0 : c ? __getOwnPropDesc(o, s) : o, b = d.length - 1, k; b >= 0; b--)
- (k = d[b]) && (_ = (c ? k(o, s, _) : k(_)) || _);
- return c && _ && __defProp(o, s, _),
- _
- }
- ;
- var Codes = (d=>(d[d.Success = 0] = "Success",d[d.Timeout = 1003] = "Timeout",d))(Codes || {});
- const COMPONENT_LIST_PREFIX = "/component_list.json";
- const avatarSetting = {
- fileType: ".glb",
- lodType: "_lod",
- lod: [{
- level: "lod0",
- fileName: ".glb",
- quota: 5,
- dist: 1e3
- }, {
- level: "lod1",
- fileName: "_lod2.glb",
- quota: 5,
- dist: 2e3
- }, {
- level: "lod2",
- fileName: "_lod4.glb",
- quota: 0,
- dist: 7500
- }],
- isRayCastEnable: !0,
- maxAvatarNum: 40,
- maxBillBoardDist: 7500,
- body: "BODY",
- head: "HEAD",
- hair: "HAIR",
- suit: "SUIT",
- pants: "PANTS",
- shoes: "SHOES",
- clothes: "CLOTHES",
- pendant: "PENDANT",
- animations: "ANIMATION",
- skeleton: "SKELETON",
- defaultIdle: "Idle",
- cullingDistance: 200,
- defaultMove: "Walking"
- }
- , avatarResources = {
- ygb: {
- name: "ygb",
- mat: "NM_ygb",
- mesh: "ygb"
- }
- }
- , action = {
- GiftClap: {
- animName: "GiftClap",
- keyTime: 1760
- },
- Cheering: {
- animName: "Cheering",
- attachPair: [{
- bone: "mixamorig_MiddleFinger2_R",
- obj: "ygb",
- offset: {
- x: 0,
- y: 0,
- z: 0
- },
- rotate: {
- x: 0,
- y: 3.84,
- z: 0
- },
- scale: {
- x: 1,
- y: 1,
- z: 1
- }
- }, {
- bone: "mixamorig_MiddleFinger2_L",
- obj: "ygb",
- offset: {
- x: 0,
- y: 0,
- z: 0
- },
- rotate: {
- x: 0,
- y: 3.49,
- z: 0
- },
- scale: {
- x: 1,
- y: 1,
- z: 1
- }
- }]
- }
- };
- function LoadXObject(d, o, s) {
- return new Promise((c,_)=>{
- const b = JSON.parse(o);
- new XArchive().deserialize(b, d, s).then(j=>{
- c(j)
- }
- ).catch(j=>{
- _(j)
- }
- )
- }
- )
- }
- const generateOriginalName = d=>"Editable_" + d;
- BABYLON.ParticleSystemSet.prototype.systems = new Array;
- const DefaultUrlTransformer = async d=>d
- const DEFAULT_FRAME_RATE = 1
- , ENGINE_FRAME_RATE = 30
- , ROOT_MESH_ANIM_PROPERTY = ["scaling", "position", "rotation"]
- , MESH_TAG = "XSubSequence";
- function MatrixMul(d, o) {
- const s = new XMatrix(new XPlane(0,0,0,0),new XPlane(0,0,0,0),new XPlane(0,0,0,0),new XPlane(0,0,0,0));
- for (let c = 0; c < 4; ++c)
- for (let _ = 0; _ < 4; ++_)
- for (let b = 0; b < 4; ++b)
- s.M[_][b] += d.M[_][c] * o.M[c][b];
- return s
- }
- function uuid$2() {
- return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, d=>{
- const o = Math.random() * 16 | 0;
- return (d === "x" ? o : o & 3 | 8).toString(16)
- }
- )
- }
- function hashCode(d) {
- let o = 0, s, c;
- if (d == null || d.length === 0)
- return o;
- for (s = 0; s < d.length; s++)
- c = d.charCodeAt(s),
- o = (o << 5) - o + c,
- o |= 0;
- return o
- }
- function formatError(d) {
- return d instanceof Error ? Object.getOwnPropertyNames(d).reduce((s,c)=>(s[c] = d[c],
- s), {
- name: d.name,
- message: d.message
- }) : d
- }
- const texRootDir = "https://app-asset-1258211750.file.myqcloud.com/1/textures/"
- initSideEffects();
- const animationMap = new Map;
- animationMap.set("Falling", new BABYLON.AnimationRange("Falling1",0,15));
- animationMap.set("Click", new BABYLON.AnimationRange("Click",16,39));
- animationMap.set("Disappear", new BABYLON.AnimationRange("Disappear",40,47));
- const safeDecodeURIComponent = d=>{
- let o = "";
- try {
- o = decodeURIComponent(d)
- } catch {
- o = d
- }
- return o
- }
- , safelyJsonParse = d=>{
- let o = {};
- try {
- o = JSON.parse(d)
- } catch {}
- return o
- }
- , getRandomItem = d=>d.length === 0 ? null : d[Math.floor(Math.random() * d.length)]
- , ENV = "production";
- function getFormattedDate(d) {
- const o = d.getMonth() + 1
- , s = d.getDate()
- , c = d.getHours()
- , _ = d.getMinutes()
- , b = d.getSeconds()
- , k = d.getMilliseconds()
- , j = (o < 10 ? "0" : "") + o
- , $ = (s < 10 ? "0" : "") + s
- , _e = (c < 10 ? "0" : "") + c
- , et = (_ < 10 ? "0" : "") + _
- , tt = (b < 10 ? "0" : "") + b;
- return d.getFullYear() + "-" + j + "-" + $ + " " + _e + ":" + et + ":" + tt + "." + k
- }
- const SERVER_URLS = {
- DEV: "wss://sit-eks.xverse.cn/ws",
- PROD: "wss://eks.xverse.cn/ws"
- }
- , REPORT_URL = {
- DEV: "https://xa.xverse.cn:6680/collect",
- PROD: "https://xa.xverse.cn/collect"
- }
- , MAX_RECONNECT_COUNT = 3
- , DEFAULT_JOINROOM_TIMEOUT = 15e3
- , DEFAULT_AVATAR_SCALE = 1
- , REPORT_NUM_PER_REQUEST = 20
- , DEFAULT_OPEN_TIMEOUT_MS = 6e3
- , WS_CLOSE_NORMAL = 1e3
- , WS_CLOSE_RECONNECT = 3008
- , PING_INTERVAL_MS = 1e3
- , TEXTURE_URL = "https://static.xverse.cn/qqktv/texture.png"
- , REPORT_MODULE_TYPE = "xverse-js"
- , authenticationErrorCodes = [3001, 3002, 3003, 3005]
- , RTT_MAX_VALUE = 200
- , HB_MAX_VALUE = 500
- , DURATION = 5
- function getDistance(d, o) {
- const {x: s, y: c, z: _} = d
- , {x: b, y: k, z: j} = o;
- return Math.sqrt(Math.abs(s - b) ** 2 + Math.abs(c - k) ** 2 + Math.abs(_ - j) ** 2)
- }
- function uuid$1() {
- return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, d=>{
- const o = Math.random() * 16 | 0;
- return (d === "x" ? o : o & 3 | 8).toString(16)
- }
- )
- }
- function getErrorByCode(d) {
- if (d === Codes.Success)
- return InternalError;
- const o = CodeErrorMap[d];
- return o || console.warn("unkown code", d),
- o || InternalError
- }
- function add(d, o) {
- return o == -1 && (o = 0),
- d + o
- }
- function count_valid(d, o) {
- let s = 0;
- return o != -1 && (s = 1),
- d + s
- }
- function count_less(d, o) {
- function s(c, _) {
- let b = 0;
- return _ != -1 && _ < o && (b = 1),
- c + b
- }
- return d.reduce(s, 0)
- }
- function count_sd(d, o) {
- function s(c, _) {
- let b = 0;
- return _ == -1 ? b = 0 : b = (_ - o) * (_ - o),
- c + b
- }
- return Math.sqrt(d.reduce(s, 0) / d.reduce(count_valid, 0)) || 0
- }
- function max(d, o) {
- return Math.max(d, o)
- }
- var axios$2 = {
- exports: {}
- }
- , bind$2 = function(o, s) {
- return function() {
- for (var _ = new Array(arguments.length), b = 0; b < _.length; b++)
- _[b] = arguments[b];
- return o.apply(s, _)
- }
- }
- , bind$1 = bind$2
- , toString = Object.prototype.toString;
- const ua = navigator.userAgent.toLowerCase();
- function isIos() {
- return !!ua.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/i)
- }
- function getIosVersion() {
- const d = ua.match(/cpu iphone os (.*?) like mac os/);
- return d ? d[1] : null
- }
- var workerSourceCode = `onmessage = function (event) {
- const data = event.data
- if (!data) return
- if (data.type === 'start') {
- const startTime = Date.now()
- const request = new XMLHttpRequest()
- request.open('GET', data.url)
- try {
- request.send()
- } catch (error) {
- console.error(error)
- }
- request.addEventListener('readystatechange', () => {
- if (request.readyState == 4) {
- if (request.status == 200) {
- postMessage(Date.now() - startTime)
- }
- }
- })
- }
- }
- `;
- function VisibilityChangeHandler() {
- this.subscribers = [],
- this.bindFunc = void 0,
- this.id = 1,
- this.addListener()
- }
- VisibilityChangeHandler.prototype = {
- subscribe(d) {
- if (!d)
- return;
- const o = ++this.id
- , s = {
- id: o,
- handler: d
- };
- return this.subscribers.push(s),
- ()=>{
- this.subscribers = this.subscribers.filter(_=>_.id == o)
- }
- },
- destroy() {
- !this.bindFunc || (document.hidden !== void 0 ? document.removeEventListener("visibilitychange", this.bindFunc, !1) : document.webkitHidden && document.removeEventListener("webkitvisibilitychange", this.bindFunc, !1))
- },
- broadcast(d) {
- this.subscribers.forEach(o=>o.handler(d))
- },
- addListener() {
- document.hidden !== void 0 ? (this.bindFunc = ()=>this.broadcast(document.hidden),
- document.addEventListener("visibilitychange", this.bindFunc, !1)) : document.webkitHidden && (this.bindFunc = ()=>this.broadcast(document.webkitHidden),
- document.addEventListener("webkitvisibilitychange", this.bindFunc, !1))
- }
- };
- const panorama_width = 4096
- , panorama_height = 2048
- , tile_width = 512
- , tile_height = 256;
- function ToRadius(d) {
- return d / 180 * Math.PI
- }
- function ToAngle(d) {
- return d / Math.PI * 180
- }
- function getAngleInView(d, o) {
- const s = {}
- , c = o.x - d.width * .5
- , _ = d.height * .5 - o.y
- , b = -1 * ToRadius(d.angle.pitch)
- , k = ToRadius(d.angle.yaw)
- , j = d.width / 2 / Math.tan(ToRadius(d.horz_fov / 2))
- , $ = Math.sin(b)
- , _e = Math.cos(b);
- for (s.yaw = Math.atan2(c, j * _e + _ * $),
- s.pitch = Math.atan2((_ - j * Math.tan(b)) * Math.cos(s.yaw), j + _ * Math.tan(b)),
- s.pitch = ToAngle(s.pitch),
- s.yaw = ToAngle(k + s.yaw); s.yaw > 359.9; )
- s.yaw -= 360;
- for (; s.yaw < 0; )
- s.yaw += 360;
- return s
- }
- function getRectangleInView(d) {
- const o = {}
- , s = Array(9)
- , c = d.height
- , _ = d.width;
- for (let k = 0, j = 0; j <= c; j += c / 2)
- for (let$ = 0; $ <= _; $ += _ / 2,
- k++) {
- const _e = {};
- _e.x = $,
- _e.y = j;
- let et = {};
- et = d,
- et.angle.pitch >= 90 && (et.angle.pitch = 89.999),
- et.angle.pitch <= -90 && (et.angle.pitch = -89.999),
- et.angle.yaw = 0,
- s[k] = getAngleInView(d, _e),
- s[k].pitch < -90 ? s[k].pitch = 90 : s[k].pitch > 90 && (s[k].pitch = -90)
- }
- let b = s[0].yaw > s[3].yaw ? 3 : 0;
- return s[b].yaw > s[6].yaw && (b = 6),
- s[b].yaw > s[b + 2].yaw && (s[b + 2].yaw += 360),
- s[b + 2].yaw > s[b].yaw + 180 ? (o.x = 0,
- o.width = panorama_width) : (o.x = (s[b].yaw / 360 - .5) * panorama_width,
- o.width = (s[b + 2].yaw / 360 - .5) * panorama_width - o.x),
- o.y = (.5 - s[s[0].pitch > s[1].pitch ? 0 : 1].pitch / 180) * panorama_height,
- o.height = (.5 - s[s[6].pitch > s[7].pitch ? 7 : 6].pitch / 180) * panorama_height - o.y,
- o
- }
- function MaskSetToOne(d, o) {
- const s = d / 8
- , c = d % 8;
- o.setUint8(s, o.getUint8(s) | 1 << 7 - c)
- }
- function IsAll0(d) {
- return d.getUint32(0) == 0 && d.getUint32(4) == 0
- }
- function getMaskFromTiles(d, o) {
- const s = new DataView(o);
- d.forEach(function(c, _) {
- MaskSetToOne(c, s)
- })
- }
- function operateForDataView(d, o, s, c) {
- s.setUint32(0, c(d.getUint32(0), o.getUint32(0))),
- s.setUint32(4, c(d.getUint32(4), o.getUint32(4)))
- }
- function getTilesInView(d, o) {
- const s = getRectangleInView(d)
- , c = Math.floor(s.x / tile_width)
- , _ = Math.floor((s.x + s.width - 1) / tile_width)
- , b = Math.floor(s.y / tile_height)
- , k = Math.floor((s.y + s.height - 1) / tile_height);
- console.log({
- left: c,
- right: _,
- top: b,
- bottom: k
- });
- const $ = []
- , _e = panorama_height / tile_height;
- for (let et = c; et <= _; et++)
- for (let tt = b; tt <= k; tt++)
- $.push(et * _e + tt);
- return console.log($),
- getMaskFromTiles($, o),
- $
- }
- const TRACKER_URL = {
- DEV: "https://xa.xverse.cn:6680/report",
- PROD: "https://xa.xverse.cn/report"
- };
- let DecodeFunctionTimeList = []
- , SDKFunctionTimeList = []
- , EngineFunctionTimeList = []
- , OtherFunctionTimeList = []
- , HeavyFunctionList = [];
- function getSum(d) {
- let o = 0;
- for (let s = 0; s < d.length; s++)
- o += d[s];
- return o || 0
- }
- function getMax(d) {
- let o = 0;
- for (let s = 0; s < d.length; s++)
- o < d[s] && (o = d[s]);
- return o
- }
- function getFuncStat() {
- const d = {
- sum: getSum(DecodeFunctionTimeList),
- max: getMax(DecodeFunctionTimeList)
- }
- , o = {
- sum: getSum(SDKFunctionTimeList),
- max: getMax(SDKFunctionTimeList)
- }
- , s = {
- sum: getSum(EngineFunctionTimeList),
- max: getMax(EngineFunctionTimeList)
- }
- , c = {
- sum: getSum(OtherFunctionTimeList),
- max: getMax(OtherFunctionTimeList)
- }
- , _ = HeavyFunctionList;
- {
- const b = new Date;
- b.getFullYear() + "" + (b.getMonth() + 1) + b.getDate(),
- b.getHours() + "" + b.getMinutes() + b.getSeconds()
- }
- return DecodeFunctionTimeList = [],
- SDKFunctionTimeList = [],
- EngineFunctionTimeList = [],
- OtherFunctionTimeList = [],
- HeavyFunctionList = [],
- {
- function: _,
- decode: d,
- sdk: o,
- engine: s,
- other: c
- }
- }
- BABYLON.Scene.DoubleClickDelay = 500;
- const zixunqiangImg = "./assets/zixunqiang.7c2c5bc8.png"
- , turingImg = "./assets/BreathPoint_turing.47d4d03d.png";
-
- const VITE_APPID = "10011"
- , VITE_SKINID = "10149"
- , VITE_VERSION = "00007"
- , VITE_TOKEN_URL = "https://service-0ldci7m6-1258211750.gz.apigw.tencentcs.com/token/fetch_token"
- , isAllSync = !0
- , rotationRenderType = 1
- , syncByEvent = !0
- , areaName = "thirdwalk"
- , pathName = "thirdwalk"
- , attitude = "walk"
- , randomBirthPoints = [{
- player: {
- position: {
- x: -4902,
- y: -35,
- z: 0
- },
- angle: {
- pitch: 0,
- yaw: -90,
- roll: 0
- }
- },
- camera: {
- position: {
- x: -5182,
- y: -35,
- z: 120
- },
- angle: {
- pitch: 0,
- yaw: -90,
- roll: 0
- }
- }
- }];
- var config = {
- VITE_APPID,
- VITE_SKINID,
- VITE_VERSION,
- VITE_TOKEN_URL,
- isAllSync,
- rotationRenderType,
- syncByEvent,
- areaName,
- pathName,
- attitude,
- randomBirthPoints
- }
- , defaultConfig = Object.freeze(Object.defineProperty({
- __proto__: null,
- VITE_APPID,
- VITE_SKINID,
- VITE_VERSION,
- VITE_TOKEN_URL,
- isAllSync,
- rotationRenderType,
- syncByEvent,
- areaName,
- pathName,
- attitude,
- randomBirthPoints,
- default: config
- }, Symbol.toStringTag, {
- value: "Module"
- }));
- Promise.prototype._timeout = function(d, o) {
- let s;
- return new Promise((c,_)=>(s = window.setTimeout(()=>{
- _(o)
- }
- , d),
- this.then(b=>{
- clearTimeout(s),
- c(b)
- }
- , b=>{
- clearTimeout(s),
- _(b)
- }
- )))
- }
- ;
- </script>
- <script src="js/index.js"></script>
- </body>
- </html>
|