@headless-three/renderer 0.1.9 → 0.2.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 +44 -290
  2. package/dist/gpu-output.d.ts +81 -0
  3. package/dist/gpu-output.d.ts.map +1 -0
  4. package/dist/gpu-output.js +53 -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 +30 -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 +238 -0
  39. package/dist/index.part-008.d.ts.map +1 -0
  40. package/dist/index.part-008.js +454 -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 +23 -0
  47. package/dist/index.part-010.d.ts.map +1 -0
  48. package/dist/index.part-010.js +245 -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 +40 -0
  243. package/native.js +53 -52
  244. package/package.json +16 -8
@@ -0,0 +1,112 @@
1
+ import type { ThreeSceneRootLike, ThreeMaterialLike, ThreeObject3DLike } from './types';
2
+ import { RendererLightingNodeState, RendererLightingState } from './index.part-004';
3
+ import { RendererRenderListItem, RendererRenderListSort } from './index.part-006';
4
+ export declare class RendererRenderList {
5
+ readonly scene: unknown;
6
+ readonly camera: unknown;
7
+ readonly renderItems: RendererRenderListItem[];
8
+ renderItemsIndex: number;
9
+ readonly opaque: RendererRenderListItem[];
10
+ readonly transmissive: RendererRenderListItem[];
11
+ readonly transparentDoublePass: RendererRenderListItem[];
12
+ readonly transparent: RendererRenderListItem[];
13
+ readonly bundles: unknown[];
14
+ readonly lightsArray: unknown[];
15
+ readonly lightsNode: RendererLightingNodeState;
16
+ occlusionQueryCount: number;
17
+ constructor(lighting?: RendererLightingState | null, scene?: unknown, camera?: unknown);
18
+ init(): void;
19
+ begin(): this;
20
+ push(object: unknown, geometry: unknown, material: unknown, groupOrder?: number, z?: number, group?: unknown, clippingContext?: unknown): void;
21
+ unshift(object: unknown, geometry: unknown, material: unknown, groupOrder?: number, z?: number, group?: unknown, clippingContext?: unknown): void;
22
+ pushBundle(group: unknown): void;
23
+ pushLight(light: unknown): void;
24
+ sort(customOpaqueSort?: RendererRenderListSort | null, customTransparentSort?: RendererRenderListSort | null): void;
25
+ finish(): void;
26
+ private getNextRenderItem;
27
+ private pushRenderItem;
28
+ private pushInto;
29
+ }
30
+ export declare class RendererChainMapState {
31
+ weakMap: WeakMap<object, WeakMap<object, unknown>>;
32
+ get(keys: unknown): unknown;
33
+ set(keys: unknown, value: unknown): this;
34
+ delete(keys: unknown): boolean;
35
+ clear(): void;
36
+ }
37
+ export declare class RendererRenderListsState {
38
+ readonly lighting: RendererLightingState;
39
+ readonly lists: RendererChainMapState;
40
+ private depthLists;
41
+ constructor(lighting: RendererLightingState);
42
+ get(scene: object, renderCallDepthOrCamera?: unknown): RendererRenderList;
43
+ dispose(): void;
44
+ }
45
+ export declare class RendererRenderLightsState {
46
+ readonly state: {
47
+ version: number;
48
+ hash: {
49
+ directionalLength: number;
50
+ pointLength: number;
51
+ spotLength: number;
52
+ rectAreaLength: number;
53
+ hemiLength: number;
54
+ numDirectionalShadows: number;
55
+ numPointShadows: number;
56
+ numSpotShadows: number;
57
+ numSpotMaps: number;
58
+ numLightProbes: number;
59
+ };
60
+ ambient: number[];
61
+ probe: {
62
+ x: number;
63
+ y: number;
64
+ z: number;
65
+ }[];
66
+ directional: never[];
67
+ directionalShadow: never[];
68
+ directionalShadowMap: never[];
69
+ directionalShadowMatrix: never[];
70
+ spot: never[];
71
+ spotLightMap: never[];
72
+ spotShadow: never[];
73
+ spotShadowMap: never[];
74
+ spotLightMatrix: never[];
75
+ rectArea: never[];
76
+ rectAreaLTC1: null;
77
+ rectAreaLTC2: null;
78
+ point: never[];
79
+ pointShadow: never[];
80
+ pointShadowMap: never[];
81
+ pointShadowMatrix: never[];
82
+ hemi: never[];
83
+ numSpotLightShadowsWithMaps: number;
84
+ numLightProbes: number;
85
+ };
86
+ setup(_lights?: unknown[]): void;
87
+ setupView(_lights?: unknown[], _camera?: unknown): void;
88
+ }
89
+ export declare class RendererRenderState {
90
+ readonly state: {
91
+ lightsArray: unknown[];
92
+ shadowsArray: unknown[];
93
+ camera: unknown;
94
+ lights: RendererRenderLightsState;
95
+ transmissionRenderTarget: Record<PropertyKey, unknown>;
96
+ };
97
+ init(camera: unknown): void;
98
+ pushLight(light: unknown): void;
99
+ pushShadow(shadowLight: unknown): void;
100
+ setupLights(): void;
101
+ setupLightsView(camera: unknown): void;
102
+ }
103
+ export declare class RendererRenderStatesState {
104
+ private states;
105
+ get(scene: object, renderCallDepth?: number): RendererRenderState;
106
+ dispose(): void;
107
+ }
108
+ export declare function collectCompileMaterials(scene: ThreeSceneRootLike): Set<ThreeMaterialLike>;
109
+ export declare function collectObjectCompileMaterials(object: ThreeObject3DLike, materials: Set<ThreeMaterialLike>, label: string): void;
110
+ export declare function isCompileRenderableObject(object: ThreeObject3DLike): boolean;
111
+ export declare function addCompileMaterial(material: unknown, materials: Set<ThreeMaterialLike>, label: string): void;
112
+ //# sourceMappingURL=index.part-007.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.part-007.d.ts","sourceRoot":"","sources":["../api/index.part-007.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,358 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RendererRenderStatesState = exports.RendererRenderState = exports.RendererRenderLightsState = exports.RendererRenderListsState = exports.RendererChainMapState = exports.RendererRenderList = void 0;
4
+ exports.collectCompileMaterials = collectCompileMaterials;
5
+ exports.collectObjectCompileMaterials = collectObjectCompileMaterials;
6
+ exports.isCompileRenderableObject = isCompileRenderableObject;
7
+ exports.addCompileMaterial = addCompileMaterial;
8
+ const index_part_004_1 = require("./index.part-004");
9
+ const index_part_017_1 = require("./index.part-017");
10
+ const index_part_018_1 = require("./index.part-018");
11
+ class RendererRenderList {
12
+ constructor(lighting = null, scene = null, camera = null) {
13
+ this.scene = scene;
14
+ this.camera = camera;
15
+ this.renderItems = [];
16
+ this.renderItemsIndex = 0;
17
+ this.opaque = [];
18
+ this.transmissive = [];
19
+ this.transparentDoublePass = [];
20
+ this.transparent = [];
21
+ this.bundles = [];
22
+ this.lightsArray = [];
23
+ this.occlusionQueryCount = 0;
24
+ this.lightsNode = lighting && scene && typeof scene === 'object' && camera && typeof camera === 'object'
25
+ ? lighting.getNode(scene, camera)
26
+ : new index_part_004_1.RendererLightingNodeState();
27
+ }
28
+ init() {
29
+ this.begin();
30
+ }
31
+ begin() {
32
+ this.renderItemsIndex = 0;
33
+ this.opaque.length = 0;
34
+ this.transmissive.length = 0;
35
+ this.transparentDoublePass.length = 0;
36
+ this.transparent.length = 0;
37
+ this.bundles.length = 0;
38
+ this.lightsArray.length = 0;
39
+ this.occlusionQueryCount = 0;
40
+ return this;
41
+ }
42
+ push(object, geometry, material, groupOrder = 0, z = 0, group = null, clippingContext = null) {
43
+ const renderItem = this.getNextRenderItem(object, geometry, material, groupOrder, z, group, clippingContext);
44
+ if (object?.occlusionTest === true) {
45
+ this.occlusionQueryCount += 1;
46
+ }
47
+ this.pushRenderItem(renderItem, material, false);
48
+ }
49
+ unshift(object, geometry, material, groupOrder = 0, z = 0, group = null, clippingContext = null) {
50
+ const renderItem = this.getNextRenderItem(object, geometry, material, groupOrder, z, group, clippingContext);
51
+ this.pushRenderItem(renderItem, material, true);
52
+ }
53
+ pushBundle(group) {
54
+ this.bundles.push(group);
55
+ }
56
+ pushLight(light) {
57
+ this.lightsArray.push(light);
58
+ }
59
+ sort(customOpaqueSort, customTransparentSort) {
60
+ if (customOpaqueSort !== undefined && customOpaqueSort !== null && typeof customOpaqueSort !== 'function') {
61
+ throw new TypeError('Renderer.renderLists list opaque sort must be a function or null.');
62
+ }
63
+ if (customTransparentSort !== undefined && customTransparentSort !== null && typeof customTransparentSort !== 'function') {
64
+ throw new TypeError('Renderer.renderLists list transparent sort must be a function or null.');
65
+ }
66
+ this.opaque.sort(customOpaqueSort ?? index_part_017_1.rendererRenderListOpaqueSort);
67
+ this.transmissive.sort(customTransparentSort ?? index_part_017_1.rendererRenderListTransparentSort);
68
+ this.transparentDoublePass.sort(customTransparentSort ?? index_part_017_1.rendererRenderListTransparentSort);
69
+ this.transparent.sort(customTransparentSort ?? index_part_017_1.rendererRenderListTransparentSort);
70
+ }
71
+ finish() {
72
+ this.lightsNode.setLights(this.lightsArray);
73
+ for (let i = this.renderItemsIndex; i < this.renderItems.length; i += 1) {
74
+ this.renderItems[i].id = null;
75
+ this.renderItems[i].object = null;
76
+ this.renderItems[i].geometry = null;
77
+ this.renderItems[i].material = null;
78
+ this.renderItems[i].materialVariant = null;
79
+ this.renderItems[i].groupOrder = null;
80
+ this.renderItems[i].renderOrder = null;
81
+ this.renderItems[i].z = null;
82
+ this.renderItems[i].group = null;
83
+ this.renderItems[i].clippingContext = null;
84
+ }
85
+ }
86
+ getNextRenderItem(object, geometry, material, groupOrder, z, group, clippingContext) {
87
+ (0, index_part_018_1.assertFiniteNumberOption)(groupOrder, 'Renderer.renderLists list groupOrder');
88
+ (0, index_part_018_1.assertFiniteNumberOption)(z, 'Renderer.renderLists list z');
89
+ let renderItem = this.renderItems[this.renderItemsIndex];
90
+ if (renderItem === undefined) {
91
+ renderItem = {
92
+ id: (0, index_part_017_1.rendererRenderListId)(object),
93
+ object,
94
+ geometry,
95
+ material,
96
+ materialVariant: (0, index_part_017_1.rendererRenderListMaterialVariant)(object),
97
+ groupOrder,
98
+ renderOrder: (0, index_part_017_1.rendererRenderListRenderOrder)(object),
99
+ z,
100
+ group,
101
+ clippingContext,
102
+ };
103
+ this.renderItems[this.renderItemsIndex] = renderItem;
104
+ }
105
+ else {
106
+ renderItem.id = (0, index_part_017_1.rendererRenderListId)(object);
107
+ renderItem.object = object;
108
+ renderItem.geometry = geometry;
109
+ renderItem.material = material;
110
+ renderItem.materialVariant = (0, index_part_017_1.rendererRenderListMaterialVariant)(object);
111
+ renderItem.groupOrder = groupOrder;
112
+ renderItem.renderOrder = (0, index_part_017_1.rendererRenderListRenderOrder)(object);
113
+ renderItem.z = z;
114
+ renderItem.group = group;
115
+ renderItem.clippingContext = clippingContext;
116
+ }
117
+ this.renderItemsIndex += 1;
118
+ return renderItem;
119
+ }
120
+ pushRenderItem(renderItem, material, unshift) {
121
+ const record = material && typeof material === 'object' ? material : undefined;
122
+ const hasTransmission = typeof record?.transmission === 'number' && record.transmission > 0;
123
+ const transparent = record?.transparent === true || hasTransmission;
124
+ if (hasTransmission) {
125
+ this.pushInto(this.transmissive, renderItem, unshift);
126
+ }
127
+ if (transparent) {
128
+ if ((0, index_part_017_1.rendererRenderListNeedsDoublePass)(record)) {
129
+ this.pushInto(this.transparentDoublePass, renderItem, unshift);
130
+ }
131
+ this.pushInto(this.transparent, renderItem, unshift);
132
+ return;
133
+ }
134
+ this.pushInto(this.opaque, renderItem, unshift);
135
+ }
136
+ pushInto(list, item, unshift) {
137
+ if (unshift)
138
+ list.unshift(item);
139
+ else
140
+ list.push(item);
141
+ }
142
+ }
143
+ exports.RendererRenderList = RendererRenderList;
144
+ class RendererChainMapState {
145
+ constructor() {
146
+ this.weakMap = new WeakMap();
147
+ }
148
+ get(keys) {
149
+ const keyPath = (0, index_part_017_1.assertWeakMapKeyArray)(keys, 'Renderer.renderLists.lists.get keys');
150
+ let map = this.weakMap;
151
+ for (let i = 0; i < keyPath.length; i += 1) {
152
+ map = map.get(keyPath[i]);
153
+ if (map === undefined)
154
+ return undefined;
155
+ }
156
+ return map.get(keyPath[keyPath.length - 1]);
157
+ }
158
+ set(keys, value) {
159
+ const keyPath = (0, index_part_017_1.assertWeakMapKeyArray)(keys, 'Renderer.renderLists.lists.set keys');
160
+ let map = this.weakMap;
161
+ for (const key of keyPath) {
162
+ if (!map.has(key)) {
163
+ map.set(key, new WeakMap());
164
+ }
165
+ map = map.get(key);
166
+ }
167
+ map.set(keyPath[keyPath.length - 1], value);
168
+ return this;
169
+ }
170
+ delete(keys) {
171
+ const keyPath = (0, index_part_017_1.assertWeakMapKeyArray)(keys, 'Renderer.renderLists.lists.delete keys');
172
+ let map = this.weakMap;
173
+ for (let i = 0; i < keyPath.length; i += 1) {
174
+ map = map.get(keyPath[i]);
175
+ if (map === undefined)
176
+ return false;
177
+ }
178
+ return map.delete(keyPath[keyPath.length - 1]);
179
+ }
180
+ clear() {
181
+ this.weakMap = new WeakMap();
182
+ }
183
+ }
184
+ exports.RendererChainMapState = RendererChainMapState;
185
+ class RendererRenderListsState {
186
+ constructor(lighting) {
187
+ this.lists = new RendererChainMapState();
188
+ this.depthLists = new WeakMap();
189
+ this.lighting = lighting;
190
+ }
191
+ get(scene, renderCallDepthOrCamera = 0) {
192
+ (0, index_part_017_1.assertWeakMapKey)(scene, 'Renderer.renderLists.get scene');
193
+ if (typeof renderCallDepthOrCamera !== 'number') {
194
+ (0, index_part_017_1.assertWeakMapKey)(renderCallDepthOrCamera, 'Renderer.renderLists.get camera');
195
+ const keys = [scene, renderCallDepthOrCamera];
196
+ let cameraList = this.lists.get(keys);
197
+ if (cameraList === undefined) {
198
+ cameraList = new RendererRenderList(this.lighting, scene, renderCallDepthOrCamera);
199
+ this.lists.set(keys, cameraList);
200
+ }
201
+ return cameraList;
202
+ }
203
+ const renderCallDepth = renderCallDepthOrCamera;
204
+ if (!Number.isInteger(renderCallDepth) || renderCallDepth < 0) {
205
+ throw new TypeError(`Renderer.renderLists.get renderCallDepth must be a non-negative integer; received ${String(renderCallDepth)}.`);
206
+ }
207
+ let listArray = this.depthLists.get(scene);
208
+ if (listArray === undefined) {
209
+ listArray = [];
210
+ this.depthLists.set(scene, listArray);
211
+ }
212
+ let list = listArray[renderCallDepth];
213
+ if (list === undefined) {
214
+ list = new RendererRenderList(this.lighting, scene, null);
215
+ listArray[renderCallDepth] = list;
216
+ }
217
+ return list;
218
+ }
219
+ dispose() {
220
+ this.depthLists = new WeakMap();
221
+ this.lists.clear();
222
+ }
223
+ }
224
+ exports.RendererRenderListsState = RendererRenderListsState;
225
+ class RendererRenderLightsState {
226
+ constructor() {
227
+ this.state = {
228
+ version: 0,
229
+ hash: {
230
+ directionalLength: -1,
231
+ pointLength: -1,
232
+ spotLength: -1,
233
+ rectAreaLength: -1,
234
+ hemiLength: -1,
235
+ numDirectionalShadows: -1,
236
+ numPointShadows: -1,
237
+ numSpotShadows: -1,
238
+ numSpotMaps: -1,
239
+ numLightProbes: -1,
240
+ },
241
+ ambient: [0, 0, 0],
242
+ probe: Array.from({ length: 9 }, () => ({ x: 0, y: 0, z: 0 })),
243
+ directional: [],
244
+ directionalShadow: [],
245
+ directionalShadowMap: [],
246
+ directionalShadowMatrix: [],
247
+ spot: [],
248
+ spotLightMap: [],
249
+ spotShadow: [],
250
+ spotShadowMap: [],
251
+ spotLightMatrix: [],
252
+ rectArea: [],
253
+ rectAreaLTC1: null,
254
+ rectAreaLTC2: null,
255
+ point: [],
256
+ pointShadow: [],
257
+ pointShadowMap: [],
258
+ pointShadowMatrix: [],
259
+ hemi: [],
260
+ numSpotLightShadowsWithMaps: 0,
261
+ numLightProbes: 0,
262
+ };
263
+ }
264
+ setup(_lights = []) { }
265
+ setupView(_lights = [], _camera) { }
266
+ }
267
+ exports.RendererRenderLightsState = RendererRenderLightsState;
268
+ class RendererRenderState {
269
+ constructor() {
270
+ this.state = {
271
+ lightsArray: [],
272
+ shadowsArray: [],
273
+ camera: null,
274
+ lights: new RendererRenderLightsState(),
275
+ transmissionRenderTarget: {},
276
+ };
277
+ }
278
+ init(camera) {
279
+ this.state.camera = camera;
280
+ this.state.lightsArray.length = 0;
281
+ this.state.shadowsArray.length = 0;
282
+ }
283
+ pushLight(light) {
284
+ this.state.lightsArray.push(light);
285
+ }
286
+ pushShadow(shadowLight) {
287
+ this.state.shadowsArray.push(shadowLight);
288
+ }
289
+ setupLights() {
290
+ this.state.lights.setup(this.state.lightsArray);
291
+ }
292
+ setupLightsView(camera) {
293
+ this.state.lights.setupView(this.state.lightsArray, camera);
294
+ }
295
+ }
296
+ exports.RendererRenderState = RendererRenderState;
297
+ class RendererRenderStatesState {
298
+ constructor() {
299
+ this.states = new WeakMap();
300
+ }
301
+ get(scene, renderCallDepth = 0) {
302
+ (0, index_part_017_1.assertWeakMapKey)(scene, 'Renderer.renderStates.get scene');
303
+ if (!Number.isInteger(renderCallDepth) || renderCallDepth < 0) {
304
+ throw new TypeError(`Renderer.renderStates.get renderCallDepth must be a non-negative integer; received ${String(renderCallDepth)}.`);
305
+ }
306
+ let stateArray = this.states.get(scene);
307
+ if (stateArray === undefined) {
308
+ stateArray = [];
309
+ this.states.set(scene, stateArray);
310
+ }
311
+ let renderState = stateArray[renderCallDepth];
312
+ if (renderState === undefined) {
313
+ renderState = new RendererRenderState();
314
+ stateArray[renderCallDepth] = renderState;
315
+ }
316
+ return renderState;
317
+ }
318
+ dispose() {
319
+ this.states = new WeakMap();
320
+ }
321
+ }
322
+ exports.RendererRenderStatesState = RendererRenderStatesState;
323
+ function collectCompileMaterials(scene) {
324
+ const materials = new Set();
325
+ collectObjectCompileMaterials(scene, materials, 'Renderer.compile scene');
326
+ return materials;
327
+ }
328
+ function collectObjectCompileMaterials(object, materials, label) {
329
+ if (isCompileRenderableObject(object) && object.material != null) {
330
+ if (Array.isArray(object.material)) {
331
+ for (let i = 0; i < object.material.length; i += 1) {
332
+ addCompileMaterial(object.material[i], materials, `${label}.material[${i}]`);
333
+ }
334
+ }
335
+ else {
336
+ addCompileMaterial(object.material, materials, `${label}.material`);
337
+ }
338
+ }
339
+ const children = object.children ?? [];
340
+ for (let i = 0; i < children.length; i += 1) {
341
+ collectObjectCompileMaterials(children[i], materials, `${label}.children[${i}]`);
342
+ }
343
+ }
344
+ function isCompileRenderableObject(object) {
345
+ return object.isMesh === true
346
+ || object.isPoints === true
347
+ || object.isLine === true
348
+ || object.isLineSegments === true
349
+ || object.isLineLoop === true
350
+ || object.isSprite === true;
351
+ }
352
+ function addCompileMaterial(material, materials, label) {
353
+ if (material === null || typeof material !== 'object' || Array.isArray(material)) {
354
+ throw new TypeError(`${label} must be a material-like object.`);
355
+ }
356
+ materials.add(material);
357
+ }
358
+ //# sourceMappingURL=index.part-007.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.part-007.js","sourceRoot":"","sources":["../api/index.part-007.ts"],"names":[],"mappings":"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"}