Browse Source

3楼3D模型更新

master
xuhuajiao 6 months ago
parent
commit
ad548842f0
  1. 4
      .env.development
  2. 2
      public/static/config.js
  3. BIN
      public/webThird/asset/F5.glb
  4. 0
      public/webThird/asset/Line.glb
  5. 0
      public/webThird/asset/TotalCamera.glb
  6. 0
      public/webThird/asset/total2.glb
  7. BIN
      public/webThird/img/beij.png
  8. 0
      public/webThird/img/bl9.png
  9. 861
      public/webThird/index.html
  10. 694
      public/webThird/index.js
  11. 0
      public/webThird/js/babylon.gui.min.js
  12. 0
      public/webThird/js/babylon.js
  13. 0
      public/webThird/js/babylonjs.loaders.min.js
  14. 2061
      public/webThird/js/bootstrap-slider.js
  15. 52
      public/webThird/js/draco_decoder.js
  16. BIN
      public/webThird/js/draco_decoder.wasm
  17. 48
      public/webThird/js/draco_decoder_gltf.js
  18. BIN
      public/webThird/js/draco_decoder_gltf.wasm
  19. 52
      public/webThird/js/draco_encoder.js
  20. 104
      public/webThird/js/draco_wasm_wrapper.js
  21. 0
      public/webThird/js/draco_wasm_wrapper_gltf.js
  22. 190
      public/webThird/js/easyloader.js
  23. 778
      public/webThird/js/index.js
  24. 0
      public/webThird/js/jquery-3.5.1.min.js
  25. 0
      public/webThird/js/jquery-ui.js
  26. 0
      public/webThird/js/jquery.js
  27. 138
      public/webThird/js/jquery.timers.min.js
  28. 0
      public/webThird/js/pep.js
  29. 0
      public/webThird/js/qrcode.min.js
  30. 0
      public/webThird/logok.gif
  31. 0
      public/webThird/textures/4.jpg
  32. 0
      public/webThird/textures/environmentSpecular.env
  33. BIN
      public/webTotal/asset/totalw.glb
  34. BIN
      public/webTotal/img/bof.gif
  35. BIN
      public/webTotal/img/logo.png
  36. BIN
      public/webTotal/img/sky.jpg
  37. BIN
      public/webTotal/img/x02.png
  38. BIN
      public/webTotal/img/yxlogo.png
  39. 866
      public/webTotal/index.html
  40. 1016
      public/webTotal/index.js
  41. BIN
      public/webTotal/logok.gif
  42. BIN
      public/webTotal/textures/5.jpg
  43. BIN
      public/webTotal/textures/Flare.png
  44. BIN
      public/webTotal/textures/a.png
  45. BIN
      public/webTotal/textures/b.png
  46. BIN
      public/webTotal/textures/ball_light_01.png
  47. BIN
      public/webTotal/textures/circular_03.png
  48. BIN
      public/webTotal/textures/sun.png
  49. BIN
      public/webTotal/textures/textures.rar
  50. 33
      src/api/index.js
  51. 175
      src/api/library.js
  52. 5
      src/assets/styles/index.scss
  53. 6
      src/components/hkVideo.vue
  54. 66
      src/components/video.vue
  55. 72
      src/components/viewVideo.vue
  56. 18
      src/utils/request.js
  57. 1
      src/views/index.vue
  58. 18
      src/views/pageBasement/index.vue
  59. 59
      src/views/pageFullView/index.vue
  60. 201
      src/views/pageFullView/module/waterPressure22.vue
  61. 46
      src/views/pageThirdFloor/index.vue
  62. 15
      src/views/pageWaterPumpHouse/index.vue

4
.env.development

@ -2,8 +2,8 @@ ENV = 'development'
# 接口地址
# 许镇-本地服地址
VUE_APP_BASE_API = 'http://192.168.99.67:6066'
# 本地服地址
VUE_APP_BASE_API = 'http://192.168.99.112:8082'
# VUE_APP_BASE_API = 'http://27.19.209.92:13244'
VUE_APP_LIB_API = 'http://118.253.150.248:8099'

2
public/static/config.js

@ -1,5 +1,5 @@
window.g = {
AXIOS_TIMEOUT: 10000,
ApiUrl: 'http://192.168.99.107:6066', // 配置服务器地址,
ApiUrl: 'http://192.168.99.112:8080', // 配置服务器地址,
LibUrl: 'http://118.253.150.248:8099' // 图创地址
}

BIN
public/webThird/asset/F5.glb

0
public/webTotal/asset/Line.glb → public/webThird/asset/Line.glb

0
public/webTotal/asset/TotalCamera.glb → public/webThird/asset/TotalCamera.glb

0
public/webTotal/asset/total2.glb → public/webThird/asset/total2.glb

BIN
public/webThird/img/beij.png

After

Width: 653  |  Height: 394  |  Size: 57 KiB

0
public/webTotal/img/bl9.png → public/webThird/img/bl9.png

Before

Width: 2000  |  Height: 100  |  Size: 29 KiB

After

Width: 2000  |  Height: 100  |  Size: 29 KiB

861
public/webThird/index.html

@ -0,0 +1,861 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8" />
<meta name="screen-orientation" content="landscape" charset="UTF-8" />
<meta content="width=device-width, initial-scale=0.4, maximum-scale=0.4, user-scalable=0" name="viewport" />
<meta http-equiv="Pragma" content="Cache-control: max-age=10000" />
<script type="text/javascript" src="./js/qrcode.min.js"></script>
<title>5楼3层</title>
<style>
html,
body {
overflow: hidden;
margin: 0;
padding: 0;
}
img {
width: 100%;
height: auto;
}
video {
width: 100%;
height: auto;
}
.font22 {
font-size: 20px;
}
.jiazaiimg {
display: block;
width: 436px;
}
.zc {
color: white;
width: 436px;
height: 140px;
margin: 85% auto 0;
padding: 0px 240px;
font-size: 30px;
}
.zcpc {
color: white;
width: 100%;
height: 40px;
font-size: 20px;
position: fixed;
bottom: 10px;
text-align: center;
}
.divTransform {
position: absolute;
width: 100%;
height: 100%;
}
#renderCanvas {
width: 100%;
height: 1753px;
touch-action: none;
outline: none;
-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
/* mobile webkit */
touch-action: none;
background-repeat: no-repeat no-repeat;
background-size: cover;
}
/* #show {
width: 100%;
font-size: 35px;
line-height: 70px;
}
.mytitle {
width: 100%;
text-align: center;
font-size: 43px;
font-weight: 700;
color: white;
margin-top: 75px;
margin-bottom: 20px;
}
.introduce {
width: 600px;
height: auto;
background: url('img/shuomingkuang@2x.png') no-repeat;
background-size: 100% 100%;
position: fixed;
top: 38%;
left: 19%;
z-index: 99;
color: white;
padding: 35px 28px;
font-size: 10px;
display: none;
}
.introduce2 {
width: 520px;
height: auto;
background: url('img/shuomingkuang@2x.png') no-repeat;
background-size: 100% 100%;
position: fixed;
bottom: 10%;
left: 30%;
z-index: 99;
color: white;
padding: 20px;
font-size: 14px;
line-height: 19px;
display: none;
}
.xingshang {
width: 100%;
position: fixed;
bottom: 0px;
left: 0;
height: 340px;
box-sizing: border-box;
padding: 20px 30px;
color: white;
background-color: rgba(0, 0, 0, 0.6);
overflow-x: hidden;
overflow-y: hidden;
border-radius: 35px 35px 0 0;
display: none;
}
.xingshangpc {
width: 520px;
height: 100%;
margin: 0 auto;
box-sizing: border-box;
padding: 20px 30px;
color: white;
}
.zuoimg {
width: 38px;
height: 72px;
margin: 48px 29px;
}
.zuoimgpc {
width: 13px;
height: 22px;
margin: 18px 7px;
}
.xsul {
width: 100%;
display: flex;
justify-content: space-between;
margin-top: 50px;
} */
.xsli {
font-size: 28px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.xslipc {
font-size: 14px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.xsimg {
width: 72px;
height: 72px;
margin: 25px;
}
.xsimgpc {
width: 32px;
height: 32px;
margin: 12px;
}
.jiange {
width: 22px;
height: 22px;
margin-top: 53px;
}
.jiangepc {
width: 15px;
height: 15px;
margin-top: 22px;
}
.beijing {
width: 100%;
position: fixed;
bottom: 0px;
left: 0;
height: 420px;
box-sizing: border-box;
padding: 20px 30px;
color: white;
background-color: rgba(0, 0, 0, 0.6);
overflow-x: hidden;
overflow-y: hidden;
border-radius: 35px 35px 0 0;
display: none;
}
.beijingpc-di,
.xingsh-di {
width: 81.2%;
position: fixed;
bottom: 30px;
left: 0px;
height: 220px;
background-image: linear-gradient(
to right,
rgba(0, 0, 0, 0) 0,
rgba(0, 0, 0, 0.3) 8%,
rgba(0, 0, 0, 0.5) 18%,
rgba(0, 0, 0, 0.5) 80%,
rgba(0, 0, 0, 0.3) 90%,
rgba(0, 0, 0, 0) 100%
);
display: none;
}
.beijingpc {
width: 50%;
height: 100%;
margin: 0 auto;
box-sizing: border-box;
padding: 10px 15px;
color: white;
display: flex;
justify-content: center;
align-items: center;
}
.leftpc,
.rightpc {
width: 12px;
height: 21px;
margin: 0 12px;
display: flex;
align-items: center;
}
.leftimgpc,
.rightimgpc {
width: 12px;
height: 21px;
margin-top: 25px;
}
.zhongj {
width: 93%;
max-width: 880px;
height: 100%;
overflow-x: auto;
overflow-y: hidden;
}
.bjtit {
font-size: 38px;
display: flex;
justify-content: space-between;
margin: 37px 0 27px;
}
.bjtitpc {
font-size: 18px;
display: flex;
justify-content: space-between;
margin: 14px 0;
}
.ycdiv {
display: flex;
justify-content: space-between;
align-items: center;
width: 132px;
}
.ycdivpc {
display: flex;
justify-content: space-between;
align-items: center;
width: 45px;
font-size: 11px;
}
.ycimg {
width: 38px;
height: 28px;
}
.ycimgpc {
width: 16px;
height: 12px;
}
.bjul {
width: 100%;
display: flex;
margin: 0;
padding: 0;
overflow-y: hidden;
overflow-x: auto;
}
.bjulpc {
height: 140px;
display: flex;
}
.bjulpc-di {
width: 100%;
height: 140px;
display: flex;
margin: 0;
padding: 0;
overflow-y: hidden;
overflow-x: auto;
}
.bjulpc-di::-webkit-scrollbar {
display: none;
}
.bjli {
margin: 0 10px;
font-size: 36px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.bjlipc {
margin: 0 5px;
font-size: 14px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.bjdiv {
height: 188px;
display: flex;
justify-content: center;
align-items: flex-end;
}
.bjdivpc {
height: 120px;
display: flex;
justify-content: center;
align-items: flex-end;
}
.bjimg {
width: 138px;
height: 138px;
margin-bottom: 20px;
border-radius: 14px;
}
.bjimgpc {
width: 98px;
height: 98px;
margin-bottom: 10px;
border-radius: 6px;
}
.contint2 {
width: 100%;
position: fixed;
bottom: 0px;
left: 0;
height: 300px;
box-sizing: border-box;
padding: 20px 30px;
color: white;
background-color: rgba(0, 0, 0, 0.6);
overflow-x: hidden;
overflow-y: hidden;
border-radius: 35px 35px 0 0;
}
.contint2::-webkit-scrollbar {
display: none;
}
.main2 {
width: 100%;
height: auto;
display: none;
}
.shangla,
.xiala {
width: 100%;
height: 160px;
text-align: center;
position: fixed;
bottom: 140px;
left: 0;
border-radius: 35px 35px 0 0;
display: block;
z-index: 99;
background-image: linear-gradient(
to top,
rgba(0, 0, 0, 0),
rgba(0, 0, 0, 0.18)
);
}
.xialaimg {
width: 80px;
height: 11px;
margin-top: 44px;
}
.oprition {
width: 100%;
position: fixed;
top: 30px;
left: 0;
z-index: 999;
display: flex;
justify-content: center;
}
.listimg {
width: 150px;
position: relative;
display: flex;
flex-direction: column;
align-items: center;
}
.listimg img {
width: 103px;
height: 103px;
}
.conts {
width: 100%;
font-size: 28px;
color: white;
height: 101px;
box-sizing: border-box;
padding: 30px;
text-align: center;
border-radius: 5px;
text-align: center;
}
.contcj,
.contzk,
.contxx {
width: 124px;
}
.contbj,
.conthy,
.contcz {
width: 178px;
}
.mengban {
position: fixed;
top: 0;
left: 0;
width: 100%;
z-index: 1000;
background-color: rgba(0, 0, 0, 0);
}
/* .articcont {
width: 100%;
position: fixed;
top: 30%;
left: 0;
z-index: 9999;
background-color: rgba(0, 0, 0, 0.6);
border-radius: 10px;
padding: 30px;
box-sizing: border-box;
display: none;
}
.articcont:after {
content: '';
display: inline-block;
width: 0;
height: 0;
border: 20px solid transparent;
border-bottom: 20px solid rgba(0, 0, 0, 0.6);
position: absolute;
top: -38px;
right: 48%;
} */
/* .ul {
width: 100%;
} */
/* .shoushi {
width: 800px;
height: auto;
padding: 110px;
}
.span1 {
font-size: 66px;
color: white;
margin-right: 13px;
position: relative;
bottom: 10px;
}
.know {
width: 200px;
text-align: center;
padding: 16px 0;
font-size: 32px;
margin: 30px auto 0;
border-radius: 10px;
color: white;
font-weight: 600;
}
.ikngb {
width: 57px;
height: 57px;
} */
/*pc端*/
.mains {
width: 18.8%;
display: none;
box-sizing: border-box;
}
.contint {
width: 100%;
/*height: 250px;*/
box-sizing: border-box;
color: white;
background-color: rgba(0, 0, 0, 0.6);
overflow-x: hidden;
overflow-y: hidden;
background: #151837;
}
.title2 {
width: 100%;
height: 62px;
background-color: #151837;
color: white;
display: flex;
justify-content: space-between;
align-items: center;
box-sizing: border-box;
padding: 0 20px;
font-size: 22px;
font-weight: 700;
}
.oprition2 {
position: fixed;
top: 10px;
right: 19%;
width: 56px;
}
.listimg2 {
margin-top: 20px;
position: relative;
}
.listimg2 img {
width: 47px;
height: 47px;
}
.conts2 {
background: rgb(0, 0, 0, 0.5);
font-size: 14px;
color: white;
height: 32px;
line-height: 32px;
box-sizing: border-box;
text-align: center;
border-radius: 3px;
position: absolute;
right: 73px;
top: 10px;
display: none;
}
.conts2:after {
content: '';
display: inline-block;
width: 0;
height: 0;
border: 7px solid transparent;
border-left: 7px solid rgba(0, 0, 0, 0.8);
position: absolute;
top: 7px;
right: -14px;
}
.articcont2 {
width: 800px;
height: 700px;
margin: 50px auto;
background-color: rgba(0, 0, 0, 0.6);
border-radius: 10px;
padding: 20px;
box-sizing: border-box;
}
.articcont2:after {
content: '';
display: inline-block;
width: 0;
height: 0;
border: 10px solid transparent;
border-top: 10px solid rgba(0, 0, 0, 0.6);
position: absolute;
top: 202px;
right: 48%;
}
.ul2 {
width: 100%;
color: white;
}
.li2 {
width: 100%;
font-size: 14px;
line-height: 19px;
}
.mengban2 {
position: fixed;
top: 0;
left: 0;
width: 81.2%;
background-color: rgba(0, 0, 0, 0.2);
display: none;
z-index: 10;
}
.knowpc {
font-size: 14px;
width: 83px;
height: 33px;
line-height: 33px;
text-align: center;
/* background-color: #008aff; */
margin: 20px auto 0;
border-radius: 5px;
color: white;
font-weight: 600;
cursor: pointer;
}
.span2 {
font-size: 36px;
color: white;
margin-right: 13px;
position: relative;
bottom: 3px;
}
.shuop1 {
font-size: 15px;
}
.oka {
width: 100%;
height: 100%;
background: rgba(10, 26, 66, 0.5);
position: fixed;
z-index: 99;
/* padding: 35px 28px; */
font-size: 30px;
/*display: none;*/
}
/*下面是音乐的css*/
.lohingif {
/* width: 100%; */
/* height: auto; */
display: flex;
justify-content: center;
align-items: center;
}
.lohingifpc {
/* width: 100%;
height: auto; */
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
/* top: 50%; */
/* transform: translateY(-50%); */
}
/* .feitimg {
width: 20px;
height: auto;
position: relative;
top: 3px;
}
.fatherdiv {
margin: 25px;
width: 72px;
height: 72px;
position: relative;
background-color: #f3f3f3;
border-radius: 50%;
} */
/* .persentdiv {
display: none;
margin: -24px 0px 0px 0px;
width: 72px;
height: 72px;
border-radius: 50%;
position: absolute;
clip: rect(0, 72px, 72px, 36px);
}
.persentleft {
position: absolute;
width: 72px;
height: 72px;
border: 10px solid #1890ff;
box-sizing: border-box;
border-radius: 50%;
clip: rect(0, 36px, 72px, 0);
}
.persentright {
position: absolute;
width: 72px;
height: 72px;
border: 10px solid #1890ff;
box-sizing: border-box;
border-radius: 50%;
clip: rect(0, 72px, 72px, 36px);
}
.persentdivpc {
display: none;
margin: -10px 0px 0px 0px;
width: 32px;
height: 32px;
border-radius: 50%;
position: absolute;
clip: rect(0, 32px, 32px, 16px);
}
.persentleftpc {
position: absolute;
width: 32px;
height: 32px;
border: 5px solid #1890ff;
box-sizing: border-box;
border-radius: 50%;
clip: rect(0, 16px, 32px, 0);
}
.persentrightpc {
position: absolute;
width: 32px;
height: 32px;
border: 5px solid #1890ff;
box-sizing: border-box;
border-radius: 50%;
clip: rect(0, 32px, 32px, 16px);
}
.wth0 {
width: 0;
} */
.num {
position: absolute;
box-sizing: border-box;
width: 130px;
height: 130px;
line-height: 130px;
text-align: center;
font-size: 32px;
left: 10px;
top: 10px;
border-radius: 50%;
background-color: #fff;
color: #1890ff;
z-index: 1;
}
.clip-auto {
clip: rect(auto, auto, auto, auto);
}
.rotate {
-webkit-animation: rotating 3s linear infinite;
animation: rotating 3s linear infinite;
animation-play-state: running;
-webkit-animation-play-state: running;
/* Safari 和 Chrome */
}
.rotate-pause {
animation-play-state: paused;
-webkit-animation-play-state: paused;
/* Safari 和 Chrome */
}
@-webkit-keyframes rotating {
from {
-webkit-transform: rotate(0);
}
to {
-webkit-transform: rotate(360deg);
}
}
@keyframes rotating {
from {
transform: rotate(0);
}
to {
transform: rotate(360deg);
}
}
@-moz-keyframes rotating {
from {
-moz-transform: rotate(0);
}
to {
-moz-transform: rotate(360deg);
}
}
</style>
</head>
<body>
<div class="divTransform">
<canvas id="renderCanvas" touch-action="none"></canvas>
</div>
<div id="customLoadingScreenDiv_first" style=" position: absolute; left: 0px; top: 0px; width: 1158.1px; height: 1211px; display: initial;">
<!-- <div class="oka">
<div class="lohingif">
<img src="./logok.gif" class="jiazaiimg" />
</div>
<div class="zcpc">&nbsp;&nbsp;</div>
</div> -->
</div>
<script src="./js/jquery-3.5.1.min.js"></script>
<script src="./js/pep.js"></script>
<script src="./js/babylon.js"></script>
<script src="./js/babylonjs.loaders.min.js"></script>
<script src="./js/babylon.gui.min.js"></script>
<script src="./js/draco_wasm_wrapper_gltf.js"></script>
<script src="./index.js"></script>
</body>
</html>

694
public/webThird/index.js

@ -0,0 +1,694 @@
// 从这里开始
var h1 = null
var h2 = null
var h3 = null
var oldtransformNodex = null
// var oldtransformNodeOther = null
// var oldMesh = null
var oldMeshOther = null
var drag = null
// var notmoveGroup = null
// var movedGroup = null
// var movesingle = false
// var dynamicTexture = null
// var dynamicTexture2 = null
// var show = 50
// var showdd = 50
var isRotating = true
var camera
BABYLON.DefaultLoadingScreen.prototype.displayLoadingUI = function() {
if (document.getElementById('customLoadingScreenDiv')) {
document.getElementById('customLoadingScreenDiv').style.display = 'initial'
return
}
this._loadingDiv = document.createElement('div')
// this._loadingDiv.style.height = '1750px';
this._loadingDiv.id = 'customLoadingScreenDiv'
thecss = 'lohingifpc'
thecss2 = 'zcpc'
this._loadingDiv.innerHTML = "<div class='oka'><div class='" + thecss + "'><image src='./logok.gif' class='jiazaiimg'/></div></div>"
this._resizeLoadingUI()
window.addEventListener('resize', this._resizeLoadingUI)
document.body.appendChild(this._loadingDiv)
}
// var movebyName = function(nodeName) {
// var x = scene.getTransformNodeByName(nodeName)
// moveTrans(x)
// }
BABYLON.DefaultLoadingScreen.prototype.hideLoadingUI = function() {
show = 50
document.getElementById('customLoadingScreenDiv').style.display = 'none'
document.getElementById('customLoadingScreenDiv_first').style.display = 'none'
document.title = '整体'
// var prepareGroupButton = function(transformNodex, color, qu) {
// var mesheses = null
// if (transformNodex.getClassName() === 'TransformNode') {
// mesheses = transformNodex.getChildMeshes(false)
// } else {
// mesheses = []
// mesheses.push(transformNodex)
// }
// for (var i = 0; i < mesheses.length; i++) {
// mesheses[i].actionManager = new BABYLON.ActionManager(scene)
// // var theScaling = mesheses[i].scaling
// /* if (true) {
// try {
// mesheses[i].actionManager.registerAction(new BABYLON.InterpolateValueAction(BABYLON.ActionManager.OnPointerOutTrigger, mesheses[i], "scaling", new BABYLON.Vector3(theScaling.x, theScaling.y, theScaling.z), 100));
// mesheses[i].actionManager.registerAction(new BABYLON.InterpolateValueAction(BABYLON.ActionManager.OnPointerOverTrigger, mesheses[i], "scaling", new BABYLON.Vector3(theScaling.x * 1.01, theScaling.y * 1.01, theScaling.z * 1.01), 100));
// } catch (error) {
// //alert(error)
// }
// }*/
// var clickbegin = false
// mesheses[i].actionManager.registerAction(
// new BABYLON.ExecuteCodeAction({
// trigger: BABYLON.ActionManager.OnPointerOverTrigger,
// parameter: ''
// },
// function() {
// clickbegin = true
// if (true) {
// if (oldtransformNodeOther != null) {
// oldtransformNodeOther.removeBehavior(drag)
// var mesheses2 = null
// if (oldtransformNodeOther.getClassName() == 'TransformNode') {
// mesheses2 = oldtransformNodeOther.getChildMeshes(false)
// } else {
// mesheses2 = []
// mesheses2.push(oldtransformNodeOther)
// }
// for (var i = 0; i < mesheses2.length; i++) {
// try {
// h2.removeMesh(mesheses2[i])
// } catch (error) {
// // alert(error)
// }
// }
// }
// oldtransformNodeOther = transformNodex
// // transformNodex.addBehavior(drag);
// var mesheses3 = null
// if (transformNodex.getClassName() === 'TransformNode') {
// mesheses3 = transformNodex.getChildMeshes(false)
// } else {
// mesheses3 = []
// mesheses3.push(transformNodex)
// }
// for (var i = 0; i < mesheses3.length; i++) {
// try {
// h2.addMesh(mesheses3[i], color)
// } catch (error) {
// // alert(error)
// }
// }
// clickbegin = false
// }
// }
// )
// )
// mesheses[i].actionManager.registerAction(
// new BABYLON.ExecuteCodeAction({
// trigger: BABYLON.ActionManager.OnPickTrigger,
// parameter: ''
// },
// function() {
// clickbegin = true
// if (true) {
// try {
// quClick(qu)
// } catch (error) {
// // alert(error)
// }
// clickbegin = false
// }
// }
// )
// )
// }
// }
// var prepareGroupButton2 = function(transformNodex, color, qu) {
// var mesheses = null
// if (transformNodex.getClassName() === 'TransformNode') {
// mesheses = transformNodex.getChildMeshes(false)
// } else {
// mesheses = []
// mesheses.push(transformNodex)
// }
// for (var i = 0; i < mesheses.length; i++) {
// mesheses[i].actionManager = new BABYLON.ActionManager(scene)
// // var theScaling = mesheses[i].scaling
// /* if (true) {
// try {
// mesheses[i].actionManager.registerAction(new BABYLON.InterpolateValueAction(BABYLON.ActionManager.OnPointerOutTrigger, mesheses[i], "scaling", new BABYLON.Vector3(theScaling.x, theScaling.y, theScaling.z), 100));
// mesheses[i].actionManager.registerAction(new BABYLON.InterpolateValueAction(BABYLON.ActionManager.OnPointerOverTrigger, mesheses[i], "scaling", new BABYLON.Vector3(theScaling.x * 1.01, theScaling.y * 1.01, theScaling.z * 1.01), 100));
// } catch (error) {
// //alert(error)
// }
// }*/
// var clickbegin = false
// mesheses[i].actionManager.registerAction(
// new BABYLON.ExecuteCodeAction({
// trigger: BABYLON.ActionManager.OnPointerOverTrigger,
// parameter: ''
// },
// function() {
// clickbegin = true
// if (true) {
// if (oldtransformNodeOther != null) {
// oldtransformNodeOther.removeBehavior(drag)
// var mesheses2 = null
// if (oldtransformNodeOther.getClassName() === 'TransformNode') {
// mesheses2 = oldtransformNodeOther.getChildMeshes(false)
// } else {
// mesheses2 = []
// mesheses2.push(oldtransformNodeOther)
// }
// for (var i = 0; i < mesheses2.length; i++) {
// try {
// h2.removeMesh(mesheses2[i])
// } catch (error) {
// // alert(error)
// }
// }
// }
// oldtransformNodeOther = transformNodex
// // transformNodex.addBehavior(drag);
// var mesheses3 = null
// if (transformNodex.getClassName() === 'TransformNode') {
// mesheses3 = transformNodex.getChildMeshes(false)
// } else {
// mesheses3 = []
// mesheses3.push(transformNodex)
// }
// for (var i = 0; i < mesheses3.length; i++) {
// try {
// h2.addMesh(mesheses3[i], color)
// } catch (error) {
// // alert(error)
// }
// }
// clickbegin = false
// }
// }
// )
// )
// mesheses[i].actionManager.registerAction(
// new BABYLON.ExecuteCodeAction({
// trigger: BABYLON.ActionManager.OnPickTrigger,
// parameter: ''
// },
// function() {
// clickbegin = true
// if (true) {
// try {
// // quClick(transformNodex.name)
// cameraClick(transformNodex)
// } catch (error) {
// // alert(error)
// }
// clickbegin = false
// }
// }
// )
// )
// }
// }
var prepareGroupButton2ByMesh = function(transformNodex, color, qu) {
var mesheses = null
if (transformNodex.getClassName() === 'Mesh') {
mesheses = []
mesheses.push(transformNodex)
}
for (var i = 0; i < mesheses.length; i++) {
mesheses[i].actionManager = new BABYLON.ActionManager(scene)
// var theScaling = mesheses[i].scaling
/* if (true) {
try {
mesheses[i].actionManager.registerAction(new BABYLON.InterpolateValueAction(BABYLON.ActionManager.OnPointerOutTrigger, mesheses[i], "scaling", new BABYLON.Vector3(theScaling.x, theScaling.y, theScaling.z), 100));
mesheses[i].actionManager.registerAction(new BABYLON.InterpolateValueAction(BABYLON.ActionManager.OnPointerOverTrigger, mesheses[i], "scaling", new BABYLON.Vector3(theScaling.x * 1.01, theScaling.y * 1.01, theScaling.z * 1.01), 100));
} catch (error) {
//alert(error)
}
}*/
// let clickbegin = false
mesheses[i].actionManager.registerAction(
new BABYLON.ExecuteCodeAction({
trigger: BABYLON.ActionManager.OnPointerOverTrigger,
parameter: ''
},
function() {
// clickbegin = true
// if (true) {
if (oldMeshOther != null) {
oldMeshOther.removeBehavior(drag)
var mesheses2 = null
if (oldMeshOther.getClassName() === 'Mesh') {
mesheses2 = []
mesheses2.push(oldMeshOther)
}
for (var i = 0; i < mesheses2.length; i++) {
try {
h2.removeMesh(mesheses2[i])
} catch (error) {
// alert(error)
}
}
}
oldMeshOther = transformNodex
// transformNodex.addBehavior(drag);
var mesheses3 = null
if (transformNodex.getClassName() === 'Mesh') {
mesheses3 = []
mesheses3.push(transformNodex)
}
for (let i = 0; i < mesheses3.length; i++) {
try {
h2.addMesh(mesheses3[i], color)
} catch (error) {
// alert(error)
}
}
// clickbegin = false
isRotating = false
camera.useAutoRotationBehavior = isRotating
// }
}
)
)
// 移出事件
mesheses[i].actionManager.registerAction(
new BABYLON.ExecuteCodeAction({
trigger: BABYLON.ActionManager.OnPointerOutTrigger,
parameter: ''
},
function() {
// clickbegin = true
// if (true) {
var mesheses4 = null
if (transformNodex.getClassName() === 'Mesh') {
mesheses4 = []
mesheses4.push(transformNodex)
}
for (var i = 0; i < mesheses4.length; i++) {
try {
h2.removeMesh(mesheses4[i])
} catch (error) {
// alert(error)
}
}
// clickbegin = false
isRotating = true
camera.useAutoRotationBehavior = isRotating
// }
}
)
)
mesheses[i].actionManager.registerAction(
new BABYLON.ExecuteCodeAction({
trigger: BABYLON.ActionManager.OnPickTrigger,
parameter: ''
},
function() {
// clickbegin = true
// if (true) {
try {
// quClick(transformNodex.name)
cameraClick(transformNodex)
} catch (error) {
// alert(error)
}
// clickbegin = false
// }
}
)
)
}
}
// 绑功能点
// var cl = new BABYLON.Color3(0, 0, 1)
// var smokeAlarms = []
// scene.transformNodes.forEach(function(node) {
// if (node.name.startsWith('smokealarm')) {
// smokeAlarms.push(node)
// }
// })
// var length = smokeAlarms.length
// console.log('以 smokealarm 开头的对象数量:', length)
// smokeAlarms.forEach(function(jk01) {
// var parts = jk01.name.split('.')
// if (parts.length > 1) {
// jk01.nameID = 'S' + parts[1]
// } else {
// jk01.nameID = 'S000'
// }
// jk01.baojing = false
// prepareGroupButton2(jk01, cl)
// })
// 存储所有 camera 相关的 Mesh
const cameraMeshes = []
scene.meshes.forEach(mesh => {
if (mesh.name.startsWith('camera')) {
cameraMeshes.push(mesh)
}
})
const cameraCount = cameraMeshes.length
console.log('以 camera 开头的 Mesh 数量:', cameraCount)
// 定义颜色
// const colorRed = new BABYLON.Color3(1, 0, 0) // 红
const colorBlue = new BABYLON.Color3(0, 0, 1)
cameraMeshes.forEach((cam, index) => {
const paddedIndex = String(index + 1).padStart(3, '0')
cam.nameID = `C${paddedIndex}`
prepareGroupButton2ByMesh(cam, colorBlue, '摄像头1')
})
var light = new BABYLON.HemisphericLight('HemiLight', new BABYLON.Vector3(0, 1, 0), scene)
light.intensity = 2
light.diffuse = new BABYLON.Color3(0.92, 0.92, 0.92)
}
BABYLON.DracoCompression.Configuration.decoder.wasmUrl = './js/draco_wasm_wrapper_gltf.js'
BABYLON.DracoCompression.Configuration.decoder.wasmBinaryUrl = './js/draco_decoder_gltf.wasm'
BABYLON.DracoCompression.Configuration.decoder.fallbackUrl = './js/draco_decoder_gltf.js'
// createScene function that creates and return the scene
var createScene = function() {
engine.displayLoadingUI()
var scene = new BABYLON.Scene(engine)
camera = new BABYLON.ArcRotateCamera('Camera', 0, 0, 5, new BABYLON.Vector3(0, -1, 0), scene)
camera.setTarget(new BABYLON.Vector3(0, -9, 0))
camera.attachControl(canvas, true)
camera.lowerRadiusLimit = 60.0 // 这里是最大的位置,值越大,物体越小
camera.upperRadiusLimit = 100
camera.radius = 20.328
camera.alpha = Math.PI * -218.4 / 180
camera.beta = Math.PI * 66 / 180
camera.inertia = 0.1 // 缩放的快慢
camera.useAutoRotationBehavior = isRotating // 自动旋转
camera.panningDistanceLimit = 2 // 平移半径
camera.panningInertia = 0
camera.autoTransitionRange = 1
camera.pinchToPanMaxDistance = 0.1
camera.pinchDeltaPercentage = 0.001
camera.useAutoRotationBehavior = true
// 改变场景背景颜色 - 背景颜色opacity值设为0,达到透明背景的效果
scene.clearColor = new BABYLON.Color4(0, 0, 0, 0)
scene.activeCamera = camera
scene.activeCamera.useInputToRestoreState = true
// var camera1_status = scene.activeCamera.storeState()
var assetsManager = new BABYLON.AssetsManager(scene)
var meshTask = assetsManager.addMeshTask('skull task', '', 'asset/', 'F5.glb')
meshTask.onSuccess = function(task) {
task.loadedMeshes[0].scaling = new BABYLON.Vector3(0.4, 0.4, 0.4)
task.loadedMeshes[0].position = new BABYLON.Vector3(0, 0.35, 0)
}
meshTask.onError = function(task, message, exception) {
console.log(message, exception)
}
var hdrTexture = new BABYLON.CubeTexture.CreateFromPrefilteredData('textures/environmentSpecular.env', scene)
scene.environmentTexture = hdrTexture
var spriteManagerPlayer = new BABYLON.SpriteManager('playerManager', './img/bl9.png', 10, {
width: 100,
height: 100
}, scene)
// spriteManagerPlayer.renderingGroupId = 2;
spriteManagerPlayer.isPickable = true
scene.onPointerDown = function(evt) {
var pickResult = scene.pickSprite(this.pointerX, this.pointerY)
var pick = scene.pick(scene.pointerX, scene.pointerY)
console.log('pick', pick.pickedPoint)
if (pickResult.pickedSprite != null) {
if (pickResult.hit) {
alert(pickResult.pickedSprite.name)
}
}
}
// renderCanvas.style.backgroundImage = 'url("./textures/' + '4' + '.jpg")'
// console.log("x2");
assetsManager.load()
drag = new BABYLON.PointerDragBehavior({
dragPlaneNormal: new BABYLON.Vector3(0, 0, 1)
})
// drag.useObjectOrienationForDragging = false;
drag.validateDrag = (targetPosition) => {
// console.log(targetPosition)
if (targetPosition.x > 10.5 || targetPosition.x < -10.5) {
return false
}
if (targetPosition.z > 10.5 || targetPosition.z < -10.5) {
return false
}
if (oldtransformNodex != null) {
return true
}
}
drag.onDragEndObservable.add((event) => {
// console.log("dragEnd");
// console.log(event);
// console.log(line03_position)
})
// console.log("x3");
// GUI
h1 = new BABYLON.HighlightLayer('hl1', scene)
h2 = new BABYLON.HighlightLayer('hl2', scene)
h3 = new BABYLON.HighlightLayer('hl2', scene)
var step = 0.1
var currentx = 1
// var step2 = 0.1
// var currentx2 = 0.1
h1.blurHorizontalSize = 0.1
// var showx = 0
// var showx2 = 2
// console.log("x4");
scene.registerAfterRender(() => {
h1.blurHorizontalSize = h1.blurVerticalSize + currentx
var nodealert = scene.getTransformNodeByName('yan')
if (nodealert != null) {
var mesheses3 = null
if (nodealert.getClassName() === 'TransformNode') {
mesheses3 = nodealert.getChildMeshes(false)
} else {
mesheses3 = []
mesheses3.push(nodealert)
}
for (var i = 0; i < mesheses3.length; i++) {
try {
if (nodealert.baojing === true) {
h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0))
} else {
h3.removeMesh(mesheses3[i])
}
} catch (error) {
// alert(error)
}
}
}
})
if (currentx > 0.5) {
step *= -1
}
if (currentx < 0) {
step *= -1
}
currentx += step
// console.log("here");
return scene
}
var canvas = document.getElementById('renderCanvas')
// load the 3D engine
var engine = new BABYLON.Engine(canvas, true, {
stencil: true
})
// call the createScene function
var scene = createScene()
scene.autoClear = true
scene.imageProcessingConfiguration.exposure = 1
scene.imageProcessingConfiguration.contrast = 1
scene.environmentIntensity = 0.4
engine.runRenderLoop(function() {
scene.render()
})
window.addEventListener('resize', function() {
engine.resize()
})
// 功能:点区以后跳转到新页
// quName :转过来的区号
// function quClick(quName) {
// if (quName === '现行w文件室内') {
// window.location.href = 'http://ikki2000.gitee.io/101/webA/index.html'
// }
// if (quName === '待销文件室') {
// window.location.href = 'http://ikki2000.gitee.io/101/webB/index.html'
// }
// }
// 功能:点camera后事件
// function cameraClick(camera) {
// alert(camera.nameID)
// }
function cameraClick(TheCamera) {
window.parent.postMessage(
{
data: TheCamera.nameID
},
'*'
)
}
function HashMap() {
// 定义长度
var length = 0
// 创建一个对象
var obj = {}
// 判断Map是否为空
this.isEmpty = function() {
return length === 0
}
// 判断对象中是否包含给定Key
this.containsKey = function(key) {
return (key in obj)
}
// 判断对象中是否包含给定的Value
this.containsValue = function(value) {
for (var key in obj) {
if (obj[key] === value) {
return true
}
}
return false
}
// 向map中添加数据
this.put = function(key, value) {
if (!this.containsKey(key)) {
length++
}
obj[key] = value
}
// 根据给定的key获取Value
this.get = function(key) {
return this.containsKey(key) ? obj[key] : null
}
// 根据给定的Key删除一个值
this.remove = function(key) {
if (this.containsKey(key) && (delete obj[key])) {
length--
}
}
// 获得Map中所有的value
this.values = function() {
var _values = []
for (var key in obj) {
_values.push(obj[key])
}
return _values
}
// 获得Map中的所有key
this.keySet = function() {
var _keys = []
for (var key in obj) {
_keys.push(key)
}
return _keys
}
// 获得Map的长度
this.size = function() {
return length
}
// 清空Map
this.clear = function() {
length = 0
obj = {}
}
}
var yangans = new HashMap()
yangans.put('CAM_000', 'yan')
// console.log("here2");
// yangans.put('DAK_MO_CAM_002', 'camera02');
// yangans.put('DAK_MO_CAM_003', 'camera03');
// yangans.put('DAK_MO_CAM_004', 'camera04');
// yangans.put('ZLS_MO_CAM_001', 'camera05');
// yangans.put('ZLS_MO_CAM_002', 'camera06');
// yangans.put('YLS_MO_CAM_001', 'camera07');
// yangans.put('YLS_MO_CAM_002', 'camera08');
// yangans.put('ZL_MO_CAM_001', 'camera09');
// 功能转入报警
// function Myalert(MathineID, baojingx) {
// var theName = yangans.get(MathineID)
// if (theName === 'yan') {
// // console.log(scene);
// xx = scene.getTransformNodeByName('yan').baojing = baojingx
// }
// }
// scene.debugLayer.show();
// 报警 true:表示报警, false :表示不报警
// Myalert("CAM_000",true)

0
public/webTotal/js/babylon.gui.min.js → public/webThird/js/babylon.gui.min.js

0
public/webTotal/js/babylon.js → public/webThird/js/babylon.js

0
public/webTotal/js/babylonjs.loaders.min.js → public/webThird/js/babylonjs.loaders.min.js

2061
public/webThird/js/bootstrap-slider.js
File diff suppressed because it is too large
View File

52
public/webThird/js/draco_decoder.js
File diff suppressed because it is too large
View File

BIN
public/webThird/js/draco_decoder.wasm

48
public/webThird/js/draco_decoder_gltf.js
File diff suppressed because it is too large
View File

BIN
public/webThird/js/draco_decoder_gltf.wasm

52
public/webThird/js/draco_encoder.js
File diff suppressed because it is too large
View File

104
public/webThird/js/draco_wasm_wrapper.js

@ -0,0 +1,104 @@
var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.arrayIteratorImpl=function(f){var m=0;return function(){return m<f.length?{done:!1,value:f[m++]}:{done:!0}}};$jscomp.arrayIterator=function(f){return{next:$jscomp.arrayIteratorImpl(f)}};$jscomp.makeIterator=function(f){var m="undefined"!=typeof Symbol&&Symbol.iterator&&f[Symbol.iterator];return m?m.call(f):$jscomp.arrayIterator(f)};
$jscomp.getGlobal=function(f){return"undefined"!=typeof window&&window===f?f:"undefined"!=typeof global&&null!=global?global:f};$jscomp.global=$jscomp.getGlobal(this);$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(f,m,v){f!=Array.prototype&&f!=Object.prototype&&(f[m]=v.value)};
$jscomp.polyfill=function(f,m,v,t){if(m){v=$jscomp.global;f=f.split(".");for(t=0;t<f.length-1;t++){var h=f[t];h in v||(v[h]={});v=v[h]}f=f[f.length-1];t=v[f];m=m(t);m!=t&&null!=m&&$jscomp.defineProperty(v,f,{configurable:!0,writable:!0,value:m})}};$jscomp.FORCE_POLYFILL_PROMISE=!1;
$jscomp.polyfill("Promise",function(f){function m(){this.batch_=null}function v(e){return e instanceof h?e:new h(function(l,f){l(e)})}if(f&&!$jscomp.FORCE_POLYFILL_PROMISE)return f;m.prototype.asyncExecute=function(e){if(null==this.batch_){this.batch_=[];var l=this;this.asyncExecuteFunction(function(){l.executeBatch_()})}this.batch_.push(e)};var t=$jscomp.global.setTimeout;m.prototype.asyncExecuteFunction=function(e){t(e,0)};m.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var e=
this.batch_;this.batch_=[];for(var l=0;l<e.length;++l){var f=e[l];e[l]=null;try{f()}catch(z){this.asyncThrow_(z)}}}this.batch_=null};m.prototype.asyncThrow_=function(e){this.asyncExecuteFunction(function(){throw e;})};var h=function(e){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];var l=this.createResolveAndReject_();try{e(l.resolve,l.reject)}catch(S){l.reject(S)}};h.prototype.createResolveAndReject_=function(){function e(e){return function(h){f||(f=!0,e.call(l,h))}}var l=this,f=!1;
return{resolve:e(this.resolveTo_),reject:e(this.reject_)}};h.prototype.resolveTo_=function(e){if(e===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(e instanceof h)this.settleSameAsPromise_(e);else{a:switch(typeof e){case "object":var l=null!=e;break a;case "function":l=!0;break a;default:l=!1}l?this.resolveToNonPromiseObj_(e):this.fulfill_(e)}};h.prototype.resolveToNonPromiseObj_=function(e){var l=void 0;try{l=e.then}catch(S){this.reject_(S);return}"function"==typeof l?
this.settleSameAsThenable_(l,e):this.fulfill_(e)};h.prototype.reject_=function(e){this.settle_(2,e)};h.prototype.fulfill_=function(e){this.settle_(1,e)};h.prototype.settle_=function(e,l){if(0!=this.state_)throw Error("Cannot settle("+e+", "+l+"): Promise already settled in state"+this.state_);this.state_=e;this.result_=l;this.executeOnSettledCallbacks_()};h.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var e=0;e<this.onSettledCallbacks_.length;++e)X.asyncExecute(this.onSettledCallbacks_[e]);
this.onSettledCallbacks_=null}};var X=new m;h.prototype.settleSameAsPromise_=function(e){var l=this.createResolveAndReject_();e.callWhenSettled_(l.resolve,l.reject)};h.prototype.settleSameAsThenable_=function(e,l){var f=this.createResolveAndReject_();try{e.call(l,f.resolve,f.reject)}catch(z){f.reject(z)}};h.prototype.then=function(e,f){function l(e,f){return"function"==typeof e?function(f){try{m(e(f))}catch(p){v(p)}}:f}var m,v,t=new h(function(e,f){m=e;v=f});this.callWhenSettled_(l(e,m),l(f,v));return t};
h.prototype.catch=function(e){return this.then(void 0,e)};h.prototype.callWhenSettled_=function(e,f){function l(){switch(h.state_){case 1:e(h.result_);break;case 2:f(h.result_);break;default:throw Error("Unexpected state: "+h.state_);}}var h=this;null==this.onSettledCallbacks_?X.asyncExecute(l):this.onSettledCallbacks_.push(l)};h.resolve=v;h.reject=function(e){return new h(function(f,h){h(e)})};h.race=function(e){return new h(function(f,h){for(var l=$jscomp.makeIterator(e),m=l.next();!m.done;m=l.next())v(m.value).callWhenSettled_(f,
h)})};h.all=function(e){var f=$jscomp.makeIterator(e),m=f.next();return m.done?v([]):new h(function(e,h){function l(f){return function(h){t[f]=h;z--;0==z&&e(t)}}var t=[],z=0;do t.push(void 0),z++,v(m.value).callWhenSettled_(l(t.length-1),h),m=f.next();while(!m.done)})};return h},"es6","es3");
var DracoDecoderModule=function(){var f="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(f=f||__filename);return function(m){function v(k){return a.locateFile?a.locateFile(k,M):M+k}function t(a,c){a||z("Assertion failed: "+c)}function h(a,c,b){var d=c+b;for(b=c;a[b]&&!(b>=d);)++b;if(16<b-c&&a.subarray&&xa)return xa.decode(a.subarray(c,b));for(d="";c<b;){var k=a[c++];if(k&128){var e=a[c++]&63;if(192==(k&224))d+=String.fromCharCode((k&
31)<<6|e);else{var f=a[c++]&63;k=224==(k&240)?(k&15)<<12|e<<6|f:(k&7)<<18|e<<12|f<<6|a[c++]&63;65536>k?d+=String.fromCharCode(k):(k-=65536,d+=String.fromCharCode(55296|k>>10,56320|k&1023))}}else d+=String.fromCharCode(k)}return d}function X(a,c){return a?h(ca,a,c):""}function e(a,c){0<a%c&&(a+=c-a%c);return a}function l(k){ka=k;a.HEAP8=T=new Int8Array(k);a.HEAP16=new Int16Array(k);a.HEAP32=P=new Int32Array(k);a.HEAPU8=ca=new Uint8Array(k);a.HEAPU16=new Uint16Array(k);a.HEAPU32=new Uint32Array(k);
a.HEAPF32=new Float32Array(k);a.HEAPF64=new Float64Array(k)}function S(k){for(;0<k.length;){var c=k.shift();if("function"==typeof c)c();else{var b=c.func;"number"===typeof b?void 0===c.arg?a.dynCall_v(b):a.dynCall_vi(b,c.arg):b(void 0===c.arg?null:c.arg)}}}function z(k){if(a.onAbort)a.onAbort(k);k+="";ya(k);Y(k);za=!0;throw new WebAssembly.RuntimeError("abort("+k+"). Build with -s ASSERTIONS=1 for more info.");}function va(a){return String.prototype.startsWith?a.startsWith("data:application/octet-stream;base64,"):
0===a.indexOf("data:application/octet-stream;base64,")}function wa(){try{if(da)return new Uint8Array(da);if(la)return la(U);throw"both async and sync fetching of the wasm failed";}catch(k){z(k)}}function Ma(){return da||!ea&&!Z||"function"!==typeof fetch?new Promise(function(a,c){a(wa())}):fetch(U,{credentials:"same-origin"}).then(function(a){if(!a.ok)throw"failed to load wasm binary file at '"+U+"'";return a.arrayBuffer()}).catch(function(){return wa()})}function ba(){if(!ba.strings){var a={USER:"web_user",
LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"===typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:na},c;for(c in Aa)a[c]=Aa[c];var b=[];for(c in a)b.push(c+"="+a[c]);ba.strings=b}return ba.strings}function ma(k){function c(){if(!fa&&(fa=!0,!za)){Ba=!0;S(Ca);S(Da);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)Ea.unshift(a.postRun.shift());
S(Ea)}}if(!(0<aa)){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)Fa.unshift(a.preRun.shift());S(Fa);0<aa||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1);c()},1)):c())}}function p(){}function u(a){return(a||p).__cache__}function N(a,c){var b=u(c),d=b[a];if(d)return d;d=Object.create((c||p).prototype);d.ptr=a;return b[a]=d}function V(a){if("string"===typeof a){for(var c=0,b=0;b<a.length;++b){var d=a.charCodeAt(b);
55296<=d&&57343>=d&&(d=65536+((d&1023)<<10)|a.charCodeAt(++b)&1023);127>=d?++c:c=2047>=d?c+2:65535>=d?c+3:c+4}c=Array(c+1);b=0;d=c.length;if(0<d){d=b+d-1;for(var k=0;k<a.length;++k){var e=a.charCodeAt(k);if(55296<=e&&57343>=e){var f=a.charCodeAt(++k);e=65536+((e&1023)<<10)|f&1023}if(127>=e){if(b>=d)break;c[b++]=e}else{if(2047>=e){if(b+1>=d)break;c[b++]=192|e>>6}else{if(65535>=e){if(b+2>=d)break;c[b++]=224|e>>12}else{if(b+3>=d)break;c[b++]=240|e>>18;c[b++]=128|e>>12&63}c[b++]=128|e>>6&63}c[b++]=128|
e&63}}c[b]=0}a=n.alloc(c,T);n.copy(c,T,a)}return a}function x(){throw"cannot construct a Status, no constructor in IDL";}function A(){this.ptr=Oa();u(A)[this.ptr]=this}function B(){this.ptr=Pa();u(B)[this.ptr]=this}function C(){this.ptr=Qa();u(C)[this.ptr]=this}function D(){this.ptr=Ra();u(D)[this.ptr]=this}function E(){this.ptr=Sa();u(E)[this.ptr]=this}function q(){this.ptr=Ta();u(q)[this.ptr]=this}function J(){this.ptr=Ua();u(J)[this.ptr]=this}function w(){this.ptr=Va();u(w)[this.ptr]=this}function F(){this.ptr=
Wa();u(F)[this.ptr]=this}function r(){this.ptr=Xa();u(r)[this.ptr]=this}function G(){this.ptr=Ya();u(G)[this.ptr]=this}function H(){this.ptr=Za();u(H)[this.ptr]=this}function O(){this.ptr=$a();u(O)[this.ptr]=this}function K(){this.ptr=ab();u(K)[this.ptr]=this}function g(){this.ptr=bb();u(g)[this.ptr]=this}function y(){this.ptr=cb();u(y)[this.ptr]=this}function Q(){throw"cannot construct a VoidPtr, no constructor in IDL";}function I(){this.ptr=db();u(I)[this.ptr]=this}function L(){this.ptr=eb();u(L)[this.ptr]=
this}m=m||{};var a="undefined"!==typeof m?m:{},Ga=!1,Ha=!1;a.onRuntimeInitialized=function(){Ga=!0;if(Ha&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Ha=!0;if(Ga&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(a){if("string"!==typeof a)return!1;a=a.split(".");return 2>a.length||3<a.length?!1:1==a[0]&&0<=a[1]&&3>=a[1]?!0:0!=a[0]||10<a[1]?!1:!0};var ha={},W;for(W in a)a.hasOwnProperty(W)&&(ha[W]=a[W]);var na="./this.program",
ea=!1,Z=!1,oa=!1,fb=!1,Ia=!1;ea="object"===typeof window;Z="function"===typeof importScripts;oa=(fb="object"===typeof process&&"object"===typeof process.versions&&"string"===typeof process.versions.node)&&!ea&&!Z;Ia=!ea&&!oa&&!Z;var M="",pa,qa;if(oa){M=__dirname+"/";var ra=function(a,c){pa||(pa=require("fs"));qa||(qa=require("path"));a=qa.normalize(a);return pa.readFileSync(a,c?null:"utf8")};var la=function(a){a=ra(a,!0);a.buffer||(a=new Uint8Array(a));t(a.buffer);return a};1<process.argv.length&&
(na=process.argv[1].replace(/\\/g,"/"));process.argv.slice(2);process.on("uncaughtException",function(a){throw a;});process.on("unhandledRejection",z);a.inspect=function(){return"[Emscripten Module object]"}}else if(Ia)"undefined"!=typeof read&&(ra=function(a){return read(a)}),la=function(a){if("function"===typeof readbuffer)return new Uint8Array(readbuffer(a));a=read(a,"binary");t("object"===typeof a);return a},"undefined"!==typeof print&&("undefined"===typeof console&&(console={}),console.log=print,
console.warn=console.error="undefined"!==typeof printErr?printErr:print);else if(ea||Z)Z?M=self.location.href:document.currentScript&&(M=document.currentScript.src),f&&(M=f),M=0!==M.indexOf("blob:")?M.substr(0,M.lastIndexOf("/")+1):"",ra=function(a){var c=new XMLHttpRequest;c.open("GET",a,!1);c.send(null);return c.responseText},Z&&(la=function(a){var c=new XMLHttpRequest;c.open("GET",a,!1);c.responseType="arraybuffer";c.send(null);return new Uint8Array(c.response)});var ya=a.print||console.log.bind(console),
Y=a.printErr||console.warn.bind(console);for(W in ha)ha.hasOwnProperty(W)&&(a[W]=ha[W]);ha=null;a.thisProgram&&(na=a.thisProgram);var da;a.wasmBinary&&(da=a.wasmBinary);"object"!==typeof WebAssembly&&Y("no native wasm support detected");var ia,gb=new WebAssembly.Table({initial:381,maximum:381,element:"anyfunc"}),za=!1,xa="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");var T,ca,P,Ja=a.TOTAL_MEMORY||16777216;if(ia=a.wasmMemory?
a.wasmMemory:new WebAssembly.Memory({initial:Ja/65536}))var ka=ia.buffer;Ja=ka.byteLength;l(ka);P[4604]=5261456;var Fa=[],Ca=[],Da=[],Ea=[],Ba=!1,aa=0,sa=null,ja=null;a.preloadedImages={};a.preloadedAudios={};var U="draco_decoder.wasm";va(U)||(U=v(U));Ca.push({func:function(){hb()}});var Aa={},R={buffers:[null,[],[]],printChar:function(a,c){var b=R.buffers[a];0===c||10===c?((1===a?ya:Y)(h(b,0)),b.length=0):b.push(c)},varargs:0,get:function(a){R.varargs+=4;return P[R.varargs-4>>2]},getStr:function(){return X(R.get())},
get64:function(){var a=R.get();R.get();return a},getZero:function(){R.get()}},Ka={__cxa_allocate_exception:function(a){return ib(a)},__cxa_throw:function(a,c,b){"uncaught_exception"in ta?ta.uncaught_exceptions++:ta.uncaught_exceptions=1;throw a;},abort:function(){z()},emscripten_get_sbrk_ptr:function(){return 18416},emscripten_memcpy_big:function(a,c,b){ca.set(ca.subarray(c,c+b),a)},emscripten_resize_heap:function(a){if(2147418112<a)return!1;for(var c=Math.max(T.length,16777216);c<a;)c=536870912>=
c?e(2*c,65536):Math.min(e((3*c+2147483648)/4,65536),2147418112);a:{try{ia.grow(c-ka.byteLength+65535>>16);l(ia.buffer);var b=1;break a}catch(d){}b=void 0}return b?!0:!1},environ_get:function(a,c){var b=0;ba().forEach(function(d,e){var f=c+b;e=P[a+4*e>>2]=f;for(f=0;f<d.length;++f)T[e++>>0]=d.charCodeAt(f);T[e>>0]=0;b+=d.length+1});return 0},environ_sizes_get:function(a,c){var b=ba();P[a>>2]=b.length;var d=0;b.forEach(function(a){d+=a.length+1});P[c>>2]=d;return 0},fd_close:function(a){return 0},fd_seek:function(a,
c,b,d,e){return 0},fd_write:function(a,c,b,d){try{for(var e=0,f=0;f<b;f++){for(var g=P[c+8*f>>2],k=P[c+(8*f+4)>>2],h=0;h<k;h++)R.printChar(a,ca[g+h]);e+=k}P[d>>2]=e;return 0}catch(ua){return"undefined"!==typeof FS&&ua instanceof FS.ErrnoError||z(ua),ua.errno}},memory:ia,setTempRet0:function(a){},table:gb},La=function(){function e(c,b){a.asm=c.exports;aa--;a.monitorRunDependencies&&a.monitorRunDependencies(aa);0==aa&&(null!==sa&&(clearInterval(sa),sa=null),ja&&(c=ja,ja=null,c()))}function c(a){e(a.instance)}
function b(a){return Ma().then(function(a){return WebAssembly.instantiate(a,d)}).then(a,function(a){Y("failed to asynchronously prepare wasm: "+a);z(a)})}var d={env:Ka,wasi_unstable:Ka};aa++;a.monitorRunDependencies&&a.monitorRunDependencies(aa);if(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(Na){return Y("Module.instantiateWasm callback failed with error: "+Na),!1}(function(){if(da||"function"!==typeof WebAssembly.instantiateStreaming||va(U)||"function"!==typeof fetch)return b(c);fetch(U,
{credentials:"same-origin"}).then(function(a){return WebAssembly.instantiateStreaming(a,d).then(c,function(a){Y("wasm streaming compile failed: "+a);Y("falling back to ArrayBuffer instantiation");b(c)})})})();return{}}();a.asm=La;var hb=a.___wasm_call_ctors=function(){return a.asm.__wasm_call_ctors.apply(null,arguments)},jb=a._emscripten_bind_Status_code_0=function(){return a.asm.emscripten_bind_Status_code_0.apply(null,arguments)},kb=a._emscripten_bind_Status_ok_0=function(){return a.asm.emscripten_bind_Status_ok_0.apply(null,
arguments)},lb=a._emscripten_bind_Status_error_msg_0=function(){return a.asm.emscripten_bind_Status_error_msg_0.apply(null,arguments)},mb=a._emscripten_bind_Status___destroy___0=function(){return a.asm.emscripten_bind_Status___destroy___0.apply(null,arguments)},Oa=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return a.asm.emscripten_bind_DracoUInt16Array_DracoUInt16Array_0.apply(null,arguments)},nb=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return a.asm.emscripten_bind_DracoUInt16Array_GetValue_1.apply(null,
arguments)},ob=a._emscripten_bind_DracoUInt16Array_size_0=function(){return a.asm.emscripten_bind_DracoUInt16Array_size_0.apply(null,arguments)},pb=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return a.asm.emscripten_bind_DracoUInt16Array___destroy___0.apply(null,arguments)},Pa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return a.asm.emscripten_bind_PointCloud_PointCloud_0.apply(null,arguments)},qb=a._emscripten_bind_PointCloud_num_attributes_0=function(){return a.asm.emscripten_bind_PointCloud_num_attributes_0.apply(null,
arguments)},rb=a._emscripten_bind_PointCloud_num_points_0=function(){return a.asm.emscripten_bind_PointCloud_num_points_0.apply(null,arguments)},sb=a._emscripten_bind_PointCloud___destroy___0=function(){return a.asm.emscripten_bind_PointCloud___destroy___0.apply(null,arguments)},Qa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return a.asm.emscripten_bind_DracoUInt8Array_DracoUInt8Array_0.apply(null,arguments)},tb=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return a.asm.emscripten_bind_DracoUInt8Array_GetValue_1.apply(null,
arguments)},ub=a._emscripten_bind_DracoUInt8Array_size_0=function(){return a.asm.emscripten_bind_DracoUInt8Array_size_0.apply(null,arguments)},vb=a._emscripten_bind_DracoUInt8Array___destroy___0=function(){return a.asm.emscripten_bind_DracoUInt8Array___destroy___0.apply(null,arguments)},Ra=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return a.asm.emscripten_bind_DracoUInt32Array_DracoUInt32Array_0.apply(null,arguments)},wb=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return a.asm.emscripten_bind_DracoUInt32Array_GetValue_1.apply(null,
arguments)},xb=a._emscripten_bind_DracoUInt32Array_size_0=function(){return a.asm.emscripten_bind_DracoUInt32Array_size_0.apply(null,arguments)},yb=a._emscripten_bind_DracoUInt32Array___destroy___0=function(){return a.asm.emscripten_bind_DracoUInt32Array___destroy___0.apply(null,arguments)},Sa=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return a.asm.emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0.apply(null,arguments)},zb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=
function(){return a.asm.emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1.apply(null,arguments)},Ab=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return a.asm.emscripten_bind_AttributeOctahedronTransform_quantization_bits_0.apply(null,arguments)},Bb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return a.asm.emscripten_bind_AttributeOctahedronTransform___destroy___0.apply(null,arguments)},Ta=a._emscripten_bind_PointAttribute_PointAttribute_0=
function(){return a.asm.emscripten_bind_PointAttribute_PointAttribute_0.apply(null,arguments)},Cb=a._emscripten_bind_PointAttribute_size_0=function(){return a.asm.emscripten_bind_PointAttribute_size_0.apply(null,arguments)},Db=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return a.asm.emscripten_bind_PointAttribute_GetAttributeTransformData_0.apply(null,arguments)},Eb=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return a.asm.emscripten_bind_PointAttribute_attribute_type_0.apply(null,
arguments)},Fb=a._emscripten_bind_PointAttribute_data_type_0=function(){return a.asm.emscripten_bind_PointAttribute_data_type_0.apply(null,arguments)},Gb=a._emscripten_bind_PointAttribute_num_components_0=function(){return a.asm.emscripten_bind_PointAttribute_num_components_0.apply(null,arguments)},Hb=a._emscripten_bind_PointAttribute_normalized_0=function(){return a.asm.emscripten_bind_PointAttribute_normalized_0.apply(null,arguments)},Ib=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return a.asm.emscripten_bind_PointAttribute_byte_stride_0.apply(null,
arguments)},Jb=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return a.asm.emscripten_bind_PointAttribute_byte_offset_0.apply(null,arguments)},Kb=a._emscripten_bind_PointAttribute_unique_id_0=function(){return a.asm.emscripten_bind_PointAttribute_unique_id_0.apply(null,arguments)},Lb=a._emscripten_bind_PointAttribute___destroy___0=function(){return a.asm.emscripten_bind_PointAttribute___destroy___0.apply(null,arguments)},Ua=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=
function(){return a.asm.emscripten_bind_AttributeTransformData_AttributeTransformData_0.apply(null,arguments)},Mb=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return a.asm.emscripten_bind_AttributeTransformData_transform_type_0.apply(null,arguments)},Nb=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return a.asm.emscripten_bind_AttributeTransformData___destroy___0.apply(null,arguments)},Va=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=
function(){return a.asm.emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0.apply(null,arguments)},Ob=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return a.asm.emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1.apply(null,arguments)},Pb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return a.asm.emscripten_bind_AttributeQuantizationTransform_quantization_bits_0.apply(null,arguments)},
Qb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return a.asm.emscripten_bind_AttributeQuantizationTransform_min_value_1.apply(null,arguments)},Rb=a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return a.asm.emscripten_bind_AttributeQuantizationTransform_range_0.apply(null,arguments)},Sb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return a.asm.emscripten_bind_AttributeQuantizationTransform___destroy___0.apply(null,arguments)},
Wa=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return a.asm.emscripten_bind_DracoInt8Array_DracoInt8Array_0.apply(null,arguments)},Tb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return a.asm.emscripten_bind_DracoInt8Array_GetValue_1.apply(null,arguments)},Ub=a._emscripten_bind_DracoInt8Array_size_0=function(){return a.asm.emscripten_bind_DracoInt8Array_size_0.apply(null,arguments)},Vb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return a.asm.emscripten_bind_DracoInt8Array___destroy___0.apply(null,
arguments)},Xa=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return a.asm.emscripten_bind_MetadataQuerier_MetadataQuerier_0.apply(null,arguments)},Wb=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return a.asm.emscripten_bind_MetadataQuerier_HasEntry_2.apply(null,arguments)},Xb=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return a.asm.emscripten_bind_MetadataQuerier_GetIntEntry_2.apply(null,arguments)},Yb=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=
function(){return a.asm.emscripten_bind_MetadataQuerier_GetIntEntryArray_3.apply(null,arguments)},Zb=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return a.asm.emscripten_bind_MetadataQuerier_GetDoubleEntry_2.apply(null,arguments)},$b=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return a.asm.emscripten_bind_MetadataQuerier_GetStringEntry_2.apply(null,arguments)},ac=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return a.asm.emscripten_bind_MetadataQuerier_NumEntries_1.apply(null,
arguments)},bc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return a.asm.emscripten_bind_MetadataQuerier_GetEntryName_2.apply(null,arguments)},cc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return a.asm.emscripten_bind_MetadataQuerier___destroy___0.apply(null,arguments)},Ya=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return a.asm.emscripten_bind_DracoInt16Array_DracoInt16Array_0.apply(null,arguments)},dc=a._emscripten_bind_DracoInt16Array_GetValue_1=
function(){return a.asm.emscripten_bind_DracoInt16Array_GetValue_1.apply(null,arguments)},ec=a._emscripten_bind_DracoInt16Array_size_0=function(){return a.asm.emscripten_bind_DracoInt16Array_size_0.apply(null,arguments)},fc=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return a.asm.emscripten_bind_DracoInt16Array___destroy___0.apply(null,arguments)},Za=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return a.asm.emscripten_bind_DracoFloat32Array_DracoFloat32Array_0.apply(null,
arguments)},gc=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return a.asm.emscripten_bind_DracoFloat32Array_GetValue_1.apply(null,arguments)},hc=a._emscripten_bind_DracoFloat32Array_size_0=function(){return a.asm.emscripten_bind_DracoFloat32Array_size_0.apply(null,arguments)},ic=a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return a.asm.emscripten_bind_DracoFloat32Array___destroy___0.apply(null,arguments)},$a=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return a.asm.emscripten_bind_GeometryAttribute_GeometryAttribute_0.apply(null,
arguments)},jc=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return a.asm.emscripten_bind_GeometryAttribute___destroy___0.apply(null,arguments)},ab=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return a.asm.emscripten_bind_DecoderBuffer_DecoderBuffer_0.apply(null,arguments)},kc=a._emscripten_bind_DecoderBuffer_Init_2=function(){return a.asm.emscripten_bind_DecoderBuffer_Init_2.apply(null,arguments)},lc=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return a.asm.emscripten_bind_DecoderBuffer___destroy___0.apply(null,
arguments)},bb=a._emscripten_bind_Decoder_Decoder_0=function(){return a.asm.emscripten_bind_Decoder_Decoder_0.apply(null,arguments)},mc=a._emscripten_bind_Decoder_GetEncodedGeometryType_1=function(){return a.asm.emscripten_bind_Decoder_GetEncodedGeometryType_1.apply(null,arguments)},nc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=function(){return a.asm.emscripten_bind_Decoder_DecodeBufferToPointCloud_2.apply(null,arguments)},oc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return a.asm.emscripten_bind_Decoder_DecodeBufferToMesh_2.apply(null,
arguments)},pc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return a.asm.emscripten_bind_Decoder_GetAttributeId_2.apply(null,arguments)},qc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return a.asm.emscripten_bind_Decoder_GetAttributeIdByName_2.apply(null,arguments)},rc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return a.asm.emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3.apply(null,arguments)},sc=a._emscripten_bind_Decoder_GetAttribute_2=
function(){return a.asm.emscripten_bind_Decoder_GetAttribute_2.apply(null,arguments)},tc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return a.asm.emscripten_bind_Decoder_GetAttributeByUniqueId_2.apply(null,arguments)},uc=a._emscripten_bind_Decoder_GetMetadata_1=function(){return a.asm.emscripten_bind_Decoder_GetMetadata_1.apply(null,arguments)},vc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return a.asm.emscripten_bind_Decoder_GetAttributeMetadata_2.apply(null,
arguments)},wc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return a.asm.emscripten_bind_Decoder_GetFaceFromMesh_3.apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=function(){return a.asm.emscripten_bind_Decoder_GetTriangleStripsFromMesh_2.apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return a.asm.emscripten_bind_Decoder_GetTrianglesUInt16Array_3.apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=
function(){return a.asm.emscripten_bind_Decoder_GetTrianglesUInt32Array_3.apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return a.asm.emscripten_bind_Decoder_GetAttributeFloat_3.apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return a.asm.emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3.apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return a.asm.emscripten_bind_Decoder_GetAttributeIntForAllPoints_3.apply(null,
arguments)},Dc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return a.asm.emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3.apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return a.asm.emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3.apply(null,arguments)},Fc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return a.asm.emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3.apply(null,arguments)},
Gc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=function(){return a.asm.emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3.apply(null,arguments)},Hc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return a.asm.emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3.apply(null,arguments)},Ic=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return a.asm.emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3.apply(null,arguments)},Jc=
a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=function(){return a.asm.emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5.apply(null,arguments)},Kc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return a.asm.emscripten_bind_Decoder_SkipAttributeTransform_1.apply(null,arguments)},Lc=a._emscripten_bind_Decoder___destroy___0=function(){return a.asm.emscripten_bind_Decoder___destroy___0.apply(null,arguments)},cb=a._emscripten_bind_Mesh_Mesh_0=function(){return a.asm.emscripten_bind_Mesh_Mesh_0.apply(null,
arguments)},Mc=a._emscripten_bind_Mesh_num_faces_0=function(){return a.asm.emscripten_bind_Mesh_num_faces_0.apply(null,arguments)},Nc=a._emscripten_bind_Mesh_num_attributes_0=function(){return a.asm.emscripten_bind_Mesh_num_attributes_0.apply(null,arguments)},Oc=a._emscripten_bind_Mesh_num_points_0=function(){return a.asm.emscripten_bind_Mesh_num_points_0.apply(null,arguments)},Pc=a._emscripten_bind_Mesh___destroy___0=function(){return a.asm.emscripten_bind_Mesh___destroy___0.apply(null,arguments)},
Qc=a._emscripten_bind_VoidPtr___destroy___0=function(){return a.asm.emscripten_bind_VoidPtr___destroy___0.apply(null,arguments)},db=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return a.asm.emscripten_bind_DracoInt32Array_DracoInt32Array_0.apply(null,arguments)},Rc=a._emscripten_bind_DracoInt32Array_GetValue_1=function(){return a.asm.emscripten_bind_DracoInt32Array_GetValue_1.apply(null,arguments)},Sc=a._emscripten_bind_DracoInt32Array_size_0=function(){return a.asm.emscripten_bind_DracoInt32Array_size_0.apply(null,
arguments)},Tc=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return a.asm.emscripten_bind_DracoInt32Array___destroy___0.apply(null,arguments)},eb=a._emscripten_bind_Metadata_Metadata_0=function(){return a.asm.emscripten_bind_Metadata_Metadata_0.apply(null,arguments)},Uc=a._emscripten_bind_Metadata___destroy___0=function(){return a.asm.emscripten_bind_Metadata___destroy___0.apply(null,arguments)},Vc=a._emscripten_enum_draco_StatusCode_OK=function(){return a.asm.emscripten_enum_draco_StatusCode_OK.apply(null,
arguments)},Wc=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return a.asm.emscripten_enum_draco_StatusCode_DRACO_ERROR.apply(null,arguments)},Xc=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return a.asm.emscripten_enum_draco_StatusCode_IO_ERROR.apply(null,arguments)},Yc=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return a.asm.emscripten_enum_draco_StatusCode_INVALID_PARAMETER.apply(null,arguments)},Zc=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=
function(){return a.asm.emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION.apply(null,arguments)},$c=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return a.asm.emscripten_enum_draco_StatusCode_UNKNOWN_VERSION.apply(null,arguments)},ad=a._emscripten_enum_draco_DataType_DT_INVALID=function(){return a.asm.emscripten_enum_draco_DataType_DT_INVALID.apply(null,arguments)},bd=a._emscripten_enum_draco_DataType_DT_INT8=function(){return a.asm.emscripten_enum_draco_DataType_DT_INT8.apply(null,
arguments)},cd=a._emscripten_enum_draco_DataType_DT_UINT8=function(){return a.asm.emscripten_enum_draco_DataType_DT_UINT8.apply(null,arguments)},dd=a._emscripten_enum_draco_DataType_DT_INT16=function(){return a.asm.emscripten_enum_draco_DataType_DT_INT16.apply(null,arguments)},ed=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return a.asm.emscripten_enum_draco_DataType_DT_UINT16.apply(null,arguments)},fd=a._emscripten_enum_draco_DataType_DT_INT32=function(){return a.asm.emscripten_enum_draco_DataType_DT_INT32.apply(null,
arguments)},gd=a._emscripten_enum_draco_DataType_DT_UINT32=function(){return a.asm.emscripten_enum_draco_DataType_DT_UINT32.apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_INT64=function(){return a.asm.emscripten_enum_draco_DataType_DT_INT64.apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return a.asm.emscripten_enum_draco_DataType_DT_UINT64.apply(null,arguments)},jd=a._emscripten_enum_draco_DataType_DT_FLOAT32=function(){return a.asm.emscripten_enum_draco_DataType_DT_FLOAT32.apply(null,
arguments)},kd=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return a.asm.emscripten_enum_draco_DataType_DT_FLOAT64.apply(null,arguments)},ld=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return a.asm.emscripten_enum_draco_DataType_DT_BOOL.apply(null,arguments)},md=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return a.asm.emscripten_enum_draco_DataType_DT_TYPES_COUNT.apply(null,arguments)},nd=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return a.asm.emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE.apply(null,
arguments)},od=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return a.asm.emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD.apply(null,arguments)},pd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return a.asm.emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH.apply(null,arguments)},qd=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return a.asm.emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM.apply(null,
arguments)},rd=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return a.asm.emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM.apply(null,arguments)},sd=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return a.asm.emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM.apply(null,arguments)},td=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=function(){return a.asm.emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM.apply(null,
arguments)},ud=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return a.asm.emscripten_enum_draco_GeometryAttribute_Type_INVALID.apply(null,arguments)},vd=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return a.asm.emscripten_enum_draco_GeometryAttribute_Type_POSITION.apply(null,arguments)},wd=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return a.asm.emscripten_enum_draco_GeometryAttribute_Type_NORMAL.apply(null,arguments)},xd=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=
function(){return a.asm.emscripten_enum_draco_GeometryAttribute_Type_COLOR.apply(null,arguments)},yd=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return a.asm.emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD.apply(null,arguments)},zd=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return a.asm.emscripten_enum_draco_GeometryAttribute_Type_GENERIC.apply(null,arguments)};a._setThrew=function(){return a.asm.setThrew.apply(null,arguments)};var ta=a.__ZSt18uncaught_exceptionv=
function(){return a.asm._ZSt18uncaught_exceptionv.apply(null,arguments)};a._free=function(){return a.asm.free.apply(null,arguments)};var ib=a._malloc=function(){return a.asm.malloc.apply(null,arguments)};a.stackSave=function(){return a.asm.stackSave.apply(null,arguments)};a.stackAlloc=function(){return a.asm.stackAlloc.apply(null,arguments)};a.stackRestore=function(){return a.asm.stackRestore.apply(null,arguments)};a.__growWasmMemory=function(){return a.asm.__growWasmMemory.apply(null,arguments)};
a.dynCall_ii=function(){return a.asm.dynCall_ii.apply(null,arguments)};a.dynCall_vi=function(){return a.asm.dynCall_vi.apply(null,arguments)};a.dynCall_iii=function(){return a.asm.dynCall_iii.apply(null,arguments)};a.dynCall_vii=function(){return a.asm.dynCall_vii.apply(null,arguments)};a.dynCall_iiii=function(){return a.asm.dynCall_iiii.apply(null,arguments)};a.dynCall_v=function(){return a.asm.dynCall_v.apply(null,arguments)};a.dynCall_viii=function(){return a.asm.dynCall_viii.apply(null,arguments)};
a.dynCall_viiii=function(){return a.asm.dynCall_viiii.apply(null,arguments)};a.dynCall_iiiiiii=function(){return a.asm.dynCall_iiiiiii.apply(null,arguments)};a.dynCall_iidiiii=function(){return a.asm.dynCall_iidiiii.apply(null,arguments)};a.dynCall_jiji=function(){return a.asm.dynCall_jiji.apply(null,arguments)};a.dynCall_viiiiii=function(){return a.asm.dynCall_viiiiii.apply(null,arguments)};a.dynCall_viiiii=function(){return a.asm.dynCall_viiiii.apply(null,arguments)};a.asm=La;var fa;a.then=function(e){if(fa)e(a);
else{var c=a.onRuntimeInitialized;a.onRuntimeInitialized=function(){c&&c();e(a)}}return a};ja=function c(){fa||ma();fa||(ja=c)};a.run=ma;if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0<a.preInit.length;)a.preInit.pop()();ma();p.prototype=Object.create(p.prototype);p.prototype.constructor=p;p.prototype.__class__=p;p.__cache__={};a.WrapperObject=p;a.getCache=u;a.wrapPointer=N;a.castObject=function(a,b){return N(a.ptr,b)};a.NULL=N(0);a.destroy=function(a){if(!a.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";
a.__destroy__();delete u(a.__class__)[a.ptr]};a.compare=function(a,b){return a.ptr===b.ptr};a.getPointer=function(a){return a.ptr};a.getClass=function(a){return a.__class__};var n={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(n.needed){for(var c=0;c<n.temps.length;c++)a._free(n.temps[c]);n.temps.length=0;a._free(n.buffer);n.buffer=0;n.size+=n.needed;n.needed=0}n.buffer||(n.size+=128,n.buffer=a._malloc(n.size),t(n.buffer));n.pos=0},alloc:function(c,b){t(n.buffer);c=c.length*b.BYTES_PER_ELEMENT;
c=c+7&-8;n.pos+c>=n.size?(t(0<c),n.needed+=c,b=a._malloc(c),n.temps.push(b)):(b=n.buffer+n.pos,n.pos+=c);return b},copy:function(a,b,d){switch(b.BYTES_PER_ELEMENT){case 2:d>>=1;break;case 4:d>>=2;break;case 8:d>>=3}for(var c=0;c<a.length;c++)b[d+c]=a[c]}};x.prototype=Object.create(p.prototype);x.prototype.constructor=x;x.prototype.__class__=x;x.__cache__={};a.Status=x;x.prototype.code=x.prototype.code=function(){return jb(this.ptr)};x.prototype.ok=x.prototype.ok=function(){return!!kb(this.ptr)};x.prototype.error_msg=
x.prototype.error_msg=function(){return X(lb(this.ptr))};x.prototype.__destroy__=x.prototype.__destroy__=function(){mb(this.ptr)};A.prototype=Object.create(p.prototype);A.prototype.constructor=A;A.prototype.__class__=A;A.__cache__={};a.DracoUInt16Array=A;A.prototype.GetValue=A.prototype.GetValue=function(a){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);return nb(c,a)};A.prototype.size=A.prototype.size=function(){return ob(this.ptr)};A.prototype.__destroy__=A.prototype.__destroy__=function(){pb(this.ptr)};
B.prototype=Object.create(p.prototype);B.prototype.constructor=B;B.prototype.__class__=B;B.__cache__={};a.PointCloud=B;B.prototype.num_attributes=B.prototype.num_attributes=function(){return qb(this.ptr)};B.prototype.num_points=B.prototype.num_points=function(){return rb(this.ptr)};B.prototype.__destroy__=B.prototype.__destroy__=function(){sb(this.ptr)};C.prototype=Object.create(p.prototype);C.prototype.constructor=C;C.prototype.__class__=C;C.__cache__={};a.DracoUInt8Array=C;C.prototype.GetValue=
C.prototype.GetValue=function(a){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);return tb(c,a)};C.prototype.size=C.prototype.size=function(){return ub(this.ptr)};C.prototype.__destroy__=C.prototype.__destroy__=function(){vb(this.ptr)};D.prototype=Object.create(p.prototype);D.prototype.constructor=D;D.prototype.__class__=D;D.__cache__={};a.DracoUInt32Array=D;D.prototype.GetValue=D.prototype.GetValue=function(a){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);return wb(c,a)};D.prototype.size=D.prototype.size=
function(){return xb(this.ptr)};D.prototype.__destroy__=D.prototype.__destroy__=function(){yb(this.ptr)};E.prototype=Object.create(p.prototype);E.prototype.constructor=E;E.prototype.__class__=E;E.__cache__={};a.AttributeOctahedronTransform=E;E.prototype.InitFromAttribute=E.prototype.InitFromAttribute=function(a){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);return!!zb(c,a)};E.prototype.quantization_bits=E.prototype.quantization_bits=function(){return Ab(this.ptr)};E.prototype.__destroy__=E.prototype.__destroy__=
function(){Bb(this.ptr)};q.prototype=Object.create(p.prototype);q.prototype.constructor=q;q.prototype.__class__=q;q.__cache__={};a.PointAttribute=q;q.prototype.size=q.prototype.size=function(){return Cb(this.ptr)};q.prototype.GetAttributeTransformData=q.prototype.GetAttributeTransformData=function(){return N(Db(this.ptr),J)};q.prototype.attribute_type=q.prototype.attribute_type=function(){return Eb(this.ptr)};q.prototype.data_type=q.prototype.data_type=function(){return Fb(this.ptr)};q.prototype.num_components=
q.prototype.num_components=function(){return Gb(this.ptr)};q.prototype.normalized=q.prototype.normalized=function(){return!!Hb(this.ptr)};q.prototype.byte_stride=q.prototype.byte_stride=function(){return Ib(this.ptr)};q.prototype.byte_offset=q.prototype.byte_offset=function(){return Jb(this.ptr)};q.prototype.unique_id=q.prototype.unique_id=function(){return Kb(this.ptr)};q.prototype.__destroy__=q.prototype.__destroy__=function(){Lb(this.ptr)};J.prototype=Object.create(p.prototype);J.prototype.constructor=
J;J.prototype.__class__=J;J.__cache__={};a.AttributeTransformData=J;J.prototype.transform_type=J.prototype.transform_type=function(){return Mb(this.ptr)};J.prototype.__destroy__=J.prototype.__destroy__=function(){Nb(this.ptr)};w.prototype=Object.create(p.prototype);w.prototype.constructor=w;w.prototype.__class__=w;w.__cache__={};a.AttributeQuantizationTransform=w;w.prototype.InitFromAttribute=w.prototype.InitFromAttribute=function(a){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);return!!Ob(c,a)};
w.prototype.quantization_bits=w.prototype.quantization_bits=function(){return Pb(this.ptr)};w.prototype.min_value=w.prototype.min_value=function(a){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);return Qb(c,a)};w.prototype.range=w.prototype.range=function(){return Rb(this.ptr)};w.prototype.__destroy__=w.prototype.__destroy__=function(){Sb(this.ptr)};F.prototype=Object.create(p.prototype);F.prototype.constructor=F;F.prototype.__class__=F;F.__cache__={};a.DracoInt8Array=F;F.prototype.GetValue=F.prototype.GetValue=
function(a){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);return Tb(c,a)};F.prototype.size=F.prototype.size=function(){return Ub(this.ptr)};F.prototype.__destroy__=F.prototype.__destroy__=function(){Vb(this.ptr)};r.prototype=Object.create(p.prototype);r.prototype.constructor=r;r.prototype.__class__=r;r.__cache__={};a.MetadataQuerier=r;r.prototype.HasEntry=r.prototype.HasEntry=function(a,b){var c=this.ptr;n.prepare();a&&"object"===typeof a&&(a=a.ptr);b=b&&"object"===typeof b?b.ptr:V(b);return!!Wb(c,
a,b)};r.prototype.GetIntEntry=r.prototype.GetIntEntry=function(a,b){var c=this.ptr;n.prepare();a&&"object"===typeof a&&(a=a.ptr);b=b&&"object"===typeof b?b.ptr:V(b);return Xb(c,a,b)};r.prototype.GetIntEntryArray=r.prototype.GetIntEntryArray=function(a,b,d){var c=this.ptr;n.prepare();a&&"object"===typeof a&&(a=a.ptr);b=b&&"object"===typeof b?b.ptr:V(b);d&&"object"===typeof d&&(d=d.ptr);Yb(c,a,b,d)};r.prototype.GetDoubleEntry=r.prototype.GetDoubleEntry=function(a,b){var c=this.ptr;n.prepare();a&&"object"===
typeof a&&(a=a.ptr);b=b&&"object"===typeof b?b.ptr:V(b);return Zb(c,a,b)};r.prototype.GetStringEntry=r.prototype.GetStringEntry=function(a,b){var c=this.ptr;n.prepare();a&&"object"===typeof a&&(a=a.ptr);b=b&&"object"===typeof b?b.ptr:V(b);return X($b(c,a,b))};r.prototype.NumEntries=r.prototype.NumEntries=function(a){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);return ac(c,a)};r.prototype.GetEntryName=r.prototype.GetEntryName=function(a,b){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===
typeof b&&(b=b.ptr);return X(bc(c,a,b))};r.prototype.__destroy__=r.prototype.__destroy__=function(){cc(this.ptr)};G.prototype=Object.create(p.prototype);G.prototype.constructor=G;G.prototype.__class__=G;G.__cache__={};a.DracoInt16Array=G;G.prototype.GetValue=G.prototype.GetValue=function(a){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);return dc(c,a)};G.prototype.size=G.prototype.size=function(){return ec(this.ptr)};G.prototype.__destroy__=G.prototype.__destroy__=function(){fc(this.ptr)};H.prototype=
Object.create(p.prototype);H.prototype.constructor=H;H.prototype.__class__=H;H.__cache__={};a.DracoFloat32Array=H;H.prototype.GetValue=H.prototype.GetValue=function(a){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);return gc(c,a)};H.prototype.size=H.prototype.size=function(){return hc(this.ptr)};H.prototype.__destroy__=H.prototype.__destroy__=function(){ic(this.ptr)};O.prototype=Object.create(p.prototype);O.prototype.constructor=O;O.prototype.__class__=O;O.__cache__={};a.GeometryAttribute=O;O.prototype.__destroy__=
O.prototype.__destroy__=function(){jc(this.ptr)};K.prototype=Object.create(p.prototype);K.prototype.constructor=K;K.prototype.__class__=K;K.__cache__={};a.DecoderBuffer=K;K.prototype.Init=K.prototype.Init=function(a,b){var c=this.ptr;n.prepare();if("object"==typeof a&&"object"===typeof a){var e=n.alloc(a,T);n.copy(a,T,e);a=e}b&&"object"===typeof b&&(b=b.ptr);kc(c,a,b)};K.prototype.__destroy__=K.prototype.__destroy__=function(){lc(this.ptr)};g.prototype=Object.create(p.prototype);g.prototype.constructor=
g;g.prototype.__class__=g;g.__cache__={};a.Decoder=g;g.prototype.GetEncodedGeometryType=g.prototype.GetEncodedGeometryType=function(a){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);return mc(c,a)};g.prototype.DecodeBufferToPointCloud=g.prototype.DecodeBufferToPointCloud=function(a,b){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);return N(nc(c,a,b),x)};g.prototype.DecodeBufferToMesh=g.prototype.DecodeBufferToMesh=function(a,b){var c=this.ptr;a&&"object"===typeof a&&
(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);return N(oc(c,a,b),x)};g.prototype.GetAttributeId=g.prototype.GetAttributeId=function(a,b){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);return pc(c,a,b)};g.prototype.GetAttributeIdByName=g.prototype.GetAttributeIdByName=function(a,b){var c=this.ptr;n.prepare();a&&"object"===typeof a&&(a=a.ptr);b=b&&"object"===typeof b?b.ptr:V(b);return qc(c,a,b)};g.prototype.GetAttributeIdByMetadataEntry=g.prototype.GetAttributeIdByMetadataEntry=
function(a,b,d){var c=this.ptr;n.prepare();a&&"object"===typeof a&&(a=a.ptr);b=b&&"object"===typeof b?b.ptr:V(b);d=d&&"object"===typeof d?d.ptr:V(d);return rc(c,a,b,d)};g.prototype.GetAttribute=g.prototype.GetAttribute=function(a,b){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);return N(sc(c,a,b),q)};g.prototype.GetAttributeByUniqueId=g.prototype.GetAttributeByUniqueId=function(a,b){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);
return N(tc(c,a,b),q)};g.prototype.GetMetadata=g.prototype.GetMetadata=function(a){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);return N(uc(c,a),L)};g.prototype.GetAttributeMetadata=g.prototype.GetAttributeMetadata=function(a,b){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);return N(vc(c,a,b),L)};g.prototype.GetFaceFromMesh=g.prototype.GetFaceFromMesh=function(a,b,d){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===
typeof d&&(d=d.ptr);return!!wc(c,a,b,d)};g.prototype.GetTriangleStripsFromMesh=g.prototype.GetTriangleStripsFromMesh=function(a,b){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);return xc(c,a,b)};g.prototype.GetTrianglesUInt16Array=g.prototype.GetTrianglesUInt16Array=function(a,b,d){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!yc(c,a,b,d)};g.prototype.GetTrianglesUInt32Array=g.prototype.GetTrianglesUInt32Array=
function(a,b,d){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!zc(c,a,b,d)};g.prototype.GetAttributeFloat=g.prototype.GetAttributeFloat=function(a,b,d){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ac(c,a,b,d)};g.prototype.GetAttributeFloatForAllPoints=g.prototype.GetAttributeFloatForAllPoints=function(a,b,d){var c=this.ptr;a&&"object"===typeof a&&
(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Bc(c,a,b,d)};g.prototype.GetAttributeIntForAllPoints=g.prototype.GetAttributeIntForAllPoints=function(a,b,d){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Cc(c,a,b,d)};g.prototype.GetAttributeInt8ForAllPoints=g.prototype.GetAttributeInt8ForAllPoints=function(a,b,d){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&
(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Dc(c,a,b,d)};g.prototype.GetAttributeUInt8ForAllPoints=g.prototype.GetAttributeUInt8ForAllPoints=function(a,b,d){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ec(c,a,b,d)};g.prototype.GetAttributeInt16ForAllPoints=g.prototype.GetAttributeInt16ForAllPoints=function(a,b,d){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&
(d=d.ptr);return!!Fc(c,a,b,d)};g.prototype.GetAttributeUInt16ForAllPoints=g.prototype.GetAttributeUInt16ForAllPoints=function(a,b,d){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Gc(c,a,b,d)};g.prototype.GetAttributeInt32ForAllPoints=g.prototype.GetAttributeInt32ForAllPoints=function(a,b,d){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Hc(c,
a,b,d)};g.prototype.GetAttributeUInt32ForAllPoints=g.prototype.GetAttributeUInt32ForAllPoints=function(a,b,d){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ic(c,a,b,d)};g.prototype.GetAttributeDataArrayForAllPoints=g.prototype.GetAttributeDataArrayForAllPoints=function(a,b,d,e,f){var c=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&
(e=e.ptr);f&&"object"===typeof f&&(f=f.ptr);return!!Jc(c,a,b,d,e,f)};g.prototype.SkipAttributeTransform=g.prototype.SkipAttributeTransform=function(a){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);Kc(b,a)};g.prototype.__destroy__=g.prototype.__destroy__=function(){Lc(this.ptr)};y.prototype=Object.create(p.prototype);y.prototype.constructor=y;y.prototype.__class__=y;y.__cache__={};a.Mesh=y;y.prototype.num_faces=y.prototype.num_faces=function(){return Mc(this.ptr)};y.prototype.num_attributes=y.prototype.num_attributes=
function(){return Nc(this.ptr)};y.prototype.num_points=y.prototype.num_points=function(){return Oc(this.ptr)};y.prototype.__destroy__=y.prototype.__destroy__=function(){Pc(this.ptr)};Q.prototype=Object.create(p.prototype);Q.prototype.constructor=Q;Q.prototype.__class__=Q;Q.__cache__={};a.VoidPtr=Q;Q.prototype.__destroy__=Q.prototype.__destroy__=function(){Qc(this.ptr)};I.prototype=Object.create(p.prototype);I.prototype.constructor=I;I.prototype.__class__=I;I.__cache__={};a.DracoInt32Array=I;I.prototype.GetValue=
I.prototype.GetValue=function(a){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);return Rc(b,a)};I.prototype.size=I.prototype.size=function(){return Sc(this.ptr)};I.prototype.__destroy__=I.prototype.__destroy__=function(){Tc(this.ptr)};L.prototype=Object.create(p.prototype);L.prototype.constructor=L;L.prototype.__class__=L;L.__cache__={};a.Metadata=L;L.prototype.__destroy__=L.prototype.__destroy__=function(){Uc(this.ptr)};(function(){function c(){a.OK=Vc();a.DRACO_ERROR=Wc();a.IO_ERROR=Xc();a.INVALID_PARAMETER=
Yc();a.UNSUPPORTED_VERSION=Zc();a.UNKNOWN_VERSION=$c();a.DT_INVALID=ad();a.DT_INT8=bd();a.DT_UINT8=cd();a.DT_INT16=dd();a.DT_UINT16=ed();a.DT_INT32=fd();a.DT_UINT32=gd();a.DT_INT64=hd();a.DT_UINT64=id();a.DT_FLOAT32=jd();a.DT_FLOAT64=kd();a.DT_BOOL=ld();a.DT_TYPES_COUNT=md();a.INVALID_GEOMETRY_TYPE=nd();a.POINT_CLOUD=od();a.TRIANGULAR_MESH=pd();a.ATTRIBUTE_INVALID_TRANSFORM=qd();a.ATTRIBUTE_NO_TRANSFORM=rd();a.ATTRIBUTE_QUANTIZATION_TRANSFORM=sd();a.ATTRIBUTE_OCTAHEDRON_TRANSFORM=td();a.INVALID=ud();
a.POSITION=vd();a.NORMAL=wd();a.COLOR=xd();a.TEX_COORD=yd();a.GENERIC=zd()}Ba?c():Da.unshift(c)})();if("function"===typeof a.onModuleParsed)a.onModuleParsed();return m}}();"object"===typeof exports&&"object"===typeof module?module.exports=DracoDecoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):"object"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule);

0
public/webTotal/js/draco_wasm_wrapper_gltf.js → public/webThird/js/draco_wasm_wrapper_gltf.js

190
public/webThird/js/easyloader.js

@ -0,0 +1,190 @@
/**
* EasyUI for jQuery 1.7.0
*
* Copyright (c) 2009-2018 www.jeasyui.com. All rights reserved.
*
* Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php
* To use it on other terms please contact us: info@jeasyui.com
*
*/
(function(){
var _1={draggable:{js:"jquery.draggable.js"},droppable:{js:"jquery.droppable.js"},resizable:{js:"jquery.resizable.js"},linkbutton:{js:"jquery.linkbutton.js",css:"linkbutton.css"},progressbar:{js:"jquery.progressbar.js",css:"progressbar.css"},tooltip:{js:"jquery.tooltip.js",css:"tooltip.css"},pagination:{js:"jquery.pagination.js",css:"pagination.css",dependencies:["linkbutton"]},datagrid:{js:"jquery.datagrid.js",css:"datagrid.css",dependencies:["panel","resizable","linkbutton","pagination"]},treegrid:{js:"jquery.treegrid.js",css:"tree.css",dependencies:["datagrid"]},propertygrid:{js:"jquery.propertygrid.js",css:"propertygrid.css",dependencies:["datagrid"]},datalist:{js:"jquery.datalist.js",css:"datalist.css",dependencies:["datagrid"]},panel:{js:"jquery.panel.js",css:"panel.css"},window:{js:"jquery.window.js",css:"window.css",dependencies:["resizable","draggable","panel"]},dialog:{js:"jquery.dialog.js",css:"dialog.css",dependencies:["linkbutton","window"]},messager:{js:"jquery.messager.js",css:"messager.css",dependencies:["linkbutton","dialog","progressbar"]},layout:{js:"jquery.layout.js",css:"layout.css",dependencies:["resizable","panel"]},form:{js:"jquery.form.js"},menu:{js:"jquery.menu.js",css:"menu.css"},tabs:{js:"jquery.tabs.js",css:"tabs.css",dependencies:["panel","linkbutton"]},menubutton:{js:"jquery.menubutton.js",css:"menubutton.css",dependencies:["linkbutton","menu"]},splitbutton:{js:"jquery.splitbutton.js",css:"splitbutton.css",dependencies:["menubutton"]},switchbutton:{js:"jquery.switchbutton.js",css:"switchbutton.css"},accordion:{js:"jquery.accordion.js",css:"accordion.css",dependencies:["panel"]},calendar:{js:"jquery.calendar.js",css:"calendar.css"},textbox:{js:"jquery.textbox.js",css:"textbox.css",dependencies:["validatebox","linkbutton"]},passwordbox:{js:"jquery.passwordbox.js",css:"passwordbox.css",dependencies:["textbox"]},filebox:{js:"jquery.filebox.js",css:"filebox.css",dependencies:["textbox"]},radiobutton:{js:"jquery.radiobutton.js",css:"radiobutton.css"},checkbox:{js:"jquery.checkbox.js",css:"checkbox.css"},sidemenu:{js:"jquery.sidemenu.js",css:"sidemenu.css",dependencies:["accordion","tree","tooltip"]},combo:{js:"jquery.combo.js",css:"combo.css",dependencies:["panel","textbox"]},combobox:{js:"jquery.combobox.js",css:"combobox.css",dependencies:["combo"]},combotree:{js:"jquery.combotree.js",dependencies:["combo","tree"]},combogrid:{js:"jquery.combogrid.js",dependencies:["combo","datagrid"]},combotreegrid:{js:"jquery.combotreegrid.js",dependencies:["combo","treegrid"]},tagbox:{js:"jquery.tagbox.js",dependencies:["combobox"]},validatebox:{js:"jquery.validatebox.js",css:"validatebox.css",dependencies:["tooltip"]},numberbox:{js:"jquery.numberbox.js",dependencies:["textbox"]},searchbox:{js:"jquery.searchbox.js",css:"searchbox.css",dependencies:["menubutton","textbox"]},spinner:{js:"jquery.spinner.js",css:"spinner.css",dependencies:["textbox"]},numberspinner:{js:"jquery.numberspinner.js",dependencies:["spinner","numberbox"]},timespinner:{js:"jquery.timespinner.js",dependencies:["spinner"]},tree:{js:"jquery.tree.js",css:"tree.css",dependencies:["draggable","droppable"]},datebox:{js:"jquery.datebox.js",css:"datebox.css",dependencies:["calendar","combo"]},datetimebox:{js:"jquery.datetimebox.js",dependencies:["datebox","timespinner"]},slider:{js:"jquery.slider.js",dependencies:["draggable"]},parser:{js:"jquery.parser.js"},mobile:{js:"jquery.mobile.js"}};
var _2={"af":"easyui-lang-af.js","ar":"easyui-lang-ar.js","bg":"easyui-lang-bg.js","ca":"easyui-lang-ca.js","cs":"easyui-lang-cs.js","cz":"easyui-lang-cz.js","da":"easyui-lang-da.js","de":"easyui-lang-de.js","el":"easyui-lang-el.js","en":"easyui-lang-en.js","es":"easyui-lang-es.js","fr":"easyui-lang-fr.js","it":"easyui-lang-it.js","jp":"easyui-lang-jp.js","nl":"easyui-lang-nl.js","pl":"easyui-lang-pl.js","pt_BR":"easyui-lang-pt_BR.js","ru":"easyui-lang-ru.js","sv_SE":"easyui-lang-sv_SE.js","tr":"easyui-lang-tr.js","zh_CN":"easyui-lang-zh_CN.js","zh_TW":"easyui-lang-zh_TW.js"};
var _3={};
function _4(_5,_6){
var _7=false;
var _8=document.createElement("script");
_8.type="text/javascript";
_8.language="javascript";
_8.src=_5;
_8.onload=_8.onreadystatechange=function(){
if(!_7&&(!_8.readyState||_8.readyState=="loaded"||_8.readyState=="complete")){
_7=true;
_8.onload=_8.onreadystatechange=null;
if(_6){
_6.call(_8);
}
}
};
document.getElementsByTagName("head")[0].appendChild(_8);
};
function _9(_a,_b){
_4(_a,function(){
document.getElementsByTagName("head")[0].removeChild(this);
if(_b){
_b();
}
});
};
function _c(_d,_e){
var _f=document.createElement("link");
_f.rel="stylesheet";
_f.type="text/css";
_f.media="screen";
_f.href=_d;
document.getElementsByTagName("head")[0].appendChild(_f);
if(_e){
_e.call(_f);
}
};
function _10(_11,_12){
_3[_11]="loading";
var _13=_1[_11];
var _14="loading";
var _15=(easyloader.css&&_13["css"])?"loading":"loaded";
if(easyloader.css&&_13["css"]){
if(/^http/i.test(_13["css"])){
var url=_13["css"];
}else{
var url=easyloader.base+"themes/"+easyloader.theme+"/"+_13["css"];
}
_c(url,function(){
_15="loaded";
if(_14=="loaded"&&_15=="loaded"){
_16();
}
});
}
if(/^http/i.test(_13["js"])){
var url=_13["js"];
}else{
var url=easyloader.base+"plugins/"+_13["js"];
}
_4(url,function(){
_14="loaded";
if(_14=="loaded"&&_15=="loaded"){
_16();
}
});
function _16(){
_3[_11]="loaded";
easyloader.onProgress(_11);
if(_12){
_12();
}
};
};
function _17(_18,_19){
var mm=[];
var _1a=false;
if(typeof _18=="string"){
add(_18);
}else{
for(var i=0;i<_18.length;i++){
add(_18[i]);
}
}
function add(_1b){
if(!_1[_1b]){
return;
}
var d=_1[_1b]["dependencies"];
if(d){
for(var i=0;i<d.length;i++){
add(d[i]);
}
}
mm.push(_1b);
};
function _1c(){
if(_19){
_19();
}
easyloader.onLoad(_18);
};
var _1d=0;
function _1e(){
if(mm.length){
var m=mm[0];
if(!_3[m]){
_1a=true;
_10(m,function(){
mm.shift();
_1e();
});
}else{
if(_3[m]=="loaded"){
mm.shift();
_1e();
}else{
if(_1d<easyloader.timeout){
_1d+=10;
setTimeout(arguments.callee,10);
}
}
}
}else{
if(easyloader.locale&&_1a==true&&_2[easyloader.locale]){
var url=easyloader.base+"locale/"+_2[easyloader.locale];
_9(url,function(){
_1c();
});
}else{
_1c();
}
}
};
_1e();
};
easyloader={modules:_1,locales:_2,base:".",theme:"default",css:true,locale:null,timeout:2000,load:function(_1f,_20){
if(/\.css$/i.test(_1f)){
if(/^http/i.test(_1f)){
_c(_1f,_20);
}else{
_c(easyloader.base+_1f,_20);
}
}else{
if(/\.js$/i.test(_1f)){
if(/^http/i.test(_1f)){
_4(_1f,_20);
}else{
_4(easyloader.base+_1f,_20);
}
}else{
_17(_1f,_20);
}
}
},onProgress:function(_21){
},onLoad:function(_22){
}};
var _23=document.getElementsByTagName("script");
for(var i=0;i<_23.length;i++){
var src=_23[i].src;
if(!src){
continue;
}
var m=src.match(/easyloader\.js(\W|$)/i);
if(m){
easyloader.base=src.substring(0,m.index);
}
}
window.using=easyloader.load;
if(window.jQuery){
jQuery(function(){
easyloader.load("parser",function(){
jQuery.parser.parse();
});
});
}
})();

778
public/webThird/js/index.js

@ -0,0 +1,778 @@
function IsPC() {
var userAgentInfo = navigator.userAgent;
var Agents = ["Android", "iPhone",
"SymbianOS", "Windows Phone",
"iPad", "iPod"];
var flag = true;
for (var v = 0; v < Agents.length; v++) {
if (userAgentInfo.indexOf(Agents[v]) > 0) {
flag = false;
break;
}
}
return flag;
}
if(IsPC()==true){
// if(false){
// alert("我是PC");
}else{
// alert("我是手机");
let mains=document.getElementsByClassName("mains")[0];
let contint=document.getElementsByClassName("contint")[0];
mains.setAttribute("class","main2")
contint.setAttribute("class","contint2")
// renderCanvas.setAttribute("class","renderCanvas2")
document.getElementById("renderCanvas").style.width="980px";
document.getElementById("renderCanvas").style.height="960px";
// console.log(document.getElementById("renderCanvas").style.with);
//console.log(document.getElementsByClassName("mains").style.flexDirection);
document.getElementsByClassName("title")[0].style.display = "none";
}
// const width = document.documentElement.clientWidth;
// const height = document.documentElement.clientHeight;
// if (width < height) {
// console.log(width + " " + height);
// const contentDOM = document.getElementById('divTransform');
// contentDOM.style.width = height + 'px';
// contentDOM.style.height = width + 'px';
// contentDOM.style.top = (height - width) / 2 + 'px';
// contentDOM.style.left = 0 - (height - width) / 2 + 'px';
// //contentDOM.style.transform = 'rotate(90deg)';
// }
// const evt = "onorientationchange" in window ? "orientationchange" : "resize";
// window.addEventListener(evt, function () {
// const width = document.documentElement.clientWidth;
// const height = document.documentElement.clientHeight;
// const contentDOM = document.getElementById('content');
// //alert('width: ' + width + ' height: ' + height)
// if (width > height) { // 横屏
// contentDOM.style.width = width + 'px';
// contentDOM.style.height = height + 'px';
// contentDOM.style.top = '0px';
// contentDOM.style.left = '0px';
// contentDOM.style.transform = 'none';
// }
// else { // 竖屏,这里微信应该由bug,我切换为竖屏的时候,width:375, height: 323, 导致不能旋转角度。 在safari、chrome上是正确的。
// alert('change to portrait')
// contentDOM.style.width = height + 'px';
// contentDOM.style.height = width + 'px';
// contentDOM.style.top = (height - width) / 2 + 'px';
// contentDOM.style.left = 0 - (height - width) / 2 + 'px';
// //contentDOM.style.transform = 'rotate(90deg)';
// }
// }, false);
window.addEventListener('DOMContentLoaded', function(){
BABYLON.DefaultLoadingScreen.prototype.displayLoadingUI = function () {
if (document.getElementById("customLoadingScreenDiv")) {
// Do not add a loading screen if there is already one
document.getElementById("customLoadingScreenDiv").style.display = "initial";
return;
}
this._loadingDiv = document.createElement("div");
this._loadingDiv.id = "customLoadingScreenDiv";
//this._loadingDiv.innerHTML = "模型正在加载....";
this._loadingDiv.innerHTML = "<image src='./loading.gif' />";
var customLoadingScreenCss = document.createElement('style');
customLoadingScreenCss.type = 'text/css';
customLoadingScreenCss.innerHTML = `
#customLoadingScreenDiv{
background-color: #3D4456cc;
color: white;
font-size:50px;
text-align:center;
}
`;
document.getElementsByTagName('head')[0].appendChild(customLoadingScreenCss);
this._resizeLoadingUI();
window.addEventListener("resize", this._resizeLoadingUI);
document.body.appendChild(this._loadingDiv);
};
BABYLON.DefaultLoadingScreen.prototype.hideLoadingUI = function(){
document.getElementById("customLoadingScreenDiv").style.display = "none";
console.log("scene is now loaded");
}
function sleep(beginTime,endTime) {
var exitTime = beginTime + 3000;
while (true) {
now = new Date();
if (now.getTime() > exitTime)
return;
}
}
// get the canvas DOM element
var canvas = document.getElementById('renderCanvas');
var d = new Date();
var n_Begin= d.getTime();
console.log("n_Begin:"+n_Begin);
// load the 3D engine
var engine = new BABYLON.Engine(canvas, true);
// createScene function that creates and return the scene
var createScene = function(){
engine.displayLoadingUI();
// create a basic BJS Scene object
var scene = new BABYLON.Scene(engine);
//scene.debugLayer.show();
var camera = new BABYLON.ArcRotateCamera("Camera", 0, 0, 5, new BABYLON.Vector3(0, 0, 0), scene);
console.log(camera);
// camera.transforms.alpha = 85;
//camea.transforms.beta=95;
// target the camera to scene origin
camera.setTarget(BABYLON.Vector3.Zero());
//camera.setPosition(new BABYLON.Vector3(20, 200, 400));
// attach the camera to the canvas
camera.attachControl(canvas, true);
camera.lowerRadiusLimit = 2.5 ;// 这里是最大的位置,值越大,物体越小
camera.upperRadiusLimit = 20 ;
camera.Radius = 2.5;
camera.alpha = 1.5;
camera.beta = 1;
camera.inertia=0.1; // 缩放的快慢
//scene.VRHelper = scene.createDefaultVRExperience({createDeviceOrientationCamera: false});
//var VRHelper = scene.createDefaultVRExperience();
//console.log(VRHelper);
//VRHelper.onExitingVR.add(()=>{
// scene.setActiveCameraByName("Camera");
// console.log("abc");
//console.log(scene);
//})
//scene.setActiveCameraByName("Camera");
//console.log(VRHelper);
// create a basic light, aiming 0,1,0 - meaning, to the sky
var light = new BABYLON.HemisphericLight('light1', new BABYLON.Vector3(0,1,0), scene);
// Skybox
var skybox = BABYLON.MeshBuilder.CreateBox("skyBox", {size:1000.0}, scene);
var skyboxMaterial = new BABYLON.StandardMaterial("skyBox", scene);
skyboxMaterial.backFaceCulling = false;
skyboxMaterial.reflectionTexture = new BABYLON.CubeTexture("textures/skybox", scene);
skyboxMaterial.reflectionTexture.coordinatesMode = BABYLON.Texture.SKYBOX_MODE;
skyboxMaterial.diffuseColor = new BABYLON.Color3(0, 0, 0);
skyboxMaterial.specularColor = new BABYLON.Color3(0, 0, 0);
skybox.material = skyboxMaterial;
var myColor = BABYLON.Color3.Blue();
var line03_position = BABYLON.Vector3(0,0,0);
var line01_position = BABYLON.Vector3(0,0,0);
var line17_position = BABYLON.Vector3(0,0,0);
var line26_position = BABYLON.Vector3(0,0,0);
console.log("position:"+line03_position);
// Initialize GizmoManager
var gizmoManager = new BABYLON.GizmoManager(scene)
BABYLON.SceneLoader.Append("./asset/", "abc2.gltf", scene, function (scene) {
//坐场
line03 = scene.getMeshByName("Line03");
line03_position = line03.position;
Line03Mat = new BABYLON.StandardMaterial("ground", scene);
Line03Mat.diffuseColor = new BABYLON.Color3(0.4, 0.4,0.4);
Line03Mat.specularColor = new BABYLON.Color3(0.4, 0.4, 0.4);
Line03Mat.emissiveColor = BABYLON.Color3.Blue();
line03.material = Line03Mat;
//左护版
line01 = scene.getMeshByName("Line01");
line01_position = line01.position;
Line01Mat = new BABYLON.StandardMaterial("ground", scene);
Line01Mat.diffuseColor = new BABYLON.Color3(0.4, 0.4, 0.4);
Line01Mat.specularColor = new BABYLON.Color3(0.4, 0.4, 0.4);
Line01Mat.emissiveColor = BABYLON.Color3.Blue();
line01.material = Line01Mat;
//左护版
//line05 = scene.getMeshByName("Line05");
//Line05Mat = new BABYLON.StandardMaterial("ground", scene);
//Line05Mat.diffuseColor = new BABYLON.Color3(0.4, 0.4, 0.4);
//Line05Mat.specularColor = new BABYLON.Color3(0.4, 0.4, 0.4);
//Line05Mat.emissiveColor = BABYLON.Color3.Blue();
//line05.material = Line05Mat;
//右腿
line17 = scene.getMeshByName("Line17");
line17_position = line17.position;
Line17Mat = new BABYLON.StandardMaterial("ground", scene);
Line17Mat.diffuseColor = new BABYLON.Color3(0.4, 0.4, 0.4);
Line17Mat.specularColor = new BABYLON.Color3(0.4, 0.4, 0.4);
Line17Mat.emissiveColor = BABYLON.Color3.Blue();
line17.material = Line17Mat;
//line17.position.x =1;
//右腿
line26 = scene.getMeshByName("Cylinder56");
line26_position = line26.position;
Line26Mat = new BABYLON.StandardMaterial("ground", scene);
Line26Mat.diffuseColor = new BABYLON.Color3(0.4, 0.4, 0.4);
Line26Mat.specularColor = new BABYLON.Color3(0.4, 0.4, 0.4);
Line26Mat.emissiveColor = BABYLON.Color3.Blue();
line26.material = Line26Mat;
//枪
tube15 = scene.getMeshByName("Tube15");
tube15_position = tube15.position;
Tube15Mat = new BABYLON.StandardMaterial("ground", scene);
Tube15Mat.diffuseColor = new BABYLON.Color3(0.4, 0.4, 0.4);
Tube15Mat.specularColor = new BABYLON.Color3(0.4, 0.4, 0.4);
Tube15Mat.emissiveColor = BABYLON.Color3.Blue();
tube15.material = Tube15Mat;
root = scene.getMeshByName("__root__");
//console.log("abccc");
//console.log(scene);
//root.addRotation(0.01, 0, 0);
//gizmoManager.boundingBoxGizmoEnabled=true
// Restrict gizmos to only spheres
gizmoManager.attachableMeshes =[line03,line01,tube15,line26,line17];
// Toggle gizmos with keyboard buttons
document.onkeydown = (e)=>{
if(e.key == 'w'){
gizmoManager.positionGizmoEnabled = !gizmoManager.positionGizmoEnabled
}
if(e.key == 'e'){
gizmoManager.rotationGizmoEnabled = !gizmoManager.rotationGizmoEnabled
}
if(e.key == 'r'){
gizmoManager.scaleGizmoEnabled = !gizmoManager.scaleGizmoEnabled
}
if(e.key == 'q'){
gizmoManager.boundingBoxGizmoEnabled = !gizmoManager.boundingBoxGizmoEnabled
}
}
var oldMeth = null;
// On pick interpolations
var prepareButton = function (mesh, color,strss) {
//var goToColorAction = new BABYLON.InterpolateValueAction(BABYLON.ActionManager.OnPickTrigger, light, "diffuse", color, 1000, null, true);
mesh.actionManager = new BABYLON.ActionManager(scene);
// mesh.actionManager.registerAction(new BABYLON.SetValueAction(BABYLON.ActionManager.OnPointerOutTrigger, mesh.material, "emissiveColor", mesh.material.emissiveColor));
mesh.actionManager.registerAction(new BABYLON.SetValueAction(BABYLON.ActionManager.OnPickTrigger, mesh.material, "emissiveColor", BABYLON.Color3.Red()));
// mesh.actionManager.registerAction(new BABYLON.SetValueAction(BABYLON.ActionManager.OnPickTrigger, mesh.material, "emissiveColor", BABYLON.Color3.Yellow()));
mesh.actionManager.registerAction(new BABYLON.InterpolateValueAction(BABYLON.ActionManager.OnPointerOutTrigger, mesh, "scaling", new BABYLON.Vector3(0.38, 0.38, 0.38), 100));
mesh.actionManager.registerAction(new BABYLON.InterpolateValueAction(BABYLON.ActionManager.OnPointerOverTrigger, mesh, "scaling", new BABYLON.Vector3(0.4, 0.4, 0.4), 100));
//mesh.actionManager.registerAction(new BABYLON.SetValueAction(BABYLON.ActionManager.OnPickTrigger, mesh.material, "wireframe", true))
mesh.actionManager.registerAction(
new BABYLON.ExecuteCodeAction(
{
trigger:BABYLON.ActionManager.OnPickTrigger,
parameter:""
},
function(){
document.getElementById("show").innerHTML=strss;
console.log(oldMeth);
console.log(mesh);
if(oldMeth != null && oldMeth.id != mesh.id){
oldMeth.material.emissiveColor= myColor;
}
oldMeth = mesh;
// mesh.material.emissiveColor= BABYLON.Color3.Red()
//mesh.material.emissiveColor = myColor;
//console.log(mesh.material.emissiveColor);
//mesh.material = BABYLON.Color3.Yellow()
//a.innerHTML ="这里是坐长的位置,可以坐人的."
}
)
);
}
var prepareButton2 = function (mesh, color,strss) {
//var goToColorAction = new BABYLON.InterpolateValueAction(BABYLON.ActionManager.OnPickTrigger, light, "diffuse", color, 1000, null, true);
mesh.actionManager = new BABYLON.ActionManager(scene);
mesh.actionManager.registerAction(new BABYLON.SetValueAction(BABYLON.ActionManager.OnPointerOutTrigger, mesh.material, "emissiveColor", mesh.material.emissiveColor));
mesh.actionManager.registerAction(new BABYLON.SetValueAction(BABYLON.ActionManager.OnPointerOverTrigger, mesh.material, "emissiveColor", BABYLON.Color3.Red()));
mesh.actionManager.registerAction(new BABYLON.InterpolateValueAction(BABYLON.ActionManager.OnPointerOutTrigger, mesh, "scaling", new BABYLON.Vector3(1,1, 1), 100));
mesh.actionManager.registerAction(new BABYLON.InterpolateValueAction(BABYLON.ActionManager.OnPointerOverTrigger, mesh, "scaling", new BABYLON.Vector3(1, 1, 1), 100));
mesh.actionManager.registerAction(
new BABYLON.ExecuteCodeAction(
{
trigger:BABYLON.ActionManager.OnPickTrigger,
parameter:""
},
function(){
document.getElementById("show").innerHTML=strss;
//a.innerHTML ="这里是坐长的位置,可以坐人的."
}
)
);
}
prepareButton(line03, BABYLON.Color3.Blue(),`<font size="20">坐舱:</font></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;又叫驾驶舱(Cockpit)是操作员控制机器人的座舱,通常位于前端。除了早期的,如今大部分机器人的驾驶舱采用密闭式的设计。机器人驾驶舱内一般安装有各类控制系统。 驾驶舱是机器人的首脑元件,为太空船里下令及控制的中心。它是设计用来尽量让驾驶员感到操控舒适,并包含所有先进导航及各项操控的系统,就如同其他提供居住人员所有必需品的组件是一样重要的。</h2>`);
prepareButton(line01, BABYLON.Color3.Blue(),`<font size="20">铠甲:</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;机械外骨骼或称动力外骨骼(Powered exoskeleton),是一种由钢铁的框架构成并且可让人穿上的机器装置,这个装备可以提供额外能量来供四肢运动。别称:强化服、动力服(Power Suit)、动力装甲(Power armor或Powered armor)、Exoframe、Hardsuit或Exosuit等。凭借这套“服装”,人类就可以成为所谓的“铁人”。
<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;动力外骨骼更倾向于军用除了能够增强人体能力的这一基本功能外还要具有良好的防护性对复杂环境的适应性以及辅助火力通信侦查支持等军用功能
<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;动力服是设计成用来保护穿戴者的例如为了保护士兵或建筑工而设计或设计用来进行救援身处险境的人员上广泛一些的用途则是用来做为义肢与帮助老弱者行动其它的用途则是用来进行救援行动就像在一栋要倒塌的建筑物里这个装置可以提供给工人很大的力量来举起重物同时保护它不被落下的碎石砸伤在日本有银行为需常搬运沉重钞票及硬币的员工配备外骨骼以降低身体负担`);
//prepareButton(line05, BABYLON.Color3.Blue(),"右护版");
prepareButton(line17, BABYLON.Color3.Blue(),`<font size="20">左脚:</font>
<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用激光器作为辐射源的雷达激光雷达是激光技术与雷达技术相结合的产物 由发射机 天线 接收机 跟踪架及信息处理等部分组成发射机是各种形式的激光器如二氧化碳激光器掺钕钇铝石榴石激光器半导体激光器及波长可调谐的固体激光器等天线是光学望远镜接收机采用各种形式的光电探测器如光电倍增管半导体光电二极管雪崩光电二极管红外和可见光多元探测器件等激光雷达采用脉冲或连续波2种工作方式探测方法分直接探测与外差探测
<br><img src='./img/2.jpg' height='400'>`);
prepareButton(line26, BABYLON.Color3.Blue(),`<font size="20">机器关节:</font><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;机器人关节驱动器是一种集电液伺服阀及摆动缸于一体的液压或气动装置。关节机器人常见的有协作机器人(六轴、七轴)、外骨骼机器人、四足、双足、手术机器人等,里面用的东西基本都包含力矩电机、编码器、减速器、驱动器等,有的可能会用到抱闸、力矩传感器。但是每个应用匹配的方案不一样,用的产品也是多种多样。<br/><img src='./img/4.jpg'>`);
prepareButton(tube15, BABYLON.Color3.Blue(),`<p class='p13'><font size="20">机枪:</font><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;机枪(Machine gun) 一种带有枪架或枪座,能实现连发射击的自动枪械。世界第一挺机枪是个叫伐商的比利时工程师(曾是拿破伦手下的上尉)于1851年设计的。该枪曾在1870、1871年的普法战争中用过。而普遍观点认为,现代机枪的鼻祖是加特林多管式机枪。1862年,由美国人理查德·杰丹·加特林发明,这种枪有几个枪筒,可以轮转。1883年,美国人海尔曼·S·马克沁进行革新,机枪变为单枪筒,利用后坐力,使上膛、射击和退弹能同时完成,枪身用枪筒上的水套降温,每分钟可射击650次,名为马克沁机枪.<br/></p><video src='a.mp4' controls='controls'></video> `);
var d1 = new Date();
var n_end= d1.getTime();
console.log("n_end:"+n_end);
console.log(n_end - n_Begin);
sleep(n_Begin,n_end);
engine.hideLoadingUI();
});
//GUI
// Another GUI on the right
var advancedTexture = BABYLON.GUI.AdvancedDynamicTexture.CreateFullscreenUI("UI");
advancedTexture.layer.layerMask = 2;
var panel3 = new BABYLON.GUI.StackPanel();
panel3.width = "800px";
panel3.fontSize = "30px";
panel3.horizontalAlignment = BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_RIGHT;
panel3.verticalAlignment = BABYLON.GUI.Control.VERTICAL_ALIGNMENT_TOP;
advancedTexture.addControl(panel3);
var button1 = BABYLON.GUI.Button.CreateSimpleButton("but1", "旋 转");
button1.width = 0.2;
button1.height = "80px";
button1.color = "white";
button1.cornerRadius = 20;
button1.background = "green";
button1.horizontalAlignment = BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_RIGHT;
//button1.verticalAlignment = BABYLON.GUI.Control.VERTICAL_ALIGNMENT_TOP;
//button1.centerY=5;
//console.log(button1);
//button1.position.x = 300;
//button1.position.y = 5;
var aaab = false;
button1.onPointerUpObservable.add(function() {
// circle.scaleX += 0.1;
if(aaab== false){
scene.registerBeforeRender(function(){
root.addRotation(0.00, 0.008, 0);
button1.textBlock.text = "停 止";
aaab = true;
button1.background = "red";
});
}else{
scene.registerBeforeRender(function(){
root.addRotation(0.00, -0.008, 0);
button1.textBlock.text = "旋 转";
aaab = false;
button1.background = "green";
});
}
});
var button3 = BABYLON.GUI.Button.CreateSimpleButton("but2", "展 开");
button3.width = 0.2;
button3.height = "80px";
button3.color = "white";
button3.cornerRadius = 20;
button3.background = "green";
var bob = false;
button3.horizontalAlignment = BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_RIGHT;
button3.verticalAlignment = BABYLON.GUI.Control.VERTICAL_ALIGNMENT_TOP;
button3.onPointerUpObservable.add(function() {
// circle.scaleX += 0.1;
//gizmoManager.positionGizmoEnabled = !gizmoManager.positionGizmoEnabled
if(bob== false){
bob = true;
button3.textBlock.text = "合 体";
button3.background = "red";
var animationBox = new BABYLON.Animation("tutoAnimation", "position", 30, BABYLON.Animation.ANIMATIONTYPE_VECTOR3,
BABYLON.Animation.ANIMATIONLOOPMODE_CONSTANT);
// Animation keys
var keys = [];
keys.push({
frame: 0,
value: line03_position
});
keys.push({
frame: 20,
value: new BABYLON.Vector3(line03_position.x+60,line03_position.y,line03_position.z)
});
animationBox.setKeys(keys);
line03.animations.push(animationBox); //中间坐舱
//scene.beginAnimation(line03, 0, 100, false);
//左护版
var animationBox2 = new BABYLON.Animation("Animation2", "position", 30, BABYLON.Animation.ANIMATIONTYPE_VECTOR3,
BABYLON.Animation.ANIMATIONLOOPMODE_CONSTANT);
// Animation keys
var keys1 = [];
keys1.push({
frame: 0,
value: line01_position
});
keys1.push({
frame: 20,
value: new BABYLON.Vector3(line01_position.x-40,line01_position.y,line01_position.z)
});
animationBox2.setKeys(keys1);
line01.animations.push(animationBox2); //中间坐舱
//scene.beginAnimation(line01, 0, 100, true);
//左脚
var animationBox3 = new BABYLON.Animation("animationBox3", "position", 30, BABYLON.Animation.ANIMATIONTYPE_VECTOR3,
BABYLON.Animation.ANIMATIONLOOPMODE_CONSTANT);
// Animation keys
var keys2 = [];
keys2.push({
frame: 0,
value: line17_position
});
keys2.push({
frame: 20,
value: new BABYLON.Vector3(line17_position.x-50,line17_position.y,line17_position.z)
});
animationBox3.setKeys(keys2);
line17.animations.push(animationBox3); //中间坐舱
//scene.beginAnimation(line17, 0, 100, true);
//右脚
var animationBox4 = new BABYLON.Animation("animationBox4", "position", 30, BABYLON.Animation.ANIMATIONTYPE_VECTOR3,
BABYLON.Animation.ANIMATIONLOOPMODE_CONSTANT);
// Animation keys
var keys4 = [];
keys4.push({
frame: 0,
value: line26_position
});
keys4.push({
frame: 20,
value: new BABYLON.Vector3(line26_position.x+50,line26_position.y,line26_position.z)
});
animationBox4.setKeys(keys4);
line26.animations.push(animationBox4); //中间坐舱
//scene.beginAnimation(line26, 0, 100, true);
//枪
var animationBox5 = new BABYLON.Animation("animationBox5", "position", 30, BABYLON.Animation.ANIMATIONTYPE_VECTOR3,
BABYLON.Animation.ANIMATIONLOOPMODE_CONSTANT);
// Animation keys
var keys5 = [];
keys5.push({
frame: 0,
value: new BABYLON.Vector3(-23,0,-47.5)
});
keys5.push({
frame: 20,
value:new BABYLON.Vector3(-2,0,-90)
});
animationBox5.setKeys(keys5);
tube15.animations.push(animationBox5); //中间坐舱
//scene.beginAnimation(tube15, 0, 100, true);
setTimeout(async () => {
var anim1 = scene.beginAnimation(line01, 0, 100, false);
var anim2 = scene.beginAnimation(line03, 0, 100, false);
var anim3 = scene.beginAnimation(line17, 0, 100, false);
var anim4 = scene.beginAnimation(line26, 0, 100, false);
var anim5 = scene.beginAnimation(tube15, 0, 100, false);
console.log("ddd");
//await anim1.waitAsync();
//await anim2.waitAsync();
//await anim3.waitAsync();
//await anim4.waitAsync();
await anim5.waitAsync();
console.log("dd33d");
scene.stopAnimation(line01);
scene.stopAnimation(line03);
scene.stopAnimation(line17);
scene.stopAnimation(line26);
scene.stopAnimation(tube15);
});
}else{
bob = false;
button3.background = "green";
var animationBox = new BABYLON.Animation("tutoAnimation", "position", 30, BABYLON.Animation.ANIMATIONTYPE_VECTOR3,
BABYLON.Animation.ANIMATIONLOOPMODE_CONSTANT);
// Animation keys
var keys = [];
keys.push({
frame: 0,
value: new BABYLON.Vector3(line03_position.x-60,line03_position.y,line03_position.z)
});
keys.push({
frame: 20,
value: line03_position
});
animationBox.setKeys(keys);
line03.animations.push(animationBox); //中间坐舱
//scene.beginAnimation(line03, 0, 100, true);
//左护版
var animationBox2 = new BABYLON.Animation("Animation2", "position", 30, BABYLON.Animation.ANIMATIONTYPE_VECTOR3,
BABYLON.Animation.ANIMATIONLOOPMODE_CONSTANT);
// Animation keys
var keys1 = [];
keys1.push({
frame: 0,
value: new BABYLON.Vector3(line01_position.x+40,line01_position.y,line01_position.z)
});
keys1.push({
frame: 20,
value:line01_position
});
animationBox2.setKeys(keys1);
line01.animations.push(animationBox2); //中间坐舱
//scene.beginAnimation(line01, 0, 100, true);
//左脚
var animationBox3 = new BABYLON.Animation("animationBox3", "position", 30, BABYLON.Animation.ANIMATIONTYPE_VECTOR3,
BABYLON.Animation.ANIMATIONLOOPMODE_CONSTANT);
// Animation keys
var keys2 = [];
keys2.push({
frame: 0,
value: new BABYLON.Vector3(line17_position.x+50,line17_position.y,line17_position.z)
});
keys2.push({
frame: 20,
value:line17_position
});
animationBox3.setKeys(keys2);
line17.animations.push(animationBox3); //中间坐舱
// scene.beginAnimation(line17, 0, 100, true);
//右脚
var animationBox4 = new BABYLON.Animation("animationBox4", "position", 30, BABYLON.Animation.ANIMATIONTYPE_VECTOR3,
BABYLON.Animation.ANIMATIONLOOPMODE_CONSTANT);
// Animation keys
var keys4 = [];
keys4.push({
frame: 0,
value: new BABYLON.Vector3(line26_position.x-50,line26_position.y,line26_position.z)
});
keys4.push({
frame: 20,
value: line26_position
});
animationBox4.setKeys(keys4);
line26.animations.push(animationBox4); //中间坐舱
//scene.beginAnimation(line26, 0, 100, true);
//枪
var animationBox5 = new BABYLON.Animation("animationBox5", "position", 30, BABYLON.Animation.ANIMATIONTYPE_VECTOR3,
BABYLON.Animation.ANIMATIONLOOPMODE_CONSTANT);
// Animation keys
var keys5 = [];
keys5.push({
frame: 0,
value:new BABYLON.Vector3(-2,0,-90)
});
keys5.push({
frame: 20,
value: new BABYLON.Vector3(-23,0,-47.5)
});
animationBox5.setKeys(keys5);
tube15.animations.push(animationBox5); //中间坐舱
button3.textBlock.text = "展 开";
setTimeout(async () => {
var anim1 = scene.beginAnimation(line01, 0, 100, false);
var anim2 = scene.beginAnimation(line03, 0, 100, false);
var anim3 = scene.beginAnimation(line17, 0, 100, false);
var anim4 = scene.beginAnimation(line26, 0, 100, false);
var anim5 = scene.beginAnimation(tube15, 0, 100, false);
console.log("ddd");
await anim1.waitAsync();
await anim2.waitAsync();
await anim3.waitAsync();
await anim4.waitAsync();
await anim5.waitAsync();
console.log("dd33d");
scene.stopAnimation(line01);
scene.stopAnimation(line03);
scene.stopAnimation(line17);
scene.stopAnimation(line26);
scene.stopAnimation(tube15);
});
}
});
var button2 = BABYLON.GUI.Button.CreateSimpleButton("but2", "拆 解");
button2.width =0.2;
button2.height = "80px";
button2.color = "white";
button2.cornerRadius = 20;
button2.background = "green";
button2.horizontalAlignment = BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_RIGHT;
button2.verticalAlignment = BABYLON.GUI.Control.VERTICAL_ALIGNMENT_TOP;
var selectOne = false;
button2.onPointerUpObservable.add(function() {
// circle.scaleX += 0.1;
gizmoManager.positionGizmoEnabled = !gizmoManager.positionGizmoEnabled
if(selectOne== false){
//scene.stopAnimation(line01);
//scene.stopAnimation(line03);
//scene.stopAnimation(line17);
//scene.stopAnimation(line26);
//scene.stopAnimation(tube15);
selectOne = true;
button2.background = "red";
button2.textBlock.text = "取 消";
}else{
//window.location.reload(true);
selectOne = false;
button2.background = "green";
button2.textBlock.text = "拆 解";
}
});
var button4 = BABYLON.GUI.Button.CreateSimpleButton("but4", "还 原");
//button4.fontSize = "26px";
button4.width = 0.2;
button4.height = "80px";
button4.color = "white";
button4.cornerRadius = 20;
button4.background = "green";
button4.horizontalAlignment = BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_RIGHT;
button4.verticalAlignment = BABYLON.GUI.Control.VERTICAL_ALIGNMENT_TOP;
button4.onPointerUpObservable.add(function() {
window.location.reload(true);
});
panel3.addControl(button1);
panel3.addControl(button3);
panel3.addControl(button2);
panel3.addControl(button4);
return scene;
}
// call the createScene function
var scene = createScene();
//var a = scene.getElementById("__root");
// run the render loop
/**/
engine.runRenderLoop(function(){
scene.render();
});
var abc1 = scene.getMeshByName("plane");
window.addEventListener('resize', function(){
engine.resize();
});
});

0
public/webTotal/js/jquery-3.5.1.min.js → public/webThird/js/jquery-3.5.1.min.js

0
public/webTotal/js/jquery-ui.js → public/webThird/js/jquery-ui.js

0
public/webTotal/js/jquery.js → public/webThird/js/jquery.js

138
public/webThird/js/jquery.timers.min.js

@ -0,0 +1,138 @@
/**
* jQuery.timers - Timer abstractions for jQuery
* Written by Blair Mitchelmore (blair DOT mitchelmore AT gmail DOT com)
* Licensed under the WTFPL (http://sam.zoy.org/wtfpl/).
* Date: 2009/10/16
*
* @author Blair Mitchelmore
* @version 1.2
*
**/
jQuery.fn.extend({
everyTime: function(interval, label, fn, times) {
return this.each(function() {
jQuery.timer.add(this, interval, label, fn, times);
});
},
oneTime: function(interval, label, fn) {
return this.each(function() {
jQuery.timer.add(this, interval, label, fn, 1);
});
},
stopTime: function(label, fn) {
return this.each(function() {
jQuery.timer.remove(this, label, fn);
});
}
});
jQuery.extend({
timer: {
global: [],
guid: 1,
dataKey: "jQuery.timer",
regex: /^([0-9]+(?:\.[0-9]*)?)\s*(.*s)?$/,
powers: {
// Yeah this is major overkill...
'ms': 1,
'cs': 10,
'ds': 100,
's': 1000,
'das': 10000,
'hs': 100000,
'ks': 1000000
},
timeParse: function(value) {
if (value == undefined || value == null)
return null;
var result = this.regex.exec(jQuery.trim(value.toString()));
if (result[2]) {
var num = parseFloat(result[1]);
var mult = this.powers[result[2]] || 1;
return num * mult;
} else {
return value;
}
},
add: function(element, interval, label, fn, times) {
var counter = 0;
if (jQuery.isFunction(label)) {
if (!times)
times = fn;
fn = label;
label = interval;
}
interval = jQuery.timer.timeParse(interval);
if (typeof interval != 'number' || isNaN(interval) || interval < 0)
return;
if (typeof times != 'number' || isNaN(times) || times < 0)
times = 0;
times = times || 0;
var timers = jQuery.data(element, this.dataKey) || jQuery.data(element, this.dataKey, {});
if (!timers[label])
timers[label] = {};
fn.timerID = fn.timerID || this.guid++;
var handler = function() {
if ((++counter > times && times !== 0) || fn.call(element, counter) === false)
jQuery.timer.remove(element, label, fn);
};
handler.timerID = fn.timerID;
if (!timers[label][fn.timerID])
timers[label][fn.timerID] = window.setInterval(handler,interval);
this.global.push( element );
},
remove: function(element, label, fn) {
var timers = jQuery.data(element, this.dataKey), ret;
if ( timers ) {
if (!label) {
for ( label in timers )
this.remove(element, label, fn);
} else if ( timers[label] ) {
if ( fn ) {
if ( fn.timerID ) {
window.clearInterval(timers[label][fn.timerID]);
delete timers[label][fn.timerID];
}
} else {
for ( var fn in timers[label] ) {
window.clearInterval(timers[label][fn]);
delete timers[label][fn];
}
}
for ( ret in timers[label] ) break;
if ( !ret ) {
ret = null;
delete timers[label];
}
}
for ( ret in timers ) break;
if ( !ret )
jQuery.removeData(element, this.dataKey);
}
}
}
});
jQuery(window).bind("unload", function() {
jQuery.each(jQuery.timer.global, function(index, item) {
jQuery.timer.remove(item);
});
});

0
public/webTotal/js/pep.js → public/webThird/js/pep.js

0
public/webTotal/js/qrcode.min.js → public/webThird/js/qrcode.min.js

0
public/webTotal/img/logok.gif → public/webThird/logok.gif

Before

Width: 436  |  Height: 140  |  Size: 206 KiB

After

Width: 436  |  Height: 140  |  Size: 206 KiB

0
public/webTotal/textures/4.jpg → public/webThird/textures/4.jpg

Before

Width: 1560  |  Height: 968  |  Size: 103 KiB

After

Width: 1560  |  Height: 968  |  Size: 103 KiB

0
public/webTotal/textures/environmentSpecular.env → public/webThird/textures/environmentSpecular.env

BIN
public/webTotal/asset/totalw.glb

BIN
public/webTotal/img/bof.gif

Before

Width: 61  |  Height: 61  |  Size: 6.0 KiB

BIN
public/webTotal/img/logo.png

Before

Width: 389  |  Height: 87  |  Size: 6.8 KiB

BIN
public/webTotal/img/sky.jpg

Before

Width: 1024  |  Height: 1024  |  Size: 30 KiB

BIN
public/webTotal/img/x02.png

Before

Width: 64  |  Height: 64  |  Size: 745 B

BIN
public/webTotal/img/yxlogo.png

Before

Width: 54  |  Height: 54  |  Size: 3.6 KiB

866
public/webTotal/index.html

@ -1,866 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8" />
<meta name="screen-orientation" content="landscape" charset="UTF-8" />
<meta content="width=device-width, initial-scale=0.4, maximum-scale=0.4, user-scalable=0" name="viewport">
<meta http-equiv="Pragma" content="Cache-control: max-age=10000" />
<title>全景图</title>
<style>
html,
body {
overflow: hidden;
margin: 0;
padding: 0;
}
img {
width: 100%;
height: auto;
}
video {
width: 100%;
height: auto;
}
.font22 {
font-size: 20px;
}
.jiazaiimg {
width: 436px;
height: auto;
margin: 50% auto 0;
padding: 0px 200px;
font-size: 30px;
}
.zc {
color: white;
width: 436px;
height: 140px;
margin: 85% auto 0;
padding: 0px 240px;
font-size: 30px;
}
.zcpc {
color: white;
width: 100%;
height: 40px;
font-size: 20px;
position: fixed;
bottom: 10px;
text-align: center;
}
.divTransform {
position: absolute;
width: 100%;
height: 100%;
}
#renderCanvas {
width: 100%;
height: 100vh;
touch-action: none;
outline: none;
-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
/* mobile webkit */
touch-action: none;
background-repeat: no-repeat no-repeat;
background-size: cover;
}
#show {
width: 100%;
font-size: 35px;
line-height: 70px;
}
.mytitle {
width: 100%;
text-align: center;
font-size: 43px;
font-weight: 700;
color: white;
margin-top: 75px;
margin-bottom: 20px;
}
.introduce {
width: 600px;
height: auto;
background: url('img/shuomingkuang@2x.png') no-repeat;
background-size: 100% 100%;
position: fixed;
top: 38%;
left: 19%;
z-index: 99;
color: white;
padding: 35px 28px;
font-size: 10px;
display: none;
}
.introduce2{
width: 520px;
height: auto;
background: url('img/shuomingkuang@2x.png') no-repeat;
background-size: 100% 100%;
position: fixed;
bottom: 10%;
left: 30%;
z-index: 99;
color: white;
padding:20px;
font-size: 14px;
line-height: 19px;
display: none;
}
.xingshang {
width: 100%;
position: fixed;
bottom: 0px;
left: 0;
height: 340px;
box-sizing: border-box;
padding: 20px 30px;
color: white;
background-color: rgba(0, 0, 0, 0.6);
overflow-x: hidden;
overflow-y: hidden;
border-radius: 35px 35px 0 0;
display: none;
}
.xingshangpc {
width: 520px;
height: 100%;
margin: 0 auto;
box-sizing: border-box;
padding: 20px 30px;
color: white;
}
.zuoimg {
width: 38px;
height: 72px;
margin: 48px 29px;
}
.zuoimgpc {
width: 13px;
height: 22px;
margin: 18px 7px;
}
.xsul {
width: 100%;
display: flex;
justify-content: space-between;
margin-top: 50px;
}
.xsli {
/* margin: 0 10px; */
font-size: 28px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.xslipc {
font-size: 14px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.xsimg {
width: 72px;
height: 72px;
margin: 25px;
}
.xsimgpc {
width: 32px;
height: 32px;
margin: 12px;
}
.jiange {
width: 22px;
height: 22px;
margin-top: 53px;
}
.jiangepc {
width: 15px;
height: 15px;
margin-top: 22px;
}
.beijing {
width: 100%;
position: fixed;
bottom: 0px;
left: 0;
height: 420px;
box-sizing: border-box;
padding: 20px 30px;
color: white;
background-color: rgba(0, 0, 0, 0.6);
overflow-x: hidden;
overflow-y: hidden;
border-radius: 35px 35px 0 0;
display: none;
}
.beijingpc-di,.xingsh-di{
width: 81.2%;
position: fixed;
bottom: 30px;
left: 0px;
height: 220px;
background-image: linear-gradient(to right, rgba(0,0,0,0) 0 , rgba(0,0,0,0.3) 8%, rgba(0,0,0,0.5) 18%,rgba(0,0,0,0.5) 80%, rgba(0,0,0,0.3) 90%, rgba(0,0,0,0) 100%);
display: none;
}
/*.xingsh-di{
display: block;
}*/
.beijingpc {
width: 50%;
height: 100%;
margin: 0 auto;
box-sizing: border-box;
padding: 10px 15px;
color: white;
display: flex;
justify-content: center;
align-items: center;
}
.leftpc,.rightpc{
width: 12px;
height: 21px;
margin:0 12px;
display: flex;
align-items: center;
}
.leftimgpc,.rightimgpc{
width: 12px;
height: 21px;
margin-top: 25px;
}
.zhongj{
width: 93%;
max-width: 880px;
height: 100%;
overflow-x: auto;
overflow-y: hidden;
}
.bjtit {
font-size: 38px;
display: flex;
justify-content: space-between;
margin: 37px 0 27px;
}
.bjtitpc {
font-size: 18px;
display: flex;
justify-content: space-between;
margin: 14px 0;
}
.ycdiv {
display: flex;
justify-content: space-between;
align-items: center;
width: 132px;
}
.ycdivpc {
display: flex;
justify-content: space-between;
align-items: center;
width: 45px;
font-size: 11px;
}
.ycimg {
width: 38px;
height: 28px;
}
.ycimgpc {
width: 16px;
height: 12px;
}
.bjul {
width: 100%;
display: flex;
margin: 0;
padding: 0;
overflow-y: hidden;
overflow-x: auto;
}
.bjulpc {
/*width: 100%;*/
height: 140px;
display: flex;
}
.bjulpc-di{
width: 100%;
height: 140px;
display: flex;
margin: 0;
padding: 0;
overflow-y: hidden;
overflow-x: auto;
}
.bjulpc-di::-webkit-scrollbar {
display: none
}
.bjli {
margin: 0 10px;
font-size: 36px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.bjlipc {
margin: 0 5px;
font-size: 14px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.bjdiv {
height: 188px;
display: flex;
justify-content: center;
align-items: flex-end;
}
.bjdivpc {
height: 120px;
display: flex;
justify-content: center;
align-items: flex-end;
}
.bjimg {
width: 138px;
height: 138px;
margin-bottom: 20px;
border-radius: 14px;
}
.bjimgpc {
width: 98px;
height: 98px;
margin-bottom: 10px;
border-radius: 6px;
}
.contint2 {
width: 100%;
position: fixed;
bottom: 0px;
left: 0;
height: 300px;
box-sizing: border-box;
padding: 20px 30px;
color: white;
background-color: rgba(0, 0, 0, 0.6);
overflow-x: hidden;
overflow-y: hidden;
border-radius: 35px 35px 0 0;
}
.contint2::-webkit-scrollbar {
display: none;
}
.main2 {
width: 100%;
height: auto;
display: none;
}
.shangla,
.xiala {
width: 100%;
height: 160px;
text-align: center;
position: fixed;
bottom: 140px;
left: 0;
border-radius: 35px 35px 0 0;
display: block;
z-index: 99;
background-image: linear-gradient(to top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.18));
}
.xialaimg {
width: 80px;
height: 11px;
margin-top: 44px;
}
.oprition {
width: 100%;
position: fixed;
top: 30px;
left: 0;
z-index: 999;
display: flex;
justify-content: center;
}
.listimg {
width: 150px;
position: relative;
display: flex;
flex-direction: column;
align-items: center;
}
.listimg img {
width: 103px;
height: 103px;
}
.conts {
width: 100%;
font-size: 28px;
color: white;
height: 101px;
box-sizing: border-box;
padding: 30px;
text-align: center;
border-radius: 5px;
text-align: center;
}
.contcj,
.contzk,
.contxx {
width: 124px;
}
.contbj,
.conthy,
.contcz {
width: 178px;
}
.mengban {
position: fixed;
top: 0;
left: 0;
width: 100%;
z-index: 1000;
background-color: rgba(0, 0, 0, 0);
}
/* .articcont {
width: 100%;
position: fixed;
top: 30%;
left: 0;
z-index: 9999;
background-color: rgba(0, 0, 0, 0.6);
border-radius: 10px;
padding: 30px;
box-sizing: border-box;
display: none;
}
.articcont:after {
content: '';
display: inline-block;
width: 0;
height: 0;
border: 20px solid transparent;
border-bottom: 20px solid rgba(0, 0, 0, 0.6);
position: absolute;
top: -38px;
right: 48%;
}*/
.ul {
width: 100%;
}
.shoushi {
width: 800px;
height: auto;
padding: 110px
}
.span1 {
font-size: 66px;
color: white;
margin-right: 13px;
position: relative;
bottom: 10px;
}
.know {
width: 200px;
text-align: center;
padding: 16px 0;
font-size: 32px;
margin: 30px auto 0;
border-radius: 10px;
color: white;
font-weight: 600;
}
.ikngb {
width: 57px;
height: 57px;
}
/*pc端*/
.mains {
width: 18.8%;
display: none;
box-sizing: border-box;
}
.contint {
width: 100%;
/*height: 250px;*/
box-sizing: border-box;
color: white;
background-color: rgba(0, 0, 0, 0.6);
overflow-x: hidden;
overflow-y: hidden;
background: #151837;
}
.title2 {
width: 100%;
height: 62px;
background-color: #151837;
color: white;
display: flex;
justify-content: space-between;
align-items: center;
box-sizing: border-box;
padding: 0 20px;
font-size: 22px;
font-weight: 700;
}
.oprition2 {
position: fixed;
top: 10px;
right: 19%;
width: 56px;
}
.listimg2 {
margin-top: 20px;
position: relative;
}
.listimg2 img {
width: 47px;
height: 47px;
}
.conts2 {
background: rgb(0, 0, 0, 0.5);
font-size: 14px;
color: white;
height: 32px;
line-height: 32px;
box-sizing: border-box;
text-align: center;
border-radius: 3px;
position: absolute;
right: 73px;
top: 10px;
display: none;
}
.conts2:after {
content: '';
display: inline-block;
width: 0;
height: 0;
border: 7px solid transparent;
border-left: 7px solid rgba(0, 0, 0, 0.8);
position: absolute;
top: 7px;
right: -14px;
}
/* .articcont2 {
width: 800px;
height: 700px;
margin: 50px auto;
background-color: rgba(0, 0, 0, 0.6);
border-radius: 10px;
padding: 20px;
box-sizing: border-box;
}
.articcont2:after {
content: '';
display: inline-block;
width: 0;
height: 0;
border: 10px solid transparent;
border-top: 10px solid rgba(0, 0, 0, 0.6);
position: absolute;
top: 202px;
right: 48%;
}
*/
.ul2 {
width: 100%;
color: white;
}
.li2 {
width: 100%;
font-size: 14px;
line-height: 19px;
}
.mengban2 {
position: fixed;
top: 0;
left: 0;
width: 81.2%;
background-color: rgba(0, 0, 0, 0.2);
display: none;
z-index: 10;
}
.knowpc {
font-size: 14px;
width: 83px;
height: 33px;
line-height: 33px;
text-align: center;
background-color: #008aff;
margin: 20px auto 0;
border-radius: 5px;
color: white;
font-weight: 600;
cursor: pointer;
}
.span2 {
font-size: 36px;
color: white;
margin-right: 13px;
position: relative;
bottom: 3px;
}
.shuop1 {
font-size: 15px;
}
.oka {
width: 100%;
height: 100%;
background: #021941;
position: fixed;
z-index: 99;
/* padding: 35px 28px; */
font-size: 30px;
/*display: none;*/
}
/*下面是音乐的css*/
.lohingif {
width: 100%;
height: auto;
display: flex;
justify-content: center;
}
.lohingifpc {
width: 100%;
height: auto;
display: flex;
top: 50%; /*偏移*/
transform: translateY(-50%);
}
.feitimg {
width: 20px;
height: auto;
position: relative;
top: 3px;
}
.fatherdiv {
margin: 25px;
width: 72px;
height: 72px;
position: relative;
background-color: #f3f3f3;
border-radius: 50%;
}
.persentdiv {
display: none;
margin: -24px 0px 0px 0px;
width: 72px;
height: 72px;
border-radius: 50%;
position: absolute;
clip: rect(0, 72px, 72px, 36px);
}
.persentleft {
position: absolute;
width: 72px;
height: 72px;
border: 10px solid #1890ff;
box-sizing: border-box;
border-radius: 50%;
clip: rect(0, 36px, 72px, 0);
}
.persentright {
position: absolute;
width: 72px;
height: 72px;
border: 10px solid #1890ff;
box-sizing: border-box;
border-radius: 50%;
clip: rect(0, 72px, 72px, 36px);
}
.persentdivpc {
display: none;
margin: -10px 0px 0px 0px;
width: 32px;
height: 32px;
border-radius: 50%;
position: absolute;
clip: rect(0, 32px, 32px, 16px);
}
.persentleftpc {
position: absolute;
width: 32px;
height: 32px;
border: 5px solid #1890ff;
box-sizing: border-box;
border-radius: 50%;
clip: rect(0,16px, 32px, 0);
}
.persentrightpc {
position: absolute;
width: 32px;
height: 32px;
border: 5px solid #1890ff;
box-sizing: border-box;
border-radius: 50%;
clip: rect(0, 32px, 32px, 16px);
}
.wth0 {
width: 0;
}
.num {
position: absolute;
box-sizing: border-box;
width: 130px;
height: 130px;
line-height: 130px;
text-align: center;
font-size: 32px;
left: 10px;
top: 10px;
border-radius: 50%;
background-color: #fff;
color: #1890ff;
z-index: 1;
}
.clip-auto {
clip: rect(auto, auto, auto, auto);
}
.rotate {
-webkit-animation: rotating 3s linear infinite;
animation: rotating 3s linear infinite;
animation-play-state: running;
-webkit-animation-play-state: running;
/* Safari 和 Chrome */
}
.rotate-pause {
animation-play-state: paused;
-webkit-animation-play-state: paused;
/* Safari 和 Chrome */
}
@-webkit-keyframes rotating {
from {
-webkit-transform: rotate(0)
}
to {
-webkit-transform: rotate(360deg)
}
}
@keyframes rotating {
from {
transform: rotate(0)
}
to {
transform: rotate(360deg)
}
}
@-moz-keyframes rotating {
from {
-moz-transform: rotate(0)
}
to {
-moz-transform: rotate(360deg)
}
}
</style>
</head>
<body>
<div class="divTransform">
<canvas id="renderCanvas" style="background: transparent;" touch-action="none"></canvas>
</div>
<div id="customLoadingScreenDiv_first" style="position: absolute;left: 0px;top: 0px;width: 1158.1px;height: 1211px;display: initial;">
<!-- <div class="oka"><div class="lohingif"><img src="./logok.gif" class="jiazaiimg">
</div><div class="zcpc">&nbsp;&nbsp;</div>
</div> -->
</div>
<!--div id="ddx" style="position: absolute;left: 0px;top: 0px;width: 200.1px;height: 211px;display: initial;">
<input id="da" type="text" name="lname" value="档案柜02"><br>
<input type="submit" value="提交" onclick=" var vx=document.getElementById('da').value; movebyName(vx)">
</div-->
<!--- Link to the last version of BabylonJS --->
<script src="./js/jquery-3.5.1.min.js"></script>
<script src="./js/pep.js"></script>
<script src="./js/babylon.js"></script>
<script src="./js/babylonjs.loaders.min.js"></script>
<script src="./js/babylon.gui.min.js"></script>
<script src="./js/draco_wasm_wrapper_gltf.js"></script>
<script src="./index.js"></script>
</body>
</html>

1016
public/webTotal/index.js
File diff suppressed because it is too large
View File

BIN
public/webTotal/logok.gif

Before

Width: 1024  |  Height: 1024  |  Size: 1.3 MiB

BIN
public/webTotal/textures/5.jpg

Before

Width: 1560  |  Height: 968  |  Size: 103 KiB

BIN
public/webTotal/textures/Flare.png

Before

Width: 256  |  Height: 256  |  Size: 24 KiB

BIN
public/webTotal/textures/a.png

Before

Width: 1024  |  Height: 1024  |  Size: 247 KiB

BIN
public/webTotal/textures/b.png

Before

Width: 1024  |  Height: 1024  |  Size: 38 KiB

BIN
public/webTotal/textures/ball_light_01.png

Before

Width: 1024  |  Height: 1024  |  Size: 62 KiB

BIN
public/webTotal/textures/circular_03.png

Before

Width: 512  |  Height: 512  |  Size: 22 KiB

BIN
public/webTotal/textures/sun.png

Before

Width: 128  |  Height: 128  |  Size: 3.4 KiB

BIN
public/webTotal/textures/textures.rar

33
src/api/index.js

@ -0,0 +1,33 @@
import request from '@/utils/request'
import qs from 'qs'
// 获取token
export function FetchInitToken(params) {
return request({
url: '/openlib/service/barcode/token' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 根据区域ID查询摄像头信息
export function FetchCamerasByAreaId(params) {
return request({
url: '/getHikvisonRTSPByAreaId' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 获取摄像头
export function FetchHikvisonRTSP(params) {
return request({
url: '/getHikvisonRTSP',
method: 'POST',
data: params
})
}
export default {
FetchInitToken,
FetchCamerasByAreaId,
FetchHikvisonRTSP
}

175
src/api/library.js

@ -1,175 +0,0 @@
import request from '@/utils/request'
import qs from 'qs'
// 获取token
export function FetchInitToken(params) {
return request({
url: '/openlib/service/barcode/token' + '?' + qs.stringify(params, { indices: false }),
method: 'get',
urlType: 'interlib'
})
}
// 馆藏量
export function FetchLibBookTotal(params) {
return request({
url: '/qyzt/sync35' + '?' + qs.stringify(params, { indices: false }),
method: 'get',
urlType: 'local'
})
}
// 办证量统计
export function FetchUsertotal(params) {
return request({
url: '/qyzt/usertotal' + '?' + qs.stringify(params, { indices: false }),
method: 'get',
urlType: 'local'
})
}
// page1 获取公众号总粉丝数
export function FetchFansCount(params) {
return request({
url: '/qyzt/getfansCount' + '?' + qs.stringify(params, { indices: false }),
method: 'get',
urlType: 'local'
})
}
// page1 累计借出
export function FetchLendingTotal(params) {
return request({
url: '/qyzt/sync82' + '?' + qs.stringify(params, { indices: false }),
method: 'get',
urlType: 'local'
})
}
// 获取初始化数据
export function FetchInitSetting(params) {
return request({
url: '/qyzt/initSetting' + '?' + qs.stringify(params, { indices: false }),
method: 'get',
urlType: 'local'
})
}
// page1 云标签
export function FetchHotSearch(params) {
return request({
url: '/qyzt/getHotSearch' + '?' + qs.stringify(params, { indices: false }),
method: 'get',
urlType: 'local'
})
}
// page1 新书推荐
export function FetchNewBook(params) {
return request({
url: '/qyzt/getNewBook' + '?' + qs.stringify(params, { indices: false }),
method: 'get',
urlType: 'local'
})
}
// 通过isbn获取图书详细信息
export function FetchMarcByISBN(params) {
return request({
url: '/qyzt/marcByISBN' + '?' + qs.stringify(params, { indices: false }),
method: 'get',
urlType: 'local'
})
}
// page2 获取分馆显示内容
export function FetchLibcodeDetails(params) {
return request({
url: '/qyzt/getLibcodeDetails' + '?' + qs.stringify(params, { indices: false }),
method: 'get',
urlType: 'local'
})
}
// 获取分馆图片资料
export function FetchLibcodeResouceDetails(params) {
return request({
url: '/qyzt/getLibcodeResouceDetails' + '?' + qs.stringify(params, { indices: false }),
method: 'get',
urlType: 'local'
})
}
// page2 读者借阅排行榜
export function FetchReadRanking(params) {
return request({
url: '/qyzt/sync37' + '?' + qs.stringify(params, { indices: false }),
method: 'get',
urlType: 'local'
})
}
// page4 获取通知
export function FetchNoticeList(params) {
return request({
url: '/qyzt/getNoticeList' + '?' + qs.stringify(params, { indices: false }),
method: 'get',
urlType: 'local'
})
}
// page4 文献排行榜
export function FetchSync36(params) {
return request({
url: '/qyzt/sync36' + '?' + qs.stringify(params, { indices: false }),
method: 'get',
urlType: 'local'
})
}
// page4 获取总馆资料
export function FetchTotalResource(params) {
return request({
url: '/qyzt/getTotalResource' + '?' + qs.stringify(params, { indices: false }),
method: 'get',
urlType: 'local'
})
}
// 获取当日每小时借还信息
export function FetchTodayJH(params) {
return request({
url: '/qyzt/getTodayJH' + '?' + qs.stringify(params, { indices: false }),
method: 'get',
urlType: 'local'
})
}
// 获取一周内借还信息
export function FetchWeekJH(params) {
return request({
url: '/qyzt/getWeekJH' + '?' + qs.stringify(params, { indices: false }),
method: 'get',
urlType: 'local'
})
}
export default {
FetchInitToken,
FetchLibBookTotal,
FetchUsertotal,
FetchFansCount,
FetchLendingTotal,
FetchInitSetting,
FetchHotSearch,
FetchNewBook,
FetchMarcByISBN,
FetchReadRanking,
FetchLibcodeDetails,
FetchLibcodeResouceDetails,
FetchNoticeList,
FetchSync36,
FetchTotalResource,
FetchTodayJH,
FetchWeekJH
}

5
src/assets/styles/index.scss

@ -196,7 +196,10 @@
bottom: .25rem;
left: 50%;
transform: translateX(-50%);
z-index: 99999;
z-index: 9999999;
padding: 10px 10px 4px 10px;
background-color: rgba(10, 26, 66, 0.5);
border-radius: 10px;
.nav-list{
li{
display: flex;

6
src/components/hkVideo.vue

@ -6,7 +6,6 @@
</template>
<script>
// import VideoCom from '../components/video'
// rtsp://admin:ftzn83560792@192.168.99.23:554/h264/ch1/main/av_stream
// rtsp://admin:ftzn83560792@192.168.99.26:554/Streaming/Channels/101
export default {
@ -44,14 +43,15 @@ export default {
this.$refs.video2.volume = 0
})
},
initVideo() {
initVideo(rtsp_url) {
// videovideoID
// 127.0.0.1:8000webrtc-streamerIP8000
// rtsp://admin:Hn123456.108@192.168.108.242:554/Streaming/Channels/102
// eslint-disable-next-line no-undef
this.webRtcServer = new WebRtcStreamer('video', location.protocol + '//' + this.camera_ip)
// rtsp,rtspH264
this.webRtcServer.connect('rtsp://' + this.hkConfig.username + ':' + this.hkConfig.password + '@' + this.hkConfig.ip + ':' + this.hkConfig.port + '/Streaming/Channels/102')
// this.webRtcServer.connect('rtsp://' + this.hkConfig.username + ':' + this.hkConfig.password + '@' + this.hkConfig.ip + ':' + this.hkConfig.port + '/Streaming/Channels/102')
this.webRtcServer.connect(rtsp_url)
}
}
}

66
src/components/video.vue

@ -1,59 +1,24 @@
<template>
<div class="page-item fullView-02">
<div class="database-title">视频监控</div>
<ul class="video-list">
<li>
<p>A区大门摄像头</p>
<el-button type="primary" @click="openVideo">查看</el-button>
</li>
<li>
<p>A区大门摄像头</p>
<el-button type="primary" @click="openVideo">查看</el-button>
</li>
<li>
<p>A区大门摄像头</p>
<el-button type="primary" @click="openVideo">查看</el-button>
</li>
<li>
<p>A区大门摄像头</p>
<el-button type="primary" @click="openVideo">查看</el-button>
</li>
<li>
<p>A区大门摄像头</p>
<el-button type="primary" @click="openVideo">查看</el-button>
</li>
<li>
<p>A区大门摄像头</p>
<el-button type="primary" @click="openVideo">查看</el-button>
<ul v-if="cameraList.length !== 0" class="video-list">
<li v-for="(item, index) in cameraList" :key="index">
<p>{{ item.name }}</p>
<el-button type="primary" @click="handleViewVideo(item)">查看</el-button>
</li>
</ul>
<!-- 查看监控视频 -->
<el-dialog class="view-video" append-to-body :close-on-click-modal="false" :modal-append-to-body="false" :visible="hkVideoVisible" title="查看监控视频" :before-close="handleClose">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<hkVideo ref="hkVideoRef" :hk-config="hkConfig" />
</div>
</el-dialog>
<el-empty v-else :image-size="50" description="暂无监控设备" />
</div>
</template>
<script>
// import { FetchInitSetting } from '@/api/library'
import hkVideo from '@/components/hkVideo.vue'
import { FetchCamerasByAreaId } from '@/api/index'
export default {
name: 'Video',
components: { hkVideo },
components: { },
data() {
return {
hkConfig: {
'username': 'admin',
'password': 'Hn123456.108',
'ip': '192.168.108.242',
'port': '554'
},
hkVideoVisible: false
cameraList: []
}
},
computed: {
@ -61,14 +26,17 @@ export default {
mounted() {
},
methods: {
openVideo() {
this.hkVideoVisible = true
this.$nextTick(() => {
this.$refs.hkVideoRef.initVideo()
getCameraList(areaId) {
FetchCamerasByAreaId({ 'area_id': areaId }).then(res => {
if (res.length !== 0) {
this.cameraList = res
} else {
this.cameraList = []
}
})
},
handleClose() {
this.hkVideoVisible = false
handleViewVideo(camera) {
this.$emit('view-video', camera)
}
}
}

72
src/components/viewVideo.vue

@ -0,0 +1,72 @@
<template>
<!-- 查看监控视频 -->
<el-dialog class="view-video" append-to-body :close-on-click-modal="false" :modal-append-to-body="false" :visible="hkVideoVisible" :title="videoTitle" :before-close="handleClose">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<hkVideo ref="hkVideoRef" :hk-config="hkConfig" />
</div>
</el-dialog>
</template>
<script>
import { FetchHikvisonRTSP } from '@/api/index'
import hkVideo from '@/components/hkVideo.vue'
export default {
components: { hkVideo },
props: {
dialogOpen: {
type: Boolean,
default: false
}
},
data() {
return {
camConfig: {
'id': null,
'area_id': null
},
hkConfig: {
'username': 'admin',
'password': 'Hn123456.108',
'ip': '192.168.108.242',
'port': '554'
},
hkVideoVisible: false,
videoTitle: '查看监控视频',
resultdata: {}
}
},
computed: {
},
methods: {
getVideoUrl() {
FetchHikvisonRTSP(this.camConfig).then(res => {
console.log(res)
if (res.code === 200) {
this.resultdata = res.data
this.videoTitle = res.data.name
this.openVideo(this.resultdata.rtsp_url)
} else {
this.$message({
message: '获取数据失败',
type: 'error'
})
}
})
},
openVideo(rtsp_url) {
this.hkVideoVisible = true
this.$nextTick(() => {
this.$refs.hkVideoRef.initVideo(rtsp_url)
})
},
handleClose() {
this.hkVideoVisible = false
}
}
}
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
</style>

18
src/utils/request.js

@ -2,7 +2,7 @@ import axios from 'axios'
// import { Message } from 'element-ui'
// 创建axios实例
const service = axios.create({
// baseURL: process.env.NODE_ENV === 'production' ? process.env.VUE_APP_BASE_API : '/', // api 的 base_url
baseURL: process.env.NODE_ENV === 'production' ? window.g.ApiUrl : process.env.VUE_APP_BASE_API, // api 的 base_url
// baseURL: process.env.VUE_APP_BASE_API, // api 的 base_url
timeout: 1000 * 30, // 请求超时时间
headers: {
@ -16,14 +16,14 @@ service.interceptors.request.use(
// if (getToken()) {
// config.headers['Authorization'] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
// }
switch (config.urlType) {
case 'local':
config.url = (process.env.NODE_ENV === 'production' ? window.g.ApiUrl : process.env.VUE_APP_BASE_API) + config.url
break
case 'interlib':
config.url = (process.env.NODE_ENV === 'production' ? window.g.LibUrl : process.env.VUE_APP_LIB_API) + config.url
break
}
// switch (config.urlType) {
// case 'local':
// config.url = (process.env.NODE_ENV === 'production' ? window.g.ApiUrl : process.env.VUE_APP_BASE_API) + config.url
// break
// case 'interlib':
// config.url = (process.env.NODE_ENV === 'production' ? window.g.LibUrl : process.env.VUE_APP_LIB_API) + config.url
// break
// }
const token = '' // 登录后生成用于识别用户身份,项目不需要直接去掉
config.headers['Authorization'] = token || ''
return config

1
src/views/index.vue

@ -13,6 +13,7 @@
<ul class="nav-list">
<li>第五综合楼</li>
</ul>
<!-- 区域id 全景0 地下室1 32 水泵房3 -->
<ul class="submenu-list">
<li :class="{ 'active': currentIndex == 0 }" @click="changeActiveTab(0)">全景</li>
<li :class="{ 'active': currentIndex == 1 }" @click="changeActiveTab(1)">水泵房</li>

18
src/views/pageBasement/index.vue

@ -31,19 +31,22 @@
<div class="page-3d">3D中间</div>
<div v-show="!isGetClear" class="fullView-right" style="justify-content: flex-start;">
<Video />
<Video ref="cameraList" @view-video="handleViewVideo" />
<Alarm />
</div>
<!-- 查看监控视频 -->
<ViewVideo ref="camera" :dialog-open.sync="open" />
</div>
</template>
<script>
import Video from '@/components/video'
import Alarm from '@/components/alarm'
import ViewVideo from '@/components/viewVideo'
export default {
name: 'PageBasement',
components: { Video, Alarm },
components: { Video, Alarm, ViewVideo },
props: {
isGetClear: {
type: Boolean,
@ -63,8 +66,17 @@ export default {
beforeDestroy() {
},
mounted() {
this.$nextTick(() => {
this.$refs.cameraList.cameraList = []
this.$refs.cameraList.getCameraList('1')
})
},
methods: {
handleViewVideo(item) {
this.$refs.camera.videoTitle = item.name
this.$refs.camera.openVideo(item.rtsp_url)
}
}
}

59
src/views/pageFullView/index.vue

@ -4,13 +4,14 @@
<LeftDataModule v-show="!isGetClear" :x-axis-data="xAxisData" :pool-data="poolData" />
<!-- 3D -->
<div class="page-3d">
<iframe
3d模型
<!-- <iframe
ref="iframe"
class="iframe_box"
src="/webTotal/index.html"
frameborder="0"
scrolling="no"
/>
/> -->
</div>
<!-- 顶部设备 -->
<div v-show="!isGetClear" class="page-middle-top">
@ -84,9 +85,10 @@
</ul>
</div>
</div>
<Video />
<Video ref="cameraList" @view-video="handleViewVideo" />
<Alarm />
</div>
<ViewVideo ref="camera" :dialog-open.sync="open" />
</div>
</template>
@ -96,10 +98,11 @@ import CountTo from 'vue-count-to'
import LeftDataModule from './module/leftData'
import Video from '@/components/video'
import Alarm from '@/components/alarm'
import ViewVideo from '@/components/viewVideo'
export default {
name: 'PageFullView',
components: { CountTo, LeftDataModule, Video, Alarm },
components: { CountTo, LeftDataModule, Video, Alarm, ViewVideo },
props: {
isGetClear: {
type: Boolean,
@ -111,7 +114,8 @@ export default {
xAxisData: ['消防水池1', '消防水池2', '顶楼水箱'],
poolData: [40, 50, 0],
inDoorData: 0.06,
outDoorData: 0.7
outDoorData: 0.7,
open: false
}
},
computed: {
@ -121,11 +125,54 @@ export default {
activated() {
},
beforeDestroy() {
window.removeEventListener('message', this.handleMessageEvent)
},
mounted() {
// iframe
window.addEventListener('message', this.handleMessageEvent)
this.$nextTick(() => {
this.$refs.cameraList.cameraList = []
this.$refs.cameraList.getCameraList('0')
})
},
methods: {
handleMessageEvent(event) {
// const _this = this
if (event.data && event.data.data) {
const data = event.data.data
console.log(data)
// if (data === 'A') {
// _this.activeIndex = 1
// } else if (data === 'B') {
// _this.activeIndex = 2
// } else if (data === 'C') {
// _this.activeIndex = 3
// } else if (data === 'w') {
// _this.activeIndex = 5
// } else if (data === '') {
// _this.activeIndex = 6
// }
// console.log('this.camConfigData', this.camConfigData)
//
if (data.includes('C')) {
// const camConfig = this.camConfigData.find((x) => { return x.divPosition === data })
// console.log(1, camConfig)
// if (camConfig && camConfig.isDisplay && camConfig.bindState) {
// console.log(2, camConfig)
this.open = true
this.$nextTick(() => {
// this.$refs.camera.camConfig = camConfig
this.$refs.camera.videoTitle = data
this.$refs.camera.openVideo()
})
// }
}
}
},
handleViewVideo(item) {
this.$refs.camera.videoTitle = item.name
this.$refs.camera.openVideo(item.rtsp_url)
}
}
}

201
src/views/pageFullView/module/waterPressure22.vue

@ -1,201 +0,0 @@
<template>
<div id="main" :style="{height:height,width:width}" style="margin-top: -20px;" />
</template>
<script>
import * as echarts from 'echarts'
import resize from '@/utils/resizeMixins.js'
export default {
name: 'EchartsComponent',
mixins: [resize],
props: {
temperature: {
type: Number,
require: true,
default: function() {
return 0
}
},
width: {
type: String,
default: '50%'
},
height: {
type: String,
default: '100%'
}
},
watch: {
'temperature': {
handler(val) {
setTimeout(() => {
this.initChart()
}, 100)
},
immediate: true,
deep: true
}
},
mounted() {
this.initChart()
window.addEventListener('resize', this.__resizeHandler)
},
methods: {
initChart() {
const chartDom = document.getElementById('main')
const myChart = echarts.init(chartDom)
const itemStyleHandler = (value) => {
if (value <= 70) {
return `#56BC91`
} else if (value <= 90) {
return `#FF973E`
} else if (value <= 100) {
return `#fd666d`
}
return ''
}
const option = {
series: [
{
type: 'gauge',
center: ['40%', '38%'],
radius: 60,
startAngle: 235, //
endAngle: -55, //
min: 0,
max: 100,
splitNumber: 10,
itemStyle: {
color: itemStyleHandler(this.temperature)
},
progress: {
show: true,
width: 12,
roundCap: true,
itemStyle: {
//
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{ offset: 0, color: '#3966E3' },
{ offset: 0.2, color: '#0ACDFB' },
{ offset: 0.8, color: '#0ACDFB' },
{ offset: 1, color: '#3966E3' }
])
}
},
pointer: {
showAbove: true,
width: 4,
itemStyle: {
color: '#4896FF'
}
},
axisLine: {
roundCap: true,
lineStyle: {
width: 12,
color: [
[0.1, '#fff'],
[1, '#fff']
]
}
},
axisTick: {
show: false
},
splitLine: {
show: false
},
axisLabel: {
show: false
},
anchor: {
show: false
},
title: {
show: true,
offsetCenter: [0, '50%'],
fontSize: 14,
color: '#fff'
},
detail: {
valueAnimation: true,
width: '60%',
lineHeight: 40,
borderRadius: 8,
offsetCenter: [0, 50],
fontSize: 16,
fontWeight: 'bolder',
formatter: '{value} °C',
color: 'auto'
},
data: [
{
value: this.temperature,
name: '室内'
}
]
},
//
{
type: 'gauge',
radius: 80, //
center: ['40%', '38%'], //
min: 0,
max: 100,
startAngle: 235, //
endAngle: -55, //
axisLine: {
show: false,
lineStyle: {
width: 2,
color: '#999'
}
},
axisTick: {
show: true,
distance: 10,
length: 2,
splitNumber: '10', // 线
lineStyle: {
width: 1,
color: '#05D2FF'
}
},
splitLine: {
show: true,
distance: 10,
length: 4,
lineStyle: {
width: 1,
color: '#05D2FF'
}
},
axisLabel: {
show: false
},
pointer: {
show: false
},
detail: {
show: false
}
}
]
}
if (option) {
myChart.setOption(option)
}
}
}
}
</script>
<style scoped>
</style>

46
src/views/pageThirdFloor/index.vue

@ -14,22 +14,33 @@
</div>
<!-- 3D -->
<div class="page-3d">3D中间</div>
<div class="page-3d">
<iframe
ref="iframe"
class="iframe_box"
src="/webThird/index.html"
frameborder="0"
scrolling="no"
/>
</div>
<div v-show="!isGetClear" class="fullView-right" style="justify-content: flex-start;">
<Video />
<Video ref="cameraList" @view-video="handleViewVideo" />
<Alarm />
</div>
<!-- 查看监控视频 -->
<ViewVideo ref="camera" :dialog-open.sync="open" />
</div>
</template>
<script>
import Video from '@/components/video'
import Alarm from '@/components/alarm'
import ViewVideo from '@/components/viewVideo'
export default {
name: 'PageThirdFloor',
components: { Video, Alarm },
components: { Video, Alarm, ViewVideo },
props: {
isGetClear: {
type: Boolean,
@ -38,6 +49,7 @@ export default {
},
data() {
return {
open: false
}
},
computed: {
@ -47,10 +59,38 @@ export default {
activated() {
},
beforeDestroy() {
window.removeEventListener('message', this.handleMessageEvent)
},
mounted() {
// iframe
window.addEventListener('message', this.handleMessageEvent)
this.$nextTick(() => {
this.$refs.cameraList.cameraList = []
this.$refs.cameraList.getCameraList('2')
})
},
methods: {
handleMessageEvent(event) {
if (event.data && event.data.data) {
const data = event.data.data
console.log(data)
//
if (data.includes('C')) {
this.open = true
this.$nextTick(() => {
this.$refs.camera.camConfig = {
'id': data,
'area_id': '2'
}
this.$refs.camera.getVideoUrl()
})
}
}
},
handleViewVideo(item) {
this.$refs.camera.videoTitle = item.name
this.$refs.camera.openVideo(item.rtsp_url)
}
}
}

15
src/views/pageWaterPumpHouse/index.vue

@ -36,9 +36,11 @@
</ul>
</div>
</div>
<Video />
<Video ref="cameraList" @view-video="handleViewVideo" />
<Alarm />
</div>
<!-- 查看监控视频 -->
<ViewVideo ref="camera" :dialog-open.sync="open" />
</div>
</template>
@ -47,10 +49,11 @@
import LeftDataModule from '../pageFullView/module/leftData'
import Video from '@/components/video'
import Alarm from '@/components/alarm'
import ViewVideo from '@/components/viewVideo'
export default {
name: 'PageWaterPumpHouse',
components: { LeftDataModule, Video, Alarm },
components: { LeftDataModule, Video, Alarm, ViewVideo },
props: {
isGetClear: {
type: Boolean,
@ -109,8 +112,16 @@ export default {
beforeDestroy() {
},
mounted() {
this.$nextTick(() => {
this.$refs.cameraList.cameraList = []
this.$refs.cameraList.getCameraList('3')
})
},
methods: {
handleViewVideo(item) {
this.$refs.camera.videoTitle = item.name
this.$refs.camera.openVideo(item.rtsp_url)
}
}
}

Loading…
Cancel
Save