@shapediver/viewer.rendering-engine.rendering-engine-threejs 3.16.8 → 3.16.10

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 (185) hide show
  1. package/dist/RenderingEngine.d.ts +294 -294
  2. package/dist/RenderingEngine.js +987 -977
  3. package/dist/RenderingEngine.js.map +1 -1
  4. package/dist/index.d.ts +16 -16
  5. package/dist/index.js +57 -57
  6. package/dist/injectors/TextureUnifierInjector.d.ts +13 -13
  7. package/dist/injectors/TextureUnifierInjector.js +181 -171
  8. package/dist/injectors/TextureUnifierInjector.js.map +1 -1
  9. package/dist/interfaces/ILoader.d.ts +3 -3
  10. package/dist/interfaces/ILoader.js +2 -2
  11. package/dist/interfaces/IRenderingEngine.d.ts +45 -45
  12. package/dist/interfaces/IRenderingEngine.js +2 -2
  13. package/dist/loaders/EnvironmentMapLoader.d.ts +119 -119
  14. package/dist/loaders/EnvironmentMapLoader.js +512 -502
  15. package/dist/loaders/EnvironmentMapLoader.js.map +1 -1
  16. package/dist/loaders/GeometryLoader.d.ts +39 -39
  17. package/dist/loaders/GeometryLoader.d.ts.map +1 -1
  18. package/dist/loaders/GeometryLoader.js +603 -593
  19. package/dist/loaders/GeometryLoader.js.map +1 -1
  20. package/dist/loaders/HTMLElementAnchorLoader.d.ts +15 -15
  21. package/dist/loaders/HTMLElementAnchorLoader.js +98 -98
  22. package/dist/loaders/HTMLElementAnchorLoader.js.map +1 -1
  23. package/dist/loaders/LightLoader.d.ts +19 -19
  24. package/dist/loaders/LightLoader.js +197 -187
  25. package/dist/loaders/LightLoader.js.map +1 -1
  26. package/dist/loaders/MaterialLoader.d.ts +115 -115
  27. package/dist/loaders/MaterialLoader.d.ts.map +1 -1
  28. package/dist/loaders/MaterialLoader.js +1612 -1602
  29. package/dist/loaders/MaterialLoader.js.map +1 -1
  30. package/dist/managers/ARManager.d.ts +17 -17
  31. package/dist/managers/ARManager.js +128 -128
  32. package/dist/managers/ARManager.js.map +1 -1
  33. package/dist/managers/CameraManager.d.ts +19 -19
  34. package/dist/managers/CameraManager.js +244 -234
  35. package/dist/managers/CameraManager.js.map +1 -1
  36. package/dist/managers/EnvironmentGeometryManager.d.ts +32 -32
  37. package/dist/managers/EnvironmentGeometryManager.js +114 -114
  38. package/dist/managers/EnvironmentGeometryManager.js.map +1 -1
  39. package/dist/managers/FlagManager.d.ts +19 -19
  40. package/dist/managers/FlagManager.js +143 -143
  41. package/dist/managers/FlagManager.js.map +1 -1
  42. package/dist/managers/PostProcessingManager.d.ts +1019 -1019
  43. package/dist/managers/PostProcessingManager.js +1306 -1296
  44. package/dist/managers/PostProcessingManager.js.map +1 -1
  45. package/dist/managers/RenderingManager.d.ts +84 -84
  46. package/dist/managers/RenderingManager.d.ts.map +1 -1
  47. package/dist/managers/RenderingManager.js +679 -669
  48. package/dist/managers/RenderingManager.js.map +1 -1
  49. package/dist/managers/SceneTracingManager.d.ts +28 -28
  50. package/dist/managers/SceneTracingManager.js +160 -150
  51. package/dist/managers/SceneTracingManager.js.map +1 -1
  52. package/dist/managers/SceneTreeManager.d.ts +81 -81
  53. package/dist/managers/SceneTreeManager.d.ts.map +1 -1
  54. package/dist/managers/SceneTreeManager.js +500 -490
  55. package/dist/managers/SceneTreeManager.js.map +1 -1
  56. package/dist/managers/SettingsManager.d.ts +28 -28
  57. package/dist/managers/SettingsManager.js +284 -284
  58. package/dist/managers/SettingsManager.js.map +1 -1
  59. package/dist/managers/environmentGeometry/ContactShadow.d.ts +42 -42
  60. package/dist/managers/environmentGeometry/ContactShadow.js +295 -285
  61. package/dist/managers/environmentGeometry/ContactShadow.js.map +1 -1
  62. package/dist/managers/environmentGeometry/Grid.d.ts +20 -20
  63. package/dist/managers/environmentGeometry/Grid.js +110 -100
  64. package/dist/managers/environmentGeometry/Grid.js.map +1 -1
  65. package/dist/managers/environmentGeometry/GroundPlane.d.ts +21 -21
  66. package/dist/managers/environmentGeometry/GroundPlane.js +105 -95
  67. package/dist/managers/environmentGeometry/GroundPlane.js.map +1 -1
  68. package/dist/managers/environmentGeometry/GroundPlaneShadow.d.ts +21 -21
  69. package/dist/managers/environmentGeometry/GroundPlaneShadow.js +96 -86
  70. package/dist/managers/environmentGeometry/GroundPlaneShadow.js.map +1 -1
  71. package/dist/managers/environmentGeometry/IEnvironmentGeometry.d.ts +8 -8
  72. package/dist/managers/environmentGeometry/IEnvironmentGeometry.js +2 -2
  73. package/dist/managers/postprocessing/GodRaysManager.d.ts +12 -12
  74. package/dist/managers/postprocessing/GodRaysManager.js +73 -63
  75. package/dist/managers/postprocessing/GodRaysManager.js.map +1 -1
  76. package/dist/managers/postprocessing/OutlineManager.d.ts +15 -15
  77. package/dist/managers/postprocessing/OutlineManager.js +86 -76
  78. package/dist/managers/postprocessing/OutlineManager.js.map +1 -1
  79. package/dist/managers/postprocessing/SSAARenderPass.d.ts +53 -53
  80. package/dist/managers/postprocessing/SSAARenderPass.js +281 -281
  81. package/dist/managers/postprocessing/SSAARenderPass.js.map +1 -1
  82. package/dist/managers/postprocessing/SelectiveBloomManager.d.ts +14 -14
  83. package/dist/managers/postprocessing/SelectiveBloomManager.js +76 -66
  84. package/dist/managers/postprocessing/SelectiveBloomManager.js.map +1 -1
  85. package/dist/managers/postprocessing/ao/ao/AOEffect.d.ts +46 -46
  86. package/dist/managers/postprocessing/ao/ao/AOEffect.js +142 -142
  87. package/dist/managers/postprocessing/ao/ao/AOEffect.js.map +1 -1
  88. package/dist/managers/postprocessing/ao/ao/AOPass.d.ts +12 -12
  89. package/dist/managers/postprocessing/ao/ao/AOPass.js +108 -108
  90. package/dist/managers/postprocessing/ao/ao/AOPass.js.map +1 -1
  91. package/dist/managers/postprocessing/ao/ao/shader/ao_compose.d.ts +1 -1
  92. package/dist/managers/postprocessing/ao/ao/shader/ao_compose.js +4 -4
  93. package/dist/managers/postprocessing/ao/ao/shader/ao_utils.d.ts +1 -1
  94. package/dist/managers/postprocessing/ao/ao/shader/ao_utils.js +4 -4
  95. package/dist/managers/postprocessing/ao/hbao/HBAOEffect.d.ts +14 -14
  96. package/dist/managers/postprocessing/ao/hbao/HBAOEffect.js +24 -24
  97. package/dist/managers/postprocessing/ao/hbao/shader/hbao.d.ts +1 -1
  98. package/dist/managers/postprocessing/ao/hbao/shader/hbao.js +4 -4
  99. package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.d.ts +33 -33
  100. package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.js +211 -211
  101. package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.js.map +1 -1
  102. package/dist/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.d.ts +1 -1
  103. package/dist/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.js +4 -4
  104. package/dist/managers/postprocessing/ao/ssao/SSAOEffect.d.ts +14 -14
  105. package/dist/managers/postprocessing/ao/ssao/SSAOEffect.js +82 -82
  106. package/dist/managers/postprocessing/ao/ssao/SSAOEffect.js.map +1 -1
  107. package/dist/managers/postprocessing/ao/ssao/shader/ssao.d.ts +1 -1
  108. package/dist/managers/postprocessing/ao/ssao/shader/ssao.js +4 -4
  109. package/dist/managers/postprocessing/ao/utils/shader/basic.d.ts +1 -1
  110. package/dist/managers/postprocessing/ao/utils/shader/basic.js +4 -4
  111. package/dist/managers/postprocessing/ao/utils/shader/sampleBlueNoise.d.ts +1 -1
  112. package/dist/managers/postprocessing/ao/utils/shader/sampleBlueNoise.js +4 -4
  113. package/dist/managers/postprocessing/effects/tone-mapping/ToneMappingEffect.d.ts +165 -165
  114. package/dist/managers/postprocessing/effects/tone-mapping/ToneMappingEffect.js +299 -299
  115. package/dist/managers/postprocessing/effects/tone-mapping/ToneMappingEffect.js.map +1 -1
  116. package/dist/managers/postprocessing/effects/tone-mapping/tone-mapping.d.ts +1 -1
  117. package/dist/managers/postprocessing/effects/tone-mapping/tone-mapping.js +4 -4
  118. package/dist/managers/postprocessing/utils/CopyMaterial.d.ts +37 -37
  119. package/dist/managers/postprocessing/utils/CopyMaterial.js +69 -69
  120. package/dist/managers/postprocessing/utils/CopyShader.d.ts +13 -13
  121. package/dist/managers/postprocessing/utils/CopyShader.js +12 -12
  122. package/dist/managers/postprocessing/utils/FullScreenQuad.d.ts +9 -9
  123. package/dist/managers/postprocessing/utils/FullScreenQuad.js +28 -28
  124. package/dist/managers/postprocessing/utils/NormalPass.d.ts +87 -87
  125. package/dist/managers/postprocessing/utils/NormalPass.js +156 -156
  126. package/dist/managers/postprocessing/utils/NormalPass.js.map +1 -1
  127. package/dist/managers/postprocessing/utils/RenderPass.d.ts +114 -114
  128. package/dist/managers/postprocessing/utils/RenderPass.js +259 -259
  129. package/dist/managers/postprocessing/utils/RenderPass.js.map +1 -1
  130. package/dist/managers/sceneTree/SDTFUtils.d.ts +6 -6
  131. package/dist/managers/sceneTree/SDTFUtils.d.ts.map +1 -1
  132. package/dist/managers/sceneTree/SDTFUtils.js +50 -50
  133. package/dist/managers/sceneTree/SDTFUtils.js.map +1 -1
  134. package/dist/managers/sceneTree/SceenTreeManagerUtils.d.ts +7 -7
  135. package/dist/managers/sceneTree/SceenTreeManagerUtils.d.ts.map +1 -1
  136. package/dist/managers/sceneTree/SceenTreeManagerUtils.js +175 -165
  137. package/dist/managers/sceneTree/SceenTreeManagerUtils.js.map +1 -1
  138. package/dist/managers/sceneTree/ThreeJsDataUtils.d.ts +6 -6
  139. package/dist/managers/sceneTree/ThreeJsDataUtils.d.ts.map +1 -1
  140. package/dist/managers/sceneTree/ThreeJsDataUtils.js +80 -70
  141. package/dist/managers/sceneTree/ThreeJsDataUtils.js.map +1 -1
  142. package/dist/materials/GemMaterial.d.ts +37 -37
  143. package/dist/materials/GemMaterial.js +262 -252
  144. package/dist/materials/GemMaterial.js.map +1 -1
  145. package/dist/materials/MeshUnlitMaterialParameters.d.ts +3 -3
  146. package/dist/materials/MeshUnlitMaterialParameters.js +2 -2
  147. package/dist/materials/MultiPointsMaterial.d.ts +93 -93
  148. package/dist/materials/MultiPointsMaterial.js +577 -567
  149. package/dist/materials/MultiPointsMaterial.js.map +1 -1
  150. package/dist/materials/SpecularGlossinessMaterial.d.ts +13 -13
  151. package/dist/materials/SpecularGlossinessMaterial.js +171 -161
  152. package/dist/materials/SpecularGlossinessMaterial.js.map +1 -1
  153. package/dist/objects/SDColor.d.ts +16 -16
  154. package/dist/objects/SDColor.js +52 -52
  155. package/dist/objects/SDColor.js.map +1 -1
  156. package/dist/objects/SDObject.d.ts +27 -27
  157. package/dist/objects/SDObject.js +112 -102
  158. package/dist/objects/SDObject.js.map +1 -1
  159. package/dist/shaders/PCSS.d.ts +2 -2
  160. package/dist/shaders/PCSS.js +5 -5
  161. package/dist/shaders/gem.d.ts +2 -2
  162. package/dist/shaders/gem.js +5 -5
  163. package/dist/shaders/multi_points.d.ts +2 -2
  164. package/dist/shaders/multi_points.js +5 -5
  165. package/dist/styling/viewport-css.d.ts +1 -1
  166. package/dist/styling/viewport-css.js +4 -4
  167. package/dist/three/CSS2DRenderer.d.ts +31 -31
  168. package/dist/three/CSS2DRenderer.d.ts.map +1 -1
  169. package/dist/three/CSS2DRenderer.js +152 -152
  170. package/dist/three/CSS2DRenderer.js.map +1 -1
  171. package/dist/three/geometries/TextGeometry.d.ts +21 -21
  172. package/dist/three/geometries/TextGeometry.js +45 -45
  173. package/dist/three/geometries/TextGeometry.js.map +1 -1
  174. package/dist/three/loaders/RGBELoader.d.ts +23 -23
  175. package/dist/three/loaders/RGBELoader.js +311 -311
  176. package/dist/three/loaders/RGBELoader.js.map +1 -1
  177. package/dist/types/IThreejsData.d.ts +6 -6
  178. package/dist/types/IThreejsData.js +2 -2
  179. package/dist/types/ThreejsData.d.ts +10 -10
  180. package/dist/types/ThreejsData.js +41 -41
  181. package/package.json +18 -18
  182. package/dist/managers/InstanceGroupManager.d.ts +0 -58
  183. package/dist/managers/InstanceGroupManager.d.ts.map +0 -1
  184. package/dist/managers/InstanceGroupManager.js +0 -372
  185. package/dist/managers/InstanceGroupManager.js.map +0 -1
@@ -1,978 +1,988 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
35
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
36
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
37
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
38
- };
39
- var _RenderingEngine_defaultLogo, _RenderingEngine_defaultSpinner;
40
- Object.defineProperty(exports, "__esModule", { value: true });
41
- exports.RenderingEngine = void 0;
42
- const THREE = __importStar(require("three"));
43
- const viewer_rendering_engine_animation_engine_1 = require("@shapediver/viewer.rendering-engine.animation-engine");
44
- const viewer_rendering_engine_camera_engine_1 = require("@shapediver/viewer.rendering-engine.camera-engine");
45
- const viewer_rendering_engine_canvas_engine_1 = require("@shapediver/viewer.rendering-engine.canvas-engine");
46
- const viewer_rendering_engine_light_engine_1 = require("@shapediver/viewer.rendering-engine.light-engine");
47
- const viewer_shared_node_tree_1 = require("@shapediver/viewer.shared.node-tree");
48
- const viewer_shared_services_1 = require("@shapediver/viewer.shared.services");
49
- const viewer_shared_types_1 = require("@shapediver/viewer.shared.types");
50
- const gl_matrix_1 = require("gl-matrix");
51
- const EnvironmentMapLoader_1 = require("./loaders/EnvironmentMapLoader");
52
- const GeometryLoader_1 = require("./loaders/GeometryLoader");
53
- const HTMLElementAnchorLoader_1 = require("./loaders/HTMLElementAnchorLoader");
54
- const LightLoader_1 = require("./loaders/LightLoader");
55
- const MaterialLoader_1 = require("./loaders/MaterialLoader");
56
- const ARManager_1 = require("./managers/ARManager");
57
- const CameraManager_1 = require("./managers/CameraManager");
58
- const EnvironmentGeometryManager_1 = require("./managers/EnvironmentGeometryManager");
59
- const FlagManager_1 = require("./managers/FlagManager");
60
- const PostProcessingManager_1 = require("./managers/PostProcessingManager");
61
- const RenderingManager_1 = require("./managers/RenderingManager");
62
- const SceneTracingManager_1 = require("./managers/SceneTracingManager");
63
- const SDTFUtils_1 = require("./managers/sceneTree/SDTFUtils");
64
- const ThreeJsDataUtils_1 = require("./managers/sceneTree/ThreeJsDataUtils");
65
- const SceneTreeManager_1 = require("./managers/SceneTreeManager");
66
- const SettingsManager_1 = require("./managers/SettingsManager");
67
- const SDColor_1 = require("./objects/SDColor");
68
- const viewport_css_1 = require("./styling/viewport-css");
69
- class RenderingEngine {
70
- constructor(properties) {
71
- this._animationEngine = viewer_rendering_engine_animation_engine_1.AnimationEngine.instance;
72
- this._canvasEngine = viewer_rendering_engine_canvas_engine_1.CanvasEngine.instance;
73
- this._colorCache = [];
74
- // utils
75
- this._converter = viewer_shared_services_1.Converter.instance;
76
- this._logger = viewer_shared_services_1.Logger.instance;
77
- this._eventEngine = viewer_shared_services_1.EventEngine.instance;
78
- this._stateEngine = viewer_shared_services_1.StateEngine.instance;
79
- this._systemInfo = viewer_shared_services_1.SystemInfo.instance;
80
- this._tree = viewer_shared_node_tree_1.Tree.instance;
81
- _RenderingEngine_defaultLogo.set(this, "https://viewer.shapediver.com/v3/graphics/logo_animated_breath.svg");
82
- _RenderingEngine_defaultSpinner.set(this, "https://viewer.shapediver.com/v3/graphics/spinner_ripple.svg");
83
- // settings
84
- this._arRotation = gl_matrix_1.vec3.create();
85
- this._arScale = gl_matrix_1.vec3.fromValues(1, 1, 1);
86
- this._arTranslation = gl_matrix_1.vec3.create();
87
- this._automaticColorAdjustment = true;
88
- this._automaticResizing = true;
89
- this._beautyRenderBlendingDuration = 1500;
90
- this._beautyRenderDelay = 50;
91
- this._busy = false;
92
- this._busyModeDisplay = viewer_shared_types_1.BUSY_MODE_DISPLAY.SPINNER;
93
- this._clearAlpha = 1.0;
94
- this._clearColor = "#ffffff";
95
- // viewer global vars
96
- this._closed = false;
97
- this._enableAR = true;
98
- this._environmentMap = "null";
99
- this._environmentMapAsBackground = false;
100
- this._environmentMapBlurriness = 0;
101
- this._environmentMapForUnlitMaterials = false;
102
- this._environmentMapIntensity = 1;
103
- this._environmentMapResolution = "1024";
104
- this._environmentMapRotation = gl_matrix_1.quat.create();
105
- this._gridVisibility = true;
106
- this._groundPlaneShadowVisibility = false;
107
- this._groundPlaneVisibility = true;
108
- this._lights = true;
109
- this._maximumRenderingSize = this
110
- ._systemInfo.isMobile
111
- ? { width: 1280, height: 720 }
112
- : { width: 1920, height: 1080 };
113
- this._pause = false;
114
- this._shadows = true;
115
- this._show = false;
116
- this._showStatistics = false;
117
- this._softShadows = true;
118
- this._toneMapping = viewer_shared_types_1.TONE_MAPPING.NONE;
119
- this._type = viewer_shared_types_1.RENDERER_TYPE.STANDARD;
120
- this._useLegacyLights = false;
121
- // THREE object has default Y, we change that (although it doesn't work everywhere)
122
- THREE.Object3D.DEFAULT_UP = new THREE.Vector3(0, 0, 1);
123
- THREE.ColorManagement.enabled = false;
124
- // adapt some of the three.js shaders according to our needs
125
- (0, MaterialLoader_1.adaptShaders)();
126
- // add css to the document
127
- const style = document.createElement("style");
128
- style.innerHTML = viewport_css_1.css;
129
- document.head.appendChild(style);
130
- const prop = Object.assign({}, properties);
131
- this._viewportCreationDefinition = prop;
132
- const branding = Object.assign({}, prop.branding);
133
- // setting some of the provided properties
134
- this._id = prop.id || viewer_shared_services_1.UuidGenerator.instance.create();
135
- this._visibilitySessionIds = prop.visibilitySessionIds;
136
- this._visibility = prop.visibility || viewer_shared_types_1.VISIBILITY_MODE.SESSION;
137
- this._branding = {
138
- logo: branding.logo === undefined ? __classPrivateFieldGet(this, _RenderingEngine_defaultLogo, "f") : branding.logo,
139
- backgroundColor: branding.backgroundColor || "#393a45FF",
140
- busyModeSpinner: branding.busyModeSpinner === undefined
141
- ? __classPrivateFieldGet(this, _RenderingEngine_defaultSpinner, "f")
142
- : branding.busyModeSpinner,
143
- busyModeDisplay: branding.busyModeDisplay || viewer_shared_types_1.BUSY_MODE_DISPLAY.SPINNER,
144
- spinnerPositioning: branding.spinnerPositioning || viewer_shared_types_1.SPINNER_POSITIONING.BOTTOM_RIGHT,
145
- };
146
- // creation of viewer essentials
147
- this._canvas = this._canvasEngine.getCanvas(this._canvasEngine.createCanvasObject(prop.canvas));
148
- // creation of the engines (all singleton engines were created already)
149
- this._domEventEngine = new viewer_shared_services_1.DomEventEngine(this._canvas.canvasElement);
150
- this._cameraEngine = new viewer_rendering_engine_camera_engine_1.CameraEngine(this);
151
- this._lightEngine = new viewer_rendering_engine_light_engine_1.LightEngine(this);
152
- // creation of the managers (all singleton engines were created already)
153
- this._cameraManager = new CameraManager_1.CameraManager(this);
154
- this._environmentGeometryManager = new EnvironmentGeometryManager_1.EnvironmentGeometryManager(this);
155
- this._sceneTracingManager = new SceneTracingManager_1.SceneTracingManager(this);
156
- this._sceneTreeManager = new SceneTreeManager_1.SceneTreeManager(this);
157
- this._renderingManager = new RenderingManager_1.RenderingManager(this);
158
- this._postProcessingManager = new PostProcessingManager_1.PostProcessingManager(this);
159
- this._settingsManager = new SettingsManager_1.SettingsManager(this, {
160
- sessionSettingsMode: prop.sessionSettingsMode || viewer_shared_services_1.SESSION_SETTINGS_MODE.FIRST,
161
- sessionSettingsId: prop.sessionSettingsId,
162
- });
163
- this._arManager = new ARManager_1.ARManager(this);
164
- this._flagManager = new FlagManager_1.FlagManager(this, {
165
- flags: prop.flags,
166
- });
167
- // loaders
168
- this._environmentMapLoader = new EnvironmentMapLoader_1.EnvironmentMapLoader(this);
169
- this._materialLoader = new MaterialLoader_1.MaterialLoader(this);
170
- this._geometryLoader = new GeometryLoader_1.GeometryLoader(this);
171
- this._htmlElementAnchorLoader = new HTMLElementAnchorLoader_1.HTMLElementAnchorLoader(this);
172
- this._lightLoader = new LightLoader_1.LightLoader(this);
173
- // start the creation and initialization process
174
- this._renderer = this.renderingManager.createRenderer(this._canvas.canvasElement);
175
- this._spinnerDivElement = this.renderingManager.addSpinner(this._canvas.canvasElement, this._branding);
176
- this._logoDivElement = this.renderingManager.addLogo(this._canvas.canvasElement, this._branding);
177
- // creation of the managers (all singleton engines were created already)
178
- this._cameraManager.init();
179
- this._environmentGeometryManager.init();
180
- this._sceneTracingManager.init();
181
- this._sceneTreeManager.init();
182
- this._renderingManager.init();
183
- this._postProcessingManager.init();
184
- this._settingsManager.init();
185
- this._arManager.init();
186
- // loaders
187
- this._environmentMapLoader.init();
188
- this._materialLoader.init();
189
- this._geometryLoader.init();
190
- this._htmlElementAnchorLoader.init();
191
- this._lightLoader.init();
192
- }
193
- get arRotation() {
194
- return this._arRotation;
195
- }
196
- set arRotation(value) {
197
- this._arRotation = value;
198
- }
199
- get arScale() {
200
- return this._arScale;
201
- }
202
- set arScale(value) {
203
- this._arScale = value;
204
- }
205
- get arTranslation() {
206
- return this._arTranslation;
207
- }
208
- set arTranslation(value) {
209
- this._arTranslation = value;
210
- }
211
- get automaticColorAdjustment() {
212
- return this._automaticColorAdjustment;
213
- }
214
- set automaticColorAdjustment(value) {
215
- if (this._automaticColorAdjustment === value)
216
- return;
217
- this._automaticColorAdjustment = value;
218
- this._colorCache.forEach((c) => c.colorCorrection(value));
219
- this._materialLoader.assignColorCorrection(value);
220
- }
221
- get automaticResizing() {
222
- return this._automaticResizing;
223
- }
224
- set automaticResizing(value) {
225
- this._automaticResizing = value;
226
- }
227
- get beautyRenderBlendingDuration() {
228
- return this._beautyRenderBlendingDuration;
229
- }
230
- set beautyRenderBlendingDuration(value) {
231
- this._beautyRenderBlendingDuration = value;
232
- }
233
- get beautyRenderDelay() {
234
- return this._beautyRenderDelay;
235
- }
236
- set beautyRenderDelay(value) {
237
- this._beautyRenderDelay = value;
238
- }
239
- get branding() {
240
- return this._branding;
241
- }
242
- get busy() {
243
- return this._busy;
244
- }
245
- set busy(value) {
246
- this._busy = value;
247
- }
248
- get busyModeDisplay() {
249
- return this._busyModeDisplay;
250
- }
251
- set busyModeDisplay(value) {
252
- this._busyModeDisplay = value;
253
- }
254
- get camera() {
255
- return this._cameraManager.camera;
256
- }
257
- get cameraEngine() {
258
- return this._cameraEngine;
259
- }
260
- get cameraManager() {
261
- return this._cameraManager;
262
- }
263
- get canvas() {
264
- return this._canvas.canvasElement;
265
- }
266
- get clearAlpha() {
267
- return this._clearAlpha;
268
- }
269
- set clearAlpha(value) {
270
- this._clearAlpha = value;
271
- }
272
- get clearColor() {
273
- return this._clearColor;
274
- }
275
- set clearColor(value) {
276
- this._clearColor = value;
277
- }
278
- get closed() {
279
- return this._closed;
280
- }
281
- get colorCache() {
282
- return this._colorCache;
283
- }
284
- get contactShadowBlur() {
285
- return this._environmentGeometryManager.contactShadow.blur;
286
- }
287
- set contactShadowBlur(value) {
288
- this._environmentGeometryManager.contactShadow.blur = value;
289
- }
290
- get contactShadowDarkness() {
291
- return this._environmentGeometryManager.contactShadow.darkness;
292
- }
293
- set contactShadowDarkness(value) {
294
- this._environmentGeometryManager.contactShadow.darkness = value;
295
- }
296
- get contactShadowHeight() {
297
- return this._environmentGeometryManager.contactShadow.height;
298
- }
299
- set contactShadowHeight(value) {
300
- this._environmentGeometryManager.contactShadow.height = value;
301
- }
302
- get contactShadowOpacity() {
303
- return this._environmentGeometryManager.contactShadow.opacity;
304
- }
305
- set contactShadowOpacity(value) {
306
- this._environmentGeometryManager.contactShadow.opacity = value;
307
- }
308
- get contactShadowVisibility() {
309
- return this._environmentGeometryManager.contactShadow.visible;
310
- }
311
- set contactShadowVisibility(value) {
312
- this._environmentGeometryManager.contactShadow.visible = value;
313
- }
314
- get continuousRendering() {
315
- return this._renderingManager.continuousRendering;
316
- }
317
- set continuousRendering(value) {
318
- this._renderingManager.continuousRendering = value;
319
- }
320
- get continuousShadowMapUpdate() {
321
- return this._renderingManager.continuousShadowMapUpdate;
322
- }
323
- set continuousShadowMapUpdate(value) {
324
- this._renderingManager.continuousShadowMapUpdate = value;
325
- }
326
- get defaultLineMaterial() {
327
- return this.materialLoader.defaultLineMaterialData;
328
- }
329
- set defaultLineMaterial(value) {
330
- this.materialLoader.defaultLineMaterialData = value;
331
- }
332
- get defaultMaterial() {
333
- return this.materialLoader.defaultMaterialData;
334
- }
335
- set defaultMaterial(value) {
336
- this.materialLoader.defaultMaterialData = value;
337
- }
338
- get defaultMaterialColor() {
339
- return this.materialLoader.defaultMaterialData.color;
340
- }
341
- set defaultMaterialColor(value) {
342
- this.materialLoader.defaultMaterialData.color = value;
343
- this.materialLoader.assignDefaultMaterial();
344
- this.materialLoader.defaultLineMaterialData.color = value;
345
- this.materialLoader.assignDefaultLineMaterial();
346
- this.materialLoader.defaultPointMaterialData.color = value;
347
- this.materialLoader.assignDefaultPointMaterial();
348
- }
349
- get defaultPointMaterial() {
350
- return this.materialLoader.defaultPointMaterialData;
351
- }
352
- set defaultPointMaterial(value) {
353
- this.materialLoader.defaultPointMaterialData = value;
354
- }
355
- get domEventEngine() {
356
- return this._domEventEngine;
357
- }
358
- get enableAR() {
359
- return this._enableAR;
360
- }
361
- set enableAR(value) {
362
- this._enableAR = value;
363
- }
364
- get environmentGeometryManager() {
365
- return this._environmentGeometryManager;
366
- }
367
- get environmentMap() {
368
- return this._environmentMap;
369
- }
370
- set environmentMap(value) {
371
- const previous = this._environmentMap;
372
- this._environmentMap = value;
373
- this._environmentMapLoader.load(this.environmentMap).catch((error) => {
374
- if (error instanceof viewer_shared_services_1.ShapeDiverViewerEnvironmentMapError) {
375
- this._logger.error(error.message);
376
- }
377
- else {
378
- this._logger.error(`RenderingEngine.environmentMap: Error while loading environment map ${value}: ${error}`);
379
- }
380
- this._environmentMap = previous;
381
- this._environmentMapLoader.load(this.environmentMap);
382
- });
383
- }
384
- get environmentMapAsBackground() {
385
- return this._environmentMapAsBackground;
386
- }
387
- set environmentMapAsBackground(value) {
388
- this._environmentMapAsBackground = value;
389
- }
390
- get environmentMapBlurriness() {
391
- return this._environmentMapBlurriness;
392
- }
393
- set environmentMapBlurriness(value) {
394
- this._environmentMapBlurriness = value;
395
- this._sceneTreeManager.scene.backgroundBlurriness =
396
- this._environmentMapBlurriness;
397
- }
398
- get environmentMapForUnlitMaterials() {
399
- return this._environmentMapForUnlitMaterials;
400
- }
401
- set environmentMapForUnlitMaterials(value) {
402
- this._environmentMapForUnlitMaterials = value;
403
- this._materialLoader.assignEnvironmentMapForUnlitMaterials(value);
404
- }
405
- get environmentMapIntensity() {
406
- return this._environmentMapIntensity;
407
- }
408
- set environmentMapIntensity(value) {
409
- this._environmentMapIntensity = value;
410
- this._sceneTreeManager.scene.backgroundIntensity = value;
411
- this._materialLoader.assignEnvironmentMapIntensity(value);
412
- (0, ThreeJsDataUtils_1.assignEnvironmentMapForThreeJsData)(this._environmentMapLoader.environmentMap, this._environmentMapLoader.type, this.environmentMapIntensity, this.environmentMapRotation);
413
- }
414
- get environmentMapLoader() {
415
- return this._environmentMapLoader;
416
- }
417
- get environmentMapResolution() {
418
- return this._environmentMapResolution;
419
- }
420
- set environmentMapResolution(value) {
421
- this._environmentMapResolution = value;
422
- this._environmentMapLoader.load(this.environmentMap);
423
- }
424
- get environmentMapRotation() {
425
- return this._environmentMapRotation;
426
- }
427
- set environmentMapRotation(value) {
428
- this._environmentMapRotation = value;
429
- this._materialLoader.assignEnvironmentMapRotation(value);
430
- (0, ThreeJsDataUtils_1.assignEnvironmentMapForThreeJsData)(this._environmentMapLoader.environmentMap, this._environmentMapLoader.type, this.environmentMapIntensity, this.environmentMapRotation);
431
- }
432
- get geometryLoader() {
433
- return this._geometryLoader;
434
- }
435
- get gridColor() {
436
- return this._environmentGeometryManager.grid.color;
437
- }
438
- set gridColor(value) {
439
- this._environmentGeometryManager.grid.color = value;
440
- }
441
- get gridVisibility() {
442
- return this._gridVisibility;
443
- }
444
- set gridVisibility(value) {
445
- this._environmentGeometryManager.grid.visible = value;
446
- this._gridVisibility = value;
447
- }
448
- get groundPlaneColor() {
449
- var _a;
450
- return (_a = this._environmentGeometryManager.groundPlane) === null || _a === void 0 ? void 0 : _a.color;
451
- }
452
- set groundPlaneColor(value) {
453
- this._environmentGeometryManager.groundPlane.color = value;
454
- }
455
- get groundPlaneShadowColor() {
456
- return this._environmentGeometryManager.groundPlaneShadow.color;
457
- }
458
- set groundPlaneShadowColor(value) {
459
- this._environmentGeometryManager.groundPlaneShadow.color = value;
460
- }
461
- get groundPlaneShadowVisibility() {
462
- return this._groundPlaneShadowVisibility;
463
- }
464
- set groundPlaneShadowVisibility(value) {
465
- this._environmentGeometryManager.groundPlaneShadow.visible = value;
466
- this._groundPlaneShadowVisibility = value;
467
- }
468
- get groundPlaneVisibility() {
469
- return this._groundPlaneVisibility;
470
- }
471
- set groundPlaneVisibility(value) {
472
- this._environmentGeometryManager.groundPlane.visible = value;
473
- this._groundPlaneVisibility = value;
474
- }
475
- get htmlElementAnchorLoader() {
476
- return this._htmlElementAnchorLoader;
477
- }
478
- get id() {
479
- return this._id;
480
- }
481
- get lightEngine() {
482
- return this._lightEngine;
483
- }
484
- get lightLoader() {
485
- return this._lightLoader;
486
- }
487
- get lightScene() {
488
- return this.lightEngine.lightScene
489
- ? this.lightEngine.lightScene.id
490
- : "";
491
- }
492
- get lightSceneId() {
493
- return this.lightEngine.lightScene
494
- ? this.lightEngine.lightScene.id
495
- : "";
496
- }
497
- get lights() {
498
- return this._lights;
499
- }
500
- set lights(value) {
501
- this._lights = value;
502
- }
503
- get loadDefaultCameras() {
504
- return this._cameraEngine.loadDefaultCameras;
505
- }
506
- set loadDefaultCameras(value) {
507
- this._cameraEngine.loadDefaultCameras = value;
508
- }
509
- get logoDivElement() {
510
- return this._logoDivElement;
511
- }
512
- get materialLoader() {
513
- return this._materialLoader;
514
- }
515
- get materialOverrideType() {
516
- return this.materialLoader.materialOverrideType;
517
- }
518
- set materialOverrideType(value) {
519
- this.materialLoader.materialOverrideType = value;
520
- }
521
- get maximumRenderingSize() {
522
- return this._maximumRenderingSize;
523
- }
524
- set maximumRenderingSize(value) {
525
- this._maximumRenderingSize = value;
526
- }
527
- get minimalRendering() {
528
- return this.renderingManager.minimalRendering;
529
- }
530
- get outputEncoding() {
531
- switch (this._renderer.outputColorSpace) {
532
- case THREE.SRGBColorSpace:
533
- return viewer_shared_types_1.TEXTURE_ENCODING.SRGB;
534
- case THREE.LinearSRGBColorSpace:
535
- default:
536
- return viewer_shared_types_1.TEXTURE_ENCODING.LINEAR;
537
- }
538
- }
539
- set outputEncoding(value) {
540
- switch (value) {
541
- case viewer_shared_types_1.TEXTURE_ENCODING.SRGB:
542
- this._renderer.outputColorSpace = THREE.SRGBColorSpace;
543
- break;
544
- case viewer_shared_types_1.TEXTURE_ENCODING.LINEAR:
545
- default:
546
- this._renderer.outputColorSpace = THREE.LinearSRGBColorSpace;
547
- break;
548
- }
549
- }
550
- get pause() {
551
- return this._pause;
552
- }
553
- set pause(value) {
554
- this._pause = value;
555
- }
556
- get physicallyCorrectLights() {
557
- return !this._useLegacyLights;
558
- }
559
- set physicallyCorrectLights(value) {
560
- this._useLegacyLights = !value;
561
- }
562
- get pointSize() {
563
- return this.materialLoader.defaultPointMaterialData.size || 1;
564
- }
565
- set pointSize(value) {
566
- this.materialLoader.defaultPointMaterialData.size = value;
567
- this.materialLoader.assignDefaultPointMaterial();
568
- }
569
- get postProcessingManager() {
570
- return this._postProcessingManager;
571
- }
572
- get postRenderingCallback() {
573
- return this._postRenderingCallback;
574
- }
575
- set postRenderingCallback(value) {
576
- this._postRenderingCallback = value;
577
- }
578
- get preRenderingCallback() {
579
- return this._preRenderingCallback;
580
- }
581
- set preRenderingCallback(value) {
582
- this._preRenderingCallback = value;
583
- }
584
- get renderer() {
585
- return this._renderer;
586
- }
587
- get renderingManager() {
588
- return this._renderingManager;
589
- }
590
- get scene() {
591
- return this._sceneTreeManager.scene;
592
- }
593
- get sceneTracingManager() {
594
- return this._sceneTracingManager;
595
- }
596
- get sceneTreeManager() {
597
- return this._sceneTreeManager;
598
- }
599
- get sessionSettingsId() {
600
- return this._settingsManager.sessionSettingsId;
601
- }
602
- get sessionSettingsMode() {
603
- return this._settingsManager.sessionSettingsMode;
604
- }
605
- get settingsEngine() {
606
- return this._settingsManager.settingsEngine;
607
- }
608
- get shadows() {
609
- return this._shadows;
610
- }
611
- set shadows(value) {
612
- this._shadows = value;
613
- }
614
- get show() {
615
- return this._show;
616
- }
617
- set show(value) {
618
- this._show = value;
619
- }
620
- get showStatistics() {
621
- return this._showStatistics;
622
- }
623
- set showStatistics(value) {
624
- this._showStatistics = value;
625
- }
626
- get softShadows() {
627
- return this._softShadows;
628
- }
629
- set softShadows(value) {
630
- this._softShadows = value;
631
- }
632
- get spinnerDivElement() {
633
- return this._spinnerDivElement;
634
- }
635
- get suspendSceneUpdates() {
636
- return this._sceneTreeManager.suspendSceneUpdates;
637
- }
638
- set suspendSceneUpdates(value) {
639
- this._sceneTreeManager.suspendSceneUpdates = value;
640
- }
641
- get textureEncoding() {
642
- switch (this.materialLoader.textureEncoding) {
643
- case THREE.SRGBColorSpace:
644
- return viewer_shared_types_1.TEXTURE_ENCODING.SRGB;
645
- case THREE.LinearSRGBColorSpace:
646
- default:
647
- return viewer_shared_types_1.TEXTURE_ENCODING.LINEAR;
648
- }
649
- }
650
- set textureEncoding(value) {
651
- switch (value) {
652
- case viewer_shared_types_1.TEXTURE_ENCODING.SRGB:
653
- this.environmentMapLoader.textureEncoding =
654
- THREE.SRGBColorSpace;
655
- this.materialLoader.textureEncoding = THREE.SRGBColorSpace;
656
- break;
657
- case viewer_shared_types_1.TEXTURE_ENCODING.LINEAR:
658
- default:
659
- this.environmentMapLoader.textureEncoding =
660
- THREE.LinearSRGBColorSpace;
661
- this.materialLoader.textureEncoding =
662
- THREE.LinearSRGBColorSpace;
663
- }
664
- }
665
- get toneMapping() {
666
- return this._toneMapping;
667
- }
668
- set toneMapping(value) {
669
- this._toneMapping = value;
670
- switch (value) {
671
- case viewer_shared_types_1.TONE_MAPPING.LINEAR:
672
- this._renderer.toneMapping = THREE.LinearToneMapping;
673
- break;
674
- case viewer_shared_types_1.TONE_MAPPING.REINHARD:
675
- this._renderer.toneMapping = THREE.ReinhardToneMapping;
676
- break;
677
- case viewer_shared_types_1.TONE_MAPPING.CINEON:
678
- this._renderer.toneMapping = THREE.CineonToneMapping;
679
- break;
680
- case viewer_shared_types_1.TONE_MAPPING.ACES_FILMIC:
681
- this._renderer.toneMapping = THREE.ACESFilmicToneMapping;
682
- break;
683
- case viewer_shared_types_1.TONE_MAPPING.NONE:
684
- default:
685
- this._renderer.toneMapping = THREE.NoToneMapping;
686
- }
687
- this.materialLoader.updateMaterials();
688
- this.postProcessingManager.changeEffectPass();
689
- }
690
- get toneMappingExposure() {
691
- return this._renderer.toneMappingExposure;
692
- }
693
- set toneMappingExposure(value) {
694
- this._renderer.toneMappingExposure = value;
695
- }
696
- get type() {
697
- return this._type;
698
- }
699
- set type(value) {
700
- this._type = value;
701
- }
702
- get usingSwiftShader() {
703
- return this.renderingManager.usingSwiftShader;
704
- }
705
- get viewportCreationDefinition() {
706
- return this._viewportCreationDefinition;
707
- }
708
- get visibility() {
709
- return this._visibility;
710
- }
711
- get visibilitySessionIds() {
712
- return this._visibilitySessionIds;
713
- }
714
- get visualizeAttributes() {
715
- return this._visualizeAttributes;
716
- }
717
- set visualizeAttributes(value) {
718
- this._visualizeAttributes = value;
719
- }
720
- addFlag(flag, inputToken) {
721
- return this._flagManager.addFlag(flag, inputToken);
722
- }
723
- applySettings(sections = {
724
- ar: true,
725
- scene: true,
726
- camera: true,
727
- light: true,
728
- environment: true,
729
- general: true,
730
- postprocessing: true,
731
- }, settingsEngine, updateViewport = true) {
732
- return __awaiter(this, void 0, void 0, function* () {
733
- return this._settingsManager.applySettings(sections, settingsEngine, updateViewport);
734
- });
735
- }
736
- assignSettingsEngine(settingsEngine) {
737
- this._settingsManager.assignSettingsEngine(settingsEngine);
738
- }
739
- close() {
740
- var _a, _b, _c;
741
- return __awaiter(this, void 0, void 0, function* () {
742
- this._closed = true;
743
- this._lightEngine.close();
744
- this._cameraEngine.close();
745
- this._renderer.clear(true, true, true);
746
- this._renderer.dispose();
747
- this._domEventEngine.removeAllDomEventListener();
748
- this._domEventEngine.dispose();
749
- (_a = this._canvas.canvasElement.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this._logoDivElement);
750
- (_b = this._canvas.canvasElement.parentElement) === null || _b === void 0 ? void 0 : _b.removeChild(this._spinnerDivElement);
751
- (_c = this._canvas.canvasElement.parentNode) === null || _c === void 0 ? void 0 : _c.removeChild(this._htmlElementAnchorLoader.parentDiv);
752
- this._canvas.reset();
753
- });
754
- }
755
- continueRendering() {
756
- this._pause = false;
757
- }
758
- convert3Dto2D(p) {
759
- return this.sceneTracingManager.convert3Dto2D(p);
760
- }
761
- createSDTFOverview(node) {
762
- return (0, SDTFUtils_1.createSDTFOverview)(node);
763
- }
764
- createThreeJsColor(color) {
765
- const sdColor = new SDColor_1.SDColor(this._converter.toThreeJsColorInput(color), color);
766
- sdColor.colorCorrection(this.automaticColorAdjustment);
767
- this._colorCache.push(sdColor);
768
- return sdColor;
769
- }
770
- displayErrorMessage(message) {
771
- for (let i = 0; i < this.logoDivElement.children.length; i++)
772
- this.logoDivElement.children[i].style.visibility =
773
- "hidden";
774
- const d = document.createElement("div");
775
- d.classList.add("sdv-error-message-container");
776
- this.logoDivElement.appendChild(d);
777
- const p = document.createElement("p");
778
- p.textContent = message;
779
- p.classList.add("sdv-error-message");
780
- p.style.color = this.logoDivElement.style.backgroundColor;
781
- d.appendChild(p);
782
- }
783
- evaluateFlagState() {
784
- this._flagManager.evaluateFlagState();
785
- }
786
- getEnvironmentMapImageUrl() {
787
- return this._environmentMapLoader.getEnvironmentMapImageUrl(this.environmentMap);
788
- }
789
- getScreenshot(type, encoderOptions) {
790
- return this._renderingManager.getScreenshot(type, encoderOptions);
791
- }
792
- getScreenshotAdvanced(type, encoderOptions, resolution, camera) {
793
- var _a, _b, _c, _d;
794
- return __awaiter(this, void 0, void 0, function* () {
795
- const busyModeFlag = this.addFlag(viewer_shared_types_1.FLAG_TYPE.BUSY_MODE);
796
- // if a resolution is provided, we temporarily disable the rendering of the viewer
797
- // so that we can take a screenshot with the correct resolution
798
- let originalAutomaticResizing = this.automaticResizing;
799
- let originalMaximumRenderingSize = JSON.stringify(this.maximumRenderingSize);
800
- let originalBeautyRenderDelay = this.beautyRenderDelay;
801
- this.beautyRenderDelay = 0; // avoid waiting for beauty render
802
- // if the resolution or camera is different, don't show the current viewport, but
803
- // create a screenshot and show that instead
804
- const current = this._renderingManager.getScreenshot();
805
- const img = new Image();
806
- img.src = current;
807
- img.style.position = "absolute";
808
- img.style.top = "0%";
809
- img.style.left = "0%";
810
- img.style.width = "100%";
811
- img.style.height = "100%";
812
- this.canvas.parentElement.appendChild(img);
813
- this.canvas.style.visibility = "hidden";
814
- // change the resolution if requested
815
- if (resolution) {
816
- this.automaticResizing = false;
817
- this.maximumRenderingSize = {
818
- width: resolution.width,
819
- height: resolution.height,
820
- };
821
- this.resize(resolution.width, resolution.height);
822
- }
823
- // if the camera is changed, we need to restore it afterwards
824
- let originalCameraId;
825
- // if the camera properties are changed, we need to restore them afterwards
826
- let originalCameraProperties = undefined;
827
- // new camera
828
- let newCamera;
829
- // change the camera if requested
830
- if (camera) {
831
- if (camera.name) {
832
- if (((_a = this._cameraEngine.camera) === null || _a === void 0 ? void 0 : _a.name) === camera.name) {
833
- // nothing to do, already assigned
834
- }
835
- else if (this._cameraEngine.cameras[camera.name]) {
836
- const specifiedCamera = this._cameraEngine.cameras[camera.name];
837
- originalCameraId = (_b = this._cameraEngine.camera) === null || _b === void 0 ? void 0 : _b.id;
838
- this._cameraEngine.assignCamera(specifiedCamera.id);
839
- }
840
- originalCameraProperties = {
841
- id: this._cameraEngine.camera.id,
842
- properties: {},
843
- };
844
- Object.keys(this._cameraEngine.camera).forEach((key) => {
845
- if (key !== "name") {
846
- originalCameraProperties.properties[key] = this._cameraEngine.camera[key];
847
- if (camera[key] !== undefined) {
848
- // @ts-ignore
849
- this._cameraEngine.camera[key] = camera[key];
850
- }
851
- }
852
- });
853
- }
854
- else if (camera.type) {
855
- // create a new camera
856
- newCamera = this._cameraEngine.createCamera(camera.type);
857
- originalCameraId = (_c = this._cameraEngine.camera) === null || _c === void 0 ? void 0 : _c.id;
858
- this._cameraEngine.assignCamera(newCamera.id);
859
- // assign the properties
860
- Object.keys(camera).forEach((key) => {
861
- if (key !== "type") {
862
- // @ts-ignore
863
- newCamera[key] = camera[key];
864
- }
865
- });
866
- }
867
- }
868
- this.renderingManager.render();
869
- yield new Promise((resolve) => {
870
- const token = this._eventEngine.addListener(viewer_shared_services_1.EVENTTYPE_RENDERING.BEAUTY_RENDERING_FINISHED, () => {
871
- resolve();
872
- this._eventEngine.removeListener(token);
873
- });
874
- });
875
- const screenshot = this._renderingManager.getScreenshot(type, encoderOptions);
876
- // sometimes the screenshot is not ready immediately (even though it should be)
877
- yield new Promise((resolve) => setTimeout(resolve, 0));
878
- if (resolution) {
879
- // restore original settings
880
- this.automaticResizing = originalAutomaticResizing;
881
- this.maximumRenderingSize = JSON.parse(originalMaximumRenderingSize);
882
- }
883
- if (camera) {
884
- if (originalCameraId) {
885
- this._cameraEngine.assignCamera(originalCameraId);
886
- }
887
- if (originalCameraProperties) {
888
- if (((_d = this._cameraEngine.camera) === null || _d === void 0 ? void 0 : _d.id) ===
889
- originalCameraProperties.id) {
890
- Object.keys(originalCameraProperties.properties).forEach((key) => {
891
- // @ts-ignore
892
- this._cameraEngine.camera[key] =
893
- originalCameraProperties.properties[key];
894
- });
895
- }
896
- }
897
- if (newCamera) {
898
- this._cameraEngine.removeCamera(newCamera.id);
899
- }
900
- }
901
- // clean up
902
- this.renderingManager.render();
903
- this.beautyRenderDelay = originalBeautyRenderDelay;
904
- this.canvas.style.visibility = "visible";
905
- this.canvas.parentElement.removeChild(img);
906
- this.removeFlag(busyModeFlag);
907
- return screenshot;
908
- });
909
- }
910
- isMobileDeviceWithoutBrowserARSupport() {
911
- return this._arManager.isMobileDeviceWithoutBrowserARSupport();
912
- }
913
- pauseRendering() {
914
- this._pause = true;
915
- }
916
- pointerEventToRay(event) {
917
- return this._sceneTracingManager.pointerEventToRay(event);
918
- }
919
- raytraceScene(origin, direction, filterCriteria) {
920
- return this._sceneTracingManager.raytraceScene(origin, direction, filterCriteria);
921
- }
922
- removeFlag(token) {
923
- return this._flagManager.removeFlag(token);
924
- }
925
- reset() {
926
- var _a, _b, _c, _d;
927
- (_a = this._stateEngine.viewportEngines[this.id]) === null || _a === void 0 ? void 0 : _a.settingsAssigned.reset();
928
- (_b = this._stateEngine.viewportEngines[this.id]) === null || _b === void 0 ? void 0 : _b.boundingBoxCreated.reset();
929
- (_c = this._stateEngine.viewportEngines[this.id]) === null || _c === void 0 ? void 0 : _c.environmentMapLoaded.reset();
930
- (_d = this._stateEngine.viewportEngines[this.id]) === null || _d === void 0 ? void 0 : _d.boundingBoxCreated.then(() => {
931
- this._environmentGeometryManager.changeSceneExtents(this._sceneTreeManager.boundingBox);
932
- });
933
- }
934
- resize(width, height) {
935
- this._renderingManager.resize(width, height);
936
- this._renderingManager.render();
937
- }
938
- saveSettings(settingsEngine) {
939
- this._settingsManager.saveSettings(settingsEngine);
940
- }
941
- start() {
942
- var _a;
943
- this._renderingManager.start();
944
- (_a = this._stateEngine.viewportEngines[this.id]) === null || _a === void 0 ? void 0 : _a.boundingBoxCreated.then(() => {
945
- this._environmentGeometryManager.changeSceneExtents(this._sceneTreeManager.boundingBox);
946
- });
947
- if (this._settingsManager.sessionSettingsMode ===
948
- viewer_shared_services_1.SESSION_SETTINGS_MODE.NONE) {
949
- this.environmentMap = "photo_studio";
950
- }
951
- }
952
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
953
- update(id) {
954
- if (this.closed)
955
- return;
956
- if (this.sceneTreeManager.suspendSceneUpdates === true)
957
- return;
958
- this._sceneTreeManager.updateSceneTree(this._tree.root);
959
- this._renderingManager.updateShadowMap();
960
- this._animationEngine.updateAnimationData();
961
- this._renderingManager.render();
962
- this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE_VIEWPORT.VIEWPORT_UPDATED, {
963
- viewportId: this.id,
964
- });
965
- }
966
- updateEnvironmentGeometry() {
967
- this._environmentGeometryManager.updateEnvironmentGeometryPosition();
968
- }
969
- viewInAR(file, options) {
970
- return this._arManager.viewInAR(file, options);
971
- }
972
- viewableInAR() {
973
- return this._arManager.viewableInAR();
974
- }
975
- }
976
- exports.RenderingEngine = RenderingEngine;
977
- _RenderingEngine_defaultLogo = new WeakMap(), _RenderingEngine_defaultSpinner = new WeakMap();
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
45
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
46
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
47
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
48
+ };
49
+ var _RenderingEngine_defaultLogo, _RenderingEngine_defaultSpinner;
50
+ Object.defineProperty(exports, "__esModule", { value: true });
51
+ exports.RenderingEngine = void 0;
52
+ const THREE = __importStar(require("three"));
53
+ const viewer_rendering_engine_animation_engine_1 = require("@shapediver/viewer.rendering-engine.animation-engine");
54
+ const viewer_rendering_engine_camera_engine_1 = require("@shapediver/viewer.rendering-engine.camera-engine");
55
+ const viewer_rendering_engine_canvas_engine_1 = require("@shapediver/viewer.rendering-engine.canvas-engine");
56
+ const viewer_rendering_engine_light_engine_1 = require("@shapediver/viewer.rendering-engine.light-engine");
57
+ const viewer_shared_node_tree_1 = require("@shapediver/viewer.shared.node-tree");
58
+ const viewer_shared_services_1 = require("@shapediver/viewer.shared.services");
59
+ const viewer_shared_types_1 = require("@shapediver/viewer.shared.types");
60
+ const gl_matrix_1 = require("gl-matrix");
61
+ const EnvironmentMapLoader_1 = require("./loaders/EnvironmentMapLoader");
62
+ const GeometryLoader_1 = require("./loaders/GeometryLoader");
63
+ const HTMLElementAnchorLoader_1 = require("./loaders/HTMLElementAnchorLoader");
64
+ const LightLoader_1 = require("./loaders/LightLoader");
65
+ const MaterialLoader_1 = require("./loaders/MaterialLoader");
66
+ const ARManager_1 = require("./managers/ARManager");
67
+ const CameraManager_1 = require("./managers/CameraManager");
68
+ const EnvironmentGeometryManager_1 = require("./managers/EnvironmentGeometryManager");
69
+ const FlagManager_1 = require("./managers/FlagManager");
70
+ const PostProcessingManager_1 = require("./managers/PostProcessingManager");
71
+ const RenderingManager_1 = require("./managers/RenderingManager");
72
+ const SceneTracingManager_1 = require("./managers/SceneTracingManager");
73
+ const SDTFUtils_1 = require("./managers/sceneTree/SDTFUtils");
74
+ const ThreeJsDataUtils_1 = require("./managers/sceneTree/ThreeJsDataUtils");
75
+ const SceneTreeManager_1 = require("./managers/SceneTreeManager");
76
+ const SettingsManager_1 = require("./managers/SettingsManager");
77
+ const SDColor_1 = require("./objects/SDColor");
78
+ const viewport_css_1 = require("./styling/viewport-css");
79
+ class RenderingEngine {
80
+ constructor(properties) {
81
+ this._animationEngine = viewer_rendering_engine_animation_engine_1.AnimationEngine.instance;
82
+ this._canvasEngine = viewer_rendering_engine_canvas_engine_1.CanvasEngine.instance;
83
+ this._colorCache = [];
84
+ // utils
85
+ this._converter = viewer_shared_services_1.Converter.instance;
86
+ this._logger = viewer_shared_services_1.Logger.instance;
87
+ this._eventEngine = viewer_shared_services_1.EventEngine.instance;
88
+ this._stateEngine = viewer_shared_services_1.StateEngine.instance;
89
+ this._systemInfo = viewer_shared_services_1.SystemInfo.instance;
90
+ this._tree = viewer_shared_node_tree_1.Tree.instance;
91
+ _RenderingEngine_defaultLogo.set(this, "https://viewer.shapediver.com/v3/graphics/logo_animated_breath.svg");
92
+ _RenderingEngine_defaultSpinner.set(this, "https://viewer.shapediver.com/v3/graphics/spinner_ripple.svg");
93
+ // settings
94
+ this._arRotation = gl_matrix_1.vec3.create();
95
+ this._arScale = gl_matrix_1.vec3.fromValues(1, 1, 1);
96
+ this._arTranslation = gl_matrix_1.vec3.create();
97
+ this._automaticColorAdjustment = true;
98
+ this._automaticResizing = true;
99
+ this._beautyRenderBlendingDuration = 1500;
100
+ this._beautyRenderDelay = 50;
101
+ this._busy = false;
102
+ this._busyModeDisplay = viewer_shared_types_1.BUSY_MODE_DISPLAY.SPINNER;
103
+ this._clearAlpha = 1.0;
104
+ this._clearColor = "#ffffff";
105
+ // viewer global vars
106
+ this._closed = false;
107
+ this._enableAR = true;
108
+ this._environmentMap = "null";
109
+ this._environmentMapAsBackground = false;
110
+ this._environmentMapBlurriness = 0;
111
+ this._environmentMapForUnlitMaterials = false;
112
+ this._environmentMapIntensity = 1;
113
+ this._environmentMapResolution = "1024";
114
+ this._environmentMapRotation = gl_matrix_1.quat.create();
115
+ this._gridVisibility = true;
116
+ this._groundPlaneShadowVisibility = false;
117
+ this._groundPlaneVisibility = true;
118
+ this._lights = true;
119
+ this._maximumRenderingSize = this
120
+ ._systemInfo.isMobile
121
+ ? { width: 1280, height: 720 }
122
+ : { width: 1920, height: 1080 };
123
+ this._pause = false;
124
+ this._shadows = true;
125
+ this._show = false;
126
+ this._showStatistics = false;
127
+ this._softShadows = true;
128
+ this._toneMapping = viewer_shared_types_1.TONE_MAPPING.NONE;
129
+ this._type = viewer_shared_types_1.RENDERER_TYPE.STANDARD;
130
+ this._useLegacyLights = false;
131
+ // THREE object has default Y, we change that (although it doesn't work everywhere)
132
+ THREE.Object3D.DEFAULT_UP = new THREE.Vector3(0, 0, 1);
133
+ THREE.ColorManagement.enabled = false;
134
+ // adapt some of the three.js shaders according to our needs
135
+ (0, MaterialLoader_1.adaptShaders)();
136
+ // add css to the document
137
+ const style = document.createElement("style");
138
+ style.innerHTML = viewport_css_1.css;
139
+ document.head.appendChild(style);
140
+ const prop = Object.assign({}, properties);
141
+ this._viewportCreationDefinition = prop;
142
+ const branding = Object.assign({}, prop.branding);
143
+ // setting some of the provided properties
144
+ this._id = prop.id || viewer_shared_services_1.UuidGenerator.instance.create();
145
+ this._visibilitySessionIds = prop.visibilitySessionIds;
146
+ this._visibility = prop.visibility || viewer_shared_types_1.VISIBILITY_MODE.SESSION;
147
+ this._branding = {
148
+ logo: branding.logo === undefined ? __classPrivateFieldGet(this, _RenderingEngine_defaultLogo, "f") : branding.logo,
149
+ backgroundColor: branding.backgroundColor || "#393a45FF",
150
+ busyModeSpinner: branding.busyModeSpinner === undefined
151
+ ? __classPrivateFieldGet(this, _RenderingEngine_defaultSpinner, "f")
152
+ : branding.busyModeSpinner,
153
+ busyModeDisplay: branding.busyModeDisplay || viewer_shared_types_1.BUSY_MODE_DISPLAY.SPINNER,
154
+ spinnerPositioning: branding.spinnerPositioning || viewer_shared_types_1.SPINNER_POSITIONING.BOTTOM_RIGHT,
155
+ };
156
+ // creation of viewer essentials
157
+ this._canvas = this._canvasEngine.getCanvas(this._canvasEngine.createCanvasObject(prop.canvas));
158
+ // creation of the engines (all singleton engines were created already)
159
+ this._domEventEngine = new viewer_shared_services_1.DomEventEngine(this._canvas.canvasElement);
160
+ this._cameraEngine = new viewer_rendering_engine_camera_engine_1.CameraEngine(this);
161
+ this._lightEngine = new viewer_rendering_engine_light_engine_1.LightEngine(this);
162
+ // creation of the managers (all singleton engines were created already)
163
+ this._cameraManager = new CameraManager_1.CameraManager(this);
164
+ this._environmentGeometryManager = new EnvironmentGeometryManager_1.EnvironmentGeometryManager(this);
165
+ this._sceneTracingManager = new SceneTracingManager_1.SceneTracingManager(this);
166
+ this._sceneTreeManager = new SceneTreeManager_1.SceneTreeManager(this);
167
+ this._renderingManager = new RenderingManager_1.RenderingManager(this);
168
+ this._postProcessingManager = new PostProcessingManager_1.PostProcessingManager(this);
169
+ this._settingsManager = new SettingsManager_1.SettingsManager(this, {
170
+ sessionSettingsMode: prop.sessionSettingsMode || viewer_shared_services_1.SESSION_SETTINGS_MODE.FIRST,
171
+ sessionSettingsId: prop.sessionSettingsId,
172
+ });
173
+ this._arManager = new ARManager_1.ARManager(this);
174
+ this._flagManager = new FlagManager_1.FlagManager(this, {
175
+ flags: prop.flags,
176
+ });
177
+ // loaders
178
+ this._environmentMapLoader = new EnvironmentMapLoader_1.EnvironmentMapLoader(this);
179
+ this._materialLoader = new MaterialLoader_1.MaterialLoader(this);
180
+ this._geometryLoader = new GeometryLoader_1.GeometryLoader(this);
181
+ this._htmlElementAnchorLoader = new HTMLElementAnchorLoader_1.HTMLElementAnchorLoader(this);
182
+ this._lightLoader = new LightLoader_1.LightLoader(this);
183
+ // start the creation and initialization process
184
+ this._renderer = this.renderingManager.createRenderer(this._canvas.canvasElement);
185
+ this._spinnerDivElement = this.renderingManager.addSpinner(this._canvas.canvasElement, this._branding);
186
+ this._logoDivElement = this.renderingManager.addLogo(this._canvas.canvasElement, this._branding);
187
+ // creation of the managers (all singleton engines were created already)
188
+ this._cameraManager.init();
189
+ this._environmentGeometryManager.init();
190
+ this._sceneTracingManager.init();
191
+ this._sceneTreeManager.init();
192
+ this._renderingManager.init();
193
+ this._postProcessingManager.init();
194
+ this._settingsManager.init();
195
+ this._arManager.init();
196
+ // loaders
197
+ this._environmentMapLoader.init();
198
+ this._materialLoader.init();
199
+ this._geometryLoader.init();
200
+ this._htmlElementAnchorLoader.init();
201
+ this._lightLoader.init();
202
+ }
203
+ get arRotation() {
204
+ return this._arRotation;
205
+ }
206
+ set arRotation(value) {
207
+ this._arRotation = value;
208
+ }
209
+ get arScale() {
210
+ return this._arScale;
211
+ }
212
+ set arScale(value) {
213
+ this._arScale = value;
214
+ }
215
+ get arTranslation() {
216
+ return this._arTranslation;
217
+ }
218
+ set arTranslation(value) {
219
+ this._arTranslation = value;
220
+ }
221
+ get automaticColorAdjustment() {
222
+ return this._automaticColorAdjustment;
223
+ }
224
+ set automaticColorAdjustment(value) {
225
+ if (this._automaticColorAdjustment === value)
226
+ return;
227
+ this._automaticColorAdjustment = value;
228
+ this._colorCache.forEach((c) => c.colorCorrection(value));
229
+ this._materialLoader.assignColorCorrection(value);
230
+ }
231
+ get automaticResizing() {
232
+ return this._automaticResizing;
233
+ }
234
+ set automaticResizing(value) {
235
+ this._automaticResizing = value;
236
+ }
237
+ get beautyRenderBlendingDuration() {
238
+ return this._beautyRenderBlendingDuration;
239
+ }
240
+ set beautyRenderBlendingDuration(value) {
241
+ this._beautyRenderBlendingDuration = value;
242
+ }
243
+ get beautyRenderDelay() {
244
+ return this._beautyRenderDelay;
245
+ }
246
+ set beautyRenderDelay(value) {
247
+ this._beautyRenderDelay = value;
248
+ }
249
+ get branding() {
250
+ return this._branding;
251
+ }
252
+ get busy() {
253
+ return this._busy;
254
+ }
255
+ set busy(value) {
256
+ this._busy = value;
257
+ }
258
+ get busyModeDisplay() {
259
+ return this._busyModeDisplay;
260
+ }
261
+ set busyModeDisplay(value) {
262
+ this._busyModeDisplay = value;
263
+ }
264
+ get camera() {
265
+ return this._cameraManager.camera;
266
+ }
267
+ get cameraEngine() {
268
+ return this._cameraEngine;
269
+ }
270
+ get cameraManager() {
271
+ return this._cameraManager;
272
+ }
273
+ get canvas() {
274
+ return this._canvas.canvasElement;
275
+ }
276
+ get clearAlpha() {
277
+ return this._clearAlpha;
278
+ }
279
+ set clearAlpha(value) {
280
+ this._clearAlpha = value;
281
+ }
282
+ get clearColor() {
283
+ return this._clearColor;
284
+ }
285
+ set clearColor(value) {
286
+ this._clearColor = value;
287
+ }
288
+ get closed() {
289
+ return this._closed;
290
+ }
291
+ get colorCache() {
292
+ return this._colorCache;
293
+ }
294
+ get contactShadowBlur() {
295
+ return this._environmentGeometryManager.contactShadow.blur;
296
+ }
297
+ set contactShadowBlur(value) {
298
+ this._environmentGeometryManager.contactShadow.blur = value;
299
+ }
300
+ get contactShadowDarkness() {
301
+ return this._environmentGeometryManager.contactShadow.darkness;
302
+ }
303
+ set contactShadowDarkness(value) {
304
+ this._environmentGeometryManager.contactShadow.darkness = value;
305
+ }
306
+ get contactShadowHeight() {
307
+ return this._environmentGeometryManager.contactShadow.height;
308
+ }
309
+ set contactShadowHeight(value) {
310
+ this._environmentGeometryManager.contactShadow.height = value;
311
+ }
312
+ get contactShadowOpacity() {
313
+ return this._environmentGeometryManager.contactShadow.opacity;
314
+ }
315
+ set contactShadowOpacity(value) {
316
+ this._environmentGeometryManager.contactShadow.opacity = value;
317
+ }
318
+ get contactShadowVisibility() {
319
+ return this._environmentGeometryManager.contactShadow.visible;
320
+ }
321
+ set contactShadowVisibility(value) {
322
+ this._environmentGeometryManager.contactShadow.visible = value;
323
+ }
324
+ get continuousRendering() {
325
+ return this._renderingManager.continuousRendering;
326
+ }
327
+ set continuousRendering(value) {
328
+ this._renderingManager.continuousRendering = value;
329
+ }
330
+ get continuousShadowMapUpdate() {
331
+ return this._renderingManager.continuousShadowMapUpdate;
332
+ }
333
+ set continuousShadowMapUpdate(value) {
334
+ this._renderingManager.continuousShadowMapUpdate = value;
335
+ }
336
+ get defaultLineMaterial() {
337
+ return this.materialLoader.defaultLineMaterialData;
338
+ }
339
+ set defaultLineMaterial(value) {
340
+ this.materialLoader.defaultLineMaterialData = value;
341
+ }
342
+ get defaultMaterial() {
343
+ return this.materialLoader.defaultMaterialData;
344
+ }
345
+ set defaultMaterial(value) {
346
+ this.materialLoader.defaultMaterialData = value;
347
+ }
348
+ get defaultMaterialColor() {
349
+ return this.materialLoader.defaultMaterialData.color;
350
+ }
351
+ set defaultMaterialColor(value) {
352
+ this.materialLoader.defaultMaterialData.color = value;
353
+ this.materialLoader.assignDefaultMaterial();
354
+ this.materialLoader.defaultLineMaterialData.color = value;
355
+ this.materialLoader.assignDefaultLineMaterial();
356
+ this.materialLoader.defaultPointMaterialData.color = value;
357
+ this.materialLoader.assignDefaultPointMaterial();
358
+ }
359
+ get defaultPointMaterial() {
360
+ return this.materialLoader.defaultPointMaterialData;
361
+ }
362
+ set defaultPointMaterial(value) {
363
+ this.materialLoader.defaultPointMaterialData = value;
364
+ }
365
+ get domEventEngine() {
366
+ return this._domEventEngine;
367
+ }
368
+ get enableAR() {
369
+ return this._enableAR;
370
+ }
371
+ set enableAR(value) {
372
+ this._enableAR = value;
373
+ }
374
+ get environmentGeometryManager() {
375
+ return this._environmentGeometryManager;
376
+ }
377
+ get environmentMap() {
378
+ return this._environmentMap;
379
+ }
380
+ set environmentMap(value) {
381
+ const previous = this._environmentMap;
382
+ this._environmentMap = value;
383
+ this._environmentMapLoader.load(this.environmentMap).catch((error) => {
384
+ if (error instanceof viewer_shared_services_1.ShapeDiverViewerEnvironmentMapError) {
385
+ this._logger.error(error.message);
386
+ }
387
+ else {
388
+ this._logger.error(`RenderingEngine.environmentMap: Error while loading environment map ${value}: ${error}`);
389
+ }
390
+ this._environmentMap = previous;
391
+ this._environmentMapLoader.load(this.environmentMap);
392
+ });
393
+ }
394
+ get environmentMapAsBackground() {
395
+ return this._environmentMapAsBackground;
396
+ }
397
+ set environmentMapAsBackground(value) {
398
+ this._environmentMapAsBackground = value;
399
+ }
400
+ get environmentMapBlurriness() {
401
+ return this._environmentMapBlurriness;
402
+ }
403
+ set environmentMapBlurriness(value) {
404
+ this._environmentMapBlurriness = value;
405
+ this._sceneTreeManager.scene.backgroundBlurriness =
406
+ this._environmentMapBlurriness;
407
+ }
408
+ get environmentMapForUnlitMaterials() {
409
+ return this._environmentMapForUnlitMaterials;
410
+ }
411
+ set environmentMapForUnlitMaterials(value) {
412
+ this._environmentMapForUnlitMaterials = value;
413
+ this._materialLoader.assignEnvironmentMapForUnlitMaterials(value);
414
+ }
415
+ get environmentMapIntensity() {
416
+ return this._environmentMapIntensity;
417
+ }
418
+ set environmentMapIntensity(value) {
419
+ this._environmentMapIntensity = value;
420
+ this._sceneTreeManager.scene.backgroundIntensity = value;
421
+ this._materialLoader.assignEnvironmentMapIntensity(value);
422
+ (0, ThreeJsDataUtils_1.assignEnvironmentMapForThreeJsData)(this._environmentMapLoader.environmentMap, this._environmentMapLoader.type, this.environmentMapIntensity, this.environmentMapRotation);
423
+ }
424
+ get environmentMapLoader() {
425
+ return this._environmentMapLoader;
426
+ }
427
+ get environmentMapResolution() {
428
+ return this._environmentMapResolution;
429
+ }
430
+ set environmentMapResolution(value) {
431
+ this._environmentMapResolution = value;
432
+ this._environmentMapLoader.load(this.environmentMap);
433
+ }
434
+ get environmentMapRotation() {
435
+ return this._environmentMapRotation;
436
+ }
437
+ set environmentMapRotation(value) {
438
+ this._environmentMapRotation = value;
439
+ this._materialLoader.assignEnvironmentMapRotation(value);
440
+ (0, ThreeJsDataUtils_1.assignEnvironmentMapForThreeJsData)(this._environmentMapLoader.environmentMap, this._environmentMapLoader.type, this.environmentMapIntensity, this.environmentMapRotation);
441
+ }
442
+ get geometryLoader() {
443
+ return this._geometryLoader;
444
+ }
445
+ get gridColor() {
446
+ return this._environmentGeometryManager.grid.color;
447
+ }
448
+ set gridColor(value) {
449
+ this._environmentGeometryManager.grid.color = value;
450
+ }
451
+ get gridVisibility() {
452
+ return this._gridVisibility;
453
+ }
454
+ set gridVisibility(value) {
455
+ this._environmentGeometryManager.grid.visible = value;
456
+ this._gridVisibility = value;
457
+ }
458
+ get groundPlaneColor() {
459
+ var _a;
460
+ return (_a = this._environmentGeometryManager.groundPlane) === null || _a === void 0 ? void 0 : _a.color;
461
+ }
462
+ set groundPlaneColor(value) {
463
+ this._environmentGeometryManager.groundPlane.color = value;
464
+ }
465
+ get groundPlaneShadowColor() {
466
+ return this._environmentGeometryManager.groundPlaneShadow.color;
467
+ }
468
+ set groundPlaneShadowColor(value) {
469
+ this._environmentGeometryManager.groundPlaneShadow.color = value;
470
+ }
471
+ get groundPlaneShadowVisibility() {
472
+ return this._groundPlaneShadowVisibility;
473
+ }
474
+ set groundPlaneShadowVisibility(value) {
475
+ this._environmentGeometryManager.groundPlaneShadow.visible = value;
476
+ this._groundPlaneShadowVisibility = value;
477
+ }
478
+ get groundPlaneVisibility() {
479
+ return this._groundPlaneVisibility;
480
+ }
481
+ set groundPlaneVisibility(value) {
482
+ this._environmentGeometryManager.groundPlane.visible = value;
483
+ this._groundPlaneVisibility = value;
484
+ }
485
+ get htmlElementAnchorLoader() {
486
+ return this._htmlElementAnchorLoader;
487
+ }
488
+ get id() {
489
+ return this._id;
490
+ }
491
+ get lightEngine() {
492
+ return this._lightEngine;
493
+ }
494
+ get lightLoader() {
495
+ return this._lightLoader;
496
+ }
497
+ get lightScene() {
498
+ return this.lightEngine.lightScene
499
+ ? this.lightEngine.lightScene.id
500
+ : "";
501
+ }
502
+ get lightSceneId() {
503
+ return this.lightEngine.lightScene
504
+ ? this.lightEngine.lightScene.id
505
+ : "";
506
+ }
507
+ get lights() {
508
+ return this._lights;
509
+ }
510
+ set lights(value) {
511
+ this._lights = value;
512
+ }
513
+ get loadDefaultCameras() {
514
+ return this._cameraEngine.loadDefaultCameras;
515
+ }
516
+ set loadDefaultCameras(value) {
517
+ this._cameraEngine.loadDefaultCameras = value;
518
+ }
519
+ get logoDivElement() {
520
+ return this._logoDivElement;
521
+ }
522
+ get materialLoader() {
523
+ return this._materialLoader;
524
+ }
525
+ get materialOverrideType() {
526
+ return this.materialLoader.materialOverrideType;
527
+ }
528
+ set materialOverrideType(value) {
529
+ this.materialLoader.materialOverrideType = value;
530
+ }
531
+ get maximumRenderingSize() {
532
+ return this._maximumRenderingSize;
533
+ }
534
+ set maximumRenderingSize(value) {
535
+ this._maximumRenderingSize = value;
536
+ }
537
+ get minimalRendering() {
538
+ return this.renderingManager.minimalRendering;
539
+ }
540
+ get outputEncoding() {
541
+ switch (this._renderer.outputColorSpace) {
542
+ case THREE.SRGBColorSpace:
543
+ return viewer_shared_types_1.TEXTURE_ENCODING.SRGB;
544
+ case THREE.LinearSRGBColorSpace:
545
+ default:
546
+ return viewer_shared_types_1.TEXTURE_ENCODING.LINEAR;
547
+ }
548
+ }
549
+ set outputEncoding(value) {
550
+ switch (value) {
551
+ case viewer_shared_types_1.TEXTURE_ENCODING.SRGB:
552
+ this._renderer.outputColorSpace = THREE.SRGBColorSpace;
553
+ break;
554
+ case viewer_shared_types_1.TEXTURE_ENCODING.LINEAR:
555
+ default:
556
+ this._renderer.outputColorSpace = THREE.LinearSRGBColorSpace;
557
+ break;
558
+ }
559
+ }
560
+ get pause() {
561
+ return this._pause;
562
+ }
563
+ set pause(value) {
564
+ this._pause = value;
565
+ }
566
+ get physicallyCorrectLights() {
567
+ return !this._useLegacyLights;
568
+ }
569
+ set physicallyCorrectLights(value) {
570
+ this._useLegacyLights = !value;
571
+ }
572
+ get pointSize() {
573
+ return this.materialLoader.defaultPointMaterialData.size || 1;
574
+ }
575
+ set pointSize(value) {
576
+ this.materialLoader.defaultPointMaterialData.size = value;
577
+ this.materialLoader.assignDefaultPointMaterial();
578
+ }
579
+ get postProcessingManager() {
580
+ return this._postProcessingManager;
581
+ }
582
+ get postRenderingCallback() {
583
+ return this._postRenderingCallback;
584
+ }
585
+ set postRenderingCallback(value) {
586
+ this._postRenderingCallback = value;
587
+ }
588
+ get preRenderingCallback() {
589
+ return this._preRenderingCallback;
590
+ }
591
+ set preRenderingCallback(value) {
592
+ this._preRenderingCallback = value;
593
+ }
594
+ get renderer() {
595
+ return this._renderer;
596
+ }
597
+ get renderingManager() {
598
+ return this._renderingManager;
599
+ }
600
+ get scene() {
601
+ return this._sceneTreeManager.scene;
602
+ }
603
+ get sceneTracingManager() {
604
+ return this._sceneTracingManager;
605
+ }
606
+ get sceneTreeManager() {
607
+ return this._sceneTreeManager;
608
+ }
609
+ get sessionSettingsId() {
610
+ return this._settingsManager.sessionSettingsId;
611
+ }
612
+ get sessionSettingsMode() {
613
+ return this._settingsManager.sessionSettingsMode;
614
+ }
615
+ get settingsEngine() {
616
+ return this._settingsManager.settingsEngine;
617
+ }
618
+ get shadows() {
619
+ return this._shadows;
620
+ }
621
+ set shadows(value) {
622
+ this._shadows = value;
623
+ }
624
+ get show() {
625
+ return this._show;
626
+ }
627
+ set show(value) {
628
+ this._show = value;
629
+ }
630
+ get showStatistics() {
631
+ return this._showStatistics;
632
+ }
633
+ set showStatistics(value) {
634
+ this._showStatistics = value;
635
+ }
636
+ get softShadows() {
637
+ return this._softShadows;
638
+ }
639
+ set softShadows(value) {
640
+ this._softShadows = value;
641
+ }
642
+ get spinnerDivElement() {
643
+ return this._spinnerDivElement;
644
+ }
645
+ get suspendSceneUpdates() {
646
+ return this._sceneTreeManager.suspendSceneUpdates;
647
+ }
648
+ set suspendSceneUpdates(value) {
649
+ this._sceneTreeManager.suspendSceneUpdates = value;
650
+ }
651
+ get textureEncoding() {
652
+ switch (this.materialLoader.textureEncoding) {
653
+ case THREE.SRGBColorSpace:
654
+ return viewer_shared_types_1.TEXTURE_ENCODING.SRGB;
655
+ case THREE.LinearSRGBColorSpace:
656
+ default:
657
+ return viewer_shared_types_1.TEXTURE_ENCODING.LINEAR;
658
+ }
659
+ }
660
+ set textureEncoding(value) {
661
+ switch (value) {
662
+ case viewer_shared_types_1.TEXTURE_ENCODING.SRGB:
663
+ this.environmentMapLoader.textureEncoding =
664
+ THREE.SRGBColorSpace;
665
+ this.materialLoader.textureEncoding = THREE.SRGBColorSpace;
666
+ break;
667
+ case viewer_shared_types_1.TEXTURE_ENCODING.LINEAR:
668
+ default:
669
+ this.environmentMapLoader.textureEncoding =
670
+ THREE.LinearSRGBColorSpace;
671
+ this.materialLoader.textureEncoding =
672
+ THREE.LinearSRGBColorSpace;
673
+ }
674
+ }
675
+ get toneMapping() {
676
+ return this._toneMapping;
677
+ }
678
+ set toneMapping(value) {
679
+ this._toneMapping = value;
680
+ switch (value) {
681
+ case viewer_shared_types_1.TONE_MAPPING.LINEAR:
682
+ this._renderer.toneMapping = THREE.LinearToneMapping;
683
+ break;
684
+ case viewer_shared_types_1.TONE_MAPPING.REINHARD:
685
+ this._renderer.toneMapping = THREE.ReinhardToneMapping;
686
+ break;
687
+ case viewer_shared_types_1.TONE_MAPPING.CINEON:
688
+ this._renderer.toneMapping = THREE.CineonToneMapping;
689
+ break;
690
+ case viewer_shared_types_1.TONE_MAPPING.ACES_FILMIC:
691
+ this._renderer.toneMapping = THREE.ACESFilmicToneMapping;
692
+ break;
693
+ case viewer_shared_types_1.TONE_MAPPING.NONE:
694
+ default:
695
+ this._renderer.toneMapping = THREE.NoToneMapping;
696
+ }
697
+ this.materialLoader.updateMaterials();
698
+ this.postProcessingManager.changeEffectPass();
699
+ }
700
+ get toneMappingExposure() {
701
+ return this._renderer.toneMappingExposure;
702
+ }
703
+ set toneMappingExposure(value) {
704
+ this._renderer.toneMappingExposure = value;
705
+ }
706
+ get type() {
707
+ return this._type;
708
+ }
709
+ set type(value) {
710
+ this._type = value;
711
+ }
712
+ get usingSwiftShader() {
713
+ return this.renderingManager.usingSwiftShader;
714
+ }
715
+ get viewportCreationDefinition() {
716
+ return this._viewportCreationDefinition;
717
+ }
718
+ get visibility() {
719
+ return this._visibility;
720
+ }
721
+ get visibilitySessionIds() {
722
+ return this._visibilitySessionIds;
723
+ }
724
+ get visualizeAttributes() {
725
+ return this._visualizeAttributes;
726
+ }
727
+ set visualizeAttributes(value) {
728
+ this._visualizeAttributes = value;
729
+ }
730
+ addFlag(flag, inputToken) {
731
+ return this._flagManager.addFlag(flag, inputToken);
732
+ }
733
+ applySettings() {
734
+ return __awaiter(this, arguments, void 0, function* (sections = {
735
+ ar: true,
736
+ scene: true,
737
+ camera: true,
738
+ light: true,
739
+ environment: true,
740
+ general: true,
741
+ postprocessing: true,
742
+ }, settingsEngine, updateViewport = true) {
743
+ return this._settingsManager.applySettings(sections, settingsEngine, updateViewport);
744
+ });
745
+ }
746
+ assignSettingsEngine(settingsEngine) {
747
+ this._settingsManager.assignSettingsEngine(settingsEngine);
748
+ }
749
+ close() {
750
+ return __awaiter(this, void 0, void 0, function* () {
751
+ var _a, _b, _c;
752
+ this._closed = true;
753
+ this._lightEngine.close();
754
+ this._cameraEngine.close();
755
+ this._renderer.clear(true, true, true);
756
+ this._renderer.dispose();
757
+ this._domEventEngine.removeAllDomEventListener();
758
+ this._domEventEngine.dispose();
759
+ (_a = this._canvas.canvasElement.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this._logoDivElement);
760
+ (_b = this._canvas.canvasElement.parentElement) === null || _b === void 0 ? void 0 : _b.removeChild(this._spinnerDivElement);
761
+ (_c = this._canvas.canvasElement.parentNode) === null || _c === void 0 ? void 0 : _c.removeChild(this._htmlElementAnchorLoader.parentDiv);
762
+ this._canvas.reset();
763
+ });
764
+ }
765
+ continueRendering() {
766
+ this._pause = false;
767
+ }
768
+ convert3Dto2D(p) {
769
+ return this.sceneTracingManager.convert3Dto2D(p);
770
+ }
771
+ createSDTFOverview(node) {
772
+ return (0, SDTFUtils_1.createSDTFOverview)(node);
773
+ }
774
+ createThreeJsColor(color) {
775
+ const sdColor = new SDColor_1.SDColor(this._converter.toThreeJsColorInput(color), color);
776
+ sdColor.colorCorrection(this.automaticColorAdjustment);
777
+ this._colorCache.push(sdColor);
778
+ return sdColor;
779
+ }
780
+ displayErrorMessage(message) {
781
+ for (let i = 0; i < this.logoDivElement.children.length; i++)
782
+ this.logoDivElement.children[i].style.visibility =
783
+ "hidden";
784
+ const d = document.createElement("div");
785
+ d.classList.add("sdv-error-message-container");
786
+ this.logoDivElement.appendChild(d);
787
+ const p = document.createElement("p");
788
+ p.textContent = message;
789
+ p.classList.add("sdv-error-message");
790
+ p.style.color = this.logoDivElement.style.backgroundColor;
791
+ d.appendChild(p);
792
+ }
793
+ evaluateFlagState() {
794
+ this._flagManager.evaluateFlagState();
795
+ }
796
+ getEnvironmentMapImageUrl() {
797
+ return this._environmentMapLoader.getEnvironmentMapImageUrl(this.environmentMap);
798
+ }
799
+ getScreenshot(type, encoderOptions) {
800
+ return this._renderingManager.getScreenshot(type, encoderOptions);
801
+ }
802
+ getScreenshotAdvanced(type, encoderOptions, resolution, camera) {
803
+ return __awaiter(this, void 0, void 0, function* () {
804
+ var _a, _b, _c, _d;
805
+ const busyModeFlag = this.addFlag(viewer_shared_types_1.FLAG_TYPE.BUSY_MODE);
806
+ // if a resolution is provided, we temporarily disable the rendering of the viewer
807
+ // so that we can take a screenshot with the correct resolution
808
+ let originalAutomaticResizing = this.automaticResizing;
809
+ let originalMaximumRenderingSize = JSON.stringify(this.maximumRenderingSize);
810
+ let originalBeautyRenderDelay = this.beautyRenderDelay;
811
+ this.beautyRenderDelay = 0; // avoid waiting for beauty render
812
+ // if the resolution or camera is different, don't show the current viewport, but
813
+ // create a screenshot and show that instead
814
+ const current = this._renderingManager.getScreenshot();
815
+ const img = new Image();
816
+ img.src = current;
817
+ img.style.position = "absolute";
818
+ img.style.top = "0%";
819
+ img.style.left = "0%";
820
+ img.style.width = "100%";
821
+ img.style.height = "100%";
822
+ this.canvas.parentElement.appendChild(img);
823
+ this.canvas.style.visibility = "hidden";
824
+ // change the resolution if requested
825
+ if (resolution) {
826
+ this.automaticResizing = false;
827
+ this.maximumRenderingSize = {
828
+ width: resolution.width,
829
+ height: resolution.height,
830
+ };
831
+ this.resize(resolution.width, resolution.height);
832
+ }
833
+ // if the camera is changed, we need to restore it afterwards
834
+ let originalCameraId;
835
+ // if the camera properties are changed, we need to restore them afterwards
836
+ let originalCameraProperties = undefined;
837
+ // new camera
838
+ let newCamera;
839
+ // change the camera if requested
840
+ if (camera) {
841
+ if (camera.name) {
842
+ if (((_a = this._cameraEngine.camera) === null || _a === void 0 ? void 0 : _a.name) === camera.name) {
843
+ // nothing to do, already assigned
844
+ }
845
+ else if (this._cameraEngine.cameras[camera.name]) {
846
+ const specifiedCamera = this._cameraEngine.cameras[camera.name];
847
+ originalCameraId = (_b = this._cameraEngine.camera) === null || _b === void 0 ? void 0 : _b.id;
848
+ this._cameraEngine.assignCamera(specifiedCamera.id);
849
+ }
850
+ originalCameraProperties = {
851
+ id: this._cameraEngine.camera.id,
852
+ properties: {},
853
+ };
854
+ Object.keys(this._cameraEngine.camera).forEach((key) => {
855
+ if (key !== "name") {
856
+ originalCameraProperties.properties[key] = this._cameraEngine.camera[key];
857
+ if (camera[key] !== undefined) {
858
+ // @ts-ignore
859
+ this._cameraEngine.camera[key] = camera[key];
860
+ }
861
+ }
862
+ });
863
+ }
864
+ else if (camera.type) {
865
+ // create a new camera
866
+ newCamera = this._cameraEngine.createCamera(camera.type);
867
+ originalCameraId = (_c = this._cameraEngine.camera) === null || _c === void 0 ? void 0 : _c.id;
868
+ this._cameraEngine.assignCamera(newCamera.id);
869
+ // assign the properties
870
+ Object.keys(camera).forEach((key) => {
871
+ if (key !== "type") {
872
+ // @ts-ignore
873
+ newCamera[key] = camera[key];
874
+ }
875
+ });
876
+ }
877
+ }
878
+ this.renderingManager.render();
879
+ yield new Promise((resolve) => {
880
+ const token = this._eventEngine.addListener(viewer_shared_services_1.EVENTTYPE_RENDERING.BEAUTY_RENDERING_FINISHED, () => {
881
+ resolve();
882
+ this._eventEngine.removeListener(token);
883
+ });
884
+ });
885
+ const screenshot = this._renderingManager.getScreenshot(type, encoderOptions);
886
+ // sometimes the screenshot is not ready immediately (even though it should be)
887
+ yield new Promise((resolve) => setTimeout(resolve, 0));
888
+ if (resolution) {
889
+ // restore original settings
890
+ this.automaticResizing = originalAutomaticResizing;
891
+ this.maximumRenderingSize = JSON.parse(originalMaximumRenderingSize);
892
+ }
893
+ if (camera) {
894
+ if (originalCameraId) {
895
+ this._cameraEngine.assignCamera(originalCameraId);
896
+ }
897
+ if (originalCameraProperties) {
898
+ if (((_d = this._cameraEngine.camera) === null || _d === void 0 ? void 0 : _d.id) ===
899
+ originalCameraProperties.id) {
900
+ Object.keys(originalCameraProperties.properties).forEach((key) => {
901
+ // @ts-ignore
902
+ this._cameraEngine.camera[key] =
903
+ originalCameraProperties.properties[key];
904
+ });
905
+ }
906
+ }
907
+ if (newCamera) {
908
+ this._cameraEngine.removeCamera(newCamera.id);
909
+ }
910
+ }
911
+ // clean up
912
+ this.renderingManager.render();
913
+ this.beautyRenderDelay = originalBeautyRenderDelay;
914
+ this.canvas.style.visibility = "visible";
915
+ this.canvas.parentElement.removeChild(img);
916
+ this.removeFlag(busyModeFlag);
917
+ return screenshot;
918
+ });
919
+ }
920
+ isMobileDeviceWithoutBrowserARSupport() {
921
+ return this._arManager.isMobileDeviceWithoutBrowserARSupport();
922
+ }
923
+ pauseRendering() {
924
+ this._pause = true;
925
+ }
926
+ pointerEventToRay(event) {
927
+ return this._sceneTracingManager.pointerEventToRay(event);
928
+ }
929
+ raytraceScene(origin, direction, filterCriteria) {
930
+ return this._sceneTracingManager.raytraceScene(origin, direction, filterCriteria);
931
+ }
932
+ removeFlag(token) {
933
+ return this._flagManager.removeFlag(token);
934
+ }
935
+ reset() {
936
+ var _a, _b, _c, _d;
937
+ (_a = this._stateEngine.viewportEngines[this.id]) === null || _a === void 0 ? void 0 : _a.settingsAssigned.reset();
938
+ (_b = this._stateEngine.viewportEngines[this.id]) === null || _b === void 0 ? void 0 : _b.boundingBoxCreated.reset();
939
+ (_c = this._stateEngine.viewportEngines[this.id]) === null || _c === void 0 ? void 0 : _c.environmentMapLoaded.reset();
940
+ (_d = this._stateEngine.viewportEngines[this.id]) === null || _d === void 0 ? void 0 : _d.boundingBoxCreated.then(() => {
941
+ this._environmentGeometryManager.changeSceneExtents(this._sceneTreeManager.boundingBox);
942
+ });
943
+ }
944
+ resize(width, height) {
945
+ this._renderingManager.resize(width, height);
946
+ this._renderingManager.render();
947
+ }
948
+ saveSettings(settingsEngine) {
949
+ this._settingsManager.saveSettings(settingsEngine);
950
+ }
951
+ start() {
952
+ var _a;
953
+ this._renderingManager.start();
954
+ (_a = this._stateEngine.viewportEngines[this.id]) === null || _a === void 0 ? void 0 : _a.boundingBoxCreated.then(() => {
955
+ this._environmentGeometryManager.changeSceneExtents(this._sceneTreeManager.boundingBox);
956
+ });
957
+ if (this._settingsManager.sessionSettingsMode ===
958
+ viewer_shared_services_1.SESSION_SETTINGS_MODE.NONE) {
959
+ this.environmentMap = "photo_studio";
960
+ }
961
+ }
962
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
963
+ update(id) {
964
+ if (this.closed)
965
+ return;
966
+ if (this.sceneTreeManager.suspendSceneUpdates === true)
967
+ return;
968
+ this._sceneTreeManager.updateSceneTree(this._tree.root);
969
+ this._renderingManager.updateShadowMap();
970
+ this._animationEngine.updateAnimationData();
971
+ this._renderingManager.render();
972
+ this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE_VIEWPORT.VIEWPORT_UPDATED, {
973
+ viewportId: this.id,
974
+ });
975
+ }
976
+ updateEnvironmentGeometry() {
977
+ this._environmentGeometryManager.updateEnvironmentGeometryPosition();
978
+ }
979
+ viewInAR(file, options) {
980
+ return this._arManager.viewInAR(file, options);
981
+ }
982
+ viewableInAR() {
983
+ return this._arManager.viewableInAR();
984
+ }
985
+ }
986
+ exports.RenderingEngine = RenderingEngine;
987
+ _RenderingEngine_defaultLogo = new WeakMap(), _RenderingEngine_defaultSpinner = new WeakMap();
978
988
  //# sourceMappingURL=RenderingEngine.js.map