@tolokoban/tgd 2.1.3 → 2.1.4

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.
package/README.md CHANGED
@@ -20,6 +20,10 @@ npm start
20
20
 
21
21
  ## Release notes
22
22
 
23
+ ### v2.1.4
24
+
25
+ - **TgdUniformBufferObjectCamera new uniforms**: Added `uniScreenSize` (`vec2`, width/height in pixels), `uniScreenAspectRatio` (`float`, width/height), and `uniScreenAspectRatioInverse` (`float`, height/width) to the camera UBO.
26
+
23
27
  ### v2.1.3
24
28
 
25
29
  - **TgdPainterMesh.computeBoundingBox fix**: Now correctly uses `geometry.attPosition` instead of the hardcoded `"POSITION"` attribute name, fixing bounding box computation for geometries with a custom position attribute name.
@@ -1,9 +1,19 @@
1
1
  import type { TgdCamera } from "../camera";
2
2
  import type { TgdContext } from "../context";
3
3
  import { TgdUniformBufferObject } from "./";
4
- export declare class TgdUniformBufferObjectCamera extends TgdUniformBufferObject<"uniModelViewMatrix" | "uniProjectionMatrix" | "uniCameraPosition" | "uniPixel"> {
4
+ /**
5
+ - `mat4 uniModelViewMatrix`:
6
+ - `mat4 uniProjectionMatrix`:
7
+ - `vec3 uniCameraPosition`: position of the camera.
8
+ - `vec2 uniPixel`: Size of a pixel in camera space units.
9
+ - `vec2 uniScreenSize`: width and height of the screen in pixels.
10
+ - `float uniScreenAspectRatio`: width / height
11
+ - `float uniScreenAspectRatioInverse`: height / width
12
+ */
13
+ export declare class TgdUniformBufferObjectCamera extends TgdUniformBufferObject<"uniModelViewMatrix" | "uniProjectionMatrix" | "uniCameraPosition" | "uniPixel" | "uniScreenSize" | "uniScreenAspectRatio" | "uniScreenAspectRatioInverse"> {
5
14
  camera: TgdCamera;
6
15
  private readonly uniPixel;
16
+ private readonly uniScreenSize;
7
17
  constructor(context: TgdContext);
8
18
  updateData(): void;
9
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ubo-camera.d.ts","sourceRoot":"","sources":["../../src/uniform/ubo-camera.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAErD,qBAAa,4BAA6B,SAAQ,sBAAsB,CACpE,oBAAoB,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,UAAU,CAClF;IACU,MAAM,EAAE,SAAS,CAAA;IAExB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;gBAEjC,OAAO,EAAE,UAAU;IAY/B,UAAU;CASb"}
1
+ {"version":3,"file":"ubo-camera.d.ts","sourceRoot":"","sources":["../../src/uniform/ubo-camera.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAErD;;;;;;;;GAQG;AACH,qBAAa,4BAA6B,SAAQ,sBAAsB,CACpE,oBAAoB,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,UAAU,GAAG,eAAe,GAAG,sBAAsB,GAAG,6BAA6B,CAC7J;IACU,MAAM,EAAE,SAAS,CAAA;IAExB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;gBAEtC,OAAO,EAAE,UAAU;IAe/B,UAAU;CAcb"}
@@ -1,5 +1,14 @@
1
1
  import { TgdVec2 } from "./../math/index.js";
2
2
  import { TgdUniformBufferObject } from ".//index.js";
3
+ /**
4
+ - `mat4 uniModelViewMatrix`:
5
+ - `mat4 uniProjectionMatrix`:
6
+ - `vec3 uniCameraPosition`: position of the camera.
7
+ - `vec2 uniPixel`: Size of a pixel in camera space units.
8
+ - `vec2 uniScreenSize`: width and height of the screen in pixels.
9
+ - `float uniScreenAspectRatio`: width / height
10
+ - `float uniScreenAspectRatioInverse`: height / width
11
+ */
3
12
  export class TgdUniformBufferObjectCamera extends TgdUniformBufferObject {
4
13
  constructor(context) {
5
14
  super(context, {
@@ -8,19 +17,27 @@ export class TgdUniformBufferObjectCamera extends TgdUniformBufferObject {
8
17
  uniProjectionMatrix: "mat4",
9
18
  uniCameraPosition: "vec3",
10
19
  uniPixel: "vec2",
20
+ uniScreenSize: "vec2",
21
+ uniScreenAspectRatio: "float",
22
+ uniScreenAspectRatioInverse: "float"
11
23
  },
12
24
  });
13
25
  this.uniPixel = new TgdVec2(1, 1);
26
+ this.uniScreenSize = new TgdVec2(1, 1);
14
27
  this.camera = context.camera;
15
28
  }
16
29
  updateData() {
17
- const { camera, values, uniPixel } = this;
30
+ const { camera, values, uniPixel, uniScreenSize } = this;
18
31
  values.uniModelViewMatrix = camera.matrixModelView;
19
32
  values.uniProjectionMatrix = camera.matrixProjection;
20
33
  values.uniCameraPosition = camera.transfo.actualPosition;
21
34
  uniPixel.reset(1 / camera.screenWidth, 1 / camera.screenHeight);
22
35
  values.uniPixel = uniPixel;
36
+ uniScreenSize.reset(camera.screenWidth, camera.screenHeight);
37
+ values.uniScreenSize = uniScreenSize;
38
+ values.uniScreenAspectRatio = camera.screenAspectRatio;
39
+ values.uniScreenAspectRatioInverse = 1 / camera.screenAspectRatio;
23
40
  super.updateData();
24
41
  }
25
42
  }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWJvLWNhbWVyYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmb3JtL3Viby1jYW1lcmEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFckQsTUFBTSxPQUFPLDRCQUE2QixTQUFRLHNCQUVqRDtJQUtHLFlBQVksT0FBbUI7UUFDM0IsS0FBSyxDQUFDLE9BQU8sRUFBRTtZQUNYLFFBQVEsRUFBRTtnQkFDTixrQkFBa0IsRUFBRSxNQUFNO2dCQUMxQixtQkFBbUIsRUFBRSxNQUFNO2dCQUMzQixpQkFBaUIsRUFBRSxNQUFNO2dCQUN6QixRQUFRLEVBQUUsTUFBTTthQUNuQjtTQUNKLENBQUMsQ0FBQTtRQVZXLGFBQVEsR0FBRyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFXekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFBO0lBQ2hDLENBQUM7SUFFRCxVQUFVO1FBQ04sTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQ3pDLE1BQU0sQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFBO1FBQ2xELE1BQU0sQ0FBQyxtQkFBbUIsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUE7UUFDcEQsTUFBTSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFBO1FBQ3hELFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUMvRCxNQUFNLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtRQUMxQixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUE7SUFDdEIsQ0FBQztDQUNKIn0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWJvLWNhbWVyYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmb3JtL3Viby1jYW1lcmEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFckQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsc0JBRWpEO0lBTUcsWUFBWSxPQUFtQjtRQUMzQixLQUFLLENBQUMsT0FBTyxFQUFFO1lBQ1gsUUFBUSxFQUFFO2dCQUNOLGtCQUFrQixFQUFFLE1BQU07Z0JBQzFCLG1CQUFtQixFQUFFLE1BQU07Z0JBQzNCLGlCQUFpQixFQUFFLE1BQU07Z0JBQ3pCLFFBQVEsRUFBRSxNQUFNO2dCQUNoQixhQUFhLEVBQUUsTUFBTTtnQkFDckIsb0JBQW9CLEVBQUUsT0FBTztnQkFDN0IsMkJBQTJCLEVBQUUsT0FBTzthQUN2QztTQUNKLENBQUMsQ0FBQTtRQWRXLGFBQVEsR0FBRyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDNUIsa0JBQWEsR0FBRyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFjOUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFBO0lBQ2hDLENBQUM7SUFFRCxVQUFVO1FBQ04sTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxHQUFHLElBQUksQ0FBQTtRQUN4RCxNQUFNLENBQUMsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQTtRQUNsRCxNQUFNLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFBO1FBQ3BELE1BQU0sQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQTtRQUN4RCxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDL0QsTUFBTSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7UUFDMUIsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUM1RCxNQUFNLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQTtRQUNwQyxNQUFNLENBQUMsb0JBQW9CLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFBO1FBQ3RELE1BQU0sQ0FBQywyQkFBMkIsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFBO1FBRWpFLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQTtJQUN0QixDQUFDO0NBQ0oifQ==
@@ -1,2 +1,2 @@
1
- export declare const version = "2.1.3";
1
+ export declare const version = "2.1.4";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,2 +1,2 @@
1
- export const version = "2.1.3";
1
+ export const version = "2.1.4";
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUEifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tolokoban/tgd",
3
- "version": "2.1.3",
3
+ "version": "2.1.4",
4
4
  "description": "ToloGameDev library for WebGL2",
5
5
  "homepage": "https://tolokoban.github.io/tgd2",
6
6
  "main": "./lib/dist/index.js",