viral-viewer-2 6.2.9 → 6.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/dist/components/animation/viral-animation.js +71 -0
  2. package/dist/components/animation/viral-animation.js.map +1 -0
  3. package/dist/components/bvh/viral-bvh.js +19 -0
  4. package/dist/components/bvh/viral-bvh.js.map +1 -0
  5. package/dist/components/camera/viral-camera.js +207 -0
  6. package/dist/components/camera/viral-camera.js.map +1 -0
  7. package/dist/components/compress/viral-compress.processor.js +13 -0
  8. package/dist/components/compress/viral-compress.processor.js.map +1 -0
  9. package/dist/components/custom-objects/index.js +6 -0
  10. package/dist/components/custom-objects/index.js.map +1 -0
  11. package/dist/components/custom-objects/viral-instanced-mesh.js +203 -0
  12. package/dist/components/custom-objects/viral-instanced-mesh.js.map +1 -0
  13. package/dist/components/custom-objects/viral-mesh.js +25 -0
  14. package/dist/components/custom-objects/viral-mesh.js.map +1 -0
  15. package/dist/components/data-manager/viral-data-manager.js +35 -0
  16. package/dist/components/data-manager/viral-data-manager.js.map +1 -0
  17. package/dist/components/event-handler/base/event-dispatcher.js +35 -0
  18. package/dist/components/event-handler/base/event-dispatcher.js.map +1 -0
  19. package/dist/components/event-handler/keyboard/viral-keyboard.js +78 -0
  20. package/dist/components/event-handler/keyboard/viral-keyboard.js.map +1 -0
  21. package/dist/components/event-handler/mouse/viral-mouse.js +239 -0
  22. package/dist/components/event-handler/mouse/viral-mouse.js.map +1 -0
  23. package/dist/components/event-handler/viral-centralized-event-handler.js +186 -0
  24. package/dist/components/event-handler/viral-centralized-event-handler.js.map +1 -0
  25. package/dist/components/event-handler/viral-lifecycle-event-handler.js +55 -0
  26. package/dist/components/event-handler/viral-lifecycle-event-handler.js.map +1 -0
  27. package/dist/components/loader/viral-point-cloud.loader.js +33 -0
  28. package/dist/components/loader/viral-point-cloud.loader.js.map +1 -0
  29. package/dist/components/loader/viral-revit.loader.js +344 -0
  30. package/dist/components/loader/viral-revit.loader.js.map +1 -0
  31. package/dist/components/loader/viral-three.loader.js +20 -0
  32. package/dist/components/loader/viral-three.loader.js.map +1 -0
  33. package/dist/components/loader/viral.loader.js +16 -0
  34. package/dist/components/loader/viral.loader.js.map +1 -0
  35. package/dist/components/material/viral-material-manager.js +60 -0
  36. package/dist/components/material/viral-material-manager.js.map +1 -0
  37. package/dist/components/post-processing/post-processing-renderer.js +46 -0
  38. package/dist/components/post-processing/post-processing-renderer.js.map +1 -0
  39. package/dist/components/renderer/viral-renderer.js +55 -0
  40. package/dist/components/renderer/viral-renderer.js.map +1 -0
  41. package/dist/components/scene/viral-scene.js +131 -0
  42. package/dist/components/scene/viral-scene.js.map +1 -0
  43. package/dist/components/stats/viral-stats.js +17 -0
  44. package/dist/components/stats/viral-stats.js.map +1 -0
  45. package/dist/components/visibility-manager/viral-visibility-manager.js +175 -0
  46. package/dist/components/visibility-manager/viral-visibility-manager.js.map +1 -0
  47. package/dist/components/worker/base/worker-pool.js +68 -0
  48. package/dist/components/worker/base/worker-pool.js.map +1 -0
  49. package/dist/components/worker/base/worker-thread.js +35 -0
  50. package/dist/components/worker/base/worker-thread.js.map +1 -0
  51. package/dist/components/worker/fetch-data.worker.js +31 -0
  52. package/dist/components/worker/fetch-data.worker.js.map +1 -0
  53. package/dist/components/worker/load-element-by-material-v2.worker.js +80 -0
  54. package/dist/components/worker/load-element-by-material-v2.worker.js.map +1 -0
  55. package/dist/components/worker/load-element-by-material.worker.js +59 -0
  56. package/dist/components/worker/load-element-by-material.worker.js.map +1 -0
  57. package/dist/components/worker/load-element-standalone.worker.js +109 -0
  58. package/dist/components/worker/load-element-standalone.worker.js.map +1 -0
  59. package/dist/components/worker/viral-viewer-2.worker.js +127 -0
  60. package/dist/components/worker/viral-viewer-2.worker.js.map +1 -0
  61. package/dist/components/worker/viral-viewer-3.worker.js +82 -0
  62. package/dist/components/worker/viral-viewer-3.worker.js.map +1 -0
  63. package/dist/components/worker/viral-viewer.worker.js +107 -0
  64. package/dist/components/worker/viral-viewer.worker.js.map +1 -0
  65. package/dist/components/worker-script/fetch-data-worker.script.js +56 -0
  66. package/dist/components/worker-script/fetch-data-worker.script.js.map +1 -0
  67. package/dist/components/worker-script/load-element-by-material.script.js +131 -0
  68. package/dist/components/worker-script/load-element-by-material.script.js.map +1 -0
  69. package/dist/components/worker-script/load-element-standalone.script.js +34172 -0
  70. package/dist/components/worker-script/load-element-standalone.script.js.map +1 -0
  71. package/dist/components/worker-script/load-model-worker-2.script.js +2704 -0
  72. package/dist/components/worker-script/load-model-worker-2.script.js.map +1 -0
  73. package/dist/components/worker-script/load-model-worker.script.js +148 -0
  74. package/dist/components/worker-script/load-model-worker.script.js.map +1 -0
  75. package/dist/components/worker-script/material-aproach/load-element-by-material-instanced-mesh.script.js +34152 -0
  76. package/dist/components/worker-script/material-aproach/load-element-by-material-instanced-mesh.script.js.map +1 -0
  77. package/dist/components/worker-script/material-aproach/load-element-by-material-mesh.script.js +127 -0
  78. package/dist/components/worker-script/material-aproach/load-element-by-material-mesh.script.js.map +1 -0
  79. package/dist/components/worker-script/threejs.types.js +34162 -0
  80. package/dist/components/worker-script/threejs.types.js.map +1 -0
  81. package/dist/const/colors.js +39 -0
  82. package/dist/const/colors.js.map +1 -0
  83. package/dist/const/fonts.js +17 -0
  84. package/dist/const/fonts.js.map +1 -0
  85. package/dist/const/icons.js +11 -0
  86. package/dist/const/icons.js.map +1 -0
  87. package/dist/gui/context-menu/viral-context-menu.js +78 -0
  88. package/dist/gui/context-menu/viral-context-menu.js.map +1 -0
  89. package/dist/gui/draggable-modal/viral-draggable-modal.js +167 -0
  90. package/dist/gui/draggable-modal/viral-draggable-modal.js.map +1 -0
  91. package/dist/gui/fonts/fonts.js +20 -0
  92. package/dist/gui/fonts/fonts.js.map +1 -0
  93. package/dist/gui/navigation-cube/components/cube-camera.js +74 -0
  94. package/dist/gui/navigation-cube/components/cube-camera.js.map +1 -0
  95. package/dist/gui/navigation-cube/components/cube-renderer.js +31 -0
  96. package/dist/gui/navigation-cube/components/cube-renderer.js.map +1 -0
  97. package/dist/gui/navigation-cube/components/cube-scene.js +546 -0
  98. package/dist/gui/navigation-cube/components/cube-scene.js.map +1 -0
  99. package/dist/gui/navigation-cube/components/cube.mouse.js +109 -0
  100. package/dist/gui/navigation-cube/components/cube.mouse.js.map +1 -0
  101. package/dist/gui/navigation-cube/viral-navigation-cube.js +50 -0
  102. package/dist/gui/navigation-cube/viral-navigation-cube.js.map +1 -0
  103. package/dist/gui/spinner/viral-spinner.js +102 -0
  104. package/dist/gui/spinner/viral-spinner.js.map +1 -0
  105. package/dist/gui/tools/tools/viral-tool-ambient-occlusion.js +25 -0
  106. package/dist/gui/tools/tools/viral-tool-ambient-occlusion.js.map +1 -0
  107. package/dist/gui/tools/tools/viral-tool-dark-mode.js +21 -0
  108. package/dist/gui/tools/tools/viral-tool-dark-mode.js.map +1 -0
  109. package/dist/gui/tools/tools/viral-tool-elevation.js +30 -0
  110. package/dist/gui/tools/tools/viral-tool-elevation.js.map +1 -0
  111. package/dist/gui/tools/tools/viral-tool-export-scene.js +36 -0
  112. package/dist/gui/tools/tools/viral-tool-export-scene.js.map +1 -0
  113. package/dist/gui/tools/tools/viral-tool-measure.js +243 -0
  114. package/dist/gui/tools/tools/viral-tool-measure.js.map +1 -0
  115. package/dist/gui/tools/tools/viral-tool-sunlight.js +46 -0
  116. package/dist/gui/tools/tools/viral-tool-sunlight.js.map +1 -0
  117. package/dist/gui/tools/viral-tools.js +213 -0
  118. package/dist/gui/tools/viral-tools.js.map +1 -0
  119. package/dist/index.js +21 -0
  120. package/dist/index.js.map +1 -0
  121. package/dist/services/local-storage.service.js +57 -0
  122. package/dist/services/local-storage.service.js.map +1 -0
  123. package/dist/threejs-addon/n8ao/n8ao.js +1952 -0
  124. package/dist/threejs-addon/n8ao/n8ao.js.map +1 -0
  125. package/dist/threejs-addon/n8ao/post-processing.d.ts +109 -109
  126. package/dist/threejs-addon/n8ao/post-processing.js +15145 -0
  127. package/dist/threejs-addon/n8ao/post-processing.js.map +1 -0
  128. package/dist/threejs-addon/stats.js +102 -0
  129. package/dist/threejs-addon/stats.js.map +1 -0
  130. package/dist/types.js +173 -0
  131. package/dist/types.js.map +1 -0
  132. package/dist/utils/html.js +12 -0
  133. package/dist/utils/html.js.map +1 -0
  134. package/dist/utils/index.js +10 -0
  135. package/dist/utils/index.js.map +1 -0
  136. package/dist/utils/log.js +14 -0
  137. package/dist/utils/log.js.map +1 -0
  138. package/dist/utils/threejs.js +44 -0
  139. package/dist/utils/threejs.js.map +1 -0
  140. package/dist/viral-viewer-api.js +76 -0
  141. package/dist/viral-viewer-api.js.map +1 -0
  142. package/package.json +1 -1
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.workerCode = void 0;
4
+ function workerFunction() {
5
+ function progressGeometry(instance, solids) {
6
+ let numbers = [
7
+ instance.BasisX.X,
8
+ -instance.BasisX.Z,
9
+ -instance.BasisX.Y,
10
+ 0,
11
+ -instance.BasisZ.X,
12
+ instance.BasisZ.Z,
13
+ instance.BasisZ.Y,
14
+ 0,
15
+ -instance.BasisY.X,
16
+ instance.BasisY.Z,
17
+ instance.BasisY.Y,
18
+ 0,
19
+ -instance.Offset.X,
20
+ instance.Offset.Z,
21
+ instance.Offset.Y,
22
+ 1,
23
+ ];
24
+ let matrix4 = new Matrix4();
25
+ matrix4.fromArray(numbers);
26
+ let result = [];
27
+ for (let g = 0; g < solids.length; g++) {
28
+ const solid = solids[g];
29
+ let vertices = solid.Vertices;
30
+ let indices = solid.Indices;
31
+ const materialIndex = solid.MaterialIndex;
32
+ let newVertices = [];
33
+ for (let i = 0; i < vertices.length; i++) {
34
+ const point = vertices[i];
35
+ const point2 = new Vector3(-point.X, point.Z, point.Y);
36
+ point2.applyMatrix4(matrix4);
37
+ newVertices.push(point2);
38
+ }
39
+ let verticePoints = [];
40
+ for (let i = 0; i < indices.length; i++) {
41
+ const index = indices[i];
42
+ const point = newVertices[index];
43
+ verticePoints.push(point.x);
44
+ verticePoints.push(point.y);
45
+ verticePoints.push(point.z);
46
+ }
47
+ const buffer = new Float32Array(verticePoints);
48
+ let object = { materialIndex: materialIndex, buffer: buffer };
49
+ result.push(object);
50
+ }
51
+ return result;
52
+ }
53
+ function progressGeometry2(solids) {
54
+ let result = [];
55
+ for (let index = 0; index < solids.length; index++) {
56
+ const solid = solids[index];
57
+ const vertices = solid.Vertices;
58
+ const indices = solid.Indices;
59
+ const materialIndex = solid.MaterialIndex;
60
+ let verticePoints = [];
61
+ for (let i = 0; i < indices.length; i++) {
62
+ const index = indices[i];
63
+ const point = vertices[index];
64
+ verticePoints.push(-point.X);
65
+ verticePoints.push(point.Z);
66
+ verticePoints.push(point.Y);
67
+ }
68
+ const buffer = new Float32Array(verticePoints);
69
+ let object = { materialIndex: materialIndex, buffer: buffer };
70
+ result.push(object);
71
+ }
72
+ return result;
73
+ }
74
+ self.addEventListener("message", (event) => {
75
+ const rootElements = event.data;
76
+ let result = [];
77
+ for (let j = 0; j < rootElements.length; j++) {
78
+ const element = rootElements[j];
79
+ let solids = element.Solids;
80
+ let instances = element.Instances;
81
+ if (instances.length > 0) {
82
+ for (let index = 0; index < instances.length; index++) {
83
+ const instance = instances[index];
84
+ const elementId = instance.Id;
85
+ let geometries = progressGeometry(instance, solids);
86
+ let object = { elementId: elementId, geometries: geometries };
87
+ result.push(object);
88
+ }
89
+ }
90
+ else {
91
+ const elementId = element.Id;
92
+ let geometries = progressGeometry2(solids);
93
+ let object = { elementId: elementId, geometries: geometries };
94
+ result.push(object);
95
+ }
96
+ }
97
+ self.postMessage(result);
98
+ });
99
+ class Matrix4 {
100
+ constructor() {
101
+ this.elements = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
102
+ }
103
+ fromArray(array, offset = 0) {
104
+ for (let i = 0; i < 16; i++) {
105
+ this.elements[i] = array[i + offset];
106
+ }
107
+ return this;
108
+ }
109
+ }
110
+ class Vector3 {
111
+ constructor(x = 0, y = 0, z = 0) {
112
+ this.x = 0;
113
+ this.y = 0;
114
+ this.z = 0;
115
+ this.x = x;
116
+ this.y = y;
117
+ this.z = z;
118
+ }
119
+ applyMatrix4(m) {
120
+ const x = this.x, y = this.y, z = this.z;
121
+ const e = m.elements;
122
+ const w = 1 / (e[3] * x + e[7] * y + e[11] * z + e[15]);
123
+ this.x = (e[0] * x + e[4] * y + e[8] * z + e[12]) * w;
124
+ this.y = (e[1] * x + e[5] * y + e[9] * z + e[13]) * w;
125
+ this.z = (e[2] * x + e[6] * y + e[10] * z + e[14]) * w;
126
+ return this;
127
+ }
128
+ }
129
+ }
130
+ exports.workerCode = workerFunction;
131
+ //# sourceMappingURL=load-element-by-material.script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-element-by-material.script.js","sourceRoot":"","sources":["../../../src/components/worker-script/load-element-by-material.script.ts"],"names":[],"mappings":"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"}