@headless-three/renderer 0.1.10 → 0.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 (244) hide show
  1. package/README.md +32 -0
  2. package/dist/gpu-output.d.ts +190 -0
  3. package/dist/gpu-output.d.ts.map +1 -0
  4. package/dist/gpu-output.js +114 -0
  5. package/dist/gpu-output.js.map +1 -0
  6. package/dist/index.d.ts +26 -770
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +32 -6226
  9. package/dist/index.js.map +1 -1
  10. package/dist/index.part-001.d.ts +95 -0
  11. package/dist/index.part-001.d.ts.map +1 -0
  12. package/dist/index.part-001.js +273 -0
  13. package/dist/index.part-001.js.map +1 -0
  14. package/dist/index.part-002.d.ts +69 -0
  15. package/dist/index.part-002.d.ts.map +1 -0
  16. package/dist/index.part-002.js +211 -0
  17. package/dist/index.part-002.js.map +1 -0
  18. package/dist/index.part-003.d.ts +105 -0
  19. package/dist/index.part-003.d.ts.map +1 -0
  20. package/dist/index.part-003.js +270 -0
  21. package/dist/index.part-003.js.map +1 -0
  22. package/dist/index.part-004.d.ts +78 -0
  23. package/dist/index.part-004.d.ts.map +1 -0
  24. package/dist/index.part-004.js +390 -0
  25. package/dist/index.part-004.js.map +1 -0
  26. package/dist/index.part-005.d.ts +75 -0
  27. package/dist/index.part-005.d.ts.map +1 -0
  28. package/dist/index.part-005.js +236 -0
  29. package/dist/index.part-005.js.map +1 -0
  30. package/dist/index.part-006.d.ts +105 -0
  31. package/dist/index.part-006.d.ts.map +1 -0
  32. package/dist/index.part-006.js +262 -0
  33. package/dist/index.part-006.js.map +1 -0
  34. package/dist/index.part-007.d.ts +112 -0
  35. package/dist/index.part-007.d.ts.map +1 -0
  36. package/dist/index.part-007.js +358 -0
  37. package/dist/index.part-007.js.map +1 -0
  38. package/dist/index.part-008.d.ts +240 -0
  39. package/dist/index.part-008.d.ts.map +1 -0
  40. package/dist/index.part-008.js +458 -0
  41. package/dist/index.part-008.js.map +1 -0
  42. package/dist/index.part-009.d.ts +46 -0
  43. package/dist/index.part-009.d.ts.map +1 -0
  44. package/dist/index.part-009.js +379 -0
  45. package/dist/index.part-009.js.map +1 -0
  46. package/dist/index.part-010.d.ts +24 -0
  47. package/dist/index.part-010.d.ts.map +1 -0
  48. package/dist/index.part-010.js +277 -0
  49. package/dist/index.part-010.js.map +1 -0
  50. package/dist/index.part-011.d.ts +21 -0
  51. package/dist/index.part-011.d.ts.map +1 -0
  52. package/dist/index.part-011.js +361 -0
  53. package/dist/index.part-011.js.map +1 -0
  54. package/dist/index.part-012.d.ts +115 -0
  55. package/dist/index.part-012.d.ts.map +1 -0
  56. package/dist/index.part-012.js +298 -0
  57. package/dist/index.part-012.js.map +1 -0
  58. package/dist/index.part-013.d.ts +37 -0
  59. package/dist/index.part-013.d.ts.map +1 -0
  60. package/dist/index.part-013.js +341 -0
  61. package/dist/index.part-013.js.map +1 -0
  62. package/dist/index.part-014.d.ts +43 -0
  63. package/dist/index.part-014.d.ts.map +1 -0
  64. package/dist/index.part-014.js +441 -0
  65. package/dist/index.part-014.js.map +1 -0
  66. package/dist/index.part-015.d.ts +45 -0
  67. package/dist/index.part-015.d.ts.map +1 -0
  68. package/dist/index.part-015.js +432 -0
  69. package/dist/index.part-015.js.map +1 -0
  70. package/dist/index.part-016.d.ts +55 -0
  71. package/dist/index.part-016.d.ts.map +1 -0
  72. package/dist/index.part-016.js +382 -0
  73. package/dist/index.part-016.js.map +1 -0
  74. package/dist/index.part-017.d.ts +55 -0
  75. package/dist/index.part-017.d.ts.map +1 -0
  76. package/dist/index.part-017.js +436 -0
  77. package/dist/index.part-017.js.map +1 -0
  78. package/dist/index.part-018.d.ts +34 -0
  79. package/dist/index.part-018.d.ts.map +1 -0
  80. package/dist/index.part-018.js +365 -0
  81. package/dist/index.part-018.js.map +1 -0
  82. package/dist/index.part-019.d.ts +29 -0
  83. package/dist/index.part-019.d.ts.map +1 -0
  84. package/dist/index.part-019.js +261 -0
  85. package/dist/index.part-019.js.map +1 -0
  86. package/dist/index.part-020.d.ts +37 -0
  87. package/dist/index.part-020.d.ts.map +1 -0
  88. package/dist/index.part-020.js +388 -0
  89. package/dist/index.part-020.js.map +1 -0
  90. package/dist/index.part-021.d.ts +10 -0
  91. package/dist/index.part-021.d.ts.map +1 -0
  92. package/dist/index.part-021.js +142 -0
  93. package/dist/index.part-021.js.map +1 -0
  94. package/dist/loaders.d.ts +27 -91
  95. package/dist/loaders.d.ts.map +1 -1
  96. package/dist/loaders.js +22 -855
  97. package/dist/loaders.js.map +1 -1
  98. package/dist/loaders.part-001.d.ts +163 -0
  99. package/dist/loaders.part-001.d.ts.map +1 -0
  100. package/dist/loaders.part-001.js +277 -0
  101. package/dist/loaders.part-001.js.map +1 -0
  102. package/dist/loaders.part-002.d.ts +33 -0
  103. package/dist/loaders.part-002.d.ts.map +1 -0
  104. package/dist/loaders.part-002.js +511 -0
  105. package/dist/loaders.part-002.js.map +1 -0
  106. package/dist/loaders.part-003.d.ts +23 -0
  107. package/dist/loaders.part-003.d.ts.map +1 -0
  108. package/dist/loaders.part-003.js +138 -0
  109. package/dist/loaders.part-003.js.map +1 -0
  110. package/dist/materials.d.ts +33 -49
  111. package/dist/materials.d.ts.map +1 -1
  112. package/dist/materials.js +39 -4339
  113. package/dist/materials.js.map +1 -1
  114. package/dist/materials.part-001.d.ts +153 -0
  115. package/dist/materials.part-001.d.ts.map +1 -0
  116. package/dist/materials.part-001.js +347 -0
  117. package/dist/materials.part-001.js.map +1 -0
  118. package/dist/materials.part-002.d.ts +46 -0
  119. package/dist/materials.part-002.d.ts.map +1 -0
  120. package/dist/materials.part-002.js +299 -0
  121. package/dist/materials.part-002.js.map +1 -0
  122. package/dist/materials.part-003.d.ts +14 -0
  123. package/dist/materials.part-003.d.ts.map +1 -0
  124. package/dist/materials.part-003.js +438 -0
  125. package/dist/materials.part-003.js.map +1 -0
  126. package/dist/materials.part-004.d.ts +30 -0
  127. package/dist/materials.part-004.d.ts.map +1 -0
  128. package/dist/materials.part-004.js +464 -0
  129. package/dist/materials.part-004.js.map +1 -0
  130. package/dist/materials.part-005.d.ts +38 -0
  131. package/dist/materials.part-005.d.ts.map +1 -0
  132. package/dist/materials.part-005.js +366 -0
  133. package/dist/materials.part-005.js.map +1 -0
  134. package/dist/materials.part-006.d.ts +18 -0
  135. package/dist/materials.part-006.d.ts.map +1 -0
  136. package/dist/materials.part-006.js +391 -0
  137. package/dist/materials.part-006.js.map +1 -0
  138. package/dist/materials.part-007.d.ts +24 -0
  139. package/dist/materials.part-007.d.ts.map +1 -0
  140. package/dist/materials.part-007.js +467 -0
  141. package/dist/materials.part-007.js.map +1 -0
  142. package/dist/materials.part-008.d.ts +95 -0
  143. package/dist/materials.part-008.d.ts.map +1 -0
  144. package/dist/materials.part-008.js +404 -0
  145. package/dist/materials.part-008.js.map +1 -0
  146. package/dist/materials.part-009.d.ts +89 -0
  147. package/dist/materials.part-009.d.ts.map +1 -0
  148. package/dist/materials.part-009.js +412 -0
  149. package/dist/materials.part-009.js.map +1 -0
  150. package/dist/materials.part-010.d.ts +46 -0
  151. package/dist/materials.part-010.d.ts.map +1 -0
  152. package/dist/materials.part-010.js +375 -0
  153. package/dist/materials.part-010.js.map +1 -0
  154. package/dist/materials.part-011.d.ts +25 -0
  155. package/dist/materials.part-011.d.ts.map +1 -0
  156. package/dist/materials.part-011.js +435 -0
  157. package/dist/materials.part-011.js.map +1 -0
  158. package/dist/materials.part-012.d.ts +15 -0
  159. package/dist/materials.part-012.d.ts.map +1 -0
  160. package/dist/materials.part-012.js +229 -0
  161. package/dist/materials.part-012.js.map +1 -0
  162. package/dist/scene.d.ts +19 -279
  163. package/dist/scene.d.ts.map +1 -1
  164. package/dist/scene.js +21 -3931
  165. package/dist/scene.js.map +1 -1
  166. package/dist/scene.part-001.d.ts +375 -0
  167. package/dist/scene.part-001.d.ts.map +1 -0
  168. package/dist/scene.part-001.js +20 -0
  169. package/dist/scene.part-001.js.map +1 -0
  170. package/dist/scene.part-002.d.ts +28 -0
  171. package/dist/scene.part-002.d.ts.map +1 -0
  172. package/dist/scene.part-002.js +311 -0
  173. package/dist/scene.part-002.js.map +1 -0
  174. package/dist/scene.part-003.d.ts +26 -0
  175. package/dist/scene.part-003.d.ts.map +1 -0
  176. package/dist/scene.part-003.js +384 -0
  177. package/dist/scene.part-003.js.map +1 -0
  178. package/dist/scene.part-004.d.ts +24 -0
  179. package/dist/scene.part-004.d.ts.map +1 -0
  180. package/dist/scene.part-004.js +287 -0
  181. package/dist/scene.part-004.js.map +1 -0
  182. package/dist/scene.part-005.d.ts +37 -0
  183. package/dist/scene.part-005.d.ts.map +1 -0
  184. package/dist/scene.part-005.js +350 -0
  185. package/dist/scene.part-005.js.map +1 -0
  186. package/dist/scene.part-006.d.ts +25 -0
  187. package/dist/scene.part-006.d.ts.map +1 -0
  188. package/dist/scene.part-006.js +362 -0
  189. package/dist/scene.part-006.js.map +1 -0
  190. package/dist/scene.part-007.d.ts +36 -0
  191. package/dist/scene.part-007.d.ts.map +1 -0
  192. package/dist/scene.part-007.js +417 -0
  193. package/dist/scene.part-007.js.map +1 -0
  194. package/dist/scene.part-008.d.ts +78 -0
  195. package/dist/scene.part-008.d.ts.map +1 -0
  196. package/dist/scene.part-008.js +416 -0
  197. package/dist/scene.part-008.js.map +1 -0
  198. package/dist/scene.part-009.d.ts +25 -0
  199. package/dist/scene.part-009.d.ts.map +1 -0
  200. package/dist/scene.part-009.js +330 -0
  201. package/dist/scene.part-009.js.map +1 -0
  202. package/dist/scene.part-010.d.ts +32 -0
  203. package/dist/scene.part-010.d.ts.map +1 -0
  204. package/dist/scene.part-010.js +336 -0
  205. package/dist/scene.part-010.js.map +1 -0
  206. package/dist/scene.part-011.d.ts +100 -0
  207. package/dist/scene.part-011.d.ts.map +1 -0
  208. package/dist/scene.part-011.js +262 -0
  209. package/dist/scene.part-011.js.map +1 -0
  210. package/dist/scene.part-012.d.ts +48 -0
  211. package/dist/scene.part-012.d.ts.map +1 -0
  212. package/dist/scene.part-012.js +357 -0
  213. package/dist/scene.part-012.js.map +1 -0
  214. package/dist/scene.part-013.d.ts +51 -0
  215. package/dist/scene.part-013.d.ts.map +1 -0
  216. package/dist/scene.part-013.js +368 -0
  217. package/dist/scene.part-013.js.map +1 -0
  218. package/dist/scene.part-014.d.ts +16 -0
  219. package/dist/scene.part-014.d.ts.map +1 -0
  220. package/dist/scene.part-014.js +112 -0
  221. package/dist/scene.part-014.js.map +1 -0
  222. package/dist/types.d.ts +53 -1564
  223. package/dist/types.d.ts.map +1 -1
  224. package/dist/types.js +4 -1
  225. package/dist/types.js.map +1 -1
  226. package/dist/types.part-001.d.ts +386 -0
  227. package/dist/types.part-001.d.ts.map +1 -0
  228. package/dist/types.part-001.js +4 -0
  229. package/dist/types.part-001.js.map +1 -0
  230. package/dist/types.part-002.d.ts +407 -0
  231. package/dist/types.part-002.d.ts.map +1 -0
  232. package/dist/types.part-002.js +3 -0
  233. package/dist/types.part-002.js.map +1 -0
  234. package/dist/types.part-003.d.ts +427 -0
  235. package/dist/types.part-003.d.ts.map +1 -0
  236. package/dist/types.part-003.js +3 -0
  237. package/dist/types.part-003.js.map +1 -0
  238. package/dist/types.part-004.d.ts +351 -0
  239. package/dist/types.part-004.d.ts.map +1 -0
  240. package/dist/types.part-004.js +3 -0
  241. package/dist/types.part-004.js.map +1 -0
  242. package/native.d.ts +130 -0
  243. package/native.js +56 -52
  244. package/package.json +11 -8
@@ -0,0 +1,417 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NativeMeshPayloadCacheLimit = void 0;
4
+ exports.clippingState = clippingState;
5
+ exports.clippingContextForObject = clippingContextForObject;
6
+ exports.clipShadowsForMaterial = clipShadowsForMaterial;
7
+ exports.pushMesh = pushMesh;
8
+ exports.needsTransparentDoubleSidePass = needsTransparentDoubleSidePass;
9
+ exports.nativeMeshesFromSortedFlattened = nativeMeshesFromSortedFlattened;
10
+ exports.applyNativeMeshPayloadCache = applyNativeMeshPayloadCache;
11
+ exports.nativeMeshPayloadSignature = nativeMeshPayloadSignature;
12
+ exports.nativeMeshPayloadCacheable = nativeMeshPayloadCacheable;
13
+ exports.nativeMeshPayloadObjectId = nativeMeshPayloadObjectId;
14
+ exports.evictNativeMeshPayloads = evictNativeMeshPayloads;
15
+ exports.sortInfoForObject = sortInfoForObject;
16
+ exports.mergeSortKeys = mergeSortKeys;
17
+ exports.sortFlattenedMeshes = sortFlattenedMeshes;
18
+ exports.partitionFlattenedMeshes = partitionFlattenedMeshes;
19
+ exports.compareWithSort = compareWithSort;
20
+ exports.normalizeSortKeys = normalizeSortKeys;
21
+ exports.compareFlattenedMeshes = compareFlattenedMeshes;
22
+ exports.compareTransparentFlattenedMeshes = compareTransparentFlattenedMeshes;
23
+ exports.meshDefaultsTransparent = meshDefaultsTransparent;
24
+ exports.materialAlpha = materialAlpha;
25
+ exports.finitePositive = finitePositive;
26
+ exports.materialVariantForObject = materialVariantForObject;
27
+ exports.projectedObjectZ = projectedObjectZ;
28
+ exports.projectedWorldPointZ = projectedWorldPointZ;
29
+ exports.objectSortCenter = objectSortCenter;
30
+ exports.renderableObjectOutsideFrustum = renderableObjectOutsideFrustum;
31
+ const math_1 = require("./math");
32
+ const clipping_1 = require("./clipping");
33
+ const scene_part_005_1 = require("./scene.part-005");
34
+ const scene_part_008_1 = require("./scene.part-008");
35
+ function clippingState(clippingContext, material, localClippingEnabled) {
36
+ const inheritedUnionPlanes = clippingContext.unionPlanes.slice(0, clipping_1.MAX_CLIPPING_PLANES);
37
+ const inheritedIntersectionPlanes = clippingContext.intersectionPlanes.slice(0, Math.max(0, clipping_1.MAX_CLIPPING_PLANES - inheritedUnionPlanes.length));
38
+ const localBudget = Math.max(0, clipping_1.MAX_CLIPPING_PLANES - inheritedUnionPlanes.length - inheritedIntersectionPlanes.length);
39
+ const localPlanes = localClippingEnabled
40
+ ? (0, clipping_1.extractClippingPlanes)(material?.clippingPlanes, 'material.clippingPlanes', localBudget)
41
+ : [];
42
+ const clipIntersection = (0, scene_part_005_1.optionalObjectBoolean)(material?.clipIntersection, 'material.clipIntersection') === true;
43
+ const localUnionPlanes = clipIntersection ? [] : localPlanes;
44
+ const localIntersectionPlanes = clipIntersection ? localPlanes : [];
45
+ const unionPlanes = [...inheritedUnionPlanes, ...localUnionPlanes];
46
+ const intersectionPlanes = [...inheritedIntersectionPlanes, ...localIntersectionPlanes];
47
+ const planes = [...unionPlanes, ...intersectionPlanes];
48
+ if (planes.length === 0)
49
+ return {};
50
+ return {
51
+ clippingPlanes: (0, clipping_1.flattenClippingPlanes)(planes),
52
+ clippingUnionCount: unionPlanes.length,
53
+ };
54
+ }
55
+ function clippingContextForObject(parent, object) {
56
+ if (object.isClippingGroup !== true)
57
+ return parent;
58
+ if ((0, scene_part_005_1.optionalObjectBoolean)(object.enabled, 'ClippingGroup.enabled') === false)
59
+ return parent;
60
+ const clipIntersection = (0, scene_part_005_1.optionalObjectBoolean)(object.clipIntersection, 'ClippingGroup.clipIntersection') === true;
61
+ const clipShadows = parent.clipShadows || (0, scene_part_005_1.optionalObjectBoolean)(object.clipShadows, 'ClippingGroup.clipShadows') === true;
62
+ const currentCount = parent.unionPlanes.length + parent.intersectionPlanes.length;
63
+ const remainingBudget = Math.max(0, clipping_1.MAX_CLIPPING_PLANES - currentCount);
64
+ const planes = (0, clipping_1.extractClippingPlanes)(object.clippingPlanes, 'ClippingGroup.clippingPlanes', remainingBudget);
65
+ if (planes.length === 0)
66
+ return parent;
67
+ return clipIntersection
68
+ ? {
69
+ unionPlanes: parent.unionPlanes,
70
+ intersectionPlanes: [...parent.intersectionPlanes, ...planes],
71
+ clipShadows,
72
+ }
73
+ : {
74
+ unionPlanes: [...parent.unionPlanes, ...planes],
75
+ intersectionPlanes: parent.intersectionPlanes,
76
+ clipShadows,
77
+ };
78
+ }
79
+ function clipShadowsForMaterial(material, clippingContext) {
80
+ return (0, scene_part_005_1.optionalObjectBoolean)(material?.clipShadows, 'material.clipShadows') === true || clippingContext.clipShadows ? true : undefined;
81
+ }
82
+ function pushMesh(meshes, mesh, sortItem, transparentDoubleSidePass = false) {
83
+ const groupOrder = mesh.groupOrder ?? 0;
84
+ const renderOrder = mesh.renderOrder ?? 0;
85
+ meshes.push({
86
+ mesh: {
87
+ ...mesh,
88
+ groupOrder: (0, scene_part_008_1.nativeRenderOrderKey)(groupOrder),
89
+ renderOrder: (0, scene_part_008_1.nativeRenderOrderKey)(renderOrder),
90
+ },
91
+ sortItem,
92
+ groupOrder,
93
+ renderOrder,
94
+ sortZ: mesh.sortZ ?? 0,
95
+ materialSortKey: mesh.materialSortKey ?? 0,
96
+ materialVariant: mesh.materialVariant ?? 0,
97
+ sortIndex: mesh.sortIndex ?? meshes.length,
98
+ transparentDoubleSidePass,
99
+ });
100
+ }
101
+ function needsTransparentDoubleSidePass(material, props, wireframe) {
102
+ return !wireframe
103
+ && material?.transparent === true
104
+ && material.forceSinglePass === false
105
+ && props.side === 'double';
106
+ }
107
+ function nativeMeshesFromSortedFlattened(meshes) {
108
+ const nativeMeshes = [];
109
+ for (const { mesh, transparentDoubleSidePass } of meshes) {
110
+ if (transparentDoubleSidePass) {
111
+ nativeMeshes.push({ ...mesh, side: 'back' });
112
+ nativeMeshes.push({ ...mesh, side: 'front' });
113
+ }
114
+ else {
115
+ nativeMeshes.push(mesh);
116
+ }
117
+ }
118
+ return nativeMeshes;
119
+ }
120
+ exports.NativeMeshPayloadCacheLimit = 2048;
121
+ function applyNativeMeshPayloadCache(meshes, cache) {
122
+ for (const mesh of meshes) {
123
+ const signature = nativeMeshPayloadSignature(mesh, cache);
124
+ if (!signature)
125
+ continue;
126
+ let cached = cache.payloads.get(signature);
127
+ if (!cached) {
128
+ const positions = mesh.positions;
129
+ cached = {
130
+ key: cache.nextPayloadId++,
131
+ vertexCount: positions.length / 3,
132
+ indexCount: mesh.indices?.length,
133
+ ready: false,
134
+ };
135
+ evictNativeMeshPayloads(cache);
136
+ cache.payloads.set(signature, cached);
137
+ }
138
+ mesh.nativeMeshKey = cached.key;
139
+ mesh.nativeVertexCount = cached.vertexCount;
140
+ mesh.nativeIndexCount = cached.indexCount;
141
+ if (cached.ready) {
142
+ mesh.positions = [];
143
+ delete mesh.indices;
144
+ delete mesh.normals;
145
+ delete mesh.colors;
146
+ delete mesh.uvs;
147
+ delete mesh.uvs2;
148
+ }
149
+ else {
150
+ cache.pending.add(signature);
151
+ }
152
+ }
153
+ }
154
+ function nativeMeshPayloadSignature(mesh, cache) {
155
+ if (!mesh.positions || mesh.positions.length === 0)
156
+ return null;
157
+ if (mesh.positions.length % 3 !== 0)
158
+ return null;
159
+ if (!nativeMeshPayloadCacheable(mesh))
160
+ return null;
161
+ return [
162
+ 'p', nativeMeshPayloadObjectId(cache, mesh.positions),
163
+ 'i', nativeMeshPayloadObjectId(cache, mesh.indices),
164
+ 'n', nativeMeshPayloadObjectId(cache, mesh.normals),
165
+ 'c', nativeMeshPayloadObjectId(cache, mesh.colors),
166
+ 'u', nativeMeshPayloadObjectId(cache, mesh.uvs),
167
+ 'v', nativeMeshPayloadObjectId(cache, mesh.uvs2),
168
+ 'flat', mesh.flatShading === true ? 1 : 0,
169
+ 'topology', mesh.topology ?? 'triangles',
170
+ ].join(':');
171
+ }
172
+ function nativeMeshPayloadCacheable(mesh) {
173
+ return mesh.displacementMap == null
174
+ && mesh.normalMap == null
175
+ && mesh.bumpMap == null
176
+ && mesh.clearcoatNormalMap == null
177
+ && (mesh.anisotropy == null || mesh.anisotropy <= 0);
178
+ }
179
+ function nativeMeshPayloadObjectId(cache, value) {
180
+ if (value == null)
181
+ return 'none';
182
+ let id = cache.objectIds.get(value);
183
+ if (id === undefined) {
184
+ id = cache.nextObjectId++;
185
+ cache.objectIds.set(value, id);
186
+ }
187
+ return String(id);
188
+ }
189
+ function evictNativeMeshPayloads(cache) {
190
+ while (cache.payloads.size >= exports.NativeMeshPayloadCacheLimit) {
191
+ const first = cache.payloads.keys().next();
192
+ if (first.done)
193
+ return;
194
+ cache.payloads.delete(first.value);
195
+ cache.pending.delete(first.value);
196
+ }
197
+ }
198
+ function sortInfoForObject(object, material, camera, sortIndex, groupOrder, transform, geometry, group, sortItemObject, sortItemZOverride) {
199
+ const renderOrder = (0, scene_part_008_1.renderOrderNumber)(object.renderOrder, 'object.renderOrder', 0);
200
+ const z = camera ? projectedObjectZ(object, camera, transform) : 0;
201
+ const itemZ = sortItemZOverride ?? z;
202
+ const id = (0, scene_part_008_1.unsignedSortKey)(object.id, sortIndex);
203
+ const materialSortKey = (0, scene_part_008_1.finiteOrDefault)(material?.id, 0);
204
+ const materialVariant = materialVariantForObject(object);
205
+ return {
206
+ keys: {
207
+ groupOrder,
208
+ renderOrder,
209
+ sortZ: z,
210
+ sortIndex: id,
211
+ materialSortKey,
212
+ materialVariant,
213
+ },
214
+ item: {
215
+ id,
216
+ object: sortItemObject ?? object,
217
+ geometry,
218
+ material,
219
+ group,
220
+ groupOrder,
221
+ renderOrder,
222
+ z: itemZ,
223
+ materialVariant,
224
+ },
225
+ };
226
+ }
227
+ function mergeSortKeys(keys, override) {
228
+ return override ? { ...keys, ...override } : keys;
229
+ }
230
+ function sortFlattenedMeshes(meshes, options) {
231
+ const sortObjects = options.sortObjects !== false;
232
+ const buckets = partitionFlattenedMeshes(meshes);
233
+ if (options.opaque === false)
234
+ buckets.opaque.length = 0;
235
+ if (options.transparent === false) {
236
+ buckets.transmissive.length = 0;
237
+ buckets.transparent.length = 0;
238
+ }
239
+ if (!sortObjects) {
240
+ normalizeSortKeys(buckets.opaque);
241
+ normalizeSortKeys(buckets.transmissive);
242
+ normalizeSortKeys(buckets.transparent);
243
+ return [...buckets.opaque, ...buckets.transmissive, ...buckets.transparent];
244
+ }
245
+ if (options.opaqueSort) {
246
+ buckets.opaque.sort(compareWithSort(options.opaqueSort));
247
+ normalizeSortKeys(buckets.opaque);
248
+ }
249
+ else {
250
+ buckets.opaque.sort(compareFlattenedMeshes);
251
+ }
252
+ if (options.transparentSort) {
253
+ const transparentSort = compareWithSort(options.transparentSort);
254
+ buckets.transmissive.sort(transparentSort);
255
+ buckets.transparent.sort(transparentSort);
256
+ normalizeSortKeys(buckets.transmissive);
257
+ normalizeSortKeys(buckets.transparent);
258
+ }
259
+ else {
260
+ buckets.transmissive.sort(compareTransparentFlattenedMeshes);
261
+ buckets.transparent.sort(compareTransparentFlattenedMeshes);
262
+ }
263
+ return [...buckets.opaque, ...buckets.transmissive, ...buckets.transparent];
264
+ }
265
+ function partitionFlattenedMeshes(meshes) {
266
+ const opaque = [];
267
+ const transmissive = [];
268
+ const transparent = [];
269
+ for (const mesh of meshes) {
270
+ if (finitePositive(mesh.mesh.transmission)) {
271
+ transmissive.push(mesh);
272
+ }
273
+ else if (meshDefaultsTransparent(mesh.mesh)) {
274
+ transparent.push(mesh);
275
+ }
276
+ else {
277
+ opaque.push(mesh);
278
+ }
279
+ }
280
+ return { opaque, transmissive, transparent };
281
+ }
282
+ function compareWithSort(sort) {
283
+ return (a, b) => {
284
+ const result = Number(sort(a.sortItem, b.sortItem));
285
+ return Number.isFinite(result) ? result : 0;
286
+ };
287
+ }
288
+ function normalizeSortKeys(meshes) {
289
+ meshes.forEach((entry, index) => {
290
+ entry.mesh.groupOrder = 0;
291
+ entry.mesh.renderOrder = 0;
292
+ entry.mesh.materialSortKey = 0;
293
+ entry.mesh.materialVariant = 0;
294
+ entry.mesh.sortZ = 0;
295
+ entry.mesh.sortIndex = index;
296
+ });
297
+ }
298
+ function compareFlattenedMeshes(a, b) {
299
+ return a.groupOrder - b.groupOrder
300
+ || a.renderOrder - b.renderOrder
301
+ || a.materialSortKey - b.materialSortKey
302
+ || a.materialVariant - b.materialVariant
303
+ || a.sortZ - b.sortZ
304
+ || a.sortIndex - b.sortIndex;
305
+ }
306
+ function compareTransparentFlattenedMeshes(a, b) {
307
+ return a.groupOrder - b.groupOrder
308
+ || a.renderOrder - b.renderOrder
309
+ || b.sortZ - a.sortZ
310
+ || a.sortIndex - b.sortIndex;
311
+ }
312
+ function meshDefaultsTransparent(mesh) {
313
+ if (mesh.alphaHash === true)
314
+ return false;
315
+ if (mesh.transparent === true)
316
+ return true;
317
+ if (mesh.transparent === false)
318
+ return false;
319
+ return materialAlpha(mesh) < 0.999;
320
+ }
321
+ function materialAlpha(mesh) {
322
+ return mesh.color && mesh.color.length >= 4 ? (0, scene_part_008_1.finiteOrDefault)(mesh.color[3], 1) : 1;
323
+ }
324
+ function finitePositive(value) {
325
+ return typeof value === 'number' && Number.isFinite(value) && value > 0.0001;
326
+ }
327
+ function materialVariantForObject(object) {
328
+ return (object.isInstancedMesh === true ? 2 : 0) + (object.isSkinnedMesh === true ? 1 : 0);
329
+ }
330
+ function projectedObjectZ(object, camera, transform) {
331
+ const world = transform ?? object.matrixWorld?.elements;
332
+ if (!world || world.length < 16)
333
+ return 0;
334
+ const view = camera.matrixWorldInverse?.elements;
335
+ const projection = camera.projectionMatrix?.elements;
336
+ if (!view || view.length < 16 || !projection || projection.length < 16)
337
+ return 0;
338
+ const center = objectSortCenter(object);
339
+ const x = world[0] * center[0] + world[4] * center[1] + world[8] * center[2] + world[12];
340
+ const y = world[1] * center[0] + world[5] * center[1] + world[9] * center[2] + world[13];
341
+ const z = world[2] * center[0] + world[6] * center[1] + world[10] * center[2] + world[14];
342
+ const vx = view[0] * x + view[4] * y + view[8] * z + view[12];
343
+ const vy = view[1] * x + view[5] * y + view[9] * z + view[13];
344
+ const vz = view[2] * x + view[6] * y + view[10] * z + view[14];
345
+ const vw = view[3] * x + view[7] * y + view[11] * z + view[15];
346
+ const clipZ = projection[2] * vx + projection[6] * vy + projection[10] * vz + projection[14] * vw;
347
+ const clipW = projection[3] * vx + projection[7] * vy + projection[11] * vz + projection[15] * vw;
348
+ return clipW === 0 ? clipZ : clipZ / clipW;
349
+ }
350
+ function projectedWorldPointZ(worldPoint, camera) {
351
+ const view = camera.matrixWorldInverse?.elements;
352
+ const projection = camera.projectionMatrix?.elements;
353
+ if (!view || view.length < 16 || !projection || projection.length < 16)
354
+ return 0;
355
+ const x = worldPoint[0];
356
+ const y = worldPoint[1];
357
+ const z = worldPoint[2];
358
+ const vx = view[0] * x + view[4] * y + view[8] * z + view[12];
359
+ const vy = view[1] * x + view[5] * y + view[9] * z + view[13];
360
+ const vz = view[2] * x + view[6] * y + view[10] * z + view[14];
361
+ const vw = view[3] * x + view[7] * y + view[11] * z + view[15];
362
+ const clipZ = projection[2] * vx + projection[6] * vy + projection[10] * vz + projection[14] * vw;
363
+ const clipW = projection[3] * vx + projection[7] * vy + projection[11] * vz + projection[15] * vw;
364
+ return clipW === 0 ? clipZ : clipZ / clipW;
365
+ }
366
+ function objectSortCenter(object) {
367
+ if (object.boundingSphere !== undefined) {
368
+ if (object.boundingSphere == null && typeof object.computeBoundingSphere === 'function') {
369
+ try {
370
+ object.computeBoundingSphere();
371
+ }
372
+ catch {
373
+ return [0, 0, 0];
374
+ }
375
+ }
376
+ if (object.boundingSphere == null)
377
+ return [0, 0, 0];
378
+ if (!object.boundingSphere || typeof object.boundingSphere !== 'object') {
379
+ throw new TypeError('object.boundingSphere must be a THREE.Sphere-like object.');
380
+ }
381
+ return (0, scene_part_008_1.requiredVec3Like)(object.boundingSphere.center, 'object.boundingSphere.center');
382
+ }
383
+ const geometry = object.geometry;
384
+ if (!geometry)
385
+ return [0, 0, 0];
386
+ if (geometry.boundingSphere == null && typeof geometry.computeBoundingSphere === 'function') {
387
+ try {
388
+ geometry.computeBoundingSphere();
389
+ }
390
+ catch {
391
+ return [0, 0, 0];
392
+ }
393
+ }
394
+ const sphere = geometry.boundingSphere;
395
+ if (sphere == null)
396
+ return [0, 0, 0];
397
+ if (!sphere || typeof sphere !== 'object') {
398
+ throw new TypeError('geometry.boundingSphere must be a THREE.Sphere-like object.');
399
+ }
400
+ return (0, scene_part_008_1.requiredVec3Like)(sphere.center, 'geometry.boundingSphere.center');
401
+ }
402
+ function renderableObjectOutsideFrustum(object, camera, viewportHeight = 512, overrideMaterial) {
403
+ if (!camera)
404
+ return false;
405
+ const frustumCulled = (0, scene_part_005_1.optionalObjectBoolean)(object.frustumCulled, 'object.frustumCulled');
406
+ if (frustumCulled === false)
407
+ return false;
408
+ const sphere = (0, scene_part_008_1.objectBoundingSphere)(object);
409
+ if (!sphere)
410
+ return false;
411
+ const transform = (0, math_1.matrixElements)(object.matrixWorld, (0, scene_part_008_1.renderableMatrixWorldLabel)(object));
412
+ const extraRadius = object.isPoints === true
413
+ ? (0, scene_part_008_1.pointBillboardCullRadius)(object, camera, transform, sphere, viewportHeight, overrideMaterial)
414
+ : 0;
415
+ return (0, scene_part_008_1.transformedSphereOutsideFrustum)(camera, transform, sphere, extraRadius);
416
+ }
417
+ //# sourceMappingURL=scene.part-007.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene.part-007.js","sourceRoot":"","sources":["../api/scene.part-007.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ import type { ThreeObject3DLike, ThreeCameraLike, ThreeMaterialLike } from './types';
2
+ export declare function validateInstancedMeshMatrices(object: ThreeObject3DLike): void;
3
+ export declare function renderableMatrixWorldLabel(object: ThreeObject3DLike): string;
4
+ export declare function objectBoundingSphere(object: ThreeObject3DLike): {
5
+ center: [number, number, number];
6
+ radius: number;
7
+ } | null;
8
+ export declare function batchedMeshBoundingSphere(object: ThreeObject3DLike): {
9
+ center: [number, number, number];
10
+ radius: number;
11
+ } | null;
12
+ export declare function transformSphere(sphere: {
13
+ center: [number, number, number];
14
+ radius: number;
15
+ }, transform: ArrayLike<number>): {
16
+ center: [number, number, number];
17
+ radius: number;
18
+ };
19
+ export declare function unionSpheres(a: {
20
+ center: [number, number, number];
21
+ radius: number;
22
+ } | null, b: {
23
+ center: [number, number, number];
24
+ radius: number;
25
+ }): {
26
+ center: [number, number, number];
27
+ radius: number;
28
+ };
29
+ export declare function instancedMeshBoundingSphere(object: ThreeObject3DLike): {
30
+ center: [number, number, number];
31
+ radius: number;
32
+ };
33
+ export declare function pointBillboardCullRadius(object: ThreeObject3DLike, camera: ThreeCameraLike, transform: ArrayLike<number>, sphere: {
34
+ center: [number, number, number];
35
+ radius: number;
36
+ }, viewportHeight: number, overrideMaterial: ThreeMaterialLike | undefined): number;
37
+ export declare function pointCullMaterials(object: ThreeObject3DLike, overrideMaterial: ThreeMaterialLike | undefined): Array<ThreeMaterialLike | undefined>;
38
+ export declare function spriteOutsideFrustum(object: ThreeObject3DLike, camera: ThreeCameraLike | undefined, transform: ArrayLike<number>, center: [number, number]): boolean;
39
+ export declare function transformedSphereOutsideFrustum(camera: ThreeCameraLike, transform: ArrayLike<number>, sphere: {
40
+ center: [number, number, number];
41
+ radius: number;
42
+ }, extraRadius?: number): boolean;
43
+ export declare function vec3Like(value: {
44
+ x?: number;
45
+ y?: number;
46
+ z?: number;
47
+ } | ArrayLike<number> | undefined): [number, number, number] | null;
48
+ export declare function requiredVec3Like(value: {
49
+ x?: number;
50
+ y?: number;
51
+ z?: number;
52
+ } | ArrayLike<number> | undefined, label: string): [number, number, number];
53
+ export declare function columnLength3(matrix: ArrayLike<number>, start: number): number;
54
+ export declare function cameraBillboardAxes(camera: ThreeCameraLike | undefined): {
55
+ right: [number, number, number];
56
+ up: [number, number, number];
57
+ };
58
+ export declare function normalizeVec3(value: [number, number, number], fallback: [number, number, number]): [number, number, number];
59
+ export declare function viewSpaceZ(worldPosition: number[], camera: ThreeCameraLike): number;
60
+ export declare function transformPoint(matrix: ArrayLike<number>, point: [number, number, number]): [number, number, number];
61
+ export declare function pointWorldSize(pointSize: number, worldPosition: [number, number, number], sizeAttenuation: boolean | undefined, camera: ThreeCameraLike | undefined, viewportHeight: number): number;
62
+ export declare function clampPointSpriteSize(pixelSize: number): number;
63
+ export declare function finiteOrDefault(value: unknown, fallback: number): number;
64
+ export declare function safePositiveNumber(value: unknown, fallback: number): number;
65
+ export declare function finiteMaterialOrObjectNumber(value: unknown, label: string, fallback: number): number;
66
+ export declare function renderOrderNumber(value: unknown, label: string, fallback: number): number;
67
+ export declare function nativeRenderOrderKey(value: number): number;
68
+ export declare function nonNegativeMaterialOrObjectNumber(value: unknown, label: string, fallback: number): number;
69
+ export declare function positiveMaterialOrObjectNumber(value: unknown, label: string, fallback: number): number;
70
+ export declare function validateLineMaterialCompatibilityHints(material: ThreeMaterialLike | undefined): void;
71
+ export declare function optionalLineCap(value: unknown): void;
72
+ export declare function optionalLineJoin(value: unknown): void;
73
+ export declare function normalizedMaterialOrObjectNumber(value: unknown, label: string, fallback: number): number;
74
+ export declare function cameraZoomOrDefault(value: unknown): number;
75
+ export declare function finiteCountOrDefault(value: unknown, label: string, fallback: number, allowInfinity?: boolean): number;
76
+ export declare function integerCountOrDefault(value: unknown, label: string, fallback: number, allowInfinity?: boolean): number;
77
+ export declare function unsignedSortKey(value: unknown, fallback: number): number;
78
+ //# sourceMappingURL=scene.part-008.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene.part-008.d.ts","sourceRoot":"","sources":["../api/scene.part-008.ts"],"names":[],"mappings":"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"}