@mml-io/3d-web-threejs 0.0.0-experimental-2a3c26b-20251217

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 (150) hide show
  1. package/LICENSE +19 -0
  2. package/build/ThreeJSWorldRenderer.d.ts +55 -0
  3. package/build/ThreeJSWorldRenderer.d.ts.map +1 -0
  4. package/build/camera/ThreeJSCameraManager.d.ts +16 -0
  5. package/build/camera/ThreeJSCameraManager.d.ts.map +1 -0
  6. package/build/character/CanvasText.d.ts +35 -0
  7. package/build/character/CanvasText.d.ts.map +1 -0
  8. package/build/character/Character.d.ts +59 -0
  9. package/build/character/Character.d.ts.map +1 -0
  10. package/build/character/CharacterMaterial.d.ts +20 -0
  11. package/build/character/CharacterMaterial.d.ts.map +1 -0
  12. package/build/character/CharacterModel.d.ts +47 -0
  13. package/build/character/CharacterModel.d.ts.map +1 -0
  14. package/build/character/CharacterTooltip.d.ts +33 -0
  15. package/build/character/CharacterTooltip.d.ts.map +1 -0
  16. package/build/character/LowPolyModel.d.ts +2 -0
  17. package/build/character/LowPolyModel.d.ts.map +1 -0
  18. package/build/character/ThreeJSCharacterManager.d.ts +51 -0
  19. package/build/character/ThreeJSCharacterManager.d.ts.map +1 -0
  20. package/build/character/instancing/CharacterColourSamplingUtils.d.ts +15 -0
  21. package/build/character/instancing/CharacterColourSamplingUtils.d.ts.map +1 -0
  22. package/build/character/instancing/CharacterInstances.d.ts +92 -0
  23. package/build/character/instancing/CharacterInstances.d.ts.map +1 -0
  24. package/build/character/instancing/CharacterInstancingAnimationUtils.d.ts +8 -0
  25. package/build/character/instancing/CharacterInstancingAnimationUtils.d.ts.map +1 -0
  26. package/build/character/instancing/CharacterInstancingUtils.d.ts +4 -0
  27. package/build/character/instancing/CharacterInstancingUtils.d.ts.map +1 -0
  28. package/build/character/instancing/vendor/core/InstancedEntity.d.ts +192 -0
  29. package/build/character/instancing/vendor/core/InstancedEntity.d.ts.map +1 -0
  30. package/build/character/instancing/vendor/core/InstancedMesh2.d.ts +362 -0
  31. package/build/character/instancing/vendor/core/InstancedMesh2.d.ts.map +1 -0
  32. package/build/character/instancing/vendor/core/InstancedMeshBVH.d.ts +146 -0
  33. package/build/character/instancing/vendor/core/InstancedMeshBVH.d.ts.map +1 -0
  34. package/build/character/instancing/vendor/core/feature/Capacity.d.ts +14 -0
  35. package/build/character/instancing/vendor/core/feature/Capacity.d.ts.map +1 -0
  36. package/build/character/instancing/vendor/core/feature/FrustumCulling.d.ts +38 -0
  37. package/build/character/instancing/vendor/core/feature/FrustumCulling.d.ts.map +1 -0
  38. package/build/character/instancing/vendor/core/feature/Instances.d.ts +50 -0
  39. package/build/character/instancing/vendor/core/feature/Instances.d.ts.map +1 -0
  40. package/build/character/instancing/vendor/core/feature/LOD.d.ts +90 -0
  41. package/build/character/instancing/vendor/core/feature/LOD.d.ts.map +1 -0
  42. package/build/character/instancing/vendor/core/feature/Morph.d.ts +19 -0
  43. package/build/character/instancing/vendor/core/feature/Morph.d.ts.map +1 -0
  44. package/build/character/instancing/vendor/core/feature/Raycasting.d.ts +8 -0
  45. package/build/character/instancing/vendor/core/feature/Raycasting.d.ts.map +1 -0
  46. package/build/character/instancing/vendor/core/feature/Skeleton.d.ts +20 -0
  47. package/build/character/instancing/vendor/core/feature/Skeleton.d.ts.map +1 -0
  48. package/build/character/instancing/vendor/core/feature/Uniforms.d.ts +43 -0
  49. package/build/character/instancing/vendor/core/feature/Uniforms.d.ts.map +1 -0
  50. package/build/character/instancing/vendor/core/utils/GLInstancedBufferAttribute.d.ts +43 -0
  51. package/build/character/instancing/vendor/core/utils/GLInstancedBufferAttribute.d.ts.map +1 -0
  52. package/build/character/instancing/vendor/core/utils/InstancedRenderList.d.ts +26 -0
  53. package/build/character/instancing/vendor/core/utils/InstancedRenderList.d.ts.map +1 -0
  54. package/build/character/instancing/vendor/core/utils/SquareDataTexture.d.ts +157 -0
  55. package/build/character/instancing/vendor/core/utils/SquareDataTexture.d.ts.map +1 -0
  56. package/build/character/instancing/vendor/index.d.ts +26 -0
  57. package/build/character/instancing/vendor/index.d.ts.map +1 -0
  58. package/build/character/instancing/vendor/shaders/ShaderChunk.d.ts +2 -0
  59. package/build/character/instancing/vendor/shaders/ShaderChunk.d.ts.map +1 -0
  60. package/build/character/instancing/vendor/shaders/chunks/instanced_color_pars_vertex.d.ts +2 -0
  61. package/build/character/instancing/vendor/shaders/chunks/instanced_color_pars_vertex.d.ts.map +1 -0
  62. package/build/character/instancing/vendor/shaders/chunks/instanced_color_vertex.d.ts +2 -0
  63. package/build/character/instancing/vendor/shaders/chunks/instanced_color_vertex.d.ts.map +1 -0
  64. package/build/character/instancing/vendor/shaders/chunks/instanced_material_color_pars_vertex.d.ts +2 -0
  65. package/build/character/instancing/vendor/shaders/chunks/instanced_material_color_pars_vertex.d.ts.map +1 -0
  66. package/build/character/instancing/vendor/shaders/chunks/instanced_material_color_vertex.d.ts +2 -0
  67. package/build/character/instancing/vendor/shaders/chunks/instanced_material_color_vertex.d.ts.map +1 -0
  68. package/build/character/instancing/vendor/shaders/chunks/instanced_pars_vertex.d.ts +2 -0
  69. package/build/character/instancing/vendor/shaders/chunks/instanced_pars_vertex.d.ts.map +1 -0
  70. package/build/character/instancing/vendor/shaders/chunks/instanced_skinning_pars_vertex.d.ts +2 -0
  71. package/build/character/instancing/vendor/shaders/chunks/instanced_skinning_pars_vertex.d.ts.map +1 -0
  72. package/build/character/instancing/vendor/shaders/chunks/instanced_vertex.d.ts +2 -0
  73. package/build/character/instancing/vendor/shaders/chunks/instanced_vertex.d.ts.map +1 -0
  74. package/build/character/instancing/vendor/utils/CreateFrom.d.ts +10 -0
  75. package/build/character/instancing/vendor/utils/CreateFrom.d.ts.map +1 -0
  76. package/build/character/instancing/vendor/utils/SortingUtils.d.ts +17 -0
  77. package/build/character/instancing/vendor/utils/SortingUtils.d.ts.map +1 -0
  78. package/build/character/loading/CharacterModelLoader.d.ts +12 -0
  79. package/build/character/loading/CharacterModelLoader.d.ts.map +1 -0
  80. package/build/character/loading/GLTFLoadingWorker.worker.d.ts +3 -0
  81. package/build/character/loading/GLTFLoadingWorker.worker.d.ts.map +1 -0
  82. package/build/character/loading/GLTFLoadingWorkerBrowserCache.d.ts +9 -0
  83. package/build/character/loading/GLTFLoadingWorkerBrowserCache.d.ts.map +1 -0
  84. package/build/character/loading/GLTFLoadingWorkerPool.d.ts +23 -0
  85. package/build/character/loading/GLTFLoadingWorkerPool.d.ts.map +1 -0
  86. package/build/character/loading/GLTFLoadingWorkerTypes.d.ts +19 -0
  87. package/build/character/loading/GLTFLoadingWorkerTypes.d.ts.map +1 -0
  88. package/build/collisions/ThreeJSCollisionManager.d.ts +18 -0
  89. package/build/collisions/ThreeJSCollisionManager.d.ts.map +1 -0
  90. package/build/composer.d.ts +108 -0
  91. package/build/composer.d.ts.map +1 -0
  92. package/build/ground-plane/GroundPlane.d.ts +10 -0
  93. package/build/ground-plane/GroundPlane.d.ts.map +1 -0
  94. package/build/index.d.ts +2 -0
  95. package/build/index.d.ts.map +1 -0
  96. package/build/index.js +10494 -0
  97. package/build/index.js.map +7 -0
  98. package/build/mml/ThreeJSMMLCompositionScene.d.ts +32 -0
  99. package/build/mml/ThreeJSMMLCompositionScene.d.ts.map +1 -0
  100. package/build/mml/ThreeJSMMLManager.d.ts +20 -0
  101. package/build/mml/ThreeJSMMLManager.d.ts.map +1 -0
  102. package/build/post-effects/PostProcessingManager.d.ts +102 -0
  103. package/build/post-effects/PostProcessingManager.d.ts.map +1 -0
  104. package/build/post-effects/bright-contrast-sat.d.ts +3 -0
  105. package/build/post-effects/bright-contrast-sat.d.ts.map +1 -0
  106. package/build/post-effects/gauss-grain.d.ts +3 -0
  107. package/build/post-effects/gauss-grain.d.ts.map +1 -0
  108. package/build/post-effects/n8-ssao/BlueNoise.d.ts +2 -0
  109. package/build/post-effects/n8-ssao/BlueNoise.d.ts.map +1 -0
  110. package/build/post-effects/n8-ssao/DepthDownSample.d.ts +18 -0
  111. package/build/post-effects/n8-ssao/DepthDownSample.d.ts.map +1 -0
  112. package/build/post-effects/n8-ssao/EffectCompositer.d.ts +40 -0
  113. package/build/post-effects/n8-ssao/EffectCompositer.d.ts.map +1 -0
  114. package/build/post-effects/n8-ssao/EffectShader.d.ts +32 -0
  115. package/build/post-effects/n8-ssao/EffectShader.d.ts.map +1 -0
  116. package/build/post-effects/n8-ssao/FullScreenTriangle.d.ts +12 -0
  117. package/build/post-effects/n8-ssao/FullScreenTriangle.d.ts.map +1 -0
  118. package/build/post-effects/n8-ssao/N8SSAOPass.d.ts +66 -0
  119. package/build/post-effects/n8-ssao/N8SSAOPass.d.ts.map +1 -0
  120. package/build/post-effects/n8-ssao/PoissionBlur.d.ts +31 -0
  121. package/build/post-effects/n8-ssao/PoissionBlur.d.ts.map +1 -0
  122. package/build/shaders/bayer-dither.d.ts +2 -0
  123. package/build/shaders/bayer-dither.d.ts.map +1 -0
  124. package/build/shaders/shader-helpers.d.ts +5 -0
  125. package/build/shaders/shader-helpers.d.ts.map +1 -0
  126. package/build/shaders/vertex-shader.d.ts +2 -0
  127. package/build/shaders/vertex-shader.d.ts.map +1 -0
  128. package/build/sun/Sun.d.ts +21 -0
  129. package/build/sun/Sun.d.ts.map +1 -0
  130. package/build/tweakpane/ThreeJSTweakPaneFolders.d.ts +31 -0
  131. package/build/tweakpane/ThreeJSTweakPaneFolders.d.ts.map +1 -0
  132. package/build/tweakpane/blades/collisionsStatsFolder.d.ts +10 -0
  133. package/build/tweakpane/blades/collisionsStatsFolder.d.ts.map +1 -0
  134. package/build/tweakpane/blades/effects/bcsFolder.d.ts +15 -0
  135. package/build/tweakpane/blades/effects/bcsFolder.d.ts.map +1 -0
  136. package/build/tweakpane/blades/effects/bloomAndGrain.d.ts +15 -0
  137. package/build/tweakpane/blades/effects/bloomAndGrain.d.ts.map +1 -0
  138. package/build/tweakpane/blades/effects/ssaoFolder.d.ts +52 -0
  139. package/build/tweakpane/blades/effects/ssaoFolder.d.ts.map +1 -0
  140. package/build/tweakpane/blades/effects/toneMappingFolder.d.ts +22 -0
  141. package/build/tweakpane/blades/effects/toneMappingFolder.d.ts.map +1 -0
  142. package/build/tweakpane/blades/environmentFolder.d.ts +58 -0
  143. package/build/tweakpane/blades/environmentFolder.d.ts.map +1 -0
  144. package/build/tweakpane/blades/postProcessingFolder.d.ts +34 -0
  145. package/build/tweakpane/blades/postProcessingFolder.d.ts.map +1 -0
  146. package/build/tweakpane/blades/rendererFolder.d.ts +17 -0
  147. package/build/tweakpane/blades/rendererFolder.d.ts.map +1 -0
  148. package/build/tweakpane/blades/rendererStatsFolder.d.ts +10 -0
  149. package/build/tweakpane/blades/rendererStatsFolder.d.ts.map +1 -0
  150. package/package.json +44 -0
@@ -0,0 +1,157 @@
1
+ import { Color, DataTexture, Matrix3, Matrix4, PixelFormat, TextureDataType, TypedArray, Vector2, Vector3, Vector4, WebGLRenderer, WebGLUtils } from "three";
2
+ /**
3
+ * Represents the number of elements per pixel.
4
+ */
5
+ export type ChannelSize = 1 | 2 | 3 | 4;
6
+ /**
7
+ * A constructor signature for creating TypedArray.
8
+ */
9
+ export type TypedArrayConstructor = new (count: number) => TypedArray;
10
+ /**
11
+ * Represents the texture information including its data, size, format, and data type.
12
+ */
13
+ export type TextureInfo = {
14
+ array: TypedArray;
15
+ size: number;
16
+ format: PixelFormat;
17
+ type: TextureDataType;
18
+ };
19
+ /**
20
+ * Represents information for updating rows in the texture, including the row index and number of rows.
21
+ */
22
+ export type UpdateRowInfo = {
23
+ row: number;
24
+ count: number;
25
+ };
26
+ /**
27
+ * Defines the possible types of uniforms that can be used in shaders.
28
+ */
29
+ export type UniformType = "float" | "vec2" | "vec3" | "vec4" | "mat3" | "mat4";
30
+ /**
31
+ * Represents a value that can be used as a uniform.
32
+ */
33
+ export type UniformValueObj = Vector2 | Vector3 | Vector4 | Matrix3 | Matrix4 | Color;
34
+ /**
35
+ * Defines a uniform value as either a number or a compatible Three.js object.
36
+ */
37
+ export type UniformValue = number | UniformValueObj;
38
+ /**
39
+ * Represents the schema for a uniform, defining its offset, size, and type.
40
+ */
41
+ export type UniformMapType = {
42
+ offset: number;
43
+ size: number;
44
+ type: UniformType;
45
+ };
46
+ /**
47
+ * Represents a map of uniform names to their schema definitions.
48
+ */
49
+ export type UniformMap = Map<string, UniformMapType>;
50
+ /**
51
+ * Calculates the square texture size based on the capacity and pixels per instance.
52
+ * This ensures the texture is large enough to store all instances in a square layout.
53
+ * @param capacity The maximum number of instances allowed in the texture.
54
+ * @param pixelsPerInstance The number of pixels required for each instance.
55
+ * @returns The size of the square texture needed to store all the instances.
56
+ */
57
+ export declare function getSquareTextureSize(capacity: number, pixelsPerInstance: number): number;
58
+ /**
59
+ * Generates texture information (size, format, type) for a square texture based on the provided parameters.
60
+ * @param arrayType The constructor for the TypedArray.
61
+ * @param channels The number of channels in the texture.
62
+ * @param pixelsPerInstance The number of pixels required for each instance.
63
+ * @param capacity The maximum number of instances allowed in the texture.
64
+ * @returns An object containing the texture's array, size, format, and data type.
65
+ */
66
+ export declare function getSquareTextureInfo(arrayType: TypedArrayConstructor, channels: ChannelSize, pixelsPerInstance: number, capacity: number): TextureInfo;
67
+ /**
68
+ * A class that extends `DataTexture` to manage a square texture optimized for instances rendering.
69
+ * It supports dynamic resizing, partial update based on rows, and allows setting/getting uniforms per instance.
70
+ */
71
+ export declare class SquareDataTexture extends DataTexture {
72
+ /**
73
+ * Whether to enable partial texture updates by row. If `false`, the entire texture will be updated.
74
+ * @default true.
75
+ */
76
+ partialUpdate: boolean;
77
+ /**
78
+ * The maximum number of update calls per frame.
79
+ * @default Infinity
80
+ */
81
+ maxUpdateCalls: number;
82
+ /** @internal */ _data: TypedArray;
83
+ protected _channels: ChannelSize;
84
+ protected _pixelsPerInstance: number;
85
+ protected _stride: number;
86
+ protected _rowToUpdate: boolean[];
87
+ protected _uniformMap?: UniformMap;
88
+ protected _fetchUniformsInFragmentShader?: boolean;
89
+ protected _utils?: WebGLUtils;
90
+ protected _lastWidth?: number;
91
+ /**
92
+ * @param arrayType The constructor for the TypedArray.
93
+ * @param channels The number of channels in the texture.
94
+ * @param pixelsPerInstance The number of pixels required for each instance.
95
+ * @param capacity The total number of instances.
96
+ * @param uniformMap Optional map for handling uniform values.
97
+ * @param fetchInFragmentShader Optional flag that determines if uniform values should be fetched in the fragment shader instead of the vertex shader.
98
+ */
99
+ constructor(arrayType: TypedArrayConstructor, channels: ChannelSize, pixelsPerInstance: number, capacity: number, uniformMap?: UniformMap, fetchInFragmentShader?: boolean);
100
+ /**
101
+ * Resizes the texture to accommodate a new number of instances.
102
+ * @param count The new total number of instances.
103
+ */
104
+ resize(count: number): void;
105
+ /**
106
+ * Marks a row of the texture for update during the next render cycle.
107
+ * This helps in optimizing texture updates by only modifying the rows that have changed.
108
+ * @param index The index of the instance to update.
109
+ */
110
+ enqueueUpdate(index: number): void;
111
+ /**
112
+ * Updates the texture data based on the rows that need updating.
113
+ * This method is optimized to only update the rows that have changed, improving performance.
114
+ * @param renderer The WebGLRenderer used for rendering.
115
+ */
116
+ update(renderer: WebGLRenderer): void;
117
+ protected getUpdateRowsInfo(): UpdateRowInfo[];
118
+ protected updateRows(textureProperties: any, renderer: WebGLRenderer, info: UpdateRowInfo[]): void;
119
+ /**
120
+ * Sets a uniform value at the specified instance ID in the texture.
121
+ * @param id The instance ID to set the uniform for.
122
+ * @param name The name of the uniform.
123
+ * @param value The value to set for the uniform.
124
+ */
125
+ setUniformAt(id: number, name: string, value: UniformValue): void;
126
+ /**
127
+ * Retrieves a uniform value at the specified instance ID from the texture.
128
+ * @param id The instance ID to retrieve the uniform from.
129
+ * @param name The name of the uniform.
130
+ * @param target Optional target object to store the uniform value.
131
+ * @returns The uniform value for the specified instance.
132
+ */
133
+ getUniformAt(id: number, name: string, target?: UniformValueObj): UniformValue;
134
+ /**
135
+ * Generates the GLSL code for accessing the uniform data stored in the texture.
136
+ * @param textureName The name of the texture in the GLSL shader.
137
+ * @param indexName The name of the index in the GLSL shader.
138
+ * @param indexType The type of the index in the GLSL shader.
139
+ * @returns An object containing the GLSL code for the vertex and fragment shaders.
140
+ */
141
+ getUniformsGLSL(textureName: string, indexName: string, indexType: string): {
142
+ vertex: string;
143
+ fragment: string;
144
+ };
145
+ protected getUniformsVertexGLSL(textureName: string, indexName: string, indexType: string): string;
146
+ protected getUniformsFragmentGLSL(textureName: string, indexName: string, indexType: string): string;
147
+ protected texelsFetchGLSL(textureName: string, indexName: string): string;
148
+ protected getFromTexelsGLSL(): string;
149
+ protected getVarying(): {
150
+ declareVarying: string;
151
+ assignVarying: string;
152
+ getVarying: string;
153
+ };
154
+ protected getUniformComponents(offset: number, size: number): string;
155
+ copy(source: SquareDataTexture): this;
156
+ }
157
+ //# sourceMappingURL=SquareDataTexture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SquareDataTexture.d.ts","sourceRoot":"","sources":["../../../../../../src/character/instancing/vendor/core/utils/SquareDataTexture.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ export * from "./core/InstancedEntity";
2
+ export * from "./core/InstancedMesh2";
3
+ export * from "./core/InstancedMeshBVH";
4
+ import "./core/feature/Capacity";
5
+ import "./core/feature/FrustumCulling";
6
+ import "./core/feature/LOD";
7
+ import "./core/feature/Morph";
8
+ import "./core/feature/Raycasting";
9
+ import "./core/feature/Skeleton";
10
+ import "./core/feature/Uniforms";
11
+ export type { Entity, UpdateEntityCallback } from "./core/feature/Instances";
12
+ import "./core/feature/Instances";
13
+ export * from "./core/utils/GLInstancedBufferAttribute";
14
+ export * from "./core/utils/InstancedRenderList";
15
+ export * from "./core/utils/SquareDataTexture";
16
+ export * from "./shaders/ShaderChunk";
17
+ export * from "./shaders/chunks/instanced_pars_vertex";
18
+ export * from "./shaders/chunks/instanced_color_pars_vertex";
19
+ export * from "./shaders/chunks/instanced_color_vertex";
20
+ export * from "./shaders/chunks/instanced_material_color_pars_vertex";
21
+ export * from "./shaders/chunks/instanced_material_color_vertex";
22
+ export * from "./shaders/chunks/instanced_vertex";
23
+ export * from "./shaders/chunks/instanced_skinning_pars_vertex";
24
+ export * from "./utils/SortingUtils";
25
+ export * from "./utils/CreateFrom";
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/character/instancing/vendor/index.ts"],"names":[],"mappings":"AACA,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AAGxC,OAAO,yBAAyB,CAAC;AACjC,OAAO,+BAA+B,CAAC;AACvC,OAAO,oBAAoB,CAAC;AAC5B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,2BAA2B,CAAC;AACnC,OAAO,yBAAyB,CAAC;AACjC,OAAO,yBAAyB,CAAC;AAGjC,YAAY,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,0BAA0B,CAAC;AAGlC,cAAc,yCAAyC,CAAC;AACxD,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAG/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wCAAwC,CAAC;AACvD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,yCAAyC,CAAC;AACxD,cAAc,uDAAuD,CAAC;AACtE,cAAc,kDAAkD,CAAC;AACjE,cAAc,mCAAmC,CAAC;AAClD,cAAc,iDAAiD,CAAC;AAGhE,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function patchShader(shader: string): string;
2
+ //# sourceMappingURL=ShaderChunk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShaderChunk.d.ts","sourceRoot":"","sources":["../../../../../src/character/instancing/vendor/shaders/ShaderChunk.ts"],"names":[],"mappings":"AAiBA,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKlD"}
@@ -0,0 +1,2 @@
1
+ export declare const instanced_color_pars_vertex = "\n\n#ifdef USE_INSTANCING_COLOR_INDIRECT\n uniform highp sampler2D colorsTexture;\n\n #ifdef USE_COLOR_ALPHA\n vec4 getColorTexture() {\n int size = textureSize( colorsTexture, 0 ).x;\n int j = int( instanceIndex );\n int x = j % size;\n int y = j / size;\n return texelFetch( colorsTexture, ivec2( x, y ), 0 );\n }\n #else\n vec3 getColorTexture() {\n int size = textureSize( colorsTexture, 0 ).x;\n int j = int( instanceIndex );\n int x = j % size;\n int y = j / size;\n return texelFetch( colorsTexture, ivec2( x, y ), 0 ).rgb;\n }\n #endif\n#endif\n";
2
+ //# sourceMappingURL=instanced_color_pars_vertex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instanced_color_pars_vertex.d.ts","sourceRoot":"","sources":["../../../../../../src/character/instancing/vendor/shaders/chunks/instanced_color_pars_vertex.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,gnBAuBvC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const instanced_color_vertex = "\n#ifdef USE_INSTANCING_COLOR_INDIRECT\n #ifdef USE_VERTEX_COLOR\n vColor = color;\n #else\n #ifdef USE_COLOR_ALPHA\n vColor = vec4( 1.0 );\n #else\n vColor = vec3( 1.0 );\n #endif\n #endif\n#endif\n";
2
+ //# sourceMappingURL=instanced_color_vertex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instanced_color_vertex.d.ts","sourceRoot":"","sources":["../../../../../../src/character/instancing/vendor/shaders/chunks/instanced_color_vertex.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,qOAYlC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const instanced_material_color_pars_vertex = "\n#ifdef USE_INSTANCING_MATERIAL_COLORS\n uniform highp sampler2D materialColorsTexture;\n\n // material indices for the LUT\n #define MATERIAL_HAIR 0\n #define MATERIAL_SHIRT_SHORT 1\n #define MATERIAL_SHIRT_LONG 2\n #define MATERIAL_PANTS_SHORT 3\n #define MATERIAL_PANTS_LONG 4\n #define MATERIAL_SHOES 5\n #define MATERIAL_SKIN 6\n #define MATERIAL_LIPS 7\n\n vec3 getMaterialColorTexture(int materialIndex) {\n int size = textureSize(materialColorsTexture, 0).x;\n int instanceId = int(instanceIndex);\n int colorIndex = instanceId * 8 + materialIndex;\n int x = colorIndex % size;\n int y = colorIndex / size;\n return texelFetch(materialColorsTexture, ivec2(x, y), 0).rgb;\n }\n#endif\n";
2
+ //# sourceMappingURL=instanced_material_color_pars_vertex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instanced_material_color_pars_vertex.d.ts","sourceRoot":"","sources":["../../../../../../src/character/instancing/vendor/shaders/chunks/instanced_material_color_pars_vertex.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oCAAoC,wtBAuBhD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const instanced_material_color_vertex = "\n#ifdef USE_INSTANCING_MATERIAL_COLORS\n #ifdef USE_VERTEX_COLOR\n vec3 vertexColor = color;\n vec3 instanceColor = vec3(1.0);\n \n if (vertexColor.r == 0.0 && vertexColor.g == 0.0 && vertexColor.b == 0.0) {\n // Hair material (0, 0, 0)\n instanceColor = getMaterialColorTexture(MATERIAL_HAIR);\n } else if (vertexColor.r == 0.0 && vertexColor.g == 0.0 && vertexColor.b == 1.0) {\n // Shirt short material (0, 0, 1)\n instanceColor = getMaterialColorTexture(MATERIAL_SHIRT_SHORT);\n } else if (vertexColor.r == 0.0 && vertexColor.g == 1.0 && vertexColor.b == 0.0) {\n // Shirt long material (0, 1, 0)\n instanceColor = getMaterialColorTexture(MATERIAL_SHIRT_LONG);\n } else if (vertexColor.r == 0.0 && vertexColor.g == 1.0 && vertexColor.b == 1.0) {\n // Pants short material (0, 1, 1)\n instanceColor = getMaterialColorTexture(MATERIAL_PANTS_SHORT);\n } else if (vertexColor.r == 1.0 && vertexColor.g == 0.0 && vertexColor.b == 0.0) {\n // Pants long material (1, 0, 0)\n instanceColor = getMaterialColorTexture(MATERIAL_PANTS_LONG);\n } else if (vertexColor.r == 1.0 && vertexColor.g == 0.0 && vertexColor.b == 1.0) {\n // Shoes material (1, 0, 1)\n instanceColor = getMaterialColorTexture(MATERIAL_SHOES);\n } else if (vertexColor.r == 1.0 && vertexColor.g == 1.0 && vertexColor.b == 0.0) {\n // Skin material (1, 1, 0)\n instanceColor = getMaterialColorTexture(MATERIAL_SKIN);\n } else if (vertexColor.r == 1.0 && vertexColor.g == 1.0 && vertexColor.b == 1.0) {\n // Lips material (1, 1, 1)\n instanceColor = getMaterialColorTexture(MATERIAL_LIPS);\n } else if (vertexColor.r == 0.5 && vertexColor.g == 0.0 && vertexColor.b == 0.0) {\n // Eyes black material (0.5, 0, 0)\n instanceColor = getMaterialColorTexture(MATERIAL_SKIN); // Using skin index for now\n } else if (vertexColor.r == 0.0 && vertexColor.g == 0.5 && vertexColor.b == 0.0) {\n // Eyes white material (0, 0.5, 0)\n instanceColor = getMaterialColorTexture(MATERIAL_SKIN); // Using skin index for now\n }\n \n vColor = instanceColor;\n #else\n vColor = vec3(1.0);\n #endif\n#endif\n";
2
+ //# sourceMappingURL=instanced_material_color_vertex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instanced_material_color_vertex.d.ts","sourceRoot":"","sources":["../../../../../../src/character/instancing/vendor/shaders/chunks/instanced_material_color_vertex.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,+BAA+B,kqEA2C3C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const instanced_pars_vertex = "\n#ifdef USE_INSTANCING_INDIRECT\n attribute uint instanceIndex;\n uniform highp sampler2D matricesTexture; \n\n mat4 getInstancedMatrix() {\n int size = textureSize( matricesTexture, 0 ).x;\n int j = int( instanceIndex ) * 4;\n int x = j % size;\n int y = j / size;\n vec4 v1 = texelFetch( matricesTexture, ivec2( x, y ), 0 );\n vec4 v2 = texelFetch( matricesTexture, ivec2( x + 1, y ), 0 );\n vec4 v3 = texelFetch( matricesTexture, ivec2( x + 2, y ), 0 );\n vec4 v4 = texelFetch( matricesTexture, ivec2( x + 3, y ), 0 );\n return mat4( v1, v2, v3, v4 );\n }\n#endif\n";
2
+ //# sourceMappingURL=instanced_pars_vertex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instanced_pars_vertex.d.ts","sourceRoot":"","sources":["../../../../../../src/character/instancing/vendor/shaders/chunks/instanced_pars_vertex.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,8lBAiBjC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const instanced_skinning_pars_vertex = "\n#ifdef USE_SKINNING\n uniform mat4 bindMatrix;\n uniform mat4 bindMatrixInverse;\n uniform highp sampler2D boneTexture;\n\n #ifdef USE_INSTANCING_SKINNING\n uniform int bonesPerInstance;\n #endif\n\n mat4 getBoneMatrix( const in float i ) {\n int size = textureSize( boneTexture, 0 ).x;\n\n #ifdef USE_INSTANCING_SKINNING\n int j = ( bonesPerInstance * int( instanceIndex ) + int( i ) ) * 4;\n #else\n int j = int( i ) * 4;\n #endif\n\n int x = j % size;\n int y = j / size;\n vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\n vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\n vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\n vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\n return mat4( v1, v2, v3, v4 );\n }\n#endif\n";
2
+ //# sourceMappingURL=instanced_skinning_pars_vertex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instanced_skinning_pars_vertex.d.ts","sourceRoot":"","sources":["../../../../../../src/character/instancing/vendor/shaders/chunks/instanced_skinning_pars_vertex.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,8BAA8B,qzBA4B1C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const instanced_vertex = "\n#ifdef USE_INSTANCING_INDIRECT\n mat4 instanceMatrix = getInstancedMatrix();\n\n #ifdef USE_INSTANCING_COLOR_INDIRECT\n vColor *= getColorTexture();\n #endif\n#endif\n";
2
+ //# sourceMappingURL=instanced_vertex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instanced_vertex.d.ts","sourceRoot":"","sources":["../../../../../../src/character/instancing/vendor/shaders/chunks/instanced_vertex.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,oLAQ5B,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Mesh } from "three";
2
+ import { InstancedMesh2, InstancedMesh2Params } from "../core/InstancedMesh2";
3
+ /**
4
+ * Create an `InstancedMesh2` instance from an existing `Mesh` or `InstancedMesh`.
5
+ * @param mesh The `Mesh` or `InstancedMesh` to create an `InstanceMesh2` from.
6
+ * @param params Optional configuration parameters object. See `InstancedMesh2Params` for details.
7
+ * @returns The created `InstancedMesh2` instance.
8
+ */
9
+ export declare function createInstancedMesh2From<TData = object>(mesh: Mesh, params?: InstancedMesh2Params): InstancedMesh2<TData>;
10
+ //# sourceMappingURL=CreateFrom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateFrom.d.ts","sourceRoot":"","sources":["../../../../../src/character/instancing/vendor/utils/CreateFrom.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2C,IAAI,EAAe,MAAM,OAAO,CAAC;AAEnF,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9E;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,GAAG,MAAM,EACrD,IAAI,EAAE,IAAI,EACV,MAAM,GAAE,oBAAyB,GAChC,cAAc,CAAC,KAAK,CAAC,CAsEvB"}
@@ -0,0 +1,17 @@
1
+ import { InstancedMesh2 } from "../core/InstancedMesh2";
2
+ import { InstancedRenderItem } from "../core/utils/InstancedRenderList";
3
+ type radixSortCallback = (list: InstancedRenderItem[]) => void;
4
+ /**
5
+ * Creates a radix sort function specifically for sorting `InstancedMesh2` instances.
6
+ * The sorting is based on the `depth` property of each `InstancedRenderItem`.
7
+ * This function dynamically adjusts for transparent materials by reversing the sort order if necessary.
8
+ * @param target The `InstancedMesh2` instance that contains the instances to be sorted.
9
+ * @returns A radix sort function.
10
+ */
11
+ export declare function createRadixSort(target: InstancedMesh2): radixSortCallback;
12
+ /** @internal */
13
+ export declare function sortOpaque(a: InstancedRenderItem, b: InstancedRenderItem): number;
14
+ /** @internal */
15
+ export declare function sortTransparent(a: InstancedRenderItem, b: InstancedRenderItem): number;
16
+ export {};
17
+ //# sourceMappingURL=SortingUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SortingUtils.d.ts","sourceRoot":"","sources":["../../../../../src/character/instancing/vendor/utils/SortingUtils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,KAAK,iBAAiB,GAAG,CAAC,IAAI,EAAE,mBAAmB,EAAE,KAAK,IAAI,CAAC;AAE/D;;;;;;GAMG;AAEH,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,iBAAiB,CA+BzE;AAED,gBAAgB;AAChB,wBAAgB,UAAU,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAEjF;AAED,gBAAgB;AAChB,wBAAgB,eAAe,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAEtF"}
@@ -0,0 +1,12 @@
1
+ import { AnimationClip, Object3D } from "three";
2
+ export declare class CharacterModelLoader {
3
+ private debug;
4
+ private readonly modelLoader;
5
+ private workerPool;
6
+ constructor(debug?: boolean);
7
+ loadModel(fileUrl: string, maxTextureSize: number, abortController?: AbortController): Promise<Object3D | null>;
8
+ loadAnimation(fileUrl: string, abortController?: AbortController): Promise<AnimationClip | null>;
9
+ private processGLTFInWorker;
10
+ private loadFromBuffer;
11
+ }
12
+ //# sourceMappingURL=CharacterModelLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CharacterModelLoader.d.ts","sourceRoot":"","sources":["../../../src/character/loading/CharacterModelLoader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAIhD,qBAAa,oBAAoB;IAInB,OAAO,CAAC,KAAK;IAHzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkC;IAC9D,OAAO,CAAC,UAAU,CAAwB;gBAEtB,KAAK,GAAE,OAAe;IAIpC,SAAS,CACb,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,eAAe,CAAC,EAAE,eAAe,GAChC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAuBrB,aAAa,CACjB,OAAO,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,eAAe,GAChC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;YASlB,mBAAmB;YA0CnB,cAAc;CAQ7B"}
@@ -0,0 +1,3 @@
1
+ declare const placeholder = "";
2
+ export default placeholder;
3
+ //# sourceMappingURL=GLTFLoadingWorker.worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GLTFLoadingWorker.worker.d.ts","sourceRoot":"","sources":["../../../src/character/loading/GLTFLoadingWorker.worker.ts"],"names":[],"mappings":"AA0dA,QAAA,MAAM,WAAW,KAAK,CAAC;AACvB,eAAe,WAAW,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare class GLTFLoadingWorkerBrowserCache {
2
+ private readonly cacheName;
3
+ private cache;
4
+ init(): Promise<void>;
5
+ private generateCacheKey;
6
+ get(fileUrl: string, maxTextureSize: number): Promise<ArrayBuffer | null>;
7
+ set(fileUrl: string, maxTextureSize: number, data: ArrayBuffer): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=GLTFLoadingWorkerBrowserCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GLTFLoadingWorkerBrowserCache.d.ts","sourceRoot":"","sources":["../../../src/character/loading/GLTFLoadingWorkerBrowserCache.ts"],"names":[],"mappings":"AAAA,qBAAa,6BAA6B;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IACjD,OAAO,CAAC,KAAK,CAAsB;IAE7B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B,OAAO,CAAC,gBAAgB;IAKlB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAwBzE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAuBrF"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * GLTFLoadingWorkerPool - gLTF loading and texture processing using Web Workers
3
+ *
4
+ * Features:
5
+ * - Loads gLTF files entirely in workers (off main thread)
6
+ * - Uses gltf-transform for gLTF manipulation
7
+ * - Processes and resizes textures in the worker
8
+ * - Caches processed gLTF files
9
+ */
10
+ export declare class GLTFLoadingWorkerPool {
11
+ private workers;
12
+ private activeJobs;
13
+ private workerIndex;
14
+ private readonly maxWorkers;
15
+ constructor();
16
+ private handleWorkerMessage;
17
+ private handleWorkerError;
18
+ private getNextWorker;
19
+ processGLTF(fileUrl: string, maxTextureSize: number, abortController?: AbortController): Promise<ArrayBuffer>;
20
+ dispose(): void;
21
+ }
22
+ export declare const TextureWorkerPool: typeof GLTFLoadingWorkerPool;
23
+ //# sourceMappingURL=GLTFLoadingWorkerPool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GLTFLoadingWorkerPool.d.ts","sourceRoot":"","sources":["../../../src/character/loading/GLTFLoadingWorkerPool.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,UAAU,CAUd;IACJ,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmD;;IAY9E,OAAO,CAAC,mBAAmB;IA0B3B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,aAAa;IAMR,WAAW,CACtB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,eAAe,CAAC,EAAE,eAAe,GAChC,OAAO,CAAC,WAAW,CAAC;IAqEhB,OAAO,IAAI,IAAI;CAmBvB;AAGD,eAAO,MAAM,iBAAiB,8BAAwB,CAAC"}
@@ -0,0 +1,19 @@
1
+ export type GLTFWorkerRequest = {
2
+ id: string;
3
+ } & ({
4
+ type: "load-gltf";
5
+ fileUrl: string;
6
+ maxTextureSize: number;
7
+ } | {
8
+ type: "cancel-load-gltf";
9
+ });
10
+ export type GLTFWorkerResponse = {
11
+ id: string;
12
+ } & ({
13
+ type: "success";
14
+ gltfBuffer: Uint8Array;
15
+ } | {
16
+ type: "error";
17
+ error: string;
18
+ });
19
+ //# sourceMappingURL=GLTFLoadingWorkerTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GLTFLoadingWorkerTypes.d.ts","sourceRoot":"","sources":["../../../src/character/loading/GLTFLoadingWorkerTypes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;CACZ,GAAG,CACA;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CACxB,GACD;IACE,IAAI,EAAE,kBAAkB,CAAC;CAC1B,CACJ,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;CACZ,GAAG,CACA;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;CACxB,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { CollisionMesh } from "@mml-io/3d-web-client-core";
2
+ import { Group, Scene } from "three";
3
+ import { MeshBVH } from "three-mesh-bvh";
4
+ export declare class ThreeJSCollisionManager {
5
+ private scene;
6
+ private tempMatrixThree;
7
+ private collisionDebugGroups;
8
+ private collisionMeshBVHs;
9
+ constructor(scene: Scene);
10
+ createCollisionMesh(group: Group): CollisionMesh;
11
+ updateDebugVisualization(enabled: boolean, source: Group, meshBVH: MeshBVH): void;
12
+ removeDebugVisualization(source: Group): void;
13
+ updateDebugPosition(source: Group): void;
14
+ toggleDebugForAll(enabled: boolean): void;
15
+ clearAllDebugVisualizations(): void;
16
+ private createCollisionDebugVisuals;
17
+ }
18
+ //# sourceMappingURL=ThreeJSCollisionManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThreeJSCollisionManager.d.ts","sourceRoot":"","sources":["../../src/collisions/ThreeJSCollisionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAIL,KAAK,EAML,KAAK,EAEN,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,OAAO,EAAiB,MAAM,gBAAgB,CAAC;AAExD,qBAAa,uBAAuB;IAKtB,OAAO,CAAC,KAAK;IAJzB,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,oBAAoB,CAA2B;IACvD,OAAO,CAAC,iBAAiB,CAA6B;gBAElC,KAAK,EAAE,KAAK;IAEzB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa;IAmFhD,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAyBjF,wBAAwB,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI;IAe7C,mBAAmB,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI;IAQxC,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAMzC,2BAA2B,IAAI,IAAI;IAc1C,OAAO,CAAC,2BAA2B;CAoBpC"}
@@ -0,0 +1,108 @@
1
+ import { Scene, WebGLRenderer } from "three";
2
+ import { ThreeJSCameraManager } from "./camera/ThreeJSCameraManager";
3
+ import { Sun } from "./sun/Sun";
4
+ import { EnvValues, SunValues } from "./tweakpane/blades/environmentFolder";
5
+ import { RendererValues } from "./tweakpane/blades/rendererFolder";
6
+ type ComposerContructorArgs = {
7
+ scene: Scene;
8
+ cameraManager: ThreeJSCameraManager;
9
+ spawnSun: boolean;
10
+ environmentConfiguration?: EnvironmentConfiguration;
11
+ postProcessingEnabled?: boolean;
12
+ };
13
+ export type EnvironmentConfiguration = {
14
+ groundPlane?: boolean;
15
+ skybox?: {
16
+ intensity?: number;
17
+ blurriness?: number;
18
+ azimuthalAngle?: number;
19
+ polarAngle?: number;
20
+ } & ({
21
+ hdrJpgUrl: string;
22
+ } | {
23
+ hdrUrl: string;
24
+ });
25
+ envMap?: {
26
+ intensity?: number;
27
+ };
28
+ sun?: {
29
+ intensity?: number;
30
+ polarAngle?: number;
31
+ azimuthalAngle?: number;
32
+ };
33
+ fog?: {
34
+ fogNear?: number;
35
+ fogFar?: number;
36
+ fogColor?: {
37
+ r: number;
38
+ g: number;
39
+ b: number;
40
+ };
41
+ };
42
+ postProcessing?: {
43
+ bloomIntensity?: number;
44
+ };
45
+ ambientLight?: {
46
+ intensity?: number;
47
+ };
48
+ };
49
+ export declare class Composer {
50
+ private width;
51
+ private height;
52
+ private resizeListener;
53
+ private readonly scene;
54
+ postPostScene: Scene;
55
+ private threeJSCameraManager;
56
+ readonly renderer: WebGLRenderer;
57
+ private postProcessingManager;
58
+ private currentCamera;
59
+ private ambientLight;
60
+ private environmentConfiguration?;
61
+ private skyboxState;
62
+ sun: Sun | null;
63
+ spawnSun: boolean;
64
+ private sky;
65
+ private skyDirty;
66
+ private skyCubeCamera;
67
+ private skyRenderTarget;
68
+ private currentAzimuthalAngle;
69
+ private currentPolarAngle;
70
+ private targetAzimuthalAngle;
71
+ private targetPolarAngle;
72
+ private currentIntensity;
73
+ private targetIntensity;
74
+ private readonly lerpSpeed;
75
+ private postProcessingEnabled;
76
+ readonly sunValues: SunValues;
77
+ readonly envValues: EnvValues;
78
+ readonly rendererValues: RendererValues;
79
+ constructor({ scene, cameraManager, spawnSun, environmentConfiguration, postProcessingEnabled, }: ComposerContructorArgs);
80
+ private setupSkyShader;
81
+ updateEnvironmentConfiguration(environmentConfiguration: EnvironmentConfiguration): void;
82
+ dispose(): void;
83
+ fitContainer(): void;
84
+ render(): void;
85
+ private hasHDR;
86
+ updateSkyboxRotation(): void;
87
+ private loadHDRJPG;
88
+ private loadHDRi;
89
+ useHDRJPG(url: string): void;
90
+ useHDRI(url: string): void;
91
+ setHDRIFromFile(): void;
92
+ setFog(): void;
93
+ setAmbientLight(): void;
94
+ updateSkyShaderValues(): void;
95
+ updateSunValues(): void;
96
+ updateSun(): void;
97
+ private lerp;
98
+ private lerpAngle;
99
+ private updateSkyShaderValuesWithLerpedAngles;
100
+ private updateFogValues;
101
+ private updateSkyboxAndEnvValues;
102
+ private updateBloomValues;
103
+ private updateAmbientLightValues;
104
+ togglePostProcessing(enabled: boolean): void;
105
+ private applyEnvMap;
106
+ }
107
+ export {};
108
+ //# sourceMappingURL=composer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composer.d.ts","sourceRoot":"","sources":["../src/composer.ts"],"names":[],"mappings":"AACA,OAAO,EAcL,KAAK,EAOL,aAAa,EACd,MAAM,OAAO,CAAC;AAIf,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAGL,SAAS,EACT,SAAS,EACV,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAA+B,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEhG,KAAK,sBAAsB,GAAG;IAC5B,KAAK,EAAE,KAAK,CAAC;IACb,aAAa,EAAE,oBAAoB,CAAC;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IACpD,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,CACA;QACE,SAAS,EAAE,MAAM,CAAC;KACnB,GACD;QACE,MAAM,EAAE,MAAM,CAAC;KAChB,CACJ,CAAC;IACF,MAAM,CAAC,EAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE;YACT,CAAC,EAAE,MAAM,CAAC;YACV,CAAC,EAAE,MAAM,CAAC;YACV,CAAC,EAAE,MAAM,CAAC;SACX,CAAC;KACH,CAAC;IACF,cAAc,CAAC,EAAE;QACf,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,YAAY,CAAC,EAAE;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF,qBAAa,QAAQ;IACnB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,cAAc,CAAa;IAEnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IACvB,aAAa,EAAE,KAAK,CAAC;IAC5B,OAAO,CAAC,oBAAoB,CAAuB;IACnD,SAAgB,QAAQ,EAAE,aAAa,CAAC;IAExC,OAAO,CAAC,qBAAqB,CAAwB;IACrD,OAAO,CAAC,aAAa,CAAoB;IAEzC,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,wBAAwB,CAAC,CAA2B;IAE5D,OAAO,CAAC,WAAW,CAMkB;IAE9B,GAAG,EAAE,GAAG,GAAG,IAAI,CAAQ;IACvB,QAAQ,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,GAAG,CAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,eAAe,CAAsC;IAE7D,OAAO,CAAC,qBAAqB,CAAa;IAC1C,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,oBAAoB,CAAa;IACzC,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAE1C,OAAO,CAAC,qBAAqB,CAAsB;IAEnD,SAAgB,SAAS,EAAE,SAAS,CAAC;IACrC,SAAgB,SAAS,EAAE,SAAS,CAAC;IACrC,SAAgB,cAAc,EAAE,cAAc,CAAC;gBAEnC,EACV,KAAK,EACL,aAAa,EACb,QAAgB,EAChB,wBAAwB,EACxB,qBAAqB,GACtB,EAAE,sBAAsB;IA0EzB,OAAO,CAAC,cAAc;IA8Bf,8BAA8B,CAAC,wBAAwB,EAAE,wBAAwB;IAkBjF,OAAO;IAMP,YAAY;IAeZ,MAAM,IAAI,IAAI;IA0BrB,OAAO,CAAC,MAAM;IAUP,oBAAoB;YAgBb,UAAU;YAuBV,QAAQ;IAkBf,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAgB5B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAe1B,eAAe,IAAI,IAAI;IA6BvB,MAAM,IAAI,IAAI;IAad,eAAe,IAAI,IAAI;IAiBvB,qBAAqB;IAgBrB,eAAe;IAiBf,SAAS;IA4DhB,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,SAAS;IAgBjB,OAAO,CAAC,qCAAqC;IAkB7C,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,wBAAwB;IA2BhC,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,wBAAwB;IAQzB,oBAAoB,CAAC,OAAO,EAAE,OAAO;IAI5C,OAAO,CAAC,WAAW;CAoBpB"}
@@ -0,0 +1,10 @@
1
+ import { Group } from "three";
2
+ export declare class GroundPlane extends Group {
3
+ private readonly floorSize;
4
+ private readonly floorTexture;
5
+ private readonly floorGeometry;
6
+ private readonly floorMaterial;
7
+ private readonly floorMesh;
8
+ constructor();
9
+ }
10
+ //# sourceMappingURL=GroundPlane.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroundPlane.d.ts","sourceRoot":"","sources":["../../src/ground-plane/GroundPlane.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,EAQN,MAAM,OAAO,CAAC;AAaf,qBAAa,WAAY,SAAQ,KAAK;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAO;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IACrD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA2D;IACzF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;IACrD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;;CA0BhD"}
@@ -0,0 +1,2 @@
1
+ export * from "./ThreeJSWorldRenderer";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}