fl-web-component 2.0.19-beta.1 → 2.0.19
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/dist/fl-web-component.common.1.js.map +1 -1
- package/dist/fl-web-component.common.2.js.map +1 -1
- package/dist/fl-web-component.common.js +868 -1050
- package/dist/fl-web-component.common.js.map +1 -1
- package/dist/fl-web-component.css +1 -1
- package/package.json +3 -4
- package/packages/components/com-graphics/box.json +77 -0
- package/packages/components/com-graphics/index.vue +6 -75
- package/packages/utils/StreamLoader.js +107 -250
- package/packages/utils/StreamLoaderParser.worker.js +76 -184
- package/src/utils/flgltf-parser.js +9 -21
- package/src/utils/instance-parser.js +75 -75
- package/packages/components/com-graphics/mock.json +0 -115
|
@@ -1 +1 @@
|
|
|
1
|
-
@charset "UTF-8";.fl-model-containor[data-v-46d6866f]{width:100%;height:100%;position:relative;cursor:pointer}[data-v-46d6866f] .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-46d6866f] .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-46d6866f] .circle-tag{width:10px;height:10px;margin-top:5px;border-radius:50%;background-color:#ff5000}[data-v-46d6866f] .measure-label-font{word-break:break-all}[data-v-46d6866f] .mark-label-img{padding-top:5px;width:20px;height:20px}.loading-overlay[data-v-46d6866f]{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-46d6866f]{opacity:1;visibility:visible}.loading-content[data-v-46d6866f]{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-46d6866f]{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #409eff;border-radius:50%;-webkit-animation:spin-46d6866f 1s linear infinite;animation:spin-46d6866f 1s linear infinite;margin:0 auto 20px}@-webkit-keyframes spin-46d6866f{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin-46d6866f{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.loading-text[data-v-46d6866f]{font-size:16px;font-weight:500;color:#333;margin-bottom:20px}.loading-this.progress-bar[data-v-46d6866f]{width:100%;height:8px;background-color:#f0f0f0;border-radius:4px;overflow:hidden;margin-bottom:15px}.loading-this.progress-fill[data-v-46d6866f]{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-46d6866f]{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-b313ab6c]{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-607a330c]{width:100%;height:100%;position:relative;cursor:pointer}[data-v-607a330c] .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-607a330c] .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-607a330c] .circle-tag{width:10px;height:10px;margin-top:5px;border-radius:50%;background-color:#ff5000}[data-v-607a330c] .measure-label-font{word-break:break-all}[data-v-607a330c] .mark-label-img{padding-top:5px;width:20px;height:20px}.loading-overlay[data-v-607a330c]{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-607a330c]{opacity:1;visibility:visible}.loading-content[data-v-607a330c]{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-607a330c]{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #409eff;border-radius:50%;-webkit-animation:spin-607a330c 1s linear infinite;animation:spin-607a330c 1s linear infinite;margin:0 auto 20px}@-webkit-keyframes spin-607a330c{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin-607a330c{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.loading-text[data-v-607a330c]{font-size:16px;font-weight:500;color:#333;margin-bottom:20px}.loading-this.progress-bar[data-v-607a330c]{width:100%;height:8px;background-color:#f0f0f0;border-radius:4px;overflow:hidden;margin-bottom:15px}.loading-this.progress-fill[data-v-607a330c]{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-607a330c]{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-b313ab6c]{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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fl-web-component",
|
|
3
|
-
"version": "2.0.19
|
|
3
|
+
"version": "2.0.19",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"postinstall": "patch-package",
|
|
6
6
|
"tip1": "仅调试本组件不涉及业务组件,请执行dev",
|
|
@@ -8,9 +8,8 @@
|
|
|
8
8
|
"lint": "eslint \"{src,packages}/**/*.{vue,js}\" --fix",
|
|
9
9
|
"prettier": "prettier --write \"packages/**/*.{js,css,less,scss,vue,html}\"",
|
|
10
10
|
"=": "=============================================================",
|
|
11
|
-
"tip2": "同时调试本组件与业务组件,请执行watch
|
|
12
|
-
"watch": "vue-cli-service build --watch --mode
|
|
13
|
-
"watch:prod": "vue-cli-service build --watch --mode production --target lib --name fl-web-component --formats commonjs ./src/main.js",
|
|
11
|
+
"tip2": "同时调试本组件与业务组件,请执行watch",
|
|
12
|
+
"watch": "vue-cli-service build --watch --mode production --target lib --name fl-web-component --formats commonjs ./src/main.js",
|
|
14
13
|
"build": "npm run lint && vue-cli-service build --target lib --name fl-web-component --formats commonjs ./src/main.js",
|
|
15
14
|
"build:test": "vue-cli-service build --target lib --name fl-web-component --formats commonjs ./src/main.js",
|
|
16
15
|
"publish:base": "npm run build && npm publish --registry https://registry.npmjs.org/",
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"code": 200,
|
|
3
|
+
"msg": "操作成功",
|
|
4
|
+
"data": [
|
|
5
|
+
{
|
|
6
|
+
"id": 5,
|
|
7
|
+
"min": [268.0, 578.0, 5.0],
|
|
8
|
+
"max": [280.0, 588.0, 5.02],
|
|
9
|
+
"flag": 1,
|
|
10
|
+
"obb": [
|
|
11
|
+
268.0, 588.0, 5.0, 268.0, 578.0, 5.0, 268.0, 588.0, 5.02, 268.0, 588.0, 5.02, 268.0, 578.0,
|
|
12
|
+
5.0, 268.0, 578.0, 5.02, 268.0, 578.0, 5.0, 271.0, 578.0, 5.0, 268.0, 578.0, 5.02, 268.0,
|
|
13
|
+
578.0, 5.02, 271.0, 578.0, 5.0, 271.0, 578.0, 5.02, 271.0, 578.0, 5.0, 271.0, 585.0, 5.0,
|
|
14
|
+
271.0, 578.0, 5.02, 271.0, 578.0, 5.02, 271.0, 585.0, 5.0, 271.0, 585.0, 5.02, 271.0, 585.0,
|
|
15
|
+
5.0, 280.0, 585.0, 5.0, 271.0, 585.0, 5.02, 271.0, 585.0, 5.02, 280.0, 585.0, 5.0, 280.0,
|
|
16
|
+
585.0, 5.02, 271.0, 578.0, 5.0, 268.0, 578.0, 5.0, 271.0, 585.0, 5.0, 271.0, 585.0, 5.0,
|
|
17
|
+
268.0, 578.0, 5.0, 268.0, 588.0, 5.0, 271.0, 585.0, 5.0, 268.0, 588.0, 5.0, 280.0, 588.0,
|
|
18
|
+
5.0, 280.0, 588.0, 5.0, 280.0, 585.0, 5.0, 271.0, 585.0, 5.0, 268.0, 578.0, 5.02, 271.0,
|
|
19
|
+
578.0, 5.02, 268.0, 588.0, 5.02, 268.0, 588.0, 5.02, 271.0, 578.0, 5.02, 271.0, 585.0, 5.02,
|
|
20
|
+
268.0, 588.0, 5.02, 271.0, 585.0, 5.02, 280.0, 585.0, 5.02, 280.0, 585.0, 5.02, 280.0,
|
|
21
|
+
588.0, 5.02, 268.0, 588.0, 5.02, 280.0, 585.0, 5.0, 280.0, 588.0, 5.0, 280.0, 585.0, 5.02,
|
|
22
|
+
280.0, 585.0, 5.02, 280.0, 588.0, 5.0, 280.0, 588.0, 5.02, 280.0, 588.0, 5.0, 268.0, 588.0,
|
|
23
|
+
5.0, 280.0, 588.0, 5.02, 280.0, 588.0, 5.02, 268.0, 588.0, 5.0, 268.0, 588.0, 5.02
|
|
24
|
+
],
|
|
25
|
+
"transp": 1.0
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"id": 288,
|
|
29
|
+
"min": [2881.839, 3967.814, -0.01065],
|
|
30
|
+
"max": [2882.217, 3967.836, 0.01065],
|
|
31
|
+
"flag": 2,
|
|
32
|
+
"obb": [
|
|
33
|
+
2882.02807617188, 3967.82495117188, -2.55106394476346e-20, 0.188999995589256,
|
|
34
|
+
0.0109999999403954, 0.0106499996036291, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0
|
|
35
|
+
],
|
|
36
|
+
"transp": 1.0
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"id": 291,
|
|
40
|
+
"min": [2882.104, 3967.956, -0.01065],
|
|
41
|
+
"max": [2882.374, 3968.124, 0.01065],
|
|
42
|
+
"flag": 2,
|
|
43
|
+
"obb": [
|
|
44
|
+
2882.23901367188, 3968.0400390625, -2.55106394476346e-20, 0.188999995589256,
|
|
45
|
+
0.0109999999403954, 0.0106499996036291, 0.500014126300812, 0.86601722240448, 0.0,
|
|
46
|
+
-0.86601722240448, 0.500014126300812, 0.0, 0.0, 0.0, 1.0
|
|
47
|
+
],
|
|
48
|
+
"transp": 1.0
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"id": 292,
|
|
52
|
+
"min": [2882.217, 3968.04, -0.01065],
|
|
53
|
+
"max": [2882.374, 3968.124, 0.01065],
|
|
54
|
+
"flag": 3,
|
|
55
|
+
"obb": [
|
|
56
|
+
276.758514404297, 586.730529785156, 5.27499485015869,
|
|
57
|
+
276.844261169434, 586.816268920898, 5.47500514984131,
|
|
58
|
+
276.758514404297, 586.816268920898, 5.27499485015869,
|
|
59
|
+
276.844261169434, 586.902008056641, 5.47500514984131,
|
|
60
|
+
276.758514404297, 586.987747192383, 5.27499485015869,
|
|
61
|
+
276.844261169434, 587.073486328125, 5.47500514984131
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"id": 293,
|
|
66
|
+
"min": [2882.217, 3968.04, -0.01065],
|
|
67
|
+
"max": [2882.374, 3968.124, 0.01065],
|
|
68
|
+
"flag": 3,
|
|
69
|
+
"obb": [
|
|
70
|
+
276.758514404297, 586.730529785156, 5.27499485015869,
|
|
71
|
+
276.844261169434, 586.816268920898, 5.47500514984131,
|
|
72
|
+
276.758514404297, 586.816268920898, 5.27499485015869,
|
|
73
|
+
276.844261169434, 586.902008056641, 5.47500514984131
|
|
74
|
+
]
|
|
75
|
+
}
|
|
76
|
+
]
|
|
77
|
+
}
|
|
@@ -138,7 +138,6 @@ import MeasureHeight from '@/utils/threejs/measure-height.js';
|
|
|
138
138
|
import MeasureClearDistance from '@/utils/threejs/measure-clear-distance.js';
|
|
139
139
|
import { parseData, processMeshData, processNodeData } from '@/utils/flgltf-parser';
|
|
140
140
|
import {
|
|
141
|
-
GEOM_TYPES,
|
|
142
141
|
handleInstancedMeshModel,
|
|
143
142
|
resetProcessingState,
|
|
144
143
|
PRIMITIVE_TYPE,
|
|
@@ -155,7 +154,7 @@ import { OutlinePass } from 'three/examples/jsm/postprocessing/OutlinePass.js';
|
|
|
155
154
|
import { OutputPass } from 'three/examples/jsm/postprocessing/OutputPass.js';
|
|
156
155
|
import Stats from 'three/examples/jsm/libs/stats.module.js';
|
|
157
156
|
import { OBB } from 'three/examples/jsm/math/OBB.js';
|
|
158
|
-
|
|
157
|
+
import boxJson from './box.json';
|
|
159
158
|
import { StreamLoader } from '../../utils/StreamLoader.js';
|
|
160
159
|
import StreamLoaderParserWorker from '../../utils/StreamLoaderParser.worker.js';
|
|
161
160
|
import SceneCommandService from '@/utils/threejs/editor/scene-command-service.js';
|
|
@@ -1537,12 +1536,8 @@ export default {
|
|
|
1537
1536
|
if (isAdd && boxJson) {
|
|
1538
1537
|
const arr = boxJson ? boxJson : [];
|
|
1539
1538
|
const modelIds = new Set();
|
|
1540
|
-
const validGeomTypes = new Set(Object.values(GEOM_TYPES));
|
|
1541
1539
|
for (let i = 0; i < arr.length; i++) {
|
|
1542
1540
|
const it = arr[i];
|
|
1543
|
-
if (!validGeomTypes.has(it.geomType)) {
|
|
1544
|
-
continue;
|
|
1545
|
-
}
|
|
1546
1541
|
if (it.obb.length == 0) {
|
|
1547
1542
|
continue;
|
|
1548
1543
|
}
|
|
@@ -1554,22 +1549,10 @@ export default {
|
|
|
1554
1549
|
// 构造 AABB
|
|
1555
1550
|
const boxThree = new this.THREE.Box3(min, max);
|
|
1556
1551
|
|
|
1557
|
-
const hasMatrix = Array.isArray(it.matrix)
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
localMatrix = new this.THREE.Matrix4();
|
|
1562
|
-
if (hasMeshMatrix) {
|
|
1563
|
-
localMatrix.fromArray(it.meshMatrix);
|
|
1564
|
-
} else {
|
|
1565
|
-
localMatrix.identity();
|
|
1566
|
-
}
|
|
1567
|
-
if (hasMatrix) {
|
|
1568
|
-
const matrix = new this.THREE.Matrix4().fromArray(it.matrix);
|
|
1569
|
-
localMatrix.multiply(matrix);
|
|
1570
|
-
}
|
|
1571
|
-
|
|
1572
|
-
const worldMatrix = localMatrix.clone();
|
|
1552
|
+
const hasMatrix = Array.isArray(it.matrix);
|
|
1553
|
+
if (hasMatrix && it.matrix.length >= 16) {
|
|
1554
|
+
const matrix = new this.THREE.Matrix4().fromArray(it.matrix);
|
|
1555
|
+
const worldMatrix = matrix.clone();
|
|
1573
1556
|
if (this.bizToThreeMatrix) {
|
|
1574
1557
|
worldMatrix.premultiply(this.bizToThreeMatrix);
|
|
1575
1558
|
}
|
|
@@ -1581,18 +1564,14 @@ export default {
|
|
|
1581
1564
|
|
|
1582
1565
|
const userData = {
|
|
1583
1566
|
flag: it.flag || 1, // 默认为 1
|
|
1584
|
-
geomType: it.geomType,
|
|
1585
1567
|
obbData: it.obb, // 存储原始 OBB 数据
|
|
1586
1568
|
transparent: it.transp > 0,
|
|
1587
1569
|
sourceVisible: it.visible === false ? false : true,
|
|
1588
1570
|
visible: it.visible === false ? false : true, // 默认显示
|
|
1589
|
-
occlusionEnabled:
|
|
1590
|
-
it.geomType === GEOM_TYPES.geom_3d || it.geomType === GEOM_TYPES.geom_3d_obj,
|
|
1591
1571
|
};
|
|
1592
1572
|
if (it.flag === 1) {
|
|
1593
1573
|
userData.indices = it.indices;
|
|
1594
|
-
userData.matrix =
|
|
1595
|
-
userData.meshMatrix = it.meshMatrix;
|
|
1574
|
+
userData.matrix = it.matrix;
|
|
1596
1575
|
// userData.matrix = new this.THREE.Matrix4().identity();
|
|
1597
1576
|
}
|
|
1598
1577
|
// 如果是 flag=3,解析并存储中心点、半轴长、旋转矩阵
|
|
@@ -1610,9 +1589,6 @@ export default {
|
|
|
1610
1589
|
center.z
|
|
1611
1590
|
);
|
|
1612
1591
|
obbMatrix.multiply(rotationMatrix4);
|
|
1613
|
-
if (localMatrix) {
|
|
1614
|
-
obbMatrix.premultiply(localMatrix);
|
|
1615
|
-
}
|
|
1616
1592
|
|
|
1617
1593
|
userData.obb = {
|
|
1618
1594
|
matrix: obbMatrix,
|
|
@@ -1657,9 +1633,6 @@ export default {
|
|
|
1657
1633
|
this.buildOctreeFromBoxIndex();
|
|
1658
1634
|
console.log('time end', Date.now());
|
|
1659
1635
|
},
|
|
1660
|
-
shouldApplyOcclusionByBox(box) {
|
|
1661
|
-
return !!(box && box.userData && box.userData.occlusionEnabled);
|
|
1662
|
-
},
|
|
1663
1636
|
tryInitialCenterAfterBoundsReady() {
|
|
1664
1637
|
if (this.hasExecutedCentering || this.userInteracting) return;
|
|
1665
1638
|
if (
|
|
@@ -2330,10 +2303,6 @@ export default {
|
|
|
2330
2303
|
for (let i = 0; i < hits.length; i++) {
|
|
2331
2304
|
if (hits[i].box && hits[i].box.userData && hits[i].box.userData.visible === false)
|
|
2332
2305
|
continue;
|
|
2333
|
-
if (!this.shouldApplyOcclusionByBox(hits[i].box)) {
|
|
2334
|
-
visibleIdSet.add(this.formatModelId(hits[i].modelId));
|
|
2335
|
-
continue;
|
|
2336
|
-
}
|
|
2337
2306
|
candidates.push(hits[i]);
|
|
2338
2307
|
}
|
|
2339
2308
|
} else if (this._boxIndex && this._boxIndex.size > 0) {
|
|
@@ -2341,10 +2310,6 @@ export default {
|
|
|
2341
2310
|
if (bypassList && bypassList.size > 0 && bypassList.has(modelId)) return;
|
|
2342
2311
|
if (box.userData && box.userData.visible === false) return;
|
|
2343
2312
|
if (this.isBoxInFrustum(box)) {
|
|
2344
|
-
if (!this.shouldApplyOcclusionByBox(box)) {
|
|
2345
|
-
visibleIdSet.add(this.formatModelId(modelId));
|
|
2346
|
-
return;
|
|
2347
|
-
}
|
|
2348
2313
|
candidates.push({ modelId, box });
|
|
2349
2314
|
}
|
|
2350
2315
|
});
|
|
@@ -3020,16 +2985,6 @@ export default {
|
|
|
3020
2985
|
instanceInfo && typeof instanceInfo.instanceIndex === 'number'
|
|
3021
2986
|
? instanceInfo.instanceIndex
|
|
3022
2987
|
: null;
|
|
3023
|
-
const box =
|
|
3024
|
-
this._boxIndex && this._boxIndex.has(String(modelId))
|
|
3025
|
-
? this._boxIndex.get(String(modelId))
|
|
3026
|
-
: this._boxIndex && this._boxIndex.has(modelId)
|
|
3027
|
-
? this._boxIndex.get(modelId)
|
|
3028
|
-
: null;
|
|
3029
|
-
if (!this.shouldApplyOcclusionByBox(box)) {
|
|
3030
|
-
allInactive = false;
|
|
3031
|
-
continue;
|
|
3032
|
-
}
|
|
3033
2988
|
|
|
3034
2989
|
const inFrustum = this.isModelInFrustum(child, instanceIndex, globalFrustum);
|
|
3035
2990
|
const modelInVisible = toLoadSet.has(modelId);
|
|
@@ -3043,18 +2998,6 @@ export default {
|
|
|
3043
2998
|
|
|
3044
2999
|
// 第二遍遍历:同步状态并决定是否卸载
|
|
3045
3000
|
for (const modelId of modelIds) {
|
|
3046
|
-
const box =
|
|
3047
|
-
this._boxIndex && this._boxIndex.has(String(modelId))
|
|
3048
|
-
? this._boxIndex.get(String(modelId))
|
|
3049
|
-
: this._boxIndex && this._boxIndex.has(modelId)
|
|
3050
|
-
? this._boxIndex.get(modelId)
|
|
3051
|
-
: null;
|
|
3052
|
-
if (!this.shouldApplyOcclusionByBox(box)) {
|
|
3053
|
-
if (toLoadSet.has(modelId)) {
|
|
3054
|
-
toLoadSet.delete(modelId);
|
|
3055
|
-
}
|
|
3056
|
-
continue;
|
|
3057
|
-
}
|
|
3058
3001
|
// 无论是否卸载,只要模型已在场景中,就从待加载集合中移除
|
|
3059
3002
|
if (toLoadSet.has(modelId)) {
|
|
3060
3003
|
toLoadSet.delete(modelId);
|
|
@@ -3076,18 +3019,6 @@ export default {
|
|
|
3076
3019
|
? child.parent.userData.instanceId
|
|
3077
3020
|
: child.uuid;
|
|
3078
3021
|
if (bypassList && bypassList.size > 0 && bypassList.has(modelId)) return;
|
|
3079
|
-
const box =
|
|
3080
|
-
this._boxIndex && this._boxIndex.has(String(modelId))
|
|
3081
|
-
? this._boxIndex.get(String(modelId))
|
|
3082
|
-
: this._boxIndex && this._boxIndex.has(modelId)
|
|
3083
|
-
? this._boxIndex.get(modelId)
|
|
3084
|
-
: null;
|
|
3085
|
-
if (!this.shouldApplyOcclusionByBox(box)) {
|
|
3086
|
-
if (toLoadSet.has(modelId)) {
|
|
3087
|
-
toLoadSet.delete(modelId);
|
|
3088
|
-
}
|
|
3089
|
-
return;
|
|
3090
|
-
}
|
|
3091
3022
|
|
|
3092
3023
|
const inFrustum = this.isModelInFrustum(child, null, globalFrustum);
|
|
3093
3024
|
let modelInVisible = toLoadSet.has(modelId);
|