ris-framework 0.1.0-dev.9 → 0.2.0-dev.11

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 (217) hide show
  1. package/CHANGELOG.md +49 -1
  2. package/README.md +15 -4
  3. package/dist/Framework.d.ts +9 -3
  4. package/dist/Framework.d.ts.map +1 -1
  5. package/dist/api/IFramework.d.ts +7 -6
  6. package/dist/api/IFramework.d.ts.map +1 -1
  7. package/dist/api/_export.d.ts +2 -0
  8. package/dist/api/_export.d.ts.map +1 -1
  9. package/dist/api/camera/CameraFactory.d.ts +3 -2
  10. package/dist/api/camera/CameraFactory.d.ts.map +1 -1
  11. package/dist/api/camera/ICamera.d.ts +5 -0
  12. package/dist/api/camera/ICamera.d.ts.map +1 -1
  13. package/dist/api/camera/ICameraFactory.d.ts +5 -6
  14. package/dist/api/camera/ICameraFactory.d.ts.map +1 -1
  15. package/dist/api/camera/OrthographicCamera.d.ts +7 -0
  16. package/dist/api/camera/OrthographicCamera.d.ts.map +1 -1
  17. package/dist/api/camera/PerspectiveCamera.d.ts +30 -6
  18. package/dist/api/camera/PerspectiveCamera.d.ts.map +1 -1
  19. package/dist/api/content/ContentManager.d.ts +67 -2
  20. package/dist/api/content/ContentManager.d.ts.map +1 -1
  21. package/dist/api/content/IContentManager.d.ts +32 -1
  22. package/dist/api/content/IContentManager.d.ts.map +1 -1
  23. package/dist/api/content/ShaderModuleContent.d.ts.map +1 -1
  24. package/dist/api/data/Color.d.ts +5 -0
  25. package/dist/api/data/Color.d.ts.map +1 -1
  26. package/dist/api/geometry/BaseGeometry.d.ts +9 -0
  27. package/dist/api/geometry/BaseGeometry.d.ts.map +1 -1
  28. package/dist/api/geometry/GeometryBuilder.d.ts +3 -1
  29. package/dist/api/geometry/GeometryBuilder.d.ts.map +1 -1
  30. package/dist/api/geometry/IGeometryBuilder.d.ts +24 -0
  31. package/dist/api/geometry/IGeometryBuilder.d.ts.map +1 -1
  32. package/dist/api/geometry/_export-geometry.d.ts +1 -0
  33. package/dist/api/geometry/_export-geometry.d.ts.map +1 -1
  34. package/dist/api/input/InputManager.d.ts +4 -0
  35. package/dist/api/input/InputManager.d.ts.map +1 -1
  36. package/dist/api/lights/AmbientLight.d.ts +35 -0
  37. package/dist/api/lights/AmbientLight.d.ts.map +1 -0
  38. package/dist/api/lights/DirectionalLight.d.ts +40 -0
  39. package/dist/api/lights/DirectionalLight.d.ts.map +1 -0
  40. package/dist/api/lights/LightFactory.d.ts +18 -0
  41. package/dist/api/lights/LightFactory.d.ts.map +1 -0
  42. package/dist/api/lights/LightId.d.ts +6 -0
  43. package/dist/api/lights/LightId.d.ts.map +1 -0
  44. package/dist/api/lights/LightsBuffer.d.ts +70 -0
  45. package/dist/api/lights/LightsBuffer.d.ts.map +1 -0
  46. package/dist/api/lights/PointLight.d.ts +59 -0
  47. package/dist/api/lights/PointLight.d.ts.map +1 -0
  48. package/dist/api/lights/_export.d.ts +6 -0
  49. package/dist/api/lights/_export.d.ts.map +1 -0
  50. package/dist/api/loaders/ObjGeometryMapper.d.ts +19 -0
  51. package/dist/api/loaders/ObjGeometryMapper.d.ts.map +1 -0
  52. package/dist/api/loaders/_export.d.ts +1 -0
  53. package/dist/api/loaders/_export.d.ts.map +1 -1
  54. package/dist/api/loaders/obj/ObjLoader.d.ts +29 -0
  55. package/dist/api/loaders/obj/ObjLoader.d.ts.map +1 -0
  56. package/dist/api/loaders/obj/ObjTypes.d.ts +103 -0
  57. package/dist/api/loaders/obj/ObjTypes.d.ts.map +1 -0
  58. package/dist/api/loaders/obj/index.d.ts +3 -0
  59. package/dist/api/loaders/obj/index.d.ts.map +1 -0
  60. package/dist/api/material/ForwardBlinnPhongMaterial.d.ts +127 -0
  61. package/dist/api/material/ForwardBlinnPhongMaterial.d.ts.map +1 -0
  62. package/dist/api/material/IMaterial.d.ts +15 -6
  63. package/dist/api/material/IMaterial.d.ts.map +1 -1
  64. package/dist/api/material/IMaterialFactory.d.ts +17 -2
  65. package/dist/api/material/IMaterialFactory.d.ts.map +1 -1
  66. package/dist/api/material/InspectTextureMipsMaterial.d.ts +16 -7
  67. package/dist/api/material/InspectTextureMipsMaterial.d.ts.map +1 -1
  68. package/dist/api/material/MaterialFactory.d.ts +6 -0
  69. package/dist/api/material/MaterialFactory.d.ts.map +1 -1
  70. package/dist/api/material/SpriteMaterial.d.ts +51 -0
  71. package/dist/api/material/SpriteMaterial.d.ts.map +1 -0
  72. package/dist/api/material/UnlitMaterial.d.ts +28 -10
  73. package/dist/api/material/UnlitMaterial.d.ts.map +1 -1
  74. package/dist/api/material/_export.d.ts +2 -0
  75. package/dist/api/material/_export.d.ts.map +1 -1
  76. package/dist/api/meshes/IMesh.d.ts +35 -5
  77. package/dist/api/meshes/IMesh.d.ts.map +1 -1
  78. package/dist/api/meshes/IMeshFactory.d.ts +25 -4
  79. package/dist/api/meshes/IMeshFactory.d.ts.map +1 -1
  80. package/dist/api/meshes/Mesh.d.ts +58 -6
  81. package/dist/api/meshes/Mesh.d.ts.map +1 -1
  82. package/dist/api/meshes/MeshFactory.d.ts +7 -3
  83. package/dist/api/meshes/MeshFactory.d.ts.map +1 -1
  84. package/dist/api/meshes/QuadMesh.d.ts +5 -1
  85. package/dist/api/meshes/QuadMesh.d.ts.map +1 -1
  86. package/dist/api/meshes/SubMesh.d.ts +47 -0
  87. package/dist/api/meshes/SubMesh.d.ts.map +1 -0
  88. package/dist/api/meshes/_export.d.ts +1 -0
  89. package/dist/api/meshes/_export.d.ts.map +1 -1
  90. package/dist/api/rendering/render-pipelines/IForwardBlinnPhongRenderPipeline.d.ts +56 -0
  91. package/dist/api/rendering/render-pipelines/IForwardBlinnPhongRenderPipeline.d.ts.map +1 -0
  92. package/dist/api/rendering/render-pipelines/IRenderPipeline.d.ts +3 -0
  93. package/dist/api/rendering/render-pipelines/IRenderPipeline.d.ts.map +1 -1
  94. package/dist/api/rendering/render-pipelines/IRenderPipelineFactory.d.ts +29 -0
  95. package/dist/api/rendering/render-pipelines/IRenderPipelineFactory.d.ts.map +1 -1
  96. package/dist/api/rendering/render-pipelines/_export-render-pipelines.d.ts +1 -0
  97. package/dist/api/rendering/render-pipelines/_export-render-pipelines.d.ts.map +1 -1
  98. package/dist/api/scene/Scene.d.ts +104 -0
  99. package/dist/api/scene/Scene.d.ts.map +1 -0
  100. package/dist/api/shader/IShaderModuleLoader.d.ts +4 -1
  101. package/dist/api/shader/IShaderModuleLoader.d.ts.map +1 -1
  102. package/dist/api/shader/{shader-loader.d.ts → ShaderLoader.d.ts} +1 -1
  103. package/dist/api/shader/ShaderLoader.d.ts.map +1 -0
  104. package/dist/api/sprites/SpriteBatchDrawable.d.ts +1 -1
  105. package/dist/api/sprites/SpriteBatchDrawable.d.ts.map +1 -1
  106. package/dist/api/sprites/SpriteBatchMesh.d.ts +14 -1
  107. package/dist/api/sprites/SpriteBatchMesh.d.ts.map +1 -1
  108. package/dist/api/utilities/GeometryUtilities.d.ts.map +1 -1
  109. package/dist/api/window/WindowManager.d.ts +4 -0
  110. package/dist/api/window/WindowManager.d.ts.map +1 -1
  111. package/dist/core/rendering/vertex-buffer-layout.d.ts +1 -0
  112. package/dist/core/rendering/vertex-buffer-layout.d.ts.map +1 -1
  113. package/dist/index.js +2252 -260
  114. package/dist/webgl/WebGlGraphicsDevice.d.ts.map +1 -1
  115. package/dist/webgl/lights/WebGlAmbientLightFactory.d.ts +17 -0
  116. package/dist/webgl/lights/WebGlAmbientLightFactory.d.ts.map +1 -0
  117. package/dist/webgl/lights/WebGlLightsBuffer.d.ts +55 -0
  118. package/dist/webgl/lights/WebGlLightsBuffer.d.ts.map +1 -0
  119. package/dist/webgl/render-pipelines/AWebGlRenderPipeline.d.ts +3 -1
  120. package/dist/webgl/render-pipelines/AWebGlRenderPipeline.d.ts.map +1 -1
  121. package/dist/webgl/render-pipelines/WebGlMainRenderTargetRenderPipeline.d.ts +3 -0
  122. package/dist/webgl/render-pipelines/WebGlMainRenderTargetRenderPipeline.d.ts.map +1 -1
  123. package/dist/webgl/render-pipelines/WebGlRenderPipelineFactory.d.ts +3 -1
  124. package/dist/webgl/render-pipelines/WebGlRenderPipelineFactory.d.ts.map +1 -1
  125. package/dist/webgl/render-pipelines/inspect/WebGlInspectTextureMipsRenderPipeline.d.ts +3 -1
  126. package/dist/webgl/render-pipelines/inspect/WebGlInspectTextureMipsRenderPipeline.d.ts.map +1 -1
  127. package/dist/webgl/render-pipelines/material/WebGlBlinnPhongRenderPipeline.d.ts +88 -0
  128. package/dist/webgl/render-pipelines/material/WebGlBlinnPhongRenderPipeline.d.ts.map +1 -0
  129. package/dist/webgl/render-pipelines/material/WebGlUnlitRenderPipeline.d.ts +3 -1
  130. package/dist/webgl/render-pipelines/material/WebGlUnlitRenderPipeline.d.ts.map +1 -1
  131. package/dist/webgl/render-pipelines/sprite/WebGlSpriteRenderPipeline.d.ts +3 -1
  132. package/dist/webgl/render-pipelines/sprite/WebGlSpriteRenderPipeline.d.ts.map +1 -1
  133. package/dist/webgl/shader/WebGlShaderModule.d.ts +4 -1
  134. package/dist/webgl/shader/WebGlShaderModule.d.ts.map +1 -1
  135. package/dist/webgl/shader/WebGlShaderModuleLoader.d.ts +16 -5
  136. package/dist/webgl/shader/WebGlShaderModuleLoader.d.ts.map +1 -1
  137. package/dist/webgl/texture/WebGlTexture2D.d.ts +8 -1
  138. package/dist/webgl/texture/WebGlTexture2D.d.ts.map +1 -1
  139. package/dist/webgl/utilities/webgl-filter-anisotropic-utilities.d.ts +0 -1
  140. package/dist/webgl/utilities/webgl-filter-anisotropic-utilities.d.ts.map +1 -1
  141. package/package.json +4 -4
  142. package/shaders/glsl/forward_blinn_phong_material_fs.glsl +110 -0
  143. package/shaders/glsl/forward_blinn_phong_material_vs.glsl +32 -0
  144. package/shaders/glsl/sprite_fs.glsl +1 -1
  145. package/shaders/glsl/unlit_material_fs.glsl +1 -1
  146. package/src/Framework.ts +37 -13
  147. package/src/api/IFramework.ts +8 -6
  148. package/src/api/_export.ts +2 -0
  149. package/src/api/camera/CameraFactory.ts +6 -6
  150. package/src/api/camera/ICamera.ts +6 -0
  151. package/src/api/camera/ICameraFactory.ts +5 -10
  152. package/src/api/camera/OrthographicCamera.ts +23 -1
  153. package/src/api/camera/PerspectiveCamera.ts +60 -15
  154. package/src/api/content/ContentManager.ts +201 -5
  155. package/src/api/content/IContentManager.ts +33 -1
  156. package/src/api/content/ShaderModuleContent.ts +9 -0
  157. package/src/api/data/Color.ts +7 -1
  158. package/src/api/geometry/BaseGeometry.ts +23 -0
  159. package/src/api/geometry/GeometryBuilder.ts +14 -2
  160. package/src/api/geometry/IGeometryBuilder.ts +31 -1
  161. package/src/api/geometry/_export-geometry.ts +2 -1
  162. package/src/api/input/InputManager.ts +14 -5
  163. package/src/api/lights/AmbientLight.ts +53 -0
  164. package/src/api/lights/DirectionalLight.ts +60 -0
  165. package/src/api/lights/LightFactory.ts +21 -0
  166. package/src/api/lights/LightId.ts +9 -0
  167. package/src/api/lights/LightsBuffer.ts +87 -0
  168. package/src/api/lights/PointLight.ts +91 -0
  169. package/src/api/lights/_export.ts +5 -0
  170. package/src/api/loaders/ObjGeometryMapper.ts +28 -0
  171. package/src/api/loaders/_export.ts +2 -1
  172. package/src/api/loaders/obj/ObjLoader.ts +270 -0
  173. package/src/api/loaders/obj/ObjTypes.ts +124 -0
  174. package/src/api/loaders/obj/index.ts +5 -0
  175. package/src/api/material/ForwardBlinnPhongMaterial.ts +302 -0
  176. package/src/api/material/IMaterial.ts +16 -6
  177. package/src/api/material/IMaterialFactory.ts +19 -2
  178. package/src/api/material/InspectTextureMipsMaterial.ts +63 -24
  179. package/src/api/material/MaterialFactory.ts +12 -0
  180. package/src/api/material/SpriteMaterial.ts +83 -0
  181. package/src/api/material/UnlitMaterial.ts +101 -29
  182. package/src/api/material/_export.ts +3 -1
  183. package/src/api/meshes/IMesh.ts +45 -6
  184. package/src/api/meshes/IMeshFactory.ts +27 -4
  185. package/src/api/meshes/Mesh.ts +163 -41
  186. package/src/api/meshes/MeshFactory.ts +30 -6
  187. package/src/api/meshes/QuadMesh.ts +6 -2
  188. package/src/api/meshes/SubMesh.ts +71 -0
  189. package/src/api/meshes/_export.ts +1 -0
  190. package/src/api/rendering/render-pipelines/IForwardBlinnPhongRenderPipeline.ts +66 -0
  191. package/src/api/rendering/render-pipelines/IRenderPipeline.ts +4 -0
  192. package/src/api/rendering/render-pipelines/IRenderPipelineFactory.ts +39 -0
  193. package/src/api/rendering/render-pipelines/_export-render-pipelines.ts +2 -1
  194. package/src/api/scene/Scene.ts +264 -0
  195. package/src/api/shader/IShaderModuleLoader.ts +2 -1
  196. package/src/api/sprites/SpriteBatchDrawable.ts +12 -16
  197. package/src/api/sprites/SpriteBatchMesh.ts +23 -4
  198. package/src/api/utilities/GeometryUtilities.ts +2 -0
  199. package/src/api/window/WindowManager.ts +22 -2
  200. package/src/core/rendering/vertex-buffer-layout.ts +32 -1
  201. package/src/main.ts +0 -1
  202. package/src/webgl/WebGlGraphicsDevice.ts +0 -1
  203. package/src/webgl/lights/WebGlAmbientLightFactory.ts +35 -0
  204. package/src/webgl/lights/WebGlLightsBuffer.ts +215 -0
  205. package/src/webgl/render-pipelines/AWebGlRenderPipeline.ts +7 -1
  206. package/src/webgl/render-pipelines/WebGlMainRenderTargetRenderPipeline.ts +3 -0
  207. package/src/webgl/render-pipelines/WebGlRenderPipelineFactory.ts +24 -2
  208. package/src/webgl/render-pipelines/inspect/WebGlInspectTextureMipsRenderPipeline.ts +16 -6
  209. package/src/webgl/render-pipelines/material/WebGlBlinnPhongRenderPipeline.ts +300 -0
  210. package/src/webgl/render-pipelines/material/WebGlUnlitRenderPipeline.ts +16 -6
  211. package/src/webgl/render-pipelines/sprite/WebGlSpriteRenderPipeline.ts +11 -7
  212. package/src/webgl/shader/WebGlShaderModule.ts +11 -4
  213. package/src/webgl/shader/WebGlShaderModuleLoader.ts +29 -10
  214. package/src/webgl/texture/WebGlTexture2D.ts +19 -5
  215. package/src/webgl/utilities/webgl-filter-anisotropic-utilities.ts +9 -6
  216. package/dist/api/shader/shader-loader.d.ts.map +0 -1
  217. /package/src/api/shader/{shader-loader.ts → ShaderLoader.ts} +0 -0
@@ -5,6 +5,15 @@ import type { IGeometry } from "../index.js";
5
5
  * The default IGeometry implementation. GeometryBuilder fills it with vertex data.
6
6
  */
7
7
  export declare class BaseGeometry implements IGeometry {
8
+ /**
9
+ * Initializes a new instance of the BaseGeometry class.
10
+ * @param positions The optional positions of the geometry.
11
+ * @param indices The optional indices of the geometry.
12
+ * @param normals The optional normals of the geometry.
13
+ * @param textureCoords The optional texture coordinates of the geometry.
14
+ * @param colors The optional colors of the geometry.
15
+ */
16
+ constructor(positions?: number[], indices?: number[], normals?: number[], textureCoords?: number[], colors?: number[]);
8
17
  /** @inheritdoc */
9
18
  vertexCount: number;
10
19
  /** @inheritdoc */
@@ -1 +1 @@
1
- {"version":3,"file":"BaseGeometry.d.ts","sourceRoot":"","sources":["../../../src/api/geometry/BaseGeometry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAE3C;;GAEG;AACH,qBAAa,YAAa,YAAW,SAAS;IAE1C,kBAAkB;IACX,WAAW,EAAE,MAAM,CAAK;IAE/B,kBAAkB;IACX,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAE5B,kBAAkB;IACX,eAAe,EAAE,YAAY,CAA2B;IAE/D,kBAAkB;IACX,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAEzB,kBAAkB;IACX,WAAW,EAAE,YAAY,CAA2B;IAE3D,kBAAkB;IACX,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhC,kBAAkB;IACX,aAAa,EAAE,YAAY,CAA2B;IAE7D,kBAAkB;IACX,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,kBAAkB;IACX,aAAa,EAAE,YAAY,CAA2B;IAE7D,+BAA+B;IACxB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B;;;;;;;OAOG;IACH,OAAO,CAAC,UAAU;IA6ClB;;;;OAIG;IACI,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,EAAE;CA+DzD"}
1
+ {"version":3,"file":"BaseGeometry.d.ts","sourceRoot":"","sources":["../../../src/api/geometry/BaseGeometry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAG3C;;GAEG;AACH,qBAAa,YAAa,YAAW,SAAS;IAE1C;;;;;;;OAOG;gBACS,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE;IAcrH,kBAAkB;IACX,WAAW,EAAE,MAAM,CAAK;IAE/B,kBAAkB;IACX,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAE5B,kBAAkB;IACX,eAAe,EAAE,YAAY,CAA2B;IAE/D,kBAAkB;IACX,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAEzB,kBAAkB;IACX,WAAW,EAAE,YAAY,CAA2B;IAE3D,kBAAkB;IACX,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhC,kBAAkB;IACX,aAAa,EAAE,YAAY,CAA2B;IAE7D,kBAAkB;IACX,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,kBAAkB;IACX,aAAa,EAAE,YAAY,CAA2B;IAE7D,+BAA+B;IACxB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B;;;;;;;OAOG;IACH,OAAO,CAAC,UAAU;IA6ClB;;;;OAIG;IACI,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,EAAE;CA+DzD"}
@@ -1,5 +1,5 @@
1
1
  import { vec2 } from "gl-matrix";
2
- import type { IGeometry, IGeometryBuilder } from "../index.js";
2
+ import type { IGeometry, IGeometryBuilder, GeometryDescriptor } from "../index.js";
3
3
  /**
4
4
  * The GeometryBuilder class provides methods for creating various types of geometries, such as quads, with specified parameters like scale and winding order.
5
5
  */
@@ -7,5 +7,7 @@ export declare class GeometryBuilder implements IGeometryBuilder {
7
7
  static DEFAULT_SCALE: vec2;
8
8
  /** @inheritdoc */
9
9
  quadGeometry(scale?: vec2 | null, counterClockwise?: boolean): IGeometry;
10
+ /** @inheritdoc */
11
+ create(descriptor: GeometryDescriptor): IGeometry;
10
12
  }
11
13
  //# sourceMappingURL=GeometryBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GeometryBuilder.d.ts","sourceRoot":"","sources":["../../../src/api/geometry/GeometryBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,KAAK,EAAC,SAAS,EAAE,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAE7D;;GAEG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;IAEpD,MAAM,CAAC,aAAa,OAAwB;IAE5C,kBAAkB;IACX,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,gBAAgB,GAAE,OAAc,GAAG,SAAS;CA6CxF"}
1
+ {"version":3,"file":"GeometryBuilder.d.ts","sourceRoot":"","sources":["../../../src/api/geometry/GeometryBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,KAAK,EAAC,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAC,MAAM,aAAa,CAAC;AAEjF;;GAEG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;IAEpD,MAAM,CAAC,aAAa,OAAwB;IAE5C,kBAAkB;IACX,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,gBAAgB,GAAE,OAAc,GAAG,SAAS;IA8CrF,kBAAkB;IACX,MAAM,CAAC,UAAU,EAAE,kBAAkB,GAAG,SAAS;CAU3D"}
@@ -1,5 +1,21 @@
1
1
  import type { IGeometry } from "./IGeometry.js";
2
2
  import { vec2 } from "gl-matrix";
3
+ /**
4
+ * The geometry descriptor.
5
+ * @public
6
+ */
7
+ export interface GeometryDescriptor {
8
+ /** Positions, 3 per vertex. */
9
+ readonly positions: number[];
10
+ /** Triangle indices, 3 per triangle. Optional for non-indexed geometry. */
11
+ readonly indices?: number[];
12
+ /** Normals, 3 per vertex. */
13
+ readonly normals?: number[];
14
+ /** Texture coordinates, 2 per vertex. */
15
+ readonly textureCoords?: number[];
16
+ /** RGBA colours, 4 per vertex. */
17
+ readonly colors?: number[];
18
+ }
3
19
  /**
4
20
  * The geometry builder.
5
21
  */
@@ -11,5 +27,13 @@ export interface IGeometryBuilder {
11
27
  * @returns The geometry.
12
28
  */
13
29
  quadGeometry(scale?: vec2, counterClockwise?: boolean): IGeometry;
30
+ /**
31
+ * Creates geometry from a plain descriptor.
32
+ * Attributes a material's geometry format needs but the descriptor lacks are filled with defaults:
33
+ * white colours, zero texture coordinates and zero normals.
34
+ * @param descriptor - The geometry descriptor. Its arrays are copied.
35
+ * @returns The geometry.
36
+ */
37
+ create(descriptor: GeometryDescriptor): IGeometry;
14
38
  }
15
39
  //# sourceMappingURL=IGeometryBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IGeometryBuilder.d.ts","sourceRoot":"","sources":["../../../src/api/geometry/IGeometryBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAE/B;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAEjC;;;;;OAKG;IACD,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAEnE"}
1
+ {"version":3,"file":"IGeometryBuilder.d.ts","sourceRoot":"","sources":["../../../src/api/geometry/IGeometryBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAE/B;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAE/B,+BAA+B;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAE7B,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAE5B,6BAA6B;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAE5B,yCAAyC;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAElC,kCAAkC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAEjC;;;;;OAKG;IACD,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAEpE;;;;;;OAMG;IACD,MAAM,CAAC,UAAU,EAAE,kBAAkB,GAAG,SAAS,CAAC;CACnD"}
@@ -2,4 +2,5 @@ export * from "./IGeometryBuilder.js";
2
2
  export * from "./IGeometry.js";
3
3
  export * from "./VertexFormat.js";
4
4
  export * from "./GeometryFormat.js";
5
+ export * from "./BaseGeometry.js";
5
6
  //# sourceMappingURL=_export-geometry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"_export-geometry.d.ts","sourceRoot":"","sources":["../../../src/api/geometry/_export-geometry.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"_export-geometry.d.ts","sourceRoot":"","sources":["../../../src/api/geometry/_export-geometry.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC"}
@@ -13,6 +13,8 @@ export declare class InputManager implements IInputManager {
13
13
  private readonly _touchCapabilities;
14
14
  private readonly _contacts;
15
15
  private _touchListening;
16
+ /** Aborting it removes every canvas listener added in initialize(). */
17
+ private _listeners;
16
18
  /** Set in update, consumed in afterUpdate. Ageing before a publish would hide the press. */
17
19
  private _touchPublished;
18
20
  private static readonly _PHASE_BEGIN;
@@ -34,6 +36,8 @@ export declare class InputManager implements IInputManager {
34
36
  getTouchCollection(): TouchCollection;
35
37
  /** @inheritDoc */
36
38
  getTouchCapabilities(): TouchPanelCapabilities;
39
+ /** Removes the canvas listeners. Called from `Framework.dispose()`. */
40
+ dispose(): void;
37
41
  /** @inheritDoc */
38
42
  initialize(): void;
39
43
  private _handleMouseEvents;
@@ -1 +1 @@
1
- {"version":3,"file":"InputManager.d.ts","sourceRoot":"","sources":["../../../src/api/input/InputManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,aAAa,EAEb,UAAU,EACV,eAAe,EAEf,sBAAsB,EACzB,MAAM,aAAa,CAAC;AAmCrB,qBAAa,YAAa,YAAW,aAAa;IAiC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;IA/B9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAI/B;IAED,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAiB;IACxD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAC7C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAiB;IACtD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkC;IACnE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAkC;IAEvE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;IACnD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAyB;IAC5D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,eAAe,CAAS;IAChC,4FAA4F;IAC5F,OAAO,CAAC,eAAe,CAAS;IAEhC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAK;IACzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAK;IACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAK;IACvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAK;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAA6C;IAE1F;;;OAGG;gBACiC,UAAU,EAAE,UAAU;IAkB1D,kBAAkB,SAAO;IAGzB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,YAAY;IAIpD,gBAAgB,IAAI,aAAa;IAIjC,kBAAkB;IACX,aAAa,IAAI,UAAU;IAIlC,kBAAkB;IACX,kBAAkB,IAAI,eAAe;IAI5C,kBAAkB;IACX,oBAAoB,IAAI,sBAAsB;IAIrD,kBAAkB;IACX,UAAU,IAAI,IAAI;IAOzB,OAAO,CAAC,kBAAkB;IA0C1B,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAG5B;IAEF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAG3B;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAE1B;IAEF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAE7B;IAEF,OAAO,CAAC,yBAAyB;IAMjC,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAC,SAAS;IAyBjB,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,0BAA0B;IASlC,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,wBAAwB;IAShC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAqCxB,OAAO,CAAC,eAAe;IAoCvB;;;OAGG;IACH,OAAO,CAAC,WAAW;IA+BnB,kBAAkB;IACX,MAAM,IAAI,IAAI;IAOrB,kBAAkB;IACX,WAAW,IAAI,IAAI;CAiB7B"}
1
+ {"version":3,"file":"InputManager.d.ts","sourceRoot":"","sources":["../../../src/api/input/InputManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,aAAa,EAEb,UAAU,EACV,eAAe,EAEf,sBAAsB,EACzB,MAAM,aAAa,CAAC;AAmCrB,qBAAa,YAAa,YAAW,aAAa;IAmC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAjC9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAI/B;IAED,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAiB;IACxD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAC7C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAiB;IACtD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkC;IACnE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAkC;IAEvE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;IACnD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAyB;IAC5D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,eAAe,CAAS;IAChC,uEAAuE;IACvE,OAAO,CAAC,UAAU,CAAyB;IAC3C,4FAA4F;IAC5F,OAAO,CAAC,eAAe,CAAS;IAEhC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAK;IACzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAK;IACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAK;IACvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAK;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAA6C;IAE1F;;;OAGG;gBACiC,UAAU,EAAE,UAAU;IAkB1D,kBAAkB,SAAO;IAGzB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,YAAY;IAIpD,gBAAgB,IAAI,aAAa;IAIjC,kBAAkB;IACX,aAAa,IAAI,UAAU;IAIlC,kBAAkB;IACX,kBAAkB,IAAI,eAAe;IAI5C,kBAAkB;IACX,oBAAoB,IAAI,sBAAsB;IAIrD,uEAAuE;IAChE,OAAO,IAAI,IAAI;IAMtB,kBAAkB;IACX,UAAU,IAAI,IAAI;IAOzB,OAAO,CAAC,kBAAkB;IA0C1B,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAG5B;IAEF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAG3B;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAE1B;IAEF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAE7B;IAEF,OAAO,CAAC,yBAAyB;IAMjC,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAC,SAAS;IAyBjB,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,0BAA0B;IASlC,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,wBAAwB;IAShC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAqCxB,OAAO,CAAC,eAAe;IAoCvB;;;OAGG;IACH,OAAO,CAAC,WAAW;IA+BnB,kBAAkB;IACX,MAAM,IAAI,IAAI;IAOrB,kBAAkB;IACX,WAAW,IAAI,IAAI;CAiB7B"}
@@ -0,0 +1,35 @@
1
+ import { Color } from "../data/Color.js";
2
+ import type { Scene } from "../scene/Scene.js";
3
+ /** The descriptor for an ambient light. All fields are optional. */
4
+ export interface AmbientLightDescriptor {
5
+ /** The unique id. Assigned automatically when omitted. */
6
+ id?: number;
7
+ /** The optional name for a light. */
8
+ name?: string;
9
+ /** The light colour. Alpha is ignored. Defaults to black. */
10
+ color?: Color;
11
+ /** Multiplies the colour. Defaults to 1. */
12
+ intensity?: number;
13
+ }
14
+ /**
15
+ * The ambient light. Plain data: it has no GPU resources.
16
+ * Put it into a {@link LightsBuffer} to use it in shaders.
17
+ * @public
18
+ */
19
+ export declare class AmbientLight {
20
+ /**
21
+ * The constructor.
22
+ * @param descriptor The optional descriptor. The colour is copied.
23
+ * @param scene The optional scene to register with.
24
+ */
25
+ constructor(descriptor?: AmbientLightDescriptor, scene?: Scene);
26
+ /** The unique id of this light. */
27
+ readonly id: number;
28
+ /** The optional name for a light. */
29
+ name?: string;
30
+ /** The light color. Alpha is ignored. */
31
+ color: Color;
32
+ /** Multiplies {@link color} when written to the lights buffer. */
33
+ intensity: number;
34
+ }
35
+ //# sourceMappingURL=AmbientLight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AmbientLight.d.ts","sourceRoot":"","sources":["../../../src/api/lights/AmbientLight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AAEvC,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAE7C,oEAAoE;AACpE,MAAM,WAAW,sBAAsB;IACnC,0DAA0D;IAC1D,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,6DAA6D;IAC7D,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,qBAAa,YAAY;IAErB;;;;OAIG;gBACgB,UAAU,CAAC,EAAE,sBAAsB,EAAE,KAAK,CAAC,EAAE,KAAK;IAUrE,mCAAmC;IACnC,SAAgB,EAAE,EAAE,MAAM,CAAC;IAE3B,qCAAqC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IAErB,yCAAyC;IAClC,KAAK,EAAE,KAAK,CAAC;IAEpB,kEAAkE;IAC3D,SAAS,EAAE,MAAM,CAAC;CAC5B"}
@@ -0,0 +1,40 @@
1
+ import { vec3 } from "gl-matrix";
2
+ import { Color } from "../data/Color.js";
3
+ import type { Scene } from "../scene/Scene.js";
4
+ /** The descriptor for a directional light. All fields are optional. */
5
+ export interface DirectionalLightDescriptor {
6
+ /** The unique id. Assigned automatically when omitted. */
7
+ id?: number;
8
+ /** The optional name for a light. */
9
+ name?: string;
10
+ /** The light colour. Alpha is ignored. Defaults to white. */
11
+ color?: Color;
12
+ /** Multiplies the colour. Defaults to 1. */
13
+ intensity?: number;
14
+ /** The direction in which the light travels. Defaults to straight down, (0, -1, 0). */
15
+ direction?: vec3;
16
+ }
17
+ /**
18
+ * The directional light. Plain data: it has no GPU resources.
19
+ * @public
20
+ */
21
+ export declare class DirectionalLight {
22
+ /**
23
+ * The constructor.
24
+ * @param descriptor The optional descriptor. Colour and direction are copied.
25
+ * @param scene The optional scene; the light adds itself via {@link Scene.add}.
26
+ * @throws Error when the scene has no free directional light slot left (the light is then not in the scene).
27
+ */
28
+ constructor(descriptor?: DirectionalLightDescriptor, scene?: Scene);
29
+ /** The unique id of this light. */
30
+ readonly id: number;
31
+ /** The optional name for a light. */
32
+ name?: string;
33
+ /** The light colour. Alpha is ignored. */
34
+ color: Color;
35
+ /** Multiplies {@link color} when written to the lights buffer. */
36
+ intensity: number;
37
+ /** The direction in which the light travels. */
38
+ direction: vec3;
39
+ }
40
+ //# sourceMappingURL=DirectionalLight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DirectionalLight.d.ts","sourceRoot":"","sources":["../../../src/api/lights/DirectionalLight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AAEvC,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAE7C,uEAAuE;AACvE,MAAM,WAAW,0BAA0B;IACvC,0DAA0D;IAC1D,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,6DAA6D;IAC7D,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,uFAAuF;IACvF,SAAS,CAAC,EAAE,IAAI,CAAC;CACpB;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IAEzB;;;;;OAKG;gBACgB,UAAU,CAAC,EAAE,0BAA0B,EAAE,KAAK,CAAC,EAAE,KAAK;IAUzE,mCAAmC;IACnC,SAAgB,EAAE,EAAE,MAAM,CAAC;IAE3B,qCAAqC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IAErB,0CAA0C;IACnC,KAAK,EAAE,KAAK,CAAC;IAEpB,kEAAkE;IAC3D,SAAS,EAAE,MAAM,CAAC;IAEzB,gDAAgD;IACzC,SAAS,EAAE,IAAI,CAAC;CAC1B"}
@@ -0,0 +1,18 @@
1
+ import type { AmbientLight, AmbientLightDescriptor } from "./AmbientLight.js";
2
+ import type { Scene } from "../scene/Scene.js";
3
+ import type { LightsBuffer, LightsBufferDescriptor } from "./LightsBuffer.js";
4
+ /** The light factory */
5
+ export interface AmbientLightFactory {
6
+ /**
7
+ * Creates the ambient light.
8
+ * @param desc The descriptor for ambient light. The colour defaults to a dim grey; the id is assigned automatically.
9
+ * @param scene The optional scene to register the light with.
10
+ */
11
+ createAmbientLight(desc?: AmbientLightDescriptor, scene?: Scene): AmbientLight;
12
+ /**
13
+ * Creates a lights buffer, which owns the uniform buffer with all lights for shaders.
14
+ * @param desc The optional descriptor with the initial lights and directional light count.
15
+ */
16
+ __createLightsBuffer(desc?: LightsBufferDescriptor): LightsBuffer;
17
+ }
18
+ //# sourceMappingURL=LightFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LightFactory.d.ts","sourceRoot":"","sources":["../../../src/api/lights/LightFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAE,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAC,YAAY,EAAE,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AAE5E,wBAAwB;AACxB,MAAM,WAAW,mBAAmB;IAEhC;;;;OAIG;IACH,kBAAkB,CAAC,IAAI,CAAC,EAAE,sBAAsB,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC;IAE/E;;;OAGG;IACH,oBAAoB,CAAC,IAAI,CAAC,EAAE,sBAAsB,GAAG,YAAY,CAAC;CAErE"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Returns a new unique light id. Light constructors call this when no id is given.
3
+ * @internal
4
+ */
5
+ export declare function createLightId(): number;
6
+ //# sourceMappingURL=LightId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LightId.d.ts","sourceRoot":"","sources":["../../../src/api/lights/LightId.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
@@ -0,0 +1,70 @@
1
+ import type { AmbientLight } from "./AmbientLight.js";
2
+ import type { DirectionalLight } from "./DirectionalLight.js";
3
+ import type { PointLight } from "./PointLight.js";
4
+ import type { IUniformBuffer } from "../rendering/buffers/IUniformBuffer.js";
5
+ import type { IDisposable } from "../core/IDisposable.js";
6
+ /** The number of directional lights the lights buffer and the Blinn-Phong shader hold by default. */
7
+ export declare const DEFAULT_DIRECTIONAL_LIGHTS_COUNT = 3;
8
+ /** The number of point lights the lights buffer and the Blinn-Phong shader hold by default. */
9
+ export declare const DEFAULT_POINT_LIGHTS_COUNT = 3;
10
+ /** The descriptor for a lights buffer. */
11
+ export interface LightsBufferDescriptor {
12
+ /** The ambient light. Defaults to a black ambient light. */
13
+ ambientLight?: AmbientLight;
14
+ /** The initial directional lights. More than {@link maxDirectionalLights} throws. */
15
+ directionalLights?: DirectionalLight[];
16
+ /**
17
+ * The number of directional light slots. Must match `DIRECTIONAL_LIGHTS_COUNT` in the shader.
18
+ * Defaults to {@link DEFAULT_DIRECTIONAL_LIGHTS_COUNT}.
19
+ */
20
+ maxDirectionalLights?: number;
21
+ /** The initial point lights. More than {@link maxPointLights} throws. */
22
+ pointLights?: PointLight[];
23
+ /**
24
+ * The number of point light slots. Must match `POINT_LIGHTS_COUNT` in the shader.
25
+ * Defaults to {@link DEFAULT_POINT_LIGHTS_COUNT}.
26
+ */
27
+ maxPointLights?: number;
28
+ }
29
+ /**
30
+ * Holds the lights of a scene and owns the uniform buffer that shaders read them from.
31
+ * Assign it to lit materials, e.g. `ForwardBlinnPhongMaterial.lightsBuffer`.
32
+ *
33
+ * std140 layout of the `LightsBuffer` block:
34
+ * Every light colour is written premultiplied by its intensity, so the layout has no intensity field.
35
+ * - `vec3 u_ambientLight` at offset 0, padded to 16 bytes.
36
+ * - `DirectionalLight u_directionalLight[N]` from offset 16, 32 bytes each:
37
+ * `vec3 light` at +0 and `vec3 direction` at +16.
38
+ * - `PointLight u_pointLight[M]` after the directional lights, 48 bytes each:
39
+ * `vec3 light` at +0, `float constant` at +12, `vec3 position` at +16, `float linear` at +28, `float quadratic` at +32.
40
+ */
41
+ export interface LightsBuffer extends IDisposable {
42
+ /** The ambient light written to the buffer. */
43
+ ambientLight: AmbientLight;
44
+ /** The directional lights written to the buffer. Read-only; use {@link add} and {@link remove}. Unused slots are black. */
45
+ readonly directionalLights: readonly DirectionalLight[];
46
+ /** The number of directional light slots in the buffer. */
47
+ readonly maxDirectionalLights: number;
48
+ /** The point lights written to the buffer. Read-only; use {@link add} and {@link remove}. Unused slots are black. */
49
+ readonly pointLights: readonly PointLight[];
50
+ /** The number of point light slots in the buffer. */
51
+ readonly maxPointLights: number;
52
+ /**
53
+ * The uniform buffer holding the lights for shaders.
54
+ * NOTE: Intended to be used internally, never set this value manually.
55
+ */
56
+ readonly buffer: IUniformBuffer;
57
+ /**
58
+ * Adds a directional or point light. Adding a light that is already in the buffer does nothing.
59
+ * @throws Error when all slots for that kind of light are in use.
60
+ */
61
+ add(light: DirectionalLight | PointLight): void;
62
+ /**
63
+ * Removes a directional or point light.
64
+ * @returns True when the light was in the buffer.
65
+ */
66
+ remove(light: DirectionalLight | PointLight): boolean;
67
+ /** Writes the lights to {@link buffer} if anything changed since the last update. Call once per frame before rendering. */
68
+ update(): void;
69
+ }
70
+ //# sourceMappingURL=LightsBuffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LightsBuffer.d.ts","sourceRoot":"","sources":["../../../src/api/lights/LightsBuffer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,wCAAwC,CAAC;AAC3E,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAC;AAExD,qGAAqG;AACrG,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAElD,+FAA+F;AAC/F,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,0CAA0C;AAC1C,MAAM,WAAW,sBAAsB;IAEnC,4DAA4D;IAC5D,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B,qFAAqF;IACrF,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAEvC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,yEAAyE;IACzE,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAE3B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,YAAa,SAAQ,WAAW;IAE7C,+CAA+C;IAC/C,YAAY,EAAE,YAAY,CAAC;IAE3B,2HAA2H;IAC3H,QAAQ,CAAC,iBAAiB,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAExD,2DAA2D;IAC3D,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IAEtC,qHAAqH;IACrH,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAE5C,qDAAqD;IACrD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAEhC;;;OAGG;IACH,GAAG,CAAC,KAAK,EAAE,gBAAgB,GAAG,UAAU,GAAG,IAAI,CAAC;IAEhD;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,UAAU,GAAG,OAAO,CAAC;IAEtD,2HAA2H;IAC3H,MAAM,IAAI,IAAI,CAAC;CAClB"}
@@ -0,0 +1,59 @@
1
+ import { vec3 } from "gl-matrix";
2
+ import { Color } from "../data/Color.js";
3
+ import type { Scene } from "../scene/Scene.js";
4
+ /** The descriptor for a point light. All fields are optional. */
5
+ export interface PointLightDescriptor {
6
+ /** The unique id. Assigned automatically when omitted. */
7
+ id?: number;
8
+ /** The optional name for a light. */
9
+ name?: string;
10
+ /** The light colour. Alpha is ignored. Defaults to white. */
11
+ color?: Color;
12
+ /** Multiplies the colour. Defaults to 1. */
13
+ intensity?: number;
14
+ /** World-space position. Defaults to the origin. */
15
+ position?: vec3;
16
+ /** Constant attenuation term. Defaults to 1. */
17
+ constant?: number;
18
+ /** Linear attenuation term. Defaults to 0.09 (about 50 units of range). */
19
+ linear?: number;
20
+ /** Quadratic attenuation term. Defaults to 0.032 (about 50 units of range). */
21
+ quadratic?: number;
22
+ }
23
+ /**
24
+ * The point light. Plain data: it has no GPU resources.
25
+ * Attenuation is `1 / (constant + linear * d + quadratic * d²)` for distance `d`.
26
+ * @public
27
+ */
28
+ export declare class PointLight {
29
+ /** The default constant attenuation. */
30
+ static readonly DEFAULT_CONSTANT = 1;
31
+ /** The default linear attenuation. */
32
+ static readonly DEFAULT_LINEAR = 0.09;
33
+ /** The default quadratic attenuation. */
34
+ static readonly DEFAULT_QUADRATIC = 0.032;
35
+ /**
36
+ * The constructor.
37
+ * @param descriptor The optional descriptor. Colour and position are copied.
38
+ * @param scene The optional scene; the light adds itself via {@link Scene.add}.
39
+ * @throws Error when the scene has no free point light slot left (the light is then not in the scene).
40
+ */
41
+ constructor(descriptor?: PointLightDescriptor, scene?: Scene);
42
+ /** The unique id of this light. */
43
+ readonly id: number;
44
+ /** The optional name for a light. */
45
+ name?: string;
46
+ /** The light colour. Alpha is ignored. */
47
+ color: Color;
48
+ /** Multiplies {@link color} when written to the lights buffer. */
49
+ intensity: number;
50
+ /** World-space position of the light. */
51
+ position: vec3;
52
+ /** Constant attenuation term. */
53
+ constant: number;
54
+ /** Linear attenuation term. */
55
+ linear: number;
56
+ /** Quadratic attenuation term. */
57
+ quadratic: number;
58
+ }
59
+ //# sourceMappingURL=PointLight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PointLight.d.ts","sourceRoot":"","sources":["../../../src/api/lights/PointLight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AAEvC,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAE7C,iEAAiE;AACjE,MAAM,WAAW,oBAAoB;IACjC,0DAA0D;IAC1D,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,6DAA6D;IAC7D,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,IAAI,CAAC;IAEhB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,qBAAa,UAAU;IAEnB,wCAAwC;IACxC,gBAAuB,gBAAgB,KAAK;IAE5C,sCAAsC;IACtC,gBAAuB,cAAc,QAAQ;IAE7C,yCAAyC;IACzC,gBAAuB,iBAAiB,SAAS;IAEjD;;;;;OAKG;gBACgB,UAAU,CAAC,EAAE,oBAAoB,EAAE,KAAK,CAAC,EAAE,KAAK;IAanE,mCAAmC;IACnC,SAAgB,EAAE,EAAE,MAAM,CAAC;IAE3B,qCAAqC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IAErB,0CAA0C;IACnC,KAAK,EAAE,KAAK,CAAC;IAEpB,kEAAkE;IAC3D,SAAS,EAAE,MAAM,CAAC;IAEzB,yCAAyC;IAClC,QAAQ,EAAE,IAAI,CAAC;IAEtB,iCAAiC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IAExB,+BAA+B;IACxB,MAAM,EAAE,MAAM,CAAC;IAEtB,kCAAkC;IAC3B,SAAS,EAAE,MAAM,CAAC;CAC5B"}
@@ -0,0 +1,6 @@
1
+ export * from "./AmbientLight.js";
2
+ export * from "./DirectionalLight.js";
3
+ export * from "./PointLight.js";
4
+ export * from "./LightsBuffer.js";
5
+ export * from "./LightFactory.js";
6
+ //# sourceMappingURL=_export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_export.d.ts","sourceRoot":"","sources":["../../../src/api/lights/_export.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { GeometryDescriptor } from "../geometry/IGeometryBuilder.js";
2
+ import type { ObjGeometryDefinition } from "./obj/index.js";
3
+ /**
4
+ * Maps plain OBJ geometry definitions from {@link ObjLoader} onto the framework's {@link GeometryDescriptor}.
5
+ * Pass the result to `geometryBuilder.create`.
6
+ * Not part of the public API: `content.loadMeshAsync` and `content.loadBlinnPhongMeshAsync` use it.
7
+ * @internal
8
+ */
9
+ export declare class ObjGeometryMapper {
10
+ /**
11
+ * Creates a geometry descriptor from an OBJ geometry definition.
12
+ * @param definition The geometry definition, e.g. `result.geometry` from `ObjLoader.loadAsync`.
13
+ * @param useMaterialColors True keeps the loader's per-vertex `Kd` colours; false (the default) uses white,
14
+ * for when each submesh's material carries the colour instead.
15
+ * @returns The descriptor. It references the definition's arrays; `geometryBuilder.create` copies them.
16
+ */
17
+ static toDescriptor(definition: ObjGeometryDefinition, useMaterialColors?: boolean): GeometryDescriptor;
18
+ }
19
+ //# sourceMappingURL=ObjGeometryMapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObjGeometryMapper.d.ts","sourceRoot":"","sources":["../../../src/api/loaders/ObjGeometryMapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,gBAAgB,CAAC;AAE1D;;;;;GAKG;AACH,qBAAa,iBAAiB;IAE1B;;;;;;OAMG;WACW,YAAY,CAAC,UAAU,EAAE,qBAAqB,EAAE,iBAAiB,UAAQ,GAAG,kBAAkB;CAS/G"}
@@ -1,3 +1,4 @@
1
1
  export * from "./IImageLoader.js";
2
2
  export * from "./ImageLoader.js";
3
+ export * from "./obj/index.js";
3
4
  //# sourceMappingURL=_export.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"_export.d.ts","sourceRoot":"","sources":["../../../src/api/loaders/_export.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA"}
1
+ {"version":3,"file":"_export.d.ts","sourceRoot":"","sources":["../../../src/api/loaders/_export.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA"}
@@ -0,0 +1,29 @@
1
+ import { ObjMaterialDefinition, type ObjLoadResult, type ObjLoadOptions } from "./ObjTypes.js";
2
+ /**
3
+ * Loads .obj models (and their .mtl materials) from text or a URL into plain data.
4
+ * Engine-independent; uses only `fetch` and `URL`. `content.loadMeshAsync` turns the result into a framework mesh.
5
+ */
6
+ export declare class ObjLoader {
7
+ /**
8
+ * Parses .mtl text.
9
+ * @param text The .mtl contents.
10
+ * @returns The material definitions, in file order.
11
+ */
12
+ parseMtl(text: string): ObjMaterialDefinition[];
13
+ /**
14
+ * Parses .obj text.
15
+ * @param text The .obj contents.
16
+ * @param materials Material definitions to use for `usemtl`, e.g. from {@link parseMtl}. Default none.
17
+ * @returns The geometry, materials and raw data.
18
+ */
19
+ fromText(text: string, materials?: ObjMaterialDefinition[]): ObjLoadResult;
20
+ /**
21
+ * Loads an .obj file and the .mtl files it references with `mtllib`.
22
+ * A missing or failing .mtl is skipped (logged as a warning); the model still loads with white vertex colours.
23
+ * @param filePath The .obj URL.
24
+ * @param options Optional: how to resolve `mtllib` names, or skip materials.
25
+ * @returns The geometry, materials and raw data.
26
+ */
27
+ loadAsync(filePath: string, options?: ObjLoadOptions): Promise<ObjLoadResult>;
28
+ }
29
+ //# sourceMappingURL=ObjLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObjLoader.d.ts","sourceRoot":"","sources":["../../../../src/api/loaders/obj/ObjLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,qBAAqB,EAErB,KAAK,aAAa,EAClB,KAAK,cAAc,EAEtB,MAAM,eAAe,CAAC;AAiBvB;;;GAGG;AACH,qBAAa,SAAS;IAElB;;;;OAIG;IACI,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,EAAE;IAqEtD;;;;;OAKG;IACI,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,qBAAqB,EAAO,GAAG,aAAa;IAiHrF;;;;;;OAMG;IACU,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;CAwC7F"}
@@ -0,0 +1,103 @@
1
+ /** An RGB colour as read from an .mtl file, each channel usually in 0..1. */
2
+ export type ObjColor = [r: number, g: number, b: number];
3
+ /**
4
+ * A material definition read from an .mtl file (`newmtl` block).
5
+ * This is plain data, not a GPU material; map it onto a framework material yourself.
6
+ */
7
+ export declare class ObjMaterialDefinition {
8
+ name: string;
9
+ /**
10
+ * The constructor.
11
+ * @param name The material name from `newmtl`.
12
+ */
13
+ constructor(name: string);
14
+ /** Ambient colour (`Ka`). */
15
+ ambientColor?: ObjColor;
16
+ /** Diffuse colour (`Kd`). */
17
+ diffuseColor?: ObjColor;
18
+ /** Specular colour (`Ks`). */
19
+ specularColor?: ObjColor;
20
+ /** Emissive colour (`Ke`). */
21
+ emissiveColor?: ObjColor;
22
+ /** Specular exponent (`Ns`). */
23
+ specularExponent?: number;
24
+ /** Opacity, from `d`, or `1 - Tr` when only `Tr` is given. */
25
+ opacity?: number;
26
+ /** Optical density / index of refraction (`Ni`). */
27
+ opticalDensity?: number;
28
+ /** Illumination model (`illum`). */
29
+ illuminationModel?: number;
30
+ /**
31
+ * Texture maps by statement name, e.g. `map_Kd`, `map_Ks`, `map_Bump`, `bump`, `disp`, `decal`, `refl`.
32
+ * The value is the file name (last token); map options such as `-bm 1` are kept in {@link mapOptions}.
33
+ */
34
+ maps: Record<string, string>;
35
+ /** Options written before the file name of a map statement, e.g. `{ map_Bump: "-bm 0.5" }`. */
36
+ mapOptions: Record<string, string>;
37
+ }
38
+ /** A run of triangles in the geometry's index buffer drawn with one material (`usemtl`). */
39
+ export interface ObjMaterialRange {
40
+ /** The material name from `usemtl`, or undefined for faces before any `usemtl`. */
41
+ readonly materialName?: string;
42
+ /** First index in `geometry.indices`. */
43
+ readonly indexStart: number;
44
+ /** Number of indices (3 per triangle). */
45
+ readonly indexCount: number;
46
+ }
47
+ /** The OBJ data exactly as listed in the file, before expansion. */
48
+ export interface ObjRawData {
49
+ /** `v` values, 3 per position. */
50
+ readonly positions: number[];
51
+ /** `vt` values, 2 per texture coordinate (a third `w` value is dropped). */
52
+ readonly textureCoords: number[];
53
+ /** `vn` values, 3 per normal. */
54
+ readonly normals: number[];
55
+ /**
56
+ * Triangulated face corners as zero-based `position, texcoord, normal` triplets.
57
+ * A missing texcoord or normal is -1.
58
+ */
59
+ readonly faceIndices: number[];
60
+ }
61
+ /**
62
+ * Renderable geometry as plain data: one vertex per unique position/texcoord/normal/material corner.
63
+ * Has no dependency on any engine; convert it to engine geometry yourself.
64
+ */
65
+ export interface ObjGeometryDefinition {
66
+ /** Positions, 3 per vertex. */
67
+ readonly positions: number[];
68
+ /** Texture coordinates, 2 per vertex (0,0 when the corner has none). */
69
+ readonly textureCoords: number[];
70
+ /** Normals, 3 per vertex (0,0,0 when the corner has none). */
71
+ readonly normals: number[];
72
+ /** RGBA colours, 4 per vertex: the material's `Kd` with alpha from `d`, white without a material. */
73
+ readonly colors: number[];
74
+ /** Triangle indices, 3 per triangle. */
75
+ readonly indices: number[];
76
+ /** Number of vertices (`positions.length / 3`). */
77
+ readonly vertexCount: number;
78
+ /** Index ranges per `usemtl`, in file order. */
79
+ readonly materialRanges: ObjMaterialRange[];
80
+ }
81
+ /** The result of loading an OBJ file. */
82
+ export interface ObjLoadResult {
83
+ /** The renderable geometry as plain data. */
84
+ readonly geometry: ObjGeometryDefinition;
85
+ /** Material definitions from the referenced .mtl files. Empty when there is no `mtllib` or it could not be loaded. */
86
+ readonly materials: ObjMaterialDefinition[];
87
+ /** Library file names from `mtllib`, in order. */
88
+ readonly materialLibraries: string[];
89
+ /** The raw OBJ lists. */
90
+ readonly raw: ObjRawData;
91
+ }
92
+ /** Options for {@link ObjLoader.loadAsync}. */
93
+ export interface ObjLoadOptions {
94
+ /**
95
+ * Maps an `mtllib` name to the URL to fetch.
96
+ * By default, the name is resolved relative to the OBJ URL, which fails for `data:` or `blob:` URLs
97
+ * (for example a bundler-inlined asset); use this to point at the real file.
98
+ */
99
+ resolveMaterialUrl?: (libraryName: string) => string;
100
+ /** Skip fetching .mtl files. */
101
+ ignoreMaterials?: boolean;
102
+ }
103
+ //# sourceMappingURL=ObjTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObjTypes.d.ts","sourceRoot":"","sources":["../../../../src/api/loaders/obj/ObjTypes.ts"],"names":[],"mappings":"AAKA,6EAA6E;AAC7E,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AAEzD;;;GAGG;AACH,qBAAa,qBAAqB;IAMJ,IAAI,EAAE,MAAM;IAJtC;;;OAGG;gBACuB,IAAI,EAAE,MAAM;IAGtC,6BAA6B;IACtB,YAAY,CAAC,EAAE,QAAQ,CAAC;IAE/B,6BAA6B;IACtB,YAAY,CAAC,EAAE,QAAQ,CAAC;IAE/B,8BAA8B;IACvB,aAAa,CAAC,EAAE,QAAQ,CAAC;IAEhC,8BAA8B;IACvB,aAAa,CAAC,EAAE,QAAQ,CAAC;IAEhC,gCAAgC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAEjC,8DAA8D;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IAExB,oDAAoD;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;IAE/B,oCAAoC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAElC;;;OAGG;IACI,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAEzC,+FAA+F;IACxF,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;CAClD;AAED,4FAA4F;AAC5F,MAAM,WAAW,gBAAgB;IAC7B,mFAAmF;IACnF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,yCAAyC;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0CAA0C;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC/B;AAED,oEAAoE;AACpE,MAAM,WAAW,UAAU;IACvB,kCAAkC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7B,4EAA4E;IAC5E,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;IACjC,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IAClC,+BAA+B;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7B,wEAAwE;IACxE,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;IACjC,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,qGAAqG;IACrG,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,gDAAgD;IAChD,QAAQ,CAAC,cAAc,EAAE,gBAAgB,EAAE,CAAC;CAC/C;AAED,yCAAyC;AACzC,MAAM,WAAW,aAAa;IAC1B,6CAA6C;IAC7C,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IACzC,sHAAsH;IACtH,QAAQ,CAAC,SAAS,EAAE,qBAAqB,EAAE,CAAC;IAC5C,kDAAkD;IAClD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IACrC,yBAAyB;IACzB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;CAC5B;AAED,+CAA+C;AAC/C,MAAM,WAAW,cAAc;IAC3B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC;IACrD,gCAAgC;IAChC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B"}
@@ -0,0 +1,3 @@
1
+ export * from "./ObjTypes.js";
2
+ export * from "./ObjLoader.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/loaders/obj/index.ts"],"names":[],"mappings":"AAGA,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}