iflow-engine-base 3.4.13 → 3.5.1
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/assets/hdr/99.hdr +0 -0
- package/dist/bim-engine-sdk.es.js +27764 -19247
- package/dist/bim-engine-sdk.es.js.map +1 -1
- package/dist/bim-engine-sdk.umd.js +739 -236
- package/dist/bim-engine-sdk.umd.js.map +1 -1
- package/dist/iflow-engine-base.css +1 -1
- package/dist/index.d.ts +351 -19
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
.originRotate{width:10px;height:10px;background-color:red}.versionText{position:absolute;right:10px;color:#86d9ff;z-index:1000;bottom:0;font-size:10px;background:transparent;pointer-events:none}.originDiv{position:absolute;top:100px;left:100px;width:30px;height:30px;border-radius:50%;z-index:1000;pointer-events:none}.tagDiv{color:gray;background:#fffc;padding:5px;font-size:12px}.catchPoint{pointer-events:none;stroke:#08dfd7;fill:transparent;stroke-width:2}.catchLine{position:absolute;width:10px;height:10px;pointer-events:none;background-color:green}.catchPlane{position:absolute;width:10px;height:10px;pointer-events:none;background-color:#ff0}.ViewCube{position:absolute;width:120px;height:120px;top:0;right:0;z-index:999}.homeViewWrapper{position:absolute;cursor:pointer;pointer-events:auto;background-image:url(/assets/viewcube/home.png);background-size:100% 100%;background-repeat:no-repeat;background-color:#fff0;color:#fff;top:10px;right:100;width:20px;height:20px;z-index:999;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.viewSettingWrapper{position:absolute;cursor:pointer;pointer-events:auto;background-size:100% 100%;background-repeat:no-repeat;font-weight:800;background-color:#fff0;color:#fff;top:30px;right:100;width:20px;height:20px;z-index:999;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.cameraToggleWrapper{position:absolute;cursor:pointer;pointer-events:auto;background-color:#ffffffe6;color:#333;font-size:26px;font-weight:700;display:none;align-items:center;justify-content:center;border-radius:4px;box-shadow:0 2px 4px #0003;transition:all .3s ease;top:70px;right:90px;width:44px;height:44px;z-index:999;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.cameraToggleWrapper.show{display:flex}.cameraToggleWrapper:hover{background-color:#fff;box-shadow:0 3px 6px #0000004d;transform:scale(1.1)}.screenshotWrapper{position:absolute;cursor:pointer;pointer-events:auto;background-color:#ffffffe6;color:#333;font-size:20px;display:none;align-items:center;justify-content:center;border-radius:4px;box-shadow:0 2px 4px #0003;transition:all .3s ease;top:120px;right:90px;width:44px;height:44px;z-index:999;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.screenshotWrapper.show{display:flex}.screenshotWrapper:hover{background-color:#fff;box-shadow:0 3px 6px #0000004d;transform:scale(1.1)}.fullscreenWrapper{position:absolute;cursor:pointer;pointer-events:auto;background-color:#ffffffe6;color:#333;font-size:26px;font-weight:700;display:none;align-items:center;justify-content:center;border-radius:4px;box-shadow:0 2px 4px #0003;transition:all .3s ease;top:170px;right:90px;width:44px;height:44px;z-index:999;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.fullscreenWrapper.show{display:flex}.fullscreenWrapper:hover{background-color:#fff;box-shadow:0 3px 6px #0000004d;transform:scale(1.1)}.measure-elevation{position:absolute;pointer-events:none}.measureSvg{position:absolute;width:1920px;height:1080px}.catch-point{position:absolute;width:10px;height:10px;background-color:red;border-radius:50%;pointer-events:none}.annotation-container{position:absolute;pointer-events:none;top:0;left:0}.measureLine{position:absolute;pointer-events:none;stroke:#009bea;fill:#009bea;filter:drop-shadow(1px 1px 2px rgba(0,0,0,.3))}.measureBack{cursor:pointer;pointer-events:auto;fill:#fff;padding:5px;top:-50px;rx:5;ry:5;filter:drop-shadow(1px 1px 2px rgba(0,0,0,.3))}.measureLabel{position:absolute;fill:#fff;font-size:14px;stroke:#009bea;font-weight:100;pointer-events:none}.measurePointer{fill:#009bea}.Hight{stroke:#fff;font-weight:500;filter:drop-shadow(2px 1px 2px rgba(255,255,255,1))}.allow-select{pointer-events:auto}.disallow-select{pointer-events:none}.angle-annotation{position:absolute;pointer-events:auto}.MapController{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.engine-2d-container{position:relative;width:100%;height:100%;overflow:hidden}.engine-2d-canvas{display:block;width:100%;height:100%;outline:none}.engine-2d-cad-cursor{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden}.engine-2d-cad-cursor__h{position:absolute;left:0;width:100%;height:1px;background:var(--e2d-cursor, rgba(255, 255, 255, .85));transform:translateY(-50%)}.engine-2d-cad-cursor__v{position:absolute;top:0;width:1px;height:100%;background:var(--e2d-cursor, rgba(255, 255, 255, .85));transform:translate(-50%)}.engine-2d-cad-cursor__box{position:absolute;width:8px;height:8px;border:1px solid var(--e2d-cursor, rgba(255, 255, 255, .85));transform:translate(-50%,-50%)}.engine-2d-context-menu{position:absolute;z-index:9999;min-width:140px;background:var(--e2d-bg2, #252526);border:1px solid var(--e2d-border, rgba(255, 255, 255, .12));border-radius:4px;box-shadow:0 4px 16px var(--e2d-shadow, rgba(0, 0, 0, .5));padding:4px 0;display:none;-webkit-user-select:none;user-select:none}.engine-2d-context-menu--visible{display:block}.engine-2d-context-menu__item{padding:7px 16px;font-size:13px;color:var(--e2d-text2, #cccccc);cursor:pointer;white-space:nowrap;transition:background .1s,color .1s}.engine-2d-context-menu__item:hover{background:var(--e2d-bg-accent, #094771);color:var(--e2d-text-accent, #ffffff)}.engine-2d-context-menu__divider{height:1px;background:var(--e2d-border, rgba(255, 255, 255, .1));margin:4px 0}.engine-2d-stats{position:absolute;top:10px;left:10px;background:var(--e2d-float-bg, rgba(0, 0, 0, .7));color:var(--e2d-text, #e0e0e0);padding:8px 12px;border-radius:4px;font-family:monospace;font-size:12px;pointer-events:none;-webkit-user-select:none;user-select:none}.engine-2d-stats div{margin:2px 0}.engine-2d-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--e2d-float-bg, rgba(0, 0, 0, .8));color:var(--e2d-text, #e0e0e0);padding:20px 40px;border-radius:8px;font-size:16px;text-align:center}.engine-2d-loading-spinner{border:3px solid var(--e2d-border, rgba(255, 255, 255, .3));border-top:3px solid var(--e2d-accent, #4fc3f7);border-radius:50%;width:40px;height:40px;animation:engine-2d-spin 1s linear infinite;margin:0 auto 10px}@keyframes engine-2d-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.engine-2d-error{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#d32f2feb;color:#fff;padding:20px 40px;border-radius:8px;font-size:14px;max-width:80%;text-align:center}.engine-2d-controls-hint{position:absolute;bottom:10px;left:10px;background:var(--e2d-float-bg, rgba(0, 0, 0, .6));color:var(--e2d-text, #e0e0e0);border:1px solid var(--e2d-float-border, rgba(255, 255, 255, .08));padding:8px 12px;border-radius:4px;font-size:12px;pointer-events:none;-webkit-user-select:none;user-select:none}.engine-2d-controls-hint kbd{background:var(--e2d-icon-bg, rgba(255, 255, 255, .2));color:var(--e2d-text, #e0e0e0);padding:2px 6px;border-radius:3px;font-family:monospace}.engine-2d-search{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9998;display:none}.engine-2d-search--visible{display:block}.engine-2d-search__box{position:absolute;top:14%;left:50%;transform:translate(-50%);width:480px;max-width:calc(100% - 40px);background:var(--e2d-bg, #1e1f22);border:1px solid var(--e2d-border, rgba(255, 255, 255, .14));border-radius:10px;box-shadow:0 8px 40px var(--e2d-shadow-lg, rgba(0, 0, 0, .65)),0 2px 8px var(--e2d-shadow, rgba(0, 0, 0, .4));overflow:hidden;pointer-events:auto;animation:engine-2d-search-in .18s cubic-bezier(.34,1.2,.64,1)}@keyframes engine-2d-search-in{0%{opacity:0;transform:translate(-50%) translateY(-8px) scale(.97)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.engine-2d-search__input-row{display:flex;align-items:center;padding:0 12px;gap:8px;height:48px}.engine-2d-search__icon{flex-shrink:0;color:var(--e2d-icon, rgba(255, 255, 255, .4));display:flex;align-items:center}.engine-2d-search__input{flex:1;background:transparent;border:none;outline:none;color:var(--e2d-text, #e0e0e0);font-size:14px;line-height:1.4;caret-color:var(--e2d-accent, #4fc3f7)}.engine-2d-search__input::placeholder{color:var(--e2d-text3, rgba(255, 255, 255, .25))}.engine-2d-search__clear{flex-shrink:0;background:var(--e2d-icon-bg, rgba(255, 255, 255, .08));border:none;border-radius:4px;color:var(--e2d-icon, rgba(255, 255, 255, .5));cursor:pointer;display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;opacity:0;pointer-events:none;transition:opacity .15s,background .15s,color .15s}.engine-2d-search__clear:hover{background:var(--e2d-icon-bg-hover, rgba(255, 255, 255, .16));color:var(--e2d-close-hover, #ffffff)}.engine-2d-search__divider{height:1px;background:var(--e2d-border2, rgba(255, 255, 255, .08));display:none}.engine-2d-search__status{padding:6px 16px;font-size:11px;color:var(--e2d-text3, rgba(255, 255, 255, .35));display:none;-webkit-user-select:none;user-select:none}.engine-2d-search__list{list-style:none;margin:0;padding:4px 0;max-height:320px;overflow-y:auto;display:none;scrollbar-width:thin;scrollbar-color:var(--e2d-scrollbar, rgba(255, 255, 255, .15)) transparent}.engine-2d-search__list::-webkit-scrollbar{width:4px}.engine-2d-search__list::-webkit-scrollbar-track{background:transparent}.engine-2d-search__list::-webkit-scrollbar-thumb{background:var(--e2d-scrollbar, rgba(255, 255, 255, .15));border-radius:2px}.engine-2d-search__item{display:flex;align-items:center;gap:8px;padding:8px 14px;cursor:pointer;transition:background .1s;min-height:38px;flex-wrap:nowrap}.engine-2d-search__item:hover,.engine-2d-search__item--active{background:var(--e2d-bg-hover, rgba(79, 195, 247, .08))}.engine-2d-search__item-badge{flex-shrink:0;font-size:10px;font-weight:500;padding:2px 6px;border-radius:3px;letter-spacing:.03em;white-space:nowrap}.engine-2d-search__item-name{flex:1;font-size:13px;color:var(--e2d-text, #e0e0e0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.engine-2d-search__item-layer{flex-shrink:0;font-size:11px;color:var(--e2d-text3, rgba(255, 255, 255, .3));white-space:nowrap;max-width:100px;overflow:hidden;text-overflow:ellipsis}.engine-2d-search__item-desc{flex-shrink:0;font-size:11px;color:var(--e2d-text4, rgba(255, 255, 255, .25));white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}.engine-2d-search__mark{background:transparent;color:var(--e2d-accent, #4fc3f7);font-weight:600}.engine-2d-mouse-coord{position:absolute;bottom:10px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;background:var(--e2d-float-bg, rgba(0, 0, 0, .65));color:var(--e2d-text, #e0e0e0);padding:5px 14px;border-radius:4px;font-family:monospace;font-size:12px;pointer-events:none;-webkit-user-select:none;user-select:none;border:1px solid var(--e2d-float-border, rgba(255, 255, 255, .08))}.engine-2d-mouse-coord__label{color:var(--e2d-coord-label, rgba(255, 255, 255, .45));font-size:11px;letter-spacing:.05em}.engine-2d-mouse-coord__value{min-width:90px;color:var(--e2d-coord-value, #76c8ff)}.panorama-annotation-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1000;overflow:hidden}.panorama-annotation{position:absolute;pointer-events:auto;cursor:pointer;transform:translate(-50%,-50%);transition:opacity .2s ease,transform .2s ease;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.panorama-annotation:hover{z-index:1001;transform:translate(-50%,-50%) scale(1.1)}.panorama-annotation-icon{width:40px;height:40px}.panorama-annotation-icon img{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.panorama-annotation-text{max-width:200px;text-align:center;line-height:1.4}.panorama-annotation-link{transition:background-color .2s ease,transform .2s ease}.panorama-annotation-link:hover{z-index:1002}.panorama-annotation-link img{display:block;flex-shrink:0}.panorama-annotation.hidden{display:none!important}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.panorama-annotation.loading{animation:pulse 1.5s ease-in-out infinite}@media(max-width:768px){.panorama-annotation-icon{width:32px;height:32px}.panorama-annotation-text,.panorama-annotation-link{font-size:12px!important;padding:6px 10px!important}}
|
|
1
|
+
.originRotate{width:10px;height:10px;background-color:red}.versionText{position:absolute;right:10px;color:#86d9ff;z-index:1000;bottom:0;font-size:10px;background:transparent;pointer-events:none}.originDiv{position:absolute;top:100px;left:100px;width:30px;height:30px;border-radius:50%;z-index:1000;pointer-events:none}.tagDiv{color:gray;background:#fffc;padding:5px;font-size:12px}.catchPoint{pointer-events:none;stroke:#08dfd7;fill:transparent;stroke-width:2}.catchLine{position:absolute;width:10px;height:10px;pointer-events:none;background-color:green}.catchPlane{position:absolute;width:10px;height:10px;pointer-events:none;background-color:#ff0}.ViewCube{position:absolute;width:120px;height:120px;top:0;right:0;z-index:999}.homeViewWrapper{position:absolute;cursor:pointer;pointer-events:auto;background-image:url(/assets/viewcube/home.png);background-size:100% 100%;background-repeat:no-repeat;background-color:#fff0;color:#fff;top:10px;right:100;width:20px;height:20px;z-index:999;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.viewSettingWrapper{position:absolute;cursor:pointer;pointer-events:auto;background-size:100% 100%;background-repeat:no-repeat;font-weight:800;background-color:#fff0;color:#fff;top:30px;right:100;width:20px;height:20px;z-index:999;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.cameraToggleWrapper{position:absolute;cursor:pointer;pointer-events:auto;background-color:#ffffffe6;color:#333;font-size:26px;font-weight:700;display:none;align-items:center;justify-content:center;border-radius:4px;box-shadow:0 2px 4px #0003;transition:all .3s ease;top:70px;right:90px;width:44px;height:44px;z-index:999;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.cameraToggleWrapper.show{display:flex}.cameraToggleWrapper:hover{background-color:#fff;box-shadow:0 3px 6px #0000004d;transform:scale(1.1)}.screenshotWrapper{position:absolute;cursor:pointer;pointer-events:auto;background-color:#ffffffe6;color:#333;font-size:20px;display:none;align-items:center;justify-content:center;border-radius:4px;box-shadow:0 2px 4px #0003;transition:all .3s ease;top:120px;right:90px;width:44px;height:44px;z-index:999;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.screenshotWrapper.show{display:flex}.screenshotWrapper:hover{background-color:#fff;box-shadow:0 3px 6px #0000004d;transform:scale(1.1)}.fullscreenWrapper{position:absolute;cursor:pointer;pointer-events:auto;background-color:#ffffffe6;color:#333;font-size:26px;font-weight:700;display:none;align-items:center;justify-content:center;border-radius:4px;box-shadow:0 2px 4px #0003;transition:all .3s ease;top:170px;right:90px;width:44px;height:44px;z-index:999;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.fullscreenWrapper.show{display:flex}.fullscreenWrapper:hover{background-color:#fff;box-shadow:0 3px 6px #0000004d;transform:scale(1.1)}.measure-elevation{position:absolute;pointer-events:none}.measureSvg{position:absolute;width:1920px;height:1080px}.catch-point{position:absolute;width:10px;height:10px;background-color:red;border-radius:50%;pointer-events:none}.annotation-container{position:absolute;pointer-events:none;top:0;left:0}.measureLine{position:absolute;pointer-events:none;stroke:#009bea;fill:#009bea;filter:drop-shadow(0px 0px 2px rgba(0,0,0,.3))}.measureBack{cursor:pointer;pointer-events:auto;fill:#fff;rx:5;ry:5;filter:drop-shadow(0px 0px 3px rgba(0,0,0,.3));text-align:center}.measureLabel{position:absolute;fill:#fff;font-family:tahoma;font-size:14px;stroke:#009bea;font-weight:200;pointer-events:none;text-anchor:middle}.measurePointer{fill:#009bea}.Hight{stroke:#fff;font-weight:500;filter:drop-shadow(0px 0px 2px rgb(0,195,255))}.allow-select{pointer-events:auto}.disallow-select{pointer-events:none}.angle-annotation{position:absolute;pointer-events:auto}.MapController{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.engine-2d-container{position:relative;width:100%;height:100%;overflow:hidden}.engine-2d-canvas{display:block;width:100%;height:100%;outline:none}.engine-2d-cad-cursor{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden}.engine-2d-cad-cursor__h{position:absolute;left:0;width:100%;height:1px;background:var(--e2d-cursor, rgba(255, 255, 255, .85));transform:translateY(-50%)}.engine-2d-cad-cursor__v{position:absolute;top:0;width:1px;height:100%;background:var(--e2d-cursor, rgba(255, 255, 255, .85));transform:translate(-50%)}.engine-2d-cad-cursor__box{position:absolute;width:8px;height:8px;border:1px solid var(--e2d-cursor, rgba(255, 255, 255, .85));transform:translate(-50%,-50%)}.engine-2d-context-menu{position:absolute;z-index:9999;min-width:140px;background:var(--e2d-bg2, #252526);border:1px solid var(--e2d-border, rgba(255, 255, 255, .12));border-radius:4px;box-shadow:0 4px 16px var(--e2d-shadow, rgba(0, 0, 0, .5));padding:4px 0;display:none;-webkit-user-select:none;user-select:none}.engine-2d-context-menu--visible{display:block}.engine-2d-context-menu__item{padding:7px 16px;font-size:13px;color:var(--e2d-text2, #cccccc);cursor:pointer;white-space:nowrap;transition:background .1s,color .1s}.engine-2d-context-menu__item:hover{background:var(--e2d-bg-accent, #094771);color:var(--e2d-text-accent, #ffffff)}.engine-2d-context-menu__divider{height:1px;background:var(--e2d-border, rgba(255, 255, 255, .1));margin:4px 0}.engine-2d-stats{position:absolute;top:10px;left:10px;background:var(--e2d-float-bg, rgba(0, 0, 0, .7));color:var(--e2d-text, #e0e0e0);padding:8px 12px;border-radius:4px;font-family:monospace;font-size:12px;pointer-events:none;-webkit-user-select:none;user-select:none}.engine-2d-stats div{margin:2px 0}.engine-2d-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--e2d-float-bg, rgba(0, 0, 0, .8));color:var(--e2d-text, #e0e0e0);padding:20px 40px;border-radius:8px;font-size:16px;text-align:center}.engine-2d-loading-spinner{border:3px solid var(--e2d-border, rgba(255, 255, 255, .3));border-top:3px solid var(--e2d-accent, #4fc3f7);border-radius:50%;width:40px;height:40px;animation:engine-2d-spin 1s linear infinite;margin:0 auto 10px}@keyframes engine-2d-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.engine-2d-error{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#d32f2feb;color:#fff;padding:20px 40px;border-radius:8px;font-size:14px;max-width:80%;text-align:center}.engine-2d-controls-hint{position:absolute;bottom:10px;left:10px;background:var(--e2d-float-bg, rgba(0, 0, 0, .6));color:var(--e2d-text, #e0e0e0);border:1px solid var(--e2d-float-border, rgba(255, 255, 255, .08));padding:8px 12px;border-radius:4px;font-size:12px;pointer-events:none;-webkit-user-select:none;user-select:none}.engine-2d-controls-hint kbd{background:var(--e2d-icon-bg, rgba(255, 255, 255, .2));color:var(--e2d-text, #e0e0e0);padding:2px 6px;border-radius:3px;font-family:monospace}.engine-2d-search{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9998;display:none}.engine-2d-search--visible{display:block}.engine-2d-search__box{position:absolute;top:14%;left:50%;transform:translate(-50%);width:480px;max-width:calc(100% - 40px);background:var(--e2d-bg, #1e1f22);border:1px solid var(--e2d-border, rgba(255, 255, 255, .14));border-radius:10px;box-shadow:0 8px 40px var(--e2d-shadow-lg, rgba(0, 0, 0, .65)),0 2px 8px var(--e2d-shadow, rgba(0, 0, 0, .4));overflow:hidden;pointer-events:auto;animation:engine-2d-search-in .18s cubic-bezier(.34,1.2,.64,1)}@keyframes engine-2d-search-in{0%{opacity:0;transform:translate(-50%) translateY(-8px) scale(.97)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.engine-2d-search__input-row{display:flex;align-items:center;padding:0 12px;gap:8px;height:48px}.engine-2d-search__icon{flex-shrink:0;color:var(--e2d-icon, rgba(255, 255, 255, .4));display:flex;align-items:center}.engine-2d-search__input{flex:1;background:transparent;border:none;outline:none;color:var(--e2d-text, #e0e0e0);font-size:14px;line-height:1.4;caret-color:var(--e2d-accent, #4fc3f7)}.engine-2d-search__input::placeholder{color:var(--e2d-text3, rgba(255, 255, 255, .25))}.engine-2d-search__clear{flex-shrink:0;background:var(--e2d-icon-bg, rgba(255, 255, 255, .08));border:none;border-radius:4px;color:var(--e2d-icon, rgba(255, 255, 255, .5));cursor:pointer;display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;opacity:0;pointer-events:none;transition:opacity .15s,background .15s,color .15s}.engine-2d-search__clear:hover{background:var(--e2d-icon-bg-hover, rgba(255, 255, 255, .16));color:var(--e2d-close-hover, #ffffff)}.engine-2d-search__divider{height:1px;background:var(--e2d-border2, rgba(255, 255, 255, .08));display:none}.engine-2d-search__status{padding:6px 16px;font-size:11px;color:var(--e2d-text3, rgba(255, 255, 255, .35));display:none;-webkit-user-select:none;user-select:none}.engine-2d-search__list{list-style:none;margin:0;padding:4px 0;max-height:320px;overflow-y:auto;display:none;scrollbar-width:thin;scrollbar-color:var(--e2d-scrollbar, rgba(255, 255, 255, .15)) transparent}.engine-2d-search__list::-webkit-scrollbar{width:4px}.engine-2d-search__list::-webkit-scrollbar-track{background:transparent}.engine-2d-search__list::-webkit-scrollbar-thumb{background:var(--e2d-scrollbar, rgba(255, 255, 255, .15));border-radius:2px}.engine-2d-search__item{display:flex;align-items:center;gap:8px;padding:8px 14px;cursor:pointer;transition:background .1s;min-height:38px;flex-wrap:nowrap}.engine-2d-search__item:hover,.engine-2d-search__item--active{background:var(--e2d-bg-hover, rgba(79, 195, 247, .08))}.engine-2d-search__item-badge{flex-shrink:0;font-size:10px;font-weight:500;padding:2px 6px;border-radius:3px;letter-spacing:.03em;white-space:nowrap}.engine-2d-search__item-name{flex:1;font-size:13px;color:var(--e2d-text, #e0e0e0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.engine-2d-search__item-layer{flex-shrink:0;font-size:11px;color:var(--e2d-text3, rgba(255, 255, 255, .3));white-space:nowrap;max-width:100px;overflow:hidden;text-overflow:ellipsis}.engine-2d-search__item-desc{flex-shrink:0;font-size:11px;color:var(--e2d-text4, rgba(255, 255, 255, .25));white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}.engine-2d-search__mark{background:transparent;color:var(--e2d-accent, #4fc3f7);font-weight:600}.engine-2d-mouse-coord{position:absolute;bottom:10px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;background:var(--e2d-float-bg, rgba(0, 0, 0, .65));color:var(--e2d-text, #e0e0e0);padding:5px 14px;border-radius:4px;font-family:monospace;font-size:12px;pointer-events:none;-webkit-user-select:none;user-select:none;border:1px solid var(--e2d-float-border, rgba(255, 255, 255, .08))}.engine-2d-mouse-coord__label{color:var(--e2d-coord-label, rgba(255, 255, 255, .45));font-size:11px;letter-spacing:.05em}.engine-2d-mouse-coord__value{min-width:90px;color:var(--e2d-coord-value, #76c8ff)}.panorama-annotation-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1000;overflow:hidden}.panorama-annotation{position:absolute;pointer-events:auto;cursor:pointer;transform:translate(-50%,-50%);transition:opacity .2s ease,transform .2s ease;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.panorama-annotation:hover{z-index:1001;transform:translate(-50%,-50%) scale(1.1)}.panorama-annotation-icon{width:40px;height:40px}.panorama-annotation-icon img{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.panorama-annotation-text{max-width:200px;text-align:center;line-height:1.4}.panorama-annotation-link{transition:background-color .2s ease,transform .2s ease}.panorama-annotation-link:hover{z-index:1002}.panorama-annotation-link img{display:block;flex-shrink:0}.panorama-annotation.hidden{display:none!important}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.panorama-annotation.loading{animation:pulse 1.5s ease-in-out infinite}@media(max-width:768px){.panorama-annotation-icon{width:32px;height:32px}.panorama-annotation-text,.panorama-annotation-link{font-size:12px!important;padding:6px 10px!important}}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
+
import { Circle } from 'fabric';
|
|
1
2
|
import { default as default_2 } from 'stats.js';
|
|
3
|
+
import { Group } from 'fabric';
|
|
4
|
+
import { IText } from 'fabric';
|
|
5
|
+
import { Line } from 'fabric';
|
|
6
|
+
import { Path } from 'fabric';
|
|
7
|
+
import { Rect } from 'fabric';
|
|
2
8
|
import * as THREE from 'three';
|
|
3
9
|
import * as THREE_2 from '../../../three/three.module.js';
|
|
4
10
|
|
|
@@ -579,6 +585,8 @@ declare class ClippingCSGOptimizedSimple {
|
|
|
579
585
|
private readonly maxTriangleCountPerMesh;
|
|
580
586
|
/** 补面统一材质(由你在构造器中挂了 clippingPlanes) */
|
|
581
587
|
private fillMaterial;
|
|
588
|
+
private readonly fillTextureRepeat;
|
|
589
|
+
private readonly fillTextureRotation;
|
|
582
590
|
constructor(engine: any);
|
|
583
591
|
/**
|
|
584
592
|
* 清理当前所有补面。
|
|
@@ -676,6 +684,8 @@ declare class ClippingCSGOptimizedSimple {
|
|
|
676
684
|
* 提取后将三角形顶点投影回 plane,保证补面共面。
|
|
677
685
|
*/
|
|
678
686
|
private extractPlaneCapGeometry;
|
|
687
|
+
private applyPlanarUv;
|
|
688
|
+
private getPlaneBasis;
|
|
679
689
|
}
|
|
680
690
|
|
|
681
691
|
declare class ComposerModule {
|
|
@@ -949,6 +959,80 @@ declare class DeviceModule {
|
|
|
949
959
|
};
|
|
950
960
|
}
|
|
951
961
|
|
|
962
|
+
/**
|
|
963
|
+
* DrawingPin 视点管理器
|
|
964
|
+
* 仅暴露两个主接口:
|
|
965
|
+
* 1. get(): 获取当前视点完整状态
|
|
966
|
+
* 2. restore(): 还原视点完整状态
|
|
967
|
+
*/
|
|
968
|
+
declare class DrawingPin {
|
|
969
|
+
private engine;
|
|
970
|
+
constructor(engine: any);
|
|
971
|
+
/**
|
|
972
|
+
* 获取当前视点状态(相机 + 剖切 + 测量 + 批注)
|
|
973
|
+
*/
|
|
974
|
+
get(): IDrawingPinState;
|
|
975
|
+
/**
|
|
976
|
+
* 还原视点状态(相机 + 剖切 + 测量 + 批注)
|
|
977
|
+
*/
|
|
978
|
+
restore(state: IDrawingPinState, mode?: FabricDrawMode): Promise<void>;
|
|
979
|
+
/**
|
|
980
|
+
* 创建视点(进入批注流程)
|
|
981
|
+
* 1. 启用批注功能
|
|
982
|
+
* 2. 用户点击“确定”后自动调用 get()
|
|
983
|
+
* 3. 将完整视点数据通过回调抛出
|
|
984
|
+
*/
|
|
985
|
+
create(callback?: (state: IDrawingPinState) => void): void;
|
|
986
|
+
/**
|
|
987
|
+
* 清空批注(便捷接口)
|
|
988
|
+
*/
|
|
989
|
+
clearAnnotation(): void;
|
|
990
|
+
/**
|
|
991
|
+
* 获取剖切状态
|
|
992
|
+
*/
|
|
993
|
+
private captureClippingState;
|
|
994
|
+
/**
|
|
995
|
+
* 还原剖切状态
|
|
996
|
+
*/
|
|
997
|
+
private restoreClippingState;
|
|
998
|
+
/**
|
|
999
|
+
* 还原面剖切(不走拾取流程)
|
|
1000
|
+
*/
|
|
1001
|
+
private restoreFaceMode;
|
|
1002
|
+
/**
|
|
1003
|
+
* 将法向/距离应用到 sectionFace
|
|
1004
|
+
*/
|
|
1005
|
+
private applyFaceState;
|
|
1006
|
+
/**
|
|
1007
|
+
* 获取测量数据(移除 DOM 引用)
|
|
1008
|
+
*/
|
|
1009
|
+
private captureMeasureData;
|
|
1010
|
+
/**
|
|
1011
|
+
* 还原测量数据
|
|
1012
|
+
*/
|
|
1013
|
+
private restoreMeasureData;
|
|
1014
|
+
/**
|
|
1015
|
+
* 获取 Fabric 批注数据
|
|
1016
|
+
*/
|
|
1017
|
+
private captureAnnotationData;
|
|
1018
|
+
/**
|
|
1019
|
+
* 还原 Fabric 批注数据
|
|
1020
|
+
*/
|
|
1021
|
+
private restoreAnnotationData;
|
|
1022
|
+
/**
|
|
1023
|
+
* 按模式启用批注层:view 只查看,edit 可编辑。
|
|
1024
|
+
*/
|
|
1025
|
+
private applyAnnotationMode;
|
|
1026
|
+
/**
|
|
1027
|
+
* 深度序列化:保留 Vector3,移除 DOM/函数
|
|
1028
|
+
*/
|
|
1029
|
+
private serializeSnapshotValue;
|
|
1030
|
+
/**
|
|
1031
|
+
* 深度反序列化:将标记对象还原为 Vector3
|
|
1032
|
+
*/
|
|
1033
|
+
private deserializeSnapshotValue;
|
|
1034
|
+
}
|
|
1035
|
+
|
|
952
1036
|
/**
|
|
953
1037
|
* 块定义
|
|
954
1038
|
*/
|
|
@@ -1452,6 +1536,8 @@ declare class EngineKernelV2 {
|
|
|
1452
1536
|
linkElement2d3d: LinkElement2d3d;
|
|
1453
1537
|
linkView2d3d: LinkView2d3d;
|
|
1454
1538
|
oneClickEncoding: OneClickEncoding;
|
|
1539
|
+
fabricDraw: FabricDraw;
|
|
1540
|
+
drawingPin: DrawingPin;
|
|
1455
1541
|
models: any[];
|
|
1456
1542
|
reactBoundingClientRect: {
|
|
1457
1543
|
left: number;
|
|
@@ -1566,11 +1652,11 @@ declare class EngineModelModule {
|
|
|
1566
1652
|
/**
|
|
1567
1653
|
* 设置输出 Pass 开关
|
|
1568
1654
|
*/
|
|
1569
|
-
|
|
1655
|
+
setOutputPass(enabled: boolean): void;
|
|
1570
1656
|
/**
|
|
1571
1657
|
* 设置 FXAA Pass 开关
|
|
1572
1658
|
*/
|
|
1573
|
-
|
|
1659
|
+
setFXAA(enabled: boolean): void;
|
|
1574
1660
|
/**
|
|
1575
1661
|
* 设置性能模式
|
|
1576
1662
|
*/
|
|
@@ -1887,6 +1973,164 @@ declare enum EventType720 {
|
|
|
1887
1973
|
ViewAngleChanged = "view-angle-changed"
|
|
1888
1974
|
}
|
|
1889
1975
|
|
|
1976
|
+
/**
|
|
1977
|
+
* Fabric 鎵规敞绠$悊鍣細璐熻矗鎵规敞缁樺埗銆佹牱寮忋€佹祴璺濊仈鍔ㄣ€佹埅鍥惧悎鎴愩€? */
|
|
1978
|
+
declare class FabricDraw {
|
|
1979
|
+
private readonly engine;
|
|
1980
|
+
private readonly wrapper;
|
|
1981
|
+
private readonly canvasEl;
|
|
1982
|
+
private readonly canvas;
|
|
1983
|
+
private readonly toolbar;
|
|
1984
|
+
private isActive;
|
|
1985
|
+
private isVisible;
|
|
1986
|
+
private isDistanceMeasureMode;
|
|
1987
|
+
private isMeasurePanelExpanded;
|
|
1988
|
+
private drawType;
|
|
1989
|
+
private mode;
|
|
1990
|
+
private currentMeasureType;
|
|
1991
|
+
private sessionSnapshot;
|
|
1992
|
+
private actionHandlers;
|
|
1993
|
+
private drawStyle;
|
|
1994
|
+
private startPoint;
|
|
1995
|
+
private tempObject;
|
|
1996
|
+
private cloudPoints;
|
|
1997
|
+
private readonly onMouseDown;
|
|
1998
|
+
private readonly onMouseMove;
|
|
1999
|
+
private readonly onMouseUp;
|
|
2000
|
+
private readonly onMouseDblClick;
|
|
2001
|
+
private readonly onSelectionChanged;
|
|
2002
|
+
private readonly onKeyDown;
|
|
2003
|
+
constructor(engine: any);
|
|
2004
|
+
/**
|
|
2005
|
+
* 婵€娲荤粯鍒跺姛鑳姐€? */
|
|
2006
|
+
active(mode?: FabricDrawMode): void;
|
|
2007
|
+
/**
|
|
2008
|
+
* 鍏抽棴缁樺埗鍔熻兘銆? */
|
|
2009
|
+
disActive(): void;
|
|
2010
|
+
/**
|
|
2011
|
+
* close 涓?disActive 鐨勮涔夊埆鍚嶃€? */
|
|
2012
|
+
close(): void;
|
|
2013
|
+
/**
|
|
2014
|
+
* 闅愯棌缁樺埗灞傘€? */
|
|
2015
|
+
hide(): void;
|
|
2016
|
+
/**
|
|
2017
|
+
* 鏄剧ず缁樺埗灞傘€? */
|
|
2018
|
+
show(): void;
|
|
2019
|
+
isShown(): boolean;
|
|
2020
|
+
/**
|
|
2021
|
+
* 璁剧疆缁樺埗绫诲瀷鍜屾牱寮忋€? */
|
|
2022
|
+
setDrawType(type: FabricDrawType, style?: Partial<FabricDrawStyle>): void;
|
|
2023
|
+
getDrawType(): FabricDrawType;
|
|
2024
|
+
/**
|
|
2025
|
+
* 璁剧疆鈥滃彇娑?纭畾鈥濆洖璋冦€? */
|
|
2026
|
+
setActionHandlers(handlers: FabricDrawActionHandlers): void;
|
|
2027
|
+
/**
|
|
2028
|
+
* 鐩存帴缁樺埗绾挎銆? */
|
|
2029
|
+
drawLine(start: FabricDrawPoint, end: FabricDrawPoint, style?: Partial<FabricDrawStyle>): Line;
|
|
2030
|
+
/**
|
|
2031
|
+
* 鐩存帴缁樺埗绠ご銆? */
|
|
2032
|
+
drawArrow(start: FabricDrawPoint, end: FabricDrawPoint, style?: Partial<FabricDrawStyle>): Group;
|
|
2033
|
+
/**
|
|
2034
|
+
* 鐩存帴缁樺埗鐭╁舰銆? */
|
|
2035
|
+
drawRect(start: FabricDrawPoint, end: FabricDrawPoint, style?: Partial<FabricDrawStyle>): Rect;
|
|
2036
|
+
/**
|
|
2037
|
+
* 鐩存帴缁樺埗鍦嗗舰銆? */
|
|
2038
|
+
drawCircle(start: FabricDrawPoint, end: FabricDrawPoint, style?: Partial<FabricDrawStyle>): Circle;
|
|
2039
|
+
/**
|
|
2040
|
+
* 鐩存帴缁樺埗鏂囧瓧銆? */
|
|
2041
|
+
drawText(point: FabricDrawPoint, text?: string, style?: Partial<FabricDrawStyle>): IText;
|
|
2042
|
+
/**
|
|
2043
|
+
* 鐩存帴缁樺埗浜戠嚎銆? */
|
|
2044
|
+
drawCloudLine(points: FabricDrawPoint[], style?: Partial<FabricDrawStyle>): Path | null;
|
|
2045
|
+
/**
|
|
2046
|
+
* 鑾峰彇鎵€鏈夊浘褰€? */
|
|
2047
|
+
getAllShapes(): Record<string, any>;
|
|
2048
|
+
/**
|
|
2049
|
+
* 娓呯┖鎵€鏈夊浘褰€? */
|
|
2050
|
+
clearAllShapes(): void;
|
|
2051
|
+
/**
|
|
2052
|
+
* 杩樺師鎵€鏈夊浘褰€? */
|
|
2053
|
+
restoreAllShapes(data: string | Record<string, any>): Promise<void>;
|
|
2054
|
+
/**
|
|
2055
|
+
* 鎴浘淇濆瓨锛堟ā鍨?Fabric鎵规敞鍚堟垚锛夈€? */
|
|
2056
|
+
saveScreenshot(fileName?: string): string | null;
|
|
2057
|
+
/**
|
|
2058
|
+
* 鍚屾鐢诲竷灏哄銆? */
|
|
2059
|
+
resize(width?: number, height?: number): void;
|
|
2060
|
+
/**
|
|
2061
|
+
* 閿€姣併€? */
|
|
2062
|
+
dispose(): void;
|
|
2063
|
+
private handleMouseDown;
|
|
2064
|
+
private handleMouseMove;
|
|
2065
|
+
private handleMouseUp;
|
|
2066
|
+
private handleMouseDblClick;
|
|
2067
|
+
private handleKeyDown;
|
|
2068
|
+
private getPointFromEvent;
|
|
2069
|
+
private shouldAppendCloudPoint;
|
|
2070
|
+
private createDraftObject;
|
|
2071
|
+
private updateDraftObject;
|
|
2072
|
+
private mergeStyle;
|
|
2073
|
+
private createObjectBase;
|
|
2074
|
+
private createLineObject;
|
|
2075
|
+
private createRectObject;
|
|
2076
|
+
private createCircleObject;
|
|
2077
|
+
private createArrowObject;
|
|
2078
|
+
private createCloudObject;
|
|
2079
|
+
private getBoxFromPoints;
|
|
2080
|
+
private getCircleFromPoints;
|
|
2081
|
+
/**
|
|
2082
|
+
* 灏嗘姌绾跨鏁f垚鈥滈紦鍖呪€濊矾寰勶紝褰㈡垚浜戠嚎瑙嗚鏁堟灉銆? */
|
|
2083
|
+
private buildCloudPath;
|
|
2084
|
+
private handleColorInputChange;
|
|
2085
|
+
private handleStrokeWidthInputChange;
|
|
2086
|
+
private handleFontSizeInputChange;
|
|
2087
|
+
private applyCurrentStyleToSelection;
|
|
2088
|
+
private applyStyleToObject;
|
|
2089
|
+
private syncStyleFromSelection;
|
|
2090
|
+
private readStyleFromObject;
|
|
2091
|
+
private isTextObject;
|
|
2092
|
+
private isInputElement;
|
|
2093
|
+
private applyCanvasInteractive;
|
|
2094
|
+
private parseNumber;
|
|
2095
|
+
private colorToAlpha;
|
|
2096
|
+
private toggleMeasurePanel;
|
|
2097
|
+
private activateDistanceMeasure;
|
|
2098
|
+
private stopDistanceMeasureMode;
|
|
2099
|
+
private disActiveMeasureTools;
|
|
2100
|
+
private activeMeasureTool;
|
|
2101
|
+
private updateOverlayPointerEvents;
|
|
2102
|
+
private handleCancelClick;
|
|
2103
|
+
private handleCloseClick;
|
|
2104
|
+
private handleConfirmClick;
|
|
2105
|
+
private refreshToolbarStyleValues;
|
|
2106
|
+
private refreshToolbarState;
|
|
2107
|
+
private createScreenshotFileName;
|
|
2108
|
+
private cloneJson;
|
|
2109
|
+
}
|
|
2110
|
+
|
|
2111
|
+
declare interface FabricDrawActionHandlers {
|
|
2112
|
+
onConfirm?: (data: Record<string, any>) => void;
|
|
2113
|
+
onCancel?: () => void;
|
|
2114
|
+
}
|
|
2115
|
+
|
|
2116
|
+
declare type FabricDrawMode = 'view' | 'edit';
|
|
2117
|
+
|
|
2118
|
+
declare interface FabricDrawPoint {
|
|
2119
|
+
x: number;
|
|
2120
|
+
y: number;
|
|
2121
|
+
}
|
|
2122
|
+
|
|
2123
|
+
declare interface FabricDrawStyle {
|
|
2124
|
+
stroke: string;
|
|
2125
|
+
strokeWidth: number;
|
|
2126
|
+
fill: string;
|
|
2127
|
+
fontSize: number;
|
|
2128
|
+
text: string;
|
|
2129
|
+
cloudRadius: number;
|
|
2130
|
+
}
|
|
2131
|
+
|
|
2132
|
+
declare type FabricDrawType = 'none' | 'line' | 'arrow' | 'rect' | 'circle' | 'text' | 'cloudline';
|
|
2133
|
+
|
|
1890
2134
|
declare class Grid {
|
|
1891
2135
|
private readonly engine;
|
|
1892
2136
|
private rootGroup;
|
|
@@ -2173,6 +2417,28 @@ declare interface ICameraPose {
|
|
|
2173
2417
|
orthographicHeight?: number;
|
|
2174
2418
|
}
|
|
2175
2419
|
|
|
2420
|
+
declare interface IClippingBoxState {
|
|
2421
|
+
minX: number;
|
|
2422
|
+
minY: number;
|
|
2423
|
+
minZ: number;
|
|
2424
|
+
maxX: number;
|
|
2425
|
+
maxY: number;
|
|
2426
|
+
maxZ: number;
|
|
2427
|
+
}
|
|
2428
|
+
|
|
2429
|
+
declare interface IClippingFaceState {
|
|
2430
|
+
normal: IPoint3;
|
|
2431
|
+
distance: number;
|
|
2432
|
+
direction: number;
|
|
2433
|
+
}
|
|
2434
|
+
|
|
2435
|
+
declare interface IClippingState {
|
|
2436
|
+
mode: string;
|
|
2437
|
+
fillCutFace: boolean;
|
|
2438
|
+
box?: IClippingBoxState;
|
|
2439
|
+
face?: IClippingFaceState;
|
|
2440
|
+
}
|
|
2441
|
+
|
|
2176
2442
|
/**
|
|
2177
2443
|
* 图标标注配置
|
|
2178
2444
|
*/
|
|
@@ -2188,6 +2454,13 @@ declare interface IconAnnotationConfig {
|
|
|
2188
2454
|
metadata?: any;
|
|
2189
2455
|
}
|
|
2190
2456
|
|
|
2457
|
+
declare interface IDrawingPinState {
|
|
2458
|
+
cameraPose: ICameraPose | null;
|
|
2459
|
+
clipping: IClippingState;
|
|
2460
|
+
measureData: Record<string, any> | null;
|
|
2461
|
+
annotationData: Record<string, any> | null;
|
|
2462
|
+
}
|
|
2463
|
+
|
|
2191
2464
|
declare class InteractionModule {
|
|
2192
2465
|
private engine;
|
|
2193
2466
|
private behavior;
|
|
@@ -2287,6 +2560,12 @@ declare interface IPlayOptions {
|
|
|
2287
2560
|
onPointComplete?: (pointIndex: number) => void;
|
|
2288
2561
|
}
|
|
2289
2562
|
|
|
2563
|
+
declare interface IPoint3 {
|
|
2564
|
+
x: number;
|
|
2565
|
+
y: number;
|
|
2566
|
+
z: number;
|
|
2567
|
+
}
|
|
2568
|
+
|
|
2290
2569
|
/**
|
|
2291
2570
|
* 路径点位接口
|
|
2292
2571
|
* 继承自相机姿态,增加停留时间属性
|
|
@@ -2723,8 +3002,15 @@ declare class MiniMap {
|
|
|
2723
3002
|
private miniMapContainer;
|
|
2724
3003
|
private overlayCanvas;
|
|
2725
3004
|
private overlayCtx;
|
|
3005
|
+
private levelToolbar;
|
|
3006
|
+
private modelSelect;
|
|
3007
|
+
private levelSelect;
|
|
3008
|
+
private levelModels;
|
|
3009
|
+
private levelDataSignature;
|
|
3010
|
+
private selectedModelUrl;
|
|
2726
3011
|
private isVisible;
|
|
2727
3012
|
private readonly mapSize;
|
|
3013
|
+
private readonly levelJumpEyeOffset;
|
|
2728
3014
|
private currentHalfSize;
|
|
2729
3015
|
private readonly minHalfSize;
|
|
2730
3016
|
private readonly maxHalfSize;
|
|
@@ -2735,33 +3021,33 @@ declare class MiniMap {
|
|
|
2735
3021
|
private dragMode;
|
|
2736
3022
|
private lastMouseX;
|
|
2737
3023
|
private lastMouseY;
|
|
3024
|
+
private readonly loadingCompletedEventName;
|
|
3025
|
+
private readonly onLoadingCompleted;
|
|
2738
3026
|
constructor(engine: any);
|
|
2739
3027
|
getstate(): boolean;
|
|
2740
3028
|
private init;
|
|
2741
|
-
|
|
2742
|
-
|
|
2743
|
-
|
|
2744
|
-
|
|
3029
|
+
private initLevelSelectors;
|
|
3030
|
+
private createSelectElement;
|
|
3031
|
+
private bindControlEventBlock;
|
|
3032
|
+
private readonly onModelChange;
|
|
3033
|
+
private readonly onLevelChange;
|
|
3034
|
+
private refreshLevelSelectors;
|
|
3035
|
+
private pickSelectedModelUrl;
|
|
3036
|
+
private fillModelSelect;
|
|
3037
|
+
private refreshLevelOptionsByModel;
|
|
3038
|
+
private jumpToElevation;
|
|
3039
|
+
private collectModelLevels;
|
|
3040
|
+
private normalizeLevelData;
|
|
3041
|
+
private getModelDisplayName;
|
|
3042
|
+
private buildLevelSignature;
|
|
2745
3043
|
private worldToPixel;
|
|
2746
|
-
/** 小地图像素坐标 → 世界坐标 XZ */
|
|
2747
3044
|
private pixelToWorld;
|
|
2748
3045
|
private setupEvents;
|
|
2749
|
-
/** 滚轮缩放小地图视野 */
|
|
2750
3046
|
private readonly onWheel;
|
|
2751
|
-
/**
|
|
2752
|
-
* 点击指示器(中心 25px 范围)→ 进入旋转拖拽模式
|
|
2753
|
-
* 点击其他位置 → 计算世界坐标,直接将相机传送过去
|
|
2754
|
-
*/
|
|
2755
3047
|
private readonly onMouseDown;
|
|
2756
3048
|
private readonly onMouseMove;
|
|
2757
3049
|
private readonly onMouseUp;
|
|
2758
|
-
/**
|
|
2759
|
-
* 传送:点击小地图空白区域 → 计算世界坐标,将相机和 target 平移过去
|
|
2760
|
-
*/
|
|
2761
3050
|
private handleTeleport;
|
|
2762
|
-
/**
|
|
2763
|
-
* 旋转:拖动指示器尖端 → 绕 controls.target 旋转主相机水平轨道角
|
|
2764
|
-
*/
|
|
2765
3051
|
private handleRotate;
|
|
2766
3052
|
private drawOverlay;
|
|
2767
3053
|
show(): void;
|
|
@@ -3788,46 +4074,86 @@ declare interface SearchResult {
|
|
|
3788
4074
|
description?: string;
|
|
3789
4075
|
}
|
|
3790
4076
|
|
|
4077
|
+
/** 引擎设置管理器,负责渲染、显示和环境参数的统一管理 */
|
|
3791
4078
|
declare class Setting {
|
|
4079
|
+
/** 引擎实例引用 */
|
|
3792
4080
|
private engine;
|
|
4081
|
+
/** 当前生效的设置项 */
|
|
3793
4082
|
private settings;
|
|
4083
|
+
/** 环境设置的应用版本号,用于防止异步操作的竞态条件 */
|
|
3794
4084
|
private environmentApplyVersion;
|
|
3795
4085
|
constructor(engine: any);
|
|
4086
|
+
/** 初始化(当前为空实现) */
|
|
3796
4087
|
init(): void;
|
|
4088
|
+
/** 获取当前设置的深拷贝 */
|
|
3797
4089
|
getSettings(): EngineSettings;
|
|
4090
|
+
/** 获取地面、HDR、天空的预设列表 */
|
|
3798
4091
|
getPresetLists(): {
|
|
3799
4092
|
ground: SettingPresetItem[];
|
|
3800
4093
|
hdr: SettingPresetItem[];
|
|
3801
4094
|
sky: SettingPresetItem[];
|
|
3802
4095
|
};
|
|
4096
|
+
/** 批量更新设置(支持部分更新) */
|
|
3803
4097
|
setSettings(data: Partial<EngineSettings>): Promise<void>;
|
|
4098
|
+
/** 重置所有设置为默认值 */
|
|
3804
4099
|
resetToDefault(): Promise<void>;
|
|
4100
|
+
/** 设置渲染模式(simple: 简易, balance: 均衡, advanced: 高级) */
|
|
3805
4101
|
setRenderMode(mode: RenderMode): void;
|
|
4102
|
+
/** 设置对比度(0~100) */
|
|
3806
4103
|
setContrast(value: number): void;
|
|
4104
|
+
/** 设置饱和度(0~100) */
|
|
3807
4105
|
setSaturation(value: number): void;
|
|
4106
|
+
/** 设置阴影强度(0~100) */
|
|
3808
4107
|
setShadowIntensity(value: number): void;
|
|
4108
|
+
/** 设置光照强度(0~100),调整环境光亮度 */
|
|
3809
4109
|
setLightIntensity(value: number): void;
|
|
4110
|
+
/** 设置 GTAO(屏幕空间环境光遮蔽)强度(0~100) */
|
|
3810
4111
|
setGTAOIntensity(value: number): void;
|
|
4112
|
+
/** 设置是否显示模型边缘线 */
|
|
3811
4113
|
setShowEdge(show: boolean): void;
|
|
4114
|
+
/** 设置边缘线透明度(0~100) */
|
|
3812
4115
|
setEdgeOpacity(value: number): void;
|
|
4116
|
+
/** 设置是否显示网格 */
|
|
3813
4117
|
setShowGrid(show: boolean): void;
|
|
4118
|
+
/** 设置是否显示楼层 */
|
|
3814
4119
|
setShowLevel(show: boolean): void;
|
|
4120
|
+
/** 设置是否显示地面 */
|
|
3815
4121
|
setShowGround(show: boolean): void;
|
|
4122
|
+
/** 设置当前使用的地面 ID */
|
|
3816
4123
|
setGroundId(id: string): void;
|
|
4124
|
+
/** 设置地面高度 */
|
|
3817
4125
|
setGroundHeight(height: number): void;
|
|
4126
|
+
/** 设置环境类型(none: 无, hdr: HDR贴图, sky: 天空) */
|
|
3818
4127
|
setEnvironmentType(type: EnvironmentType): Promise<void>;
|
|
4128
|
+
/** 设置 HDR 贴图 ID,当前环境为 hdr 时立即生效 */
|
|
3819
4129
|
setHdrId(id: string): Promise<void>;
|
|
4130
|
+
/** 设置 HDR 强度(0~100),仅在 hdr 模式下生效 */
|
|
3820
4131
|
setHdrIntensity(value: number): void;
|
|
4132
|
+
/** 设置天空预设方案,当前环境为 sky 时立即生效 */
|
|
3821
4133
|
setSkyPreset(preset: SkyPresetName): void;
|
|
4134
|
+
/** 设置天空自定义参数,当前环境为 sky 时立即生效 */
|
|
3822
4135
|
setSkyParams(params: SkyParams): void;
|
|
4136
|
+
/** 设置天空亮度(0~100),仅在 sky 模式下生效 */
|
|
3823
4137
|
setSkyIntensity(value: number): void;
|
|
4138
|
+
/** 直接设置场景中环境光的强度 */
|
|
3824
4139
|
setAmbientLightIntensity(intensity: number): void;
|
|
4140
|
+
/** 一次性应用所有渲染设置 */
|
|
3825
4141
|
private _applyRenderSettings;
|
|
4142
|
+
/** 一次性应用所有显示设置 */
|
|
3826
4143
|
private _applyDisplaySettings;
|
|
4144
|
+
/**
|
|
4145
|
+
* 应用环境设置。
|
|
4146
|
+
* 先关闭当前 HDR 和天空,再根据类型重新启用。
|
|
4147
|
+
* 使用版本号机制防止多次异步调用之间的竞态条件。
|
|
4148
|
+
*/
|
|
3827
4149
|
private _applyEnvironmentSettings;
|
|
4150
|
+
/** 在场景中查找平行光并执行回调操作 */
|
|
3828
4151
|
private _updateDirectionalLight;
|
|
4152
|
+
/** 合并环境设置,处理 skyPreset 与 skyParams 的联动关系 */
|
|
3829
4153
|
private _mergeEnvironmentSettings;
|
|
4154
|
+
/** 将原始数据转换为标准预设项 */
|
|
3830
4155
|
private _toPresetItem;
|
|
4156
|
+
/** 深拷贝工具方法 */
|
|
3831
4157
|
private _clone;
|
|
3832
4158
|
}
|
|
3833
4159
|
|
|
@@ -3979,7 +4305,13 @@ declare class ViewCube {
|
|
|
3979
4305
|
declare class ViewTree {
|
|
3980
4306
|
private engine;
|
|
3981
4307
|
constructor(engine: any);
|
|
3982
|
-
|
|
4308
|
+
getAllViewTreeData(): any[];
|
|
4309
|
+
getViewTreeData(url: string): {
|
|
4310
|
+
ceilingPlans: never[];
|
|
4311
|
+
elevations: never[];
|
|
4312
|
+
floorPlans: never[];
|
|
4313
|
+
sections: never[];
|
|
4314
|
+
};
|
|
3983
4315
|
openView(url: string, viewId: string): void;
|
|
3984
4316
|
}
|
|
3985
4317
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iflow-engine-base",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.5.1",
|
|
4
4
|
"description": "BIM Engine SDK for Vue2, Vue3, React and HTML",
|
|
5
5
|
"main": "./dist/bim-engine-sdk.umd.js",
|
|
6
6
|
"module": "./dist/bim-engine-sdk.es.js",
|
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"@types/three": "^0.181.0",
|
|
45
45
|
"axios": "^1.13.2",
|
|
46
|
+
"fabric": "^7.3.1",
|
|
46
47
|
"jszip": "^3.10.1",
|
|
47
48
|
"opentype.js": "^1.3.4",
|
|
48
49
|
"stats.js": "^0.17.0",
|