@colijnit/configurator 261.1.0 → 261.20.0

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 (181) hide show
  1. package/fesm2022/colijnit-configurator.mjs +19553 -0
  2. package/fesm2022/colijnit-configurator.mjs.map +1 -0
  3. package/index.d.ts +3301 -0
  4. package/lib/components/answer-card/style/_layout.scss +88 -0
  5. package/lib/components/answer-card/style/_material-definition.scss +3 -0
  6. package/lib/components/answer-card/style/_theme.scss +67 -0
  7. package/lib/components/answer-card/style/material.scss +2 -0
  8. package/lib/components/answer-info-dialog/style/_layout.scss +88 -0
  9. package/lib/components/answer-info-dialog/style/_material-definition.scss +3 -0
  10. package/lib/components/answer-info-dialog/style/_theme.scss +44 -0
  11. package/lib/components/answer-info-dialog/style/material.scss +3 -0
  12. package/lib/components/answers-slideout/style/_layout.scss +199 -0
  13. package/lib/components/answers-slideout/style/_material-definition.scss +3 -0
  14. package/lib/components/answers-slideout/style/_theme.scss +54 -0
  15. package/lib/components/answers-slideout/style/material.scss +3 -0
  16. package/lib/components/color-filter/style/_layout.scss +41 -0
  17. package/lib/components/color-filter/style/_material-definition.scss +3 -0
  18. package/lib/components/color-filter/style/_theme.scss +7 -0
  19. package/lib/components/color-filter/style/material.scss +3 -0
  20. package/lib/components/configurator/style/_layout.scss +7 -0
  21. package/lib/components/configurator/style/_material-definition.scss +3 -0
  22. package/lib/components/configurator/style/_theme.scss +7 -0
  23. package/lib/components/configurator/style/material.scss +3 -0
  24. package/lib/components/configurator-dialog/style/_layout.scss +129 -0
  25. package/lib/components/configurator-dialog/style/_material-definition.scss +4 -0
  26. package/lib/components/configurator-dialog/style/_theme.scss +89 -0
  27. package/lib/components/configurator-dialog/style/material.scss +3 -0
  28. package/lib/components/configurator-loader/style/_layout.scss +72 -0
  29. package/lib/components/configurator-loader/style/_material-definition.scss +5 -0
  30. package/lib/components/configurator-loader/style/_theme.scss +26 -0
  31. package/lib/components/configurator-loader/style/material.scss +14 -0
  32. package/lib/components/configurator-scene/style/_layout.scss +22 -0
  33. package/lib/components/configurator-scene/style/_material-definition.scss +3 -0
  34. package/lib/components/configurator-scene/style/_theme.scss +7 -0
  35. package/lib/components/configurator-scene/style/material.scss +3 -0
  36. package/lib/components/configurator-scene-loader/style/_layout.scss +72 -0
  37. package/lib/components/configurator-scene-loader/style/_material-definition.scss +5 -0
  38. package/lib/components/configurator-scene-loader/style/_theme.scss +26 -0
  39. package/lib/components/configurator-scene-loader/style/material.scss +14 -0
  40. package/lib/components/element-buttons/style/_layout.scss +52 -0
  41. package/lib/components/element-buttons/style/_material-definition.scss +3 -0
  42. package/lib/components/element-buttons/style/_theme.scss +23 -0
  43. package/lib/components/element-buttons/style/material.scss +3 -0
  44. package/lib/components/element-toolbar/element-toolbar.component.scss +59 -0
  45. package/lib/components/element-toolbar/style/_layout.scss +107 -0
  46. package/lib/components/element-toolbar/style/_material-definition.scss +3 -0
  47. package/lib/components/element-toolbar/style/_theme.scss +47 -0
  48. package/lib/components/element-toolbar/style/material.scss +3 -0
  49. package/lib/components/image-zoom/style/_layout.scss +51 -0
  50. package/lib/components/image-zoom/style/_material-definition.scss +3 -0
  51. package/lib/components/image-zoom/style/_theme.scss +17 -0
  52. package/lib/components/image-zoom/style/material.scss +3 -0
  53. package/lib/components/lite-selector/style/_layout.scss +21 -0
  54. package/lib/components/lite-selector/style/_material-definition.scss +3 -0
  55. package/lib/components/lite-selector/style/_theme.scss +7 -0
  56. package/lib/components/lite-selector/style/material.scss +3 -0
  57. package/lib/components/product-configurator/style/_layout.scss +46 -0
  58. package/lib/components/product-configurator/style/_material-definition.scss +3 -0
  59. package/lib/components/product-configurator/style/_theme.scss +22 -0
  60. package/lib/components/product-configurator/style/material.scss +3 -0
  61. package/lib/components/product-configurator-selector/style/_layout.scss +145 -0
  62. package/lib/components/product-configurator-selector/style/_material-definition.scss +3 -0
  63. package/lib/components/product-configurator-selector/style/_theme.scss +57 -0
  64. package/lib/components/product-configurator-selector/style/material.scss +3 -0
  65. package/lib/components/product-configurator-selector-option/style/_layout.scss +7 -0
  66. package/lib/components/product-configurator-selector-option/style/_material-definition.scss +3 -0
  67. package/lib/components/product-configurator-selector-option/style/_theme.scss +7 -0
  68. package/lib/components/product-configurator-selector-option/style/material.scss +3 -0
  69. package/lib/components/product-configurator-selector-option-button/style/_layout.scss +28 -0
  70. package/lib/components/product-configurator-selector-option-button/style/_material-definition.scss +3 -0
  71. package/lib/components/product-configurator-selector-option-button/style/_theme.scss +33 -0
  72. package/lib/components/product-configurator-selector-option-button/style/material.scss +3 -0
  73. package/lib/components/product-configurator-selector-option-checkbox/style/_layout.scss +28 -0
  74. package/lib/components/product-configurator-selector-option-checkbox/style/_material-definition.scss +3 -0
  75. package/lib/components/product-configurator-selector-option-checkbox/style/_theme.scss +27 -0
  76. package/lib/components/product-configurator-selector-option-checkbox/style/material.scss +3 -0
  77. package/lib/components/product-configurator-selector-option-dropdown/style/_layout.scss +34 -0
  78. package/lib/components/product-configurator-selector-option-dropdown/style/_material-definition.scss +3 -0
  79. package/lib/components/product-configurator-selector-option-dropdown/style/_theme.scss +28 -0
  80. package/lib/components/product-configurator-selector-option-dropdown/style/material.scss +3 -0
  81. package/lib/components/product-configurator-selector-option-tile/style/_layout.scss +58 -0
  82. package/lib/components/product-configurator-selector-option-tile/style/_material-definition.scss +3 -0
  83. package/lib/components/product-configurator-selector-option-tile/style/_theme.scss +56 -0
  84. package/lib/components/product-configurator-selector-option-tile/style/material.scss +3 -0
  85. package/lib/components/progress-bar/progress-bar.component.scss +14 -0
  86. package/lib/components/progress-bar/style/_layout.scss +18 -0
  87. package/lib/components/progress-bar/style/_material-definition.scss +3 -0
  88. package/lib/components/progress-bar/style/_theme.scss +10 -0
  89. package/lib/components/progress-bar/style/material.scss +3 -0
  90. package/lib/components/scene-options/style/_layout.scss +52 -0
  91. package/lib/components/scene-options/style/_material-definition.scss +3 -0
  92. package/lib/components/scene-options/style/_theme.scss +7 -0
  93. package/lib/components/scene-options/style/material.scss +3 -0
  94. package/lib/components/selections-summary/style/_layout.scss +87 -0
  95. package/lib/components/selections-summary/style/_material-definition.scss +5 -0
  96. package/lib/components/selections-summary/style/_theme.scss +13 -0
  97. package/lib/components/selections-summary/style/material.scss +3 -0
  98. package/lib/components/selections-summary-line/style/_layout.scss +12 -0
  99. package/lib/components/selections-summary-line/style/_material-definition.scss +4 -0
  100. package/lib/components/selections-summary-line/style/_theme.scss +12 -0
  101. package/lib/components/selections-summary-line/style/material.scss +3 -0
  102. package/lib/components/slideout/style/_layout.scss +27 -0
  103. package/lib/components/slideout/style/_material-definition.scss +3 -0
  104. package/lib/components/slideout/style/_theme.scss +5 -0
  105. package/lib/components/slideout/style/material.scss +3 -0
  106. package/lib/components/summary-line/style/_layout.scss +137 -0
  107. package/lib/components/summary-line/style/_material-definition.scss +4 -0
  108. package/lib/components/summary-line/style/_theme.scss +56 -0
  109. package/lib/components/summary-line/style/material.scss +3 -0
  110. package/lib/components/tag-filter/style/_layout.scss +14 -0
  111. package/lib/components/tag-filter/style/_material-definition.scss +3 -0
  112. package/lib/components/tag-filter/style/_theme.scss +7 -0
  113. package/lib/components/tag-filter/style/material.scss +3 -0
  114. package/lib/components/threedselector/style/_layout.scss +32 -0
  115. package/lib/components/threedselector/style/_material-definition.scss +3 -0
  116. package/lib/components/threedselector/style/_theme.scss +7 -0
  117. package/lib/components/threedselector/style/material.scss +9 -0
  118. package/lib/style/_mixin.scss +9 -0
  119. package/lib/style/configurator-globals.scss +21 -0
  120. package/lib/style/template_variables.scss +37 -0
  121. package/package.json +27 -36
  122. package/README.md +0 -28
  123. package/app/builder.d.ts +0 -75
  124. package/app/components/answers/answer/answer.component.d.ts +0 -11
  125. package/app/components/answers/answers.component.d.ts +0 -8
  126. package/app/components/answers/answers.module.d.ts +0 -2
  127. package/app/components/selections/selections.component.d.ts +0 -21
  128. package/app/components/selections/selections.module.d.ts +0 -2
  129. package/app/components/shared/loader/loader.component.d.ts +0 -2
  130. package/app/components/shared/shared.module.d.ts +0 -2
  131. package/app/directives/visibility-observer-master.directive.d.ts +0 -9
  132. package/app/directives/visibility-observer.directive.d.ts +0 -13
  133. package/app/services/configurator.service.d.ts +0 -19
  134. package/app/services/image-cache.service.d.ts +0 -10
  135. package/app/utils/object.utils.d.ts +0 -7
  136. package/bundles/colijnit-configurator.umd.js +0 -3993
  137. package/bundles/colijnit-configurator.umd.js.map +0 -1
  138. package/colijnit-configurator.d.ts +0 -9
  139. package/colijnit-configurator.metadata.json +0 -1
  140. package/esm2015/app/builder.js +0 -710
  141. package/esm2015/app/components/answers/answer/answer.component.js +0 -66
  142. package/esm2015/app/components/answers/answers.component.js +0 -38
  143. package/esm2015/app/components/answers/answers.module.js +0 -27
  144. package/esm2015/app/components/selections/selections.component.js +0 -129
  145. package/esm2015/app/components/selections/selections.module.js +0 -21
  146. package/esm2015/app/components/shared/loader/loader.component.js +0 -22
  147. package/esm2015/app/components/shared/shared.module.js +0 -19
  148. package/esm2015/app/directives/visibility-observer-master.directive.js +0 -50
  149. package/esm2015/app/directives/visibility-observer.directive.js +0 -55
  150. package/esm2015/app/services/configurator.service.js +0 -79
  151. package/esm2015/app/services/image-cache.service.js +0 -63
  152. package/esm2015/app/utils/object.utils.js +0 -51
  153. package/esm2015/colijnit-configurator.js +0 -10
  154. package/esm2015/helper/variation-helper.js +0 -549
  155. package/esm2015/model/material.js +0 -11
  156. package/esm2015/model/variation-settings.js +0 -54
  157. package/esm2015/model/variation.js +0 -3
  158. package/esm2015/public_api.js +0 -7
  159. package/esm2015/utils/asset.utils.js +0 -124
  160. package/esm2015/utils/base-utils.js +0 -9
  161. package/esm2015/utils/file.utils.js +0 -142
  162. package/esm2015/utils/image.utils.js +0 -66
  163. package/esm2015/utils/object.utils.js +0 -49
  164. package/esm2015/utils/scene-utils.js +0 -187
  165. package/esm2015/utils/threed.utils.js +0 -226
  166. package/esm2015/utils/variation-utils.js +0 -388
  167. package/fesm2015/colijnit-configurator.js +0 -2878
  168. package/fesm2015/colijnit-configurator.js.map +0 -1
  169. package/helper/variation-helper.d.ts +0 -25
  170. package/model/material.d.ts +0 -40
  171. package/model/variation-settings.d.ts +0 -54
  172. package/model/variation.d.ts +0 -10
  173. package/public_api.d.ts +0 -6
  174. package/utils/asset.utils.d.ts +0 -19
  175. package/utils/base-utils.d.ts +0 -4
  176. package/utils/file.utils.d.ts +0 -27
  177. package/utils/image.utils.d.ts +0 -10
  178. package/utils/object.utils.d.ts +0 -7
  179. package/utils/scene-utils.d.ts +0 -7
  180. package/utils/threed.utils.d.ts +0 -16
  181. package/utils/variation-utils.d.ts +0 -16
@@ -1,11 +0,0 @@
1
- import { Color } from 'three';
2
- export class Material {
3
- constructor() {
4
- this.specular = new Color(0.3, 0.3, 0.3);
5
- this.shininess = 0;
6
- this.repeatX = 4;
7
- this.repeatY = 4;
8
- this.loaded = false;
9
- }
10
- }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWwvbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLEtBQUssRUFBVSxNQUFNLE9BQU8sQ0FBQztBQUVyQyxNQUFNLE9BQU8sUUFBUTtJQUFyQjtRQUdTLGFBQVEsR0FBVSxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFRZCxZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ1osWUFBTyxHQUFHLENBQUMsQ0FBQztRQUNaLFdBQU0sR0FBRyxLQUFLLENBQUM7SUEyQnhCLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29sb3IsIFRleHR1cmV9IGZyb20gJ3RocmVlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbCB7XHJcbiAgcHVibGljIG5hbWU6IHN0cmluZztcclxuICBwdWJsaWMgc2NoZW1hOiBzdHJpbmc7XHJcbiAgcHVibGljIHNwZWN1bGFyOiBDb2xvciA9IG5ldyBDb2xvcigwLjMsIDAuMywgMC4zKTtcclxuICBwdWJsaWMgc2hpbmluZXNzID0gMDtcclxuICAvLyBwdWJsaWMgcm91Z2huZXNzID0gMTtcclxuICAvLyBwdWJsaWMgbWV0YWxuZXNzID0gMC41O1xyXG4gIHB1YmxpYyBub3JtYWw6IFRleHR1cmU7XHJcbiAgcHVibGljIHRleHR1cmU6IFRleHR1cmU7XHJcbiAgcHVibGljIGFvOiBUZXh0dXJlO1xyXG4gIHB1YmxpYyBtZXRhbG5lc3M6IFRleHR1cmU7XHJcbiAgcHVibGljIHJvdWdobmVzczogVGV4dHVyZTtcclxuICBwdWJsaWMgcmVwZWF0WCA9IDQ7XHJcbiAgcHVibGljIHJlcGVhdFkgPSA0O1xyXG4gIHB1YmxpYyBsb2FkZWQgPSBmYWxzZTtcclxuICBwdWJsaWMgbWV0YWxuZXNzVmFsdWU6IG51bWJlcjtcclxuICBwdWJsaWMgcm91Z2huZXNzVmFsdWU6IG51bWJlcjtcclxuICBwdWJsaWMgZGlzcGxhY2VtZW50OiBUZXh0dXJlO1xyXG4gIHB1YmxpYyBkaXNwbGFjZW1lbnRWYWx1ZTogbnVtYmVyO1xyXG4gIHB1YmxpYyBzaGVlbjogbnVtYmVyO1xyXG4gIHB1YmxpYyBzaGVlbkNvbG9yOiBDb2xvciB8IHN0cmluZyB8IG51bWJlcjtcclxuICBwdWJsaWMgc2hlZW5Db2xvck1hcDogVGV4dHVyZSB8IG51bGw7XHJcbiAgcHVibGljIHNoZWVuUm91Z2huZXNzOiBudW1iZXI7XHJcbiAgcHVibGljIHNoZWVuUm91Z2huZXNzTWFwOiBUZXh0dXJlIHwgbnVsbDtcclxuICBwdWJsaWMgZW1pc3NpdmU6IFRleHR1cmU7XHJcbiAgcHVibGljIGVtaXNzaXZlVmFsdWU6IENvbG9yIHwgc3RyaW5nIHwgbnVtYmVyO1xyXG4gIHB1YmxpYyBlbWlzc2l2ZUludGVuc2l0eVZhbHVlOiBudW1iZXI7XHJcbiAgcHVibGljIGVudk1hcDogVGV4dHVyZTtcclxuICBwdWJsaWMgZW52TWFwSW50ZW5zaXR5OiBudW1iZXI7XHJcbiAgcHVibGljIG9wYWNpdHk6IG51bWJlcjtcclxuICBwdWJsaWMgdHJhbnNwYXJlbnQ6IGJvb2xlYW47XHJcbiAgcHVibGljIHJlZmxlY3Rpdml0eTogbnVtYmVyO1xyXG4gIHB1YmxpYyBzaWRlOiBudW1iZXI7XHJcbiAgcHVibGljIGlvcjogbnVtYmVyO1xyXG4gIHB1YmxpYyB0cmFuc21pc3Npb246IG51bWJlcjtcclxuICBwdWJsaWMgdGhpY2tuZXNzOiBudW1iZXI7XHJcbiAgcHVibGljIHNwZWN1bGFySW50ZW5zaXR5OiBudW1iZXI7XHJcbiAgcHVibGljIHRyYW5zbWlzc2lvbk1hcDogVGV4dHVyZSB8IG51bGw7XHJcblxyXG4gIHB1YmxpYyBjbGVhcmNvYXRNYXA6IFRleHR1cmUgfCBudWxsO1xyXG4gIHB1YmxpYyBjbGVhcmNvYXRSb3VnaG5lc3NNYXA6IFRleHR1cmUgfCBudWxsO1xyXG59XHJcbiJdfQ==
@@ -1,54 +0,0 @@
1
- import { BehaviorSubject } from 'rxjs';
2
- export class VariationSettingsSettings {
3
- }
4
- export class VariationSettings {
5
- constructor() {
6
- this.settings = new VariationSettingsSettings();
7
- this.loading = false;
8
- this.loaded = new BehaviorSubject(undefined);
9
- }
10
- copyFrom(settings) {
11
- this.settings = settings.settings;
12
- this.texture = settings.texture;
13
- this.textureFilename = settings.textureFilename;
14
- this.normal = settings.normal;
15
- this.normalFilename = settings.normalFilename;
16
- this.ao = settings.ao;
17
- this.aoFilename = settings.aoFilename;
18
- this.metalness = settings.metalness;
19
- this.metalnessFilename = settings.metalnessFilename;
20
- this.roughness = settings.roughness;
21
- this.roughnessFilename = settings.roughnessFilename;
22
- this.orm = settings.orm;
23
- this.ormFilename = settings.ormFilename;
24
- this.displacement = settings.displacement;
25
- this.displacementValue = settings.displacementValue;
26
- this.displacementFilename = settings.displacementFilename;
27
- this.sheen = settings.sheen;
28
- this.sheenColor = settings.sheenColor;
29
- this.sheenColorMap = settings.sheenColorMap;
30
- this.sheenColorMapFilename = settings.sheenColorMapFilename;
31
- this.transmissionMap = settings.transmissionMap;
32
- this.transmissionMapFilename = settings.transmissionMapFilename;
33
- this.sheenRoughness = settings.sheenRoughness;
34
- this.sheenRoughnessMap = settings.sheenRoughnessMap;
35
- this.sheenRoughnessMapFilename = settings.sheenRoughnessMapFilename;
36
- this.emissive = settings.emissive;
37
- this.emissiveFilename = settings.emissiveFilename;
38
- this.emissiveIntensity = settings.emissiveIntensity;
39
- this.emissiveValue = settings.emissiveValue;
40
- this.opacity = settings.opacity;
41
- this.transparent = settings.transparent;
42
- this.envMap = settings.envMap;
43
- this.envMapFilename = settings.envMapFilename;
44
- this.envMapIntensity = settings.envMapIntensity;
45
- this.reflectivity = settings.reflectivity;
46
- this.side = settings.side;
47
- this.transmission = settings.transmission;
48
- this.ior = settings.ior;
49
- this.thickness = settings.thickness;
50
- this.specularIntensity = settings.specularIntensity;
51
- this.material = settings.material;
52
- }
53
- }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWF0aW9uLXNldHRpbmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGVsL3ZhcmlhdGlvbi1zZXR0aW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFVLE1BQU0sTUFBTSxDQUFDO0FBRTlDLE1BQU0sT0FBTyx5QkFBeUI7Q0FLckM7QUFFRCxNQUFNLE9BQU8saUJBQWlCO0lBQTlCO1FBRVMsYUFBUSxHQUE4QixJQUFJLHlCQUF5QixFQUFFLENBQUM7UUE0Q3RFLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFDekIsV0FBTSxHQUF1QyxJQUFJLGVBQWUsQ0FBb0IsU0FBUyxDQUFDLENBQUM7SUE4Q3hHLENBQUM7SUE1Q1EsUUFBUSxDQUFDLFFBQTJCO1FBQ3pDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUNsQyxJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDaEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDO1FBQ2hELElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUM5QixJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUM7UUFDOUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQztRQUN0QyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDcEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztRQUNwRCxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDcEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztRQUNwRCxJQUFJLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUMxQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLGlCQUFpQixDQUFDO1FBQ3BELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxRQUFRLENBQUMsb0JBQW9CLENBQUM7UUFDMUQsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQztRQUN0QyxJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUM7UUFDNUMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQztRQUM1RCxJQUFJLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUM7UUFDaEQsSUFBSSxDQUFDLHVCQUF1QixHQUFHLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQztRQUNoRSxJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUM7UUFDOUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztRQUNwRCxJQUFJLENBQUMseUJBQXlCLEdBQUcsUUFBUSxDQUFDLHlCQUF5QixDQUFDO1FBQ3BFLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDO1FBQ2xELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLENBQUMsaUJBQWlCLENBQUM7UUFDcEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDO1FBQzVDLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDeEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQzlCLElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQztRQUM5QyxJQUFJLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUM7UUFDaEQsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQzFDLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUM7UUFDMUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQztRQUNwQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLGlCQUFpQixDQUFDO1FBQ3BELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztJQUNwQyxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgU3ViamVjdH0gZnJvbSAncnhqcyc7XHJcblxyXG5leHBvcnQgY2xhc3MgVmFyaWF0aW9uU2V0dGluZ3NTZXR0aW5ncyB7XHJcbiAgcmVwZWF0eDogbnVtYmVyO1xyXG4gIHJlcGVhdHk6IG51bWJlcjtcclxuICByb3VnaG5lc3M6IG51bWJlcjtcclxuICBtZXRhbG5lc3M6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFZhcmlhdGlvblNldHRpbmdzIHtcclxuICBwdWJsaWMgaWQ6IHN0cmluZztcclxuICBwdWJsaWMgc2V0dGluZ3M6IFZhcmlhdGlvblNldHRpbmdzU2V0dGluZ3MgPSBuZXcgVmFyaWF0aW9uU2V0dGluZ3NTZXR0aW5ncygpO1xyXG4gIHB1YmxpYyB0ZXh0dXJlOiBzdHJpbmc7XHJcbiAgcHVibGljIHRleHR1cmVGaWxlbmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBub3JtYWw6IHN0cmluZztcclxuICBwdWJsaWMgbm9ybWFsRmlsZW5hbWU6IHN0cmluZztcclxuICBwdWJsaWMgYW86IHN0cmluZztcclxuICBwdWJsaWMgYW9GaWxlbmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBtZXRhbG5lc3M6IHN0cmluZztcclxuICBwdWJsaWMgbWV0YWxuZXNzRmlsZW5hbWU6IHN0cmluZztcclxuICBwdWJsaWMgcm91Z2huZXNzOiBzdHJpbmc7XHJcbiAgcHVibGljIHJvdWdobmVzc0ZpbGVuYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIG9ybTogc3RyaW5nO1xyXG4gIHB1YmxpYyBvcm1GaWxlbmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBkaXNwbGFjZW1lbnQ6IHN0cmluZztcclxuICBwdWJsaWMgZGlzcGxhY2VtZW50VmFsdWU6IG51bWJlcjtcclxuICBwdWJsaWMgZGlzcGxhY2VtZW50RmlsZW5hbWU6IHN0cmluZztcclxuICBwdWJsaWMgc2hlZW46IG51bWJlcjtcclxuICBwdWJsaWMgc2hlZW5Db2xvcjogc3RyaW5nO1xyXG4gIHB1YmxpYyBzaGVlbkNvbG9yTWFwOiBzdHJpbmc7XHJcbiAgcHVibGljIHNoZWVuQ29sb3JNYXBGaWxlbmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyB0cmFuc21pc3Npb25NYXA6IHN0cmluZztcclxuICBwdWJsaWMgdHJhbnNtaXNzaW9uTWFwRmlsZW5hbWU6IHN0cmluZztcclxuICBwdWJsaWMgc2hlZW5Sb3VnaG5lc3M6IG51bWJlcjtcclxuICBwdWJsaWMgc2hlZW5Sb3VnaG5lc3NNYXA6IHN0cmluZztcclxuICBwdWJsaWMgc2hlZW5Sb3VnaG5lc3NNYXBGaWxlbmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBlbWlzc2l2ZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBlbWlzc2l2ZUZpbGVuYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIGVtaXNzaXZlSW50ZW5zaXR5OiBudW1iZXI7XHJcbiAgcHVibGljIGVtaXNzaXZlVmFsdWU6IHN0cmluZztcclxuICBwdWJsaWMgb3BhY2l0eTogbnVtYmVyO1xyXG4gIHB1YmxpYyB0cmFuc3BhcmVudDogYm9vbGVhbjtcclxuICBwdWJsaWMgZW52TWFwOiBzdHJpbmc7XHJcbiAgcHVibGljIGVudk1hcEZpbGVuYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIGVudk1hcEludGVuc2l0eTogbnVtYmVyO1xyXG4gIHB1YmxpYyByZWZsZWN0aXZpdHk6IG51bWJlcjtcclxuICBwdWJsaWMgc2lkZTogbnVtYmVyO1xyXG4gIHB1YmxpYyB0cmFuc21pc3Npb246IG51bWJlcjtcclxuICBwdWJsaWMgaW9yOiBudW1iZXI7XHJcbiAgcHVibGljIHRoaWNrbmVzczogbnVtYmVyO1xyXG4gIHB1YmxpYyBzcGVjdWxhckludGVuc2l0eTogbnVtYmVyO1xyXG5cclxuICAvLyBmb3IgcHJlLXNhdmVkIG1hdGVyaWFscyBkb3dubG9hZGVkIGFzIHppcFxyXG4gIHB1YmxpYyBtYXRlcmlhbDogYW55O1xyXG5cclxuICBwdWJsaWMgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBsb2FkZWQ6IEJlaGF2aW9yU3ViamVjdDxWYXJpYXRpb25TZXR0aW5ncz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFZhcmlhdGlvblNldHRpbmdzPih1bmRlZmluZWQpO1xyXG5cclxuICBwdWJsaWMgY29weUZyb20oc2V0dGluZ3M6IFZhcmlhdGlvblNldHRpbmdzKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3Muc2V0dGluZ3M7XHJcbiAgICB0aGlzLnRleHR1cmUgPSBzZXR0aW5ncy50ZXh0dXJlO1xyXG4gICAgdGhpcy50ZXh0dXJlRmlsZW5hbWUgPSBzZXR0aW5ncy50ZXh0dXJlRmlsZW5hbWU7XHJcbiAgICB0aGlzLm5vcm1hbCA9IHNldHRpbmdzLm5vcm1hbDtcclxuICAgIHRoaXMubm9ybWFsRmlsZW5hbWUgPSBzZXR0aW5ncy5ub3JtYWxGaWxlbmFtZTtcclxuICAgIHRoaXMuYW8gPSBzZXR0aW5ncy5hbztcclxuICAgIHRoaXMuYW9GaWxlbmFtZSA9IHNldHRpbmdzLmFvRmlsZW5hbWU7XHJcbiAgICB0aGlzLm1ldGFsbmVzcyA9IHNldHRpbmdzLm1ldGFsbmVzcztcclxuICAgIHRoaXMubWV0YWxuZXNzRmlsZW5hbWUgPSBzZXR0aW5ncy5tZXRhbG5lc3NGaWxlbmFtZTtcclxuICAgIHRoaXMucm91Z2huZXNzID0gc2V0dGluZ3Mucm91Z2huZXNzO1xyXG4gICAgdGhpcy5yb3VnaG5lc3NGaWxlbmFtZSA9IHNldHRpbmdzLnJvdWdobmVzc0ZpbGVuYW1lO1xyXG4gICAgdGhpcy5vcm0gPSBzZXR0aW5ncy5vcm07XHJcbiAgICB0aGlzLm9ybUZpbGVuYW1lID0gc2V0dGluZ3Mub3JtRmlsZW5hbWU7XHJcbiAgICB0aGlzLmRpc3BsYWNlbWVudCA9IHNldHRpbmdzLmRpc3BsYWNlbWVudDtcclxuICAgIHRoaXMuZGlzcGxhY2VtZW50VmFsdWUgPSBzZXR0aW5ncy5kaXNwbGFjZW1lbnRWYWx1ZTtcclxuICAgIHRoaXMuZGlzcGxhY2VtZW50RmlsZW5hbWUgPSBzZXR0aW5ncy5kaXNwbGFjZW1lbnRGaWxlbmFtZTtcclxuICAgIHRoaXMuc2hlZW4gPSBzZXR0aW5ncy5zaGVlbjtcclxuICAgIHRoaXMuc2hlZW5Db2xvciA9IHNldHRpbmdzLnNoZWVuQ29sb3I7XHJcbiAgICB0aGlzLnNoZWVuQ29sb3JNYXAgPSBzZXR0aW5ncy5zaGVlbkNvbG9yTWFwO1xyXG4gICAgdGhpcy5zaGVlbkNvbG9yTWFwRmlsZW5hbWUgPSBzZXR0aW5ncy5zaGVlbkNvbG9yTWFwRmlsZW5hbWU7XHJcbiAgICB0aGlzLnRyYW5zbWlzc2lvbk1hcCA9IHNldHRpbmdzLnRyYW5zbWlzc2lvbk1hcDtcclxuICAgIHRoaXMudHJhbnNtaXNzaW9uTWFwRmlsZW5hbWUgPSBzZXR0aW5ncy50cmFuc21pc3Npb25NYXBGaWxlbmFtZTtcclxuICAgIHRoaXMuc2hlZW5Sb3VnaG5lc3MgPSBzZXR0aW5ncy5zaGVlblJvdWdobmVzcztcclxuICAgIHRoaXMuc2hlZW5Sb3VnaG5lc3NNYXAgPSBzZXR0aW5ncy5zaGVlblJvdWdobmVzc01hcDtcclxuICAgIHRoaXMuc2hlZW5Sb3VnaG5lc3NNYXBGaWxlbmFtZSA9IHNldHRpbmdzLnNoZWVuUm91Z2huZXNzTWFwRmlsZW5hbWU7XHJcbiAgICB0aGlzLmVtaXNzaXZlID0gc2V0dGluZ3MuZW1pc3NpdmU7XHJcbiAgICB0aGlzLmVtaXNzaXZlRmlsZW5hbWUgPSBzZXR0aW5ncy5lbWlzc2l2ZUZpbGVuYW1lO1xyXG4gICAgdGhpcy5lbWlzc2l2ZUludGVuc2l0eSA9IHNldHRpbmdzLmVtaXNzaXZlSW50ZW5zaXR5O1xyXG4gICAgdGhpcy5lbWlzc2l2ZVZhbHVlID0gc2V0dGluZ3MuZW1pc3NpdmVWYWx1ZTtcclxuICAgIHRoaXMub3BhY2l0eSA9IHNldHRpbmdzLm9wYWNpdHk7XHJcbiAgICB0aGlzLnRyYW5zcGFyZW50ID0gc2V0dGluZ3MudHJhbnNwYXJlbnQ7XHJcbiAgICB0aGlzLmVudk1hcCA9IHNldHRpbmdzLmVudk1hcDtcclxuICAgIHRoaXMuZW52TWFwRmlsZW5hbWUgPSBzZXR0aW5ncy5lbnZNYXBGaWxlbmFtZTtcclxuICAgIHRoaXMuZW52TWFwSW50ZW5zaXR5ID0gc2V0dGluZ3MuZW52TWFwSW50ZW5zaXR5O1xyXG4gICAgdGhpcy5yZWZsZWN0aXZpdHkgPSBzZXR0aW5ncy5yZWZsZWN0aXZpdHk7XHJcbiAgICB0aGlzLnNpZGUgPSBzZXR0aW5ncy5zaWRlO1xyXG4gICAgdGhpcy50cmFuc21pc3Npb24gPSBzZXR0aW5ncy50cmFuc21pc3Npb247XHJcbiAgICB0aGlzLmlvciA9IHNldHRpbmdzLmlvcjtcclxuICAgIHRoaXMudGhpY2tuZXNzID0gc2V0dGluZ3MudGhpY2tuZXNzO1xyXG4gICAgdGhpcy5zcGVjdWxhckludGVuc2l0eSA9IHNldHRpbmdzLnNwZWN1bGFySW50ZW5zaXR5O1xyXG4gICAgdGhpcy5tYXRlcmlhbCA9IHNldHRpbmdzLm1hdGVyaWFsO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -1,3 +0,0 @@
1
- export class Variation {
2
- }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGVsL3ZhcmlhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sU0FBUztDQVNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TWF0ZXJpYWx9IGZyb20gJy4vbWF0ZXJpYWwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFZhcmlhdGlvbiB7XHJcbiAgcHVibGljIGRlY29JZDogbnVtYmVyO1xyXG4gIHB1YmxpYyBicmFuZElkOiBzdHJpbmc7XHJcbiAgcHVibGljIGdhbWVPYmplY3ROYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIG5vZGU6IGFueTtcclxuICBwdWJsaWMgb3B0aW9uVGV4dDogc3RyaW5nO1xyXG4gIHB1YmxpYyBzdXBwbGllckFydGljbGVOcjogc3RyaW5nO1xyXG4gIHB1YmxpYyBtYXRlcmlhbElkOiBzdHJpbmc7XHJcbiAgcHVibGljIG1hdGVyaWFsOiBhbnk7XHJcbn1cclxuIl19
@@ -1,7 +0,0 @@
1
- export * from './app/builder';
2
- export * from './app/services/configurator.service';
3
- export * from './app/components/answers/answers.module';
4
- export * from './app/components/answers/answers.component';
5
- export * from './app/components/selections/selections.module';
6
- export * from './app/components/selections/selections.component';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxrREFBa0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXBwL2J1aWxkZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2FwcC9zZXJ2aWNlcy9jb25maWd1cmF0b3Iuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYXBwL2NvbXBvbmVudHMvYW5zd2Vycy9hbnN3ZXJzLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYXBwL2NvbXBvbmVudHMvYW5zd2Vycy9hbnN3ZXJzLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYXBwL2NvbXBvbmVudHMvc2VsZWN0aW9ucy9zZWxlY3Rpb25zLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYXBwL2NvbXBvbmVudHMvc2VsZWN0aW9ucy9zZWxlY3Rpb25zLmNvbXBvbmVudCc7XHJcbiJdfQ==
@@ -1,124 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Material } from '../model/material';
3
- import { ImageUtils } from './image.utils';
4
- import { Color, SRGBColorSpace } from 'three';
5
- export class FurnitureMaterial extends Material {
6
- }
7
- export class AssetUtils {
8
- static CreateMaterialFromAsset(asset) {
9
- return __awaiter(this, void 0, void 0, function* () {
10
- const material = new Material();
11
- try {
12
- if (!asset) {
13
- return material;
14
- }
15
- if (asset.settings) {
16
- AssetUtils.setSettingsOfMaterial(material, asset.settings);
17
- }
18
- if (asset.texture) {
19
- material.texture = yield ImageUtils.CreateTextureFromBase64(asset.id + '_texture', asset.texture, material);
20
- material.texture.colorSpace = SRGBColorSpace;
21
- material.textureFilename = asset.textureFilename;
22
- }
23
- if (asset.normal) {
24
- material.normal = yield ImageUtils.CreateTextureFromBase64(asset.id + '_normal', asset.normal, material);
25
- material.normalFilename = asset.normalFilename;
26
- }
27
- if (asset.orm) {
28
- material.ao = yield ImageUtils.CreateTextureFromBase64(asset.id + '_orm', asset.orm, material);
29
- material.roughness = material.ao;
30
- material.metalness = material.ao;
31
- material.aoFilename = asset.ormFilename;
32
- material.roughnessFilename = asset.ormFilename;
33
- material.metalnessFilename = asset.ormFilename;
34
- }
35
- else {
36
- if (asset.ao) {
37
- material.ao = yield ImageUtils.CreateTextureFromBase64(asset.id + '_ao', asset.ao, material);
38
- material.aoFilename = asset.aoFilename;
39
- }
40
- if (asset.metalness) {
41
- material.metalness = yield ImageUtils.CreateTextureFromBase64(asset.id + '_metalness', asset.metalness, material);
42
- material.metalnessFilename = asset.metalnessFilename;
43
- }
44
- if (asset.roughness) {
45
- material.roughness = yield ImageUtils.CreateTextureFromBase64(asset.id + '_roughness', asset.roughness, material);
46
- material.roughnessFilename = asset.roughnessFilename;
47
- }
48
- }
49
- if (asset.displacement) {
50
- material.displacement = yield ImageUtils.CreateTextureFromBase64(asset.id + '_displacement', asset.displacement, material);
51
- material.displacementFilename = asset.displacementFilename;
52
- }
53
- if (asset.envMap) {
54
- material.envMap = yield ImageUtils.CreateTextureFromBase64(asset.id + '_env', asset.envMap, material, true);
55
- material.envMapFilename = asset.envMapFilename;
56
- }
57
- if (asset.sheenColorMap) {
58
- material.sheenColorMap = yield ImageUtils.CreateTextureFromBase64(asset.id + '_sheen_color', asset.sheenColorMap, material);
59
- material.sheenColorMapFileName = asset.sheenColorMapFilename;
60
- }
61
- if (asset.sheenRoughnessMap) {
62
- material.sheenRoughnessMap = yield ImageUtils.CreateTextureFromBase64(asset.id + '_sheen_roughness', asset.sheenRoughnessMap, material);
63
- material.sheenRoughnessMapFileName = asset.sheenRoughnessMapFilename;
64
- }
65
- if (asset.transmissionMap) {
66
- material.transmissionMap = yield ImageUtils.CreateTextureFromBase64(asset.id + '_transmission', asset.transmissionMap, material);
67
- material.transmissionMapFileName = asset.transmissionMapFilename;
68
- }
69
- if (asset.emissive) {
70
- material.emissive = yield ImageUtils.CreateTextureFromBase64(asset.id + '_emissive', asset.emissive, material);
71
- material.emissiveFileName = asset.emissiveFilename;
72
- }
73
- material.sheen = asset.sheen;
74
- material.emissiveIntensityValue = asset.emissiveIntensity;
75
- material.emissiveValue = asset.emissiveValue;
76
- material.side = asset.side;
77
- material.sheenColor = asset.sheenColor;
78
- material.sheenRoughness = asset.sheenRoughness;
79
- material.opacity = asset.opacity;
80
- material.transparent = asset.transparent;
81
- material.envMapIntensity = asset.envMapIntensity;
82
- material.reflectivity = asset.reflectivity;
83
- material.displacementValue = asset.displacementValue;
84
- material.transmission = asset.transmission;
85
- material.ior = asset.ior;
86
- material.thickness = asset.thickness;
87
- material.specularIntensity = asset.specularIntensity;
88
- }
89
- catch (e) {
90
- console.error(e);
91
- }
92
- return material;
93
- });
94
- }
95
- static setSettingsOfMaterial(material, settings) {
96
- const shininess = parseFloat(settings['power']);
97
- if (!isNaN(shininess)) {
98
- material.shininess = shininess;
99
- // material.roughness = 1 - (shininess / 100);
100
- }
101
- const level = parseFloat(settings['level']);
102
- if (!isNaN(level)) {
103
- material.specular = new Color(level, level, level);
104
- }
105
- const repeatObjectUsed = settings.hasOwnProperty('repeat');
106
- const repeatx = repeatObjectUsed ? parseFloat(settings['repeat']['repeatx']) : parseFloat(settings['repeatx']);
107
- if (!isNaN(repeatx)) {
108
- material.repeatX = repeatx;
109
- }
110
- const repeaty = repeatObjectUsed ? parseFloat(settings['repeat']['repeaty']) : parseFloat(settings['repeaty']);
111
- if (!isNaN(repeaty)) {
112
- material.repeatY = repeaty;
113
- }
114
- const metalness = parseFloat(settings['metalness']);
115
- if (!isNaN(metalness)) {
116
- material.metalnessValue = Math.min(1, metalness);
117
- }
118
- const roughness = parseFloat(settings['roughness']);
119
- if (!isNaN(roughness)) {
120
- material.roughnessValue = Math.min(1, roughness);
121
- }
122
- }
123
- }
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvYXNzZXQudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBQyxLQUFLLEVBQUUsY0FBYyxFQUFDLE1BQU0sT0FBTyxDQUFDO0FBRTVDLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxRQUFRO0NBYzlDO0FBRUQsTUFBTSxPQUFPLFVBQVU7SUFFZCxNQUFNLENBQU8sdUJBQXVCLENBQUMsS0FBd0I7O1lBQ2xFLE1BQU0sUUFBUSxHQUFzQixJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ25ELElBQUk7Z0JBQ0YsSUFBSSxDQUFDLEtBQUssRUFBRTtvQkFDVixPQUFPLFFBQVEsQ0FBQztpQkFDakI7Z0JBQ0QsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFO29CQUNsQixVQUFVLENBQUMscUJBQXFCLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDNUQ7Z0JBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO29CQUNqQixRQUFRLENBQUMsT0FBTyxHQUFHLE1BQU0sVUFBVSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsVUFBVSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7b0JBQzVHLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLGNBQWMsQ0FBQztvQkFDN0MsUUFBUSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDO2lCQUNsRDtnQkFDRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7b0JBQ2hCLFFBQVEsQ0FBQyxNQUFNLEdBQUcsTUFBTSxVQUFVLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztvQkFDekcsUUFBUSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO2lCQUNoRDtnQkFDRCxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUU7b0JBQ2IsUUFBUSxDQUFDLEVBQUUsR0FBRyxNQUFNLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO29CQUMvRixRQUFRLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUM7b0JBQ2pDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQztvQkFDakMsUUFBUSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO29CQUN4QyxRQUFRLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztvQkFDL0MsUUFBUSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7aUJBQ2hEO3FCQUFNO29CQUNMLElBQUksS0FBSyxDQUFDLEVBQUUsRUFBRTt3QkFDWixRQUFRLENBQUMsRUFBRSxHQUFHLE1BQU0sVUFBVSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7d0JBQzdGLFFBQVEsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztxQkFDeEM7b0JBQ0QsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFO3dCQUNuQixRQUFRLENBQUMsU0FBUyxHQUFHLE1BQU0sVUFBVSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsWUFBWSxFQUFFLEtBQUssQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7d0JBQ2xILFFBQVEsQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUM7cUJBQ3REO29CQUNELElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRTt3QkFDbkIsUUFBUSxDQUFDLFNBQVMsR0FBRyxNQUFNLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLFlBQVksRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO3dCQUNsSCxRQUFRLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixDQUFDO3FCQUN0RDtpQkFDRjtnQkFDRCxJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUU7b0JBQ3RCLFFBQVEsQ0FBQyxZQUFZLEdBQUcsTUFBTSxVQUFVLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxlQUFlLEVBQUUsS0FBSyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztvQkFDM0gsUUFBUSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQztpQkFDNUQ7Z0JBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFO29CQUNoQixRQUFRLENBQUMsTUFBTSxHQUFHLE1BQU0sVUFBVSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUM1RyxRQUFRLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7aUJBQ2hEO2dCQUNELElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRTtvQkFDdkIsUUFBUSxDQUFDLGFBQWEsR0FBRyxNQUFNLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLGNBQWMsRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO29CQUM1SCxRQUFRLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDLHFCQUFxQixDQUFDO2lCQUM5RDtnQkFDRCxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsRUFBRTtvQkFDM0IsUUFBUSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sVUFBVSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxDQUFDO29CQUN4SSxRQUFRLENBQUMseUJBQXlCLEdBQUcsS0FBSyxDQUFDLHlCQUF5QixDQUFDO2lCQUN0RTtnQkFDRCxJQUFJLEtBQUssQ0FBQyxlQUFlLEVBQUU7b0JBQ3pCLFFBQVEsQ0FBQyxlQUFlLEdBQUcsTUFBTSxVQUFVLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWUsRUFBRSxRQUFRLENBQUMsQ0FBQztvQkFDakksUUFBUSxDQUFDLHVCQUF1QixHQUFHLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQztpQkFDbEU7Z0JBQ0QsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFO29CQUNsQixRQUFRLENBQUMsUUFBUSxHQUFHLE1BQU0sVUFBVSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsV0FBVyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7b0JBQy9HLFFBQVEsQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7aUJBQ3BEO2dCQUNELFFBQVEsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDN0IsUUFBUSxDQUFDLHNCQUFzQixHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztnQkFDMUQsUUFBUSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO2dCQUM3QyxRQUFRLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQzNCLFFBQVEsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztnQkFDdkMsUUFBUSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO2dCQUMvQyxRQUFRLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7Z0JBQ2pDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztnQkFDekMsUUFBUSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDO2dCQUNqRCxRQUFRLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUM7Z0JBQzNDLFFBQVEsQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUM7Z0JBQ3JELFFBQVEsQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztnQkFDM0MsUUFBUSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUN6QixRQUFRLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7Z0JBQ3JDLFFBQVEsQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUM7YUFDdEQ7WUFBQyxPQUFPLENBQUMsRUFBRTtnQkFDVixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2xCO1lBQ0QsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztLQUFBO0lBRU0sTUFBTSxDQUFDLHFCQUFxQixDQUFDLFFBQWtCLEVBQUUsUUFBYTtRQUNuRSxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNyQixRQUFRLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztZQUMvQiw4Q0FBOEM7U0FDL0M7UUFFRCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqQixRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDcEQ7UUFFRCxNQUFNLGdCQUFnQixHQUFZLFFBQVEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEUsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQy9HLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDbkIsUUFBUSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7U0FDNUI7UUFFRCxNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDL0csSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuQixRQUFRLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztTQUM1QjtRQUVELE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3JCLFFBQVEsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDbEQ7UUFFRCxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNyQixRQUFRLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQ2xEO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNYXRlcmlhbH0gZnJvbSAnLi4vbW9kZWwvbWF0ZXJpYWwnO1xyXG5pbXBvcnQge0ltYWdlVXRpbHN9IGZyb20gJy4vaW1hZ2UudXRpbHMnO1xyXG5pbXBvcnQge1ZhcmlhdGlvblNldHRpbmdzfSBmcm9tICcuLi9tb2RlbC92YXJpYXRpb24tc2V0dGluZ3MnO1xyXG5pbXBvcnQge0NvbG9yLCBTUkdCQ29sb3JTcGFjZX0gZnJvbSAndGhyZWUnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEZ1cm5pdHVyZU1hdGVyaWFsIGV4dGVuZHMgTWF0ZXJpYWwge1xyXG5cclxuICBwdWJsaWMgdGV4dHVyZUZpbGVuYW1lPzogc3RyaW5nO1xyXG4gIHB1YmxpYyBub3JtYWxGaWxlbmFtZT86IHN0cmluZztcclxuICBwdWJsaWMgYW9GaWxlbmFtZT86IHN0cmluZztcclxuICBwdWJsaWMgbWV0YWxuZXNzRmlsZW5hbWU/OiBzdHJpbmc7XHJcbiAgcHVibGljIHJvdWdobmVzc0ZpbGVuYW1lPzogc3RyaW5nO1xyXG4gIHB1YmxpYyBkaXNwbGFjZW1lbnRGaWxlbmFtZT86IHN0cmluZztcclxuICBwdWJsaWMgZW52TWFwRmlsZW5hbWU/OiBzdHJpbmc7XHJcbiAgcHVibGljIGVtaXNzaXZlRmlsZU5hbWU/OiBzdHJpbmc7XHJcbiAgcHVibGljIHNoZWVuQ29sb3JNYXBGaWxlTmFtZT86IHN0cmluZztcclxuICBwdWJsaWMgc2hlZW5Sb3VnaG5lc3NNYXBGaWxlTmFtZT86IHN0cmluZztcclxuICBwdWJsaWMgdHJhbnNtaXNzaW9uTWFwRmlsZU5hbWU/OiBzdHJpbmc7XHJcblxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQXNzZXRVdGlscyB7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgQ3JlYXRlTWF0ZXJpYWxGcm9tQXNzZXQoYXNzZXQ6IFZhcmlhdGlvblNldHRpbmdzKTogUHJvbWlzZTxNYXRlcmlhbD4ge1xyXG4gICAgY29uc3QgbWF0ZXJpYWw6IEZ1cm5pdHVyZU1hdGVyaWFsID0gbmV3IE1hdGVyaWFsKCk7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAoIWFzc2V0KSB7XHJcbiAgICAgICAgcmV0dXJuIG1hdGVyaWFsO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChhc3NldC5zZXR0aW5ncykge1xyXG4gICAgICAgIEFzc2V0VXRpbHMuc2V0U2V0dGluZ3NPZk1hdGVyaWFsKG1hdGVyaWFsLCBhc3NldC5zZXR0aW5ncyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGFzc2V0LnRleHR1cmUpIHtcclxuICAgICAgICBtYXRlcmlhbC50ZXh0dXJlID0gYXdhaXQgSW1hZ2VVdGlscy5DcmVhdGVUZXh0dXJlRnJvbUJhc2U2NChhc3NldC5pZCArICdfdGV4dHVyZScsIGFzc2V0LnRleHR1cmUsIG1hdGVyaWFsKTtcclxuICAgICAgICBtYXRlcmlhbC50ZXh0dXJlLmNvbG9yU3BhY2UgPSBTUkdCQ29sb3JTcGFjZTtcclxuICAgICAgICBtYXRlcmlhbC50ZXh0dXJlRmlsZW5hbWUgPSBhc3NldC50ZXh0dXJlRmlsZW5hbWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGFzc2V0Lm5vcm1hbCkge1xyXG4gICAgICAgIG1hdGVyaWFsLm5vcm1hbCA9IGF3YWl0IEltYWdlVXRpbHMuQ3JlYXRlVGV4dHVyZUZyb21CYXNlNjQoYXNzZXQuaWQgKyAnX25vcm1hbCcsIGFzc2V0Lm5vcm1hbCwgbWF0ZXJpYWwpO1xyXG4gICAgICAgIG1hdGVyaWFsLm5vcm1hbEZpbGVuYW1lID0gYXNzZXQubm9ybWFsRmlsZW5hbWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGFzc2V0Lm9ybSkge1xyXG4gICAgICAgIG1hdGVyaWFsLmFvID0gYXdhaXQgSW1hZ2VVdGlscy5DcmVhdGVUZXh0dXJlRnJvbUJhc2U2NChhc3NldC5pZCArICdfb3JtJywgYXNzZXQub3JtLCBtYXRlcmlhbCk7XHJcbiAgICAgICAgbWF0ZXJpYWwucm91Z2huZXNzID0gbWF0ZXJpYWwuYW87XHJcbiAgICAgICAgbWF0ZXJpYWwubWV0YWxuZXNzID0gbWF0ZXJpYWwuYW87XHJcbiAgICAgICAgbWF0ZXJpYWwuYW9GaWxlbmFtZSA9IGFzc2V0Lm9ybUZpbGVuYW1lO1xyXG4gICAgICAgIG1hdGVyaWFsLnJvdWdobmVzc0ZpbGVuYW1lID0gYXNzZXQub3JtRmlsZW5hbWU7XHJcbiAgICAgICAgbWF0ZXJpYWwubWV0YWxuZXNzRmlsZW5hbWUgPSBhc3NldC5vcm1GaWxlbmFtZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoYXNzZXQuYW8pIHtcclxuICAgICAgICAgIG1hdGVyaWFsLmFvID0gYXdhaXQgSW1hZ2VVdGlscy5DcmVhdGVUZXh0dXJlRnJvbUJhc2U2NChhc3NldC5pZCArICdfYW8nLCBhc3NldC5hbywgbWF0ZXJpYWwpO1xyXG4gICAgICAgICAgbWF0ZXJpYWwuYW9GaWxlbmFtZSA9IGFzc2V0LmFvRmlsZW5hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChhc3NldC5tZXRhbG5lc3MpIHtcclxuICAgICAgICAgIG1hdGVyaWFsLm1ldGFsbmVzcyA9IGF3YWl0IEltYWdlVXRpbHMuQ3JlYXRlVGV4dHVyZUZyb21CYXNlNjQoYXNzZXQuaWQgKyAnX21ldGFsbmVzcycsIGFzc2V0Lm1ldGFsbmVzcywgbWF0ZXJpYWwpO1xyXG4gICAgICAgICAgbWF0ZXJpYWwubWV0YWxuZXNzRmlsZW5hbWUgPSBhc3NldC5tZXRhbG5lc3NGaWxlbmFtZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGFzc2V0LnJvdWdobmVzcykge1xyXG4gICAgICAgICAgbWF0ZXJpYWwucm91Z2huZXNzID0gYXdhaXQgSW1hZ2VVdGlscy5DcmVhdGVUZXh0dXJlRnJvbUJhc2U2NChhc3NldC5pZCArICdfcm91Z2huZXNzJywgYXNzZXQucm91Z2huZXNzLCBtYXRlcmlhbCk7XHJcbiAgICAgICAgICBtYXRlcmlhbC5yb3VnaG5lc3NGaWxlbmFtZSA9IGFzc2V0LnJvdWdobmVzc0ZpbGVuYW1lO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoYXNzZXQuZGlzcGxhY2VtZW50KSB7XHJcbiAgICAgICAgbWF0ZXJpYWwuZGlzcGxhY2VtZW50ID0gYXdhaXQgSW1hZ2VVdGlscy5DcmVhdGVUZXh0dXJlRnJvbUJhc2U2NChhc3NldC5pZCArICdfZGlzcGxhY2VtZW50JywgYXNzZXQuZGlzcGxhY2VtZW50LCBtYXRlcmlhbCk7XHJcbiAgICAgICAgbWF0ZXJpYWwuZGlzcGxhY2VtZW50RmlsZW5hbWUgPSBhc3NldC5kaXNwbGFjZW1lbnRGaWxlbmFtZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoYXNzZXQuZW52TWFwKSB7XHJcbiAgICAgICAgbWF0ZXJpYWwuZW52TWFwID0gYXdhaXQgSW1hZ2VVdGlscy5DcmVhdGVUZXh0dXJlRnJvbUJhc2U2NChhc3NldC5pZCArICdfZW52JywgYXNzZXQuZW52TWFwLCBtYXRlcmlhbCwgdHJ1ZSk7XHJcbiAgICAgICAgbWF0ZXJpYWwuZW52TWFwRmlsZW5hbWUgPSBhc3NldC5lbnZNYXBGaWxlbmFtZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoYXNzZXQuc2hlZW5Db2xvck1hcCkge1xyXG4gICAgICAgIG1hdGVyaWFsLnNoZWVuQ29sb3JNYXAgPSBhd2FpdCBJbWFnZVV0aWxzLkNyZWF0ZVRleHR1cmVGcm9tQmFzZTY0KGFzc2V0LmlkICsgJ19zaGVlbl9jb2xvcicsIGFzc2V0LnNoZWVuQ29sb3JNYXAsIG1hdGVyaWFsKTtcclxuICAgICAgICBtYXRlcmlhbC5zaGVlbkNvbG9yTWFwRmlsZU5hbWUgPSBhc3NldC5zaGVlbkNvbG9yTWFwRmlsZW5hbWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGFzc2V0LnNoZWVuUm91Z2huZXNzTWFwKSB7XHJcbiAgICAgICAgbWF0ZXJpYWwuc2hlZW5Sb3VnaG5lc3NNYXAgPSBhd2FpdCBJbWFnZVV0aWxzLkNyZWF0ZVRleHR1cmVGcm9tQmFzZTY0KGFzc2V0LmlkICsgJ19zaGVlbl9yb3VnaG5lc3MnLCBhc3NldC5zaGVlblJvdWdobmVzc01hcCwgbWF0ZXJpYWwpO1xyXG4gICAgICAgIG1hdGVyaWFsLnNoZWVuUm91Z2huZXNzTWFwRmlsZU5hbWUgPSBhc3NldC5zaGVlblJvdWdobmVzc01hcEZpbGVuYW1lO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChhc3NldC50cmFuc21pc3Npb25NYXApIHtcclxuICAgICAgICBtYXRlcmlhbC50cmFuc21pc3Npb25NYXAgPSBhd2FpdCBJbWFnZVV0aWxzLkNyZWF0ZVRleHR1cmVGcm9tQmFzZTY0KGFzc2V0LmlkICsgJ190cmFuc21pc3Npb24nLCBhc3NldC50cmFuc21pc3Npb25NYXAsIG1hdGVyaWFsKTtcclxuICAgICAgICBtYXRlcmlhbC50cmFuc21pc3Npb25NYXBGaWxlTmFtZSA9IGFzc2V0LnRyYW5zbWlzc2lvbk1hcEZpbGVuYW1lO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChhc3NldC5lbWlzc2l2ZSkge1xyXG4gICAgICAgIG1hdGVyaWFsLmVtaXNzaXZlID0gYXdhaXQgSW1hZ2VVdGlscy5DcmVhdGVUZXh0dXJlRnJvbUJhc2U2NChhc3NldC5pZCArICdfZW1pc3NpdmUnLCBhc3NldC5lbWlzc2l2ZSwgbWF0ZXJpYWwpO1xyXG4gICAgICAgIG1hdGVyaWFsLmVtaXNzaXZlRmlsZU5hbWUgPSBhc3NldC5lbWlzc2l2ZUZpbGVuYW1lO1xyXG4gICAgICB9XHJcbiAgICAgIG1hdGVyaWFsLnNoZWVuID0gYXNzZXQuc2hlZW47XHJcbiAgICAgIG1hdGVyaWFsLmVtaXNzaXZlSW50ZW5zaXR5VmFsdWUgPSBhc3NldC5lbWlzc2l2ZUludGVuc2l0eTtcclxuICAgICAgbWF0ZXJpYWwuZW1pc3NpdmVWYWx1ZSA9IGFzc2V0LmVtaXNzaXZlVmFsdWU7XHJcbiAgICAgIG1hdGVyaWFsLnNpZGUgPSBhc3NldC5zaWRlO1xyXG4gICAgICBtYXRlcmlhbC5zaGVlbkNvbG9yID0gYXNzZXQuc2hlZW5Db2xvcjtcclxuICAgICAgbWF0ZXJpYWwuc2hlZW5Sb3VnaG5lc3MgPSBhc3NldC5zaGVlblJvdWdobmVzcztcclxuICAgICAgbWF0ZXJpYWwub3BhY2l0eSA9IGFzc2V0Lm9wYWNpdHk7XHJcbiAgICAgIG1hdGVyaWFsLnRyYW5zcGFyZW50ID0gYXNzZXQudHJhbnNwYXJlbnQ7XHJcbiAgICAgIG1hdGVyaWFsLmVudk1hcEludGVuc2l0eSA9IGFzc2V0LmVudk1hcEludGVuc2l0eTtcclxuICAgICAgbWF0ZXJpYWwucmVmbGVjdGl2aXR5ID0gYXNzZXQucmVmbGVjdGl2aXR5O1xyXG4gICAgICBtYXRlcmlhbC5kaXNwbGFjZW1lbnRWYWx1ZSA9IGFzc2V0LmRpc3BsYWNlbWVudFZhbHVlO1xyXG4gICAgICBtYXRlcmlhbC50cmFuc21pc3Npb24gPSBhc3NldC50cmFuc21pc3Npb247XHJcbiAgICAgIG1hdGVyaWFsLmlvciA9IGFzc2V0LmlvcjtcclxuICAgICAgbWF0ZXJpYWwudGhpY2tuZXNzID0gYXNzZXQudGhpY2tuZXNzO1xyXG4gICAgICBtYXRlcmlhbC5zcGVjdWxhckludGVuc2l0eSA9IGFzc2V0LnNwZWN1bGFySW50ZW5zaXR5O1xyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKGUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1hdGVyaWFsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBzZXRTZXR0aW5nc09mTWF0ZXJpYWwobWF0ZXJpYWw6IE1hdGVyaWFsLCBzZXR0aW5nczogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCBzaGluaW5lc3MgPSBwYXJzZUZsb2F0KHNldHRpbmdzWydwb3dlciddKTtcclxuICAgIGlmICghaXNOYU4oc2hpbmluZXNzKSkge1xyXG4gICAgICBtYXRlcmlhbC5zaGluaW5lc3MgPSBzaGluaW5lc3M7XHJcbiAgICAgIC8vIG1hdGVyaWFsLnJvdWdobmVzcyA9IDEgLSAoc2hpbmluZXNzIC8gMTAwKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBsZXZlbCA9IHBhcnNlRmxvYXQoc2V0dGluZ3NbJ2xldmVsJ10pO1xyXG4gICAgaWYgKCFpc05hTihsZXZlbCkpIHtcclxuICAgICAgbWF0ZXJpYWwuc3BlY3VsYXIgPSBuZXcgQ29sb3IobGV2ZWwsIGxldmVsLCBsZXZlbCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcmVwZWF0T2JqZWN0VXNlZDogYm9vbGVhbiA9IHNldHRpbmdzLmhhc093blByb3BlcnR5KCdyZXBlYXQnKTtcclxuICAgIGNvbnN0IHJlcGVhdHggPSByZXBlYXRPYmplY3RVc2VkID8gcGFyc2VGbG9hdChzZXR0aW5nc1sncmVwZWF0J11bJ3JlcGVhdHgnXSkgOiBwYXJzZUZsb2F0KHNldHRpbmdzWydyZXBlYXR4J10pO1xyXG4gICAgaWYgKCFpc05hTihyZXBlYXR4KSkge1xyXG4gICAgICBtYXRlcmlhbC5yZXBlYXRYID0gcmVwZWF0eDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByZXBlYXR5ID0gcmVwZWF0T2JqZWN0VXNlZCA/IHBhcnNlRmxvYXQoc2V0dGluZ3NbJ3JlcGVhdCddWydyZXBlYXR5J10pIDogcGFyc2VGbG9hdChzZXR0aW5nc1sncmVwZWF0eSddKTtcclxuICAgIGlmICghaXNOYU4ocmVwZWF0eSkpIHtcclxuICAgICAgbWF0ZXJpYWwucmVwZWF0WSA9IHJlcGVhdHk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbWV0YWxuZXNzID0gcGFyc2VGbG9hdChzZXR0aW5nc1snbWV0YWxuZXNzJ10pO1xyXG4gICAgaWYgKCFpc05hTihtZXRhbG5lc3MpKSB7XHJcbiAgICAgIG1hdGVyaWFsLm1ldGFsbmVzc1ZhbHVlID0gTWF0aC5taW4oMSwgbWV0YWxuZXNzKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByb3VnaG5lc3MgPSBwYXJzZUZsb2F0KHNldHRpbmdzWydyb3VnaG5lc3MnXSk7XHJcbiAgICBpZiAoIWlzTmFOKHJvdWdobmVzcykpIHtcclxuICAgICAgbWF0ZXJpYWwucm91Z2huZXNzVmFsdWUgPSBNYXRoLm1pbigxLCByb3VnaG5lc3MpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,9 +0,0 @@
1
- export class BaseUtils {
2
- log(message) {
3
- if (this.debug) {
4
- this.debug(message);
5
- console.log(new Date(), message);
6
- }
7
- }
8
- }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9iYXNlLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxTQUFTO0lBR1YsR0FBRyxDQUFDLE9BQWU7UUFDM0IsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDbEM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQmFzZVV0aWxzIHtcclxuICBwdWJsaWMgZGVidWc6IEZ1bmN0aW9uO1xyXG5cclxuICBwcm90ZWN0ZWQgbG9nKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGVidWcpIHtcclxuICAgICAgdGhpcy5kZWJ1ZyhtZXNzYWdlKTtcclxuICAgICAgY29uc29sZS5sb2cobmV3IERhdGUoKSwgbWVzc2FnZSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,142 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import axios from "axios";
3
- // Static utility functions holder related to files.
4
- // @dynamic
5
- export class FileUtils {
6
- // Returns the given dataUri string stripped of the mimetype part.
7
- static StripMimeStringFromDataUri(dataUri) {
8
- if (!dataUri) {
9
- return '';
10
- }
11
- const mimeString = this.GetMimeStringFromDataUri(dataUri);
12
- return dataUri.substr(mimeString.length + 1);
13
- }
14
- static GetMimeStringFromDataUri(dataUri) {
15
- if (!dataUri) {
16
- return '';
17
- }
18
- return dataUri.split(',')[0];
19
- }
20
- static FileExists(url, assetPath) {
21
- return __awaiter(this, void 0, void 0, function* () {
22
- if (!assetPath.endsWith('/')) {
23
- assetPath = assetPath + '/';
24
- }
25
- const result = yield axios({
26
- method: 'get',
27
- url: `${assetPath}getFiles.php?assetUrl=${url}`,
28
- responseType: "json"
29
- });
30
- return !!result.data;
31
- });
32
- }
33
- /**
34
- * There is some discrepancy regarding locations of h3d objects
35
- * Therefor we need to (temporarily?!) fix the content url
36
- * Also we need to change some additionals
37
- */
38
- static FixUrl(assetUrl) {
39
- if (!assetUrl) {
40
- return '';
41
- }
42
- let fixedUrl = assetUrl;
43
- if (!fixedUrl.endsWith('glb') && !fixedUrl.endsWith('obj') && !fixedUrl.endsWith('glb.gz') && !fixedUrl.endsWith('obj.gz')) {
44
- fixedUrl = FileUtils.FixUnityUrl(fixedUrl);
45
- }
46
- fixedUrl = fixedUrl.replace('/content/', '/content43/');
47
- return fixedUrl;
48
- }
49
- static FixGlbUrl(assetUrl) {
50
- if (!assetUrl) {
51
- return '';
52
- }
53
- let fixedUrl = assetUrl;
54
- if (assetUrl.indexOf('_webplayer') === -1) {
55
- fixedUrl = assetUrl.concat('_webplayer');
56
- }
57
- fixedUrl = fixedUrl.replace('/content/', '/content43/');
58
- if (!fixedUrl.endsWith('.glb')) {
59
- fixedUrl = fixedUrl.concat('.glb');
60
- }
61
- return fixedUrl;
62
- }
63
- // Return the mimetype of the given filename.
64
- static MimeTypeFromFilename(fileName) {
65
- const regEx = /(?:\.([^.]+))?$/; // regex to find extension
66
- const extension = regEx.exec(fileName)[1];
67
- switch (extension) {
68
- case 'jpg':
69
- case 'jpeg':
70
- return 'image/jpeg';
71
- case 'png':
72
- return 'image/png';
73
- case 'bmp':
74
- return 'image/bmp';
75
- }
76
- }
77
- /**
78
- * Downloads the given file to the users default download location.
79
- * @param fileName With or without extension
80
- * @param content File content as a string
81
- * @param [mimeType = 'text/plain']
82
- */
83
- static DownloadFile(fileName, content, mimeType = 'text/plain') {
84
- const element = document.createElement('a');
85
- element.setAttribute('href', 'data:' + mimeType + ';charset=utf-8,' + encodeURIComponent(content));
86
- element.setAttribute('download', fileName);
87
- element.style.display = 'none';
88
- document.body.appendChild(element);
89
- element.click();
90
- document.body.removeChild(element);
91
- }
92
- // Returns the contents of given file as a text string.
93
- static ReadAsText(file) {
94
- return new Promise((resolve) => {
95
- const reader = new FileReader();
96
- reader.readAsText(file);
97
- reader.onloadend = (event) => {
98
- if (event.target.readyState === 2) {
99
- resolve(event.target.result);
100
- }
101
- };
102
- });
103
- }
104
- static GetExtensionFromDataUri(dataUri) {
105
- return dataUri.replace(/(data:image\/)(.*?)(;base64.*)/gi, '$2');
106
- }
107
- static CreateDownloadFileNameFromBase64(dataUri) {
108
- const ext = this.GetExtensionFromDataUri(dataUri);
109
- return 'preview.' + ext;
110
- }
111
- static DownloadFromDataUri(dataUri, fileName) {
112
- const link = document.createElement('a');
113
- link.download = fileName;
114
- link.href = dataUri;
115
- document.body.appendChild(link);
116
- link.click();
117
- document.body.removeChild(link);
118
- }
119
- // todo remove once Connector deals with mimetypes and this method isn't used anymore
120
- static DocumentBodyToDataUri(documentBody, mimeType) {
121
- if (!!documentBody) {
122
- return 'data:' + mimeType + ';base64,' + documentBody;
123
- }
124
- else {
125
- return '';
126
- }
127
- }
128
- static FixUnityUrl(url) {
129
- if (url.indexOf('_webplayer') === -1) {
130
- url = url.concat('_webplayer.ione3d');
131
- }
132
- else {
133
- url = url.replace('_webplayer', '_webplayer.ione3d');
134
- }
135
- if (!url.endsWith('.gz')) {
136
- url = url.concat('.gz');
137
- }
138
- return url.replace('.unity3d', '');
139
- }
140
- }
141
- FileUtils._cachedTextureUploads = new Map();
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9maWxlLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsb0RBQW9EO0FBQ3BELFdBQVc7QUFDWCxNQUFNLE9BQU8sU0FBUztJQUlwQixrRUFBa0U7SUFDM0QsTUFBTSxDQUFDLDBCQUEwQixDQUFDLE9BQWU7UUFDdEQsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFFRCxNQUFNLFVBQVUsR0FBVyxJQUFJLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEUsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxPQUFlO1FBQ3BELElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxNQUFNLENBQU8sVUFBVSxDQUFDLEdBQVcsRUFBRSxTQUFpQjs7WUFDM0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQzVCLFNBQVMsR0FBRyxTQUFTLEdBQUcsR0FBRyxDQUFDO2FBQzdCO1lBQ0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxLQUFLLENBQUM7Z0JBQ3pCLE1BQU0sRUFBRSxLQUFLO2dCQUNiLEdBQUcsRUFBRSxHQUFHLFNBQVMseUJBQXlCLEdBQUcsRUFBRTtnQkFDL0MsWUFBWSxFQUFFLE1BQU07YUFDckIsQ0FBQyxDQUFBO1lBQ0YsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN6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QixPQUFPLE9BQU8sR0FBRyxRQUFRLEdBQUcsVUFBVSxHQUFHLFlBQVksQ0FBQztTQUN2RDthQUFNO1lBQ0wsT0FBTyxFQUFFLENBQUM7U0FDWDtJQUNILENBQUM7SUFFTyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUc7UUFDNUIsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3BDLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDdkM7YUFBTTtZQUNMLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3REO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekI7UUFDRCxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7O0FBeEpjLCtCQUFxQixHQUF3QixJQUFJLEdBQUcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gXCJheGlvc1wiO1xyXG4vLyBTdGF0aWMgdXRpbGl0eSBmdW5jdGlvbnMgaG9sZGVyIHJlbGF0ZWQgdG8gZmlsZXMuXHJcbi8vIEBkeW5hbWljXHJcbmV4cG9ydCBjbGFzcyBGaWxlVXRpbHMge1xyXG5cclxuICBwcml2YXRlIHN0YXRpYyBfY2FjaGVkVGV4dHVyZVVwbG9hZHM6IE1hcDxzdHJpbmcsIE9iamVjdD4gPSBuZXcgTWFwKCk7XHJcblxyXG4gIC8vIFJldHVybnMgdGhlIGdpdmVuIGRhdGFVcmkgc3RyaW5nIHN0cmlwcGVkIG9mIHRoZSBtaW1ldHlwZSBwYXJ0LlxyXG4gIHB1YmxpYyBzdGF0aWMgU3RyaXBNaW1lU3RyaW5nRnJvbURhdGFVcmkoZGF0YVVyaTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmICghZGF0YVVyaSkge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbWltZVN0cmluZzogc3RyaW5nID0gdGhpcy5HZXRNaW1lU3RyaW5nRnJvbURhdGFVcmkoZGF0YVVyaSk7XHJcbiAgICByZXR1cm4gZGF0YVVyaS5zdWJzdHIobWltZVN0cmluZy5sZW5ndGggKyAxKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgR2V0TWltZVN0cmluZ0Zyb21EYXRhVXJpKGRhdGFVcmk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoIWRhdGFVcmkpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkYXRhVXJpLnNwbGl0KCcsJylbMF07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGFzeW5jIEZpbGVFeGlzdHModXJsOiBzdHJpbmcsIGFzc2V0UGF0aDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBpZiAoIWFzc2V0UGF0aC5lbmRzV2l0aCgnLycpKSB7XHJcbiAgICAgIGFzc2V0UGF0aCA9IGFzc2V0UGF0aCArICcvJztcclxuICAgIH1cclxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYXhpb3Moe1xyXG4gICAgICAgIG1ldGhvZDogJ2dldCcsXHJcbiAgICAgICAgdXJsOiBgJHthc3NldFBhdGh9Z2V0RmlsZXMucGhwP2Fzc2V0VXJsPSR7dXJsfWAsXHJcbiAgICAgICAgcmVzcG9uc2VUeXBlOiBcImpzb25cIlxyXG4gICAgICB9KVxyXG4gICAgICByZXR1cm4gISFyZXN1bHQuZGF0YTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZXJlIGlzIHNvbWUgZGlzY3JlcGFuY3kgcmVnYXJkaW5nIGxvY2F0aW9ucyBvZiBoM2Qgb2JqZWN0c1xyXG4gICAqIFRoZXJlZm9yIHdlIG5lZWQgdG8gKHRlbXBvcmFyaWx5PyEpIGZpeCB0aGUgY29udGVudCB1cmxcclxuICAgKiBBbHNvIHdlIG5lZWQgdG8gY2hhbmdlIHNvbWUgYWRkaXRpb25hbHNcclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIEZpeFVybChhc3NldFVybDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmICghYXNzZXRVcmwpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gICAgbGV0IGZpeGVkVXJsOiBzdHJpbmcgPSBhc3NldFVybDtcclxuICAgIGlmICghZml4ZWRVcmwuZW5kc1dpdGgoJ2dsYicpICYmICFmaXhlZFVybC5lbmRzV2l0aCgnb2JqJykgJiYgIWZpeGVkVXJsLmVuZHNXaXRoKCdnbGIuZ3onKSAmJiAhZml4ZWRVcmwuZW5kc1dpdGgoJ29iai5neicpKSB7XHJcbiAgICAgIGZpeGVkVXJsID0gRmlsZVV0aWxzLkZpeFVuaXR5VXJsKGZpeGVkVXJsKTtcclxuICAgIH1cclxuICAgIGZpeGVkVXJsID0gZml4ZWRVcmwucmVwbGFjZSgnL2NvbnRlbnQvJywgJy9jb250ZW50NDMvJyk7XHJcbiAgICByZXR1cm4gZml4ZWRVcmw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIEZpeEdsYlVybChhc3NldFVybDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmICghYXNzZXRVcmwpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gICAgbGV0IGZpeGVkVXJsOiBzdHJpbmcgPSBhc3NldFVybDtcclxuICAgIGlmIChhc3NldFVybC5pbmRleE9mKCdfd2VicGxheWVyJykgPT09IC0xKSB7XHJcbiAgICAgIGZpeGVkVXJsID0gYXNzZXRVcmwuY29uY2F0KCdfd2VicGxheWVyJyk7XHJcbiAgICB9XHJcbiAgICBmaXhlZFVybCA9IGZpeGVkVXJsLnJlcGxhY2UoJy9jb250ZW50LycsICcvY29udGVudDQzLycpO1xyXG4gICAgaWYgKCFmaXhlZFVybC5lbmRzV2l0aCgnLmdsYicpKSB7XHJcbiAgICAgIGZpeGVkVXJsID0gZml4ZWRVcmwuY29uY2F0KCcuZ2xiJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZml4ZWRVcmw7XHJcbiAgfVxyXG5cclxuICAvLyBSZXR1cm4gdGhlIG1pbWV0eXBlIG9mIHRoZSBnaXZlbiBmaWxlbmFtZS5cclxuICBwdWJsaWMgc3RhdGljIE1pbWVUeXBlRnJvbUZpbGVuYW1lKGZpbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgcmVnRXg6IFJlZ0V4cCA9IC8oPzpcXC4oW14uXSspKT8kLzsgLy8gcmVnZXggdG8gZmluZCBleHRlbnNpb25cclxuICAgIGNvbnN0IGV4dGVuc2lvbjogYW55ID0gcmVnRXguZXhlYyhmaWxlTmFtZSlbMV07XHJcbiAgICBzd2l0Y2ggKGV4dGVuc2lvbikge1xyXG4gICAgICBjYXNlICdqcGcnOlxyXG4gICAgICBjYXNlICdqcGVnJzpcclxuICAgICAgICByZXR1cm4gJ2ltYWdlL2pwZWcnO1xyXG4gICAgICBjYXNlICdwbmcnOlxyXG4gICAgICAgIHJldHVybiAnaW1hZ2UvcG5nJztcclxuICAgICAgY2FzZSAnYm1wJzpcclxuICAgICAgICByZXR1cm4gJ2ltYWdlL2JtcCc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEb3dubG9hZHMgdGhlIGdpdmVuIGZpbGUgdG8gdGhlIHVzZXJzIGRlZmF1bHQgZG93bmxvYWQgbG9jYXRpb24uXHJcbiAgICogQHBhcmFtIGZpbGVOYW1lIFdpdGggb3Igd2l0aG91dCBleHRlbnNpb25cclxuICAgKiBAcGFyYW0gY29udGVudCBGaWxlIGNvbnRlbnQgYXMgYSBzdHJpbmdcclxuICAgKiBAcGFyYW0gW21pbWVUeXBlID0gJ3RleHQvcGxhaW4nXVxyXG4gICAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgRG93bmxvYWRGaWxlKFxyXG4gICAgZmlsZU5hbWU6IHN0cmluZyxcclxuICAgIGNvbnRlbnQ6IHN0cmluZyxcclxuICAgIG1pbWVUeXBlOiBzdHJpbmcgPSAndGV4dC9wbGFpbidcclxuICApOiB2b2lkIHtcclxuICAgIGNvbnN0IGVsZW1lbnQ6IEhUTUxBbmNob3JFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCAnZGF0YTonICsgbWltZVR5cGUgKyAnO2NoYXJzZXQ9dXRmLTgsJyArIGVuY29kZVVSSUNvbXBvbmVudChjb250ZW50KSk7XHJcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBmaWxlTmFtZSk7XHJcblxyXG4gICAgZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTtcclxuXHJcbiAgICBlbGVtZW50LmNsaWNrKCk7XHJcblxyXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIC8vIFJldHVybnMgdGhlIGNvbnRlbnRzIG9mIGdpdmVuIGZpbGUgYXMgYSB0ZXh0IHN0cmluZy5cclxuICBwdWJsaWMgc3RhdGljIFJlYWRBc1RleHQoZmlsZTogRmlsZSk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZTogRnVuY3Rpb24pID0+IHtcclxuICAgICAgY29uc3QgcmVhZGVyOiBGaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgcmVhZGVyLnJlYWRBc1RleHQoZmlsZSk7XHJcbiAgICAgIHJlYWRlci5vbmxvYWRlbmQgPSAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChldmVudC50YXJnZXQucmVhZHlTdGF0ZSA9PT0gMikge1xyXG4gICAgICAgICAgcmVzb2x2ZShldmVudC50YXJnZXQucmVzdWx0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgR2V0RXh0ZW5zaW9uRnJvbURhdGFVcmkoZGF0YVVyaTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBkYXRhVXJpLnJlcGxhY2UoLyhkYXRhOmltYWdlXFwvKSguKj8pKDtiYXNlNjQuKikvZ2ksICckMicpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBDcmVhdGVEb3dubG9hZEZpbGVOYW1lRnJvbUJhc2U2NChkYXRhVXJpOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgZXh0OiBzdHJpbmcgPSB0aGlzLkdldEV4dGVuc2lvbkZyb21EYXRhVXJpKGRhdGFVcmkpO1xyXG4gICAgcmV0dXJuICdwcmV2aWV3LicgKyBleHQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIERvd25sb2FkRnJvbURhdGFVcmkoZGF0YVVyaTogc3RyaW5nLCBmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBsaW5rOiBhbnkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICBsaW5rLmRvd25sb2FkID0gZmlsZU5hbWU7XHJcbiAgICBsaW5rLmhyZWYgPSBkYXRhVXJpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcclxuICAgIGxpbmsuY2xpY2soKTtcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluayk7XHJcbiAgfVxyXG5cclxuICAvLyB0b2RvIHJlbW92ZSBvbmNlIENvbm5lY3RvciBkZWFscyB3aXRoIG1pbWV0eXBlcyBhbmQgdGhpcyBtZXRob2QgaXNuJ3QgdXNlZCBhbnltb3JlXHJcbiAgcHVibGljIHN0YXRpYyBEb2N1bWVudEJvZHlUb0RhdGFVcmkoZG9jdW1lbnRCb2R5OiBzdHJpbmcsIG1pbWVUeXBlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKCEhZG9jdW1lbnRCb2R5KSB7XHJcbiAgICAgIHJldHVybiAnZGF0YTonICsgbWltZVR5cGUgKyAnO2Jhc2U2NCwnICsgZG9jdW1lbnRCb2R5O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgRml4VW5pdHlVcmwodXJsKTogc3RyaW5nIHtcclxuICAgIGlmICh1cmwuaW5kZXhPZignX3dlYnBsYXllcicpID09PSAtMSkge1xyXG4gICAgICB1cmwgPSB1cmwuY29uY2F0KCdfd2VicGxheWVyLmlvbmUzZCcpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdXJsID0gdXJsLnJlcGxhY2UoJ193ZWJwbGF5ZXInLCAnX3dlYnBsYXllci5pb25lM2QnKTtcclxuICAgIH1cclxuICAgIGlmICghdXJsLmVuZHNXaXRoKCcuZ3onKSkge1xyXG4gICAgICB1cmwgPSB1cmwuY29uY2F0KCcuZ3onKTtcclxuICAgIH1cclxuICAgIHJldHVybiB1cmwucmVwbGFjZSgnLnVuaXR5M2QnLCAnJyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,66 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import * as THREE from 'three';
3
- import { BaseUtils } from './base-utils';
4
- // @dynamic
5
- export class ImageUtils extends BaseUtils {
6
- static CreateTextureFromBase64(id, base64, material, defaultFlip = false) {
7
- var _a, _b;
8
- return __awaiter(this, void 0, void 0, function* () {
9
- if (ImageUtils.textures.has(id)) {
10
- return ImageUtils.textures.get(id);
11
- }
12
- try {
13
- if (window.textureLoader) {
14
- const texture = yield window.textureLoader(base64, material);
15
- ImageUtils.textures.set(id, texture);
16
- return texture;
17
- }
18
- const loader = new THREE.TextureLoader();
19
- const texture = yield new Promise((resolve, reject) => {
20
- loader.load(base64, resolve, undefined, (err) => reject(err));
21
- });
22
- texture.anisotropy = 16;
23
- texture.wrapS = THREE.RepeatWrapping;
24
- texture.wrapT = THREE.RepeatWrapping;
25
- texture.repeat = new THREE.Vector2((_a = material === null || material === void 0 ? void 0 : material.repeatX) !== null && _a !== void 0 ? _a : 1, (_b = material === null || material === void 0 ? void 0 : material.repeatY) !== null && _b !== void 0 ? _b : 1);
26
- texture.flipY = defaultFlip;
27
- texture.needsUpdate = true;
28
- ImageUtils.textures.set(id, texture);
29
- return texture;
30
- }
31
- catch (err) {
32
- return null;
33
- }
34
- });
35
- }
36
- static getDocBodyWithMimeTypeDefinition(fileName, documentBody) {
37
- if (documentBody === null) {
38
- return documentBody;
39
- }
40
- const fileExtension = fileName.substr(fileName.lastIndexOf('.') + 1);
41
- switch (fileExtension.toLowerCase()) {
42
- case 'jpg':
43
- case 'jpeg':
44
- return 'data:image/jpg;base64,' + documentBody;
45
- case 'png':
46
- return 'data:image/png;base64,' + documentBody;
47
- case 'gif':
48
- return 'data:image/gif;base64,' + documentBody;
49
- case 'bmp':
50
- return 'data:image/bmp;base64,' + documentBody;
51
- default:
52
- return 'data:image/png;base64,' + documentBody;
53
- }
54
- }
55
- static getFixedImageFilepathUrl(imageFilepathUrl) {
56
- return imageFilepathUrl.replace('/content/', '/content43/');
57
- }
58
- static ClearCache() {
59
- ImageUtils.textures.forEach(value => {
60
- value.dispose();
61
- });
62
- ImageUtils.textures.clear();
63
- }
64
- }
65
- ImageUtils.textures = new Map();
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvaW1hZ2UudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRS9CLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFdkMsV0FBVztBQUNYLE1BQU0sT0FBTyxVQUFXLFNBQVEsU0FBUztJQUloQyxNQUFNLENBQU8sdUJBQXVCLENBQUMsRUFBVSxFQUFFLE1BQWMsRUFBRSxRQUFrQixFQUFFLGNBQXVCLEtBQUs7OztZQUN0SCxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO2dCQUMvQixPQUFPLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ3BDO1lBQ0QsSUFBSTtnQkFDRixJQUFLLE1BQWMsQ0FBQyxhQUFhLEVBQUU7b0JBQ2pDLE1BQU0sT0FBTyxHQUFrQixNQUFPLE1BQWMsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO29CQUNyRixVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7b0JBQ3JDLE9BQU8sT0FBTyxDQUFDO2lCQUNoQjtnQkFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDekMsTUFBTSxPQUFPLEdBQWtCLE1BQU0sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7b0JBQ25FLE1BQU0sQ0FBQyxJQUFJLENBQ1QsTUFBTSxFQUNOLE9BQU8sRUFDUCxTQUFTLEVBQ1QsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FDckIsQ0FBQztnQkFDSixDQUFDLENBQUMsQ0FBQztnQkFDSCxPQUFPLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztnQkFDeEIsT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO2dCQUNyQyxPQUFPLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7Z0JBQ3JDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUNoQyxNQUFBLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxPQUFPLG1DQUFJLENBQUMsRUFDdEIsTUFBQSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsT0FBTyxtQ0FBSSxDQUFDLENBQ3ZCLENBQUM7Z0JBQ0YsT0FBTyxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUM7Z0JBQzVCLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUUzQixVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ3JDLE9BQU8sT0FBTyxDQUFDO2FBQ2hCO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1osT0FBTyxJQUFJLENBQUM7YUFDYjs7S0FDRjtJQUVNLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxRQUFnQixFQUFFLFlBQW9CO1FBQ25GLElBQUksWUFBWSxLQUFLLElBQUksRUFBRTtZQUN6QixPQUFPLFlBQVksQ0FBQztTQUNyQjtRQUNELE1BQU0sYUFBYSxHQUFXLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM3RSxRQUFRLGFBQWEsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUNuQyxLQUFLLEtBQUssQ0FBQztZQUNYLEtBQUssTUFBTTtnQkFDVCxPQUFPLHdCQUF3QixHQUFHLFlBQVksQ0FBQztZQUNqRCxLQUFLLEtBQUs7Z0JBQ1IsT0FBTyx3QkFBd0IsR0FBRyxZQUFZLENBQUM7WUFDakQsS0FBSyxLQUFLO2dCQUNSLE9BQU8sd0JBQXdCLEdBQUcsWUFBWSxDQUFDO1lBQ2pELEtBQUssS0FBSztnQkFDUixPQUFPLHdCQUF3QixHQUFHLFlBQVksQ0FBQztZQUNqRDtnQkFDRSxPQUFPLHdCQUF3QixHQUFHLFlBQVksQ0FBQztTQUNsRDtJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsd0JBQXdCLENBQUMsZ0JBQXdCO1FBQzdELE9BQU8sZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRU0sTUFBTSxDQUFDLFVBQVU7UUFDdEIsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbEMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM5QixDQUFDOztBQW5FYSxtQkFBUSxHQUErQixJQUFJLEdBQUcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xyXG5pbXBvcnQge01hdGVyaWFsfSBmcm9tICcuLi9tb2RlbC9tYXRlcmlhbCc7XHJcbmltcG9ydCB7QmFzZVV0aWxzfSBmcm9tICcuL2Jhc2UtdXRpbHMnO1xyXG5cclxuLy8gQGR5bmFtaWNcclxuZXhwb3J0IGNsYXNzIEltYWdlVXRpbHMgZXh0ZW5kcyBCYXNlVXRpbHMge1xyXG5cclxuICBwdWJsaWMgc3RhdGljIHRleHR1cmVzOiBNYXA8c3RyaW5nLCBUSFJFRS5UZXh0dXJlPiA9IG5ldyBNYXAoKTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBhc3luYyBDcmVhdGVUZXh0dXJlRnJvbUJhc2U2NChpZDogc3RyaW5nLCBiYXNlNjQ6IHN0cmluZywgbWF0ZXJpYWw6IE1hdGVyaWFsLCBkZWZhdWx0RmxpcDogYm9vbGVhbiA9IGZhbHNlKTogUHJvbWlzZTxUSFJFRS5UZXh0dXJlPiB7XHJcbiAgICBpZiAoSW1hZ2VVdGlscy50ZXh0dXJlcy5oYXMoaWQpKSB7XHJcbiAgICAgIHJldHVybiBJbWFnZVV0aWxzLnRleHR1cmVzLmdldChpZCk7XHJcbiAgICB9XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAoKHdpbmRvdyBhcyBhbnkpLnRleHR1cmVMb2FkZXIpIHtcclxuICAgICAgICBjb25zdCB0ZXh0dXJlOiBUSFJFRS5UZXh0dXJlID0gYXdhaXQgKHdpbmRvdyBhcyBhbnkpLnRleHR1cmVMb2FkZXIoYmFzZTY0LCBtYXRlcmlhbCk7XHJcbiAgICAgICAgSW1hZ2VVdGlscy50ZXh0dXJlcy5zZXQoaWQsIHRleHR1cmUpO1xyXG4gICAgICAgIHJldHVybiB0ZXh0dXJlO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGxvYWRlciA9IG5ldyBUSFJFRS5UZXh0dXJlTG9hZGVyKCk7XHJcbiAgICAgIGNvbnN0IHRleHR1cmU6IFRIUkVFLlRleHR1cmUgPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgbG9hZGVyLmxvYWQoXHJcbiAgICAgICAgICBiYXNlNjQsXHJcbiAgICAgICAgICByZXNvbHZlLFxyXG4gICAgICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAgICAgKGVycikgPT4gcmVqZWN0KGVycilcclxuICAgICAgICApO1xyXG4gICAgICB9KTtcclxuICAgICAgdGV4dHVyZS5hbmlzb3Ryb3B5ID0gMTY7XHJcbiAgICAgIHRleHR1cmUud3JhcFMgPSBUSFJFRS5SZXBlYXRXcmFwcGluZztcclxuICAgICAgdGV4dHVyZS53cmFwVCA9IFRIUkVFLlJlcGVhdFdyYXBwaW5nO1xyXG4gICAgICB0ZXh0dXJlLnJlcGVhdCA9IG5ldyBUSFJFRS5WZWN0b3IyKFxyXG4gICAgICAgIG1hdGVyaWFsPy5yZXBlYXRYID8/IDEsXHJcbiAgICAgICAgbWF0ZXJpYWw/LnJlcGVhdFkgPz8gMVxyXG4gICAgICApO1xyXG4gICAgICB0ZXh0dXJlLmZsaXBZID0gZGVmYXVsdEZsaXA7XHJcbiAgICAgIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG5cclxuICAgICAgSW1hZ2VVdGlscy50ZXh0dXJlcy5zZXQoaWQsIHRleHR1cmUpO1xyXG4gICAgICByZXR1cm4gdGV4dHVyZTtcclxuICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0RG9jQm9keVdpdGhNaW1lVHlwZURlZmluaXRpb24oZmlsZU5hbWU6IHN0cmluZywgZG9jdW1lbnRCb2R5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKGRvY3VtZW50Qm9keSA9PT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gZG9jdW1lbnRCb2R5O1xyXG4gICAgfVxyXG4gICAgY29uc3QgZmlsZUV4dGVuc2lvbjogc3RyaW5nID0gZmlsZU5hbWUuc3Vic3RyKGZpbGVOYW1lLmxhc3RJbmRleE9mKCcuJykgKyAxKTtcclxuICAgIHN3aXRjaCAoZmlsZUV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgIGNhc2UgJ2pwZyc6XHJcbiAgICAgIGNhc2UgJ2pwZWcnOlxyXG4gICAgICAgIHJldHVybiAnZGF0YTppbWFnZS9qcGc7YmFzZTY0LCcgKyBkb2N1bWVudEJvZHk7XHJcbiAgICAgIGNhc2UgJ3BuZyc6XHJcbiAgICAgICAgcmV0dXJuICdkYXRhOmltYWdlL3BuZztiYXNlNjQsJyArIGRvY3VtZW50Qm9keTtcclxuICAgICAgY2FzZSAnZ2lmJzpcclxuICAgICAgICByZXR1cm4gJ2RhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCwnICsgZG9jdW1lbnRCb2R5O1xyXG4gICAgICBjYXNlICdibXAnOlxyXG4gICAgICAgIHJldHVybiAnZGF0YTppbWFnZS9ibXA7YmFzZTY0LCcgKyBkb2N1bWVudEJvZHk7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuICdkYXRhOmltYWdlL3BuZztiYXNlNjQsJyArIGRvY3VtZW50Qm9keTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0Rml4ZWRJbWFnZUZpbGVwYXRoVXJsKGltYWdlRmlsZXBhdGhVcmw6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gaW1hZ2VGaWxlcGF0aFVybC5yZXBsYWNlKCcvY29udGVudC8nLCAnL2NvbnRlbnQ0My8nKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgQ2xlYXJDYWNoZSgpOiB2b2lkIHtcclxuICAgIEltYWdlVXRpbHMudGV4dHVyZXMuZm9yRWFjaCh2YWx1ZSA9PiB7XHJcbiAgICAgIHZhbHVlLmRpc3Bvc2UoKTtcclxuICAgIH0pO1xyXG4gICAgSW1hZ2VVdGlscy50ZXh0dXJlcy5jbGVhcigpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -1,49 +0,0 @@
1
- import { Mesh } from "three";
2
- export class ObjectUtils {
3
- static DisposeMaterial(material) {
4
- if (!material) {
5
- return;
6
- }
7
- if (Array.isArray(material)) {
8
- material.forEach(mtrl => {
9
- this.materialProps
10
- .filter(mapType => mtrl[mapType])
11
- .forEach(mapType => mtrl[mapType].dispose());
12
- mtrl.dispose();
13
- });
14
- }
15
- else {
16
- this.materialProps
17
- .filter(mapType => material[mapType] && material[mapType].dispose)
18
- .forEach(mapType => material[mapType].dispose());
19
- if (material.dispose) {
20
- material.dispose();
21
- }
22
- }
23
- }
24
- static DisposeObject(object) {
25
- if (!object) {
26
- return;
27
- }
28
- if (object.children.length) {
29
- object.children.forEach(child => this.DisposeObject(child));
30
- }
31
- this.DisposeNode(object);
32
- }
33
- static DisposeNode(node) {
34
- node.traverse((obj) => {
35
- if (obj instanceof Mesh) {
36
- if (obj.geometry) {
37
- obj.geometry.dispose();
38
- }
39
- this.DisposeMaterial(obj.material);
40
- }
41
- if (typeof obj.dispose === 'function') {
42
- // @ts-ignore
43
- obj.dispose();
44
- }
45
- });
46
- }
47
- }
48
- ObjectUtils.materialProps = ['map', 'lightMap', 'bumpMap', 'normalMap', 'specularMap', 'envMap', 'aoMap', 'roughnessMap', 'metalnessMap'];
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL29iamVjdC51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsSUFBSSxFQUFXLE1BQU0sT0FBTyxDQUFDO0FBRS9DLE1BQU0sT0FBTyxXQUFXO0lBR2IsTUFBTSxDQUFDLGVBQWUsQ0FBQyxRQUErQjtRQUN6RCxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ1gsT0FBTztTQUNWO1FBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3pCLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxhQUFhO3FCQUNiLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDaEMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuQixDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDSCxJQUFJLENBQUMsYUFBYTtpQkFDYixNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQztpQkFDakUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDckQsSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFO2dCQUNsQixRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDdEI7U0FDSjtJQUNMLENBQUM7SUFFTSxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQXVCO1FBQy9DLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFDRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ3hCLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQy9EO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFxQjtRQUM1QyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBYSxFQUFFLEVBQUU7WUFDNUIsSUFBSSxHQUFHLFlBQVksSUFBSSxFQUFFO2dCQUNyQixJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUU7b0JBQ2QsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztpQkFDMUI7Z0JBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDdEM7WUFDRCxJQUFJLE9BQVEsR0FBVyxDQUFDLE9BQU8sS0FBSyxVQUFVLEVBQUU7Z0JBQzVDLGFBQWE7Z0JBQ2IsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ2pCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztBQTlDTSx5QkFBYSxHQUFHLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxjQUFjLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TWF0ZXJpYWwsIE1lc2gsIE9iamVjdDNEfSBmcm9tIFwidGhyZWVcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBPYmplY3RVdGlscyB7XHJcbiAgICBzdGF0aWMgbWF0ZXJpYWxQcm9wcyA9IFsnbWFwJywgJ2xpZ2h0TWFwJywgJ2J1bXBNYXAnLCAnbm9ybWFsTWFwJywgJ3NwZWN1bGFyTWFwJywgJ2Vudk1hcCcsICdhb01hcCcsICdyb3VnaG5lc3NNYXAnLCAnbWV0YWxuZXNzTWFwJ107XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBEaXNwb3NlTWF0ZXJpYWwobWF0ZXJpYWw6IE1hdGVyaWFsIHwgTWF0ZXJpYWxbXSk6IHZvaWQge1xyXG4gICAgICAgIGlmICghbWF0ZXJpYWwpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShtYXRlcmlhbCkpIHtcclxuICAgICAgICAgICAgbWF0ZXJpYWwuZm9yRWFjaChtdHJsID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubWF0ZXJpYWxQcm9wc1xyXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIobWFwVHlwZSA9PiBtdHJsW21hcFR5cGVdKVxyXG4gICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKG1hcFR5cGUgPT4gbXRybFttYXBUeXBlXS5kaXNwb3NlKCkpO1xyXG4gICAgICAgICAgICAgICAgbXRybC5kaXNwb3NlKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubWF0ZXJpYWxQcm9wc1xyXG4gICAgICAgICAgICAgICAgLmZpbHRlcihtYXBUeXBlID0+IG1hdGVyaWFsW21hcFR5cGVdICYmIG1hdGVyaWFsW21hcFR5cGVdLmRpc3Bvc2UpXHJcbiAgICAgICAgICAgICAgICAuZm9yRWFjaChtYXBUeXBlID0+IG1hdGVyaWFsW21hcFR5cGVdLmRpc3Bvc2UoKSk7XHJcbiAgICAgICAgICAgIGlmIChtYXRlcmlhbC5kaXNwb3NlKSB7XHJcbiAgICAgICAgICAgICAgICBtYXRlcmlhbC5kaXNwb3NlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBEaXNwb3NlT2JqZWN0KG9iamVjdDogT2JqZWN0M0QgfCBNZXNoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCFvYmplY3QpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob2JqZWN0LmNoaWxkcmVuLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBvYmplY3QuY2hpbGRyZW4uZm9yRWFjaChjaGlsZCA9PiB0aGlzLkRpc3Bvc2VPYmplY3QoY2hpbGQpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5EaXNwb3NlTm9kZShvYmplY3QpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIERpc3Bvc2VOb2RlKG5vZGU6IE9iamVjdDNEIHwgTWVzaCk6IHZvaWQge1xyXG4gICAgICAgIG5vZGUudHJhdmVyc2UoKG9iajogT2JqZWN0M0QpID0+IHtcclxuICAgICAgICAgICAgaWYgKG9iaiBpbnN0YW5jZW9mIE1lc2gpIHtcclxuICAgICAgICAgICAgICAgIGlmIChvYmouZ2VvbWV0cnkpIHtcclxuICAgICAgICAgICAgICAgICAgICBvYmouZ2VvbWV0cnkuZGlzcG9zZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5EaXNwb3NlTWF0ZXJpYWwob2JqLm1hdGVyaWFsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodHlwZW9mIChvYmogYXMgYW55KS5kaXNwb3NlID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICBvYmouZGlzcG9zZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==