├── .gitignore ├── images ├── 框1.png ├── 框2.png ├── 框3.png ├── image.png ├── line.png ├── 天气1.png ├── 导航栏.png ├── 时间2.png ├── 框21.png ├── 状态栏.png ├── 登录3.png ├── 竖线0.png ├── 背景图.png ├── 退出4.png ├── header_bg.png ├── 图层 690 拷贝 6.png └── 智慧农业数据可视化____.png ├── draco ├── draco_decoder.wasm └── draco_wasm_wrapper.js ├── font └── DingTalkJinBuTi.woff2 ├── models └── LittlestTokyo.glb ├── package.json ├── README.md ├── css ├── tittle.css ├── navigation.css ├── model.css └── style.css ├── js ├── chart4.js ├── chart1.js ├── chart2.js ├── chart5.js ├── chart3.js └── chart6.js ├── index.html ├── style.css └── main.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /images/框1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishlk/Smart-Agriculture-and-Digital-Twins-demo/HEAD/images/框1.png -------------------------------------------------------------------------------- /images/框2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishlk/Smart-Agriculture-and-Digital-Twins-demo/HEAD/images/框2.png -------------------------------------------------------------------------------- /images/框3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishlk/Smart-Agriculture-and-Digital-Twins-demo/HEAD/images/框3.png -------------------------------------------------------------------------------- /images/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishlk/Smart-Agriculture-and-Digital-Twins-demo/HEAD/images/image.png -------------------------------------------------------------------------------- /images/line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishlk/Smart-Agriculture-and-Digital-Twins-demo/HEAD/images/line.png -------------------------------------------------------------------------------- /images/天气1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishlk/Smart-Agriculture-and-Digital-Twins-demo/HEAD/images/天气1.png -------------------------------------------------------------------------------- /images/导航栏.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishlk/Smart-Agriculture-and-Digital-Twins-demo/HEAD/images/导航栏.png -------------------------------------------------------------------------------- /images/时间2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishlk/Smart-Agriculture-and-Digital-Twins-demo/HEAD/images/时间2.png -------------------------------------------------------------------------------- /images/框21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishlk/Smart-Agriculture-and-Digital-Twins-demo/HEAD/images/框21.png -------------------------------------------------------------------------------- /images/状态栏.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishlk/Smart-Agriculture-and-Digital-Twins-demo/HEAD/images/状态栏.png -------------------------------------------------------------------------------- /images/登录3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishlk/Smart-Agriculture-and-Digital-Twins-demo/HEAD/images/登录3.png -------------------------------------------------------------------------------- /images/竖线0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishlk/Smart-Agriculture-and-Digital-Twins-demo/HEAD/images/竖线0.png -------------------------------------------------------------------------------- /images/背景图.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishlk/Smart-Agriculture-and-Digital-Twins-demo/HEAD/images/背景图.png -------------------------------------------------------------------------------- /images/退出4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishlk/Smart-Agriculture-and-Digital-Twins-demo/HEAD/images/退出4.png -------------------------------------------------------------------------------- /images/header_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishlk/Smart-Agriculture-and-Digital-Twins-demo/HEAD/images/header_bg.png -------------------------------------------------------------------------------- /images/图层 690 拷贝 6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishlk/Smart-Agriculture-and-Digital-Twins-demo/HEAD/images/图层 690 拷贝 6.png -------------------------------------------------------------------------------- /draco/draco_decoder.wasm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishlk/Smart-Agriculture-and-Digital-Twins-demo/HEAD/draco/draco_decoder.wasm -------------------------------------------------------------------------------- /font/DingTalkJinBuTi.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishlk/Smart-Agriculture-and-Digital-Twins-demo/HEAD/font/DingTalkJinBuTi.woff2 -------------------------------------------------------------------------------- /images/智慧农业数据可视化____.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishlk/Smart-Agriculture-and-Digital-Twins-demo/HEAD/images/智慧农业数据可视化____.png -------------------------------------------------------------------------------- /models/LittlestTokyo.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishlk/Smart-Agriculture-and-Digital-Twins-demo/HEAD/models/LittlestTokyo.glb -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "three": "^0.160.0" 4 | }, 5 | "devDependencies": { 6 | "vite": "^5.0.12" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ### Setup 2 | 3 | ``` 4 | git clone git@github.com:sunfishlk/Smart-Agriculture-and-Digital-Twins-demo.git 5 | ``` 6 | 7 | ``` 8 | cd Smart-Agriculture-and-Digital-Twins-demo 9 | ``` 10 | 11 | ``` 12 | npm install 13 | ``` 14 | 15 | ``` 16 | npx vite 17 | ``` 18 | 19 | ### 技术栈 20 | 21 | 使用`three.js`和`echarts.js`制作,模型为[ThreeJS官网首页](https://threejs.org)导入的[LittlestTokyo.glb](https://threejs.org/examples/#webgl_animation_keyframes)模型 22 | 23 | 示意图 -------------------------------------------------------------------------------- /css/tittle.css: -------------------------------------------------------------------------------- 1 | .tittle1 { 2 | height: 2.375rem; 3 | width: 10rem; 4 | margin-top: 0px; 5 | } 6 | 7 | .line { 8 | width: 9.5rem; 9 | height: 0.1875rem; 10 | background-image: url('../images/line.png'); 11 | } 12 | 13 | .tittle2 { 14 | height: 2.375rem; 15 | width: 10rem; 16 | padding: 1.25rem 0px 0px 1.25rem; 17 | 18 | } 19 | 20 | .common-span { 21 | font-size: 1.375rem; 22 | color: aliceblue; 23 | font-weight: 1000; 24 | letter-spacing: 0.375rem; 25 | outline: none; 26 | /* 定义一个自定义属性 --c,可以通过 var 函数对其调用 */ 27 | --c: rgb(51,204,255,0.7); 28 | /* 使用自定义属性 --c 设置文字阴影(产生发光效果) */ 29 | text-shadow: 0 0 10px var(--c), 30 | 0 0 20px var(--c), 31 | 0 0 40px var(--c), 32 | 0 0 80px var(--c), 33 | 0 0 160px var(--c); 34 | 35 | } 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /css/navigation.css: -------------------------------------------------------------------------------- 1 | .navigation { 2 | margin: 0; 3 | width: 100%; 4 | height: 9.5rem; 5 | background-image: url('../images/导航栏.png'); 6 | background-size: cover; 7 | text-align: center; 8 | position: relative; 9 | /* 添加相对定位 */ 10 | } 11 | 12 | .navigation span { 13 | position: absolute; 14 | /* 绝对定位 */ 15 | top: 1.25rem; 16 | /* 距离顶部20px */ 17 | left: 50%; 18 | /* 水平居中 */ 19 | transform: translateX(-50%); 20 | /* 水平居中 */ 21 | color: rgb(36, 200, 255); 22 | font-size: 2.875rem; 23 | font-weight: 700; 24 | letter-spacing: 0.125rem; 25 | /* 取消文字轮廓 */ 26 | outline: none; 27 | /* 执行动画:动画名为glowing,时长为2秒,无限次播放 */ 28 | animation: glowing 1.2s infinite; 29 | } 30 | 31 | /* 定义发光动画 */ 32 | @keyframes glowing { 33 | 0% { 34 | text-shadow: 0 0 10px rgb(115, 220, 255); 35 | } 36 | 37 | 25% { 38 | text-shadow: 0 0 20px rgb(115, 220, 255); 39 | } 40 | 41 | 50% { 42 | text-shadow: 0 0 30px rgb(115, 220, 255); 43 | } 44 | 45 | 75% { 46 | text-shadow: 0 0 20px rgb(115, 220, 255); 47 | } 48 | 49 | 100% { 50 | text-shadow: 0 0 10px rgb(115, 220, 255); 51 | } 52 | 53 | } -------------------------------------------------------------------------------- /js/chart4.js: -------------------------------------------------------------------------------- 1 | var myChart = echarts.init(document.getElementById('right1')); 2 | 3 | var option = { 4 | tooltip: { 5 | trigger: 'item' 6 | }, 7 | legend: { 8 | orient: 'vertical', // 设置图例垂直显示 9 | right: '6%', // 调整图例位置到右侧 10 | top: 'center', // 垂直居中 11 | textStyle: { 12 | color: 'white' // 设置图例文本颜色为白色 13 | } 14 | }, 15 | 16 | series: [ 17 | { 18 | name: 'Access From', 19 | type: 'pie', 20 | radius: ['40%', '80%'], 21 | center: ['40%', '47%'], 22 | avoidLabelOverlap: false, 23 | label: { 24 | show: false, 25 | position: 'center' 26 | }, 27 | emphasis: { 28 | label: { 29 | show: true, 30 | fontSize: 30, 31 | fontWeight: 'bold', 32 | color: 'white' // 设置强调标签的颜色为白色 33 | } 34 | }, 35 | labelLine: { 36 | show: false 37 | }, 38 | data: [ 39 | { value: 1048, name: '小麦' }, 40 | { value: 735, name: '大豆' }, 41 | { value: 580, name: '水稻' }, 42 | { value: 484, name: '苹果' }, 43 | { value: 300, name: '杂草' } 44 | ] 45 | } 46 | ], 47 | textStyle: { 48 | color: 'white' // 设置所有文本的颜色为白色 49 | } 50 | }; 51 | 52 | option && myChart.setOption(option); 53 | myChart.resize({ 54 | width: 350, 55 | height: 200 56 | }) -------------------------------------------------------------------------------- /js/chart1.js: -------------------------------------------------------------------------------- 1 | 2 | // 基于准备好的dom,初始化echarts实例 3 | // var myChart = echarts.init(document.querySelector('.middleB')); 4 | var myChart = echarts.init(document.getElementById('left1')); 5 | // 指定图表的配置项和数据 6 | var option = { 7 | tooltip: { 8 | trigger: 'axis', 9 | axisPointer: { 10 | type: 'cross', 11 | label: { 12 | backgroundColor: '#0098c9',//坐标抽上面图形颜色 13 | borderRadius: 5 14 | } 15 | } 16 | }, 17 | grid: { 18 | left: '10%', 19 | bottom: '10%', 20 | top: '8%' 21 | }, 22 | xAxis: { 23 | type: 'category', 24 | data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], 25 | axisLabel: { 26 | color: 'white' // 设置x轴文本颜色为白色 27 | } 28 | }, 29 | yAxis: { 30 | type: 'value', 31 | axisLabel: { 32 | color: 'white' // 设置x轴文本颜色为白色 33 | } 34 | }, 35 | series: [ 36 | { 37 | type: 'bar', 38 | data: [120, 200, 150, 80, 70, 110, 130], 39 | itemStyle: { 40 | color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ 41 | { offset: 0, color: 'rgb(76,240,249,0.9)' }, // 0% 处的颜色 42 | { offset: 1, color: 'rgb(0,151,200,0.9)' } // 100% 处的颜色,这里改为使用第一个渐变色 43 | ]) 44 | } 45 | } 46 | ] 47 | }; 48 | 49 | 50 | // 使用刚指定的配置项和数据显示图表。 51 | myChart.setOption(option); 52 | myChart.resize({ 53 | width: 350, 54 | height: 200 55 | }) -------------------------------------------------------------------------------- /js/chart2.js: -------------------------------------------------------------------------------- 1 | // var myChart = echarts.init(document.querySelector('.middleB')); 2 | var myChart = echarts.init(document.getElementById('left2')); 3 | // 指定图表的配置项和数据 4 | var option = { 5 | tooltip: { 6 | trigger: 'axis', 7 | axisPointer: { 8 | type: 'cross', 9 | label: { 10 | backgroundColor: '#0098c9', 11 | borderRadius: 5 12 | } 13 | } 14 | }, 15 | grid: { 16 | left: '10%', 17 | bottom: '10%', 18 | top: '8%' 19 | }, 20 | yAxis: { // 将原先的xAxis改成yAxis 21 | type: 'category', // 将原先的type改成category 22 | data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], 23 | axisLabel: { 24 | color: 'white' 25 | } 26 | }, 27 | xAxis: { // 将原先的yAxis改成xAxis 28 | type: 'value', // 将原先的type改成value 29 | axisLabel: { 30 | color: 'white' 31 | } 32 | }, 33 | series: [ 34 | { 35 | type: 'bar', // 将原先的type改成bar 36 | data: [120, 200, 150, 80, 70, 110, 130], 37 | itemStyle: { 38 | color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ 39 | { offset: 0, color: 'rgb(25,111,254,0.9)' }, // 0% 处的颜色 40 | { offset: 1, color: 'rgb(14,28,88,0.9)' } // 100% 处的颜色,这里改为使用第一个渐变色 41 | ]) 42 | } 43 | } 44 | ] 45 | }; 46 | 47 | 48 | 49 | // 使用刚指定的配置项和数据显示图表。 50 | myChart.setOption(option); 51 | myChart.resize({ 52 | width: 350, 53 | height: 200 54 | }) -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 智慧农业与数字孪生 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
智慧农业与数字孪生
16 |
17 |
18 |
基地情况
19 |
20 |
21 |
22 |
基地情况
23 |
24 |
25 |
26 |
降水量
27 |
28 |
29 |
30 |
种植情况
31 |
32 |
33 |
34 |
种植情况
35 |
36 |
37 |
38 |
降水量
39 |
40 |
41 |
42 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /css/model.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | background-color: #000; 4 | color: #fff; 5 | font-family: Monospace; 6 | font-size: 13px; 7 | line-height: 24px; 8 | overscroll-behavior: none; 9 | } 10 | 11 | a { 12 | color: #ff0; 13 | text-decoration: none; 14 | } 15 | 16 | a:hover { 17 | text-decoration: underline; 18 | } 19 | 20 | button { 21 | cursor: pointer; 22 | text-transform: uppercase; 23 | } 24 | 25 | #info { 26 | position: absolute; 27 | top: 0px; 28 | width: 100%; 29 | padding: 10px; 30 | box-sizing: border-box; 31 | text-align: center; 32 | -moz-user-select: none; 33 | -webkit-user-select: none; 34 | -ms-user-select: none; 35 | user-select: none; 36 | pointer-events: none; 37 | z-index: 1; /* TODO Solve this in HTML */ 38 | } 39 | 40 | a, button, input, select { 41 | pointer-events: auto; 42 | } 43 | 44 | .lil-gui { 45 | z-index: 2 !important; /* TODO Solve this in HTML */ 46 | } 47 | 48 | @media all and ( max-width: 640px ) { 49 | .lil-gui.root { 50 | right: auto; 51 | top: auto; 52 | max-height: 50%; 53 | max-width: 80%; 54 | bottom: 0; 55 | left: 0; 56 | } 57 | } 58 | 59 | #overlay { 60 | position: absolute; 61 | font-size: 16px; 62 | z-index: 2; 63 | top: 0; 64 | left: 0; 65 | width: 100%; 66 | height: 100%; 67 | display: flex; 68 | align-items: center; 69 | justify-content: center; 70 | flex-direction: column; 71 | background: rgba(0,0,0,0.7); 72 | } 73 | 74 | #overlay button { 75 | background: transparent; 76 | border: 0; 77 | border: 1px solid rgb(255, 255, 255); 78 | border-radius: 4px; 79 | color: #ffffff; 80 | padding: 12px 18px; 81 | text-transform: uppercase; 82 | cursor: pointer; 83 | } 84 | 85 | #notSupported { 86 | width: 50%; 87 | margin: auto; 88 | background-color: #f00; 89 | margin-top: 20px; 90 | padding: 10px; 91 | } 92 | -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | @font-face{ 2 | font-family: 'DingTalk'; 3 | src: url('font/DingTalkJinBuTi.woff2'); 4 | } 5 | *{ 6 | margin: 0; 7 | padding: 0; 8 | } 9 | header{ 10 | font-family: 'DingTalk'; 11 | position: absolute; 12 | color: white; 13 | text-align: center; 14 | width: 100vw; 15 | height: 60px; 16 | font-size: 1.5rem; 17 | background-image: url('images/header_bg.png'); 18 | background-size:100% 60px; 19 | } 20 | header>.title{ 21 | color: aqua; 22 | position: relative; 23 | top:10px; 24 | } 25 | .card1{ 26 | position: absolute; 27 | width: 350px; 28 | height: 240px; 29 | background-color: #061119; 30 | left:0%; 31 | top:8%; 32 | border: 1px solid white; 33 | border-radius: 5px; 34 | } 35 | .text{ 36 | text-align: center; 37 | font-size: 1rem; 38 | margin-top: 4px; 39 | font-family: 'DingTalk'; 40 | } 41 | .card2{ 42 | position: absolute; 43 | width: 350px; 44 | height: 240px; 45 | background-color: #061119; 46 | left:0%; 47 | top:38%; 48 | border: 1px solid white; 49 | border-radius: 5px; 50 | } 51 | .card3{ 52 | position: absolute; 53 | width: 350px; 54 | height: 240px; 55 | background-color: #061119; 56 | left:0%; 57 | top:68%; 58 | border: 1px solid white; 59 | border-radius: 5px; 60 | } 61 | .card4{ 62 | position: absolute; 63 | width: 350px; 64 | height: 240px; 65 | background-color: #061119; 66 | right:0%; 67 | top:8%; 68 | border: 1px solid white; 69 | border-radius: 5px; 70 | } 71 | .card5{ 72 | position: absolute; 73 | width: 350px; 74 | height: 240px; 75 | background-color: #061119; 76 | right:0%; 77 | top:38%; 78 | border: 1px solid white; 79 | border-radius: 5px; 80 | } 81 | .card6{ 82 | position: absolute; 83 | width: 350px; 84 | height: 240px; 85 | background-color: #061119; 86 | right:0%; 87 | top:68%; 88 | border: 1px solid white; 89 | border-radius: 5px; 90 | } -------------------------------------------------------------------------------- /main.js: -------------------------------------------------------------------------------- 1 | import * as THREE from 'three'; 2 | 3 | import Stats from 'three/addons/libs/stats.module.js'; 4 | 5 | import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; 6 | import { RoomEnvironment } from 'three/addons/environments/RoomEnvironment.js'; 7 | 8 | import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'; 9 | import { DRACOLoader } from 'three/addons/loaders/DRACOLoader.js'; 10 | 11 | let mixer; 12 | 13 | const clock = new THREE.Clock(); 14 | const container = document.getElementById('container'); 15 | 16 | const stats = new Stats(); 17 | //决定是否显示帧数 18 | // container.appendChild(stats.dom); 19 | 20 | const renderer = new THREE.WebGLRenderer({ antialias: true }); 21 | renderer.setPixelRatio(window.devicePixelRatio); 22 | renderer.setSize(window.innerWidth, window.innerHeight); 23 | container.appendChild(renderer.domElement); 24 | 25 | const pmremGenerator = new THREE.PMREMGenerator(renderer); 26 | 27 | const scene = new THREE.Scene(); 28 | // scene.background = new THREE.Color(0xbfe3dd); 29 | scene.background = new THREE.Color(0x0b1d2e); 30 | scene.environment = pmremGenerator.fromScene(new RoomEnvironment(renderer), 0.04).texture; 31 | 32 | const camera = new THREE.PerspectiveCamera(40, window.innerWidth / window.innerHeight, 1, 100); 33 | camera.position.set(5, 2, 8); 34 | 35 | const controls = new OrbitControls(camera, renderer.domElement); 36 | controls.target.set(0, 0.5, 0); 37 | controls.update(); 38 | controls.enablePan = false; 39 | controls.enableDamping = true; 40 | 41 | const dracoLoader = new DRACOLoader(); 42 | dracoLoader.setDecoderPath('draco/'); 43 | 44 | const loader = new GLTFLoader(); 45 | loader.setDRACOLoader(dracoLoader); 46 | loader.load('models/LittlestTokyo.glb', function (gltf) { 47 | 48 | const model = gltf.scene; 49 | model.position.set(1, 1, 0); 50 | model.scale.set(0.01, 0.01, 0.01); 51 | scene.add(model); 52 | 53 | mixer = new THREE.AnimationMixer(model); 54 | mixer.clipAction(gltf.animations[0]).play(); 55 | 56 | animate(); 57 | 58 | }, undefined, function (e) { 59 | 60 | console.error(e); 61 | 62 | }); 63 | 64 | 65 | window.onresize = function () { 66 | 67 | camera.aspect = window.innerWidth / window.innerHeight; 68 | camera.updateProjectionMatrix(); 69 | 70 | renderer.setSize(window.innerWidth, window.innerHeight); 71 | 72 | }; 73 | 74 | 75 | function animate() { 76 | 77 | requestAnimationFrame(animate); 78 | 79 | const delta = clock.getDelta(); 80 | 81 | mixer.update(delta); 82 | 83 | controls.update(); 84 | 85 | stats.update(); 86 | 87 | renderer.render(scene, camera); 88 | 89 | } 90 | -------------------------------------------------------------------------------- /js/chart5.js: -------------------------------------------------------------------------------- 1 | var myChart = echarts.init(document.getElementById('right2')); 2 | var option = { 3 | 4 | tooltip: { 5 | trigger: 'axis', 6 | axisPointer: { 7 | type: 'cross', 8 | label: { 9 | backgroundColor: '#0098c9', 10 | borderRadius: 5 11 | } 12 | } 13 | }, 14 | legend: { 15 | top:'5%', 16 | data: ['水稻', '小麦', '水果', '蔬菜', '其他'], 17 | textStyle: { 18 | color: 'white' // 设置图例文本颜色为白色 19 | } 20 | }, 21 | // toolbox: { 22 | // feature: { 23 | // saveAsImage: {} 24 | // } 25 | // }, 26 | grid: { 27 | left: '3%', 28 | right: '4%', 29 | bottom: '3%', 30 | containLabel: true 31 | }, 32 | xAxis: [ 33 | { 34 | type: 'category', 35 | boundaryGap: false, 36 | data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], 37 | axisLabel: { 38 | color: 'white' // 设置x轴文本颜色为白色 39 | } 40 | } 41 | ], 42 | yAxis: [ 43 | { 44 | type: 'value', 45 | min:0, 46 | max:2500, 47 | axisLabel: { 48 | color: 'white' // 设置y轴文本颜色为白色 49 | } 50 | } 51 | ], 52 | series: [ 53 | { 54 | name: '水稻', 55 | type: 'line', 56 | stack: 'Total', 57 | label: { 58 | show: false // 设置系列文本不显示 59 | }, 60 | areaStyle: {}, 61 | emphasis: { 62 | focus: 'series' 63 | }, 64 | data: [120, 132, 101, 134, 90, 230, 210] 65 | }, 66 | { 67 | name: '小麦', 68 | type: 'line', 69 | stack: 'Total', 70 | areaStyle: {}, 71 | emphasis: { 72 | focus: 'series' 73 | }, 74 | data: [220, 182, 191, 234, 290, 330, 310] 75 | }, 76 | { 77 | name: '水果', 78 | type: 'line', 79 | stack: 'Total', 80 | areaStyle: {}, 81 | emphasis: { 82 | focus: 'series' 83 | }, 84 | data: [150, 232, 201, 154, 190, 330, 410] 85 | }, 86 | { 87 | name: '蔬菜', 88 | type: 'line', 89 | stack: 'Total', 90 | areaStyle: {}, 91 | emphasis: { 92 | focus: 'series' 93 | }, 94 | data: [320, 332, 301, 334, 390, 330, 320] 95 | }, 96 | { 97 | name: '其他', 98 | type: 'line', 99 | stack: 'Total', 100 | label: { 101 | // show: true, 102 | position: 'top', 103 | color: 'white' // 设置系列文本颜色为白色 104 | }, 105 | areaStyle: {}, 106 | emphasis: { 107 | focus: 'series' 108 | }, 109 | data: [820, 932, 901, 934, 1290, 800, 738] 110 | } 111 | ] 112 | }; 113 | 114 | 115 | option && myChart.setOption(option); 116 | myChart.resize({ 117 | width: 350, 118 | height: 200 119 | }) -------------------------------------------------------------------------------- /js/chart3.js: -------------------------------------------------------------------------------- 1 | 2 | var myChart = echarts.init(document.getElementById('left3')); 3 | option = { 4 | grid:{ 5 | left:50, 6 | right:50, 7 | bottom:20, 8 | }, 9 | tooltip: { 10 | trigger: 'axis', 11 | axisPointer: { 12 | type: 'cross', 13 | crossStyle: { 14 | color: '#999' 15 | } 16 | } 17 | }, 18 | // toolbox: { 19 | // feature: { 20 | // dataView: { show: true, readOnly: false }, 21 | // magicType: { show: true, type: ['line', 'bar'] }, 22 | // restore: { show: true }, 23 | // saveAsImage: { show: true } 24 | // } 25 | // }, 26 | legend: { 27 | data: ['Evaporation', 'Precipitation', 'Temperature'], 28 | textStyle:{ 29 | color:'white' 30 | } 31 | }, 32 | xAxis: [ 33 | { 34 | type: 'category', 35 | data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], 36 | axisPointer: { 37 | type: 'shadow' 38 | }, 39 | axisLabel:{ 40 | textStyle:{ 41 | color:'white' 42 | } 43 | } 44 | }, 45 | ], 46 | yAxis: [ 47 | { 48 | type: 'value', 49 | name: 'Precipitation', 50 | min: 0, 51 | max: 250, 52 | interval: 50, 53 | axisLabel: { 54 | formatter: '{value} ml', 55 | textStyle:{ 56 | color:'white' 57 | } 58 | } 59 | }, 60 | { 61 | type: 'value', 62 | name: 'Temperature', 63 | min: 0, 64 | max: 25, 65 | interval: 5, 66 | axisLabel: { 67 | formatter: '{value} °C', 68 | textStyle:{ 69 | color:'white' 70 | } 71 | } 72 | } 73 | ], 74 | series: [ 75 | { 76 | name: 'Evaporation', 77 | type: 'bar', 78 | tooltip: { 79 | valueFormatter: function (value) { 80 | return value + ' ml'; 81 | } 82 | }, 83 | data: [ 84 | 2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3 85 | ], 86 | }, 87 | { 88 | name: 'Precipitation', 89 | type: 'bar', 90 | tooltip: { 91 | valueFormatter: function (value) { 92 | return value + ' ml'; 93 | } 94 | }, 95 | data: [ 96 | 2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3 97 | ] 98 | }, 99 | { 100 | name: 'Temperature', 101 | type: 'line', 102 | yAxisIndex: 1, 103 | tooltip: { 104 | valueFormatter: function (value) { 105 | return value + ' °C'; 106 | } 107 | }, 108 | data: [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2] 109 | } 110 | ] 111 | }; 112 | 113 | myChart.setOption(option); 114 | myChart.resize({ 115 | width: 350, 116 | height: 200 117 | }) -------------------------------------------------------------------------------- /css/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | padding: 0; 4 | height: 100vh; 5 | width: 100vw; 6 | overflow-x: hidden; 7 | background-image: url('../images/背景图.png'); 8 | 9 | 10 | /* background-size: cover; */ 11 | } 12 | 13 | .out{ 14 | position: absolute; 15 | } 16 | 17 | .main { 18 | display: flex; 19 | justify-content: center; 20 | align-items: center; 21 | } 22 | 23 | .left { 24 | width: 557px; 25 | height: 928px; 26 | margin-top: 0px; 27 | margin-left: 40px; 28 | 29 | } 30 | 31 | .right { 32 | width: 557px; 33 | height: 928px; 34 | margin-top: 0px; 35 | margin-right: 40px; 36 | 37 | } 38 | 39 | .middle { 40 | width: 682px; 41 | margin-left: 22px; 42 | margin-right: 22px; 43 | } 44 | 45 | 46 | .middleA { 47 | width: 682px; 48 | height: 581px; 49 | margin-bottom: 25px; 50 | display: flex; 51 | flex-direction: column; 52 | justify-content: center; 53 | align-items: center; 54 | /* background-color: rgb(137, 146, 146); */ 55 | 56 | } 57 | 58 | .middleB { 59 | width: 682px; 60 | height: 283px; 61 | background-image: url('../images/框3.png'); 62 | background-size: auto auto; 63 | } 64 | 65 | .leftA, 66 | .rightA { 67 | width: 557px; 68 | height: 581px; 69 | margin-bottom: 25px; 70 | background-image: url('../images/框1.png'); 71 | 72 | display: flex; 73 | flex-direction: column; 74 | justify-content: center; 75 | align-items: center; 76 | } 77 | 78 | .diva { 79 | margin-top: 20px; 80 | width: 520px; 81 | height: 300px; 82 | /* background-color: antiquewhite; */ 83 | } 84 | 85 | .divb { 86 | margin: 0px 20px 0px 20px; 87 | width: 520px; 88 | height: 275px; 89 | /* background-color: antiquewhite; */ 90 | } 91 | 92 | /* .leftA_top { 93 | 94 | } */ 95 | 96 | .leftB, 97 | .rightB { 98 | width: 557px; 99 | height: 283px; 100 | background-image: url('../images/框21.png'); 101 | 102 | } 103 | 104 | #weather { 105 | width: 80px; 106 | height: 40px; 107 | position: absolute; 108 | top: 20px; 109 | right: 400px; 110 | } 111 | 112 | #line1 { 113 | position: absolute; 114 | height: 30px; 115 | top: 25px; 116 | right: 375px; 117 | } 118 | 119 | #time { 120 | width: 180px; 121 | height: 38px; 122 | position: absolute; 123 | top: 20px; 124 | right: 170px; 125 | } 126 | 127 | #line2 { 128 | position: absolute; 129 | height: 30px; 130 | top: 25px; 131 | right: 150px; 132 | } 133 | 134 | #log { 135 | position: absolute; 136 | height: 40px; 137 | top: 20px; 138 | right: 30px; 139 | } 140 | 141 | #chart1 { 142 | width: 100%; 143 | height: 235px; 144 | /* background-color: bisque; */ 145 | } 146 | 147 | #chart2 { 148 | width: 100%; 149 | height: 235px; 150 | /* background-color: bisque; */ 151 | } 152 | 153 | #chart3 { 154 | width: 100%; 155 | height: 235px; 156 | /* background-color: bisque; */ 157 | } 158 | 159 | #chart4 { 160 | width: 100%; 161 | height: 235px; 162 | /* background-color: bisque; */ 163 | } 164 | 165 | #chart5 { 166 | width: 520px; 167 | height: 220px; 168 | margin: 0px 20px 0px 20px; 169 | /* background-color: aqua; */ 170 | } 171 | 172 | #chart6 { 173 | width: 520px; 174 | height: 220px; 175 | margin: 0px 20px 0px 20px; 176 | /* background-color: aqua; */ 177 | } 178 | 179 | #chart7 { 180 | width: 100%; 181 | margin: 0px 20px 0px 20px; 182 | height: 210px; 183 | /* background-color: aquamarine; */ 184 | 185 | } -------------------------------------------------------------------------------- /js/chart6.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | var app = {}; 4 | 5 | var chartDom = document.getElementById('right3'); 6 | var myChart = echarts.init(chartDom); 7 | var option; 8 | 9 | const categories = (function () { 10 | let now = new Date(); 11 | let res = []; 12 | let len = 10; 13 | while (len--) { 14 | res.unshift(now.toLocaleTimeString().replace(/^\D*/, '')); 15 | now = new Date(+now - 2000); 16 | } 17 | return res; 18 | })(); 19 | const categories2 = (function () { 20 | let res = []; 21 | let len = 10; 22 | while (len--) { 23 | res.push(10 - len - 1); 24 | } 25 | return res; 26 | })(); 27 | const data = (function () { 28 | let res = []; 29 | let len = 10; 30 | while (len--) { 31 | res.push(Math.round(Math.random() * 1000)); 32 | } 33 | return res; 34 | })(); 35 | const data2 = (function () { 36 | let res = []; 37 | let len = 0; 38 | while (len < 10) { 39 | res.push(+(Math.random() * 10 + 5).toFixed(1)); 40 | len++; 41 | } 42 | return res; 43 | })(); 44 | // -------------------------------------------------------------- 45 | 46 | option = { 47 | 48 | tooltip: { 49 | trigger: 'axis', 50 | axisPointer: { 51 | type: 'cross', 52 | label: { 53 | backgroundColor: '#0098c9', 54 | borderRadius: 5, 55 | textStyle: { 56 | color: '#fff' // 设置字体颜色为白色 57 | } 58 | } 59 | } 60 | }, 61 | grid: { 62 | left:'10%', 63 | right:'13%', 64 | bottom:'12%', 65 | top:'22%' 66 | }, 67 | legend: { 68 | textStyle: { 69 | color: 'white' // 设置图例文本颜色为白色 70 | } 71 | }, 72 | toolbox: { 73 | show: true, 74 | // feature: { 75 | // dataView: { readOnly: false }, 76 | // restore: {}, 77 | // saveAsImage: {} 78 | // } 79 | }, 80 | dataZoom: { 81 | show: false, 82 | start: 0, 83 | end: 100 84 | }, 85 | xAxis: [ 86 | { 87 | type: 'category', 88 | boundaryGap: true, 89 | data: categories, 90 | axisLabel: { 91 | textStyle: { 92 | color: '#fff' // 设置字体颜色为白色 93 | } 94 | } 95 | }, 96 | { 97 | type: 'category', 98 | boundaryGap: true, 99 | data: categories2, 100 | axisLabel: { 101 | textStyle: { 102 | color: '#fff' // 设置字体颜色为白色 103 | } 104 | } 105 | } 106 | ], 107 | yAxis: [ 108 | { 109 | type: 'value', 110 | scale: true, 111 | name: '', 112 | max: 30, 113 | min: 0, 114 | boundaryGap: [0.2, 0.2], 115 | axisLabel: { 116 | textStyle: { 117 | color: '#fff' // 设置字体颜色为白色 118 | } 119 | } 120 | }, 121 | { 122 | type: 'value', 123 | scale: true, 124 | name: '', 125 | max: 1200, 126 | min: 0, 127 | boundaryGap: [0.2, 0.2], 128 | axisLabel: { 129 | textStyle: { 130 | color: '#fff' // 设置字体颜色为白色 131 | } 132 | } 133 | } 134 | ], 135 | series: [ 136 | { 137 | name: 'Dynamic Bar', 138 | type: 'bar', 139 | xAxisIndex: 1, 140 | yAxisIndex: 1, 141 | data: data 142 | }, 143 | { 144 | name: 'Dynamic Line', 145 | type: 'line', 146 | data: data2 147 | } 148 | ] 149 | }; 150 | app.count = 11; 151 | setInterval(function () { 152 | let axisData = new Date().toLocaleTimeString().replace(/^\D*/, ''); 153 | data.shift(); 154 | data.push(Math.round(Math.random() * 1000)); 155 | data2.shift(); 156 | data2.push(+(Math.random() * 10 + 5).toFixed(1)); 157 | categories.shift(); 158 | categories.push(axisData); 159 | categories2.shift(); 160 | categories2.push(app.count++); 161 | myChart.setOption({ 162 | xAxis: [ 163 | { 164 | data: categories 165 | }, 166 | { 167 | data: categories2 168 | } 169 | ], 170 | series: [ 171 | { 172 | data: data 173 | }, 174 | { 175 | data: data2 176 | } 177 | ] 178 | }); 179 | }, 2100); 180 | 181 | option && myChart.setOption(option); 182 | myChart.resize({ 183 | width: 350, 184 | height: 200 185 | }) -------------------------------------------------------------------------------- /draco/draco_wasm_wrapper.js: -------------------------------------------------------------------------------- 1 | var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.arrayIteratorImpl=function(h){var n=0;return function(){return n>>0,$jscomp.propertyToPolyfillSymbol[l]=$jscomp.IS_SYMBOL_NATIVE? 7 | $jscomp.global.Symbol(l):$jscomp.POLYFILL_PREFIX+k+"$"+l),$jscomp.defineProperty(p,$jscomp.propertyToPolyfillSymbol[l],{configurable:!0,writable:!0,value:n})))}; 8 | $jscomp.polyfill("Promise",function(h){function n(){this.batch_=null}function k(f){return f instanceof l?f:new l(function(q,u){q(f)})}if(h&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return h;n.prototype.asyncExecute=function(f){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(f)}; 9 | var p=$jscomp.global.setTimeout;n.prototype.asyncExecuteFunction=function(f){p(f,0)};n.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var f=this.batch_;this.batch_=[];for(var q=0;q=y}},"es6","es3"); 19 | $jscomp.polyfill("Array.prototype.copyWithin",function(h){function n(k){k=Number(k);return Infinity===k||-Infinity===k?k:k|0}return h?h:function(k,p,l){var y=this.length;k=n(k);p=n(p);l=void 0===l?y:n(l);k=0>k?Math.max(y+k,0):Math.min(k,y);p=0>p?Math.max(y+p,0):Math.min(p,y);l=0>l?Math.max(y+l,0):Math.min(l,y);if(kp;)--l in this?this[--k]=this[l]:delete this[--k];return this}},"es6","es3"); 20 | $jscomp.typedArrayCopyWithin=function(h){return h?h:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); 21 | $jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); 22 | var DracoDecoderModule=function(){var h="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(h=h||__filename);return function(n){function k(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b){if(e){var c=ia;var d=e+b;for(b=e;c[b]&&!(b>=d);)++b;if(16g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}c=d}}else c="";return c}function l(){var e=ja.buffer;a.HEAP8=W=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=ia=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=Y=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function y(e){if(a.onAbort)a.onAbort(e); 24 | e="Aborted("+e+")";da(e);sa=!0;e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info.");ka(e);throw e;}function f(e){try{if(e==P&&ea)return new Uint8Array(ea);if(ma)return ma(e);throw"both async and sync fetching of the wasm failed";}catch(b){y(b)}}function q(){if(!ea&&(ta||fa)){if("function"==typeof fetch&&!P.startsWith("file://"))return fetch(P,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+P+"'";return e.arrayBuffer()}).catch(function(){return f(P)}); 25 | if(na)return new Promise(function(e,b){na(P,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return f(P)})}function u(e){for(;0>2]=b};this.get_type=function(){return Y[this.ptr+4>>2]};this.set_destructor=function(b){Y[this.ptr+8>>2]=b};this.get_destructor=function(){return Y[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){W[this.ptr+ 26 | 12>>0]=b?1:0};this.get_caught=function(){return 0!=W[this.ptr+12>>0]};this.set_rethrown=function(b){W[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=W[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){Y[this.ptr+ 27 | 16>>2]=b};this.get_adjusted_ptr=function(){return Y[this.ptr+16>>2]};this.get_exception_ptr=function(){if(ua(this.get_type()))return Y[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function F(){function e(){if(!la&&(la=!0,a.calledRun=!0,!sa)){va=!0;u(oa);wa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)xa.unshift(a.postRun.shift());u(xa)}}if(!(0=d?b++:2047>=d?b+=2:55296<=d&&57343>= 29 | d?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0=t){var aa=e.charCodeAt(++g);t=65536+((t&1023)<<10)|aa&1023}if(127>=t){if(c>=d)break;b[c++]=t}else{if(2047>=t){if(c+1>=d)break;b[c++]=192|t>>6}else{if(65535>=t){if(c+2>=d)break;b[c++]=224|t>>12}else{if(c+3>=d)break;b[c++]=240|t>>18;b[c++]=128|t>>12&63}b[c++]=128|t>>6&63}b[c++]=128|t&63}}b[c]=0}e=r.alloc(b,W);r.copy(b,W,e);return e}return e}function Z(e){if("object"=== 30 | typeof e){var b=r.alloc(e,W);r.copy(e,W,b);return b}return e}function X(){throw"cannot construct a VoidPtr, no constructor in IDL";}function S(){this.ptr=za();w(S)[this.ptr]=this}function Q(){this.ptr=Aa();w(Q)[this.ptr]=this}function V(){this.ptr=Ba();w(V)[this.ptr]=this}function x(){this.ptr=Ca();w(x)[this.ptr]=this}function D(){this.ptr=Da();w(D)[this.ptr]=this}function G(){this.ptr=Ea();w(G)[this.ptr]=this}function H(){this.ptr=Fa();w(H)[this.ptr]=this}function E(){this.ptr=Ga();w(E)[this.ptr]= 31 | this}function T(){this.ptr=Ha();w(T)[this.ptr]=this}function C(){throw"cannot construct a Status, no constructor in IDL";}function I(){this.ptr=Ia();w(I)[this.ptr]=this}function J(){this.ptr=Ja();w(J)[this.ptr]=this}function K(){this.ptr=Ka();w(K)[this.ptr]=this}function L(){this.ptr=La();w(L)[this.ptr]=this}function M(){this.ptr=Ma();w(M)[this.ptr]=this}function N(){this.ptr=Na();w(N)[this.ptr]=this}function O(){this.ptr=Oa();w(O)[this.ptr]=this}function z(){this.ptr=Pa();w(z)[this.ptr]=this}function m(){this.ptr= 32 | Qa();w(m)[this.ptr]=this}n=void 0===n?{}:n;var a="undefined"!=typeof n?n:{},wa,ka;a.ready=new Promise(function(e,b){wa=e;ka=b});var Ra=!1,Sa=!1;a.onRuntimeInitialized=function(){Ra=!0;if(Sa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Sa=!0;if(Ra&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if("string"!==typeof e)return!1;e=e.split(".");return 2>e.length||3=e[1]?!0:0!=e[0]||10< 33 | e[1]?!1:!0};var Ta=Object.assign({},a),ta="object"==typeof window,fa="function"==typeof importScripts,Ua="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,U="";if(Ua){var Va=require("fs"),pa=require("path");U=fa?pa.dirname(U)+"/":__dirname+"/";var Wa=function(e,b){e=e.startsWith("file://")?new URL(e):pa.normalize(e);return Va.readFileSync(e,b?void 0:"utf8")};var ma=function(e){e=Wa(e,!0);e.buffer||(e=new Uint8Array(e));return e};var na=function(e, 34 | b,c){e=e.startsWith("file://")?new URL(e):pa.normalize(e);Va.readFile(e,function(d,g){d?c(d):b(g.buffer)})};1>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{d=ja.buffer;try{ja.grow(g-d.byteLength+65535>>>16);l();var t=1;break a}catch(aa){}t=void 0}if(t)return!0}return!1}};(function(){function e(g,t){a.asm=g.exports;ja=a.asm.e;l();oa.unshift(a.asm.f);ba--;a.monitorRunDependencies&&a.monitorRunDependencies(ba);0==ba&&(null!==qa&&(clearInterval(qa),qa=null),ha&&(g=ha,ha=null,g()))}function b(g){e(g.instance)} 38 | function c(g){return q().then(function(t){return WebAssembly.instantiate(t,d)}).then(function(t){return t}).then(g,function(t){da("failed to asynchronously prepare wasm: "+t);y(t)})}var d={a:qd};ba++;a.monitorRunDependencies&&a.monitorRunDependencies(ba);if(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){da("Module.instantiateWasm callback failed with error: "+g),ka(g)}(function(){return ea||"function"!=typeof WebAssembly.instantiateStreaming||P.startsWith("data:application/octet-stream;base64,")|| 39 | P.startsWith("file://")||Ua||"function"!=typeof fetch?c(b):fetch(P,{credentials:"same-origin"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(t){da("wasm streaming compile failed: "+t);da("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(ka);return{}})();var Xa=a._emscripten_bind_VoidPtr___destroy___0=function(){return(Xa=a._emscripten_bind_VoidPtr___destroy___0=a.asm.h).apply(null,arguments)},za=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0= 40 | function(){return(za=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.i).apply(null,arguments)},Ya=a._emscripten_bind_DecoderBuffer_Init_2=function(){return(Ya=a._emscripten_bind_DecoderBuffer_Init_2=a.asm.j).apply(null,arguments)},Za=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return(Za=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.k).apply(null,arguments)},Aa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Aa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0= 41 | a.asm.l).apply(null,arguments)},$a=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return($a=a._emscripten_bind_AttributeTransformData_transform_type_0=a.asm.m).apply(null,arguments)},ab=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return(ab=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.n).apply(null,arguments)},Ba=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(Ba=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0= 42 | a.asm.o).apply(null,arguments)},bb=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(bb=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.p).apply(null,arguments)},Ca=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Ca=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.q).apply(null,arguments)},cb=a._emscripten_bind_PointAttribute_size_0=function(){return(cb=a._emscripten_bind_PointAttribute_size_0=a.asm.r).apply(null,arguments)},db=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0= 43 | function(){return(db=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.s).apply(null,arguments)},eb=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(eb=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.t).apply(null,arguments)},fb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(fb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.u).apply(null,arguments)},gb=a._emscripten_bind_PointAttribute_num_components_0=function(){return(gb=a._emscripten_bind_PointAttribute_num_components_0= 44 | a.asm.v).apply(null,arguments)},hb=a._emscripten_bind_PointAttribute_normalized_0=function(){return(hb=a._emscripten_bind_PointAttribute_normalized_0=a.asm.w).apply(null,arguments)},ib=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(ib=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.x).apply(null,arguments)},jb=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(jb=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.y).apply(null,arguments)},kb=a._emscripten_bind_PointAttribute_unique_id_0= 45 | function(){return(kb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.z).apply(null,arguments)},lb=a._emscripten_bind_PointAttribute___destroy___0=function(){return(lb=a._emscripten_bind_PointAttribute___destroy___0=a.asm.A).apply(null,arguments)},Da=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Da=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.B).apply(null,arguments)},mb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1= 46 | function(){return(mb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.C).apply(null,arguments)},nb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(nb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.D).apply(null,arguments)},ob=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(ob=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.E).apply(null,arguments)},pb= 47 | a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(pb=a._emscripten_bind_AttributeQuantizationTransform_range_0=a.asm.F).apply(null,arguments)},qb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(qb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=a.asm.G).apply(null,arguments)},Ea=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Ea=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0= 48 | a.asm.H).apply(null,arguments)},rb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(rb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.I).apply(null,arguments)},sb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(sb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.J).apply(null,arguments)},tb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(tb= 49 | a._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.K).apply(null,arguments)},Fa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(Fa=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.L).apply(null,arguments)},ub=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(ub=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.M).apply(null,arguments)},vb=a._emscripten_bind_PointCloud_num_points_0=function(){return(vb=a._emscripten_bind_PointCloud_num_points_0=a.asm.N).apply(null, 50 | arguments)},wb=a._emscripten_bind_PointCloud___destroy___0=function(){return(wb=a._emscripten_bind_PointCloud___destroy___0=a.asm.O).apply(null,arguments)},Ga=a._emscripten_bind_Mesh_Mesh_0=function(){return(Ga=a._emscripten_bind_Mesh_Mesh_0=a.asm.P).apply(null,arguments)},xb=a._emscripten_bind_Mesh_num_faces_0=function(){return(xb=a._emscripten_bind_Mesh_num_faces_0=a.asm.Q).apply(null,arguments)},yb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(yb=a._emscripten_bind_Mesh_num_attributes_0= 51 | a.asm.R).apply(null,arguments)},zb=a._emscripten_bind_Mesh_num_points_0=function(){return(zb=a._emscripten_bind_Mesh_num_points_0=a.asm.S).apply(null,arguments)},Ab=a._emscripten_bind_Mesh___destroy___0=function(){return(Ab=a._emscripten_bind_Mesh___destroy___0=a.asm.T).apply(null,arguments)},Ha=a._emscripten_bind_Metadata_Metadata_0=function(){return(Ha=a._emscripten_bind_Metadata_Metadata_0=a.asm.U).apply(null,arguments)},Bb=a._emscripten_bind_Metadata___destroy___0=function(){return(Bb=a._emscripten_bind_Metadata___destroy___0= 52 | a.asm.V).apply(null,arguments)},Cb=a._emscripten_bind_Status_code_0=function(){return(Cb=a._emscripten_bind_Status_code_0=a.asm.W).apply(null,arguments)},Db=a._emscripten_bind_Status_ok_0=function(){return(Db=a._emscripten_bind_Status_ok_0=a.asm.X).apply(null,arguments)},Eb=a._emscripten_bind_Status_error_msg_0=function(){return(Eb=a._emscripten_bind_Status_error_msg_0=a.asm.Y).apply(null,arguments)},Fb=a._emscripten_bind_Status___destroy___0=function(){return(Fb=a._emscripten_bind_Status___destroy___0= 53 | a.asm.Z).apply(null,arguments)},Ia=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ia=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=a.asm._).apply(null,arguments)},Gb=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Gb=a._emscripten_bind_DracoFloat32Array_GetValue_1=a.asm.$).apply(null,arguments)},Hb=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Hb=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.aa).apply(null,arguments)},Ib= 54 | a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Ib=a._emscripten_bind_DracoFloat32Array___destroy___0=a.asm.ba).apply(null,arguments)},Ja=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Ja=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.ca).apply(null,arguments)},Jb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Jb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.da).apply(null,arguments)},Kb=a._emscripten_bind_DracoInt8Array_size_0= 55 | function(){return(Kb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.ea).apply(null,arguments)},Lb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Lb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.fa).apply(null,arguments)},Ka=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Ka=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=a.asm.ga).apply(null,arguments)},Mb=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Mb=a._emscripten_bind_DracoUInt8Array_GetValue_1= 56 | a.asm.ha).apply(null,arguments)},Nb=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Nb=a._emscripten_bind_DracoUInt8Array_size_0=a.asm.ia).apply(null,arguments)},Ob=a._emscripten_bind_DracoUInt8Array___destroy___0=function(){return(Ob=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.ja).apply(null,arguments)},La=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(La=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.ka).apply(null,arguments)},Pb=a._emscripten_bind_DracoInt16Array_GetValue_1= 57 | function(){return(Pb=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.la).apply(null,arguments)},Qb=a._emscripten_bind_DracoInt16Array_size_0=function(){return(Qb=a._emscripten_bind_DracoInt16Array_size_0=a.asm.ma).apply(null,arguments)},Rb=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Rb=a._emscripten_bind_DracoInt16Array___destroy___0=a.asm.na).apply(null,arguments)},Ma=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Ma=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0= 58 | a.asm.oa).apply(null,arguments)},Sb=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(Sb=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.pa).apply(null,arguments)},Tb=a._emscripten_bind_DracoUInt16Array_size_0=function(){return(Tb=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.qa).apply(null,arguments)},Ub=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return(Ub=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.ra).apply(null,arguments)},Na=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0= 59 | function(){return(Na=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=a.asm.sa).apply(null,arguments)},Vb=a._emscripten_bind_DracoInt32Array_GetValue_1=function(){return(Vb=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.ta).apply(null,arguments)},Wb=a._emscripten_bind_DracoInt32Array_size_0=function(){return(Wb=a._emscripten_bind_DracoInt32Array_size_0=a.asm.ua).apply(null,arguments)},Xb=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(Xb=a._emscripten_bind_DracoInt32Array___destroy___0= 60 | a.asm.va).apply(null,arguments)},Oa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(Oa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=a.asm.wa).apply(null,arguments)},Yb=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(Yb=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.xa).apply(null,arguments)},Zb=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(Zb=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.ya).apply(null,arguments)},$b=a._emscripten_bind_DracoUInt32Array___destroy___0= 61 | function(){return($b=a._emscripten_bind_DracoUInt32Array___destroy___0=a.asm.za).apply(null,arguments)},Pa=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return(Pa=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Aa).apply(null,arguments)},ac=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(ac=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Ba).apply(null,arguments)},bc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(bc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2= 62 | a.asm.Ca).apply(null,arguments)},cc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(cc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=a.asm.Da).apply(null,arguments)},dc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(dc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=a.asm.Ea).apply(null,arguments)},ec=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(ec=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Fa).apply(null, 63 | arguments)},fc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(fc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ga).apply(null,arguments)},gc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(gc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.Ha).apply(null,arguments)},hc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(hc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.Ia).apply(null,arguments)},Qa=a._emscripten_bind_Decoder_Decoder_0= 64 | function(){return(Qa=a._emscripten_bind_Decoder_Decoder_0=a.asm.Ja).apply(null,arguments)},ic=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(ic=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.Ka).apply(null,arguments)},jc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(jc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.La).apply(null,arguments)},kc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(kc=a._emscripten_bind_Decoder_GetAttributeId_2= 65 | a.asm.Ma).apply(null,arguments)},lc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(lc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=a.asm.Na).apply(null,arguments)},mc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(mc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=a.asm.Oa).apply(null,arguments)},nc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(nc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Pa).apply(null,arguments)}, 66 | oc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(oc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=a.asm.Qa).apply(null,arguments)},pc=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(pc=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Ra).apply(null,arguments)},qc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(qc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Sa).apply(null,arguments)},rc=a._emscripten_bind_Decoder_GetFaceFromMesh_3= 67 | function(){return(rc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Ta).apply(null,arguments)},sc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=function(){return(sc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Ua).apply(null,arguments)},tc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(tc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=a.asm.Va).apply(null,arguments)},uc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(uc= 68 | a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm.Wa).apply(null,arguments)},vc=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(vc=a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm.Xa).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(wc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.Ya).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(xc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3= 69 | a.asm.Za).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(yc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm._a).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(zc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.$a).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Ac=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3= 70 | a.asm.ab).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=function(){return(Bc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.bb).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Cc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=a.asm.cb).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Dc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3= 71 | a.asm.db).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=function(){return(Ec=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.eb).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Fc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=a.asm.fb).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Gc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1= 72 | a.asm.gb).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=function(){return(Hc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.hb).apply(null,arguments)},Ic=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Ic=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=a.asm.ib).apply(null,arguments)},Jc=a._emscripten_bind_Decoder___destroy___0=function(){return(Jc=a._emscripten_bind_Decoder___destroy___0=a.asm.jb).apply(null,arguments)},Kc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM= 73 | function(){return(Kc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=a.asm.kb).apply(null,arguments)},Lc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Lc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=a.asm.lb).apply(null,arguments)},Mc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Mc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM= 74 | a.asm.mb).apply(null,arguments)},Nc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=function(){return(Nc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.nb).apply(null,arguments)},Oc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(Oc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.ob).apply(null,arguments)},Pc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(Pc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION= 75 | a.asm.pb).apply(null,arguments)},Qc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(Qc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.qb).apply(null,arguments)},Rc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Rc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.rb).apply(null,arguments)},Sc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Sc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD= 76 | a.asm.sb).apply(null,arguments)},Tc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(Tc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.tb).apply(null,arguments)},Uc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(Uc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.ub).apply(null,arguments)},Vc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(Vc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD= 77 | a.asm.vb).apply(null,arguments)},Wc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(Wc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.wb).apply(null,arguments)},Xc=a._emscripten_enum_draco_DataType_DT_INVALID=function(){return(Xc=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.xb).apply(null,arguments)},Yc=a._emscripten_enum_draco_DataType_DT_INT8=function(){return(Yc=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.yb).apply(null,arguments)},Zc= 78 | a._emscripten_enum_draco_DataType_DT_UINT8=function(){return(Zc=a._emscripten_enum_draco_DataType_DT_UINT8=a.asm.zb).apply(null,arguments)},$c=a._emscripten_enum_draco_DataType_DT_INT16=function(){return($c=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Ab).apply(null,arguments)},ad=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(ad=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Bb).apply(null,arguments)},bd=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(bd=a._emscripten_enum_draco_DataType_DT_INT32= 79 | a.asm.Cb).apply(null,arguments)},cd=a._emscripten_enum_draco_DataType_DT_UINT32=function(){return(cd=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Db).apply(null,arguments)},dd=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(dd=a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Eb).apply(null,arguments)},ed=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(ed=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Fb).apply(null,arguments)},fd=a._emscripten_enum_draco_DataType_DT_FLOAT32= 80 | function(){return(fd=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Gb).apply(null,arguments)},gd=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(gd=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Hb).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(hd=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Ib).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(id=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT= 81 | a.asm.Jb).apply(null,arguments)},jd=a._emscripten_enum_draco_StatusCode_OK=function(){return(jd=a._emscripten_enum_draco_StatusCode_OK=a.asm.Kb).apply(null,arguments)},kd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(kd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Lb).apply(null,arguments)},ld=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(ld=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Mb).apply(null,arguments)},md=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER= 82 | function(){return(md=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=a.asm.Nb).apply(null,arguments)},nd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(nd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=a.asm.Ob).apply(null,arguments)},od=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(od=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Pb).apply(null,arguments)};a._malloc=function(){return(a._malloc=a.asm.Qb).apply(null,arguments)}; 83 | a._free=function(){return(a._free=a.asm.Rb).apply(null,arguments)};var ua=function(){return(ua=a.asm.Sb).apply(null,arguments)};a.___start_em_js=11660;a.___stop_em_js=11758;var la;ha=function b(){la||F();la||(ha=b)};if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0=r.size?(0>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;gb.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD;case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}();"object"===typeof exports&&"object"===typeof module?module.exports=DracoDecoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):"object"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule); 117 | --------------------------------------------------------------------------------