shop-components 0.0.25 → 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.
Files changed (248) hide show
  1. package/dist/assets/Color-RQJUDNI5-leAiB7jg.js +1 -0
  2. package/dist/assets/Configure-OUhXg2g0.js +173 -0
  3. package/dist/assets/DRACOLoader-FOpiHRUS.js +2 -0
  4. package/dist/assets/DocsRenderer-K4EAMTCU-wTc0yUaa.js +7 -0
  5. package/dist/assets/Header-Yyx952jD.css +1 -0
  6. package/dist/assets/Header.stories-8tnkOwSt.js +31 -0
  7. package/dist/assets/Page-fZ7a-HXz.css +1 -0
  8. package/dist/assets/Page.stories-53Crpe03.js +61 -0
  9. package/dist/assets/RGBELoader-re-MEsjP.js +5 -0
  10. package/dist/assets/SFL-CDD14-9UY62fbR.glb +0 -0
  11. package/dist/assets/WithTooltip-Y7J54OF7-e8Yh5ASp.js +1 -0
  12. package/dist/assets/_commonjsHelpers-4gQjN7DL.js +1 -0
  13. package/dist/assets/accessibility-Fv4dmnDm.png +0 -0
  14. package/dist/assets/addon-library-VlAgJsjc.png +0 -0
  15. package/dist/assets/bg-circle-d8WfpvaX.png +0 -0
  16. package/dist/assets/context-tKiKnkuP.png +0 -0
  17. package/dist/assets/docs-Pvr7BWzI.png +0 -0
  18. package/dist/assets/entry-preview-TptA_luc.js +8 -0
  19. package/dist/assets/entry-preview-docs-AhrJ3R4Z.js +2 -0
  20. package/dist/assets/figma-plugin-h9oRC4jr.png +0 -0
  21. package/dist/assets/formatter-B5HCVTEV-DKi3GmSv.js +58 -0
  22. package/dist/assets/generateMeshBVH.worker-NFSCTTDt.js +5 -0
  23. package/dist/assets/iframe-tlQuLR4E.js +7 -0
  24. package/dist/assets/img-radar-kufDNNXQ.png +0 -0
  25. package/dist/assets/img-radar2-1cPZO_cj.png +0 -0
  26. package/dist/assets/index-CXFn8OGe.js +513 -0
  27. package/dist/assets/index-C_uo8BdM.js +1 -0
  28. package/dist/assets/index-PPLHz8o0.js +6 -0
  29. package/dist/assets/index-jFdhmKfM.js +3 -0
  30. package/dist/assets/index-jtEywAqJ.js +1 -0
  31. package/dist/assets/index-ogXoivrg.js +1 -0
  32. package/dist/assets/index.stories-TVZrSYZv.js +20 -0
  33. package/dist/assets/index.stories-Uq0Yg-kp.js +896 -0
  34. package/dist/assets/index.stories-VJP6Jo4U.js +22 -0
  35. package/dist/assets/index.stories-VoNcNCFd.js +27 -0
  36. package/dist/assets/index.stories-YIFSciWI.js +1174 -0
  37. package/dist/assets/index.stories-iMKoZNyH.js +46 -0
  38. package/dist/assets/lightroom_14b-MJkJLVlP.hdr +0 -0
  39. package/dist/assets/lightroom_14b_512-e_XJNpR6.js +3981 -0
  40. package/dist/assets/lightroom_14b_512-nMVn659Q.hdr +0 -0
  41. package/dist/assets/lit-element-P_wTzRvl.js +19 -0
  42. package/dist/assets/parallelMeshBVH.worker-TP6qJGKX.js +5 -0
  43. package/dist/assets/preview-1q4RDNOi.js +1 -0
  44. package/dist/assets/preview-6iG64ELu.js +20 -0
  45. package/dist/assets/preview-7nNmfNVr.js +7 -0
  46. package/dist/assets/preview-9bpQVOkQ.js +1 -0
  47. package/dist/assets/preview-FnnPJHgu.js +1 -0
  48. package/dist/assets/preview-VI2eoWmp.js +1 -0
  49. package/dist/assets/preview-bEa2SesL.js +7 -0
  50. package/dist/assets/preview-u8M_OEO2.js +396 -0
  51. package/dist/assets/preview-zZA4w0lH.js +1 -0
  52. package/dist/assets/property-EQZXZ3dt.js +5 -0
  53. package/dist/assets/query-7eORIRsG.js +13 -0
  54. package/dist/assets/roller-8Vy8W3X_.glb +0 -0
  55. package/dist/assets/roller-hopper-Heae_wy5.glb +0 -0
  56. package/dist/assets/share-xgPlHEHy.png +0 -0
  57. package/dist/assets/styling-ZOs40c1G.png +0 -0
  58. package/dist/assets/syntaxhighlighter-JOJW2KGS-uBo08tOF.js +1 -0
  59. package/dist/assets/testing-HG80fZfa.png +0 -0
  60. package/dist/assets/theming--liSzaFj.png +0 -0
  61. package/dist/assets/three.module-9MfFqitO.js +3825 -0
  62. package/dist/assets/tiny-invariant-VyoA2Os1.js +1 -0
  63. package/dist/assets/worker-h5IcTUxB.js +1 -0
  64. package/dist/device-viewer/amr.d.ts +75 -0
  65. package/dist/device-viewer/assembly.d.ts +11 -0
  66. package/dist/device-viewer/dimension/index.d.ts +31 -0
  67. package/dist/device-viewer/dimension/line3.d.ts +21 -0
  68. package/dist/device-viewer/dimension/size-box.d.ts +39 -0
  69. package/dist/device-viewer/group-roller.d.ts +20 -0
  70. package/dist/device-viewer/index.d.ts +12 -0
  71. package/dist/device-viewer/mechanism/mechanism.d.ts +29 -0
  72. package/dist/device-viewer/outerline.d.ts +16 -0
  73. package/dist/device-viewer/roller.d.ts +31 -0
  74. package/dist/device-viewer/row.d.ts +18 -0
  75. package/dist/device-viewer/scene.d.ts +14 -28
  76. package/dist/device-viewer/slot.d.ts +10 -2
  77. package/dist/device-viewer/text2.d.ts +4 -0
  78. package/dist/device-viewer/text3.d.ts +4 -0
  79. package/dist/device-viewer/utils/index.d.ts +26 -1
  80. package/dist/favicon.svg +7 -0
  81. package/dist/iframe.html +495 -0
  82. package/dist/index.html +155 -0
  83. package/dist/index.json +1 -0
  84. package/dist/package.json +60 -0
  85. package/dist/project.json +1 -0
  86. package/dist/sb-addons/essentials-actions-3/manager-bundle.js +3 -0
  87. package/dist/sb-addons/essentials-actions-3/manager-bundle.js.LEGAL.txt +0 -0
  88. package/dist/sb-addons/essentials-backgrounds-4/manager-bundle.js +12 -0
  89. package/dist/sb-addons/essentials-backgrounds-4/manager-bundle.js.LEGAL.txt +0 -0
  90. package/dist/sb-addons/essentials-controls-2/manager-bundle.js +60 -0
  91. package/dist/sb-addons/essentials-controls-2/manager-bundle.js.LEGAL.txt +18 -0
  92. package/dist/sb-addons/essentials-measure-7/manager-bundle.js +3 -0
  93. package/dist/sb-addons/essentials-measure-7/manager-bundle.js.LEGAL.txt +0 -0
  94. package/dist/sb-addons/essentials-outline-8/manager-bundle.js +3 -0
  95. package/dist/sb-addons/essentials-outline-8/manager-bundle.js.LEGAL.txt +0 -0
  96. package/dist/sb-addons/essentials-toolbars-6/manager-bundle.js +3 -0
  97. package/dist/sb-addons/essentials-toolbars-6/manager-bundle.js.LEGAL.txt +0 -0
  98. package/dist/sb-addons/essentials-viewport-5/manager-bundle.js +3 -0
  99. package/dist/sb-addons/essentials-viewport-5/manager-bundle.js.LEGAL.txt +0 -0
  100. package/dist/sb-addons/links-1/manager-bundle.js +3 -0
  101. package/dist/sb-addons/links-1/manager-bundle.js.LEGAL.txt +0 -0
  102. package/dist/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +3 -0
  103. package/dist/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js.LEGAL.txt +0 -0
  104. package/dist/sb-common-assets/fonts.css +31 -0
  105. package/dist/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
  106. package/dist/sb-common-assets/nunito-sans-bold.woff2 +0 -0
  107. package/dist/sb-common-assets/nunito-sans-italic.woff2 +0 -0
  108. package/dist/sb-common-assets/nunito-sans-regular.woff2 +0 -0
  109. package/dist/sb-manager/WithTooltip-Y7J54OF7-3AIPQNGM.js +1 -0
  110. package/dist/sb-manager/chunk-I53COLQ6.js +183 -0
  111. package/dist/sb-manager/chunk-L35575BZ.js +234 -0
  112. package/dist/sb-manager/chunk-TZAR34JC.js +6 -0
  113. package/dist/sb-manager/chunk-UOBNU442.js +347 -0
  114. package/dist/sb-manager/chunk-VMGB76WP.js +9 -0
  115. package/dist/sb-manager/chunk-XP3HGWTR.js +1 -0
  116. package/dist/sb-manager/formatter-B5HCVTEV-7DCBOGO6.js +58 -0
  117. package/dist/sb-manager/globals-module-info.js +1 -0
  118. package/dist/sb-manager/globals-runtime.js +1 -0
  119. package/dist/sb-manager/globals.js +1 -0
  120. package/dist/sb-manager/index.js +1 -0
  121. package/dist/sb-manager/runtime.js +1 -0
  122. package/dist/sb-manager/syntaxhighlighter-JOJW2KGS-7BF26SBB.js +1 -0
  123. package/dist/sb-preview/globals.js +1 -0
  124. package/dist/sb-preview/runtime.js +128 -0
  125. package/dist/stories/cropper/index.d.ts +18 -0
  126. package/dist/stories/cropper/index.js +118 -0
  127. package/dist/stories/cropper/index.js.map +1 -0
  128. package/dist/stories/cropper/index.stories.d.ts +11 -0
  129. package/dist/stories/cropper/index.stories.js +14 -0
  130. package/dist/stories/cropper/index.stories.js.map +1 -0
  131. package/dist/stories/device-viewer/amr.d.ts +75 -0
  132. package/dist/stories/device-viewer/amr.js +554 -0
  133. package/dist/stories/device-viewer/amr.js.map +1 -0
  134. package/dist/stories/device-viewer/assembly.d.ts +11 -0
  135. package/dist/stories/device-viewer/assembly.js +47 -0
  136. package/dist/stories/device-viewer/assembly.js.map +1 -0
  137. package/dist/stories/device-viewer/asserts/fonts/type.json +1281 -0
  138. package/dist/stories/device-viewer/dimension/index.d.ts +31 -0
  139. package/dist/stories/device-viewer/dimension/index.js +131 -0
  140. package/dist/stories/device-viewer/dimension/index.js.map +1 -0
  141. package/dist/stories/device-viewer/dimension/line3.d.ts +21 -0
  142. package/dist/stories/device-viewer/dimension/line3.js +98 -0
  143. package/dist/stories/device-viewer/dimension/line3.js.map +1 -0
  144. package/dist/stories/device-viewer/dimension/size-box.d.ts +39 -0
  145. package/dist/stories/device-viewer/dimension/size-box.js +176 -0
  146. package/dist/stories/device-viewer/dimension/size-box.js.map +1 -0
  147. package/dist/stories/device-viewer/group-roller.d.ts +20 -0
  148. package/dist/stories/device-viewer/group-roller.js +65 -0
  149. package/dist/stories/device-viewer/group-roller.js.map +1 -0
  150. package/dist/stories/device-viewer/index.d.ts +47 -0
  151. package/dist/stories/device-viewer/index.js +530 -0
  152. package/dist/stories/device-viewer/index.js.map +1 -0
  153. package/dist/stories/device-viewer/index.stories.d.ts +27 -0
  154. package/dist/stories/device-viewer/index.stories.js +37 -0
  155. package/dist/stories/device-viewer/index.stories.js.map +1 -0
  156. package/dist/stories/device-viewer/lines.d.ts +36 -0
  157. package/dist/stories/device-viewer/lines.js +171 -0
  158. package/dist/stories/device-viewer/lines.js.map +1 -0
  159. package/dist/stories/device-viewer/main.d.ts +1 -0
  160. package/dist/stories/device-viewer/main.js +2 -0
  161. package/dist/stories/device-viewer/main.js.map +1 -0
  162. package/dist/stories/device-viewer/mechanism/mechanism.d.ts +29 -0
  163. package/dist/stories/device-viewer/mechanism/mechanism.js +164 -0
  164. package/dist/stories/device-viewer/mechanism/mechanism.js.map +1 -0
  165. package/dist/stories/device-viewer/outerline.d.ts +16 -0
  166. package/dist/stories/device-viewer/outerline.js +63 -0
  167. package/dist/stories/device-viewer/outerline.js.map +1 -0
  168. package/dist/stories/device-viewer/roller.d.ts +31 -0
  169. package/dist/stories/device-viewer/roller.js +121 -0
  170. package/dist/stories/device-viewer/roller.js.map +1 -0
  171. package/dist/stories/device-viewer/row.d.ts +18 -0
  172. package/dist/stories/device-viewer/row.js +58 -0
  173. package/dist/stories/device-viewer/row.js.map +1 -0
  174. package/dist/stories/device-viewer/scene.d.ts +101 -0
  175. package/dist/stories/device-viewer/scene.js +535 -0
  176. package/dist/stories/device-viewer/scene.js.map +1 -0
  177. package/dist/stories/device-viewer/slot/slot-item.d.ts +20 -0
  178. package/dist/stories/device-viewer/slot/slot-item.js +82 -0
  179. package/dist/stories/device-viewer/slot/slot-item.js.map +1 -0
  180. package/dist/stories/device-viewer/slot.d.ts +71 -0
  181. package/dist/stories/device-viewer/slot.js +272 -0
  182. package/dist/stories/device-viewer/slot.js.map +1 -0
  183. package/dist/stories/device-viewer/sound.d.ts +5 -0
  184. package/dist/stories/device-viewer/sound.js +13 -0
  185. package/dist/stories/device-viewer/sound.js.map +1 -0
  186. package/dist/stories/device-viewer/text2.d.ts +4 -0
  187. package/dist/stories/device-viewer/text2.js +12 -0
  188. package/dist/stories/device-viewer/text2.js.map +1 -0
  189. package/dist/stories/device-viewer/text3.d.ts +4 -0
  190. package/dist/stories/device-viewer/text3.js +14 -0
  191. package/dist/stories/device-viewer/text3.js.map +1 -0
  192. package/dist/stories/device-viewer/utils/index.d.ts +36 -0
  193. package/dist/stories/device-viewer/utils/index.js +166 -0
  194. package/dist/stories/device-viewer/utils/index.js.map +1 -0
  195. package/dist/stories/device-viewer/worker/generate-mesh-bvh-worker.d.ts +8 -0
  196. package/dist/stories/device-viewer/worker/generate-mesh-bvh-worker.js +88 -0
  197. package/dist/stories/device-viewer/worker/generate-mesh-bvh-worker.js.map +1 -0
  198. package/dist/stories/device-viewer/worker/generateAsync.worker.d.ts +1 -0
  199. package/dist/stories/device-viewer/worker/generateAsync.worker.js +57 -0
  200. package/dist/stories/device-viewer/worker/generateAsync.worker.js.map +1 -0
  201. package/dist/stories/device-viewer/worker/path-tracing-scene-worker.d.ts +16 -0
  202. package/dist/stories/device-viewer/worker/path-tracing-scene-worker.js +29 -0
  203. package/dist/stories/device-viewer/worker/path-tracing-scene-worker.js.map +1 -0
  204. package/dist/stories/main/index.d.ts +1 -0
  205. package/dist/stories/main/index.js +2 -0
  206. package/dist/stories/main/index.js.map +1 -0
  207. package/dist/stories/main.d.ts +4 -0
  208. package/dist/stories/main.js +5 -0
  209. package/dist/stories/main.js.map +1 -0
  210. package/dist/stories/plugin.d.ts +5 -0
  211. package/dist/stories/plugin.js +6 -0
  212. package/dist/stories/plugin.js.map +1 -0
  213. package/dist/stories/plugins/change-slot/index.d.ts +0 -0
  214. package/dist/stories/plugins/change-slot/index.js +2 -0
  215. package/dist/stories/plugins/change-slot/index.js.map +1 -0
  216. package/dist/stories/sglb/index.d.ts +27 -0
  217. package/dist/stories/sglb/index.js +151 -0
  218. package/dist/stories/sglb/index.js.map +1 -0
  219. package/dist/stories/smap-viewer/index.d.ts +14 -0
  220. package/dist/stories/smap-viewer/index.js +59 -0
  221. package/dist/stories/smap-viewer/index.js.map +1 -0
  222. package/dist/stories/smap-viewer/index.stories.d.ts +22 -0
  223. package/dist/stories/smap-viewer/index.stories.js +27 -0
  224. package/dist/stories/smap-viewer/index.stories.js.map +1 -0
  225. package/dist/stories/step-viewer/index.d.ts +17 -0
  226. package/dist/stories/step-viewer/index.js +109 -0
  227. package/dist/stories/step-viewer/index.js.map +1 -0
  228. package/dist/stories/step-viewer/index.stories.d.ts +20 -0
  229. package/dist/stories/step-viewer/index.stories.js +24 -0
  230. package/dist/stories/step-viewer/index.stories.js.map +1 -0
  231. package/dist/stories/test/index.d.ts +25 -0
  232. package/dist/stories/test/index.js +99 -0
  233. package/dist/stories/test/index.js.map +1 -0
  234. package/dist/stories/test/index.stories.d.ts +14 -0
  235. package/dist/stories/test/index.stories.js +16 -0
  236. package/dist/stories/test/index.stories.js.map +1 -0
  237. package/dist/stories/test/scene.d.ts +20 -0
  238. package/dist/stories/test/scene.js +86 -0
  239. package/dist/stories/test/scene.js.map +1 -0
  240. package/dist/stories/utils/index.d.ts +4 -0
  241. package/dist/stories/utils/index.js +28 -0
  242. package/dist/stories/utils/index.js.map +1 -0
  243. package/dist/test/index.d.ts +25 -0
  244. package/dist/test/index.stories.d.ts +14 -0
  245. package/dist/test/scene.d.ts +20 -0
  246. package/package.json +9 -6
  247. package/dist/shop-components.mjs +0 -55938
  248. package/dist/shop-components.umd.js +0 -9232
@@ -0,0 +1,31 @@
1
+ import { CSS3DObject } from 'three/examples/jsm/renderers/CSS3DRenderer';
2
+ import { Vector3 } from 'three';
3
+ import EventEmitter from 'eventemitter3';
4
+ export interface DimensionProps {
5
+ start: Vector3;
6
+ end: Vector3;
7
+ startOrigin?: Vector3;
8
+ axios: 'x' | 'y' | 'z';
9
+ divider: number;
10
+ }
11
+ export declare class Dimension extends CSS3DObject {
12
+ props: DimensionProps;
13
+ private _scale;
14
+ private _emitter;
15
+ addEventListener: <T extends string | symbol>(event: T, fn: (...args: any[]) => void, context?: any) => EventEmitter<string | symbol, any>;
16
+ removeEventListener: <T extends string | symbol>(event: T, fn: (...args: any[]) => void, context?: any) => EventEmitter<string | symbol, any>;
17
+ private endNode;
18
+ private _textNode;
19
+ private _mouseStart;
20
+ private _targetSize;
21
+ private _caches;
22
+ private _sizeFlag;
23
+ private _direction;
24
+ private _lines;
25
+ constructor(props: DimensionProps);
26
+ private _getIndexByAxios;
27
+ private _pointerdown;
28
+ private _pointermove;
29
+ private _pointercancel;
30
+ dispose(): void;
31
+ }
@@ -0,0 +1,131 @@
1
+ import { CSS3DObject } from 'three/examples/jsm/renderers/CSS3DRenderer';
2
+ import { Vector2 } from 'three';
3
+ import EventEmitter from 'eventemitter3';
4
+ export class Dimension extends CSS3DObject {
5
+ constructor(props) {
6
+ const box = document.createElement('div');
7
+ super(box);
8
+ this.props = props;
9
+ this._scale = 0.01;
10
+ this._emitter = new EventEmitter();
11
+ this.addEventListener = this._emitter.on.bind(this._emitter);
12
+ this.removeEventListener = this._emitter.on.bind(this._emitter);
13
+ this._mouseStart = new Vector2();
14
+ this._targetSize = new Vector2();
15
+ this._caches = [];
16
+ this._sizeFlag = 'width';
17
+ this._direction = 1;
18
+ this._lines = [];
19
+ this._pointerdown = (e) => {
20
+ const { pageX, pageY } = e;
21
+ this.endNode.setPointerCapture(e.pointerId);
22
+ this._mouseStart.set(pageX, pageY);
23
+ this._targetSize.setX(parseFloat(this.endNode.parentElement.style.width));
24
+ this._targetSize.setY(parseFloat(this.endNode.parentElement.style.height));
25
+ };
26
+ this._pointermove = (e) => {
27
+ if (!this._mouseStart.x)
28
+ return;
29
+ const { pageX, pageY } = e;
30
+ let offset = pageX - this._mouseStart.x;
31
+ let width = offset + this._targetSize.x;
32
+ if (this._sizeFlag === 'height') {
33
+ offset = pageY - this._mouseStart.y;
34
+ width = offset * this._direction + this._targetSize.y;
35
+ }
36
+ const more = width % 10;
37
+ width = width - more;
38
+ offset = (width - this._targetSize.x) * this._direction;
39
+ if (this._sizeFlag === 'height') {
40
+ offset = (width - this._targetSize.y) * this._direction;
41
+ }
42
+ this._textNode.innerText = (width / 100).toFixed(2) + ' m';
43
+ this.endNode.parentElement.style[this._sizeFlag] = `${width}px`;
44
+ };
45
+ this._pointercancel = (e) => {
46
+ this.endNode.releasePointerCapture(e.pointerId);
47
+ this._mouseStart.set(0, 0);
48
+ };
49
+ const { start, end } = props;
50
+ const length = end.distanceTo(start);
51
+ if (this.props.axios === 'z') {
52
+ this.props.axios = 'y';
53
+ }
54
+ else if (this.props.axios === 'y') {
55
+ this.props.axios = 'z';
56
+ }
57
+ if (this.props.axios === 'y') {
58
+ this._sizeFlag = 'height';
59
+ }
60
+ const wrapper = document.createElement('div');
61
+ wrapper.style.position = 'absolute';
62
+ wrapper.style.left = '0';
63
+ wrapper.style.bottom = '0';
64
+ box.append(wrapper);
65
+ this._textNode = document.createElement('div');
66
+ this._textNode.innerText = length.toFixed(2) + ' m';
67
+ wrapper.append(this._textNode);
68
+ const endNode = document.createElement('div');
69
+ this.endNode = endNode;
70
+ endNode.style.position = 'absolute';
71
+ endNode.style.left = 'auto';
72
+ endNode.style.right = '0';
73
+ endNode.style.width = '4px';
74
+ endNode.style.height = '4px';
75
+ endNode.style.background = '#0066FF';
76
+ endNode.style.borderRadius = '50%';
77
+ endNode.style.margin = '-2px -2px 0 0';
78
+ endNode.style.cursor = 'pointer';
79
+ wrapper.append(endNode);
80
+ this.scale.set(this._scale, this._scale, this._scale);
81
+ box.style.fontSize = '6px';
82
+ box.style.color = '#fff';
83
+ wrapper.style[this._sizeFlag] = length * 100 + 'px';
84
+ wrapper.style.textAlign = 'center';
85
+ if (this._sizeFlag === 'height') {
86
+ wrapper.style.borderLeft = '0.1px dashed #fff';
87
+ wrapper.style.display = 'flex';
88
+ wrapper.style.alignItems = 'center';
89
+ wrapper.style.justifyContent = 'center';
90
+ wrapper.style.whiteSpace = 'nowrap';
91
+ endNode.style.top = '0';
92
+ endNode.style.left = '0';
93
+ endNode.style.right = 'auto';
94
+ endNode.style.margin = '-2px 0 0 -2px';
95
+ }
96
+ else {
97
+ wrapper.style.borderBottom = '0.1px dashed #fff';
98
+ }
99
+ endNode.addEventListener('pointerdown', this._pointerdown);
100
+ endNode.addEventListener('pointermove', this._pointermove);
101
+ endNode.addEventListener('pointerup', this._pointercancel);
102
+ if (end[this.props.axios] < start[this.props.axios]) {
103
+ this.rotateY(Math.PI);
104
+ }
105
+ else {
106
+ this._direction = -1;
107
+ }
108
+ }
109
+ _getIndexByAxios() {
110
+ if (this.props.axios === 'y') {
111
+ return 1;
112
+ }
113
+ else if (this.props.axios === 'z') {
114
+ return 2;
115
+ }
116
+ else {
117
+ return 0;
118
+ }
119
+ }
120
+ dispose() {
121
+ this._lines.forEach(l => l.dispose());
122
+ this._emitter.removeAllListeners();
123
+ this.endNode.removeEventListener('pointerdown', this._pointerdown);
124
+ this.endNode.removeEventListener('pointermove', this._pointermove);
125
+ this.endNode.removeEventListener('pointerup', this._pointercancel);
126
+ this.element.remove();
127
+ this._caches.forEach(m => m.clear());
128
+ this._caches = [];
129
+ }
130
+ }
131
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../stories/device-viewer/dimension/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { CSS3DObject } from 'three/examples/jsm/renderers/CSS3DRenderer';
2
+ import { Vector3 } from 'three';
3
+ export declare class Line3 extends CSS3DObject {
4
+ private _startWith?;
5
+ private _text;
6
+ constructor(start: Vector3, end: Vector3, _startWith?: string | undefined);
7
+ getV(v: number): number;
8
+ getSV(v: number): number;
9
+ dispose(): void;
10
+ hide(): void;
11
+ show(): void;
12
+ update(start: Vector3, end: Vector3): void;
13
+ updateSize(pos: Vector3): void;
14
+ }
15
+ export declare class Text3 extends CSS3DObject {
16
+ constructor(text: string, color?: string);
17
+ hide(): void;
18
+ show(): void;
19
+ update(text: string): void;
20
+ updateSize(pos: Vector3): void;
21
+ }
@@ -0,0 +1,98 @@
1
+ import { CSS3DObject } from 'three/examples/jsm/renderers/CSS3DRenderer';
2
+ import { Vector3 } from 'three';
3
+ const mainColor = '#898989';
4
+ export class Line3 extends CSS3DObject {
5
+ constructor(start, end, _startWith) {
6
+ const box = document.createElement('div');
7
+ super(box);
8
+ this._startWith = _startWith;
9
+ this._text = new Text3('');
10
+ const text = document.createElement('div');
11
+ box.append(text);
12
+ const midPoint = new Vector3().addVectors(start, end).multiplyScalar(0.5);
13
+ this.position.copy(midPoint.multiplyScalar(1));
14
+ const distance = start.distanceTo(end);
15
+ let angle = Math.atan2(start.z - end.z, start.x - end.x);
16
+ this.rotation.y = -angle;
17
+ if (start.y - end.y) {
18
+ angle = Math.atan2(start.y - end.y, start.x - end.x);
19
+ this.rotation.z = angle;
20
+ }
21
+ box.style.zIndex = (Math.random() * 10000).toFixed(0);
22
+ box.style.pointerEvents = 'none';
23
+ box.style.width = `${this.getV(distance)}px`;
24
+ box.style.borderBottom = `0.1px solid #cccccd`;
25
+ box.style.textAlign = 'center';
26
+ box.style.transition = 'all .3s';
27
+ box.style.color = mainColor;
28
+ this.add(this._text);
29
+ this.update(start, end);
30
+ this.scale.set(0.01, 0.01, 0.01);
31
+ this.rotateX(-Math.PI / 2);
32
+ }
33
+ getV(v) {
34
+ return v * 100;
35
+ }
36
+ getSV(v) {
37
+ return v * 1000;
38
+ }
39
+ dispose() {
40
+ this.element.remove();
41
+ this.clear();
42
+ this.removeFromParent();
43
+ }
44
+ hide() {
45
+ this.element.style.opacity = '0';
46
+ this._text.hide();
47
+ }
48
+ show() {
49
+ this.element.style.opacity = '1';
50
+ this._text.show();
51
+ }
52
+ update(start, end) {
53
+ const distance = start.distanceTo(end);
54
+ this.element.style.width = `${this.getV(distance)}px`;
55
+ this.element.style.width = `${this.getV(distance)}px`;
56
+ const showText = `${(this.getSV(distance)).toFixed(0)} mm`;
57
+ this._text.update(this._startWith ? `${this._startWith}${showText}` : showText);
58
+ const midPoint = new Vector3().addVectors(start, end).multiplyScalar(0.5);
59
+ this.position.copy(midPoint.multiplyScalar(1));
60
+ }
61
+ updateSize(pos) {
62
+ this._text.updateSize(pos);
63
+ }
64
+ }
65
+ export class Text3 extends CSS3DObject {
66
+ constructor(text, color = mainColor) {
67
+ const box = document.createElement('div');
68
+ super(box);
69
+ box.style.pointerEvents = 'none';
70
+ box.innerText = text;
71
+ box.style.fontSize = '5px';
72
+ box.style.color = color;
73
+ box.style.paddingBottom = '5px';
74
+ box.style.transition = 'all .3s';
75
+ this.position.setY(1);
76
+ }
77
+ hide() {
78
+ this.element.style.opacity = '0';
79
+ }
80
+ show() {
81
+ this.element.style.opacity = '1';
82
+ }
83
+ update(text) {
84
+ this.element.innerText = text;
85
+ }
86
+ updateSize(pos) {
87
+ const current = this.parent?.position.clone();
88
+ current?.setY(this.position.y);
89
+ let distance = current?.distanceTo(pos) || 1;
90
+ distance *= 1.2;
91
+ if (distance < 5) {
92
+ distance = 5;
93
+ }
94
+ this.element.style.fontSize = `${distance}px`;
95
+ this.element.style.paddingBottom = `${distance}px`;
96
+ }
97
+ }
98
+ //# sourceMappingURL=line3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line3.js","sourceRoot":"","sources":["../../../../stories/device-viewer/dimension/line3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAA;AACxE,OAAO,EAAE,OAAO,EAAE,MAAU,OAAO,CAAA;AAEnC,MAAM,SAAS,GAAG,SAAS,CAAA;AAE3B,MAAM,OAAO,KAAM,SAAQ,WAAW;IAGpC,YAAY,KAAc,EAAE,GAAY,EAAU,UAAmB;QACnE,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QACzC,KAAK,CAAC,GAAG,CAAC,CAAA;QAFsC,eAAU,GAAV,UAAU,CAAS;QAF7D,UAAK,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAA;QAM3B,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC1C,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAEhB,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;QACzE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QACtC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QACxD,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAA;QACxB,IAAI,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;YACpB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;YACpD,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAA;QACzB,CAAC;QAED,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QACrD,GAAG,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAA;QAChC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAA;QAG5C,GAAG,CAAC,KAAK,CAAC,YAAY,GAAG,qBAAqB,CAAA;QAC9C,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAA;QAC9B,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAA;QAEhC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAA;QAQ3B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAEpB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAEvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAC5B,CAAC;IAED,IAAI,CAAC,CAAS;QACZ,OAAO,CAAC,GAAG,GAAG,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,CAAS;QACb,OAAO,CAAC,GAAG,IAAI,CAAA;IACjB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAA;QACrB,IAAI,CAAC,KAAK,EAAE,CAAA;QACZ,IAAI,CAAC,gBAAgB,EAAE,CAAA;IACzB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAA;QAChC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IACnB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAA;QAChC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IACnB,CAAC;IAED,MAAM,CAAC,KAAc,EAAE,GAAY;QACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QACtC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAA;QACrD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAA;QACrD,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAA;QAC1D,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;QAE/E,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;QACzE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;IAChD,CAAC;IAED,UAAU,CAAC,GAAY;QACrB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,KAAM,SAAQ,WAAW;IACpC,YAAY,IAAY,EAAE,KAAK,GAAG,SAAS;QACzC,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QACzC,KAAK,CAAC,GAAG,CAAC,CAAA;QACV,GAAG,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAA;QAChC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAA;QACpB,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAA;QAC1B,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAA;QACvB,GAAG,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAA;QAC/B,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAA;QAEhC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACvB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAA;IAClC,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAA;IAClC,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAA;IAC/B,CAAC;IAED,UAAU,CAAC,GAAY;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAA;QAC7C,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC9B,IAAI,QAAQ,GAAG,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC5C,QAAQ,IAAI,GAAG,CAAA;QACf,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,QAAQ,GAAG,CAAC,CAAA;QACd,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,QAAQ,IAAI,CAAA;QAC7C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,GAAG,GAAG,QAAQ,IAAI,CAAA;IACpD,CAAC;CACF"}
@@ -0,0 +1,39 @@
1
+ import { Box3, Object3D } from 'three';
2
+ import { Tween } from '@tweenjs/tween.js';
3
+ import { Scene3D } from '../scene';
4
+ export declare class SizeBox extends Object3D {
5
+ private _box3;
6
+ private _line1;
7
+ private _line2;
8
+ private _line3;
9
+ private _outline;
10
+ private _object;
11
+ _fitAnimation: Tween<any> | undefined;
12
+ private _radius;
13
+ private _app;
14
+ private _hasWidthConfig;
15
+ private _hasLengthConfig;
16
+ private _hasHeightConfig;
17
+ follow: string;
18
+ followOrigin: number;
19
+ followScale: number;
20
+ originOffset: number;
21
+ translateCache: number;
22
+ constructor();
23
+ get hasSizeConfig(): {
24
+ length: boolean;
25
+ width: boolean;
26
+ height: boolean;
27
+ };
28
+ get size(): Box3;
29
+ get radius(): number;
30
+ init(app: Scene3D): void;
31
+ reset(): void;
32
+ private _changeSize;
33
+ private _change;
34
+ generate(object?: Object3D, offset?: number): void;
35
+ show(): void;
36
+ hide(): void;
37
+ dispose(): void;
38
+ update(originOffset?: number): void;
39
+ }
@@ -0,0 +1,176 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Box3, Object3D, Vector3 } from 'three';
8
+ import { calculateTotalDimensionsUsingVertices, debounce } from '../utils';
9
+ import { Line3 } from './line3';
10
+ import { CSS2DObject } from 'three/examples/jsm/renderers/CSS2DRenderer';
11
+ import { customElement, state } from 'lit/decorators.js';
12
+ import { css, html, LitElement } from 'lit';
13
+ import styles from './css.styl?inline';
14
+ import { Outerline } from '../outerline';
15
+ export class SizeBox extends Object3D {
16
+ constructor() {
17
+ super();
18
+ this._box3 = new Box3();
19
+ this._outline = new Outerline(0, 0);
20
+ this._radius = 0;
21
+ this._hasWidthConfig = false;
22
+ this._hasLengthConfig = false;
23
+ this._hasHeightConfig = false;
24
+ this.follow = '';
25
+ this.followOrigin = 0;
26
+ this.followScale = 1;
27
+ this.originOffset = 0;
28
+ this.translateCache = 0;
29
+ this._changeSize = debounce((pos) => {
30
+ this._line1?.updateSize(pos);
31
+ this._line2?.updateSize(pos);
32
+ this._line3?.updateSize(pos);
33
+ }, 100);
34
+ this._change = () => {
35
+ if (!this._app)
36
+ return;
37
+ const camera = this._app.camera;
38
+ if (!camera)
39
+ return;
40
+ this._outline.change(camera.position);
41
+ this._changeSize(camera.position);
42
+ };
43
+ this.add(this._outline);
44
+ }
45
+ get hasSizeConfig() {
46
+ return {
47
+ length: this._hasLengthConfig,
48
+ width: this._hasWidthConfig,
49
+ height: this._hasHeightConfig
50
+ };
51
+ }
52
+ get size() {
53
+ return this._box3.clone();
54
+ }
55
+ get radius() {
56
+ return this._radius;
57
+ }
58
+ init(app) {
59
+ this._app = app;
60
+ this._app.controls.addEventListener('change', this._change);
61
+ }
62
+ reset() {
63
+ this.hide();
64
+ }
65
+ generate(object, offset = 0) {
66
+ if (object) {
67
+ this._object = object;
68
+ }
69
+ this.update(offset);
70
+ }
71
+ show() {
72
+ this.visible = true;
73
+ this.traverse(m => m.visible = true);
74
+ }
75
+ hide() {
76
+ this.visible = false;
77
+ this.traverse(m => m.visible = false);
78
+ }
79
+ dispose() {
80
+ this._app?.controls.removeEventListener('change', this._change);
81
+ }
82
+ update(originOffset = 0) {
83
+ if (!this._object)
84
+ return;
85
+ const object = this._object;
86
+ const { box, maxRadius, hasLength, hasHeight, hasWidth } = calculateTotalDimensionsUsingVertices(object);
87
+ this._hasWidthConfig = hasWidth;
88
+ this._hasLengthConfig = hasLength;
89
+ this._hasHeightConfig = hasHeight;
90
+ this._box3.copy(box);
91
+ this._radius = maxRadius;
92
+ if (this.follow && originOffset) {
93
+ this.originOffset = (this.followOrigin - originOffset) * this.followScale;
94
+ }
95
+ this._outline.update(this._radius);
96
+ this._change();
97
+ const minX = this._box3.min.x;
98
+ const maxX = this._box3.max.x;
99
+ const minZ = this._box3.min.z;
100
+ const maxZ = this._box3.max.z;
101
+ const minY = this._box3.min.y;
102
+ const maxY = this._box3.max.y;
103
+ let offset = 0.3;
104
+ const s1 = new Vector3(minX, 0, minZ);
105
+ const s2 = new Vector3(maxX, 0, minZ);
106
+ if (!this._line1) {
107
+ this._line1 = new Line3(s1.clone().sub(new Vector3(0, 0, offset)), s2.clone().sub(new Vector3(0, 0, offset)), '长:');
108
+ }
109
+ else {
110
+ this._line1.update(s1.clone().sub(new Vector3(0, 0, offset)), s2.clone().sub(new Vector3(0, 0, offset)));
111
+ }
112
+ const s3 = new Vector3(maxX, 0, maxZ);
113
+ if (!this._line2) {
114
+ this._line2 = new Line3(s2.clone().add(new Vector3(offset, 0, 0)), s3.clone().add(new Vector3(offset, 0, 0)), '宽:');
115
+ }
116
+ else {
117
+ this._line2.update(s2.clone().add(new Vector3(offset, 0, 0)), s3.clone().add(new Vector3(offset, 0, 0)));
118
+ }
119
+ const z1 = new Vector3(minX, minY, minZ);
120
+ const z2 = new Vector3(minX, maxY, minZ);
121
+ const zo = z1.clone();
122
+ zo.z -= offset / 2;
123
+ const z2o = z2.clone();
124
+ z2o.z -= offset / 2;
125
+ if (!this._line3) {
126
+ this._line3 = new Line3(zo, z2o, '高:');
127
+ }
128
+ else {
129
+ this._line3.update(zo, z2o);
130
+ }
131
+ this.add(this._line1, this._line2, this._line3);
132
+ }
133
+ }
134
+ let PointElement = class PointElement extends LitElement {
135
+ static { this.styles = css([styles]); }
136
+ constructor(text, active = false) {
137
+ super();
138
+ this.text = '';
139
+ this.active = false;
140
+ this.text = (text * 1000).toFixed(0);
141
+ this.active = active;
142
+ }
143
+ render() {
144
+ return html `
145
+ <div class="pointer-container ${this.active && 'active'}">
146
+ <div class="point"></div>
147
+ <div class="value">${this.text} mm</div>
148
+ </div>
149
+ `;
150
+ }
151
+ };
152
+ __decorate([
153
+ state()
154
+ ], PointElement.prototype, "text", void 0);
155
+ __decorate([
156
+ state()
157
+ ], PointElement.prototype, "active", void 0);
158
+ PointElement = __decorate([
159
+ customElement('point-element')
160
+ ], PointElement);
161
+ class Point2d extends CSS2DObject {
162
+ constructor(v, active = false) {
163
+ const box = document.createElement('div');
164
+ super(box);
165
+ const e = new PointElement(v, active);
166
+ box.append(e);
167
+ }
168
+ destroy() {
169
+ if (this.element.parentNode) {
170
+ this.element.parentNode.removeChild(this.element);
171
+ }
172
+ this.clear();
173
+ this.parent?.remove(this);
174
+ }
175
+ }
176
+ //# sourceMappingURL=size-box.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"size-box.js","sourceRoot":"","sources":["../../../../stories/device-viewer/dimension/size-box.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { AMRAssembly } from './assembly';
2
+ import { Object3D } from 'three';
3
+ import EventEmitter from 'eventemitter3';
4
+ export declare class GroupRoller extends AMRAssembly {
5
+ private _container;
6
+ private _emitter;
7
+ addEventListener: <T extends string | symbol>(event: T, fn: (...args: any[]) => void, context?: any) => EventEmitter<string | symbol, any>;
8
+ private _widthGap;
9
+ private _lengthGap;
10
+ private _row;
11
+ constructor();
12
+ loaded(glb: Object3D): void;
13
+ setShapeKey(key: string, value: number): void;
14
+ setGoodsSize(size: {
15
+ length: number;
16
+ width: number;
17
+ height: number;
18
+ }): void;
19
+ destroy(): void;
20
+ }
@@ -0,0 +1,65 @@
1
+ import { AMRAssembly } from './assembly';
2
+ import Model from './asserts/models/roller-hopper.glb?url';
3
+ import { Group, Vector3 } from 'three';
4
+ import { Roller } from './roller';
5
+ import { Row } from './row';
6
+ import EventEmitter from 'eventemitter3';
7
+ import { clearThreeObjectMesh } from './utils';
8
+ export class GroupRoller extends AMRAssembly {
9
+ constructor() {
10
+ super(Model);
11
+ this._container = new Group();
12
+ this._emitter = new EventEmitter();
13
+ this.addEventListener = this._emitter.addListener.bind(this._emitter);
14
+ this._widthGap = 0.01;
15
+ this._lengthGap = 0.01;
16
+ this._row = new Row(this._widthGap);
17
+ this.add(this._container);
18
+ }
19
+ loaded(glb) {
20
+ this._container.add(glb.clone(true));
21
+ const row = this._row;
22
+ row.addEventListener('size-change', ({ width, length, height }) => {
23
+ this.setShapeKey('goodsWidth', width);
24
+ this.setShapeKey('goodsLength', length);
25
+ this.size.width = length + this._lengthGap;
26
+ this.size.length = width + this._widthGap;
27
+ this.size.height = height;
28
+ this._emitter.emit('size-change', this.size);
29
+ });
30
+ const t = new Roller({
31
+ goodsSize: new Vector3(1, 1, 1)
32
+ });
33
+ const t2 = new Roller({
34
+ goodsSize: new Vector3(1, 1, 1)
35
+ });
36
+ row.addItem(t);
37
+ row.addItem(t2);
38
+ this.add(row);
39
+ }
40
+ setShapeKey(key, value) {
41
+ const nodes = [];
42
+ if (['length', 'width'].includes(key)) {
43
+ value -= 0.2;
44
+ }
45
+ this._container.traverse(node => {
46
+ if (!Object.keys(node.morphTargetDictionary || {}).includes(key))
47
+ return;
48
+ let val = value;
49
+ if (node.userData[`origin_${key}`]) {
50
+ val -= node.userData[`origin_${key}`];
51
+ }
52
+ const index = node.morphTargetDictionary[key];
53
+ node.morphTargetInfluences && (node.morphTargetInfluences[index] = val);
54
+ });
55
+ }
56
+ setGoodsSize(size) {
57
+ this._row.items.forEach((item) => item.setGoodsSize(size));
58
+ }
59
+ destroy() {
60
+ this._emitter.removeAllListeners();
61
+ this._row.destroy();
62
+ clearThreeObjectMesh(this);
63
+ }
64
+ }
65
+ //# sourceMappingURL=group-roller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group-roller.js","sourceRoot":"","sources":["../../../stories/device-viewer/group-roller.ts"],"names":[],"mappings":"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"}