fl-web-component 2.0.11 → 2.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
@charset "UTF-8";.fl-model-containor[data-v-bfae141c]{width:100%;height:100%;position:relative;cursor:pointer}[data-v-bfae141c] .tips-label{width:60px;color:#000;font:12px Helvetica;margin-top:-3em;padding:5px;text-align:center;vertical-align:middle;background-color:khaki}[data-v-bfae141c] .measure-label{max-width:100px;margin-top:-1em;border:10px;border-radius:5px;padding:3px 10px;cursor:pointer;color:#009bea;background-color:#f4f4f4;-webkit-box-shadow:0 1px 3px 1px rgba(0,0,0,.25);box-shadow:0 1px 3px 1px rgba(0,0,0,.25)}[data-v-bfae141c] .circle-tag{width:10px;height:10px;margin-top:5px;border-radius:50%;background-color:#ff5000}[data-v-bfae141c] .measure-label-font{word-break:break-all}[data-v-bfae141c] .mark-label-img{padding-top:5px;width:20px;height:20px}.loading-overlay[data-v-bfae141c]{position:absolute;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.7);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;z-index:1000;opacity:0;visibility:hidden;-webkit-transition:opacity .3s ease,visibility .3s ease;transition:opacity .3s ease,visibility .3s ease}.loading-overlay--visible[data-v-bfae141c]{opacity:1;visibility:visible}.loading-content[data-v-bfae141c]{background:#fff;border-radius:12px;padding:30px;text-align:center;-webkit-box-shadow:0 8px 32px rgba(0,0,0,.3);box-shadow:0 8px 32px rgba(0,0,0,.3);min-width:300px;max-width:400px}.loading-spinner[data-v-bfae141c]{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #409eff;border-radius:50%;-webkit-animation:spin-bfae141c 1s linear infinite;animation:spin-bfae141c 1s linear infinite;margin:0 auto 20px}@-webkit-keyframes spin-bfae141c{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin-bfae141c{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.loading-text[data-v-bfae141c]{font-size:16px;font-weight:500;color:#333;margin-bottom:20px}.loading-this.progress-bar[data-v-bfae141c]{width:100%;height:8px;background-color:#f0f0f0;border-radius:4px;overflow:hidden;margin-bottom:15px}.loading-this.progress-fill[data-v-bfae141c]{height:100%;background:-webkit-gradient(linear,left top,right top,from(#409eff),to(#67c23a));background:linear-gradient(90deg,#409eff,#67c23a);border-radius:4px;-webkit-transition:width .3s ease;transition:width .3s ease}.loading-details[data-v-bfae141c]{font-size:12px;color:#666;line-height:1.5}.lil-this.gui{background:hsla(0,0%,100%,.95)!important;border:1px solid #e0e0e0!important;border-radius:8px!important;-webkit-box-shadow:0 4px 12px rgba(0,0,0,.15)!important;box-shadow:0 4px 12px rgba(0,0,0,.15)!important;backdrop-filter:blur(10px)!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important}.lil-this.gui .title{background:linear-gradient(135deg,#f8f9fa,#e9ecef)!important;color:#495057!important;border-bottom:1px solid #dee2e6!important;font-weight:600!important;padding:0 12px!important;border-radius:8px 8px 0 0!important}.lil-this.gui .controller{border-bottom:1px solid #f1f3f4!important;background:transparent!important}.lil-this.gui .controller:last-child{border-bottom:none!important}.lil-this.gui .controller .name{color:#495057!important;font-weight:500!important;font-size:12px!important}.lil-this.gui .controller .widget{background:#f8f9fa!important;border:1px solid #ced4da!important;border-radius:4px!important;color:#495057!important}.lil-this.gui .controller .widget:focus,.lil-this.gui .controller .widget:hover{border-color:#80bdff!important;-webkit-box-shadow:0 0 0 2px rgba(0,123,255,.25)!important;box-shadow:0 0 0 2px rgba(0,123,255,.25)!important}.lil-this.gui .controller .widget:focus{outline:none!important}.lil-this.gui .controller input[type=range]{background:#e9ecef!important;height:4px!important;-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;border-radius:2px!important}.lil-this.gui .controller.number .fill{border-right:solid #008de9}.lil-this.gui .controller input[type=range]::-webkit-slider-thumb{background:#007bff!important;border:2px solid #fff!important;-webkit-box-shadow:0 2px 4px rgba(0,0,0,.2)!important;box-shadow:0 2px 4px rgba(0,0,0,.2)!important;width:16px!important;height:16px!important;border-radius:50%!important;-webkit-appearance:none!important;appearance:none!important;cursor:pointer!important}.lil-this.gui .controller input[type=range]::-moz-range-thumb{background:#007bff!important;border:2px solid #fff!important;box-shadow:0 2px 4px rgba(0,0,0,.2)!important;width:16px!important;height:16px!important;border-radius:50%!important;cursor:pointer!important}.lil-this.gui .controller .option{background:#fff!important;color:#495057!important;border-bottom:1px solid #f1f3f4!important}.lil-this.gui .controller .option:hover{background:#f8f9fa!important}.lil-this.gui .controller .option:last-child{border-bottom:none!important}.lil-this.gui input:active{background:#e6eff4}.lil-this.gui .controller button{background:linear-gradient(135deg,#007bff,#0056b3)!important;color:#fff!important;border:none!important;border-radius:4px!important;font-weight:500!important;-webkit-transition:all .2s ease!important;transition:all .2s ease!important}.lil-this.gui .controller button:hover{background:linear-gradient(135deg,#0056b3,#004085)!important;-webkit-transform:translateY(-1px)!important;transform:translateY(-1px)!important;-webkit-box-shadow:0 4px 8px rgba(0,123,255,.3)!important;box-shadow:0 4px 8px rgba(0,123,255,.3)!important}.lil-this.gui .controller .color{border:2px solid #fff!important;border-radius:4px!important;-webkit-box-shadow:0 2px 4px rgba(0,0,0,.1)!important;box-shadow:0 2px 4px rgba(0,0,0,.1)!important}.lil-this.gui .controller.number .slider,.lil-this.gui .controller.number .slider:hover{background-color:#e6eff4}.lil-this.gui input,.lil-this.gui input:hover,.lil-this.gui input[type=number]:focus,.lil-this.gui input[type=text]:focus{background:#e6eff4}.lil-this.gui .controller>.name{min-width:25px}.lil-this.gui .controller.number input{color:#2e3136}.lil-this.gui .controller.number .slider:active{background-color:#e6eff4}.lil-this.gui .folder>.title{background:linear-gradient(135deg,#f1f3f4,#e9ecef)!important;color:#495057!important;border-bottom:1px solid #dee2e6!important}.lil-this.gui .folder>.title:before{color:#6c757d!important}.lil-this.gui .folder.closed>.children{display:none!important}#konva-container[data-v-21bcf2d9]{z-index:3;width:100%;height:100%;cursor:pointer;overflow:hidden}span[data-v-f547d5c6]{font-weight:bolder}.text[data-v-f547d5c6]{margin-top:20px}.line[data-v-f547d5c6]{border-bottom:1px solid #dcdfe6;margin:20px 0}.center[data-v-f547d5c6]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.center .cen span[data-v-f547d5c6],.center .top span[data-v-f547d5c6]{color:"#53a8ff";display:inline-block;width:30px;height:30px;text-align:center;line-height:30px;border:1px solid;padding:5px;margin-bottom:10px;background-color:#e9f3ff}.center .cen span[data-v-f547d5c6]{margin:10px}.button[data-v-f547d5c6]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:end;margin-top:20px}@font-face{font-family:iconfont;src:url(//at.alicdn.com/t/font_3226805_qqvo3ag3r8.woff2?t=1646635700216) format("woff2"),url(//at.alicdn.com/t/font_3226805_qqvo3ag3r8.woff?t=1646635700216) format("woff"),url(//at.alicdn.com/t/font_3226805_qqvo3ag3r8.ttf?t=1646635700216) format("truetype")}.iconfont[data-v-f547d5c6]{font-family:iconfont!important;font-size:50px;font-style:normal;color:"#53a8ff";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-shubiao[data-v-f547d5c6]:before{content:""}.main_body[data-v-4b17bce0]{position:relative;width:100%;height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.classification_title[data-v-4b17bce0]{margin:0 0 10px 0;color:#fff;font-size:14px;cursor:default}.toolbar[data-v-4b17bce0]{z-index:10;position:absolute;width:520px;padding:8px 16px;border-radius:6px;-webkit-box-shadow:0 2px 10px 0 rgba(6,29,44,.25);box-shadow:0 2px 10px 0 rgba(6,29,44,.25);background-color:#fff;top:10px;left:50%;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transform:translateX(-50%);transform:translateX(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-pack:distribute;justify-content:space-around}.icon_toolbar[data-v-4b17bce0],.text_toolbar[data-v-4b17bce0]{float:left;width:32px;height:32px;padding:0!important;background-repeat:no-repeat;background-size:24px;background-position:50%}.icon_active[data-v-4b17bce0],.icon_toolbar[data-v-4b17bce0]:hover,.text_toolbar[data-v-4b17bce0]:hover{background-color:#eee}[data-v-4b17bce0].icon_color .el-color-picker__trigger{height:24px;margin-top:4px;width:24px!important}[data-v-4b17bce0].el-color-picker--medium,[data-v-4b17bce0].el-color-picker--medium .el-color-picker__trigger{width:24px!important;height:24px!important}.canvas_container[data-v-4b17bce0]{position:relative;width:100%;height:100%;overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box}.canvas_container canvas[data-v-4b17bce0]{position:absolute;left:0}.canvas_container #ctx_front[data-v-4b17bce0]{z-index:5;background-color:transparent}.canvas_container #ctx_back[data-v-4b17bce0]{z-index:3}.canvas_container #ctx_base[data-v-4b17bce0]{z-index:1}#text[data-v-4b17bce0]{position:absolute;z-index:-1;resize:none;outline:none;border:1px dashed #9c9c9c;overflow:hidden;background:transparent;line-height:30px;display:none}#text[data-v-4b17bce0]:hover{border:1px dashed #53a8ff}#svg-component[data-v-2572c0e2],#svg-tigger[data-v-2572c0e2]{cursor:pointer;height:100%;width:100%;position:relative}#toolbar-show[data-v-2572c0e2]{z-index:20;position:absolute;width:100%;height:100%;top:0;left:0;overflow:hidden;background:#fff}
|
|
1
|
+
@charset "UTF-8";.fl-model-containor[data-v-45f83ec2]{width:100%;height:100%;position:relative;cursor:pointer}[data-v-45f83ec2] .tips-label{width:60px;color:#000;font:12px Helvetica;margin-top:-3em;padding:5px;text-align:center;vertical-align:middle;background-color:khaki}[data-v-45f83ec2] .measure-label{max-width:100px;margin-top:-1em;border:10px;border-radius:5px;padding:3px 10px;cursor:pointer;color:#009bea;background-color:#f4f4f4;-webkit-box-shadow:0 1px 3px 1px rgba(0,0,0,.25);box-shadow:0 1px 3px 1px rgba(0,0,0,.25)}[data-v-45f83ec2] .circle-tag{width:10px;height:10px;margin-top:5px;border-radius:50%;background-color:#ff5000}[data-v-45f83ec2] .measure-label-font{word-break:break-all}[data-v-45f83ec2] .mark-label-img{padding-top:5px;width:20px;height:20px}.loading-overlay[data-v-45f83ec2]{position:absolute;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.7);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;z-index:1000;opacity:0;visibility:hidden;-webkit-transition:opacity .3s ease,visibility .3s ease;transition:opacity .3s ease,visibility .3s ease}.loading-overlay--visible[data-v-45f83ec2]{opacity:1;visibility:visible}.loading-content[data-v-45f83ec2]{background:#fff;border-radius:12px;padding:30px;text-align:center;-webkit-box-shadow:0 8px 32px rgba(0,0,0,.3);box-shadow:0 8px 32px rgba(0,0,0,.3);min-width:300px;max-width:400px}.loading-spinner[data-v-45f83ec2]{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #409eff;border-radius:50%;-webkit-animation:spin-45f83ec2 1s linear infinite;animation:spin-45f83ec2 1s linear infinite;margin:0 auto 20px}@-webkit-keyframes spin-45f83ec2{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin-45f83ec2{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.loading-text[data-v-45f83ec2]{font-size:16px;font-weight:500;color:#333;margin-bottom:20px}.loading-this.progress-bar[data-v-45f83ec2]{width:100%;height:8px;background-color:#f0f0f0;border-radius:4px;overflow:hidden;margin-bottom:15px}.loading-this.progress-fill[data-v-45f83ec2]{height:100%;background:-webkit-gradient(linear,left top,right top,from(#409eff),to(#67c23a));background:linear-gradient(90deg,#409eff,#67c23a);border-radius:4px;-webkit-transition:width .3s ease;transition:width .3s ease}.loading-details[data-v-45f83ec2]{font-size:12px;color:#666;line-height:1.5}.lil-this.gui{background:hsla(0,0%,100%,.95)!important;border:1px solid #e0e0e0!important;border-radius:8px!important;-webkit-box-shadow:0 4px 12px rgba(0,0,0,.15)!important;box-shadow:0 4px 12px rgba(0,0,0,.15)!important;backdrop-filter:blur(10px)!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important}.lil-this.gui .title{background:linear-gradient(135deg,#f8f9fa,#e9ecef)!important;color:#495057!important;border-bottom:1px solid #dee2e6!important;font-weight:600!important;padding:0 12px!important;border-radius:8px 8px 0 0!important}.lil-this.gui .controller{border-bottom:1px solid #f1f3f4!important;background:transparent!important}.lil-this.gui .controller:last-child{border-bottom:none!important}.lil-this.gui .controller .name{color:#495057!important;font-weight:500!important;font-size:12px!important}.lil-this.gui .controller .widget{background:#f8f9fa!important;border:1px solid #ced4da!important;border-radius:4px!important;color:#495057!important}.lil-this.gui .controller .widget:focus,.lil-this.gui .controller .widget:hover{border-color:#80bdff!important;-webkit-box-shadow:0 0 0 2px rgba(0,123,255,.25)!important;box-shadow:0 0 0 2px rgba(0,123,255,.25)!important}.lil-this.gui .controller .widget:focus{outline:none!important}.lil-this.gui .controller input[type=range]{background:#e9ecef!important;height:4px!important;-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;border-radius:2px!important}.lil-this.gui .controller.number .fill{border-right:solid #008de9}.lil-this.gui .controller input[type=range]::-webkit-slider-thumb{background:#007bff!important;border:2px solid #fff!important;-webkit-box-shadow:0 2px 4px rgba(0,0,0,.2)!important;box-shadow:0 2px 4px rgba(0,0,0,.2)!important;width:16px!important;height:16px!important;border-radius:50%!important;-webkit-appearance:none!important;appearance:none!important;cursor:pointer!important}.lil-this.gui .controller input[type=range]::-moz-range-thumb{background:#007bff!important;border:2px solid #fff!important;box-shadow:0 2px 4px rgba(0,0,0,.2)!important;width:16px!important;height:16px!important;border-radius:50%!important;cursor:pointer!important}.lil-this.gui .controller .option{background:#fff!important;color:#495057!important;border-bottom:1px solid #f1f3f4!important}.lil-this.gui .controller .option:hover{background:#f8f9fa!important}.lil-this.gui .controller .option:last-child{border-bottom:none!important}.lil-this.gui input:active{background:#e6eff4}.lil-this.gui .controller button{background:linear-gradient(135deg,#007bff,#0056b3)!important;color:#fff!important;border:none!important;border-radius:4px!important;font-weight:500!important;-webkit-transition:all .2s ease!important;transition:all .2s ease!important}.lil-this.gui .controller button:hover{background:linear-gradient(135deg,#0056b3,#004085)!important;-webkit-transform:translateY(-1px)!important;transform:translateY(-1px)!important;-webkit-box-shadow:0 4px 8px rgba(0,123,255,.3)!important;box-shadow:0 4px 8px rgba(0,123,255,.3)!important}.lil-this.gui .controller .color{border:2px solid #fff!important;border-radius:4px!important;-webkit-box-shadow:0 2px 4px rgba(0,0,0,.1)!important;box-shadow:0 2px 4px rgba(0,0,0,.1)!important}.lil-this.gui .controller.number .slider,.lil-this.gui .controller.number .slider:hover{background-color:#e6eff4}.lil-this.gui input,.lil-this.gui input:hover,.lil-this.gui input[type=number]:focus,.lil-this.gui input[type=text]:focus{background:#e6eff4}.lil-this.gui .controller>.name{min-width:25px}.lil-this.gui .controller.number input{color:#2e3136}.lil-this.gui .controller.number .slider:active{background-color:#e6eff4}.lil-this.gui .folder>.title{background:linear-gradient(135deg,#f1f3f4,#e9ecef)!important;color:#495057!important;border-bottom:1px solid #dee2e6!important}.lil-this.gui .folder>.title:before{color:#6c757d!important}.lil-this.gui .folder.closed>.children{display:none!important}#konva-container[data-v-21bcf2d9]{z-index:3;width:100%;height:100%;cursor:pointer;overflow:hidden}span[data-v-f547d5c6]{font-weight:bolder}.text[data-v-f547d5c6]{margin-top:20px}.line[data-v-f547d5c6]{border-bottom:1px solid #dcdfe6;margin:20px 0}.center[data-v-f547d5c6]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.center .cen span[data-v-f547d5c6],.center .top span[data-v-f547d5c6]{color:"#53a8ff";display:inline-block;width:30px;height:30px;text-align:center;line-height:30px;border:1px solid;padding:5px;margin-bottom:10px;background-color:#e9f3ff}.center .cen span[data-v-f547d5c6]{margin:10px}.button[data-v-f547d5c6]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:end;margin-top:20px}@font-face{font-family:iconfont;src:url(//at.alicdn.com/t/font_3226805_qqvo3ag3r8.woff2?t=1646635700216) format("woff2"),url(//at.alicdn.com/t/font_3226805_qqvo3ag3r8.woff?t=1646635700216) format("woff"),url(//at.alicdn.com/t/font_3226805_qqvo3ag3r8.ttf?t=1646635700216) format("truetype")}.iconfont[data-v-f547d5c6]{font-family:iconfont!important;font-size:50px;font-style:normal;color:"#53a8ff";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-shubiao[data-v-f547d5c6]:before{content:""}.main_body[data-v-4b17bce0]{position:relative;width:100%;height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.classification_title[data-v-4b17bce0]{margin:0 0 10px 0;color:#fff;font-size:14px;cursor:default}.toolbar[data-v-4b17bce0]{z-index:10;position:absolute;width:520px;padding:8px 16px;border-radius:6px;-webkit-box-shadow:0 2px 10px 0 rgba(6,29,44,.25);box-shadow:0 2px 10px 0 rgba(6,29,44,.25);background-color:#fff;top:10px;left:50%;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transform:translateX(-50%);transform:translateX(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-pack:distribute;justify-content:space-around}.icon_toolbar[data-v-4b17bce0],.text_toolbar[data-v-4b17bce0]{float:left;width:32px;height:32px;padding:0!important;background-repeat:no-repeat;background-size:24px;background-position:50%}.icon_active[data-v-4b17bce0],.icon_toolbar[data-v-4b17bce0]:hover,.text_toolbar[data-v-4b17bce0]:hover{background-color:#eee}[data-v-4b17bce0].icon_color .el-color-picker__trigger{height:24px;margin-top:4px;width:24px!important}[data-v-4b17bce0].el-color-picker--medium,[data-v-4b17bce0].el-color-picker--medium .el-color-picker__trigger{width:24px!important;height:24px!important}.canvas_container[data-v-4b17bce0]{position:relative;width:100%;height:100%;overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box}.canvas_container canvas[data-v-4b17bce0]{position:absolute;left:0}.canvas_container #ctx_front[data-v-4b17bce0]{z-index:5;background-color:transparent}.canvas_container #ctx_back[data-v-4b17bce0]{z-index:3}.canvas_container #ctx_base[data-v-4b17bce0]{z-index:1}#text[data-v-4b17bce0]{position:absolute;z-index:-1;resize:none;outline:none;border:1px dashed #9c9c9c;overflow:hidden;background:transparent;line-height:30px;display:none}#text[data-v-4b17bce0]:hover{border:1px dashed #53a8ff}#svg-component[data-v-2572c0e2],#svg-tigger[data-v-2572c0e2]{cursor:pointer;height:100%;width:100%;position:relative}#toolbar-show[data-v-2572c0e2]{z-index:20;position:absolute;width:100%;height:100%;top:0;left:0;overflow:hidden;background:#fff}
|
package/package.json
CHANGED
|
@@ -1536,6 +1536,9 @@ export default {
|
|
|
1536
1536
|
const modelIds = new Set();
|
|
1537
1537
|
for (let i = 0; i < arr.length; i++) {
|
|
1538
1538
|
const it = arr[i];
|
|
1539
|
+
if (it.obb.length == 0) {
|
|
1540
|
+
continue;
|
|
1541
|
+
}
|
|
1539
1542
|
|
|
1540
1543
|
// 使用新的 min/max 数据结构
|
|
1541
1544
|
const min = new this.THREE.Vector3(it.min[0], it.min[1], it.min[2]);
|
|
@@ -4885,13 +4888,15 @@ export default {
|
|
|
4885
4888
|
}
|
|
4886
4889
|
this.labelRenderer = null;
|
|
4887
4890
|
|
|
4888
|
-
this.renderer
|
|
4889
|
-
|
|
4890
|
-
|
|
4891
|
-
|
|
4892
|
-
|
|
4893
|
-
this.
|
|
4894
|
-
this.
|
|
4891
|
+
if (this.renderer) {
|
|
4892
|
+
this.renderer.forceContextLoss && this.renderer.forceContextLoss();
|
|
4893
|
+
this.renderer.dispose && this.renderer.dispose();
|
|
4894
|
+
this.renderer.domElement = null;
|
|
4895
|
+
}
|
|
4896
|
+
this.camera = null;
|
|
4897
|
+
this.cameraControls = null;
|
|
4898
|
+
this.pointControls = null;
|
|
4899
|
+
this.renderer = null;
|
|
4895
4900
|
},
|
|
4896
4901
|
// 绘制曲线
|
|
4897
4902
|
/*
|
|
@@ -5380,7 +5385,9 @@ export default {
|
|
|
5380
5385
|
getFirstPersonJumpConfig(customJumpSpeed) {
|
|
5381
5386
|
const defaultJumpSpeed = 350;
|
|
5382
5387
|
const optionJumpSpeed =
|
|
5383
|
-
Number.isFinite(customJumpSpeed) && customJumpSpeed > 0
|
|
5388
|
+
Number.isFinite(customJumpSpeed) && customJumpSpeed > 0
|
|
5389
|
+
? customJumpSpeed
|
|
5390
|
+
: defaultJumpSpeed;
|
|
5384
5391
|
const minJumpSpeed = Math.max(220, optionJumpSpeed * 0.45);
|
|
5385
5392
|
const maxJumpSpeed = Math.max(1800, optionJumpSpeed * 3.6);
|
|
5386
5393
|
const defaultGravity = 980;
|
|
@@ -5717,14 +5724,14 @@ export default {
|
|
|
5717
5724
|
},
|
|
5718
5725
|
// 增加一个清除所有测量结果的方法 使用统一名字的
|
|
5719
5726
|
clearMeasureByName() {
|
|
5720
|
-
let list = this.getObjectByName('measureObj')
|
|
5727
|
+
let list = this.getObjectByName('measureObj');
|
|
5721
5728
|
list.forEach(item => {
|
|
5722
5729
|
if (item.geometry) {
|
|
5723
5730
|
item.geometry.dispose();
|
|
5724
5731
|
item.material.dispose();
|
|
5725
5732
|
}
|
|
5726
5733
|
if (this.scene) this.scene.remove(item);
|
|
5727
|
-
})
|
|
5734
|
+
});
|
|
5728
5735
|
if (this.threeMeasure) {
|
|
5729
5736
|
this.threeMeasure.clear();
|
|
5730
5737
|
}
|
|
@@ -6261,11 +6268,11 @@ export default {
|
|
|
6261
6268
|
* @param {Array} drawObjs - 绘制对象数组
|
|
6262
6269
|
* @returns {Array} 批次数组
|
|
6263
6270
|
*/
|
|
6264
|
-
createBatches(instances, drawObjs) {
|
|
6265
|
-
const batches = [];
|
|
6266
|
-
const loadingState = this.noObserver
|
|
6267
|
-
? this.noObserver.batchLoadingState
|
|
6268
|
-
: this.batchLoadingState;
|
|
6271
|
+
createBatches(instances, drawObjs) {
|
|
6272
|
+
const batches = [];
|
|
6273
|
+
const loadingState = this.noObserver
|
|
6274
|
+
? this.noObserver.batchLoadingState
|
|
6275
|
+
: this.batchLoadingState;
|
|
6269
6276
|
const batchSize = loadingState.batchSize;
|
|
6270
6277
|
|
|
6271
6278
|
// 按drawObject分组
|
|
@@ -6339,21 +6346,36 @@ export default {
|
|
|
6339
6346
|
drawObjs: currentBatch.map(item => item.drawObj),
|
|
6340
6347
|
});
|
|
6341
6348
|
}
|
|
6342
|
-
|
|
6343
|
-
return batches;
|
|
6344
|
-
},
|
|
6345
|
-
|
|
6346
|
-
|
|
6347
|
-
|
|
6348
|
-
|
|
6349
|
-
|
|
6350
|
-
|
|
6351
|
-
|
|
6352
|
-
|
|
6353
|
-
|
|
6354
|
-
|
|
6355
|
-
|
|
6356
|
-
|
|
6349
|
+
|
|
6350
|
+
return batches;
|
|
6351
|
+
},
|
|
6352
|
+
|
|
6353
|
+
isBatchLoadingSceneReady() {
|
|
6354
|
+
return !!(
|
|
6355
|
+
this.scene &&
|
|
6356
|
+
typeof this.scene.add === 'function' &&
|
|
6357
|
+
this.modelGroup &&
|
|
6358
|
+
this.THREE &&
|
|
6359
|
+
!this._isDestroyed &&
|
|
6360
|
+
!this._isBeingDestroyed
|
|
6361
|
+
);
|
|
6362
|
+
},
|
|
6363
|
+
|
|
6364
|
+
/**
|
|
6365
|
+
* 加载下一批数据
|
|
6366
|
+
*/
|
|
6367
|
+
async loadNextBatch() {
|
|
6368
|
+
const loadingState = this.noObserver
|
|
6369
|
+
? this.noObserver.batchLoadingState
|
|
6370
|
+
: this.batchLoadingState;
|
|
6371
|
+
if (!this.isBatchLoadingSceneReady()) {
|
|
6372
|
+
this.stopBatchLoading('scene_unavailable');
|
|
6373
|
+
return;
|
|
6374
|
+
}
|
|
6375
|
+
if (!loadingState.isLoading || loadingState.currentBatch >= loadingState.pendingData.length) {
|
|
6376
|
+
this.completeBatchLoading();
|
|
6377
|
+
return;
|
|
6378
|
+
}
|
|
6357
6379
|
|
|
6358
6380
|
// 检查是否需要暂停渲染
|
|
6359
6381
|
if (loadingState.isPaused) {
|
|
@@ -6371,17 +6393,26 @@ export default {
|
|
|
6371
6393
|
this.loadNextBatch();
|
|
6372
6394
|
});
|
|
6373
6395
|
return;
|
|
6374
|
-
}
|
|
6375
|
-
|
|
6376
|
-
const batch = loadingState.pendingData[loadingState.currentBatch];
|
|
6377
|
-
|
|
6378
|
-
|
|
6379
|
-
|
|
6380
|
-
|
|
6381
|
-
|
|
6382
|
-
|
|
6383
|
-
|
|
6384
|
-
|
|
6396
|
+
}
|
|
6397
|
+
|
|
6398
|
+
const batch = loadingState.pendingData[loadingState.currentBatch];
|
|
6399
|
+
if (!batch) {
|
|
6400
|
+
this.completeBatchLoading();
|
|
6401
|
+
return;
|
|
6402
|
+
}
|
|
6403
|
+
|
|
6404
|
+
try {
|
|
6405
|
+
console.log('加载批次:', loadingState.currentBatch);
|
|
6406
|
+
await this.processWithMainThread(batch);
|
|
6407
|
+
if (!loadingState.isLoading) return;
|
|
6408
|
+
if (!this.isBatchLoadingSceneReady()) {
|
|
6409
|
+
this.stopBatchLoading('scene_unavailable');
|
|
6410
|
+
return;
|
|
6411
|
+
}
|
|
6412
|
+
|
|
6413
|
+
// 更新进度
|
|
6414
|
+
loadingState.loadedCount += batch.instances.length;
|
|
6415
|
+
loadingState.currentBatch++;
|
|
6385
6416
|
|
|
6386
6417
|
// 同步到响应式状态
|
|
6387
6418
|
this.batchLoadingState.loadedCount = loadingState.loadedCount;
|
|
@@ -6446,15 +6477,19 @@ export default {
|
|
|
6446
6477
|
/**
|
|
6447
6478
|
* 完成批量加载
|
|
6448
6479
|
*/
|
|
6449
|
-
completeBatchLoading() {
|
|
6450
|
-
const loadingState = this.noObserver
|
|
6451
|
-
? this.noObserver.batchLoadingState
|
|
6452
|
-
: this.batchLoadingState;
|
|
6453
|
-
if (!loadingState.isLoading) return;
|
|
6454
|
-
|
|
6455
|
-
|
|
6456
|
-
|
|
6457
|
-
|
|
6480
|
+
completeBatchLoading() {
|
|
6481
|
+
const loadingState = this.noObserver
|
|
6482
|
+
? this.noObserver.batchLoadingState
|
|
6483
|
+
: this.batchLoadingState;
|
|
6484
|
+
if (!loadingState.isLoading) return;
|
|
6485
|
+
if (!this.isBatchLoadingSceneReady()) {
|
|
6486
|
+
this.stopBatchLoading('scene_unavailable');
|
|
6487
|
+
return;
|
|
6488
|
+
}
|
|
6489
|
+
|
|
6490
|
+
// if (this.modelGroup) {
|
|
6491
|
+
// if (firstDraw) {
|
|
6492
|
+
// if (this.scene) this.scene.add(this.modelGroup);
|
|
6458
6493
|
// firstDraw = false;
|
|
6459
6494
|
// }
|
|
6460
6495
|
// if (!rotatedSceneFlag) {
|
|
@@ -6513,18 +6548,18 @@ export default {
|
|
|
6513
6548
|
this.batchLoadingState.isLoading = false;
|
|
6514
6549
|
|
|
6515
6550
|
// 调用完成回调
|
|
6516
|
-
if (loadingState.onComplete) {
|
|
6517
|
-
loadingState.onComplete({
|
|
6518
|
-
totalLoaded: loadingState.loadedCount,
|
|
6519
|
-
totalBatches: loadingState.totalBatches,
|
|
6520
|
-
});
|
|
6521
|
-
|
|
6522
|
-
if (isDebug) {
|
|
6523
|
-
var axesHelper = new this.THREE.AxesHelper(10000);
|
|
6524
|
-
this.scene.add(axesHelper);
|
|
6525
|
-
}
|
|
6526
|
-
// this.showSceneBoundingBox();
|
|
6527
|
-
}
|
|
6551
|
+
if (loadingState.onComplete) {
|
|
6552
|
+
loadingState.onComplete({
|
|
6553
|
+
totalLoaded: loadingState.loadedCount,
|
|
6554
|
+
totalBatches: loadingState.totalBatches,
|
|
6555
|
+
});
|
|
6556
|
+
|
|
6557
|
+
if (isDebug && this.scene) {
|
|
6558
|
+
var axesHelper = new this.THREE.AxesHelper(10000);
|
|
6559
|
+
this.scene.add(axesHelper);
|
|
6560
|
+
}
|
|
6561
|
+
// this.showSceneBoundingBox();
|
|
6562
|
+
}
|
|
6528
6563
|
|
|
6529
6564
|
// 触发事件
|
|
6530
6565
|
// this.$emit('modelLoaded');
|
|
@@ -443,10 +443,10 @@ export class StreamLoader {
|
|
|
443
443
|
// 数据处理与渲染
|
|
444
444
|
// ----------------------------------------------------------------
|
|
445
445
|
|
|
446
|
-
async processBatchData(meshes, primitives, list, range, abortSignal = null) {
|
|
447
|
-
try {
|
|
448
|
-
if (abortSignal && abortSignal.aborted) {
|
|
449
|
-
throw new DOMException('Request was aborted', 'AbortError');
|
|
446
|
+
async processBatchData(meshes, primitives, list, range, abortSignal = null) {
|
|
447
|
+
try {
|
|
448
|
+
if (abortSignal && abortSignal.aborted) {
|
|
449
|
+
throw new DOMException('Request was aborted', 'AbortError');
|
|
450
450
|
}
|
|
451
451
|
const renderResult = await this.renderModelData(meshes, primitives, list, range, null, undefined, {
|
|
452
452
|
suppressLoadComplete: true,
|
|
@@ -457,13 +457,16 @@ export class StreamLoader {
|
|
|
457
457
|
}
|
|
458
458
|
if (abortSignal && abortSignal.aborted) {
|
|
459
459
|
throw new DOMException('Request was aborted', 'AbortError');
|
|
460
|
-
}
|
|
461
|
-
return renderResult;
|
|
462
|
-
} catch (error) {
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
460
|
+
}
|
|
461
|
+
return renderResult;
|
|
462
|
+
} catch (error) {
|
|
463
|
+
if (error && error.name === 'AbortError') {
|
|
464
|
+
throw error;
|
|
465
|
+
}
|
|
466
|
+
console.error('Failed to render batch data:', error);
|
|
467
|
+
throw error;
|
|
468
|
+
}
|
|
469
|
+
}
|
|
467
470
|
|
|
468
471
|
// ----------------------------------------------------------------
|
|
469
472
|
// 请求管理
|