fl-web-component 2.0.13 → 2.0.14
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.
- package/README.md +2 -0
- package/dist/fl-web-component.common.2.js +48 -126
- package/dist/fl-web-component.common.2.js.map +1 -1
- package/dist/fl-web-component.common.js +64 -52
- package/dist/fl-web-component.common.js.map +1 -1
- package/dist/fl-web-component.css +1 -1
- package/package.json +1 -1
- package/packages/components/com-graphics/index.vue +102 -89
- package/packages/utils/StreamLoader.js +14 -14
|
@@ -1 +1 @@
|
|
|
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}
|
|
1
|
+
@charset "UTF-8";.fl-model-containor[data-v-3e15de76]{width:100%;height:100%;position:relative;cursor:pointer}[data-v-3e15de76] .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-3e15de76] .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-3e15de76] .circle-tag{width:10px;height:10px;margin-top:5px;border-radius:50%;background-color:#ff5000}[data-v-3e15de76] .measure-label-font{word-break:break-all}[data-v-3e15de76] .mark-label-img{padding-top:5px;width:20px;height:20px}.loading-overlay[data-v-3e15de76]{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-3e15de76]{opacity:1;visibility:visible}.loading-content[data-v-3e15de76]{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-3e15de76]{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #409eff;border-radius:50%;-webkit-animation:spin-3e15de76 1s linear infinite;animation:spin-3e15de76 1s linear infinite;margin:0 auto 20px}@-webkit-keyframes spin-3e15de76{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin-3e15de76{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.loading-text[data-v-3e15de76]{font-size:16px;font-weight:500;color:#333;margin-bottom:20px}.loading-this.progress-bar[data-v-3e15de76]{width:100%;height:8px;background-color:#f0f0f0;border-radius:4px;overflow:hidden;margin-bottom:15px}.loading-this.progress-fill[data-v-3e15de76]{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-3e15de76]{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
|
@@ -4259,6 +4259,19 @@ export default {
|
|
|
4259
4259
|
});
|
|
4260
4260
|
}
|
|
4261
4261
|
|
|
4262
|
+
if (this.scene) {
|
|
4263
|
+
const customRoot = this.scene.children.find(child => {
|
|
4264
|
+
const nodeType = child && child.userData ? child.userData.nodeType : '';
|
|
4265
|
+
const rootType = child && child.userData ? child.userData.rootType : '';
|
|
4266
|
+
return nodeType === 'custom-root' || rootType === 'custom-root';
|
|
4267
|
+
});
|
|
4268
|
+
if (customRoot) {
|
|
4269
|
+
customRoot.traverse(object => {
|
|
4270
|
+
object.visible = isVisible;
|
|
4271
|
+
});
|
|
4272
|
+
}
|
|
4273
|
+
}
|
|
4274
|
+
|
|
4262
4275
|
this.notifyCameraChange();
|
|
4263
4276
|
if (this._boxIndex) {
|
|
4264
4277
|
this.buildOctreeFromBoxIndex();
|
|
@@ -4888,15 +4901,15 @@ export default {
|
|
|
4888
4901
|
}
|
|
4889
4902
|
this.labelRenderer = null;
|
|
4890
4903
|
|
|
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;
|
|
4904
|
+
if (this.renderer) {
|
|
4905
|
+
this.renderer.forceContextLoss && this.renderer.forceContextLoss();
|
|
4906
|
+
this.renderer.dispose && this.renderer.dispose();
|
|
4907
|
+
this.renderer.domElement = null;
|
|
4908
|
+
}
|
|
4909
|
+
this.camera = null;
|
|
4910
|
+
this.cameraControls = null;
|
|
4911
|
+
this.pointControls = null;
|
|
4912
|
+
this.renderer = null;
|
|
4900
4913
|
},
|
|
4901
4914
|
// 绘制曲线
|
|
4902
4915
|
/*
|
|
@@ -6268,11 +6281,11 @@ export default {
|
|
|
6268
6281
|
* @param {Array} drawObjs - 绘制对象数组
|
|
6269
6282
|
* @returns {Array} 批次数组
|
|
6270
6283
|
*/
|
|
6271
|
-
createBatches(instances, drawObjs) {
|
|
6272
|
-
const batches = [];
|
|
6273
|
-
const loadingState = this.noObserver
|
|
6274
|
-
? this.noObserver.batchLoadingState
|
|
6275
|
-
: this.batchLoadingState;
|
|
6284
|
+
createBatches(instances, drawObjs) {
|
|
6285
|
+
const batches = [];
|
|
6286
|
+
const loadingState = this.noObserver
|
|
6287
|
+
? this.noObserver.batchLoadingState
|
|
6288
|
+
: this.batchLoadingState;
|
|
6276
6289
|
const batchSize = loadingState.batchSize;
|
|
6277
6290
|
|
|
6278
6291
|
// 按drawObject分组
|
|
@@ -6346,36 +6359,36 @@ export default {
|
|
|
6346
6359
|
drawObjs: currentBatch.map(item => item.drawObj),
|
|
6347
6360
|
});
|
|
6348
6361
|
}
|
|
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
|
-
}
|
|
6362
|
+
|
|
6363
|
+
return batches;
|
|
6364
|
+
},
|
|
6365
|
+
|
|
6366
|
+
isBatchLoadingSceneReady() {
|
|
6367
|
+
return !!(
|
|
6368
|
+
this.scene &&
|
|
6369
|
+
typeof this.scene.add === 'function' &&
|
|
6370
|
+
this.modelGroup &&
|
|
6371
|
+
this.THREE &&
|
|
6372
|
+
!this._isDestroyed &&
|
|
6373
|
+
!this._isBeingDestroyed
|
|
6374
|
+
);
|
|
6375
|
+
},
|
|
6376
|
+
|
|
6377
|
+
/**
|
|
6378
|
+
* 加载下一批数据
|
|
6379
|
+
*/
|
|
6380
|
+
async loadNextBatch() {
|
|
6381
|
+
const loadingState = this.noObserver
|
|
6382
|
+
? this.noObserver.batchLoadingState
|
|
6383
|
+
: this.batchLoadingState;
|
|
6384
|
+
if (!this.isBatchLoadingSceneReady()) {
|
|
6385
|
+
this.stopBatchLoading('scene_unavailable');
|
|
6386
|
+
return;
|
|
6387
|
+
}
|
|
6388
|
+
if (!loadingState.isLoading || loadingState.currentBatch >= loadingState.pendingData.length) {
|
|
6389
|
+
this.completeBatchLoading();
|
|
6390
|
+
return;
|
|
6391
|
+
}
|
|
6379
6392
|
|
|
6380
6393
|
// 检查是否需要暂停渲染
|
|
6381
6394
|
if (loadingState.isPaused) {
|
|
@@ -6393,26 +6406,26 @@ export default {
|
|
|
6393
6406
|
this.loadNextBatch();
|
|
6394
6407
|
});
|
|
6395
6408
|
return;
|
|
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++;
|
|
6409
|
+
}
|
|
6410
|
+
|
|
6411
|
+
const batch = loadingState.pendingData[loadingState.currentBatch];
|
|
6412
|
+
if (!batch) {
|
|
6413
|
+
this.completeBatchLoading();
|
|
6414
|
+
return;
|
|
6415
|
+
}
|
|
6416
|
+
|
|
6417
|
+
try {
|
|
6418
|
+
console.log('加载批次:', loadingState.currentBatch);
|
|
6419
|
+
await this.processWithMainThread(batch);
|
|
6420
|
+
if (!loadingState.isLoading) return;
|
|
6421
|
+
if (!this.isBatchLoadingSceneReady()) {
|
|
6422
|
+
this.stopBatchLoading('scene_unavailable');
|
|
6423
|
+
return;
|
|
6424
|
+
}
|
|
6425
|
+
|
|
6426
|
+
// 更新进度
|
|
6427
|
+
loadingState.loadedCount += batch.instances.length;
|
|
6428
|
+
loadingState.currentBatch++;
|
|
6416
6429
|
|
|
6417
6430
|
// 同步到响应式状态
|
|
6418
6431
|
this.batchLoadingState.loadedCount = loadingState.loadedCount;
|
|
@@ -6477,19 +6490,19 @@ export default {
|
|
|
6477
6490
|
/**
|
|
6478
6491
|
* 完成批量加载
|
|
6479
6492
|
*/
|
|
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);
|
|
6493
|
+
completeBatchLoading() {
|
|
6494
|
+
const loadingState = this.noObserver
|
|
6495
|
+
? this.noObserver.batchLoadingState
|
|
6496
|
+
: this.batchLoadingState;
|
|
6497
|
+
if (!loadingState.isLoading) return;
|
|
6498
|
+
if (!this.isBatchLoadingSceneReady()) {
|
|
6499
|
+
this.stopBatchLoading('scene_unavailable');
|
|
6500
|
+
return;
|
|
6501
|
+
}
|
|
6502
|
+
|
|
6503
|
+
// if (this.modelGroup) {
|
|
6504
|
+
// if (firstDraw) {
|
|
6505
|
+
// if (this.scene) this.scene.add(this.modelGroup);
|
|
6493
6506
|
// firstDraw = false;
|
|
6494
6507
|
// }
|
|
6495
6508
|
// if (!rotatedSceneFlag) {
|
|
@@ -6548,18 +6561,18 @@ export default {
|
|
|
6548
6561
|
this.batchLoadingState.isLoading = false;
|
|
6549
6562
|
|
|
6550
6563
|
// 调用完成回调
|
|
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
|
-
}
|
|
6564
|
+
if (loadingState.onComplete) {
|
|
6565
|
+
loadingState.onComplete({
|
|
6566
|
+
totalLoaded: loadingState.loadedCount,
|
|
6567
|
+
totalBatches: loadingState.totalBatches,
|
|
6568
|
+
});
|
|
6569
|
+
|
|
6570
|
+
if (isDebug && this.scene) {
|
|
6571
|
+
var axesHelper = new this.THREE.AxesHelper(10000);
|
|
6572
|
+
this.scene.add(axesHelper);
|
|
6573
|
+
}
|
|
6574
|
+
// this.showSceneBoundingBox();
|
|
6575
|
+
}
|
|
6563
6576
|
|
|
6564
6577
|
// 触发事件
|
|
6565
6578
|
// 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,16 +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
|
-
if (error && error.name === 'AbortError') {
|
|
464
|
-
throw error;
|
|
465
|
-
}
|
|
466
|
-
console.error('Failed to render batch data:', error);
|
|
467
|
-
throw error;
|
|
468
|
-
}
|
|
469
|
-
}
|
|
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
|
+
}
|
|
470
470
|
|
|
471
471
|
// ----------------------------------------------------------------
|
|
472
472
|
// 请求管理
|