@shapediver/viewer.rendering-engine.rendering-engine-threejs 3.3.4 → 3.3.6

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 (71) hide show
  1. package/package.json +19 -20
  2. package/src/RenderingEngine.ts +0 -1336
  3. package/src/index.ts +0 -81
  4. package/src/injectors/Tag3dGeometryCreationInjector.ts +0 -154
  5. package/src/injectors/TextureUnifierInjector.ts +0 -214
  6. package/src/interfaces/ILoader.ts +0 -3
  7. package/src/interfaces/IPostProcessingEffectDefinitions.ts +0 -402
  8. package/src/interfaces/IRenderingEngine.ts +0 -48
  9. package/src/loaders/EnvironmentMapLoader.ts +0 -357
  10. package/src/loaders/GeometryLoader.ts +0 -585
  11. package/src/loaders/HTMLElementAnchorLoader.ts +0 -107
  12. package/src/loaders/LightLoader.ts +0 -171
  13. package/src/loaders/MaterialLoader.ts +0 -1413
  14. package/src/managers/CameraManager.ts +0 -178
  15. package/src/managers/EnvironmentGeometryManager.ts +0 -224
  16. package/src/managers/PostProcessingManager.ts +0 -1181
  17. package/src/managers/RenderingManager.ts +0 -657
  18. package/src/managers/SceneTracingManager.ts +0 -127
  19. package/src/managers/SceneTreeManager.ts +0 -576
  20. package/src/managers/postprocessing/GodRaysManager.ts +0 -52
  21. package/src/managers/postprocessing/OutlineManager.ts +0 -58
  22. package/src/managers/postprocessing/SSAARenderPass.ts +0 -339
  23. package/src/managers/postprocessing/SelectiveBloomManager.ts +0 -58
  24. package/src/managers/postprocessing/ao/ao/AOEffect.ts +0 -180
  25. package/src/managers/postprocessing/ao/ao/AOPass.ts +0 -128
  26. package/src/managers/postprocessing/ao/ao/shader/ao_compose.glsl +0 -17
  27. package/src/managers/postprocessing/ao/ao/shader/ao_compose.ts +0 -19
  28. package/src/managers/postprocessing/ao/hbao/HBAOEffect.ts +0 -41
  29. package/src/managers/postprocessing/ao/hbao/shader/hbao.glsl +0 -96
  30. package/src/managers/postprocessing/ao/hbao/shader/hbao.ts +0 -98
  31. package/src/managers/postprocessing/ao/hbao/shader/hbao_utils.glsl +0 -92
  32. package/src/managers/postprocessing/ao/hbao/shader/hbao_utils.ts +0 -95
  33. package/src/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.ts +0 -259
  34. package/src/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.glsl +0 -125
  35. package/src/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.ts +0 -127
  36. package/src/managers/postprocessing/ao/ssao/SSAOEffect.ts +0 -106
  37. package/src/managers/postprocessing/ao/ssao/shader/ssao.glsl +0 -128
  38. package/src/managers/postprocessing/ao/ssao/shader/ssao.ts +0 -130
  39. package/src/managers/postprocessing/ao/utils/shader/basic.glsl +0 -6
  40. package/src/managers/postprocessing/ao/utils/shader/basic.ts +0 -8
  41. package/src/managers/postprocessing/ao/utils/shader/sampleBlueNoise.glsl +0 -36
  42. package/src/managers/postprocessing/ao/utils/shader/sampleBlueNoise.ts +0 -38
  43. package/src/managers/postprocessing/utils/CopyMaterial.ts +0 -130
  44. package/src/managers/postprocessing/utils/CopyShader.ts +0 -39
  45. package/src/managers/postprocessing/utils/FullScreenQuad.ts +0 -47
  46. package/src/managers/postprocessing/utils/NormalPass.ts +0 -222
  47. package/src/managers/postprocessing/utils/RenderPass.ts +0 -366
  48. package/src/materials/GemMaterial.ts +0 -268
  49. package/src/materials/MeshUnlitMaterialParameters.ts +0 -4
  50. package/src/materials/MultiPointsMaterial.ts +0 -646
  51. package/src/materials/SpecularGlossinessMaterial.ts +0 -182
  52. package/src/objects/SDBone.ts +0 -51
  53. package/src/objects/SDColor.ts +0 -54
  54. package/src/objects/SDData.ts +0 -44
  55. package/src/objects/SDObject.ts +0 -58
  56. package/src/shaders/PCSS.ts +0 -124
  57. package/src/shaders/gem.ts +0 -579
  58. package/src/shaders/gem_frag.glsl +0 -522
  59. package/src/shaders/gem_vert.glsl +0 -53
  60. package/src/shaders/multi_points.ts +0 -291
  61. package/src/shaders/multi_points_frag.glsl +0 -166
  62. package/src/shaders/multi_points_vert.glsl +0 -120
  63. package/src/styling/viewport-css.ts +0 -113
  64. package/src/styling/viewport.css +0 -111
  65. package/src/three/font.ts +0 -2
  66. package/src/three/geometries/TextGeometry.ts +0 -58
  67. package/src/three/loaders/FontLoader.ts +0 -205
  68. package/src/three/loaders/RGBELoader.ts +0 -496
  69. package/src/types/IThreejsData.ts +0 -16
  70. package/src/types/ThreejsData.ts +0 -43
  71. package/tsconfig.json +0 -20
@@ -1,127 +0,0 @@
1
- import * as THREE from 'three';
2
- import { AbstractCamera, ORTHOGRAPHIC_CAMERA_DIRECTION, OrthographicCamera } from '@shapediver/viewer.rendering-engine.camera-engine';
3
- import { IManager } from '@shapediver/viewer.rendering-engine.rendering-engine';
4
- import { RenderingEngine } from '../RenderingEngine';
5
- import { ShapeDiverViewerViewportError } from '@shapediver/viewer.shared.services';
6
- import { vec2, vec3 } from 'gl-matrix';
7
-
8
- export class SceneTracingManager implements IManager {
9
- // #region Properties (1)
10
-
11
- private readonly _raycaster = new THREE.Raycaster();
12
-
13
- // #endregion Properties (1)
14
-
15
- // #region Constructors (1)
16
-
17
- constructor(private readonly _renderingEngine: RenderingEngine) { }
18
-
19
- // #endregion Constructors (1)
20
-
21
- // #region Public Methods (3)
22
-
23
- public convert3Dto2D(p: vec3): {
24
- container: vec2, client: vec2, page: vec2, hidden: boolean
25
- } {
26
- const canvasPageCoordinates = this._renderingEngine.canvas.getBoundingClientRect(),
27
- width = this._renderingEngine.canvas.width,
28
- height = this._renderingEngine.canvas.height;
29
-
30
- const camera = this._renderingEngine.cameraEngine.camera;
31
- if (!camera)
32
- throw new ShapeDiverViewerViewportError('SceneTracingManager.convert3Dto2D: No camera is defined for this viewer.');
33
-
34
-
35
- if(camera instanceof OrthographicCamera) {
36
- const direction = vec3.sub(vec3.create(), camera.target, camera.position);
37
- const length = vec3.length(direction);
38
- vec3.divide(direction, direction, vec3.fromValues(length, length, length));
39
- this._raycaster.ray.direction.set(direction[0], direction[1], direction[2]);
40
-
41
- // set the origin of the ray to the opposite direction of the camera with the start at the initial provided point
42
- this._raycaster.ray.origin.set(p[0] + direction[0] * length, p[1] + direction[1] * length, p[2] + direction[2] * length);
43
- } else {
44
- this._raycaster.ray.direction.set(p[0], p[1], p[2]);
45
- this._raycaster.ray.origin.set(0, 0, 0);
46
- (camera.convertedObject[this._renderingEngine.id] as THREE.Camera).localToWorld(this._raycaster.ray.origin);
47
- this._raycaster.ray.direction.sub(this._raycaster.ray.origin);
48
- this._raycaster.ray.direction.normalize();
49
- }
50
-
51
- let closestIntersectionDistance = Number.MAX_VALUE;
52
- this._renderingEngine.sceneTreeManager.scene.traverseVisible((obj: THREE.Object3D) => {
53
- if (obj instanceof THREE.Mesh) {
54
- const curIntersections = this._raycaster.intersectObject(obj);
55
- if (curIntersections.length)
56
- if (curIntersections[0].distance < closestIntersectionDistance)
57
- closestIntersectionDistance = curIntersections[0].distance;
58
- }
59
- });
60
-
61
- const pos: vec2 = (<AbstractCamera>camera).project(vec3.clone(p));
62
-
63
- pos[0] = (pos[0] * (width / 2)) + (width / 2);
64
- pos[1] = - (pos[1] * (height / 2)) + (height / 2);
65
-
66
- // take care of correction by device pixel ratio
67
- pos[0] = pos[0] / devicePixelRatio;
68
- pos[1] = pos[1] / devicePixelRatio;
69
-
70
- // epsilon is added as a distance spacer as users tend to put the anchors of html elements directly at the vertices
71
- // with this we prevent flickering
72
- const eps = 0.0001;
73
-
74
- return {
75
- hidden: closestIntersectionDistance + eps < vec3.distance(camera.position, p),
76
- container: vec2.clone(pos),
77
- client: vec2.fromValues(pos[0] + canvasPageCoordinates.left, pos[1] + canvasPageCoordinates.top),
78
- page: vec2.fromValues(pos[0] + canvasPageCoordinates.left + window.pageXOffset, pos[1] + canvasPageCoordinates.top + window.pageYOffset)
79
- };
80
- }
81
-
82
- public init(): void { }
83
-
84
- /**
85
- * Calculate the ray that is created by the mouse event and the camera.
86
- *
87
- * @param event
88
- * @returns
89
- */
90
- public pointerEventToRay(event: PointerEvent): {
91
- origin: vec3,
92
- direction: vec3
93
- } {
94
- const rect = this._renderingEngine.canvas.getBoundingClientRect();
95
- const camera = this._renderingEngine.cameraEngine.camera;
96
- if (!camera)
97
- throw new ShapeDiverViewerViewportError('SceneTracingManager.pointerEventToRay: No camera is defined for this viewer.');
98
-
99
- const _mouse_x = ((event.clientX - rect.left) / rect.width) * 2 - 1;
100
- const _mouse_y = - ((event.clientY - rect.top) / rect.height) * 2 + 1;
101
-
102
- let origin = vec3.clone(camera.position);
103
- if (camera instanceof OrthographicCamera) {
104
- if (camera.direction == ORTHOGRAPHIC_CAMERA_DIRECTION.TOP) {
105
- origin = vec3.add(vec3.create(), camera.position, vec3.fromValues(_mouse_x * camera.right, _mouse_y * camera.top, 0));
106
- } else if (camera.direction == ORTHOGRAPHIC_CAMERA_DIRECTION.BOTTOM) {
107
- origin = vec3.add(vec3.create(), camera.position, vec3.fromValues(_mouse_x * camera.left, _mouse_y * camera.top, 0));
108
- } else if (camera.direction == ORTHOGRAPHIC_CAMERA_DIRECTION.LEFT) {
109
- origin = vec3.add(vec3.create(), camera.position, vec3.fromValues(0, _mouse_x * camera.left, _mouse_y * camera.top));
110
- } else if (camera.direction == ORTHOGRAPHIC_CAMERA_DIRECTION.RIGHT) {
111
- origin = vec3.add(vec3.create(), camera.position, vec3.fromValues(0, _mouse_x * camera.right, _mouse_y * camera.top));
112
- } else if (camera.direction == ORTHOGRAPHIC_CAMERA_DIRECTION.FRONT) {
113
- origin = vec3.add(vec3.create(), camera.position, vec3.fromValues(_mouse_x * camera.right, 0, _mouse_y * camera.top));
114
- } else if (camera.direction == ORTHOGRAPHIC_CAMERA_DIRECTION.BACK) {
115
- origin = vec3.add(vec3.create(), camera.position, vec3.fromValues(_mouse_x * camera.left, 0, _mouse_y * camera.top));
116
- } else {
117
- origin = vec3.add(vec3.create(), camera.position, vec3.fromValues(0, _mouse_x * camera.left, _mouse_y * camera.top));
118
- }
119
- }
120
-
121
- const direction = vec3.normalize(vec3.create(), vec3.sub(vec3.create(), camera.unproject(vec3.fromValues(_mouse_x, _mouse_y, 0.5)), origin));
122
-
123
- return { origin, direction };
124
- }
125
-
126
- // #endregion Public Methods (3)
127
- }