@shapediver/viewer.rendering-engine.rendering-engine-threejs 3.0.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.
- package/LICENSE +73 -0
- package/README.md +3 -0
- package/dist/RenderingEngine.d.ts +296 -0
- package/dist/RenderingEngine.d.ts.map +1 -0
- package/dist/RenderingEngine.js +1079 -0
- package/dist/RenderingEngine.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -0
- package/dist/injectors/Tag3dGeometryCreationInjector.d.ts +11 -0
- package/dist/injectors/Tag3dGeometryCreationInjector.d.ts.map +1 -0
- package/dist/injectors/Tag3dGeometryCreationInjector.js +169 -0
- package/dist/injectors/Tag3dGeometryCreationInjector.js.map +1 -0
- package/dist/injectors/TextureUnifierInjector.d.ts +14 -0
- package/dist/injectors/TextureUnifierInjector.d.ts.map +1 -0
- package/dist/injectors/TextureUnifierInjector.js +227 -0
- package/dist/injectors/TextureUnifierInjector.js.map +1 -0
- package/dist/interfaces/ILoader.d.ts +4 -0
- package/dist/interfaces/ILoader.d.ts.map +1 -0
- package/dist/interfaces/ILoader.js +3 -0
- package/dist/interfaces/ILoader.js.map +1 -0
- package/dist/interfaces/IPostProcessingEffectDefinitions.d.ts +307 -0
- package/dist/interfaces/IPostProcessingEffectDefinitions.d.ts.map +1 -0
- package/dist/interfaces/IPostProcessingEffectDefinitions.js +31 -0
- package/dist/interfaces/IPostProcessingEffectDefinitions.js.map +1 -0
- package/dist/interfaces/IRenderingEngine.d.ts +43 -0
- package/dist/interfaces/IRenderingEngine.d.ts.map +1 -0
- package/dist/interfaces/IRenderingEngine.js +3 -0
- package/dist/interfaces/IRenderingEngine.js.map +1 -0
- package/dist/loaders/EnvironmentMapLoader.d.ts +98 -0
- package/dist/loaders/EnvironmentMapLoader.d.ts.map +1 -0
- package/dist/loaders/EnvironmentMapLoader.js +348 -0
- package/dist/loaders/EnvironmentMapLoader.js.map +1 -0
- package/dist/loaders/GeometryLoader.d.ts +38 -0
- package/dist/loaders/GeometryLoader.d.ts.map +1 -0
- package/dist/loaders/GeometryLoader.js +505 -0
- package/dist/loaders/GeometryLoader.js.map +1 -0
- package/dist/loaders/HTMLElementAnchorLoader.d.ts +17 -0
- package/dist/loaders/HTMLElementAnchorLoader.d.ts.map +1 -0
- package/dist/loaders/HTMLElementAnchorLoader.js +84 -0
- package/dist/loaders/HTMLElementAnchorLoader.js.map +1 -0
- package/dist/loaders/LightLoader.d.ts +19 -0
- package/dist/loaders/LightLoader.d.ts.map +1 -0
- package/dist/loaders/LightLoader.js +152 -0
- package/dist/loaders/LightLoader.js.map +1 -0
- package/dist/loaders/MaterialLoader.d.ts +99 -0
- package/dist/loaders/MaterialLoader.d.ts.map +1 -0
- package/dist/loaders/MaterialLoader.js +1175 -0
- package/dist/loaders/MaterialLoader.js.map +1 -0
- package/dist/managers/CameraManager.d.ts +20 -0
- package/dist/managers/CameraManager.d.ts.map +1 -0
- package/dist/managers/CameraManager.js +195 -0
- package/dist/managers/CameraManager.js.map +1 -0
- package/dist/managers/EnvironmentGeometryManager.d.ts +43 -0
- package/dist/managers/EnvironmentGeometryManager.d.ts.map +1 -0
- package/dist/managers/EnvironmentGeometryManager.js +210 -0
- package/dist/managers/EnvironmentGeometryManager.js.map +1 -0
- package/dist/managers/PostProcessingManager.d.ts +1014 -0
- package/dist/managers/PostProcessingManager.d.ts.map +1 -0
- package/dist/managers/PostProcessingManager.js +1013 -0
- package/dist/managers/PostProcessingManager.js.map +1 -0
- package/dist/managers/RenderingManager.d.ts +83 -0
- package/dist/managers/RenderingManager.d.ts.map +1 -0
- package/dist/managers/RenderingManager.js +567 -0
- package/dist/managers/RenderingManager.js.map +1 -0
- package/dist/managers/SceneTracingManager.d.ts +26 -0
- package/dist/managers/SceneTracingManager.d.ts.map +1 -0
- package/dist/managers/SceneTracingManager.js +122 -0
- package/dist/managers/SceneTracingManager.js.map +1 -0
- package/dist/managers/SceneTreeManager.d.ts +55 -0
- package/dist/managers/SceneTreeManager.d.ts.map +1 -0
- package/dist/managers/SceneTreeManager.js +501 -0
- package/dist/managers/SceneTreeManager.js.map +1 -0
- package/dist/managers/postprocessing/GodRaysManager.d.ts +13 -0
- package/dist/managers/postprocessing/GodRaysManager.d.ts.map +1 -0
- package/dist/managers/postprocessing/GodRaysManager.js +64 -0
- package/dist/managers/postprocessing/GodRaysManager.js.map +1 -0
- package/dist/managers/postprocessing/OutlineManager.d.ts +15 -0
- package/dist/managers/postprocessing/OutlineManager.d.ts.map +1 -0
- package/dist/managers/postprocessing/OutlineManager.js +67 -0
- package/dist/managers/postprocessing/OutlineManager.js.map +1 -0
- package/dist/managers/postprocessing/SSAARenderPass.d.ts +54 -0
- package/dist/managers/postprocessing/SSAARenderPass.d.ts.map +1 -0
- package/dist/managers/postprocessing/SSAARenderPass.js +234 -0
- package/dist/managers/postprocessing/SSAARenderPass.js.map +1 -0
- package/dist/managers/postprocessing/SelectiveBloomManager.d.ts +15 -0
- package/dist/managers/postprocessing/SelectiveBloomManager.d.ts.map +1 -0
- package/dist/managers/postprocessing/SelectiveBloomManager.js +67 -0
- package/dist/managers/postprocessing/SelectiveBloomManager.js.map +1 -0
- package/dist/managers/postprocessing/ao/ao/AOEffect.d.ts +47 -0
- package/dist/managers/postprocessing/ao/ao/AOEffect.d.ts.map +1 -0
- package/dist/managers/postprocessing/ao/ao/AOEffect.js +134 -0
- package/dist/managers/postprocessing/ao/ao/AOEffect.js.map +1 -0
- package/dist/managers/postprocessing/ao/ao/AOPass.d.ts +13 -0
- package/dist/managers/postprocessing/ao/ao/AOPass.d.ts.map +1 -0
- package/dist/managers/postprocessing/ao/ao/AOPass.js +78 -0
- package/dist/managers/postprocessing/ao/ao/AOPass.js.map +1 -0
- package/dist/managers/postprocessing/ao/ao/shader/ao_compose.d.ts +2 -0
- package/dist/managers/postprocessing/ao/ao/shader/ao_compose.d.ts.map +1 -0
- package/dist/managers/postprocessing/ao/ao/shader/ao_compose.js +23 -0
- package/dist/managers/postprocessing/ao/ao/shader/ao_compose.js.map +1 -0
- package/dist/managers/postprocessing/ao/hbao/HBAOEffect.d.ts +15 -0
- package/dist/managers/postprocessing/ao/hbao/HBAOEffect.d.ts.map +1 -0
- package/dist/managers/postprocessing/ao/hbao/HBAOEffect.js +25 -0
- package/dist/managers/postprocessing/ao/hbao/HBAOEffect.js.map +1 -0
- package/dist/managers/postprocessing/ao/hbao/shader/hbao.d.ts +2 -0
- package/dist/managers/postprocessing/ao/hbao/shader/hbao.d.ts.map +1 -0
- package/dist/managers/postprocessing/ao/hbao/shader/hbao.js +102 -0
- package/dist/managers/postprocessing/ao/hbao/shader/hbao.js.map +1 -0
- package/dist/managers/postprocessing/ao/hbao/shader/hbao_utils.d.ts +2 -0
- package/dist/managers/postprocessing/ao/hbao/shader/hbao_utils.d.ts.map +1 -0
- package/dist/managers/postprocessing/ao/hbao/shader/hbao_utils.js +99 -0
- package/dist/managers/postprocessing/ao/hbao/shader/hbao_utils.js.map +1 -0
- package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.d.ts +37 -0
- package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.d.ts.map +1 -0
- package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.js +171 -0
- package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.js.map +1 -0
- package/dist/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.d.ts +2 -0
- package/dist/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.d.ts.map +1 -0
- package/dist/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.js +131 -0
- package/dist/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.js.map +1 -0
- package/dist/managers/postprocessing/ao/ssao/SSAOEffect.d.ts +15 -0
- package/dist/managers/postprocessing/ao/ssao/SSAOEffect.d.ts.map +1 -0
- package/dist/managers/postprocessing/ao/ssao/SSAOEffect.js +76 -0
- package/dist/managers/postprocessing/ao/ssao/SSAOEffect.js.map +1 -0
- package/dist/managers/postprocessing/ao/ssao/shader/ssao.d.ts +2 -0
- package/dist/managers/postprocessing/ao/ssao/shader/ssao.d.ts.map +1 -0
- package/dist/managers/postprocessing/ao/ssao/shader/ssao.js +134 -0
- package/dist/managers/postprocessing/ao/ssao/shader/ssao.js.map +1 -0
- package/dist/managers/postprocessing/ao/utils/shader/basic.d.ts +2 -0
- package/dist/managers/postprocessing/ao/utils/shader/basic.d.ts.map +1 -0
- package/dist/managers/postprocessing/ao/utils/shader/basic.js +12 -0
- package/dist/managers/postprocessing/ao/utils/shader/basic.js.map +1 -0
- package/dist/managers/postprocessing/ao/utils/shader/sampleBlueNoise.d.ts +2 -0
- package/dist/managers/postprocessing/ao/utils/shader/sampleBlueNoise.d.ts.map +1 -0
- package/dist/managers/postprocessing/ao/utils/shader/sampleBlueNoise.js +42 -0
- package/dist/managers/postprocessing/ao/utils/shader/sampleBlueNoise.js.map +1 -0
- package/dist/managers/postprocessing/utils/CopyMaterial.d.ts +38 -0
- package/dist/managers/postprocessing/utils/CopyMaterial.d.ts.map +1 -0
- package/dist/managers/postprocessing/utils/CopyMaterial.js +106 -0
- package/dist/managers/postprocessing/utils/CopyMaterial.js.map +1 -0
- package/dist/managers/postprocessing/utils/CopyShader.d.ts +14 -0
- package/dist/managers/postprocessing/utils/CopyShader.d.ts.map +1 -0
- package/dist/managers/postprocessing/utils/CopyShader.js +36 -0
- package/dist/managers/postprocessing/utils/CopyShader.js.map +1 -0
- package/dist/managers/postprocessing/utils/FullScreenQuad.d.ts +10 -0
- package/dist/managers/postprocessing/utils/FullScreenQuad.d.ts.map +1 -0
- package/dist/managers/postprocessing/utils/FullScreenQuad.js +29 -0
- package/dist/managers/postprocessing/utils/FullScreenQuad.js.map +1 -0
- package/dist/managers/postprocessing/utils/NormalPass.d.ts +88 -0
- package/dist/managers/postprocessing/utils/NormalPass.d.ts.map +1 -0
- package/dist/managers/postprocessing/utils/NormalPass.js +157 -0
- package/dist/managers/postprocessing/utils/NormalPass.js.map +1 -0
- package/dist/managers/postprocessing/utils/RenderPass.d.ts +115 -0
- package/dist/managers/postprocessing/utils/RenderPass.d.ts.map +1 -0
- package/dist/managers/postprocessing/utils/RenderPass.js +251 -0
- package/dist/managers/postprocessing/utils/RenderPass.js.map +1 -0
- package/dist/materials/GemMaterial.d.ts +38 -0
- package/dist/materials/GemMaterial.d.ts.map +1 -0
- package/dist/materials/GemMaterial.js +253 -0
- package/dist/materials/GemMaterial.js.map +1 -0
- package/dist/materials/MeshUnlitMaterialParameters.d.ts +4 -0
- package/dist/materials/MeshUnlitMaterialParameters.d.ts.map +1 -0
- package/dist/materials/MeshUnlitMaterialParameters.js +3 -0
- package/dist/materials/MeshUnlitMaterialParameters.js.map +1 -0
- package/dist/materials/MultiPointsMaterial.d.ts +94 -0
- package/dist/materials/MultiPointsMaterial.d.ts.map +1 -0
- package/dist/materials/MultiPointsMaterial.js +567 -0
- package/dist/materials/MultiPointsMaterial.js.map +1 -0
- package/dist/materials/SpecularGlossinessMaterial.d.ts +14 -0
- package/dist/materials/SpecularGlossinessMaterial.d.ts.map +1 -0
- package/dist/materials/SpecularGlossinessMaterial.js +162 -0
- package/dist/materials/SpecularGlossinessMaterial.js.map +1 -0
- package/dist/objects/SDBone.d.ts +13 -0
- package/dist/objects/SDBone.d.ts.map +1 -0
- package/dist/objects/SDBone.js +75 -0
- package/dist/objects/SDBone.js.map +1 -0
- package/dist/objects/SDColor.d.ts +17 -0
- package/dist/objects/SDColor.d.ts.map +1 -0
- package/dist/objects/SDColor.js +49 -0
- package/dist/objects/SDColor.js.map +1 -0
- package/dist/objects/SDData.d.ts +19 -0
- package/dist/objects/SDData.d.ts.map +1 -0
- package/dist/objects/SDData.js +48 -0
- package/dist/objects/SDData.js.map +1 -0
- package/dist/objects/SDObject.d.ts +14 -0
- package/dist/objects/SDObject.d.ts.map +1 -0
- package/dist/objects/SDObject.js +81 -0
- package/dist/objects/SDObject.js.map +1 -0
- package/dist/shaders/PCSS.d.ts +3 -0
- package/dist/shaders/PCSS.d.ts.map +1 -0
- package/dist/shaders/PCSS.js +127 -0
- package/dist/shaders/PCSS.js.map +1 -0
- package/dist/shaders/gem.d.ts +3 -0
- package/dist/shaders/gem.d.ts.map +1 -0
- package/dist/shaders/gem.js +578 -0
- package/dist/shaders/gem.js.map +1 -0
- package/dist/shaders/multi_points.d.ts +3 -0
- package/dist/shaders/multi_points.d.ts.map +1 -0
- package/dist/shaders/multi_points.js +294 -0
- package/dist/shaders/multi_points.js.map +1 -0
- package/dist/styling/viewport-css.d.ts +2 -0
- package/dist/styling/viewport-css.d.ts.map +1 -0
- package/dist/styling/viewport-css.js +117 -0
- package/dist/styling/viewport-css.js.map +1 -0
- package/dist/three/font.d.ts +2365 -0
- package/dist/three/font.d.ts.map +1 -0
- package/dist/three/font.js +6 -0
- package/dist/three/font.js.map +1 -0
- package/dist/three/geometries/TextGeometry.d.ts +22 -0
- package/dist/three/geometries/TextGeometry.d.ts.map +1 -0
- package/dist/three/geometries/TextGeometry.js +45 -0
- package/dist/three/geometries/TextGeometry.js.map +1 -0
- package/dist/three/loaders/FontLoader.d.ts +15 -0
- package/dist/three/loaders/FontLoader.d.ts.map +1 -0
- package/dist/three/loaders/FontLoader.js +118 -0
- package/dist/three/loaders/FontLoader.js.map +1 -0
- package/dist/three/loaders/RGBELoader.d.ts +24 -0
- package/dist/three/loaders/RGBELoader.d.ts.map +1 -0
- package/dist/three/loaders/RGBELoader.js +299 -0
- package/dist/three/loaders/RGBELoader.js.map +1 -0
- package/dist/types/IThreejsData.d.ts +7 -0
- package/dist/types/IThreejsData.d.ts.map +1 -0
- package/dist/types/IThreejsData.js +3 -0
- package/dist/types/IThreejsData.js.map +1 -0
- package/dist/types/ThreejsData.d.ts +11 -0
- package/dist/types/ThreejsData.d.ts.map +1 -0
- package/dist/types/ThreejsData.js +42 -0
- package/dist/types/ThreejsData.js.map +1 -0
- package/package.json +65 -0
- package/src/RenderingEngine.ts +1342 -0
- package/src/index.ts +23 -0
- package/src/injectors/Tag3dGeometryCreationInjector.ts +170 -0
- package/src/injectors/TextureUnifierInjector.ts +224 -0
- package/src/interfaces/ILoader.ts +3 -0
- package/src/interfaces/IPostProcessingEffectDefinitions.ts +402 -0
- package/src/interfaces/IRenderingEngine.ts +48 -0
- package/src/loaders/EnvironmentMapLoader.ts +355 -0
- package/src/loaders/GeometryLoader.ts +565 -0
- package/src/loaders/HTMLElementAnchorLoader.ts +107 -0
- package/src/loaders/LightLoader.ts +171 -0
- package/src/loaders/MaterialLoader.ts +1418 -0
- package/src/managers/CameraManager.ts +178 -0
- package/src/managers/EnvironmentGeometryManager.ts +224 -0
- package/src/managers/PostProcessingManager.ts +1169 -0
- package/src/managers/RenderingManager.ts +657 -0
- package/src/managers/SceneTracingManager.ts +120 -0
- package/src/managers/SceneTreeManager.ts +569 -0
- package/src/managers/postprocessing/GodRaysManager.ts +52 -0
- package/src/managers/postprocessing/OutlineManager.ts +58 -0
- package/src/managers/postprocessing/SSAARenderPass.ts +339 -0
- package/src/managers/postprocessing/SelectiveBloomManager.ts +58 -0
- package/src/managers/postprocessing/ao/ao/AOEffect.ts +180 -0
- package/src/managers/postprocessing/ao/ao/AOPass.ts +128 -0
- package/src/managers/postprocessing/ao/ao/shader/ao_compose.glsl +17 -0
- package/src/managers/postprocessing/ao/ao/shader/ao_compose.ts +19 -0
- package/src/managers/postprocessing/ao/hbao/HBAOEffect.ts +41 -0
- package/src/managers/postprocessing/ao/hbao/shader/hbao.glsl +96 -0
- package/src/managers/postprocessing/ao/hbao/shader/hbao.ts +98 -0
- package/src/managers/postprocessing/ao/hbao/shader/hbao_utils.glsl +92 -0
- package/src/managers/postprocessing/ao/hbao/shader/hbao_utils.ts +95 -0
- package/src/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.ts +245 -0
- package/src/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.glsl +125 -0
- package/src/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.ts +127 -0
- package/src/managers/postprocessing/ao/ssao/SSAOEffect.ts +106 -0
- package/src/managers/postprocessing/ao/ssao/shader/ssao.glsl +128 -0
- package/src/managers/postprocessing/ao/ssao/shader/ssao.ts +130 -0
- package/src/managers/postprocessing/ao/utils/shader/basic.glsl +6 -0
- package/src/managers/postprocessing/ao/utils/shader/basic.ts +8 -0
- package/src/managers/postprocessing/ao/utils/shader/sampleBlueNoise.glsl +36 -0
- package/src/managers/postprocessing/ao/utils/shader/sampleBlueNoise.ts +38 -0
- package/src/managers/postprocessing/utils/CopyMaterial.ts +130 -0
- package/src/managers/postprocessing/utils/CopyShader.ts +39 -0
- package/src/managers/postprocessing/utils/FullScreenQuad.ts +47 -0
- package/src/managers/postprocessing/utils/NormalPass.ts +222 -0
- package/src/managers/postprocessing/utils/RenderPass.ts +366 -0
- package/src/materials/GemMaterial.ts +268 -0
- package/src/materials/MeshUnlitMaterialParameters.ts +4 -0
- package/src/materials/MultiPointsMaterial.ts +646 -0
- package/src/materials/SpecularGlossinessMaterial.ts +182 -0
- package/src/objects/SDBone.ts +51 -0
- package/src/objects/SDColor.ts +54 -0
- package/src/objects/SDData.ts +44 -0
- package/src/objects/SDObject.ts +58 -0
- package/src/shaders/PCSS.ts +124 -0
- package/src/shaders/gem.ts +575 -0
- package/src/shaders/gem_frag.glsl +517 -0
- package/src/shaders/gem_vert.glsl +53 -0
- package/src/shaders/multi_points.ts +291 -0
- package/src/shaders/multi_points_frag.glsl +166 -0
- package/src/shaders/multi_points_vert.glsl +120 -0
- package/src/styling/viewport-css.ts +113 -0
- package/src/styling/viewport.css +111 -0
- package/src/three/font.ts +2 -0
- package/src/three/geometries/TextGeometry.ts +58 -0
- package/src/three/loaders/FontLoader.ts +205 -0
- package/src/three/loaders/RGBELoader.ts +496 -0
- package/src/types/IThreejsData.ts +16 -0
- package/src/types/ThreejsData.ts +43 -0
- package/tsconfig.json +20 -0
|
@@ -0,0 +1,1079 @@
|
|
|
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_defaultLogoStatic, _RenderingEngine_defaultSpinner, _RenderingEngine_animations, _RenderingEngine_flags;
|
|
40
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
+
exports.RenderingEngine = void 0;
|
|
42
|
+
const THREE = __importStar(require("three"));
|
|
43
|
+
const MaterialLoader_1 = require("./loaders/MaterialLoader");
|
|
44
|
+
const viewer_rendering_engine_animation_engine_1 = require("@shapediver/viewer.rendering-engine.animation-engine");
|
|
45
|
+
const CameraManager_1 = require("./managers/CameraManager");
|
|
46
|
+
const viewer_rendering_engine_canvas_engine_1 = require("@shapediver/viewer.rendering-engine.canvas-engine");
|
|
47
|
+
const EnvironmentGeometryManager_1 = require("./managers/EnvironmentGeometryManager");
|
|
48
|
+
const EnvironmentMapLoader_1 = require("./loaders/EnvironmentMapLoader");
|
|
49
|
+
const GeometryLoader_1 = require("./loaders/GeometryLoader");
|
|
50
|
+
const HTMLElementAnchorLoader_1 = require("./loaders/HTMLElementAnchorLoader");
|
|
51
|
+
const viewer_rendering_engine_intersection_engine_1 = require("@shapediver/viewer.rendering-engine.intersection-engine");
|
|
52
|
+
const viewer_shared_node_tree_1 = require("@shapediver/viewer.shared.node-tree");
|
|
53
|
+
const viewer_rendering_engine_light_engine_1 = require("@shapediver/viewer.rendering-engine.light-engine");
|
|
54
|
+
const LightLoader_1 = require("./loaders/LightLoader");
|
|
55
|
+
const PostProcessingManager_1 = require("./managers/PostProcessingManager");
|
|
56
|
+
const gl_matrix_1 = require("gl-matrix");
|
|
57
|
+
const RenderingManager_1 = require("./managers/RenderingManager");
|
|
58
|
+
const SceneTracingManager_1 = require("./managers/SceneTracingManager");
|
|
59
|
+
const SceneTreeManager_1 = require("./managers/SceneTreeManager");
|
|
60
|
+
const SDColor_1 = require("./objects/SDColor");
|
|
61
|
+
const Tag3dGeometryCreationInjector_1 = require("./injectors/Tag3dGeometryCreationInjector");
|
|
62
|
+
const viewer_rendering_engine_camera_engine_1 = require("@shapediver/viewer.rendering-engine.camera-engine");
|
|
63
|
+
const viewer_rendering_engine_rendering_engine_1 = require("@shapediver/viewer.rendering-engine.rendering-engine");
|
|
64
|
+
const viewer_shared_services_1 = require("@shapediver/viewer.shared.services");
|
|
65
|
+
const viewer_shared_types_1 = require("@shapediver/viewer.shared.types");
|
|
66
|
+
const viewport_css_1 = require("./styling/viewport-css");
|
|
67
|
+
class RenderingEngine {
|
|
68
|
+
// #endregion Properties (75)
|
|
69
|
+
// #region Constructors (1)
|
|
70
|
+
constructor(properties) {
|
|
71
|
+
// #region Properties (75)
|
|
72
|
+
_RenderingEngine_defaultLogo.set(this, 'https://viewer.shapediver.com/v3/graphics/logo_animated_breath.svg');
|
|
73
|
+
_RenderingEngine_defaultLogoStatic.set(this, 'https://viewer.shapediver.com/v3/graphics/logo.png');
|
|
74
|
+
_RenderingEngine_defaultSpinner.set(this, 'https://viewer.shapediver.com/v3/graphics/spinner_ripple.svg');
|
|
75
|
+
this._animationEngine = viewer_rendering_engine_animation_engine_1.AnimationEngine.instance;
|
|
76
|
+
this._canvasEngine = viewer_rendering_engine_canvas_engine_1.CanvasEngine.instance;
|
|
77
|
+
this._colorCache = [];
|
|
78
|
+
// utils
|
|
79
|
+
this._converter = viewer_shared_services_1.Converter.instance;
|
|
80
|
+
this._eventEngine = viewer_shared_services_1.EventEngine.instance;
|
|
81
|
+
this._intersectionManager = viewer_rendering_engine_intersection_engine_1.IntersectionEngine.instance;
|
|
82
|
+
this._logger = viewer_shared_services_1.Logger.instance;
|
|
83
|
+
this._stateEngine = viewer_shared_services_1.StateEngine.instance;
|
|
84
|
+
this._systemInfo = viewer_shared_services_1.SystemInfo.instance;
|
|
85
|
+
this._tree = viewer_shared_node_tree_1.Tree.instance;
|
|
86
|
+
this._uuidGenerator = viewer_shared_services_1.UuidGenerator.instance;
|
|
87
|
+
_RenderingEngine_animations.set(this, {});
|
|
88
|
+
_RenderingEngine_flags.set(this, {
|
|
89
|
+
[viewer_rendering_engine_rendering_engine_1.FLAG_TYPE.CAMERA_FREEZE]: [],
|
|
90
|
+
[viewer_rendering_engine_rendering_engine_1.FLAG_TYPE.CONTINUOUS_RENDERING]: [],
|
|
91
|
+
[viewer_rendering_engine_rendering_engine_1.FLAG_TYPE.CONTINUOUS_SHADOW_MAP_UPDATE]: [],
|
|
92
|
+
});
|
|
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_rendering_engine_rendering_engine_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._systemInfo.isMobile ? { width: 1280, height: 720 } : { width: 1920, height: 1080 };
|
|
120
|
+
this._pause = false;
|
|
121
|
+
this._shadows = true;
|
|
122
|
+
this._show = false;
|
|
123
|
+
this._showStatistics = false;
|
|
124
|
+
this._softShadows = true;
|
|
125
|
+
this._type = viewer_rendering_engine_rendering_engine_1.RENDERER_TYPE.STANDARD;
|
|
126
|
+
// THREE object has default Y, we change that (although it doesn't work everywhere)
|
|
127
|
+
THREE.Object3D.DEFAULT_UP = new THREE.Vector3(0, 0, 1);
|
|
128
|
+
THREE.ColorManagement.enabled = false;
|
|
129
|
+
// adapt some of the three.js shaders according to our needs
|
|
130
|
+
(0, MaterialLoader_1.adaptShaders)();
|
|
131
|
+
// add css to the document
|
|
132
|
+
const style = document.createElement('style');
|
|
133
|
+
style.innerHTML = viewport_css_1.css;
|
|
134
|
+
document.head.appendChild(style);
|
|
135
|
+
const prop = Object.assign({}, properties);
|
|
136
|
+
const branding = Object.assign({}, prop.branding);
|
|
137
|
+
// setting some of the provided properties
|
|
138
|
+
this._id = prop.id || (viewer_shared_services_1.UuidGenerator.instance).create();
|
|
139
|
+
this._visibility = prop.visibility || viewer_rendering_engine_rendering_engine_1.VISIBILITY_MODE.SESSION;
|
|
140
|
+
this._sessionSettingsMode = prop.sessionSettingsMode || viewer_shared_services_1.SESSION_SETTINGS_MODE.FIRST;
|
|
141
|
+
this._sessionSettingsId = prop.sessionSettingsId;
|
|
142
|
+
this._branding = {
|
|
143
|
+
logo: branding.logo === undefined ? __classPrivateFieldGet(this, _RenderingEngine_defaultLogo, "f") : branding.logo,
|
|
144
|
+
backgroundColor: branding.backgroundColor || '#393a45FF',
|
|
145
|
+
busyModeSpinner: branding.busyModeSpinner === undefined ? __classPrivateFieldGet(this, _RenderingEngine_defaultSpinner, "f") : branding.busyModeSpinner,
|
|
146
|
+
busyModeDisplay: branding.busyModeDisplay || viewer_rendering_engine_rendering_engine_1.BUSY_MODE_DISPLAY.SPINNER,
|
|
147
|
+
spinnerPositioning: branding.spinnerPositioning || viewer_rendering_engine_rendering_engine_1.SPINNER_POSITIONING.BOTTOM_RIGHT
|
|
148
|
+
};
|
|
149
|
+
// creation of viewer essentials
|
|
150
|
+
this._canvas = this._canvasEngine.getCanvas(this._canvasEngine.createCanvasObject(prop.canvas));
|
|
151
|
+
// creation of the engines (all singleton engines were created already)
|
|
152
|
+
this._domEventEngine = new viewer_shared_services_1.DomEventEngine(this._canvas.canvasElement);
|
|
153
|
+
this._cameraEngine = new viewer_rendering_engine_camera_engine_1.CameraEngine(this);
|
|
154
|
+
this._lightEngine = new viewer_rendering_engine_light_engine_1.LightEngine(this);
|
|
155
|
+
// creation of the managers (all singleton engines were created already)
|
|
156
|
+
this._cameraManager = new CameraManager_1.CameraManager(this);
|
|
157
|
+
this._environmentGeometryManager = new EnvironmentGeometryManager_1.EnvironmentGeometryManager(this);
|
|
158
|
+
this._sceneTracingManager = new SceneTracingManager_1.SceneTracingManager(this);
|
|
159
|
+
this._sceneTreeManager = new SceneTreeManager_1.SceneTreeManager(this);
|
|
160
|
+
this._renderingManager = new RenderingManager_1.RenderingManager(this);
|
|
161
|
+
this._postProcessingManager = new PostProcessingManager_1.PostProcessingManager(this);
|
|
162
|
+
// loaders
|
|
163
|
+
this._environmentMapLoader = new EnvironmentMapLoader_1.EnvironmentMapLoader(this);
|
|
164
|
+
this._materialLoader = new MaterialLoader_1.MaterialLoader(this);
|
|
165
|
+
this._geometryLoader = new GeometryLoader_1.GeometryLoader(this);
|
|
166
|
+
this._htmlElementAnchorLoader = new HTMLElementAnchorLoader_1.HTMLElementAnchorLoader(this);
|
|
167
|
+
this._lightLoader = new LightLoader_1.LightLoader(this);
|
|
168
|
+
// injectors
|
|
169
|
+
this._tag3dGeometryCreationInjector = new Tag3dGeometryCreationInjector_1.Tag3dGeometryCreationInjector();
|
|
170
|
+
// start the creation and initialization process
|
|
171
|
+
this._renderer = this.renderingManager.createRenderer(this._canvas.canvasElement);
|
|
172
|
+
this._spinnerDivElement = this.renderingManager.addSpinner(this._canvas.canvasElement, this._branding);
|
|
173
|
+
this._logoDivElement = this.renderingManager.addLogo(this._canvas.canvasElement, this._branding);
|
|
174
|
+
// creation of the managers (all singleton engines were created already)
|
|
175
|
+
this._cameraManager.init();
|
|
176
|
+
this._environmentGeometryManager.init();
|
|
177
|
+
this._sceneTracingManager.init();
|
|
178
|
+
this._sceneTreeManager.init();
|
|
179
|
+
this._renderingManager.init();
|
|
180
|
+
this._postProcessingManager.init();
|
|
181
|
+
// loaders
|
|
182
|
+
this._environmentMapLoader.init();
|
|
183
|
+
this._materialLoader.init();
|
|
184
|
+
this._geometryLoader.init();
|
|
185
|
+
this._htmlElementAnchorLoader.init();
|
|
186
|
+
this._lightLoader.init();
|
|
187
|
+
// injectors
|
|
188
|
+
this._tag3dGeometryCreationInjector.init();
|
|
189
|
+
}
|
|
190
|
+
// #endregion Constructors (1)
|
|
191
|
+
// #region Public Getters And Setters (133)
|
|
192
|
+
get arRotation() {
|
|
193
|
+
return this._arRotation;
|
|
194
|
+
}
|
|
195
|
+
set arRotation(value) {
|
|
196
|
+
this._arRotation = value;
|
|
197
|
+
}
|
|
198
|
+
get arScale() {
|
|
199
|
+
return this._arScale;
|
|
200
|
+
}
|
|
201
|
+
set arScale(value) {
|
|
202
|
+
this._arScale = value;
|
|
203
|
+
}
|
|
204
|
+
get arTranslation() {
|
|
205
|
+
return this._arTranslation;
|
|
206
|
+
}
|
|
207
|
+
set arTranslation(value) {
|
|
208
|
+
this._arTranslation = value;
|
|
209
|
+
}
|
|
210
|
+
get automaticColorAdjustment() {
|
|
211
|
+
return this._automaticColorAdjustment;
|
|
212
|
+
}
|
|
213
|
+
set automaticColorAdjustment(value) {
|
|
214
|
+
if (this._automaticColorAdjustment === value)
|
|
215
|
+
return;
|
|
216
|
+
this._automaticColorAdjustment = value;
|
|
217
|
+
this._colorCache.forEach(c => c.colorCorrection(value));
|
|
218
|
+
this._materialLoader.assignColorCorrection(value);
|
|
219
|
+
}
|
|
220
|
+
get automaticResizing() {
|
|
221
|
+
return this._automaticResizing;
|
|
222
|
+
}
|
|
223
|
+
set automaticResizing(value) {
|
|
224
|
+
this._automaticResizing = value;
|
|
225
|
+
}
|
|
226
|
+
get beautyRenderBlendingDuration() {
|
|
227
|
+
return this._beautyRenderBlendingDuration;
|
|
228
|
+
}
|
|
229
|
+
set beautyRenderBlendingDuration(value) {
|
|
230
|
+
this._beautyRenderBlendingDuration = value;
|
|
231
|
+
}
|
|
232
|
+
get beautyRenderDelay() {
|
|
233
|
+
return this._beautyRenderDelay;
|
|
234
|
+
}
|
|
235
|
+
set beautyRenderDelay(value) {
|
|
236
|
+
this._beautyRenderDelay = value;
|
|
237
|
+
}
|
|
238
|
+
get branding() {
|
|
239
|
+
return this._branding;
|
|
240
|
+
}
|
|
241
|
+
get busy() {
|
|
242
|
+
return this._busy;
|
|
243
|
+
}
|
|
244
|
+
set busy(value) {
|
|
245
|
+
this._busy = value;
|
|
246
|
+
}
|
|
247
|
+
get busyModeDisplay() {
|
|
248
|
+
return this._busyModeDisplay;
|
|
249
|
+
}
|
|
250
|
+
set busyModeDisplay(value) {
|
|
251
|
+
this._busyModeDisplay = value;
|
|
252
|
+
}
|
|
253
|
+
get camera() {
|
|
254
|
+
return this._cameraManager.camera;
|
|
255
|
+
}
|
|
256
|
+
get cameraEngine() {
|
|
257
|
+
return this._cameraEngine;
|
|
258
|
+
}
|
|
259
|
+
get cameraManager() {
|
|
260
|
+
return this._cameraManager;
|
|
261
|
+
}
|
|
262
|
+
get canvas() {
|
|
263
|
+
return this._canvas.canvasElement;
|
|
264
|
+
}
|
|
265
|
+
get canvasEngine() {
|
|
266
|
+
return this._canvasEngine;
|
|
267
|
+
}
|
|
268
|
+
get clearAlpha() {
|
|
269
|
+
return this._clearAlpha;
|
|
270
|
+
}
|
|
271
|
+
set clearAlpha(value) {
|
|
272
|
+
this._clearAlpha = value;
|
|
273
|
+
}
|
|
274
|
+
get clearColor() {
|
|
275
|
+
return this._clearColor;
|
|
276
|
+
}
|
|
277
|
+
set clearColor(value) {
|
|
278
|
+
this._clearColor = value;
|
|
279
|
+
}
|
|
280
|
+
get closed() {
|
|
281
|
+
return this._closed;
|
|
282
|
+
}
|
|
283
|
+
get colorCache() {
|
|
284
|
+
return this._colorCache;
|
|
285
|
+
}
|
|
286
|
+
get continuousRendering() {
|
|
287
|
+
return this._renderingManager.continuousRendering;
|
|
288
|
+
}
|
|
289
|
+
set continuousRendering(value) {
|
|
290
|
+
this._renderingManager.continuousRendering = value;
|
|
291
|
+
}
|
|
292
|
+
get continuousShadowMapUpdate() {
|
|
293
|
+
return this._renderingManager.continuousShadowMapUpdate;
|
|
294
|
+
}
|
|
295
|
+
set continuousShadowMapUpdate(value) {
|
|
296
|
+
this._renderingManager.continuousShadowMapUpdate = value;
|
|
297
|
+
}
|
|
298
|
+
get defaultLineMaterial() {
|
|
299
|
+
return this.materialLoader.defaultLineMaterialData;
|
|
300
|
+
}
|
|
301
|
+
set defaultLineMaterial(value) {
|
|
302
|
+
this.materialLoader.defaultLineMaterialData = value;
|
|
303
|
+
}
|
|
304
|
+
get defaultMaterial() {
|
|
305
|
+
return this.materialLoader.defaultMaterialData;
|
|
306
|
+
}
|
|
307
|
+
set defaultMaterial(value) {
|
|
308
|
+
this.materialLoader.defaultMaterialData = value;
|
|
309
|
+
}
|
|
310
|
+
get defaultMaterialColor() {
|
|
311
|
+
return this.materialLoader.defaultMaterialData.color;
|
|
312
|
+
}
|
|
313
|
+
set defaultMaterialColor(value) {
|
|
314
|
+
this.materialLoader.defaultMaterialData.color = value;
|
|
315
|
+
this.materialLoader.assignDefaultMaterial();
|
|
316
|
+
}
|
|
317
|
+
get defaultPointMaterial() {
|
|
318
|
+
return this.materialLoader.defaultPointMaterialData;
|
|
319
|
+
}
|
|
320
|
+
set defaultPointMaterial(value) {
|
|
321
|
+
this.materialLoader.defaultPointMaterialData = value;
|
|
322
|
+
}
|
|
323
|
+
get domEventEngine() {
|
|
324
|
+
return this._domEventEngine;
|
|
325
|
+
}
|
|
326
|
+
get enableAR() {
|
|
327
|
+
return this._enableAR;
|
|
328
|
+
}
|
|
329
|
+
set enableAR(value) {
|
|
330
|
+
this._enableAR = value;
|
|
331
|
+
}
|
|
332
|
+
get environmentMap() {
|
|
333
|
+
return this._environmentMap;
|
|
334
|
+
}
|
|
335
|
+
set environmentMap(value) {
|
|
336
|
+
this._environmentMap = value;
|
|
337
|
+
this._environmentMapLoader.load(this.environmentMap);
|
|
338
|
+
}
|
|
339
|
+
get environmentMapAsBackground() {
|
|
340
|
+
return this._environmentMapAsBackground;
|
|
341
|
+
}
|
|
342
|
+
set environmentMapAsBackground(value) {
|
|
343
|
+
this._environmentMapAsBackground = value;
|
|
344
|
+
}
|
|
345
|
+
get environmentMapBlurriness() {
|
|
346
|
+
return this._environmentMapBlurriness;
|
|
347
|
+
}
|
|
348
|
+
set environmentMapBlurriness(value) {
|
|
349
|
+
this._environmentMapBlurriness = value;
|
|
350
|
+
this._sceneTreeManager.scene.backgroundBlurriness = this._environmentMapBlurriness;
|
|
351
|
+
}
|
|
352
|
+
get environmentMapForUnlitMaterials() {
|
|
353
|
+
return this._environmentMapForUnlitMaterials;
|
|
354
|
+
}
|
|
355
|
+
set environmentMapForUnlitMaterials(value) {
|
|
356
|
+
this._environmentMapForUnlitMaterials = value;
|
|
357
|
+
this._materialLoader.assignEnvironmentMapForUnlitMaterials(value);
|
|
358
|
+
}
|
|
359
|
+
get environmentMapIntensity() {
|
|
360
|
+
return this._environmentMapIntensity;
|
|
361
|
+
}
|
|
362
|
+
set environmentMapIntensity(value) {
|
|
363
|
+
this._environmentMapIntensity = value;
|
|
364
|
+
this._sceneTreeManager.scene.backgroundIntensity = value;
|
|
365
|
+
this._materialLoader.assignEnvironmentMapIntensity(value);
|
|
366
|
+
}
|
|
367
|
+
get environmentMapLoader() {
|
|
368
|
+
return this._environmentMapLoader;
|
|
369
|
+
}
|
|
370
|
+
get environmentMapResolution() {
|
|
371
|
+
return this._environmentMapResolution;
|
|
372
|
+
}
|
|
373
|
+
set environmentMapResolution(value) {
|
|
374
|
+
this._environmentMapResolution = value;
|
|
375
|
+
this._environmentMapLoader.load(this.environmentMap);
|
|
376
|
+
}
|
|
377
|
+
get environmentMapRotation() {
|
|
378
|
+
return this._environmentMapRotation;
|
|
379
|
+
}
|
|
380
|
+
set environmentMapRotation(value) {
|
|
381
|
+
this._environmentMapRotation = value;
|
|
382
|
+
this._materialLoader.assignEnvironmentMapRotation(value);
|
|
383
|
+
}
|
|
384
|
+
get eventEngine() {
|
|
385
|
+
return this._eventEngine;
|
|
386
|
+
}
|
|
387
|
+
get geometryLoader() {
|
|
388
|
+
return this._geometryLoader;
|
|
389
|
+
}
|
|
390
|
+
get gridColor() {
|
|
391
|
+
return this._environmentGeometryManager.gridColor;
|
|
392
|
+
}
|
|
393
|
+
set gridColor(value) {
|
|
394
|
+
this._environmentGeometryManager.gridColor = value;
|
|
395
|
+
}
|
|
396
|
+
get gridVisibility() {
|
|
397
|
+
return this._gridVisibility;
|
|
398
|
+
}
|
|
399
|
+
set gridVisibility(value) {
|
|
400
|
+
if (this._environmentGeometryManager.grid)
|
|
401
|
+
this._environmentGeometryManager.grid.visible = value;
|
|
402
|
+
this._gridVisibility = value;
|
|
403
|
+
}
|
|
404
|
+
get groundPlaneColor() {
|
|
405
|
+
return this._environmentGeometryManager.groundPlaneColor;
|
|
406
|
+
}
|
|
407
|
+
set groundPlaneColor(value) {
|
|
408
|
+
this._environmentGeometryManager.groundPlaneColor = value;
|
|
409
|
+
}
|
|
410
|
+
get groundPlaneShadowColor() {
|
|
411
|
+
return this._environmentGeometryManager.groundPlaneShadowColor;
|
|
412
|
+
}
|
|
413
|
+
set groundPlaneShadowColor(value) {
|
|
414
|
+
this._environmentGeometryManager.groundPlaneShadowColor = value;
|
|
415
|
+
}
|
|
416
|
+
get groundPlaneShadowVisibility() {
|
|
417
|
+
return this._groundPlaneShadowVisibility;
|
|
418
|
+
}
|
|
419
|
+
set groundPlaneShadowVisibility(value) {
|
|
420
|
+
if (this._environmentGeometryManager.groundPlaneShadow)
|
|
421
|
+
this._environmentGeometryManager.groundPlaneShadow.visible = value;
|
|
422
|
+
this._groundPlaneShadowVisibility = value;
|
|
423
|
+
}
|
|
424
|
+
get groundPlaneVisibility() {
|
|
425
|
+
return this._groundPlaneVisibility;
|
|
426
|
+
}
|
|
427
|
+
set groundPlaneVisibility(value) {
|
|
428
|
+
if (this._environmentGeometryManager.groundPlane)
|
|
429
|
+
this._environmentGeometryManager.groundPlane.visible = value;
|
|
430
|
+
this._groundPlaneVisibility = value;
|
|
431
|
+
}
|
|
432
|
+
get htmlElementAnchorLoader() {
|
|
433
|
+
return this._htmlElementAnchorLoader;
|
|
434
|
+
}
|
|
435
|
+
get id() {
|
|
436
|
+
return this._id;
|
|
437
|
+
}
|
|
438
|
+
get lightEngine() {
|
|
439
|
+
return this._lightEngine;
|
|
440
|
+
}
|
|
441
|
+
get lightLoader() {
|
|
442
|
+
return this._lightLoader;
|
|
443
|
+
}
|
|
444
|
+
get lightScene() {
|
|
445
|
+
return this.lightEngine.lightScene ? this.lightEngine.lightScene.id : '';
|
|
446
|
+
}
|
|
447
|
+
get lightSceneId() {
|
|
448
|
+
return this.lightEngine.lightScene ? this.lightEngine.lightScene.id : '';
|
|
449
|
+
}
|
|
450
|
+
get lights() {
|
|
451
|
+
return this._lights;
|
|
452
|
+
}
|
|
453
|
+
set lights(value) {
|
|
454
|
+
this._lights = value;
|
|
455
|
+
}
|
|
456
|
+
get logoDivElement() {
|
|
457
|
+
return this._logoDivElement;
|
|
458
|
+
}
|
|
459
|
+
get materialLoader() {
|
|
460
|
+
return this._materialLoader;
|
|
461
|
+
}
|
|
462
|
+
get maximumRenderingSize() {
|
|
463
|
+
return this._maximumRenderingSize;
|
|
464
|
+
}
|
|
465
|
+
set maximumRenderingSize(value) {
|
|
466
|
+
this._maximumRenderingSize = value;
|
|
467
|
+
}
|
|
468
|
+
get minimalRendering() {
|
|
469
|
+
return this.renderingManager.minimalRendering;
|
|
470
|
+
}
|
|
471
|
+
get outputEncoding() {
|
|
472
|
+
switch (this._renderer.outputColorSpace) {
|
|
473
|
+
case (THREE.SRGBColorSpace):
|
|
474
|
+
return viewer_rendering_engine_rendering_engine_1.TEXTURE_ENCODING.SRGB;
|
|
475
|
+
case (THREE.LinearSRGBColorSpace):
|
|
476
|
+
default:
|
|
477
|
+
return viewer_rendering_engine_rendering_engine_1.TEXTURE_ENCODING.LINEAR;
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
set outputEncoding(value) {
|
|
481
|
+
switch (value) {
|
|
482
|
+
case (viewer_rendering_engine_rendering_engine_1.TEXTURE_ENCODING.SRGB):
|
|
483
|
+
this._renderer.outputColorSpace = THREE.SRGBColorSpace;
|
|
484
|
+
break;
|
|
485
|
+
case (viewer_rendering_engine_rendering_engine_1.TEXTURE_ENCODING.LINEAR):
|
|
486
|
+
default:
|
|
487
|
+
this._renderer.outputColorSpace = THREE.LinearSRGBColorSpace;
|
|
488
|
+
break;
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
get pause() {
|
|
492
|
+
return this._pause;
|
|
493
|
+
}
|
|
494
|
+
set pause(value) {
|
|
495
|
+
this._pause = value;
|
|
496
|
+
}
|
|
497
|
+
get physicallyCorrectLights() {
|
|
498
|
+
return !this._renderer.useLegacyLights;
|
|
499
|
+
}
|
|
500
|
+
set physicallyCorrectLights(value) {
|
|
501
|
+
this._renderer.useLegacyLights = !value;
|
|
502
|
+
}
|
|
503
|
+
get pointSize() {
|
|
504
|
+
return this.materialLoader.defaultPointMaterialData.size || 1;
|
|
505
|
+
}
|
|
506
|
+
set pointSize(value) {
|
|
507
|
+
this.materialLoader.defaultPointMaterialData.size = value;
|
|
508
|
+
this.materialLoader.assignDefaultPointMaterial();
|
|
509
|
+
}
|
|
510
|
+
get postProcessingManager() {
|
|
511
|
+
return this._postProcessingManager;
|
|
512
|
+
}
|
|
513
|
+
get postRenderingCallback() {
|
|
514
|
+
return this._postRenderingCallback;
|
|
515
|
+
}
|
|
516
|
+
set postRenderingCallback(value) {
|
|
517
|
+
this._postRenderingCallback = value;
|
|
518
|
+
}
|
|
519
|
+
get preRenderingCallback() {
|
|
520
|
+
return this._preRenderingCallback;
|
|
521
|
+
}
|
|
522
|
+
set preRenderingCallback(value) {
|
|
523
|
+
this._preRenderingCallback = value;
|
|
524
|
+
}
|
|
525
|
+
get renderer() {
|
|
526
|
+
return this._renderer;
|
|
527
|
+
}
|
|
528
|
+
get renderingManager() {
|
|
529
|
+
return this._renderingManager;
|
|
530
|
+
}
|
|
531
|
+
get scene() {
|
|
532
|
+
return this._sceneTreeManager.scene;
|
|
533
|
+
}
|
|
534
|
+
get sceneTracingManager() {
|
|
535
|
+
return this._sceneTracingManager;
|
|
536
|
+
}
|
|
537
|
+
get sceneTreeManager() {
|
|
538
|
+
return this._sceneTreeManager;
|
|
539
|
+
}
|
|
540
|
+
get sessionSettingsId() {
|
|
541
|
+
return this._sessionSettingsId;
|
|
542
|
+
}
|
|
543
|
+
set sessionSettingsId(value) {
|
|
544
|
+
this._sessionSettingsId = value;
|
|
545
|
+
}
|
|
546
|
+
get sessionSettingsMode() {
|
|
547
|
+
return this._sessionSettingsMode;
|
|
548
|
+
}
|
|
549
|
+
set sessionSettingsMode(value) {
|
|
550
|
+
this._sessionSettingsMode = value;
|
|
551
|
+
}
|
|
552
|
+
get settingsEngine() {
|
|
553
|
+
return this._settingsEngine;
|
|
554
|
+
}
|
|
555
|
+
set settingsEngine(value) {
|
|
556
|
+
this._settingsEngine = value;
|
|
557
|
+
}
|
|
558
|
+
get shadows() {
|
|
559
|
+
return this._shadows;
|
|
560
|
+
}
|
|
561
|
+
set shadows(value) {
|
|
562
|
+
this._shadows = value;
|
|
563
|
+
}
|
|
564
|
+
get show() {
|
|
565
|
+
return this._show;
|
|
566
|
+
}
|
|
567
|
+
set show(value) {
|
|
568
|
+
this._show = value;
|
|
569
|
+
}
|
|
570
|
+
get showStatistics() {
|
|
571
|
+
return this._showStatistics;
|
|
572
|
+
}
|
|
573
|
+
set showStatistics(value) {
|
|
574
|
+
this._showStatistics = value;
|
|
575
|
+
}
|
|
576
|
+
get softShadows() {
|
|
577
|
+
return this._softShadows;
|
|
578
|
+
}
|
|
579
|
+
set softShadows(value) {
|
|
580
|
+
this._softShadows = value;
|
|
581
|
+
}
|
|
582
|
+
get spinnerDivElement() {
|
|
583
|
+
return this._spinnerDivElement;
|
|
584
|
+
}
|
|
585
|
+
get stateEngine() {
|
|
586
|
+
return this._stateEngine;
|
|
587
|
+
}
|
|
588
|
+
get textureEncoding() {
|
|
589
|
+
switch (this.materialLoader.textureEncoding) {
|
|
590
|
+
case (THREE.SRGBColorSpace):
|
|
591
|
+
return viewer_rendering_engine_rendering_engine_1.TEXTURE_ENCODING.SRGB;
|
|
592
|
+
case (THREE.LinearSRGBColorSpace):
|
|
593
|
+
default:
|
|
594
|
+
return viewer_rendering_engine_rendering_engine_1.TEXTURE_ENCODING.LINEAR;
|
|
595
|
+
}
|
|
596
|
+
}
|
|
597
|
+
set textureEncoding(value) {
|
|
598
|
+
switch (value) {
|
|
599
|
+
case (viewer_rendering_engine_rendering_engine_1.TEXTURE_ENCODING.SRGB):
|
|
600
|
+
this.environmentMapLoader.textureEncoding = THREE.SRGBColorSpace;
|
|
601
|
+
this.materialLoader.textureEncoding = THREE.SRGBColorSpace;
|
|
602
|
+
break;
|
|
603
|
+
case (viewer_rendering_engine_rendering_engine_1.TEXTURE_ENCODING.LINEAR):
|
|
604
|
+
default:
|
|
605
|
+
this.environmentMapLoader.textureEncoding = THREE.LinearSRGBColorSpace;
|
|
606
|
+
this.materialLoader.textureEncoding = THREE.LinearSRGBColorSpace;
|
|
607
|
+
}
|
|
608
|
+
}
|
|
609
|
+
get toneMapping() {
|
|
610
|
+
switch (this._renderer.toneMapping) {
|
|
611
|
+
case (THREE.LinearToneMapping):
|
|
612
|
+
return viewer_rendering_engine_rendering_engine_1.TONE_MAPPING.LINEAR;
|
|
613
|
+
case (THREE.ReinhardToneMapping):
|
|
614
|
+
return viewer_rendering_engine_rendering_engine_1.TONE_MAPPING.REINHARD;
|
|
615
|
+
case (THREE.CineonToneMapping):
|
|
616
|
+
return viewer_rendering_engine_rendering_engine_1.TONE_MAPPING.CINEON;
|
|
617
|
+
case (THREE.ACESFilmicToneMapping):
|
|
618
|
+
return viewer_rendering_engine_rendering_engine_1.TONE_MAPPING.ACES_FILMIC;
|
|
619
|
+
case (THREE.NoToneMapping):
|
|
620
|
+
default:
|
|
621
|
+
return viewer_rendering_engine_rendering_engine_1.TONE_MAPPING.NONE;
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
set toneMapping(value) {
|
|
625
|
+
switch (value) {
|
|
626
|
+
case (viewer_rendering_engine_rendering_engine_1.TONE_MAPPING.LINEAR):
|
|
627
|
+
this._renderer.toneMapping = THREE.LinearToneMapping;
|
|
628
|
+
break;
|
|
629
|
+
case (viewer_rendering_engine_rendering_engine_1.TONE_MAPPING.REINHARD):
|
|
630
|
+
this._renderer.toneMapping = THREE.ReinhardToneMapping;
|
|
631
|
+
break;
|
|
632
|
+
case (viewer_rendering_engine_rendering_engine_1.TONE_MAPPING.CINEON):
|
|
633
|
+
this._renderer.toneMapping = THREE.CineonToneMapping;
|
|
634
|
+
break;
|
|
635
|
+
case (viewer_rendering_engine_rendering_engine_1.TONE_MAPPING.ACES_FILMIC):
|
|
636
|
+
this._renderer.toneMapping = THREE.ACESFilmicToneMapping;
|
|
637
|
+
break;
|
|
638
|
+
case (viewer_rendering_engine_rendering_engine_1.TONE_MAPPING.NONE):
|
|
639
|
+
default:
|
|
640
|
+
this._renderer.toneMapping = THREE.NoToneMapping;
|
|
641
|
+
}
|
|
642
|
+
this.materialLoader.updateMaterials();
|
|
643
|
+
}
|
|
644
|
+
get toneMappingExposure() {
|
|
645
|
+
return this._renderer.toneMappingExposure;
|
|
646
|
+
}
|
|
647
|
+
set toneMappingExposure(value) {
|
|
648
|
+
this._renderer.toneMappingExposure = value;
|
|
649
|
+
}
|
|
650
|
+
get type() {
|
|
651
|
+
return this._type;
|
|
652
|
+
}
|
|
653
|
+
set type(value) {
|
|
654
|
+
this._type = value;
|
|
655
|
+
this.update('RenderingEngine.type');
|
|
656
|
+
}
|
|
657
|
+
get usingSwiftShader() {
|
|
658
|
+
return this.renderingManager.usingSwiftShader;
|
|
659
|
+
}
|
|
660
|
+
get visibility() {
|
|
661
|
+
return this._visibility;
|
|
662
|
+
}
|
|
663
|
+
get visualizeAttributes() {
|
|
664
|
+
return this._visualizeAttributes;
|
|
665
|
+
}
|
|
666
|
+
set visualizeAttributes(value) {
|
|
667
|
+
this._visualizeAttributes = value;
|
|
668
|
+
}
|
|
669
|
+
// #endregion Public Getters And Setters (133)
|
|
670
|
+
// #region Public Methods (25)
|
|
671
|
+
addFlag(flag) {
|
|
672
|
+
const token = this._uuidGenerator.create();
|
|
673
|
+
if (flag === viewer_rendering_engine_rendering_engine_1.FLAG_TYPE.BUSY_MODE) {
|
|
674
|
+
this.stateEngine.viewportEngines[this.id].busy.push(token);
|
|
675
|
+
}
|
|
676
|
+
else {
|
|
677
|
+
__classPrivateFieldGet(this, _RenderingEngine_flags, "f")[flag].push(token);
|
|
678
|
+
}
|
|
679
|
+
this.evaluateFlagState();
|
|
680
|
+
return token;
|
|
681
|
+
}
|
|
682
|
+
applySettings(sections = {
|
|
683
|
+
ar: true,
|
|
684
|
+
scene: true,
|
|
685
|
+
camera: true,
|
|
686
|
+
light: true,
|
|
687
|
+
environment: true,
|
|
688
|
+
general: true,
|
|
689
|
+
postprocessing: true
|
|
690
|
+
}, settingsEngine, updateViewport = true) {
|
|
691
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
692
|
+
settingsEngine = settingsEngine || this._settingsEngine;
|
|
693
|
+
if (!settingsEngine)
|
|
694
|
+
return;
|
|
695
|
+
if (sections.environment) {
|
|
696
|
+
// as the environment map is the only thing that needs time to load, load it first
|
|
697
|
+
yield new Promise((resolve, reject) => {
|
|
698
|
+
this._stateEngine.viewportEngines[this.id].environmentMapLoaded.then(() => {
|
|
699
|
+
try {
|
|
700
|
+
if (!settingsEngine)
|
|
701
|
+
return;
|
|
702
|
+
this.environmentMapAsBackground = settingsEngine.environment.mapAsBackground;
|
|
703
|
+
this.clearAlpha = settingsEngine.environment.clearAlpha;
|
|
704
|
+
this.clearColor = this._converter.toHexColor(settingsEngine.environment.clearColor);
|
|
705
|
+
this.environmentMapRotation = [settingsEngine.environment.rotation.x, settingsEngine.environment.rotation.y, settingsEngine.environment.rotation.z, settingsEngine.environment.rotation.w];
|
|
706
|
+
this.environmentMapBlurriness = settingsEngine.environment.blurriness;
|
|
707
|
+
this.environmentMapIntensity = settingsEngine.environment.intensity;
|
|
708
|
+
this.applySyncSettings(sections, settingsEngine, updateViewport);
|
|
709
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE_VIEWPORT.VIEWPORT_SETTINGS_LOADED, { viewportId: this.id });
|
|
710
|
+
resolve();
|
|
711
|
+
}
|
|
712
|
+
catch (e) {
|
|
713
|
+
reject(e);
|
|
714
|
+
}
|
|
715
|
+
}).catch(e => reject(e));
|
|
716
|
+
// set it like this to not trigger the loading
|
|
717
|
+
this.environmentMap = settingsEngine.environment.map;
|
|
718
|
+
});
|
|
719
|
+
}
|
|
720
|
+
else {
|
|
721
|
+
this.applySyncSettings(sections, settingsEngine, updateViewport);
|
|
722
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE_VIEWPORT.VIEWPORT_SETTINGS_LOADED, { viewportId: this.id });
|
|
723
|
+
}
|
|
724
|
+
});
|
|
725
|
+
}
|
|
726
|
+
assignSettingsEngine(settingsEngine) {
|
|
727
|
+
this._settingsEngine = settingsEngine;
|
|
728
|
+
}
|
|
729
|
+
close() {
|
|
730
|
+
var _a, _b, _c;
|
|
731
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
732
|
+
this._closed = true;
|
|
733
|
+
this._lightEngine.close();
|
|
734
|
+
this._tag3dGeometryCreationInjector.close();
|
|
735
|
+
this._renderer.clear(true, true, true);
|
|
736
|
+
this._renderer.dispose();
|
|
737
|
+
this._domEventEngine.removeAllDomEventListener();
|
|
738
|
+
this._domEventEngine.dispose();
|
|
739
|
+
(_a = this._canvas.canvasElement.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this._logoDivElement);
|
|
740
|
+
(_b = this._canvas.canvasElement.parentElement) === null || _b === void 0 ? void 0 : _b.removeChild(this._spinnerDivElement);
|
|
741
|
+
(_c = this._canvas.canvasElement.parentNode) === null || _c === void 0 ? void 0 : _c.removeChild(this._htmlElementAnchorLoader.parentDiv);
|
|
742
|
+
this._canvas.reset();
|
|
743
|
+
});
|
|
744
|
+
}
|
|
745
|
+
continueRendering() {
|
|
746
|
+
this._pause = false;
|
|
747
|
+
}
|
|
748
|
+
convert3Dto2D(p) {
|
|
749
|
+
return this.sceneTracingManager.convert3Dto2D(p);
|
|
750
|
+
}
|
|
751
|
+
createSDTFOverview(node) {
|
|
752
|
+
const out = new viewer_shared_types_1.SDTFOverviewData({});
|
|
753
|
+
for (let i = 0, len = node.data.length; i < len; i++)
|
|
754
|
+
if (node.data[i] instanceof viewer_shared_types_1.SDTFOverviewData)
|
|
755
|
+
out.merge(node.data[i]);
|
|
756
|
+
for (let i = 0, len = node.children.length; i < len; i++)
|
|
757
|
+
out.merge(new viewer_shared_types_1.SDTFOverviewData(this.createSDTFOverview(node.children[i])));
|
|
758
|
+
return out.overview;
|
|
759
|
+
}
|
|
760
|
+
createThreeJsColor(color) {
|
|
761
|
+
const sdColor = new SDColor_1.SDColor(this._converter.toThreeJsColorInput(color), color);
|
|
762
|
+
sdColor.colorCorrection(this.automaticColorAdjustment);
|
|
763
|
+
this._colorCache.push(sdColor);
|
|
764
|
+
return sdColor;
|
|
765
|
+
}
|
|
766
|
+
displayErrorMessage(message) {
|
|
767
|
+
for (let i = 0; i < this.logoDivElement.children.length; i++)
|
|
768
|
+
this.logoDivElement.children[i].style.visibility = 'hidden';
|
|
769
|
+
const d = document.createElement('div');
|
|
770
|
+
d.classList.add('sdv-error-message-container');
|
|
771
|
+
this.logoDivElement.appendChild(d);
|
|
772
|
+
const p = document.createElement('p');
|
|
773
|
+
p.textContent = message;
|
|
774
|
+
p.classList.add('sdv-error-message');
|
|
775
|
+
p.style.color = this.logoDivElement.style.backgroundColor;
|
|
776
|
+
d.appendChild(p);
|
|
777
|
+
}
|
|
778
|
+
evaluateFlagState() {
|
|
779
|
+
// busy
|
|
780
|
+
{
|
|
781
|
+
const currentBusyState = this.busy;
|
|
782
|
+
if (this.stateEngine.viewportEngines[this.id] && this.stateEngine.viewportEngines[this.id].busy.length > 0) {
|
|
783
|
+
if (!currentBusyState) {
|
|
784
|
+
this.busy = true;
|
|
785
|
+
this._renderingManager.render();
|
|
786
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.VIEWPORT.BUSY_MODE_ON, { viewportId: this.id });
|
|
787
|
+
}
|
|
788
|
+
}
|
|
789
|
+
else {
|
|
790
|
+
if (currentBusyState) {
|
|
791
|
+
this.busy = false;
|
|
792
|
+
this._renderingManager.render();
|
|
793
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.VIEWPORT.BUSY_MODE_OFF, { viewportId: this.id });
|
|
794
|
+
}
|
|
795
|
+
}
|
|
796
|
+
}
|
|
797
|
+
// camera freeze
|
|
798
|
+
{
|
|
799
|
+
if (__classPrivateFieldGet(this, _RenderingEngine_flags, "f")[viewer_rendering_engine_rendering_engine_1.FLAG_TYPE.CAMERA_FREEZE].length > 0) {
|
|
800
|
+
this.cameraEngine.deactivateCameraEvents();
|
|
801
|
+
}
|
|
802
|
+
else {
|
|
803
|
+
this.cameraEngine.activateCameraEvents();
|
|
804
|
+
}
|
|
805
|
+
}
|
|
806
|
+
// continuous rendering
|
|
807
|
+
{
|
|
808
|
+
const currentContinuousRenderingState = this.continuousRendering;
|
|
809
|
+
if (__classPrivateFieldGet(this, _RenderingEngine_flags, "f")[viewer_rendering_engine_rendering_engine_1.FLAG_TYPE.CONTINUOUS_RENDERING].length > 0) {
|
|
810
|
+
if (!currentContinuousRenderingState) {
|
|
811
|
+
this.continuousRendering = true;
|
|
812
|
+
this._renderingManager.render();
|
|
813
|
+
}
|
|
814
|
+
}
|
|
815
|
+
else {
|
|
816
|
+
if (currentContinuousRenderingState) {
|
|
817
|
+
this.continuousRendering = false;
|
|
818
|
+
}
|
|
819
|
+
}
|
|
820
|
+
}
|
|
821
|
+
// continuous shadow map update
|
|
822
|
+
{
|
|
823
|
+
const currentShadowMapUpdateState = this.continuousShadowMapUpdate;
|
|
824
|
+
if (__classPrivateFieldGet(this, _RenderingEngine_flags, "f")[viewer_rendering_engine_rendering_engine_1.FLAG_TYPE.CONTINUOUS_SHADOW_MAP_UPDATE].length > 0) {
|
|
825
|
+
if (!currentShadowMapUpdateState) {
|
|
826
|
+
this.continuousShadowMapUpdate = true;
|
|
827
|
+
this._renderingManager.render();
|
|
828
|
+
}
|
|
829
|
+
}
|
|
830
|
+
else {
|
|
831
|
+
if (currentShadowMapUpdateState) {
|
|
832
|
+
this.continuousShadowMapUpdate = false;
|
|
833
|
+
}
|
|
834
|
+
}
|
|
835
|
+
}
|
|
836
|
+
}
|
|
837
|
+
getEnvironmentMapImageUrl() {
|
|
838
|
+
return this._environmentMapLoader.getEnvironmentMapImageUrl(this.environmentMap);
|
|
839
|
+
}
|
|
840
|
+
getScreenshot(type, encoderOptions) {
|
|
841
|
+
return this._renderingManager.getScreenshot(type, encoderOptions);
|
|
842
|
+
}
|
|
843
|
+
isMobileDeviceWithoutBrowserARSupport() {
|
|
844
|
+
// has to be a mobile device (duh)
|
|
845
|
+
if (this._systemInfo.isIOS === false && this._systemInfo.isAndroid === false)
|
|
846
|
+
return false;
|
|
847
|
+
// no Firefox on Android
|
|
848
|
+
if (this._systemInfo.isAndroid === true && this._systemInfo.isFirefox === true)
|
|
849
|
+
return true;
|
|
850
|
+
// no Instagram on iOS
|
|
851
|
+
if (this._systemInfo.isIOS === true && this._systemInfo.isInstagram === true)
|
|
852
|
+
return true;
|
|
853
|
+
return false;
|
|
854
|
+
}
|
|
855
|
+
pauseRendering() {
|
|
856
|
+
this._pause = true;
|
|
857
|
+
}
|
|
858
|
+
pointerEventToRay(event) {
|
|
859
|
+
return this._sceneTracingManager.pointerEventToRay(event);
|
|
860
|
+
}
|
|
861
|
+
raytraceScene(origin, direction, root) {
|
|
862
|
+
const intersect = this._intersectionManager.intersect({ origin, direction }, undefined, undefined, root);
|
|
863
|
+
return intersect.map(i => {
|
|
864
|
+
return {
|
|
865
|
+
distance: i.distance,
|
|
866
|
+
node: i.node,
|
|
867
|
+
data: i.geometryData
|
|
868
|
+
};
|
|
869
|
+
});
|
|
870
|
+
}
|
|
871
|
+
removeFlag(token) {
|
|
872
|
+
let success = false;
|
|
873
|
+
const Flags = Object.values(viewer_rendering_engine_rendering_engine_1.FLAG_TYPE);
|
|
874
|
+
for (const f of Flags) {
|
|
875
|
+
if (f === viewer_rendering_engine_rendering_engine_1.FLAG_TYPE.BUSY_MODE) {
|
|
876
|
+
if (this.stateEngine.viewportEngines[this.id].busy.includes(token)) {
|
|
877
|
+
this.stateEngine.viewportEngines[this.id].busy.splice(this.stateEngine.viewportEngines[this.id].busy.indexOf(token), 1);
|
|
878
|
+
success = true;
|
|
879
|
+
break;
|
|
880
|
+
}
|
|
881
|
+
}
|
|
882
|
+
else {
|
|
883
|
+
if (__classPrivateFieldGet(this, _RenderingEngine_flags, "f")[f].includes(token)) {
|
|
884
|
+
__classPrivateFieldGet(this, _RenderingEngine_flags, "f")[f].splice(__classPrivateFieldGet(this, _RenderingEngine_flags, "f")[f].indexOf(token), 1);
|
|
885
|
+
success = true;
|
|
886
|
+
break;
|
|
887
|
+
}
|
|
888
|
+
}
|
|
889
|
+
}
|
|
890
|
+
this.evaluateFlagState();
|
|
891
|
+
return success;
|
|
892
|
+
}
|
|
893
|
+
reset() {
|
|
894
|
+
this._stateEngine.viewportEngines[this.id].settingsAssigned.reset();
|
|
895
|
+
this._stateEngine.viewportEngines[this.id].boundingBoxCreated.reset();
|
|
896
|
+
this._stateEngine.viewportEngines[this.id].environmentMapLoaded.reset();
|
|
897
|
+
this._stateEngine.viewportEngines[this.id].boundingBoxCreated.then(() => {
|
|
898
|
+
this._environmentGeometryManager.changeSceneExtents(this._sceneTreeManager.boundingBox);
|
|
899
|
+
});
|
|
900
|
+
}
|
|
901
|
+
resize(width, height) {
|
|
902
|
+
this._renderingManager.resize(width, height);
|
|
903
|
+
this._renderingManager.render();
|
|
904
|
+
}
|
|
905
|
+
saveSettings(settingsEngine) {
|
|
906
|
+
settingsEngine = settingsEngine || this._settingsEngine;
|
|
907
|
+
if (!settingsEngine)
|
|
908
|
+
return;
|
|
909
|
+
this.lightEngine.saveSettings(settingsEngine);
|
|
910
|
+
this.cameraEngine.saveSettings(settingsEngine);
|
|
911
|
+
this.postProcessingManager.saveSettings(settingsEngine);
|
|
912
|
+
settingsEngine.ar.enable = this.enableAR;
|
|
913
|
+
settingsEngine.environment.mapResolution = this.environmentMapResolution;
|
|
914
|
+
settingsEngine.environment.map = Array.isArray(this.environmentMap) ? JSON.stringify(this.environmentMap) : this.environmentMap;
|
|
915
|
+
settingsEngine.environment.mapAsBackground = this.environmentMapAsBackground;
|
|
916
|
+
settingsEngine.environment.clearAlpha = this.clearAlpha;
|
|
917
|
+
settingsEngine.environment.clearColor = this._converter.toHexColor(this.clearColor);
|
|
918
|
+
settingsEngine.environment.rotation = { x: this.environmentMapRotation[0], y: this.environmentMapRotation[1], z: this.environmentMapRotation[2], w: this.environmentMapRotation[3] };
|
|
919
|
+
settingsEngine.environment.blurriness = this.environmentMapBlurriness;
|
|
920
|
+
settingsEngine.environment.intensity = this.environmentMapIntensity;
|
|
921
|
+
settingsEngine.environmentGeometry.gridVisibility = this.gridVisibility;
|
|
922
|
+
settingsEngine.environmentGeometry.groundPlaneVisibility = this.groundPlaneVisibility;
|
|
923
|
+
settingsEngine.environmentGeometry.groundPlaneShadowVisibility = this.groundPlaneShadowVisibility;
|
|
924
|
+
settingsEngine.environmentGeometry.gridColor = this._converter.toHexColor(this.gridColor);
|
|
925
|
+
settingsEngine.environmentGeometry.groundPlaneColor = this._converter.toHexColor(this.groundPlaneColor);
|
|
926
|
+
settingsEngine.environmentGeometry.groundPlaneShadowColor = this._converter.toHexColor(this.groundPlaneShadowColor);
|
|
927
|
+
settingsEngine.general.pointSize = this.pointSize;
|
|
928
|
+
settingsEngine.general.transformation.rotation = { x: this.arRotation[0], y: this.arRotation[1], z: this.arRotation[2] };
|
|
929
|
+
settingsEngine.general.transformation.translation = { x: this.arTranslation[0], y: this.arTranslation[1], z: this.arTranslation[2] };
|
|
930
|
+
settingsEngine.general.transformation.scale = { x: this.arScale[0], y: this.arScale[1], z: this.arScale[2] };
|
|
931
|
+
settingsEngine.general.defaultMaterialColor = this._converter.toHexColor(this.defaultMaterialColor);
|
|
932
|
+
settingsEngine.rendering.automaticColorAdjustment = this.automaticColorAdjustment;
|
|
933
|
+
settingsEngine.rendering.lights = this.lights;
|
|
934
|
+
settingsEngine.rendering.outputEncoding = this.outputEncoding;
|
|
935
|
+
settingsEngine.rendering.physicallyCorrectLights = this.physicallyCorrectLights;
|
|
936
|
+
settingsEngine.rendering.textureEncoding = this.textureEncoding;
|
|
937
|
+
settingsEngine.rendering.toneMapping = this.toneMapping;
|
|
938
|
+
settingsEngine.rendering.toneMappingExposure = this.toneMappingExposure;
|
|
939
|
+
settingsEngine.rendering.beautyRenderBlendingDuration = this.beautyRenderBlendingDuration;
|
|
940
|
+
settingsEngine.rendering.beautyRenderDelay = this.beautyRenderDelay;
|
|
941
|
+
settingsEngine.rendering.shadows = this.shadows;
|
|
942
|
+
settingsEngine.rendering.softShadows = this.softShadows;
|
|
943
|
+
}
|
|
944
|
+
start() {
|
|
945
|
+
this._renderingManager.start();
|
|
946
|
+
this._stateEngine.viewportEngines[this.id].boundingBoxCreated.then(() => {
|
|
947
|
+
this._environmentGeometryManager.changeSceneExtents(this._sceneTreeManager.boundingBox);
|
|
948
|
+
});
|
|
949
|
+
if (this._sessionSettingsMode === viewer_shared_services_1.SESSION_SETTINGS_MODE.NONE) {
|
|
950
|
+
this.environmentMap = 'photo_studio';
|
|
951
|
+
}
|
|
952
|
+
}
|
|
953
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
954
|
+
update(id) {
|
|
955
|
+
if (this.closed)
|
|
956
|
+
return;
|
|
957
|
+
this._sceneTreeManager.updateSceneTree(this._tree.root);
|
|
958
|
+
this._renderingManager.updateShadowMap();
|
|
959
|
+
this._animationEngine.updateAnimationData();
|
|
960
|
+
this._renderingManager.render();
|
|
961
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE_VIEWPORT.VIEWPORT_UPDATED, { viewportId: this.id });
|
|
962
|
+
}
|
|
963
|
+
updateEnvironmentGeometry() {
|
|
964
|
+
this._environmentGeometryManager.updateEnvironmentGeometryPosition();
|
|
965
|
+
}
|
|
966
|
+
viewInAR(file, options = { arScale: 'auto', arPlacement: 'floor', xrEnvironment: false }) {
|
|
967
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
968
|
+
const eventId = this._uuidGenerator.create();
|
|
969
|
+
const event = { type: viewer_shared_types_1.TASK_TYPE.AR_LOADING, id: eventId, progress: 0, status: 'Loading AR scene' };
|
|
970
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_START, event);
|
|
971
|
+
// if this is not a supported device, throw an error
|
|
972
|
+
if (this.viewableInAR() === false) {
|
|
973
|
+
const event = { type: viewer_shared_types_1.TASK_TYPE.AR_LOADING, id: eventId, progress: 1, status: 'Stopped AR loading due to an error' };
|
|
974
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_CANCEL, event);
|
|
975
|
+
throw new viewer_shared_services_1.ShapeDiverViewerArError('Api.viewInAR: The device or browser is not supported for this functionality, please call "viewableInAR" for more information.');
|
|
976
|
+
}
|
|
977
|
+
const arScale = options.arScale !== 'auto' ? 'fixed' : 'auto';
|
|
978
|
+
// const arPlacement = options.arPlacement !== 'wall' ? 'floor' : 'wall';
|
|
979
|
+
// const xrEnvironment = options.xrEnvironment !== true ? false : true;
|
|
980
|
+
// let arEnvironment = '';
|
|
981
|
+
// const envMapUrl = this.getEnvironmentMapImageUrl();
|
|
982
|
+
// if (envMapUrl !== '') {
|
|
983
|
+
// if (envMapUrl.endsWith('.hdr')) {
|
|
984
|
+
// arEnvironment = 'skybox-image=' + envMapUrl;
|
|
985
|
+
// } else {
|
|
986
|
+
// arEnvironment = 'environment-image=' + envMapUrl;
|
|
987
|
+
// }
|
|
988
|
+
// }
|
|
989
|
+
if (this._systemInfo.isIOS) {
|
|
990
|
+
// create the link and click it
|
|
991
|
+
const a = document.createElement('a');
|
|
992
|
+
a.href = file + (arScale === 'fixed' ? '.usdz_allowsContentScaling=0' : '.usdz');
|
|
993
|
+
a.rel = 'ar';
|
|
994
|
+
const img = document.createElement('img');
|
|
995
|
+
img.src = __classPrivateFieldGet(this, _RenderingEngine_defaultLogoStatic, "f");
|
|
996
|
+
a.appendChild(img);
|
|
997
|
+
a.click();
|
|
998
|
+
}
|
|
999
|
+
else {
|
|
1000
|
+
const a = document.createElement('a');
|
|
1001
|
+
a.href = `intent://arvr.google.com/scene-viewer/1.0?resizable=${arScale === 'fixed' ? 'false' : 'true'}&file=${file}&mode=ar_only#Intent;scheme=https;package=com.google.ar.core;action=android.intent.action.VIEW;end;`;
|
|
1002
|
+
a.click();
|
|
1003
|
+
}
|
|
1004
|
+
const event2 = { type: viewer_shared_types_1.TASK_TYPE.AR_LOADING, id: eventId, progress: 1, status: 'Done loading AR scene, launching AR' };
|
|
1005
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_END, event2);
|
|
1006
|
+
});
|
|
1007
|
+
}
|
|
1008
|
+
viewableInAR() {
|
|
1009
|
+
// has to be a mobile device (duh)
|
|
1010
|
+
if (this._systemInfo.isIOS === false && this._systemInfo.isAndroid === false)
|
|
1011
|
+
return false;
|
|
1012
|
+
// no Firefox on Android
|
|
1013
|
+
if (this._systemInfo.isAndroid === true && this._systemInfo.isFirefox === true)
|
|
1014
|
+
return false;
|
|
1015
|
+
// no Firefox on iOS
|
|
1016
|
+
if (this._systemInfo.isIOS === true && this._systemInfo.isFirefox === true)
|
|
1017
|
+
return false;
|
|
1018
|
+
// no Instagram on iOS
|
|
1019
|
+
if (this._systemInfo.isIOS === true && this._systemInfo.isInstagram === true)
|
|
1020
|
+
return false;
|
|
1021
|
+
return true;
|
|
1022
|
+
}
|
|
1023
|
+
// #endregion Public Methods (25)
|
|
1024
|
+
// #region Private Methods (1)
|
|
1025
|
+
applySyncSettings(sections = {
|
|
1026
|
+
ar: true,
|
|
1027
|
+
scene: true,
|
|
1028
|
+
camera: true,
|
|
1029
|
+
light: true,
|
|
1030
|
+
environment: true,
|
|
1031
|
+
general: true,
|
|
1032
|
+
postprocessing: true
|
|
1033
|
+
}, settingsEngine, updateViewport = true) {
|
|
1034
|
+
settingsEngine = settingsEngine || this._settingsEngine;
|
|
1035
|
+
if (!settingsEngine)
|
|
1036
|
+
return;
|
|
1037
|
+
if (sections.ar) {
|
|
1038
|
+
this.enableAR = settingsEngine.ar.enable;
|
|
1039
|
+
this.arScale = [settingsEngine.general.transformation.scale.x, settingsEngine.general.transformation.scale.y, settingsEngine.general.transformation.scale.z];
|
|
1040
|
+
this.arTranslation = [settingsEngine.general.transformation.translation.x, settingsEngine.general.transformation.translation.y, settingsEngine.general.transformation.translation.z];
|
|
1041
|
+
this.arRotation = [settingsEngine.general.transformation.rotation.x, settingsEngine.general.transformation.rotation.y, settingsEngine.general.transformation.rotation.z];
|
|
1042
|
+
}
|
|
1043
|
+
if (sections.scene) {
|
|
1044
|
+
this.gridColor = settingsEngine.environmentGeometry.gridColor;
|
|
1045
|
+
this.gridVisibility = settingsEngine.environmentGeometry.gridVisibility;
|
|
1046
|
+
this.groundPlaneColor = settingsEngine.environmentGeometry.groundPlaneColor;
|
|
1047
|
+
this.groundPlaneVisibility = settingsEngine.environmentGeometry.groundPlaneVisibility;
|
|
1048
|
+
this.groundPlaneShadowColor = settingsEngine.environmentGeometry.groundPlaneShadowColor;
|
|
1049
|
+
this.groundPlaneShadowVisibility = settingsEngine.environmentGeometry.groundPlaneShadowVisibility;
|
|
1050
|
+
this.shadows = settingsEngine.rendering.shadows;
|
|
1051
|
+
this.softShadows = settingsEngine.rendering.softShadows;
|
|
1052
|
+
this.lights = settingsEngine.rendering.lights;
|
|
1053
|
+
this.automaticColorAdjustment = settingsEngine.rendering.automaticColorAdjustment;
|
|
1054
|
+
this.textureEncoding = settingsEngine.rendering.textureEncoding;
|
|
1055
|
+
this.outputEncoding = settingsEngine.rendering.outputEncoding;
|
|
1056
|
+
this.physicallyCorrectLights = settingsEngine.rendering.physicallyCorrectLights;
|
|
1057
|
+
this.toneMapping = settingsEngine.rendering.toneMapping;
|
|
1058
|
+
this.toneMappingExposure = settingsEngine.rendering.toneMappingExposure;
|
|
1059
|
+
}
|
|
1060
|
+
if (sections.general) {
|
|
1061
|
+
this.defaultMaterialColor = settingsEngine.general.defaultMaterialColor;
|
|
1062
|
+
this.pointSize = settingsEngine.general.pointSize;
|
|
1063
|
+
}
|
|
1064
|
+
if (sections.light)
|
|
1065
|
+
this.lightEngine.applySettings(settingsEngine);
|
|
1066
|
+
if (sections.camera)
|
|
1067
|
+
this.cameraEngine.applySettings(settingsEngine);
|
|
1068
|
+
if (sections.postprocessing)
|
|
1069
|
+
this.postProcessingManager.applySettings(settingsEngine);
|
|
1070
|
+
// call adjust camera to load the three.js camera objects
|
|
1071
|
+
this.cameraManager.adjustCamera(1);
|
|
1072
|
+
this._stateEngine.viewportEngines[this.id].settingsAssigned.resolve(true);
|
|
1073
|
+
if (updateViewport)
|
|
1074
|
+
this.update('RenderingEngine.applySyncSettings');
|
|
1075
|
+
}
|
|
1076
|
+
}
|
|
1077
|
+
exports.RenderingEngine = RenderingEngine;
|
|
1078
|
+
_RenderingEngine_defaultLogo = new WeakMap(), _RenderingEngine_defaultLogoStatic = new WeakMap(), _RenderingEngine_defaultSpinner = new WeakMap(), _RenderingEngine_animations = new WeakMap(), _RenderingEngine_flags = new WeakMap();
|
|
1079
|
+
//# sourceMappingURL=RenderingEngine.js.map
|