shop-components 0.0.24 → 0.0.26
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/Color-RQJUDNI5-leAiB7jg.js +1 -0
- package/dist/assets/Configure-OUhXg2g0.js +173 -0
- package/dist/assets/DRACOLoader-FOpiHRUS.js +2 -0
- package/dist/assets/DocsRenderer-K4EAMTCU-wTc0yUaa.js +7 -0
- package/dist/assets/Header-Yyx952jD.css +1 -0
- package/dist/assets/Header.stories-8tnkOwSt.js +31 -0
- package/dist/assets/Page-fZ7a-HXz.css +1 -0
- package/dist/assets/Page.stories-53Crpe03.js +61 -0
- package/dist/assets/RGBELoader-re-MEsjP.js +5 -0
- package/dist/assets/SFL-CDD14-9UY62fbR.glb +0 -0
- package/dist/assets/WithTooltip-Y7J54OF7-e8Yh5ASp.js +1 -0
- package/dist/assets/_commonjsHelpers-4gQjN7DL.js +1 -0
- package/dist/assets/accessibility-Fv4dmnDm.png +0 -0
- package/dist/assets/addon-library-VlAgJsjc.png +0 -0
- package/dist/assets/bg-circle-d8WfpvaX.png +0 -0
- package/dist/assets/context-tKiKnkuP.png +0 -0
- package/dist/assets/docs-Pvr7BWzI.png +0 -0
- package/dist/assets/entry-preview-TptA_luc.js +8 -0
- package/dist/assets/entry-preview-docs-AhrJ3R4Z.js +2 -0
- package/dist/assets/figma-plugin-h9oRC4jr.png +0 -0
- package/dist/assets/formatter-B5HCVTEV-DKi3GmSv.js +58 -0
- package/dist/assets/generateMeshBVH.worker-NFSCTTDt.js +5 -0
- package/dist/assets/iframe-tlQuLR4E.js +7 -0
- package/dist/assets/img-radar-kufDNNXQ.png +0 -0
- package/dist/assets/img-radar2-1cPZO_cj.png +0 -0
- package/dist/assets/index-CXFn8OGe.js +513 -0
- package/dist/assets/index-C_uo8BdM.js +1 -0
- package/dist/assets/index-PPLHz8o0.js +6 -0
- package/dist/assets/index-jFdhmKfM.js +3 -0
- package/dist/assets/index-jtEywAqJ.js +1 -0
- package/dist/assets/index-ogXoivrg.js +1 -0
- package/dist/assets/index.stories-TVZrSYZv.js +20 -0
- package/dist/assets/index.stories-Uq0Yg-kp.js +896 -0
- package/dist/assets/index.stories-VJP6Jo4U.js +22 -0
- package/dist/assets/index.stories-VoNcNCFd.js +27 -0
- package/dist/assets/index.stories-YIFSciWI.js +1174 -0
- package/dist/assets/index.stories-iMKoZNyH.js +46 -0
- package/dist/assets/lightroom_14b-MJkJLVlP.hdr +0 -0
- package/dist/assets/lightroom_14b_512-e_XJNpR6.js +3981 -0
- package/dist/assets/lightroom_14b_512-nMVn659Q.hdr +0 -0
- package/dist/assets/lit-element-P_wTzRvl.js +19 -0
- package/dist/assets/parallelMeshBVH.worker-TP6qJGKX.js +5 -0
- package/dist/assets/preview-1q4RDNOi.js +1 -0
- package/dist/assets/preview-6iG64ELu.js +20 -0
- package/dist/assets/preview-7nNmfNVr.js +7 -0
- package/dist/assets/preview-9bpQVOkQ.js +1 -0
- package/dist/assets/preview-FnnPJHgu.js +1 -0
- package/dist/assets/preview-VI2eoWmp.js +1 -0
- package/dist/assets/preview-bEa2SesL.js +7 -0
- package/dist/assets/preview-u8M_OEO2.js +396 -0
- package/dist/assets/preview-zZA4w0lH.js +1 -0
- package/dist/assets/property-EQZXZ3dt.js +5 -0
- package/dist/assets/query-7eORIRsG.js +13 -0
- package/dist/assets/roller-8Vy8W3X_.glb +0 -0
- package/dist/assets/roller-hopper-Heae_wy5.glb +0 -0
- package/dist/assets/share-xgPlHEHy.png +0 -0
- package/dist/assets/styling-ZOs40c1G.png +0 -0
- package/dist/assets/syntaxhighlighter-JOJW2KGS-uBo08tOF.js +1 -0
- package/dist/assets/testing-HG80fZfa.png +0 -0
- package/dist/assets/theming--liSzaFj.png +0 -0
- package/dist/assets/three.module-9MfFqitO.js +3825 -0
- package/dist/assets/tiny-invariant-VyoA2Os1.js +1 -0
- package/dist/assets/worker-h5IcTUxB.js +1 -0
- package/dist/device-viewer/amr.d.ts +75 -0
- package/dist/device-viewer/assembly.d.ts +11 -0
- package/dist/device-viewer/dimension/index.d.ts +31 -0
- package/dist/device-viewer/dimension/line3.d.ts +21 -0
- package/dist/device-viewer/dimension/size-box.d.ts +39 -0
- package/dist/device-viewer/group-roller.d.ts +20 -0
- package/dist/device-viewer/index.d.ts +12 -0
- package/dist/device-viewer/mechanism/mechanism.d.ts +29 -0
- package/dist/device-viewer/outerline.d.ts +16 -0
- package/dist/device-viewer/roller.d.ts +31 -0
- package/dist/device-viewer/row.d.ts +18 -0
- package/dist/device-viewer/scene.d.ts +14 -28
- package/dist/device-viewer/slot.d.ts +10 -2
- package/dist/device-viewer/text2.d.ts +4 -0
- package/dist/device-viewer/text3.d.ts +4 -0
- package/dist/device-viewer/utils/index.d.ts +26 -1
- package/dist/favicon.svg +7 -0
- package/dist/iframe.html +495 -0
- package/dist/index.html +155 -0
- package/dist/index.json +1 -0
- package/dist/package.json +60 -0
- package/dist/project.json +1 -0
- package/dist/sb-addons/essentials-actions-3/manager-bundle.js +3 -0
- package/dist/sb-addons/essentials-actions-3/manager-bundle.js.LEGAL.txt +0 -0
- package/dist/sb-addons/essentials-backgrounds-4/manager-bundle.js +12 -0
- package/dist/sb-addons/essentials-backgrounds-4/manager-bundle.js.LEGAL.txt +0 -0
- package/dist/sb-addons/essentials-controls-2/manager-bundle.js +60 -0
- package/dist/sb-addons/essentials-controls-2/manager-bundle.js.LEGAL.txt +18 -0
- package/dist/sb-addons/essentials-measure-7/manager-bundle.js +3 -0
- package/dist/sb-addons/essentials-measure-7/manager-bundle.js.LEGAL.txt +0 -0
- package/dist/sb-addons/essentials-outline-8/manager-bundle.js +3 -0
- package/dist/sb-addons/essentials-outline-8/manager-bundle.js.LEGAL.txt +0 -0
- package/dist/sb-addons/essentials-toolbars-6/manager-bundle.js +3 -0
- package/dist/sb-addons/essentials-toolbars-6/manager-bundle.js.LEGAL.txt +0 -0
- package/dist/sb-addons/essentials-viewport-5/manager-bundle.js +3 -0
- package/dist/sb-addons/essentials-viewport-5/manager-bundle.js.LEGAL.txt +0 -0
- package/dist/sb-addons/links-1/manager-bundle.js +3 -0
- package/dist/sb-addons/links-1/manager-bundle.js.LEGAL.txt +0 -0
- package/dist/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +3 -0
- package/dist/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js.LEGAL.txt +0 -0
- package/dist/sb-common-assets/fonts.css +31 -0
- package/dist/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
- package/dist/sb-common-assets/nunito-sans-bold.woff2 +0 -0
- package/dist/sb-common-assets/nunito-sans-italic.woff2 +0 -0
- package/dist/sb-common-assets/nunito-sans-regular.woff2 +0 -0
- package/dist/sb-manager/WithTooltip-Y7J54OF7-3AIPQNGM.js +1 -0
- package/dist/sb-manager/chunk-I53COLQ6.js +183 -0
- package/dist/sb-manager/chunk-L35575BZ.js +234 -0
- package/dist/sb-manager/chunk-TZAR34JC.js +6 -0
- package/dist/sb-manager/chunk-UOBNU442.js +347 -0
- package/dist/sb-manager/chunk-VMGB76WP.js +9 -0
- package/dist/sb-manager/chunk-XP3HGWTR.js +1 -0
- package/dist/sb-manager/formatter-B5HCVTEV-7DCBOGO6.js +58 -0
- package/dist/sb-manager/globals-module-info.js +1 -0
- package/dist/sb-manager/globals-runtime.js +1 -0
- package/dist/sb-manager/globals.js +1 -0
- package/dist/sb-manager/index.js +1 -0
- package/dist/sb-manager/runtime.js +1 -0
- package/dist/sb-manager/syntaxhighlighter-JOJW2KGS-7BF26SBB.js +1 -0
- package/dist/sb-preview/globals.js +1 -0
- package/dist/sb-preview/runtime.js +128 -0
- package/dist/stories/cropper/index.d.ts +18 -0
- package/dist/stories/cropper/index.js +118 -0
- package/dist/stories/cropper/index.js.map +1 -0
- package/dist/stories/cropper/index.stories.d.ts +11 -0
- package/dist/stories/cropper/index.stories.js +14 -0
- package/dist/stories/cropper/index.stories.js.map +1 -0
- package/dist/stories/device-viewer/amr.d.ts +75 -0
- package/dist/stories/device-viewer/amr.js +554 -0
- package/dist/stories/device-viewer/amr.js.map +1 -0
- package/dist/stories/device-viewer/assembly.d.ts +11 -0
- package/dist/stories/device-viewer/assembly.js +47 -0
- package/dist/stories/device-viewer/assembly.js.map +1 -0
- package/dist/stories/device-viewer/asserts/fonts/type.json +1281 -0
- package/dist/stories/device-viewer/dimension/index.d.ts +31 -0
- package/dist/stories/device-viewer/dimension/index.js +131 -0
- package/dist/stories/device-viewer/dimension/index.js.map +1 -0
- package/dist/stories/device-viewer/dimension/line3.d.ts +21 -0
- package/dist/stories/device-viewer/dimension/line3.js +98 -0
- package/dist/stories/device-viewer/dimension/line3.js.map +1 -0
- package/dist/stories/device-viewer/dimension/size-box.d.ts +39 -0
- package/dist/stories/device-viewer/dimension/size-box.js +176 -0
- package/dist/stories/device-viewer/dimension/size-box.js.map +1 -0
- package/dist/stories/device-viewer/group-roller.d.ts +20 -0
- package/dist/stories/device-viewer/group-roller.js +65 -0
- package/dist/stories/device-viewer/group-roller.js.map +1 -0
- package/dist/stories/device-viewer/index.d.ts +47 -0
- package/dist/stories/device-viewer/index.js +530 -0
- package/dist/stories/device-viewer/index.js.map +1 -0
- package/dist/stories/device-viewer/index.stories.d.ts +27 -0
- package/dist/stories/device-viewer/index.stories.js +37 -0
- package/dist/stories/device-viewer/index.stories.js.map +1 -0
- package/dist/stories/device-viewer/lines.d.ts +36 -0
- package/dist/stories/device-viewer/lines.js +171 -0
- package/dist/stories/device-viewer/lines.js.map +1 -0
- package/dist/stories/device-viewer/main.d.ts +1 -0
- package/dist/stories/device-viewer/main.js +2 -0
- package/dist/stories/device-viewer/main.js.map +1 -0
- package/dist/stories/device-viewer/mechanism/mechanism.d.ts +29 -0
- package/dist/stories/device-viewer/mechanism/mechanism.js +164 -0
- package/dist/stories/device-viewer/mechanism/mechanism.js.map +1 -0
- package/dist/stories/device-viewer/outerline.d.ts +16 -0
- package/dist/stories/device-viewer/outerline.js +63 -0
- package/dist/stories/device-viewer/outerline.js.map +1 -0
- package/dist/stories/device-viewer/roller.d.ts +31 -0
- package/dist/stories/device-viewer/roller.js +121 -0
- package/dist/stories/device-viewer/roller.js.map +1 -0
- package/dist/stories/device-viewer/row.d.ts +18 -0
- package/dist/stories/device-viewer/row.js +58 -0
- package/dist/stories/device-viewer/row.js.map +1 -0
- package/dist/stories/device-viewer/scene.d.ts +101 -0
- package/dist/stories/device-viewer/scene.js +535 -0
- package/dist/stories/device-viewer/scene.js.map +1 -0
- package/dist/stories/device-viewer/slot/slot-item.d.ts +20 -0
- package/dist/stories/device-viewer/slot/slot-item.js +82 -0
- package/dist/stories/device-viewer/slot/slot-item.js.map +1 -0
- package/dist/stories/device-viewer/slot.d.ts +71 -0
- package/dist/stories/device-viewer/slot.js +272 -0
- package/dist/stories/device-viewer/slot.js.map +1 -0
- package/dist/stories/device-viewer/sound.d.ts +5 -0
- package/dist/stories/device-viewer/sound.js +13 -0
- package/dist/stories/device-viewer/sound.js.map +1 -0
- package/dist/stories/device-viewer/text2.d.ts +4 -0
- package/dist/stories/device-viewer/text2.js +12 -0
- package/dist/stories/device-viewer/text2.js.map +1 -0
- package/dist/stories/device-viewer/text3.d.ts +4 -0
- package/dist/stories/device-viewer/text3.js +14 -0
- package/dist/stories/device-viewer/text3.js.map +1 -0
- package/dist/stories/device-viewer/utils/index.d.ts +36 -0
- package/dist/stories/device-viewer/utils/index.js +166 -0
- package/dist/stories/device-viewer/utils/index.js.map +1 -0
- package/dist/stories/device-viewer/worker/generate-mesh-bvh-worker.d.ts +8 -0
- package/dist/stories/device-viewer/worker/generate-mesh-bvh-worker.js +88 -0
- package/dist/stories/device-viewer/worker/generate-mesh-bvh-worker.js.map +1 -0
- package/dist/stories/device-viewer/worker/generateAsync.worker.d.ts +1 -0
- package/dist/stories/device-viewer/worker/generateAsync.worker.js +57 -0
- package/dist/stories/device-viewer/worker/generateAsync.worker.js.map +1 -0
- package/dist/stories/device-viewer/worker/path-tracing-scene-worker.d.ts +16 -0
- package/dist/stories/device-viewer/worker/path-tracing-scene-worker.js +29 -0
- package/dist/stories/device-viewer/worker/path-tracing-scene-worker.js.map +1 -0
- package/dist/stories/main/index.d.ts +1 -0
- package/dist/stories/main/index.js +2 -0
- package/dist/stories/main/index.js.map +1 -0
- package/dist/stories/main.d.ts +4 -0
- package/dist/stories/main.js +5 -0
- package/dist/stories/main.js.map +1 -0
- package/dist/stories/plugin.d.ts +5 -0
- package/dist/stories/plugin.js +6 -0
- package/dist/stories/plugin.js.map +1 -0
- package/dist/stories/plugins/change-slot/index.d.ts +0 -0
- package/dist/stories/plugins/change-slot/index.js +2 -0
- package/dist/stories/plugins/change-slot/index.js.map +1 -0
- package/dist/stories/sglb/index.d.ts +27 -0
- package/dist/stories/sglb/index.js +151 -0
- package/dist/stories/sglb/index.js.map +1 -0
- package/dist/stories/smap-viewer/index.d.ts +14 -0
- package/dist/stories/smap-viewer/index.js +59 -0
- package/dist/stories/smap-viewer/index.js.map +1 -0
- package/dist/stories/smap-viewer/index.stories.d.ts +22 -0
- package/dist/stories/smap-viewer/index.stories.js +27 -0
- package/dist/stories/smap-viewer/index.stories.js.map +1 -0
- package/dist/stories/step-viewer/index.d.ts +17 -0
- package/dist/stories/step-viewer/index.js +109 -0
- package/dist/stories/step-viewer/index.js.map +1 -0
- package/dist/stories/step-viewer/index.stories.d.ts +20 -0
- package/dist/stories/step-viewer/index.stories.js +24 -0
- package/dist/stories/step-viewer/index.stories.js.map +1 -0
- package/dist/stories/test/index.d.ts +25 -0
- package/dist/stories/test/index.js +99 -0
- package/dist/stories/test/index.js.map +1 -0
- package/dist/stories/test/index.stories.d.ts +14 -0
- package/dist/stories/test/index.stories.js +16 -0
- package/dist/stories/test/index.stories.js.map +1 -0
- package/dist/stories/test/scene.d.ts +20 -0
- package/dist/stories/test/scene.js +86 -0
- package/dist/stories/test/scene.js.map +1 -0
- package/dist/stories/utils/index.d.ts +4 -0
- package/dist/stories/utils/index.js +28 -0
- package/dist/stories/utils/index.js.map +1 -0
- package/dist/test/index.d.ts +25 -0
- package/dist/test/index.stories.d.ts +14 -0
- package/dist/test/scene.d.ts +20 -0
- package/package.json +9 -6
- package/dist/shop-components.mjs +0 -55938
- package/dist/shop-components.umd.js +0 -9232
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slot-item.js","sourceRoot":"","sources":["../../../../stories/device-viewer/slot/slot-item.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAe,KAAK,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,MAAM,MAAkC,mBAAmB,CAAA;AAClE,OAAO,QAAQ,MAAgC,0BAA0B,CAAA;AAOlE,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,UAAU;aAM/B,WAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,AAAhB,CAAgB;IAE7B,YAAmB,KAAoB;QACrC,KAAK,EAAE,CAAA;QADU,UAAK,GAAL,KAAK,CAAe;QAL/B,UAAK,GAAG,EAAE,CAAA;QAUlB,aAAQ,GAAG,KAAK,CAAA;QAGhB,aAAQ,GAAG,KAAK,CAAA;QAGhB,eAAU,GAAG,KAAK,CAAA;QAGlB,SAAI,GAAG,KAAK,CAAA;QAGZ,YAAO,GAAG,KAAK,CAAA;QAGf,WAAM,GAAG,KAAK,CAAA;IAlBd,CAAC;IAwBD,OAAO,CAAC,CAAa;QACnB,CAAC,CAAC,cAAc,EAAE,CAAA;QAClB,CAAC,CAAC,eAAe,EAAE,CAAA;IACrB,CAAC;IAED,OAAO,CAAC,IAAI,GAAG,EAAE;QACf,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IACnB,CAAC;IAES,MAAM;QACd,OAAO,IAAI,CAAA;;;YAGH,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;YAC/B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;YAChC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;YACpC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YACzB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;;sBAEjB,UAAU,IAAI,CAAC,KAAK,GAAG,IAAI,YAAY,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE;;oCAE5C,IAAI,CAAC,OAAO;6BACnB,QAAQ;;cAEvB,IAAI,CAAC,IAAI,EAAE,IAAI;;;;KAIxB,CAAA;IACH,CAAC;;AA7DO;IADP,KAAK,EAAE;uCACU;AAUlB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CACZ;AAGhB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CACZ;AAGhB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4CACV;AAGlB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;sCAChB;AAGZ;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;yCACb;AAGf;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;wCACd;AAId;IAFC,QAAQ,EAAE;sCAEP;AAhCO,QAAQ;IADpB,aAAa,CAAC,WAAW,CAAC;GACd,QAAQ,CAiEpB"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Mesh, Object3D } from 'three';
|
|
2
|
+
import { CSS2DObject } from 'three/examples/jsm/renderers/CSS2DRenderer';
|
|
3
|
+
import EventEmitter from 'eventemitter3';
|
|
4
|
+
import { Scene3D } from './scene';
|
|
5
|
+
export interface SlotProps {
|
|
6
|
+
name: string;
|
|
7
|
+
follows: Map<string, {
|
|
8
|
+
scale: number;
|
|
9
|
+
origin: number;
|
|
10
|
+
}>;
|
|
11
|
+
slot: Object3D;
|
|
12
|
+
}
|
|
13
|
+
export interface DeviceInfo {
|
|
14
|
+
name: string;
|
|
15
|
+
id: string;
|
|
16
|
+
url: string;
|
|
17
|
+
logo?: string;
|
|
18
|
+
bracketUrl?: string;
|
|
19
|
+
}
|
|
20
|
+
export declare const SLOT_EVENTS: {
|
|
21
|
+
ON_DROP: string;
|
|
22
|
+
ON_BEFORE_SELECTED: string;
|
|
23
|
+
ON_SELECTED: string;
|
|
24
|
+
ON_DEVICE_SELECTED: string;
|
|
25
|
+
ON_DROP_ERROR: string;
|
|
26
|
+
ON_ERROR_STATE_CHANGE: string;
|
|
27
|
+
};
|
|
28
|
+
export declare class Slot extends CSS2DObject {
|
|
29
|
+
private props;
|
|
30
|
+
private target;
|
|
31
|
+
private _emitter;
|
|
32
|
+
private _slotContainer;
|
|
33
|
+
private _slotUI;
|
|
34
|
+
private _bracketSlots;
|
|
35
|
+
private _hasError;
|
|
36
|
+
useBracket: boolean;
|
|
37
|
+
addEventListener: <T extends string | symbol>(event: T, fn: (...args: any[]) => void, context?: any) => EventEmitter<string | symbol, any>;
|
|
38
|
+
removeEventListener: <T extends string | symbol>(event: T, fn?: ((...args: any[]) => void) | undefined, context?: any, once?: boolean | undefined) => EventEmitter<string | symbol, any>;
|
|
39
|
+
private _canInstall;
|
|
40
|
+
private _loading;
|
|
41
|
+
private _selected;
|
|
42
|
+
private _deviceSelected;
|
|
43
|
+
private _timer;
|
|
44
|
+
get hasDevice(): boolean;
|
|
45
|
+
deviceInfo: DeviceInfo | undefined;
|
|
46
|
+
constructor(props: SlotProps, target: Mesh | undefined);
|
|
47
|
+
shapeKeyChanged(key: string, value: number): void;
|
|
48
|
+
private _tick;
|
|
49
|
+
loadGlb(sglb: string): Promise<Object3D<import("three").Object3DEventMap> | undefined>;
|
|
50
|
+
installBracket(url: string): Promise<void>;
|
|
51
|
+
install(info: DeviceInfo): Promise<void>;
|
|
52
|
+
getWP: (target: import("three").Vector3) => import("three").Vector3;
|
|
53
|
+
get device(): Object3D<import("three").Object3DEventMap> | null;
|
|
54
|
+
changeName(name: string): void;
|
|
55
|
+
clearSlot(): void;
|
|
56
|
+
enable(): void;
|
|
57
|
+
disable(): void;
|
|
58
|
+
hide(): void;
|
|
59
|
+
show(): void;
|
|
60
|
+
get selected(): boolean;
|
|
61
|
+
set selected(s: boolean);
|
|
62
|
+
get deviceSelected(): boolean;
|
|
63
|
+
set deviceSelected(s: boolean);
|
|
64
|
+
get error(): boolean;
|
|
65
|
+
set error(hasError: boolean);
|
|
66
|
+
getCanInstall(): boolean;
|
|
67
|
+
canInstall(c: boolean): void;
|
|
68
|
+
dispose(): void;
|
|
69
|
+
render(app: Scene3D): void;
|
|
70
|
+
clone(recursive?: boolean): this;
|
|
71
|
+
}
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import { Group, Vector2 } from 'three';
|
|
2
|
+
import { CSS2DObject } from 'three/examples/jsm/renderers/CSS2DRenderer';
|
|
3
|
+
import EventEmitter from 'eventemitter3';
|
|
4
|
+
import { clearThreeObjectMesh, generateMorphTargetWithTarget } from './utils';
|
|
5
|
+
import { SGLBLoader } from '../sglb';
|
|
6
|
+
import { SlotItem } from './slot/slot-item';
|
|
7
|
+
export const SLOT_EVENTS = {
|
|
8
|
+
ON_DROP: 'slot-on-drop',
|
|
9
|
+
ON_BEFORE_SELECTED: 'slot-on-before-selected',
|
|
10
|
+
ON_SELECTED: 'slot-on-selected',
|
|
11
|
+
ON_DEVICE_SELECTED: 'slot-on-device-selected',
|
|
12
|
+
ON_DROP_ERROR: 'slot-on-drop-error',
|
|
13
|
+
ON_ERROR_STATE_CHANGE: 'slot-on-error-state-change'
|
|
14
|
+
};
|
|
15
|
+
export class Slot extends CSS2DObject {
|
|
16
|
+
get hasDevice() {
|
|
17
|
+
return this._slotContainer.children.length > 0;
|
|
18
|
+
}
|
|
19
|
+
constructor(props, target) {
|
|
20
|
+
const box = document.createElement('div');
|
|
21
|
+
super(box);
|
|
22
|
+
this.props = props;
|
|
23
|
+
this.target = target;
|
|
24
|
+
this._emitter = new EventEmitter();
|
|
25
|
+
this._slotContainer = new Group();
|
|
26
|
+
this._bracketSlots = [];
|
|
27
|
+
this._hasError = false;
|
|
28
|
+
this.useBracket = false;
|
|
29
|
+
this.addEventListener = this._emitter.addListener.bind(this._emitter);
|
|
30
|
+
this.removeEventListener = this._emitter.removeListener.bind(this._emitter);
|
|
31
|
+
this._canInstall = false;
|
|
32
|
+
this._loading = false;
|
|
33
|
+
this._selected = false;
|
|
34
|
+
this._deviceSelected = false;
|
|
35
|
+
this._timer = 0;
|
|
36
|
+
this._tick = () => {
|
|
37
|
+
this._timer = requestAnimationFrame(this._tick);
|
|
38
|
+
if (this.target) {
|
|
39
|
+
this.props.slot.position.copy(generateMorphTargetWithTarget(this.target));
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
this.getWP = this._slotContainer.getWorldPosition.bind(this._slotContainer);
|
|
43
|
+
this.name = props.name;
|
|
44
|
+
this._slotUI = new SlotItem({ name: props.name });
|
|
45
|
+
this._slotUI.slot = this;
|
|
46
|
+
box.append(this._slotUI);
|
|
47
|
+
this.add(this._slotContainer);
|
|
48
|
+
this.props.slot.add(this);
|
|
49
|
+
if (target) {
|
|
50
|
+
this._tick();
|
|
51
|
+
}
|
|
52
|
+
box.addEventListener('click', (e) => {
|
|
53
|
+
e.preventDefault();
|
|
54
|
+
e.stopPropagation();
|
|
55
|
+
this.selected = !this.selected;
|
|
56
|
+
});
|
|
57
|
+
box.addEventListener('dragover', e => {
|
|
58
|
+
e.preventDefault();
|
|
59
|
+
if (!this._canInstall) {
|
|
60
|
+
if (e.dataTransfer) {
|
|
61
|
+
e.dataTransfer.dropEffect = 'none';
|
|
62
|
+
}
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
box.addEventListener('drop', async (e) => {
|
|
67
|
+
e.preventDefault();
|
|
68
|
+
e.stopPropagation();
|
|
69
|
+
if (!this._canInstall)
|
|
70
|
+
return;
|
|
71
|
+
const jsonDataString = e.dataTransfer?.getData('application/json');
|
|
72
|
+
if (jsonDataString) {
|
|
73
|
+
const r = JSON.parse(jsonDataString);
|
|
74
|
+
try {
|
|
75
|
+
await this.install(r);
|
|
76
|
+
this._emitter.emit(SLOT_EVENTS.ON_DROP, this);
|
|
77
|
+
}
|
|
78
|
+
catch (e) {
|
|
79
|
+
this._emitter.emit(SLOT_EVENTS.ON_DROP_ERROR, e);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
this._emitter.emit(SLOT_EVENTS.ON_DROP_ERROR, new Error('No device info'));
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
shapeKeyChanged(key, value) {
|
|
88
|
+
if (this.props.follows.has(key)) {
|
|
89
|
+
const obj = this.props.follows.get(key);
|
|
90
|
+
if (obj) {
|
|
91
|
+
let direction = 'x';
|
|
92
|
+
if (key === 'height') {
|
|
93
|
+
direction = 'y';
|
|
94
|
+
}
|
|
95
|
+
else if (key === 'width') {
|
|
96
|
+
direction = 'z';
|
|
97
|
+
}
|
|
98
|
+
this.position[direction] = (value - obj.origin) * obj.scale;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
async loadGlb(sglb) {
|
|
103
|
+
const sglbLoader = new SGLBLoader({ useCache: true });
|
|
104
|
+
const result = await sglbLoader.loadAsync(sglb);
|
|
105
|
+
if (!result.glb)
|
|
106
|
+
return;
|
|
107
|
+
return result.glb.clone(true);
|
|
108
|
+
}
|
|
109
|
+
async installBracket(url) {
|
|
110
|
+
const sglbLoader = new SGLBLoader({ useCache: true });
|
|
111
|
+
const result = await sglbLoader.loadAsync(url);
|
|
112
|
+
if (!result.glb)
|
|
113
|
+
return;
|
|
114
|
+
const glb = result.glb.clone(true);
|
|
115
|
+
this.useBracket = true;
|
|
116
|
+
this._slotContainer.add(glb);
|
|
117
|
+
}
|
|
118
|
+
async install(info) {
|
|
119
|
+
if (this._loading)
|
|
120
|
+
return;
|
|
121
|
+
this._loading = true;
|
|
122
|
+
try {
|
|
123
|
+
const glb = await this.loadGlb(info.url);
|
|
124
|
+
if (!glb) {
|
|
125
|
+
throw new Error(`Fail to load device from: ${info.url}`);
|
|
126
|
+
}
|
|
127
|
+
if (info.bracketUrl) {
|
|
128
|
+
const bracket = await this.loadGlb(info.bracketUrl);
|
|
129
|
+
if (!bracket) {
|
|
130
|
+
throw new Error(`Fail to load bracket from: ${info.bracketUrl}`);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
this.clearSlot();
|
|
134
|
+
bracket.traverse(m => {
|
|
135
|
+
if (m.name.startsWith('Slot')) {
|
|
136
|
+
this._bracketSlots.push(m);
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
this._slotContainer.add(bracket);
|
|
140
|
+
}
|
|
141
|
+
this._bracketSlots.forEach(b => {
|
|
142
|
+
b.add(glb);
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
this.clearSlot();
|
|
147
|
+
this._slotContainer.add(glb);
|
|
148
|
+
}
|
|
149
|
+
this.deviceInfo = info;
|
|
150
|
+
this._slotUI.filled = true;
|
|
151
|
+
}
|
|
152
|
+
catch (e) {
|
|
153
|
+
throw e;
|
|
154
|
+
}
|
|
155
|
+
finally {
|
|
156
|
+
this._loading = false;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
get device() {
|
|
160
|
+
if (this._slotContainer.children.length) {
|
|
161
|
+
return this._slotContainer.children[0];
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
changeName(name) {
|
|
168
|
+
this.name = name;
|
|
169
|
+
this.props.slot.userData.name = name;
|
|
170
|
+
this.props.name = name;
|
|
171
|
+
this.element?.setAttribute('data-name', this.props.name);
|
|
172
|
+
}
|
|
173
|
+
clearSlot() {
|
|
174
|
+
this._bracketSlots = [];
|
|
175
|
+
this._slotContainer.children.forEach(s => {
|
|
176
|
+
s.removeFromParent();
|
|
177
|
+
clearThreeObjectMesh(s);
|
|
178
|
+
});
|
|
179
|
+
this._slotUI.filled = false;
|
|
180
|
+
this.deviceInfo = undefined;
|
|
181
|
+
}
|
|
182
|
+
enable() {
|
|
183
|
+
this._slotUI.disable = false;
|
|
184
|
+
}
|
|
185
|
+
disable() {
|
|
186
|
+
this._slotUI.disable = true;
|
|
187
|
+
}
|
|
188
|
+
hide() {
|
|
189
|
+
this._slotUI.hide = true;
|
|
190
|
+
}
|
|
191
|
+
show() {
|
|
192
|
+
this._slotUI.hide = false;
|
|
193
|
+
}
|
|
194
|
+
get selected() {
|
|
195
|
+
return this._selected;
|
|
196
|
+
}
|
|
197
|
+
set selected(s) {
|
|
198
|
+
if (s) {
|
|
199
|
+
this._emitter.emit(SLOT_EVENTS.ON_BEFORE_SELECTED, s);
|
|
200
|
+
}
|
|
201
|
+
this._selected = s;
|
|
202
|
+
this._slotUI.selected = s;
|
|
203
|
+
this._emitter.emit(SLOT_EVENTS.ON_SELECTED, s);
|
|
204
|
+
}
|
|
205
|
+
get deviceSelected() {
|
|
206
|
+
return this._deviceSelected;
|
|
207
|
+
}
|
|
208
|
+
set deviceSelected(s) {
|
|
209
|
+
this._deviceSelected = s;
|
|
210
|
+
this._emitter.emit(SLOT_EVENTS.ON_DEVICE_SELECTED, s);
|
|
211
|
+
}
|
|
212
|
+
get error() {
|
|
213
|
+
return this._hasError;
|
|
214
|
+
}
|
|
215
|
+
set error(hasError) {
|
|
216
|
+
if (this._loading) {
|
|
217
|
+
setTimeout(() => {
|
|
218
|
+
this.error = hasError;
|
|
219
|
+
}, 100);
|
|
220
|
+
}
|
|
221
|
+
this._hasError = hasError;
|
|
222
|
+
this._slotUI.hasError = hasError;
|
|
223
|
+
this._emitter.emit(SLOT_EVENTS.ON_ERROR_STATE_CHANGE, hasError);
|
|
224
|
+
}
|
|
225
|
+
getCanInstall() {
|
|
226
|
+
return this._canInstall;
|
|
227
|
+
}
|
|
228
|
+
canInstall(c) {
|
|
229
|
+
this._canInstall = c;
|
|
230
|
+
this._slotUI.canInstall = c;
|
|
231
|
+
}
|
|
232
|
+
dispose() {
|
|
233
|
+
cancelAnimationFrame(this._timer);
|
|
234
|
+
this.clearSlot();
|
|
235
|
+
this._emitter.removeAllListeners();
|
|
236
|
+
clearThreeObjectMesh(this._slotContainer);
|
|
237
|
+
this.element.remove();
|
|
238
|
+
}
|
|
239
|
+
render(app) {
|
|
240
|
+
const transform = this.element.style.transform;
|
|
241
|
+
const match = /translate\(-?\d*\.?\d*%?,?\s-?\d*\.?\d*%?\)\s*translate\((-?\d*\.?\d*)px,\s*(-?\d*\.?\d*)px\)/.exec(transform);
|
|
242
|
+
if (!match)
|
|
243
|
+
return;
|
|
244
|
+
const p = new Vector2(parseFloat(match[1]), parseFloat(match[2]));
|
|
245
|
+
const distance = app.mousePos.distanceTo(p);
|
|
246
|
+
let initialSize = 12;
|
|
247
|
+
let max = 24;
|
|
248
|
+
let offset = 30;
|
|
249
|
+
if (this._canInstall) {
|
|
250
|
+
initialSize = 34;
|
|
251
|
+
max = 60;
|
|
252
|
+
offset = 60;
|
|
253
|
+
}
|
|
254
|
+
if (distance < offset) {
|
|
255
|
+
let size = (offset - distance) * 1 + initialSize;
|
|
256
|
+
if (distance < 20) {
|
|
257
|
+
size = max;
|
|
258
|
+
}
|
|
259
|
+
if (size > max) {
|
|
260
|
+
size = max;
|
|
261
|
+
}
|
|
262
|
+
this._slotUI.setSize(size);
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
this._slotUI.setSize(initialSize);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
clone(recursive) {
|
|
269
|
+
return new Group();
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
//# sourceMappingURL=slot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slot.js","sourceRoot":"","sources":["../../../stories/device-viewer/slot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Howl } from 'howler';
|
|
2
|
+
import SoundInstall from './asserts/audios/install.mp3';
|
|
3
|
+
export class Sound {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.sound = new Howl({
|
|
6
|
+
src: [SoundInstall]
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
play() {
|
|
10
|
+
this.sound.play();
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=sound.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sound.js","sourceRoot":"","sources":["../../../stories/device-viewer/sound.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAU,QAAQ,CAAA;AACjC,OAAO,YAAY,MAAM,8BAA8B,CAAA;AAEvD,MAAM,OAAO,KAAK;IAKhB;QAJQ,UAAK,GAAG,IAAI,IAAI,CAAC;YACvB,GAAG,EAAE,CAAC,YAAY,CAAC;SACpB,CAAC,CAAA;IAGF,CAAC;IAED,IAAI;QACF,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IACnB,CAAC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CSS2DObject } from 'three/examples/jsm/renderers/CSS2DRenderer';
|
|
2
|
+
export class Text2 extends CSS2DObject {
|
|
3
|
+
constructor(text) {
|
|
4
|
+
const box = document.createElement('div');
|
|
5
|
+
super(box);
|
|
6
|
+
box.innerText = text;
|
|
7
|
+
box.style.background = 'transparent';
|
|
8
|
+
box.style.fontSize = '10px';
|
|
9
|
+
box.style.color = '#00FF95';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=text2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text2.js","sourceRoot":"","sources":["../../../stories/device-viewer/text2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAA;AAExE,MAAM,OAAO,KAAM,SAAQ,WAAW;IACpC,YAAY,IAAY;QACtB,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QACzC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEV,GAAG,CAAC,SAAS,GAAG,IAAI,CAAA;QACpB,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,aAAa,CAAA;QACpC,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAA;QAC3B,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAA;IAC7B,CAAC;CACF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CSS3DObject } from 'three/examples/jsm/renderers/CSS3DRenderer';
|
|
2
|
+
export class Text3 extends CSS3DObject {
|
|
3
|
+
constructor(text) {
|
|
4
|
+
const box = document.createElement('div');
|
|
5
|
+
super(box);
|
|
6
|
+
box.innerText = text;
|
|
7
|
+
box.style.background = 'transparent';
|
|
8
|
+
box.style.fontSize = '5px';
|
|
9
|
+
box.style.color = '#fff';
|
|
10
|
+
this.scale.set(0.01, 0.01, 0.01);
|
|
11
|
+
this.rotateY(Math.PI);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=text3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text3.js","sourceRoot":"","sources":["../../../stories/device-viewer/text3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAA;AAExE,MAAM,OAAO,KAAM,SAAQ,WAAW;IACpC,YAAY,IAAY;QACtB,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QACzC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEV,GAAG,CAAC,SAAS,GAAG,IAAI,CAAA;QACpB,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,aAAa,CAAA;QACpC,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAA;QAC1B,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAA;QAExB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACvB,CAAC;CACF"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Box3, Mesh, Object3D, Vector3 } from 'three';
|
|
2
|
+
export declare const clearThreeObjectMesh: (object: Object3D) => void;
|
|
3
|
+
export declare const uuid: () => string;
|
|
4
|
+
export declare function getElementLeftPosition(element: any): {
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
};
|
|
8
|
+
export declare function getRelativePosition(child: Element, target: Element): {
|
|
9
|
+
y: number;
|
|
10
|
+
x: number;
|
|
11
|
+
};
|
|
12
|
+
export declare function getVector3FromArray(arr: number[]): Vector3;
|
|
13
|
+
export declare function getLocationPosition(obj: Object3D, wp: Vector3): Vector3;
|
|
14
|
+
export declare function getScaledSettings(): {
|
|
15
|
+
tiles: number;
|
|
16
|
+
renderScale: number;
|
|
17
|
+
};
|
|
18
|
+
export declare function generateMorphTargetWithTarget(target: Mesh): Vector3;
|
|
19
|
+
export declare function generateMorphTarget(originPoint: Vector3, morphPositions: any[], influences: number[]): Vector3;
|
|
20
|
+
export declare function calculateTotalDimensionsUsingVertices(object: Object3D): {
|
|
21
|
+
box: Box3;
|
|
22
|
+
maxRadius: number;
|
|
23
|
+
height: number;
|
|
24
|
+
hasLength: boolean;
|
|
25
|
+
hasWidth: boolean;
|
|
26
|
+
hasHeight: boolean;
|
|
27
|
+
};
|
|
28
|
+
export declare function calculateInscribedCircleRadius(length: number, width: number): number;
|
|
29
|
+
export declare function calculateCircleRadiusByBox3(box: Box3): number;
|
|
30
|
+
export declare function debounce(fn: any, delay: number, scope?: any): () => void;
|
|
31
|
+
export declare class ObjectSize {
|
|
32
|
+
length: number;
|
|
33
|
+
width: number;
|
|
34
|
+
height: number;
|
|
35
|
+
constructor(length: number, width: number, height: number);
|
|
36
|
+
}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { Box3, Mesh, Vector3 } from 'three';
|
|
2
|
+
export const clearThreeObjectMesh = (object) => {
|
|
3
|
+
while (object.children.length > 0) {
|
|
4
|
+
clearThreeObjectMesh(object.children[0]);
|
|
5
|
+
object.children[0]?.removeFromParent();
|
|
6
|
+
}
|
|
7
|
+
if (object instanceof Mesh) {
|
|
8
|
+
try {
|
|
9
|
+
object.geometry?.dispose();
|
|
10
|
+
}
|
|
11
|
+
catch (e) {
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
if (object.dispose) {
|
|
16
|
+
object.dispose();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
export const uuid = () => {
|
|
21
|
+
return URL.createObjectURL(new Blob([])).substr(-36);
|
|
22
|
+
};
|
|
23
|
+
export function getElementLeftPosition(element) {
|
|
24
|
+
var rect = element.getBoundingClientRect();
|
|
25
|
+
var parentRect = element.parentNode ? element.parentNode.getBoundingClientRect() : { left: 0, top: 0 };
|
|
26
|
+
var xPos = rect.left - parentRect.left;
|
|
27
|
+
var yPos = rect.top - parentRect.top + rect.height / 2;
|
|
28
|
+
if (!element.parentNode || element.parentNode === document.body) {
|
|
29
|
+
xPos = rect.left + window.scrollX;
|
|
30
|
+
yPos = rect.top + window.scrollY + rect.height / 2;
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
x: xPos,
|
|
34
|
+
y: yPos
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export function getRelativePosition(child, target) {
|
|
38
|
+
const childRect = child.getBoundingClientRect();
|
|
39
|
+
const targetRect = target.getBoundingClientRect();
|
|
40
|
+
const relativeTop = childRect.top - targetRect.top;
|
|
41
|
+
const relativeLeft = childRect.left - targetRect.left;
|
|
42
|
+
return { y: relativeTop, x: relativeLeft };
|
|
43
|
+
}
|
|
44
|
+
export function getVector3FromArray(arr) {
|
|
45
|
+
return new Vector3(arr[0], arr[1], arr[2]);
|
|
46
|
+
}
|
|
47
|
+
export function getLocationPosition(obj, wp) {
|
|
48
|
+
obj.updateMatrixWorld(true);
|
|
49
|
+
const worldMatrix = obj.matrixWorld.invert();
|
|
50
|
+
return wp.clone().applyMatrix4(worldMatrix);
|
|
51
|
+
}
|
|
52
|
+
export function getScaledSettings() {
|
|
53
|
+
let tiles = 3;
|
|
54
|
+
let renderScale = Math.max(1 / window.devicePixelRatio, 0.5);
|
|
55
|
+
const aspectRatio = window.innerWidth / window.innerHeight;
|
|
56
|
+
if (aspectRatio < 0.65) {
|
|
57
|
+
tiles = 4;
|
|
58
|
+
renderScale = 1 / window.devicePixelRatio;
|
|
59
|
+
}
|
|
60
|
+
return { tiles, renderScale };
|
|
61
|
+
}
|
|
62
|
+
export function generateMorphTargetWithTarget(target) {
|
|
63
|
+
try {
|
|
64
|
+
const originArr = target.geometry.attributes.position.array;
|
|
65
|
+
const originPoint = new Vector3(...originArr);
|
|
66
|
+
return generateMorphTarget(originPoint, target.geometry.morphAttributes.position, target.morphTargetInfluences || []);
|
|
67
|
+
}
|
|
68
|
+
catch (e) {
|
|
69
|
+
return new Vector3();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
export function generateMorphTarget(originPoint, morphPositions, influences) {
|
|
73
|
+
const target = originPoint.clone();
|
|
74
|
+
const displacements = morphPositions.map(morphPosition => {
|
|
75
|
+
const displacement = new Vector3();
|
|
76
|
+
for (let i = 0; i < morphPosition.count; i++) {
|
|
77
|
+
displacement.set(morphPosition.getX(i), morphPosition.getY(i), morphPosition.getZ(i));
|
|
78
|
+
}
|
|
79
|
+
return displacement;
|
|
80
|
+
});
|
|
81
|
+
displacements.forEach((dist, index) => {
|
|
82
|
+
const influence = influences[index] || 0;
|
|
83
|
+
target.add(dist.clone().multiplyScalar(influence));
|
|
84
|
+
});
|
|
85
|
+
return target;
|
|
86
|
+
}
|
|
87
|
+
export function calculateTotalDimensionsUsingVertices(object) {
|
|
88
|
+
let hasLength = false, hasWidth = false, hasHeight = false;
|
|
89
|
+
let minX = Infinity, minY = Infinity, minZ = Infinity;
|
|
90
|
+
let maxX = -Infinity, maxY = -Infinity, maxZ = -Infinity;
|
|
91
|
+
let maxRadius = 0;
|
|
92
|
+
let height = 0;
|
|
93
|
+
object.traverse((child) => {
|
|
94
|
+
if (child.isMesh && child.geometry) {
|
|
95
|
+
const mesh = child;
|
|
96
|
+
mesh.geometry.computeBoundingBox();
|
|
97
|
+
let positionAttribute = mesh.geometry.attributes.position;
|
|
98
|
+
const morphAttributes = mesh.geometry.morphAttributes.position;
|
|
99
|
+
let morphInfluences = mesh.morphTargetInfluences;
|
|
100
|
+
const keys = Object.keys(mesh.morphTargetDictionary || {});
|
|
101
|
+
if (keys.includes('width'))
|
|
102
|
+
hasWidth = true;
|
|
103
|
+
if (keys.includes('length'))
|
|
104
|
+
hasLength = true;
|
|
105
|
+
if (keys.includes('height'))
|
|
106
|
+
hasHeight = true;
|
|
107
|
+
for (let i = 0; i < positionAttribute.count; i++) {
|
|
108
|
+
let x = positionAttribute.getX(i);
|
|
109
|
+
let y = positionAttribute.getY(i);
|
|
110
|
+
let z = positionAttribute.getZ(i);
|
|
111
|
+
height = Math.max(y, height);
|
|
112
|
+
if (morphAttributes && morphInfluences) {
|
|
113
|
+
morphAttributes.forEach((morphAttr, index) => {
|
|
114
|
+
const val = (morphInfluences && morphInfluences[index]) || 0;
|
|
115
|
+
x += morphAttr.getX(i) * val;
|
|
116
|
+
y += morphAttr.getY(i) * val;
|
|
117
|
+
z += morphAttr.getZ(i) * val;
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
if (x < minX)
|
|
121
|
+
minX = x;
|
|
122
|
+
if (y < minY)
|
|
123
|
+
minY = y;
|
|
124
|
+
if (z < minZ)
|
|
125
|
+
minZ = z;
|
|
126
|
+
if (x > maxX)
|
|
127
|
+
maxX = x;
|
|
128
|
+
if (y > maxY)
|
|
129
|
+
maxY = y;
|
|
130
|
+
if (z > maxZ)
|
|
131
|
+
maxZ = z;
|
|
132
|
+
const distance = Math.sqrt(x * x + z * z);
|
|
133
|
+
if (distance > maxRadius)
|
|
134
|
+
maxRadius = distance;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
const box = new Box3(new Vector3(minX, minY, minZ), new Vector3(maxX, maxY, maxZ));
|
|
139
|
+
return { box, maxRadius, height, hasWidth, hasLength, hasHeight };
|
|
140
|
+
}
|
|
141
|
+
export function calculateInscribedCircleRadius(length, width) {
|
|
142
|
+
const diagonal = Math.sqrt(length * length + width * width);
|
|
143
|
+
return diagonal / 2;
|
|
144
|
+
}
|
|
145
|
+
export function calculateCircleRadiusByBox3(box) {
|
|
146
|
+
const center = new Vector3();
|
|
147
|
+
return Math.max(center.distanceTo(new Vector3(box.min.x, box.min.y, box.min.z)), center.distanceTo(new Vector3(box.min.x, box.min.y, box.max.z)), center.distanceTo(new Vector3(box.min.x, box.max.y, box.min.z)), center.distanceTo(new Vector3(box.min.x, box.max.y, box.max.z)), center.distanceTo(new Vector3(box.max.x, box.min.y, box.min.z)), center.distanceTo(new Vector3(box.max.x, box.min.y, box.max.z)), center.distanceTo(new Vector3(box.max.x, box.max.y, box.min.z)), center.distanceTo(new Vector3(box.max.x, box.max.y, box.max.z)));
|
|
148
|
+
}
|
|
149
|
+
export function debounce(fn, delay, scope = null) {
|
|
150
|
+
let timer = 0;
|
|
151
|
+
return function () {
|
|
152
|
+
let context = scope || this, args = arguments;
|
|
153
|
+
clearTimeout(timer);
|
|
154
|
+
timer = window.setTimeout(function () {
|
|
155
|
+
fn.apply(context, args);
|
|
156
|
+
}, delay);
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
export class ObjectSize {
|
|
160
|
+
constructor(length, width, height) {
|
|
161
|
+
this.length = length;
|
|
162
|
+
this.width = width;
|
|
163
|
+
this.height = height;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../stories/device-viewer/utils/index.ts"],"names":[],"mappings":"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"}
|